{"version":3,"file":"app-ac6eb6fa849feda7b1ff.js","mappings":"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","sources":["webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/extends.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/dijkstrajs/dijkstra.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/encode-utf8/index.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/browser.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/can-promise.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/alignment-pattern.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/alphanumeric-data.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/bit-buffer.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/bit-matrix.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/byte-data.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/error-correction-code.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/error-correction-level.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/finder-pattern.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/format-info.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/galois-field.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/kanji-data.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/mask-pattern.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/mode.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/numeric-data.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/polynomial.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/qrcode.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/reed-solomon-encoder.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/regex.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/segments.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/utils.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/version-check.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/core/version.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/renderer/canvas.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/renderer/svg-tag.js","webpack://@elemental-zcash/zec-map/../react/packages/core/node_modules/qrcode/lib/renderer/utils.js","webpack://@elemental-zcash/zec-map/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://@elemental-zcash/zec-map/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://@elemental-zcash/zec-map/./node_modules/@mdx-js/react/dist/esm.js","webpack://@elemental-zcash/zec-map/./node_modules/array-find-index/index.js","webpack://@elemental-zcash/zec-map/./node_modules/create-react-class/factory.js","webpack://@elemental-zcash/zec-map/./node_modules/create-react-class/index.js","webpack://@elemental-zcash/zec-map/./node_modules/css-in-js-utils/lib/hyphenateProperty.js","webpack://@elemental-zcash/zec-map/./node_modules/css-in-js-utils/lib/isPrefixedValue.js","webpack://@elemental-zcash/zec-map/./node_modules/fbjs/lib/ExecutionEnvironment.js","webpack://@elemental-zcash/zec-map/./node_modules/fbjs/lib/emptyFunction.js","webpack://@elemental-zcash/zec-map/./node_modules/fbjs/lib/invariant.js","webpack://@elemental-zcash/zec-map/./node_modules/fbjs/lib/performance.js","webpack://@elemental-zcash/zec-map/./node_modules/fbjs/lib/performanceNow.js","webpack://@elemental-zcash/zec-map/./node_modules/fbjs/lib/warning.js","webpack://@elemental-zcash/zec-map/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://@elemental-zcash/zec-map/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://@elemental-zcash/zec-map/./node_modules/hyphenate-style-name/index.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/createPrefixer.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/plugins/backgroundClip.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/plugins/crossFade.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/plugins/cursor.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/plugins/filter.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/plugins/flex.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/plugins/flexboxIE.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/plugins/flexboxOld.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/plugins/gradient.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/plugins/grid.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/plugins/imageSet.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/plugins/logical.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/plugins/position.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/plugins/sizing.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/plugins/transition.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/utils/addNewValuesOnly.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/utils/capitalizeString.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/utils/isObject.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/utils/prefixProperty.js","webpack://@elemental-zcash/zec-map/./node_modules/inline-style-prefixer/lib/utils/prefixValue.js","webpack://@elemental-zcash/zec-map/./node_modules/normalize-css-color/index.js","webpack://@elemental-zcash/zec-map/./node_modules/process/browser.js","webpack://@elemental-zcash/zec-map/./node_modules/react-is/cjs/react-is.production.min.js","webpack://@elemental-zcash/zec-map/./node_modules/react-is/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/exports/I18nManager/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/exports/StyleSheet/ReactNativePropRegistry.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/exports/StyleSheet/compile.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/exports/StyleSheet/constants.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/exports/StyleSheet/createCSSStyleSheet.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/exports/StyleSheet/createCompileableStyle.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/exports/StyleSheet/createOrderedCSSStyleSheet.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/exports/StyleSheet/createReactDOMStyle.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/exports/StyleSheet/createStyleResolver.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/exports/StyleSheet/flattenStyle.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/exports/StyleSheet/i18nStyle.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/exports/StyleSheet/initialRules.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/exports/StyleSheet/modality.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/exports/StyleSheet/normalizeValueWithProperty.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/exports/StyleSheet/resolveShadowValue.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/exports/processColor/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/modules/flattenArray/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/modules/isWebColor/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/modules/multiplyStyleLengthValue/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/modules/normalizeColor/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/modules/prefixStyles/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/modules/prefixStyles/static.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/modules/unitlessNumbers/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/cjs/vendor/hash/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Dimensions/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/useWindowDimensions/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/AccessibilityUtil/buttonLikeRoles.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAriaRole.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAccessibilityComponent.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/AccessibilityUtil/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/AccessibilityUtil/isDisabled.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/unitlessNumbers/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/isWebColor/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/processColor/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/normalizeColor/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/StyleSheet/normalizeValueWithProperty.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/StyleSheet/resolveShadowValue.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/StyleSheet/createCompileableStyle.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/StyleSheet/createOrderedCSSStyleSheet.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/flattenArray/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/StyleSheet/ReactNativePropRegistry.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/StyleSheet/flattenStyle.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/I18nManager/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/multiplyStyleLengthValue/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/StyleSheet/i18nStyle.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/StyleSheet/constants.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/StyleSheet/createReactDOMStyle.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/hash/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/prefixStyles/static.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/prefixStyles/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/StyleSheet/compile.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/StyleSheet/initialRules.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/StyleSheet/modality.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/StyleSheet/createStyleResolver.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/StyleSheet/styleResolver.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/StyleSheet/createCSSStyleSheet.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/StyleSheet/css.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/StyleSheet/StyleSheet.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/StyleSheet/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/createDOMProps/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/createElement/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/findNodeHandle/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/render/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/getBoundingClientRect/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/setValueForStyles/dangerousStyleValue.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/setValueForStyles/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/UIManager/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/NativeModules/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/AccessibilityInfo/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Alert/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/emitter/EmitterSubscription.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/emitter/EventSubscription.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/emitter/EventSubscriptionVendor.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/emitter/EventEmitter.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/NativeEventEmitter/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedModule.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedHelper.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/TurboModule/TurboModuleRegistry.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedNode.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedWithChildren.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedInterpolation.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/requestIdleCallback/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/InteractionManager/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedValue.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedEvent.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedAddition.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedDivision.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedModulo.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedMultiplication.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedTransform.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedStyle.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedProps.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedSubtraction.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedTracking.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedValueXY.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/animations/Animation.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/animations/DecayAnimation.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/SpringConfig.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/animations/SpringAnimation.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/Easing.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/bezier.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/animations/TimingAnimation.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/mergeRefs/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/createAnimatedComponent.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedImplementation.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/deepDiffer/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/forwardedProps/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/pick/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/useLayoutEffect/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/useElementLayout/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/useMergeRefs/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/useStable/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/usePlatformMethods/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/useResponderEvents/ResponderEventTypes.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/useResponderEvents/ResponderTouchHistoryStore.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/useResponderEvents/createResponderEvent.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/useResponderEvents/utils.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/isSelectionValid/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/useResponderEvents/ResponderSystem.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/useResponderEvents/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Text/TextAncestorContext.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/View/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/Batchinator/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/FillRateHelper/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/RefreshControl/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/TextInputState/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/dismissKeyboard/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Platform/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/ScrollResponder/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/ScrollView/ScrollViewBase.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/ScrollView/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/ViewabilityHelper/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/infoLog/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/VirtualizeUtils/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/FlatList/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/FlatList/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/AssetRegistry/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/ImageLoader/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/PixelRatio/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Image/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/VirtualizedSectionList/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/SectionList/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/SectionList/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Text/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Animated/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Appearance/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/AppRegistry/AppContainer.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/AppRegistry/renderApplication.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/AppRegistry/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/AppState/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/BackHandler/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Clipboard/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/DeviceInfo/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Easing/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Keyboard/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/LayoutAnimation/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/LayoutAnimation/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Linking/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/NativeEventEmitter/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/TouchHistoryMath/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/PanResponder/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/PanResponder/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Share/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Vibration/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/ActivityIndicator/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/usePressEvents/PressResponder.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/usePressEvents/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/TouchableOpacity/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Button/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/CheckBox/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/ImageBackground/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/KeyboardAvoidingView/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Modal/ModalPortal.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Modal/ModalAnimation.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Modal/ModalContent.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Modal/ModalFocusTrap.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Modal/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Picker/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Picker/PickerItem.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/createEventHandle/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/modality/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/useEvent/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/useHover/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Pressable/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/ProgressBar/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/SafeAreaView/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/StatusBar/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Switch/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/TextInput/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/vendor/react-native/PooledClass/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Touchable/BoundingDimensions.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Touchable/Position.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Touchable/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/TouchableHighlight/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/modules/UnimplementedView/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/TouchableNativeFeedback/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/TouchableWithoutFeedback/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/VirtualizedList/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/YellowBox/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/LogBox/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/DrawerLayoutAndroid/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/InputAccessoryView/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/ToastAndroid/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/PermissionsAndroid/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Settings/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/Systrace/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/TVEventHandler/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/DeviceEventEmitter/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-native-web/dist/exports/useColorScheme/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-primitives-svg/lib/core.web.js","webpack://@elemental-zcash/zec-map/./node_modules/react-primitives-svg/lib/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-primitives/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-primitives/lib/ReactPrimitives.js","webpack://@elemental-zcash/zec-map/./node_modules/react-primitives/lib/index.js","webpack://@elemental-zcash/zec-map/./node_modules/react-primitives/lib/injection/react-native-web.js","webpack://@elemental-zcash/zec-map/./node_modules/react-primitives/lib/modules/PixelRatio.js","webpack://@elemental-zcash/zec-map/./node_modules/react-primitives/lib/modules/Platform.js","webpack://@elemental-zcash/zec-map/./node_modules/shallowequal/index.js","webpack://@elemental-zcash/zec-map/./node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/@emotion/memoize/dist/memoize.browser.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/@styled-system/core/dist/index.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/@styled-system/layout/dist/index.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/@styled-system/color/dist/index.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/@styled-system/typography/dist/index.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/@styled-system/flexbox/dist/index.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/@styled-system/grid/dist/index.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/@styled-system/border/dist/index.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/@styled-system/background/dist/index.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/@styled-system/position/dist/index.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/@styled-system/space/dist/index.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/@styled-system/shadow/dist/index.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/@styled-system/css/dist/index.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/@styled-system/variant/dist/index.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/styled-system/dist/index.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/webfontloader/webfontloader.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/a-callable.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/an-object.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/array-includes.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/classof-raw.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/create-property-descriptor.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/descriptors.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/document-create-element.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/engine-user-agent.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/engine-v8-version.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/enum-bug-keys.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/export.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/fails.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/function-call.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/function-name.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/function-uncurry-this.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/get-built-in.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/get-method.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/global.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/has-own-property.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/hidden-keys.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/ie8-dom-define.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/indexed-object.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/inspect-source.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/internal-state.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/is-callable.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/is-forced.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/is-object.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/is-pure.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/is-symbol.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/length-of-array-like.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/native-symbol.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/native-weak-map.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/object-define-property.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/object-keys-internal.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/own-keys.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/redefine.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/require-object-coercible.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/set-global.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/shared-key.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/shared-store.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/shared.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/to-absolute-index.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/to-indexed-object.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/to-length.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/to-object.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/to-primitive.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/to-property-key.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/try-to-string.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/uid.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/well-known-symbol.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/modules/es.math.hypot.js","webpack://@elemental-zcash/zec-map/./node_modules/gatsby-link/index.js","webpack://@elemental-zcash/zec-map/./node_modules/gatsby-link/parse-path.js","webpack://@elemental-zcash/zec-map/./node_modules/gatsby-react-router-scroll/index.js","webpack://@elemental-zcash/zec-map/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://@elemental-zcash/zec-map/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://@elemental-zcash/zec-map/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://@elemental-zcash/zec-map/../react/packages/core/lib/buttons/BaseButton.js","webpack://@elemental-zcash/zec-map/../react/packages/core/lib/Details.js","webpack://@elemental-zcash/zec-map/../react/packages/core/lib/buttons/DefaultButton.js","webpack://@elemental-zcash/zec-map/../react/packages/core/lib/buttons/RaisedButton.js","webpack://@elemental-zcash/zec-map/../react/packages/core/lib/buttons/UnelevatedButton.js","webpack://@elemental-zcash/zec-map/../react/packages/core/lib/buttons/OutlinedButton.js","webpack://@elemental-zcash/zec-map/./node_modules/@elemental-design/material-color-utilities/lib/module/utils/math_utils.js","webpack://@elemental-zcash/zec-map/./node_modules/@elemental-design/material-color-utilities/lib/module/utils/color_utils.js","webpack://@elemental-zcash/zec-map/./node_modules/@elemental-design/material-color-utilities/lib/module/hct/viewing_conditions.js","webpack://@elemental-zcash/zec-map/./node_modules/@elemental-design/material-color-utilities/lib/module/hct/cam16.js","webpack://@elemental-zcash/zec-map/./node_modules/@elemental-design/material-color-utilities/lib/module/hct/hct.js","webpack://@elemental-zcash/zec-map/./node_modules/@elemental-design/material-color-utilities/lib/module/blend/blend.js","webpack://@elemental-zcash/zec-map/./node_modules/@elemental-design/material-color-utilities/lib/module/palettes/tonal_palette.js","webpack://@elemental-zcash/zec-map/./node_modules/@elemental-design/material-color-utilities/lib/module/palettes/core_palette.js","webpack://@elemental-zcash/zec-map/./node_modules/@elemental-design/material-color-utilities/lib/module/score/score.js","webpack://@elemental-zcash/zec-map/./node_modules/elemental-color/lib/index.js","webpack://@elemental-zcash/zec-map/../react/packages/core/lib/styles/colors.js","webpack://@elemental-zcash/zec-map/../react/packages/core/lib/styles/typography.js","webpack://@elemental-zcash/zec-map/../react/packages/core/lib/styles/theme.js","webpack://@elemental-zcash/zec-map/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://@elemental-zcash/zec-map/./.cache/api-runner-browser-plugins.js","webpack://@elemental-zcash/zec-map/./.cache/api-runner-browser.js","webpack://@elemental-zcash/zec-map/./node_modules/mitt/dist/mitt.es.js","webpack://@elemental-zcash/zec-map/./.cache/emitter.js","webpack://@elemental-zcash/zec-map/./.cache/normalize-page-path.js","webpack://@elemental-zcash/zec-map/./.cache/find-path.js","webpack://@elemental-zcash/zec-map/./.cache/gatsby-browser-entry.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://@elemental-zcash/zec-map/./.cache/prefetch.js","webpack://@elemental-zcash/zec-map/./.cache/loader.js","webpack://@elemental-zcash/zec-map/./.cache/page-renderer.js","webpack://@elemental-zcash/zec-map/./.cache/route-announcer-props.js","webpack://@elemental-zcash/zec-map/./.cache/navigation.js","webpack://@elemental-zcash/zec-map/./node_modules/shallow-compare/es/index.js","webpack://@elemental-zcash/zec-map/./.cache/ensure-resources.js","webpack://@elemental-zcash/zec-map/./.cache/production-app.js","webpack://@elemental-zcash/zec-map/./.cache/public-page-renderer-prod.js","webpack://@elemental-zcash/zec-map/./.cache/public-page-renderer.js","webpack://@elemental-zcash/zec-map/./.cache/react-lifecycles-compat.js","webpack://@elemental-zcash/zec-map/./.cache/redirect-utils.js","webpack://@elemental-zcash/zec-map/./.cache/register-service-worker.js","webpack://@elemental-zcash/zec-map/./.cache/strip-prefix.js","webpack://@elemental-zcash/zec-map/./src/components/wrap-root-element.js","webpack://@elemental-zcash/zec-map/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://@elemental-zcash/zec-map/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://@elemental-zcash/zec-map/./node_modules/gatsby-plugin-styled-components/gatsby-browser.js","webpack://@elemental-zcash/zec-map/./.cache/caches/gatsby-plugin-mdx/mdx-scopes-dir/e92f8988d65cf25c087d226e6c0ef06f.js","webpack://@elemental-zcash/zec-map/./node_modules/gatsby-plugin-mdx/context.js","webpack://@elemental-zcash/zec-map/./node_modules/gatsby-plugin-mdx/loaders/mdx-scopes.js","webpack://@elemental-zcash/zec-map/./node_modules/gatsby-plugin-mdx/wrap-root-element.js","webpack://@elemental-zcash/zec-map/./node_modules/gatsby-plugin-mdx/gatsby-browser.js","webpack://@elemental-zcash/zec-map/./node_modules/gatsby-plugin-mdx/loaders/mdx-components.js","webpack://@elemental-zcash/zec-map/./src/hooks/use-window-viewport.js","webpack://@elemental-zcash/zec-map/./src/mock.js","webpack://@elemental-zcash/zec-map/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://@elemental-zcash/zec-map/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://@elemental-zcash/zec-map/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://@elemental-zcash/zec-map/./node_modules/invariant/browser.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"],"sourcesContent":["function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\n\nvar dijkstra = {\n single_source_shortest_paths: function single_source_shortest_paths(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {}; // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n\n var costs = {};\n costs[s] = 0; // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n var closest, u, v, cost_of_s_to_u, adjacent_nodes, cost_of_e, cost_of_s_to_u_plus_cost_of_e, cost_of_s_to_v, first_visit;\n\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost; // Get nodes adjacent to u...\n\n adjacent_nodes = graph[u] || {}; // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v]; // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e; // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n\n cost_of_s_to_v = costs[v];\n first_visit = typeof costs[v] === 'undefined';\n\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n extract_shortest_path_from_predecessor_list: function extract_shortest_path_from_predecessor_list(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n\n nodes.reverse();\n return nodes;\n },\n find_path: function find_path(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function make(opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n default_sorter: function default_sorter(a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function push(value, cost) {\n var item = {\n value: value,\n cost: cost\n };\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function pop() {\n return this.queue.shift();\n },\n empty: function empty() {\n return this.queue.length === 0;\n }\n }\n}; // node.js module exports\n\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}","'use strict';\n\nmodule.exports = function encodeUtf8(input) {\n var result = [];\n var size = input.length;\n\n for (var index = 0; index < size; index++) {\n var point = input.charCodeAt(index);\n\n if (point >= 0xD800 && point <= 0xDBFF && size > index + 1) {\n var second = input.charCodeAt(index + 1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n point = (point - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n index += 1;\n }\n } // US-ASCII\n\n\n if (point < 0x80) {\n result.push(point);\n continue;\n } // 2-byte UTF-8\n\n\n if (point < 0x800) {\n result.push(point >> 6 | 192);\n result.push(point & 63 | 128);\n continue;\n } // 3-byte UTF-8\n\n\n if (point < 0xD800 || point >= 0xE000 && point < 0x10000) {\n result.push(point >> 12 | 224);\n result.push(point >> 6 & 63 | 128);\n result.push(point & 63 | 128);\n continue;\n } // 4-byte UTF-8\n\n\n if (point >= 0x10000 && point <= 0x10FFFF) {\n result.push(point >> 18 | 240);\n result.push(point >> 12 & 63 | 128);\n result.push(point >> 6 & 63 | 128);\n result.push(point & 63 | 128);\n continue;\n } // Invalid character\n\n\n result.push(0xEF, 0xBF, 0xBD);\n }\n\n return new Uint8Array(result).buffer;\n};","var canPromise = require('./can-promise');\n\nvar QRCode = require('./core/qrcode');\n\nvar CanvasRenderer = require('./renderer/canvas');\n\nvar SvgRenderer = require('./renderer/svg-tag.js');\n\nfunction renderCanvas(renderFunc, canvas, text, opts, cb) {\n var args = [].slice.call(arguments, 1);\n var argsNum = args.length;\n var isLastArgCb = typeof args[argsNum - 1] === 'function';\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument');\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided');\n }\n\n if (argsNum === 2) {\n cb = text;\n text = canvas;\n canvas = opts = undefined;\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts;\n opts = undefined;\n } else {\n cb = opts;\n opts = text;\n text = canvas;\n canvas = undefined;\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided');\n }\n\n if (argsNum === 1) {\n text = canvas;\n canvas = opts = undefined;\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text;\n text = canvas;\n canvas = undefined;\n }\n\n return new Promise(function (resolve, reject) {\n try {\n var data = QRCode.create(text, opts);\n resolve(renderFunc(data, canvas, opts));\n } catch (e) {\n reject(e);\n }\n });\n }\n\n try {\n var data = QRCode.create(text, opts);\n cb(null, renderFunc(data, canvas, opts));\n } catch (e) {\n cb(e);\n }\n}\n\nexports.create = QRCode.create;\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render);\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL); // only svg for now.\n\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts);\n});","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then;\n};","/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\nvar getSymbolSize = require('./utils').getSymbolSize;\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\n\n\nexports.getRowColCoords = function getRowColCoords(version) {\n if (version === 1) return [];\n var posCount = Math.floor(version / 7) + 2;\n var size = getSymbolSize(version);\n var intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2;\n var positions = [size - 7]; // Last coord is always (size - 7)\n\n for (var i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals;\n }\n\n positions.push(6); // First coord is always 6\n\n return positions.reverse();\n};\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * let pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\n\n\nexports.getPositions = function getPositions(version) {\n var coords = [];\n var pos = exports.getRowColCoords(version);\n var posLength = pos.length;\n\n for (var i = 0; i < posLength; i++) {\n for (var j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if (i === 0 && j === 0 || // top-left\n i === 0 && j === posLength - 1 || // bottom-left\n i === posLength - 1 && j === 0) {\n // top-right\n continue;\n }\n\n coords.push([pos[i], pos[j]]);\n }\n }\n\n return coords;\n};","var Mode = require('./mode');\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\n\n\nvar ALPHA_NUM_CHARS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', ' ', '$', '%', '*', '+', '-', '.', '/', ':'];\n\nfunction AlphanumericData(data) {\n this.mode = Mode.ALPHANUMERIC;\n this.data = data;\n}\n\nAlphanumericData.getBitsLength = function getBitsLength(length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2);\n};\n\nAlphanumericData.prototype.getLength = function getLength() {\n return this.data.length;\n};\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength() {\n return AlphanumericData.getBitsLength(this.data.length);\n};\n\nAlphanumericData.prototype.write = function write(bitBuffer) {\n var i; // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n var value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45; // The character value of the second digit is added to the product\n\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1]); // The sum is then stored as 11-bit binary number\n\n bitBuffer.put(value, 11);\n } // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n\n\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6);\n }\n};\n\nmodule.exports = AlphanumericData;","function BitBuffer() {\n this.buffer = [];\n this.length = 0;\n}\n\nBitBuffer.prototype = {\n get: function get(index) {\n var bufIndex = Math.floor(index / 8);\n return (this.buffer[bufIndex] >>> 7 - index % 8 & 1) === 1;\n },\n put: function put(num, length) {\n for (var i = 0; i < length; i++) {\n this.putBit((num >>> length - i - 1 & 1) === 1);\n }\n },\n getLengthInBits: function getLengthInBits() {\n return this.length;\n },\n putBit: function putBit(bit) {\n var bufIndex = Math.floor(this.length / 8);\n\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0);\n }\n\n if (bit) {\n this.buffer[bufIndex] |= 0x80 >>> this.length % 8;\n }\n\n this.length++;\n }\n};\nmodule.exports = BitBuffer;","/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix(size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0');\n }\n\n this.size = size;\n this.data = new Uint8Array(size * size);\n this.reservedBit = new Uint8Array(size * size);\n}\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\n\n\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n var index = row * this.size + col;\n this.data[index] = value;\n if (reserved) this.reservedBit[index] = true;\n};\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\n\n\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col];\n};\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\n\n\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value;\n};\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\n\n\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col];\n};\n\nmodule.exports = BitMatrix;","var encodeUtf8 = require('encode-utf8');\n\nvar Mode = require('./mode');\n\nfunction ByteData(data) {\n this.mode = Mode.BYTE;\n this.data = new Uint8Array(encodeUtf8(data));\n}\n\nByteData.getBitsLength = function getBitsLength(length) {\n return length * 8;\n};\n\nByteData.prototype.getLength = function getLength() {\n return this.data.length;\n};\n\nByteData.prototype.getBitsLength = function getBitsLength() {\n return ByteData.getBitsLength(this.data.length);\n};\n\nByteData.prototype.write = function (bitBuffer) {\n for (var i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8);\n }\n};\n\nmodule.exports = ByteData;","var ECLevel = require('./error-correction-level');\n\nvar EC_BLOCKS_TABLE = [// L M Q H\n1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 4, 1, 2, 4, 4, 2, 4, 4, 4, 2, 4, 6, 5, 2, 4, 6, 6, 2, 5, 8, 8, 4, 5, 8, 8, 4, 5, 8, 11, 4, 8, 10, 11, 4, 9, 12, 16, 4, 9, 16, 16, 6, 10, 12, 18, 6, 10, 17, 16, 6, 11, 16, 19, 6, 13, 18, 21, 7, 14, 21, 25, 8, 16, 20, 25, 8, 17, 23, 25, 9, 17, 23, 34, 9, 18, 25, 30, 10, 20, 27, 32, 12, 21, 29, 35, 12, 23, 34, 37, 12, 25, 34, 40, 13, 26, 35, 42, 14, 28, 38, 45, 15, 29, 40, 48, 16, 31, 43, 51, 17, 33, 45, 54, 18, 35, 48, 57, 19, 37, 51, 60, 19, 38, 53, 63, 20, 40, 56, 66, 21, 43, 59, 70, 22, 45, 62, 74, 24, 47, 65, 77, 25, 49, 68, 81];\nvar EC_CODEWORDS_TABLE = [// L M Q H\n7, 10, 13, 17, 10, 16, 22, 28, 15, 26, 36, 44, 20, 36, 52, 64, 26, 48, 72, 88, 36, 64, 96, 112, 40, 72, 108, 130, 48, 88, 132, 156, 60, 110, 160, 192, 72, 130, 192, 224, 80, 150, 224, 264, 96, 176, 260, 308, 104, 198, 288, 352, 120, 216, 320, 384, 132, 240, 360, 432, 144, 280, 408, 480, 168, 308, 448, 532, 180, 338, 504, 588, 196, 364, 546, 650, 224, 416, 600, 700, 224, 442, 644, 750, 252, 476, 690, 816, 270, 504, 750, 900, 300, 560, 810, 960, 312, 588, 870, 1050, 336, 644, 952, 1110, 360, 700, 1020, 1200, 390, 728, 1050, 1260, 420, 784, 1140, 1350, 450, 812, 1200, 1440, 480, 868, 1290, 1530, 510, 924, 1350, 1620, 540, 980, 1440, 1710, 570, 1036, 1530, 1800, 570, 1064, 1590, 1890, 600, 1120, 1680, 1980, 630, 1204, 1770, 2100, 660, 1260, 1860, 2220, 720, 1316, 1950, 2310, 750, 1372, 2040, 2430];\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\n\nexports.getBlocksCount = function getBlocksCount(version, errorCorrectionLevel) {\n switch (errorCorrectionLevel) {\n case ECLevel.L:\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0];\n\n case ECLevel.M:\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1];\n\n case ECLevel.Q:\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2];\n\n case ECLevel.H:\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3];\n\n default:\n return undefined;\n }\n};\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\n\n\nexports.getTotalCodewordsCount = function getTotalCodewordsCount(version, errorCorrectionLevel) {\n switch (errorCorrectionLevel) {\n case ECLevel.L:\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0];\n\n case ECLevel.M:\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1];\n\n case ECLevel.Q:\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2];\n\n case ECLevel.H:\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3];\n\n default:\n return undefined;\n }\n};","exports.L = {\n bit: 1\n};\nexports.M = {\n bit: 0\n};\nexports.Q = {\n bit: 3\n};\nexports.H = {\n bit: 2\n};\n\nfunction fromString(string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string');\n }\n\n var lcStr = string.toLowerCase();\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L;\n\n case 'm':\n case 'medium':\n return exports.M;\n\n case 'q':\n case 'quartile':\n return exports.Q;\n\n case 'h':\n case 'high':\n return exports.H;\n\n default:\n throw new Error('Unknown EC Level: ' + string);\n }\n}\n\nexports.isValid = function isValid(level) {\n return level && typeof level.bit !== 'undefined' && level.bit >= 0 && level.bit < 4;\n};\n\nexports.from = function from(value, defaultValue) {\n if (exports.isValid(value)) {\n return value;\n }\n\n try {\n return fromString(value);\n } catch (e) {\n return defaultValue;\n }\n};","var getSymbolSize = require('./utils').getSymbolSize;\n\nvar FINDER_PATTERN_SIZE = 7;\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\n\nexports.getPositions = function getPositions(version) {\n var size = getSymbolSize(version);\n return [// top-left\n [0, 0], // top-right\n [size - FINDER_PATTERN_SIZE, 0], // bottom-left\n [0, size - FINDER_PATTERN_SIZE]];\n};","var Utils = require('./utils');\n\nvar G15 = 1 << 10 | 1 << 8 | 1 << 5 | 1 << 4 | 1 << 2 | 1 << 1 | 1 << 0;\nvar G15_MASK = 1 << 14 | 1 << 12 | 1 << 10 | 1 << 4 | 1 << 1;\nvar G15_BCH = Utils.getBCHDigit(G15);\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\n\nexports.getEncodedBits = function getEncodedBits(errorCorrectionLevel, mask) {\n var data = errorCorrectionLevel.bit << 3 | mask;\n var d = data << 10;\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= G15 << Utils.getBCHDigit(d) - G15_BCH;\n } // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n\n\n return (data << 10 | d) ^ G15_MASK;\n};","var EXP_TABLE = new Uint8Array(512);\nvar LOG_TABLE = new Uint8Array(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;\n\n(function initTables() {\n var x = 1;\n\n for (var i = 0; i < 255; i++) {\n EXP_TABLE[i] = x;\n LOG_TABLE[x] = i;\n x <<= 1; // multiply by 2\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n\n if (x & 0x100) {\n // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D;\n }\n } // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n\n\n for (var _i = 255; _i < 512; _i++) {\n EXP_TABLE[_i] = EXP_TABLE[_i - 255];\n }\n})();\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\n\n\nexports.log = function log(n) {\n if (n < 1) throw new Error('log(' + n + ')');\n return LOG_TABLE[n];\n};\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\n\n\nexports.exp = function exp(n) {\n return EXP_TABLE[n];\n};\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\n\n\nexports.mul = function mul(x, y) {\n if (x === 0 || y === 0) return 0; // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]];\n};","var Mode = require('./mode');\n\nvar Utils = require('./utils');\n\nfunction KanjiData(data) {\n this.mode = Mode.KANJI;\n this.data = data;\n}\n\nKanjiData.getBitsLength = function getBitsLength(length) {\n return length * 13;\n};\n\nKanjiData.prototype.getLength = function getLength() {\n return this.data.length;\n};\n\nKanjiData.prototype.getBitsLength = function getBitsLength() {\n return KanjiData.getBitsLength(this.data.length);\n};\n\nKanjiData.prototype.write = function (bitBuffer) {\n var i; // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n\n for (i = 0; i < this.data.length; i++) {\n var value = Utils.toSJIS(this.data[i]); // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140; // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140;\n } else {\n throw new Error('Invalid SJIS character: ' + this.data[i] + '\\n' + 'Make sure your charset is UTF-8');\n } // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n\n\n value = (value >>> 8 & 0xff) * 0xC0 + (value & 0xff); // Convert result to a 13-bit binary string\n\n bitBuffer.put(value, 13);\n }\n};\n\nmodule.exports = KanjiData;","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n};\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\n\nvar PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n};\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\n\nexports.isValid = function isValid(mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7;\n};\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\n\n\nexports.from = function from(value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined;\n};\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\n\n\nexports.getPenaltyN1 = function getPenaltyN1(data) {\n var size = data.size;\n var points = 0;\n var sameCountCol = 0;\n var sameCountRow = 0;\n var lastCol = null;\n var lastRow = null;\n\n for (var row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0;\n lastCol = lastRow = null;\n\n for (var col = 0; col < size; col++) {\n var module = data.get(row, col);\n\n if (module === lastCol) {\n sameCountCol++;\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5);\n lastCol = module;\n sameCountCol = 1;\n }\n\n module = data.get(col, row);\n\n if (module === lastRow) {\n sameCountRow++;\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5);\n lastRow = module;\n sameCountRow = 1;\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5);\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5);\n }\n\n return points;\n};\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\n\n\nexports.getPenaltyN2 = function getPenaltyN2(data) {\n var size = data.size;\n var points = 0;\n\n for (var row = 0; row < size - 1; row++) {\n for (var col = 0; col < size - 1; col++) {\n var last = data.get(row, col) + data.get(row, col + 1) + data.get(row + 1, col) + data.get(row + 1, col + 1);\n if (last === 4 || last === 0) points++;\n }\n }\n\n return points * PenaltyScores.N2;\n};\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\n\n\nexports.getPenaltyN3 = function getPenaltyN3(data) {\n var size = data.size;\n var points = 0;\n var bitsCol = 0;\n var bitsRow = 0;\n\n for (var row = 0; row < size; row++) {\n bitsCol = bitsRow = 0;\n\n for (var col = 0; col < size; col++) {\n bitsCol = bitsCol << 1 & 0x7FF | data.get(row, col);\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++;\n bitsRow = bitsRow << 1 & 0x7FF | data.get(col, row);\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++;\n }\n }\n\n return points * PenaltyScores.N3;\n};\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\n\n\nexports.getPenaltyN4 = function getPenaltyN4(data) {\n var darkCount = 0;\n var modulesCount = data.data.length;\n\n for (var i = 0; i < modulesCount; i++) {\n darkCount += data.data[i];\n }\n\n var k = Math.abs(Math.ceil(darkCount * 100 / modulesCount / 5) - 10);\n return k * PenaltyScores.N4;\n};\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\n\n\nfunction getMaskAt(maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000:\n return (i + j) % 2 === 0;\n\n case exports.Patterns.PATTERN001:\n return i % 2 === 0;\n\n case exports.Patterns.PATTERN010:\n return j % 3 === 0;\n\n case exports.Patterns.PATTERN011:\n return (i + j) % 3 === 0;\n\n case exports.Patterns.PATTERN100:\n return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0;\n\n case exports.Patterns.PATTERN101:\n return i * j % 2 + i * j % 3 === 0;\n\n case exports.Patterns.PATTERN110:\n return (i * j % 2 + i * j % 3) % 2 === 0;\n\n case exports.Patterns.PATTERN111:\n return (i * j % 3 + (i + j) % 2) % 2 === 0;\n\n default:\n throw new Error('bad maskPattern:' + maskPattern);\n }\n}\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\n\n\nexports.applyMask = function applyMask(pattern, data) {\n var size = data.size;\n\n for (var col = 0; col < size; col++) {\n for (var row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue;\n data.xor(row, col, getMaskAt(pattern, row, col));\n }\n }\n};\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\n\n\nexports.getBestMask = function getBestMask(data, setupFormatFunc) {\n var numPatterns = Object.keys(exports.Patterns).length;\n var bestPattern = 0;\n var lowerPenalty = Infinity;\n\n for (var p = 0; p < numPatterns; p++) {\n setupFormatFunc(p);\n exports.applyMask(p, data); // Calculate penalty\n\n var penalty = exports.getPenaltyN1(data) + exports.getPenaltyN2(data) + exports.getPenaltyN3(data) + exports.getPenaltyN4(data); // Undo previously applied mask\n\n exports.applyMask(p, data);\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty;\n bestPattern = p;\n }\n }\n\n return bestPattern;\n};","var VersionCheck = require('./version-check');\n\nvar Regex = require('./regex');\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\n\n\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n};\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\n\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n};\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\n\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n};\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\n\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n};\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\n\nexports.MIXED = {\n bit: -1\n};\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\n\nexports.getCharCountIndicator = function getCharCountIndicator(mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode);\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version);\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0];else if (version < 27) return mode.ccBits[1];\n return mode.ccBits[2];\n};\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\n\n\nexports.getBestModeForData = function getBestModeForData(dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC;else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC;else if (Regex.testKanji(dataStr)) return exports.KANJI;else return exports.BYTE;\n};\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\n\n\nexports.toString = function toString(mode) {\n if (mode && mode.id) return mode.id;\n throw new Error('Invalid mode');\n};\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\n\n\nexports.isValid = function isValid(mode) {\n return mode && mode.bit && mode.ccBits;\n};\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\n\n\nfunction fromString(string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string');\n }\n\n var lcStr = string.toLowerCase();\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC;\n\n case 'alphanumeric':\n return exports.ALPHANUMERIC;\n\n case 'kanji':\n return exports.KANJI;\n\n case 'byte':\n return exports.BYTE;\n\n default:\n throw new Error('Unknown mode: ' + string);\n }\n}\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\n\n\nexports.from = function from(value, defaultValue) {\n if (exports.isValid(value)) {\n return value;\n }\n\n try {\n return fromString(value);\n } catch (e) {\n return defaultValue;\n }\n};","var Mode = require('./mode');\n\nfunction NumericData(data) {\n this.mode = Mode.NUMERIC;\n this.data = data.toString();\n}\n\nNumericData.getBitsLength = function getBitsLength(length) {\n return 10 * Math.floor(length / 3) + (length % 3 ? length % 3 * 3 + 1 : 0);\n};\n\nNumericData.prototype.getLength = function getLength() {\n return this.data.length;\n};\n\nNumericData.prototype.getBitsLength = function getBitsLength() {\n return NumericData.getBitsLength(this.data.length);\n};\n\nNumericData.prototype.write = function write(bitBuffer) {\n var i, group, value; // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3);\n value = parseInt(group, 10);\n bitBuffer.put(value, 10);\n } // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n\n\n var remainingNum = this.data.length - i;\n\n if (remainingNum > 0) {\n group = this.data.substr(i);\n value = parseInt(group, 10);\n bitBuffer.put(value, remainingNum * 3 + 1);\n }\n};\n\nmodule.exports = NumericData;","var GF = require('./galois-field');\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Uint8Array} p1 Polynomial\n * @param {Uint8Array} p2 Polynomial\n * @return {Uint8Array} Product of p1 and p2\n */\n\n\nexports.mul = function mul(p1, p2) {\n var coeff = new Uint8Array(p1.length + p2.length - 1);\n\n for (var i = 0; i < p1.length; i++) {\n for (var j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j]);\n }\n }\n\n return coeff;\n};\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Uint8Array} divident Polynomial\n * @param {Uint8Array} divisor Polynomial\n * @return {Uint8Array} Remainder\n */\n\n\nexports.mod = function mod(divident, divisor) {\n var result = new Uint8Array(divident);\n\n while (result.length - divisor.length >= 0) {\n var coeff = result[0];\n\n for (var i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff);\n } // remove all zeros from buffer head\n\n\n var offset = 0;\n\n while (offset < result.length && result[offset] === 0) {\n offset++;\n }\n\n result = result.slice(offset);\n }\n\n return result;\n};\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Uint8Array} Buffer containing polynomial coefficients\n */\n\n\nexports.generateECPolynomial = function generateECPolynomial(degree) {\n var poly = new Uint8Array([1]);\n\n for (var i = 0; i < degree; i++) {\n poly = exports.mul(poly, new Uint8Array([1, GF.exp(i)]));\n }\n\n return poly;\n};","var Utils = require('./utils');\n\nvar ECLevel = require('./error-correction-level');\n\nvar BitBuffer = require('./bit-buffer');\n\nvar BitMatrix = require('./bit-matrix');\n\nvar AlignmentPattern = require('./alignment-pattern');\n\nvar FinderPattern = require('./finder-pattern');\n\nvar MaskPattern = require('./mask-pattern');\n\nvar ECCode = require('./error-correction-code');\n\nvar ReedSolomonEncoder = require('./reed-solomon-encoder');\n\nvar Version = require('./version');\n\nvar FormatInfo = require('./format-info');\n\nvar Mode = require('./mode');\n\nvar Segments = require('./segments');\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\n\n\nfunction setupFinderPattern(matrix, version) {\n var size = matrix.size;\n var pos = FinderPattern.getPositions(version);\n\n for (var i = 0; i < pos.length; i++) {\n var row = pos[i][0];\n var col = pos[i][1];\n\n for (var r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue;\n\n for (var c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue;\n\n if (r >= 0 && r <= 6 && (c === 0 || c === 6) || c >= 0 && c <= 6 && (r === 0 || r === 6) || r >= 2 && r <= 4 && c >= 2 && c <= 4) {\n matrix.set(row + r, col + c, true, true);\n } else {\n matrix.set(row + r, col + c, false, true);\n }\n }\n }\n }\n}\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\n\n\nfunction setupTimingPattern(matrix) {\n var size = matrix.size;\n\n for (var r = 8; r < size - 8; r++) {\n var value = r % 2 === 0;\n matrix.set(r, 6, value, true);\n matrix.set(6, r, value, true);\n }\n}\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\n\n\nfunction setupAlignmentPattern(matrix, version) {\n var pos = AlignmentPattern.getPositions(version);\n\n for (var i = 0; i < pos.length; i++) {\n var row = pos[i][0];\n var col = pos[i][1];\n\n for (var r = -2; r <= 2; r++) {\n for (var c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 || r === 0 && c === 0) {\n matrix.set(row + r, col + c, true, true);\n } else {\n matrix.set(row + r, col + c, false, true);\n }\n }\n }\n }\n}\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\n\n\nfunction setupVersionInfo(matrix, version) {\n var size = matrix.size;\n var bits = Version.getEncodedBits(version);\n var row, col, mod;\n\n for (var i = 0; i < 18; i++) {\n row = Math.floor(i / 3);\n col = i % 3 + size - 8 - 3;\n mod = (bits >> i & 1) === 1;\n matrix.set(row, col, mod, true);\n matrix.set(col, row, mod, true);\n }\n}\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\n\n\nfunction setupFormatInfo(matrix, errorCorrectionLevel, maskPattern) {\n var size = matrix.size;\n var bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern);\n var i, mod;\n\n for (i = 0; i < 15; i++) {\n mod = (bits >> i & 1) === 1; // vertical\n\n if (i < 6) {\n matrix.set(i, 8, mod, true);\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true);\n } else {\n matrix.set(size - 15 + i, 8, mod, true);\n } // horizontal\n\n\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true);\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true);\n } else {\n matrix.set(8, 15 - i - 1, mod, true);\n }\n } // fixed module\n\n\n matrix.set(size - 8, 8, 1, true);\n}\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Uint8Array} data Data codewords\n */\n\n\nfunction setupData(matrix, data) {\n var size = matrix.size;\n var inc = -1;\n var row = size - 1;\n var bitIndex = 7;\n var byteIndex = 0;\n\n for (var col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--;\n\n while (true) {\n for (var c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n var dark = false;\n\n if (byteIndex < data.length) {\n dark = (data[byteIndex] >>> bitIndex & 1) === 1;\n }\n\n matrix.set(row, col - c, dark);\n bitIndex--;\n\n if (bitIndex === -1) {\n byteIndex++;\n bitIndex = 7;\n }\n }\n }\n\n row += inc;\n\n if (row < 0 || size <= row) {\n row -= inc;\n inc = -inc;\n break;\n }\n }\n }\n}\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Uint8Array} Buffer containing encoded codewords\n */\n\n\nfunction createData(version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n var buffer = new BitBuffer();\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4); // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version)); // add binary data sequence to buffer\n\n data.write(buffer);\n }); // Calculate required number of bits\n\n var totalCodewords = Utils.getSymbolTotalCodewords(version);\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel);\n var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8; // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4);\n } // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n\n\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0);\n } // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n\n\n var remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8;\n\n for (var i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8);\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel);\n}\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Uint8Array} Buffer containing encoded codewords\n */\n\n\nfunction createCodewords(bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n var totalCodewords = Utils.getSymbolTotalCodewords(version); // Total number of error correction codewords\n\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel); // Total number of data codewords\n\n var dataTotalCodewords = totalCodewords - ecTotalCodewords; // Total number of blocks\n\n var ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel); // Calculate how many blocks each group should contain\n\n var blocksInGroup2 = totalCodewords % ecTotalBlocks;\n var blocksInGroup1 = ecTotalBlocks - blocksInGroup2;\n var totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks);\n var dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks);\n var dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1; // Number of EC codewords is the same for both groups\n\n var ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1; // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n\n var rs = new ReedSolomonEncoder(ecCount);\n var offset = 0;\n var dcData = new Array(ecTotalBlocks);\n var ecData = new Array(ecTotalBlocks);\n var maxDataSize = 0;\n var buffer = new Uint8Array(bitBuffer.buffer); // Divide the buffer into the required number of blocks\n\n for (var b = 0; b < ecTotalBlocks; b++) {\n var dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2; // extract a block of data from buffer\n\n dcData[b] = buffer.slice(offset, offset + dataSize); // Calculate EC codewords for this data block\n\n ecData[b] = rs.encode(dcData[b]);\n offset += dataSize;\n maxDataSize = Math.max(maxDataSize, dataSize);\n } // Create final data\n // Interleave the data and error correction codewords from each block\n\n\n var data = new Uint8Array(totalCodewords);\n var index = 0;\n var i, r; // Add data codewords\n\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i];\n }\n }\n } // Apped EC codewords\n\n\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i];\n }\n }\n\n return data;\n}\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\n\n\nfunction createSymbol(data, version, errorCorrectionLevel, maskPattern) {\n var segments;\n\n if (Array.isArray(data)) {\n segments = Segments.fromArray(data);\n } else if (typeof data === 'string') {\n var estimatedVersion = version;\n\n if (!estimatedVersion) {\n var rawSegments = Segments.rawSplit(data); // Estimate best version that can contain raw splitted segments\n\n estimatedVersion = Version.getBestVersionForData(rawSegments, errorCorrectionLevel);\n } // Build optimized segments\n // If estimated version is undefined, try with the highest version\n\n\n segments = Segments.fromString(data, estimatedVersion || 40);\n } else {\n throw new Error('Invalid data');\n } // Get the min version that can contain data\n\n\n var bestVersion = Version.getBestVersionForData(segments, errorCorrectionLevel); // If no version is found, data cannot be stored\n\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code');\n } // If not specified, use min version as default\n\n\n if (!version) {\n version = bestVersion; // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' + 'The chosen QR Code version cannot contain this amount of data.\\n' + 'Minimum version required to store current data is: ' + bestVersion + '.\\n');\n }\n\n var dataBits = createData(version, errorCorrectionLevel, segments); // Allocate matrix buffer\n\n var moduleCount = Utils.getSymbolSize(version);\n var modules = new BitMatrix(moduleCount); // Add function modules\n\n setupFinderPattern(modules, version);\n setupTimingPattern(modules);\n setupAlignmentPattern(modules, version); // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n\n setupFormatInfo(modules, errorCorrectionLevel, 0);\n\n if (version >= 7) {\n setupVersionInfo(modules, version);\n } // Add data codewords\n\n\n setupData(modules, dataBits);\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules, setupFormatInfo.bind(null, modules, errorCorrectionLevel));\n } // Apply mask pattern\n\n\n MaskPattern.applyMask(maskPattern, modules); // Replace format info bits with correct values\n\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern);\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n };\n}\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\n\n\nexports.create = function create(data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text');\n }\n\n var errorCorrectionLevel = ECLevel.M;\n var version;\n var mask;\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M);\n version = Version.from(options.version);\n mask = MaskPattern.from(options.maskPattern);\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc);\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask);\n};","var Polynomial = require('./polynomial');\n\nfunction ReedSolomonEncoder(degree) {\n this.genPoly = undefined;\n this.degree = degree;\n if (this.degree) this.initialize(this.degree);\n}\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\n\n\nReedSolomonEncoder.prototype.initialize = function initialize(degree) {\n // create an irreducible generator polynomial\n this.degree = degree;\n this.genPoly = Polynomial.generateECPolynomial(this.degree);\n};\n/**\n * Encodes a chunk of data\n *\n * @param {Uint8Array} data Buffer containing input data\n * @return {Uint8Array} Buffer containing encoded data\n */\n\n\nReedSolomonEncoder.prototype.encode = function encode(data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized');\n } // Calculate EC for this data block\n // extends data size to data+genPoly size\n\n\n var paddedData = new Uint8Array(data.length + this.degree);\n paddedData.set(data); // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n\n var remainder = Polynomial.mod(paddedData, this.genPoly); // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n\n var start = this.degree - remainder.length;\n\n if (start > 0) {\n var buff = new Uint8Array(this.degree);\n buff.set(remainder, start);\n return buff;\n }\n\n return remainder;\n};\n\nmodule.exports = ReedSolomonEncoder;","var numeric = '[0-9]+';\nvar alphanumeric = '[A-Z $%*+\\\\-./:]+';\nvar kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' + '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' + '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' + '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+';\nkanji = kanji.replace(/u/g, \"\\\\u\");\nvar byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+';\nexports.KANJI = new RegExp(kanji, 'g');\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g');\nexports.BYTE = new RegExp(byte, 'g');\nexports.NUMERIC = new RegExp(numeric, 'g');\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g');\nvar TEST_KANJI = new RegExp('^' + kanji + '$');\nvar TEST_NUMERIC = new RegExp('^' + numeric + '$');\nvar TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$');\n\nexports.testKanji = function testKanji(str) {\n return TEST_KANJI.test(str);\n};\n\nexports.testNumeric = function testNumeric(str) {\n return TEST_NUMERIC.test(str);\n};\n\nexports.testAlphanumeric = function testAlphanumeric(str) {\n return TEST_ALPHANUMERIC.test(str);\n};","var Mode = require('./mode');\n\nvar NumericData = require('./numeric-data');\n\nvar AlphanumericData = require('./alphanumeric-data');\n\nvar ByteData = require('./byte-data');\n\nvar KanjiData = require('./kanji-data');\n\nvar Regex = require('./regex');\n\nvar Utils = require('./utils');\n\nvar dijkstra = require('dijkstrajs');\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\n\n\nfunction getStringByteLength(str) {\n return unescape(encodeURIComponent(str)).length;\n}\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\n\n\nfunction getSegments(regex, mode, str) {\n var segments = [];\n var result;\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n });\n }\n\n return segments;\n}\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\n\n\nfunction getSegmentsFromString(dataStr) {\n var numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr);\n var alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr);\n var byteSegs;\n var kanjiSegs;\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr);\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr);\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr);\n kanjiSegs = [];\n }\n\n var segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs);\n return segs.sort(function (s1, s2) {\n return s1.index - s2.index;\n }).map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n };\n });\n}\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\n\n\nfunction getSegmentBitsLength(length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length);\n\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length);\n\n case Mode.KANJI:\n return KanjiData.getBitsLength(length);\n\n case Mode.BYTE:\n return ByteData.getBitsLength(length);\n }\n}\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\n\n\nfunction mergeSegments(segs) {\n return segs.reduce(function (acc, curr) {\n var prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null;\n\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data;\n return acc;\n }\n\n acc.push(curr);\n return acc;\n }, []);\n}\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\n\n\nfunction buildNodes(segs) {\n var nodes = [];\n\n for (var i = 0; i < segs.length; i++) {\n var seg = segs[i];\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg, {\n data: seg.data,\n mode: Mode.ALPHANUMERIC,\n length: seg.length\n }, {\n data: seg.data,\n mode: Mode.BYTE,\n length: seg.length\n }]);\n break;\n\n case Mode.ALPHANUMERIC:\n nodes.push([seg, {\n data: seg.data,\n mode: Mode.BYTE,\n length: seg.length\n }]);\n break;\n\n case Mode.KANJI:\n nodes.push([seg, {\n data: seg.data,\n mode: Mode.BYTE,\n length: getStringByteLength(seg.data)\n }]);\n break;\n\n case Mode.BYTE:\n nodes.push([{\n data: seg.data,\n mode: Mode.BYTE,\n length: getStringByteLength(seg.data)\n }]);\n }\n }\n\n return nodes;\n}\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\n\n\nfunction buildGraph(nodes, version) {\n var table = {};\n var graph = {\n start: {}\n };\n var prevNodeIds = ['start'];\n\n for (var i = 0; i < nodes.length; i++) {\n var nodeGroup = nodes[i];\n var currentNodeIds = [];\n\n for (var j = 0; j < nodeGroup.length; j++) {\n var node = nodeGroup[j];\n var key = '' + i + j;\n currentNodeIds.push(key);\n table[key] = {\n node: node,\n lastCount: 0\n };\n graph[key] = {};\n\n for (var n = 0; n < prevNodeIds.length; n++) {\n var prevNodeId = prevNodeIds[n];\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] = getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) - getSegmentBitsLength(table[prevNodeId].lastCount, node.mode);\n table[prevNodeId].lastCount += node.length;\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length;\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) + 4 + Mode.getCharCountIndicator(node.mode, version); // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds;\n }\n\n for (var _n = 0; _n < prevNodeIds.length; _n++) {\n graph[prevNodeIds[_n]].end = 0;\n }\n\n return {\n map: graph,\n table: table\n };\n}\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\n\n\nfunction buildSingleSegment(data, modesHint) {\n var mode;\n var bestMode = Mode.getBestModeForData(data);\n mode = Mode.from(modesHint, bestMode); // Make sure data can be encoded\n\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' + ' cannot be encoded with mode ' + Mode.toString(mode) + '.\\n Suggested mode is: ' + Mode.toString(bestMode));\n } // Use Mode.BYTE if Kanji support is disabled\n\n\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE;\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data);\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data);\n\n case Mode.KANJI:\n return new KanjiData(data);\n\n case Mode.BYTE:\n return new ByteData(data);\n }\n}\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\n\n\nexports.fromArray = function fromArray(array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null));\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode));\n }\n\n return acc;\n }, []);\n};\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\n\n\nexports.fromString = function fromString(data, version) {\n var segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled());\n var nodes = buildNodes(segs);\n var graph = buildGraph(nodes, version);\n var path = dijkstra.find_path(graph.map, 'start', 'end');\n var optimizedSegs = [];\n\n for (var i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node);\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs));\n};\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\n\n\nexports.rawSplit = function rawSplit(data) {\n return exports.fromArray(getSegmentsFromString(data, Utils.isKanjiModeEnabled()));\n};","var toSJISFunction;\nvar CODEWORDS_COUNT = [0, // Not used\n26, 44, 70, 100, 134, 172, 196, 242, 292, 346, 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085, 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185, 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706];\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\n\nexports.getSymbolSize = function getSymbolSize(version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined');\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40');\n return version * 4 + 17;\n};\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\n\n\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords(version) {\n return CODEWORDS_COUNT[version];\n};\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\n\n\nexports.getBCHDigit = function (data) {\n var digit = 0;\n\n while (data !== 0) {\n digit++;\n data >>>= 1;\n }\n\n return digit;\n};\n\nexports.setToSJISFunction = function setToSJISFunction(f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.');\n }\n\n toSJISFunction = f;\n};\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined';\n};\n\nexports.toSJIS = function toSJIS(kanji) {\n return toSJISFunction(kanji);\n};","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid(version) {\n return !isNaN(version) && version >= 1 && version <= 40;\n};","var Utils = require('./utils');\n\nvar ECCode = require('./error-correction-code');\n\nvar ECLevel = require('./error-correction-level');\n\nvar Mode = require('./mode');\n\nvar VersionCheck = require('./version-check'); // Generator polynomial used to encode version information\n\n\nvar G18 = 1 << 12 | 1 << 11 | 1 << 10 | 1 << 9 | 1 << 8 | 1 << 5 | 1 << 2 | 1 << 0;\nvar G18_BCH = Utils.getBCHDigit(G18);\n\nfunction getBestVersionForDataLength(mode, length, errorCorrectionLevel) {\n for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion;\n }\n }\n\n return undefined;\n}\n\nfunction getReservedBitsCount(mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4;\n}\n\nfunction getTotalBitsFromDataArray(segments, version) {\n var totalBits = 0;\n segments.forEach(function (data) {\n var reservedBits = getReservedBitsCount(data.mode, version);\n totalBits += reservedBits + data.getBitsLength();\n });\n return totalBits;\n}\n\nfunction getBestVersionForMixedData(segments, errorCorrectionLevel) {\n for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n var length = getTotalBitsFromDataArray(segments, currentVersion);\n\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion;\n }\n }\n\n return undefined;\n}\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\n\n\nexports.from = function from(value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10);\n }\n\n return defaultValue;\n};\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\n\n\nexports.getCapacity = function getCapacity(version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version');\n } // Use Byte mode as default\n\n\n if (typeof mode === 'undefined') mode = Mode.BYTE; // Total codewords for this QR code version (Data + Error correction)\n\n var totalCodewords = Utils.getSymbolTotalCodewords(version); // Total number of error correction codewords\n\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel); // Total number of data codewords\n\n var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8;\n if (mode === Mode.MIXED) return dataTotalCodewordsBits;\n var usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version); // Return max number of storable codewords\n\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor(usableBits / 10 * 3);\n\n case Mode.ALPHANUMERIC:\n return Math.floor(usableBits / 11 * 2);\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13);\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8);\n }\n};\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\n\n\nexports.getBestVersionForData = function getBestVersionForData(data, errorCorrectionLevel) {\n var seg;\n var ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M);\n\n if (Array.isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl);\n }\n\n if (data.length === 0) {\n return 1;\n }\n\n seg = data[0];\n } else {\n seg = data;\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl);\n};\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\n\n\nexports.getEncodedBits = function getEncodedBits(version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version');\n }\n\n var d = version << 12;\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= G18 << Utils.getBCHDigit(d) - G18_BCH;\n }\n\n return version << 12 | d;\n};","var Utils = require('./utils');\n\nfunction clearCanvas(ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n if (!canvas.style) canvas.style = {};\n canvas.height = size;\n canvas.width = size;\n canvas.style.height = size + 'px';\n canvas.style.width = size + 'px';\n}\n\nfunction getCanvasElement() {\n try {\n return document.createElement('canvas');\n } catch (e) {\n throw new Error('You need to specify a canvas element');\n }\n}\n\nexports.render = function render(qrData, canvas, options) {\n var opts = options;\n var canvasEl = canvas;\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas;\n canvas = undefined;\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement();\n }\n\n opts = Utils.getOptions(opts);\n var size = Utils.getImageWidth(qrData.modules.size, opts);\n var ctx = canvasEl.getContext('2d');\n var image = ctx.createImageData(size, size);\n Utils.qrToImageData(image.data, qrData, opts);\n clearCanvas(ctx, canvasEl, size);\n ctx.putImageData(image, 0, 0);\n return canvasEl;\n};\n\nexports.renderToDataURL = function renderToDataURL(qrData, canvas, options) {\n var opts = options;\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas;\n canvas = undefined;\n }\n\n if (!opts) opts = {};\n var canvasEl = exports.render(qrData, canvas, opts);\n var type = opts.type || 'image/png';\n var rendererOpts = opts.rendererOpts || {};\n return canvasEl.toDataURL(type, rendererOpts.quality);\n};","var Utils = require('./utils');\n\nfunction getColorAttrib(color, attrib) {\n var alpha = color.a / 255;\n var str = attrib + '=\"' + color.hex + '\"';\n return alpha < 1 ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"' : str;\n}\n\nfunction svgCmd(cmd, x, y) {\n var str = cmd + x;\n if (typeof y !== 'undefined') str += ' ' + y;\n return str;\n}\n\nfunction qrToPath(data, size, margin) {\n var path = '';\n var moveBy = 0;\n var newRow = false;\n var lineLength = 0;\n\n for (var i = 0; i < data.length; i++) {\n var col = Math.floor(i % size);\n var row = Math.floor(i / size);\n if (!col && !newRow) newRow = true;\n\n if (data[i]) {\n lineLength++;\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow ? svgCmd('M', col + margin, 0.5 + row + margin) : svgCmd('m', moveBy, 0);\n moveBy = 0;\n newRow = false;\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength);\n lineLength = 0;\n }\n } else {\n moveBy++;\n }\n }\n\n return path;\n}\n\nexports.render = function render(qrData, options, cb) {\n var opts = Utils.getOptions(options);\n var size = qrData.modules.size;\n var data = qrData.modules.data;\n var qrcodesize = size + opts.margin * 2;\n var bg = !opts.color.light.a ? '' : '';\n var path = '';\n var viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"';\n var width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" ';\n var svgTag = '' + bg + path + '\\n';\n\n if (typeof cb === 'function') {\n cb(null, svgTag);\n }\n\n return svgTag;\n};","function hex2rgba(hex) {\n if (typeof hex === 'number') {\n hex = hex.toString();\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string');\n }\n\n var hexCode = hex.slice().replace('#', '').split('');\n\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex);\n } // Convert from short to long form (fff -> ffffff)\n\n\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c];\n }));\n } // Add default alpha value\n\n\n if (hexCode.length === 6) hexCode.push('F', 'F');\n var hexValue = parseInt(hexCode.join(''), 16);\n return {\n r: hexValue >> 24 & 255,\n g: hexValue >> 16 & 255,\n b: hexValue >> 8 & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n };\n}\n\nexports.getOptions = function getOptions(options) {\n if (!options) options = {};\n if (!options.color) options.color = {};\n var margin = typeof options.margin === 'undefined' || options.margin === null || options.margin < 0 ? 4 : options.margin;\n var width = options.width && options.width >= 21 ? options.width : undefined;\n var scale = options.scale || 4;\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n };\n};\n\nexports.getScale = function getScale(qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2 ? opts.width / (qrSize + opts.margin * 2) : opts.scale;\n};\n\nexports.getImageWidth = function getImageWidth(qrSize, opts) {\n var scale = exports.getScale(qrSize, opts);\n return Math.floor((qrSize + opts.margin * 2) * scale);\n};\n\nexports.qrToImageData = function qrToImageData(imgData, qr, opts) {\n var size = qr.modules.size;\n var data = qr.modules.data;\n var scale = exports.getScale(size, opts);\n var symbolSize = Math.floor((size + opts.margin * 2) * scale);\n var scaledMargin = opts.margin * scale;\n var palette = [opts.color.light, opts.color.dark];\n\n for (var i = 0; i < symbolSize; i++) {\n for (var j = 0; j < symbolSize; j++) {\n var posDst = (i * symbolSize + j) * 4;\n var pxColor = opts.color.light;\n\n if (i >= scaledMargin && j >= scaledMargin && i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n var iSrc = Math.floor((i - scaledMargin) / scale);\n var jSrc = Math.floor((j - scaledMargin) / scale);\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0];\n }\n\n imgData[posDst++] = pxColor.r;\n imgData[posDst++] = pxColor.g;\n imgData[posDst++] = pxColor.b;\n imgData[posDst] = pxColor.a;\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\n\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexports.globalHistory = globalHistory;\nexports.navigate = navigate;\nexports.createHistory = createHistory;\nexports.createMemorySource = createMemorySource;","\"use strict\";\n\nexports.__esModule = true;\nexports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined;\n\nvar _invariant = require(\"invariant\");\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}; ////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? (0, _invariant2.default)(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : (0, _invariant2.default)(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n}; ////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n } // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\n\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n\n\nexports.startsWith = startsWith;\nexports.pick = pick;\nexports.match = match;\nexports.resolve = resolve;\nexports.insertParams = insertParams;\nexports.validateRedirect = validateRedirect;\nexports.shallowCompare = shallowCompare;","import React from 'react';\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nvar isFunction = function isFunction(obj) {\n return typeof obj === 'function';\n};\n\nvar MDXContext = /*#__PURE__*/React.createContext({});\n\nvar withMDXComponents = function withMDXComponents(Component) {\n return function (props) {\n var allComponents = useMDXComponents(props.components);\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n components: allComponents\n }));\n };\n};\n\nvar useMDXComponents = function useMDXComponents(components) {\n var contextComponents = React.useContext(MDXContext);\n var allComponents = contextComponents;\n\n if (components) {\n allComponents = isFunction(components) ? components(contextComponents) : _objectSpread2(_objectSpread2({}, contextComponents), components);\n }\n\n return allComponents;\n};\n\nvar MDXProvider = function MDXProvider(props) {\n var allComponents = useMDXComponents(props.components);\n return /*#__PURE__*/React.createElement(MDXContext.Provider, {\n value: allComponents\n }, props.children);\n};\n\nvar TYPE_PROP_NAME = 'mdxType';\nvar DEFAULTS = {\n inlineCode: 'code',\n wrapper: function wrapper(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(React.Fragment, {}, children);\n }\n};\nvar MDXCreateElement = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var propComponents = props.components,\n mdxType = props.mdxType,\n originalType = props.originalType,\n parentName = props.parentName,\n etc = _objectWithoutProperties(props, [\"components\", \"mdxType\", \"originalType\", \"parentName\"]);\n\n var components = useMDXComponents(propComponents);\n var type = mdxType;\n var Component = components[\"\".concat(parentName, \".\").concat(type)] || components[type] || DEFAULTS[type] || originalType;\n\n if (propComponents) {\n return /*#__PURE__*/React.createElement(Component, _objectSpread2(_objectSpread2({\n ref: ref\n }, etc), {}, {\n components: propComponents\n }));\n }\n\n return /*#__PURE__*/React.createElement(Component, _objectSpread2({\n ref: ref\n }, etc));\n});\nMDXCreateElement.displayName = 'MDXCreateElement';\n\nfunction createElement(type, props) {\n var args = arguments;\n var mdxType = props && props.mdxType;\n\n if (typeof type === 'string' || mdxType) {\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = MDXCreateElement;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.originalType = type;\n newProps[TYPE_PROP_NAME] = typeof type === 'string' ? type : mdxType;\n createElementArgArray[1] = newProps;\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n }\n\n return React.createElement.apply(null, createElementArgArray);\n }\n\n return React.createElement.apply(null, args);\n}\n\nexport { MDXContext, MDXProvider, createElement as mdx, useMDXComponents, withMDXComponents };","'use strict';\n\nmodule.exports = function (arr, predicate, ctx) {\n if (typeof Array.prototype.findIndex === 'function') {\n return arr.findIndex(predicate, ctx);\n }\n\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n\n var list = Object(arr);\n var len = list.length;\n\n if (len === 0) {\n return -1;\n }\n\n for (var i = 0; i < len; i++) {\n if (predicate.call(ctx, list[i], i, list)) {\n return i;\n }\n }\n\n return -1;\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar _assign = require('object-assign'); // -- Inlined from fbjs --\n\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\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\n throw error;\n }\n}\n\nvar warning = function warning() {};\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\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\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} // /-- Inlined from fbjs --\n\n\nvar MIXINS_KEY = 'mixins'; // 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.\n\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\n\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 var injectedMixins = [];\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\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 // ==== 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 // ==== 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 // ==== 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 * Similar to ReactClassInterface but for static methods.\n */\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 * 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\n var RESERVED_SPEC_KEYS = {\n displayName: function displayName(Constructor, _displayName) {\n Constructor.displayName = _displayName;\n },\n mixins: function mixins(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 childContextTypes(Constructor, _childContextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, _childContextTypes, 'childContext');\n }\n\n Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, _childContextTypes);\n },\n contextTypes: function contextTypes(Constructor, _contextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, _contextTypes, 'context');\n }\n\n Constructor.contextTypes = _assign({}, Constructor.contextTypes, _contextTypes);\n },\n\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function getDefaultProps(Constructor, _getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, _getDefaultProps);\n } else {\n Constructor.getDefaultProps = _getDefaultProps;\n }\n },\n propTypes: function propTypes(Constructor, _propTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, _propTypes, 'prop');\n }\n\n Constructor.propTypes = _assign({}, Constructor.propTypes, _propTypes);\n },\n statics: function statics(Constructor, _statics) {\n mixStaticSpecIntoComponent(Constructor, _statics);\n },\n autobind: function autobind() {}\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(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName);\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null; // Disallow overriding of base class methods unless explicitly allowed.\n\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(specPolicy === 'OVERRIDE_BASE', 'ReactClassInterface: You are attempting to override ' + '`%s` from your class specification. Ensure that your method names ' + 'do not overlap with React methods.', name);\n } // Disallow defining methods more than once unless explicitly allowed.\n\n\n if (isAlreadyDefined) {\n _invariant(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED', 'ReactClassInterface: You are attempting to define ' + '`%s` on your component more than once. This conflict may be due ' + 'to a mixin.', name);\n }\n }\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n\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(isMixinValid, \"%s: You're attempting to include a mixin that is either null \" + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec);\n }\n }\n\n return;\n }\n\n _invariant(typeof spec !== 'function', \"ReactClass: You're attempting to \" + 'use a component class or function as a mixin. Instead, just use a ' + 'regular object.');\n\n _invariant(!isValidElement(spec), \"ReactClass: You're attempting to \" + 'use a component as a mixin. Instead, just use a regular object.');\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs; // 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\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 = isFunction && !isReactClassMethod && !isAlreadyDefined && 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]; // These cases should already be caught by validateMethodOverride.\n\n _invariant(isReactClassMethod && (specPolicy === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY'), 'ReactClass: Unexpected spec policy %s for key %s ' + 'when mixing in component specs.', specPolicy, name); // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n\n\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\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\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = (name in RESERVED_SPEC_KEYS);\n\n _invariant(!isReserved, 'ReactClass: You are attempting to define a reserved ' + 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' + 'as an instance property instead; it will still be accessible on the ' + 'constructor.', name);\n\n var isAlreadyDefined = (name in Constructor);\n\n if (isAlreadyDefined) {\n var specPolicy = ReactClassStaticInterface.hasOwnProperty(name) ? ReactClassStaticInterface[name] : null;\n\n _invariant(specPolicy === 'DEFINE_MANY_MERGED', 'ReactClass: You are attempting to define ' + '`%s` on your component more than once. This conflict may be ' + 'due to a mixin.', name);\n\n Constructor[name] = createMergedResultFunction(Constructor[name], property);\n return;\n }\n\n Constructor[name] = property;\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\n\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(one && two && typeof one === 'object' && typeof two === 'object', 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.');\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(one[key] === undefined, 'mergeIntoWithNoDuplicateKeys(): ' + 'Tried to merge two objects with the same key: `%s`. This conflict ' + 'may be due to a mixin; in particular, this may be caused by two ' + 'getInitialState() or getDefaultProps() methods returning objects ' + 'with clashing keys.', key);\n\n one[key] = two[key];\n }\n }\n\n return one;\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\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\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\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\n\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\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\n\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n\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\n boundMethod.bind = function (newThis) {\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 } // 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\n\n if (newThis !== component && newThis !== null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName);\n }\n } else if (!args.length) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName);\n }\n\n return boundMethod;\n }\n\n var reboundMethod = _bind.apply(boundMethod, arguments);\n\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n\n return boundMethod;\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\n\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n\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 componentDidMount() {\n this.__isMounted = true;\n }\n };\n var IsMountedPostMixin = {\n componentWillUnmount: function componentWillUnmount() {\n this.__isMounted = false;\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\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 replaceState(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 isMounted() {\n if (process.env.NODE_ENV !== 'production') {\n warning(this.__didWarnIsMounted, '%s: isMounted is deprecated. Instead, make sure to clean up ' + 'subscriptions and pending requests in componentWillUnmount to ' + 'prevent memory leaks.', this.constructor && this.constructor.displayName || this.name || 'Component');\n this.__didWarnIsMounted = true;\n }\n\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function ReactClassComponent() {};\n\n _assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);\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\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 if (process.env.NODE_ENV !== 'production') {\n warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory');\n } // Wire up auto-binding\n\n\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 this.state = null; // 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\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (initialState === undefined && this.getInitialState._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n\n _invariant(typeof initialState === 'object' && !Array.isArray(initialState), '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent');\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin); // Initialize the defaultProps property after all mixins have been merged.\n\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\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(Constructor.prototype.render, 'createClass(...): Class specification must implement a `render` method.');\n\n if (process.env.NODE_ENV !== 'production') {\n warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component');\n warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component');\n warning(!Constructor.prototype.UNSAFE_componentWillRecieveProps, '%s has a method called UNSAFE_componentWillRecieveProps(). ' + 'Did you mean UNSAFE_componentWillReceiveProps()?', spec.displayName || 'A component');\n } // Reduce time spent doing lookups by setting these on the prototype.\n\n\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 * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar React = require('react');\n\nvar factory = require('./factory');\n\nif (typeof React === 'undefined') {\n throw Error('create-react-class could not find the React object. If you are using script tags, ' + 'make sure that React is being loaded before create-react-class.');\n} // Hack to grab NoopUpdateQueue from isomorphic React\n\n\nvar ReactNoopUpdateQueue = new React.Component().updater;\nmodule.exports = factory(React.Component, React.isValidElement, ReactNoopUpdateQueue);","'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) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction hyphenateProperty(property) {\n return (0, _hyphenateStyleName2.default)(property);\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPrefixedValue;\nvar regex = /-webkit-|-moz-|-ms-/;\n\nfunction isPrefixedValue(value) {\n return typeof value === 'string' && regex.test(value);\n}\n\nmodule.exports = exports['default'];","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\n\nvar ExecutionEnvironment = {\n canUseDOM: canUseDOM,\n canUseWorkers: typeof Worker !== 'undefined',\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n canUseViewport: canUseDOM && !!window.screen,\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\nmodule.exports = ExecutionEnvironment;","\"use strict\";\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\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) 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 * @typechecks\n */\n'use strict';\n\nvar ExecutionEnvironment = require(\"./ExecutionEnvironment\");\n\nvar performance;\n\nif (ExecutionEnvironment.canUseDOM) {\n performance = window.performance || window.msPerformance || window.webkitPerformance;\n}\n\nmodule.exports = performance || {};","\"use strict\";\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 * @typechecks\n */\n\nvar performance = require(\"./performance\");\n\nvar loadTime = Date.now();\n/**\n * Detect if we can use `window.performance.now()` and gracefully fallback to\n * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now\n * because of Facebook's testing infrastructure.\n */\n\nmodule.exports = performance.now ? function () {\n return performance.now();\n} : function () {\n return Date.now() - loadTime;\n};","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar emptyFunction = require(\"./emptyFunction\");\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\n\nfunction printWarning(format) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n}\n\nvar warning = process.env.NODE_ENV !== \"production\" ? function (condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(void 0, [format].concat(args));\n }\n} : emptyFunction;\nmodule.exports = warning;","\"use strict\";\n\nmodule.exports = Object.assign;","'use strict';\n\nvar reactIs = require('react-is');\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;","/* 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;","'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) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction createPrefixer(_ref) {\n var prefixMap = _ref.prefixMap,\n plugins = _ref.plugins;\n return function prefix(style) {\n for (var property in style) {\n var value = style[property]; // handle nested objects\n\n if ((0, _isObject2.default)(value)) {\n style[property] = prefix(value); // handle array values\n } else if (Array.isArray(value)) {\n var combinedValue = [];\n\n for (var i = 0, len = value.length; i < len; ++i) {\n var processedValue = (0, _prefixValue2.default)(plugins, property, value[i], style, prefixMap);\n (0, _addNewValuesOnly2.default)(combinedValue, processedValue || value[i]);\n } // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n\n\n if (combinedValue.length > 0) {\n style[property] = combinedValue;\n }\n } else {\n var _processedValue = (0, _prefixValue2.default)(plugins, property, value, style, prefixMap); // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n\n\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; // https://developer.mozilla.org/en-US/docs/Web/CSS/background-clip#Browser_compatibility\n\nfunction backgroundClip(property, value) {\n if (typeof value === 'string' && value === 'text') {\n return ['-webkit-text', 'text'];\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = crossFade;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // http://caniuse.com/#search=cross-fade\n\n\nvar prefixes = ['-webkit-', ''];\n\nfunction crossFade(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('cross-fade(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/cross-fade\\(/g, prefix + 'cross-fade(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cursor;\nvar prefixes = ['-webkit-', '-moz-', ''];\nvar values = {\n 'zoom-in': true,\n 'zoom-out': true,\n grab: true,\n grabbing: true\n};\n\nfunction cursor(property, value) {\n if (property === 'cursor' && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = filter;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // http://caniuse.com/#feat=css-filter-function\n\n\nvar prefixes = ['-webkit-', ''];\n\nfunction filter(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('filter(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/filter\\(/g, prefix + 'filter(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flex;\nvar values = {\n flex: ['-webkit-box', '-moz-box', '-ms-flexbox', '-webkit-flex', 'flex'],\n 'inline-flex': ['-webkit-inline-box', '-moz-inline-box', '-ms-inline-flexbox', '-webkit-inline-flex', 'inline-flex']\n};\n\nfunction flex(property, value) {\n if (property === 'display' && values.hasOwnProperty(value)) {\n return values[value];\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxIE;\nvar alternativeValues = {\n 'space-around': 'distribute',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end'\n};\nvar alternativeProps = {\n alignContent: 'msFlexLinePack',\n alignSelf: 'msFlexItemAlign',\n alignItems: 'msFlexAlign',\n justifyContent: 'msFlexPack',\n order: 'msFlexOrder',\n flexGrow: 'msFlexPositive',\n flexShrink: 'msFlexNegative',\n flexBasis: 'msFlexPreferredSize' // Full expanded syntax is flex-grow | flex-shrink | flex-basis.\n\n};\nvar flexShorthandMappings = {\n auto: '1 1 auto',\n inherit: 'inherit',\n initial: '0 1 auto',\n none: '0 0 auto',\n unset: 'unset'\n};\nvar isUnitlessNumber = /^\\d+(\\.\\d+)?$/;\nvar logTag = 'inline-style-prefixer.flexboxIE plugin';\n\nfunction flexboxIE(property, value, style) {\n if (Object.prototype.hasOwnProperty.call(alternativeProps, property)) {\n style[alternativeProps[property]] = alternativeValues[value] || value;\n }\n\n if (property === 'flex') {\n // For certain values we can do straight mappings based on the spec\n // for the expansions.\n if (Object.prototype.hasOwnProperty.call(flexShorthandMappings, value)) {\n style.msFlex = flexShorthandMappings[value];\n return;\n } // Here we have no direct mapping, so we favor looking for a\n // unitless positive number as that will be the most common use-case.\n\n\n if (isUnitlessNumber.test(value)) {\n style.msFlex = value + ' 1 0%';\n return;\n }\n\n if (typeof value === 'number' && value < 0) {\n // ignore negative values;\n console.warn(logTag + ': \"flex: ' + value + '\", negative values is not valid and will be ignored.');\n return;\n }\n\n if (!value.split) {\n console.warn(logTag + ': \"flex: ' + value + '\", value format is not detected, it will be remain as is');\n style.msFlex = value;\n return;\n } // The next thing we can look for is if there are multiple values.\n\n\n var flexValues = value.split(/\\s/); // If we only have a single value that wasn't a positive unitless\n // or a pre-mapped value, then we can assume it is a unit value.\n\n switch (flexValues.length) {\n case 1:\n style.msFlex = '1 1 ' + value;\n return;\n\n case 2:\n // If we have 2 units, then we expect that the first will\n // always be a unitless number and represents flex-grow.\n // The second unit will represent flex-shrink for a unitless\n // value, or flex-basis otherwise.\n if (isUnitlessNumber.test(flexValues[1])) {\n style.msFlex = flexValues[0] + ' ' + flexValues[1] + ' 0%';\n } else {\n style.msFlex = flexValues[0] + ' 1 ' + flexValues[1];\n }\n\n return;\n\n default:\n style.msFlex = value;\n }\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxOld;\nvar alternativeValues = {\n 'space-around': 'justify',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end',\n 'wrap-reverse': 'multiple',\n wrap: 'multiple'\n};\nvar alternativeProps = {\n alignItems: 'WebkitBoxAlign',\n justifyContent: 'WebkitBoxPack',\n flexWrap: 'WebkitBoxLines',\n flexGrow: 'WebkitBoxFlex'\n};\n\nfunction flexboxOld(property, value, style) {\n if (property === 'flexDirection' && typeof value === 'string') {\n if (value.indexOf('column') > -1) {\n style.WebkitBoxOrient = 'vertical';\n } else {\n style.WebkitBoxOrient = 'horizontal';\n }\n\n if (value.indexOf('reverse') > -1) {\n style.WebkitBoxDirection = 'reverse';\n } else {\n style.WebkitBoxDirection = 'normal';\n }\n }\n\n if (alternativeProps.hasOwnProperty(property)) {\n style[alternativeProps[property]] = alternativeValues[value] || value;\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = gradient;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar prefixes = ['-webkit-', '-moz-', ''];\nvar values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/gi;\n\nfunction gradient(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && values.test(value)) {\n return prefixes.map(function (prefix) {\n return value.replace(values, function (grad) {\n return prefix + grad;\n });\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\nexports.default = grid;\n\nfunction isSimplePositionValue(value) {\n return typeof value === 'number' && !isNaN(value);\n}\n\nfunction isComplexSpanValue(value) {\n return typeof value === 'string' && value.includes('/');\n}\n\nvar alignmentValues = ['center', 'end', 'start', 'stretch'];\nvar displayValues = {\n 'inline-grid': ['-ms-inline-grid', 'inline-grid'],\n grid: ['-ms-grid', 'grid']\n};\nvar propertyConverters = {\n alignSelf: function alignSelf(value, style) {\n if (alignmentValues.indexOf(value) > -1) {\n style.msGridRowAlign = value;\n }\n },\n gridColumn: function gridColumn(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridColumn = value;\n } else if (isComplexSpanValue(value)) {\n var _value$split = value.split('/'),\n _value$split2 = _slicedToArray(_value$split, 2),\n start = _value$split2[0],\n end = _value$split2[1];\n\n propertyConverters.gridColumnStart(+start, style);\n\n var _end$split = end.split(/ ?span /),\n _end$split2 = _slicedToArray(_end$split, 2),\n maybeSpan = _end$split2[0],\n maybeNumber = _end$split2[1];\n\n if (maybeSpan === '') {\n propertyConverters.gridColumnEnd(+start + +maybeNumber, style);\n } else {\n propertyConverters.gridColumnEnd(+end, style);\n }\n } else {\n propertyConverters.gridColumnStart(value, style);\n }\n },\n gridColumnEnd: function gridColumnEnd(value, style) {\n var msGridColumn = style.msGridColumn;\n\n if (isSimplePositionValue(value) && isSimplePositionValue(msGridColumn)) {\n style.msGridColumnSpan = value - msGridColumn;\n }\n },\n gridColumnStart: function gridColumnStart(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridColumn = value;\n }\n },\n gridRow: function gridRow(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridRow = value;\n } else if (isComplexSpanValue(value)) {\n var _value$split3 = value.split('/'),\n _value$split4 = _slicedToArray(_value$split3, 2),\n start = _value$split4[0],\n end = _value$split4[1];\n\n propertyConverters.gridRowStart(+start, style);\n\n var _end$split3 = end.split(/ ?span /),\n _end$split4 = _slicedToArray(_end$split3, 2),\n maybeSpan = _end$split4[0],\n maybeNumber = _end$split4[1];\n\n if (maybeSpan === '') {\n propertyConverters.gridRowEnd(+start + +maybeNumber, style);\n } else {\n propertyConverters.gridRowEnd(+end, style);\n }\n } else {\n propertyConverters.gridRowStart(value, style);\n }\n },\n gridRowEnd: function gridRowEnd(value, style) {\n var msGridRow = style.msGridRow;\n\n if (isSimplePositionValue(value) && isSimplePositionValue(msGridRow)) {\n style.msGridRowSpan = value - msGridRow;\n }\n },\n gridRowStart: function gridRowStart(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridRow = value;\n }\n },\n gridTemplateColumns: function gridTemplateColumns(value, style) {\n style.msGridColumns = value;\n },\n gridTemplateRows: function gridTemplateRows(value, style) {\n style.msGridRows = value;\n },\n justifySelf: function justifySelf(value, style) {\n if (alignmentValues.indexOf(value) > -1) {\n style.msGridColumnAlign = value;\n }\n }\n};\n\nfunction grid(property, value, style) {\n if (property === 'display' && value in displayValues) {\n return displayValues[value];\n }\n\n if (property in propertyConverters) {\n var propertyConverter = propertyConverters[property];\n propertyConverter(value, style);\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = imageSet;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // http://caniuse.com/#feat=css-image-set\n\n\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\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;\n\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-', ''];\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) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar properties = {\n transition: true,\n transitionProperty: true,\n WebkitTransition: true,\n WebkitTransitionProperty: true,\n MozTransition: true,\n MozTransitionProperty: true\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 } // only split multi values, not cubic beziers\n\n\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\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\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); // if the property is already prefixed\n\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;\n\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;\n\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;\n\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) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction prefixProperty(prefixProperties, property, style) {\n if (prefixProperties.hasOwnProperty(property)) {\n var newStyle = {};\n var requiredPrefixes = prefixProperties[property];\n var capitalizedProperty = (0, _capitalizeString2.default)(property);\n var keys = Object.keys(style);\n\n for (var i = 0; i < keys.length; i++) {\n var styleProperty = keys[i];\n\n if (styleProperty === property) {\n for (var j = 0; j < requiredPrefixes.length; j++) {\n newStyle[requiredPrefixes[j] + capitalizedProperty] = style[property];\n }\n }\n\n newStyle[styleProperty] = style[styleProperty];\n }\n\n return newStyle;\n }\n\n return style;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixValue;\n\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); // we can stop processing if a value is returned\n // as all plugin criteria are unique\n\n if (processedValue) {\n return processedValue;\n }\n }\n}","/*\n * Copyright (c) 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\nfunction normalizeColor(color) {\n var match;\n\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n\n return null;\n } // Ordered based on occurrences on Facebook codebase\n\n\n if (match = matchers.hex6.exec(color)) {\n return parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n if (names.hasOwnProperty(color)) {\n return names[color];\n }\n\n if (match = matchers.rgb.exec(color)) {\n return (parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n 0x000000ff // a\n ) >>> 0;\n }\n\n if (match = matchers.rgba.exec(color)) {\n return (parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n parse1(match[4]) // a\n ) >>> 0;\n }\n\n if (match = matchers.hex3.exec(color)) {\n return parseInt(match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n 'ff', // a\n 16) >>> 0;\n } // https://drafts.csswg.org/css-color-4/#hex-notation\n\n\n if (match = matchers.hex8.exec(color)) {\n return parseInt(match[1], 16) >>> 0;\n }\n\n if (match = matchers.hex4.exec(color)) {\n return parseInt(match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n match[4] + match[4], // a\n 16) >>> 0;\n }\n\n if (match = matchers.hsl.exec(color)) {\n return (hslToRgb(parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) | 0x000000ff // a\n ) >>> 0;\n }\n\n if (match = matchers.hsla.exec(color)) {\n return (hslToRgb(parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) | parse1(match[4]) // a\n ) >>> 0;\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n\n if (t > 1) {\n t -= 1;\n }\n\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n\n if (t < 1 / 2) {\n return q;\n }\n\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n var r = hue2rgb(p, q, h + 1 / 3);\n var g = hue2rgb(p, q, h);\n var b = hue2rgb(p, q, h - 1 / 3);\n return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;\n} // var INTEGER = '[-+]?\\\\d+';\n\n\nvar NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nvar PERCENTAGE = NUMBER + '%';\n\nfunction toArray(arrayLike) {\n return Array.prototype.slice.call(arrayLike, 0);\n}\n\nfunction call() {\n return '\\\\(\\\\s*(' + toArray(arguments).join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nvar matchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER)),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/\n};\n\nfunction parse255(str) {\n var int = parseInt(str, 10);\n\n if (int < 0) {\n return 0;\n }\n\n if (int > 255) {\n return 255;\n }\n\n return int;\n}\n\nfunction parse360(str) {\n var int = parseFloat(str);\n return (int % 360 + 360) % 360 / 360;\n}\n\nfunction parse1(str) {\n var num = parseFloat(str);\n\n if (num < 0) {\n return 0;\n }\n\n if (num > 1) {\n return 255;\n }\n\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n var int = parseFloat(str, 10);\n\n if (int < 0) {\n return 0;\n }\n\n if (int > 100) {\n return 1;\n }\n\n return int / 100;\n}\n\nvar names = {\n transparent: 0x00000000,\n // http://www.w3.org/TR/css3-color/#svg-color\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff\n};\n\nfunction rgba(colorInt) {\n var r = Math.round((colorInt & 0xff000000) >>> 24);\n var g = Math.round((colorInt & 0x00ff0000) >>> 16);\n var b = Math.round((colorInt & 0x0000ff00) >>> 8);\n var a = ((colorInt & 0x000000ff) >>> 0) / 255;\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\n\n;\nnormalizeColor.rgba = rgba;\nmodule.exports = normalizeColor;","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\n\nfunction z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n\n default:\n return u;\n }\n\n }\n\n case d:\n return u;\n }\n }\n}\n\nfunction A(a) {\n return z(a) === m;\n}\n\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\n\nexports.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n};\n\nexports.isConcurrentMode = A;\n\nexports.isContextConsumer = function (a) {\n return z(a) === k;\n};\n\nexports.isContextProvider = function (a) {\n return z(a) === h;\n};\n\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\n\nexports.isForwardRef = function (a) {\n return z(a) === n;\n};\n\nexports.isFragment = function (a) {\n return z(a) === e;\n};\n\nexports.isLazy = function (a) {\n return z(a) === t;\n};\n\nexports.isMemo = function (a) {\n return z(a) === r;\n};\n\nexports.isPortal = function (a) {\n return z(a) === d;\n};\n\nexports.isProfiler = function (a) {\n return z(a) === g;\n};\n\nexports.isStrictMode = function (a) {\n return z(a) === f;\n};\n\nexports.isSuspense = function (a) {\n return z(a) === p;\n};\n\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n};\n\nexports.typeOf = z;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _ExecutionEnvironment = _interopRequireDefault(require(\"fbjs/lib/ExecutionEnvironment\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nvar doLeftAndRightSwapInRTL = true;\nvar isPreferredLanguageRTL = false;\nvar isRTLAllowed = true;\nvar isRTLForced = false;\n\nvar isRTL = function isRTL() {\n if (isRTLForced) {\n return true;\n }\n\n return isRTLAllowed && isPreferredLanguageRTL;\n};\n\nvar onDirectionChange = function onDirectionChange() {\n if (_ExecutionEnvironment.default.canUseDOM) {\n if (document.documentElement && document.documentElement.setAttribute) {\n document.documentElement.setAttribute('dir', isRTL() ? 'rtl' : 'ltr');\n }\n }\n};\n\nvar I18nManager = {\n allowRTL: function allowRTL(bool) {\n isRTLAllowed = bool;\n onDirectionChange();\n },\n forceRTL: function forceRTL(bool) {\n isRTLForced = bool;\n onDirectionChange();\n },\n getConstants: function getConstants() {\n return {\n doLeftAndRightSwapInRTL: doLeftAndRightSwapInRTL,\n isRTL: isRTL()\n };\n },\n setPreferredLanguageRTL: function setPreferredLanguageRTL(bool) {\n isPreferredLanguageRTL = bool;\n onDirectionChange();\n },\n swapLeftAndRightInRTL: function swapLeftAndRightInRTL(bool) {\n doLeftAndRightSwapInRTL = bool;\n }\n};\nvar _default = I18nManager;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar emptyObject = {};\nvar objects = {};\nvar prefix = 'r';\nvar uniqueID = 1;\n\nvar createKey = function createKey(id) {\n return prefix + \"-\" + id;\n};\n\nvar ReactNativePropRegistry = /*#__PURE__*/function () {\n function ReactNativePropRegistry() {}\n\n ReactNativePropRegistry.register = function register(object) {\n var id = uniqueID++;\n\n if (process.env.NODE_ENV !== 'production') {\n Object.freeze(object);\n }\n\n var key = createKey(id);\n objects[key] = object;\n return id;\n };\n\n ReactNativePropRegistry.getByID = function getByID(id) {\n if (!id) {\n // Used in the style={[condition && id]} pattern,\n // we want it to be a no-op when the value is false or null\n return emptyObject;\n }\n\n var key = createKey(id);\n var object = objects[key];\n\n if (!object) {\n console.warn('Invalid style with id `' + id + '`. Skipping ...');\n return emptyObject;\n }\n\n return object;\n };\n\n return ReactNativePropRegistry;\n}();\n\nexports.default = ReactNativePropRegistry;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.atomic = atomic;\nexports.classic = classic;\nexports.inline = inline;\nexports.stringifyValueWithProperty = stringifyValueWithProperty;\n\nvar _createReactDOMStyle = _interopRequireDefault(require(\"./createReactDOMStyle\"));\n\nvar _hash = _interopRequireDefault(require(\"../../vendor/hash\"));\n\nvar _hyphenateStyleName = _interopRequireDefault(require(\"hyphenate-style-name\"));\n\nvar _normalizeValueWithProperty = _interopRequireDefault(require(\"./normalizeValueWithProperty\"));\n\nvar _prefixStyles = _interopRequireWildcard(require(\"../../modules/prefixStyles\"));\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj.default = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar cache = {\n get: function get(property, value) {\n if (cache[property] != null && cache[property].hasOwnProperty(value) && cache[property][value] != null) {\n return cache[property][value];\n }\n },\n set: function set(property, value, object) {\n if (cache[property] == null) {\n cache[property] = {};\n }\n\n return cache[property][value] = object;\n }\n};\n/**\n * Compile style to atomic CSS rules.\n */\n\nfunction atomic(style) {\n return Object.keys(style).sort().reduce(function (acc, property) {\n var value = style[property];\n\n if (value != null) {\n var valueString = stringifyValueWithProperty(value, property);\n var cachedResult = cache.get(property, valueString);\n\n if (cachedResult != null) {\n var identifier = cachedResult.identifier;\n acc[identifier] = cachedResult;\n } else {\n var _identifier = createIdentifier('r', property, value);\n\n var rules = createAtomicRules(_identifier, property, value);\n\n var _cachedResult = cache.set(property, valueString, {\n property: property,\n value: stringifyValueWithProperty(value, property),\n identifier: _identifier,\n rules: rules\n });\n\n acc[_identifier] = _cachedResult;\n }\n }\n\n return acc;\n }, {});\n}\n/**\n * Compile simple style object to classic CSS rules.\n * No support for 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\n\n\nfunction classic(style, name) {\n var _ref;\n\n var identifier = createIdentifier('css', name, style);\n\n var animationKeyframes = style.animationKeyframes,\n rest = _objectWithoutPropertiesLoose(style, [\"animationKeyframes\"]);\n\n var rules = [];\n var selector = \".\" + identifier;\n var animationName;\n\n if (animationKeyframes != null) {\n var _processKeyframesValu = processKeyframesValue(animationKeyframes),\n animationNames = _processKeyframesValu.animationNames,\n keyframesRules = _processKeyframesValu.rules;\n\n animationName = animationNames.join(',');\n rules.push.apply(rules, keyframesRules);\n }\n\n var block = createDeclarationBlock(_objectSpread(_objectSpread({}, rest), {}, {\n animationName: animationName\n }));\n rules.push(\"\" + selector + block);\n return _ref = {}, _ref[identifier] = {\n identifier: identifier,\n rules: rules\n }, _ref;\n}\n/**\n * Compile simple style object to inline DOM styles.\n * No support for 'animationKeyframes', 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\n\n\nfunction inline(style) {\n return (0, _prefixStyles.prefixInlineStyles)((0, _createReactDOMStyle.default)(style));\n}\n/**\n * Create a value string that normalizes different input values with a common\n * output.\n */\n\n\nfunction stringifyValueWithProperty(value, property) {\n // e.g., 0 => '0px', 'black' => 'rgba(0,0,0,1)'\n var normalizedValue = (0, _normalizeValueWithProperty.default)(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\n\nfunction createAtomicRules(identifier, property, value) {\n var rules = [];\n var selector = \".\" + identifier; // Handle non-standard properties and object values that require multiple\n // CSS rules to be created.\n\n switch (property) {\n case 'animationKeyframes':\n {\n var _processKeyframesValu2 = processKeyframesValue(value),\n animationNames = _processKeyframesValu2.animationNames,\n keyframesRules = _processKeyframesValu2.rules;\n\n var block = createDeclarationBlock({\n animationName: animationNames.join(',')\n });\n rules.push.apply(rules, [\"\" + selector + block].concat(keyframesRules));\n break;\n }\n // Equivalent to using '::placeholder'\n\n case 'placeholderTextColor':\n {\n var _block = createDeclarationBlock({\n color: value,\n opacity: 1\n });\n\n rules.push(selector + \"::-webkit-input-placeholder\" + _block, selector + \"::-moz-placeholder\" + _block, selector + \":-ms-input-placeholder\" + _block, selector + \"::placeholder\" + _block);\n break;\n }\n // Polyfill for additional 'pointer-events' values\n // See d13f78622b233a0afc0c7a200c0a0792c8ca9e58\n\n case 'pointerEvents':\n {\n var _createDeclarationBlo3;\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 _createDeclarationBlo;\n\n var _block3 = createDeclarationBlock((_createDeclarationBlo = {}, _createDeclarationBlo[property] = 'none', _createDeclarationBlo));\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 _createDeclarationBlo2;\n\n var _block4 = createDeclarationBlock((_createDeclarationBlo2 = {}, _createDeclarationBlo2[property] = 'auto', _createDeclarationBlo2));\n\n rules.push(selector + \">*\" + _block4);\n }\n }\n\n var _block2 = createDeclarationBlock((_createDeclarationBlo3 = {}, _createDeclarationBlo3[property] = finalValue, _createDeclarationBlo3));\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 var _createDeclarationBlo4;\n\n if (value === 'none') {\n rules.push(selector + \"::-webkit-scrollbar{display:none}\");\n }\n\n var _block5 = createDeclarationBlock((_createDeclarationBlo4 = {}, _createDeclarationBlo4[property] = value, _createDeclarationBlo4));\n\n rules.push(\"\" + selector + _block5);\n break;\n }\n\n default:\n {\n var _createDeclarationBlo5;\n\n var _block6 = createDeclarationBlock((_createDeclarationBlo5 = {}, _createDeclarationBlo5[property] = value, _createDeclarationBlo5));\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 = (0, _prefixStyles.default)((0, _createReactDOMStyle.default)(style));\n var declarationsString = Object.keys(domStyle).map(function (property) {\n var value = domStyle[property];\n var prop = (0, _hyphenateStyleName.default)(property); // The prefixer may return an array of values:\n // { display: [ '-webkit-flex', 'flex' ] }\n // to represent \"fallback\" declarations\n // { display: -webkit-flex; display: flex; }\n\n if (Array.isArray(value)) {\n return value.map(function (v) {\n return prop + \":\" + v;\n }).join(';');\n } else {\n return prop + \":\" + value;\n }\n }) // Once properties are hyphenated, this will put the vendor\n // prefixed and short-form properties first in the list.\n .sort().join(';');\n return \"{\" + declarationsString + \";}\";\n}\n/**\n * An identifier is associated with a unique set of styles.\n */\n\n\nfunction createIdentifier(prefix, name, value) {\n var hashedString = (0, _hash.default)(name + stringifyValueWithProperty(value, name));\n return process.env.NODE_ENV !== 'production' ? prefix + \"-\" + name + \"-\" + hashedString : prefix + \"-\" + hashedString;\n}\n/**\n * Create individual CSS keyframes rules.\n */\n\n\nfunction createKeyframes(keyframes) {\n var prefixes = ['-webkit-', ''];\n var identifier = createIdentifier('r', 'animation', keyframes);\n var steps = '{' + Object.keys(keyframes).map(function (stepName) {\n var rule = keyframes[stepName];\n var block = createDeclarationBlock(rule);\n return \"\" + stepName + block;\n }).join('') + '}';\n var rules = prefixes.map(function (prefix) {\n return \"@\" + prefix + \"keyframes \" + identifier + steps;\n });\n return {\n identifier: identifier,\n rules: rules\n };\n}\n/**\n * Create CSS keyframes rules and names from a StyleSheet keyframes object.\n */\n\n\nfunction processKeyframesValue(keyframesValue) {\n if (typeof keyframesValue === 'number') {\n throw new Error(\"Invalid CSS keyframes type: \" + typeof keyframesValue);\n }\n\n var animationNames = [];\n var rules = [];\n var value = Array.isArray(keyframesValue) ? keyframesValue : [keyframesValue];\n value.forEach(function (keyframes) {\n if (typeof keyframes === 'string') {\n // Support external animation libraries (identifiers only)\n animationNames.push(keyframes);\n } else {\n // Create rules for each of the keyframes\n var _createKeyframes = createKeyframes(keyframes),\n identifier = _createKeyframes.identifier,\n keyframesRules = _createKeyframes.rules;\n\n animationNames.push(identifier);\n rules.push.apply(rules, keyframesRules);\n }\n });\n return {\n animationNames: animationNames,\n rules: rules\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.SYSTEM_FONT_STACK = exports.MONOSPACE_FONT_STACK = exports.STYLE_SHORT_FORM_EXPANSIONS = exports.STYLE_GROUPS = exports.STYLE_ELEMENT_ID = void 0;\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar STYLE_ELEMENT_ID = 'react-native-stylesheet';\nexports.STYLE_ELEMENT_ID = STYLE_ELEMENT_ID;\nvar STYLE_GROUPS = {\n reset: 0,\n modality: 0.1,\n classicReset: 0.5,\n classic: 1,\n atomic: 2.2,\n custom: {\n borderColor: 2,\n borderRadius: 2,\n borderStyle: 2,\n borderWidth: 2,\n display: 2,\n flex: 2,\n margin: 2,\n overflow: 2,\n overscrollBehavior: 2,\n padding: 2,\n marginHorizontal: 2.1,\n marginVertical: 2.1,\n paddingHorizontal: 2.1,\n paddingVertical: 2.1\n }\n};\nexports.STYLE_GROUPS = STYLE_GROUPS;\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 margin: ['marginTop', 'marginRight', 'marginBottom', 'marginLeft'],\n marginHorizontal: ['marginRight', 'marginLeft'],\n marginVertical: ['marginTop', 'marginBottom'],\n overflow: ['overflowX', 'overflowY'],\n overscrollBehavior: ['overscrollBehaviorX', 'overscrollBehaviorY'],\n padding: ['paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft'],\n paddingHorizontal: ['paddingRight', 'paddingLeft'],\n paddingVertical: ['paddingTop', 'paddingBottom']\n};\nexports.STYLE_SHORT_FORM_EXPANSIONS = STYLE_SHORT_FORM_EXPANSIONS;\nvar MONOSPACE_FONT_STACK = 'monospace,monospace';\nexports.MONOSPACE_FONT_STACK = MONOSPACE_FONT_STACK;\nvar SYSTEM_FONT_STACK = '-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif';\nexports.SYSTEM_FONT_STACK = SYSTEM_FONT_STACK;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = createCSSStyleSheet;\n\nvar _ExecutionEnvironment = require(\"fbjs/lib/ExecutionEnvironment\");\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// $FlowFixMe: HTMLStyleElement is incorrectly typed - https://github.com/facebook/flow/issues/2696\n\n\nfunction createCSSStyleSheet(id) {\n if (_ExecutionEnvironment.canUseDOM) {\n var element = document.getElementById(id);\n\n if (element != null) {\n // $FlowFixMe: HTMLElement is incorrectly typed\n return element.sheet;\n } else {\n var _element = document.createElement('style');\n\n _element.setAttribute('id', id);\n\n var head = document.head;\n\n if (head) {\n head.insertBefore(_element, head.firstChild);\n }\n\n return _element.sheet;\n }\n } else {\n return null;\n }\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _normalizeValueWithProperty = _interopRequireDefault(require(\"./normalizeValueWithProperty\"));\n\nvar _resolveShadowValue = _interopRequireDefault(require(\"./resolveShadowValue\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar defaultOffset = {\n height: 0,\n width: 0\n};\n\nfunction boxShadowReducer(resolvedStyle, style) {\n var boxShadow = style.boxShadow;\n var shadow = (0, _resolveShadowValue.default)(style);\n\n if (shadow != null) {\n resolvedStyle.boxShadow = boxShadow ? boxShadow + \", \" + shadow : shadow;\n }\n}\n\nfunction textShadowReducer(resolvedStyle, style) {\n var textShadowColor = style.textShadowColor,\n textShadowOffset = style.textShadowOffset,\n textShadowRadius = style.textShadowRadius;\n\n var _ref = textShadowOffset || defaultOffset,\n height = _ref.height,\n width = _ref.width;\n\n var radius = textShadowRadius || 0;\n var offsetX = (0, _normalizeValueWithProperty.default)(width);\n var offsetY = (0, _normalizeValueWithProperty.default)(height);\n var blurRadius = (0, _normalizeValueWithProperty.default)(radius);\n var color = (0, _normalizeValueWithProperty.default)(textShadowColor, 'textShadowColor');\n\n if (color && (height !== 0 || width !== 0 || radius !== 0) && offsetX != null && offsetY != null && blurRadius != null) {\n resolvedStyle.textShadow = offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n}\n\nvar createCompileableStyle = function createCompileableStyle(styles) {\n var shadowColor = styles.shadowColor,\n shadowOffset = styles.shadowOffset,\n shadowOpacity = styles.shadowOpacity,\n shadowRadius = styles.shadowRadius,\n textShadowColor = styles.textShadowColor,\n textShadowOffset = styles.textShadowOffset,\n textShadowRadius = styles.textShadowRadius,\n nextStyles = _objectWithoutPropertiesLoose(styles, [\"shadowColor\", \"shadowOffset\", \"shadowOpacity\", \"shadowRadius\", \"textShadowColor\", \"textShadowOffset\", \"textShadowRadius\"]);\n\n if (shadowColor != null || shadowOffset != null || shadowOpacity != null || shadowRadius != null) {\n boxShadowReducer(nextStyles, styles);\n }\n\n if (textShadowColor != null || textShadowOffset != null || textShadowRadius != null) {\n textShadowReducer(nextStyles, styles);\n }\n\n return nextStyles;\n};\n\nvar _default = createCompileableStyle;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = createOrderedCSSStyleSheet;\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar slice = Array.prototype.slice;\n/**\n * 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\nfunction createOrderedCSSStyleSheet(sheet) {\n var groups = {};\n var selectors = {};\n /**\n * Hydrate approximate record from any existing rules in the sheet.\n */\n\n if (sheet != null) {\n var group;\n slice.call(sheet.cssRules).forEach(function (cssRule, i) {\n var cssText = cssRule.cssText; // Create record of existing selectors and rules\n\n if (cssText.indexOf('stylesheet-group') > -1) {\n group = decodeGroupRule(cssRule);\n groups[group] = {\n start: i,\n rules: [cssText]\n };\n } else {\n var selectorText = getSelectorText(cssText);\n\n if (selectorText != null) {\n selectors[selectorText] = true;\n groups[group].rules.push(cssText);\n }\n }\n });\n }\n\n function sheetInsert(sheet, group, text) {\n var orderedGroups = getOrderedGroups(groups);\n var groupIndex = orderedGroups.indexOf(group);\n var nextGroupIndex = groupIndex + 1;\n var nextGroup = orderedGroups[nextGroupIndex]; // Insert rule before the next group, or at the end of the stylesheet\n\n var position = nextGroup != null && groups[nextGroup].start != null ? groups[nextGroup].start : sheet.cssRules.length;\n var isInserted = insertRuleAt(sheet, text, position);\n\n if (isInserted) {\n // Set the starting index of the new group\n if (groups[group].start == null) {\n groups[group].start = position;\n } // Increment the starting index of all subsequent groups\n\n\n for (var i = nextGroupIndex; i < orderedGroups.length; i += 1) {\n var groupNumber = orderedGroups[i];\n var previousStart = groups[groupNumber].start;\n groups[groupNumber].start = previousStart + 1;\n }\n }\n\n return isInserted;\n }\n\n var OrderedCSSStyleSheet = {\n /**\n * The textContent of the style sheet.\n */\n getTextContent: function getTextContent() {\n return getOrderedGroups(groups).map(function (group) {\n var rules = groups[group].rules;\n return rules.join('\\n');\n }).join('\\n');\n },\n\n /**\n * Insert a rule into the style sheet\n */\n insert: function insert(cssText, groupValue) {\n var group = Number(groupValue); // Create a new group.\n\n if (groups[group] == null) {\n var markerRule = encodeGroupRule(group); // Create the internal record.\n\n groups[group] = {\n start: null,\n rules: [markerRule]\n }; // Update CSSOM.\n\n if (sheet != null) {\n sheetInsert(sheet, group, markerRule);\n }\n } // selectorText is more reliable than cssText for insertion checks. The\n // browser excludes vendor-prefixed properties and rewrites certain values\n // making cssText more likely to be different from what was inserted.\n\n\n var selectorText = getSelectorText(cssText);\n\n if (selectorText != null && selectors[selectorText] == null) {\n // Update the internal records.\n selectors[selectorText] = true;\n groups[group].rules.push(cssText); // Update CSSOM.\n\n if (sheet != null) {\n var isInserted = sheetInsert(sheet, group, cssText);\n\n if (!isInserted) {\n // Revert internal record change if a rule was rejected (e.g.,\n // unrecognized pseudo-selector)\n groups[group].rules.pop();\n }\n }\n }\n }\n };\n return OrderedCSSStyleSheet;\n}\n/**\n * Helper functions\n */\n\n\nfunction encodeGroupRule(group) {\n return \"[stylesheet-group=\\\"\" + group + \"\\\"]{}\";\n}\n\nfunction decodeGroupRule(cssRule) {\n return Number(cssRule.selectorText.split(/[\"']/)[1]);\n}\n\nfunction getOrderedGroups(obj) {\n return Object.keys(obj).map(Number).sort(function (a, b) {\n return a > b ? 1 : -1;\n });\n}\n\nvar pattern = /\\s*([,])\\s*/g;\n\nfunction getSelectorText(cssText) {\n var selector = cssText.split('{')[0].trim();\n return selector !== '' ? selector.replace(pattern, '$1') : null;\n}\n\nfunction insertRuleAt(root, cssText, position) {\n try {\n // $FlowFixMe: Flow is missing CSSOM types needed to type 'root'.\n root.insertRule(cssText, position);\n return true;\n } catch (e) {\n // JSDOM doesn't support `CSSSMediaRule#insertRule`.\n // Also ignore errors that occur from attempting to insert vendor-prefixed selectors.\n return false;\n }\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _ExecutionEnvironment = require(\"fbjs/lib/ExecutionEnvironment\");\n\nvar _constants = require(\"./constants\");\n\nvar _normalizeValueWithProperty = _interopRequireDefault(require(\"./normalizeValueWithProperty\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\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 * The browser implements the CSS cascade, where the order of properties is a\n * factor in determining which styles to paint. React Native is different. It\n * gives giving precedence to the more specific style property. For example,\n * the value of `paddingTop` takes precedence over that of `padding`.\n *\n * This module creates mutally exclusive style declarations by expanding all of\n * React Native's supported shortform properties (e.g. `padding`) to their\n * longfrom equivalents.\n */\n\n\nvar emptyObject = {};\nvar supportsCSS3TextDecoration = !_ExecutionEnvironment.canUseDOM || window.CSS != null && window.CSS.supports != null && (window.CSS.supports('text-decoration-line', 'none') || window.CSS.supports('-webkit-text-decoration-line', 'none'));\n/**\n * Transform\n */\n// { scale: 2 } => 'scale(2)'\n// { translateX: 20 } => 'translateX(20px)'\n// { matrix: [1,2,3,4,5,6] } => 'matrix(1,2,3,4,5,6)'\n\nvar mapTransform = function mapTransform(transform) {\n var type = Object.keys(transform)[0];\n var value = transform[type];\n\n if (type === 'matrix' || type === 'matrix3d') {\n return type + \"(\" + value.join(',') + \")\";\n } else {\n var normalizedValue = (0, _normalizeValueWithProperty.default)(value, type);\n return type + \"(\" + normalizedValue + \")\";\n }\n};\n\nvar resolveTransform = function resolveTransform(resolvedStyle, style) {\n var transform = style.transform;\n\n if (Array.isArray(style.transform)) {\n transform = style.transform.map(mapTransform).join(' ');\n }\n\n resolvedStyle.transform = transform;\n};\n/**\n * Reducer\n */\n\n\nvar createReactDOMStyle = function createReactDOMStyle(style) {\n if (!style) {\n return emptyObject;\n }\n\n var resolvedStyle = {};\n Object.keys(style).sort().forEach(function (prop) {\n var value = (0, _normalizeValueWithProperty.default)(style[prop], prop); // Ignore everything else with a null value\n\n if (value == null) {\n return;\n }\n\n switch (prop) {\n // Ignore some React Native styles\n case 'elevation':\n case 'overlayColor':\n case 'resizeMode':\n case 'tintColor':\n {\n break;\n }\n // TODO: remove once this issue is fixed\n // https://github.com/rofrischmann/inline-style-prefixer/issues/159\n\n case 'backgroundClip':\n {\n if (value === 'text') {\n resolvedStyle.backgroundClip = value;\n resolvedStyle.WebkitBackgroundClip = value;\n }\n\n break;\n }\n // The 'flex' property value in React Native must be a positive integer,\n // 0, or -1.\n\n case 'flex':\n {\n if (value === -1) {\n resolvedStyle.flexGrow = 0;\n resolvedStyle.flexShrink = 1;\n resolvedStyle.flexBasis = 'auto';\n } else {\n resolvedStyle.flex = value;\n }\n\n break;\n }\n\n case 'font':\n {\n resolvedStyle[prop] = value.replace('System', _constants.SYSTEM_FONT_STACK);\n break;\n }\n\n case 'fontFamily':\n {\n if (value.indexOf('System') > -1) {\n var stack = value.split(/,\\s*/);\n stack[stack.indexOf('System')] = _constants.SYSTEM_FONT_STACK;\n resolvedStyle[prop] = stack.join(',');\n } else if (value === 'monospace') {\n resolvedStyle[prop] = _constants.MONOSPACE_FONT_STACK;\n } else {\n resolvedStyle[prop] = value;\n }\n\n break;\n }\n\n case 'fontVariant':\n {\n if (Array.isArray(value) && value.length > 0) {\n resolvedStyle.fontVariant = value.join(' ');\n }\n\n break;\n }\n\n case 'textAlignVertical':\n {\n resolvedStyle.verticalAlign = value === 'center' ? 'middle' : value;\n break;\n }\n\n case 'textDecorationLine':\n {\n // use 'text-decoration' for browsers that only support CSS2\n // text-decoration (e.g., IE, Edge)\n if (!supportsCSS3TextDecoration) {\n resolvedStyle.textDecoration = value;\n } else {\n resolvedStyle.textDecorationLine = value;\n }\n\n break;\n }\n\n case 'transform':\n case 'transformMatrix':\n {\n resolveTransform(resolvedStyle, style);\n break;\n }\n\n case 'writingDirection':\n {\n resolvedStyle.direction = value;\n break;\n }\n\n default:\n {\n var longFormProperties = _constants.STYLE_SHORT_FORM_EXPANSIONS[prop];\n\n if (longFormProperties) {\n longFormProperties.forEach(function (longForm, i) {\n // The value of any longform property in the original styles takes\n // precedence over the shortform's value.\n if (typeof style[longForm] === 'undefined') {\n resolvedStyle[longForm] = value;\n }\n });\n } else {\n resolvedStyle[prop] = Array.isArray(value) ? value.join(',') : value;\n }\n }\n }\n });\n return resolvedStyle;\n};\n\nvar _default = createReactDOMStyle;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = createStyleResolver;\n\nvar _ExecutionEnvironment = require(\"fbjs/lib/ExecutionEnvironment\");\n\nvar _createCSSStyleSheet = _interopRequireDefault(require(\"./createCSSStyleSheet\"));\n\nvar _createCompileableStyle = _interopRequireDefault(require(\"./createCompileableStyle\"));\n\nvar _createOrderedCSSStyleSheet = _interopRequireDefault(require(\"./createOrderedCSSStyleSheet\"));\n\nvar _flattenArray = _interopRequireDefault(require(\"../../modules/flattenArray\"));\n\nvar _flattenStyle = _interopRequireDefault(require(\"./flattenStyle\"));\n\nvar _I18nManager = _interopRequireDefault(require(\"../I18nManager\"));\n\nvar _i18nStyle = _interopRequireDefault(require(\"./i18nStyle\"));\n\nvar _compile = require(\"./compile\");\n\nvar _initialRules = _interopRequireDefault(require(\"./initialRules\"));\n\nvar _modality = _interopRequireDefault(require(\"./modality\"));\n\nvar _constants = require(\"./constants\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\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 * WARNING: changes to this file in particular can cause significant changes to\n * the results of render performance benchmarks.\n */\n\n\nfunction createStyleResolver() {\n var inserted, sheet, cache;\n var resolved = {\n css: {},\n ltr: {},\n rtl: {},\n rtlNoSwap: {}\n };\n\n var init = function init() {\n inserted = {\n css: {},\n ltr: {},\n rtl: {},\n rtlNoSwap: {}\n };\n sheet = (0, _createOrderedCSSStyleSheet.default)((0, _createCSSStyleSheet.default)(_constants.STYLE_ELEMENT_ID));\n cache = {};\n (0, _modality.default)(function (rule) {\n return sheet.insert(rule, _constants.STYLE_GROUPS.modality);\n });\n\n _initialRules.default.forEach(function (rule) {\n sheet.insert(rule, _constants.STYLE_GROUPS.reset);\n });\n };\n\n init();\n\n function addToCache(className, prop, value) {\n if (!cache[prop]) {\n cache[prop] = {};\n }\n\n cache[prop][value] = className;\n }\n\n function getClassName(prop, value) {\n var val = (0, _compile.stringifyValueWithProperty)(value, prop);\n return cache[prop] && cache[prop].hasOwnProperty(val) && cache[prop][val];\n }\n\n function _injectRegisteredStyle(id) {\n var _I18nManager$getConst = _I18nManager.default.getConstants(),\n doLeftAndRightSwapInRTL = _I18nManager$getConst.doLeftAndRightSwapInRTL,\n isRTL = _I18nManager$getConst.isRTL;\n\n var dir = isRTL ? doLeftAndRightSwapInRTL ? 'rtl' : 'rtlNoSwap' : 'ltr';\n\n if (!inserted[dir][id]) {\n var style = (0, _createCompileableStyle.default)((0, _i18nStyle.default)((0, _flattenStyle.default)(id)));\n var results = (0, _compile.atomic)(style);\n Object.keys(results).forEach(function (key) {\n var _results$key = results[key],\n identifier = _results$key.identifier,\n property = _results$key.property,\n rules = _results$key.rules,\n value = _results$key.value;\n addToCache(identifier, property, value);\n rules.forEach(function (rule) {\n var group = _constants.STYLE_GROUPS.custom[property] || _constants.STYLE_GROUPS.atomic;\n sheet.insert(rule, group);\n });\n });\n inserted[dir][id] = true;\n }\n }\n /**\n * Resolves a React Native style object to DOM attributes\n */\n\n\n function resolve(style, classList) {\n var nextClassList = [];\n var props = {};\n\n if (!style && !classList) {\n return props;\n }\n\n if (Array.isArray(classList)) {\n (0, _flattenArray.default)(classList).forEach(function (identifier) {\n if (identifier) {\n if (inserted.css[identifier] == null && resolved.css[identifier] != null) {\n var item = resolved.css[identifier];\n item.rules.forEach(function (rule) {\n sheet.insert(rule, item.group);\n });\n inserted.css[identifier] = true;\n }\n\n nextClassList.push(identifier);\n }\n });\n }\n\n if (typeof style === 'number') {\n // fast and cachable\n _injectRegisteredStyle(style);\n\n var key = createCacheKey(style);\n props = _resolveStyle(style, key);\n } else if (!Array.isArray(style)) {\n // resolve a plain RN style object\n props = _resolveStyle(style);\n } else {\n // flatten the style array\n // cache resolved props when all styles are registered\n // otherwise fallback to resolving\n var flatArray = (0, _flattenArray.default)(style);\n var isArrayOfNumbers = true;\n var cacheKey = '';\n\n for (var i = 0; i < flatArray.length; i++) {\n var id = flatArray[i];\n\n if (typeof id !== 'number') {\n isArrayOfNumbers = false;\n } else {\n if (isArrayOfNumbers) {\n cacheKey += id + '-';\n }\n\n _injectRegisteredStyle(id);\n }\n }\n\n var _key = isArrayOfNumbers ? createCacheKey(cacheKey) : null;\n\n props = _resolveStyle(flatArray, _key);\n }\n\n nextClassList.push.apply(nextClassList, props.classList);\n var finalProps = {\n className: classListToString(nextClassList),\n classList: nextClassList\n };\n\n if (props.style) {\n finalProps.style = props.style;\n }\n\n return finalProps;\n }\n /**\n * Resolves a React Native style object\n */\n\n\n function _resolveStyle(style, key) {\n var _I18nManager$getConst2 = _I18nManager.default.getConstants(),\n doLeftAndRightSwapInRTL = _I18nManager$getConst2.doLeftAndRightSwapInRTL,\n isRTL = _I18nManager$getConst2.isRTL;\n\n var dir = isRTL ? doLeftAndRightSwapInRTL ? 'rtl' : 'rtlNoSwap' : 'ltr'; // faster: memoized\n\n if (key != null && resolved[dir][key] != null) {\n return resolved[dir][key];\n }\n\n var flatStyle = (0, _flattenStyle.default)(style);\n var localizedStyle = (0, _createCompileableStyle.default)((0, _i18nStyle.default)(flatStyle)); // slower: convert style object to props and cache\n\n var props = Object.keys(localizedStyle).sort().reduce(function (props, styleProp) {\n var value = localizedStyle[styleProp];\n\n if (value != null) {\n var className = getClassName(styleProp, value);\n\n if (className) {\n props.classList.push(className);\n } else {\n // Certain properties and values are not transformed by 'createReactDOMStyle' as they\n // require more complex transforms into multiple CSS rules. Here we assume that StyleManager\n // can bind these styles to a className, and prevent them becoming invalid inline-styles.\n if (styleProp === 'animationKeyframes' || styleProp === 'placeholderTextColor' || styleProp === 'pointerEvents' || styleProp === 'scrollbarWidth') {\n var _atomic;\n\n var a = (0, _compile.atomic)((_atomic = {}, _atomic[styleProp] = value, _atomic));\n Object.keys(a).forEach(function (key) {\n var _a$key = a[key],\n identifier = _a$key.identifier,\n rules = _a$key.rules;\n props.classList.push(identifier);\n rules.forEach(function (rule) {\n sheet.insert(rule, _constants.STYLE_GROUPS.atomic);\n });\n });\n } else {\n if (!props.style) {\n props.style = {};\n } // 4x slower render\n\n\n props.style[styleProp] = value;\n }\n }\n }\n\n return props;\n }, {\n classList: []\n });\n\n if (props.style) {\n props.style = (0, _compile.inline)(props.style);\n }\n\n if (key != null) {\n resolved[dir][key] = props;\n }\n\n return props;\n }\n\n return {\n getStyleSheet: function getStyleSheet() {\n var textContent = sheet.getTextContent(); // Reset state on the server so critical css is always the result\n\n if (!_ExecutionEnvironment.canUseDOM) {\n init();\n }\n\n return {\n id: _constants.STYLE_ELEMENT_ID,\n textContent: textContent\n };\n },\n createCSS: function createCSS(rules, group) {\n var result = {};\n Object.keys(rules).forEach(function (name) {\n var style = rules[name];\n var compiled = (0, _compile.classic)(style, name);\n Object.keys(compiled).forEach(function (key) {\n var _compiled$key = compiled[key],\n identifier = _compiled$key.identifier,\n rules = _compiled$key.rules;\n resolved.css[identifier] = {\n group: group || _constants.STYLE_GROUPS.classic,\n rules: rules\n };\n result[name] = identifier;\n });\n });\n return result;\n },\n resolve: resolve,\n\n get sheet() {\n return sheet;\n }\n\n };\n}\n/**\n * Misc helpers\n */\n\n\nvar createCacheKey = function createCacheKey(id) {\n var prefix = 'rn';\n return prefix + \"-\" + id;\n};\n\nvar classListToString = function classListToString(list) {\n return list.join(' ').trim();\n};\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _ReactNativePropRegistry = _interopRequireDefault(require(\"./ReactNativePropRegistry\"));\n\nvar _invariant = _interopRequireDefault(require(\"fbjs/lib/invariant\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nfunction getStyle(style) {\n if (typeof style === 'number') {\n return _ReactNativePropRegistry.default.getByID(style);\n }\n\n return style;\n}\n\nfunction flattenStyle(style) {\n if (!style) {\n return undefined;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n (0, _invariant.default)(style !== true, 'style may be false but not true');\n }\n\n if (!Array.isArray(style)) {\n return getStyle(style);\n }\n\n var result = {};\n\n for (var i = 0, styleLength = style.length; i < styleLength; ++i) {\n var computedStyle = flattenStyle(style[i]);\n\n if (computedStyle) {\n for (var key in computedStyle) {\n var value = computedStyle[key];\n result[key] = value;\n }\n }\n }\n\n return result;\n}\n\nvar _default = flattenStyle;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _I18nManager = _interopRequireDefault(require(\"../I18nManager\"));\n\nvar _multiplyStyleLengthValue = _interopRequireDefault(require(\"../../modules/multiplyStyleLengthValue\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\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\nvar emptyObject = {};\nvar borderTopLeftRadius = 'borderTopLeftRadius';\nvar borderTopRightRadius = 'borderTopRightRadius';\nvar borderBottomLeftRadius = 'borderBottomLeftRadius';\nvar borderBottomRightRadius = 'borderBottomRightRadius';\nvar borderLeftColor = 'borderLeftColor';\nvar borderLeftStyle = 'borderLeftStyle';\nvar borderLeftWidth = 'borderLeftWidth';\nvar borderRightColor = 'borderRightColor';\nvar borderRightStyle = 'borderRightStyle';\nvar borderRightWidth = 'borderRightWidth';\nvar right = 'right';\nvar marginLeft = 'marginLeft';\nvar marginRight = 'marginRight';\nvar paddingLeft = 'paddingLeft';\nvar paddingRight = 'paddingRight';\nvar left = 'left'; // Map of LTR property names to their BiDi equivalent.\n\nvar PROPERTIES_FLIP = {\n borderTopLeftRadius: borderTopRightRadius,\n borderTopRightRadius: borderTopLeftRadius,\n borderBottomLeftRadius: borderBottomRightRadius,\n borderBottomRightRadius: borderBottomLeftRadius,\n borderLeftColor: borderRightColor,\n borderLeftStyle: borderRightStyle,\n borderLeftWidth: borderRightWidth,\n borderRightColor: borderLeftColor,\n borderRightStyle: borderLeftStyle,\n borderRightWidth: borderLeftWidth,\n left: right,\n marginLeft: marginRight,\n marginRight: marginLeft,\n paddingLeft: paddingRight,\n paddingRight: paddingLeft,\n right: left\n}; // Map of I18N property names to their LTR equivalent.\n\nvar PROPERTIES_I18N = {\n borderTopStartRadius: borderTopLeftRadius,\n borderTopEndRadius: borderTopRightRadius,\n borderBottomStartRadius: borderBottomLeftRadius,\n borderBottomEndRadius: borderBottomRightRadius,\n borderStartColor: borderLeftColor,\n borderStartStyle: borderLeftStyle,\n borderStartWidth: borderLeftWidth,\n borderEndColor: borderRightColor,\n borderEndStyle: borderRightStyle,\n borderEndWidth: borderRightWidth,\n end: right,\n marginStart: marginLeft,\n marginEnd: marginRight,\n paddingStart: paddingLeft,\n paddingEnd: paddingRight,\n start: left\n};\nvar PROPERTIES_VALUE = {\n clear: true,\n float: true,\n textAlign: true\n}; // Invert the sign of a numeric-like value\n\nvar additiveInverse = function additiveInverse(value) {\n return (0, _multiplyStyleLengthValue.default)(value, -1);\n};\n\nvar i18nStyle = function i18nStyle(originalStyle) {\n var _I18nManager$getConst = _I18nManager.default.getConstants(),\n doLeftAndRightSwapInRTL = _I18nManager$getConst.doLeftAndRightSwapInRTL,\n isRTL = _I18nManager$getConst.isRTL;\n\n var style = originalStyle || emptyObject;\n var frozenProps = {};\n var nextStyle = {};\n\n for (var originalProp in style) {\n if (!Object.prototype.hasOwnProperty.call(style, originalProp)) {\n continue;\n }\n\n var originalValue = style[originalProp];\n var prop = originalProp;\n var value = originalValue; // BiDi flip properties\n\n if (PROPERTIES_I18N.hasOwnProperty(originalProp)) {\n // convert start/end\n var convertedProp = PROPERTIES_I18N[originalProp];\n prop = isRTL ? PROPERTIES_FLIP[convertedProp] : convertedProp;\n } else if (isRTL && doLeftAndRightSwapInRTL && PROPERTIES_FLIP[originalProp]) {\n prop = PROPERTIES_FLIP[originalProp];\n } // BiDi flip values\n\n\n if (PROPERTIES_VALUE.hasOwnProperty(originalProp)) {\n if (originalValue === 'start') {\n value = isRTL ? 'right' : 'left';\n } else if (originalValue === 'end') {\n value = isRTL ? 'left' : 'right';\n } else if (isRTL && doLeftAndRightSwapInRTL) {\n if (originalValue === 'left') {\n value = 'right';\n } else if (originalValue === 'right') {\n value = 'left';\n }\n }\n } // BiDi flip transitionProperty value\n\n\n if (prop === 'transitionProperty') {\n // BiDi flip properties\n if (PROPERTIES_I18N.hasOwnProperty(value)) {\n // convert start/end\n var convertedValue = PROPERTIES_I18N[originalValue];\n value = isRTL ? PROPERTIES_FLIP[convertedValue] : convertedValue;\n } else if (isRTL && doLeftAndRightSwapInRTL) {\n var flippedValue = PROPERTIES_FLIP[originalValue];\n\n if (flippedValue != null) {\n value = flippedValue;\n }\n }\n } // Create finalized style\n\n\n if (isRTL && prop === 'textShadowOffset') {\n var invertedValue = additiveInverse(value.width);\n value.width = invertedValue;\n nextStyle[prop] = value;\n } else if (!frozenProps[prop]) {\n nextStyle[prop] = value;\n }\n\n if (PROPERTIES_I18N[originalProp]) {\n frozenProps[prop] = true;\n }\n }\n\n return nextStyle;\n};\n\nvar _default = i18nStyle;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar resets = [// minimal top-level reset\n'html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}', 'body{margin:0;}', // minimal form pseudo-element reset\n'button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}', 'input::-webkit-inner-spin-button,input::-webkit-outer-spin-button,' + 'input::-webkit-search-cancel-button,input::-webkit-search-decoration,' + 'input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}'];\nvar _default = resets;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _ExecutionEnvironment = require(\"fbjs/lib/ExecutionEnvironment\");\n/**\n * Adapts focus styles based on the user's active input modality (i.e., how\n * they are interacting with the UI right now).\n *\n * Focus styles are only relevant when using the keyboard to interact with the\n * page. If we only show the focus ring when relevant, we can avoid user\n * confusion without compromising accessibility.\n *\n * The script uses two heuristics to determine whether the keyboard is being used:\n *\n * 1. a keydown event occurred immediately before a focus event;\n * 2. a focus event happened on an element which requires keyboard interaction (e.g., a text field);\n *\n * This software or document includes material copied from or derived from https://github.com/WICG/focus-visible.\n * Copyright © 2018 W3C® (MIT, ERCIM, Keio, Beihang).\n * W3C Software Notice and License: https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n * \n */\n\n\nvar focusVisibleAttributeName = 'data-focusvisible-polyfill';\nvar rule = \":focus:not([\" + focusVisibleAttributeName + \"]){outline: none;}\";\n\nvar modality = function modality(insertRule) {\n insertRule(rule);\n\n if (!_ExecutionEnvironment.canUseDOM) {\n return;\n }\n\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n var inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n */\n\n function isValidFocusTarget(el) {\n if (el && el !== document && el.nodeName !== 'HTML' && el.nodeName !== 'BODY' && 'classList' in el && 'contains' in el.classList) {\n return true;\n }\n\n return false;\n }\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` attribute being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n */\n\n\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n var isReadOnly = el.readOnly;\n\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !isReadOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !isReadOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n /**\n * Add the `focus-visible` attribute to the given element if it was not added by\n * the author.\n */\n\n\n function addFocusVisibleAttribute(el) {\n if (el.hasAttribute(focusVisibleAttributeName)) {\n return;\n }\n\n el.setAttribute(focusVisibleAttributeName, true);\n }\n /**\n * Remove the `focus-visible` attribute from the given element if it was not\n * originally added by the author.\n */\n\n\n function removeFocusVisibleAttribute(el) {\n el.removeAttribute(focusVisibleAttributeName);\n }\n /**\n * Remove the `focus-visible` attribute from all elements in the document.\n */\n\n\n function removeAllFocusVisibleAttributes() {\n var list = document.querySelectorAll(\"[\" + focusVisibleAttributeName + \"]\");\n\n for (var i = 0; i < list.length; i += 1) {\n removeFocusVisibleAttribute(list[i]);\n }\n }\n /**\n * Treat `keydown` as a signal that the user is in keyboard modality.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n */\n\n\n function onKeyDown(e) {\n if (e.key !== 'Tab' && (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)) {\n return;\n }\n\n if (isValidFocusTarget(document.activeElement)) {\n addFocusVisibleAttribute(document.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * It also avoids the situation where a user presses on an element within a\n * previously keyboard-focused element (i.e., `e.target` is not the previously\n * focused element, but one of its descendants) and we need to remove the\n * focus ring because a `blur` event doesn't occur.\n */\n\n\n function onPointerDown(e) {\n if (hadKeyboardEvent === true) {\n removeAllFocusVisibleAttributes();\n }\n\n hadKeyboardEvent = false;\n }\n /**\n * On `focus`, add the `focus-visible` attribute to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n */\n\n\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleAttribute(e.target);\n }\n }\n /**\n * On `blur`, remove the `focus-visible` attribute from the target.\n */\n\n\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (e.target.hasAttribute(focusVisibleAttributeName)) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function () {\n hadFocusVisibleRecently = false;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n }, 100);\n removeFocusVisibleAttribute(e.target);\n }\n }\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had the focus-visible attribute.\n */\n\n\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the attribute when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n\n addInitialPointerMoveListeners();\n }\n }\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n\n\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n */\n\n\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. ¯\\_(ツ)_/¯\n if (e.target.nodeName === 'HTML') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('focus', onFocus, true);\n document.addEventListener('blur', onBlur, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n addInitialPointerMoveListeners();\n};\n\nvar _default = modality;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = normalizeValueWithProperty;\n\nvar _unitlessNumbers = _interopRequireDefault(require(\"../../modules/unitlessNumbers\"));\n\nvar _normalizeColor = _interopRequireDefault(require(\"../../modules/normalizeColor\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\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\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};\n\nfunction normalizeValueWithProperty(value, property) {\n var returnValue = value;\n\n if ((property == null || !_unitlessNumbers.default[property]) && typeof value === 'number') {\n returnValue = value + \"px\";\n } else if (property != null && colorProps[property]) {\n returnValue = (0, _normalizeColor.default)(value);\n }\n\n return returnValue;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _normalizeColor = _interopRequireDefault(require(\"../../modules/normalizeColor\"));\n\nvar _normalizeValueWithProperty = _interopRequireDefault(require(\"./normalizeValueWithProperty\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\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\nvar defaultOffset = {\n height: 0,\n width: 0\n};\n\nvar resolveShadowValue = function resolveShadowValue(style) {\n var shadowColor = style.shadowColor,\n shadowOffset = style.shadowOffset,\n shadowOpacity = style.shadowOpacity,\n shadowRadius = style.shadowRadius;\n\n var _ref = shadowOffset || defaultOffset,\n height = _ref.height,\n width = _ref.width;\n\n var offsetX = (0, _normalizeValueWithProperty.default)(width);\n var offsetY = (0, _normalizeValueWithProperty.default)(height);\n var blurRadius = (0, _normalizeValueWithProperty.default)(shadowRadius || 0);\n var color = (0, _normalizeColor.default)(shadowColor || 'black', shadowOpacity);\n\n if (color != null && offsetX != null && offsetY != null && blurRadius != null) {\n return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n};\n\nvar _default = resolveShadowValue;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _normalizeCssColor = _interopRequireDefault(require(\"normalize-css-color\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nvar processColor = function processColor(color) {\n if (color === undefined || color === null) {\n return color;\n } // convert number and hex\n\n\n var int32Color = (0, _normalizeCssColor.default)(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\nvar _default = processColor;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\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\nfunction flattenArray(array) {\n function flattenDown(array, result) {\n for (var i = 0; i < array.length; i++) {\n var value = array[i];\n\n if (Array.isArray(value)) {\n flattenDown(value, result);\n } else if (value != null && value !== false) {\n result.push(value);\n }\n }\n\n return result;\n }\n\n return flattenDown(array, []);\n}\n\nvar _default = flattenArray;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isWebColor = function isWebColor(color) {\n return color === 'currentcolor' || color === 'currentColor' || color === 'inherit' || color.indexOf('var(') === 0;\n};\n\nvar _default = isWebColor;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar CSS_UNIT_RE = /^[+-]?\\d*(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?(%|\\w*)/;\n\nvar getUnit = function getUnit(str) {\n return str.match(CSS_UNIT_RE)[1];\n};\n\nvar isNumeric = function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n};\n\nvar multiplyStyleLengthValue = function multiplyStyleLengthValue(value, multiple) {\n if (typeof value === 'string') {\n var number = parseFloat(value) * multiple;\n var unit = getUnit(value);\n return \"\" + number + unit;\n } else if (isNumeric(value)) {\n return value * multiple;\n }\n};\n\nvar _default = multiplyStyleLengthValue;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _isWebColor = _interopRequireDefault(require(\"../isWebColor\"));\n\nvar _processColor = _interopRequireDefault(require(\"../../exports/processColor\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\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\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' && (0, _isWebColor.default)(color)) {\n return color;\n }\n\n var colorInt = (0, _processColor.default)(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\nvar _default = normalizeColor;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.prefixInlineStyles = exports.default = void 0;\n\nvar _createPrefixer = _interopRequireDefault(require(\"inline-style-prefixer/lib/createPrefixer\"));\n\nvar _static = _interopRequireDefault(require(\"./static\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\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\nvar prefixAll = (0, _createPrefixer.default)(_static.default);\nvar _default = prefixAll;\nexports.default = _default;\n\nvar prefixInlineStyles = function prefixInlineStyles(style) {\n var prefixedStyles = prefixAll(style); // React@15 removed undocumented support for fallback values in\n // inline-styles. Revert array values to the standard CSS value\n\n Object.keys(prefixedStyles).forEach(function (prop) {\n var value = prefixedStyles[prop];\n\n if (Array.isArray(value)) {\n prefixedStyles[prop] = value[value.length - 1];\n }\n });\n return prefixedStyles;\n};\n\nexports.prefixInlineStyles = prefixInlineStyles;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _backgroundClip = _interopRequireDefault(require(\"inline-style-prefixer/lib/plugins/backgroundClip\"));\n\nvar _crossFade = _interopRequireDefault(require(\"inline-style-prefixer/lib/plugins/crossFade\"));\n\nvar _cursor = _interopRequireDefault(require(\"inline-style-prefixer/lib/plugins/cursor\"));\n\nvar _filter = _interopRequireDefault(require(\"inline-style-prefixer/lib/plugins/filter\"));\n\nvar _flex = _interopRequireDefault(require(\"inline-style-prefixer/lib/plugins/flex\"));\n\nvar _flexboxIE = _interopRequireDefault(require(\"inline-style-prefixer/lib/plugins/flexboxIE\"));\n\nvar _flexboxOld = _interopRequireDefault(require(\"inline-style-prefixer/lib/plugins/flexboxOld\"));\n\nvar _gradient = _interopRequireDefault(require(\"inline-style-prefixer/lib/plugins/gradient\"));\n\nvar _grid = _interopRequireDefault(require(\"inline-style-prefixer/lib/plugins/grid\"));\n\nvar _imageSet = _interopRequireDefault(require(\"inline-style-prefixer/lib/plugins/imageSet\"));\n\nvar _logical = _interopRequireDefault(require(\"inline-style-prefixer/lib/plugins/logical\"));\n\nvar _position = _interopRequireDefault(require(\"inline-style-prefixer/lib/plugins/position\"));\n\nvar _sizing = _interopRequireDefault(require(\"inline-style-prefixer/lib/plugins/sizing\"));\n\nvar _transition = _interopRequireDefault(require(\"inline-style-prefixer/lib/plugins/transition\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar w = ['Webkit'];\nvar m = ['Moz'];\nvar ms = ['ms'];\nvar wm = ['Webkit', 'Moz'];\nvar wms = ['Webkit', 'ms'];\nvar wmms = ['Webkit', 'Moz', 'ms'];\nvar _default = {\n plugins: [_backgroundClip.default, _crossFade.default, _cursor.default, _filter.default, _flex.default, _flexboxIE.default, _flexboxOld.default, _gradient.default, _grid.default, _imageSet.default, _logical.default, _position.default, _sizing.default, _transition.default],\n prefixMap: {\n animation: w,\n animationDelay: w,\n animationDirection: w,\n animationFillMode: w,\n animationDuration: w,\n animationIterationCount: w,\n animationName: w,\n animationPlayState: w,\n animationTimingFunction: w,\n appearance: wm,\n userSelect: wmms,\n textEmphasisPosition: w,\n textEmphasis: w,\n textEmphasisStyle: w,\n textEmphasisColor: w,\n boxDecorationBreak: w,\n clipPath: w,\n maskImage: w,\n maskMode: w,\n maskRepeat: w,\n maskPosition: w,\n maskClip: w,\n maskOrigin: w,\n maskSize: w,\n maskComposite: w,\n mask: w,\n maskBorderSource: w,\n maskBorderMode: w,\n maskBorderSlice: w,\n maskBorderWidth: w,\n maskBorderOutset: w,\n maskBorderRepeat: w,\n maskBorder: w,\n maskType: w,\n textDecorationStyle: w,\n textDecorationSkip: w,\n textDecorationLine: w,\n textDecorationColor: w,\n filter: w,\n fontFeatureSettings: w,\n breakAfter: wmms,\n breakBefore: wmms,\n breakInside: wmms,\n columnCount: wm,\n columnFill: wm,\n columnGap: wm,\n columnRule: wm,\n columnRuleColor: wm,\n columnRuleStyle: wm,\n columnRuleWidth: wm,\n columns: wm,\n columnSpan: wm,\n columnWidth: wm,\n writingMode: wms,\n flex: wms,\n flexBasis: w,\n flexDirection: wms,\n flexGrow: w,\n flexFlow: wms,\n flexShrink: w,\n flexWrap: wms,\n alignContent: w,\n alignItems: w,\n alignSelf: w,\n justifyContent: w,\n order: w,\n transform: w,\n transformOrigin: w,\n transformOriginX: w,\n transformOriginY: w,\n backfaceVisibility: w,\n perspective: w,\n perspectiveOrigin: w,\n transformStyle: w,\n transformOriginZ: w,\n backdropFilter: w,\n fontKerning: w,\n scrollSnapType: wms,\n scrollSnapPointsX: wms,\n scrollSnapPointsY: wms,\n scrollSnapDestination: wms,\n scrollSnapCoordinate: wms,\n shapeImageThreshold: w,\n shapeImageMargin: w,\n shapeImageOutside: w,\n hyphens: wmms,\n flowInto: wms,\n flowFrom: wms,\n regionFragment: wms,\n textOrientation: w,\n textAlignLast: m,\n tabSize: m,\n wrapFlow: ms,\n wrapThrough: ms,\n wrapMargin: ms,\n touchAction: ms,\n textSizeAdjust: ['ms', 'Webkit'],\n borderImage: w,\n borderImageOutset: w,\n borderImageRepeat: w,\n borderImageSlice: w,\n borderImageSource: w,\n borderImageWidth: w,\n transitionDelay: w,\n transitionDuration: w,\n transitionProperty: w,\n transitionTimingFunction: w\n }\n};\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar unitlessNumbers = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexOrder: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowGap: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnGap: true,\n gridColumnStart: true,\n lineClamp: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n // transform types\n scale: true,\n scaleX: true,\n scaleY: true,\n scaleZ: true,\n // RN properties\n shadowOpacity: true\n};\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\n\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\n\nvar prefixKey = function prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\n\nObject.keys(unitlessNumbers).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n });\n});\nvar _default = unitlessNumbers;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n/* eslint-disable */\n\n/**\n * JS Implementation of MurmurHash2\n *\n * @author Gary Court\n * @see http://github.com/garycourt/murmurhash-js\n * @author Austin Appleby\n * @see http://sites.google.com/site/murmurhash/\n *\n * @param {string} str ASCII only\n * @param {number} seed Positive integer only\n * @return {number} 32-bit positive integer hash\n */\n\nfunction murmurhash2_32_gc(str, seed) {\n var l = str.length,\n h = seed ^ l,\n i = 0,\n k;\n\n while (l >= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n k ^= k >>> 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k;\n l -= 4;\n ++i;\n }\n\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n }\n\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h ^= h >>> 15;\n return h >>> 0;\n}\n\nvar hash = function hash(str) {\n return murmurhash2_32_gc(str, 1).toString(36);\n};\n\nvar _default = hash;\nexports.default = _default;\nmodule.exports = exports.default;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport invariant from 'fbjs/lib/invariant';\nvar win = canUseDOM ? window : {\n devicePixelRatio: undefined,\n innerHeight: undefined,\n innerWidth: undefined,\n screen: {\n height: undefined,\n width: undefined\n }\n};\nvar dimensions = {};\nvar listeners = {};\n\nvar Dimensions = /*#__PURE__*/function () {\n function Dimensions() {}\n\n Dimensions.get = function get(dimension) {\n invariant(dimensions[dimension], \"No dimension set for key \" + dimension);\n return dimensions[dimension];\n };\n\n Dimensions.set = function set(initialDimensions) {\n if (initialDimensions) {\n if (canUseDOM) {\n invariant(false, 'Dimensions cannot be set in the browser');\n } else {\n dimensions.screen = initialDimensions.screen;\n dimensions.window = initialDimensions.window;\n }\n }\n };\n\n Dimensions._update = function _update() {\n dimensions.window = {\n fontScale: 1,\n height: win.innerHeight,\n scale: win.devicePixelRatio || 1,\n width: win.innerWidth\n };\n dimensions.screen = {\n fontScale: 1,\n height: win.screen.height,\n scale: win.devicePixelRatio || 1,\n width: win.screen.width\n };\n\n if (Array.isArray(listeners['change'])) {\n listeners['change'].forEach(function (handler) {\n return handler(dimensions);\n });\n }\n };\n\n Dimensions.addEventListener = function addEventListener(type, handler) {\n listeners[type] = listeners[type] || [];\n listeners[type].push(handler);\n };\n\n Dimensions.removeEventListener = function removeEventListener(type, handler) {\n if (Array.isArray(listeners[type])) {\n listeners[type] = listeners[type].filter(function (_handler) {\n return _handler !== handler;\n });\n }\n };\n\n return Dimensions;\n}();\n\nexport { Dimensions as default };\n\nDimensions._update();\n\nif (canUseDOM) {\n window.addEventListener('resize', Dimensions._update, false);\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nimport Dimensions from '../Dimensions';\nimport { useEffect, useState } from 'react';\nexport default function useWindowDimensions() {\n var _useState = useState(function () {\n return Dimensions.get('window');\n }),\n dims = _useState[0],\n setDims = _useState[1];\n\n useEffect(function () {\n function handleChange(_ref) {\n var window = _ref.window; // $FlowFixMe\n\n setDims(window);\n }\n\n Dimensions.addEventListener('change', handleChange); // We might have missed an update between calling `get` in render and\n // `addEventListener` in this handler, so we set it here. If there was\n // no change, React will filter out this update as a no-op.\n\n setDims(Dimensions.get('window'));\n return function () {\n Dimensions.removeEventListener('change', handleChange);\n };\n }, []);\n return dims;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source 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 buttonLikeRoles = {\n // ARIA button behaves like native 'button' element\n button: true,\n // ARIA menuitem responds to Enter/Space like a button. Spec requires AT to\n // ignore ARIA roles of any children.\n // https://www.w3.org/WAI/GL/wiki/Using_ARIA_menus\n menuitem: true\n};\nexport default buttonLikeRoles;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar accessibilityRoleToWebRole = {\n adjustable: 'slider',\n button: 'button',\n header: 'heading',\n image: 'img',\n imagebutton: null,\n keyboardkey: null,\n label: null,\n link: 'link',\n none: 'presentation',\n search: 'search',\n summary: 'region',\n text: null\n};\n\nvar propsToAriaRole = function propsToAriaRole(_ref) {\n var accessibilityRole = _ref.accessibilityRole;\n\n if (accessibilityRole) {\n var inferredRole = accessibilityRoleToWebRole[accessibilityRole];\n\n if (inferredRole !== null) {\n // ignore roles that don't map to web\n return inferredRole || accessibilityRole;\n }\n }\n};\n\nexport default propsToAriaRole;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport propsToAriaRole from './propsToAriaRole';\nvar roleComponents = {\n article: 'article',\n banner: 'header',\n blockquote: 'blockquote',\n code: 'code',\n complementary: 'aside',\n contentinfo: 'footer',\n deletion: 'del',\n emphasis: 'em',\n figure: 'figure',\n insertion: 'ins',\n form: 'form',\n link: 'a',\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 } // special-case for \"label\" role which doesn't map to an ARIA role\n\n\n if (props.accessibilityRole === 'label') {\n return 'label';\n } // special-case for \"href\" which becomes a link\n\n\n if (props.href != null) {\n return 'a';\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 buttonLikeRoles from './buttonLikeRoles';\nimport isDisabled from './isDisabled';\nimport propsToAccessibilityComponent from './propsToAccessibilityComponent';\nimport propsToAriaRole from './propsToAriaRole';\nvar AccessibilityUtil = {\n buttonLikeRoles: buttonLikeRoles,\n isDisabled: isDisabled,\n propsToAccessibilityComponent: propsToAccessibilityComponent,\n propsToAriaRole: propsToAriaRole\n};\nexport default AccessibilityUtil;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar isDisabled = function isDisabled(props) {\n return props.disabled || Array.isArray(props.accessibilityStates) && props.accessibilityStates.indexOf('disabled') > -1;\n};\n\nexport default isDisabled;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source 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 borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexOrder: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowGap: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnGap: true,\n gridColumnStart: true,\n lineClamp: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n // transform types\n scale: true,\n scaleX: true,\n scaleY: true,\n scaleZ: true,\n // RN properties\n shadowOpacity: true\n};\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\n\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\n\nvar prefixKey = function prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\n\nObject.keys(unitlessNumbers).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n });\n});\nexport default unitlessNumbers;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar isWebColor = function isWebColor(color) {\n return color === 'currentcolor' || color === 'currentColor' || color === 'inherit' || color.indexOf('var(') === 0;\n};\n\nexport default isWebColor;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport normalizeColor from 'normalize-css-color';\n\nvar processColor = function processColor(color) {\n if (color === undefined || color === null) {\n return color;\n } // convert number and hex\n\n\n var int32Color = normalizeColor(color);\n\n if (int32Color === undefined || int32Color === null) {\n return undefined;\n }\n\n int32Color = (int32Color << 24 | int32Color >>> 8) >>> 0;\n return int32Color;\n};\n\nexport default processColor;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport isWebColor from '../isWebColor';\nimport processColor from '../../exports/processColor';\n\nvar normalizeColor = function normalizeColor(color, opacity) {\n if (opacity === void 0) {\n opacity = 1;\n }\n\n if (color == null) return;\n\n if (typeof color === 'string' && isWebColor(color)) {\n return color;\n }\n\n var colorInt = processColor(color);\n\n if (colorInt != null) {\n var r = colorInt >> 16 & 255;\n var g = colorInt >> 8 & 255;\n var b = colorInt & 255;\n var a = (colorInt >> 24 & 255) / 255;\n var alpha = (a * opacity).toFixed(2);\n return \"rgba(\" + r + \",\" + g + \",\" + b + \",\" + alpha + \")\";\n }\n};\n\nexport default normalizeColor;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport unitlessNumbers from '../../modules/unitlessNumbers';\nimport normalizeColor from '../../modules/normalizeColor';\nvar colorProps = {\n backgroundColor: true,\n borderColor: true,\n borderTopColor: true,\n borderRightColor: true,\n borderBottomColor: true,\n borderLeftColor: true,\n color: true,\n shadowColor: true,\n textDecorationColor: true,\n textShadowColor: true\n};\nexport default function normalizeValueWithProperty(value, property) {\n var returnValue = value;\n\n if ((property == null || !unitlessNumbers[property]) && typeof value === 'number') {\n returnValue = value + \"px\";\n } else if (property != null && colorProps[property]) {\n returnValue = normalizeColor(value);\n }\n\n return returnValue;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport normalizeColor from '../../modules/normalizeColor';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nvar defaultOffset = {\n height: 0,\n width: 0\n};\n\nvar resolveShadowValue = function resolveShadowValue(style) {\n var shadowColor = style.shadowColor,\n shadowOffset = style.shadowOffset,\n shadowOpacity = style.shadowOpacity,\n shadowRadius = style.shadowRadius;\n\n var _ref = shadowOffset || defaultOffset,\n height = _ref.height,\n width = _ref.width;\n\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(shadowRadius || 0);\n var color = normalizeColor(shadowColor || 'black', shadowOpacity);\n\n if (color != null && offsetX != null && offsetY != null && blurRadius != null) {\n return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n};\n\nexport default resolveShadowValue;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n/**\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\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport resolveShadowValue from './resolveShadowValue';\nvar defaultOffset = {\n height: 0,\n width: 0\n};\n\nfunction boxShadowReducer(resolvedStyle, style) {\n var boxShadow = style.boxShadow;\n var shadow = resolveShadowValue(style);\n\n if (shadow != null) {\n resolvedStyle.boxShadow = boxShadow ? boxShadow + \", \" + shadow : shadow;\n }\n}\n\nfunction textShadowReducer(resolvedStyle, style) {\n var textShadowColor = style.textShadowColor,\n textShadowOffset = style.textShadowOffset,\n textShadowRadius = style.textShadowRadius;\n\n var _ref = textShadowOffset || defaultOffset,\n height = _ref.height,\n width = _ref.width;\n\n var radius = textShadowRadius || 0;\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(radius);\n var color = normalizeValueWithProperty(textShadowColor, 'textShadowColor');\n\n if (color && (height !== 0 || width !== 0 || radius !== 0) && offsetX != null && offsetY != null && blurRadius != null) {\n resolvedStyle.textShadow = offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n}\n\nvar createCompileableStyle = function createCompileableStyle(styles) {\n var shadowColor = styles.shadowColor,\n shadowOffset = styles.shadowOffset,\n shadowOpacity = styles.shadowOpacity,\n shadowRadius = styles.shadowRadius,\n textShadowColor = styles.textShadowColor,\n textShadowOffset = styles.textShadowOffset,\n textShadowRadius = styles.textShadowRadius,\n nextStyles = _objectWithoutPropertiesLoose(styles, [\"shadowColor\", \"shadowOffset\", \"shadowOpacity\", \"shadowRadius\", \"textShadowColor\", \"textShadowOffset\", \"textShadowRadius\"]);\n\n if (shadowColor != null || shadowOffset != null || shadowOpacity != null || shadowRadius != null) {\n boxShadowReducer(nextStyles, styles);\n }\n\n if (textShadowColor != null || textShadowOffset != null || textShadowRadius != null) {\n textShadowReducer(nextStyles, styles);\n }\n\n return nextStyles;\n};\n\nexport default createCompileableStyle;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar slice = Array.prototype.slice;\n/**\n * Order-based insertion of CSS.\n *\n * Each rule is associated with a numerically defined group.\n * Groups are ordered within the style sheet according to their number, with the\n * lowest first.\n *\n * Groups are implemented using marker rules. The selector of the first rule of\n * each group is used only to encode the group number for hydration. An\n * alternative implementation could rely on CSSMediaRule, allowing groups to be\n * treated as a sub-sheet, but the Edge implementation of CSSMediaRule is\n * broken.\n * https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule\n * https://gist.github.com/necolas/aa0c37846ad6bd3b05b727b959e82674\n */\n\nexport default function createOrderedCSSStyleSheet(sheet) {\n var groups = {};\n var selectors = {};\n /**\n * Hydrate approximate record from any existing rules in the sheet.\n */\n\n if (sheet != null) {\n var group;\n slice.call(sheet.cssRules).forEach(function (cssRule, i) {\n var cssText = cssRule.cssText; // Create record of existing selectors and rules\n\n if (cssText.indexOf('stylesheet-group') > -1) {\n group = decodeGroupRule(cssRule);\n groups[group] = {\n start: i,\n rules: [cssText]\n };\n } else {\n var selectorText = getSelectorText(cssText);\n\n if (selectorText != null) {\n selectors[selectorText] = true;\n groups[group].rules.push(cssText);\n }\n }\n });\n }\n\n function sheetInsert(sheet, group, text) {\n var orderedGroups = getOrderedGroups(groups);\n var groupIndex = orderedGroups.indexOf(group);\n var nextGroupIndex = groupIndex + 1;\n var nextGroup = orderedGroups[nextGroupIndex]; // Insert rule before the next group, or at the end of the stylesheet\n\n var position = nextGroup != null && groups[nextGroup].start != null ? groups[nextGroup].start : sheet.cssRules.length;\n var isInserted = insertRuleAt(sheet, text, position);\n\n if (isInserted) {\n // Set the starting index of the new group\n if (groups[group].start == null) {\n groups[group].start = position;\n } // Increment the starting index of all subsequent groups\n\n\n for (var i = nextGroupIndex; i < orderedGroups.length; i += 1) {\n var groupNumber = orderedGroups[i];\n var previousStart = groups[groupNumber].start;\n groups[groupNumber].start = previousStart + 1;\n }\n }\n\n return isInserted;\n }\n\n var OrderedCSSStyleSheet = {\n /**\n * The textContent of the style sheet.\n */\n getTextContent: function getTextContent() {\n return getOrderedGroups(groups).map(function (group) {\n var rules = groups[group].rules;\n return rules.join('\\n');\n }).join('\\n');\n },\n\n /**\n * Insert a rule into the style sheet\n */\n insert: function insert(cssText, groupValue) {\n var group = Number(groupValue); // Create a new group.\n\n if (groups[group] == null) {\n var markerRule = encodeGroupRule(group); // Create the internal record.\n\n groups[group] = {\n start: null,\n rules: [markerRule]\n }; // Update CSSOM.\n\n if (sheet != null) {\n sheetInsert(sheet, group, markerRule);\n }\n } // selectorText is more reliable than cssText for insertion checks. The\n // browser excludes vendor-prefixed properties and rewrites certain values\n // making cssText more likely to be different from what was inserted.\n\n\n var selectorText = getSelectorText(cssText);\n\n if (selectorText != null && selectors[selectorText] == null) {\n // Update the internal records.\n selectors[selectorText] = true;\n groups[group].rules.push(cssText); // Update CSSOM.\n\n if (sheet != null) {\n var isInserted = sheetInsert(sheet, group, cssText);\n\n if (!isInserted) {\n // Revert internal record change if a rule was rejected (e.g.,\n // unrecognized pseudo-selector)\n groups[group].rules.pop();\n }\n }\n }\n }\n };\n return OrderedCSSStyleSheet;\n}\n/**\n * Helper functions\n */\n\nfunction encodeGroupRule(group) {\n return \"[stylesheet-group=\\\"\" + group + \"\\\"]{}\";\n}\n\nfunction decodeGroupRule(cssRule) {\n return Number(cssRule.selectorText.split(/[\"']/)[1]);\n}\n\nfunction getOrderedGroups(obj) {\n return Object.keys(obj).map(Number).sort(function (a, b) {\n return a > b ? 1 : -1;\n });\n}\n\nvar pattern = /\\s*([,])\\s*/g;\n\nfunction getSelectorText(cssText) {\n var selector = cssText.split('{')[0].trim();\n return selector !== '' ? selector.replace(pattern, '$1') : null;\n}\n\nfunction insertRuleAt(root, cssText, position) {\n try {\n // $FlowFixMe: Flow is missing CSSOM types needed to type 'root'.\n root.insertRule(cssText, position);\n return true;\n } catch (e) {\n // JSDOM doesn't support `CSSSMediaRule#insertRule`.\n // Also ignore errors that occur from attempting to insert vendor-prefixed selectors.\n return false;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nfunction flattenArray(array) {\n function flattenDown(array, result) {\n for (var i = 0; i < array.length; i++) {\n var value = array[i];\n\n if (Array.isArray(value)) {\n flattenDown(value, result);\n } else if (value != null && value !== false) {\n result.push(value);\n }\n }\n\n return result;\n }\n\n return flattenDown(array, []);\n}\n\nexport default flattenArray;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar emptyObject = {};\nvar objects = {};\nvar prefix = 'r';\nvar uniqueID = 1;\n\nvar createKey = function createKey(id) {\n return prefix + \"-\" + id;\n};\n\nvar ReactNativePropRegistry = /*#__PURE__*/function () {\n function ReactNativePropRegistry() {}\n\n ReactNativePropRegistry.register = function register(object) {\n var id = uniqueID++;\n\n if (process.env.NODE_ENV !== 'production') {\n Object.freeze(object);\n }\n\n var key = createKey(id);\n objects[key] = object;\n return id;\n };\n\n ReactNativePropRegistry.getByID = function getByID(id) {\n if (!id) {\n // Used in the style={[condition && id]} pattern,\n // we want it to be a no-op when the value is false or null\n return emptyObject;\n }\n\n var key = createKey(id);\n var object = objects[key];\n\n if (!object) {\n console.warn('Invalid style with id `' + id + '`. Skipping ...');\n return emptyObject;\n }\n\n return object;\n };\n\n return ReactNativePropRegistry;\n}();\n\nexport { ReactNativePropRegistry as default };","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport ReactNativePropRegistry from './ReactNativePropRegistry';\nimport invariant from 'fbjs/lib/invariant';\n\nfunction getStyle(style) {\n if (typeof style === 'number') {\n return ReactNativePropRegistry.getByID(style);\n }\n\n return style;\n}\n\nfunction flattenStyle(style) {\n if (!style) {\n return undefined;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n invariant(style !== true, 'style may be false but not true');\n }\n\n if (!Array.isArray(style)) {\n return getStyle(style);\n }\n\n var result = {};\n\n for (var i = 0, styleLength = style.length; i < styleLength; ++i) {\n var computedStyle = flattenStyle(style[i]);\n\n if (computedStyle) {\n for (var key in computedStyle) {\n var value = computedStyle[key];\n result[key] = value;\n }\n }\n }\n\n return result;\n}\n\nexport default flattenStyle;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment';\nvar doLeftAndRightSwapInRTL = true;\nvar isPreferredLanguageRTL = false;\nvar isRTLAllowed = true;\nvar isRTLForced = false;\n\nvar isRTL = function isRTL() {\n if (isRTLForced) {\n return true;\n }\n\n return isRTLAllowed && isPreferredLanguageRTL;\n};\n\nvar onDirectionChange = function onDirectionChange() {\n if (ExecutionEnvironment.canUseDOM) {\n if (document.documentElement && document.documentElement.setAttribute) {\n document.documentElement.setAttribute('dir', isRTL() ? 'rtl' : 'ltr');\n }\n }\n};\n\nvar I18nManager = {\n allowRTL: function allowRTL(bool) {\n isRTLAllowed = bool;\n onDirectionChange();\n },\n forceRTL: function forceRTL(bool) {\n isRTLForced = bool;\n onDirectionChange();\n },\n getConstants: function getConstants() {\n return {\n doLeftAndRightSwapInRTL: doLeftAndRightSwapInRTL,\n isRTL: isRTL()\n };\n },\n setPreferredLanguageRTL: function setPreferredLanguageRTL(bool) {\n isPreferredLanguageRTL = bool;\n onDirectionChange();\n },\n swapLeftAndRightInRTL: function swapLeftAndRightInRTL(bool) {\n doLeftAndRightSwapInRTL = bool;\n }\n};\nexport default I18nManager;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar CSS_UNIT_RE = /^[+-]?\\d*(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?(%|\\w*)/;\n\nvar getUnit = function getUnit(str) {\n return str.match(CSS_UNIT_RE)[1];\n};\n\nvar isNumeric = function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n};\n\nvar multiplyStyleLengthValue = function multiplyStyleLengthValue(value, multiple) {\n if (typeof value === 'string') {\n var number = parseFloat(value) * multiple;\n var unit = getUnit(value);\n return \"\" + number + unit;\n } else if (isNumeric(value)) {\n return value * multiple;\n }\n};\n\nexport default multiplyStyleLengthValue;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport I18nManager from '../I18nManager';\nimport multiplyStyleLengthValue from '../../modules/multiplyStyleLengthValue';\nvar emptyObject = {};\nvar borderTopLeftRadius = 'borderTopLeftRadius';\nvar borderTopRightRadius = 'borderTopRightRadius';\nvar borderBottomLeftRadius = 'borderBottomLeftRadius';\nvar borderBottomRightRadius = 'borderBottomRightRadius';\nvar borderLeftColor = 'borderLeftColor';\nvar borderLeftStyle = 'borderLeftStyle';\nvar borderLeftWidth = 'borderLeftWidth';\nvar borderRightColor = 'borderRightColor';\nvar borderRightStyle = 'borderRightStyle';\nvar borderRightWidth = 'borderRightWidth';\nvar right = 'right';\nvar marginLeft = 'marginLeft';\nvar marginRight = 'marginRight';\nvar paddingLeft = 'paddingLeft';\nvar paddingRight = 'paddingRight';\nvar left = 'left'; // Map of LTR property names to their BiDi equivalent.\n\nvar PROPERTIES_FLIP = {\n borderTopLeftRadius: borderTopRightRadius,\n borderTopRightRadius: borderTopLeftRadius,\n borderBottomLeftRadius: borderBottomRightRadius,\n borderBottomRightRadius: borderBottomLeftRadius,\n borderLeftColor: borderRightColor,\n borderLeftStyle: borderRightStyle,\n borderLeftWidth: borderRightWidth,\n borderRightColor: borderLeftColor,\n borderRightStyle: borderLeftStyle,\n borderRightWidth: borderLeftWidth,\n left: right,\n marginLeft: marginRight,\n marginRight: marginLeft,\n paddingLeft: paddingRight,\n paddingRight: paddingLeft,\n right: left\n}; // Map of I18N property names to their LTR equivalent.\n\nvar PROPERTIES_I18N = {\n borderTopStartRadius: borderTopLeftRadius,\n borderTopEndRadius: borderTopRightRadius,\n borderBottomStartRadius: borderBottomLeftRadius,\n borderBottomEndRadius: borderBottomRightRadius,\n borderStartColor: borderLeftColor,\n borderStartStyle: borderLeftStyle,\n borderStartWidth: borderLeftWidth,\n borderEndColor: borderRightColor,\n borderEndStyle: borderRightStyle,\n borderEndWidth: borderRightWidth,\n end: right,\n marginStart: marginLeft,\n marginEnd: marginRight,\n paddingStart: paddingLeft,\n paddingEnd: paddingRight,\n start: left\n};\nvar PROPERTIES_VALUE = {\n clear: true,\n float: true,\n textAlign: true\n}; // Invert the sign of a numeric-like value\n\nvar additiveInverse = function additiveInverse(value) {\n return multiplyStyleLengthValue(value, -1);\n};\n\nvar i18nStyle = function i18nStyle(originalStyle) {\n var _I18nManager$getConst = I18nManager.getConstants(),\n doLeftAndRightSwapInRTL = _I18nManager$getConst.doLeftAndRightSwapInRTL,\n isRTL = _I18nManager$getConst.isRTL;\n\n var style = originalStyle || emptyObject;\n var frozenProps = {};\n var nextStyle = {};\n\n for (var originalProp in style) {\n if (!Object.prototype.hasOwnProperty.call(style, originalProp)) {\n continue;\n }\n\n var originalValue = style[originalProp];\n var prop = originalProp;\n var value = originalValue; // BiDi flip properties\n\n if (PROPERTIES_I18N.hasOwnProperty(originalProp)) {\n // convert start/end\n var convertedProp = PROPERTIES_I18N[originalProp];\n prop = isRTL ? PROPERTIES_FLIP[convertedProp] : convertedProp;\n } else if (isRTL && doLeftAndRightSwapInRTL && PROPERTIES_FLIP[originalProp]) {\n prop = PROPERTIES_FLIP[originalProp];\n } // BiDi flip values\n\n\n if (PROPERTIES_VALUE.hasOwnProperty(originalProp)) {\n if (originalValue === 'start') {\n value = isRTL ? 'right' : 'left';\n } else if (originalValue === 'end') {\n value = isRTL ? 'left' : 'right';\n } else if (isRTL && doLeftAndRightSwapInRTL) {\n if (originalValue === 'left') {\n value = 'right';\n } else if (originalValue === 'right') {\n value = 'left';\n }\n }\n } // BiDi flip transitionProperty value\n\n\n if (prop === 'transitionProperty') {\n // BiDi flip properties\n if (PROPERTIES_I18N.hasOwnProperty(value)) {\n // convert start/end\n var convertedValue = PROPERTIES_I18N[originalValue];\n value = isRTL ? PROPERTIES_FLIP[convertedValue] : convertedValue;\n } else if (isRTL && doLeftAndRightSwapInRTL) {\n var flippedValue = PROPERTIES_FLIP[originalValue];\n\n if (flippedValue != null) {\n value = flippedValue;\n }\n }\n } // Create finalized style\n\n\n if (isRTL && prop === 'textShadowOffset') {\n var invertedValue = additiveInverse(value.width);\n value.width = invertedValue;\n nextStyle[prop] = value;\n } else if (!frozenProps[prop]) {\n nextStyle[prop] = value;\n }\n\n if (PROPERTIES_I18N[originalProp]) {\n frozenProps[prop] = true;\n }\n }\n\n return nextStyle;\n};\n\nexport default i18nStyle;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nexport var STYLE_ELEMENT_ID = 'react-native-stylesheet';\nexport var STYLE_GROUPS = {\n reset: 0,\n modality: 0.1,\n classicReset: 0.5,\n classic: 1,\n atomic: 2.2,\n custom: {\n borderColor: 2,\n borderRadius: 2,\n borderStyle: 2,\n borderWidth: 2,\n display: 2,\n flex: 2,\n margin: 2,\n overflow: 2,\n overscrollBehavior: 2,\n padding: 2,\n marginHorizontal: 2.1,\n marginVertical: 2.1,\n paddingHorizontal: 2.1,\n paddingVertical: 2.1\n }\n};\nexport var STYLE_SHORT_FORM_EXPANSIONS = {\n borderColor: ['borderTopColor', 'borderRightColor', 'borderBottomColor', 'borderLeftColor'],\n borderRadius: ['borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomRightRadius', 'borderBottomLeftRadius'],\n borderStyle: ['borderTopStyle', 'borderRightStyle', 'borderBottomStyle', 'borderLeftStyle'],\n borderWidth: ['borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth'],\n margin: ['marginTop', 'marginRight', 'marginBottom', 'marginLeft'],\n marginHorizontal: ['marginRight', 'marginLeft'],\n marginVertical: ['marginTop', 'marginBottom'],\n overflow: ['overflowX', 'overflowY'],\n overscrollBehavior: ['overscrollBehaviorX', 'overscrollBehaviorY'],\n padding: ['paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft'],\n paddingHorizontal: ['paddingRight', 'paddingLeft'],\n paddingVertical: ['paddingTop', 'paddingBottom']\n};\nexport var MONOSPACE_FONT_STACK = 'monospace,monospace';\nexport var SYSTEM_FONT_STACK = '-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif';","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport { MONOSPACE_FONT_STACK, SYSTEM_FONT_STACK, STYLE_SHORT_FORM_EXPANSIONS } from './constants';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\n/**\n * The browser implements the CSS cascade, where the order of properties is a\n * factor in determining which styles to paint. React Native is different. It\n * gives giving precedence to the more specific style property. For example,\n * the value of `paddingTop` takes precedence over that of `padding`.\n *\n * This module creates mutally exclusive style declarations by expanding all of\n * React Native's supported shortform properties (e.g. `padding`) to their\n * longfrom equivalents.\n */\n\nvar emptyObject = {};\nvar supportsCSS3TextDecoration = !canUseDOM || window.CSS != null && window.CSS.supports != null && (window.CSS.supports('text-decoration-line', 'none') || window.CSS.supports('-webkit-text-decoration-line', 'none'));\n/**\n * Transform\n */\n// { scale: 2 } => 'scale(2)'\n// { translateX: 20 } => 'translateX(20px)'\n// { matrix: [1,2,3,4,5,6] } => 'matrix(1,2,3,4,5,6)'\n\nvar mapTransform = function mapTransform(transform) {\n var type = Object.keys(transform)[0];\n var value = transform[type];\n\n if (type === 'matrix' || type === 'matrix3d') {\n return type + \"(\" + value.join(',') + \")\";\n } else {\n var normalizedValue = normalizeValueWithProperty(value, type);\n return type + \"(\" + normalizedValue + \")\";\n }\n};\n\nvar resolveTransform = function resolveTransform(resolvedStyle, style) {\n var transform = style.transform;\n\n if (Array.isArray(style.transform)) {\n transform = style.transform.map(mapTransform).join(' ');\n }\n\n resolvedStyle.transform = transform;\n};\n/**\n * Reducer\n */\n\n\nvar createReactDOMStyle = function createReactDOMStyle(style) {\n if (!style) {\n return emptyObject;\n }\n\n var resolvedStyle = {};\n Object.keys(style).sort().forEach(function (prop) {\n var value = normalizeValueWithProperty(style[prop], prop); // Ignore everything else with a null value\n\n if (value == null) {\n return;\n }\n\n switch (prop) {\n // Ignore some React Native styles\n case 'elevation':\n case 'overlayColor':\n case 'resizeMode':\n case 'tintColor':\n {\n break;\n }\n // TODO: remove once this issue is fixed\n // https://github.com/rofrischmann/inline-style-prefixer/issues/159\n\n case 'backgroundClip':\n {\n if (value === 'text') {\n resolvedStyle.backgroundClip = value;\n resolvedStyle.WebkitBackgroundClip = value;\n }\n\n break;\n }\n // The 'flex' property value in React Native must be a positive integer,\n // 0, or -1.\n\n case 'flex':\n {\n if (value === -1) {\n resolvedStyle.flexGrow = 0;\n resolvedStyle.flexShrink = 1;\n resolvedStyle.flexBasis = 'auto';\n } else {\n resolvedStyle.flex = value;\n }\n\n break;\n }\n\n case 'font':\n {\n resolvedStyle[prop] = value.replace('System', SYSTEM_FONT_STACK);\n break;\n }\n\n case 'fontFamily':\n {\n if (value.indexOf('System') > -1) {\n var stack = value.split(/,\\s*/);\n stack[stack.indexOf('System')] = SYSTEM_FONT_STACK;\n resolvedStyle[prop] = stack.join(',');\n } else if (value === 'monospace') {\n resolvedStyle[prop] = MONOSPACE_FONT_STACK;\n } else {\n resolvedStyle[prop] = value;\n }\n\n break;\n }\n\n case 'fontVariant':\n {\n if (Array.isArray(value) && value.length > 0) {\n resolvedStyle.fontVariant = value.join(' ');\n }\n\n break;\n }\n\n case 'textAlignVertical':\n {\n resolvedStyle.verticalAlign = value === 'center' ? 'middle' : value;\n break;\n }\n\n case 'textDecorationLine':\n {\n // use 'text-decoration' for browsers that only support CSS2\n // text-decoration (e.g., IE, Edge)\n if (!supportsCSS3TextDecoration) {\n resolvedStyle.textDecoration = value;\n } else {\n resolvedStyle.textDecorationLine = value;\n }\n\n break;\n }\n\n case 'transform':\n case 'transformMatrix':\n {\n resolveTransform(resolvedStyle, style);\n break;\n }\n\n case 'writingDirection':\n {\n resolvedStyle.direction = value;\n break;\n }\n\n default:\n {\n var longFormProperties = STYLE_SHORT_FORM_EXPANSIONS[prop];\n\n if (longFormProperties) {\n longFormProperties.forEach(function (longForm, i) {\n // The value of any longform property in the original styles takes\n // precedence over the shortform's value.\n if (typeof style[longForm] === 'undefined') {\n resolvedStyle[longForm] = value;\n }\n });\n } else {\n resolvedStyle[prop] = Array.isArray(value) ? value.join(',') : value;\n }\n }\n }\n });\n return resolvedStyle;\n};\n\nexport default createReactDOMStyle;","/* eslint-disable */\n\n/**\n * JS Implementation of MurmurHash2\n *\n * @author Gary Court\n * @see http://github.com/garycourt/murmurhash-js\n * @author Austin Appleby\n * @see http://sites.google.com/site/murmurhash/\n *\n * @param {string} str ASCII only\n * @param {number} seed Positive integer only\n * @return {number} 32-bit positive integer hash\n */\nfunction murmurhash2_32_gc(str, seed) {\n var l = str.length,\n h = seed ^ l,\n i = 0,\n k;\n\n while (l >= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n k ^= k >>> 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k;\n l -= 4;\n ++i;\n }\n\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n }\n\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h ^= h >>> 15;\n return h >>> 0;\n}\n\nvar hash = function hash(str) {\n return murmurhash2_32_gc(str, 1).toString(36);\n};\n\nexport default hash;","import backgroundClip from 'inline-style-prefixer/lib/plugins/backgroundClip';\nimport crossFade from 'inline-style-prefixer/lib/plugins/crossFade';\nimport cursor from 'inline-style-prefixer/lib/plugins/cursor';\nimport filter from 'inline-style-prefixer/lib/plugins/filter';\nimport flex from 'inline-style-prefixer/lib/plugins/flex';\nimport flexboxIE from 'inline-style-prefixer/lib/plugins/flexboxIE';\nimport flexboxOld from 'inline-style-prefixer/lib/plugins/flexboxOld';\nimport gradient from 'inline-style-prefixer/lib/plugins/gradient';\nimport grid from 'inline-style-prefixer/lib/plugins/grid';\nimport imageSet from 'inline-style-prefixer/lib/plugins/imageSet';\nimport logical from 'inline-style-prefixer/lib/plugins/logical';\nimport position from 'inline-style-prefixer/lib/plugins/position';\nimport sizing from 'inline-style-prefixer/lib/plugins/sizing';\nimport transition from 'inline-style-prefixer/lib/plugins/transition';\nvar w = ['Webkit'];\nvar m = ['Moz'];\nvar ms = ['ms'];\nvar wm = ['Webkit', 'Moz'];\nvar wms = ['Webkit', 'ms'];\nvar wmms = ['Webkit', 'Moz', 'ms'];\nexport default {\n plugins: [backgroundClip, crossFade, cursor, filter, flex, flexboxIE, flexboxOld, gradient, grid, imageSet, logical, position, sizing, transition],\n prefixMap: {\n animation: w,\n animationDelay: w,\n animationDirection: w,\n animationFillMode: w,\n animationDuration: w,\n animationIterationCount: w,\n animationName: w,\n animationPlayState: w,\n animationTimingFunction: w,\n appearance: wm,\n userSelect: wmms,\n textEmphasisPosition: w,\n textEmphasis: w,\n textEmphasisStyle: w,\n textEmphasisColor: w,\n boxDecorationBreak: w,\n clipPath: w,\n maskImage: w,\n maskMode: w,\n maskRepeat: w,\n maskPosition: w,\n maskClip: w,\n maskOrigin: w,\n maskSize: w,\n maskComposite: w,\n mask: w,\n maskBorderSource: w,\n maskBorderMode: w,\n maskBorderSlice: w,\n maskBorderWidth: w,\n maskBorderOutset: w,\n maskBorderRepeat: w,\n maskBorder: w,\n maskType: w,\n textDecorationStyle: w,\n textDecorationSkip: w,\n textDecorationLine: w,\n textDecorationColor: w,\n filter: w,\n fontFeatureSettings: w,\n breakAfter: wmms,\n breakBefore: wmms,\n breakInside: wmms,\n columnCount: wm,\n columnFill: wm,\n columnGap: wm,\n columnRule: wm,\n columnRuleColor: wm,\n columnRuleStyle: wm,\n columnRuleWidth: wm,\n columns: wm,\n columnSpan: wm,\n columnWidth: wm,\n writingMode: wms,\n flex: wms,\n flexBasis: w,\n flexDirection: wms,\n flexGrow: w,\n flexFlow: wms,\n flexShrink: w,\n flexWrap: wms,\n alignContent: w,\n alignItems: w,\n alignSelf: w,\n justifyContent: w,\n order: w,\n transform: w,\n transformOrigin: w,\n transformOriginX: w,\n transformOriginY: w,\n backfaceVisibility: w,\n perspective: w,\n perspectiveOrigin: w,\n transformStyle: w,\n transformOriginZ: w,\n backdropFilter: w,\n fontKerning: w,\n scrollSnapType: wms,\n scrollSnapPointsX: wms,\n scrollSnapPointsY: wms,\n scrollSnapDestination: wms,\n scrollSnapCoordinate: wms,\n shapeImageThreshold: w,\n shapeImageMargin: w,\n shapeImageOutside: w,\n hyphens: wmms,\n flowInto: wms,\n flowFrom: wms,\n regionFragment: wms,\n textOrientation: w,\n textAlignLast: m,\n tabSize: m,\n wrapFlow: ms,\n wrapThrough: ms,\n wrapMargin: ms,\n touchAction: ms,\n textSizeAdjust: ['ms', 'Webkit'],\n borderImage: w,\n borderImageOutset: w,\n borderImageRepeat: w,\n borderImageSlice: w,\n borderImageSource: w,\n borderImageWidth: w,\n transitionDelay: w,\n transitionDuration: w,\n transitionProperty: w,\n transitionTimingFunction: w\n }\n};","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createPrefixer from 'inline-style-prefixer/lib/createPrefixer';\nimport staticData from './static';\nvar prefixAll = createPrefixer(staticData);\nexport default prefixAll;\nexport var prefixInlineStyles = function prefixInlineStyles(style) {\n var prefixedStyles = prefixAll(style); // React@15 removed undocumented support for fallback values in\n // inline-styles. Revert array values to the standard CSS value\n\n Object.keys(prefixedStyles).forEach(function (prop) {\n var value = prefixedStyles[prop];\n\n if (Array.isArray(value)) {\n prefixedStyles[prop] = value[value.length - 1];\n }\n });\n return prefixedStyles;\n};","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n/**\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\nimport createReactDOMStyle from './createReactDOMStyle';\nimport hash from '../../vendor/hash';\nimport hyphenateStyleName from 'hyphenate-style-name';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport prefixStyles, { prefixInlineStyles } from '../../modules/prefixStyles';\nvar cache = {\n get: function get(property, value) {\n if (cache[property] != null && cache[property].hasOwnProperty(value) && cache[property][value] != null) {\n return cache[property][value];\n }\n },\n set: function set(property, value, object) {\n if (cache[property] == null) {\n cache[property] = {};\n }\n\n return cache[property][value] = object;\n }\n};\n/**\n * Compile style to atomic CSS rules.\n */\n\nexport function atomic(style) {\n return Object.keys(style).sort().reduce(function (acc, property) {\n var value = style[property];\n\n if (value != null) {\n var valueString = stringifyValueWithProperty(value, property);\n var cachedResult = cache.get(property, valueString);\n\n if (cachedResult != null) {\n var identifier = cachedResult.identifier;\n acc[identifier] = cachedResult;\n } else {\n var _identifier = createIdentifier('r', property, value);\n\n var rules = createAtomicRules(_identifier, property, value);\n\n var _cachedResult = cache.set(property, valueString, {\n property: property,\n value: stringifyValueWithProperty(value, property),\n identifier: _identifier,\n rules: rules\n });\n\n acc[_identifier] = _cachedResult;\n }\n }\n\n return acc;\n }, {});\n}\n/**\n * Compile simple style object to classic CSS rules.\n * No support for 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\n\nexport function classic(style, name) {\n var _ref;\n\n var identifier = createIdentifier('css', name, style);\n\n var animationKeyframes = style.animationKeyframes,\n rest = _objectWithoutPropertiesLoose(style, [\"animationKeyframes\"]);\n\n var rules = [];\n var selector = \".\" + identifier;\n var animationName;\n\n if (animationKeyframes != null) {\n var _processKeyframesValu = processKeyframesValue(animationKeyframes),\n animationNames = _processKeyframesValu.animationNames,\n keyframesRules = _processKeyframesValu.rules;\n\n animationName = animationNames.join(',');\n rules.push.apply(rules, keyframesRules);\n }\n\n var block = createDeclarationBlock(_objectSpread(_objectSpread({}, rest), {}, {\n animationName: animationName\n }));\n rules.push(\"\" + selector + block);\n return _ref = {}, _ref[identifier] = {\n identifier: identifier,\n rules: rules\n }, _ref;\n}\n/**\n * Compile simple style object to inline DOM styles.\n * No support for 'animationKeyframes', 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\n\nexport function inline(style) {\n return prefixInlineStyles(createReactDOMStyle(style));\n}\n/**\n * Create a value string that normalizes different input values with a common\n * output.\n */\n\nexport function stringifyValueWithProperty(value, property) {\n // e.g., 0 => '0px', 'black' => 'rgba(0,0,0,1)'\n var normalizedValue = normalizeValueWithProperty(value, property);\n return typeof normalizedValue !== 'string' ? JSON.stringify(normalizedValue || '') : normalizedValue;\n}\n/**\n * Create the Atomic CSS rules needed for a given StyleSheet rule.\n * Translates StyleSheet declarations to CSS.\n */\n\nfunction createAtomicRules(identifier, property, value) {\n var rules = [];\n var selector = \".\" + identifier; // Handle non-standard properties and object values that require multiple\n // CSS rules to be created.\n\n switch (property) {\n case 'animationKeyframes':\n {\n var _processKeyframesValu2 = processKeyframesValue(value),\n animationNames = _processKeyframesValu2.animationNames,\n keyframesRules = _processKeyframesValu2.rules;\n\n var block = createDeclarationBlock({\n animationName: animationNames.join(',')\n });\n rules.push.apply(rules, [\"\" + selector + block].concat(keyframesRules));\n break;\n }\n // Equivalent to using '::placeholder'\n\n case 'placeholderTextColor':\n {\n var _block = createDeclarationBlock({\n color: value,\n opacity: 1\n });\n\n rules.push(selector + \"::-webkit-input-placeholder\" + _block, selector + \"::-moz-placeholder\" + _block, selector + \":-ms-input-placeholder\" + _block, selector + \"::placeholder\" + _block);\n break;\n }\n // Polyfill for additional 'pointer-events' values\n // See d13f78622b233a0afc0c7a200c0a0792c8ca9e58\n\n case 'pointerEvents':\n {\n var _createDeclarationBlo3;\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 _createDeclarationBlo;\n\n var _block3 = createDeclarationBlock((_createDeclarationBlo = {}, _createDeclarationBlo[property] = 'none', _createDeclarationBlo));\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 _createDeclarationBlo2;\n\n var _block4 = createDeclarationBlock((_createDeclarationBlo2 = {}, _createDeclarationBlo2[property] = 'auto', _createDeclarationBlo2));\n\n rules.push(selector + \">*\" + _block4);\n }\n }\n\n var _block2 = createDeclarationBlock((_createDeclarationBlo3 = {}, _createDeclarationBlo3[property] = finalValue, _createDeclarationBlo3));\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 var _createDeclarationBlo4;\n\n if (value === 'none') {\n rules.push(selector + \"::-webkit-scrollbar{display:none}\");\n }\n\n var _block5 = createDeclarationBlock((_createDeclarationBlo4 = {}, _createDeclarationBlo4[property] = value, _createDeclarationBlo4));\n\n rules.push(\"\" + selector + _block5);\n break;\n }\n\n default:\n {\n var _createDeclarationBlo5;\n\n var _block6 = createDeclarationBlock((_createDeclarationBlo5 = {}, _createDeclarationBlo5[property] = value, _createDeclarationBlo5));\n\n rules.push(\"\" + selector + _block6);\n break;\n }\n }\n\n return rules;\n}\n/**\n * Creates a CSS declaration block from a StyleSheet object.\n */\n\n\nfunction createDeclarationBlock(style) {\n var domStyle = prefixStyles(createReactDOMStyle(style));\n var declarationsString = Object.keys(domStyle).map(function (property) {\n var value = domStyle[property];\n var prop = hyphenateStyleName(property); // The prefixer may return an array of values:\n // { display: [ '-webkit-flex', 'flex' ] }\n // to represent \"fallback\" declarations\n // { display: -webkit-flex; display: flex; }\n\n if (Array.isArray(value)) {\n return value.map(function (v) {\n return prop + \":\" + v;\n }).join(';');\n } else {\n return prop + \":\" + value;\n }\n }) // Once properties are hyphenated, this will put the vendor\n // prefixed and short-form properties first in the list.\n .sort().join(';');\n return \"{\" + declarationsString + \";}\";\n}\n/**\n * An identifier is associated with a unique set of styles.\n */\n\n\nfunction createIdentifier(prefix, name, value) {\n var hashedString = hash(name + stringifyValueWithProperty(value, name));\n return process.env.NODE_ENV !== 'production' ? prefix + \"-\" + name + \"-\" + hashedString : prefix + \"-\" + hashedString;\n}\n/**\n * Create individual CSS keyframes rules.\n */\n\n\nfunction createKeyframes(keyframes) {\n var prefixes = ['-webkit-', ''];\n var identifier = createIdentifier('r', 'animation', keyframes);\n var steps = '{' + Object.keys(keyframes).map(function (stepName) {\n var rule = keyframes[stepName];\n var block = createDeclarationBlock(rule);\n return \"\" + stepName + block;\n }).join('') + '}';\n var rules = prefixes.map(function (prefix) {\n return \"@\" + prefix + \"keyframes \" + identifier + steps;\n });\n return {\n identifier: identifier,\n rules: rules\n };\n}\n/**\n * Create CSS keyframes rules and names from a StyleSheet keyframes object.\n */\n\n\nfunction processKeyframesValue(keyframesValue) {\n if (typeof keyframesValue === 'number') {\n throw new Error(\"Invalid CSS keyframes type: \" + typeof keyframesValue);\n }\n\n var animationNames = [];\n var rules = [];\n var value = Array.isArray(keyframesValue) ? keyframesValue : [keyframesValue];\n value.forEach(function (keyframes) {\n if (typeof keyframes === 'string') {\n // Support external animation libraries (identifiers only)\n animationNames.push(keyframes);\n } else {\n // Create rules for each of the keyframes\n var _createKeyframes = createKeyframes(keyframes),\n identifier = _createKeyframes.identifier,\n keyframesRules = _createKeyframes.rules;\n\n animationNames.push(identifier);\n rules.push.apply(rules, keyframesRules);\n }\n });\n return {\n animationNames: animationNames,\n rules: rules\n };\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar resets = [// minimal top-level reset\n'html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}', 'body{margin:0;}', // minimal form pseudo-element reset\n'button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}', 'input::-webkit-inner-spin-button,input::-webkit-outer-spin-button,' + 'input::-webkit-search-cancel-button,input::-webkit-search-decoration,' + 'input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}'];\nexport default resets;","/**\n * Adapts focus styles based on the user's active input modality (i.e., how\n * they are interacting with the UI right now).\n *\n * Focus styles are only relevant when using the keyboard to interact with the\n * page. If we only show the focus ring when relevant, we can avoid user\n * confusion without compromising accessibility.\n *\n * The script uses two heuristics to determine whether the keyboard is being used:\n *\n * 1. a keydown event occurred immediately before a focus event;\n * 2. a focus event happened on an element which requires keyboard interaction (e.g., a text field);\n *\n * This software or document includes material copied from or derived from https://github.com/WICG/focus-visible.\n * Copyright © 2018 W3C® (MIT, ERCIM, Keio, Beihang).\n * W3C Software Notice and License: https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nvar focusVisibleAttributeName = 'data-focusvisible-polyfill';\nvar rule = \":focus:not([\" + focusVisibleAttributeName + \"]){outline: none;}\";\n\nvar modality = function modality(insertRule) {\n insertRule(rule);\n\n if (!canUseDOM) {\n return;\n }\n\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n var inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n */\n\n function isValidFocusTarget(el) {\n if (el && el !== document && el.nodeName !== 'HTML' && el.nodeName !== 'BODY' && 'classList' in el && 'contains' in el.classList) {\n return true;\n }\n\n return false;\n }\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` attribute being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n */\n\n\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n var isReadOnly = el.readOnly;\n\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !isReadOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !isReadOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n /**\n * Add the `focus-visible` attribute to the given element if it was not added by\n * the author.\n */\n\n\n function addFocusVisibleAttribute(el) {\n if (el.hasAttribute(focusVisibleAttributeName)) {\n return;\n }\n\n el.setAttribute(focusVisibleAttributeName, true);\n }\n /**\n * Remove the `focus-visible` attribute from the given element if it was not\n * originally added by the author.\n */\n\n\n function removeFocusVisibleAttribute(el) {\n el.removeAttribute(focusVisibleAttributeName);\n }\n /**\n * Remove the `focus-visible` attribute from all elements in the document.\n */\n\n\n function removeAllFocusVisibleAttributes() {\n var list = document.querySelectorAll(\"[\" + focusVisibleAttributeName + \"]\");\n\n for (var i = 0; i < list.length; i += 1) {\n removeFocusVisibleAttribute(list[i]);\n }\n }\n /**\n * Treat `keydown` as a signal that the user is in keyboard modality.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n */\n\n\n function onKeyDown(e) {\n if (e.key !== 'Tab' && (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)) {\n return;\n }\n\n if (isValidFocusTarget(document.activeElement)) {\n addFocusVisibleAttribute(document.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * It also avoids the situation where a user presses on an element within a\n * previously keyboard-focused element (i.e., `e.target` is not the previously\n * focused element, but one of its descendants) and we need to remove the\n * focus ring because a `blur` event doesn't occur.\n */\n\n\n function onPointerDown(e) {\n if (hadKeyboardEvent === true) {\n removeAllFocusVisibleAttributes();\n }\n\n hadKeyboardEvent = false;\n }\n /**\n * On `focus`, add the `focus-visible` attribute to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n */\n\n\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleAttribute(e.target);\n }\n }\n /**\n * On `blur`, remove the `focus-visible` attribute from the target.\n */\n\n\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (e.target.hasAttribute(focusVisibleAttributeName)) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function () {\n hadFocusVisibleRecently = false;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n }, 100);\n removeFocusVisibleAttribute(e.target);\n }\n }\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had the focus-visible attribute.\n */\n\n\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the attribute when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n\n addInitialPointerMoveListeners();\n }\n }\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n\n\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n */\n\n\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. ¯\\_(ツ)_/¯\n if (e.target.nodeName === 'HTML') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('focus', onFocus, true);\n document.addEventListener('blur', onBlur, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n addInitialPointerMoveListeners();\n};\n\nexport default modality;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * WARNING: changes to this file in particular can cause significant changes to\n * the results of render performance benchmarks.\n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport createCSSStyleSheet from './createCSSStyleSheet';\nimport createCompileableStyle from './createCompileableStyle';\nimport createOrderedCSSStyleSheet from './createOrderedCSSStyleSheet';\nimport flattenArray from '../../modules/flattenArray';\nimport flattenStyle from './flattenStyle';\nimport I18nManager from '../I18nManager';\nimport i18nStyle from './i18nStyle';\nimport { atomic, classic, inline, stringifyValueWithProperty } from './compile';\nimport initialRules from './initialRules';\nimport modality from './modality';\nimport { STYLE_ELEMENT_ID, STYLE_GROUPS } from './constants';\nexport default function createStyleResolver() {\n var inserted, sheet, cache;\n var resolved = {\n css: {},\n ltr: {},\n rtl: {},\n rtlNoSwap: {}\n };\n\n var init = function init() {\n inserted = {\n css: {},\n ltr: {},\n rtl: {},\n rtlNoSwap: {}\n };\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(STYLE_ELEMENT_ID));\n cache = {};\n modality(function (rule) {\n return sheet.insert(rule, STYLE_GROUPS.modality);\n });\n initialRules.forEach(function (rule) {\n sheet.insert(rule, STYLE_GROUPS.reset);\n });\n };\n\n init();\n\n function addToCache(className, prop, value) {\n if (!cache[prop]) {\n cache[prop] = {};\n }\n\n cache[prop][value] = className;\n }\n\n function getClassName(prop, value) {\n var val = stringifyValueWithProperty(value, prop);\n return cache[prop] && cache[prop].hasOwnProperty(val) && cache[prop][val];\n }\n\n function _injectRegisteredStyle(id) {\n var _I18nManager$getConst = I18nManager.getConstants(),\n doLeftAndRightSwapInRTL = _I18nManager$getConst.doLeftAndRightSwapInRTL,\n isRTL = _I18nManager$getConst.isRTL;\n\n var dir = isRTL ? doLeftAndRightSwapInRTL ? 'rtl' : 'rtlNoSwap' : 'ltr';\n\n if (!inserted[dir][id]) {\n var style = createCompileableStyle(i18nStyle(flattenStyle(id)));\n var results = atomic(style);\n Object.keys(results).forEach(function (key) {\n var _results$key = results[key],\n identifier = _results$key.identifier,\n property = _results$key.property,\n rules = _results$key.rules,\n value = _results$key.value;\n addToCache(identifier, property, value);\n rules.forEach(function (rule) {\n var group = STYLE_GROUPS.custom[property] || STYLE_GROUPS.atomic;\n sheet.insert(rule, group);\n });\n });\n inserted[dir][id] = true;\n }\n }\n /**\n * Resolves a React Native style object to DOM attributes\n */\n\n\n function resolve(style, classList) {\n var nextClassList = [];\n var props = {};\n\n if (!style && !classList) {\n return props;\n }\n\n if (Array.isArray(classList)) {\n flattenArray(classList).forEach(function (identifier) {\n if (identifier) {\n if (inserted.css[identifier] == null && resolved.css[identifier] != null) {\n var item = resolved.css[identifier];\n item.rules.forEach(function (rule) {\n sheet.insert(rule, item.group);\n });\n inserted.css[identifier] = true;\n }\n\n nextClassList.push(identifier);\n }\n });\n }\n\n if (typeof style === 'number') {\n // fast and cachable\n _injectRegisteredStyle(style);\n\n var key = createCacheKey(style);\n props = _resolveStyle(style, key);\n } else if (!Array.isArray(style)) {\n // resolve a plain RN style object\n props = _resolveStyle(style);\n } else {\n // flatten the style array\n // cache resolved props when all styles are registered\n // otherwise fallback to resolving\n var flatArray = flattenArray(style);\n var isArrayOfNumbers = true;\n var cacheKey = '';\n\n for (var i = 0; i < flatArray.length; i++) {\n var id = flatArray[i];\n\n if (typeof id !== 'number') {\n isArrayOfNumbers = false;\n } else {\n if (isArrayOfNumbers) {\n cacheKey += id + '-';\n }\n\n _injectRegisteredStyle(id);\n }\n }\n\n var _key = isArrayOfNumbers ? createCacheKey(cacheKey) : null;\n\n props = _resolveStyle(flatArray, _key);\n }\n\n nextClassList.push.apply(nextClassList, props.classList);\n var finalProps = {\n className: classListToString(nextClassList),\n classList: nextClassList\n };\n\n if (props.style) {\n finalProps.style = props.style;\n }\n\n return finalProps;\n }\n /**\n * Resolves a React Native style object\n */\n\n\n function _resolveStyle(style, key) {\n var _I18nManager$getConst2 = I18nManager.getConstants(),\n doLeftAndRightSwapInRTL = _I18nManager$getConst2.doLeftAndRightSwapInRTL,\n isRTL = _I18nManager$getConst2.isRTL;\n\n var dir = isRTL ? doLeftAndRightSwapInRTL ? 'rtl' : 'rtlNoSwap' : 'ltr'; // faster: memoized\n\n if (key != null && resolved[dir][key] != null) {\n return resolved[dir][key];\n }\n\n var flatStyle = flattenStyle(style);\n var localizedStyle = createCompileableStyle(i18nStyle(flatStyle)); // slower: convert style object to props and cache\n\n var props = Object.keys(localizedStyle).sort().reduce(function (props, styleProp) {\n var value = localizedStyle[styleProp];\n\n if (value != null) {\n var className = getClassName(styleProp, value);\n\n if (className) {\n props.classList.push(className);\n } else {\n // Certain properties and values are not transformed by 'createReactDOMStyle' as they\n // require more complex transforms into multiple CSS rules. Here we assume that StyleManager\n // can bind these styles to a className, and prevent them becoming invalid inline-styles.\n if (styleProp === 'animationKeyframes' || styleProp === 'placeholderTextColor' || styleProp === 'pointerEvents' || styleProp === 'scrollbarWidth') {\n var _atomic;\n\n var a = atomic((_atomic = {}, _atomic[styleProp] = value, _atomic));\n Object.keys(a).forEach(function (key) {\n var _a$key = a[key],\n identifier = _a$key.identifier,\n rules = _a$key.rules;\n props.classList.push(identifier);\n rules.forEach(function (rule) {\n sheet.insert(rule, STYLE_GROUPS.atomic);\n });\n });\n } else {\n if (!props.style) {\n props.style = {};\n } // 4x slower render\n\n\n props.style[styleProp] = value;\n }\n }\n }\n\n return props;\n }, {\n classList: []\n });\n\n if (props.style) {\n props.style = inline(props.style);\n }\n\n if (key != null) {\n resolved[dir][key] = props;\n }\n\n return props;\n }\n\n return {\n getStyleSheet: function getStyleSheet() {\n var textContent = sheet.getTextContent(); // Reset state on the server so critical css is always the result\n\n if (!canUseDOM) {\n init();\n }\n\n return {\n id: STYLE_ELEMENT_ID,\n textContent: textContent\n };\n },\n createCSS: function createCSS(rules, group) {\n var result = {};\n Object.keys(rules).forEach(function (name) {\n var style = rules[name];\n var compiled = classic(style, name);\n Object.keys(compiled).forEach(function (key) {\n var _compiled$key = compiled[key],\n identifier = _compiled$key.identifier,\n rules = _compiled$key.rules;\n resolved.css[identifier] = {\n group: group || STYLE_GROUPS.classic,\n rules: rules\n };\n result[name] = identifier;\n });\n });\n return result;\n },\n resolve: resolve,\n\n get sheet() {\n return sheet;\n }\n\n };\n}\n/**\n * Misc helpers\n */\n\nvar createCacheKey = function createCacheKey(id) {\n var prefix = 'rn';\n return prefix + \"-\" + id;\n};\n\nvar classListToString = function classListToString(list) {\n return list.join(' ').trim();\n};","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createStyleResolver from './createStyleResolver';\nvar styleResolver = createStyleResolver();\nexport default styleResolver;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; // $FlowFixMe: HTMLStyleElement is incorrectly typed - https://github.com/facebook/flow/issues/2696\n\nexport default function createCSSStyleSheet(id) {\n if (canUseDOM) {\n var element = document.getElementById(id);\n\n if (element != null) {\n // $FlowFixMe: HTMLElement is incorrectly typed\n return element.sheet;\n } else {\n var _element = document.createElement('style');\n\n _element.setAttribute('id', id);\n\n var head = document.head;\n\n if (head) {\n head.insertBefore(_element, head.firstChild);\n }\n\n return _element.sheet;\n }\n } else {\n return null;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport styleResolver from './styleResolver';\n/**\n * A simple (and dangerous) CSS system.\n * The order of CSS rule insertion is not guaranteed.\n * Avoiding combining 2 or more classes that modify the same property.\n */\n\nvar css = {\n /**\n * const classes = css.create({ base: {}, extra: {} })\n */\n create: function create(rules, group) {\n return styleResolver.createCSS(rules, group);\n }\n};\nexport default css;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport ReactNativePropRegistry from './ReactNativePropRegistry';\nimport flattenStyle from './flattenStyle';\nimport validate from './validate';\nvar absoluteFillObject = {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n};\nvar absoluteFill = ReactNativePropRegistry.register(absoluteFillObject);\nvar StyleSheet = {\n absoluteFill: absoluteFill,\n absoluteFillObject: absoluteFillObject,\n compose: function compose(style1, style2) {\n if (process.env.NODE_ENV !== 'production') {\n /* eslint-disable prefer-rest-params */\n var len = arguments.length;\n\n if (len > 2) {\n var readableStyles = Array.prototype.slice.call(arguments).map(function (a) {\n return flattenStyle(a);\n });\n throw new Error(\"StyleSheet.compose() only accepts 2 arguments, received \" + len + \": \" + JSON.stringify(readableStyles));\n }\n /* eslint-enable prefer-rest-params */\n\n }\n\n if (style1 && style2) {\n return [style1, style2];\n } else {\n return style1 || style2;\n }\n },\n create: function create(styles) {\n var result = {};\n Object.keys(styles).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n validate(key, styles);\n }\n\n var id = styles[key] && ReactNativePropRegistry.register(styles[key]);\n result[key] = id;\n });\n return result;\n },\n flatten: flattenStyle,\n // `hairlineWidth` is not implemented using screen density as browsers may\n // round sub-pixel values down to `0`, causing the line not to be rendered.\n hairlineWidth: 1\n};\nexport default StyleSheet;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport StyleSheet from './StyleSheet'; // allow original component styles to be inspected in React Dev Tools\n\nif (canUseDOM && window.__REACT_DEVTOOLS_GLOBAL_HOOK__) {\n window.__REACT_DEVTOOLS_GLOBAL_HOOK__.resolveRNStyle = StyleSheet.flatten;\n}\n\nexport default StyleSheet;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n/**\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\nimport AccessibilityUtil from '../AccessibilityUtil';\nimport css from '../../exports/StyleSheet/css';\nimport StyleSheet from '../../exports/StyleSheet';\nimport styleResolver from '../../exports/StyleSheet/styleResolver';\nimport { STYLE_GROUPS } from '../../exports/StyleSheet/constants';\nvar emptyObject = {};\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar uppercasePattern = /[A-Z]/g;\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\n\nfunction hyphenateString(str) {\n return str.replace(uppercasePattern, toHyphenLower);\n} // Reset styles for heading, link, and list DOM elements\n\n\nvar classes = css.create({\n reset: {\n backgroundColor: 'transparent',\n color: 'inherit',\n font: 'inherit',\n listStyle: 'none',\n margin: 0,\n textAlign: 'inherit',\n textDecoration: 'none'\n },\n cursor: {\n cursor: 'pointer'\n }\n}, STYLE_GROUPS.classicReset);\nvar pointerEventsStyles = StyleSheet.create({\n auto: {\n pointerEvents: 'auto'\n },\n 'box-none': {\n pointerEvents: 'box-none'\n },\n 'box-only': {\n pointerEvents: 'box-only'\n },\n none: {\n pointerEvents: 'none'\n }\n});\n\nvar createDOMProps = function createDOMProps(elementType, props) {\n if (!props) {\n props = emptyObject;\n }\n\n var _props = props,\n accessibilityActiveDescendant = _props.accessibilityActiveDescendant,\n accessibilityAtomic = _props.accessibilityAtomic,\n accessibilityAutoComplete = _props.accessibilityAutoComplete,\n accessibilityBusy = _props.accessibilityBusy,\n accessibilityChecked = _props.accessibilityChecked,\n accessibilityColumnCount = _props.accessibilityColumnCount,\n accessibilityColumnIndex = _props.accessibilityColumnIndex,\n accessibilityColumnSpan = _props.accessibilityColumnSpan,\n accessibilityControls = _props.accessibilityControls,\n accessibilityCurrent = _props.accessibilityCurrent,\n accessibilityDescribedBy = _props.accessibilityDescribedBy,\n accessibilityDetails = _props.accessibilityDetails,\n accessibilityDisabled = _props.accessibilityDisabled,\n accessibilityErrorMessage = _props.accessibilityErrorMessage,\n accessibilityExpanded = _props.accessibilityExpanded,\n accessibilityFlowTo = _props.accessibilityFlowTo,\n accessibilityHasPopup = _props.accessibilityHasPopup,\n accessibilityHidden = _props.accessibilityHidden,\n accessibilityInvalid = _props.accessibilityInvalid,\n accessibilityKeyShortcuts = _props.accessibilityKeyShortcuts,\n accessibilityLabel = _props.accessibilityLabel,\n accessibilityLabelledBy = _props.accessibilityLabelledBy,\n accessibilityLevel = _props.accessibilityLevel,\n accessibilityLiveRegion = _props.accessibilityLiveRegion,\n accessibilityModal = _props.accessibilityModal,\n accessibilityMultiline = _props.accessibilityMultiline,\n accessibilityMultiSelectable = _props.accessibilityMultiSelectable,\n accessibilityOrientation = _props.accessibilityOrientation,\n accessibilityOwns = _props.accessibilityOwns,\n accessibilityPlaceholder = _props.accessibilityPlaceholder,\n accessibilityPosInSet = _props.accessibilityPosInSet,\n accessibilityPressed = _props.accessibilityPressed,\n accessibilityReadOnly = _props.accessibilityReadOnly,\n accessibilityRequired = _props.accessibilityRequired,\n accessibilityRole = _props.accessibilityRole,\n accessibilityRoleDescription = _props.accessibilityRoleDescription,\n accessibilityRowCount = _props.accessibilityRowCount,\n accessibilityRowIndex = _props.accessibilityRowIndex,\n accessibilityRowSpan = _props.accessibilityRowSpan,\n accessibilitySelected = _props.accessibilitySelected,\n accessibilitySetSize = _props.accessibilitySetSize,\n accessibilitySort = _props.accessibilitySort,\n accessibilityValueMax = _props.accessibilityValueMax,\n accessibilityValueMin = _props.accessibilityValueMin,\n accessibilityValueNow = _props.accessibilityValueNow,\n accessibilityValueText = _props.accessibilityValueText,\n classList = _props.classList,\n dataSet = _props.dataSet,\n focusable = _props.focusable,\n nativeID = _props.nativeID,\n pointerEvents = _props.pointerEvents,\n providedStyle = _props.style,\n testID = _props.testID,\n accessible = _props.accessible,\n accessibilityState = _props.accessibilityState,\n accessibilityValue = _props.accessibilityValue,\n domProps = _objectWithoutPropertiesLoose(_props, [\"accessibilityActiveDescendant\", \"accessibilityAtomic\", \"accessibilityAutoComplete\", \"accessibilityBusy\", \"accessibilityChecked\", \"accessibilityColumnCount\", \"accessibilityColumnIndex\", \"accessibilityColumnSpan\", \"accessibilityControls\", \"accessibilityCurrent\", \"accessibilityDescribedBy\", \"accessibilityDetails\", \"accessibilityDisabled\", \"accessibilityErrorMessage\", \"accessibilityExpanded\", \"accessibilityFlowTo\", \"accessibilityHasPopup\", \"accessibilityHidden\", \"accessibilityInvalid\", \"accessibilityKeyShortcuts\", \"accessibilityLabel\", \"accessibilityLabelledBy\", \"accessibilityLevel\", \"accessibilityLiveRegion\", \"accessibilityModal\", \"accessibilityMultiline\", \"accessibilityMultiSelectable\", \"accessibilityOrientation\", \"accessibilityOwns\", \"accessibilityPlaceholder\", \"accessibilityPosInSet\", \"accessibilityPressed\", \"accessibilityReadOnly\", \"accessibilityRequired\", \"accessibilityRole\", \"accessibilityRoleDescription\", \"accessibilityRowCount\", \"accessibilityRowIndex\", \"accessibilityRowSpan\", \"accessibilitySelected\", \"accessibilitySetSize\", \"accessibilitySort\", \"accessibilityValueMax\", \"accessibilityValueMin\", \"accessibilityValueNow\", \"accessibilityValueText\", \"classList\", \"dataSet\", \"focusable\", \"nativeID\", \"pointerEvents\", \"style\", \"testID\", \"accessible\", \"accessibilityState\", \"accessibilityValue\"]);\n\n var disabled = accessibilityState != null && accessibilityState.disabled === true || accessibilityDisabled;\n var role = AccessibilityUtil.propsToAriaRole(props);\n var isNativeInteractiveElement = role === 'link' || elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea' || domProps.contentEditable != null; // DEPRECATED\n\n if (accessibilityState != null) {\n for (var prop in accessibilityState) {\n var value = accessibilityState[prop];\n\n if (value != null) {\n if (prop === 'disabled' || prop === 'hidden') {\n if (value === true) {\n domProps[\"aria-\" + prop] = value; // also set prop directly to pick up host elementType behaviour\n\n domProps[prop] = value;\n }\n } else {\n domProps[\"aria-\" + prop] = value;\n }\n }\n }\n }\n\n if (accessibilityValue != null) {\n for (var _prop in accessibilityValue) {\n var _value = accessibilityValue[_prop];\n\n if (_value != null) {\n domProps[\"aria-value\" + _prop] = _value;\n }\n }\n } // ACCESSIBILITY\n\n\n if (accessibilityActiveDescendant != null) {\n domProps['aria-activedescendant'] = accessibilityActiveDescendant;\n }\n\n if (accessibilityAtomic != null) {\n domProps['aria-atomic'] = accessibilityAtomic;\n }\n\n if (accessibilityAutoComplete != null) {\n domProps['aria-autocomplete'] = accessibilityAutoComplete;\n }\n\n if (accessibilityBusy != null) {\n domProps['aria-busy'] = accessibilityBusy;\n }\n\n if (accessibilityChecked != null) {\n domProps['aria-checked'] = accessibilityChecked;\n }\n\n if (accessibilityColumnCount != null) {\n domProps['aria-colcount'] = accessibilityColumnCount;\n }\n\n if (accessibilityColumnIndex != null) {\n domProps['aria-colindex'] = accessibilityColumnIndex;\n }\n\n if (accessibilityColumnSpan != null) {\n domProps['aria-colspan'] = accessibilityColumnSpan;\n }\n\n if (accessibilityControls != null) {\n domProps['aria-controls'] = accessibilityControls;\n }\n\n if (accessibilityCurrent != null) {\n domProps['aria-current'] = accessibilityCurrent;\n }\n\n if (accessibilityDescribedBy != null) {\n domProps['aria-describedby'] = 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'] = 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'] = 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'] = accessibilityOwns;\n }\n\n if (accessibilityPlaceholder != null) {\n domProps['aria-placeholder'] = accessibilityPlaceholder;\n }\n\n if (accessibilityPosInSet != null) {\n domProps['aria-posinset'] = accessibilityPosInSet;\n }\n\n if (accessibilityPressed != null) {\n domProps['aria-pressed'] = accessibilityPressed;\n }\n\n if (accessibilityReadOnly != null) {\n domProps['aria-readonly'] = accessibilityReadOnly; // Enhance with native semantics\n\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.readOnly = true;\n }\n }\n\n if (accessibilityRequired != null) {\n domProps['aria-required'] = accessibilityRequired; // Enhance with native semantics\n\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.required = true;\n }\n }\n\n if (role != null) {\n // 'presentation' synonym has wider browser support\n domProps['role'] = role === 'none' ? 'presentation' : role;\n }\n\n if (accessibilityRoleDescription != null) {\n domProps['aria-roledescription'] = accessibilityRoleDescription;\n }\n\n if (accessibilityRowCount != null) {\n domProps['aria-rowcount'] = accessibilityRowCount;\n }\n\n if (accessibilityRowIndex != null) {\n domProps['aria-rowindex'] = accessibilityRowIndex;\n }\n\n if (accessibilityRowSpan != null) {\n domProps['aria-rowspan'] = accessibilityRowSpan;\n }\n\n if (accessibilitySelected != null) {\n domProps['aria-selected'] = accessibilitySelected;\n }\n\n if (accessibilitySetSize != null) {\n domProps['aria-setsize'] = accessibilitySetSize;\n }\n\n if (accessibilitySort != null) {\n domProps['aria-sort'] = accessibilitySort;\n }\n\n if (accessibilityValueMax != null) {\n domProps['aria-valuemax'] = accessibilityValueMax;\n }\n\n if (accessibilityValueMin != null) {\n domProps['aria-valuemin'] = accessibilityValueMin;\n }\n\n if (accessibilityValueNow != null) {\n domProps['aria-valuenow'] = accessibilityValueNow;\n }\n\n if (accessibilityValueText != null) {\n domProps['aria-valuetext'] = accessibilityValueText;\n } // \"dataSet\" replaced with \"data-*\"\n\n\n if (dataSet != null) {\n for (var dataProp in dataSet) {\n if (hasOwnProperty.call(dataSet, dataProp)) {\n var dataName = hyphenateString(dataProp);\n var dataValue = dataSet[dataProp];\n\n if (dataValue != null) {\n domProps[\"data-\" + dataName] = dataValue;\n }\n }\n }\n } // FOCUS\n // \"focusable\" indicates that an element may be a keyboard tab-stop.\n\n\n var _focusable = focusable != null ? focusable : accessible;\n\n if ( // These native elements are focusable by default\n elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n if (_focusable === false || accessibilityDisabled === true) {\n domProps.tabIndex = '-1';\n }\n } else if ( // These roles are made focusable by default\n role === 'button' || role === 'checkbox' || role === 'link' || role === 'menuitem' || role === 'radio' || role === 'textbox' || role === 'switch') {\n if (_focusable !== false) {\n domProps.tabIndex = '0';\n }\n } else {\n // Everything else must explicitly set the prop\n if (_focusable === true) {\n domProps.tabIndex = '0';\n }\n } // STYLE\n\n\n var reactNativeStyle = StyleSheet.compose(pointerEvents && pointerEventsStyles[pointerEvents], providedStyle); // Additional style resets for interactive elements\n\n var needsCursor = (role === 'button' || role === 'link') && !disabled;\n var needsReset = elementType === 'a' || elementType === 'button' || elementType === 'li' || elementType === 'ul' || role === 'heading'; // Classic CSS styles\n\n var finalClassList = [needsReset && classes.reset, needsCursor && classes.cursor, classList]; // Resolve styles\n\n var _styleResolver$resolv = styleResolver.resolve(reactNativeStyle, finalClassList),\n className = _styleResolver$resolv.className,\n style = _styleResolver$resolv.style;\n\n if (className != null && className !== '') {\n domProps.className = className;\n }\n\n if (style) {\n domProps.style = style;\n } // OTHER\n // Native element ID\n\n\n if (nativeID != null) {\n domProps.id = nativeID;\n } // Automated test IDs\n\n\n if (testID != null) {\n domProps['data-testid'] = testID;\n } // Keyboard accessibility\n // Button-like roles should trigger 'onClick' if SPACE key is pressed.\n // Button-like roles should not trigger 'onClick' if they are disabled.\n\n\n if (isNativeInteractiveElement || role === 'button' || role === 'menuitem' || _focusable === true && !disabled) {\n var onClick = domProps.onClick;\n\n if (onClick != null) {\n if (disabled) {\n // Prevent click propagating if the element is disabled. See #1757\n domProps.onClick = function (e) {\n e.stopPropagation();\n };\n } else if (!isNativeInteractiveElement) {\n // For native elements that are focusable but don't dispatch 'click' events\n // for keyboards.\n var onKeyDown = domProps.onKeyDown;\n\n domProps.onKeyDown = function (e) {\n var key = e.key,\n repeat = e.repeat;\n var isSpacebarKey = key === ' ' || key === 'Spacebar';\n var isButtonRole = role === 'button' || role === 'menuitem';\n\n if (onKeyDown != null) {\n onKeyDown(e);\n }\n\n if (!repeat && key === 'Enter') {\n onClick(e);\n } else if (isSpacebarKey && isButtonRole) {\n if (!repeat) {\n onClick(e);\n } // Prevent spacebar scrolling the window\n\n\n e.preventDefault();\n }\n };\n }\n }\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 AccessibilityUtil from '../../modules/AccessibilityUtil';\nimport createDOMProps from '../../modules/createDOMProps';\nimport React from 'react';\n\nvar createElement = function createElement(component, props) {\n // Use equivalent platform elements where possible.\n var accessibilityComponent;\n\n if (component && component.constructor === String) {\n accessibilityComponent = AccessibilityUtil.propsToAccessibilityComponent(props);\n }\n\n var Component = accessibilityComponent || component;\n var domProps = createDOMProps(Component, props);\n\n for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n children[_key - 2] = arguments[_key];\n }\n\n return /*#__PURE__*/React.createElement.apply(React, [Component, domProps].concat(children));\n};\n\nexport default createElement;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { findDOMNode } from 'react-dom';\n\nvar findNodeHandle = function findNodeHandle(component) {\n var node;\n\n try {\n node = findDOMNode(component);\n } catch (e) {}\n\n return node;\n};\n\nexport default findNodeHandle;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { hydrate, render } from 'react-dom';\nexport { hydrate };\nexport default render;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { unmountComponentAtNode } from 'react-dom';\nexport default unmountComponentAtNode;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar getBoundingClientRect = function getBoundingClientRect(node) {\n if (node != null) {\n var isElement = node.nodeType === 1;\n /* Node.ELEMENT_NODE */\n\n if (isElement && typeof node.getBoundingClientRect === 'function') {\n return node.getBoundingClientRect();\n }\n }\n};\n\nexport default getBoundingClientRect;","/* eslint-disable */\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.0.0\n * \n */\nimport isUnitlessNumber from '../unitlessNumbers';\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n\n if (isEmpty) {\n return '';\n }\n\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return ('' + value).trim();\n}\n\nexport default dangerousStyleValue;","/* eslint-disable */\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.3.0\n * \n */\nimport dangerousStyleValue from './dangerousStyleValue';\n/**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\n\nfunction setValueForStyles(node, styles) {\n var style = node.style;\n\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n\n var isCustomProperty = styleName.indexOf('--') === 0;\n var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n\n if (isCustomProperty) {\n style.setProperty(styleName, styleValue);\n } else {\n style[styleName] = styleValue;\n }\n }\n}\n\nexport default setValueForStyles;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nimport setValueForStyles from '../../modules/setValueForStyles';\n\nvar getRect = function getRect(node) {\n // Unlike the DOM's getBoundingClientRect, React Native layout measurements\n // for \"height\" and \"width\" ignore scale transforms.\n // https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model/Determining_the_dimensions_of_elements\n var _getBoundingClientRec = getBoundingClientRect(node),\n x = _getBoundingClientRec.x,\n y = _getBoundingClientRec.y,\n top = _getBoundingClientRec.top,\n left = _getBoundingClientRec.left;\n\n var width = node.offsetWidth;\n var height = node.offsetHeight;\n return {\n x: x,\n y: y,\n width: width,\n height: height,\n top: top,\n left: left\n };\n};\n\nvar _measureLayout = function measureLayout(node, relativeToNativeNode, callback) {\n var relativeNode = relativeToNativeNode || node && node.parentNode;\n\n if (node && relativeNode) {\n setTimeout(function () {\n var relativeRect = getBoundingClientRect(relativeNode);\n\n var _getRect = getRect(node),\n height = _getRect.height,\n left = _getRect.left,\n top = _getRect.top,\n width = _getRect.width;\n\n var x = left - relativeRect.left;\n var y = top - relativeRect.top;\n callback(x, y, width, height, left, top);\n }, 0);\n }\n};\n\nvar focusableElements = {\n A: true,\n INPUT: true,\n SELECT: true,\n TEXTAREA: true\n};\nvar UIManager = {\n blur: function blur(node) {\n try {\n node.blur();\n } catch (err) {}\n },\n focus: function focus(node) {\n try {\n var name = node.nodeName; // A tabIndex of -1 allows element to be programmatically focused but\n // prevents keyboard focus, so we don't want to set the value on elements\n // that support keyboard focus by default.\n\n if (node.getAttribute('tabIndex') == null && focusableElements[name] == null) {\n node.setAttribute('tabIndex', '-1');\n }\n\n node.focus();\n } catch (err) {}\n },\n measure: function measure(node, callback) {\n _measureLayout(node, null, callback);\n },\n measureInWindow: function measureInWindow(node, callback) {\n if (node) {\n setTimeout(function () {\n var _getRect2 = getRect(node),\n height = _getRect2.height,\n left = _getRect2.left,\n top = _getRect2.top,\n width = _getRect2.width;\n\n callback(left, top, width, height);\n }, 0);\n }\n },\n measureLayout: function measureLayout(node, relativeToNativeNode, onFail, onSuccess) {\n _measureLayout(node, relativeToNativeNode, onSuccess);\n },\n updateView: function updateView(node, props) {\n for (var prop in props) {\n if (!Object.prototype.hasOwnProperty.call(props, prop)) {\n continue;\n }\n\n var value = props[prop];\n\n switch (prop) {\n case 'style':\n {\n setValueForStyles(node, value);\n break;\n }\n\n case 'class':\n case 'className':\n {\n node.setAttribute('class', value);\n break;\n }\n\n case 'text':\n case 'value':\n // native platforms use `text` prop to replace text input value\n node.value = value;\n break;\n\n default:\n node.setAttribute(prop, value);\n }\n }\n },\n configureNextLayoutAnimation: function configureNextLayoutAnimation(config, onAnimationDidEnd) {\n onAnimationDidEnd();\n },\n // mocks\n setLayoutAnimationEnabledExperimental: function setLayoutAnimationEnabledExperimental() {}\n};\nexport default UIManager;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport UIManager from '../UIManager'; // NativeModules shim\n\nvar NativeModules = {\n UIManager: UIManager\n};\nexport default NativeModules;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\n\nfunction isScreenReaderEnabled() {\n return new Promise(function (resolve, reject) {\n resolve(true);\n });\n}\n\nvar prefersReducedMotionMedia = canUseDOM && typeof window.matchMedia === 'function' ? window.matchMedia('(prefers-reduced-motion: reduce)') : null;\n\nfunction isReduceMotionEnabled() {\n return new Promise(function (resolve, reject) {\n resolve(prefersReducedMotionMedia ? prefersReducedMotionMedia.matches : true);\n });\n}\n\nfunction addChangeListener(fn) {\n if (prefersReducedMotionMedia != null) {\n prefersReducedMotionMedia.addEventListener != null ? prefersReducedMotionMedia.addEventListener('change', fn) : prefersReducedMotionMedia.addListener(fn);\n }\n}\n\nfunction removeChangeListener(fn) {\n if (prefersReducedMotionMedia != null) {\n prefersReducedMotionMedia.removeEventListener != null ? prefersReducedMotionMedia.removeEventListener('change', fn) : prefersReducedMotionMedia.removeListener(fn);\n }\n}\n\nvar handlers = {};\nvar AccessibilityInfo = {\n /**\n * Query whether a screen reader is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a screen reader is enabled and `false` otherwise.\n */\n isScreenReaderEnabled: isScreenReaderEnabled,\n\n /**\n * Query whether the user prefers reduced motion.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a screen reader is enabled and `false` otherwise.\n */\n isReduceMotionEnabled: isReduceMotionEnabled,\n\n /**\n * Deprecated\n */\n fetch: isScreenReaderEnabled,\n\n /**\n * Add an event handler. Supported events: reduceMotionChanged\n */\n addEventListener: function addEventListener(eventName, handler) {\n if (eventName === 'reduceMotionChanged') {\n if (!prefersReducedMotionMedia) {\n return;\n }\n\n var listener = function listener(event) {\n handler(event.matches);\n };\n\n addChangeListener(listener);\n handlers[handler] = listener;\n }\n\n return {\n remove: function remove() {\n return AccessibilityInfo.removeEventListener(eventName, handler);\n }\n };\n },\n\n /**\n * Set accessibility focus to a react component.\n */\n setAccessibilityFocus: function setAccessibilityFocus(reactTag) {},\n\n /**\n * Post a string to be announced by the screen reader.\n */\n announceForAccessibility: function announceForAccessibility(announcement) {},\n\n /**\n * Remove an event handler.\n */\n removeEventListener: function removeEventListener(eventName, handler) {\n if (eventName === 'reduceMotionChanged') {\n var listener = handlers[handler];\n\n if (!listener || !prefersReducedMotionMedia) {\n return;\n }\n\n removeChangeListener(listener);\n }\n\n return;\n }\n};\nexport default AccessibilityInfo;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar Alert = /*#__PURE__*/function () {\n function Alert() {}\n\n Alert.alert = function alert() {};\n\n return Alert;\n}();\n\nexport default Alert;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport EventSubscription from './EventSubscription';\n/**\n * EmitterSubscription represents a subscription with listener and context data.\n */\n\nvar EmitterSubscription = /*#__PURE__*/function (_EventSubscription) {\n _inheritsLoose(EmitterSubscription, _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\n\n function EmitterSubscription(emitter, subscriber, listener, context) {\n var _this;\n\n _this = _EventSubscription.call(this, subscriber) || this;\n _this.emitter = emitter;\n _this.listener = listener;\n _this.context = context;\n return _this;\n }\n /**\n * Removes this subscription from the emitter that registered it.\n * Note: we're overriding the `remove()` method of EventSubscription here\n * but deliberately not calling `super.remove()` as the responsibility\n * for removing the subscription lies with the EventEmitter.\n */\n\n\n var _proto = EmitterSubscription.prototype;\n\n _proto.remove = function remove() {\n this.emitter.removeSubscription(this);\n };\n\n return EmitterSubscription;\n}(EventSubscription);\n\nexport default EmitterSubscription;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n/**\n * EventSubscription represents a subscription to a particular event. It can\n * remove its own subscription.\n */\n\nvar EventSubscription = /*#__PURE__*/function () {\n /**\n * @param {EventSubscriptionVendor} subscriber the subscriber that controls\n * this subscription.\n */\n function EventSubscription(subscriber) {\n this.subscriber = subscriber;\n }\n /**\n * Removes this subscription from the subscriber that controls it.\n */\n\n\n var _proto = EventSubscription.prototype;\n\n _proto.remove = function remove() {\n this.subscriber.removeSubscription(this);\n };\n\n return EventSubscription;\n}();\n\nexport default EventSubscription;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nimport invariant from 'fbjs/lib/invariant';\n/**\n * EventSubscriptionVendor stores a set of EventSubscriptions that are\n * subscribed to a particular event type.\n */\n\nvar EventSubscriptionVendor = /*#__PURE__*/function () {\n function EventSubscriptionVendor() {\n this._subscriptionsForType = {};\n this._currentSubscription = null;\n }\n /**\n * Adds a subscription keyed by an event type.\n *\n * @param {string} eventType\n * @param {EventSubscription} subscription\n */\n\n\n var _proto = EventSubscriptionVendor.prototype;\n\n _proto.addSubscription = function addSubscription(eventType, subscription) {\n invariant(subscription.subscriber === this, 'The subscriber of the subscription is incorrectly set.');\n\n if (!this._subscriptionsForType[eventType]) {\n this._subscriptionsForType[eventType] = [];\n }\n\n var key = this._subscriptionsForType[eventType].length;\n\n this._subscriptionsForType[eventType].push(subscription);\n\n subscription.eventType = eventType;\n subscription.key = key;\n return subscription;\n }\n /**\n * Removes a bulk set of the subscriptions.\n *\n * @param {?string} eventType - Optional name of the event type whose\n * registered supscriptions to remove, if null remove all subscriptions.\n */\n ;\n\n _proto.removeAllSubscriptions = function removeAllSubscriptions(eventType) {\n if (eventType === undefined) {\n this._subscriptionsForType = {};\n } else {\n delete this._subscriptionsForType[eventType];\n }\n }\n /**\n * Removes a specific subscription. Instead of calling this function, call\n * `subscription.remove()` directly.\n *\n * @param {object} subscription\n */\n ;\n\n _proto.removeSubscription = function removeSubscription(subscription) {\n var eventType = subscription.eventType;\n var key = subscription.key;\n var subscriptionsForType = this._subscriptionsForType[eventType];\n\n if (subscriptionsForType) {\n delete subscriptionsForType[key];\n }\n }\n /**\n * Returns the array of subscriptions that are currently registered for the\n * given event type.\n *\n * Note: This array can be potentially sparse as subscriptions are deleted\n * from it when they are removed.\n *\n * TODO: This returns a nullable array. wat?\n *\n * @param {string} eventType\n * @returns {?array}\n */\n ;\n\n _proto.getSubscriptionsForType = function getSubscriptionsForType(eventType) {\n return this._subscriptionsForType[eventType];\n };\n\n return EventSubscriptionVendor;\n}();\n\nexport default EventSubscriptionVendor;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @typecheck\n */\n'use strict';\n\nimport EmitterSubscription from './EmitterSubscription';\nimport EventSubscriptionVendor from './EventSubscriptionVendor';\nimport invariant from 'fbjs/lib/invariant';\n\nvar sparseFilterPredicate = function sparseFilterPredicate() {\n return 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 */\n\n\nvar EventEmitter = /*#__PURE__*/function () {\n /**\n * @constructor\n *\n * @param {EventSubscriptionVendor} subscriber - Optional subscriber instance\n * to use. If omitted, a new subscriber will be created for the emitter.\n */\n function EventEmitter(subscriber) {\n this._subscriber = subscriber || new EventSubscriptionVendor();\n }\n /**\n * Adds a listener to be invoked when events of the specified type are\n * emitted. An optional calling context may be provided. The data arguments\n * emitted will be passed to the listener function.\n *\n * TODO: Annotate the listener arg's type. This is tricky because listeners\n * can be invoked with varargs.\n *\n * @param {string} eventType - Name of the event to listen to\n * @param {function} listener - Function to invoke when the specified event is\n * emitted\n * @param {*} context - Optional context object to use when invoking the\n * listener\n */\n\n\n var _proto = EventEmitter.prototype;\n\n _proto.addListener = function addListener(eventType, listener, context) {\n return this._subscriber.addSubscription(eventType, new EmitterSubscription(this, this._subscriber, listener, context));\n }\n /**\n * Similar to addListener, except that the listener is removed after it is\n * invoked once.\n *\n * @param {string} eventType - Name of the event to listen to\n * @param {function} listener - Function to invoke only once when the\n * specified event is emitted\n * @param {*} context - Optional context object to use when invoking the\n * listener\n */\n ;\n\n _proto.once = function once(eventType, listener, context) {\n var _this = this;\n\n return this.addListener(eventType, function () {\n _this.removeCurrentListener();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listener.apply(context, args);\n });\n }\n /**\n * Removes all of the registered listeners, including those registered as\n * listener maps.\n *\n * @param {?string} eventType - Optional name of the event whose registered\n * listeners to remove\n */\n ;\n\n _proto.removeAllListeners = function removeAllListeners(eventType) {\n this._subscriber.removeAllSubscriptions(eventType);\n }\n /**\n * Provides an API that can be called during an eventing cycle to remove the\n * last listener that was invoked. This allows a developer to provide an event\n * object that can remove the listener (or listener map) during the\n * invocation.\n *\n * If it is called when not inside of an emitting cycle it will throw.\n *\n * @throws {Error} When called not during an eventing cycle\n *\n * @example\n * var subscription = emitter.addListenerMap({\n * someEvent: function(data, event) {\n * console.log(data);\n * emitter.removeCurrentListener();\n * }\n * });\n *\n * emitter.emit('someEvent', 'abc'); // logs 'abc'\n * emitter.emit('someEvent', 'def'); // does not log anything\n */\n ;\n\n _proto.removeCurrentListener = function removeCurrentListener() {\n invariant(!!this._currentSubscription, 'Not in an emitting cycle; there is no current subscription');\n this.removeSubscription(this._currentSubscription);\n }\n /**\n * Removes a specific subscription. Called by the `remove()` method of the\n * subscription itself to ensure any necessary cleanup is performed.\n */\n ;\n\n _proto.removeSubscription = function removeSubscription(subscription) {\n invariant(subscription.emitter === this, 'Subscription does not belong to this emitter.');\n\n this._subscriber.removeSubscription(subscription);\n }\n /**\n * Returns an array of listeners that are currently registered for the given\n * event.\n *\n * @param {string} eventType - Name of the event to query\n * @returns {array}\n */\n ;\n\n _proto.listeners = function listeners(eventType) {\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n return subscriptions ? 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 .filter(sparseFilterPredicate).map(function (subscription) {\n return subscription.listener;\n }) : [];\n }\n /**\n * Emits an event of the given type with the given data. All handlers of that\n * particular type will be notified.\n *\n * @param {string} eventType - Name of the event to emit\n * @param {...*} Arbitrary arguments to be passed to each registered listener\n *\n * @example\n * emitter.addListener('someEvent', function(message) {\n * console.log(message);\n * });\n *\n * emitter.emit('someEvent', 'abc'); // logs 'abc'\n */\n ;\n\n _proto.emit = function emit(eventType) {\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n if (subscriptions) {\n for (var 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 this._currentSubscription = subscription;\n subscription.listener.apply(subscription.context, Array.prototype.slice.call(arguments, 1));\n }\n }\n\n this._currentSubscription = null;\n }\n }\n /**\n * Removes the given listener for event of specific type.\n *\n * @param {string} eventType - Name of the event to emit\n * @param {function} listener - Function to invoke when the specified event is\n * emitted\n *\n * @example\n * emitter.removeListener('someEvent', function(message) {\n * console.log(message);\n * }); // removes the listener if already registered\n *\n */\n ;\n\n _proto.removeListener = function removeListener(eventType, listener) {\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n if (subscriptions) {\n for (var i = 0, l = subscriptions.length; i < l; i++) {\n var subscription = subscriptions[i]; // The subscription may have been removed during this event loop.\n // its listener matches the listener in method parameters\n\n if (subscription && subscription.listener === listener) {\n subscription.remove();\n }\n }\n }\n };\n\n return EventEmitter;\n}();\n\nexport default EventEmitter;","/**\n * Copyright (c) 2015-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 * @format\n * \n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport EventEmitter from '../emitter/EventEmitter';\nimport EventSubscriptionVendor from '../emitter/EventSubscriptionVendor';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nfunction checkNativeEventModule(eventType) {\n if (eventType) {\n if (eventType.lastIndexOf('statusBar', 0) === 0) {\n throw new Error('`' + eventType + '` event should be registered via the StatusBarIOS module');\n }\n\n if (eventType.lastIndexOf('keyboard', 0) === 0) {\n throw new Error('`' + eventType + '` event should be registered via the Keyboard module');\n }\n\n if (eventType === 'appStateDidChange' || eventType === 'memoryWarning') {\n throw new Error('`' + eventType + '` event should be registered via the AppState module');\n }\n }\n}\n/**\n * Deprecated - subclass NativeEventEmitter to create granular event modules instead of\n * adding all event listeners directly to RCTDeviceEventEmitter.\n */\n\n\nvar RCTDeviceEventEmitter = /*#__PURE__*/function (_EventEmitter) {\n _inheritsLoose(RCTDeviceEventEmitter, _EventEmitter);\n\n function RCTDeviceEventEmitter() {\n var _this;\n\n var sharedSubscriber = new EventSubscriptionVendor();\n _this = _EventEmitter.call(this, sharedSubscriber) || this;\n _this.sharedSubscriber = sharedSubscriber;\n return _this;\n }\n\n var _proto = RCTDeviceEventEmitter.prototype;\n\n _proto.addListener = function addListener(eventType, listener, context) {\n if (__DEV__) {\n checkNativeEventModule(eventType);\n }\n\n return _EventEmitter.prototype.addListener.call(this, eventType, listener, context);\n };\n\n _proto.removeAllListeners = function removeAllListeners(eventType) {\n if (__DEV__) {\n checkNativeEventModule(eventType);\n }\n\n _EventEmitter.prototype.removeAllListeners.call(this, eventType);\n };\n\n _proto.removeSubscription = function removeSubscription(subscription) {\n if (subscription.emitter !== this) {\n subscription.emitter.removeSubscription(subscription);\n } else {\n _EventEmitter.prototype.removeSubscription.call(this, subscription);\n }\n };\n\n return RCTDeviceEventEmitter;\n}(EventEmitter);\n\nexport default new RCTDeviceEventEmitter();","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport EventEmitter from '../emitter/EventEmitter';\nimport RCTDeviceEventEmitter from './RCTDeviceEventEmitter';\nimport invariant from 'fbjs/lib/invariant';\n/**\n * Abstract base class for implementing event-emitting modules. This implements\n * a subset of the standard EventEmitter node module API.\n */\n\nvar NativeEventEmitter = /*#__PURE__*/function (_EventEmitter) {\n _inheritsLoose(NativeEventEmitter, _EventEmitter);\n\n function NativeEventEmitter(nativeModule) {\n return _EventEmitter.call(this, RCTDeviceEventEmitter.sharedSubscriber) || this;\n }\n\n var _proto = NativeEventEmitter.prototype;\n\n _proto.addListener = function addListener(eventType, listener, context) {\n if (this._nativeModule != null) {\n this._nativeModule.addListener(eventType);\n }\n\n return _EventEmitter.prototype.addListener.call(this, eventType, listener, context);\n };\n\n _proto.removeAllListeners = function removeAllListeners(eventType) {\n invariant(eventType, 'eventType argument is required.');\n var count = this.listeners(eventType).length;\n\n if (this._nativeModule != null) {\n this._nativeModule.removeListeners(count);\n }\n\n _EventEmitter.prototype.removeAllListeners.call(this, eventType);\n };\n\n _proto.removeSubscription = function removeSubscription(subscription) {\n if (this._nativeModule != null) {\n this._nativeModule.removeListeners(1);\n }\n\n _EventEmitter.prototype.removeSubscription.call(this, subscription);\n };\n\n return NativeEventEmitter;\n}(EventEmitter);\n\nexport default NativeEventEmitter;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\nexport default TurboModuleRegistry.get('NativeAnimatedModule');","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport NativeEventEmitter from '../NativeEventEmitter';\nimport NativeAnimatedModule from './NativeAnimatedModule';\nimport invariant from 'fbjs/lib/invariant';\nvar __nativeAnimatedNodeTagCount = 1;\n/* used for animated nodes */\n\nvar __nativeAnimationIdCount = 1;\n/* used for started animations */\n\nvar nativeEventEmitter;\nvar queueConnections = false;\nvar queue = [];\n/**\n * Simple wrappers around NativeAnimatedModule to provide flow and autocmplete support for\n * the native module methods\n */\n\nvar API = {\n enableQueue: function enableQueue() {\n queueConnections = true;\n },\n disableQueue: function disableQueue() {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n queueConnections = false;\n\n for (var q = 0, l = queue.length; q < l; q++) {\n var args = queue[q];\n NativeAnimatedModule.connectAnimatedNodes(args[0], args[1]);\n }\n\n queue.length = 0;\n },\n createAnimatedNode: function createAnimatedNode(tag, config) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n NativeAnimatedModule.createAnimatedNode(tag, config);\n },\n startListeningToAnimatedNodeValue: function startListeningToAnimatedNodeValue(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n NativeAnimatedModule.startListeningToAnimatedNodeValue(tag);\n },\n stopListeningToAnimatedNodeValue: function stopListeningToAnimatedNodeValue(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n NativeAnimatedModule.stopListeningToAnimatedNodeValue(tag);\n },\n connectAnimatedNodes: function connectAnimatedNodes(parentTag, childTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n\n if (queueConnections) {\n queue.push([parentTag, childTag]);\n return;\n }\n\n NativeAnimatedModule.connectAnimatedNodes(parentTag, childTag);\n },\n disconnectAnimatedNodes: function disconnectAnimatedNodes(parentTag, childTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n NativeAnimatedModule.disconnectAnimatedNodes(parentTag, childTag);\n },\n startAnimatingNode: function startAnimatingNode(animationId, nodeTag, config, endCallback) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n NativeAnimatedModule.startAnimatingNode(animationId, nodeTag, config, endCallback);\n },\n stopAnimation: function stopAnimation(animationId) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n NativeAnimatedModule.stopAnimation(animationId);\n },\n setAnimatedNodeValue: function setAnimatedNodeValue(nodeTag, value) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n NativeAnimatedModule.setAnimatedNodeValue(nodeTag, value);\n },\n setAnimatedNodeOffset: function setAnimatedNodeOffset(nodeTag, offset) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n NativeAnimatedModule.setAnimatedNodeOffset(nodeTag, offset);\n },\n flattenAnimatedNodeOffset: function flattenAnimatedNodeOffset(nodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n NativeAnimatedModule.flattenAnimatedNodeOffset(nodeTag);\n },\n extractAnimatedNodeOffset: function extractAnimatedNodeOffset(nodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n NativeAnimatedModule.extractAnimatedNodeOffset(nodeTag);\n },\n connectAnimatedNodeToView: function connectAnimatedNodeToView(nodeTag, viewTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n NativeAnimatedModule.connectAnimatedNodeToView(nodeTag, viewTag);\n },\n disconnectAnimatedNodeFromView: function disconnectAnimatedNodeFromView(nodeTag, viewTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n NativeAnimatedModule.disconnectAnimatedNodeFromView(nodeTag, viewTag);\n },\n dropAnimatedNode: function dropAnimatedNode(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n NativeAnimatedModule.dropAnimatedNode(tag);\n },\n addAnimatedEventToView: function addAnimatedEventToView(viewTag, eventName, eventMapping) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n NativeAnimatedModule.addAnimatedEventToView(viewTag, eventName, eventMapping);\n },\n removeAnimatedEventFromView: function removeAnimatedEventFromView(viewTag, eventName, animatedNodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n NativeAnimatedModule.removeAnimatedEventFromView(viewTag, eventName, animatedNodeTag);\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 STYLES_WHITELIST = {\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\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 TRANSFORM_WHITELIST = {\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 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 STYLES_WHITELIST[prop] = true;\n}\n\nfunction addWhitelistedTransformProp(prop) {\n TRANSFORM_WHITELIST[prop] = true;\n}\n\nfunction addWhitelistedInterpolationParam(param) {\n SUPPORTED_INTERPOLATION_PARAMS[param] = true;\n}\n\nfunction validateTransform(configs) {\n configs.forEach(function (config) {\n if (!TRANSFORM_WHITELIST.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 (!STYLES_WHITELIST.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\nfunction generateNewAnimationId() {\n return __nativeAnimationIdCount++;\n}\n\nfunction assertNativeAnimatedModule() {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n}\n\nfunction shouldUseNativeDriver(config) {\n if (config.useNativeDriver === true && !NativeAnimatedModule) {\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\nvar NativeAnimatedHelper = {\n API: API,\n addWhitelistedStyleProp: addWhitelistedStyleProp,\n addWhitelistedTransformProp: addWhitelistedTransformProp,\n addWhitelistedInterpolationParam: addWhitelistedInterpolationParam,\n validateStyles: validateStyles,\n validateTransform: validateTransform,\n validateInterpolation: validateInterpolation,\n generateNewNodeTag: generateNewNodeTag,\n generateNewAnimationId: generateNewAnimationId,\n assertNativeAnimatedModule: assertNativeAnimatedModule,\n shouldUseNativeDriver: shouldUseNativeDriver,\n transformDataType: transformDataType,\n\n get nativeEventEmitter() {\n if (!nativeEventEmitter) {\n nativeEventEmitter = new NativeEventEmitter(NativeAnimatedModule);\n }\n\n return nativeEventEmitter;\n }\n\n};\nexport { API, addWhitelistedStyleProp, addWhitelistedTransformProp, addWhitelistedInterpolationParam, validateStyles, validateTransform, validateInterpolation, generateNewNodeTag, generateNewAnimationId, assertNativeAnimatedModule, shouldUseNativeDriver, transformDataType };\nexport default NativeAnimatedHelper;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is 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) 2015-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 * @format\n */\n'use strict';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport invariant from 'fbjs/lib/invariant';\nvar NativeAnimatedAPI = NativeAnimatedHelper.API;\nvar _uniqueId = 1; // Note(vjeux): this would be better as an interface but flow doesn't\n// support them yet\n\nvar AnimatedNode = /*#__PURE__*/function () {\n var _proto = AnimatedNode.prototype;\n\n _proto.__attach = function __attach() {};\n\n _proto.__detach = function __detach() {\n if (this.__isNative && this.__nativeTag != null) {\n NativeAnimatedHelper.API.dropAnimatedNode(this.__nativeTag);\n this.__nativeTag = undefined;\n }\n };\n\n _proto.__getValue = function __getValue() {};\n\n _proto.__getAnimatedValue = function __getAnimatedValue() {\n return this.__getValue();\n };\n\n _proto.__addChild = function __addChild(child) {};\n\n _proto.__removeChild = function __removeChild(child) {};\n\n _proto.__getChildren = function __getChildren() {\n return [];\n }\n /* Methods and props used by native Animated impl */\n ;\n\n function AnimatedNode() {\n this._listeners = {};\n }\n\n _proto.__makeNative = function __makeNative() {\n if (!this.__isNative) {\n throw new Error('This node cannot be made a \"native\" animated node');\n }\n\n if (this.hasListeners()) {\n this._startListeningToNativeValueUpdates();\n }\n }\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to\n * synchronously read the value because it might be driven natively.\n *\n * See http://facebook.github.io/react-native/docs/animatedvalue.html#addlistener\n */\n ;\n\n _proto.addListener = function addListener(callback) {\n var id = String(_uniqueId++);\n this._listeners[id] = callback;\n\n if (this.__isNative) {\n this._startListeningToNativeValueUpdates();\n }\n\n return id;\n }\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See http://facebook.github.io/react-native/docs/animatedvalue.html#removelistener\n */\n ;\n\n _proto.removeListener = function removeListener(id) {\n delete this._listeners[id];\n\n if (this.__isNative && !this.hasListeners()) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n /**\n * Remove all registered listeners.\n *\n * See http://facebook.github.io/react-native/docs/animatedvalue.html#removealllisteners\n */\n ;\n\n _proto.removeAllListeners = function removeAllListeners() {\n this._listeners = {};\n\n if (this.__isNative) {\n this._stopListeningForNativeValueUpdates();\n }\n };\n\n _proto.hasListeners = function hasListeners() {\n return !!Object.keys(this._listeners).length;\n };\n\n _proto._startListeningToNativeValueUpdates = function _startListeningToNativeValueUpdates() {\n var _this = this;\n\n if (this.__nativeAnimatedValueListener && !this.__shouldUpdateListenersForNewNativeTag) {\n return;\n }\n\n if (this.__shouldUpdateListenersForNewNativeTag) {\n this.__shouldUpdateListenersForNewNativeTag = false;\n\n this._stopListeningForNativeValueUpdates();\n }\n\n NativeAnimatedAPI.startListeningToAnimatedNodeValue(this.__getNativeTag());\n this.__nativeAnimatedValueListener = NativeAnimatedHelper.nativeEventEmitter.addListener('onAnimatedValueUpdate', function (data) {\n if (data.tag !== _this.__getNativeTag()) {\n return;\n }\n\n _this._onAnimatedValueUpdateReceived(data.value);\n });\n };\n\n _proto._onAnimatedValueUpdateReceived = function _onAnimatedValueUpdateReceived(value) {\n this.__callListeners(value);\n };\n\n _proto.__callListeners = function __callListeners(value) {\n for (var _key in this._listeners) {\n this._listeners[_key]({\n value: value\n });\n }\n };\n\n _proto._stopListeningForNativeValueUpdates = function _stopListeningForNativeValueUpdates() {\n if (!this.__nativeAnimatedValueListener) {\n return;\n }\n\n this.__nativeAnimatedValueListener.remove();\n\n this.__nativeAnimatedValueListener = null;\n NativeAnimatedAPI.stopListeningToAnimatedNodeValue(this.__getNativeTag());\n };\n\n _proto.__getNativeTag = function __getNativeTag() {\n NativeAnimatedHelper.assertNativeAnimatedModule();\n invariant(this.__isNative, 'Attempt to get native tag from node not marked as \"native\"');\n\n if (this.__nativeTag == null) {\n var nativeTag = NativeAnimatedHelper.generateNewNodeTag();\n this.__nativeTag = nativeTag;\n NativeAnimatedHelper.API.createAnimatedNode(nativeTag, this.__getNativeConfig());\n this.__shouldUpdateListenersForNewNativeTag = true;\n }\n\n return this.__nativeTag;\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n throw new Error('This JS animated node type cannot be used as native animated node');\n };\n\n _proto.toJSON = function toJSON() {\n return this.__getValue();\n };\n\n return AnimatedNode;\n}();\n\nexport default AnimatedNode;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport AnimatedNode from './AnimatedNode';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\n\nvar AnimatedWithChildren = /*#__PURE__*/function (_AnimatedNode) {\n _inheritsLoose(AnimatedWithChildren, _AnimatedNode);\n\n function AnimatedWithChildren() {\n var _this;\n\n _this = _AnimatedNode.call(this) || this;\n _this._children = [];\n return _this;\n }\n\n var _proto = AnimatedWithChildren.prototype;\n\n _proto.__makeNative = function __makeNative() {\n if (!this.__isNative) {\n this.__isNative = true;\n\n for (var _iterator = _createForOfIteratorHelperLoose(this._children), _step; !(_step = _iterator()).done;) {\n var child = _step.value;\n\n child.__makeNative();\n\n NativeAnimatedHelper.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n }\n\n _AnimatedNode.prototype.__makeNative.call(this);\n };\n\n _proto.__addChild = function __addChild(child) {\n if (this._children.length === 0) {\n this.__attach();\n }\n\n this._children.push(child);\n\n if (this.__isNative) {\n // Only accept \"native\" animated nodes as children\n child.__makeNative();\n\n NativeAnimatedHelper.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n };\n\n _proto.__removeChild = function __removeChild(child) {\n var index = this._children.indexOf(child);\n\n if (index === -1) {\n console.warn(\"Trying to remove a child that doesn't exist\");\n return;\n }\n\n if (this.__isNative && child.__isNative) {\n NativeAnimatedHelper.API.disconnectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n\n this._children.splice(index, 1);\n\n if (this._children.length === 0) {\n this.__detach();\n }\n };\n\n _proto.__getChildren = function __getChildren() {\n return this._children;\n };\n\n _proto.__callListeners = function __callListeners(value) {\n _AnimatedNode.prototype.__callListeners.call(this, value);\n\n if (!this.__isNative) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this._children), _step2; !(_step2 = _iterator2()).done;) {\n var child = _step2.value;\n\n if (child.__getValue) {\n child.__callListeners(child.__getValue());\n }\n }\n }\n };\n\n return AnimatedWithChildren;\n}(AnimatedNode);\n\nexport default AnimatedWithChildren;","/**\n * Copyright (c) 2015-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 * @format\n */\n\n/* eslint no-bitwise: 0 */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\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 linear = function linear(t) {\n return t;\n};\n/**\n * Very handy helper to map input ranges to output ranges with an easing\n * function and custom behavior outside of the ranges.\n */\n\n\nfunction createInterpolation(config) {\n if (config.outputRange && typeof config.outputRange[0] === 'string') {\n return createInterpolationFromStringOutputRange(config);\n }\n\n var outputRange = config.outputRange;\n checkInfiniteRange('outputRange', outputRange);\n var inputRange = config.inputRange;\n checkInfiniteRange('inputRange', inputRange);\n checkValidInputRange(inputRange);\n invariant(inputRange.length === outputRange.length, 'inputRange (' + inputRange.length + ') and outputRange (' + outputRange.length + ') must have the same length');\n var easing = config.easing || linear;\n var extrapolateLeft = 'extend';\n\n if (config.extrapolateLeft !== undefined) {\n extrapolateLeft = config.extrapolateLeft;\n } else if (config.extrapolate !== undefined) {\n extrapolateLeft = config.extrapolate;\n }\n\n var extrapolateRight = 'extend';\n\n if (config.extrapolateRight !== undefined) {\n extrapolateRight = config.extrapolateRight;\n } else if (config.extrapolate !== undefined) {\n extrapolateRight = config.extrapolate;\n }\n\n return function (input) {\n invariant(typeof input === 'number', 'Cannot interpolation an input which is not a number');\n var range = findRange(input, inputRange);\n return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight);\n };\n}\n\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight) {\n var result = input; // Extrapolate\n\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') {\n return result;\n } else if (extrapolateLeft === 'clamp') {\n result = inputMin;\n } else if (extrapolateLeft === 'extend') {// noop\n }\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') {\n return result;\n } else if (extrapolateRight === 'clamp') {\n result = inputMax;\n } else if (extrapolateRight === 'extend') {// noop\n }\n }\n\n if (outputMin === outputMax) {\n return outputMin;\n }\n\n if (inputMin === inputMax) {\n if (input <= inputMin) {\n return outputMin;\n }\n\n return outputMax;\n } // Input Range\n\n\n if (inputMin === -Infinity) {\n result = -result;\n } else if (inputMax === Infinity) {\n result = result - inputMin;\n } else {\n result = (result - inputMin) / (inputMax - inputMin);\n } // Easing\n\n\n result = easing(result); // Output Range\n\n if (outputMin === -Infinity) {\n result = -result;\n } else if (outputMax === Infinity) {\n result = result + outputMin;\n } else {\n result = result * (outputMax - outputMin) + outputMin;\n }\n\n return result;\n}\n\nfunction colorToRgba(input) {\n var int32Color = normalizeColor(input);\n\n if (int32Color === null) {\n return input;\n }\n\n int32Color = int32Color || 0;\n var r = (int32Color & 0xff000000) >>> 24;\n var g = (int32Color & 0x00ff0000) >>> 16;\n var b = (int32Color & 0x0000ff00) >>> 8;\n var a = (int32Color & 0x000000ff) / 255;\n return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + a + \")\";\n}\n\nvar stringShapeRegex = /[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?/g;\n/**\n * Supports string shapes by extracting numbers so new values can be computed,\n * and recombines those values into new strings of the same shape. Supports\n * things like:\n *\n * rgba(123, 42, 99, 0.36) // colors\n * -45deg // values with units\n */\n\nfunction createInterpolationFromStringOutputRange(config) {\n var outputRange = config.outputRange;\n invariant(outputRange.length >= 2, 'Bad output range');\n outputRange = outputRange.map(colorToRgba);\n checkPattern(outputRange); // ['rgba(0, 100, 200, 0)', 'rgba(50, 150, 250, 0.5)']\n // ->\n // [\n // [0, 50],\n // [100, 150],\n // [200, 250],\n // [0, 0.5],\n // ]\n\n /* $FlowFixMe(>=0.18.0): `outputRange[0].match()` can return `null`. Need to\n * guard against this possibility.\n */\n\n var outputRanges = outputRange[0].match(stringShapeRegex).map(function () {\n return [];\n });\n outputRange.forEach(function (value) {\n /* $FlowFixMe(>=0.18.0): `value.match()` can return `null`. Need to guard\n * against this possibility.\n */\n value.match(stringShapeRegex).forEach(function (number, i) {\n outputRanges[i].push(+number);\n });\n });\n /* $FlowFixMe(>=0.18.0): `outputRange[0].match()` can return `null`. Need to\n * guard against this possibility.\n */\n\n var interpolations = outputRange[0].match(stringShapeRegex).map(function (value, i) {\n return createInterpolation(_objectSpread(_objectSpread({}, config), {}, {\n outputRange: outputRanges[i]\n }));\n }); // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to\n // round the opacity (4th column).\n\n var shouldRound = isRgbOrRgba(outputRange[0]);\n return function (input) {\n var i = 0; // 'rgba(0, 100, 200, 0)'\n // ->\n // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...'\n\n return outputRange[0].replace(stringShapeRegex, function () {\n var val = +interpolations[i++](input);\n\n if (shouldRound) {\n val = i < 4 ? Math.round(val) : Math.round(val * 1000) / 1000;\n }\n\n return String(val);\n });\n };\n}\n\nfunction isRgbOrRgba(range) {\n return typeof range === 'string' && range.startsWith('rgb');\n}\n\nfunction checkPattern(arr) {\n var pattern = arr[0].replace(stringShapeRegex, '');\n\n for (var i = 1; i < arr.length; ++i) {\n invariant(pattern === arr[i].replace(stringShapeRegex, ''), 'invalid pattern ' + arr[0] + ' and ' + arr[i]);\n }\n}\n\nfunction findRange(input, inputRange) {\n var i;\n\n for (i = 1; i < inputRange.length - 1; ++i) {\n if (inputRange[i] >= input) {\n break;\n }\n }\n\n return i - 1;\n}\n\nfunction checkValidInputRange(arr) {\n invariant(arr.length >= 2, 'inputRange must have at least 2 elements');\n\n for (var i = 1; i < arr.length; ++i) {\n invariant(arr[i] >= arr[i - 1],\n /* $FlowFixMe(>=0.13.0) - In the addition expression below this comment,\n * one or both of the operands may be something that doesn't cleanly\n * convert to a string, like undefined, null, and object, etc. If you really\n * mean this implicit string conversion, you can do something like\n * String(myThing)\n */\n 'inputRange must be monotonically non-decreasing ' + arr);\n }\n}\n\nfunction checkInfiniteRange(name, arr) {\n invariant(arr.length >= 2, name + ' must have at least 2 elements');\n invariant(arr.length !== 2 || arr[0] !== -Infinity || arr[1] !== Infinity,\n /* $FlowFixMe(>=0.13.0) - In the addition expression below this comment,\n * one or both of the operands may be something that doesn't cleanly convert\n * to a string, like undefined, null, and object, etc. If you really mean\n * this implicit string conversion, you can do something like\n * String(myThing)\n */\n name + 'cannot be ]-infinity;+infinity[ ' + arr);\n}\n\nvar AnimatedInterpolation = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedInterpolation, _AnimatedWithChildren); // Export for testing.\n\n\n function AnimatedInterpolation(parent, config) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._parent = parent;\n _this._config = config;\n _this._interpolation = createInterpolation(config);\n return _this;\n }\n\n var _proto = AnimatedInterpolation.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._parent.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n var parentValue = this._parent.__getValue();\n\n invariant(typeof parentValue === 'number', 'Cannot interpolate an input which is not a number.');\n return this._interpolation(parentValue);\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__attach = function __attach() {\n this._parent.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._parent.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__transformDataType = function __transformDataType(range) {\n // $FlowFixMe\n return range.map(NativeAnimatedHelper.transformDataType);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n if (process.env.NODE_ENV !== 'production') {\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 outputRange: this.__transformDataType(this._config.outputRange),\n extrapolateLeft: this._config.extrapolateLeft || this._config.extrapolate || 'extend',\n extrapolateRight: this._config.extrapolateRight || this._config.extrapolate || 'extend',\n type: 'interpolation'\n };\n };\n\n return AnimatedInterpolation;\n}(AnimatedWithChildren);\n\nAnimatedInterpolation.__createInterpolation = createInterpolation;\nexport default AnimatedInterpolation;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\n\nvar _requestIdleCallback = function _requestIdleCallback(cb, options) {\n return setTimeout(function () {\n var start = Date.now();\n cb({\n didTimeout: false,\n timeRemaining: function timeRemaining() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n}; // $FlowFixMe (TimeoutID type is not recognized by eslint)\n\n\nvar _cancelIdleCallback = function _cancelIdleCallback(id) {\n clearTimeout(id);\n};\n\nvar isSupported = canUseDOM && typeof window.requestIdleCallback !== 'undefined';\nvar requestIdleCallback = isSupported ? window.requestIdleCallback : _requestIdleCallback;\nvar cancelIdleCallback = isSupported ? window.cancelIdleCallback : _cancelIdleCallback;\nexport default requestIdleCallback;\nexport { cancelIdleCallback };","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport invariant from 'fbjs/lib/invariant';\nimport requestIdleCallback, { cancelIdleCallback } from '../../modules/requestIdleCallback';\nvar InteractionManager = {\n Events: {\n interactionStart: 'interactionStart',\n interactionComplete: 'interactionComplete'\n },\n\n /**\n * Schedule a function to run after all interactions have completed.\n */\n runAfterInteractions: function runAfterInteractions(task) {\n var handle;\n var promise = new Promise(function (resolve) {\n handle = requestIdleCallback(function () {\n if (task) {\n resolve(task());\n } else {\n resolve();\n }\n });\n });\n return {\n then: promise.then.bind(promise),\n done: promise.then.bind(promise),\n cancel: function cancel() {\n cancelIdleCallback(handle);\n }\n };\n },\n\n /**\n * Notify manager that an interaction has started.\n */\n createInteractionHandle: function createInteractionHandle() {\n return 1;\n },\n\n /**\n * Notify manager that an interaction has completed.\n */\n clearInteractionHandle: function clearInteractionHandle(handle) {\n invariant(!!handle, 'Must provide a handle to clear.');\n },\n addListener: function addListener() {}\n};\nexport default InteractionManager;","/**\n * Copyright (c) 2015-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 * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport InteractionManager from '../../../../exports/InteractionManager';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar NativeAnimatedAPI = NativeAnimatedHelper.API;\n/**\n * Animated works by building a directed acyclic graph of dependencies\n * transparently when you render your Animated components.\n *\n * new Animated.Value(0)\n * .interpolate() .interpolate() new Animated.Value(1)\n * opacity translateY scale\n * style transform\n * View#234 style\n * View#123\n *\n * A) Top Down phase\n * When an Animated.Value is updated, we recursively go down through this\n * graph in order to find leaf nodes: the views that we flag as needing\n * an update.\n *\n * B) Bottom Up phase\n * When a view is flagged as needing an update, we recursively go back up\n * in order to build the new value that it needs. The reason why we need\n * this two-phases process is to deal with composite props such as\n * transform which can receive values from multiple parents.\n */\n\nfunction _flush(rootNode) {\n var animatedStyles = new Set();\n\n function findAnimatedStyles(node) {\n /* $FlowFixMe(>=0.68.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.68 was deployed. To see the error delete this\n * comment and run Flow. */\n if (typeof node.update === 'function') {\n animatedStyles.add(node);\n } else {\n node.__getChildren().forEach(findAnimatedStyles);\n }\n }\n\n findAnimatedStyles(rootNode);\n /* $FlowFixMe */\n\n animatedStyles.forEach(function (animatedStyle) {\n return animatedStyle.update();\n });\n}\n/**\n * Standard value for driving animations. One `Animated.Value` can drive\n * multiple properties in a synchronized fashion, but can only be driven by one\n * mechanism at a time. Using a new mechanism (e.g. starting a new animation,\n * or calling `setValue`) will stop any previous ones.\n *\n * See http://facebook.github.io/react-native/docs/animatedvalue.html\n */\n\n\nvar AnimatedValue = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedValue, _AnimatedWithChildren);\n\n function AnimatedValue(value) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._startingValue = _this._value = value;\n _this._offset = 0;\n _this._animation = null;\n return _this;\n }\n\n var _proto = AnimatedValue.prototype;\n\n _proto.__detach = function __detach() {\n this.stopAnimation();\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n return this._value + this._offset;\n }\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See http://facebook.github.io/react-native/docs/animatedvalue.html#setvalue\n */\n ;\n\n _proto.setValue = function setValue(value) {\n if (this._animation) {\n this._animation.stop();\n\n this._animation = null;\n }\n\n this._updateValue(value, !this.__isNative\n /* don't perform a flush for natively driven values */\n );\n\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeValue(this.__getNativeTag(), value);\n }\n }\n /**\n * Sets an offset that is applied on top of whatever value is set, whether via\n * `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See http://facebook.github.io/react-native/docs/animatedvalue.html#setoffset\n */\n ;\n\n _proto.setOffset = function setOffset(offset) {\n this._offset = offset;\n\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeOffset(this.__getNativeTag(), offset);\n }\n }\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See http://facebook.github.io/react-native/docs/animatedvalue.html#flattenoffset\n */\n ;\n\n _proto.flattenOffset = function flattenOffset() {\n this._value += this._offset;\n this._offset = 0;\n\n if (this.__isNative) {\n NativeAnimatedAPI.flattenAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n /**\n * Sets the offset value to the base value, and resets the base value to zero.\n * The final output of the value is unchanged.\n *\n * See http://facebook.github.io/react-native/docs/animatedvalue.html#extractoffset\n */\n ;\n\n _proto.extractOffset = function extractOffset() {\n this._offset += this._value;\n this._value = 0;\n\n if (this.__isNative) {\n NativeAnimatedAPI.extractAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See http://facebook.github.io/react-native/docs/animatedvalue.html#stopanimation\n */\n ;\n\n _proto.stopAnimation = function stopAnimation(callback) {\n this.stopTracking();\n this._animation && this._animation.stop();\n this._animation = null;\n callback && callback(this.__getValue());\n }\n /**\n * Stops any animation and resets the value to its original.\n *\n * See http://facebook.github.io/react-native/docs/animatedvalue.html#resetanimation\n */\n ;\n\n _proto.resetAnimation = function resetAnimation(callback) {\n this.stopAnimation(callback);\n this._value = this._startingValue;\n };\n\n _proto._onAnimatedValueUpdateReceived = function _onAnimatedValueUpdateReceived(value) {\n this._updateValue(value, false\n /*flush*/\n );\n }\n /**\n * Interpolates the value before updating the property, e.g. mapping 0-1 to\n * 0-10.\n */\n ;\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n /**\n * Typically only used internally, but could be used by a custom Animation\n * class.\n *\n * See http://facebook.github.io/react-native/docs/animatedvalue.html#animate\n */\n ;\n\n _proto.animate = function animate(animation, callback) {\n var _this2 = this;\n\n var handle = null;\n\n if (animation.__isInteraction) {\n handle = InteractionManager.createInteractionHandle();\n }\n\n var previousAnimation = this._animation;\n this._animation && this._animation.stop();\n this._animation = animation;\n animation.start(this._value, function (value) {\n // Natively driven animations will never call into that callback, therefore we can always\n // pass flush = true to allow the updated value to propagate to native with setNativeProps\n _this2._updateValue(value, true\n /* flush */\n );\n }, function (result) {\n _this2._animation = null;\n\n if (handle !== null) {\n InteractionManager.clearInteractionHandle(handle);\n }\n\n callback && callback(result);\n }, previousAnimation, this);\n }\n /**\n * Typically only used internally.\n */\n ;\n\n _proto.stopTracking = function stopTracking() {\n this._tracking && this._tracking.__detach();\n this._tracking = null;\n }\n /**\n * Typically only used internally.\n */\n ;\n\n _proto.track = function track(tracking) {\n this.stopTracking();\n this._tracking = tracking;\n };\n\n _proto._updateValue = function _updateValue(value, flush) {\n this._value = value;\n\n if (flush) {\n _flush(this);\n }\n\n _AnimatedWithChildren.prototype.__callListeners.call(this, this.__getValue());\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'value',\n value: this._value,\n offset: this._offset\n };\n };\n\n return AnimatedValue;\n}(AnimatedWithChildren);\n\nexport default AnimatedValue;","/**\n * Copyright (c) 2015-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 * @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';\nvar shouldUseNativeDriver = NativeAnimatedHelper.shouldUseNativeDriver;\n\nfunction attachNativeEvent(viewRef, eventName, argMapping) {\n // Find animated values in `argMapping` and create an array representing their\n // key path inside the `nativeEvent` object. Ex.: ['contentOffset', 'x'].\n var eventMappings = [];\n\n var traverse = function traverse(value, path) {\n if (value instanceof AnimatedValue) {\n value.__makeNative();\n\n eventMappings.push({\n nativeEventPath: path,\n animatedValueTag: value.__getNativeTag()\n });\n } else if (typeof value === 'object') {\n for (var _key in value) {\n traverse(value[_key], path.concat(_key));\n }\n }\n };\n\n invariant(argMapping[0] && argMapping[0].nativeEvent, 'Native driven events only support animated values contained inside `nativeEvent`.'); // Assume that the event containing `nativeEvent` is always the first argument.\n\n traverse(argMapping[0].nativeEvent, []);\n var viewTag = findNodeHandle(viewRef);\n eventMappings.forEach(function (mapping) {\n NativeAnimatedHelper.API.addAnimatedEventToView(viewTag, eventName, mapping);\n });\n return {\n detach: function detach() {\n eventMappings.forEach(function (mapping) {\n NativeAnimatedHelper.API.removeAnimatedEventFromView(viewTag, eventName, mapping.animatedValueTag);\n });\n }\n };\n}\n\nvar AnimatedEvent = /*#__PURE__*/function () {\n function AnimatedEvent(argMapping, config) {\n if (config === void 0) {\n config = {};\n }\n\n this._listeners = [];\n this._argMapping = argMapping;\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 if (process.env.NODE_ENV !== 'production') {\n this._validateMapping();\n }\n }\n\n var _proto = AnimatedEvent.prototype;\n\n _proto.__addListener = function __addListener(callback) {\n this._listeners.push(callback);\n };\n\n _proto.__removeListener = function __removeListener(callback) {\n this._listeners = this._listeners.filter(function (listener) {\n return listener !== callback;\n });\n };\n\n _proto.__attach = function __attach(viewRef, eventName) {\n invariant(this.__isNative, 'Only native driven events need to be attached.');\n this._attachedEvent = attachNativeEvent(viewRef, eventName, this._argMapping);\n };\n\n _proto.__detach = function __detach(viewTag, eventName) {\n invariant(this.__isNative, 'Only native driven events need to be detached.');\n this._attachedEvent && this._attachedEvent.detach();\n };\n\n _proto.__getHandler = function __getHandler() {\n var _this = this;\n\n if (this.__isNative) {\n return this._callListeners;\n }\n\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 var traverse = function traverse(recMapping, recEvt, key) {\n if (typeof recEvt === 'number' && recMapping instanceof AnimatedValue) {\n recMapping.setValue(recEvt);\n } else if (typeof recMapping === 'object') {\n for (var mappingKey in recMapping) {\n /* $FlowFixMe(>=0.53.0 site=react_native_fb,react_native_oss) This\n * comment suppresses an error when upgrading Flow's support for\n * React. To see the error delete this comment and run Flow. */\n traverse(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n }\n }\n };\n\n if (!_this.__isNative) {\n _this._argMapping.forEach(function (mapping, idx) {\n traverse(mapping, args[idx], 'arg' + idx);\n });\n }\n\n _this._callListeners.apply(_this, args);\n };\n };\n\n _proto._callListeners = function _callListeners() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n this._listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n };\n\n _proto._validateMapping = function _validateMapping() {\n var traverse = function traverse(recMapping, recEvt, key) {\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 traverse(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n }\n };\n };\n\n return AnimatedEvent;\n}();\n\nexport { AnimatedEvent, attachNativeEvent };\nexport default {\n AnimatedEvent: AnimatedEvent,\n attachNativeEvent: attachNativeEvent\n};","/**\n * Copyright (c) 2015-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 * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nvar AnimatedAddition = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedAddition, _AnimatedWithChildren);\n\n function AnimatedAddition(a, b) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n _this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n return _this;\n }\n\n var _proto = AnimatedAddition.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n return this._a.__getValue() + this._b.__getValue();\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__attach = function __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'addition',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n };\n\n return AnimatedAddition;\n}(AnimatedWithChildren);\n\nexport default AnimatedAddition;","/**\n * Copyright (c) 2015-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 * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nvar AnimatedDiffClamp = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedDiffClamp, _AnimatedWithChildren);\n\n function AnimatedDiffClamp(a, min, max) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._a = a;\n _this._min = min;\n _this._max = max;\n _this._value = _this._lastValue = _this._a.__getValue();\n return _this;\n }\n\n var _proto = AnimatedDiffClamp.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._a.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__getValue = function __getValue() {\n var value = this._a.__getValue();\n\n var diff = value - this._lastValue;\n this._lastValue = value;\n this._value = Math.min(Math.max(this._value + diff, this._min), this._max);\n return this._value;\n };\n\n _proto.__attach = function __attach() {\n this._a.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._a.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'diffclamp',\n input: this._a.__getNativeTag(),\n min: this._min,\n max: this._max\n };\n };\n\n return AnimatedDiffClamp;\n}(AnimatedWithChildren);\n\nexport default AnimatedDiffClamp;","/**\n * Copyright (c) 2015-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 * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nvar AnimatedDivision = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedDivision, _AnimatedWithChildren);\n\n function AnimatedDivision(a, b) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n _this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n return _this;\n }\n\n var _proto = AnimatedDivision.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n var a = this._a.__getValue();\n\n var b = this._b.__getValue();\n\n if (b === 0) {\n console.error('Detected division by zero in AnimatedDivision');\n }\n\n return a / b;\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__attach = function __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'division',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n };\n\n return AnimatedDivision;\n}(AnimatedWithChildren);\n\nexport default AnimatedDivision;","/**\n * Copyright (c) 2015-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 * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nvar AnimatedModulo = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedModulo, _AnimatedWithChildren);\n\n function AnimatedModulo(a, modulus) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._a = a;\n _this._modulus = modulus;\n return _this;\n }\n\n var _proto = AnimatedModulo.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._a.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n return (this._a.__getValue() % this._modulus + this._modulus) % this._modulus;\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__attach = function __attach() {\n this._a.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._a.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'modulus',\n input: this._a.__getNativeTag(),\n modulus: this._modulus\n };\n };\n\n return AnimatedModulo;\n}(AnimatedWithChildren);\n\nexport default AnimatedModulo;","/**\n * Copyright (c) 2015-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 * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nvar AnimatedMultiplication = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedMultiplication, _AnimatedWithChildren);\n\n function AnimatedMultiplication(a, b) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n _this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n return _this;\n }\n\n var _proto = AnimatedMultiplication.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n return this._a.__getValue() * this._b.__getValue();\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__attach = function __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'multiplication',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n };\n\n return AnimatedMultiplication;\n}(AnimatedWithChildren);\n\nexport default AnimatedMultiplication;","/**\n * Copyright (c) 2015-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 * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\n\nvar AnimatedTransform = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedTransform, _AnimatedWithChildren);\n\n function AnimatedTransform(transforms) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._transforms = transforms;\n return _this;\n }\n\n var _proto = AnimatedTransform.prototype;\n\n _proto.__makeNative = function __makeNative() {\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n\n this._transforms.forEach(function (transform) {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n });\n };\n\n _proto.__getValue = function __getValue() {\n return this._transforms.map(function (transform) {\n var result = {};\n\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n result[key] = value.__getValue();\n } else {\n result[key] = value;\n }\n }\n\n return result;\n });\n };\n\n _proto.__getAnimatedValue = function __getAnimatedValue() {\n return this._transforms.map(function (transform) {\n var result = {};\n\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n result[key] = value.__getAnimatedValue();\n } else {\n // All transform components needed to recompose matrix\n result[key] = value;\n }\n }\n\n return result;\n });\n };\n\n _proto.__attach = function __attach() {\n var _this2 = this;\n\n this._transforms.forEach(function (transform) {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n value.__addChild(_this2);\n }\n }\n });\n };\n\n _proto.__detach = function __detach() {\n var _this3 = this;\n\n this._transforms.forEach(function (transform) {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n value.__removeChild(_this3);\n }\n }\n });\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n var transConfigs = [];\n\n this._transforms.forEach(function (transform) {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n transConfigs.push({\n type: 'animated',\n property: key,\n nodeTag: value.__getNativeTag()\n });\n } else {\n transConfigs.push({\n type: 'static',\n property: key,\n value: value\n });\n }\n }\n });\n\n NativeAnimatedHelper.validateTransform(transConfigs);\n return {\n type: 'transform',\n transforms: transConfigs\n };\n };\n\n return AnimatedTransform;\n}(AnimatedWithChildren);\n\nexport default AnimatedTransform;","/**\n * Copyright (c) 2015-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 * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\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\nvar AnimatedStyle = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedStyle, _AnimatedWithChildren);\n\n function AnimatedStyle(style) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n style = flattenStyle(style) || {};\n\n if (style.transform) {\n style = _objectSpread(_objectSpread({}, style), {}, {\n transform: new AnimatedTransform(style.transform)\n });\n }\n\n _this._style = style;\n return _this;\n } // Recursively get values for nested styles (like iOS's shadowOffset)\n\n\n var _proto = AnimatedStyle.prototype;\n\n _proto._walkStyleAndGetValues = function _walkStyleAndGetValues(style) {\n var updatedStyle = {};\n\n for (var key in style) {\n var value = style[key];\n\n if (value instanceof AnimatedNode) {\n if (!value.__isNative) {\n // We cannot use value of natively driven nodes this way as the value we have access from\n // JS may not be up to date.\n updatedStyle[key] = value.__getValue();\n }\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetValues(value);\n } else {\n updatedStyle[key] = value;\n }\n }\n\n return updatedStyle;\n };\n\n _proto.__getValue = function __getValue() {\n return this._walkStyleAndGetValues(this._style);\n } // Recursively get animated values for nested styles (like iOS's shadowOffset)\n ;\n\n _proto._walkStyleAndGetAnimatedValues = function _walkStyleAndGetAnimatedValues(style) {\n var updatedStyle = {};\n\n for (var key in style) {\n var value = style[key];\n\n if (value instanceof AnimatedNode) {\n updatedStyle[key] = value.__getAnimatedValue();\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetAnimatedValues(value);\n }\n }\n\n return updatedStyle;\n };\n\n _proto.__getAnimatedValue = function __getAnimatedValue() {\n return this._walkStyleAndGetAnimatedValues(this._style);\n };\n\n _proto.__attach = function __attach() {\n for (var key in this._style) {\n var value = this._style[key];\n\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n };\n\n _proto.__detach = function __detach() {\n for (var key in this._style) {\n var value = this._style[key];\n\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__makeNative = function __makeNative() {\n for (var key in this._style) {\n var value = this._style[key];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n var styleConfig = {};\n\n for (var styleKey in this._style) {\n if (this._style[styleKey] instanceof AnimatedNode) {\n var style = this._style[styleKey];\n\n style.__makeNative();\n\n styleConfig[styleKey] = style.__getNativeTag();\n } // Non-animated styles are set using `setNativeProps`, no need\n // to pass those as a part of the node config\n\n }\n\n NativeAnimatedHelper.validateStyles(styleConfig);\n return {\n type: 'style',\n style: styleConfig\n };\n };\n\n return AnimatedStyle;\n}(AnimatedWithChildren);\n\nexport default AnimatedStyle;","/**\n * Copyright (c) 2015-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 * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport { AnimatedEvent } from '../AnimatedEvent';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedStyle from './AnimatedStyle';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport findNodeHandle from '../../../../exports/findNodeHandle';\nimport invariant from 'fbjs/lib/invariant';\n\nvar AnimatedProps = /*#__PURE__*/function (_AnimatedNode) {\n _inheritsLoose(AnimatedProps, _AnimatedNode);\n\n function AnimatedProps(props, callback) {\n var _this;\n\n _this = _AnimatedNode.call(this) || this;\n\n if (props.style) {\n props = _objectSpread(_objectSpread({}, props), {}, {\n style: new AnimatedStyle(props.style)\n });\n }\n\n _this._props = props;\n _this._callback = callback;\n\n _this.__attach();\n\n return _this;\n }\n\n var _proto = AnimatedProps.prototype;\n\n _proto.__getValue = function __getValue() {\n var props = {};\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n if (!value.__isNative || value instanceof AnimatedStyle) {\n // We cannot use value of natively driven nodes this way as the value we have access from\n // JS may not be up to date.\n props[key] = value.__getValue();\n }\n } else if (value instanceof AnimatedEvent) {\n props[key] = value.__getHandler();\n } else {\n props[key] = value;\n }\n }\n\n return props;\n };\n\n _proto.__getAnimatedValue = function __getAnimatedValue() {\n var props = {};\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n props[key] = value.__getAnimatedValue();\n }\n }\n\n return props;\n };\n\n _proto.__attach = function __attach() {\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n };\n\n _proto.__detach = function __detach() {\n if (this.__isNative && this._animatedView) {\n this.__disconnectAnimatedView();\n }\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n\n _AnimatedNode.prototype.__detach.call(this);\n };\n\n _proto.update = function update() {\n this._callback();\n };\n\n _proto.__makeNative = function __makeNative() {\n if (!this.__isNative) {\n this.__isNative = true;\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n\n if (this._animatedView) {\n this.__connectAnimatedView();\n }\n }\n };\n\n _proto.setNativeView = function setNativeView(animatedView) {\n if (this._animatedView === animatedView) {\n return;\n }\n\n this._animatedView = animatedView;\n\n if (this.__isNative) {\n this.__connectAnimatedView();\n }\n };\n\n _proto.__connectAnimatedView = function __connectAnimatedView() {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n var nativeViewTag = findNodeHandle(this._animatedView);\n invariant(nativeViewTag != null, 'Unable to locate attached view in the native tree');\n NativeAnimatedHelper.API.connectAnimatedNodeToView(this.__getNativeTag(), nativeViewTag);\n };\n\n _proto.__disconnectAnimatedView = function __disconnectAnimatedView() {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n var nativeViewTag = findNodeHandle(this._animatedView);\n invariant(nativeViewTag != null, 'Unable to locate attached view in the native tree');\n NativeAnimatedHelper.API.disconnectAnimatedNodeFromView(this.__getNativeTag(), nativeViewTag);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n var propsConfig = {};\n\n for (var propKey in this._props) {\n var value = this._props[propKey];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n\n propsConfig[propKey] = value.__getNativeTag();\n }\n }\n\n return {\n type: 'props',\n props: propsConfig\n };\n };\n\n return AnimatedProps;\n}(AnimatedNode);\n\nexport default AnimatedProps;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nvar AnimatedSubtraction = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedSubtraction, _AnimatedWithChildren);\n\n function AnimatedSubtraction(a, b) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n _this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n return _this;\n }\n\n var _proto = AnimatedSubtraction.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n return this._a.__getValue() - this._b.__getValue();\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__attach = function __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'subtraction',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n };\n\n return AnimatedSubtraction;\n}(AnimatedWithChildren);\n\nexport default AnimatedSubtraction;","/**\n * Copyright (c) 2015-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 * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedNode from './AnimatedNode';\nimport { generateNewAnimationId, shouldUseNativeDriver } from '../NativeAnimatedHelper';\n\nvar AnimatedTracking = /*#__PURE__*/function (_AnimatedNode) {\n _inheritsLoose(AnimatedTracking, _AnimatedNode);\n\n function AnimatedTracking(value, parent, animationClass, animationConfig, callback) {\n var _this;\n\n _this = _AnimatedNode.call(this) || this;\n _this._value = value;\n _this._parent = parent;\n _this._animationClass = animationClass;\n _this._animationConfig = animationConfig;\n _this._useNativeDriver = shouldUseNativeDriver(animationConfig);\n _this._callback = callback;\n\n _this.__attach();\n\n return _this;\n }\n\n var _proto = AnimatedTracking.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this.__isNative = true;\n\n this._parent.__makeNative();\n\n _AnimatedNode.prototype.__makeNative.call(this);\n\n this._value.__makeNative();\n };\n\n _proto.__getValue = function __getValue() {\n return this._parent.__getValue();\n };\n\n _proto.__attach = function __attach() {\n this._parent.__addChild(this);\n\n if (this._useNativeDriver) {\n // when the tracking starts we need to convert this node to a \"native node\"\n // so that the parent node will be made \"native\" too. This is necessary as\n // if we don't do this `update` method will get called. At that point it\n // may be too late as it would mean the JS driver has already started\n // updating node values\n this.__makeNative();\n }\n };\n\n _proto.__detach = function __detach() {\n this._parent.__removeChild(this);\n\n _AnimatedNode.prototype.__detach.call(this);\n };\n\n _proto.update = function update() {\n this._value.animate(new this._animationClass(_objectSpread(_objectSpread({}, this._animationConfig), {}, {\n toValue: this._animationConfig.toValue.__getValue()\n })), this._callback);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n var animation = new this._animationClass(_objectSpread(_objectSpread({}, this._animationConfig), {}, {\n // remove toValue from the config as it's a ref to Animated.Value\n toValue: undefined\n }));\n\n var animationConfig = animation.__getNativeAnimationConfig();\n\n return {\n type: 'tracking',\n animationId: generateNewAnimationId(),\n animationConfig: animationConfig,\n toValue: this._parent.__getNativeTag(),\n value: this._value.__getNativeTag()\n };\n };\n\n return AnimatedTracking;\n}(AnimatedNode);\n\nexport default AnimatedTracking;","/**\n * Copyright (c) 2015-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 * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\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 http://facebook.github.io/react-native/docs/animatedvaluexy.html\n */\n\nvar AnimatedValueXY = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedValueXY, _AnimatedWithChildren); // $FlowFixMe\n\n\n function AnimatedValueXY(valueIn) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n var value = valueIn || {\n x: 0,\n y: 0\n }; // fixme: shouldn't need `: any`\n\n if (typeof value.x === 'number' && typeof value.y === 'number') {\n _this.x = new AnimatedValue(value.x);\n _this.y = new AnimatedValue(value.y);\n } else {\n invariant(value.x instanceof AnimatedValue && value.y instanceof AnimatedValue, 'AnimatedValueXY must be initialized with an object of numbers or ' + 'AnimatedValues.');\n _this.x = value.x;\n _this.y = value.y;\n }\n\n _this._listeners = {};\n return _this;\n }\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See http://facebook.github.io/react-native/docs/animatedvaluexy.html#setvalue\n */\n\n\n var _proto = AnimatedValueXY.prototype;\n\n _proto.setValue = function setValue(value) {\n this.x.setValue(value.x);\n this.y.setValue(value.y);\n }\n /**\n * Sets an offset that is applied on top of whatever value is set, whether\n * via `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See http://facebook.github.io/react-native/docs/animatedvaluexy.html#setoffset\n */\n ;\n\n _proto.setOffset = function setOffset(offset) {\n this.x.setOffset(offset.x);\n this.y.setOffset(offset.y);\n }\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See http://facebook.github.io/react-native/docs/animatedvaluexy.html#flattenoffset\n */\n ;\n\n _proto.flattenOffset = function flattenOffset() {\n this.x.flattenOffset();\n this.y.flattenOffset();\n }\n /**\n * Sets the offset value to the base value, and resets the base value to\n * zero. The final output of the value is unchanged.\n *\n * See http://facebook.github.io/react-native/docs/animatedvaluexy.html#extractoffset\n */\n ;\n\n _proto.extractOffset = function extractOffset() {\n this.x.extractOffset();\n this.y.extractOffset();\n };\n\n _proto.__getValue = function __getValue() {\n return {\n x: this.x.__getValue(),\n y: this.y.__getValue()\n };\n }\n /**\n * Stops any animation and resets the value to its original.\n *\n * See http://facebook.github.io/react-native/docs/animatedvaluexy.html#resetanimation\n */\n ;\n\n _proto.resetAnimation = function resetAnimation(callback) {\n this.x.resetAnimation();\n this.y.resetAnimation();\n callback && callback(this.__getValue());\n }\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See http://facebook.github.io/react-native/docs/animatedvaluexy.html#stopanimation\n */\n ;\n\n _proto.stopAnimation = function stopAnimation(callback) {\n this.x.stopAnimation();\n this.y.stopAnimation();\n callback && callback(this.__getValue());\n }\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to synchronously read\n * the value because it might be driven natively.\n *\n * Returns a string that serves as an identifier for the listener.\n *\n * See http://facebook.github.io/react-native/docs/animatedvaluexy.html#addlistener\n */\n // $FlowFixMe\n ;\n\n _proto.addListener = function addListener(callback) {\n var _this2 = this;\n\n var id = String(_uniqueId++);\n\n var jointCallback = function jointCallback(_ref) {\n var number = _ref.value;\n callback(_this2.__getValue());\n };\n\n this._listeners[id] = {\n x: this.x.addListener(jointCallback),\n y: this.y.addListener(jointCallback)\n };\n return id;\n }\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See http://facebook.github.io/react-native/docs/animatedvaluexy.html#removelistener\n */\n ;\n\n _proto.removeListener = function removeListener(id) {\n this.x.removeListener(this._listeners[id].x);\n this.y.removeListener(this._listeners[id].y);\n delete this._listeners[id];\n }\n /**\n * Remove all registered listeners.\n *\n * See http://facebook.github.io/react-native/docs/animatedvaluexy.html#removealllisteners\n */\n ;\n\n _proto.removeAllListeners = function removeAllListeners() {\n this.x.removeAllListeners();\n this.y.removeAllListeners();\n this._listeners = {};\n }\n /**\n * Converts `{x, y}` into `{left, top}` for use in style.\n *\n * See http://facebook.github.io/react-native/docs/animatedvaluexy.html#getlayout\n */\n ;\n\n _proto.getLayout = function getLayout() {\n return {\n left: this.x,\n top: this.y\n };\n }\n /**\n * Converts `{x, y}` into a useable translation transform.\n *\n * See http://facebook.github.io/react-native/docs/animatedvaluexy.html#gettranslatetransform\n */\n ;\n\n _proto.getTranslateTransform = function getTranslateTransform() {\n return [{\n translateX: this.x\n }, {\n translateY: this.y\n }];\n };\n\n return AnimatedValueXY;\n}(AnimatedWithChildren);\n\nexport default AnimatedValueXY;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is 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'; // Important note: start() and stop() will only be called at most once.\n// Once an animation has been stopped or finished its course, it will\n// not be reused.\n\nvar Animation = /*#__PURE__*/function () {\n function Animation() {}\n\n var _proto = Animation.prototype;\n\n _proto.start = function start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {};\n\n _proto.stop = function stop() {\n if (this.__nativeId) {\n NativeAnimatedHelper.API.stopAnimation(this.__nativeId);\n }\n };\n\n _proto.__getNativeAnimationConfig = function __getNativeAnimationConfig() {\n // Subclasses that have corresponding animation implementation done in native\n // should override this method\n throw new Error('This animation type cannot be offloaded to native');\n } // Helper function for subclasses to make sure onEnd is only called once.\n ;\n\n _proto.__debouncedOnEnd = function __debouncedOnEnd(result) {\n var onEnd = this.__onEnd;\n this.__onEnd = null;\n onEnd && onEnd(result);\n };\n\n _proto.__startNativeAnimation = function __startNativeAnimation(animatedValue) {\n NativeAnimatedHelper.API.enableQueue();\n\n animatedValue.__makeNative();\n\n NativeAnimatedHelper.API.disableQueue();\n this.__nativeId = NativeAnimatedHelper.generateNewAnimationId();\n NativeAnimatedHelper.API.startAnimatingNode(this.__nativeId, animatedValue.__getNativeTag(), this.__getNativeAnimationConfig(), this.__debouncedOnEnd.bind(this));\n };\n\n return Animation;\n}();\n\nexport default Animation;","/**\n * Copyright (c) 2015-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 * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport Animation from './Animation';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\n\nvar DecayAnimation = /*#__PURE__*/function (_Animation) {\n _inheritsLoose(DecayAnimation, _Animation);\n\n function DecayAnimation(config) {\n var _config$deceleration, _config$isInteraction, _config$iterations;\n\n var _this;\n\n _this = _Animation.call(this) || this;\n _this._deceleration = (_config$deceleration = config.deceleration) !== null && _config$deceleration !== void 0 ? _config$deceleration : 0.998;\n _this._velocity = config.velocity;\n _this._useNativeDriver = shouldUseNativeDriver(config);\n _this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !_this._useNativeDriver;\n _this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n return _this;\n }\n\n var _proto = DecayAnimation.prototype;\n\n _proto.__getNativeAnimationConfig = function __getNativeAnimationConfig() {\n return {\n type: 'decay',\n deceleration: this._deceleration,\n velocity: this._velocity,\n iterations: this.__iterations\n };\n };\n\n _proto.start = function start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n this.__active = true;\n this._lastValue = fromValue;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n this._startTime = Date.now();\n\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n };\n\n _proto.onUpdate = function onUpdate() {\n var now = Date.now();\n var value = this._fromValue + this._velocity / (1 - this._deceleration) * (1 - Math.exp(-(1 - this._deceleration) * (now - this._startTime)));\n\n this._onUpdate(value);\n\n if (Math.abs(this._lastValue - value) < 0.1) {\n this.__debouncedOnEnd({\n finished: true\n });\n\n return;\n }\n\n this._lastValue = value;\n\n if (this.__active) {\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n };\n\n _proto.stop = function stop() {\n _Animation.prototype.stop.call(this);\n\n this.__active = false;\n global.cancelAnimationFrame(this._animationFrame);\n\n this.__debouncedOnEnd({\n finished: false\n });\n };\n\n return DecayAnimation;\n}(Animation);\n\nexport default DecayAnimation;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\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 { fromOrigamiTensionAndFriction, fromBouncinessAndSpeed };\nexport default {\n fromOrigamiTensionAndFriction: fromOrigamiTensionAndFriction,\n fromBouncinessAndSpeed: fromBouncinessAndSpeed\n};","/**\n * Copyright (c) 2015-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 * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport AnimatedValue from '../nodes/AnimatedValue';\nimport AnimatedValueXY from '../nodes/AnimatedValueXY';\nimport Animation from './Animation';\nimport SpringConfig from '../SpringConfig';\nimport invariant from 'fbjs/lib/invariant';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\n\nvar SpringAnimation = /*#__PURE__*/function (_Animation) {\n _inheritsLoose(SpringAnimation, _Animation);\n\n function SpringAnimation(config) {\n var _config$overshootClam, _config$restDisplacem, _config$restSpeedThre, _config$velocity, _config$velocity2, _config$delay, _config$isInteraction, _config$iterations;\n\n var _this;\n\n _this = _Animation.call(this) || this;\n _this._overshootClamping = (_config$overshootClam = config.overshootClamping) !== null && _config$overshootClam !== void 0 ? _config$overshootClam : false;\n _this._restDisplacementThreshold = (_config$restDisplacem = config.restDisplacementThreshold) !== null && _config$restDisplacem !== void 0 ? _config$restDisplacem : 0.001;\n _this._restSpeedThreshold = (_config$restSpeedThre = config.restSpeedThreshold) !== null && _config$restSpeedThre !== void 0 ? _config$restSpeedThre : 0.001;\n _this._initialVelocity = (_config$velocity = config.velocity) !== null && _config$velocity !== void 0 ? _config$velocity : 0;\n _this._lastVelocity = (_config$velocity2 = config.velocity) !== null && _config$velocity2 !== void 0 ? _config$velocity2 : 0;\n _this._toValue = config.toValue;\n _this._delay = (_config$delay = config.delay) !== null && _config$delay !== void 0 ? _config$delay : 0;\n _this._useNativeDriver = shouldUseNativeDriver(config);\n _this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !_this._useNativeDriver;\n _this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n\n if (config.stiffness !== undefined || config.damping !== undefined || config.mass !== undefined) {\n var _config$stiffness, _config$damping, _config$mass;\n\n invariant(config.bounciness === undefined && config.speed === undefined && config.tension === undefined && config.friction === undefined, 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one');\n _this._stiffness = (_config$stiffness = config.stiffness) !== null && _config$stiffness !== void 0 ? _config$stiffness : 100;\n _this._damping = (_config$damping = config.damping) !== null && _config$damping !== void 0 ? _config$damping : 10;\n _this._mass = (_config$mass = config.mass) !== null && _config$mass !== void 0 ? _config$mass : 1;\n } else if (config.bounciness !== undefined || config.speed !== undefined) {\n var _config$bounciness, _config$speed; // Convert the origami bounciness/speed values to stiffness/damping\n // We assume mass is 1.\n\n\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; // Convert the origami tension/friction values to stiffness/damping\n // We assume mass is 1.\n\n\n var _springConfig = SpringConfig.fromOrigamiTensionAndFriction((_config$tension = config.tension) !== null && _config$tension !== void 0 ? _config$tension : 40, (_config$friction = config.friction) !== null && _config$friction !== void 0 ? _config$friction : 7);\n\n _this._stiffness = _springConfig.stiffness;\n _this._damping = _springConfig.damping;\n _this._mass = 1;\n }\n\n invariant(_this._stiffness > 0, 'Stiffness value must be greater than 0');\n invariant(_this._damping > 0, 'Damping value must be greater than 0');\n invariant(_this._mass > 0, 'Mass value must be greater than 0');\n return _this;\n }\n\n var _proto = SpringAnimation.prototype;\n\n _proto.__getNativeAnimationConfig = function __getNativeAnimationConfig() {\n var _this$_initialVelocit;\n\n return {\n type: 'spring',\n overshootClamping: this._overshootClamping,\n restDisplacementThreshold: this._restDisplacementThreshold,\n restSpeedThreshold: this._restSpeedThreshold,\n stiffness: this._stiffness,\n damping: this._damping,\n mass: this._mass,\n initialVelocity: (_this$_initialVelocit = this._initialVelocity) !== null && _this$_initialVelocit !== void 0 ? _this$_initialVelocit : this._lastVelocity,\n toValue: this._toValue,\n iterations: this.__iterations\n };\n };\n\n _proto.start = function start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n var _this2 = this;\n\n this.__active = true;\n this._startPosition = fromValue;\n this._lastPosition = this._startPosition;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n this._lastTime = Date.now();\n this._frameTime = 0.0;\n\n if (previousAnimation instanceof SpringAnimation) {\n var internalState = previousAnimation.getInternalState();\n this._lastPosition = internalState.lastPosition;\n this._lastVelocity = internalState.lastVelocity; // Set the initial velocity to the last velocity\n\n this._initialVelocity = this._lastVelocity;\n this._lastTime = internalState.lastTime;\n }\n\n var start = function start() {\n if (_this2._useNativeDriver) {\n _this2.__startNativeAnimation(animatedValue);\n } else {\n _this2.onUpdate();\n }\n }; // If this._delay is more than 0, we start after the timeout.\n\n\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n };\n\n _proto.getInternalState = function getInternalState() {\n return {\n lastPosition: this._lastPosition,\n lastVelocity: this._lastVelocity,\n lastTime: this._lastTime\n };\n }\n /**\n * This spring model is based off of a damped harmonic oscillator\n * (https://en.wikipedia.org/wiki/Harmonic_oscillator#Damped_harmonic_oscillator).\n *\n * We use the closed form of the second order differential equation:\n *\n * x'' + (2ζ⍵_0)x' + ⍵^2x = 0\n *\n * where\n * ⍵_0 = √(k / m) (undamped angular frequency of the oscillator),\n * ζ = c / 2√mk (damping ratio),\n * c = damping constant\n * k = stiffness\n * m = mass\n *\n * The derivation of the closed form is described in detail here:\n * http://planetmath.org/sites/default/files/texpdf/39745.pdf\n *\n * This algorithm happens to match the algorithm used by CASpringAnimation,\n * a QuartzCore (iOS) API that creates spring animations.\n */\n ;\n\n _proto.onUpdate = function onUpdate() {\n // If for some reason we lost a lot of frames (e.g. process large payload or\n // stopped in the debugger), we only advance by 4 frames worth of\n // computation and will continue on the next frame. It's better to have it\n // running at faster speed than jumping to the end.\n var MAX_STEPS = 64;\n var now = Date.now();\n\n if (now > this._lastTime + MAX_STEPS) {\n now = this._lastTime + MAX_STEPS;\n }\n\n var deltaTime = (now - this._lastTime) / 1000;\n this._frameTime += deltaTime;\n var c = this._damping;\n var m = this._mass;\n var k = this._stiffness;\n var v0 = -this._initialVelocity;\n var zeta = c / (2 * Math.sqrt(k * m)); // damping ratio\n\n var omega0 = Math.sqrt(k / m); // undamped angular frequency of the oscillator (rad/ms)\n\n var omega1 = omega0 * Math.sqrt(1.0 - zeta * zeta); // exponential decay\n\n var x0 = this._toValue - this._startPosition; // calculate the oscillation from x0 = 1 to x = 0\n\n var position = 0.0;\n var velocity = 0.0;\n var t = this._frameTime;\n\n if (zeta < 1) {\n // Under damped\n var envelope = Math.exp(-zeta * omega0 * t);\n position = this._toValue - envelope * ((v0 + zeta * omega0 * x0) / omega1 * Math.sin(omega1 * t) + x0 * Math.cos(omega1 * t)); // This looks crazy -- it's actually just the derivative of the\n // oscillation function\n\n velocity = zeta * omega0 * envelope * (Math.sin(omega1 * t) * (v0 + zeta * omega0 * x0) / omega1 + x0 * Math.cos(omega1 * t)) - envelope * (Math.cos(omega1 * t) * (v0 + zeta * omega0 * x0) - omega1 * x0 * Math.sin(omega1 * t));\n } else {\n // Critically damped\n var _envelope = Math.exp(-omega0 * t);\n\n position = this._toValue - _envelope * (x0 + (v0 + omega0 * x0) * t);\n velocity = _envelope * (v0 * (t * omega0 - 1) + t * x0 * (omega0 * omega0));\n }\n\n this._lastTime = now;\n this._lastPosition = position;\n this._lastVelocity = velocity;\n\n this._onUpdate(position);\n\n if (!this.__active) {\n // a listener might have stopped us in _onUpdate\n return;\n } // Conditions for stopping the spring animation\n\n\n var isOvershooting = false;\n\n if (this._overshootClamping && this._stiffness !== 0) {\n if (this._startPosition < this._toValue) {\n isOvershooting = position > this._toValue;\n } else {\n isOvershooting = position < this._toValue;\n }\n }\n\n var isVelocity = Math.abs(velocity) <= this._restSpeedThreshold;\n\n var isDisplacement = true;\n\n if (this._stiffness !== 0) {\n isDisplacement = Math.abs(this._toValue - position) <= this._restDisplacementThreshold;\n }\n\n if (isOvershooting || isVelocity && isDisplacement) {\n if (this._stiffness !== 0) {\n // Ensure that we end up with a round value\n this._lastPosition = this._toValue;\n this._lastVelocity = 0;\n\n this._onUpdate(this._toValue);\n }\n\n this.__debouncedOnEnd({\n finished: true\n });\n\n return;\n }\n\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n };\n\n _proto.stop = function stop() {\n _Animation.prototype.stop.call(this);\n\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n\n this.__debouncedOnEnd({\n finished: false\n });\n };\n\n return SpringAnimation;\n}(Animation);\n\nexport default SpringAnimation;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nimport _bezier from './bezier';\n\nvar _ease;\n/**\n * The `Easing` module implements common easing functions. This module is used\n * by [Animate.timing()](docs/animate.html#timing) to convey physically\n * believable motion in animations.\n *\n * You can find a visualization of some common easing functions at\n * http://easings.net/\n *\n * ### Predefined animations\n *\n * The `Easing` module provides several predefined animations through the\n * following methods:\n *\n * - [`back`](docs/easing.html#back) provides a simple animation where the\n * object goes slightly back before moving forward\n * - [`bounce`](docs/easing.html#bounce) provides a bouncing animation\n * - [`ease`](docs/easing.html#ease) provides a simple inertial animation\n * - [`elastic`](docs/easing.html#elastic) provides a simple spring interaction\n *\n * ### Standard functions\n *\n * Three standard easing functions are provided:\n *\n * - [`linear`](docs/easing.html#linear)\n * - [`quad`](docs/easing.html#quad)\n * - [`cubic`](docs/easing.html#cubic)\n *\n * The [`poly`](docs/easing.html#poly) function can be used to implement\n * quartic, quintic, and other higher power functions.\n *\n * ### Additional functions\n *\n * Additional mathematical functions are provided by the following methods:\n *\n * - [`bezier`](docs/easing.html#bezier) provides a cubic bezier curve\n * - [`circle`](docs/easing.html#circle) provides a circular function\n * - [`sin`](docs/easing.html#sin) provides a sinusoidal function\n * - [`exp`](docs/easing.html#exp) provides an exponential function\n *\n * The following helpers are used to modify other easing functions.\n *\n * - [`in`](docs/easing.html#in) runs an easing function forwards\n * - [`inOut`](docs/easing.html#inout) makes any easing function symmetrical\n * - [`out`](docs/easing.html#out) runs an easing function backwards\n */\n\n\nvar Easing = /*#__PURE__*/function () {\n function Easing() {}\n /**\n * A stepping function, returns 1 for any positive value of `n`.\n */\n\n\n Easing.step0 = function step0(n) {\n return n > 0 ? 1 : 0;\n }\n /**\n * A stepping function, returns 1 if `n` is greater than or equal to 1.\n */\n ;\n\n Easing.step1 = function step1(n) {\n return n >= 1 ? 1 : 0;\n }\n /**\n * A linear function, `f(t) = t`. Position correlates to elapsed time one to\n * one.\n *\n * http://cubic-bezier.com/#0,0,1,1\n */\n ;\n\n Easing.linear = function linear(t) {\n return t;\n }\n /**\n * A simple inertial interaction, similar to an object slowly accelerating to\n * speed.\n *\n * http://cubic-bezier.com/#.42,0,1,1\n */\n ;\n\n Easing.ease = function ease(t) {\n if (!_ease) {\n _ease = Easing.bezier(0.42, 0, 1, 1);\n }\n\n return _ease(t);\n }\n /**\n * A quadratic function, `f(t) = t * t`. Position equals the square of elapsed\n * time.\n *\n * http://easings.net/#easeInQuad\n */\n ;\n\n Easing.quad = function quad(t) {\n return t * t;\n }\n /**\n * A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed\n * time.\n *\n * http://easings.net/#easeInCubic\n */\n ;\n\n Easing.cubic = function cubic(t) {\n return t * t * t;\n }\n /**\n * A power function. Position is equal to the Nth power of elapsed time.\n *\n * n = 4: http://easings.net/#easeInQuart\n * n = 5: http://easings.net/#easeInQuint\n */\n ;\n\n Easing.poly = function poly(n) {\n return function (t) {\n return Math.pow(t, n);\n };\n }\n /**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\n ;\n\n Easing.sin = function sin(t) {\n return 1 - Math.cos(t * Math.PI / 2);\n }\n /**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\n ;\n\n Easing.circle = function circle(t) {\n return 1 - Math.sqrt(1 - t * t);\n }\n /**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\n ;\n\n Easing.exp = function exp(t) {\n return Math.pow(2, 10 * (t - 1));\n }\n /**\n * A simple elastic interaction, similar to a spring oscillating back and\n * forth.\n *\n * Default bounciness is 1, which overshoots a little bit once. 0 bounciness\n * doesn't overshoot at all, and bounciness of N > 1 will overshoot about N\n * times.\n *\n * http://easings.net/#easeInElastic\n */\n ;\n\n Easing.elastic = function elastic(bounciness) {\n if (bounciness === void 0) {\n bounciness = 1;\n }\n\n var p = bounciness * Math.PI;\n return function (t) {\n return 1 - Math.pow(Math.cos(t * Math.PI / 2), 3) * Math.cos(t * p);\n };\n }\n /**\n * Use with `Animated.parallel()` to create a simple effect where the object\n * animates back slightly as the animation starts.\n *\n * Wolfram Plot:\n *\n * - http://tiny.cc/back_default (s = 1.70158, default)\n */\n ;\n\n Easing.back = function back(s) {\n if (s === void 0) {\n s = 1.70158;\n }\n\n return function (t) {\n return t * t * ((s + 1) * t - s);\n };\n }\n /**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\n ;\n\n Easing.bounce = function bounce(t) {\n if (t < 1 / 2.75) {\n return 7.5625 * t * t;\n }\n\n if (t < 2 / 2.75) {\n var _t = t - 1.5 / 2.75;\n\n return 7.5625 * _t * _t + 0.75;\n }\n\n if (t < 2.5 / 2.75) {\n var _t2 = t - 2.25 / 2.75;\n\n return 7.5625 * _t2 * _t2 + 0.9375;\n }\n\n var t2 = t - 2.625 / 2.75;\n return 7.5625 * t2 * t2 + 0.984375;\n }\n /**\n * Provides a cubic bezier curve, equivalent to CSS Transitions'\n * `transition-timing-function`.\n *\n * A useful tool to visualize cubic bezier curves can be found at\n * http://cubic-bezier.com/\n */\n ;\n\n Easing.bezier = function bezier(x1, y1, x2, y2) {\n return _bezier(x1, y1, x2, y2);\n }\n /**\n * Runs an easing function forwards.\n */\n ;\n\n Easing.in = function _in(easing) {\n return easing;\n }\n /**\n * Runs an easing function backwards.\n */\n ;\n\n Easing.out = function out(easing) {\n return function (t) {\n return 1 - easing(1 - t);\n };\n }\n /**\n * Makes any easing function symmetrical. The easing function will run\n * forwards for half of the duration, then backwards for the rest of the\n * duration.\n */\n ;\n\n Easing.inOut = function inOut(easing) {\n return function (t) {\n if (t < 0.5) {\n return easing(t * 2) / 2;\n }\n\n return 1 - easing((1 - t) * 2) / 2;\n };\n };\n\n return Easing;\n}();\n\nexport default Easing;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * BezierEasing - use bezier curve for transition easing function\n * https://github.com/gre/bezier-easing\n *\n * \n * @format\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) 2015-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 * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport AnimatedValue from '../nodes/AnimatedValue';\nimport AnimatedValueXY from '../nodes/AnimatedValueXY';\nimport Animation from './Animation';\nimport Easing from '../Easing';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\n\nvar _easeInOut;\n\nfunction easeInOut() {\n if (!_easeInOut) {\n _easeInOut = Easing.inOut(Easing.ease);\n }\n\n return _easeInOut;\n}\n\nvar TimingAnimation = /*#__PURE__*/function (_Animation) {\n _inheritsLoose(TimingAnimation, _Animation);\n\n function TimingAnimation(config) {\n var _config$easing, _config$duration, _config$delay, _config$iterations, _config$isInteraction;\n\n var _this;\n\n _this = _Animation.call(this) || this;\n _this._toValue = config.toValue;\n _this._easing = (_config$easing = config.easing) !== null && _config$easing !== void 0 ? _config$easing : easeInOut();\n _this._duration = (_config$duration = config.duration) !== null && _config$duration !== void 0 ? _config$duration : 500;\n _this._delay = (_config$delay = config.delay) !== null && _config$delay !== void 0 ? _config$delay : 0;\n _this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n _this._useNativeDriver = shouldUseNativeDriver(config);\n _this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !_this._useNativeDriver;\n return _this;\n }\n\n var _proto = TimingAnimation.prototype;\n\n _proto.__getNativeAnimationConfig = function __getNativeAnimationConfig() {\n var frameDuration = 1000.0 / 60.0;\n var frames = [];\n\n for (var dt = 0.0; dt < this._duration; dt += frameDuration) {\n frames.push(this._easing(dt / this._duration));\n }\n\n frames.push(this._easing(1));\n return {\n type: 'frames',\n frames: frames,\n toValue: this._toValue,\n iterations: this.__iterations\n };\n };\n\n _proto.start = function start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n var _this2 = this;\n\n this.__active = true;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n\n var start = function start() {\n // Animations that sometimes have 0 duration and sometimes do not\n // still need to use the native driver when duration is 0 so as to\n // not cause intermixed JS and native animations.\n if (_this2._duration === 0 && !_this2._useNativeDriver) {\n _this2._onUpdate(_this2._toValue);\n\n _this2.__debouncedOnEnd({\n finished: true\n });\n } else {\n _this2._startTime = Date.now();\n\n if (_this2._useNativeDriver) {\n _this2.__startNativeAnimation(animatedValue);\n } else {\n _this2._animationFrame = requestAnimationFrame(_this2.onUpdate.bind(_this2));\n }\n }\n };\n\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n };\n\n _proto.onUpdate = function onUpdate() {\n var now = Date.now();\n\n if (now >= this._startTime + this._duration) {\n if (this._duration === 0) {\n this._onUpdate(this._toValue);\n } else {\n this._onUpdate(this._fromValue + this._easing(1) * (this._toValue - this._fromValue));\n }\n\n this.__debouncedOnEnd({\n finished: true\n });\n\n return;\n }\n\n this._onUpdate(this._fromValue + this._easing((now - this._startTime) / this._duration) * (this._toValue - this._fromValue));\n\n if (this.__active) {\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n };\n\n _proto.stop = function stop() {\n _Animation.prototype.stop.call(this);\n\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n\n this.__debouncedOnEnd({\n finished: false\n });\n };\n\n return TimingAnimation;\n}(Animation);\n\nexport default TimingAnimation;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nexport default function mergeRefs() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return function forwardRef(node) {\n args.forEach(function (ref) {\n if (ref == null) {\n return;\n }\n\n if (typeof ref === 'function') {\n ref(node);\n return;\n }\n\n if (typeof ref === 'object') {\n ref.current = node;\n return;\n }\n\n console.error(\"mergeRefs cannot handle Refs of type boolean, number or string, received ref \" + String(ref));\n });\n };\n}","/**\n * Copyright (c) 2015-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 * @format\n */\n'use strict';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport { AnimatedEvent } from './AnimatedEvent';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport React from 'react';\nimport invariant from 'fbjs/lib/invariant';\nimport mergeRefs from '../../../modules/mergeRefs';\n\nfunction createAnimatedComponent(Component, defaultProps) {\n invariant(typeof Component !== 'function' || Component.prototype && Component.prototype.isReactComponent, '`createAnimatedComponent` does not support stateless functional components; ' + 'use a class component instead.');\n\n var AnimatedComponent = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(AnimatedComponent, _React$Component);\n\n function AnimatedComponent(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this._invokeAnimatedPropsCallbackOnMount = false;\n _this._eventDetachers = [];\n\n _this._animatedPropsCallback = function () {\n if (_this._component == null) {\n // AnimatedProps is created in will-mount because it's used in render.\n // But this callback may be invoked before mount in async mode,\n // In which case we should defer the setNativeProps() call.\n // React may throw away uncommitted work in async mode,\n // So a deferred call won't always be invoked.\n _this._invokeAnimatedPropsCallbackOnMount = true;\n } else if (AnimatedComponent.__skipSetNativeProps_FOR_TESTS_ONLY || typeof _this._component.setNativeProps !== 'function') {\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 = mergeRefs(_this.props.forwardedRef, function (ref) {\n _this._prevComponent = _this._component;\n _this._component = ref; // TODO: Delete this in a future release.\n\n if (ref != null && ref.getNode == null) {\n ref.getNode = function () {\n var _ref$constructor$name;\n\n console.warn('%s: Calling `getNode()` on the ref of an Animated component ' + 'is no longer necessary. You can now directly use the ref ' + 'instead. This method will be removed in a future release.', (_ref$constructor$name = ref.constructor.name) !== null && _ref$constructor$name !== void 0 ? _ref$constructor$name : '<>');\n return ref;\n };\n }\n });\n return _this;\n }\n\n var _proto = AnimatedComponent.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this._propsAnimated && this._propsAnimated.__detach();\n\n this._detachNativeEvents();\n };\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n this._attachProps(this.props);\n };\n\n _proto.componentDidMount = function componentDidMount() {\n if (this._invokeAnimatedPropsCallbackOnMount) {\n this._invokeAnimatedPropsCallbackOnMount = false;\n\n this._animatedPropsCallback();\n }\n\n this._propsAnimated.setNativeView(this._component);\n\n this._attachNativeEvents();\n };\n\n _proto._attachNativeEvents = function _attachNativeEvents() {\n var _this2 = this; // Make sure to get the scrollable node for components that implement\n // `ScrollResponder.Mixin`.\n\n\n var scrollableNode = this._component && this._component.getScrollableNode ? this._component.getScrollableNode() : this._component;\n\n var _loop = function _loop(key) {\n var prop = _this2.props[key];\n\n if (prop instanceof AnimatedEvent && prop.__isNative) {\n prop.__attach(scrollableNode, key);\n\n _this2._eventDetachers.push(function () {\n return prop.__detach(scrollableNode, key);\n });\n }\n };\n\n for (var key in this.props) {\n _loop(key);\n }\n };\n\n _proto._detachNativeEvents = function _detachNativeEvents() {\n this._eventDetachers.forEach(function (remove) {\n return remove();\n });\n\n this._eventDetachers = [];\n } // The system is best designed when setNativeProps is implemented. It is\n // able to avoid re-rendering and directly set the attributes that changed.\n // However, setNativeProps can only be implemented on leaf native\n // components. If you want to animate a composite component, you need to\n // re-render it. In this case, we have a fallback that uses forceUpdate.\n ;\n\n _proto._attachProps = function _attachProps(nextProps) {\n var oldPropsAnimated = this._propsAnimated;\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 oldPropsAnimated && oldPropsAnimated.__detach();\n };\n\n _proto.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(newProps) {\n this._attachProps(newProps);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this._component !== this._prevComponent) {\n this._propsAnimated.setNativeView(this._component);\n }\n\n if (this._component !== this._prevComponent || prevProps !== this.props) {\n this._detachNativeEvents();\n\n this._attachNativeEvents();\n }\n };\n\n _proto.render = function render() {\n var props = this._propsAnimated.__getValue();\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, defaultProps, props, {\n ref: this._setComponentRef\n }));\n };\n\n return AnimatedComponent;\n }(React.Component);\n\n AnimatedComponent.__skipSetNativeProps_FOR_TESTS_ONLY = false;\n var propTypes = Component.propTypes;\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;","/**\n * Copyright (c) 2015-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 * @format\n * @preventMunge\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport { AnimatedEvent, attachNativeEvent } from './AnimatedEvent';\nimport AnimatedAddition from './nodes/AnimatedAddition';\nimport AnimatedDiffClamp from './nodes/AnimatedDiffClamp';\nimport AnimatedDivision from './nodes/AnimatedDivision';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedModulo from './nodes/AnimatedModulo';\nimport AnimatedMultiplication from './nodes/AnimatedMultiplication';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport AnimatedSubtraction from './nodes/AnimatedSubtraction';\nimport AnimatedTracking from './nodes/AnimatedTracking';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\nimport DecayAnimation from './animations/DecayAnimation';\nimport SpringAnimation from './animations/SpringAnimation';\nimport TimingAnimation from './animations/TimingAnimation';\nimport createAnimatedComponent from './createAnimatedComponent';\n\nvar add = function add(a, b) {\n return new AnimatedAddition(a, b);\n};\n\nvar subtract = function subtract(a, b) {\n return new AnimatedSubtraction(a, b);\n};\n\nvar divide = function divide(a, b) {\n return new AnimatedDivision(a, b);\n};\n\nvar multiply = function multiply(a, b) {\n return new AnimatedMultiplication(a, b);\n};\n\nvar modulo = function modulo(a, modulus) {\n return new AnimatedModulo(a, modulus);\n};\n\nvar diffClamp = function diffClamp(a, min, max) {\n return new AnimatedDiffClamp(a, min, max);\n};\n\nvar _combineCallbacks = function _combineCallbacks(callback, config) {\n if (callback && config.onComplete) {\n return function () {\n config.onComplete && config.onComplete.apply(config, arguments);\n callback && callback.apply(void 0, arguments);\n };\n } else {\n return callback || config.onComplete;\n }\n};\n\nvar maybeVectorAnim = function maybeVectorAnim(value, config, anim) {\n if (value instanceof AnimatedValueXY) {\n var configX = _objectSpread({}, config);\n\n var configY = _objectSpread({}, config);\n\n for (var key in config) {\n var _config$key = config[key],\n x = _config$key.x,\n y = _config$key.y;\n\n if (x !== undefined && y !== undefined) {\n configX[key] = x;\n configY[key] = y;\n }\n }\n\n var aX = anim(value.x, configX);\n var aY = anim(value.y, configY); // We use `stopTogether: false` here because otherwise tracking will break\n // because the second animation will get stopped before it can update.\n\n return parallel([aX, aY], {\n stopTogether: false\n });\n }\n\n return null;\n};\n\nvar spring = function spring(value, config) {\n var _start = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(new AnimatedTracking(singleValue, configuration.toValue, SpringAnimation, singleConfig, callback));\n } else {\n singleValue.animate(new SpringAnimation(singleConfig), callback);\n }\n };\n\n return maybeVectorAnim(value, config, spring) || {\n start: function start(callback) {\n _start(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations: iterations\n });\n\n _start(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\n\nvar timing = function timing(value, config) {\n var _start2 = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(new AnimatedTracking(singleValue, configuration.toValue, TimingAnimation, singleConfig, callback));\n } else {\n singleValue.animate(new TimingAnimation(singleConfig), callback);\n }\n };\n\n return maybeVectorAnim(value, config, timing) || {\n start: function start(callback) {\n _start2(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations: iterations\n });\n\n _start2(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\n\nvar decay = function decay(value, config) {\n var _start3 = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n singleValue.animate(new DecayAnimation(singleConfig), callback);\n };\n\n return maybeVectorAnim(value, config, decay) || {\n start: function start(callback) {\n _start3(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations: iterations\n });\n\n _start3(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\n\nvar sequence = function sequence(animations) {\n var current = 0;\n return {\n start: function start(callback) {\n var onComplete = function onComplete(result) {\n if (!result.finished) {\n callback && callback(result);\n return;\n }\n\n current++;\n\n if (current === animations.length) {\n callback && callback(result);\n return;\n }\n\n animations[current].start(onComplete);\n };\n\n if (animations.length === 0) {\n callback && callback({\n finished: true\n });\n } else {\n animations[current].start(onComplete);\n }\n },\n stop: function stop() {\n if (current < animations.length) {\n animations[current].stop();\n }\n },\n reset: function reset() {\n animations.forEach(function (animation, idx) {\n if (idx <= current) {\n animation.reset();\n }\n });\n current = 0;\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.sequence animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return false;\n }\n };\n};\n\nvar parallel = function parallel(animations, config) {\n var doneCount = 0; // Make sure we only call stop() at most once for each animation\n\n var hasEnded = {};\n var stopTogether = !(config && config.stopTogether === false);\n var result = {\n start: function start(callback) {\n if (doneCount === animations.length) {\n callback && callback({\n finished: true\n });\n return;\n }\n\n animations.forEach(function (animation, idx) {\n var cb = function cb(endResult) {\n hasEnded[idx] = true;\n doneCount++;\n\n if (doneCount === animations.length) {\n doneCount = 0;\n callback && callback(endResult);\n return;\n }\n\n if (!endResult.finished && stopTogether) {\n result.stop();\n }\n };\n\n if (!animation) {\n cb({\n finished: true\n });\n } else {\n animation.start(cb);\n }\n });\n },\n stop: function stop() {\n animations.forEach(function (animation, idx) {\n !hasEnded[idx] && animation.stop();\n hasEnded[idx] = true;\n });\n },\n reset: function reset() {\n animations.forEach(function (animation, idx) {\n animation.reset();\n hasEnded[idx] = false;\n doneCount = 0;\n });\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.parallel animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return false;\n }\n };\n return result;\n};\n\nvar delay = function delay(time) {\n // Would be nice to make a specialized implementation\n return timing(new AnimatedValue(0), {\n toValue: 0,\n delay: time,\n duration: 0\n });\n};\n\nvar stagger = function stagger(time, animations) {\n return parallel(animations.map(function (animation, i) {\n return sequence([delay(time * i), animation]);\n }));\n};\n\nvar loop = function loop(animation, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$iterations = _ref.iterations,\n iterations = _ref$iterations === void 0 ? -1 : _ref$iterations,\n _ref$resetBeforeItera = _ref.resetBeforeIteration,\n resetBeforeIteration = _ref$resetBeforeItera === void 0 ? true : _ref$resetBeforeItera;\n\n var isFinished = false;\n var iterationsSoFar = 0;\n return {\n start: function start(callback) {\n var restart = function restart(result) {\n if (result === void 0) {\n result = {\n finished: true\n };\n }\n\n if (isFinished || iterationsSoFar === iterations || result.finished === false) {\n callback && callback(result);\n } else {\n iterationsSoFar++;\n resetBeforeIteration && animation.reset();\n animation.start(restart);\n }\n };\n\n if (!animation || iterations === 0) {\n callback && callback({\n finished: true\n });\n } else {\n if (animation._isUsingNativeDriver()) {\n animation._startNativeLoop(iterations);\n } else {\n restart(); // Start looping recursively on the js thread\n }\n }\n },\n stop: function stop() {\n isFinished = true;\n animation.stop();\n },\n reset: function reset() {\n iterationsSoFar = 0;\n isFinished = false;\n animation.reset();\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.loop animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return animation._isUsingNativeDriver();\n }\n };\n};\n\nfunction forkEvent(event, listener) {\n if (!event) {\n return listener;\n } else if (event instanceof AnimatedEvent) {\n event.__addListener(listener);\n\n return event;\n } else {\n return function () {\n typeof event === 'function' && event.apply(void 0, arguments);\n listener.apply(void 0, arguments);\n };\n }\n}\n\nfunction unforkEvent(event, listener) {\n if (event && event instanceof AnimatedEvent) {\n event.__removeListener(listener);\n }\n}\n\nvar event = function event(argMapping, config) {\n var animatedEvent = new AnimatedEvent(argMapping, config);\n\n if (animatedEvent.__isNative) {\n return animatedEvent;\n } else {\n return animatedEvent.__getHandler();\n }\n};\n/**\n * The `Animated` library is designed to make animations fluid, powerful, and\n * easy to build and maintain. `Animated` focuses on declarative relationships\n * between inputs and outputs, with configurable transforms in between, and\n * simple `start`/`stop` methods to control time-based animation execution.\n * If additional transforms are added, be sure to include them in\n * AnimatedMock.js as well.\n *\n * See http://facebook.github.io/react-native/docs/animated.html\n */\n\n\nvar AnimatedImplementation = {\n /**\n * Standard value class for driving animations. Typically initialized with\n * `new Animated.Value(0);`\n *\n * See http://facebook.github.io/react-native/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://facebook.github.io/react-native/docs/animatedvaluexy.html\n */\n ValueXY: AnimatedValueXY,\n\n /**\n * Exported to use the Interpolation type in flow.\n *\n * See http://facebook.github.io/react-native/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 http://facebook.github.io/react-native/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 http://facebook.github.io/react-native/docs/animated.html#decay\n */\n decay: decay,\n\n /**\n * Animates a value along a timed easing curve. The Easing module has tons of\n * predefined curves, or you can use your own function.\n *\n * See http://facebook.github.io/react-native/docs/animated.html#timing\n */\n timing: timing,\n\n /**\n * Animates a value according to an analytical spring model based on\n * damped harmonic oscillation.\n *\n * See http://facebook.github.io/react-native/docs/animated.html#spring\n */\n spring: spring,\n\n /**\n * Creates a new Animated value composed from two Animated values added\n * together.\n *\n * See http://facebook.github.io/react-native/docs/animated.html#add\n */\n add: add,\n\n /**\n * Creates a new Animated value composed by subtracting the second Animated\n * value from the first Animated value.\n *\n * See http://facebook.github.io/react-native/docs/animated.html#subtract\n */\n subtract: subtract,\n\n /**\n * Creates a new Animated value composed by dividing the first Animated value\n * by the second Animated value.\n *\n * See http://facebook.github.io/react-native/docs/animated.html#divide\n */\n divide: divide,\n\n /**\n * Creates a new Animated value composed from two Animated values multiplied\n * together.\n *\n * See http://facebook.github.io/react-native/docs/animated.html#multiply\n */\n multiply: multiply,\n\n /**\n * Creates a new Animated value that is the (non-negative) modulo of the\n * provided Animated value.\n *\n * See http://facebook.github.io/react-native/docs/animated.html#modulo\n */\n modulo: modulo,\n\n /**\n * Create a new Animated value that is limited between 2 values. It uses the\n * difference between the last value so even if the value is far from the\n * bounds it will start changing when the value starts getting closer again.\n *\n * See http://facebook.github.io/react-native/docs/animated.html#diffclamp\n */\n diffClamp: diffClamp,\n\n /**\n * Starts an animation after the given delay.\n *\n * See http://facebook.github.io/react-native/docs/animated.html#delay\n */\n delay: delay,\n\n /**\n * Starts an array of animations in order, waiting for each to complete\n * before starting the next. If the current running animation is stopped, no\n * following animations will be started.\n *\n * See http://facebook.github.io/react-native/docs/animated.html#sequence\n */\n sequence: sequence,\n\n /**\n * Starts an array of animations all at the same time. By default, if one\n * of the animations is stopped, they will all be stopped. You can override\n * this with the `stopTogether` flag.\n *\n * See http://facebook.github.io/react-native/docs/animated.html#parallel\n */\n parallel: parallel,\n\n /**\n * Array of animations may run in parallel (overlap), but are started in\n * sequence with successive delays. Nice for doing trailing effects.\n *\n * See http://facebook.github.io/react-native/docs/animated.html#stagger\n */\n stagger: stagger,\n\n /**\n * Loops a given animation continuously, so that each time it reaches the\n * end, it resets and begins again from the start.\n *\n * See http://facebook.github.io/react-native/docs/animated.html#loop\n */\n loop: loop,\n\n /**\n * Takes an array of mappings and extracts values from each arg accordingly,\n * then calls `setValue` on the mapped outputs.\n *\n * See http://facebook.github.io/react-native/docs/animated.html#event\n */\n event: event,\n\n /**\n * Make any React component Animatable. Used to create `Animated.View`, etc.\n *\n * See http://facebook.github.io/react-native/docs/animated.html#createanimatedcomponent\n */\n createAnimatedComponent: createAnimatedComponent,\n\n /**\n * Imperative API to attach an animated value to an event on a view. Prefer\n * using `Animated.event` with `useNativeDrive: true` if possible.\n *\n * See http://facebook.github.io/react-native/docs/animated.html#attachnativeevent\n */\n attachNativeEvent: attachNativeEvent,\n\n /**\n * Advanced imperative API for snooping on animated events that are passed in\n * through props. Use values directly where possible.\n *\n * See http://facebook.github.io/react-native/docs/animated.html#forkevent\n */\n forkEvent: forkEvent,\n unforkEvent: unforkEvent,\n\n /**\n * Expose Event class, so it can be used as a type for type checkers.\n */\n Event: AnimatedEvent,\n __PropsOnlyForTests: AnimatedProps\n};\nexport default AnimatedImplementation;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This 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;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nexport var defaultProps = {\n children: true,\n dataSet: true,\n nativeID: true,\n ref: true,\n suppressHydrationWarning: true,\n testID: true\n};\nexport var accessibilityProps = {\n accessibilityActiveDescendant: true,\n accessibilityAtomic: true,\n accessibilityAutoComplete: true,\n accessibilityBusy: true,\n accessibilityChecked: true,\n accessibilityColumnCount: true,\n accessibilityColumnIndex: true,\n accessibilityColumnSpan: true,\n accessibilityControls: true,\n accessibilityCurrent: true,\n accessibilityDescribedBy: true,\n accessibilityDetails: true,\n accessibilityDisabled: true,\n accessibilityErrorMessage: true,\n accessibilityExpanded: true,\n accessibilityFlowTo: true,\n accessibilityHasPopup: true,\n accessibilityHidden: true,\n accessibilityInvalid: true,\n accessibilityKeyShortcuts: true,\n accessibilityLabel: true,\n accessibilityLabelledBy: true,\n accessibilityLevel: true,\n accessibilityLiveRegion: true,\n accessibilityModal: true,\n accessibilityMultiline: true,\n accessibilityMultiSelectable: true,\n accessibilityOrientation: true,\n accessibilityOwns: true,\n accessibilityPlaceholder: true,\n accessibilityPosInSet: true,\n accessibilityPressed: true,\n accessibilityReadOnly: true,\n accessibilityRequired: true,\n accessibilityRole: true,\n accessibilityRoleDescription: true,\n accessibilityRowCount: true,\n accessibilityRowIndex: true,\n accessibilityRowSpan: true,\n accessibilitySelected: true,\n accessibilitySetSize: true,\n accessibilitySort: true,\n accessibilityValueMax: true,\n accessibilityValueMin: true,\n accessibilityValueNow: true,\n accessibilityValueText: true,\n dir: true,\n focusable: true,\n // Deprecated\n accessible: true,\n accessibilityState: true,\n accessibilityValue: true\n};\nexport var clickProps = {\n onClick: true,\n onClickCapture: true,\n onContextMenu: true\n};\nexport var focusProps = {\n onBlur: true,\n onFocus: true\n};\nexport var keyboardProps = {\n onKeyDown: true,\n onKeyDownCapture: true,\n onKeyUp: true,\n onKeyUpCapture: true\n};\nexport var mouseProps = {\n onMouseDown: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseMove: true,\n onMouseOver: true,\n onMouseOut: true,\n onMouseUp: true\n};\nexport var touchProps = {\n onTouchCancel: true,\n onTouchCancelCapture: true,\n onTouchEnd: true,\n onTouchEndCapture: true,\n onTouchMove: true,\n onTouchMoveCapture: true,\n onTouchStart: true,\n onTouchStartCapture: true\n};\nexport var styleProps = {\n classList: true,\n style: true\n};","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nexport default function pick(obj, list) {\n var nextObj = {};\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (list[key] === true || // Temporary until ARIA is mapped to explicit props\n key.indexOf('aria-') === 0) {\n nextObj[key] = obj[key];\n }\n }\n }\n\n return nextObj;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * useLayoutEffect throws an error on the server. On the few occasions where is\n * problematic, use this hook.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport { useEffect, useLayoutEffect } from 'react';\nvar useLayoutEffectImpl = canUseDOM ? useLayoutEffect : useEffect;\nexport default useLayoutEffectImpl;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport useLayoutEffect from '../useLayoutEffect';\nimport UIManager from '../../exports/UIManager';\nvar DOM_LAYOUT_HANDLER_NAME = '__reactLayoutHandler';\nvar didWarn = !canUseDOM;\nvar resizeObserver = null;\n\nfunction getResizeObserver() {\n if (canUseDOM && typeof window.ResizeObserver !== 'undefined') {\n if (resizeObserver == null) {\n resizeObserver = new window.ResizeObserver(function (entries) {\n entries.forEach(function (entry) {\n var node = entry.target;\n var onLayout = node[DOM_LAYOUT_HANDLER_NAME];\n\n if (typeof onLayout === 'function') {\n // We still need to measure the view because browsers don't yet provide\n // border-box dimensions in the entry\n UIManager.measure(node, function (x, y, width, height, left, top) {\n var event = {\n // $FlowFixMe\n nativeEvent: {\n layout: {\n x: x,\n y: y,\n width: width,\n height: height,\n left: left,\n top: top\n }\n },\n timeStamp: Date.now()\n };\n Object.defineProperty(event.nativeEvent, 'target', {\n enumerable: true,\n get: function get() {\n return entry.target;\n }\n });\n onLayout(event);\n });\n }\n });\n });\n }\n } else if (!didWarn) {\n if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {\n console.warn('onLayout relies on ResizeObserver which is not supported by your browser. ' + 'Please include a polyfill, e.g., https://github.com/que-etc/resize-observer-polyfill.');\n didWarn = true;\n }\n }\n\n return resizeObserver;\n}\n\nexport default function useElementLayout(ref, onLayout) {\n var observer = getResizeObserver();\n useLayoutEffect(function () {\n var node = ref.current;\n\n if (node != null) {\n node[DOM_LAYOUT_HANDLER_NAME] = onLayout;\n }\n }, [ref, onLayout]); // Observing is done in a separate effect to avoid this effect running\n // when 'onLayout' changes.\n\n useLayoutEffect(function () {\n var node = ref.current;\n\n if (node != null && observer != null) {\n if (typeof node[DOM_LAYOUT_HANDLER_NAME] === 'function') {\n observer.observe(node);\n } else {\n observer.unobserve(node);\n }\n }\n\n return function () {\n if (node != null && observer != null) {\n observer.unobserve(node);\n }\n };\n }, [ref, observer]);\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport mergeRefs from '../mergeRefs';\nexport default function useMergeRefs() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return React.useMemo(function () {\n return mergeRefs.apply(void 0, args);\n }, // eslint-disable-next-line\n [].concat(args));\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\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}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/**\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\nimport UIManager from '../../exports/UIManager';\nimport createDOMProps from '../createDOMProps';\nimport useStable from '../useStable';\nimport { useRef } from 'react';\nvar emptyObject = {};\n\nfunction setNativeProps(node, nativeProps, classList, pointerEvents, style, previousStyleRef) {\n if (node != null && nativeProps) {\n var domProps = createDOMProps(null, _objectSpread(_objectSpread({\n pointerEvents: pointerEvents\n }, nativeProps), {}, {\n classList: [classList, nativeProps.className],\n style: [style, nativeProps.style]\n }));\n var nextDomStyle = domProps.style;\n\n if (previousStyleRef.current != null) {\n if (domProps.style == null) {\n domProps.style = {};\n }\n\n for (var styleName in previousStyleRef.current) {\n if (domProps.style[styleName] == null) {\n domProps.style[styleName] = '';\n }\n }\n }\n\n previousStyleRef.current = nextDomStyle;\n UIManager.updateView(node, domProps);\n }\n}\n/**\n * Adds non-standard methods to the hode element. This is temporarily until an\n * API like `ReactNative.measure(hostRef, callback)` is added to React Native.\n */\n\n\nexport default function usePlatformMethods(_ref) {\n var classList = _ref.classList,\n pointerEvents = _ref.pointerEvents,\n style = _ref.style;\n var previousStyleRef = useRef(null);\n var setNativePropsArgsRef = useRef(null);\n setNativePropsArgsRef.current = {\n classList: classList,\n pointerEvents: pointerEvents,\n style: style\n }; // Avoid creating a new ref on every render. The props only need to be\n // available to 'setNativeProps' when it is called.\n\n var ref = useStable(function () {\n return function (hostNode) {\n if (hostNode != null) {\n hostNode.measure = function (callback) {\n return UIManager.measure(hostNode, callback);\n };\n\n hostNode.measureLayout = function (relativeToNode, success, failure) {\n return UIManager.measureLayout(hostNode, relativeToNode, failure, success);\n };\n\n hostNode.measureInWindow = function (callback) {\n return UIManager.measureInWindow(hostNode, callback);\n };\n\n hostNode.setNativeProps = function (nativeProps) {\n var _ref2 = setNativePropsArgsRef.current || emptyObject,\n classList = _ref2.classList,\n style = _ref2.style,\n pointerEvents = _ref2.pointerEvents;\n\n setNativeProps(hostNode, nativeProps, classList, pointerEvents, style, previousStyleRef);\n };\n }\n };\n });\n return ref;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nexport var BLUR = 'blur';\nexport var CONTEXT_MENU = 'contextmenu';\nexport var FOCUS_OUT = 'focusout';\nexport var MOUSE_DOWN = 'mousedown';\nexport var MOUSE_MOVE = 'mousemove';\nexport var MOUSE_UP = 'mouseup';\nexport var MOUSE_CANCEL = 'dragstart';\nexport var TOUCH_START = 'touchstart';\nexport var TOUCH_MOVE = 'touchmove';\nexport var TOUCH_END = 'touchend';\nexport var TOUCH_CANCEL = 'touchcancel';\nexport var SCROLL = 'scroll';\nexport var SELECT = 'select';\nexport var SELECTION_CHANGE = 'selectionchange';\nexport function isStartish(eventType) {\n return eventType === TOUCH_START || eventType === MOUSE_DOWN;\n}\nexport function isMoveish(eventType) {\n return eventType === TOUCH_MOVE || eventType === MOUSE_MOVE;\n}\nexport function isEndish(eventType) {\n return eventType === TOUCH_END || eventType === MOUSE_UP || isCancelish(eventType);\n}\nexport function isCancelish(eventType) {\n return eventType === TOUCH_CANCEL || eventType === MOUSE_CANCEL;\n}\nexport function isScroll(eventType) {\n return eventType === SCROLL;\n}\nexport function isSelectionChange(eventType) {\n return eventType === SELECT || eventType === SELECTION_CHANGE;\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { isStartish, isMoveish, isEndish } from './ResponderEventTypes';\n/**\n * Tracks the position and time of each active touch by `touch.identifier`. We\n * should typically only see IDs in the range of 1-20 because IDs get recycled\n * when touches end and start again.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar MAX_TOUCH_BANK = 20;\nvar touchBank = [];\nvar touchHistory = {\n touchBank: touchBank,\n numberActiveTouches: 0,\n // If there is only one active touch, we remember its location. This prevents\n // us having to loop through all of the touches all the time in the most\n // common case.\n indexOfSingleActiveTouch: -1,\n mostRecentTimeStamp: 0\n};\n\nfunction timestampForTouch(touch) {\n // The legacy internal implementation provides \"timeStamp\", which has been\n // renamed to \"timestamp\".\n return touch.timeStamp || touch.timestamp;\n}\n/**\n * TODO: Instead of making gestures recompute filtered velocity, we could\n * include a built in velocity computation that can be reused globally.\n */\n\n\nfunction createTouchRecord(touch) {\n return {\n touchActive: true,\n startPageX: touch.pageX,\n startPageY: touch.pageY,\n startTimeStamp: timestampForTouch(touch),\n currentPageX: touch.pageX,\n currentPageY: touch.pageY,\n currentTimeStamp: timestampForTouch(touch),\n previousPageX: touch.pageX,\n previousPageY: touch.pageY,\n previousTimeStamp: timestampForTouch(touch)\n };\n}\n\nfunction resetTouchRecord(touchRecord, touch) {\n touchRecord.touchActive = true;\n touchRecord.startPageX = touch.pageX;\n touchRecord.startPageY = touch.pageY;\n touchRecord.startTimeStamp = timestampForTouch(touch);\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchRecord.previousPageX = touch.pageX;\n touchRecord.previousPageY = touch.pageY;\n touchRecord.previousTimeStamp = timestampForTouch(touch);\n}\n\nfunction getTouchIdentifier(_ref) {\n var identifier = _ref.identifier;\n\n if (identifier == null) {\n console.error('Touch object is missing identifier.');\n }\n\n if (__DEV__) {\n if (identifier > MAX_TOUCH_BANK) {\n console.error('Touch identifier %s is greater than maximum supported %s which causes ' + 'performance issues backfilling array locations for all of the indices.', identifier, MAX_TOUCH_BANK);\n }\n }\n\n return identifier;\n}\n\nfunction recordTouchStart(touch) {\n var identifier = getTouchIdentifier(touch);\n var touchRecord = touchBank[identifier];\n\n if (touchRecord) {\n resetTouchRecord(touchRecord, touch);\n } else {\n touchBank[identifier] = createTouchRecord(touch);\n }\n\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\n\nfunction recordTouchMove(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n\n if (touchRecord) {\n touchRecord.touchActive = true;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn('Cannot record touch move without a touch start.\\n', \"Touch Move: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank());\n }\n}\n\nfunction recordTouchEnd(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n\n if (touchRecord) {\n touchRecord.touchActive = false;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn('Cannot record touch end without a touch start.\\n', \"Touch End: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank());\n }\n}\n\nfunction printTouch(touch) {\n return JSON.stringify({\n identifier: touch.identifier,\n pageX: touch.pageX,\n pageY: touch.pageY,\n timestamp: timestampForTouch(touch)\n });\n}\n\nfunction printTouchBank() {\n var printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));\n\n if (touchBank.length > MAX_TOUCH_BANK) {\n printed += ' (original size: ' + touchBank.length + ')';\n }\n\n return printed;\n}\n\nvar ResponderTouchHistoryStore = {\n recordTouchTrack: function recordTouchTrack(topLevelType, nativeEvent) {\n if (isMoveish(topLevelType)) {\n nativeEvent.changedTouches.forEach(recordTouchMove);\n } else if (isStartish(topLevelType)) {\n nativeEvent.changedTouches.forEach(recordTouchStart);\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n\n if (touchHistory.numberActiveTouches === 1) {\n touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;\n }\n } else if (isEndish(topLevelType)) {\n nativeEvent.changedTouches.forEach(recordTouchEnd);\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n\n if (touchHistory.numberActiveTouches === 1) {\n for (var i = 0; i < touchBank.length; i++) {\n var touchTrackToCheck = touchBank[i];\n\n if (touchTrackToCheck != null && touchTrackToCheck.touchActive) {\n touchHistory.indexOfSingleActiveTouch = i;\n break;\n }\n }\n\n if (__DEV__) {\n var activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];\n\n if (!(activeRecord != null && activeRecord.touchActive)) {\n console.error('Cannot find single active touch.');\n }\n }\n }\n }\n },\n touchHistory: touchHistory\n};\nexport default ResponderTouchHistoryStore;","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nimport ResponderTouchHistoryStore from './ResponderTouchHistoryStore';\n\nvar emptyFunction = function emptyFunction() {};\n\nvar emptyObject = {};\nvar emptyArray = [];\n/**\n * Safari produces very large identifiers that would cause the `touchBank` array\n * length to be so large as to crash the browser, if not normalized like this.\n * In the future the `touchBank` should use an object/map instead.\n */\n\nfunction normalizeIdentifier(identifier) {\n return identifier > 20 ? identifier % 20 : identifier;\n}\n/**\n * Converts a native DOM event to a ResponderEvent.\n * Mouse events are transformed into fake touch events.\n */\n\n\nexport default function createResponderEvent(domEvent) {\n var rect;\n var propagationWasStopped = false;\n var changedTouches;\n var touches;\n var domEventChangedTouches = domEvent.changedTouches;\n var domEventType = domEvent.type;\n var metaKey = domEvent.metaKey === true;\n var shiftKey = domEvent.shiftKey === true;\n var force = domEventChangedTouches && domEventChangedTouches[0].force || 0;\n var identifier = normalizeIdentifier(domEventChangedTouches && domEventChangedTouches[0].identifier || 0);\n var clientX = domEventChangedTouches && domEventChangedTouches[0].clientX || domEvent.clientX;\n var clientY = domEventChangedTouches && domEventChangedTouches[0].clientY || domEvent.clientY;\n var pageX = domEventChangedTouches && domEventChangedTouches[0].pageX || domEvent.pageX;\n var pageY = domEventChangedTouches && domEventChangedTouches[0].pageY || domEvent.pageY;\n var preventDefault = typeof domEvent.preventDefault === 'function' ? domEvent.preventDefault.bind(domEvent) : emptyFunction;\n var timestamp = domEvent.timeStamp;\n\n function normalizeTouches(touches) {\n return Array.prototype.slice.call(touches).map(function (touch) {\n return {\n force: touch.force,\n identifier: normalizeIdentifier(touch.identifier),\n\n get locationX() {\n return locationX(touch.clientX);\n },\n\n get locationY() {\n return locationY(touch.clientY);\n },\n\n pageX: touch.pageX,\n pageY: touch.pageY,\n target: touch.target,\n timestamp: timestamp\n };\n });\n }\n\n if (domEventChangedTouches != null) {\n changedTouches = normalizeTouches(domEventChangedTouches);\n touches = normalizeTouches(domEvent.touches);\n } else {\n var emulatedTouches = [{\n force: force,\n identifier: identifier,\n\n get locationX() {\n return locationX(clientX);\n },\n\n get locationY() {\n return locationY(clientY);\n },\n\n pageX: pageX,\n pageY: pageY,\n target: domEvent.target,\n timestamp: timestamp\n }];\n changedTouches = emulatedTouches;\n touches = domEventType === 'mouseup' || domEventType === 'dragstart' ? emptyArray : emulatedTouches;\n }\n\n var responderEvent = {\n bubbles: true,\n cancelable: true,\n // `currentTarget` is set before dispatch\n currentTarget: null,\n defaultPrevented: domEvent.defaultPrevented,\n dispatchConfig: emptyObject,\n eventPhase: domEvent.eventPhase,\n isDefaultPrevented: function isDefaultPrevented() {\n return domEvent.defaultPrevented;\n },\n isPropagationStopped: function isPropagationStopped() {\n return propagationWasStopped;\n },\n isTrusted: domEvent.isTrusted,\n nativeEvent: {\n altKey: false,\n ctrlKey: false,\n metaKey: metaKey,\n shiftKey: shiftKey,\n changedTouches: changedTouches,\n force: force,\n identifier: identifier,\n\n get locationX() {\n return locationX(clientX);\n },\n\n get locationY() {\n return locationY(clientY);\n },\n\n pageX: pageX,\n pageY: pageY,\n target: domEvent.target,\n timestamp: timestamp,\n touches: touches,\n type: domEventType\n },\n persist: emptyFunction,\n preventDefault: preventDefault,\n stopPropagation: function stopPropagation() {\n propagationWasStopped = true;\n },\n target: domEvent.target,\n timeStamp: timestamp,\n touchHistory: ResponderTouchHistoryStore.touchHistory\n }; // Using getters and functions serves two purposes:\n // 1) The value of `currentTarget` is not initially available.\n // 2) Measuring the clientRect may cause layout jank and should only be done on-demand.\n\n function locationX(x) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n\n if (rect) {\n return x - rect.left;\n }\n }\n\n function locationY(y) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n\n if (rect) {\n return y - rect.top;\n }\n }\n\n return responderEvent;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport isSelectionValid from '../../modules/isSelectionValid';\nvar keyName = '__reactResponderId';\n\nfunction getEventPath(domEvent) {\n // The 'selectionchange' event always has the 'document' as the target.\n // Use the anchor node as the initial target to reconstruct a path.\n // (We actually only need the first \"responder\" node in practice.)\n if (domEvent.type === 'selectionchange') {\n var target = window.getSelection().anchorNode;\n return composedPathFallback(target);\n } else {\n var path = domEvent.composedPath != null ? domEvent.composedPath() : composedPathFallback(domEvent.target);\n return path;\n }\n}\n\nfunction composedPathFallback(target) {\n var path = [];\n\n while (target != null && target !== document.body) {\n path.push(target);\n target = target.parentNode;\n }\n\n return path;\n}\n/**\n * Retrieve the responderId from a host node\n */\n\n\nfunction getResponderId(node) {\n if (node != null) {\n return node[keyName];\n }\n\n return null;\n}\n/**\n * Store the responderId on a host node\n */\n\n\nexport function setResponderId(node, id) {\n if (node != null) {\n node[keyName] = id;\n }\n}\n/**\n * Filter the event path to contain only the nodes attached to the responder system\n */\n\nexport function getResponderPaths(domEvent) {\n var idPath = [];\n var nodePath = [];\n var eventPath = getEventPath(domEvent);\n\n for (var i = 0; i < eventPath.length; i++) {\n var node = eventPath[i];\n var id = getResponderId(node);\n\n if (id != null) {\n idPath.push(id);\n nodePath.push(node);\n }\n }\n\n return {\n idPath: idPath,\n nodePath: nodePath\n };\n}\n/**\n * Walk the paths and find the first common ancestor\n */\n\nexport function getLowestCommonAncestor(pathA, pathB) {\n var pathALength = pathA.length;\n var pathBLength = pathB.length;\n\n if ( // If either path is empty\n pathALength === 0 || pathBLength === 0 || // If the last elements aren't the same there can't be a common ancestor\n // that is connected to the responder system\n pathA[pathALength - 1] !== pathB[pathBLength - 1]) {\n return null;\n }\n\n var itemA = pathA[0];\n var indexA = 0;\n var itemB = pathB[0];\n var indexB = 0; // If A is deeper, skip indices that can't match.\n\n if (pathALength - pathBLength > 0) {\n indexA = pathALength - pathBLength;\n itemA = pathA[indexA];\n pathALength = pathBLength;\n } // If B is deeper, skip indices that can't match\n\n\n if (pathBLength - pathALength > 0) {\n indexB = pathBLength - pathALength;\n itemB = pathB[indexB];\n pathBLength = pathALength;\n } // Walk in lockstep until a match is found\n\n\n var depth = pathALength;\n\n while (depth--) {\n if (itemA === itemB) {\n return itemA;\n }\n\n itemA = pathA[indexA++];\n itemB = pathB[indexB++];\n }\n\n return null;\n}\n/**\n * Determine whether any of the active touches are within the current responder.\n * This cannot rely on W3C `targetTouches`, as neither IE11 nor Safari implement it.\n */\n\nexport function hasTargetTouches(target, touches) {\n if (!touches || touches.length === 0) {\n return false;\n }\n\n for (var i = 0; i < touches.length; i++) {\n var node = touches[i].target;\n\n if (node != null) {\n if (target.contains(node)) {\n return true;\n }\n }\n }\n\n return false;\n}\n/**\n * Ignore 'selectionchange' events that don't correspond with a person's intent to\n * select text.\n */\n\nexport function hasValidSelection(domEvent) {\n if (domEvent.type === 'selectionchange') {\n return isSelectionValid();\n }\n\n return domEvent.type === 'select';\n}\n/**\n * Events are only valid if the primary button was used without specific modifier keys.\n */\n\nexport function isPrimaryPointerDown(domEvent) {\n var altKey = domEvent.altKey,\n button = domEvent.button,\n buttons = domEvent.buttons,\n ctrlKey = domEvent.ctrlKey,\n type = domEvent.type;\n var isTouch = type === 'touchstart' || type === 'touchmove';\n var isPrimaryMouseDown = type === 'mousedown' && (button === 0 || buttons === 1);\n var isPrimaryMouseMove = type === 'mousemove' && buttons === 1;\n var noModifiers = altKey === false && ctrlKey === false;\n\n if (isTouch || isPrimaryMouseDown && noModifiers || isPrimaryMouseMove && noModifiers) {\n return true;\n }\n\n return false;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nexport default function isSelectionValid() {\n var selection = window.getSelection();\n var string = selection.toString();\n var anchorNode = selection.anchorNode;\n var focusNode = selection.focusNode;\n var isTextNode = anchorNode && anchorNode.nodeType === window.Node.TEXT_NODE || focusNode && focusNode.nodeType === window.Node.TEXT_NODE;\n return string.length >= 1 && string !== '\\n' && isTextNode;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * RESPONDER EVENT SYSTEM\n *\n * A single, global \"interaction lock\" on views. For a view to be the \"responder\" means\n * that pointer interactions are exclusive to that view and none other. The \"interaction\n * lock\" can be transferred (only) to ancestors of the current \"responder\" as long as\n * pointers continue to be active.\n *\n * Responder being granted:\n *\n * A view can become the \"responder\" after the following events:\n * * \"pointerdown\" (implemented using \"touchstart\", \"mousedown\")\n * * \"pointermove\" (implemented using \"touchmove\", \"mousemove\")\n * * \"scroll\" (while a pointer is down)\n * * \"selectionchange\" (while a pointer is down)\n *\n * If nothing is already the \"responder\", the event propagates to (capture) and from\n * (bubble) the event target until a view returns `true` for\n * `on*ShouldSetResponder(Capture)`.\n *\n * If something is already the responder, the event propagates to (capture) and from\n * (bubble) the lowest common ancestor of the event target and the current \"responder\".\n * Then negotiation happens between the current \"responder\" and a view that wants to\n * become the \"responder\": see the timing diagram below.\n *\n * (NOTE: Scrolled views either automatically become the \"responder\" or release the\n * \"interaction lock\". A native scroll view that isn't built on top of the responder\n * system must result in the current \"responder\" being notified that it no longer has\n * the \"interaction lock\" - the native system has taken over.\n *\n * Responder being released:\n *\n * As soon as there are no more active pointers that *started* inside descendants\n * of the *current* \"responder\", an `onResponderRelease` event is dispatched to the\n * current \"responder\", and the responder lock is released.\n *\n * Typical sequence of events:\n * * startShouldSetResponder\n * * responderGrant/Reject\n * * responderStart\n * * responderMove\n * * responderEnd\n * * responderRelease\n */\n\n/* Negotiation Performed\n +-----------------------+\n / \\\nProcess low level events to + Current Responder + wantsResponderID\ndetermine who to perform negot-| (if any exists at all) |\niation/transition | Otherwise just pass through|\n-------------------------------+----------------------------+------------------+\nBubble to find first ID | |\nto return true:wantsResponderID| |\n | |\n +--------------+ | |\n | onTouchStart | | |\n +------+-------+ none | |\n | return| |\n+-----------v-------------+true| +------------------------+ |\n|onStartShouldSetResponder|----->| onResponderStart (cur) |<-----------+\n+-----------+-------------+ | +------------------------+ | |\n | | | +--------+-------+\n | returned true for| false:REJECT +-------->|onResponderReject\n | wantsResponderID | | | +----------------+\n | (now attempt | +------------------+-----+ |\n | handoff) | | onResponder | |\n +------------------->| TerminationRequest | |\n | +------------------+-----+ |\n | | | +----------------+\n | true:GRANT +-------->|onResponderGrant|\n | | +--------+-------+\n | +------------------------+ | |\n | | onResponderTerminate |<-----------+\n | +------------------+-----+ |\n | | | +----------------+\n | +-------->|onResponderStart|\n | | +----------------+\nBubble to find first ID | |\nto return true:wantsResponderID| |\n | |\n +-------------+ | |\n | onTouchMove | | |\n +------+------+ none | |\n | return| |\n+-----------v-------------+true| +------------------------+ |\n|onMoveShouldSetResponder |----->| onResponderMove (cur) |<-----------+\n+-----------+-------------+ | +------------------------+ | |\n | | | +--------+-------+\n | returned true for| false:REJECT +-------->|onResponderReject\n | wantsResponderID | | | +----------------+\n | (now attempt | +------------------+-----+ |\n | handoff) | | onResponder | |\n +------------------->| TerminationRequest| |\n | +------------------+-----+ |\n | | | +----------------+\n | true:GRANT +-------->|onResponderGrant|\n | | +--------+-------+\n | +------------------------+ | |\n | | onResponderTerminate |<-----------+\n | +------------------+-----+ |\n | | | +----------------+\n | +-------->|onResponderMove |\n | | +----------------+\n | |\n | |\n Some active touch started| |\n inside current responder | +------------------------+ |\n +------------------------->| onResponderEnd | |\n | | +------------------------+ |\n +---+---------+ | |\n | onTouchEnd | | |\n +---+---------+ | |\n | | +------------------------+ |\n +------------------------->| onResponderEnd | |\n No active touches started| +-----------+------------+ |\n inside current responder | | |\n | v |\n | +------------------------+ |\n | | onResponderRelease | |\n | +------------------------+ |\n | |\n + + */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport createResponderEvent from './createResponderEvent';\nimport { isCancelish, isEndish, isMoveish, isScroll, isSelectionChange, isStartish } from './ResponderEventTypes';\nimport { getLowestCommonAncestor, getResponderPaths, hasTargetTouches, hasValidSelection, isPrimaryPointerDown, setResponderId } from './utils';\nimport ResponderTouchHistoryStore from './ResponderTouchHistoryStore';\n/* ------------ TYPES ------------ */\n\nvar emptyObject = {};\n/* ------------ IMPLEMENTATION ------------ */\n\nvar startRegistration = ['onStartShouldSetResponderCapture', 'onStartShouldSetResponder', {\n bubbles: true\n}];\nvar moveRegistration = ['onMoveShouldSetResponderCapture', 'onMoveShouldSetResponder', {\n bubbles: true\n}];\nvar scrollRegistration = ['onScrollShouldSetResponderCapture', 'onScrollShouldSetResponder', {\n bubbles: false\n}];\nvar shouldSetResponderEvents = {\n touchstart: startRegistration,\n mousedown: startRegistration,\n touchmove: moveRegistration,\n mousemove: moveRegistration,\n scroll: scrollRegistration\n};\nvar emptyResponder = {\n id: null,\n idPath: null,\n node: null\n};\nvar responderListenersMap = new Map();\nvar isEmulatingMouseEvents = false;\nvar trackedTouchCount = 0;\nvar currentResponder = {\n id: null,\n node: null,\n idPath: null\n};\n\nfunction changeCurrentResponder(responder) {\n currentResponder = responder;\n}\n\nfunction getResponderConfig(id) {\n var config = responderListenersMap.get(id);\n return config != null ? config : emptyObject;\n}\n/**\n * Process native events\n *\n * A single event listener is used to manage the responder system.\n * All pointers are tracked in the ResponderTouchHistoryStore. Native events\n * are interpreted in terms of the Responder System and checked to see if\n * the responder should be transferred. Each host node that is attached to\n * the Responder System has an ID, which is used to look up its associated\n * callbacks.\n */\n\n\nfunction eventListener(domEvent) {\n var eventType = domEvent.type;\n var eventTarget = domEvent.target;\n /**\n * Manage emulated events and early bailout.\n * Since PointerEvent is not used yet (lack of support in older Safari), it's\n * necessary to manually manage the mess of browser touch/mouse events.\n * And bailout early for termination events when there is no active responder.\n */\n // Flag when browser may produce emulated events\n\n if (eventType === 'touchstart') {\n isEmulatingMouseEvents = true;\n } // Remove flag when browser will not produce emulated events\n\n\n if (eventType === 'touchmove' || trackedTouchCount > 1) {\n isEmulatingMouseEvents = false;\n } // Ignore various events in particular circumstances\n\n\n if ( // Ignore browser emulated mouse events\n eventType === 'mousedown' && isEmulatingMouseEvents || eventType === 'mousemove' && isEmulatingMouseEvents || // Ignore mousemove if a mousedown didn't occur first\n eventType === 'mousemove' && trackedTouchCount < 1) {\n return;\n } // Remove flag after emulated events are finished\n\n\n if (isEmulatingMouseEvents && eventType === 'mouseup') {\n if (trackedTouchCount === 0) {\n isEmulatingMouseEvents = false;\n }\n\n return;\n }\n\n var isStartEvent = isStartish(eventType) && isPrimaryPointerDown(domEvent);\n var isMoveEvent = isMoveish(eventType);\n var isEndEvent = isEndish(eventType);\n var isScrollEvent = isScroll(eventType);\n var isSelectionChangeEvent = isSelectionChange(eventType);\n var responderEvent = createResponderEvent(domEvent);\n /**\n * Record the state of active pointers\n */\n\n if (isStartEvent || isMoveEvent || isEndEvent) {\n if (domEvent.touches) {\n trackedTouchCount = domEvent.touches.length;\n } else {\n if (isStartEvent) {\n trackedTouchCount = 1;\n } else if (isEndEvent) {\n trackedTouchCount = 0;\n }\n }\n\n ResponderTouchHistoryStore.recordTouchTrack(eventType, responderEvent.nativeEvent);\n }\n /**\n * Responder System logic\n */\n\n\n var eventPaths = getResponderPaths(domEvent);\n var wasNegotiated = false;\n var wantsResponder; // If an event occured that might change the current responder...\n\n if (isStartEvent || isMoveEvent || isScrollEvent && trackedTouchCount > 0) {\n // If there is already a responder, prune the event paths to the lowest common ancestor\n // of the existing responder and deepest target of the event.\n var currentResponderIdPath = currentResponder.idPath;\n var eventIdPath = eventPaths.idPath;\n\n if (currentResponderIdPath != null && eventIdPath != null) {\n var lowestCommonAncestor = getLowestCommonAncestor(currentResponderIdPath, eventIdPath);\n\n if (lowestCommonAncestor != null) {\n var indexOfLowestCommonAncestor = eventIdPath.indexOf(lowestCommonAncestor); // Skip the current responder so it doesn't receive unexpected \"shouldSet\" events.\n\n var index = indexOfLowestCommonAncestor + (lowestCommonAncestor === currentResponder.id ? 1 : 0);\n eventPaths = {\n idPath: eventIdPath.slice(index),\n nodePath: eventPaths.nodePath.slice(index)\n };\n } else {\n eventPaths = null;\n }\n }\n\n if (eventPaths != null) {\n // If a node wants to become the responder, attempt to transfer.\n wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent);\n\n if (wantsResponder != null) {\n // Sets responder if none exists, or negotates with existing responder.\n attemptTransfer(responderEvent, wantsResponder);\n wasNegotiated = true;\n }\n }\n } // If there is now a responder, invoke its callbacks for the lifecycle of the gesture.\n\n\n if (currentResponder.id != null && currentResponder.node != null) {\n var _currentResponder = currentResponder,\n id = _currentResponder.id,\n node = _currentResponder.node;\n\n var _getResponderConfig = getResponderConfig(id),\n onResponderStart = _getResponderConfig.onResponderStart,\n onResponderMove = _getResponderConfig.onResponderMove,\n onResponderEnd = _getResponderConfig.onResponderEnd,\n onResponderRelease = _getResponderConfig.onResponderRelease,\n onResponderTerminate = _getResponderConfig.onResponderTerminate,\n onResponderTerminationRequest = _getResponderConfig.onResponderTerminationRequest;\n\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node; // Start\n\n if (isStartEvent) {\n if (onResponderStart != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderStart';\n onResponderStart(responderEvent);\n }\n } // Move\n else if (isMoveEvent) {\n if (onResponderMove != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderMove';\n onResponderMove(responderEvent);\n }\n } else {\n var isTerminateEvent = isCancelish(eventType) || // native context menu\n eventType === 'contextmenu' || // window blur\n eventType === 'blur' && eventTarget === window || // responder (or ancestors) blur\n eventType === 'blur' && eventTarget.contains(node) && domEvent.relatedTarget !== node || // native scroll without using a pointer\n isScrollEvent && trackedTouchCount === 0 || // native scroll on node that is parent of the responder (allow siblings to scroll)\n isScrollEvent && eventTarget.contains(node) && eventTarget !== node || // native select/selectionchange on node\n isSelectionChangeEvent && hasValidSelection(domEvent);\n var isReleaseEvent = isEndEvent && !isTerminateEvent && !hasTargetTouches(node, domEvent.touches); // End\n\n if (isEndEvent) {\n if (onResponderEnd != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderEnd';\n onResponderEnd(responderEvent);\n }\n } // Release\n\n\n if (isReleaseEvent) {\n if (onResponderRelease != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderRelease';\n onResponderRelease(responderEvent);\n }\n\n changeCurrentResponder(emptyResponder);\n } // Terminate\n\n\n if (isTerminateEvent) {\n var shouldTerminate = true; // Responders can still avoid termination but only for these events.\n\n if (eventType === 'contextmenu' || eventType === 'scroll' || eventType === 'selectionchange') {\n // Only call this function is it wasn't already called during negotiation.\n if (wasNegotiated) {\n shouldTerminate = false;\n } else if (onResponderTerminationRequest != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n\n if (onResponderTerminationRequest(responderEvent) === false) {\n shouldTerminate = false;\n }\n }\n }\n\n if (shouldTerminate) {\n if (onResponderTerminate != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n onResponderTerminate(responderEvent);\n }\n\n changeCurrentResponder(emptyResponder);\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n }\n }\n }\n }\n}\n/**\n * Walk the event path to/from the target node. At each node, stop and call the\n * relevant \"shouldSet\" functions for the given event type. If any of those functions\n * call \"stopPropagation\" on the event, stop searching for a responder.\n */\n\n\nfunction findWantsResponder(eventPaths, domEvent, responderEvent) {\n var shouldSetCallbacks = shouldSetResponderEvents[domEvent.type]; // for Flow\n\n if (shouldSetCallbacks != null) {\n var idPath = eventPaths.idPath,\n nodePath = eventPaths.nodePath;\n var shouldSetCallbackCaptureName = shouldSetCallbacks[0];\n var shouldSetCallbackBubbleName = shouldSetCallbacks[1];\n var bubbles = shouldSetCallbacks[2].bubbles;\n\n var check = function check(id, node, callbackName) {\n var config = getResponderConfig(id);\n var shouldSetCallback = config[callbackName];\n\n if (shouldSetCallback != null) {\n responderEvent.currentTarget = node;\n\n if (shouldSetCallback(responderEvent) === true) {\n // Start the path from the potential responder\n var prunedIdPath = idPath.slice(idPath.indexOf(id));\n return {\n id: id,\n node: node,\n idPath: prunedIdPath\n };\n }\n }\n }; // capture\n\n\n for (var i = idPath.length - 1; i >= 0; i--) {\n var id = idPath[i];\n var node = nodePath[i];\n var result = check(id, node, shouldSetCallbackCaptureName);\n\n if (result != null) {\n return result;\n }\n\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n } // bubble\n\n\n if (bubbles) {\n for (var _i = 0; _i < idPath.length; _i++) {\n var _id = idPath[_i];\n var _node = nodePath[_i];\n\n var _result = check(_id, _node, shouldSetCallbackBubbleName);\n\n if (_result != null) {\n return _result;\n }\n\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n }\n } else {\n var _id2 = idPath[0];\n var _node2 = nodePath[0];\n var target = domEvent.target;\n\n if (target === _node2) {\n return check(_id2, _node2, shouldSetCallbackBubbleName);\n }\n }\n }\n}\n/**\n * Attempt to transfer the responder.\n */\n\n\nfunction attemptTransfer(responderEvent, wantsResponder) {\n var _currentResponder2 = currentResponder,\n currentId = _currentResponder2.id,\n currentNode = _currentResponder2.node;\n var id = wantsResponder.id,\n node = wantsResponder.node;\n\n var _getResponderConfig2 = getResponderConfig(id),\n onResponderGrant = _getResponderConfig2.onResponderGrant,\n onResponderReject = _getResponderConfig2.onResponderReject;\n\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node; // Set responder\n\n if (currentId == null) {\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\n }\n\n changeCurrentResponder(wantsResponder);\n } // Negotiate with current responder\n else {\n var _getResponderConfig3 = getResponderConfig(currentId),\n onResponderTerminate = _getResponderConfig3.onResponderTerminate,\n onResponderTerminationRequest = _getResponderConfig3.onResponderTerminationRequest;\n\n var allowTransfer = true;\n\n if (onResponderTerminationRequest != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n\n if (onResponderTerminationRequest(responderEvent) === false) {\n allowTransfer = false;\n }\n }\n\n if (allowTransfer) {\n // Terminate existing responder\n if (onResponderTerminate != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n onResponderTerminate(responderEvent);\n } // Grant next responder\n\n\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\n }\n\n changeCurrentResponder(wantsResponder);\n } else {\n // Reject responder request\n if (onResponderReject != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderReject';\n onResponderReject(responderEvent);\n }\n }\n }\n}\n/* ------------ PUBLIC API ------------ */\n\n/**\n * Attach Listeners\n *\n * Use native events as ReactDOM doesn't have a non-plugin API to implement\n * this system.\n */\n\n\nvar documentEventsCapturePhase = ['blur', 'scroll'];\nvar documentEventsBubblePhase = [// mouse\n'mousedown', 'mousemove', 'mouseup', 'dragstart', // touch\n'touchstart', 'touchmove', 'touchend', 'touchcancel', // other\n'contextmenu', 'select', 'selectionchange'];\nexport function attachListeners() {\n if (canUseDOM && window.__reactResponderSystemActive == null) {\n window.addEventListener('blur', eventListener);\n documentEventsBubblePhase.forEach(function (eventType) {\n document.addEventListener(eventType, eventListener);\n });\n documentEventsCapturePhase.forEach(function (eventType) {\n document.addEventListener(eventType, eventListener, true);\n });\n window.__reactResponderSystemActive = true;\n }\n}\n/**\n * Register a node with the ResponderSystem.\n */\n\nexport function addNode(id, node, config) {\n setResponderId(node, id);\n responderListenersMap.set(id, config);\n}\n/**\n * Unregister a node with the ResponderSystem.\n */\n\nexport function removeNode(id) {\n if (currentResponder.id === id) {\n terminateResponder();\n }\n\n if (responderListenersMap.has(id)) {\n responderListenersMap.delete(id);\n }\n}\n/**\n * Allow the current responder to be terminated from within components to support\n * more complex requirements, such as use with other React libraries for working\n * with scroll views, input views, etc.\n */\n\nexport function terminateResponder() {\n var _currentResponder3 = currentResponder,\n id = _currentResponder3.id,\n node = _currentResponder3.node;\n\n if (id != null && node != null) {\n var _getResponderConfig4 = getResponderConfig(id),\n onResponderTerminate = _getResponderConfig4.onResponderTerminate;\n\n if (onResponderTerminate != null) {\n var event = createResponderEvent({});\n event.currentTarget = node;\n onResponderTerminate(event);\n }\n\n changeCurrentResponder(emptyResponder);\n }\n\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n}\n/**\n * Allow unit tests to inspect the current responder in the system.\n * FOR TESTING ONLY.\n */\n\nexport function getResponderNode() {\n return currentResponder.node;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * Hook for integrating the Responder System into React\n *\n * function SomeComponent({ onStartShouldSetResponder }) {\n * const ref = useRef(null);\n * useResponderEvents(ref, { onStartShouldSetResponder });\n * return
\n * }\n */\nimport * as React from 'react';\nimport * as ResponderSystem from './ResponderSystem';\nvar emptyObject = {};\nvar idCounter = 0;\n\nfunction useStable(getInitialValue) {\n var ref = React.useRef(null);\n\n if (ref.current == null) {\n ref.current = getInitialValue();\n }\n\n return ref.current;\n}\n\nexport default function useResponderEvents(hostRef, config) {\n if (config === void 0) {\n config = emptyObject;\n }\n\n var id = useStable(function () {\n return idCounter++;\n });\n var isAttachedRef = React.useRef(false); // This is a separate effects so it doesn't run when the config changes.\n // On initial mount, attach global listeners if needed.\n // On unmount, remove node potentially attached to the Responder System.\n\n React.useEffect(function () {\n ResponderSystem.attachListeners();\n return function () {\n ResponderSystem.removeNode(id);\n };\n }, [id]); // Register and unregister with the Responder System as necessary\n\n React.useEffect(function () {\n var _config = config,\n onMoveShouldSetResponder = _config.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = _config.onMoveShouldSetResponderCapture,\n onScrollShouldSetResponder = _config.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = _config.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = _config.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = _config.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = _config.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = _config.onStartShouldSetResponderCapture;\n var requiresResponderSystem = onMoveShouldSetResponder != null || onMoveShouldSetResponderCapture != null || onScrollShouldSetResponder != null || onScrollShouldSetResponderCapture != null || onSelectionChangeShouldSetResponder != null || onSelectionChangeShouldSetResponderCapture != null || onStartShouldSetResponder != null || onStartShouldSetResponderCapture != null;\n var node = hostRef.current;\n\n if (requiresResponderSystem) {\n ResponderSystem.addNode(id, node, config);\n isAttachedRef.current = true;\n } else if (isAttachedRef.current) {\n ResponderSystem.removeNode(id);\n isAttachedRef.current = false;\n }\n }, [config, hostRef, id]);\n React.useDebugValue({\n isResponder: hostRef.current === ResponderSystem.getResponderNode()\n });\n React.useDebugValue(config);\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code 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;","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nimport * as React from 'react';\nimport { forwardRef, useContext, useRef } from 'react';\nimport createElement from '../createElement';\nimport css from '../StyleSheet/css';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from '../Text/TextAncestorContext';\n\nvar forwardPropsList = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, forwardedProps.defaultProps), forwardedProps.accessibilityProps), forwardedProps.clickProps), forwardedProps.focusProps), forwardedProps.keyboardProps), forwardedProps.mouseProps), forwardedProps.touchProps), forwardedProps.styleProps), {}, {\n href: true,\n lang: true,\n onScroll: true,\n onWheel: true,\n pointerEvents: true\n});\n\nvar pickProps = function pickProps(props) {\n return pick(props, forwardPropsList);\n};\n\nvar View = /*#__PURE__*/forwardRef(function (props, forwardedRef) {\n var hrefAttrs = props.hrefAttrs,\n onLayout = props.onLayout,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture;\n\n if (process.env.NODE_ENV !== 'production') {\n React.Children.toArray(props.children).forEach(function (item) {\n if (typeof item === 'string') {\n console.error(\"Unexpected text node: \" + item + \". A text node cannot be a child of a .\");\n }\n });\n }\n\n var hasTextAncestor = useContext(TextAncestorContext);\n var hostRef = useRef(null);\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder: onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture: onMoveShouldSetResponderCapture,\n onResponderEnd: onResponderEnd,\n onResponderGrant: onResponderGrant,\n onResponderMove: onResponderMove,\n onResponderReject: onResponderReject,\n onResponderRelease: onResponderRelease,\n onResponderStart: onResponderStart,\n onResponderTerminate: onResponderTerminate,\n onResponderTerminationRequest: onResponderTerminationRequest,\n onScrollShouldSetResponder: onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture: onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder: onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture: onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder: onStartShouldSetResponder,\n onStartShouldSetResponderCapture: onStartShouldSetResponderCapture\n });\n var style = StyleSheet.compose(hasTextAncestor && styles.inline, props.style);\n var supportedProps = pickProps(props);\n supportedProps.classList = classList;\n supportedProps.style = style;\n\n if (props.href != null && 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 var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement('div', supportedProps);\n});\nView.displayName = 'View';\nvar classes = css.create({\n view: {\n alignItems: 'stretch',\n border: '0 solid black',\n boxSizing: 'border-box',\n display: 'flex',\n flexBasis: 'auto',\n flexDirection: 'column',\n flexShrink: 0,\n margin: 0,\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n position: 'relative',\n zIndex: 0\n }\n});\nvar classList = [classes.view];\nvar styles = StyleSheet.create({\n inline: {\n display: 'inline-flex'\n }\n});\nexport default View;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nimport InteractionManager from '../../../exports/InteractionManager';\n/**\n * A simple class for batching up invocations of a low-pri callback. A timeout is set to run the\n * callback once after a delay, no matter how many times it's scheduled. Once the delay is reached,\n * InteractionManager.runAfterInteractions is used to invoke the callback after any hi-pri\n * interactions are done running.\n *\n * Make sure to cleanup with dispose(). Example:\n *\n * class Widget extends React.Component {\n * _batchedSave: new Batchinator(() => this._saveState, 1000);\n * _saveSate() {\n * // save this.state to disk\n * }\n * componentDidUpdate() {\n * this._batchedSave.schedule();\n * }\n * componentWillUnmount() {\n * this._batchedSave.dispose();\n * }\n * ...\n * }\n */\n\nvar Batchinator = /*#__PURE__*/function () {\n function Batchinator(callback, delayMS) {\n this._delay = delayMS;\n this._callback = callback;\n }\n /*\n * Cleanup any pending tasks.\n *\n * By default, if there is a pending task the callback is run immediately. Set the option abort to\n * true to not call the callback if it was pending.\n */\n\n\n var _proto = Batchinator.prototype;\n\n _proto.dispose = function dispose(options) {\n if (options === void 0) {\n options = {\n abort: false\n };\n }\n\n if (this._taskHandle) {\n this._taskHandle.cancel();\n\n if (!options.abort) {\n this._callback();\n }\n\n this._taskHandle = null;\n }\n };\n\n _proto.schedule = function schedule() {\n var _this = this;\n\n if (this._taskHandle) {\n return;\n }\n\n var timeoutHandle = setTimeout(function () {\n _this._taskHandle = InteractionManager.runAfterInteractions(function () {\n // Note that we clear the handle before invoking the callback so that if the callback calls\n // schedule again, it will actually schedule another task.\n _this._taskHandle = null;\n\n _this._callback();\n });\n }, this._delay);\n this._taskHandle = {\n cancel: function cancel() {\n return clearTimeout(timeoutHandle);\n }\n };\n };\n\n return Batchinator;\n}();\n\nexport default Batchinator;","/**\n * Copyright (c) 2015-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 * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport performanceNow from 'fbjs/lib/performanceNow';\nimport warning from 'fbjs/lib/warning';\n\nvar Info = function Info() {\n this.any_blank_count = 0;\n this.any_blank_ms = 0;\n this.any_blank_speed_sum = 0;\n this.mostly_blank_count = 0;\n this.mostly_blank_ms = 0;\n this.pixels_blank = 0;\n this.pixels_sampled = 0;\n this.pixels_scrolled = 0;\n this.total_time_spent = 0;\n this.sample_count = 0;\n};\n\nvar DEBUG = false;\nvar _listeners = [];\nvar _minSampleCount = 10;\n\nvar _sampleRate = DEBUG ? 1 : null;\n/**\n * A helper class for detecting when the maximem fill rate of `VirtualizedList` is exceeded.\n * By default the sampling rate is set to zero and this will do nothing. If you want to collect\n * samples (e.g. to log them), make sure to call `FillRateHelper.setSampleRate(0.0-1.0)`.\n *\n * Listeners and sample rate are global for all `VirtualizedList`s - typical usage will combine with\n * `SceneTracker.getActiveScene` to determine the context of the events.\n */\n\n\nvar FillRateHelper = /*#__PURE__*/function () {\n FillRateHelper.addListener = function addListener(callback) {\n warning(_sampleRate !== null, 'Call `FillRateHelper.setSampleRate` before `addListener`.');\n\n _listeners.push(callback);\n\n return {\n remove: function remove() {\n _listeners = _listeners.filter(function (listener) {\n return callback !== listener;\n });\n }\n };\n };\n\n FillRateHelper.setSampleRate = function setSampleRate(sampleRate) {\n _sampleRate = sampleRate;\n };\n\n FillRateHelper.setMinSampleCount = function setMinSampleCount(minSampleCount) {\n _minSampleCount = minSampleCount;\n };\n\n function FillRateHelper(getFrameMetrics) {\n this._anyBlankStartTime = null;\n this._enabled = false;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n this._getFrameMetrics = getFrameMetrics;\n this._enabled = (_sampleRate || 0) > Math.random();\n\n this._resetData();\n }\n\n var _proto = FillRateHelper.prototype;\n\n _proto.activate = function activate() {\n if (this._enabled && this._samplesStartTime == null) {\n DEBUG && console.debug('FillRateHelper: activate');\n this._samplesStartTime = performanceNow();\n }\n };\n\n _proto.deactivateAndFlush = function deactivateAndFlush() {\n if (!this._enabled) {\n return;\n }\n\n var start = this._samplesStartTime; // const for flow\n\n if (start == null) {\n DEBUG && console.debug('FillRateHelper: bail on deactivate with no start time');\n return;\n }\n\n if (this._info.sample_count < _minSampleCount) {\n // Don't bother with under-sampled events.\n this._resetData();\n\n return;\n }\n\n var total_time_spent = performanceNow() - start;\n\n var info = _objectSpread(_objectSpread({}, this._info), {}, {\n total_time_spent: total_time_spent\n });\n\n if (DEBUG) {\n var derived = {\n avg_blankness: this._info.pixels_blank / this._info.pixels_sampled,\n avg_speed: this._info.pixels_scrolled / (total_time_spent / 1000),\n avg_speed_when_any_blank: this._info.any_blank_speed_sum / this._info.any_blank_count,\n any_blank_per_min: this._info.any_blank_count / (total_time_spent / 1000 / 60),\n any_blank_time_frac: this._info.any_blank_ms / total_time_spent,\n mostly_blank_per_min: this._info.mostly_blank_count / (total_time_spent / 1000 / 60),\n mostly_blank_time_frac: this._info.mostly_blank_ms / total_time_spent\n };\n\n for (var key in derived) {\n derived[key] = Math.round(1000 * derived[key]) / 1000;\n }\n\n console.debug('FillRateHelper deactivateAndFlush: ', {\n derived: derived,\n info: info\n });\n }\n\n _listeners.forEach(function (listener) {\n return listener(info);\n });\n\n this._resetData();\n };\n\n _proto.computeBlankness = function computeBlankness(props, state, scrollMetrics) {\n if (!this._enabled || props.getItemCount(props.data) === 0 || this._samplesStartTime == null) {\n return 0;\n }\n\n var dOffset = scrollMetrics.dOffset,\n offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength; // Denominator metrics that we track for all events - most of the time there is no blankness and\n // we want to capture that.\n\n this._info.sample_count++;\n this._info.pixels_sampled += Math.round(visibleLength);\n this._info.pixels_scrolled += Math.round(Math.abs(dOffset));\n var scrollSpeed = Math.round(Math.abs(velocity) * 1000); // px / sec\n // Whether blank now or not, record the elapsed time blank if we were blank last time.\n\n var now = performanceNow();\n\n if (this._anyBlankStartTime != null) {\n this._info.any_blank_ms += now - this._anyBlankStartTime;\n }\n\n this._anyBlankStartTime = null;\n\n if (this._mostlyBlankStartTime != null) {\n this._info.mostly_blank_ms += now - this._mostlyBlankStartTime;\n }\n\n this._mostlyBlankStartTime = null;\n var blankTop = 0;\n var first = state.first;\n\n var firstFrame = this._getFrameMetrics(first);\n\n while (first <= state.last && (!firstFrame || !firstFrame.inLayout)) {\n firstFrame = this._getFrameMetrics(first);\n first++;\n } // Only count blankTop if we aren't rendering the first item, otherwise we will count the header\n // as blank.\n\n\n if (firstFrame && first > 0) {\n blankTop = Math.min(visibleLength, Math.max(0, firstFrame.offset - offset));\n }\n\n var blankBottom = 0;\n var last = state.last;\n\n var lastFrame = this._getFrameMetrics(last);\n\n while (last >= state.first && (!lastFrame || !lastFrame.inLayout)) {\n lastFrame = this._getFrameMetrics(last);\n last--;\n } // Only count blankBottom if we aren't rendering the last item, otherwise we will count the\n // footer as blank.\n\n\n if (lastFrame && last < props.getItemCount(props.data) - 1) {\n var bottomEdge = lastFrame.offset + lastFrame.length;\n blankBottom = Math.min(visibleLength, Math.max(0, offset + visibleLength - bottomEdge));\n }\n\n var pixels_blank = Math.round(blankTop + blankBottom);\n var blankness = pixels_blank / visibleLength;\n\n if (blankness > 0) {\n this._anyBlankStartTime = now;\n this._info.any_blank_speed_sum += scrollSpeed;\n this._info.any_blank_count++;\n this._info.pixels_blank += pixels_blank;\n\n if (blankness > 0.5) {\n this._mostlyBlankStartTime = now;\n this._info.mostly_blank_count++;\n }\n } else if (scrollSpeed < 0.01 || Math.abs(dOffset) < 1) {\n this.deactivateAndFlush();\n }\n\n return blankness;\n };\n\n _proto.enabled = function enabled() {\n return this._enabled;\n };\n\n _proto._resetData = function _resetData() {\n this._anyBlankStartTime = null;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n };\n\n return FillRateHelper;\n}();\n\nexport default FillRateHelper;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nimport View from '../View';\nimport React from 'react';\n\nfunction RefreshControl(props) {\n var colors = props.colors,\n enabled = props.enabled,\n onRefresh = props.onRefresh,\n progressBackgroundColor = props.progressBackgroundColor,\n progressViewOffset = props.progressViewOffset,\n refreshing = props.refreshing,\n size = props.size,\n tintColor = props.tintColor,\n title = props.title,\n titleColor = props.titleColor,\n rest = _objectWithoutPropertiesLoose(props, [\"colors\", \"enabled\", \"onRefresh\", \"progressBackgroundColor\", \"progressViewOffset\", \"refreshing\", \"size\", \"tintColor\", \"title\", \"titleColor\"]);\n\n return /*#__PURE__*/React.createElement(View, rest);\n}\n\nexport default RefreshControl;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport UIManager from '../../exports/UIManager';\n/**\n * This class is responsible for coordinating the \"focused\"\n * state for TextInputs. All calls relating to the keyboard\n * should be funneled through here\n */\n\nvar TextInputState = {\n /**\n * Internal state\n */\n _currentlyFocusedNode: null,\n\n /**\n * Returns the ID of the currently focused text field, if one exists\n * If no text field is focused it returns null\n */\n currentlyFocusedField: function currentlyFocusedField() {\n if (document.activeElement !== this._currentlyFocusedNode) {\n this._currentlyFocusedNode = null;\n }\n\n return this._currentlyFocusedNode;\n },\n\n /**\n * @param {Object} TextInputID id of the text field to focus\n * Focuses the specified text field\n * noop if the text field was already focused\n */\n focusTextInput: function focusTextInput(textFieldNode) {\n if (textFieldNode !== null) {\n this._currentlyFocusedNode = textFieldNode;\n\n if (document.activeElement !== textFieldNode) {\n UIManager.focus(textFieldNode);\n }\n }\n },\n\n /**\n * @param {Object} textFieldNode id of the text field to focus\n * Unfocuses the specified text field\n * noop if it wasn't focused\n */\n blurTextInput: function blurTextInput(textFieldNode) {\n if (textFieldNode !== null) {\n this._currentlyFocusedNode = null;\n\n if (document.activeElement === textFieldNode) {\n UIManager.blur(textFieldNode);\n }\n }\n }\n};\nexport default TextInputState;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport TextInputState from '../TextInputState';\n\nvar dismissKeyboard = function dismissKeyboard() {\n TextInputState.blurTextInput(TextInputState.currentlyFocusedField());\n};\n\nexport default dismissKeyboard;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar Platform = {\n OS: 'web',\n select: function select(obj) {\n return 'web' in obj ? obj.web : obj.default;\n },\n\n get isTesting() {\n if (process.env.NODE_DEV === 'test') {\n return true;\n }\n\n return false;\n }\n\n};\nexport default Platform;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport Dimensions from '../../exports/Dimensions';\nimport findNodeHandle from '../../exports/findNodeHandle';\nimport invariant from 'fbjs/lib/invariant';\nimport Platform from '../../exports/Platform';\nimport TextInputState from '../TextInputState';\nimport UIManager from '../../exports/UIManager';\nimport warning from 'fbjs/lib/warning';\n/**\n * Mixin that can be integrated in order to handle scrolling that plays well\n * with `ResponderEventPlugin`. Integrate with your platform specific scroll\n * views, or even your custom built (every-frame animating) scroll views so that\n * all of these systems play well with the `ResponderEventPlugin`.\n *\n * iOS scroll event timing nuances:\n * ===============================\n *\n *\n * Scrolling without bouncing, if you touch down:\n * -------------------------------\n *\n * 1. `onMomentumScrollBegin` (when animation begins after letting up)\n * ... physical touch starts ...\n * 2. `onTouchStartCapture` (when you press down to stop the scroll)\n * 3. `onTouchStart` (same, but bubble phase)\n * 4. `onResponderRelease` (when lifting up - you could pause forever before * lifting)\n * 5. `onMomentumScrollEnd`\n *\n *\n * Scrolling with bouncing, if you touch down:\n * -------------------------------\n *\n * 1. `onMomentumScrollBegin` (when animation begins after letting up)\n * ... bounce begins ...\n * ... some time elapses ...\n * ... physical touch during bounce ...\n * 2. `onMomentumScrollEnd` (Makes no sense why this occurs first during bounce)\n * 3. `onTouchStartCapture` (immediately after `onMomentumScrollEnd`)\n * 4. `onTouchStart` (same, but bubble phase)\n * 5. `onTouchEnd` (You could hold the touch start for a long time)\n * 6. `onMomentumScrollBegin` (When releasing the view starts bouncing back)\n *\n * So when we receive an `onTouchStart`, how can we tell if we are touching\n * *during* an animation (which then causes the animation to stop)? The only way\n * to tell is if the `touchStart` occurred immediately after the\n * `onMomentumScrollEnd`.\n *\n * This is abstracted out for you, so you can just call this.scrollResponderIsAnimating() if\n * necessary\n *\n * `ScrollResponder` also includes logic for blurring a currently focused input\n * if one is focused while scrolling. The `ScrollResponder` is a natural place\n * to put this logic since it can support not dismissing the keyboard while\n * scrolling, unless a recognized \"tap\"-like gesture has occurred.\n *\n * The public lifecycle API includes events for keyboard interaction, responder\n * interaction, and scrolling (among others). The keyboard callbacks\n * `onKeyboardWill/Did/*` are *global* events, but are invoked on scroll\n * responder's props so that you can guarantee that the scroll responder's\n * internal state has been updated accordingly (and deterministically) by\n * the time the props callbacks are invoke. Otherwise, you would always wonder\n * if the scroll responder is currently in a state where it recognizes new\n * keyboard positions etc. If coordinating scrolling with keyboard movement,\n * *always* use these hooks instead of listening to your own global keyboard\n * events.\n *\n * Public keyboard lifecycle API: (props callbacks)\n *\n * Standard Keyboard Appearance Sequence:\n *\n * this.props.onKeyboardWillShow\n * this.props.onKeyboardDidShow\n *\n * `onScrollResponderKeyboardDismissed` will be invoked if an appropriate\n * tap inside the scroll responder's scrollable region was responsible\n * for the dismissal of the keyboard. There are other reasons why the\n * keyboard could be dismissed.\n *\n * this.props.onScrollResponderKeyboardDismissed\n *\n * Standard Keyboard Hide Sequence:\n *\n * this.props.onKeyboardWillHide\n * this.props.onKeyboardDidHide\n */\n\nvar emptyObject = {};\nvar IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;\nvar ScrollResponderMixin = {\n // mixins: [Subscribable.Mixin],\n scrollResponderMixinGetInitialState: function scrollResponderMixinGetInitialState() {\n return {\n isTouching: false,\n lastMomentumScrollBeginTime: 0,\n lastMomentumScrollEndTime: 0,\n // Reset to false every time becomes responder. This is used to:\n // - Determine if the scroll view has been scrolled and therefore should\n // refuse to give up its responder lock.\n // - Determine if releasing should dismiss the keyboard when we are in\n // tap-to-dismiss mode (!this.props.keyboardShouldPersistTaps).\n observedScrollSinceBecomingResponder: false,\n becameResponderWhileAnimating: false\n };\n },\n\n /**\n * Invoke this from an `onScroll` event.\n */\n scrollResponderHandleScrollShouldSetResponder: function scrollResponderHandleScrollShouldSetResponder() {\n return this.state.isTouching;\n },\n\n /**\n * Merely touch starting is not sufficient for a scroll view to become the\n * responder. Being the \"responder\" means that the very next touch move/end\n * event will result in an action/movement.\n *\n * Invoke this from an `onStartShouldSetResponder` event.\n *\n * `onStartShouldSetResponder` is used when the next move/end will trigger\n * some UI movement/action, but when you want to yield priority to views\n * nested inside of the view.\n *\n * There may be some cases where scroll views actually should return `true`\n * from `onStartShouldSetResponder`: Any time we are detecting a standard tap\n * that gives priority to nested views.\n *\n * - If a single tap on the scroll view triggers an action such as\n * recentering a map style view yet wants to give priority to interaction\n * views inside (such as dropped pins or labels), then we would return true\n * from this method when there is a single touch.\n *\n * - Similar to the previous case, if a two finger \"tap\" should trigger a\n * zoom, we would check the `touches` count, and if `>= 2`, we would return\n * true.\n *\n */\n scrollResponderHandleStartShouldSetResponder: function scrollResponderHandleStartShouldSetResponder() {\n return false;\n },\n\n /**\n * There are times when the scroll view wants to become the responder\n * (meaning respond to the next immediate `touchStart/touchEnd`), in a way\n * that *doesn't* give priority to nested views (hence the capture phase):\n *\n * - Currently animating.\n * - Tapping anywhere that is not the focused input, while the keyboard is\n * up (which should dismiss the keyboard).\n *\n * Invoke this from an `onStartShouldSetResponderCapture` event.\n */\n scrollResponderHandleStartShouldSetResponderCapture: function scrollResponderHandleStartShouldSetResponderCapture(e) {\n // First see if we want to eat taps while the keyboard is up\n // var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();\n // if (!this.props.keyboardShouldPersistTaps &&\n // currentlyFocusedTextInput != null &&\n // e.target !== currentlyFocusedTextInput) {\n // return true;\n // }\n return this.scrollResponderIsAnimating();\n },\n\n /**\n * Invoke this from an `onResponderReject` event.\n *\n * Some other element is not yielding its role as responder. Normally, we'd\n * just disable the `UIScrollView`, but a touch has already began on it, the\n * `UIScrollView` will not accept being disabled after that. The easiest\n * solution for now is to accept the limitation of disallowing this\n * altogether. To improve this, find a way to disable the `UIScrollView` after\n * a touch has already started.\n */\n scrollResponderHandleResponderReject: function scrollResponderHandleResponderReject() {\n warning(false, \"ScrollView doesn't take rejection well - scrolls anyway\");\n },\n\n /**\n * We will allow the scroll view to give up its lock iff it acquired the lock\n * during an animation. This is a very useful default that happens to satisfy\n * many common user experiences.\n *\n * - Stop a scroll on the left edge, then turn that into an outer view's\n * backswipe.\n * - Stop a scroll mid-bounce at the top, continue pulling to have the outer\n * view dismiss.\n * - However, without catching the scroll view mid-bounce (while it is\n * motionless), if you drag far enough for the scroll view to become\n * responder (and therefore drag the scroll view a bit), any backswipe\n * navigation of a swipe gesture higher in the view hierarchy, should be\n * rejected.\n */\n scrollResponderHandleTerminationRequest: function scrollResponderHandleTerminationRequest() {\n return !this.state.observedScrollSinceBecomingResponder;\n },\n\n /**\n * Invoke this from an `onTouchEnd` event.\n *\n * @param {SyntheticEvent} e Event.\n */\n scrollResponderHandleTouchEnd: function scrollResponderHandleTouchEnd(e) {\n var nativeEvent = e.nativeEvent;\n this.state.isTouching = nativeEvent.touches.length !== 0;\n this.props.onTouchEnd && this.props.onTouchEnd(e);\n },\n\n /**\n * Invoke this from an `onResponderRelease` event.\n */\n scrollResponderHandleResponderRelease: function scrollResponderHandleResponderRelease(e) {\n this.props.onResponderRelease && this.props.onResponderRelease(e); // By default scroll views will unfocus a textField\n // if another touch occurs outside of it\n\n var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();\n\n if (!this.props.keyboardShouldPersistTaps && currentlyFocusedTextInput != null && e.target !== currentlyFocusedTextInput && !this.state.observedScrollSinceBecomingResponder && !this.state.becameResponderWhileAnimating) {\n this.props.onScrollResponderKeyboardDismissed && this.props.onScrollResponderKeyboardDismissed(e);\n TextInputState.blurTextInput(currentlyFocusedTextInput);\n }\n },\n scrollResponderHandleScroll: function scrollResponderHandleScroll(e) {\n this.state.observedScrollSinceBecomingResponder = true;\n this.props.onScroll && this.props.onScroll(e);\n },\n\n /**\n * Invoke this from an `onResponderGrant` event.\n */\n scrollResponderHandleResponderGrant: function scrollResponderHandleResponderGrant(e) {\n this.state.observedScrollSinceBecomingResponder = false;\n this.props.onResponderGrant && this.props.onResponderGrant(e);\n this.state.becameResponderWhileAnimating = this.scrollResponderIsAnimating();\n },\n\n /**\n * Unfortunately, `onScrollBeginDrag` also fires when *stopping* the scroll\n * animation, and there's not an easy way to distinguish a drag vs. stopping\n * momentum.\n *\n * Invoke this from an `onScrollBeginDrag` event.\n */\n scrollResponderHandleScrollBeginDrag: function scrollResponderHandleScrollBeginDrag(e) {\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n },\n\n /**\n * Invoke this from an `onScrollEndDrag` event.\n */\n scrollResponderHandleScrollEndDrag: function scrollResponderHandleScrollEndDrag(e) {\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n },\n\n /**\n * Invoke this from an `onMomentumScrollBegin` event.\n */\n scrollResponderHandleMomentumScrollBegin: function scrollResponderHandleMomentumScrollBegin(e) {\n this.state.lastMomentumScrollBeginTime = Date.now();\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n },\n\n /**\n * Invoke this from an `onMomentumScrollEnd` event.\n */\n scrollResponderHandleMomentumScrollEnd: function scrollResponderHandleMomentumScrollEnd(e) {\n this.state.lastMomentumScrollEndTime = Date.now();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n },\n\n /**\n * Invoke this from an `onTouchStart` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {SyntheticEvent} e Touch Start event.\n */\n scrollResponderHandleTouchStart: function scrollResponderHandleTouchStart(e) {\n this.state.isTouching = true;\n this.props.onTouchStart && this.props.onTouchStart(e);\n },\n\n /**\n * Invoke this from an `onTouchMove` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {SyntheticEvent} e Touch Start event.\n */\n scrollResponderHandleTouchMove: function scrollResponderHandleTouchMove(e) {\n this.props.onTouchMove && this.props.onTouchMove(e);\n },\n\n /**\n * A helper function for this class that lets us quickly determine if the\n * view is currently animating. This is particularly useful to know when\n * a touch has just started or ended.\n */\n scrollResponderIsAnimating: function scrollResponderIsAnimating() {\n var now = Date.now();\n var timeSinceLastMomentumScrollEnd = now - this.state.lastMomentumScrollEndTime;\n var isAnimating = timeSinceLastMomentumScrollEnd < IS_ANIMATING_TOUCH_START_THRESHOLD_MS || this.state.lastMomentumScrollEndTime < this.state.lastMomentumScrollBeginTime;\n return isAnimating;\n },\n\n /**\n * Returns the node that represents native view that can be scrolled.\n * Components can pass what node to use by defining a `getScrollableNode`\n * function otherwise `this` is used.\n */\n scrollResponderGetScrollableNode: function scrollResponderGetScrollableNode() {\n return this.getScrollableNode ? this.getScrollableNode() : findNodeHandle(this);\n },\n\n /**\n * A helper function to scroll to a specific point in the scrollview.\n * This is currently used to help focus on child textviews, but can also\n * be used to quickly scroll to any element we want to focus. Syntax:\n *\n * scrollResponderScrollTo(options: {x: number = 0; y: number = 0; animated: boolean = true})\n *\n * Note: The weird argument signature is due to the fact that, for historical reasons,\n * the function also accepts separate arguments as as alternative to the options object.\n * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n */\n scrollResponderScrollTo: function scrollResponderScrollTo(x, y, animated) {\n if (typeof x === 'number') {\n console.warn('`scrollResponderScrollTo(x, y, animated)` is deprecated. Use `scrollResponderScrollTo({x: 5, y: 5, animated: true})` instead.');\n } else {\n var _ref = x || emptyObject;\n\n x = _ref.x;\n y = _ref.y;\n animated = _ref.animated;\n }\n\n var node = this.scrollResponderGetScrollableNode();\n var left = x || 0;\n var top = y || 0;\n\n if (typeof node.scroll === 'function') {\n node.scroll({\n top: top,\n left: left,\n behavior: !animated ? 'auto' : 'smooth'\n });\n } else {\n node.scrollLeft = left;\n node.scrollTop = top;\n }\n },\n\n /**\n * A helper function to zoom to a specific rect in the scrollview. The argument has the shape\n * {x: number; y: number; width: number; height: number; animated: boolean = true}\n *\n * @platform ios\n */\n scrollResponderZoomTo: function scrollResponderZoomTo(rect, animated) // deprecated, put this inside the rect argument instead\n {\n if (Platform.OS !== 'ios') {\n invariant('zoomToRect is not implemented');\n }\n },\n\n /**\n * Displays the scroll indicators momentarily.\n */\n scrollResponderFlashScrollIndicators: function scrollResponderFlashScrollIndicators() {},\n\n /**\n * This method should be used as the callback to onFocus in a TextInputs'\n * parent view. Note that any module using this mixin needs to return\n * the parent view's ref in getScrollViewRef() in order to use this method.\n * @param {any} nodeHandle The TextInput node handle\n * @param {number} additionalOffset The scroll view's top \"contentInset\".\n * Default is 0.\n * @param {bool} preventNegativeScrolling Whether to allow pulling the content\n * down to make it meet the keyboard's top. Default is false.\n */\n scrollResponderScrollNativeHandleToKeyboard: function scrollResponderScrollNativeHandleToKeyboard(nodeHandle, additionalOffset, preventNegativeScrollOffset) {\n this.additionalScrollOffset = additionalOffset || 0;\n this.preventNegativeScrollOffset = !!preventNegativeScrollOffset;\n UIManager.measureLayout(nodeHandle, findNodeHandle(this.getInnerViewNode()), this.scrollResponderTextInputFocusError, this.scrollResponderInputMeasureAndScrollToKeyboard);\n },\n\n /**\n * The calculations performed here assume the scroll view takes up the entire\n * screen - even if has some content inset. We then measure the offsets of the\n * keyboard, and compensate both for the scroll view's \"contentInset\".\n *\n * @param {number} left Position of input w.r.t. table view.\n * @param {number} top Position of input w.r.t. table view.\n * @param {number} width Width of the text input.\n * @param {number} height Height of the text input.\n */\n scrollResponderInputMeasureAndScrollToKeyboard: function scrollResponderInputMeasureAndScrollToKeyboard(left, top, width, height) {\n var keyboardScreenY = Dimensions.get('window').height;\n\n if (this.keyboardWillOpenTo) {\n keyboardScreenY = this.keyboardWillOpenTo.endCoordinates.screenY;\n }\n\n var scrollOffsetY = top - keyboardScreenY + height + this.additionalScrollOffset; // By default, this can scroll with negative offset, pulling the content\n // down so that the target component's bottom meets the keyboard's top.\n // If requested otherwise, cap the offset at 0 minimum to avoid content\n // shifting down.\n\n if (this.preventNegativeScrollOffset) {\n scrollOffsetY = Math.max(0, scrollOffsetY);\n }\n\n this.scrollResponderScrollTo({\n x: 0,\n y: scrollOffsetY,\n animated: true\n });\n this.additionalOffset = 0;\n this.preventNegativeScrollOffset = false;\n },\n scrollResponderTextInputFocusError: function scrollResponderTextInputFocusError(e) {\n console.error('Error measuring text field: ', e);\n },\n\n /**\n * `componentWillMount` is the closest thing to a standard \"constructor\" for\n * React components.\n *\n * The `keyboardWillShow` is called before input focus.\n */\n UNSAFE_componentWillMount: function UNSAFE_componentWillMount() {\n this.keyboardWillOpenTo = null;\n this.additionalScrollOffset = 0; // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardWillShow', this.scrollResponderKeyboardWillShow);\n // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardWillHide', this.scrollResponderKeyboardWillHide);\n // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardDidShow', this.scrollResponderKeyboardDidShow);\n // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardDidHide', this.scrollResponderKeyboardDidHide);\n },\n\n /**\n * Warning, this may be called several times for a single keyboard opening.\n * It's best to store the information in this method and then take any action\n * at a later point (either in `keyboardDidShow` or other).\n *\n * Here's the order that events occur in:\n * - focus\n * - willShow {startCoordinates, endCoordinates} several times\n * - didShow several times\n * - blur\n * - willHide {startCoordinates, endCoordinates} several times\n * - didHide several times\n *\n * The `ScrollResponder` providesModule callbacks for each of these events.\n * Even though any user could have easily listened to keyboard events\n * themselves, using these `props` callbacks ensures that ordering of events\n * is consistent - and not dependent on the order that the keyboard events are\n * subscribed to. This matters when telling the scroll view to scroll to where\n * the keyboard is headed - the scroll responder better have been notified of\n * the keyboard destination before being instructed to scroll to where the\n * keyboard will be. Stick to the `ScrollResponder` callbacks, and everything\n * will work.\n *\n * WARNING: These callbacks will fire even if a keyboard is displayed in a\n * different navigation pane. Filter out the events to determine if they are\n * relevant to you. (For example, only if you receive these callbacks after\n * you had explicitly focused a node etc).\n */\n scrollResponderKeyboardWillShow: function scrollResponderKeyboardWillShow(e) {\n this.keyboardWillOpenTo = e;\n this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);\n },\n scrollResponderKeyboardWillHide: function scrollResponderKeyboardWillHide(e) {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardWillHide && this.props.onKeyboardWillHide(e);\n },\n scrollResponderKeyboardDidShow: function scrollResponderKeyboardDidShow(e) {\n // TODO(7693961): The event for DidShow is not available on iOS yet.\n // Use the one from WillShow and do not assign.\n if (e) {\n this.keyboardWillOpenTo = e;\n }\n\n this.props.onKeyboardDidShow && this.props.onKeyboardDidShow(e);\n },\n scrollResponderKeyboardDidHide: function scrollResponderKeyboardDidHide(e) {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardDidHide && this.props.onKeyboardDidHide(e);\n }\n};\nvar ScrollResponder = {\n Mixin: ScrollResponderMixin\n};\nexport default ScrollResponder;","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n/**\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\nimport * as React from 'react';\nimport { forwardRef, useRef } 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__*/forwardRef(function (props, forwardedRef) {\n var onScroll = props.onScroll,\n onTouchMove = props.onTouchMove,\n onWheel = props.onWheel,\n _props$scrollEnabled = props.scrollEnabled,\n scrollEnabled = _props$scrollEnabled === void 0 ? true : _props$scrollEnabled,\n _props$scrollEventThr = props.scrollEventThrottle,\n scrollEventThrottle = _props$scrollEventThr === void 0 ? 0 : _props$scrollEventThr,\n showsHorizontalScrollIndicator = props.showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator = props.showsVerticalScrollIndicator,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, [\"onScroll\", \"onTouchMove\", \"onWheel\", \"scrollEnabled\", \"scrollEventThrottle\", \"showsHorizontalScrollIndicator\", \"showsVerticalScrollIndicator\", \"style\"]);\n\n var scrollState = useRef({\n isScrolling: false,\n scrollLastTick: 0\n });\n var scrollTimeout = useRef(null);\n var scrollRef = useRef(null);\n\n function createPreventableScrollHandler(handler) {\n return function (e) {\n if (scrollEnabled) {\n if (handler) {\n handler(e);\n }\n }\n };\n }\n\n function handleScroll(e) {\n e.stopPropagation();\n\n if (e.target === scrollRef.current) {\n e.persist(); // A scroll happened, so the scroll resets the scrollend timeout.\n\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n\n scrollTimeout.current = setTimeout(function () {\n handleScrollEnd(e);\n }, 100);\n\n if (scrollState.current.isScrolling) {\n // Scroll last tick may have changed, check if we need to notify\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n handleScrollTick(e);\n }\n } else {\n // Weren't scrolling, so we must have just started\n handleScrollStart(e);\n }\n }\n }\n\n function handleScrollStart(e) {\n scrollState.current.isScrolling = true;\n handleScrollTick(e);\n }\n\n function handleScrollTick(e) {\n scrollState.current.scrollLastTick = Date.now();\n\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\n }\n }\n\n function handleScrollEnd(e) {\n scrollState.current.isScrolling = false;\n\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\n }\n }\n\n var hideScrollbar = showsHorizontalScrollIndicator === false || showsVerticalScrollIndicator === false;\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n onScroll: handleScroll,\n onTouchMove: createPreventableScrollHandler(onTouchMove),\n onWheel: createPreventableScrollHandler(onWheel),\n ref: useMergeRefs(scrollRef, forwardedRef),\n style: [style, !scrollEnabled && styles.scrollDisabled, hideScrollbar && styles.hideScrollbar]\n }));\n}); // Chrome doesn't support e.preventDefault in this case; touch-action must be\n// used to disable scrolling.\n// https://developers.google.com/web/updates/2017/01/scrolling-intervention\n\nvar styles = StyleSheet.create({\n scrollDisabled: {\n overflowX: 'hidden',\n overflowY: 'hidden',\n touchAction: 'none'\n },\n hideScrollbar: {\n scrollbarWidth: 'none'\n }\n});\nexport default ScrollViewBase;","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nimport createReactClass from 'create-react-class';\nimport dismissKeyboard from '../../modules/dismissKeyboard';\nimport invariant from 'fbjs/lib/invariant';\nimport mergeRefs from '../../modules/mergeRefs';\nimport ScrollResponder from '../../modules/ScrollResponder';\nimport ScrollViewBase from './ScrollViewBase';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport React from 'react';\nvar emptyObject = {};\n/* eslint-disable react/prefer-es6-class */\n\nvar ScrollView = createReactClass({\n displayName: \"ScrollView\",\n mixins: [ScrollResponder.Mixin],\n getInitialState: function getInitialState() {\n return this.scrollResponderMixinGetInitialState();\n },\n flashScrollIndicators: function flashScrollIndicators() {\n this.scrollResponderFlashScrollIndicators();\n },\n\n /**\n * Returns a reference to the underlying scroll responder, which supports\n * operations like `scrollTo`. All ScrollView-like components should\n * implement this method so that they can be composed while providing access\n * to the underlying scroll responder's methods.\n */\n getScrollResponder: function getScrollResponder() {\n return this;\n },\n getScrollableNode: function getScrollableNode() {\n return this._scrollNodeRef;\n },\n getInnerViewRef: function getInnerViewRef() {\n return this._innerViewRef;\n },\n getInnerViewNode: function getInnerViewNode() {\n return this._innerViewRef;\n },\n getNativeScrollRef: function getNativeScrollRef() {\n return this._scrollNodeRef;\n },\n\n /**\n * Scrolls to a given x, y offset, either immediately or with a smooth animation.\n * Syntax:\n *\n * scrollTo(options: {x: number = 0; y: number = 0; animated: boolean = true})\n *\n * Note: The weird argument signature is due to the fact that, for historical reasons,\n * the function also accepts separate arguments as as alternative to the options object.\n * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n */\n scrollTo: function scrollTo(y, x, animated) {\n if (typeof y === 'number') {\n console.warn('`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, animated: true})` instead.');\n } else {\n var _ref = y || emptyObject;\n\n x = _ref.x;\n y = _ref.y;\n animated = _ref.animated;\n }\n\n this.getScrollResponder().scrollResponderScrollTo({\n x: x || 0,\n y: y || 0,\n animated: animated !== false\n });\n },\n\n /**\n * If this is a vertical ScrollView scrolls to the bottom.\n * If this is a horizontal ScrollView scrolls to the right.\n *\n * Use `scrollToEnd({ animated: true })` for smooth animated scrolling,\n * `scrollToEnd({ animated: false })` for immediate scrolling.\n * If no options are passed, `animated` defaults to true.\n */\n scrollToEnd: function scrollToEnd(options) {\n // Default to true\n var animated = (options && options.animated) !== false;\n var horizontal = this.props.horizontal;\n var scrollResponder = this.getScrollResponder();\n var scrollResponderNode = scrollResponder.scrollResponderGetScrollableNode();\n var x = horizontal ? scrollResponderNode.scrollWidth : 0;\n var y = horizontal ? 0 : scrollResponderNode.scrollHeight;\n scrollResponder.scrollResponderScrollTo({\n x: x,\n y: y,\n animated: animated\n });\n },\n render: function render() {\n var _this$props = this.props,\n contentContainerStyle = _this$props.contentContainerStyle,\n horizontal = _this$props.horizontal,\n onContentSizeChange = _this$props.onContentSizeChange,\n refreshControl = _this$props.refreshControl,\n stickyHeaderIndices = _this$props.stickyHeaderIndices,\n pagingEnabled = _this$props.pagingEnabled,\n forwardedRef = _this$props.forwardedRef,\n keyboardDismissMode = _this$props.keyboardDismissMode,\n onScroll = _this$props.onScroll,\n other = _objectWithoutPropertiesLoose(_this$props, [\"contentContainerStyle\", \"horizontal\", \"onContentSizeChange\", \"refreshControl\", \"stickyHeaderIndices\", \"pagingEnabled\", \"forwardedRef\", \"keyboardDismissMode\", \"onScroll\"]);\n\n if (process.env.NODE_ENV !== 'production' && this.props.style) {\n var style = StyleSheet.flatten(this.props.style);\n var childLayoutProps = ['alignItems', 'justifyContent'].filter(function (prop) {\n return style && style[prop] !== undefined;\n });\n invariant(childLayoutProps.length === 0, \"ScrollView child layout (\" + JSON.stringify(childLayoutProps) + \") \" + 'must be applied through the contentContainerStyle prop.');\n }\n\n var contentSizeChangeProps = {};\n\n if (onContentSizeChange) {\n contentSizeChangeProps = {\n onLayout: this._handleContentOnLayout\n };\n }\n\n var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n var children = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(this.props.children, function (child, i) {\n var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n\n if (child != null && (isSticky || pagingEnabled)) {\n return /*#__PURE__*/React.createElement(View, {\n style: StyleSheet.compose(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild)\n }, child);\n } else {\n return child;\n }\n }) : this.props.children;\n var contentContainer = /*#__PURE__*/React.createElement(View, _extends({}, contentSizeChangeProps, {\n children: children,\n collapsable: false,\n ref: this._setInnerViewRef,\n style: StyleSheet.compose(horizontal && styles.contentContainerHorizontal, contentContainerStyle)\n }));\n var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n\n var props = _objectSpread(_objectSpread({}, other), {}, {\n style: [baseStyle, pagingEnabled && pagingEnabledStyle, this.props.style],\n onTouchStart: this.scrollResponderHandleTouchStart,\n onTouchMove: this.scrollResponderHandleTouchMove,\n onTouchEnd: this.scrollResponderHandleTouchEnd,\n onScrollBeginDrag: this.scrollResponderHandleScrollBeginDrag,\n onScrollEndDrag: this.scrollResponderHandleScrollEndDrag,\n onMomentumScrollBegin: this.scrollResponderHandleMomentumScrollBegin,\n onMomentumScrollEnd: this.scrollResponderHandleMomentumScrollEnd,\n onStartShouldSetResponder: this.scrollResponderHandleStartShouldSetResponder,\n onStartShouldSetResponderCapture: this.scrollResponderHandleStartShouldSetResponderCapture,\n onScrollShouldSetResponder: this.scrollResponderHandleScrollShouldSetResponder,\n onScroll: this._handleScroll,\n onResponderGrant: this.scrollResponderHandleResponderGrant,\n onResponderTerminationRequest: this.scrollResponderHandleTerminationRequest,\n onResponderTerminate: this.scrollResponderHandleTerminate,\n onResponderRelease: this.scrollResponderHandleResponderRelease,\n onResponderReject: this.scrollResponderHandleResponderReject\n });\n\n var ScrollViewClass = ScrollViewBase;\n invariant(ScrollViewClass !== undefined, 'ScrollViewClass must not be undefined');\n\n if (refreshControl) {\n return /*#__PURE__*/React.cloneElement(refreshControl, {\n style: props.style\n }, /*#__PURE__*/React.createElement(ScrollViewClass, _extends({}, props, {\n ref: this._setScrollNodeRef,\n style: baseStyle\n }), contentContainer));\n }\n\n return /*#__PURE__*/React.createElement(ScrollViewClass, _extends({}, props, {\n ref: this._setScrollNodeRef\n }), contentContainer);\n },\n _handleContentOnLayout: function _handleContentOnLayout(e) {\n var _e$nativeEvent$layout = e.nativeEvent.layout,\n width = _e$nativeEvent$layout.width,\n height = _e$nativeEvent$layout.height;\n this.props.onContentSizeChange(width, height);\n },\n _handleScroll: function _handleScroll(e) {\n if (process.env.NODE_ENV !== 'production') {\n if (this.props.onScroll && this.props.scrollEventThrottle == null) {\n console.log('You specified `onScroll` on a but not ' + '`scrollEventThrottle`. You will only receive one event. ' + 'Using `16` you get all the events but be aware that it may ' + \"cause frame drops, use a bigger number if you don't need as \" + 'much precision.');\n }\n }\n\n if (this.props.keyboardDismissMode === 'on-drag') {\n dismissKeyboard();\n }\n\n this.scrollResponderHandleScroll(e);\n },\n _setInnerViewRef: function _setInnerViewRef(node) {\n this._innerViewRef = node;\n },\n _setScrollNodeRef: function _setScrollNodeRef(node) {\n this._scrollNodeRef = node; // ScrollView needs to add more methods to the hostNode in addition to those\n // added by `usePlatformMethods`. This is temporarily until an API like\n // `ScrollView.scrollTo(hostNode, { x, y })` is added to React Native.\n\n if (node != null) {\n node.getScrollResponder = this.getScrollResponder;\n node.getInnerViewNode = this.getInnerViewNode;\n node.getInnerViewRef = this.getInnerViewRef;\n node.getNativeScrollRef = this.getNativeScrollRef;\n node.getScrollableNode = this.getScrollableNode;\n node.scrollTo = this.scrollTo;\n node.scrollToEnd = this.scrollToEnd;\n node.flashScrollIndicators = this.flashScrollIndicators;\n node.scrollResponderZoomTo = this.scrollResponderZoomTo;\n node.scrollResponderScrollNativeHandleToKeyboard = this.scrollResponderScrollNativeHandleToKeyboard;\n }\n\n var ref = mergeRefs(this.props.forwardedRef);\n ref(node);\n }\n});\nvar commonStyle = {\n flexGrow: 1,\n flexShrink: 1,\n // Enable hardware compositing in modern browsers.\n // Creates a new layer with its own backing surface that can significantly\n // improve scroll performance.\n transform: [{\n translateZ: 0\n }],\n // iOS native scrolling\n WebkitOverflowScrolling: 'touch'\n};\nvar styles = StyleSheet.create({\n baseVertical: _objectSpread(_objectSpread({}, commonStyle), {}, {\n flexDirection: 'column',\n overflowX: 'hidden',\n overflowY: 'auto'\n }),\n baseHorizontal: _objectSpread(_objectSpread({}, commonStyle), {}, {\n flexDirection: 'row',\n overflowX: 'auto',\n overflowY: 'hidden'\n }),\n contentContainerHorizontal: {\n flexDirection: 'row'\n },\n stickyHeader: {\n position: 'sticky',\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: 'x mandatory'\n },\n pagingEnabledVertical: {\n scrollSnapType: 'y mandatory'\n },\n pagingEnabledChild: {\n scrollSnapAlign: 'start'\n }\n});\nvar ForwardedScrollView = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n return /*#__PURE__*/React.createElement(ScrollView, _extends({}, props, {\n forwardedRef: forwardedRef\n }));\n});\nForwardedScrollView.displayName = 'ScrollView';\nexport default ForwardedScrollView;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nimport invariant from 'fbjs/lib/invariant';\n/**\n * A Utility class for calculating viewable items based on current metrics like scroll position and\n * layout.\n *\n * An item is said to be in a \"viewable\" state when any of the following\n * is true for longer than `minimumViewTime` milliseconds (after an interaction if `waitForInteraction`\n * is true):\n *\n * - Occupying >= `viewAreaCoveragePercentThreshold` of the view area XOR fraction of the item\n * visible in the view area >= `itemVisiblePercentThreshold`.\n * - Entirely visible on screen\n */\n\nvar ViewabilityHelper = /*#__PURE__*/function () {\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an error\n * found when Flow v0.63 was deployed. To see the error delete this comment\n * and run Flow. */\n function ViewabilityHelper(config) {\n if (config === void 0) {\n config = {\n viewAreaCoveragePercentThreshold: 0\n };\n }\n\n this._hasInteracted = false;\n this._timers = new Set();\n this._viewableIndices = [];\n this._viewableItems = new Map();\n this._config = config;\n }\n /**\n * Cleanup, e.g. on unmount. Clears any pending timers.\n */\n\n\n var _proto = ViewabilityHelper.prototype;\n\n _proto.dispose = function dispose() {\n this._timers.forEach(clearTimeout);\n }\n /**\n * Determines which items are viewable based on the current metrics and config.\n */\n ;\n\n _proto.computeViewableItems = function computeViewableItems(itemCount, scrollOffset, viewportHeight, getFrameMetrics, renderRange) {\n var _this$_config = this._config,\n itemVisiblePercentThreshold = _this$_config.itemVisiblePercentThreshold,\n viewAreaCoveragePercentThreshold = _this$_config.viewAreaCoveragePercentThreshold;\n var viewAreaMode = viewAreaCoveragePercentThreshold != null;\n var viewablePercentThreshold = viewAreaMode ? viewAreaCoveragePercentThreshold : itemVisiblePercentThreshold;\n invariant(viewablePercentThreshold != null && itemVisiblePercentThreshold != null !== (viewAreaCoveragePercentThreshold != null), 'Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold');\n var viewableIndices = [];\n\n if (itemCount === 0) {\n return viewableIndices;\n }\n\n var firstVisible = -1;\n\n var _ref = renderRange || {\n first: 0,\n last: itemCount - 1\n },\n first = _ref.first,\n last = _ref.last;\n\n if (last >= itemCount) {\n console.warn('Invalid render range computing viewability ' + JSON.stringify({\n renderRange: renderRange,\n itemCount: itemCount\n }));\n return [];\n }\n\n for (var idx = first; idx <= last; idx++) {\n var metrics = getFrameMetrics(idx);\n\n if (!metrics) {\n continue;\n }\n\n var top = metrics.offset - scrollOffset;\n var bottom = top + metrics.length;\n\n if (top < viewportHeight && bottom > 0) {\n firstVisible = idx;\n\n if (_isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, metrics.length)) {\n viewableIndices.push(idx);\n }\n } else if (firstVisible >= 0) {\n break;\n }\n }\n\n return viewableIndices;\n }\n /**\n * Figures out which items are viewable and how that has changed from before and calls\n * `onViewableItemsChanged` as appropriate.\n */\n ;\n\n _proto.onUpdate = function onUpdate(itemCount, scrollOffset, viewportHeight, getFrameMetrics, createViewToken, onViewableItemsChanged, renderRange) {\n var _this = this;\n\n if (this._config.waitForInteraction && !this._hasInteracted || itemCount === 0 || !getFrameMetrics(0)) {\n return;\n }\n\n var viewableIndices = [];\n\n if (itemCount) {\n viewableIndices = this.computeViewableItems(itemCount, scrollOffset, viewportHeight, getFrameMetrics, renderRange);\n }\n\n if (this._viewableIndices.length === viewableIndices.length && this._viewableIndices.every(function (v, ii) {\n return v === viewableIndices[ii];\n })) {\n // We might get a lot of scroll events where visibility doesn't change and we don't want to do\n // extra work in those cases.\n return;\n }\n\n this._viewableIndices = viewableIndices;\n\n if (this._config.minimumViewTime) {\n var handle = setTimeout(function () {\n _this._timers.delete(handle);\n\n _this._onUpdateSync(viewableIndices, onViewableItemsChanged, createViewToken);\n }, this._config.minimumViewTime);\n\n this._timers.add(handle);\n } else {\n this._onUpdateSync(viewableIndices, onViewableItemsChanged, createViewToken);\n }\n }\n /**\n * clean-up cached _viewableIndices to evaluate changed items on next update\n */\n ;\n\n _proto.resetViewableIndices = function resetViewableIndices() {\n this._viewableIndices = [];\n }\n /**\n * Records that an interaction has happened even if there has been no scroll.\n */\n ;\n\n _proto.recordInteraction = function recordInteraction() {\n this._hasInteracted = true;\n };\n\n _proto._onUpdateSync = function _onUpdateSync( // $FlowFixMe\n viewableIndicesToCheck, // $FlowFixMe\n onViewableItemsChanged, // $FlowFixMe\n createViewToken) {\n var _this2 = this; // Filter out indices that have gone out of view since this call was scheduled.\n\n\n viewableIndicesToCheck = viewableIndicesToCheck.filter(function (ii) {\n return _this2._viewableIndices.includes(ii);\n });\n var prevItems = this._viewableItems;\n var nextItems = new Map(viewableIndicesToCheck.map(function (ii) {\n var viewable = createViewToken(ii, true);\n return [viewable.key, viewable];\n }));\n var changed = [];\n\n for (var _iterator = _createForOfIteratorHelperLoose(nextItems), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n viewable = _step$value[1];\n\n if (!prevItems.has(key)) {\n changed.push(viewable);\n }\n }\n\n for (var _iterator2 = _createForOfIteratorHelperLoose(prevItems), _step2; !(_step2 = _iterator2()).done;) {\n var _step2$value = _step2.value,\n _key = _step2$value[0],\n _viewable = _step2$value[1];\n\n if (!nextItems.has(_key)) {\n changed.push(_objectSpread(_objectSpread({}, _viewable), {}, {\n isViewable: false\n }));\n }\n }\n\n if (changed.length > 0) {\n this._viewableItems = nextItems;\n onViewableItemsChanged({\n viewableItems: Array.from(nextItems.values()),\n changed: changed,\n viewabilityConfig: this._config\n });\n }\n };\n\n return ViewabilityHelper;\n}();\n\nfunction _isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, itemLength) {\n if (_isEntirelyVisible(top, bottom, viewportHeight)) {\n return true;\n } else {\n var pixels = _getPixelsVisible(top, bottom, viewportHeight);\n\n var percent = 100 * (viewAreaMode ? pixels / viewportHeight : pixels / itemLength);\n return percent >= viewablePercentThreshold;\n }\n}\n\nfunction _getPixelsVisible(top, bottom, viewportHeight) {\n var visibleHeight = Math.min(bottom, viewportHeight) - Math.max(top, 0);\n return Math.max(0, visibleHeight);\n}\n\nfunction _isEntirelyVisible(top, bottom, viewportHeight) {\n return top >= 0 && bottom <= viewportHeight && bottom > top;\n}\n\nexport default ViewabilityHelper;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n/**\n * Intentional info-level logging for clear separation from ad-hoc console debug logging.\n */\n\nfunction infoLog() {\n var _console;\n\n return (_console = console).log.apply(_console, arguments);\n}\n\nexport default infoLog;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport invariant from 'fbjs/lib/invariant';\n/**\n * Used to find the indices of the frames that overlap the given offsets. Useful for finding the\n * items that bound different windows of content, such as the visible area or the buffered overscan\n * area.\n */\n\nfunction elementsThatOverlapOffsets(offsets, itemCount, getFrameMetrics) {\n var out = [];\n var outLength = 0;\n\n for (var ii = 0; ii < itemCount; ii++) {\n var frame = getFrameMetrics(ii);\n var trailingOffset = frame.offset + frame.length;\n\n for (var kk = 0; kk < offsets.length; kk++) {\n if (out[kk] == null && trailingOffset >= offsets[kk]) {\n out[kk] = ii;\n outLength++;\n\n if (kk === offsets.length - 1) {\n invariant(outLength === offsets.length, 'bad offsets input, should be in increasing order: %s', JSON.stringify(offsets));\n return out;\n }\n }\n }\n }\n\n return out;\n}\n/**\n * Computes the number of elements in the `next` range that are new compared to the `prev` range.\n * Handy for calculating how many new items will be rendered when the render window changes so we\n * can restrict the number of new items render at once so that content can appear on the screen\n * faster.\n */\n\n\nfunction newRangeCount(prev, next) {\n return next.last - next.first + 1 - Math.max(0, 1 + Math.min(next.last, prev.last) - Math.max(next.first, prev.first));\n}\n/**\n * Custom logic for determining which items should be rendered given the current frame and scroll\n * metrics, as well as the previous render state. The algorithm may evolve over time, but generally\n * prioritizes the visible area first, then expands that with overscan regions ahead and behind,\n * biased in the direction of scroll.\n */\n\n\nfunction computeWindowedRenderLimits(props, prev, getFrameMetricsApprox, scrollMetrics) {\n var data = props.data,\n getItemCount = props.getItemCount,\n maxToRenderPerBatch = props.maxToRenderPerBatch,\n windowSize = props.windowSize;\n var itemCount = getItemCount(data);\n\n if (itemCount === 0) {\n return prev;\n }\n\n var offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength; // Start with visible area, then compute maximum overscan region by expanding from there, biased\n // in the direction of scroll. Total overscan area is capped, which should cap memory consumption\n // too.\n\n var visibleBegin = Math.max(0, offset);\n var visibleEnd = visibleBegin + visibleLength;\n var overscanLength = (windowSize - 1) * visibleLength; // Considering velocity seems to introduce more churn than it's worth.\n\n var leadFactor = 0.5; // Math.max(0, Math.min(1, velocity / 25 + 0.5));\n\n var fillPreference = velocity > 1 ? 'after' : velocity < -1 ? 'before' : 'none';\n var overscanBegin = Math.max(0, visibleBegin - (1 - leadFactor) * overscanLength);\n var overscanEnd = Math.max(0, visibleEnd + leadFactor * overscanLength);\n var lastItemOffset = getFrameMetricsApprox(itemCount - 1).offset;\n\n if (lastItemOffset < overscanBegin) {\n // Entire list is before our overscan window\n return {\n first: Math.max(0, itemCount - 1 - maxToRenderPerBatch),\n last: itemCount - 1\n };\n } // Find the indices that correspond to the items at the render boundaries we're targeting.\n\n\n var _elementsThatOverlapO = elementsThatOverlapOffsets([overscanBegin, visibleBegin, visibleEnd, overscanEnd], props.getItemCount(props.data), getFrameMetricsApprox),\n overscanFirst = _elementsThatOverlapO[0],\n first = _elementsThatOverlapO[1],\n last = _elementsThatOverlapO[2],\n overscanLast = _elementsThatOverlapO[3];\n\n overscanFirst = overscanFirst == null ? 0 : overscanFirst;\n first = first == null ? Math.max(0, overscanFirst) : first;\n overscanLast = overscanLast == null ? itemCount - 1 : overscanLast;\n last = last == null ? Math.min(overscanLast, first + maxToRenderPerBatch - 1) : last;\n var visible = {\n first: first,\n last: last\n }; // We want to limit the number of new cells we're rendering per batch so that we can fill the\n // content on the screen quickly. If we rendered the entire overscan window at once, the user\n // could be staring at white space for a long time waiting for a bunch of offscreen content to\n // render.\n\n var newCellCount = newRangeCount(prev, visible);\n\n while (true) {\n if (first <= overscanFirst && last >= overscanLast) {\n // If we fill the entire overscan range, we're done.\n break;\n }\n\n var maxNewCells = newCellCount >= maxToRenderPerBatch;\n var firstWillAddMore = first <= prev.first || first > prev.last;\n var firstShouldIncrement = first > overscanFirst && (!maxNewCells || !firstWillAddMore);\n var lastWillAddMore = last >= prev.last || last < prev.first;\n var lastShouldIncrement = last < overscanLast && (!maxNewCells || !lastWillAddMore);\n\n if (maxNewCells && !firstShouldIncrement && !lastShouldIncrement) {\n // We only want to stop if we've hit maxNewCells AND we cannot increment first or last\n // without rendering new items. This let's us preserve as many already rendered items as\n // possible, reducing render churn and keeping the rendered overscan range as large as\n // possible.\n break;\n }\n\n if (firstShouldIncrement && !(fillPreference === 'after' && lastShouldIncrement && lastWillAddMore)) {\n if (firstWillAddMore) {\n newCellCount++;\n }\n\n first--;\n }\n\n if (lastShouldIncrement && !(fillPreference === 'before' && firstShouldIncrement && firstWillAddMore)) {\n if (lastWillAddMore) {\n newCellCount++;\n }\n\n last++;\n }\n }\n\n if (!(last >= first && first >= 0 && last < itemCount && first >= overscanFirst && last <= overscanLast && first <= visible.first && last >= visible.last)) {\n throw new Error('Bad window calculation ' + JSON.stringify({\n first: first,\n last: last,\n itemCount: itemCount,\n overscanFirst: overscanFirst,\n overscanLast: overscanLast,\n visible: visible\n }));\n }\n\n return {\n first: first,\n last: last\n };\n}\n\nvar VirtualizeUtils = {\n computeWindowedRenderLimits: computeWindowedRenderLimits,\n elementsThatOverlapOffsets: elementsThatOverlapOffsets,\n newRangeCount: newRangeCount\n};\nexport { computeWindowedRenderLimits, elementsThatOverlapOffsets, newRangeCount };\nexport default VirtualizeUtils;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport Batchinator from '../Batchinator';\nimport FillRateHelper from '../FillRateHelper';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport RefreshControl from '../../../exports/RefreshControl';\nimport ScrollView from '../../../exports/ScrollView';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport UIManager from '../../../exports/UIManager';\nimport View from '../../../exports/View';\nimport ViewabilityHelper from '../ViewabilityHelper';\nimport findNodeHandle from '../../../exports/findNodeHandle';\nvar flattenStyle = StyleSheet.flatten;\nimport infoLog from '../infoLog';\nimport invariant from 'fbjs/lib/invariant';\nimport warning from 'fbjs/lib/warning';\nimport { computeWindowedRenderLimits } from '../VirtualizeUtils';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar _usedIndexForKey = false;\nvar _keylessItemComponentName = '';\n/**\n * Base implementation for the more convenient [``](/react-native/docs/flatlist.html)\n * and [``](/react-native/docs/sectionlist.html) components, which are also better\n * documented. In general, this should only really be used if you need more flexibility than\n * `FlatList` provides, e.g. for use with immutable data instead of plain arrays.\n *\n * Virtualization massively improves memory consumption and performance of large lists by\n * maintaining a finite render window of active items and replacing all items outside of the render\n * window with appropriately sized blank space. The window adapts to scrolling behavior, and items\n * are rendered incrementally with low-pri (after any running interactions) if they are far from the\n * visible area, or with hi-pri otherwise to minimize the potential of seeing blank space.\n *\n * Some caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` or `id` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n */\n\nvar VirtualizedList = /*#__PURE__*/function (_React$PureComponent) {\n _inheritsLoose(VirtualizedList, _React$PureComponent);\n\n var _proto = VirtualizedList.prototype; // scrollToEnd may be janky without getItemLayout prop\n\n _proto.scrollToEnd = function scrollToEnd(params) {\n var animated = params ? params.animated : true;\n var veryLast = this.props.getItemCount(this.props.data) - 1;\n\n var frame = this._getFrameMetricsApprox(veryLast);\n\n var offset = Math.max(0, frame.offset + frame.length + this._footerLength - this._scrollMetrics.visibleLength);\n /* $FlowFixMe(>=0.53.0 site=react_native_fb,react_native_oss) This comment\n * suppresses an error when upgrading Flow's support for React. To see the\n * error delete this comment and run Flow. */\n\n this._scrollRef.scrollTo(this.props.horizontal ? {\n x: offset,\n animated: animated\n } : {\n y: offset,\n animated: animated\n });\n } // scrollToIndex may be janky without getItemLayout prop\n ;\n\n _proto.scrollToIndex = function scrollToIndex(params) {\n var _this$props = this.props,\n data = _this$props.data,\n horizontal = _this$props.horizontal,\n getItemCount = _this$props.getItemCount,\n getItemLayout = _this$props.getItemLayout,\n onScrollToIndexFailed = _this$props.onScrollToIndexFailed;\n var animated = params.animated,\n index = params.index,\n viewOffset = params.viewOffset,\n viewPosition = params.viewPosition;\n invariant(index >= 0 && index < getItemCount(data), \"scrollToIndex out of range: \" + index + \" vs \" + (getItemCount(data) - 1));\n\n if (!getItemLayout && index > this._highestMeasuredFrameIndex) {\n invariant(!!onScrollToIndexFailed, 'scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, ' + 'otherwise there is no way to know the location of offscreen indices or handle failures.');\n onScrollToIndexFailed({\n averageItemLength: this._averageCellLength,\n highestMeasuredFrameIndex: this._highestMeasuredFrameIndex,\n index: index\n });\n return;\n }\n\n var frame = this._getFrameMetricsApprox(index);\n\n var offset = Math.max(0, frame.offset - (viewPosition || 0) * (this._scrollMetrics.visibleLength - frame.length)) - (viewOffset || 0);\n /* $FlowFixMe(>=0.53.0 site=react_native_fb,react_native_oss) This comment\n * suppresses an error when upgrading Flow's support for React. To see the\n * error delete this comment and run Flow. */\n\n this._scrollRef.scrollTo(horizontal ? {\n x: offset,\n animated: animated\n } : {\n y: offset,\n animated: animated\n });\n } // scrollToItem may be janky without getItemLayout prop. Required linear scan through items -\n // use scrollToIndex instead if possible.\n ;\n\n _proto.scrollToItem = function scrollToItem(params) {\n var item = params.item;\n var _this$props2 = this.props,\n data = _this$props2.data,\n getItem = _this$props2.getItem,\n getItemCount = _this$props2.getItemCount;\n var itemCount = getItemCount(data);\n\n for (var _index = 0; _index < itemCount; _index++) {\n if (getItem(data, _index) === item) {\n this.scrollToIndex(_objectSpread(_objectSpread({}, params), {}, {\n index: _index\n }));\n break;\n }\n }\n }\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Param `offset` expects the offset to scroll to.\n * In case of `horizontal` is true, the offset is the x-value,\n * in any other case the offset is the y-value.\n *\n * Param `animated` (`true` by default) defines whether the list\n * should do an animation while scrolling.\n */\n ;\n\n _proto.scrollToOffset = function scrollToOffset(params) {\n var animated = params.animated,\n offset = params.offset;\n /* $FlowFixMe(>=0.53.0 site=react_native_fb,react_native_oss) This comment\n * suppresses an error when upgrading Flow's support for React. To see the\n * error delete this comment and run Flow. */\n\n this._scrollRef.scrollTo(this.props.horizontal ? {\n x: offset,\n animated: animated\n } : {\n y: offset,\n animated: animated\n });\n };\n\n _proto.recordInteraction = function recordInteraction() {\n this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref.recordInteraction();\n });\n\n this._viewabilityTuples.forEach(function (t) {\n t.viewabilityHelper.recordInteraction();\n });\n\n this._updateViewableItems(this.props.data);\n };\n\n _proto.flashScrollIndicators = function flashScrollIndicators() {\n /* $FlowFixMe(>=0.53.0 site=react_native_fb,react_native_oss) This comment\n * suppresses an error when upgrading Flow's support for React. To see the\n * error delete this comment and run Flow. */\n this._scrollRef.flashScrollIndicators();\n }\n /**\n * Provides a handle to the underlying scroll responder.\n * Note that `this._scrollRef` might not be a `ScrollView`, so we\n * need to check that it responds to `getScrollResponder` before calling it.\n */\n ;\n\n _proto.getScrollResponder = function getScrollResponder() {\n if (this._scrollRef && this._scrollRef.getScrollResponder) {\n return this._scrollRef.getScrollResponder();\n }\n };\n\n _proto.getScrollableNode = function getScrollableNode() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n return this._scrollRef.getScrollableNode();\n } else {\n return findNodeHandle(this._scrollRef);\n }\n };\n\n _proto.getScrollRef = function getScrollRef() {\n if (this._scrollRef && this._scrollRef.getScrollRef) {\n return this._scrollRef.getScrollRef();\n } else {\n return this._scrollRef;\n }\n };\n\n _proto.setNativeProps = function setNativeProps(props) {\n if (this._scrollRef) {\n this._scrollRef.setNativeProps(props);\n }\n };\n\n _proto.getChildContext = function getChildContext() {\n return {\n virtualizedList: {\n getScrollMetrics: this._getScrollMetrics,\n horizontal: this.props.horizontal,\n getOutermostParentListRef: this._getOutermostParentListRef,\n getNestedChildState: this._getNestedChildState,\n registerAsNestedChild: this._registerAsNestedChild,\n unregisterAsNestedChild: this._unregisterAsNestedChild\n }\n };\n };\n\n _proto._getCellKey = function _getCellKey() {\n return this.context.virtualizedCell && this.context.virtualizedCell.cellKey || 'rootList';\n };\n\n _proto.hasMore = function hasMore() {\n return this._hasMore;\n };\n\n function VirtualizedList(_props, context) {\n var _this;\n\n _this = _React$PureComponent.call(this, _props, context) || this;\n\n _this._getScrollMetrics = function () {\n return _this._scrollMetrics;\n };\n\n _this._getOutermostParentListRef = function () {\n if (_this._isNestedWithSameOrientation()) {\n return _this.context.virtualizedList.getOutermostParentListRef();\n } else {\n return _assertThisInitialized(_this);\n }\n };\n\n _this._getNestedChildState = function (key) {\n var existingChildData = _this._nestedChildLists.get(key);\n\n return existingChildData && existingChildData.state;\n };\n\n _this._registerAsNestedChild = function (childList) {\n // Register the mapping between this child key and the cellKey for its cell\n var childListsInCell = _this._cellKeysToChildListKeys.get(childList.cellKey) || new Set();\n childListsInCell.add(childList.key);\n\n _this._cellKeysToChildListKeys.set(childList.cellKey, childListsInCell);\n\n var existingChildData = _this._nestedChildLists.get(childList.key);\n\n if (existingChildData && existingChildData.ref !== null) {\n console.error('A VirtualizedList contains a cell which itself contains ' + 'more than one VirtualizedList of the same orientation as the parent ' + 'list. You must pass a unique listKey prop to each sibling list.');\n }\n\n _this._nestedChildLists.set(childList.key, {\n ref: childList.ref,\n state: null\n });\n\n if (_this._hasInteracted) {\n childList.ref.recordInteraction();\n }\n };\n\n _this._unregisterAsNestedChild = function (childList) {\n _this._nestedChildLists.set(childList.key, {\n ref: null,\n state: childList.state\n });\n };\n\n _this._onUpdateSeparators = function (keys, newProps) {\n keys.forEach(function (key) {\n var ref = key != null && _this._cellRefs[key];\n ref && ref.updateSeparatorProps(newProps);\n });\n };\n\n _this._averageCellLength = 0;\n _this._cellKeysToChildListKeys = new Map();\n _this._cellRefs = {};\n _this._frames = {};\n _this._footerLength = 0;\n _this._hasDataChangedSinceEndReached = true;\n _this._hasDoneInitialScroll = false;\n _this._hasInteracted = false;\n _this._hasMore = false;\n _this._hasWarned = {};\n _this._headerLength = 0;\n _this._hiPriInProgress = false;\n _this._highestMeasuredFrameIndex = 0;\n _this._indicesToKeys = new Map();\n _this._nestedChildLists = new Map();\n _this._offsetFromParentVirtualizedList = 0;\n _this._prevParentOffset = 0;\n _this._scrollMetrics = {\n contentLength: 0,\n dOffset: 0,\n dt: 10,\n offset: 0,\n timestamp: 0,\n velocity: 0,\n visibleLength: 0\n };\n _this._scrollRef = null;\n _this._sentEndForContentLength = 0;\n _this._totalCellLength = 0;\n _this._totalCellsMeasured = 0;\n _this._viewabilityTuples = [];\n\n _this._captureScrollRef = function (ref) {\n _this._scrollRef = ref;\n };\n\n _this._defaultRenderScrollComponent = function (props) {\n var onRefresh = props.onRefresh;\n\n if (_this._isNestedWithSameOrientation()) {\n // $FlowFixMe - Typing ReactNativeComponent revealed errors\n return /*#__PURE__*/React.createElement(View, props);\n } else if (onRefresh) {\n invariant(typeof props.refreshing === 'boolean', '`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `' + JSON.stringify(props.refreshing) + '`');\n return (\n /*#__PURE__*/\n // $FlowFixMe Invalid prop usage\n React.createElement(ScrollView, _extends({}, props, {\n refreshControl: props.refreshControl == null ? /*#__PURE__*/React.createElement(RefreshControl, {\n refreshing: props.refreshing,\n onRefresh: onRefresh,\n progressViewOffset: props.progressViewOffset\n }) : props.refreshControl\n }))\n );\n } else {\n // $FlowFixMe Invalid prop usage\n return /*#__PURE__*/React.createElement(ScrollView, props);\n }\n };\n\n _this._onCellUnmount = function (cellKey) {\n var curr = _this._frames[cellKey];\n\n if (curr) {\n _this._frames[cellKey] = _objectSpread(_objectSpread({}, curr), {}, {\n inLayout: false\n });\n }\n };\n\n _this._onLayout = function (e) {\n if (_this._isNestedWithSameOrientation()) {\n // Need to adjust our scroll metrics to be relative to our containing\n // VirtualizedList before we can make claims about list item viewability\n _this.measureLayoutRelativeToContainingList();\n } else {\n _this._scrollMetrics.visibleLength = _this._selectLength(e.nativeEvent.layout);\n }\n\n _this.props.onLayout && _this.props.onLayout(e);\n\n _this._scheduleCellsToRenderUpdate();\n\n _this._maybeCallOnEndReached();\n };\n\n _this._onLayoutEmpty = function (e) {\n _this.props.onLayout && _this.props.onLayout(e);\n };\n\n _this._onLayoutFooter = function (e) {\n _this._footerLength = _this._selectLength(e.nativeEvent.layout);\n };\n\n _this._onLayoutHeader = function (e) {\n _this._headerLength = _this._selectLength(e.nativeEvent.layout);\n };\n\n _this._onContentSizeChange = function (width, height) {\n if (width > 0 && height > 0 && _this.props.initialScrollIndex != null && _this.props.initialScrollIndex > 0 && !_this._hasDoneInitialScroll) {\n _this.scrollToIndex({\n animated: false,\n index: _this.props.initialScrollIndex\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: height,\n width: width\n });\n\n _this._scheduleCellsToRenderUpdate();\n\n _this._maybeCallOnEndReached();\n };\n\n _this._convertParentScrollMetrics = function (metrics) {\n // Offset of the top of the nested list relative to the top of its parent's viewport\n var offset = metrics.offset - _this._offsetFromParentVirtualizedList; // Child's visible length is the same as its parent's\n\n var visibleLength = metrics.visibleLength;\n var dOffset = offset - _this._scrollMetrics.offset;\n var contentLength = _this._scrollMetrics.contentLength;\n return {\n visibleLength: visibleLength,\n contentLength: contentLength,\n offset: offset,\n dOffset: dOffset\n };\n };\n\n _this._onScroll = function (e) {\n _this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref._onScroll(e);\n });\n\n if (_this.props.onScroll) {\n _this.props.onScroll(e);\n }\n\n var timestamp = e.timeStamp;\n\n var visibleLength = _this._selectLength(e.nativeEvent.layoutMeasurement);\n\n var contentLength = _this._selectLength(e.nativeEvent.contentSize);\n\n var offset = _this._selectOffset(e.nativeEvent.contentOffset);\n\n var dOffset = offset - _this._scrollMetrics.offset;\n\n if (_this._isNestedWithSameOrientation()) {\n if (_this._scrollMetrics.contentLength === 0) {\n // Ignore scroll events until onLayout has been called and we\n // know our offset from our offset from our parent\n return;\n }\n\n var _this$_convertParentS = _this._convertParentScrollMetrics({\n visibleLength: visibleLength,\n offset: offset\n });\n\n visibleLength = _this$_convertParentS.visibleLength;\n contentLength = _this$_convertParentS.contentLength;\n offset = _this$_convertParentS.offset;\n dOffset = _this$_convertParentS.dOffset;\n }\n\n var dt = _this._scrollMetrics.timestamp ? Math.max(1, timestamp - _this._scrollMetrics.timestamp) : 1;\n var velocity = dOffset / dt;\n\n if (dt > 500 && _this._scrollMetrics.dt > 500 && contentLength > 5 * visibleLength && !_this._hasWarned.perf) {\n infoLog('VirtualizedList: You have a large list that is slow to update - make sure your ' + 'renderItem function renders components that follow React performance best practices ' + 'like PureComponent, shouldComponentUpdate, etc.', {\n dt: dt,\n prevDt: _this._scrollMetrics.dt,\n contentLength: contentLength\n });\n _this._hasWarned.perf = true;\n }\n\n _this._scrollMetrics = {\n contentLength: contentLength,\n dt: dt,\n dOffset: dOffset,\n offset: offset,\n timestamp: timestamp,\n velocity: velocity,\n visibleLength: visibleLength\n };\n\n _this._updateViewableItems(_this.props.data);\n\n if (!_this.props) {\n return;\n }\n\n _this._maybeCallOnEndReached();\n\n if (velocity !== 0) {\n _this._fillRateHelper.activate();\n }\n\n _this._computeBlankness();\n\n _this._scheduleCellsToRenderUpdate();\n };\n\n _this._onScrollBeginDrag = function (e) {\n _this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref._onScrollBeginDrag(e);\n });\n\n _this._viewabilityTuples.forEach(function (tuple) {\n tuple.viewabilityHelper.recordInteraction();\n });\n\n _this._hasInteracted = true;\n _this.props.onScrollBeginDrag && _this.props.onScrollBeginDrag(e);\n };\n\n _this._onScrollEndDrag = function (e) {\n 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._onMomentumScrollEnd = function (e) {\n _this._scrollMetrics.velocity = 0;\n\n _this._computeBlankness();\n\n _this.props.onMomentumScrollEnd && _this.props.onMomentumScrollEnd(e);\n };\n\n _this._updateCellsToRender = function () {\n var _this$props3 = _this.props,\n data = _this$props3.data,\n getItemCount = _this$props3.getItemCount,\n onEndReachedThreshold = _this$props3.onEndReachedThreshold;\n\n var isVirtualizationDisabled = _this._isVirtualizationDisabled();\n\n _this._updateViewableItems(data);\n\n if (!data) {\n return;\n }\n\n _this.setState(function (state) {\n var newState;\n\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 (_this._scrollMetrics.visibleLength) {\n // If we have a non-zero initialScrollIndex and run this before we've scrolled,\n // we'll wipe out the initialNumToRender rendered elements starting at initialScrollIndex.\n // So let's wait until we've scrolled the view to the right place. And until then,\n // we will trust the initialScrollIndex suggestion.\n if (!_this.props.initialScrollIndex || _this._scrollMetrics.offset) {\n newState = computeWindowedRenderLimits(_this.props, state, _this._getFrameMetricsApprox, _this._scrollMetrics);\n }\n }\n } else {\n var _this$_scrollMetrics = _this._scrollMetrics,\n contentLength = _this$_scrollMetrics.contentLength,\n offset = _this$_scrollMetrics.offset,\n visibleLength = _this$_scrollMetrics.visibleLength;\n var distanceFromEnd = contentLength - visibleLength - offset;\n var renderAhead =\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses\n * an error found when Flow v0.63 was deployed. To see the error\n * delete this comment and run Flow. */\n distanceFromEnd < onEndReachedThreshold * visibleLength ? _this.props.maxToRenderPerBatch : 0;\n newState = {\n first: 0,\n last: Math.min(state.last + renderAhead, getItemCount(data) - 1)\n };\n }\n\n if (newState && _this._nestedChildLists.size > 0) {\n var newFirst = newState.first;\n var newLast = newState.last; // If some cell in the new state has a child list in it, we should only render\n // up through that item, so that we give that list a chance to render.\n // Otherwise there's churn from multiple child lists mounting and un-mounting\n // their items.\n\n for (var ii = newFirst; ii <= newLast; ii++) {\n var cellKeyForIndex = _this._indicesToKeys.get(ii);\n\n var childListKeys = cellKeyForIndex && _this._cellKeysToChildListKeys.get(cellKeyForIndex);\n\n if (!childListKeys) {\n continue;\n }\n\n var someChildHasMore = false; // For each cell, need to check whether any child list in it has more elements to render\n\n for (var _iterator = _createForOfIteratorHelperLoose(childListKeys), _step; !(_step = _iterator()).done;) {\n var childKey = _step.value;\n\n var childList = _this._nestedChildLists.get(childKey);\n\n if (childList && childList.ref && childList.ref.hasMore()) {\n someChildHasMore = true;\n break;\n }\n }\n\n if (someChildHasMore) {\n newState.last = ii;\n break;\n }\n }\n }\n\n return newState;\n });\n };\n\n _this._createViewToken = function (index, isViewable) {\n var _this$props4 = _this.props,\n data = _this$props4.data,\n getItem = _this$props4.getItem,\n keyExtractor = _this$props4.keyExtractor;\n var item = getItem(data, index);\n return {\n index: index,\n item: item,\n key: keyExtractor(item, index),\n isViewable: isViewable\n };\n };\n\n _this._getFrameMetricsApprox = function (index) {\n var frame = _this._getFrameMetrics(index);\n\n if (frame && frame.index === index) {\n // check for invalid frames due to row re-ordering\n return frame;\n } else {\n var getItemLayout = _this.props.getItemLayout;\n invariant(!getItemLayout, 'Should not have to estimate frames when a measurement metrics function is provided');\n return {\n length: _this._averageCellLength,\n offset: _this._averageCellLength * index\n };\n }\n };\n\n _this._getFrameMetrics = function (index) {\n var _this$props5 = _this.props,\n data = _this$props5.data,\n getItem = _this$props5.getItem,\n getItemCount = _this$props5.getItemCount,\n getItemLayout = _this$props5.getItemLayout,\n keyExtractor = _this$props5.keyExtractor;\n invariant(getItemCount(data) > index, 'Tried to get frame for out of range index ' + index);\n var item = getItem(data, index);\n\n var frame = item && _this._frames[keyExtractor(item, index)];\n\n if (!frame || frame.index !== index) {\n if (getItemLayout) {\n frame = getItemLayout(data, index);\n\n if (__DEV__) {\n var frameType = PropTypes.shape({\n length: PropTypes.number.isRequired,\n offset: PropTypes.number.isRequired,\n index: PropTypes.number.isRequired\n }).isRequired;\n PropTypes.checkPropTypes({\n frame: frameType\n }, {\n frame: frame\n }, 'frame', 'VirtualizedList.getItemLayout');\n }\n }\n }\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.63 was deployed. To see the error delete this\n * comment and run Flow. */\n\n\n return frame;\n };\n\n invariant(!_props.onScroll || !_props.onScroll.__isNative, 'Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent ' + 'to support native onScroll events with useNativeDriver');\n invariant(_props.windowSize > 0, 'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.');\n _this._fillRateHelper = new FillRateHelper(_this._getFrameMetrics);\n _this._updateCellsToRenderBatcher = new Batchinator(_this._updateCellsToRender, _this.props.updateCellsBatchingPeriod);\n\n if (_this.props.viewabilityConfigCallbackPairs) {\n _this._viewabilityTuples = _this.props.viewabilityConfigCallbackPairs.map(function (pair) {\n return {\n viewabilityHelper: new ViewabilityHelper(pair.viewabilityConfig),\n onViewableItemsChanged: pair.onViewableItemsChanged\n };\n });\n } else if (_this.props.onViewableItemsChanged) {\n _this._viewabilityTuples.push({\n viewabilityHelper: new ViewabilityHelper(_this.props.viewabilityConfig),\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) + _this.props.initialNumToRender) - 1\n };\n\n if (_this._isNestedWithSameOrientation()) {\n var storedState = _this.context.virtualizedList.getNestedChildState(_this.props.listKey || _this._getCellKey());\n\n if (storedState) {\n initialState = storedState;\n _this.state = storedState;\n _this._frames = storedState.frames;\n }\n }\n\n _this.state = initialState;\n return _this;\n }\n\n _proto.componentDidMount = function componentDidMount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.virtualizedList.registerAsNestedChild({\n cellKey: this._getCellKey(),\n key: this.props.listKey || this._getCellKey(),\n ref: this\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.virtualizedList.unregisterAsNestedChild({\n key: this.props.listKey || this._getCellKey(),\n state: {\n first: this.state.first,\n last: this.state.last,\n frames: this._frames\n }\n });\n }\n\n this._updateViewableItems(null);\n\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n\n this._viewabilityTuples.forEach(function (tuple) {\n tuple.viewabilityHelper.dispose();\n });\n\n this._fillRateHelper.deactivateAndFlush();\n };\n\n VirtualizedList.getDerivedStateFromProps = function getDerivedStateFromProps(newProps, prevState) {\n var data = newProps.data,\n getItemCount = newProps.getItemCount,\n maxToRenderPerBatch = newProps.maxToRenderPerBatch; // first and last could be stale (e.g. if a new, shorter items props is passed in), so we make\n // sure we're rendering a reasonable range here.\n\n return {\n first: Math.max(0, Math.min(prevState.first, getItemCount(data) - 1 - maxToRenderPerBatch)),\n last: Math.max(0, Math.min(prevState.last, getItemCount(data) - 1))\n };\n };\n\n _proto._pushCells = function _pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, first, last, inversionStyle) {\n var _this2 = this;\n\n var _this$props6 = this.props,\n CellRendererComponent = _this$props6.CellRendererComponent,\n ItemSeparatorComponent = _this$props6.ItemSeparatorComponent,\n data = _this$props6.data,\n getItem = _this$props6.getItem,\n getItemCount = _this$props6.getItemCount,\n horizontal = _this$props6.horizontal,\n keyExtractor = _this$props6.keyExtractor;\n var stickyOffset = this.props.ListHeaderComponent ? 1 : 0;\n var end = getItemCount(data) - 1;\n var prevCellKey;\n last = Math.min(end, last);\n\n var _loop = function _loop(ii) {\n var item = getItem(data, ii);\n var key = keyExtractor(item, ii);\n\n _this2._indicesToKeys.set(ii, key);\n\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n stickyHeaderIndices.push(cells.length);\n }\n\n cells.push( /*#__PURE__*/React.createElement(CellRenderer, {\n CellRendererComponent: CellRendererComponent,\n ItemSeparatorComponent: ii < end ? ItemSeparatorComponent : undefined,\n cellKey: key,\n fillRateHelper: _this2._fillRateHelper,\n horizontal: horizontal,\n index: ii,\n inversionStyle: inversionStyle,\n item: item,\n key: key,\n prevCellKey: prevCellKey,\n onUpdateSeparators: _this2._onUpdateSeparators,\n onLayout: function onLayout(e) {\n return _this2._onCellLayout(e, key, ii);\n },\n onUnmount: _this2._onCellUnmount,\n parentProps: _this2.props,\n ref: function ref(_ref) {\n _this2._cellRefs[key] = _ref;\n }\n }));\n prevCellKey = key;\n };\n\n for (var ii = first; ii <= last; ii++) {\n _loop(ii);\n }\n };\n\n _proto._isVirtualizationDisabled = function _isVirtualizationDisabled() {\n return this.props.disableVirtualization || false;\n };\n\n _proto._isNestedWithSameOrientation = function _isNestedWithSameOrientation() {\n var nestedContext = this.context.virtualizedList;\n return !!(nestedContext && !!nestedContext.horizontal === !!this.props.horizontal);\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n if (__DEV__) {\n var flatStyles = flattenStyle(this.props.contentContainerStyle);\n warning(flatStyles == null || flatStyles.flexWrap !== 'wrap', '`flexWrap: `wrap`` is not supported with the `VirtualizedList` components.' + 'Consider using `numColumns` with `FlatList` instead.');\n }\n\n var _this$props7 = this.props,\n ListEmptyComponent = _this$props7.ListEmptyComponent,\n ListFooterComponent = _this$props7.ListFooterComponent,\n ListHeaderComponent = _this$props7.ListHeaderComponent;\n var _this$props8 = this.props,\n data = _this$props8.data,\n horizontal = _this$props8.horizontal;\n\n var isVirtualizationDisabled = this._isVirtualizationDisabled();\n\n var inversionStyle = this.props.inverted ? this.props.horizontal ? styles.horizontallyInverted : styles.verticallyInverted : null;\n var cells = [];\n var stickyIndicesFromProps = new Set(this.props.stickyHeaderIndices);\n var stickyHeaderIndices = [];\n\n if (ListHeaderComponent) {\n if (stickyIndicesFromProps.has(0)) {\n stickyHeaderIndices.push(0);\n }\n\n var element = /*#__PURE__*/React.isValidElement(ListHeaderComponent) ? ListHeaderComponent :\n /*#__PURE__*/\n // $FlowFixMe\n React.createElement(ListHeaderComponent, null);\n cells.push( /*#__PURE__*/React.createElement(VirtualizedCellWrapper, {\n cellKey: this._getCellKey() + '-header',\n key: \"$header\"\n }, /*#__PURE__*/React.createElement(View, {\n onLayout: this._onLayoutHeader,\n style: StyleSheet.compose(inversionStyle, this.props.ListHeaderComponentStyle)\n }, // $FlowFixMe - Typing ReactNativeComponent revealed errors\n element)));\n }\n\n var itemCount = this.props.getItemCount(data);\n\n if (itemCount > 0) {\n _usedIndexForKey = false;\n _keylessItemComponentName = '';\n var spacerKey = !horizontal ? 'height' : 'width';\n var lastInitialIndex = this.props.initialScrollIndex ? -1 : this.props.initialNumToRender - 1;\n var _this$state = this.state,\n first = _this$state.first,\n last = _this$state.last;\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, 0, lastInitialIndex, inversionStyle);\n\n var firstAfterInitial = Math.max(lastInitialIndex + 1, first);\n\n if (!isVirtualizationDisabled && first > lastInitialIndex + 1) {\n var insertedStickySpacer = false;\n\n if (stickyIndicesFromProps.size > 0) {\n var stickyOffset = ListHeaderComponent ? 1 : 0; // See if there are any sticky headers in the virtualized space that we need to render.\n\n for (var ii = firstAfterInitial - 1; ii > lastInitialIndex; ii--) {\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n var _ref2, _ref3;\n\n var initBlock = this._getFrameMetricsApprox(lastInitialIndex);\n\n var stickyBlock = this._getFrameMetricsApprox(ii);\n\n var leadSpace = stickyBlock.offset - initBlock.offset - (this.props.initialScrollIndex ? 0 : initBlock.length);\n cells.push( /*#__PURE__*/React.createElement(View, {\n key: \"$sticky_lead\",\n style: (_ref2 = {}, _ref2[spacerKey] = leadSpace, _ref2)\n }));\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, ii, ii, inversionStyle);\n\n var trailSpace = this._getFrameMetricsApprox(first).offset - (stickyBlock.offset + stickyBlock.length);\n cells.push( /*#__PURE__*/React.createElement(View, {\n key: \"$sticky_trail\",\n style: (_ref3 = {}, _ref3[spacerKey] = trailSpace, _ref3)\n }));\n insertedStickySpacer = true;\n break;\n }\n }\n }\n\n if (!insertedStickySpacer) {\n var _ref4;\n\n var _initBlock = this._getFrameMetricsApprox(lastInitialIndex);\n\n var firstSpace = this._getFrameMetricsApprox(first).offset - (_initBlock.offset + _initBlock.length);\n\n cells.push( /*#__PURE__*/React.createElement(View, {\n key: \"$lead_spacer\",\n style: (_ref4 = {}, _ref4[spacerKey] = firstSpace, _ref4)\n }));\n }\n }\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, firstAfterInitial, last, inversionStyle);\n\n if (!this._hasWarned.keys && _usedIndexForKey) {\n console.warn('VirtualizedList: missing keys for items, make sure to specify a key or id property on each ' + 'item or provide a custom keyExtractor.', _keylessItemComponentName);\n this._hasWarned.keys = true;\n }\n\n if (!isVirtualizationDisabled && last < itemCount - 1) {\n var _ref5;\n\n var lastFrame = this._getFrameMetricsApprox(last); // Without getItemLayout, we limit our tail spacer to the _highestMeasuredFrameIndex to\n // prevent the user for hyperscrolling into un-measured area because otherwise content will\n // likely jump around as it renders in above the viewport.\n\n\n var end = this.props.getItemLayout ? itemCount - 1 : Math.min(itemCount - 1, this._highestMeasuredFrameIndex);\n\n var endFrame = this._getFrameMetricsApprox(end);\n\n var tailSpacerLength = endFrame.offset + endFrame.length - (lastFrame.offset + lastFrame.length);\n cells.push( /*#__PURE__*/React.createElement(View, {\n key: \"$tail_spacer\",\n style: (_ref5 = {}, _ref5[spacerKey] = tailSpacerLength, _ref5)\n }));\n }\n } else if (ListEmptyComponent) {\n var _element = /*#__PURE__*/React.isValidElement(ListEmptyComponent) ? ListEmptyComponent :\n /*#__PURE__*/\n // $FlowFixMe\n React.createElement(ListEmptyComponent, null);\n\n cells.push( /*#__PURE__*/React.cloneElement(_element, {\n key: '$empty',\n onLayout: function onLayout(event) {\n _this3._onLayoutEmpty(event);\n\n if (_element.props.onLayout) {\n _element.props.onLayout(event);\n }\n },\n style: StyleSheet.compose(inversionStyle, _element.props.style)\n }));\n }\n\n if (ListFooterComponent) {\n var _element2 = /*#__PURE__*/React.isValidElement(ListFooterComponent) ? ListFooterComponent :\n /*#__PURE__*/\n // $FlowFixMe\n React.createElement(ListFooterComponent, null);\n\n cells.push( /*#__PURE__*/React.createElement(VirtualizedCellWrapper, {\n cellKey: this._getCellKey() + '-footer',\n key: \"$footer\"\n }, /*#__PURE__*/React.createElement(View, {\n onLayout: this._onLayoutFooter,\n style: StyleSheet.compose(inversionStyle, this.props.ListFooterComponentStyle)\n }, // $FlowFixMe - Typing ReactNativeComponent revealed errors\n _element2)));\n }\n\n var scrollProps = _objectSpread(_objectSpread({}, this.props), {}, {\n onContentSizeChange: this._onContentSizeChange,\n onLayout: this._onLayout,\n onScroll: this._onScroll,\n onScrollBeginDrag: this._onScrollBeginDrag,\n onScrollEndDrag: this._onScrollEndDrag,\n onMomentumScrollEnd: this._onMomentumScrollEnd,\n scrollEventThrottle: this.props.scrollEventThrottle,\n // TODO: Android support\n invertStickyHeaders: this.props.invertStickyHeaders !== undefined ? this.props.invertStickyHeaders : this.props.inverted,\n stickyHeaderIndices: stickyHeaderIndices\n });\n\n if (inversionStyle) {\n /* $FlowFixMe(>=0.70.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.70 was deployed. To see the error delete\n * this comment and run Flow. */\n scrollProps.style = [inversionStyle, this.props.style];\n }\n\n this._hasMore = this.state.last < this.props.getItemCount(this.props.data) - 1;\n var ret = /*#__PURE__*/React.cloneElement((this.props.renderScrollComponent || this._defaultRenderScrollComponent)(scrollProps), {\n ref: this._captureScrollRef\n }, cells);\n\n if (this.props.debug) {\n return /*#__PURE__*/React.createElement(View, {\n style: styles.debug\n }, ret, this._renderDebugOverlay());\n } else {\n return ret;\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props9 = this.props,\n data = _this$props9.data,\n extraData = _this$props9.extraData;\n\n if (data !== prevProps.data || extraData !== prevProps.extraData) {\n this._hasDataChangedSinceEndReached = true; // clear the viewableIndices cache to also trigger\n // the onViewableItemsChanged callback with the new data\n\n this._viewabilityTuples.forEach(function (tuple) {\n tuple.viewabilityHelper.resetViewableIndices();\n });\n } // The `this._hiPriInProgress` is guaranteeing a hiPri cell update will only happen\n // once per fiber update. The `_scheduleCellsToRenderUpdate` will set it to true\n // if a hiPri update needs to perform. If `componentDidUpdate` is triggered with\n // `this._hiPriInProgress=true`, means it's triggered by the hiPri update. The\n // `_scheduleCellsToRenderUpdate` will check this condition and not perform\n // another hiPri update.\n\n\n var hiPriInProgress = this._hiPriInProgress;\n\n this._scheduleCellsToRenderUpdate(); // Make sure setting `this._hiPriInProgress` back to false after `componentDidUpdate`\n // is triggered with `this._hiPriInProgress = true`\n\n\n if (hiPriInProgress) {\n this._hiPriInProgress = false;\n }\n };\n\n _proto._computeBlankness = function _computeBlankness() {\n this._fillRateHelper.computeBlankness(this.props, this.state, this._scrollMetrics);\n } // $FlowFixMe\n ; // $FlowFixMe\n\n\n _proto._onCellLayout = function _onCellLayout(e, cellKey, index) {\n var layout = e.nativeEvent.layout;\n var next = {\n offset: this._selectOffset(layout),\n length: this._selectLength(layout),\n index: index,\n inLayout: true\n };\n var curr = this._frames[cellKey];\n\n if (!curr || next.offset !== curr.offset || next.length !== curr.length || index !== curr.index) {\n this._totalCellLength += next.length - (curr ? curr.length : 0);\n this._totalCellsMeasured += curr ? 0 : 1;\n this._averageCellLength = this._totalCellLength / this._totalCellsMeasured;\n this._frames[cellKey] = next;\n this._highestMeasuredFrameIndex = Math.max(this._highestMeasuredFrameIndex, index);\n\n this._scheduleCellsToRenderUpdate();\n } else {\n this._frames[cellKey].inLayout = true;\n }\n\n 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 this._computeBlankness();\n\n this._updateViewableItems(this.props.data);\n };\n\n _proto.measureLayoutRelativeToContainingList = function measureLayoutRelativeToContainingList() {\n var _this4 = this; // TODO (T35574538): findNodeHandle sometimes crashes with \"Unable to find\n // node on an unmounted component\" during scrolling\n\n\n try {\n if (!this._scrollRef) {\n return;\n } // We are asuming that getOutermostParentListRef().getScrollRef()\n // is a non-null reference to a ScrollView\n\n\n this._scrollRef.measureLayout(this.context.virtualizedList.getOutermostParentListRef().getScrollRef().getNativeScrollRef(), function (x, y, width, height) {\n _this4._offsetFromParentVirtualizedList = _this4._selectOffset({\n x: x,\n y: y\n });\n _this4._scrollMetrics.contentLength = _this4._selectLength({\n width: width,\n height: height\n });\n\n var scrollMetrics = _this4._convertParentScrollMetrics(_this4.context.virtualizedList.getScrollMetrics());\n\n _this4._scrollMetrics.visibleLength = scrollMetrics.visibleLength;\n _this4._scrollMetrics.offset = scrollMetrics.offset;\n }, function (error) {\n console.warn(\"VirtualizedList: Encountered an error while measuring a list's\" + ' offset from its containing VirtualizedList.');\n });\n } catch (error) {\n console.warn('measureLayoutRelativeToContainingList threw an error', error.stack);\n }\n };\n\n _proto._renderDebugOverlay = function _renderDebugOverlay() {\n var normalize = this._scrollMetrics.visibleLength / (this._scrollMetrics.contentLength || 1);\n var framesInLayout = [];\n var itemCount = this.props.getItemCount(this.props.data);\n\n for (var ii = 0; ii < itemCount; ii++) {\n var frame = this._getFrameMetricsApprox(ii);\n /* $FlowFixMe(>=0.68.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.68 was deployed. To see the error delete this\n * comment and run Flow. */\n\n\n if (frame.inLayout) {\n framesInLayout.push(frame);\n }\n }\n\n var windowTop = this._getFrameMetricsApprox(this.state.first).offset;\n\n var frameLast = this._getFrameMetricsApprox(this.state.last);\n\n var windowLen = frameLast.offset + frameLast.length - windowTop;\n var visTop = this._scrollMetrics.offset;\n var visLen = this._scrollMetrics.visibleLength;\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlay]\n }, framesInLayout.map(function (f, ii) {\n return /*#__PURE__*/React.createElement(View, {\n key: 'f' + ii,\n style: [styles.debugOverlayBase, styles.debugOverlayFrame, {\n top: f.offset * normalize,\n height: f.length * normalize\n }]\n });\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlayFrameLast, {\n top: windowTop * normalize,\n height: windowLen * normalize\n }]\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlayFrameVis, {\n top: visTop * normalize,\n height: visLen * normalize\n }]\n }));\n };\n\n _proto._selectLength = function _selectLength(metrics) {\n return !this.props.horizontal ? metrics.height : metrics.width;\n };\n\n _proto._selectOffset = function _selectOffset(metrics) {\n return !this.props.horizontal ? metrics.y : metrics.x;\n };\n\n _proto._maybeCallOnEndReached = function _maybeCallOnEndReached() {\n var _this$props10 = this.props,\n data = _this$props10.data,\n getItemCount = _this$props10.getItemCount,\n onEndReached = _this$props10.onEndReached,\n onEndReachedThreshold = _this$props10.onEndReachedThreshold;\n var _this$_scrollMetrics2 = this._scrollMetrics,\n contentLength = _this$_scrollMetrics2.contentLength,\n visibleLength = _this$_scrollMetrics2.visibleLength,\n offset = _this$_scrollMetrics2.offset;\n var distanceFromEnd = contentLength - visibleLength - offset;\n\n if (onEndReached && this.state.last === getItemCount(data) - 1 &&\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.63 was deployed. To see the error delete this\n * comment and run Flow. */\n distanceFromEnd < onEndReachedThreshold * visibleLength && (this._hasDataChangedSinceEndReached || this._scrollMetrics.contentLength !== this._sentEndForContentLength)) {\n // Only call onEndReached once for a given dataset + content length.\n this._hasDataChangedSinceEndReached = false;\n this._sentEndForContentLength = this._scrollMetrics.contentLength;\n onEndReached({\n distanceFromEnd: distanceFromEnd\n });\n }\n };\n\n _proto._scheduleCellsToRenderUpdate = function _scheduleCellsToRenderUpdate() {\n var _this$state2 = this.state,\n first = _this$state2.first,\n last = _this$state2.last;\n var _this$_scrollMetrics3 = this._scrollMetrics,\n offset = _this$_scrollMetrics3.offset,\n visibleLength = _this$_scrollMetrics3.visibleLength,\n velocity = _this$_scrollMetrics3.velocity;\n var itemCount = this.props.getItemCount(this.props.data);\n var hiPri = false;\n var scrollingThreshold =\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.63 was deployed. To see the error delete\n * this comment and run Flow. */\n this.props.onEndReachedThreshold * visibleLength / 2; // Mark as high priority if we're close to the start of the first item\n // But only if there are items before the first rendered item\n\n if (first > 0) {\n var distTop = offset - this._getFrameMetricsApprox(first).offset;\n\n hiPri = hiPri || distTop < 0 || velocity < -2 && distTop < scrollingThreshold;\n } // Mark as high priority if we're close to the end of the last item\n // But only if there are items after the last rendered item\n\n\n if (last < itemCount - 1) {\n var distBottom = this._getFrameMetricsApprox(last).offset - (offset + visibleLength);\n hiPri = hiPri || distBottom < 0 || velocity > 2 && distBottom < scrollingThreshold;\n } // Only trigger high-priority updates if we've actually rendered cells,\n // and with that size estimate, accurately compute how many cells we should render.\n // Otherwise, it would just render as many cells as it can (of zero dimension),\n // each time through attempting to render more (limited by maxToRenderPerBatch),\n // starving the renderer from actually laying out the objects and computing _averageCellLength.\n // If this is triggered in an `componentDidUpdate` followed by a hiPri cellToRenderUpdate\n // We shouldn't do another hipri cellToRenderUpdate\n\n\n if (hiPri && (this._averageCellLength || this.props.getItemLayout) && !this._hiPriInProgress) {\n this._hiPriInProgress = true; // Don't worry about interactions when scrolling quickly; focus on filling content as fast\n // as possible.\n\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n\n this._updateCellsToRender();\n\n return;\n } else {\n this._updateCellsToRenderBatcher.schedule();\n }\n } // $FlowFixMe\n ;\n\n _proto._updateViewableItems = function _updateViewableItems(data) {\n var _this5 = this;\n\n var getItemCount = this.props.getItemCount;\n\n this._viewabilityTuples.forEach(function (tuple) {\n tuple.viewabilityHelper.onUpdate(getItemCount(data), _this5._scrollMetrics.offset, _this5._scrollMetrics.visibleLength, _this5._getFrameMetrics, _this5._createViewToken, tuple.onViewableItemsChanged, _this5.state);\n });\n };\n\n return VirtualizedList;\n}(React.PureComponent);\n\nVirtualizedList.defaultProps = {\n disableVirtualization: false,\n horizontal: false,\n initialNumToRender: 10,\n keyExtractor: function keyExtractor(item, index) {\n if (item.key != null) {\n return item.key;\n }\n\n if (item.id != null) {\n return item.id;\n }\n\n _usedIndexForKey = true;\n\n if (item.type && item.type.displayName) {\n _keylessItemComponentName = item.type.displayName;\n }\n\n return String(index);\n },\n maxToRenderPerBatch: 10,\n onEndReachedThreshold: 2,\n // multiples of length\n scrollEventThrottle: 50,\n updateCellsBatchingPeriod: 50,\n windowSize: 21 // multiples of length\n\n};\nVirtualizedList.contextTypes = {\n virtualizedCell: PropTypes.shape({\n cellKey: PropTypes.string\n }),\n virtualizedList: PropTypes.shape({\n getScrollMetrics: PropTypes.func,\n horizontal: PropTypes.bool,\n getOutermostParentListRef: PropTypes.func,\n getNestedChildState: PropTypes.func,\n registerAsNestedChild: PropTypes.func,\n unregisterAsNestedChild: PropTypes.func\n })\n};\nVirtualizedList.childContextTypes = {\n virtualizedList: PropTypes.shape({\n getScrollMetrics: PropTypes.func,\n horizontal: PropTypes.bool,\n getOutermostParentListRef: PropTypes.func,\n getNestedChildState: PropTypes.func,\n registerAsNestedChild: PropTypes.func,\n unregisterAsNestedChild: PropTypes.func\n })\n};\n\nvar CellRenderer = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CellRenderer, _React$Component);\n\n function CellRenderer() {\n var _this6;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this6 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this6.state = {\n separatorProps: {\n highlighted: false,\n leadingItem: _this6.props.item\n }\n };\n _this6._separators = {\n highlight: function highlight() {\n var _this6$props = _this6.props,\n cellKey = _this6$props.cellKey,\n prevCellKey = _this6$props.prevCellKey;\n\n _this6.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: true\n });\n },\n unhighlight: function unhighlight() {\n var _this6$props2 = _this6.props,\n cellKey = _this6$props2.cellKey,\n prevCellKey = _this6$props2.prevCellKey;\n\n _this6.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: false\n });\n },\n updateProps: function updateProps(select, newProps) {\n var _this6$props3 = _this6.props,\n cellKey = _this6$props3.cellKey,\n prevCellKey = _this6$props3.prevCellKey;\n\n _this6.props.onUpdateSeparators([select === 'leading' ? prevCellKey : cellKey], newProps);\n }\n };\n return _this6;\n }\n\n var _proto2 = CellRenderer.prototype;\n\n _proto2.getChildContext = function getChildContext() {\n return {\n virtualizedCell: {\n cellKey: this.props.cellKey\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 _proto2.updateSeparatorProps = function updateSeparatorProps(newProps) {\n this.setState(function (state) {\n return {\n separatorProps: _objectSpread(_objectSpread({}, state.separatorProps), newProps)\n };\n });\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n this.props.onUnmount(this.props.cellKey);\n };\n\n _proto2.render = function render() {\n var _this$props11 = this.props,\n CellRendererComponent = _this$props11.CellRendererComponent,\n ItemSeparatorComponent = _this$props11.ItemSeparatorComponent,\n fillRateHelper = _this$props11.fillRateHelper,\n horizontal = _this$props11.horizontal,\n item = _this$props11.item,\n index = _this$props11.index,\n inversionStyle = _this$props11.inversionStyle,\n parentProps = _this$props11.parentProps;\n var renderItem = parentProps.renderItem,\n getItemLayout = parentProps.getItemLayout;\n invariant(renderItem, 'no renderItem!');\n var element = renderItem({\n item: item,\n index: index,\n separators: this._separators\n });\n var onLayout =\n /* $FlowFixMe(>=0.68.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.68 was deployed. To see the error delete this\n * comment and run Flow. */\n getItemLayout && !parentProps.debug && !fillRateHelper.enabled() ? undefined : this.props.onLayout; // NOTE: that when this is a sticky header, `onLayout` will get automatically extracted and\n // called explicitly by `ScrollViewStickyHeader`.\n\n var itemSeparator = ItemSeparatorComponent && /*#__PURE__*/React.createElement(ItemSeparatorComponent, this.state.separatorProps);\n var cellStyle = inversionStyle ? horizontal ? [styles.rowReverse, inversionStyle] : [styles.columnReverse, inversionStyle] : horizontal ? [styles.row, inversionStyle] : inversionStyle;\n\n if (!CellRendererComponent) {\n return (\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.89.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete\n * this comment and run Flow. */\n React.createElement(View, {\n style: cellStyle,\n onLayout: onLayout\n }, element, itemSeparator)\n );\n }\n\n return /*#__PURE__*/React.createElement(CellRendererComponent, _extends({}, this.props, {\n style: cellStyle,\n onLayout: onLayout\n }), element, itemSeparator);\n };\n\n return CellRenderer;\n}(React.Component);\n\nCellRenderer.childContextTypes = {\n virtualizedCell: PropTypes.shape({\n cellKey: PropTypes.string\n })\n};\n\nvar VirtualizedCellWrapper = /*#__PURE__*/function (_React$Component2) {\n _inheritsLoose(VirtualizedCellWrapper, _React$Component2);\n\n function VirtualizedCellWrapper() {\n return _React$Component2.apply(this, arguments) || this;\n }\n\n var _proto3 = VirtualizedCellWrapper.prototype;\n\n _proto3.getChildContext = function getChildContext() {\n return {\n virtualizedCell: {\n cellKey: this.props.cellKey\n }\n };\n };\n\n _proto3.render = function render() {\n return this.props.children;\n };\n\n return VirtualizedCellWrapper;\n}(React.Component);\n\nVirtualizedCellWrapper.childContextTypes = {\n virtualizedCell: PropTypes.shape({\n cellKey: PropTypes.string\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) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport deepDiffer from '../deepDiffer';\nimport * as React from 'react';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport View from '../../../exports/View';\nimport VirtualizedList from '../VirtualizedList';\nimport invariant from 'fbjs/lib/invariant';\n\nvar defaultProps = _objectSpread(_objectSpread({}, VirtualizedList.defaultProps), {}, {\n numColumns: 1,\n\n /**\n * Enabling this prop on Android greatly improves scrolling performance with no known issues.\n * The alternative is that scrolling on Android is unusably bad. Enabling it on iOS has a few\n * known issues.\n */\n removeClippedSubviews: false\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 */\n\n\nvar FlatList = /*#__PURE__*/function (_React$PureComponent) {\n _inheritsLoose(FlatList, _React$PureComponent);\n\n var _proto = FlatList.prototype;\n /**\n * Scrolls to the end of the content. May be janky without `getItemLayout` prop.\n */\n\n _proto.scrollToEnd = function scrollToEnd(params) {\n if (this._listRef) {\n this._listRef.scrollToEnd(params);\n }\n }\n /**\n * Scrolls to the item at the specified index such that it is positioned in the viewable area\n * such that `viewPosition` 0 places it at the top, 1 at the bottom, and 0.5 centered in the\n * middle. `viewOffset` is a fixed number of pixels to offset the final target position.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n ;\n\n _proto.scrollToIndex = function scrollToIndex(params) {\n if (this._listRef) {\n this._listRef.scrollToIndex(params);\n }\n }\n /**\n * Requires linear scan through data - use `scrollToIndex` instead if possible.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n ;\n\n _proto.scrollToItem = function scrollToItem(params) {\n if (this._listRef) {\n this._listRef.scrollToItem(params);\n }\n }\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Check out [scrollToOffset](docs/virtualizedlist.html#scrolltooffset) of VirtualizedList\n */\n ;\n\n _proto.scrollToOffset = function scrollToOffset(params) {\n if (this._listRef) {\n this._listRef.scrollToOffset(params);\n }\n }\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n ;\n\n _proto.recordInteraction = function recordInteraction() {\n if (this._listRef) {\n this._listRef.recordInteraction();\n }\n }\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n ;\n\n _proto.flashScrollIndicators = function flashScrollIndicators() {\n if (this._listRef) {\n this._listRef.flashScrollIndicators();\n }\n }\n /**\n * Provides a handle to the underlying scroll responder.\n */\n ;\n\n _proto.getScrollResponder = function getScrollResponder() {\n if (this._listRef) {\n return this._listRef.getScrollResponder();\n }\n }\n /**\n * Provides a reference to the underlying host component\n */\n ;\n\n _proto.getNativeScrollRef = function getNativeScrollRef() {\n if (this._listRef) {\n return this._listRef.getScrollRef();\n }\n };\n\n _proto.getScrollableNode = function getScrollableNode() {\n if (this._listRef) {\n return this._listRef.getScrollableNode();\n }\n };\n\n _proto.setNativeProps = function setNativeProps(props) {\n if (this._listRef) {\n this._listRef.setNativeProps(props);\n }\n };\n\n function FlatList(props) {\n var _this;\n\n _this = _React$PureComponent.call(this, props) || this;\n _this._virtualizedListPairs = [];\n\n _this._captureRef = function (ref) {\n _this._listRef = ref;\n };\n\n _this._getItem = function (data, index) {\n var numColumns = _this.props.numColumns;\n\n if (numColumns > 1) {\n var ret = [];\n\n for (var kk = 0; kk < numColumns; kk++) {\n var _item = data[index * numColumns + kk];\n\n if (_item != null) {\n ret.push(_item);\n }\n }\n\n return ret;\n } else {\n return data[index];\n }\n };\n\n _this._getItemCount = function (data) {\n return data ? Math.ceil(data.length / _this.props.numColumns) : 0;\n };\n\n _this._keyExtractor = function (items, index) {\n var _this$props = _this.props,\n keyExtractor = _this$props.keyExtractor,\n numColumns = _this$props.numColumns;\n\n if (numColumns > 1) {\n invariant(Array.isArray(items), 'FlatList: Encountered internal consistency error, expected each item to consist of an ' + 'array with 1-%s columns; instead, received a single item.', numColumns);\n return items.map(function (it, kk) {\n return keyExtractor(it, index * numColumns + kk);\n }).join(':');\n } else {\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.63 was deployed. To see the error delete this\n * comment and run Flow. */\n return keyExtractor(items, index);\n }\n };\n\n _this._renderItem = function (info) {\n var _this$props2 = _this.props,\n renderItem = _this$props2.renderItem,\n numColumns = _this$props2.numColumns,\n columnWrapperStyle = _this$props2.columnWrapperStyle;\n\n if (numColumns > 1) {\n var _item2 = info.item,\n _index = info.index;\n invariant(Array.isArray(_item2), 'Expected array of items with numColumns > 1');\n return /*#__PURE__*/React.createElement(View, {\n style: StyleSheet.compose(styles.row, columnWrapperStyle)\n }, _item2.map(function (it, kk) {\n var element = renderItem({\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 renderItem(info);\n }\n };\n\n _this._checkProps(_this.props);\n\n if (_this.props.viewabilityConfigCallbackPairs) {\n _this._virtualizedListPairs = _this.props.viewabilityConfigCallbackPairs.map(function (pair) {\n return {\n viewabilityConfig: pair.viewabilityConfig,\n onViewableItemsChanged: _this._createOnViewableItemsChanged(pair.onViewableItemsChanged)\n };\n });\n } else if (_this.props.onViewableItemsChanged) {\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.63 was deployed. To see the error delete this\n * comment and run Flow. */\n _this._virtualizedListPairs.push({\n viewabilityConfig: _this.props.viewabilityConfig,\n onViewableItemsChanged: _this._createOnViewableItemsChanged(_this.props.onViewableItemsChanged)\n });\n }\n\n return _this;\n }\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n invariant(prevProps.numColumns === this.props.numColumns, 'Changing numColumns on the fly is not supported. Change the key prop on FlatList when ' + 'changing the number of columns to force a fresh render of the component.');\n invariant(prevProps.onViewableItemsChanged === this.props.onViewableItemsChanged, 'Changing onViewableItemsChanged on the fly is not supported');\n invariant(!deepDiffer(prevProps.viewabilityConfig, this.props.viewabilityConfig), 'Changing viewabilityConfig on the fly is not supported');\n invariant(prevProps.viewabilityConfigCallbackPairs === this.props.viewabilityConfigCallbackPairs, 'Changing viewabilityConfigCallbackPairs on the fly is not supported');\n\n this._checkProps(this.props);\n };\n\n _proto._checkProps = function _checkProps(props) {\n var getItem = props.getItem,\n getItemCount = props.getItemCount,\n horizontal = props.horizontal,\n numColumns = props.numColumns,\n columnWrapperStyle = props.columnWrapperStyle,\n onViewableItemsChanged = props.onViewableItemsChanged,\n viewabilityConfigCallbackPairs = props.viewabilityConfigCallbackPairs;\n invariant(!getItem && !getItemCount, 'FlatList does not support custom data formats.');\n\n if (numColumns > 1) {\n invariant(!horizontal, 'numColumns does not support horizontal.');\n } else {\n invariant(!columnWrapperStyle, 'columnWrapperStyle not supported for single column lists');\n }\n\n invariant(!(onViewableItemsChanged && viewabilityConfigCallbackPairs), 'FlatList does not support setting both onViewableItemsChanged and ' + 'viewabilityConfigCallbackPairs.');\n };\n\n _proto._pushMultiColumnViewable = function _pushMultiColumnViewable(arr, v) {\n var _this$props3 = this.props,\n numColumns = _this$props3.numColumns,\n keyExtractor = _this$props3.keyExtractor;\n v.item.forEach(function (item, ii) {\n invariant(v.index != null, 'Missing index!');\n var index = v.index * numColumns + ii;\n arr.push(_objectSpread(_objectSpread({}, v), {}, {\n item: item,\n key: keyExtractor(item, index),\n index: index\n }));\n });\n };\n\n _proto._createOnViewableItemsChanged = function _createOnViewableItemsChanged(onViewableItemsChanged) {\n var _this2 = this;\n\n return function (info) {\n var numColumns = _this2.props.numColumns;\n\n if (onViewableItemsChanged) {\n if (numColumns > 1) {\n var changed = [];\n var viewableItems = [];\n info.viewableItems.forEach(function (v) {\n return _this2._pushMultiColumnViewable(viewableItems, v);\n });\n info.changed.forEach(function (v) {\n return _this2._pushMultiColumnViewable(changed, v);\n });\n onViewableItemsChanged({\n viewableItems: viewableItems,\n changed: changed\n });\n } else {\n onViewableItemsChanged(info);\n }\n }\n };\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(VirtualizedList, _extends({}, this.props, {\n renderItem: this._renderItem,\n getItem: this._getItem,\n getItemCount: this._getItemCount,\n keyExtractor: this._keyExtractor,\n ref: this._captureRef,\n viewabilityConfigCallbackPairs: this._virtualizedListPairs\n }));\n };\n\n return FlatList;\n}(React.PureComponent);\n\nFlatList.defaultProps = defaultProps;\nvar styles = StyleSheet.create({\n row: {\n flexDirection: 'row'\n }\n});\nexport default FlatList;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport FlatList from '../../vendor/react-native/FlatList';\nexport default FlatList;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar assets = [];\nexport function registerAsset(asset) {\n // `push` returns new array length, so the first asset will\n // get id 1 (not 0) to make the value truthy\n return assets.push(asset);\n}\nexport function getAssetByID(assetId) {\n return assets[assetId - 1];\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar dataUriPattern = /^data:/;\nexport var ImageUriCache = /*#__PURE__*/function () {\n function ImageUriCache() {}\n\n ImageUriCache.has = function has(uri) {\n var entries = ImageUriCache._entries;\n var isDataUri = dataUriPattern.test(uri);\n return isDataUri || Boolean(entries[uri]);\n };\n\n ImageUriCache.add = function add(uri) {\n var entries = ImageUriCache._entries;\n var lastUsedTimestamp = Date.now();\n\n if (entries[uri]) {\n entries[uri].lastUsedTimestamp = lastUsedTimestamp;\n entries[uri].refCount += 1;\n } else {\n entries[uri] = {\n lastUsedTimestamp: lastUsedTimestamp,\n refCount: 1\n };\n }\n };\n\n ImageUriCache.remove = function remove(uri) {\n var entries = ImageUriCache._entries;\n\n if (entries[uri]) {\n entries[uri].refCount -= 1;\n } // Free up entries when the cache is \"full\"\n\n\n ImageUriCache._cleanUpIfNeeded();\n };\n\n ImageUriCache._cleanUpIfNeeded = function _cleanUpIfNeeded() {\n var entries = ImageUriCache._entries;\n var imageUris = Object.keys(entries);\n\n if (imageUris.length + 1 > ImageUriCache._maximumEntries) {\n var leastRecentlyUsedKey;\n var leastRecentlyUsedEntry;\n imageUris.forEach(function (uri) {\n var entry = entries[uri];\n\n if ((!leastRecentlyUsedEntry || entry.lastUsedTimestamp < leastRecentlyUsedEntry.lastUsedTimestamp) && entry.refCount === 0) {\n leastRecentlyUsedKey = uri;\n leastRecentlyUsedEntry = entry;\n }\n });\n\n if (leastRecentlyUsedKey) {\n delete entries[leastRecentlyUsedKey];\n }\n }\n };\n\n return ImageUriCache;\n}();\nImageUriCache._maximumEntries = 256;\nImageUriCache._entries = {};\nvar id = 0;\nvar requests = {};\nvar ImageLoader = {\n abort: function abort(requestId) {\n var image = requests[\"\" + requestId];\n\n if (image) {\n image.onerror = null;\n image.onload = null;\n image = null;\n delete requests[\"\" + requestId];\n }\n },\n getSize: function getSize(uri, success, failure) {\n var complete = false;\n var interval = setInterval(callback, 16);\n var requestId = ImageLoader.load(uri, callback, errorCallback);\n\n function callback() {\n var image = requests[\"\" + requestId];\n\n if (image) {\n var naturalHeight = image.naturalHeight,\n naturalWidth = image.naturalWidth;\n\n if (naturalHeight && naturalWidth) {\n success(naturalWidth, naturalHeight);\n complete = true;\n }\n }\n\n if (complete) {\n ImageLoader.abort(requestId);\n clearInterval(interval);\n }\n }\n\n function errorCallback() {\n if (typeof failure === 'function') {\n failure();\n }\n\n ImageLoader.abort(requestId);\n clearInterval(interval);\n }\n },\n has: function has(uri) {\n return ImageUriCache.has(uri);\n },\n load: function load(uri, onLoad, onError) {\n id += 1;\n var image = new window.Image();\n image.onerror = onError;\n\n image.onload = function (e) {\n // avoid blocking the main thread\n var onDecode = function onDecode() {\n return onLoad({\n nativeEvent: e\n });\n };\n\n if (typeof image.decode === 'function') {\n // Safari currently throws exceptions when decoding svgs.\n // We want to catch that error and allow the load handler\n // to be forwarded to the onLoad handler in this case\n image.decode().then(onDecode, onDecode);\n } else {\n setTimeout(onDecode, 0);\n }\n };\n\n image.src = uri;\n requests[\"\" + id] = image;\n return id;\n },\n prefetch: function prefetch(uri) {\n return new Promise(function (resolve, reject) {\n ImageLoader.load(uri, function () {\n // Add the uri to the cache so it can be immediately displayed when used\n // but also immediately remove it to correctly reflect that it has no active references\n ImageUriCache.add(uri);\n ImageUriCache.remove(uri);\n resolve();\n }, reject);\n });\n },\n queryCache: function queryCache(uris) {\n var result = {};\n uris.forEach(function (u) {\n if (ImageUriCache.has(u)) {\n result[u] = 'disk/memory';\n }\n });\n return Promise.resolve(result);\n }\n};\nexport default ImageLoader;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport Dimensions from '../Dimensions';\n/**\n * PixelRatio gives access to the device pixel density.\n */\n\nvar PixelRatio = /*#__PURE__*/function () {\n function PixelRatio() {}\n /**\n * Returns the device pixel density.\n */\n\n\n PixelRatio.get = function get() {\n return Dimensions.get('window').scale;\n }\n /**\n * No equivalent for Web\n */\n ;\n\n PixelRatio.getFontScale = function getFontScale() {\n return Dimensions.get('window').fontScale || PixelRatio.get();\n }\n /**\n * Converts a layout size (dp) to pixel size (px).\n * Guaranteed to return an integer number.\n */\n ;\n\n PixelRatio.getPixelSizeForLayoutSize = function getPixelSizeForLayoutSize(layoutSize) {\n return Math.round(layoutSize * PixelRatio.get());\n }\n /**\n * Rounds a layout size (dp) to the nearest layout size that corresponds to\n * an integer number of pixels. For example, on a device with a PixelRatio\n * of 3, `PixelRatio.roundToNearestPixel(8.4) = 8.33`, which corresponds to\n * exactly (8.33 * 3) = 25 pixels.\n */\n ;\n\n PixelRatio.roundToNearestPixel = function roundToNearestPixel(layoutSize) {\n var ratio = PixelRatio.get();\n return Math.round(layoutSize * ratio) / ratio;\n };\n\n return PixelRatio;\n}();\n\nexport { PixelRatio as default };","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nimport createElement from '../createElement';\nimport css from '../StyleSheet/css';\nimport { getAssetByID } from '../../modules/AssetRegistry';\nimport resolveShadowValue from '../StyleSheet/resolveShadowValue';\nimport ImageLoader from '../../modules/ImageLoader';\nimport PixelRatio from '../PixelRatio';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from '../Text/TextAncestorContext';\nimport View from '../View';\nimport React, { forwardRef, useContext, useEffect, useRef, useState } from 'react';\nvar ERRORED = 'ERRORED';\nvar LOADED = 'LOADED';\nvar LOADING = 'LOADING';\nvar IDLE = 'IDLE';\nvar _filterId = 0;\nvar svgDataUriPattern = /^(data:image\\/svg\\+xml;utf8,)(.*)/;\n\nfunction createTintColorSVG(tintColor, id) {\n return tintColor && id != null ? /*#__PURE__*/React.createElement(\"svg\", {\n style: {\n position: 'absolute',\n height: 0,\n visibility: 'hidden',\n width: 0\n }\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"tint-\" + id,\n suppressHydrationWarning: true\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodColor: \"\" + tintColor,\n key: tintColor\n }), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"SourceAlpha\",\n operator: \"atop\"\n })))) : null;\n}\n\nfunction getFlatStyle(style, blurRadius, filterId) {\n var flatStyle = _objectSpread({}, StyleSheet.flatten(style));\n\n var filter = flatStyle.filter,\n resizeMode = flatStyle.resizeMode,\n shadowOffset = flatStyle.shadowOffset,\n tintColor = flatStyle.tintColor; // Add CSS filters\n // React Native exposes these features as props and proprietary styles\n\n var filters = [];\n var _filter = null;\n\n if (filter) {\n filters.push(filter);\n }\n\n if (blurRadius) {\n filters.push(\"blur(\" + blurRadius + \"px)\");\n }\n\n if (shadowOffset) {\n var shadowString = resolveShadowValue(flatStyle);\n\n if (shadowString) {\n filters.push(\"drop-shadow(\" + shadowString + \")\");\n }\n }\n\n if (tintColor && filterId != null) {\n filters.push(\"url(#tint-\" + filterId + \")\");\n }\n\n if (filters.length > 0) {\n _filter = filters.join(' ');\n } // These styles are converted to CSS filters applied to the\n // element displaying the background image.\n\n\n delete flatStyle.blurRadius;\n delete flatStyle.shadowColor;\n delete flatStyle.shadowOpacity;\n delete flatStyle.shadowOffset;\n delete flatStyle.shadowRadius;\n delete flatStyle.tintColor; // These styles are not supported on View\n\n delete flatStyle.overlayColor;\n delete flatStyle.resizeMode;\n return [flatStyle, resizeMode, _filter, tintColor];\n}\n\nfunction resolveAssetDimensions(source) {\n if (typeof source === 'number') {\n var _getAssetByID = getAssetByID(source),\n height = _getAssetByID.height,\n width = _getAssetByID.width;\n\n return {\n height: height,\n width: width\n };\n } else if (source != null && !Array.isArray(source) && typeof source === 'object') {\n var _height = source.height,\n _width = source.width;\n return {\n height: _height,\n width: _width\n };\n }\n}\n\nfunction resolveAssetUri(source) {\n var uri = null;\n\n if (typeof source === 'number') {\n // get the URI from the packager\n var asset = getAssetByID(source);\n var scale = asset.scales[0];\n\n if (asset.scales.length > 1) {\n var preferredScale = PixelRatio.get(); // Get the scale which is closest to the preferred scale\n\n scale = asset.scales.reduce(function (prev, curr) {\n return Math.abs(curr - preferredScale) < Math.abs(prev - preferredScale) ? curr : prev;\n });\n }\n\n var scaleSuffix = scale !== 1 ? \"@\" + scale + \"x\" : '';\n uri = asset ? asset.httpServerLocation + \"/\" + asset.name + scaleSuffix + \".\" + asset.type : '';\n } else if (typeof source === 'string') {\n uri = source;\n } else if (source && typeof source.uri === 'string') {\n uri = source.uri;\n }\n\n if (uri) {\n var match = uri.match(svgDataUriPattern); // inline SVG markup may contain characters (e.g., #, \") that need to be escaped\n\n if (match) {\n var prefix = match[1],\n svg = match[2];\n var encodedSvg = encodeURIComponent(svg);\n return \"\" + prefix + encodedSvg;\n }\n }\n\n return uri;\n}\n\nvar Image = /*#__PURE__*/forwardRef(function (props, ref) {\n var accessibilityLabel = props.accessibilityLabel,\n blurRadius = props.blurRadius,\n defaultSource = props.defaultSource,\n draggable = props.draggable,\n onError = props.onError,\n onLayout = props.onLayout,\n onLoad = props.onLoad,\n onLoadEnd = props.onLoadEnd,\n onLoadStart = props.onLoadStart,\n pointerEvents = props.pointerEvents,\n source = props.source,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, [\"accessibilityLabel\", \"blurRadius\", \"defaultSource\", \"draggable\", \"onError\", \"onLayout\", \"onLoad\", \"onLoadEnd\", \"onLoadStart\", \"pointerEvents\", \"source\", \"style\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (props.children) {\n throw new Error('The component cannot contain children. If you want to render content on top of the image, consider using the component or absolute positioning.');\n }\n }\n\n var _useState = useState(function () {\n var uri = resolveAssetUri(source);\n\n if (uri != null) {\n var isLoaded = ImageLoader.has(uri);\n\n if (isLoaded) {\n return LOADED;\n }\n }\n\n return IDLE;\n }),\n state = _useState[0],\n updateState = _useState[1];\n\n var _useState2 = useState({}),\n layout = _useState2[0],\n updateLayout = _useState2[1];\n\n var hasTextAncestor = useContext(TextAncestorContext);\n var hiddenImageRef = useRef(null);\n var filterRef = useRef(_filterId++);\n var requestRef = useRef(null);\n var shouldDisplaySource = state === LOADED || state === LOADING && defaultSource == null;\n\n var _getFlatStyle = getFlatStyle(style, blurRadius, filterRef.current),\n flatStyle = _getFlatStyle[0],\n _resizeMode = _getFlatStyle[1],\n filter = _getFlatStyle[2],\n tintColor = _getFlatStyle[3];\n\n var resizeMode = props.resizeMode || _resizeMode || 'cover';\n var selectedSource = shouldDisplaySource ? source : defaultSource;\n var displayImageUri = resolveAssetUri(selectedSource);\n var imageSizeStyle = resolveAssetDimensions(selectedSource);\n var backgroundImage = displayImageUri ? \"url(\\\"\" + displayImageUri + \"\\\")\" : null;\n var backgroundSize = getBackgroundSize(); // Accessibility image allows users to trigger the browser's image context menu\n\n var hiddenImage = displayImageUri ? createElement('img', {\n alt: accessibilityLabel || '',\n classList: [classes.accessibilityImage],\n draggable: draggable || false,\n ref: hiddenImageRef,\n src: displayImageUri\n }) : null;\n\n function getBackgroundSize() {\n if (hiddenImageRef.current != null && (resizeMode === 'center' || resizeMode === 'repeat')) {\n var _hiddenImageRef$curre = hiddenImageRef.current,\n naturalHeight = _hiddenImageRef$curre.naturalHeight,\n naturalWidth = _hiddenImageRef$curre.naturalWidth;\n var height = layout.height,\n width = layout.width;\n\n if (naturalHeight && naturalWidth && height && width) {\n var scaleFactor = Math.min(1, width / naturalWidth, height / 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 useEffect(function () {\n abortPendingRequest();\n\n if (uri != null) {\n updateState(LOADING);\n\n if (onLoadStart) {\n onLoadStart();\n }\n\n requestRef.current = ImageLoader.load(uri, function load(e) {\n updateState(LOADED);\n\n if (onLoad) {\n onLoad(e);\n }\n\n if (onLoadEnd) {\n onLoadEnd();\n }\n }, function error() {\n updateState(ERRORED);\n\n if (onError) {\n onError({\n nativeEvent: {\n error: \"Failed to load resource \" + uri + \" (404)\"\n }\n });\n }\n\n if (onLoadEnd) {\n onLoadEnd();\n }\n });\n }\n\n function abortPendingRequest() {\n if (requestRef.current != null) {\n ImageLoader.abort(requestRef.current);\n requestRef.current = null;\n }\n }\n\n return abortPendingRequest;\n }, [uri, requestRef, updateState, onError, onLoad, onLoadEnd, onLoadStart]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n accessibilityLabel: accessibilityLabel,\n onLayout: handleLayout,\n pointerEvents: pointerEvents,\n ref: ref,\n style: [styles.root, hasTextAncestor && styles.inline, imageSizeStyle, flatStyle]\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.image, resizeModeStyles[resizeMode], {\n backgroundImage: backgroundImage,\n filter: filter\n }, backgroundSize != null && {\n backgroundSize: backgroundSize\n }],\n suppressHydrationWarning: true\n }), hiddenImage, createTintColorSVG(tintColor, filterRef.current));\n});\nImage.displayName = 'Image'; // $FlowFixMe\n\nImage.getSize = function (uri, success, failure) {\n ImageLoader.getSize(uri, success, failure);\n}; // $FlowFixMe\n\n\nImage.prefetch = function (uri) {\n return ImageLoader.prefetch(uri);\n}; // $FlowFixMe\n\n\nImage.queryCache = function (uris) {\n return ImageLoader.queryCache(uris);\n};\n\nvar classes = css.create({\n accessibilityImage: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n opacity: 0,\n width: '100%',\n zIndex: -1\n })\n});\nvar styles = StyleSheet.create({\n root: {\n flexBasis: 'auto',\n overflow: 'hidden',\n zIndex: 0\n },\n inline: {\n display: 'inline-flex'\n },\n image: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n backgroundColor: 'transparent',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n height: '100%',\n width: '100%',\n zIndex: -1\n })\n});\nvar resizeModeStyles = StyleSheet.create({\n center: {\n backgroundSize: 'auto'\n },\n contain: {\n backgroundSize: 'contain'\n },\n cover: {\n backgroundSize: 'cover'\n },\n none: {\n backgroundPosition: '0 0',\n backgroundSize: 'auto'\n },\n repeat: {\n backgroundPosition: '0 0',\n backgroundRepeat: 'repeat',\n backgroundSize: 'auto'\n },\n stretch: {\n backgroundSize: '100% 100%'\n }\n});\nexport default Image;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nimport * as React from 'react';\nimport View from '../../../exports/View';\nimport VirtualizedList from '../VirtualizedList';\nimport invariant from 'fbjs/lib/invariant';\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 */\n\nvar VirtualizedSectionList = /*#__PURE__*/function (_React$PureComponent) {\n _inheritsLoose(VirtualizedSectionList, _React$PureComponent);\n\n var _proto = VirtualizedSectionList.prototype;\n\n _proto.scrollToLocation = function scrollToLocation(params) {\n var index = params.itemIndex;\n\n for (var i = 0; i < params.sectionIndex; i++) {\n index += this.props.getItemCount(this.props.sections[i].data) + 2;\n }\n\n var viewOffset = 0;\n\n if (params.itemIndex > 0 && this.props.stickySectionHeadersEnabled) {\n var frame = this._listRef._getFrameMetricsApprox(index - params.itemIndex);\n\n viewOffset = frame.length;\n }\n\n var toIndexParams = _objectSpread(_objectSpread({}, params), {}, {\n viewOffset: viewOffset,\n index: index\n });\n\n this._listRef.scrollToIndex(toIndexParams);\n };\n\n _proto.getListRef = function getListRef() {\n return this._listRef;\n };\n\n function VirtualizedSectionList(props, context) {\n var _this;\n\n _this = _React$PureComponent.call(this, props, context) || this;\n\n _this._keyExtractor = function (item, index) {\n var info = _this._subExtractor(index);\n\n return info && info.key || String(index);\n };\n\n _this._convertViewable = function (viewable) {\n invariant(viewable.index != null, 'Received a broken ViewToken');\n\n var info = _this._subExtractor(viewable.index);\n\n if (!info) {\n return null;\n }\n\n var keyExtractor = info.section.keyExtractor || _this.props.keyExtractor;\n return _objectSpread(_objectSpread({}, viewable), {}, {\n index: info.index,\n\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.63 was deployed. To see the error delete this\n * comment and run Flow. */\n key: keyExtractor(viewable.item, info.index),\n section: info.section\n });\n };\n\n _this._onViewableItemsChanged = function (_ref) {\n var viewableItems = _ref.viewableItems,\n changed = _ref.changed;\n\n if (_this.props.onViewableItemsChanged) {\n _this.props.onViewableItemsChanged({\n viewableItems: viewableItems.map(_this._convertViewable, _assertThisInitialized(_this)).filter(Boolean),\n changed: changed.map(_this._convertViewable, _assertThisInitialized(_this)).filter(Boolean)\n });\n }\n };\n\n _this._renderItem = function (_ref2) {\n var item = _ref2.item,\n index = _ref2.index;\n\n var info = _this._subExtractor(index);\n\n if (!info) {\n return null;\n }\n\n var infoIndex = info.index;\n\n if (infoIndex == null) {\n var section = info.section;\n\n if (info.header === true) {\n var renderSectionHeader = _this.props.renderSectionHeader;\n return renderSectionHeader ? renderSectionHeader({\n section: section\n }) : null;\n } else {\n var renderSectionFooter = _this.props.renderSectionFooter;\n return renderSectionFooter ? renderSectionFooter({\n section: section\n }) : null;\n }\n } else {\n var renderItem = info.section.renderItem || _this.props.renderItem;\n\n var SeparatorComponent = _this._getSeparatorComponent(index, info);\n\n invariant(renderItem, 'no renderItem!');\n return /*#__PURE__*/React.createElement(ItemWithSeparator, {\n SeparatorComponent: SeparatorComponent,\n LeadingSeparatorComponent: infoIndex === 0 ? _this.props.SectionSeparatorComponent : undefined,\n cellKey: info.key,\n index: infoIndex,\n item: item,\n leadingItem: info.leadingItem,\n leadingSection: info.leadingSection,\n onUpdateSeparator: _this._onUpdateSeparator,\n prevCellKey: (_this._subExtractor(index - 1) || {}).key,\n ref: function ref(_ref3) {\n _this._cellRefs[info.key] = _ref3;\n },\n renderItem: renderItem,\n section: info.section,\n trailingItem: info.trailingItem,\n trailingSection: info.trailingSection\n });\n }\n };\n\n _this._onUpdateSeparator = function (key, newProps) {\n var ref = _this._cellRefs[key];\n ref && ref.updateSeparatorProps(newProps);\n };\n\n _this._cellRefs = {};\n\n _this._captureRef = function (ref) {\n /* $FlowFixMe(>=0.53.0 site=react_native_fb,react_native_oss) This comment\n * suppresses an error when upgrading Flow's support for React. To see the\n * error delete this comment and run Flow. */\n _this._listRef = ref;\n };\n\n _this.state = _this._computeState(props);\n return _this;\n }\n\n _proto.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {\n this.setState(this._computeState(nextProps));\n };\n\n _proto._computeState = function _computeState(props) {\n var offset = props.ListHeaderComponent ? 1 : 0;\n var stickyHeaderIndices = [];\n var itemCount = props.sections ? props.sections.reduce(function (v, section) {\n stickyHeaderIndices.push(v + offset);\n return v + props.getItemCount(section.data) + 2; // Add two for the section header and footer.\n }, 0) : 0;\n return {\n childProps: _objectSpread(_objectSpread({}, props), {}, {\n renderItem: this._renderItem,\n ItemSeparatorComponent: undefined,\n // Rendered with renderItem\n data: props.sections,\n getItemCount: function getItemCount() {\n return itemCount;\n },\n // $FlowFixMe\n getItem: function getItem(sections, index) {\n return _getItem(props, sections, index);\n },\n keyExtractor: this._keyExtractor,\n onViewableItemsChanged: props.onViewableItemsChanged ? this._onViewableItemsChanged : undefined,\n stickyHeaderIndices: props.stickySectionHeadersEnabled ? stickyHeaderIndices : undefined\n })\n };\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(VirtualizedList, _extends({}, this.state.childProps, {\n ref: this._captureRef\n }));\n };\n\n _proto._subExtractor = function _subExtractor(index) {\n var itemIndex = index;\n var _this$props = this.props,\n getItem = _this$props.getItem,\n getItemCount = _this$props.getItemCount,\n keyExtractor = _this$props.keyExtractor,\n sections = _this$props.sections;\n\n for (var i = 0; i < sections.length; i++) {\n var section = sections[i];\n var sectionData = section.data;\n var key = section.key || String(i);\n itemIndex -= 1; // The section adds an item for the header\n\n if (itemIndex >= getItemCount(sectionData) + 1) {\n itemIndex -= getItemCount(sectionData) + 1; // The section adds an item for the footer.\n } else if (itemIndex === -1) {\n return {\n section: section,\n key: key + ':header',\n index: null,\n header: true,\n trailingSection: sections[i + 1]\n };\n } else if (itemIndex === getItemCount(sectionData)) {\n return {\n section: section,\n key: key + ':footer',\n index: null,\n header: false,\n trailingSection: sections[i + 1]\n };\n } else {\n var extractor = section.keyExtractor || keyExtractor;\n return {\n section: section,\n key: key + ':' + extractor(getItem(sectionData, itemIndex), itemIndex),\n index: itemIndex,\n leadingItem: getItem(sectionData, itemIndex - 1),\n leadingSection: sections[i - 1],\n trailingItem: getItem(sectionData, itemIndex + 1),\n trailingSection: sections[i + 1]\n };\n }\n }\n };\n\n _proto._getSeparatorComponent = function _getSeparatorComponent(index, info) {\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 === this.state.childProps.getItemCount() - 1;\n var isLastItemInSection = info.index === this.props.getItemCount(info.section.data) - 1;\n\n if (SectionSeparatorComponent && isLastItemInSection) {\n return SectionSeparatorComponent;\n }\n\n if (ItemSeparatorComponent && !isLastItemInSection && !isLastItemInList) {\n return ItemSeparatorComponent;\n }\n\n return null;\n };\n\n return VirtualizedSectionList;\n}(React.PureComponent);\n\nVirtualizedSectionList.defaultProps = _objectSpread(_objectSpread({}, VirtualizedList.defaultProps), {}, {\n data: []\n});\n\nvar ItemWithSeparator = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ItemWithSeparator, _React$Component);\n\n function ItemWithSeparator() {\n var _this2;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this2 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this2.state = {\n separatorProps: {\n highlighted: false,\n leadingItem: _this2.props.item,\n leadingSection: _this2.props.leadingSection,\n section: _this2.props.section,\n trailingItem: _this2.props.trailingItem,\n trailingSection: _this2.props.trailingSection\n },\n leadingSeparatorProps: {\n highlighted: false,\n leadingItem: _this2.props.leadingItem,\n leadingSection: _this2.props.leadingSection,\n section: _this2.props.section,\n trailingItem: _this2.props.item,\n trailingSection: _this2.props.trailingSection\n }\n };\n _this2._separators = {\n highlight: function highlight() {\n ['leading', 'trailing'].forEach(function (s) {\n return _this2._separators.updateProps(s, {\n highlighted: true\n });\n });\n },\n unhighlight: function unhighlight() {\n ['leading', 'trailing'].forEach(function (s) {\n return _this2._separators.updateProps(s, {\n highlighted: false\n });\n });\n },\n updateProps: function updateProps(select, newProps) {\n var _this2$props = _this2.props,\n LeadingSeparatorComponent = _this2$props.LeadingSeparatorComponent,\n cellKey = _this2$props.cellKey,\n prevCellKey = _this2$props.prevCellKey;\n\n if (select === 'leading' && LeadingSeparatorComponent != null) {\n _this2.setState(function (state) {\n return {\n leadingSeparatorProps: _objectSpread(_objectSpread({}, state.leadingSeparatorProps), newProps)\n };\n });\n } else {\n _this2.props.onUpdateSeparator(select === 'leading' && prevCellKey || cellKey, newProps);\n }\n }\n };\n return _this2;\n }\n\n ItemWithSeparator.getDerivedStateFromProps = function getDerivedStateFromProps(props, prevState) {\n return {\n separatorProps: _objectSpread(_objectSpread({}, prevState.separatorProps), {}, {\n leadingItem: props.item,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.trailingItem,\n trailingSection: props.trailingSection\n }),\n leadingSeparatorProps: _objectSpread(_objectSpread({}, prevState.leadingSeparatorProps), {}, {\n leadingItem: props.leadingItem,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.item,\n trailingSection: props.trailingSection\n })\n };\n };\n\n var _proto2 = ItemWithSeparator.prototype;\n\n _proto2.updateSeparatorProps = function updateSeparatorProps(newProps) {\n this.setState(function (state) {\n return {\n separatorProps: _objectSpread(_objectSpread({}, state.separatorProps), newProps)\n };\n });\n };\n\n _proto2.render = function render() {\n var _this$props2 = this.props,\n LeadingSeparatorComponent = _this$props2.LeadingSeparatorComponent,\n SeparatorComponent = _this$props2.SeparatorComponent,\n item = _this$props2.item,\n index = _this$props2.index,\n section = _this$props2.section;\n var element = this.props.renderItem({\n item: item,\n index: index,\n section: section,\n separators: this._separators\n });\n var leadingSeparator = LeadingSeparatorComponent && /*#__PURE__*/React.createElement(LeadingSeparatorComponent, this.state.leadingSeparatorProps);\n var separator = SeparatorComponent && /*#__PURE__*/React.createElement(SeparatorComponent, this.state.separatorProps);\n return leadingSeparator || separator ?\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.89.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete\n * this comment and run Flow. */\n React.createElement(View, null, leadingSeparator, element, separator) : element;\n };\n\n return ItemWithSeparator;\n}(React.Component);\n\nfunction _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\nexport default VirtualizedSectionList;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport Platform from '../../../exports/Platform';\nimport * as React from 'react';\nimport ScrollView from '../../../exports/ScrollView';\nimport VirtualizedSectionList from '../VirtualizedSectionList';\n\nvar defaultProps = _objectSpread(_objectSpread({}, VirtualizedSectionList.defaultProps), {}, {\n stickySectionHeadersEnabled: Platform.OS === 'ios'\n});\n/**\n * A performant interface for rendering sectioned lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Configurable viewability callbacks.\n * - List header support.\n * - List footer support.\n * - Item separator support.\n * - Section header support.\n * - Section separator support.\n * - Heterogeneous data and item rendering support.\n * - Pull to Refresh.\n * - Scroll loading.\n *\n * If you don't need section support and want a simpler interface, use\n * [``](/react-native/docs/flatlist.html).\n *\n * Simple Examples:\n *\n * }\n * renderSectionHeader={({section}) =>
}\n * sections={[ // homogeneous rendering between sections\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * ]}\n * />\n *\n * \n *\n * This is a convenience wrapper around [``](docs/virtualizedlist.html),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate and momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n */\n\n\nvar SectionList = /*#__PURE__*/function (_React$PureComponent) {\n _inheritsLoose(SectionList, _React$PureComponent);\n\n function SectionList() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;\n\n _this._captureRef = function (ref) {\n // $FlowFixMe\n _this._wrapperListRef = ref;\n };\n\n return _this;\n }\n\n var _proto = SectionList.prototype;\n /**\n * 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\n _proto.scrollToLocation = function scrollToLocation(params) {\n if (this._wrapperListRef != null) {\n this._wrapperListRef.scrollToLocation(params);\n }\n }\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n ;\n\n _proto.recordInteraction = function recordInteraction() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n listRef && listRef.recordInteraction();\n }\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n ;\n\n _proto.flashScrollIndicators = function flashScrollIndicators() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n listRef && listRef.flashScrollIndicators();\n }\n /**\n * Provides a handle to the underlying scroll responder.\n */\n ;\n\n _proto.getScrollResponder = function getScrollResponder() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n if (listRef) {\n return listRef.getScrollResponder();\n }\n };\n\n _proto.getScrollableNode = function getScrollableNode() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n if (listRef) {\n return listRef.getScrollableNode();\n }\n };\n\n _proto.setNativeProps = function setNativeProps(props) {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n if (listRef) {\n listRef.setNativeProps(props);\n }\n };\n\n _proto.render = function render() {\n return (\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.66.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.66 was deployed. To see the error delete this\n * comment and run Flow. */\n React.createElement(VirtualizedSectionList, _extends({}, this.props, {\n ref: this._captureRef,\n getItemCount: function getItemCount(items) {\n return items.length;\n },\n getItem: function getItem(items, index) {\n return items[index];\n }\n }))\n );\n };\n\n return SectionList;\n}(React.PureComponent);\n\nSectionList.defaultProps = defaultProps;\nexport default SectionList;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport SectionList from '../../vendor/react-native/SectionList';\nexport default SectionList;","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nimport * as React from 'react';\nimport { forwardRef, useContext, useRef } from 'react';\nimport createElement from '../createElement';\nimport css from '../StyleSheet/css';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from './TextAncestorContext';\n\nvar forwardPropsList = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, forwardedProps.defaultProps), forwardedProps.accessibilityProps), forwardedProps.clickProps), forwardedProps.focusProps), forwardedProps.keyboardProps), forwardedProps.mouseProps), forwardedProps.touchProps), forwardedProps.styleProps), {}, {\n href: true,\n lang: true,\n pointerEvents: true\n});\n\nvar pickProps = function pickProps(props) {\n return pick(props, forwardPropsList);\n};\n\nvar Text = /*#__PURE__*/forwardRef(function (props, forwardedRef) {\n var dir = props.dir,\n hrefAttrs = props.hrefAttrs,\n numberOfLines = props.numberOfLines,\n onClick = props.onClick,\n onLayout = props.onLayout,\n onPress = props.onPress,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n selectable = props.selectable;\n var hasTextAncestor = useContext(TextAncestorContext);\n var hostRef = useRef(null);\n var classList = [classes.text, hasTextAncestor === true && classes.textHasAncestor, numberOfLines === 1 && classes.textOneLine, numberOfLines != null && numberOfLines > 1 && classes.textMultiLine];\n var style = [props.style, numberOfLines != null && numberOfLines > 1 && {\n WebkitLineClamp: numberOfLines\n }, selectable === true && styles.selectable, selectable === false && styles.notSelectable, onPress && styles.pressable];\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder: onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture: onMoveShouldSetResponderCapture,\n onResponderEnd: onResponderEnd,\n onResponderGrant: onResponderGrant,\n onResponderMove: onResponderMove,\n onResponderReject: onResponderReject,\n onResponderRelease: onResponderRelease,\n onResponderStart: onResponderStart,\n onResponderTerminate: onResponderTerminate,\n onResponderTerminationRequest: onResponderTerminationRequest,\n onScrollShouldSetResponder: onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture: onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder: onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture: onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder: onStartShouldSetResponder,\n onStartShouldSetResponderCapture: onStartShouldSetResponderCapture\n });\n\n function handleClick(e) {\n if (onClick != null) {\n onClick(e);\n }\n\n if (onClick == null && onPress != null) {\n e.stopPropagation();\n onPress(e);\n }\n }\n\n var component = hasTextAncestor ? 'span' : 'div';\n var supportedProps = pickProps(props);\n supportedProps.classList = classList;\n supportedProps.dir = dir; // 'auto' by default allows browsers to infer writing direction (root elements only)\n\n if (!hasTextAncestor) {\n supportedProps.dir = dir != null ? dir : 'auto';\n }\n\n supportedProps.onClick = handleClick;\n supportedProps.style = style;\n\n if (props.href != null && 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 var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n var element = createElement(component, supportedProps);\n return hasTextAncestor ? element : /*#__PURE__*/React.createElement(TextAncestorContext.Provider, {\n value: true\n }, element);\n});\nText.displayName = 'Text';\nvar classes = css.create({\n text: {\n border: '0 solid black',\n boxSizing: 'border-box',\n color: 'black',\n display: 'inline',\n font: '14px System',\n margin: 0,\n padding: 0,\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word'\n },\n textHasAncestor: {\n color: 'inherit',\n font: 'inherit',\n whiteSpace: 'inherit'\n },\n textOneLine: {\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n },\n // See #13\n textMultiLine: {\n display: '-webkit-box',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n WebkitBoxOrient: 'vertical'\n }\n});\nvar styles = StyleSheet.create({\n notSelectable: {\n userSelect: 'none'\n },\n selectable: {\n userSelect: 'text'\n },\n pressable: {\n cursor: 'pointer'\n }\n});\nexport default Text;","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/**\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\nimport AnimatedImplementation from '../../vendor/react-native/Animated/AnimatedImplementation';\nimport FlatList from '../FlatList';\nimport Image from '../Image';\nimport SectionList from '../SectionList';\nimport ScrollView from '../ScrollView';\nimport Text from '../Text';\nimport View from '../View';\n\nvar Animated = _objectSpread(_objectSpread({}, AnimatedImplementation), {}, {\n FlatList: AnimatedImplementation.createAnimatedComponent(FlatList, {\n scrollEventThrottle: 0.0001\n }),\n Image: AnimatedImplementation.createAnimatedComponent(Image),\n ScrollView: AnimatedImplementation.createAnimatedComponent(ScrollView, {\n scrollEventThrottle: 0.0001\n }),\n SectionList: AnimatedImplementation.createAnimatedComponent(SectionList, {\n scrollEventThrottle: 0.0001\n }),\n View: AnimatedImplementation.createAnimatedComponent(View),\n Text: AnimatedImplementation.createAnimatedComponent(Text)\n});\n\nexport default Animated;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\n\nfunction getQuery() {\n return canUseDOM && window.matchMedia != null ? window.matchMedia('(prefers-color-scheme: dark)') : null;\n}\n\nvar query = getQuery();\nvar listenerMapping = new WeakMap();\nvar Appearance = {\n getColorScheme: function getColorScheme() {\n return query && query.matches ? 'dark' : 'light';\n },\n addChangeListener: function addChangeListener(listener) {\n var mappedListener = listenerMapping.get(listener);\n\n if (!mappedListener) {\n mappedListener = function mappedListener(_ref) {\n var matches = _ref.matches;\n listener({\n colorScheme: matches ? 'dark' : 'light'\n });\n };\n\n listenerMapping.set(listener, mappedListener);\n }\n\n if (query) {\n query.addListener(mappedListener);\n }\n },\n removeChangeListener: function removeChangeListener(listener) {\n var mappedListener = listenerMapping.get(listener);\n\n if (mappedListener) {\n if (query) {\n query.removeListener(mappedListener);\n }\n\n listenerMapping.delete(listener);\n }\n }\n};\nexport default Appearance;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport React, { createContext } from 'react';\nvar RootTagContext = /*#__PURE__*/createContext(null);\nexport default function AppContainer(props) {\n var children = props.children,\n WrapperComponent = props.WrapperComponent;\n var innerView = /*#__PURE__*/React.createElement(View, {\n children: children,\n key: 1,\n pointerEvents: \"box-none\",\n style: styles.appContainer\n });\n\n if (WrapperComponent) {\n innerView = /*#__PURE__*/React.createElement(WrapperComponent, null, innerView);\n }\n\n return /*#__PURE__*/React.createElement(RootTagContext.Provider, {\n value: props.rootTag\n }, /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"box-none\",\n style: styles.appContainer\n }, innerView));\n}\nvar styles = StyleSheet.create({\n appContainer: {\n flex: 1\n }\n});","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nimport AppContainer from './AppContainer';\nimport invariant from 'fbjs/lib/invariant';\nimport render, { hydrate } from '../render';\nimport styleResolver from '../StyleSheet/styleResolver';\nimport React from 'react';\nexport default function renderApplication(RootComponent, WrapperComponent, callback, options) {\n var shouldHydrate = options.hydrate,\n initialProps = options.initialProps,\n rootTag = options.rootTag;\n var renderFn = shouldHydrate ? hydrate : render;\n invariant(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag);\n renderFn( /*#__PURE__*/React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n rootTag: rootTag\n }, /*#__PURE__*/React.createElement(RootComponent, initialProps)), rootTag, callback);\n}\nexport function getApplication(RootComponent, initialProps, WrapperComponent) {\n var element = /*#__PURE__*/React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n rootTag: {}\n }, /*#__PURE__*/React.createElement(RootComponent, initialProps)); // Don't escape CSS text\n\n var getStyleElement = function getStyleElement(props) {\n var sheet = styleResolver.getStyleSheet();\n return /*#__PURE__*/React.createElement(\"style\", _extends({}, props, {\n dangerouslySetInnerHTML: {\n __html: sheet.textContent\n },\n id: sheet.id\n }));\n };\n\n return {\n element: element,\n getStyleElement: getStyleElement\n };\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nimport invariant from 'fbjs/lib/invariant';\nimport unmountComponentAtNode from '../unmountComponentAtNode';\nimport renderApplication, { getApplication as _getApplication } from './renderApplication';\nvar emptyObject = {};\nvar runnables = {};\n\nvar componentProviderInstrumentationHook = function componentProviderInstrumentationHook(component) {\n return component();\n};\n\nvar wrapperComponentProvider;\n/**\n * `AppRegistry` is the JS entry point to running all React Native apps.\n */\n\nvar AppRegistry = /*#__PURE__*/function () {\n function AppRegistry() {}\n\n AppRegistry.getAppKeys = function getAppKeys() {\n return Object.keys(runnables);\n };\n\n AppRegistry.getApplication = function getApplication(appKey, appParameters) {\n invariant(runnables[appKey] && runnables[appKey].getApplication, \"Application \" + appKey + \" has not been registered. \" + 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');\n return runnables[appKey].getApplication(appParameters);\n };\n\n AppRegistry.registerComponent = function registerComponent(appKey, componentProvider) {\n runnables[appKey] = {\n getApplication: function getApplication(appParameters) {\n return _getApplication(componentProviderInstrumentationHook(componentProvider), appParameters ? appParameters.initialProps : emptyObject, wrapperComponentProvider && wrapperComponentProvider(appParameters));\n },\n run: function run(appParameters) {\n return renderApplication(componentProviderInstrumentationHook(componentProvider), wrapperComponentProvider && wrapperComponentProvider(appParameters), appParameters.callback, {\n hydrate: appParameters.hydrate || false,\n initialProps: appParameters.initialProps || emptyObject,\n rootTag: appParameters.rootTag\n });\n }\n };\n return appKey;\n };\n\n AppRegistry.registerConfig = function registerConfig(config) {\n config.forEach(function (_ref) {\n var appKey = _ref.appKey,\n component = _ref.component,\n run = _ref.run;\n\n if (run) {\n AppRegistry.registerRunnable(appKey, run);\n } else {\n invariant(component, 'No component provider passed in');\n AppRegistry.registerComponent(appKey, component);\n }\n });\n } // TODO: fix style sheet creation when using this method\n ;\n\n AppRegistry.registerRunnable = function registerRunnable(appKey, run) {\n runnables[appKey] = {\n run: run\n };\n return appKey;\n };\n\n AppRegistry.runApplication = function runApplication(appKey, appParameters) {\n var isDevelopment = process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test';\n\n if (isDevelopment) {\n var params = _objectSpread({}, appParameters);\n\n params.rootTag = \"#\" + params.rootTag.id;\n console.log(\"Running application \\\"\" + appKey + \"\\\" with appParams:\\n\", params, \"\\nDevelopment-level warnings: \" + (isDevelopment ? 'ON' : 'OFF') + \".\" + (\"\\nPerformance optimizations: \" + (isDevelopment ? 'OFF' : 'ON') + \".\"));\n }\n\n invariant(runnables[appKey] && runnables[appKey].run, \"Application \\\"\" + appKey + \"\\\" has not been registered. \" + 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');\n runnables[appKey].run(appParameters);\n };\n\n AppRegistry.setComponentProviderInstrumentationHook = function setComponentProviderInstrumentationHook(hook) {\n componentProviderInstrumentationHook = hook;\n };\n\n AppRegistry.setWrapperComponentProvider = function setWrapperComponentProvider(provider) {\n wrapperComponentProvider = provider;\n };\n\n AppRegistry.unmountApplicationComponentAtRootTag = function unmountApplicationComponentAtRootTag(rootTag) {\n unmountComponentAtNode(rootTag);\n };\n\n return AppRegistry;\n}();\n\nexport { AppRegistry as default };","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport findIndex from 'array-find-index';\nimport invariant from 'fbjs/lib/invariant'; // Android 4.4 browser\n\nvar isPrefixed = canUseDOM && !document.hasOwnProperty('hidden') && document.hasOwnProperty('webkitHidden');\nvar EVENT_TYPES = ['change', 'memoryWarning'];\nvar VISIBILITY_CHANGE_EVENT = isPrefixed ? 'webkitvisibilitychange' : 'visibilitychange';\nvar VISIBILITY_STATE_PROPERTY = isPrefixed ? 'webkitVisibilityState' : 'visibilityState';\nvar AppStates = {\n BACKGROUND: 'background',\n ACTIVE: 'active'\n};\nvar listeners = [];\n\nvar AppState = /*#__PURE__*/function () {\n function AppState() {}\n\n AppState.addEventListener = function addEventListener(type, handler) {\n if (AppState.isAvailable) {\n invariant(EVENT_TYPES.indexOf(type) !== -1, 'Trying to subscribe to unknown event: \"%s\"', type);\n\n if (type === 'change') {\n var callback = function callback() {\n return handler(AppState.currentState);\n };\n\n listeners.push([handler, callback]);\n document.addEventListener(VISIBILITY_CHANGE_EVENT, callback, false);\n }\n }\n };\n\n AppState.removeEventListener = function removeEventListener(type, handler) {\n if (AppState.isAvailable) {\n invariant(EVENT_TYPES.indexOf(type) !== -1, 'Trying to remove listener for unknown event: \"%s\"', type);\n\n if (type === 'change') {\n var listenerIndex = findIndex(listeners, function (pair) {\n return pair[0] === handler;\n });\n invariant(listenerIndex !== -1, 'Trying to remove AppState listener for unregistered handler');\n var callback = listeners[listenerIndex][1];\n document.removeEventListener(VISIBILITY_CHANGE_EVENT, callback, false);\n listeners.splice(listenerIndex, 1);\n }\n }\n };\n\n _createClass(AppState, null, [{\n key: \"currentState\",\n get: function get() {\n if (!AppState.isAvailable) {\n return AppStates.ACTIVE;\n }\n\n switch (document[VISIBILITY_STATE_PROPERTY]) {\n case 'hidden':\n case 'prerender':\n case 'unloaded':\n return AppStates.BACKGROUND;\n\n default:\n return AppStates.ACTIVE;\n }\n }\n }]);\n\n return AppState;\n}();\n\nAppState.isAvailable = canUseDOM && document[VISIBILITY_STATE_PROPERTY];\nexport { AppState as default };","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nfunction emptyFunction() {}\n\nvar BackHandler = {\n exitApp: emptyFunction,\n addEventListener: function addEventListener() {\n return {\n remove: emptyFunction\n };\n },\n removeEventListener: emptyFunction\n};\nexport default BackHandler;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar clipboardAvailable;\n\nvar Clipboard = /*#__PURE__*/function () {\n function Clipboard() {}\n\n Clipboard.isAvailable = function isAvailable() {\n if (clipboardAvailable === undefined) {\n clipboardAvailable = typeof document.queryCommandSupported === 'function' && document.queryCommandSupported('copy');\n }\n\n return clipboardAvailable;\n };\n\n Clipboard.getString = function getString() {\n return Promise.resolve('');\n };\n\n Clipboard.setString = function setString(text) {\n var success = false;\n var body = document.body;\n\n if (body) {\n // add the text to a hidden node\n var node = document.createElement('span');\n node.textContent = text;\n node.style.opacity = '0';\n node.style.position = 'absolute';\n node.style.whiteSpace = 'pre-wrap';\n node.style.userSelect = 'auto';\n body.appendChild(node); // select the text\n\n var selection = window.getSelection();\n selection.removeAllRanges();\n var range = document.createRange();\n range.selectNodeContents(node);\n selection.addRange(range); // attempt to copy\n\n try {\n document.execCommand('copy');\n success = true;\n } catch (e) {} // remove selection and node\n\n\n selection.removeAllRanges();\n body.removeChild(node);\n }\n\n return success;\n };\n\n return Clipboard;\n}();\n\nexport { Clipboard as default };","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport Dimensions from '../Dimensions';\nvar DeviceInfo = {\n Dimensions: {\n get windowPhysicalPixels() {\n var _Dimensions$get = Dimensions.get('window'),\n width = _Dimensions$get.width,\n height = _Dimensions$get.height,\n fontScale = _Dimensions$get.fontScale,\n scale = _Dimensions$get.scale;\n\n return {\n width: width * scale,\n height: height * scale,\n scale: scale,\n fontScale: fontScale\n };\n },\n\n get screenPhysicalPixels() {\n var _Dimensions$get2 = Dimensions.get('screen'),\n width = _Dimensions$get2.width,\n height = _Dimensions$get2.height,\n fontScale = _Dimensions$get2.fontScale,\n scale = _Dimensions$get2.scale;\n\n return {\n width: width * scale,\n height: height * scale,\n scale: scale,\n fontScale: fontScale\n };\n }\n\n },\n\n get locale() {\n if (canUseDOM) {\n if (window.navigator.languages) {\n return window.navigator.languages[0];\n } else {\n return window.navigator.language;\n }\n }\n },\n\n get totalMemory() {\n return canUseDOM ? window.navigator.deviceMemory : undefined;\n },\n\n get userAgent() {\n return canUseDOM ? window.navigator.userAgent : '';\n }\n\n};\nexport default DeviceInfo;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport Easing from '../../vendor/react-native/Animated/Easing';\nexport default Easing;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport dismissKeyboard from '../../modules/dismissKeyboard';\nvar Keyboard = {\n addListener: function addListener() {\n return {\n remove: function remove() {}\n };\n },\n dismiss: function dismiss() {\n dismissKeyboard();\n },\n removeAllListeners: function removeAllListeners() {},\n removeListener: function removeListener() {}\n};\nexport default Keyboard;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport Platform from '../../../exports/Platform';\nimport UIManager from '../../../exports/UIManager';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nfunction configureNext(config, onAnimationDidEnd) {\n if (!Platform.isTesting) {\n UIManager.configureNextLayoutAnimation(config, onAnimationDidEnd !== null && onAnimationDidEnd !== void 0 ? onAnimationDidEnd : function () {}, function () {}\n /* unused onError */\n );\n }\n}\n\nfunction create(duration, type, property) {\n return {\n duration: duration,\n create: {\n type: type,\n property: property\n },\n update: {\n type: type\n },\n delete: {\n type: type,\n property: property\n }\n };\n}\n\nvar Presets = {\n easeInEaseOut: create(300, 'easeInEaseOut', 'opacity'),\n linear: create(500, 'linear', 'opacity'),\n spring: {\n duration: 700,\n create: {\n type: 'linear',\n property: 'opacity'\n },\n update: {\n type: 'spring',\n springDamping: 0.4\n },\n delete: {\n type: 'linear',\n property: 'opacity'\n }\n }\n};\n/**\n * Automatically animates views to their new positions when the\n * next layout happens.\n *\n * A common way to use this API is to call it before calling `setState`.\n *\n * Note that in order to get this to work on **Android** you need to set the following flags via `UIManager`:\n *\n * UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);\n */\n\nvar LayoutAnimation = {\n /**\n * Schedules an animation to happen on the next layout.\n *\n * @param config Specifies animation properties:\n *\n * - `duration` in milliseconds\n * - `create`, `AnimationConfig` for animating in new views\n * - `update`, `AnimationConfig` for animating views that have been updated\n *\n * @param onAnimationDidEnd Called when the animation finished.\n * Only supported on iOS.\n * @param onError Called on error. Only supported on iOS.\n */\n configureNext: configureNext,\n\n /**\n * Helper for creating a config for `configureNext`.\n */\n create: create,\n Types: Object.freeze({\n spring: 'spring',\n linear: 'linear',\n easeInEaseOut: 'easeInEaseOut',\n easeIn: 'easeIn',\n easeOut: 'easeOut',\n keyboard: 'keyboard'\n }),\n Properties: Object.freeze({\n opacity: 'opacity',\n scaleX: 'scaleX',\n scaleY: 'scaleY',\n scaleXY: 'scaleXY'\n }),\n checkConfig: function checkConfig() {\n console.error('LayoutAnimation.checkConfig(...) has been disabled.');\n },\n Presets: Presets,\n easeInEaseOut: configureNext.bind(null, Presets.easeInEaseOut),\n linear: configureNext.bind(null, Presets.linear),\n spring: configureNext.bind(null, Presets.spring)\n};\nexport default LayoutAnimation;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport LayoutAnimation from '../../vendor/react-native/LayoutAnimation';\nexport default LayoutAnimation;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport invariant from 'fbjs/lib/invariant';\nvar initialURL = canUseDOM ? window.location.href : '';\n\nvar Linking = /*#__PURE__*/function () {\n function Linking() {\n var _this = this;\n\n this._eventCallbacks = {};\n\n this.addEventListener = function (event, callback) {\n if (!_this._eventCallbacks[event]) {\n _this._eventCallbacks[event] = [callback];\n return;\n }\n\n _this._eventCallbacks[event].push(callback);\n };\n\n this.removeEventListener = function (event, callback) {\n var callbacks = _this._eventCallbacks[event];\n var filteredCallbacks = callbacks.filter(function (c) {\n return c.toString() !== callback.toString();\n });\n _this._eventCallbacks[event] = filteredCallbacks;\n };\n }\n\n var _proto = Linking.prototype;\n\n _proto._dispatchEvent = function _dispatchEvent(event) {\n for (var _len = arguments.length, data = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n data[_key - 1] = arguments[_key];\n }\n\n var listeners = this._eventCallbacks[event];\n\n if (listeners != null && Array.isArray(listeners)) {\n listeners.map(function (listener) {\n listener.apply(void 0, data);\n });\n }\n }\n /**\n * Adds a event listener for the specified event. The callback will be called when the\n * said event is dispatched.\n */\n ;\n\n _proto.canOpenURL = function canOpenURL() {\n return Promise.resolve(true);\n };\n\n _proto.getInitialURL = function getInitialURL() {\n return Promise.resolve(initialURL);\n }\n /**\n * Try to open the given url in a secure fashion. The method returns a Promise object.\n * If the url opens, the promise is resolved. If not, the promise is rejected.\n * Dispatches the `onOpen` event if `url` is opened successfully\n */\n ;\n\n _proto.openURL = function openURL(url) {\n try {\n open(url);\n\n this._dispatchEvent('onOpen', url);\n\n return Promise.resolve();\n } catch (e) {\n return Promise.reject(e);\n }\n };\n\n _proto._validateURL = function _validateURL(url) {\n invariant(typeof url === 'string', 'Invalid URL: should be a string. Was: ' + url);\n invariant(url, 'Invalid URL: cannot be empty');\n };\n\n return Linking;\n}();\n\nvar open = function open(url) {\n if (canUseDOM) {\n var urlToOpen = new URL(url, window.location).toString();\n window.open(urlToOpen, '_blank', 'noopener');\n }\n};\n\nexport default new Linking();","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport NativeEventEmitter from '../../vendor/react-native/NativeEventEmitter';\nexport default NativeEventEmitter;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\nvar TouchHistoryMath = {\n /**\n * This code is optimized and not intended to look beautiful. This allows\n * computing of touch centroids that have moved after `touchesChangedAfter`\n * timeStamp. You can compute the current centroid involving all touches\n * moves after `touchesChangedAfter`, or you can compute the previous\n * centroid of all touches that were moved after `touchesChangedAfter`.\n *\n * @param {TouchHistoryMath} touchHistory Standard Responder touch track\n * data.\n * @param {number} touchesChangedAfter timeStamp after which moved touches\n * are considered \"actively moving\" - not just \"active\".\n * @param {boolean} isXAxis Consider `x` dimension vs. `y` dimension.\n * @param {boolean} ofCurrent Compute current centroid for actively moving\n * touches vs. previous centroid of now actively moving touches.\n * @return {number} value of centroid in specified dimension.\n */\n centroidDimension: function centroidDimension(touchHistory, touchesChangedAfter, isXAxis, ofCurrent) {\n var touchBank = touchHistory.touchBank;\n var total = 0;\n var count = 0;\n var oneTouchData = touchHistory.numberActiveTouches === 1 ? touchHistory.touchBank[touchHistory.indexOfSingleActiveTouch] : null;\n\n if (oneTouchData !== null) {\n if (oneTouchData.touchActive && oneTouchData.currentTimeStamp > touchesChangedAfter) {\n total += ofCurrent && isXAxis ? oneTouchData.currentPageX : ofCurrent && !isXAxis ? oneTouchData.currentPageY : !ofCurrent && isXAxis ? oneTouchData.previousPageX : oneTouchData.previousPageY;\n count = 1;\n }\n } else {\n for (var i = 0; i < touchBank.length; i++) {\n var touchTrack = touchBank[i];\n\n if (touchTrack !== null && touchTrack !== undefined && touchTrack.touchActive && touchTrack.currentTimeStamp >= touchesChangedAfter) {\n var toAdd = void 0; // Yuck, program temporarily in invalid state.\n\n if (ofCurrent && isXAxis) {\n toAdd = touchTrack.currentPageX;\n } else if (ofCurrent && !isXAxis) {\n toAdd = touchTrack.currentPageY;\n } else if (!ofCurrent && isXAxis) {\n toAdd = touchTrack.previousPageX;\n } else {\n toAdd = touchTrack.previousPageY;\n }\n\n total += toAdd;\n count++;\n }\n }\n }\n\n return count > 0 ? total / count : TouchHistoryMath.noCentroid;\n },\n currentCentroidXOfTouchesChangedAfter: function currentCentroidXOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, true, // isXAxis\n true // ofCurrent\n );\n },\n currentCentroidYOfTouchesChangedAfter: function currentCentroidYOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, false, // isXAxis\n true // ofCurrent\n );\n },\n previousCentroidXOfTouchesChangedAfter: function previousCentroidXOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, true, // isXAxis\n false // ofCurrent\n );\n },\n previousCentroidYOfTouchesChangedAfter: function previousCentroidYOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, false, // isXAxis\n false // ofCurrent\n );\n },\n currentCentroidX: function currentCentroidX(touchHistory) {\n return TouchHistoryMath.centroidDimension(touchHistory, 0, // touchesChangedAfter\n true, // isXAxis\n true // ofCurrent\n );\n },\n currentCentroidY: function currentCentroidY(touchHistory) {\n return TouchHistoryMath.centroidDimension(touchHistory, 0, // touchesChangedAfter\n false, // isXAxis\n true // ofCurrent\n );\n },\n noCentroid: -1\n};\nexport default TouchHistoryMath;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport InteractionManager from '../../../exports/InteractionManager';\nimport TouchHistoryMath from '../TouchHistoryMath';\nvar currentCentroidXOfTouchesChangedAfter = TouchHistoryMath.currentCentroidXOfTouchesChangedAfter;\nvar currentCentroidYOfTouchesChangedAfter = TouchHistoryMath.currentCentroidYOfTouchesChangedAfter;\nvar previousCentroidXOfTouchesChangedAfter = TouchHistoryMath.previousCentroidXOfTouchesChangedAfter;\nvar previousCentroidYOfTouchesChangedAfter = TouchHistoryMath.previousCentroidYOfTouchesChangedAfter;\nvar currentCentroidX = TouchHistoryMath.currentCentroidX;\nvar currentCentroidY = TouchHistoryMath.currentCentroidY;\n/**\n * `PanResponder` reconciles several touches into a single gesture. It makes\n * single-touch gestures resilient to extra touches, and can be used to\n * recognize simple multi-touch gestures.\n *\n * By default, `PanResponder` holds an `InteractionManager` handle to block\n * long-running JS events from interrupting active gestures.\n *\n * It provides a predictable wrapper of the responder handlers provided by the\n * [gesture responder system](docs/gesture-responder-system.html).\n * For each handler, it provides a new `gestureState` object alongside the\n * native event object:\n *\n * ```\n * onPanResponderMove: (event, gestureState) => {}\n * ```\n *\n * A native event is a synthetic touch event with the following form:\n *\n * - `nativeEvent`\n * + `changedTouches` - Array of all touch events that have changed since the last event\n * + `identifier` - The ID of the touch\n * + `locationX` - The X position of the touch, relative to the element\n * + `locationY` - The Y position of the touch, relative to the element\n * + `pageX` - The X position of the touch, relative to the root element\n * + `pageY` - The Y position of the touch, relative to the root element\n * + `target` - The node id of the element receiving the touch event\n * + `timestamp` - A time identifier for the touch, useful for velocity calculation\n * + `touches` - Array of all current touches on the screen\n *\n * A `gestureState` object has the following:\n *\n * - `stateID` - ID of the gestureState- persisted as long as there at least\n * one touch on screen\n * - `moveX` - the latest screen coordinates of the recently-moved touch\n * - `moveY` - the latest screen coordinates of the recently-moved touch\n * - `x0` - the screen coordinates of the responder grant\n * - `y0` - the screen coordinates of the responder grant\n * - `dx` - accumulated distance of the gesture since the touch started\n * - `dy` - accumulated distance of the gesture since the touch started\n * - `vx` - current velocity of the gesture\n * - `vy` - current velocity of the gesture\n * - `numberActiveTouches` - Number of touches currently on screen\n *\n * ### Basic Usage\n *\n * ```\n * componentWillMount: function() {\n * this._panResponder = PanResponder.create({\n * // Ask to be the responder:\n * onStartShouldSetPanResponder: (evt, gestureState) => true,\n * onStartShouldSetPanResponderCapture: (evt, gestureState) => true,\n * onMoveShouldSetPanResponder: (evt, gestureState) => true,\n * onMoveShouldSetPanResponderCapture: (evt, gestureState) => true,\n *\n * onPanResponderGrant: (evt, gestureState) => {\n * // The gesture has started. Show visual feedback so the user knows\n * // what is happening!\n *\n * // gestureState.d{x,y} will be set to zero now\n * },\n * onPanResponderMove: (evt, gestureState) => {\n * // The most recent move distance is gestureState.move{X,Y}\n *\n * // The accumulated gesture distance since becoming responder is\n * // gestureState.d{x,y}\n * },\n * onPanResponderTerminationRequest: (evt, gestureState) => true,\n * onPanResponderRelease: (evt, gestureState) => {\n * // The user has released all touches while this view is the\n * // responder. This typically means a gesture has succeeded\n * },\n * onPanResponderTerminate: (evt, gestureState) => {\n * // Another component has become the responder, so this gesture\n * // should be cancelled\n * },\n * onShouldBlockNativeResponder: (evt, gestureState) => {\n * // Returns whether this component should block native components from becoming the JS\n * // responder. Returns true by default. Is currently only supported on android.\n * return true;\n * },\n * });\n * },\n *\n * render: function() {\n * return (\n * \n * );\n * },\n *\n * ```\n *\n * ### Working Example\n *\n * To see it in action, try the\n * [PanResponder example in RNTester](https://github.com/facebook/react-native/blob/master/RNTester/js/PanResponderExample.js)\n */\n\nvar PanResponder = {\n /**\n *\n * A graphical explanation of the touch data flow:\n *\n * +----------------------------+ +--------------------------------+\n * | ResponderTouchHistoryStore | |TouchHistoryMath |\n * +----------------------------+ +----------+---------------------+\n * |Global store of touchHistory| |Allocation-less math util |\n * |including activeness, start | |on touch history (centroids |\n * |position, prev/cur position.| |and multitouch movement etc) |\n * | | | |\n * +----^-----------------------+ +----^---------------------------+\n * | |\n * | (records relevant history |\n * | of touches relevant for |\n * | implementing higher level |\n * | gestures) |\n * | |\n * +----+-----------------------+ +----|---------------------------+\n * | ResponderEventPlugin | | | Your App/Component |\n * +----------------------------+ +----|---------------------------+\n * |Negotiates which view gets | Low level | | High level |\n * |onResponderMove events. | events w/ | +-+-------+ events w/ |\n * |Also records history into | touchHistory| | Pan | multitouch + |\n * |ResponderTouchHistoryStore. +---------------->Responder+-----> accumulative|\n * +----------------------------+ attached to | | | distance and |\n * each event | +---------+ velocity. |\n * | |\n * | |\n * +--------------------------------+\n *\n *\n *\n * Gesture that calculates cumulative movement over time in a way that just\n * \"does the right thing\" for multiple touches. The \"right thing\" is very\n * nuanced. When moving two touches in opposite directions, the cumulative\n * distance is zero in each dimension. When two touches move in parallel five\n * pixels in the same direction, the cumulative distance is five, not ten. If\n * two touches start, one moves five in a direction, then stops and the other\n * touch moves fives in the same direction, the cumulative distance is ten.\n *\n * This logic requires a kind of processing of time \"clusters\" of touch events\n * so that two touch moves that essentially occur in parallel but move every\n * other frame respectively, are considered part of the same movement.\n *\n * Explanation of some of the non-obvious fields:\n *\n * - moveX/moveY: If no move event has been observed, then `(moveX, moveY)` is\n * invalid. If a move event has been observed, `(moveX, moveY)` is the\n * centroid of the most recently moved \"cluster\" of active touches.\n * (Currently all move have the same timeStamp, but later we should add some\n * threshold for what is considered to be \"moving\"). If a palm is\n * accidentally counted as a touch, but a finger is moving greatly, the palm\n * will move slightly, but we only want to count the single moving touch.\n * - x0/y0: Centroid location (non-cumulative) at the time of becoming\n * responder.\n * - dx/dy: Cumulative touch distance - not the same thing as sum of each touch\n * distance. Accounts for touch moves that are clustered together in time,\n * moving the same direction. Only valid when currently responder (otherwise,\n * it only represents the drag distance below the threshold).\n * - vx/vy: Velocity.\n */\n _initializeGestureState: function _initializeGestureState(gestureState) {\n gestureState.moveX = 0;\n gestureState.moveY = 0;\n gestureState.x0 = 0;\n gestureState.y0 = 0;\n gestureState.dx = 0;\n gestureState.dy = 0;\n gestureState.vx = 0;\n gestureState.vy = 0;\n gestureState.numberActiveTouches = 0; // All `gestureState` accounts for timeStamps up until:\n\n gestureState._accountsForMovesUpTo = 0;\n },\n\n /**\n * This is nuanced and is necessary. It is incorrect to continuously take all\n * active *and* recently moved touches, find the centroid, and track how that\n * result changes over time. Instead, we must take all recently moved\n * touches, and calculate how the centroid has changed just for those\n * recently moved touches, and append that change to an accumulator. This is\n * to (at least) handle the case where the user is moving three fingers, and\n * then one of the fingers stops but the other two continue.\n *\n * This is very different than taking all of the recently moved touches and\n * storing their centroid as `dx/dy`. For correctness, we must *accumulate\n * changes* in the centroid of recently moved touches.\n *\n * There is also some nuance with how we handle multiple moved touches in a\n * single event. With the way `ReactNativeEventEmitter` dispatches touches as\n * individual events, multiple touches generate two 'move' events, each of\n * them triggering `onResponderMove`. But with the way `PanResponder` works,\n * all of the gesture inference is performed on the first dispatch, since it\n * looks at all of the touches (even the ones for which there hasn't been a\n * native dispatch yet). Therefore, `PanResponder` does not call\n * `onResponderMove` passed the first dispatch. This diverges from the\n * typical responder callback pattern (without using `PanResponder`), but\n * avoids more dispatches than necessary.\n */\n _updateGestureStateOnMove: function _updateGestureStateOnMove(gestureState, touchHistory) {\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n gestureState.moveX = currentCentroidXOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo);\n gestureState.moveY = currentCentroidYOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo);\n var movedAfter = gestureState._accountsForMovesUpTo;\n var prevX = previousCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);\n var x = currentCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);\n var prevY = previousCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);\n var y = currentCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);\n var nextDX = gestureState.dx + (x - prevX);\n var nextDY = gestureState.dy + (y - prevY); // TODO: This must be filtered intelligently.\n\n var dt = touchHistory.mostRecentTimeStamp - gestureState._accountsForMovesUpTo;\n gestureState.vx = (nextDX - gestureState.dx) / dt;\n gestureState.vy = (nextDY - gestureState.dy) / dt;\n gestureState.dx = nextDX;\n gestureState.dy = nextDY;\n gestureState._accountsForMovesUpTo = touchHistory.mostRecentTimeStamp;\n },\n\n /**\n * @param {object} config Enhanced versions of all of the responder callbacks\n * that provide not only the typical `ResponderSyntheticEvent`, but also the\n * `PanResponder` gesture state. Simply replace the word `Responder` with\n * `PanResponder` in each of the typical `onResponder*` callbacks. For\n * example, the `config` object would look like:\n *\n * - `onMoveShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onMoveShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onPanResponderReject: (e, gestureState) => {...}`\n * - `onPanResponderGrant: (e, gestureState) => {...}`\n * - `onPanResponderStart: (e, gestureState) => {...}`\n * - `onPanResponderEnd: (e, gestureState) => {...}`\n * - `onPanResponderRelease: (e, gestureState) => {...}`\n * - `onPanResponderMove: (e, gestureState) => {...}`\n * - `onPanResponderTerminate: (e, gestureState) => {...}`\n * - `onPanResponderTerminationRequest: (e, gestureState) => {...}`\n * - `onShouldBlockNativeResponder: (e, gestureState) => {...}`\n *\n * In general, for events that have capture equivalents, we update the\n * gestureState once in the capture phase and can use it in the bubble phase\n * as well.\n *\n * Be careful with onStartShould* callbacks. They only reflect updated\n * `gestureState` for start/end events that bubble/capture to the Node.\n * Once the node is the responder, you can rely on every start/end event\n * being processed by the gesture and `gestureState` being updated\n * accordingly. (numberActiveTouches) may not be totally accurate unless you\n * are the responder.\n */\n create: function create(config) {\n var interactionState = {\n handle: null,\n shouldCancelClick: false,\n timeout: null\n };\n var gestureState = {\n // Useful for debugging\n stateID: Math.random(),\n moveX: 0,\n moveY: 0,\n x0: 0,\n y0: 0,\n dx: 0,\n dy: 0,\n vx: 0,\n vy: 0,\n numberActiveTouches: 0,\n _accountsForMovesUpTo: 0\n };\n var panHandlers = {\n onStartShouldSetResponder: function onStartShouldSetResponder(event) {\n return config.onStartShouldSetPanResponder == null ? false : config.onStartShouldSetPanResponder(event, gestureState);\n },\n onMoveShouldSetResponder: function onMoveShouldSetResponder(event) {\n return config.onMoveShouldSetPanResponder == null ? false : config.onMoveShouldSetPanResponder(event, gestureState);\n },\n onStartShouldSetResponderCapture: function onStartShouldSetResponderCapture(event) {\n // TODO: Actually, we should reinitialize the state any time\n // touches.length increases from 0 active to > 0 active.\n if (event.nativeEvent.touches.length === 1) {\n PanResponder._initializeGestureState(gestureState);\n }\n\n gestureState.numberActiveTouches = event.touchHistory.numberActiveTouches;\n return config.onStartShouldSetPanResponderCapture != null ? config.onStartShouldSetPanResponderCapture(event, gestureState) : false;\n },\n onMoveShouldSetResponderCapture: function onMoveShouldSetResponderCapture(event) {\n var touchHistory = event.touchHistory; // Responder system incorrectly dispatches should* to current responder\n // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n\n if (gestureState._accountsForMovesUpTo === touchHistory.mostRecentTimeStamp) {\n return false;\n }\n\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n\n return config.onMoveShouldSetPanResponderCapture ? config.onMoveShouldSetPanResponderCapture(event, gestureState) : false;\n },\n onResponderGrant: function onResponderGrant(event) {\n if (!interactionState.handle) {\n interactionState.handle = InteractionManager.createInteractionHandle();\n }\n\n if (interactionState.timeout) {\n clearInteractionTimeout(interactionState);\n }\n\n interactionState.shouldCancelClick = true;\n gestureState.x0 = currentCentroidX(event.touchHistory);\n gestureState.y0 = currentCentroidY(event.touchHistory);\n gestureState.dx = 0;\n gestureState.dy = 0;\n\n if (config.onPanResponderGrant) {\n config.onPanResponderGrant(event, gestureState);\n } // TODO: t7467124 investigate if this can be removed\n\n\n return config.onShouldBlockNativeResponder == null ? true : config.onShouldBlockNativeResponder(event, gestureState);\n },\n onResponderReject: function onResponderReject(event) {\n clearInteractionHandle(interactionState, config.onPanResponderReject, event, gestureState);\n },\n onResponderRelease: function onResponderRelease(event) {\n clearInteractionHandle(interactionState, config.onPanResponderRelease, event, gestureState);\n setInteractionTimeout(interactionState);\n\n PanResponder._initializeGestureState(gestureState);\n },\n onResponderStart: function onResponderStart(event) {\n var touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n\n if (config.onPanResponderStart) {\n config.onPanResponderStart(event, gestureState);\n }\n },\n onResponderMove: function onResponderMove(event) {\n var touchHistory = event.touchHistory; // Guard against the dispatch of two touch moves when there are two\n // simultaneously changed touches.\n\n if (gestureState._accountsForMovesUpTo === touchHistory.mostRecentTimeStamp) {\n return;\n } // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n\n\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n\n if (config.onPanResponderMove) {\n config.onPanResponderMove(event, gestureState);\n }\n },\n onResponderEnd: function onResponderEnd(event) {\n var touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n clearInteractionHandle(interactionState, config.onPanResponderEnd, event, gestureState);\n },\n onResponderTerminate: function onResponderTerminate(event) {\n clearInteractionHandle(interactionState, config.onPanResponderTerminate, event, gestureState);\n setInteractionTimeout(interactionState);\n\n PanResponder._initializeGestureState(gestureState);\n },\n onResponderTerminationRequest: function onResponderTerminationRequest(event) {\n return config.onPanResponderTerminationRequest == null ? true : config.onPanResponderTerminationRequest(event, gestureState);\n },\n // We do not want to trigger 'click' activated gestures or native behaviors\n // on any pan target that is under a mouse cursor when it is released.\n // Browsers will natively cancel 'click' events on a target if a non-mouse\n // active pointer moves.\n onClickCapture: function onClickCapture(event) {\n if (interactionState.shouldCancelClick === true) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n };\n return {\n panHandlers: panHandlers,\n getInteractionHandle: function getInteractionHandle() {\n return interactionState.handle;\n }\n };\n }\n};\n\nfunction clearInteractionHandle(interactionState, callback, event, gestureState) {\n if (interactionState.handle) {\n InteractionManager.clearInteractionHandle(interactionState.handle);\n interactionState.handle = null;\n }\n\n if (callback) {\n callback(event, gestureState);\n }\n}\n\nfunction clearInteractionTimeout(interactionState) {\n clearTimeout(interactionState.timeout);\n}\n\nfunction setInteractionTimeout(interactionState) {\n interactionState.timeout = setTimeout(function () {\n interactionState.shouldCancelClick = false;\n }, 250);\n}\n\nexport default PanResponder;","import PanResponder from '../../vendor/react-native/PanResponder';\nexport default PanResponder;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nimport invariant from 'fbjs/lib/invariant';\n\nvar Share = /*#__PURE__*/function () {\n function Share() {}\n\n Share.share = function share(content, options) {\n if (options === void 0) {\n options = {};\n }\n\n invariant(typeof content === 'object' && content !== null, 'Content to share must be a valid object');\n invariant(typeof content.url === 'string' || typeof content.message === 'string', 'At least one of URL and message is required');\n invariant(typeof options === 'object' && options !== null, 'Options must be a valid object');\n invariant(!content.title || typeof content.title === 'string', 'Invalid title: title should be a string.');\n\n if (window.navigator.share !== undefined) {\n return window.navigator.share({\n title: content.title,\n text: content.message,\n url: content.url\n });\n } else {\n return Promise.reject(new Error('Share is not supported in this browser'));\n }\n }\n /**\n * The content was successfully shared.\n */\n ;\n\n _createClass(Share, null, [{\n key: \"sharedAction\",\n get: function get() {\n return 'sharedAction';\n }\n /**\n * The dialog has been dismissed.\n * @platform ios\n */\n\n }, {\n key: \"dismissedAction\",\n get: function get() {\n return 'dismissedAction';\n }\n }]);\n\n return Share;\n}();\n\nexport default Share;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar _vibrate = function vibrate(pattern) {\n if ('vibrate' in window.navigator) {\n window.navigator.vibrate(pattern);\n }\n};\n\nvar Vibration = {\n cancel: function cancel() {\n _vibrate(0);\n },\n vibrate: function vibrate(pattern) {\n if (pattern === void 0) {\n pattern = 400;\n }\n\n _vibrate(pattern);\n }\n};\nexport default Vibration;","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport React, { forwardRef } from 'react';\nvar accessibilityValue = {\n max: 1,\n min: 0\n};\n\nvar createSvgCircle = function createSvgCircle(style) {\n return /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"16\",\n cy: \"16\",\n fill: \"none\",\n r: \"14\",\n strokeWidth: \"4\",\n style: style\n });\n};\n\nvar ActivityIndicator = /*#__PURE__*/forwardRef(function (props, forwardedRef) {\n var _props$animating = props.animating,\n animating = _props$animating === void 0 ? true : _props$animating,\n _props$color = props.color,\n color = _props$color === void 0 ? '#1976D2' : _props$color,\n _props$hidesWhenStopp = props.hidesWhenStopped,\n hidesWhenStopped = _props$hidesWhenStopp === void 0 ? true : _props$hidesWhenStopp,\n _props$size = props.size,\n size = _props$size === void 0 ? 'small' : _props$size,\n style = props.style,\n other = _objectWithoutPropertiesLoose(props, [\"animating\", \"color\", \"hidesWhenStopped\", \"size\", \"style\"]);\n\n var svg = /*#__PURE__*/React.createElement(\"svg\", {\n height: \"100%\",\n viewBox: \"0 0 32 32\",\n width: \"100%\"\n }, createSvgCircle({\n stroke: color,\n opacity: 0.2\n }), createSvgCircle({\n stroke: color,\n strokeDasharray: 80,\n strokeDashoffset: 60\n }));\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n accessibilityRole: \"progressbar\",\n accessibilityValue: accessibilityValue,\n ref: forwardedRef,\n style: [styles.container, style]\n }), /*#__PURE__*/React.createElement(View, {\n children: svg,\n style: [typeof size === 'number' ? {\n height: size,\n width: size\n } : indicatorSizes[size], styles.animation, !animating && styles.animationPause, !animating && hidesWhenStopped && styles.hidesWhenStopped]\n }));\n});\nActivityIndicator.displayName = 'ActivityIndicator';\nvar styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center'\n },\n hidesWhenStopped: {\n visibility: 'hidden'\n },\n animation: {\n animationDuration: '0.75s',\n animationKeyframes: [{\n '0%': {\n transform: [{\n rotate: '0deg'\n }]\n },\n '100%': {\n transform: [{\n rotate: '360deg'\n }]\n }\n }],\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite'\n },\n animationPause: {\n animationPlayState: 'paused'\n }\n});\nvar indicatorSizes = StyleSheet.create({\n small: {\n width: 20,\n height: 20\n },\n large: {\n width: 36,\n height: 36\n }\n});\nexport default ActivityIndicator;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is 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 \"core-js/modules/es.math.hypot.js\";\nvar DELAY = 'DELAY';\nvar ERROR = 'ERROR';\nvar LONG_PRESS_DETECTED = 'LONG_PRESS_DETECTED';\nvar NOT_RESPONDER = 'NOT_RESPONDER';\nvar RESPONDER_ACTIVE_LONG_PRESS_START = 'RESPONDER_ACTIVE_LONG_PRESS_START';\nvar RESPONDER_ACTIVE_PRESS_START = 'RESPONDER_ACTIVE_PRESS_START';\nvar RESPONDER_INACTIVE_PRESS_START = 'RESPONDER_INACTIVE_PRESS_START';\nvar RESPONDER_GRANT = 'RESPONDER_GRANT';\nvar RESPONDER_RELEASE = 'RESPONDER_RELEASE';\nvar RESPONDER_TERMINATED = 'RESPONDER_TERMINATED';\nvar Transitions = Object.freeze({\n NOT_RESPONDER: {\n DELAY: ERROR,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: ERROR,\n RESPONDER_TERMINATED: ERROR,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_INACTIVE_PRESS_START: {\n DELAY: RESPONDER_ACTIVE_PRESS_START,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_ACTIVE_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n RESPONDER_ACTIVE_LONG_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n ERROR: {\n DELAY: NOT_RESPONDER,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: NOT_RESPONDER\n }\n});\n\nvar isActiveSignal = function isActiveSignal(signal) {\n return signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n};\n\nvar isButtonRole = function isButtonRole(element) {\n return element.getAttribute('role') === 'button';\n};\n\nvar isPressStartSignal = function isPressStartSignal(signal) {\n return signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n};\n\nvar isTerminalSignal = function isTerminalSignal(signal) {\n return signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE;\n};\n\nvar isValidKeyPress = function isValidKeyPress(event) {\n var key = event.key;\n var target = event.currentTarget;\n var role = target.getAttribute('role');\n var isSpacebar = key === ' ' || key === 'Spacebar';\n return !event.repeat && (key === 'Enter' || isSpacebar && (role === 'button' || role === 'menuitem'));\n};\n\nvar DEFAULT_LONG_PRESS_DELAY_MS = 450; // 500 - 50\n\nvar DEFAULT_PRESS_DELAY_MS = 50;\n/**\n * =========================== PressResponder Tutorial ===========================\n *\n * The `PressResponder` class helps you create press interactions by analyzing the\n * geometry of elements and observing when another responder (e.g. ScrollView)\n * has stolen the touch lock. It offers hooks for your component to provide\n * interaction feedback to the user:\n *\n * - When a press has activated (e.g. highlight an element)\n * - When a press has deactivated (e.g. un-highlight an element)\n * - When a press sould trigger an action, meaning it activated and deactivated\n * while within the geometry of the element without the lock being stolen.\n *\n * A high quality interaction isn't as simple as you might think. There should\n * be a slight delay before activation. Moving your finger beyond an element's\n * bounds should trigger deactivation, but moving the same finger back within an\n * element's bounds should trigger reactivation.\n *\n * In order to use `PressResponder`, do the following:\n *\n * const pressResponder = new PressResponder(config);\n *\n * 2. Choose the rendered component who should collect the press events. On that\n * element, spread `pressability.getEventHandlers()` into its props.\n *\n * return (\n * \n * );\n *\n * 3. Reset `PressResponder` when your component unmounts.\n *\n * componentWillUnmount() {\n * this.state.pressResponder.reset();\n * }\n *\n * ==================== Implementation Details ====================\n *\n * `PressResponder` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * # Geometry\n *\n * ┌────────────────────────┐\n * │ ┌──────────────────┐ │ - Presses start anywhere within `HitRect`.\n * │ │ ┌────────────┐ │ │\n * │ │ │ VisualRect │ │ │\n * │ │ └────────────┘ │ │ - When pressed down for sufficient amount of time\n * │ │ HitRect │ │ before letting up, `VisualRect` activates.\n * │ └──────────────────┘ │\n * │ Out Region o │\n * └────────────────────│───┘\n * └────── When the press is released outside the `HitRect`,\n * the responder is NOT eligible for a \"press\".\n *\n * # State Machine\n *\n * ┌───────────────┐ ◀──── RESPONDER_RELEASE\n * │ NOT_RESPONDER │\n * └───┬───────────┘ ◀──── RESPONDER_TERMINATED\n * │\n * │ RESPONDER_GRANT (HitRect)\n * │\n * ▼\n * ┌─────────────────────┐ ┌───────────────────┐ ┌───────────────────┐\n * │ RESPONDER_INACTIVE_ │ DELAY │ RESPONDER_ACTIVE_ │ T + DELAY │ RESPONDER_ACTIVE_ │\n * │ PRESS_START ├────────▶ │ PRESS_START ├────────────▶ │ LONG_PRESS_START │\n * └─────────────────────┘ └───────────────────┘ └───────────────────┘\n *\n * T + DELAY => LONG_PRESS_DELAY + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the invocation of `onLongPress`. Only when the browser produces a\n * `click` event is `onPress` invoked.\n */\n\nvar PressResponder = /*#__PURE__*/function () {\n function PressResponder(config) {\n this._eventHandlers = null;\n this._isPointerTouch = false;\n this._longPressDelayTimeout = null;\n this._longPressDispatched = false;\n this._pressDelayTimeout = null;\n this._pressOutDelayTimeout = null;\n this._touchState = NOT_RESPONDER;\n this.configure(config);\n }\n\n var _proto = PressResponder.prototype;\n\n _proto.configure = function configure(config) {\n this._config = config;\n }\n /**\n * Resets any pending timers. This should be called on unmount.\n */\n ;\n\n _proto.reset = function reset() {\n this._cancelLongPressDelayTimeout();\n\n this._cancelPressDelayTimeout();\n\n this._cancelPressOutDelayTimeout();\n }\n /**\n * Returns a set of props to spread into the interactive element.\n */\n ;\n\n _proto.getEventHandlers = function getEventHandlers() {\n if (this._eventHandlers == null) {\n this._eventHandlers = this._createEventHandlers();\n }\n\n return this._eventHandlers;\n };\n\n _proto._createEventHandlers = function _createEventHandlers() {\n var _this = this;\n\n var start = function start(event, shouldDelay) {\n event.persist();\n\n _this._cancelPressOutDelayTimeout();\n\n _this._longPressDispatched = false;\n _this._responder = event.currentTarget;\n _this._selectionTerminated = false;\n _this._touchState = NOT_RESPONDER;\n _this._isPointerTouch = event.nativeEvent.type === 'touchstart';\n\n _this._receiveSignal(RESPONDER_GRANT, event);\n\n var delayPressStart = normalizeDelay(_this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);\n\n if (shouldDelay !== false && delayPressStart > 0) {\n _this._pressDelayTimeout = setTimeout(function () {\n _this._receiveSignal(DELAY, event);\n }, delayPressStart);\n } else {\n _this._receiveSignal(DELAY, event);\n }\n\n var delayLongPress = normalizeDelay(_this._config.delayLongPress, 10, DEFAULT_LONG_PRESS_DELAY_MS);\n _this._longPressDelayTimeout = setTimeout(function () {\n _this._handleLongPress(event);\n }, delayLongPress + delayPressStart);\n };\n\n var end = function end(event) {\n _this._receiveSignal(RESPONDER_RELEASE, event);\n };\n\n var keyupHandler = function keyupHandler(event) {\n if (_this._touchState !== NOT_RESPONDER) {\n end(event);\n document.removeEventListener('keyup', keyupHandler);\n }\n };\n\n return {\n onStartShouldSetResponder: function onStartShouldSetResponder(event) {\n var disabled = _this._config.disabled;\n\n if (disabled && isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n\n if (disabled == null) {\n return true;\n }\n\n return !disabled;\n },\n onKeyDown: function onKeyDown(event) {\n if (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 event.stopPropagation();\n }\n },\n onResponderGrant: function onResponderGrant(event) {\n return start(event);\n },\n onResponderMove: function onResponderMove(event) {\n if (_this._config.onPressMove != null) {\n _this._config.onPressMove(event);\n }\n\n var touch = getTouchFromResponderEvent(event);\n\n if (_this._touchActivatePosition != null) {\n var deltaX = _this._touchActivatePosition.pageX - touch.pageX;\n var deltaY = _this._touchActivatePosition.pageY - touch.pageY;\n\n if (Math.hypot(deltaX, deltaY) > 10) {\n _this._cancelLongPressDelayTimeout();\n }\n }\n },\n onResponderRelease: function onResponderRelease(event) {\n return end(event);\n },\n onResponderTerminate: function onResponderTerminate(event) {\n if (event.nativeEvent.type === 'selectionchange') {\n _this._selectionTerminated = true;\n }\n\n _this._receiveSignal(RESPONDER_TERMINATED, event);\n },\n onResponderTerminationRequest: function onResponderTerminationRequest(event) {\n var _this$_config = _this._config,\n cancelable = _this$_config.cancelable,\n disabled = _this$_config.disabled,\n onLongPress = _this$_config.onLongPress; // If `onLongPress` is provided, don't terminate on `contextmenu` as default\n // behavior will be prevented for non-mouse pointers.\n\n if (!disabled && onLongPress != null && _this._isPointerTouch && event.nativeEvent.type === 'contextmenu') {\n return false;\n }\n\n if (cancelable == null) {\n return true;\n }\n\n return cancelable;\n },\n // NOTE: this diverges from react-native in 3 significant ways:\n // * The `onPress` callback is not connected to the responder system (the native\n // `click` event must be used but is dispatched in many scenarios where no pointers\n // are on the screen.) Therefore, it's possible for `onPress` to be called without\n // `onPress{Start,End}` being called first.\n // * The `onPress` callback is only be called on the first ancestor of the native\n // `click` target that is using the PressResponder.\n // * The event's `nativeEvent` is a `MouseEvent` not a `TouchEvent`.\n onClick: function onClick(event) {\n var _this$_config2 = _this._config,\n disabled = _this$_config2.disabled,\n onPress = _this$_config2.onPress;\n\n if (!disabled) {\n // If long press dispatched, cancel default click behavior.\n // If the responder terminated because text was selected during the gesture,\n // cancel the default click behavior.\n event.stopPropagation();\n\n if (_this._longPressDispatched || _this._selectionTerminated) {\n event.preventDefault();\n } else if (onPress != null && event.ctrlKey === false && event.altKey === false) {\n onPress(event);\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n },\n // If `onLongPress` is provided and a touch pointer is being used, prevent the\n // default context menu from opening.\n onContextMenu: function onContextMenu(event) {\n var _this$_config3 = _this._config,\n disabled = _this$_config3.disabled,\n onLongPress = _this$_config3.onLongPress;\n\n if (!disabled) {\n if (onLongPress != null && _this._isPointerTouch && !event.defaultPrevented) {\n event.preventDefault();\n event.stopPropagation();\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n }\n };\n }\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n */\n ;\n\n _proto._receiveSignal = function _receiveSignal(signal, event) {\n var prevState = this._touchState;\n var nextState = null;\n\n if (Transitions[prevState] != null) {\n nextState = Transitions[prevState][signal];\n }\n\n if (this._responder == null && signal === RESPONDER_RELEASE) {\n return;\n }\n\n if (nextState == null || nextState === ERROR) {\n console.error(\"PressResponder: Invalid signal \" + signal + \" for state \" + prevState + \" on responder\");\n } else if (prevState !== nextState) {\n this._performTransitionSideEffects(prevState, nextState, signal, event);\n\n this._touchState = nextState;\n }\n }\n /**\n * Performs a transition between touchable states and identify any activations\n * or deactivations (and callback invocations).\n */\n ;\n\n _proto._performTransitionSideEffects = function _performTransitionSideEffects(prevState, nextState, signal, event) {\n if (isTerminalSignal(signal)) {\n this._isPointerTouch = false;\n this._touchActivatePosition = null;\n\n this._cancelLongPressDelayTimeout();\n }\n\n if (isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {\n var onLongPress = this._config.onLongPress; // Long press is not supported for keyboards because 'click' can be dispatched\n // immediately (and multiple times) after 'keydown'.\n\n if (onLongPress != null && event.nativeEvent.key == null) {\n onLongPress(event);\n this._longPressDispatched = true;\n }\n }\n\n var isPrevActive = isActiveSignal(prevState);\n var isNextActive = isActiveSignal(nextState);\n\n if (!isPrevActive && isNextActive) {\n this._activate(event);\n } else if (isPrevActive && !isNextActive) {\n this._deactivate(event);\n }\n\n if (isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {\n var _this$_config4 = this._config,\n _onLongPress = _this$_config4.onLongPress,\n onPress = _this$_config4.onPress;\n\n if (onPress != null) {\n var isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;\n\n if (!isPressCanceledByLongPress) {\n // If we never activated (due to delays), activate and deactivate now.\n if (!isNextActive && !isPrevActive) {\n this._activate(event);\n\n this._deactivate(event);\n }\n }\n }\n }\n\n this._cancelPressDelayTimeout();\n };\n\n _proto._activate = function _activate(event) {\n var _this$_config5 = this._config,\n onPressChange = _this$_config5.onPressChange,\n onPressStart = _this$_config5.onPressStart;\n var touch = getTouchFromResponderEvent(event);\n this._touchActivatePosition = {\n pageX: touch.pageX,\n pageY: touch.pageY\n };\n\n if (onPressStart != null) {\n onPressStart(event);\n }\n\n if (onPressChange != null) {\n onPressChange(true);\n }\n };\n\n _proto._deactivate = function _deactivate(event) {\n var _this$_config6 = this._config,\n onPressChange = _this$_config6.onPressChange,\n onPressEnd = _this$_config6.onPressEnd;\n\n function end() {\n if (onPressEnd != null) {\n onPressEnd(event);\n }\n\n if (onPressChange != null) {\n onPressChange(false);\n }\n }\n\n var delayPressEnd = normalizeDelay(this._config.delayPressEnd);\n\n if (delayPressEnd > 0) {\n this._pressOutDelayTimeout = setTimeout(function () {\n end();\n }, delayPressEnd);\n } else {\n end();\n }\n };\n\n _proto._handleLongPress = function _handleLongPress(event) {\n if (this._touchState === RESPONDER_ACTIVE_PRESS_START || this._touchState === RESPONDER_ACTIVE_LONG_PRESS_START) {\n this._receiveSignal(LONG_PRESS_DETECTED, event);\n }\n };\n\n _proto._cancelLongPressDelayTimeout = function _cancelLongPressDelayTimeout() {\n if (this._longPressDelayTimeout != null) {\n clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n }\n };\n\n _proto._cancelPressDelayTimeout = function _cancelPressDelayTimeout() {\n if (this._pressDelayTimeout != null) {\n clearTimeout(this._pressDelayTimeout);\n this._pressDelayTimeout = null;\n }\n };\n\n _proto._cancelPressOutDelayTimeout = function _cancelPressOutDelayTimeout() {\n if (this._pressOutDelayTimeout != null) {\n clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n }\n };\n\n return PressResponder;\n}();\n\nexport { PressResponder as default };\n\nfunction normalizeDelay(delay, min, fallback) {\n if (min === void 0) {\n min = 0;\n }\n\n if (fallback === void 0) {\n fallback = 0;\n }\n\n return Math.max(min, delay !== null && delay !== void 0 ? delay : fallback);\n}\n\nfunction getTouchFromResponderEvent(event) {\n var _event$nativeEvent = event.nativeEvent,\n changedTouches = _event$nativeEvent.changedTouches,\n touches = _event$nativeEvent.touches;\n\n if (touches != null && touches.length > 0) {\n return touches[0];\n }\n\n if (changedTouches != null && changedTouches.length > 0) {\n return changedTouches[0];\n }\n\n return event.nativeEvent;\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport PressResponder from './PressResponder';\nimport { useDebugValue, useEffect, useRef } from 'react';\nexport default function usePressEvents(hostRef, config) {\n var pressResponderRef = useRef(null);\n\n if (pressResponderRef.current == null) {\n pressResponderRef.current = new PressResponder(config);\n }\n\n var pressResponder = pressResponderRef.current; // Re-configure to use the current node and configuration.\n\n useEffect(function () {\n pressResponder.configure(config);\n }, [config, pressResponder]); // Reset the `pressResponder` when cleanup needs to occur. This is\n // a separate effect because we do not want to rest the responder when `config` changes.\n\n useEffect(function () {\n return function () {\n pressResponder.reset();\n };\n }, [pressResponder]);\n useDebugValue(config);\n return pressResponder.getEventHandlers();\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\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 * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, dimming it.\n */\n\nfunction TouchableOpacity(props, forwardedRef) {\n var activeOpacity = props.activeOpacity,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n rejectResponderTermination = props.rejectResponderTermination,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, [\"activeOpacity\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"rejectResponderTermination\", \"style\"]);\n\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n\n var _useState = useState('0s'),\n duration = _useState[0],\n setDuration = _useState[1];\n\n var _useState2 = useState(null),\n opacityOverride = _useState2[0],\n setOpacityOverride = _useState2[1];\n\n var setOpacityTo = useCallback(function (value, duration) {\n setOpacityOverride(value);\n setDuration(duration ? duration / 1000 + \"s\" : '0s');\n }, [setOpacityOverride, setDuration]);\n var setOpacityActive = useCallback(function (duration) {\n setOpacityTo(activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.2, duration);\n }, [activeOpacity, setOpacityTo]);\n var setOpacityInactive = useCallback(function (duration) {\n setOpacityTo(null, duration);\n }, [setOpacityTo]);\n var pressConfig = useMemo(function () {\n return {\n cancelable: !rejectResponderTermination,\n disabled: disabled,\n delayLongPress: delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress: onLongPress,\n onPress: onPress,\n onPressStart: function onPressStart(event) {\n var isGrant = event.dispatchConfig != null ? event.dispatchConfig.registrationName === 'onResponderGrant' : event.type === 'keydown';\n setOpacityActive(isGrant ? 0 : 150);\n\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n onPressEnd: function onPressEnd(event) {\n setOpacityInactive(250);\n\n if (onPressOut != null) {\n onPressOut(event);\n }\n }\n };\n }, [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, setOpacityActive, setOpacityInactive]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n ref: setRef,\n style: [styles.root, !disabled && styles.actionable, style, opacityOverride != null && {\n opacity: opacityOverride\n }, {\n transitionDuration: duration\n }]\n }));\n}\n\nvar styles = StyleSheet.create({\n root: {\n transitionProperty: 'opacity',\n transitionDuration: '0.15s',\n userSelect: 'none'\n },\n actionable: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedTouchableOpacity = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableOpacity));\nMemoedTouchableOpacity.displayName = 'TouchableOpacity';\nexport default MemoedTouchableOpacity;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport TouchableOpacity from '../TouchableOpacity';\nimport Text from '../Text';\nvar Button = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var accessibilityLabel = props.accessibilityLabel,\n color = props.color,\n disabled = props.disabled,\n onPress = props.onPress,\n testID = props.testID,\n title = props.title;\n return /*#__PURE__*/React.createElement(TouchableOpacity, {\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: \"button\",\n disabled: disabled,\n focusable: !disabled,\n onPress: onPress,\n ref: forwardedRef,\n style: [styles.button, color && {\n backgroundColor: color\n }, disabled && styles.buttonDisabled],\n testID: testID\n }, /*#__PURE__*/React.createElement(Text, {\n style: [styles.text, disabled && styles.textDisabled]\n }, title));\n});\nButton.displayName = 'Button';\nvar styles = StyleSheet.create({\n button: {\n backgroundColor: '#2196F3',\n borderRadius: 2\n },\n text: {\n color: '#fff',\n fontWeight: '500',\n padding: 8,\n textAlign: 'center',\n textTransform: 'uppercase'\n },\n buttonDisabled: {\n backgroundColor: '#dfdfdf'\n },\n textDisabled: {\n color: '#a1a1a1'\n }\n});\nexport default Button;","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport createElement from '../createElement';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar CheckBox = /*#__PURE__*/forwardRef(function (props, forwardedRef) {\n var color = props.color,\n disabled = props.disabled,\n onChange = props.onChange,\n onValueChange = props.onValueChange,\n style = props.style,\n value = props.value,\n other = _objectWithoutPropertiesLoose(props, [\"color\", \"disabled\", \"onChange\", \"onValueChange\", \"style\", \"value\"]);\n\n function handleChange(event) {\n var value = event.nativeEvent.target.checked;\n event.nativeEvent.value = value;\n onChange && onChange(event);\n onValueChange && onValueChange(value);\n }\n\n var fakeControl = /*#__PURE__*/React.createElement(View, {\n style: [styles.fakeControl, value && styles.fakeControlChecked, // custom color\n value && color && {\n backgroundColor: color,\n borderColor: color\n }, disabled && styles.fakeControlDisabled, value && disabled && styles.fakeControlCheckedAndDisabled]\n });\n var nativeControl = createElement('input', {\n checked: value,\n disabled: disabled,\n onChange: handleChange,\n ref: forwardedRef,\n style: [styles.nativeControl, styles.cursorInherit],\n type: 'checkbox'\n });\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n accessibilityDisabled: disabled,\n style: [styles.root, style, disabled && styles.cursorDefault]\n }), fakeControl, nativeControl);\n});\nCheckBox.displayName = 'CheckBox';\nvar styles = StyleSheet.create({\n root: {\n cursor: 'pointer',\n height: 16,\n userSelect: 'none',\n width: 16\n },\n cursorDefault: {\n cursor: 'default'\n },\n cursorInherit: {\n cursor: 'inherit'\n },\n fakeControl: {\n alignItems: 'center',\n backgroundColor: '#fff',\n borderColor: '#657786',\n borderRadius: 2,\n borderStyle: 'solid',\n borderWidth: 2,\n height: '100%',\n justifyContent: 'center',\n width: '100%'\n },\n fakeControlChecked: {\n backgroundColor: '#009688',\n backgroundImage: 'url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K\")',\n backgroundRepeat: 'no-repeat',\n borderColor: '#009688'\n },\n fakeControlDisabled: {\n borderColor: '#CCD6DD'\n },\n fakeControlCheckedAndDisabled: {\n backgroundColor: '#AAB8C2',\n borderColor: '#AAB8C2'\n },\n nativeControl: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n margin: 0,\n opacity: 0,\n padding: 0,\n width: '100%'\n })\n});\nexport default CheckBox;","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source 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\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport Image from '../Image';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar emptyObject = {};\n/**\n * Very simple drop-in replacement for which supports nesting views.\n */\n\nvar ImageBackground = /*#__PURE__*/forwardRef(function (props, forwardedRef) {\n var children = props.children,\n _props$style = props.style,\n style = _props$style === void 0 ? emptyObject : _props$style,\n imageStyle = props.imageStyle,\n imageRef = props.imageRef,\n rest = _objectWithoutPropertiesLoose(props, [\"children\", \"style\", \"imageStyle\", \"imageRef\"]);\n\n var _StyleSheet$flatten = StyleSheet.flatten(style),\n height = _StyleSheet$flatten.height,\n width = _StyleSheet$flatten.width;\n\n return /*#__PURE__*/React.createElement(View, {\n ref: forwardedRef,\n style: style\n }, /*#__PURE__*/React.createElement(Image, _extends({}, rest, {\n ref: imageRef,\n style: [StyleSheet.absoluteFill, {\n // Temporary Workaround:\n // Current (imperfect yet) implementation of overwrites width and height styles\n // (which is not quite correct), and these styles conflict with explicitly set styles\n // of and with our internal layout model here.\n // So, we have to proxy/reapply these styles explicitly for actual component.\n // This workaround should be removed after implementing proper support of\n // intrinsic content size of the .\n width: width,\n height: height,\n zIndex: -1\n }, imageStyle]\n })), children);\n});\nImageBackground.displayName = 'ImageBackground';\nexport default ImageBackground;","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nimport View from '../View';\nimport React from 'react';\n\nvar KeyboardAvoidingView = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(KeyboardAvoidingView, _React$Component);\n\n function KeyboardAvoidingView() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.frame = null;\n\n _this.onLayout = function (event) {\n _this.frame = event.nativeEvent.layout;\n };\n\n return _this;\n }\n\n var _proto = KeyboardAvoidingView.prototype;\n\n _proto.relativeKeyboardHeight = function relativeKeyboardHeight(keyboardFrame) {\n var frame = this.frame;\n\n if (!frame || !keyboardFrame) {\n return 0;\n }\n\n var keyboardY = keyboardFrame.screenY - (this.props.keyboardVerticalOffset || 0);\n return Math.max(frame.y + frame.height - keyboardY, 0);\n };\n\n _proto.onKeyboardChange = function onKeyboardChange(event) {};\n\n _proto.render = function render() {\n var _this$props = this.props,\n behavior = _this$props.behavior,\n contentContainerStyle = _this$props.contentContainerStyle,\n keyboardVerticalOffset = _this$props.keyboardVerticalOffset,\n rest = _objectWithoutPropertiesLoose(_this$props, [\"behavior\", \"contentContainerStyle\", \"keyboardVerticalOffset\"]);\n\n return /*#__PURE__*/React.createElement(View, _extends({\n onLayout: this.onLayout\n }, rest));\n };\n\n return KeyboardAvoidingView;\n}(React.Component);\n\nexport default KeyboardAvoidingView;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { useEffect, useRef } from 'react';\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport ReactDOM from 'react-dom';\n\nfunction ModalPortal(props) {\n var children = props.children;\n var elementRef = 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 useEffect(function () {\n if (canUseDOM) {\n return function () {\n if (document.body && elementRef.current) {\n document.body.removeChild(elementRef.current);\n elementRef.current = null;\n }\n };\n }\n }, []);\n return elementRef.current && canUseDOM ? /*#__PURE__*/ReactDOM.createPortal(children, elementRef.current) : null;\n}\n\nexport default ModalPortal;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { useEffect, useCallback, useState, useRef } 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 _useState = useState(false),\n isRendering = _useState[0],\n setIsRendering = _useState[1];\n\n var wasVisible = useRef(false);\n var isAnimated = animationType && animationType !== 'none';\n var animationEndCallback = useCallback(function (e) {\n if (e && e.currentTarget !== e.target) {\n // If the event was generated for something NOT this element we\n // should ignore it as it's not relevant to us\n return;\n }\n\n if (visible) {\n if (onShow) {\n onShow();\n }\n } else {\n setIsRendering(false);\n\n if (onDismiss) {\n onDismiss();\n }\n }\n }, [onDismiss, onShow, visible]);\n useEffect(function () {\n if (visible) {\n setIsRendering(true);\n }\n\n if (visible !== wasVisible.current && !isAnimated) {\n // Manually call `animationEndCallback` if no animation is used\n animationEndCallback();\n }\n\n wasVisible.current = visible;\n }, [isAnimated, visible, animationEndCallback]);\n return isRendering || visible ? createElement('div', {\n style: isRendering ? getAnimationStyle(animationType, visible) : styles.hidden,\n onAnimationEnd: animationEndCallback,\n children: children\n }) : null;\n}\n\nvar styles = StyleSheet.create({\n container: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: 9999\n },\n animatedIn: {\n animationDuration: ANIMATION_DURATION + \"ms\",\n animationTimingFunction: 'ease-in'\n },\n animatedOut: {\n pointerEvents: 'none',\n animationDuration: ANIMATION_DURATION + \"ms\",\n animationTimingFunction: 'ease-out'\n },\n fadeIn: {\n opacity: 1,\n animationKeyframes: {\n '0%': {\n opacity: 0\n },\n '100%': {\n opacity: 1\n }\n }\n },\n fadeOut: {\n opacity: 0,\n animationKeyframes: {\n '0%': {\n opacity: 1\n },\n '100%': {\n opacity: 0\n }\n }\n },\n slideIn: {\n transform: [{\n translateY: '0%'\n }],\n animationKeyframes: {\n '0%': {\n transform: [{\n translateY: '100%'\n }]\n },\n '100%': {\n transform: [{\n translateY: '0%'\n }]\n }\n }\n },\n slideOut: {\n transform: [{\n translateY: '100%'\n }],\n animationKeyframes: {\n '0%': {\n transform: [{\n translateY: '0%'\n }]\n },\n '100%': {\n transform: [{\n translateY: '100%'\n }]\n }\n }\n },\n hidden: {\n opacity: 0\n }\n});\nvar animatedSlideInStyles = [styles.container, styles.animatedIn, styles.slideIn];\nvar animatedSlideOutStyles = [styles.container, styles.animatedOut, styles.slideOut];\nvar animatedFadeInStyles = [styles.container, styles.animatedIn, styles.fadeIn];\nvar animatedFadeOutStyles = [styles.container, styles.animatedOut, styles.fadeOut];\nexport default ModalAnimation;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport React, { forwardRef, useMemo, useEffect } from 'react';\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport View from '../View';\nimport StyleSheet from '../StyleSheet';\nvar ModalContent = /*#__PURE__*/forwardRef(function (props, forwardedRef) {\n var active = props.active,\n children = props.children,\n onRequestClose = props.onRequestClose,\n transparent = props.transparent;\n useEffect(function () {\n if (canUseDOM) {\n var closeOnEscape = function closeOnEscape(e) {\n if (active && e.key === 'Escape') {\n e.stopPropagation();\n\n if (onRequestClose) {\n onRequestClose();\n }\n }\n };\n\n document.addEventListener('keyup', closeOnEscape, false);\n return function () {\n return document.removeEventListener('keyup', closeOnEscape, false);\n };\n }\n }, [active, onRequestClose]);\n var style = useMemo(function () {\n return [styles.modal, transparent ? styles.modalTransparent : styles.modalOpaque];\n }, [transparent]);\n return /*#__PURE__*/React.createElement(View, {\n accessibilityRole: active ? 'dialog' : null,\n \"aria-modal\": true,\n ref: forwardedRef,\n style: style\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.container\n }, children));\n});\nvar styles = StyleSheet.create({\n modal: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n modalTransparent: {\n backgroundColor: 'transparent'\n },\n modalOpaque: {\n backgroundColor: 'white'\n },\n container: {\n top: 0,\n flex: 1\n }\n});\nexport default ModalContent;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport React, { useRef, useEffect } from 'react';\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport View from '../View';\nimport createElement from '../createElement';\nimport StyleSheet from '../StyleSheet';\nimport UIManager from '../UIManager';\n/**\n * This Component is used to \"wrap\" the modal we're opening\n * so that changing focus via tab will never leave the document.\n *\n * This allows us to properly trap the focus within a modal\n * even if the modal is at the start or end of a document.\n */\n\nvar FocusBracket = function FocusBracket() {\n return createElement('div', {\n accessibilityRole: 'none',\n tabIndex: 0,\n style: styles.focusBracket\n });\n};\n\nfunction attemptFocus(element) {\n if (!canUseDOM) {\n return false;\n }\n\n try {\n element.focus();\n } catch (e) {// Do nothing\n }\n\n return document.activeElement === element;\n}\n\nfunction focusFirstDescendant(element) {\n for (var i = 0; i < element.childNodes.length; i++) {\n var child = element.childNodes[i];\n\n if (attemptFocus(child) || focusFirstDescendant(child)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction focusLastDescendant(element) {\n for (var i = element.childNodes.length - 1; i >= 0; i--) {\n var child = element.childNodes[i];\n\n if (attemptFocus(child) || focusLastDescendant(child)) {\n return true;\n }\n }\n\n return false;\n}\n\nvar ModalFocusTrap = function ModalFocusTrap(_ref) {\n var active = _ref.active,\n children = _ref.children;\n var trapElementRef = useRef();\n var focusRef = useRef({\n trapFocusInProgress: false,\n lastFocusedElement: null\n });\n useEffect(function () {\n if (canUseDOM) {\n var trapFocus = function trapFocus() {\n // We should not trap focus if:\n // - The modal hasn't fully initialized with an HTMLElement ref\n // - Focus is already in the process of being trapped (e.g., we're refocusing)\n // - isTrapActive prop being falsey tells us to do nothing\n if (trapElementRef.current == null || focusRef.current.trapFocusInProgress || !active) {\n return;\n }\n\n try {\n focusRef.current.trapFocusInProgress = true;\n\n if (document.activeElement instanceof Node && !trapElementRef.current.contains(document.activeElement)) {\n // To handle keyboard focusing we can make an assumption here.\n // If you're tabbing through the focusable elements, the previously\n // active element will either be the first or the last.\n // If the previously selected element is the \"first\" descendant\n // and we're leaving it - this means that we should be looping\n // around to the other side of the modal.\n var hasFocused = focusFirstDescendant(trapElementRef.current);\n\n if (focusRef.current.lastFocusedElement === document.activeElement) {\n hasFocused = focusLastDescendant(trapElementRef.current);\n } // If we couldn't focus a new element then we need to focus onto the trap target\n\n\n if (!hasFocused && trapElementRef.current != null && document.activeElement) {\n UIManager.focus(trapElementRef.current);\n }\n }\n } finally {\n focusRef.current.trapFocusInProgress = false;\n }\n\n focusRef.current.lastFocusedElement = document.activeElement;\n }; // Call the trapFocus callback at least once when this modal has been activated.\n\n\n trapFocus();\n document.addEventListener('focus', trapFocus, true);\n return function () {\n return document.removeEventListener('focus', trapFocus, true);\n };\n }\n }, [active]); // To be fully compliant with WCAG we need to refocus element that triggered opening modal\n // after closing it\n\n useEffect(function () {\n if (canUseDOM) {\n var lastFocusedElementOutsideTrap = document.activeElement;\n return function () {\n if (lastFocusedElementOutsideTrap && document.contains(lastFocusedElementOutsideTrap)) {\n UIManager.focus(lastFocusedElementOutsideTrap);\n }\n };\n }\n }, []);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FocusBracket, null), /*#__PURE__*/React.createElement(View, {\n ref: trapElementRef\n }, children), /*#__PURE__*/React.createElement(FocusBracket, null));\n};\n\nexport default ModalFocusTrap;\nvar styles = StyleSheet.create({\n focusBracket: {\n outlineStyle: 'none'\n }\n});","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport React, { forwardRef, useCallback, useMemo, useEffect, useState } from 'react';\nimport ModalPortal from './ModalPortal';\nimport ModalAnimation from './ModalAnimation';\nimport ModalContent from './ModalContent';\nimport ModalFocusTrap from './ModalFocusTrap';\nvar uniqueModalIdentifier = 0;\nvar activeModalStack = [];\nvar activeModalListeners = {};\n\nfunction notifyActiveModalListeners() {\n if (activeModalStack.length === 0) {\n return;\n }\n\n var activeModalId = activeModalStack[activeModalStack.length - 1];\n activeModalStack.forEach(function (modalId) {\n if (modalId in activeModalListeners) {\n activeModalListeners[modalId](modalId === activeModalId);\n }\n });\n}\n\nfunction removeActiveModal(modalId) {\n if (modalId in activeModalListeners) {\n // Before removing this listener we should probably tell it\n // that it's no longer the active modal for sure.\n activeModalListeners[modalId](false);\n delete activeModalListeners[modalId];\n }\n\n var index = activeModalStack.indexOf(modalId);\n\n if (index !== -1) {\n activeModalStack.splice(index, 1);\n notifyActiveModalListeners();\n }\n}\n\nfunction addActiveModal(modalId, listener) {\n removeActiveModal(modalId);\n activeModalStack.push(modalId);\n activeModalListeners[modalId] = listener;\n notifyActiveModalListeners();\n}\n\nvar Modal = /*#__PURE__*/forwardRef(function (props, forwardedRef) {\n var animationType = props.animationType,\n children = props.children,\n onDismiss = props.onDismiss,\n onRequestClose = props.onRequestClose,\n onShow = props.onShow,\n transparent = props.transparent,\n _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible; // Set a unique model identifier so we can correctly route\n // dismissals and check the layering of modals.\n\n var modalId = useMemo(function () {\n return uniqueModalIdentifier++;\n }, []);\n\n var _useState = useState(false),\n isActive = _useState[0],\n setIsActive = _useState[1];\n\n var onDismissCallback = useCallback(function () {\n removeActiveModal(modalId);\n\n if (onDismiss) {\n onDismiss();\n }\n }, [modalId, onDismiss]);\n var onShowCallback = useCallback(function () {\n addActiveModal(modalId, setIsActive);\n\n if (onShow) {\n onShow();\n }\n }, [modalId, onShow]);\n useEffect(function () {\n return function () {\n return removeActiveModal(modalId);\n };\n }, [modalId]);\n return /*#__PURE__*/React.createElement(ModalPortal, null, /*#__PURE__*/React.createElement(ModalAnimation, {\n animationType: animationType,\n onDismiss: onDismissCallback,\n onShow: onShowCallback,\n visible: visible\n }, /*#__PURE__*/React.createElement(ModalFocusTrap, {\n active: isActive\n }, /*#__PURE__*/React.createElement(ModalContent, {\n active: isActive,\n onRequestClose: onRequestClose,\n ref: forwardedRef,\n transparent: transparent\n }, children))));\n});\nexport default Modal;","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nimport createElement from '../createElement';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport PickerItem from './PickerItem';\nimport StyleSheet from '../StyleSheet';\nimport { forwardRef, useRef } from 'react';\nvar Picker = /*#__PURE__*/forwardRef(function (props, forwardedRef) {\n var children = props.children,\n enabled = props.enabled,\n onValueChange = props.onValueChange,\n selectedValue = props.selectedValue,\n style = props.style,\n testID = props.testID,\n itemStyle = props.itemStyle,\n mode = props.mode,\n prompt = props.prompt,\n other = _objectWithoutPropertiesLoose(props, [\"children\", \"enabled\", \"onValueChange\", \"selectedValue\", \"style\", \"testID\", \"itemStyle\", \"mode\", \"prompt\"]);\n\n var hostRef = 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 }\n\n var supportedProps = _objectSpread({\n children: children,\n disabled: enabled === false ? true : undefined,\n onChange: handleChange,\n style: [styles.initial, style],\n testID: testID,\n value: selectedValue\n }, other);\n\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement('select', supportedProps);\n}); // $FlowFixMe\n\nPicker.Item = PickerItem;\nvar styles = StyleSheet.create({\n initial: {\n fontFamily: 'System',\n fontSize: 'inherit',\n margin: 0\n }\n});\nexport default Picker;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createElement from '../createElement';\nexport default function PickerItem(props) {\n var color = props.color,\n label = props.label,\n testID = props.testID,\n value = props.value;\n var style = {\n color: color\n };\n return createElement('option', {\n style: style,\n testID: testID,\n value: value\n }, label);\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n'use strict';\n\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\n\nvar emptyFunction = function emptyFunction() {};\n\nfunction supportsPassiveEvents() {\n var supported = false; // Check if browser supports event with passive listeners\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n\n if (canUseDOM) {\n try {\n var options = {};\n Object.defineProperty(options, 'passive', {\n get: function get() {\n supported = true;\n return false;\n }\n });\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {}\n }\n\n return supported;\n}\n\nvar canUsePassiveEvents = supportsPassiveEvents();\n\nfunction getOptions(options) {\n if (options == null) {\n return false;\n }\n\n return canUsePassiveEvents ? options : Boolean(options.capture);\n}\n/**\n * Shim generic API compatibility with ReactDOM's synthetic events, without needing the\n * large amount of code ReactDOM uses to do this. Ideally we wouldn't use a synthetic\n * event wrapper at all.\n */\n\n\nfunction isPropagationStopped() {\n return this.cancelBubble;\n}\n\nfunction isDefaultPrevented() {\n return this.defaultPrevented;\n}\n\nfunction normalizeEvent(event) {\n event.nativeEvent = event;\n event.persist = emptyFunction;\n event.isDefaultPrevented = isDefaultPrevented;\n event.isPropagationStopped = isPropagationStopped;\n return event;\n}\n/**\n *\n */\n\n\nexport default function createEventHandle(type, options) {\n var opts = getOptions(options);\n return function (target, listener) {\n if (target == null || typeof target.addEventListener !== 'function') {\n throw new Error('createEventHandle: called on an invalid target.');\n }\n\n var element = target;\n\n if (listener != null) {\n var compatListener = function compatListener(e) {\n return listener(normalizeEvent(e));\n };\n\n element.addEventListener(type, compatListener, opts);\n return function removeListener() {\n if (element != null) {\n element.removeEventListener(type, compatListener, opts);\n }\n };\n } else {\n return emptyFunction;\n }\n };\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport createEventHandle from '../createEventHandle';\n\nvar supportsPointerEvent = function supportsPointerEvent() {\n return !!(typeof window !== 'undefined' && window.PointerEvent != null);\n};\n\nvar activeModality = 'keyboard';\nvar modality = 'keyboard';\nvar previousModality;\nvar previousActiveModality;\nvar isEmulatingMouseEvents = false;\nvar listeners = new Set();\nvar KEYBOARD = 'keyboard';\nvar MOUSE = 'mouse';\nvar TOUCH = 'touch';\nvar BLUR = 'blur';\nvar CONTEXTMENU = 'contextmenu';\nvar FOCUS = 'focus';\nvar KEYDOWN = 'keydown';\nvar MOUSEDOWN = 'mousedown';\nvar MOUSEMOVE = 'mousemove';\nvar MOUSEUP = 'mouseup';\nvar POINTERDOWN = 'pointerdown';\nvar POINTERMOVE = 'pointermove';\nvar SCROLL = 'scroll';\nvar SELECTIONCHANGE = 'selectionchange';\nvar TOUCHCANCEL = 'touchcancel';\nvar TOUCHMOVE = 'touchmove';\nvar TOUCHSTART = 'touchstart';\nvar VISIBILITYCHANGE = 'visibilitychange';\nvar bubbleOptions = {\n passive: true\n};\nvar captureOptions = {\n capture: true,\n passive: true\n}; // Window events\n\nvar addBlurListener = createEventHandle(BLUR, bubbleOptions);\nvar addFocusListener = createEventHandle(FOCUS, bubbleOptions); // Must be capture phase because 'stopPropagation' might prevent these\n// events bubbling to the document.\n\nvar addVisibilityChangeListener = createEventHandle(VISIBILITYCHANGE, captureOptions);\nvar addKeyDownListener = createEventHandle(KEYDOWN, captureOptions);\nvar addPointerDownListener = createEventHandle(POINTERDOWN, captureOptions);\nvar addPointerMoveListener = createEventHandle(POINTERMOVE, captureOptions); // Fallback events\n\nvar addContextMenuListener = createEventHandle(CONTEXTMENU, captureOptions);\nvar addMouseDownListener = createEventHandle(MOUSEDOWN, captureOptions);\nvar addMouseMoveListener = createEventHandle(MOUSEMOVE, captureOptions);\nvar addMouseUpListener = createEventHandle(MOUSEUP, captureOptions);\nvar addScrollListener = createEventHandle(SCROLL, captureOptions);\nvar addSelectiomChangeListener = createEventHandle(SELECTIONCHANGE, captureOptions);\nvar addTouchCancelListener = createEventHandle(TOUCHCANCEL, captureOptions);\nvar addTouchMoveListener = createEventHandle(TOUCHMOVE, captureOptions);\nvar addTouchStartListener = createEventHandle(TOUCHSTART, captureOptions);\n\nfunction restoreModality() {\n if (previousModality != null || previousActiveModality != null) {\n if (previousModality != null) {\n modality = previousModality;\n previousModality = null;\n }\n\n if (previousActiveModality != null) {\n activeModality = previousActiveModality;\n previousActiveModality = null;\n }\n\n callListeners();\n }\n}\n\nfunction onBlurWindow() {\n previousModality = modality;\n previousActiveModality = activeModality;\n activeModality = KEYBOARD;\n modality = KEYBOARD;\n callListeners(); // for fallback events\n\n isEmulatingMouseEvents = false;\n}\n\nfunction onFocusWindow() {\n restoreModality();\n}\n\nfunction onKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n\n if (modality !== KEYBOARD) {\n modality = KEYBOARD;\n activeModality = KEYBOARD;\n callListeners();\n }\n}\n\nfunction onVisibilityChange() {\n if (document.visibilityState !== 'hidden') {\n restoreModality();\n }\n}\n\nfunction onPointerish(event) {\n var eventType = event.type;\n\n if (supportsPointerEvent()) {\n if (eventType === POINTERDOWN) {\n if (activeModality !== event.pointerType) {\n modality = event.pointerType;\n activeModality = event.pointerType;\n callListeners();\n }\n\n return;\n }\n\n if (eventType === POINTERMOVE) {\n if (modality !== event.pointerType) {\n modality = event.pointerType;\n callListeners();\n }\n\n return;\n }\n } // Fallback for non-PointerEvent environment\n else {\n if (!isEmulatingMouseEvents) {\n if (eventType === MOUSEDOWN) {\n if (activeModality !== MOUSE) {\n modality = MOUSE;\n activeModality = MOUSE;\n callListeners();\n }\n }\n\n if (eventType === MOUSEMOVE) {\n if (modality !== MOUSE) {\n modality = MOUSE;\n callListeners();\n }\n }\n } // Flag when browser may produce emulated events\n\n\n if (eventType === TOUCHSTART) {\n isEmulatingMouseEvents = true;\n\n if (event.touches && event.touches.length > 1) {\n isEmulatingMouseEvents = false;\n }\n\n if (activeModality !== TOUCH) {\n modality = TOUCH;\n activeModality = TOUCH;\n callListeners();\n }\n\n return;\n } // Remove flag after emulated events are finished or cancelled, and if an\n // event occurs that cuts short a touch event sequence.\n\n\n if (eventType === CONTEXTMENU || eventType === MOUSEUP || eventType === SELECTIONCHANGE || eventType === SCROLL || eventType === TOUCHCANCEL || eventType === TOUCHMOVE) {\n isEmulatingMouseEvents = false;\n }\n }\n}\n\nif (canUseDOM) {\n addBlurListener(window, onBlurWindow);\n addFocusListener(window, onFocusWindow);\n addKeyDownListener(document, onKeyDown);\n addPointerDownListener(document, onPointerish);\n addPointerMoveListener(document, onPointerish);\n addVisibilityChangeListener(document, onVisibilityChange); // fallbacks\n\n addContextMenuListener(document, onPointerish);\n addMouseDownListener(document, onPointerish);\n addMouseMoveListener(document, onPointerish);\n addMouseUpListener(document, onPointerish);\n addTouchCancelListener(document, onPointerish);\n addTouchMoveListener(document, onPointerish);\n addTouchStartListener(document, onPointerish);\n addSelectiomChangeListener(document, onPointerish);\n addScrollListener(document, onPointerish);\n}\n\nfunction callListeners() {\n var value = {\n activeModality: activeModality,\n modality: modality\n };\n listeners.forEach(function (listener) {\n listener(value);\n });\n}\n\nexport function getActiveModality() {\n return activeModality;\n}\nexport function getModality() {\n return modality;\n}\nexport function addModalityListener(listener) {\n listeners.add(listener);\n return function () {\n listeners.delete(listener);\n };\n}\nexport function testOnly_resetActiveModality() {\n isEmulatingMouseEvents = false;\n activeModality = KEYBOARD;\n modality = KEYBOARD;\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createEventHandle from '../createEventHandle';\nimport useLayoutEffect from '../useLayoutEffect';\nimport useStable from '../useStable';\n/**\n * 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 */\n\nexport default function useEvent(event, options) {\n var targetListeners = useStable(function () {\n return new Map();\n });\n var addListener = useStable(function () {\n var addEventListener = createEventHandle(event, options);\n return function (target, callback) {\n var removeTargetListener = targetListeners.get(target);\n\n if (removeTargetListener != null) {\n removeTargetListener();\n }\n\n if (callback == null) {\n targetListeners.delete(target);\n }\n\n var removeEventListener = addEventListener(target, callback);\n targetListeners.set(target, removeEventListener);\n return removeEventListener;\n };\n });\n useLayoutEffect(function () {\n return function () {\n if (addListener != null) {\n targetListeners.forEach(function (removeListener) {\n removeListener();\n });\n targetListeners.clear();\n }\n\n addListener = null;\n };\n }, [addListener]);\n return addListener;\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { getModality } from '../modality';\nimport useEvent from '../useEvent';\nimport useLayoutEffect from '../useLayoutEffect';\n/**\n * Types\n */\n\n/**\n * Implementation\n */\n\nvar emptyObject = {};\nvar opts = {\n passive: true\n};\nvar lockEventType = 'react-gui:hover:lock';\nvar unlockEventType = 'react-gui:hover:unlock';\n\nvar supportsPointerEvent = function supportsPointerEvent() {\n return !!(typeof window !== 'undefined' && window.PointerEvent != null);\n};\n\nfunction dispatchCustomEvent(target, type, payload) {\n var event = document.createEvent('CustomEvent');\n\n var _ref = payload || emptyObject,\n _ref$bubbles = _ref.bubbles,\n bubbles = _ref$bubbles === void 0 ? true : _ref$bubbles,\n _ref$cancelable = _ref.cancelable,\n cancelable = _ref$cancelable === void 0 ? true : _ref$cancelable,\n detail = _ref.detail;\n\n event.initCustomEvent(type, bubbles, cancelable, detail);\n target.dispatchEvent(event);\n} // This accounts for the non-PointerEvent fallback events.\n\n\nfunction getPointerType(event) {\n var pointerType = event.pointerType;\n return pointerType != null ? pointerType : getModality();\n}\n\nexport default function useHover(targetRef, config) {\n var contain = config.contain,\n disabled = config.disabled,\n onHoverStart = config.onHoverStart,\n onHoverChange = config.onHoverChange,\n onHoverUpdate = config.onHoverUpdate,\n onHoverEnd = config.onHoverEnd;\n var canUsePE = supportsPointerEvent();\n var addMoveListener = useEvent(canUsePE ? 'pointermove' : 'mousemove', opts);\n var addEnterListener = useEvent(canUsePE ? 'pointerenter' : 'mouseenter', opts);\n var addLeaveListener = useEvent(canUsePE ? 'pointerleave' : 'mouseleave', opts); // These custom events are used to implement the \"contain\" prop.\n\n var addLockListener = useEvent(lockEventType, opts);\n var addUnlockListener = useEvent(unlockEventType, opts);\n useLayoutEffect(function () {\n var target = targetRef.current;\n\n if (target !== null) {\n /**\n * End the hover gesture\n */\n var hoverEnd = function hoverEnd(e) {\n if (onHoverEnd != null) {\n onHoverEnd(e);\n }\n\n if (onHoverChange != null) {\n onHoverChange(false);\n } // Remove the listeners once finished.\n\n\n addMoveListener(target, null);\n addLeaveListener(target, null);\n };\n /**\n * Leave element\n */\n\n\n var leaveListener = function leaveListener(e) {\n var target = targetRef.current;\n\n if (target != null && getPointerType(e) !== 'touch') {\n if (contain) {\n dispatchCustomEvent(target, unlockEventType);\n }\n\n hoverEnd(e);\n }\n };\n /**\n * Move within element\n */\n\n\n var moveListener = function moveListener(e) {\n if (getPointerType(e) !== 'touch') {\n if (onHoverUpdate != null) {\n // Not all browsers have these properties\n if (e.x == null) {\n e.x = e.clientX;\n }\n\n if (e.y == null) {\n e.y = e.clientY;\n }\n\n onHoverUpdate(e);\n }\n }\n };\n /**\n * Start the hover gesture\n */\n\n\n var hoverStart = function hoverStart(e) {\n if (onHoverStart != null) {\n onHoverStart(e);\n }\n\n if (onHoverChange != null) {\n onHoverChange(true);\n } // Set the listeners needed for the rest of the hover gesture.\n\n\n if (onHoverUpdate != null) {\n addMoveListener(target, !disabled ? moveListener : null);\n }\n\n addLeaveListener(target, !disabled ? leaveListener : null);\n };\n /**\n * Enter element\n */\n\n\n var enterListener = function enterListener(e) {\n var target = targetRef.current;\n\n if (target != null && getPointerType(e) !== 'touch') {\n if (contain) {\n dispatchCustomEvent(target, lockEventType);\n }\n\n hoverStart(e);\n\n var lockListener = function lockListener(lockEvent) {\n if (lockEvent.target !== target) {\n hoverEnd(e);\n }\n };\n\n var unlockListener = function unlockListener(lockEvent) {\n if (lockEvent.target !== target) {\n hoverStart(e);\n }\n };\n\n addLockListener(target, !disabled ? lockListener : null);\n addUnlockListener(target, !disabled ? unlockListener : null);\n }\n };\n\n addEnterListener(target, !disabled ? enterListener : null);\n }\n }, [addEnterListener, addMoveListener, addLeaveListener, addLockListener, addUnlockListener, contain, disabled, onHoverStart, onHoverChange, onHoverUpdate, onHoverEnd, targetRef]);\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\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 * Component used to build display components that should respond to whether the\n * component is currently pressed or not.\n */\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 onFocus = props.onFocus,\n onHoverIn = props.onHoverIn,\n onHoverOut = props.onHoverOut,\n onKeyDown = props.onKeyDown,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressMove = props.onPressMove,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n style = props.style,\n testOnly_hovered = props.testOnly_hovered,\n testOnly_pressed = props.testOnly_pressed,\n rest = _objectWithoutPropertiesLoose(props, [\"children\", \"delayLongPress\", \"delayPressIn\", \"delayPressOut\", \"disabled\", \"focusable\", \"onBlur\", \"onFocus\", \"onHoverIn\", \"onHoverOut\", \"onKeyDown\", \"onLongPress\", \"onPress\", \"onPressMove\", \"onPressIn\", \"onPressOut\", \"style\", \"testOnly_hovered\", \"testOnly_pressed\"]);\n\n var _useForceableState = useForceableState(testOnly_hovered === true),\n hovered = _useForceableState[0],\n setHovered = _useForceableState[1];\n\n var _useForceableState2 = useForceableState(false),\n focused = _useForceableState2[0],\n setFocused = _useForceableState2[1];\n\n var _useForceableState3 = useForceableState(testOnly_pressed === true),\n pressed = _useForceableState3[0],\n setPressed = _useForceableState3[1];\n\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n var pressConfig = useMemo(function () {\n return {\n delayLongPress: delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n disabled: disabled,\n onLongPress: onLongPress,\n onPress: onPress,\n onPressChange: setPressed,\n onPressStart: onPressIn,\n onPressMove: onPressMove,\n onPressEnd: onPressOut\n };\n }, [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressMove, onPressOut, setPressed]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var onKeyDownPress = pressEventHandlers.onKeyDown;\n useHover(hostRef, {\n contain: true,\n disabled: disabled,\n onHoverChange: setHovered,\n onHoverStart: onHoverIn,\n onHoverEnd: onHoverOut\n });\n var interactionState = {\n hovered: hovered,\n focused: focused,\n pressed: pressed\n };\n var blurHandler = React.useCallback(function (e) {\n if (e.nativeEvent.target === hostRef.current) {\n setFocused(false);\n\n if (onBlur != null) {\n onBlur(e);\n }\n }\n }, [hostRef, setFocused, onBlur]);\n var focusHandler = React.useCallback(function (e) {\n if (e.nativeEvent.target === hostRef.current) {\n setFocused(true);\n\n if (onFocus != null) {\n onFocus(e);\n }\n }\n }, [hostRef, setFocused, onFocus]);\n var keyDownHandler = React.useCallback(function (e) {\n if (onKeyDownPress != null) {\n onKeyDownPress(e);\n }\n\n if (onKeyDown != null) {\n onKeyDown(e);\n }\n }, [onKeyDown, onKeyDownPress]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n onBlur: blurHandler,\n onFocus: focusHandler,\n onKeyDown: keyDownHandler,\n ref: setRef,\n style: [!disabled && styles.root, typeof style === 'function' ? style(interactionState) : style]\n }), typeof children === 'function' ? children(interactionState) : children);\n}\n\nfunction useForceableState(forced) {\n var _useState = useState(false),\n bool = _useState[0],\n setBool = _useState[1];\n\n return [bool || forced, setBool];\n}\n\nvar styles = StyleSheet.create({\n root: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedPressable = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(Pressable));\nMemoedPressable.displayName = 'Pressable';\nexport default MemoedPressable;","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n/**\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\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport React, { forwardRef, useEffect, useRef } from 'react';\nvar ProgressBar = /*#__PURE__*/forwardRef(function (props, ref) {\n var _props$color = props.color,\n color = _props$color === void 0 ? '#1976D2' : _props$color,\n _props$indeterminate = props.indeterminate,\n indeterminate = _props$indeterminate === void 0 ? false : _props$indeterminate,\n _props$progress = props.progress,\n progress = _props$progress === void 0 ? 0 : _props$progress,\n _props$trackColor = props.trackColor,\n trackColor = _props$trackColor === void 0 ? 'transparent' : _props$trackColor,\n style = props.style,\n other = _objectWithoutPropertiesLoose(props, [\"color\", \"indeterminate\", \"progress\", \"trackColor\", \"style\"]);\n\n var percentageProgress = progress * 100;\n var progressRef = useRef(null);\n useEffect(function () {\n var width = indeterminate ? '25%' : percentageProgress + \"%\";\n\n if (progressRef.current != null) {\n progressRef.current.setNativeProps({\n style: {\n width: width\n }\n });\n }\n }, [indeterminate, percentageProgress, progressRef]);\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n accessibilityRole: \"progressbar\",\n accessibilityValue: {\n max: 100,\n min: 0,\n now: indeterminate ? null : percentageProgress\n },\n ref: ref,\n style: [styles.track, style, {\n backgroundColor: trackColor\n }]\n }), /*#__PURE__*/React.createElement(View, {\n ref: progressRef,\n style: [styles.progress, indeterminate && styles.animation, {\n backgroundColor: color\n }]\n }));\n});\nProgressBar.displayName = 'ProgressBar';\nvar styles = StyleSheet.create({\n track: {\n height: 5,\n overflow: 'hidden',\n userSelect: 'none',\n zIndex: 0\n },\n progress: {\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;","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport React, { forwardRef } from 'react';\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__*/forwardRef(function (props, ref) {\n var style = props.style,\n rest = _objectWithoutPropertiesLoose(props, [\"style\"]);\n\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n ref: ref,\n style: StyleSheet.compose(styles.root, style)\n }));\n});\nSafeAreaView.displayName = 'SafeAreaView';\nvar styles = StyleSheet.create({\n root: {\n paddingTop: cssFunction + \"(safe-area-inset-top)\",\n paddingRight: cssFunction + \"(safe-area-inset-right)\",\n paddingBottom: cssFunction + \"(safe-area-inset-bottom)\",\n paddingLeft: cssFunction + \"(safe-area-inset-left)\"\n }\n});\nexport default SafeAreaView;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar emptyFunction = function emptyFunction() {};\n\nfunction StatusBar() {\n return null;\n}\n\nStatusBar.setBackgroundColor = emptyFunction;\nStatusBar.setBarStyle = emptyFunction;\nStatusBar.setHidden = emptyFunction;\nStatusBar.setNetworkActivityIndicatorVisible = emptyFunction;\nStatusBar.setTranslucent = emptyFunction;\nexport default StatusBar;","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n/**\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\nimport * as React from 'react';\nimport { forwardRef, useRef } from 'react';\nimport createElement from '../createElement';\nimport multiplyStyleLengthValue from '../../modules/multiplyStyleLengthValue';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar emptyObject = {};\nvar thumbDefaultBoxShadow = '0px 1px 3px rgba(0,0,0,0.5)';\nvar thumbFocusedBoxShadow = thumbDefaultBoxShadow + \", 0 0 0 10px rgba(0,0,0,0.1)\";\nvar Switch = /*#__PURE__*/forwardRef(function (props, forwardedRef) {\n var accessibilityLabel = props.accessibilityLabel,\n _props$activeThumbCol = props.activeThumbColor,\n activeThumbColor = _props$activeThumbCol === void 0 ? '#009688' : _props$activeThumbCol,\n _props$activeTrackCol = props.activeTrackColor,\n activeTrackColor = _props$activeTrackCol === void 0 ? '#A3D3CF' : _props$activeTrackCol,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n onValueChange = props.onValueChange,\n _props$style = props.style,\n style = _props$style === void 0 ? emptyObject : _props$style,\n _props$thumbColor = props.thumbColor,\n thumbColor = _props$thumbColor === void 0 ? '#FAFAFA' : _props$thumbColor,\n _props$trackColor = props.trackColor,\n trackColor = _props$trackColor === void 0 ? '#939393' : _props$trackColor,\n _props$value = props.value,\n value = _props$value === void 0 ? false : _props$value,\n other = _objectWithoutPropertiesLoose(props, [\"accessibilityLabel\", \"activeThumbColor\", \"activeTrackColor\", \"disabled\", \"onValueChange\", \"style\", \"thumbColor\", \"trackColor\", \"value\"]);\n\n var thumbRef = useRef(null);\n\n function handleChange(event) {\n if (onValueChange != null) {\n onValueChange(event.nativeEvent.target.checked);\n }\n }\n\n function handleFocusState(event) {\n var isFocused = event.nativeEvent.type === 'focus';\n var boxShadow = isFocused ? thumbFocusedBoxShadow : thumbDefaultBoxShadow;\n\n if (thumbRef.current != null) {\n thumbRef.current.style.boxShadow = boxShadow;\n }\n }\n\n var _StyleSheet$flatten = StyleSheet.flatten(style),\n styleHeight = _StyleSheet$flatten.height,\n styleWidth = _StyleSheet$flatten.width;\n\n var height = styleHeight || '20px';\n var minWidth = multiplyStyleLengthValue(height, 2);\n var width = styleWidth > minWidth ? styleWidth : minWidth;\n var trackBorderRadius = multiplyStyleLengthValue(height, 0.5);\n\n var trackCurrentColor = function () {\n if (value === true) {\n if (trackColor != null && typeof trackColor === 'object') {\n return trackColor.true;\n } else {\n return activeTrackColor;\n }\n } else {\n if (trackColor != null && typeof trackColor === 'object') {\n return trackColor.false;\n } else {\n return trackColor;\n }\n }\n }();\n\n var thumbCurrentColor = value ? activeThumbColor : thumbColor;\n var thumbHeight = height;\n var thumbWidth = thumbHeight;\n var rootStyle = [styles.root, style, disabled && styles.cursorDefault, {\n height: height,\n width: width\n }];\n var trackStyle = [styles.track, {\n backgroundColor: disabled ? '#D5D5D5' : trackCurrentColor,\n borderRadius: trackBorderRadius\n }];\n var thumbStyle = [styles.thumb, value && styles.thumbActive, {\n backgroundColor: disabled ? '#BDBDBD' : thumbCurrentColor,\n height: thumbHeight,\n marginStart: value ? multiplyStyleLengthValue(thumbWidth, -1) : 0,\n width: thumbWidth\n }];\n var nativeControl = createElement('input', {\n accessibilityLabel: accessibilityLabel,\n checked: value,\n disabled: disabled,\n onBlur: handleFocusState,\n onChange: handleChange,\n onFocus: handleFocusState,\n ref: forwardedRef,\n style: [styles.nativeControl, styles.cursorInherit],\n type: 'checkbox',\n role: 'switch'\n });\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n style: rootStyle\n }), /*#__PURE__*/React.createElement(View, {\n style: trackStyle\n }), /*#__PURE__*/React.createElement(View, {\n ref: thumbRef,\n style: thumbStyle\n }), nativeControl);\n});\nSwitch.displayName = 'Switch';\nvar styles = StyleSheet.create({\n root: {\n cursor: 'pointer',\n userSelect: 'none'\n },\n cursorDefault: {\n cursor: 'default'\n },\n cursorInherit: {\n cursor: 'inherit'\n },\n track: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '70%',\n margin: 'auto',\n transitionDuration: '0.1s',\n width: '100%'\n }),\n thumb: {\n alignSelf: 'flex-start',\n borderRadius: '100%',\n boxShadow: thumbDefaultBoxShadow,\n start: '0%',\n transform: [{\n translateZ: 0\n }],\n transitionDuration: '0.1s'\n },\n thumbActive: {\n start: '100%'\n },\n nativeControl: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n margin: 0,\n opacity: 0,\n padding: 0,\n width: '100%'\n })\n});\nexport default Switch;","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nimport { forwardRef, useCallback, useMemo, useRef } from 'react';\nimport createElement from '../createElement';\nimport css from '../StyleSheet/css';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useLayoutEffect from '../../modules/useLayoutEffect';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextInputState from '../../modules/TextInputState';\n/**\n * Determines whether a 'selection' prop differs from a node's existing\n * selection state.\n */\n\nvar isSelectionStale = function isSelectionStale(node, selection) {\n var selectionEnd = node.selectionEnd,\n selectionStart = node.selectionStart;\n var start = selection.start,\n end = selection.end;\n return start !== selectionStart || end !== selectionEnd;\n};\n/**\n * Certain input types do no support 'selectSelectionRange' and will throw an\n * error.\n */\n\n\nvar setSelection = function setSelection(node, selection) {\n if (isSelectionStale(node, selection)) {\n var start = selection.start,\n end = selection.end;\n\n try {\n node.setSelectionRange(start, end || start);\n } catch (e) {}\n }\n};\n\nvar forwardPropsList = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, forwardedProps.defaultProps), forwardedProps.accessibilityProps), forwardedProps.clickProps), forwardedProps.focusProps), forwardedProps.keyboardProps), forwardedProps.mouseProps), forwardedProps.touchProps), forwardedProps.styleProps), {}, {\n autoCapitalize: true,\n autoComplete: true,\n autoCorrect: true,\n autoFocus: true,\n defaultValue: true,\n disabled: true,\n lang: true,\n maxLength: true,\n onChange: true,\n onScroll: true,\n placeholder: true,\n pointerEvents: true,\n readOnly: true,\n rows: true,\n spellCheck: true,\n value: true,\n type: true\n});\n\nvar pickProps = function pickProps(props) {\n return pick(props, forwardPropsList);\n}; // If an Input Method Editor is processing key input, the 'keyCode' is 229.\n// https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n\n\nfunction isEventComposing(nativeEvent) {\n return nativeEvent.isComposing || nativeEvent.keyCode === 229;\n}\n\nvar TextInput = /*#__PURE__*/forwardRef(function (props, forwardedRef) {\n var _props$autoCapitalize = props.autoCapitalize,\n autoCapitalize = _props$autoCapitalize === void 0 ? 'sentences' : _props$autoCapitalize,\n autoComplete = props.autoComplete,\n autoCompleteType = props.autoCompleteType,\n _props$autoCorrect = props.autoCorrect,\n autoCorrect = _props$autoCorrect === void 0 ? true : _props$autoCorrect,\n blurOnSubmit = props.blurOnSubmit,\n clearTextOnFocus = props.clearTextOnFocus,\n dir = props.dir,\n _props$editable = props.editable,\n editable = _props$editable === void 0 ? true : _props$editable,\n _props$keyboardType = props.keyboardType,\n keyboardType = _props$keyboardType === void 0 ? 'default' : _props$keyboardType,\n _props$multiline = props.multiline,\n multiline = _props$multiline === void 0 ? false : _props$multiline,\n _props$numberOfLines = props.numberOfLines,\n numberOfLines = _props$numberOfLines === void 0 ? 1 : _props$numberOfLines,\n onBlur = props.onBlur,\n onChange = props.onChange,\n onChangeText = props.onChangeText,\n onContentSizeChange = props.onContentSizeChange,\n onFocus = props.onFocus,\n onKeyPress = props.onKeyPress,\n onLayout = props.onLayout,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChange = props.onSelectionChange,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n onSubmitEditing = props.onSubmitEditing,\n placeholderTextColor = props.placeholderTextColor,\n returnKeyType = props.returnKeyType,\n _props$secureTextEntr = props.secureTextEntry,\n secureTextEntry = _props$secureTextEntr === void 0 ? false : _props$secureTextEntr,\n selection = props.selection,\n selectTextOnFocus = props.selectTextOnFocus,\n spellCheck = props.spellCheck;\n var type;\n var inputMode;\n\n switch (keyboardType) {\n case 'email-address':\n type = 'email';\n break;\n\n case 'number-pad':\n case 'numeric':\n inputMode = 'numeric';\n break;\n\n case 'decimal-pad':\n inputMode = 'decimal';\n break;\n\n case 'phone-pad':\n type = 'tel';\n break;\n\n case 'search':\n case 'web-search':\n type = 'search';\n break;\n\n case 'url':\n type = 'url';\n break;\n\n default:\n type = 'text';\n }\n\n if (secureTextEntry) {\n type = 'password';\n }\n\n var dimensions = useRef({\n height: null,\n width: null\n });\n var hostRef = useRef(null);\n var handleContentSizeChange = useCallback(function () {\n var node = hostRef.current;\n\n if (multiline && onContentSizeChange && node != null) {\n var newHeight = node.scrollHeight;\n var newWidth = node.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 }, [hostRef, multiline, onContentSizeChange]);\n var imperativeRef = useMemo(function () {\n return function (hostNode) {\n // TextInput needs to add more methods to the hostNode in addition to those\n // added by `usePlatformMethods`. This is temporarily until an API like\n // `TextInput.clear(hostRef)` is added to React Native.\n if (hostNode != null) {\n hostNode.clear = function () {\n if (hostNode != null) {\n hostNode.value = '';\n }\n };\n\n hostNode.isFocused = function () {\n return hostNode != null && TextInputState.currentlyFocusedField() === hostNode;\n };\n\n handleContentSizeChange();\n }\n };\n }, [handleContentSizeChange]);\n\n function handleBlur(e) {\n TextInputState._currentlyFocusedNode = null;\n\n if (onBlur) {\n e.nativeEvent.text = e.target.value;\n onBlur(e);\n }\n }\n\n function handleChange(e) {\n var text = e.target.value;\n e.nativeEvent.text = text;\n handleContentSizeChange();\n\n if (onChange) {\n onChange(e);\n }\n\n if (onChangeText) {\n onChangeText(text);\n }\n }\n\n function handleFocus(e) {\n var node = hostRef.current;\n\n if (node != null) {\n TextInputState._currentlyFocusedNode = node;\n\n if (onFocus) {\n e.nativeEvent.text = e.target.value;\n onFocus(e);\n }\n\n if (clearTextOnFocus) {\n node.value = '';\n }\n\n if (selectTextOnFocus) {\n // Safari requires selection to occur in a setTimeout\n setTimeout(function () {\n node.select();\n }, 0);\n }\n }\n }\n\n function handleKeyDown(e) {\n // Prevent key events bubbling (see #612)\n e.stopPropagation();\n var blurOnSubmitDefault = !multiline;\n var shouldBlurOnSubmit = blurOnSubmit == null ? blurOnSubmitDefault : blurOnSubmit;\n var nativeEvent = e.nativeEvent;\n var isComposing = isEventComposing(nativeEvent);\n\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 && hostRef.current != null) {\n hostRef.current.blur();\n }\n }\n }\n\n function handleSelectionChange(e) {\n if (onSelectionChange) {\n try {\n var node = e.target;\n var selectionStart = node.selectionStart,\n selectionEnd = node.selectionEnd;\n e.nativeEvent.selection = {\n start: selectionStart,\n end: selectionEnd\n };\n e.nativeEvent.text = e.target.value;\n onSelectionChange(e);\n } catch (e) {}\n }\n }\n\n useLayoutEffect(function () {\n var node = hostRef.current;\n\n if (node != null && selection != null) {\n setSelection(node, selection);\n }\n\n if (document.activeElement === node) {\n TextInputState._currentlyFocusedNode = node;\n }\n }, [hostRef, selection]);\n var component = multiline ? 'textarea' : 'input';\n var classList = [classes.textinput];\n var style = StyleSheet.compose(props.style, placeholderTextColor && {\n placeholderTextColor: placeholderTextColor\n });\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder: onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture: onMoveShouldSetResponderCapture,\n onResponderEnd: onResponderEnd,\n onResponderGrant: onResponderGrant,\n onResponderMove: onResponderMove,\n onResponderReject: onResponderReject,\n onResponderRelease: onResponderRelease,\n onResponderStart: onResponderStart,\n onResponderTerminate: onResponderTerminate,\n onResponderTerminationRequest: onResponderTerminationRequest,\n onScrollShouldSetResponder: onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture: onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder: onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture: onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder: onStartShouldSetResponder,\n onStartShouldSetResponderCapture: onStartShouldSetResponderCapture\n });\n var supportedProps = pickProps(props);\n supportedProps.autoCapitalize = autoCapitalize;\n supportedProps.autoComplete = autoComplete || autoCompleteType || 'on';\n supportedProps.autoCorrect = autoCorrect ? 'on' : 'off';\n supportedProps.classList = classList; // 'auto' by default allows browsers to infer writing direction\n\n supportedProps.dir = dir !== undefined ? dir : 'auto';\n supportedProps.enterKeyHint = returnKeyType;\n supportedProps.onBlur = handleBlur;\n supportedProps.onChange = handleChange;\n supportedProps.onFocus = handleFocus;\n supportedProps.onKeyDown = handleKeyDown;\n supportedProps.onSelect = handleSelectionChange;\n supportedProps.readOnly = !editable;\n supportedProps.rows = multiline ? numberOfLines : undefined;\n supportedProps.spellCheck = spellCheck != null ? spellCheck : autoCorrect;\n supportedProps.style = style;\n supportedProps.type = multiline ? undefined : type;\n supportedProps.inputMode = inputMode;\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, imperativeRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement(component, supportedProps);\n});\nTextInput.displayName = 'TextInput'; // $FlowFixMe\n\nTextInput.State = TextInputState;\nvar classes = css.create({\n textinput: {\n MozAppearance: 'textfield',\n WebkitAppearance: 'none',\n backgroundColor: 'transparent',\n border: '0 solid black',\n borderRadius: 0,\n boxSizing: 'border-box',\n font: '14px System',\n margin: 0,\n padding: 0,\n resize: 'none'\n }\n});\nexport default TextInput;","/* eslint-disable */\n\n/**\n * Copyright 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.0.0\n */\nimport invariant from 'fbjs/lib/invariant';\n\nvar twoArgumentPooler = function twoArgumentPooler(a1, a2) {\n var Klass = this;\n\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\n\nvar standardReleaser = function standardReleaser(instance) {\n var Klass = this;\n instance.destructor();\n\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\n\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = twoArgumentPooler;\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\n\nvar addPoolingTo = function addPoolingTo(CopyConstructor, pooler) {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\n var NewKlass = CopyConstructor;\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\n\nvar PooledClass = {\n addPoolingTo: addPoolingTo,\n twoArgumentPooler: twoArgumentPooler\n};\nexport default PooledClass;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport PooledClass from '../../vendor/react-native/PooledClass';\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\n/**\n * PooledClass representing the bounding rectangle of a region.\n */\n\nfunction BoundingDimensions(width, height) {\n this.width = width;\n this.height = height;\n}\n\nBoundingDimensions.prototype.destructor = function () {\n this.width = null;\n this.height = null;\n};\n\nBoundingDimensions.getPooledFromElement = function (element) {\n return BoundingDimensions.getPooled(element.offsetWidth, element.offsetHeight);\n};\n\nPooledClass.addPoolingTo(BoundingDimensions, twoArgumentPooler);\nexport default BoundingDimensions;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport PooledClass from '../../vendor/react-native/PooledClass';\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\n\nfunction Position(left, top) {\n this.left = left;\n this.top = top;\n}\n\nPosition.prototype.destructor = function () {\n this.left = null;\n this.top = null;\n};\n\nPooledClass.addPoolingTo(Position, twoArgumentPooler);\nexport default Position;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport AccessibilityUtil from '../../modules/AccessibilityUtil';\nimport BoundingDimensions from './BoundingDimensions';\nimport findNodeHandle from '../findNodeHandle';\nimport normalizeColor from 'normalize-css-color';\nimport Position from './Position';\nimport React from 'react';\nimport UIManager from '../UIManager';\nimport View from '../View';\n\nvar extractSingleTouch = function extractSingleTouch(nativeEvent) {\n var touches = nativeEvent.touches;\n var changedTouches = nativeEvent.changedTouches;\n var hasTouches = touches && touches.length > 0;\n var hasChangedTouches = changedTouches && changedTouches.length > 0;\n return !hasTouches && hasChangedTouches ? changedTouches[0] : hasTouches ? touches[0] : nativeEvent;\n};\n/**\n * `Touchable`: Taps done right.\n *\n * You hook your `ResponderEventPlugin` events into `Touchable`. `Touchable`\n * will measure time/geometry and tells you when to give feedback to the user.\n *\n * ====================== Touchable Tutorial ===============================\n * The `Touchable` mixin helps you handle the \"press\" interaction. It analyzes\n * the geometry of elements, and observes when another responder (scroll view\n * etc) has stolen the touch lock. It notifies your component when it should\n * give feedback to the user. (bouncing/highlighting/unhighlighting).\n *\n * - When a touch was activated (typically you highlight)\n * - When a touch was deactivated (typically you unhighlight)\n * - When a touch was \"pressed\" - a touch ended while still within the geometry\n * of the element, and no other element (like scroller) has \"stolen\" touch\n * lock (\"responder\") (Typically you bounce the element).\n *\n * A good tap interaction isn't as simple as you might think. There should be a\n * slight delay before showing a highlight when starting a touch. If a\n * subsequent touch move exceeds the boundary of the element, it should\n * unhighlight, but if that same touch is brought back within the boundary, it\n * should rehighlight again. A touch can move in and out of that boundary\n * several times, each time toggling highlighting, but a \"press\" is only\n * triggered if that touch ends while within the element's boundary and no\n * scroller (or anything else) has stolen the lock on touches.\n *\n * To create a new type of component that handles interaction using the\n * `Touchable` mixin, do the following:\n *\n * - Initialize the `Touchable` state.\n *\n * getInitialState: function() {\n * return merge(this.touchableGetInitialState(), yourComponentState);\n * }\n *\n * - Choose the rendered component who's touches should start the interactive\n * sequence. On that rendered node, forward all `Touchable` responder\n * handlers. You can choose any rendered node you like. Choose a node whose\n * hit target you'd like to instigate the interaction sequence:\n *\n * // In render function:\n * return (\n * \n * \n * Even though the hit detection/interactions are triggered by the\n * wrapping (typically larger) node, we usually end up implementing\n * custom logic that highlights this inner one.\n * \n * \n * );\n *\n * - You may set up your own handlers for each of these events, so long as you\n * also invoke the `touchable*` handlers inside of your custom handler.\n *\n * - Implement the handlers on your component class in order to provide\n * feedback to the user. See documentation for each of these class methods\n * that you should implement.\n *\n * touchableHandlePress: function() {\n * this.performBounceAnimation(); // or whatever you want to do.\n * },\n * touchableHandleActivePressIn: function() {\n * this.beginHighlighting(...); // Whatever you like to convey activation\n * },\n * touchableHandleActivePressOut: function() {\n * this.endHighlighting(...); // Whatever you like to convey deactivation\n * },\n *\n * - There are more advanced methods you can implement (see documentation below):\n * touchableGetHighlightDelayMS: function() {\n * return 20;\n * }\n * // In practice, *always* use a predeclared constant (conserve memory).\n * touchableGetPressRectOffset: function() {\n * return {top: 20, left: 20, right: 20, bottom: 100};\n * }\n */\n\n/**\n * Touchable states.\n */\n\n\nvar States = {\n NOT_RESPONDER: 'NOT_RESPONDER',\n // Not the responder\n RESPONDER_INACTIVE_PRESS_IN: 'RESPONDER_INACTIVE_PRESS_IN',\n // Responder, inactive, in the `PressRect`\n RESPONDER_INACTIVE_PRESS_OUT: 'RESPONDER_INACTIVE_PRESS_OUT',\n // Responder, inactive, out of `PressRect`\n RESPONDER_ACTIVE_PRESS_IN: 'RESPONDER_ACTIVE_PRESS_IN',\n // Responder, active, in the `PressRect`\n RESPONDER_ACTIVE_PRESS_OUT: 'RESPONDER_ACTIVE_PRESS_OUT',\n // Responder, active, out of `PressRect`\n RESPONDER_ACTIVE_LONG_PRESS_IN: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n // Responder, active, in the `PressRect`, after long press threshold\n RESPONDER_ACTIVE_LONG_PRESS_OUT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n // Responder, active, out of `PressRect`, after long press threshold\n ERROR: 'ERROR'\n};\n/*\n * Quick lookup map for states that are considered to be \"active\"\n */\n\nvar baseStatesConditions = {\n NOT_RESPONDER: false,\n RESPONDER_INACTIVE_PRESS_IN: false,\n RESPONDER_INACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_PRESS_IN: false,\n RESPONDER_ACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_LONG_PRESS_IN: false,\n RESPONDER_ACTIVE_LONG_PRESS_OUT: false,\n ERROR: false\n};\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 * Mapping from States x Signals => States\n */\n\nvar Transitions = {\n NOT_RESPONDER: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.ERROR,\n RESPONDER_TERMINATED: States.ERROR,\n ENTER_PRESS_RECT: States.ERROR,\n LEAVE_PRESS_RECT: States.ERROR,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_INACTIVE_PRESS_IN: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_IN,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_INACTIVE_PRESS_OUT: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_OUT,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_ACTIVE_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN\n },\n RESPONDER_ACTIVE_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_ACTIVE_LONG_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN\n },\n RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n error: {\n DELAY: States.NOT_RESPONDER,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.NOT_RESPONDER,\n LEAVE_PRESS_RECT: States.NOT_RESPONDER,\n LONG_PRESS_DETECTED: States.NOT_RESPONDER\n }\n}; // ==== Typical Constants for integrating into UI components ====\n// var HIT_EXPAND_PX = 20;\n// var HIT_VERT_OFFSET_PX = 10;\n\nvar HIGHLIGHT_DELAY_MS = 130;\nvar PRESS_EXPAND_PX = 20;\nvar LONG_PRESS_THRESHOLD = 500;\nvar LONG_PRESS_DELAY_MS = LONG_PRESS_THRESHOLD - HIGHLIGHT_DELAY_MS;\nvar LONG_PRESS_ALLOWED_MOVEMENT = 10; // Default amount \"active\" region protrudes beyond box\n\n/**\n * By convention, methods prefixed with underscores are meant to be @private,\n * and not @protected. Mixers shouldn't access them - not even to provide them\n * as callback handlers.\n *\n *\n * ========== Geometry =========\n * `Touchable` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * +--------------------------+\n * | | - \"Start\" events in `HitRect` cause `HitRect`\n * | +--------------------+ | to become the responder.\n * | | +--------------+ | | - `HitRect` is typically expanded around\n * | | | | | | the `VisualRect`, but shifted downward.\n * | | | VisualRect | | | - After pressing down, after some delay,\n * | | | | | | and before letting up, the Visual React\n * | | +--------------+ | | will become \"active\". This makes it eligible\n * | | HitRect | | for being highlighted (so long as the\n * | +--------------------+ | press remains in the `PressRect`).\n * | PressRect o |\n * +----------------------|---+\n * Out Region |\n * +-----+ This gap between the `HitRect` and\n * `PressRect` allows a touch to move far away\n * from the original hit rect, and remain\n * highlighted, and eligible for a \"Press\".\n * Customize this via\n * `touchableGetPressRectOffset()`.\n *\n *\n *\n * ======= State Machine =======\n *\n * +-------------+ <---+ RESPONDER_RELEASE\n * |NOT_RESPONDER|\n * +-------------+ <---+ RESPONDER_TERMINATED\n * +\n * | RESPONDER_GRANT (HitRect)\n * v\n * +---------------------------+ DELAY +-------------------------+ T + DELAY +------------------------------+\n * |RESPONDER_INACTIVE_PRESS_IN|+-------->|RESPONDER_ACTIVE_PRESS_IN| +------------> |RESPONDER_ACTIVE_LONG_PRESS_IN|\n * +---------------------------+ +-------------------------+ +------------------------------+\n * + ^ + ^ + ^\n * |LEAVE_ |ENTER_ |LEAVE_ |ENTER_ |LEAVE_ |ENTER_\n * |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT\n * | | | | | |\n * v + v + v +\n * +----------------------------+ DELAY +--------------------------+ +-------------------------------+\n * |RESPONDER_INACTIVE_PRESS_OUT|+------->|RESPONDER_ACTIVE_PRESS_OUT| |RESPONDER_ACTIVE_LONG_PRESS_OUT|\n * +----------------------------+ +--------------------------+ +-------------------------------+\n *\n * T + DELAY => LONG_PRESS_DELAY_MS + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the `touchableHandlePress` abstract method invocation that occurs\n * when a responder is released while in either of the \"Press\" states.\n *\n * The other important side effects are the highlight abstract method\n * invocations (internal callbacks) to be implemented by the mixer.\n *\n *\n * @lends Touchable.prototype\n */\n\nvar TouchableMixin = {\n // HACK (part 1): basic support for touchable interactions using a keyboard\n componentDidMount: function componentDidMount() {\n var _this = this;\n\n this._touchableNode = findNodeHandle(this);\n\n if (this._touchableNode && this._touchableNode.addEventListener) {\n this._touchableBlurListener = function (e) {\n if (_this._isTouchableKeyboardActive) {\n if (_this.state.touchable.touchState && _this.state.touchable.touchState !== States.NOT_RESPONDER) {\n _this.touchableHandleResponderTerminate({\n nativeEvent: e\n });\n }\n\n _this._isTouchableKeyboardActive = false;\n }\n };\n\n this._touchableNode.addEventListener('blur', this._touchableBlurListener);\n }\n },\n\n /**\n * Clear all timeouts on unmount\n */\n componentWillUnmount: function componentWillUnmount() {\n if (this._touchableNode && this._touchableNode.addEventListener) {\n this._touchableNode.removeEventListener('blur', this._touchableBlurListener);\n }\n\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n },\n\n /**\n * It's prefer that mixins determine state in this way, having the class\n * explicitly mix the state in the one and only `getInitialState` method.\n *\n * @return {object} State object to be placed inside of\n * `this.state.touchable`.\n */\n touchableGetInitialState: function touchableGetInitialState() {\n return {\n touchable: {\n touchState: undefined,\n responderID: null\n }\n };\n },\n // ==== Hooks to Gesture Responder system ====\n\n /**\n * Must return true if embedded in a native platform scroll view.\n */\n touchableHandleResponderTerminationRequest: function touchableHandleResponderTerminationRequest() {\n return !this.props.rejectResponderTermination;\n },\n\n /**\n * Must return true to start the process of `Touchable`.\n */\n touchableHandleStartShouldSetResponder: function touchableHandleStartShouldSetResponder() {\n return !this.props.disabled;\n },\n\n /**\n * Return true to cancel press on long press.\n */\n touchableLongPressCancelsPress: function touchableLongPressCancelsPress() {\n return true;\n },\n\n /**\n * Place as callback for a DOM element's `onResponderGrant` event.\n * @param {SyntheticEvent} e Synthetic event from event system.\n *\n */\n touchableHandleResponderGrant: function touchableHandleResponderGrant(e) {\n var dispatchID = e.currentTarget; // Since e is used in a callback invoked on another event loop\n // (as in setTimeout etc), we need to call e.persist() on the\n // event to make sure it doesn't get reused in the event object pool.\n\n e.persist();\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n this.pressOutDelayTimeout = null;\n this.state.touchable.touchState = States.NOT_RESPONDER;\n this.state.touchable.responderID = dispatchID;\n\n this._receiveSignal(Signals.RESPONDER_GRANT, e);\n\n var delayMS = this.touchableGetHighlightDelayMS !== undefined ? Math.max(this.touchableGetHighlightDelayMS(), 0) : HIGHLIGHT_DELAY_MS;\n delayMS = isNaN(delayMS) ? HIGHLIGHT_DELAY_MS : delayMS;\n\n if (delayMS !== 0) {\n this.touchableDelayTimeout = setTimeout(this._handleDelay.bind(this, e), delayMS);\n } else {\n this._handleDelay(e);\n }\n\n var longDelayMS = this.touchableGetLongPressDelayMS !== undefined ? Math.max(this.touchableGetLongPressDelayMS(), 10) : LONG_PRESS_DELAY_MS;\n longDelayMS = isNaN(longDelayMS) ? LONG_PRESS_DELAY_MS : longDelayMS;\n this.longPressDelayTimeout = setTimeout(this._handleLongDelay.bind(this, e), longDelayMS + delayMS);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderRelease` event.\n */\n touchableHandleResponderRelease: function touchableHandleResponderRelease(e) {\n this.pressInLocation = null;\n\n this._receiveSignal(Signals.RESPONDER_RELEASE, e);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderTerminate` event.\n */\n touchableHandleResponderTerminate: function touchableHandleResponderTerminate(e) {\n this.pressInLocation = null;\n\n this._receiveSignal(Signals.RESPONDER_TERMINATED, e);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderMove` event.\n */\n touchableHandleResponderMove: function touchableHandleResponderMove(e) {\n // Measurement may not have returned yet.\n if (!this.state.touchable.positionOnActivate) {\n return;\n }\n\n var positionOnActivate = this.state.touchable.positionOnActivate;\n var dimensionsOnActivate = this.state.touchable.dimensionsOnActivate;\n var pressRectOffset = this.touchableGetPressRectOffset ? this.touchableGetPressRectOffset() : {\n left: PRESS_EXPAND_PX,\n right: PRESS_EXPAND_PX,\n top: PRESS_EXPAND_PX,\n bottom: PRESS_EXPAND_PX\n };\n var pressExpandLeft = pressRectOffset.left;\n var pressExpandTop = pressRectOffset.top;\n var pressExpandRight = pressRectOffset.right;\n var pressExpandBottom = pressRectOffset.bottom;\n var hitSlop = this.touchableGetHitSlop ? this.touchableGetHitSlop() : null;\n\n if (hitSlop) {\n pressExpandLeft += hitSlop.left || 0;\n pressExpandTop += hitSlop.top || 0;\n pressExpandRight += hitSlop.right || 0;\n pressExpandBottom += hitSlop.bottom || 0;\n }\n\n var touch = extractSingleTouch(e.nativeEvent);\n var pageX = touch && touch.pageX;\n var pageY = touch && touch.pageY;\n\n if (this.pressInLocation) {\n var movedDistance = this._getDistanceBetweenPoints(pageX, pageY, this.pressInLocation.pageX, this.pressInLocation.pageY);\n\n if (movedDistance > LONG_PRESS_ALLOWED_MOVEMENT) {\n this._cancelLongPressDelayTimeout();\n }\n }\n\n var isTouchWithinActive = pageX > positionOnActivate.left - pressExpandLeft && pageY > positionOnActivate.top - pressExpandTop && pageX < positionOnActivate.left + dimensionsOnActivate.width + pressExpandRight && pageY < positionOnActivate.top + dimensionsOnActivate.height + pressExpandBottom;\n\n if (isTouchWithinActive) {\n var prevState = this.state.touchable.touchState;\n\n this._receiveSignal(Signals.ENTER_PRESS_RECT, e);\n\n var curState = this.state.touchable.touchState;\n\n if (curState === States.RESPONDER_INACTIVE_PRESS_IN && prevState !== States.RESPONDER_INACTIVE_PRESS_IN) {\n // fix for t7967420\n this._cancelLongPressDelayTimeout();\n }\n } else {\n this._cancelLongPressDelayTimeout();\n\n this._receiveSignal(Signals.LEAVE_PRESS_RECT, e);\n }\n },\n\n /**\n * Invoked when the item receives focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * currently has the focus. Most platforms only support a single element being\n * focused at a time, in which case there may have been a previously focused\n * element that was blurred just prior to this. This can be overridden when\n * using `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n touchableHandleFocus: function touchableHandleFocus(e) {\n this.props.onFocus && this.props.onFocus(e);\n },\n\n /**\n * Invoked when the item loses focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * no longer has focus. Most platforms only support a single element being\n * focused at a time, in which case the focus may have moved to another.\n * This can be overridden when using\n * `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n touchableHandleBlur: function touchableHandleBlur(e) {\n this.props.onBlur && this.props.onBlur(e);\n },\n // ==== Abstract Application Callbacks ====\n\n /**\n * Invoked when the item should be highlighted. Mixers should implement this\n * to visually distinguish the `VisualRect` so that the user knows that\n * releasing a touch will result in a \"selection\" (analog to click).\n *\n * @abstract\n * touchableHandleActivePressIn: function,\n */\n\n /**\n * Invoked when the item is \"active\" (in that it is still eligible to become\n * a \"select\") but the touch has left the `PressRect`. Usually the mixer will\n * want to unhighlight the `VisualRect`. If the user (while pressing) moves\n * back into the `PressRect` `touchableHandleActivePressIn` will be invoked\n * again and the mixer should probably highlight the `VisualRect` again. This\n * event will not fire on an `touchEnd/mouseUp` event, only move events while\n * the user is depressing the mouse/touch.\n *\n * @abstract\n * touchableHandleActivePressOut: function\n */\n\n /**\n * Invoked when the item is \"selected\" - meaning the interaction ended by\n * letting up while the item was either in the state\n * `RESPONDER_ACTIVE_PRESS_IN` or `RESPONDER_INACTIVE_PRESS_IN`.\n *\n * @abstract\n * touchableHandlePress: function\n */\n\n /**\n * Invoked when the item is long pressed - meaning the interaction ended by\n * letting up while the item was in `RESPONDER_ACTIVE_LONG_PRESS_IN`. If\n * `touchableHandleLongPress` is *not* provided, `touchableHandlePress` will\n * be called as it normally is. If `touchableHandleLongPress` is provided, by\n * default any `touchableHandlePress` callback will not be invoked. To\n * override this default behavior, override `touchableLongPressCancelsPress`\n * to return false. As a result, `touchableHandlePress` will be called when\n * lifting up, even if `touchableHandleLongPress` has also been called.\n *\n * @abstract\n * touchableHandleLongPress: function\n */\n\n /**\n * Returns the number of millis to wait before triggering a highlight.\n *\n * @abstract\n * touchableGetHighlightDelayMS: function\n */\n\n /**\n * Returns the amount to extend the `HitRect` into the `PressRect`. Positive\n * numbers mean the size expands outwards.\n *\n * @abstract\n * touchableGetPressRectOffset: function\n */\n // ==== Internal Logic ====\n\n /**\n * Measures the `HitRect` node on activation. The Bounding rectangle is with\n * respect to viewport - not page, so adding the `pageXOffset/pageYOffset`\n * should result in points that are in the same coordinate system as an\n * event's `globalX/globalY` data values.\n *\n * - Consider caching this for the lifetime of the component, or possibly\n * being able to share this cache between any `ScrollMap` view.\n *\n * @sideeffects\n * @private\n */\n _remeasureMetricsOnActivation: function _remeasureMetricsOnActivation() {\n var tag = this.state.touchable.responderID;\n\n if (tag == null) {\n return;\n }\n\n UIManager.measure(tag, this._handleQueryLayout);\n },\n _handleQueryLayout: function _handleQueryLayout(l, t, w, h, globalX, globalY) {\n //don't do anything UIManager failed to measure node\n if (!l && !t && !w && !h && !globalX && !globalY) {\n return;\n }\n\n this.state.touchable.positionOnActivate && Position.release(this.state.touchable.positionOnActivate);\n this.state.touchable.dimensionsOnActivate && // $FlowFixMe\n BoundingDimensions.release(this.state.touchable.dimensionsOnActivate);\n this.state.touchable.positionOnActivate = Position.getPooled(globalX, globalY); // $FlowFixMe\n\n this.state.touchable.dimensionsOnActivate = BoundingDimensions.getPooled(w, h);\n },\n _handleDelay: function _handleDelay(e) {\n this.touchableDelayTimeout = null;\n\n this._receiveSignal(Signals.DELAY, e);\n },\n _handleLongDelay: function _handleLongDelay(e) {\n this.longPressDelayTimeout = null;\n var curState = this.state.touchable.touchState;\n\n if (curState !== States.RESPONDER_ACTIVE_PRESS_IN && curState !== States.RESPONDER_ACTIVE_LONG_PRESS_IN) {\n console.error('Attempted to transition from state `' + curState + '` to `' + States.RESPONDER_ACTIVE_LONG_PRESS_IN + '`, which is not supported. This is ' + 'most likely due to `Touchable.longPressDelayTimeout` not being cancelled.');\n } else {\n this._receiveSignal(Signals.LONG_PRESS_DETECTED, e);\n }\n },\n\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n *\n * @param {Signals} signal State machine signal.\n * @throws Error if invalid state transition or unrecognized signal.\n * @sideeffects\n */\n _receiveSignal: function _receiveSignal(signal, e) {\n var responderID = this.state.touchable.responderID;\n var curState = this.state.touchable.touchState;\n var nextState = Transitions[curState] && Transitions[curState][signal];\n\n if (!responderID && signal === Signals.RESPONDER_RELEASE) {\n return;\n }\n\n if (!nextState) {\n throw new Error('Unrecognized signal `' + signal + '` or state `' + curState + '` for Touchable responder `' + responderID + '`');\n }\n\n if (nextState === States.ERROR) {\n throw new Error('Touchable cannot transition from `' + curState + '` to `' + signal + '` for responder `' + responderID + '`');\n }\n\n if (curState !== nextState) {\n this._performSideEffectsForTransition(curState, nextState, signal, e);\n\n this.state.touchable.touchState = nextState;\n }\n },\n _cancelLongPressDelayTimeout: function _cancelLongPressDelayTimeout() {\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.longPressDelayTimeout = null;\n },\n _isHighlight: function _isHighlight(state) {\n return state === States.RESPONDER_ACTIVE_PRESS_IN || state === States.RESPONDER_ACTIVE_LONG_PRESS_IN;\n },\n _savePressInLocation: function _savePressInLocation(e) {\n var touch = extractSingleTouch(e.nativeEvent);\n var pageX = touch && touch.pageX;\n var pageY = touch && touch.pageY;\n var locationX = touch && touch.locationX;\n var locationY = touch && touch.locationY;\n this.pressInLocation = {\n pageX: pageX,\n pageY: pageY,\n locationX: locationX,\n locationY: locationY\n };\n },\n _getDistanceBetweenPoints: function _getDistanceBetweenPoints(aX, aY, bX, bY) {\n var deltaX = aX - bX;\n var deltaY = aY - bY;\n return Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n },\n\n /**\n * Will perform a transition between touchable states, and identify any\n * highlighting or unhighlighting that must be performed for this particular\n * transition.\n *\n * @param {States} curState Current Touchable state.\n * @param {States} nextState Next Touchable state.\n * @param {Signal} signal Signal that triggered the transition.\n * @param {Event} e Native event.\n * @sideeffects\n */\n _performSideEffectsForTransition: function _performSideEffectsForTransition(curState, nextState, signal, e) {\n var curIsHighlight = this._isHighlight(curState);\n\n var newIsHighlight = this._isHighlight(nextState);\n\n var isFinalSignal = signal === Signals.RESPONDER_TERMINATED || signal === Signals.RESPONDER_RELEASE;\n\n if (isFinalSignal) {\n this._cancelLongPressDelayTimeout();\n }\n\n var isInitialTransition = curState === States.NOT_RESPONDER && nextState === States.RESPONDER_INACTIVE_PRESS_IN;\n var isActiveTransition = !IsActive[curState] && IsActive[nextState];\n\n if (isInitialTransition || isActiveTransition) {\n this._remeasureMetricsOnActivation();\n }\n\n if (IsPressingIn[curState] && signal === Signals.LONG_PRESS_DETECTED) {\n this.touchableHandleLongPress && this.touchableHandleLongPress(e);\n }\n\n if (newIsHighlight && !curIsHighlight) {\n this._startHighlight(e);\n } else if (!newIsHighlight && curIsHighlight) {\n this._endHighlight(e);\n }\n\n if (IsPressingIn[curState] && signal === Signals.RESPONDER_RELEASE) {\n var hasLongPressHandler = !!this.props.onLongPress;\n var pressIsLongButStillCallOnPress = IsLongPressingIn[curState] && ( // We *are* long pressing.. // But either has no long handler\n !hasLongPressHandler || !this.touchableLongPressCancelsPress()); // or we're told to ignore it.\n\n var shouldInvokePress = !IsLongPressingIn[curState] || pressIsLongButStillCallOnPress;\n\n if (shouldInvokePress && this.touchableHandlePress) {\n if (!newIsHighlight && !curIsHighlight) {\n // we never highlighted because of delay, but we should highlight now\n this._startHighlight(e);\n\n this._endHighlight(e);\n }\n\n this.touchableHandlePress(e);\n }\n }\n\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.touchableDelayTimeout = null;\n },\n _playTouchSound: function _playTouchSound() {\n UIManager.playTouchSound();\n },\n _startHighlight: function _startHighlight(e) {\n this._savePressInLocation(e);\n\n this.touchableHandleActivePressIn && this.touchableHandleActivePressIn(e);\n },\n _endHighlight: function _endHighlight(e) {\n var _this2 = this;\n\n if (this.touchableHandleActivePressOut) {\n if (this.touchableGetPressOutDelayMS && this.touchableGetPressOutDelayMS()) {\n this.pressOutDelayTimeout = setTimeout(function () {\n _this2.touchableHandleActivePressOut(e);\n }, this.touchableGetPressOutDelayMS());\n } else {\n this.touchableHandleActivePressOut(e);\n }\n }\n },\n // HACK (part 2): basic support for touchable interactions using a keyboard (including\n // delays and longPress)\n touchableHandleKeyEvent: function touchableHandleKeyEvent(e) {\n var type = e.type,\n key = e.key;\n\n if (key === 'Enter' || key === ' ') {\n if (type === 'keydown') {\n if (!this._isTouchableKeyboardActive) {\n if (!this.state.touchable.touchState || this.state.touchable.touchState === States.NOT_RESPONDER) {\n this.touchableHandleResponderGrant(e);\n this._isTouchableKeyboardActive = true;\n }\n }\n } else if (type === 'keyup') {\n if (this._isTouchableKeyboardActive) {\n if (this.state.touchable.touchState && this.state.touchable.touchState !== States.NOT_RESPONDER) {\n this.touchableHandleResponderRelease(e);\n this._isTouchableKeyboardActive = false;\n }\n }\n }\n\n e.stopPropagation(); // prevent the default behaviour unless the Touchable functions as a link\n // and Enter is pressed\n\n if (!(key === 'Enter' && AccessibilityUtil.propsToAriaRole(this.props) === 'link')) {\n e.preventDefault();\n }\n }\n },\n withoutDefaultFocusAndBlur: {}\n};\n/**\n * Provide an optional version of the mixin where `touchableHandleFocus` and\n * `touchableHandleBlur` can be overridden. This allows appropriate defaults to\n * be set on TV platforms, without breaking existing implementations of\n * `Touchable`.\n */\n\nvar touchableHandleFocus = TouchableMixin.touchableHandleFocus,\n touchableHandleBlur = TouchableMixin.touchableHandleBlur,\n TouchableMixinWithoutDefaultFocusAndBlur = _objectWithoutPropertiesLoose(TouchableMixin, [\"touchableHandleFocus\", \"touchableHandleBlur\"]);\n\nTouchableMixin.withoutDefaultFocusAndBlur = TouchableMixinWithoutDefaultFocusAndBlur;\nvar Touchable = {\n Mixin: TouchableMixin,\n TOUCH_TARGET_DEBUG: false,\n // Highlights all touchable targets. Toggle with Inspector.\n\n /**\n * Renders a debugging overlay to visualize touch target with hitSlop (might not work on Android).\n */\n renderDebugView: function renderDebugView(_ref) {\n var color = _ref.color,\n hitSlop = _ref.hitSlop;\n\n if (!Touchable.TOUCH_TARGET_DEBUG) {\n return null;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n throw Error('Touchable.TOUCH_TARGET_DEBUG should not be enabled in prod!');\n }\n\n var debugHitSlopStyle = {};\n hitSlop = hitSlop || {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n };\n\n for (var key in hitSlop) {\n debugHitSlopStyle[key] = -hitSlop[key];\n }\n\n var normalizedColor = normalizeColor(color);\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n var hexColor = '#' + ('00000000' + normalizedColor.toString(16)).substr(-8);\n return /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"none\",\n style: _objectSpread({\n position: 'absolute',\n borderColor: hexColor.slice(0, -2) + '55',\n // More opaque\n borderWidth: 1,\n borderStyle: 'dashed',\n backgroundColor: hexColor.slice(0, -2) + '0F'\n }, debugHitSlopStyle)\n });\n }\n};\nexport default Touchable;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport * as React from 'react';\nimport { useCallback, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\nfunction createExtraStyles(activeOpacity, underlayColor) {\n return {\n child: {\n opacity: activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.85\n },\n underlay: {\n backgroundColor: underlayColor === undefined ? 'black' : underlayColor\n }\n };\n}\n\nfunction hasPressHandler(props) {\n return props.onPress != null || props.onPressIn != null || props.onPressOut != null || props.onLongPress != null;\n}\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, which allows\n * the underlay color to show through, darkening or tinting the view.\n *\n * The underlay comes from wrapping the child in a new View, which can affect\n * layout, and sometimes cause unwanted visual artifacts if not used correctly,\n * for example if the backgroundColor of the wrapped view isn't explicitly set\n * to an opaque color.\n *\n * TouchableHighlight must have one child (not zero or more than one).\n * If you wish to have several child components, wrap them in a View.\n */\n\n\nfunction TouchableHighlight(props, forwardedRef) {\n var activeOpacity = props.activeOpacity,\n children = props.children,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onHideUnderlay = props.onHideUnderlay,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n onShowUnderlay = props.onShowUnderlay,\n rejectResponderTermination = props.rejectResponderTermination,\n style = props.style,\n testOnly_pressed = props.testOnly_pressed,\n underlayColor = props.underlayColor,\n rest = _objectWithoutPropertiesLoose(props, [\"activeOpacity\", \"children\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onHideUnderlay\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"onShowUnderlay\", \"rejectResponderTermination\", \"style\", \"testOnly_pressed\", \"underlayColor\"]);\n\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n\n var _useState = useState(testOnly_pressed === true ? createExtraStyles(activeOpacity, underlayColor) : null),\n extraStyles = _useState[0],\n setExtraStyles = _useState[1];\n\n var showUnderlay = useCallback(function () {\n if (!hasPressHandler(props)) {\n return;\n }\n\n setExtraStyles(createExtraStyles(activeOpacity, underlayColor));\n\n if (onShowUnderlay != null) {\n onShowUnderlay();\n }\n }, [activeOpacity, onShowUnderlay, props, underlayColor]);\n var hideUnderlay = useCallback(function () {\n if (testOnly_pressed === true) {\n return;\n }\n\n if (hasPressHandler(props)) {\n setExtraStyles(null);\n\n if (onHideUnderlay != null) {\n onHideUnderlay();\n }\n }\n }, [onHideUnderlay, props, testOnly_pressed]);\n var pressConfig = useMemo(function () {\n return {\n cancelable: !rejectResponderTermination,\n disabled: disabled,\n delayLongPress: delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress: onLongPress,\n onPress: onPress,\n onPressStart: function onPressStart(event) {\n showUnderlay();\n\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n onPressEnd: function onPressEnd(event) {\n hideUnderlay();\n\n if (onPressOut != null) {\n onPressOut(event);\n }\n }\n };\n }, [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, showUnderlay, hideUnderlay]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var child = React.Children.only(children);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n ref: setRef,\n style: [styles.root, style, !disabled && styles.actionable, extraStyles && extraStyles.underlay]\n }), /*#__PURE__*/React.cloneElement(child, {\n style: StyleSheet.compose(child.props.style, extraStyles && extraStyles.child)\n }));\n}\n\nvar styles = StyleSheet.create({\n root: {\n userSelect: 'none'\n },\n actionable: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedTouchableHighlight = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableHighlight));\nMemoedTouchableHighlight.displayName = 'TouchableHighlight';\nexport default MemoedTouchableHighlight;","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nimport View from '../../exports/View';\nimport React from 'react';\n/**\n * Common implementation for a simple stubbed view.\n */\n\nvar UnimplementedView = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(UnimplementedView, _React$Component);\n\n function UnimplementedView() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = UnimplementedView.prototype;\n\n _proto.setNativeProps = function setNativeProps() {// Do nothing.\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(View, {\n style: [unimplementedViewStyles, this.props.style]\n }, this.props.children);\n };\n\n return UnimplementedView;\n}(React.Component);\n\nvar unimplementedViewStyles = process.env.NODE_ENV !== 'production' ? {\n alignSelf: 'flex-start',\n borderColor: 'red',\n borderWidth: 1\n} : {};\nexport default UnimplementedView;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport * as React from 'react';\nimport { useMemo, useRef } from 'react';\nimport pick from '../../modules/pick';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nvar forwardPropsList = {\n accessibilityDisabled: true,\n accessibilityLabel: true,\n accessibilityLiveRegion: true,\n accessibilityRole: true,\n accessibilityState: true,\n accessibilityValue: true,\n children: true,\n disabled: true,\n focusable: true,\n nativeID: true,\n onBlur: true,\n onFocus: true,\n onLayout: true,\n testID: true\n};\n\nvar pickProps = function pickProps(props) {\n return pick(props, forwardPropsList);\n};\n\nfunction TouchableWithoutFeedback(props, forwardedRef) {\n var delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n rejectResponderTermination = props.rejectResponderTermination;\n var hostRef = useRef(null);\n var pressConfig = useMemo(function () {\n return {\n cancelable: !rejectResponderTermination,\n disabled: disabled,\n delayLongPress: delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress: onLongPress,\n onPress: onPress,\n onPressStart: onPressIn,\n onPressEnd: onPressOut\n };\n }, [disabled, delayPressIn, delayPressOut, delayLongPress, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var element = React.Children.only(props.children);\n var children = [element.props.children];\n var supportedProps = pickProps(props);\n supportedProps.accessibilityDisabled = disabled;\n supportedProps.focusable = !disabled && focusable !== false;\n supportedProps.ref = useMergeRefs(forwardedRef, hostRef, element.ref);\n var elementProps = Object.assign(supportedProps, pressEventHandlers);\n return /*#__PURE__*/React.cloneElement.apply(React, [element, elementProps].concat(children));\n}\n\nvar MemoedTouchableWithoutFeedback = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableWithoutFeedback));\nMemoedTouchableWithoutFeedback.displayName = 'TouchableWithoutFeedback';\nexport default MemoedTouchableWithoutFeedback;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport VirtualizedList from '../../vendor/react-native/VirtualizedList';\nexport default VirtualizedList;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport React from 'react';\nimport UnimplementedView from '../../modules/UnimplementedView';\n\nfunction YellowBox(props) {\n return /*#__PURE__*/React.createElement(UnimplementedView, props);\n}\n\nYellowBox.ignoreWarnings = function () {};\n\nexport default YellowBox;","/**\n * Copyright (c) 2016-present, Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar LogBox = {\n ignoreLogs: function ignoreLogs() {},\n ignoreAllLogs: function ignoreAllLogs() {},\n uninstall: function uninstall() {},\n install: function install() {}\n};\nexport default LogBox;","import UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","import UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","import UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","var promiseMock = function promiseMock() {\n return Promise.resolve(false);\n};\n\nexport default {\n PERMISSIONS: {},\n RESULTS: {},\n checkPermission: promiseMock,\n check: promiseMock,\n requestPermission: promiseMock,\n request: promiseMock,\n requestMultiple: promiseMock\n};","export default {};","export default {};","export default {};","import RCTDeviceEventEmitter from '../../vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter';\nexport default RCTDeviceEventEmitter;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport Appearance from '../Appearance';\nexport default function useColorScheme() {\n var _React$useState = React.useState(Appearance.getColorScheme()),\n colorScheme = _React$useState[0],\n setColorScheme = _React$useState[1];\n\n React.useEffect(function () {\n function listener(appearance) {\n setColorScheme(appearance.colorScheme);\n }\n\n Appearance.addChangeListener(listener);\n return function () {\n return Appearance.removeChangeListener(listener);\n };\n });\n return colorScheme;\n}","require('react-dom');\n\nmodule.exports = {\n Svg: 'svg',\n Circle: 'circle',\n Ellipse: 'ellipse',\n G: 'g',\n LinearGradient: 'linearGradient',\n RadialGradient: 'radialGradient',\n Line: 'line',\n Path: 'path',\n Polygon: 'polygon',\n Polyline: 'polyline',\n Rect: 'rect',\n Symbol: 'symbol',\n Text: 'text',\n Use: 'use',\n Defs: 'defs',\n Stop: 'stop'\n};","module.exports = require('./core');","module.exports = require('./lib');","var ReactPrimitives = {\n StyleSheet: null,\n View: null,\n Text: null,\n Image: null,\n Touchable: null,\n Easing: null,\n Animated: null,\n Dimensions: null,\n PixelRatio: require('./modules/PixelRatio'),\n Platform: require('./modules/Platform'),\n inject: function inject(api) {\n if (api.StyleSheet) {\n ReactPrimitives.StyleSheet = api.StyleSheet;\n }\n\n if (api.View) {\n ReactPrimitives.View = api.View;\n }\n\n if (api.Text) {\n ReactPrimitives.Text = api.Text;\n }\n\n if (api.Image) {\n ReactPrimitives.Image = api.Image;\n }\n\n if (api.Touchable) {\n ReactPrimitives.Touchable = api.Touchable;\n }\n\n if (api.Easing) {\n ReactPrimitives.Easing = api.Easing;\n }\n\n if (api.Animated) {\n ReactPrimitives.Animated = api.Animated;\n }\n\n if (api.Dimensions) {\n ReactPrimitives.Dimensions = api.Dimensions;\n }\n\n if (api.Platform) {\n ReactPrimitives.Platform.inject(api.Platform);\n }\n }\n};\nmodule.exports = ReactPrimitives;","require('./injection/react-native-web');\n\nmodule.exports = require('./ReactPrimitives');","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar ReactPrimitives = require('../ReactPrimitives');\n\nvar _require = require('react-native-web'),\n Animated = _require.Animated,\n StyleSheet = _require.StyleSheet,\n View = _require.View,\n Text = _require.Text,\n Image = _require.Image,\n Platform = _require.Platform,\n TouchableWithoutFeedback = _require.TouchableWithoutFeedback,\n Dimensions = _require.Dimensions,\n Easing = _require.Easing;\n\nfunction getDefault(m) {\n return m.__esModule === true ? m.default : m;\n}\n\nvar StyleRegistry = getDefault(require('react-native-web/dist/cjs/exports/StyleSheet/createStyleResolver'))();\nvar emptyObject = {};\n\nvar resolve = function resolve(style) {\n return StyleRegistry.resolve(style) || emptyObject;\n};\n\nReactPrimitives.inject({\n View: View,\n Text: Text,\n Image: Image,\n Easing: Easing,\n Animated: Animated,\n StyleSheet: _extends({}, StyleSheet, {\n resolve: resolve\n }),\n Platform: {\n OS: Platform.OS,\n Version: Platform.Version\n },\n Dimensions: Dimensions,\n Touchable: TouchableWithoutFeedback\n});","var ReactPrimitives = require('../ReactPrimitives');\n\nvar PixelRatio = {\n get: function get() {\n return ReactPrimitives.Dimensions.get('window').scale;\n },\n getFontScale: function getFontScale() {\n return ReactPrimitives.Dimensions.get('window').fontScale || PixelRatio.get();\n },\n getPixelSizeForLayoutSize: function getPixelSizeForLayoutSize(layoutSize) {\n return Math.round(layoutSize * PixelRatio.get());\n },\n roundToNearestPixel: function roundToNearestPixel(layoutSize) {\n var ratio = PixelRatio.get();\n return Math.round(layoutSize * ratio) / ratio;\n }\n};\nmodule.exports = PixelRatio;","var hasOwnProperty = Object.prototype.hasOwnProperty;\nvar Platform = {\n OS: 'unknown',\n Version: 0,\n select: function select(obj) {\n if (hasOwnProperty.call(obj, Platform.OS)) {\n return obj[Platform.OS];\n }\n\n return obj.default;\n },\n inject: function inject(platform) {\n Platform['OS'] = platform.OS;\n Platform['Version'] = platform.Version;\n }\n};\nmodule.exports = Platform;","//\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B.\n\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || ret === void 0 && valueA !== valueB) {\n return false;\n }\n }\n\n return true;\n};","function stylis_min(W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {}\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\nexport default unitlessKeys;","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;","import memoize from '@emotion/memoize';\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\nexport default index;","import { typeOf as e, isElement as t, isValidElementType as n } from \"react-is\";\nimport r, { useState as o, useContext as s, useMemo as i, useEffect as a, useRef as c, createElement as u, useDebugValue as l, useLayoutEffect as d } from \"react\";\nimport h from \"shallowequal\";\nimport p from \"@emotion/stylis\";\nimport f from \"@emotion/unitless\";\nimport m from \"@emotion/is-prop-valid\";\nimport y from \"hoist-non-react-statics\";\n\nfunction v() {\n return (v = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n\n for (var r in n) {\n Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n}\n\nvar g = function g(e, t) {\n for (var n = [e[0]], r = 0, o = t.length; r < o; r += 1) {\n n.push(t[r], e[r + 1]);\n }\n\n return n;\n},\n S = function S(t) {\n return null !== t && \"object\" == typeof t && \"[object Object]\" === (t.toString ? t.toString() : Object.prototype.toString.call(t)) && !e(t);\n},\n w = Object.freeze([]),\n E = Object.freeze({});\n\nfunction b(e) {\n return \"function\" == typeof e;\n}\n\nfunction _(e) {\n return \"production\" !== process.env.NODE_ENV && \"string\" == typeof e && e || e.displayName || e.name || \"Component\";\n}\n\nfunction N(e) {\n return e && \"string\" == typeof e.styledComponentId;\n}\n\nvar A = \"undefined\" != typeof process && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || \"data-styled\",\n C = \"5.3.3\",\n I = \"undefined\" != typeof window && \"HTMLElement\" in window,\n P = Boolean(\"boolean\" == typeof SC_DISABLE_SPEEDY ? SC_DISABLE_SPEEDY : \"undefined\" != typeof process && void 0 !== process.env.REACT_APP_SC_DISABLE_SPEEDY && \"\" !== process.env.REACT_APP_SC_DISABLE_SPEEDY ? \"false\" !== process.env.REACT_APP_SC_DISABLE_SPEEDY && process.env.REACT_APP_SC_DISABLE_SPEEDY : \"undefined\" != typeof process && void 0 !== process.env.SC_DISABLE_SPEEDY && \"\" !== process.env.SC_DISABLE_SPEEDY ? \"false\" !== process.env.SC_DISABLE_SPEEDY && process.env.SC_DISABLE_SPEEDY : \"production\" !== process.env.NODE_ENV),\n O = {},\n R = \"production\" !== process.env.NODE_ENV ? {\n 1: \"Cannot create styled-component for component: %s.\\n\\n\",\n 2: \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n 3: \"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",\n 4: \"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",\n 5: \"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",\n 6: \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n 7: 'ThemeProvider: Please return an object from your \"theme\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n',\n 8: 'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',\n 9: \"Missing document ``\\n\\n\",\n 10: \"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",\n 11: \"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",\n 12: \"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",\n 13: \"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",\n 14: 'ThemeProvider: \"theme\" prop is required.\\n\\n',\n 15: \"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to ``, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",\n 16: \"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",\n 17: \"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\"\n} : {};\n\nfunction D() {\n for (var e = arguments.length <= 0 ? void 0 : arguments[0], t = [], n = 1, r = arguments.length; n < r; n += 1) {\n t.push(n < 0 || arguments.length <= n ? void 0 : arguments[n]);\n }\n\n return t.forEach(function (t) {\n e = e.replace(/%[a-z]/, t);\n }), e;\n}\n\nfunction j(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) {\n n[r - 1] = arguments[r];\n }\n\n throw \"production\" === process.env.NODE_ENV ? new Error(\"An error occurred. See https://git.io/JUIaE#\" + e + \" for more information.\" + (n.length > 0 ? \" Args: \" + n.join(\", \") : \"\")) : new Error(D.apply(void 0, [R[e]].concat(n)).trim());\n}\n\nvar T = function () {\n function e(e) {\n this.groupSizes = new Uint32Array(512), this.length = 512, this.tag = e;\n }\n\n var t = e.prototype;\n return t.indexOfGroup = function (e) {\n for (var t = 0, n = 0; n < e; n++) {\n t += this.groupSizes[n];\n }\n\n return t;\n }, t.insertRules = function (e, t) {\n if (e >= this.groupSizes.length) {\n for (var n = this.groupSizes, r = n.length, o = r; e >= o;) {\n (o <<= 1) < 0 && j(16, \"\" + e);\n }\n\n this.groupSizes = new Uint32Array(o), this.groupSizes.set(n), this.length = o;\n\n for (var s = r; s < o; s++) {\n this.groupSizes[s] = 0;\n }\n }\n\n for (var i = this.indexOfGroup(e + 1), a = 0, c = t.length; a < c; a++) {\n this.tag.insertRule(i, t[a]) && (this.groupSizes[e]++, i++);\n }\n }, t.clearGroup = function (e) {\n if (e < this.length) {\n var t = this.groupSizes[e],\n n = this.indexOfGroup(e),\n r = n + t;\n this.groupSizes[e] = 0;\n\n for (var o = n; o < r; o++) {\n this.tag.deleteRule(n);\n }\n }\n }, t.getGroup = function (e) {\n var t = \"\";\n if (e >= this.length || 0 === this.groupSizes[e]) return t;\n\n for (var n = this.groupSizes[e], r = this.indexOfGroup(e), o = r + n, s = r; s < o; s++) {\n t += this.tag.getRule(s) + \"/*!sc*/\\n\";\n }\n\n return t;\n }, e;\n}(),\n x = new Map(),\n k = new Map(),\n V = 1,\n B = function B(e) {\n if (x.has(e)) return x.get(e);\n\n for (; k.has(V);) {\n V++;\n }\n\n var t = V++;\n return \"production\" !== process.env.NODE_ENV && ((0 | t) < 0 || t > 1 << 30) && j(16, \"\" + t), x.set(e, t), k.set(t, e), t;\n},\n z = function z(e) {\n return k.get(e);\n},\n M = function M(e, t) {\n t >= V && (V = t + 1), x.set(e, t), k.set(t, e);\n},\n G = \"style[\" + A + '][data-styled-version=\"5.3.3\"]',\n L = new RegExp(\"^\" + A + '\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)'),\n F = function F(e, t, n) {\n for (var r, o = n.split(\",\"), s = 0, i = o.length; s < i; s++) {\n (r = o[s]) && e.registerName(t, r);\n }\n},\n Y = function Y(e, t) {\n for (var n = (t.textContent || \"\").split(\"/*!sc*/\\n\"), r = [], o = 0, s = n.length; o < s; o++) {\n var i = n[o].trim();\n\n if (i) {\n var a = i.match(L);\n\n if (a) {\n var c = 0 | parseInt(a[1], 10),\n u = a[2];\n 0 !== c && (M(u, c), F(e, u, a[3]), e.getTag().insertRules(c, r)), r.length = 0;\n } else r.push(i);\n }\n }\n},\n q = function q() {\n return \"undefined\" != typeof window && void 0 !== window.__webpack_nonce__ ? window.__webpack_nonce__ : null;\n},\n H = function H(e) {\n var t = document.head,\n n = e || t,\n r = document.createElement(\"style\"),\n o = function (e) {\n for (var t = e.childNodes, n = t.length; n >= 0; n--) {\n var r = t[n];\n if (r && 1 === r.nodeType && r.hasAttribute(A)) return r;\n }\n }(n),\n s = void 0 !== o ? o.nextSibling : null;\n\n r.setAttribute(A, \"active\"), r.setAttribute(\"data-styled-version\", \"5.3.3\");\n var i = q();\n return i && r.setAttribute(\"nonce\", i), n.insertBefore(r, s), r;\n},\n $ = function () {\n function e(e) {\n var t = this.element = H(e);\n t.appendChild(document.createTextNode(\"\")), this.sheet = function (e) {\n if (e.sheet) return e.sheet;\n\n for (var t = document.styleSheets, n = 0, r = t.length; n < r; n++) {\n var o = t[n];\n if (o.ownerNode === e) return o;\n }\n\n j(17);\n }(t), this.length = 0;\n }\n\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n try {\n return this.sheet.insertRule(t, e), this.length++, !0;\n } catch (e) {\n return !1;\n }\n }, t.deleteRule = function (e) {\n this.sheet.deleteRule(e), this.length--;\n }, t.getRule = function (e) {\n var t = this.sheet.cssRules[e];\n return void 0 !== t && \"string\" == typeof t.cssText ? t.cssText : \"\";\n }, e;\n}(),\n W = function () {\n function e(e) {\n var t = this.element = H(e);\n this.nodes = t.childNodes, this.length = 0;\n }\n\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n if (e <= this.length && e >= 0) {\n var n = document.createTextNode(t),\n r = this.nodes[e];\n return this.element.insertBefore(n, r || null), this.length++, !0;\n }\n\n return !1;\n }, t.deleteRule = function (e) {\n this.element.removeChild(this.nodes[e]), this.length--;\n }, t.getRule = function (e) {\n return e < this.length ? this.nodes[e].textContent : \"\";\n }, e;\n}(),\n U = function () {\n function e(e) {\n this.rules = [], this.length = 0;\n }\n\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n return e <= this.length && (this.rules.splice(e, 0, t), this.length++, !0);\n }, t.deleteRule = function (e) {\n this.rules.splice(e, 1), this.length--;\n }, t.getRule = function (e) {\n return e < this.length ? this.rules[e] : \"\";\n }, e;\n}(),\n J = I,\n X = {\n isServer: !I,\n useCSSOMInjection: !P\n},\n Z = function () {\n function e(e, t, n) {\n void 0 === e && (e = E), void 0 === t && (t = {}), this.options = v({}, X, {}, e), this.gs = t, this.names = new Map(n), this.server = !!e.isServer, !this.server && I && J && (J = !1, function (e) {\n for (var t = document.querySelectorAll(G), n = 0, r = t.length; n < r; n++) {\n var o = t[n];\n o && \"active\" !== o.getAttribute(A) && (Y(e, o), o.parentNode && o.parentNode.removeChild(o));\n }\n }(this));\n }\n\n e.registerId = function (e) {\n return B(e);\n };\n\n var t = e.prototype;\n return t.reconstructWithOptions = function (t, n) {\n return void 0 === n && (n = !0), new e(v({}, this.options, {}, t), this.gs, n && this.names || void 0);\n }, t.allocateGSInstance = function (e) {\n return this.gs[e] = (this.gs[e] || 0) + 1;\n }, t.getTag = function () {\n return this.tag || (this.tag = (n = (t = this.options).isServer, r = t.useCSSOMInjection, o = t.target, e = n ? new U(o) : r ? new $(o) : new W(o), new T(e)));\n var e, t, n, r, o;\n }, t.hasNameForId = function (e, t) {\n return this.names.has(e) && this.names.get(e).has(t);\n }, t.registerName = function (e, t) {\n if (B(e), this.names.has(e)) this.names.get(e).add(t);else {\n var n = new Set();\n n.add(t), this.names.set(e, n);\n }\n }, t.insertRules = function (e, t, n) {\n this.registerName(e, t), this.getTag().insertRules(B(e), n);\n }, t.clearNames = function (e) {\n this.names.has(e) && this.names.get(e).clear();\n }, t.clearRules = function (e) {\n this.getTag().clearGroup(B(e)), this.clearNames(e);\n }, t.clearTag = function () {\n this.tag = void 0;\n }, t.toString = function () {\n return function (e) {\n for (var t = e.getTag(), n = t.length, r = \"\", o = 0; o < n; o++) {\n var s = z(o);\n\n if (void 0 !== s) {\n var i = e.names.get(s),\n a = t.getGroup(o);\n\n if (i && a && i.size) {\n var c = A + \".g\" + o + '[id=\"' + s + '\"]',\n u = \"\";\n void 0 !== i && i.forEach(function (e) {\n e.length > 0 && (u += e + \",\");\n }), r += \"\" + a + c + '{content:\"' + u + '\"}/*!sc*/\\n';\n }\n }\n }\n\n return r;\n }(this);\n }, e;\n}(),\n K = /(a)(d)/gi,\n Q = function Q(e) {\n return String.fromCharCode(e + (e > 25 ? 39 : 97));\n};\n\nfunction ee(e) {\n var t,\n n = \"\";\n\n for (t = Math.abs(e); t > 52; t = t / 52 | 0) {\n n = Q(t % 52) + n;\n }\n\n return (Q(t % 52) + n).replace(K, \"$1-$2\");\n}\n\nvar te = function te(e, t) {\n for (var n = t.length; n;) {\n e = 33 * e ^ t.charCodeAt(--n);\n }\n\n return e;\n},\n ne = function ne(e) {\n return te(5381, e);\n};\n\nfunction re(e) {\n for (var t = 0; t < e.length; t += 1) {\n var n = e[t];\n if (b(n) && !N(n)) return !1;\n }\n\n return !0;\n}\n\nvar oe = ne(\"5.3.3\"),\n se = function () {\n function e(e, t, n) {\n this.rules = e, this.staticRulesId = \"\", this.isStatic = \"production\" === process.env.NODE_ENV && (void 0 === n || n.isStatic) && re(e), this.componentId = t, this.baseHash = te(oe, t), this.baseStyle = n, Z.registerId(t);\n }\n\n return e.prototype.generateAndInjectStyles = function (e, t, n) {\n var r = this.componentId,\n o = [];\n if (this.baseStyle && o.push(this.baseStyle.generateAndInjectStyles(e, t, n)), this.isStatic && !n.hash) {\n if (this.staticRulesId && t.hasNameForId(r, this.staticRulesId)) o.push(this.staticRulesId);else {\n var s = Ne(this.rules, e, t, n).join(\"\"),\n i = ee(te(this.baseHash, s) >>> 0);\n\n if (!t.hasNameForId(r, i)) {\n var a = n(s, \".\" + i, void 0, r);\n t.insertRules(r, i, a);\n }\n\n o.push(i), this.staticRulesId = i;\n }\n } else {\n for (var c = this.rules.length, u = te(this.baseHash, n.hash), l = \"\", d = 0; d < c; d++) {\n var h = this.rules[d];\n if (\"string\" == typeof h) l += h, \"production\" !== process.env.NODE_ENV && (u = te(u, h + d));else if (h) {\n var p = Ne(h, e, t, n),\n f = Array.isArray(p) ? p.join(\"\") : p;\n u = te(u, f + d), l += f;\n }\n }\n\n if (l) {\n var m = ee(u >>> 0);\n\n if (!t.hasNameForId(r, m)) {\n var y = n(l, \".\" + m, void 0, r);\n t.insertRules(r, m, y);\n }\n\n o.push(m);\n }\n }\n return o.join(\" \");\n }, e;\n}(),\n ie = /^\\s*\\/\\/.*$/gm,\n ae = [\":\", \"[\", \".\", \"#\"];\n\nfunction ce(e) {\n var t,\n n,\n r,\n o,\n s = void 0 === e ? E : e,\n i = s.options,\n a = void 0 === i ? E : i,\n c = s.plugins,\n u = void 0 === c ? w : c,\n l = new p(a),\n d = [],\n h = function (e) {\n function t(t) {\n if (t) try {\n e(t + \"}\");\n } catch (e) {}\n }\n\n return function (n, r, o, s, i, a, c, u, l, d) {\n switch (n) {\n case 1:\n if (0 === l && 64 === r.charCodeAt(0)) return e(r + \";\"), \"\";\n break;\n\n case 2:\n if (0 === u) return r + \"/*|*/\";\n break;\n\n case 3:\n switch (u) {\n case 102:\n case 112:\n return e(o[0] + r), \"\";\n\n default:\n return r + (0 === d ? \"/*|*/\" : \"\");\n }\n\n case -2:\n r.split(\"/*|*/}\").forEach(t);\n }\n };\n }(function (e) {\n d.push(e);\n }),\n f = function f(e, r, s) {\n return 0 === r && -1 !== ae.indexOf(s[n.length]) || s.match(o) ? e : \".\" + t;\n };\n\n function m(e, s, i, a) {\n void 0 === a && (a = \"&\");\n var c = e.replace(ie, \"\"),\n u = s && i ? i + \" \" + s + \" { \" + c + \" }\" : c;\n return t = a, n = s, r = new RegExp(\"\\\\\" + n + \"\\\\b\", \"g\"), o = new RegExp(\"(\\\\\" + n + \"\\\\b){2,}\"), l(i || !s ? \"\" : s, u);\n }\n\n return l.use([].concat(u, [function (e, t, o) {\n 2 === e && o.length && o[0].lastIndexOf(n) > 0 && (o[0] = o[0].replace(r, f));\n }, h, function (e) {\n if (-2 === e) {\n var t = d;\n return d = [], t;\n }\n }])), m.hash = u.length ? u.reduce(function (e, t) {\n return t.name || j(15), te(e, t.name);\n }, 5381).toString() : \"\", m;\n}\n\nvar ue = r.createContext(),\n le = ue.Consumer,\n de = r.createContext(),\n he = (de.Consumer, new Z()),\n pe = ce();\n\nfunction fe() {\n return s(ue) || he;\n}\n\nfunction me() {\n return s(de) || pe;\n}\n\nfunction ye(e) {\n var t = o(e.stylisPlugins),\n n = t[0],\n s = t[1],\n c = fe(),\n u = i(function () {\n var t = c;\n return e.sheet ? t = e.sheet : e.target && (t = t.reconstructWithOptions({\n target: e.target\n }, !1)), e.disableCSSOMInjection && (t = t.reconstructWithOptions({\n useCSSOMInjection: !1\n })), t;\n }, [e.disableCSSOMInjection, e.sheet, e.target]),\n l = i(function () {\n return ce({\n options: {\n prefix: !e.disableVendorPrefixes\n },\n plugins: n\n });\n }, [e.disableVendorPrefixes, n]);\n return a(function () {\n h(n, e.stylisPlugins) || s(e.stylisPlugins);\n }, [e.stylisPlugins]), r.createElement(ue.Provider, {\n value: u\n }, r.createElement(de.Provider, {\n value: l\n }, \"production\" !== process.env.NODE_ENV ? r.Children.only(e.children) : e.children));\n}\n\nvar ve = function () {\n function e(e, t) {\n var n = this;\n this.inject = function (e, t) {\n void 0 === t && (t = pe);\n var r = n.name + t.hash;\n e.hasNameForId(n.id, r) || e.insertRules(n.id, r, t(n.rules, r, \"@keyframes\"));\n }, this.toString = function () {\n return j(12, String(n.name));\n }, this.name = e, this.id = \"sc-keyframes-\" + e, this.rules = t;\n }\n\n return e.prototype.getName = function (e) {\n return void 0 === e && (e = pe), this.name + e.hash;\n }, e;\n}(),\n ge = /([A-Z])/,\n Se = /([A-Z])/g,\n we = /^ms-/,\n Ee = function Ee(e) {\n return \"-\" + e.toLowerCase();\n};\n\nfunction be(e) {\n return ge.test(e) ? e.replace(Se, Ee).replace(we, \"-ms-\") : e;\n}\n\nvar _e = function _e(e) {\n return null == e || !1 === e || \"\" === e;\n};\n\nfunction Ne(e, n, r, o) {\n if (Array.isArray(e)) {\n for (var s, i = [], a = 0, c = e.length; a < c; a += 1) {\n \"\" !== (s = Ne(e[a], n, r, o)) && (Array.isArray(s) ? i.push.apply(i, s) : i.push(s));\n }\n\n return i;\n }\n\n if (_e(e)) return \"\";\n if (N(e)) return \".\" + e.styledComponentId;\n\n if (b(e)) {\n if (\"function\" != typeof (l = e) || l.prototype && l.prototype.isReactComponent || !n) return e;\n var u = e(n);\n return \"production\" !== process.env.NODE_ENV && t(u) && console.warn(_(e) + \" is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\"), Ne(u, n, r, o);\n }\n\n var l;\n return e instanceof ve ? r ? (e.inject(r, o), e.getName(o)) : e : S(e) ? function e(t, n) {\n var r,\n o,\n s = [];\n\n for (var i in t) {\n t.hasOwnProperty(i) && !_e(t[i]) && (Array.isArray(t[i]) && t[i].isCss || b(t[i]) ? s.push(be(i) + \":\", t[i], \";\") : S(t[i]) ? s.push.apply(s, e(t[i], i)) : s.push(be(i) + \": \" + (r = i, null == (o = t[i]) || \"boolean\" == typeof o || \"\" === o ? \"\" : \"number\" != typeof o || 0 === o || r in f ? String(o).trim() : o + \"px\") + \";\"));\n }\n\n return n ? [n + \" {\"].concat(s, [\"}\"]) : s;\n }(e) : e.toString();\n}\n\nvar Ae = function Ae(e) {\n return Array.isArray(e) && (e.isCss = !0), e;\n};\n\nfunction Ce(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) {\n n[r - 1] = arguments[r];\n }\n\n return b(e) || S(e) ? Ae(Ne(g(w, [e].concat(n)))) : 0 === n.length && 1 === e.length && \"string\" == typeof e[0] ? e : Ae(Ne(g(e, n)));\n}\n\nvar Ie = /invalid hook call/i,\n Pe = new Set(),\n Oe = function Oe(e, t) {\n if (\"production\" !== process.env.NODE_ENV) {\n var n = \"The component \" + e + (t ? ' with the id of \"' + t + '\"' : \"\") + \" has been created dynamically.\\nYou may see this warning because you've called styled inside another component.\\nTo resolve this only create new StyledComponents outside of any render method and function component.\",\n r = console.error;\n\n try {\n var o = !0;\n console.error = function (e) {\n if (Ie.test(e)) o = !1, Pe.delete(n);else {\n for (var t = arguments.length, s = new Array(t > 1 ? t - 1 : 0), i = 1; i < t; i++) {\n s[i - 1] = arguments[i];\n }\n\n r.apply(void 0, [e].concat(s));\n }\n }, c(), o && !Pe.has(n) && (console.warn(n), Pe.add(n));\n } catch (e) {\n Ie.test(e.message) && Pe.delete(n);\n } finally {\n console.error = r;\n }\n }\n},\n Re = function Re(e, t, n) {\n return void 0 === n && (n = E), e.theme !== n.theme && e.theme || t || n.theme;\n},\n De = /[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g,\n je = /(^-|-$)/g;\n\nfunction Te(e) {\n return e.replace(De, \"-\").replace(je, \"\");\n}\n\nvar xe = function xe(e) {\n return ee(ne(e) >>> 0);\n};\n\nfunction ke(e) {\n return \"string\" == typeof e && (\"production\" === process.env.NODE_ENV || e.charAt(0) === e.charAt(0).toLowerCase());\n}\n\nvar Ve = function Ve(e) {\n return \"function\" == typeof e || \"object\" == typeof e && null !== e && !Array.isArray(e);\n},\n Be = function Be(e) {\n return \"__proto__\" !== e && \"constructor\" !== e && \"prototype\" !== e;\n};\n\nfunction ze(e, t, n) {\n var r = e[n];\n Ve(t) && Ve(r) ? Me(r, t) : e[n] = t;\n}\n\nfunction Me(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) {\n n[r - 1] = arguments[r];\n }\n\n for (var o = 0, s = n; o < s.length; o++) {\n var i = s[o];\n if (Ve(i)) for (var a in i) {\n Be(a) && ze(e, i[a], a);\n }\n }\n\n return e;\n}\n\nvar Ge = r.createContext(),\n Le = Ge.Consumer;\n\nfunction Fe(e) {\n var t = s(Ge),\n n = i(function () {\n return function (e, t) {\n if (!e) return j(14);\n\n if (b(e)) {\n var n = e(t);\n return \"production\" === process.env.NODE_ENV || null !== n && !Array.isArray(n) && \"object\" == typeof n ? n : j(7);\n }\n\n return Array.isArray(e) || \"object\" != typeof e ? j(8) : t ? v({}, t, {}, e) : e;\n }(e.theme, t);\n }, [e.theme, t]);\n return e.children ? r.createElement(Ge.Provider, {\n value: n\n }, e.children) : null;\n}\n\nvar Ye = {};\n\nfunction qe(e, t, n) {\n var o = N(e),\n i = !ke(e),\n a = t.attrs,\n c = void 0 === a ? w : a,\n d = t.componentId,\n h = void 0 === d ? function (e, t) {\n var n = \"string\" != typeof e ? \"sc\" : Te(e);\n Ye[n] = (Ye[n] || 0) + 1;\n var r = n + \"-\" + xe(\"5.3.3\" + n + Ye[n]);\n return t ? t + \"-\" + r : r;\n }(t.displayName, t.parentComponentId) : d,\n p = t.displayName,\n f = void 0 === p ? function (e) {\n return ke(e) ? \"styled.\" + e : \"Styled(\" + _(e) + \")\";\n }(e) : p,\n g = t.displayName && t.componentId ? Te(t.displayName) + \"-\" + t.componentId : t.componentId || h,\n S = o && e.attrs ? Array.prototype.concat(e.attrs, c).filter(Boolean) : c,\n A = t.shouldForwardProp;\n o && e.shouldForwardProp && (A = t.shouldForwardProp ? function (n, r, o) {\n return e.shouldForwardProp(n, r, o) && t.shouldForwardProp(n, r, o);\n } : e.shouldForwardProp);\n\n var C,\n I = new se(n, g, o ? e.componentStyle : void 0),\n P = I.isStatic && 0 === c.length,\n O = function O(e, t) {\n return function (e, t, n, r) {\n var o = e.attrs,\n i = e.componentStyle,\n a = e.defaultProps,\n c = e.foldedComponentIds,\n d = e.shouldForwardProp,\n h = e.styledComponentId,\n p = e.target;\n \"production\" !== process.env.NODE_ENV && l(h);\n\n var f = function (e, t, n) {\n void 0 === e && (e = E);\n var r = v({}, t, {\n theme: e\n }),\n o = {};\n return n.forEach(function (e) {\n var t,\n n,\n s,\n i = e;\n\n for (t in b(i) && (i = i(r)), i) {\n r[t] = o[t] = \"className\" === t ? (n = o[t], s = i[t], n && s ? n + \" \" + s : n || s) : i[t];\n }\n }), [r, o];\n }(Re(t, s(Ge), a) || E, t, o),\n y = f[0],\n g = f[1],\n S = function (e, t, n, r) {\n var o = fe(),\n s = me(),\n i = t ? e.generateAndInjectStyles(E, o, s) : e.generateAndInjectStyles(n, o, s);\n return \"production\" !== process.env.NODE_ENV && l(i), \"production\" !== process.env.NODE_ENV && !t && r && r(i), i;\n }(i, r, y, \"production\" !== process.env.NODE_ENV ? e.warnTooManyClasses : void 0),\n w = n,\n _ = g.$as || t.$as || g.as || t.as || p,\n N = ke(_),\n A = g !== t ? v({}, t, {}, g) : t,\n C = {};\n\n for (var I in A) {\n \"$\" !== I[0] && \"as\" !== I && (\"forwardedAs\" === I ? C.as = A[I] : (d ? d(I, m, _) : !N || m(I)) && (C[I] = A[I]));\n }\n\n return t.style && g.style !== t.style && (C.style = v({}, t.style, {}, g.style)), C.className = Array.prototype.concat(c, h, S !== h ? S : null, t.className, g.className).filter(Boolean).join(\" \"), C.ref = w, u(_, C);\n }(C, e, t, P);\n };\n\n return O.displayName = f, (C = r.forwardRef(O)).attrs = S, C.componentStyle = I, C.displayName = f, C.shouldForwardProp = A, C.foldedComponentIds = o ? Array.prototype.concat(e.foldedComponentIds, e.styledComponentId) : w, C.styledComponentId = g, C.target = o ? e.target : e, C.withComponent = function (e) {\n var r = t.componentId,\n o = function (e, t) {\n if (null == e) return {};\n var n,\n r,\n o = {},\n s = Object.keys(e);\n\n for (r = 0; r < s.length; r++) {\n n = s[r], t.indexOf(n) >= 0 || (o[n] = e[n]);\n }\n\n return o;\n }(t, [\"componentId\"]),\n s = r && r + \"-\" + (ke(e) ? e : Te(_(e)));\n\n return qe(e, v({}, o, {\n attrs: S,\n componentId: s\n }), n);\n }, Object.defineProperty(C, \"defaultProps\", {\n get: function get() {\n return this._foldedDefaultProps;\n },\n set: function set(t) {\n this._foldedDefaultProps = o ? Me({}, e.defaultProps, t) : t;\n }\n }), \"production\" !== process.env.NODE_ENV && (Oe(f, g), C.warnTooManyClasses = function (e, t) {\n var n = {},\n r = !1;\n return function (o) {\n if (!r && (n[o] = !0, Object.keys(n).length >= 200)) {\n var s = t ? ' with the id of \"' + t + '\"' : \"\";\n console.warn(\"Over 200 classes were generated for component \" + e + s + \".\\nConsider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n \"), r = !0, n = {};\n }\n };\n }(f, g)), C.toString = function () {\n return \".\" + C.styledComponentId;\n }, i && y(C, e, {\n attrs: !0,\n componentStyle: !0,\n displayName: !0,\n foldedComponentIds: !0,\n shouldForwardProp: !0,\n styledComponentId: !0,\n target: !0,\n withComponent: !0\n }), C;\n}\n\nvar He = function He(e) {\n return function e(t, r, o) {\n if (void 0 === o && (o = E), !n(r)) return j(1, String(r));\n\n var s = function s() {\n return t(r, o, Ce.apply(void 0, arguments));\n };\n\n return s.withConfig = function (n) {\n return e(t, r, v({}, o, {}, n));\n }, s.attrs = function (n) {\n return e(t, r, v({}, o, {\n attrs: Array.prototype.concat(o.attrs, n).filter(Boolean)\n }));\n }, s;\n }(qe, e);\n};\n\n[\"a\", \"abbr\", \"address\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"base\", \"bdi\", \"bdo\", \"big\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"cite\", \"code\", \"col\", \"colgroup\", \"data\", \"datalist\", \"dd\", \"del\", \"details\", \"dfn\", \"dialog\", \"div\", \"dl\", \"dt\", \"em\", \"embed\", \"fieldset\", \"figcaption\", \"figure\", \"footer\", \"form\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"iframe\", \"img\", \"input\", \"ins\", \"kbd\", \"keygen\", \"label\", \"legend\", \"li\", \"link\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meta\", \"meter\", \"nav\", \"noscript\", \"object\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"param\", \"picture\", \"pre\", \"progress\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"script\", \"section\", \"select\", \"small\", \"source\", \"span\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"title\", \"tr\", \"track\", \"u\", \"ul\", \"var\", \"video\", \"wbr\", \"circle\", \"clipPath\", \"defs\", \"ellipse\", \"foreignObject\", \"g\", \"image\", \"line\", \"linearGradient\", \"marker\", \"mask\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialGradient\", \"rect\", \"stop\", \"svg\", \"text\", \"textPath\", \"tspan\"].forEach(function (e) {\n He[e] = He(e);\n});\n\nvar $e = function () {\n function e(e, t) {\n this.rules = e, this.componentId = t, this.isStatic = re(e), Z.registerId(this.componentId + 1);\n }\n\n var t = e.prototype;\n return t.createStyles = function (e, t, n, r) {\n var o = r(Ne(this.rules, t, n, r).join(\"\"), \"\"),\n s = this.componentId + e;\n n.insertRules(s, s, o);\n }, t.removeStyles = function (e, t) {\n t.clearRules(this.componentId + e);\n }, t.renderStyles = function (e, t, n, r) {\n e > 2 && Z.registerId(this.componentId + e), this.removeStyles(e, n), this.createStyles(e, t, n, r);\n }, e;\n}();\n\nfunction We(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), o = 1; o < t; o++) {\n n[o - 1] = arguments[o];\n }\n\n var i = Ce.apply(void 0, [e].concat(n)),\n a = \"sc-global-\" + xe(JSON.stringify(i)),\n u = new $e(i, a);\n\n function l(e) {\n var t = fe(),\n n = me(),\n o = s(Ge),\n l = c(t.allocateGSInstance(a)).current;\n return \"production\" !== process.env.NODE_ENV && r.Children.count(e.children) && console.warn(\"The global style component \" + a + \" was given child JSX. createGlobalStyle does not render children.\"), \"production\" !== process.env.NODE_ENV && i.some(function (e) {\n return \"string\" == typeof e && -1 !== e.indexOf(\"@import\");\n }) && console.warn(\"Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical meta tag to the stylesheet, or simply embedding it manually in your index.html section for a simpler app.\"), t.server && h(l, e, t, o, n), d(function () {\n if (!t.server) return h(l, e, t, o, n), function () {\n return u.removeStyles(l, t);\n };\n }, [l, e, t, o, n]), null;\n }\n\n function h(e, t, n, r, o) {\n if (u.isStatic) u.renderStyles(e, O, n, o);else {\n var s = v({}, t, {\n theme: Re(t, r, l.defaultProps)\n });\n u.renderStyles(e, s, n, o);\n }\n }\n\n return \"production\" !== process.env.NODE_ENV && Oe(a), r.memo(l);\n}\n\nfunction Ue(e) {\n \"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");\n\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) {\n n[r - 1] = arguments[r];\n }\n\n var o = Ce.apply(void 0, [e].concat(n)).join(\"\"),\n s = xe(o);\n return new ve(s, o);\n}\n\nvar Je = function () {\n function e() {\n var e = this;\n this._emitSheetCSS = function () {\n var t = e.instance.toString();\n if (!t) return \"\";\n var n = q();\n return \"\";\n }, this.getStyleTags = function () {\n return e.sealed ? j(2) : e._emitSheetCSS();\n }, this.getStyleElement = function () {\n var t;\n if (e.sealed) return j(2);\n var n = ((t = {})[A] = \"\", t[\"data-styled-version\"] = \"5.3.3\", t.dangerouslySetInnerHTML = {\n __html: e.instance.toString()\n }, t),\n o = q();\n return o && (n.nonce = o), [r.createElement(\"style\", v({}, n, {\n key: \"sc-0-0\"\n }))];\n }, this.seal = function () {\n e.sealed = !0;\n }, this.instance = new Z({\n isServer: !0\n }), this.sealed = !1;\n }\n\n var t = e.prototype;\n return t.collectStyles = function (e) {\n return this.sealed ? j(2) : r.createElement(ye, {\n sheet: this.instance\n }, e);\n }, t.interleaveWithNodeStream = function (e) {\n return j(3);\n }, e;\n}(),\n Xe = function Xe(e) {\n var t = r.forwardRef(function (t, n) {\n var o = s(Ge),\n i = e.defaultProps,\n a = Re(t, o, i);\n return \"production\" !== process.env.NODE_ENV && void 0 === a && console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + _(e) + '\"'), r.createElement(e, v({}, t, {\n theme: a,\n ref: n\n }));\n });\n return y(t, e), t.displayName = \"WithTheme(\" + _(e) + \")\", t;\n},\n Ze = function Ze() {\n return s(Ge);\n},\n Ke = {\n StyleSheet: Z,\n masterSheet: he\n};\n\n\"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\"), \"production\" !== process.env.NODE_ENV && \"test\" !== process.env.NODE_ENV && \"undefined\" != typeof window && (window[\"__styled-components-init__\"] = window[\"__styled-components-init__\"] || 0, 1 === window[\"__styled-components-init__\"] && console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"), window[\"__styled-components-init__\"] += 1);\nexport default He;\nexport { Je as ServerStyleSheet, le as StyleSheetConsumer, ue as StyleSheetContext, ye as StyleSheetManager, Le as ThemeConsumer, Ge as ThemeContext, Fe as ThemeProvider, Ke as __PRIVATE__, We as createGlobalStyle, Ce as css, N as isStyledComponent, Ue as keyframes, Ze as useTheme, C as version, Xe as withTheme };","import assign from 'object-assign';\nexport var merge = function merge(a, b) {\n var result = assign({}, a, b);\n\n for (var key in a) {\n var _assign;\n\n if (!a[key] || typeof b[key] !== 'object') continue;\n assign(result, (_assign = {}, _assign[key] = assign(a[key], b[key]), _assign));\n }\n\n return result;\n}; // sort object-value responsive styles\n\nvar sort = function sort(obj) {\n var next = {};\n Object.keys(obj).sort(function (a, b) {\n return a.localeCompare(b, undefined, {\n numeric: true,\n sensitivity: 'base'\n });\n }).forEach(function (key) {\n next[key] = obj[key];\n });\n return next;\n};\n\nvar defaults = {\n breakpoints: [40, 52, 64].map(function (n) {\n return n + 'em';\n })\n};\n\nvar createMediaQuery = function createMediaQuery(n) {\n return \"@media screen and (min-width: \" + n + \")\";\n};\n\nvar getValue = function getValue(n, scale) {\n return get(scale, n, n);\n};\n\nexport var get = function get(obj, key, def, p, undef) {\n key = key && key.split ? key.split('.') : [key];\n\n for (p = 0; p < key.length; p++) {\n obj = obj ? obj[key[p]] : undef;\n }\n\n return obj === undef ? def : obj;\n};\nexport var createParser = function createParser(config) {\n var cache = {};\n\n var parse = function parse(props) {\n var styles = {};\n var shouldSort = false;\n var isCacheDisabled = props.theme && props.theme.disableStyledSystemCache;\n\n for (var key in props) {\n if (!config[key]) continue;\n var sx = config[key];\n var raw = props[key];\n var scale = get(props.theme, sx.scale, sx.defaults);\n\n if (typeof raw === 'object') {\n cache.breakpoints = !isCacheDisabled && cache.breakpoints || get(props.theme, 'breakpoints', defaults.breakpoints);\n\n if (Array.isArray(raw)) {\n cache.media = !isCacheDisabled && cache.media || [null].concat(cache.breakpoints.map(createMediaQuery));\n styles = merge(styles, parseResponsiveStyle(cache.media, sx, scale, raw, props));\n continue;\n }\n\n if (raw !== null) {\n styles = merge(styles, parseResponsiveObject(cache.breakpoints, sx, scale, raw, props));\n shouldSort = true;\n }\n\n continue;\n }\n\n assign(styles, sx(raw, scale, props));\n } // sort object-based responsive styles\n\n\n if (shouldSort) {\n styles = sort(styles);\n }\n\n return styles;\n };\n\n parse.config = config;\n parse.propNames = Object.keys(config);\n parse.cache = cache;\n var keys = Object.keys(config).filter(function (k) {\n return k !== 'config';\n });\n\n if (keys.length > 1) {\n keys.forEach(function (key) {\n var _createParser;\n\n parse[key] = createParser((_createParser = {}, _createParser[key] = config[key], _createParser));\n });\n }\n\n return parse;\n};\n\nvar parseResponsiveStyle = function parseResponsiveStyle(mediaQueries, sx, scale, raw, _props) {\n var styles = {};\n raw.slice(0, mediaQueries.length).forEach(function (value, i) {\n var media = mediaQueries[i];\n var style = sx(value, scale, _props);\n\n if (!media) {\n assign(styles, style);\n } else {\n var _assign2;\n\n assign(styles, (_assign2 = {}, _assign2[media] = assign({}, styles[media], style), _assign2));\n }\n });\n return styles;\n};\n\nvar parseResponsiveObject = function parseResponsiveObject(breakpoints, sx, scale, raw, _props) {\n var styles = {};\n\n for (var key in raw) {\n var breakpoint = breakpoints[key];\n var value = raw[key];\n var style = sx(value, scale, _props);\n\n if (!breakpoint) {\n assign(styles, style);\n } else {\n var _assign3;\n\n var media = createMediaQuery(breakpoint);\n assign(styles, (_assign3 = {}, _assign3[media] = assign({}, styles[media], style), _assign3));\n }\n }\n\n return styles;\n};\n\nexport var createStyleFunction = function createStyleFunction(_ref) {\n var properties = _ref.properties,\n property = _ref.property,\n scale = _ref.scale,\n _ref$transform = _ref.transform,\n transform = _ref$transform === void 0 ? getValue : _ref$transform,\n defaultScale = _ref.defaultScale;\n properties = properties || [property];\n\n var sx = function sx(value, scale, _props) {\n var result = {};\n var n = transform(value, scale, _props);\n if (n === null) return;\n properties.forEach(function (prop) {\n result[prop] = n;\n });\n return result;\n };\n\n sx.scale = scale;\n sx.defaults = defaultScale;\n return sx;\n}; // new v5 API\n\nexport var system = function system(args) {\n if (args === void 0) {\n args = {};\n }\n\n var config = {};\n Object.keys(args).forEach(function (key) {\n var conf = args[key];\n\n if (conf === true) {\n // shortcut definition\n config[key] = createStyleFunction({\n property: key,\n scale: key\n });\n return;\n }\n\n if (typeof conf === 'function') {\n config[key] = conf;\n return;\n }\n\n config[key] = createStyleFunction(conf);\n });\n var parser = createParser(config);\n return parser;\n};\nexport var compose = function compose() {\n var config = {};\n\n for (var _len = arguments.length, parsers = new Array(_len), _key = 0; _key < _len; _key++) {\n parsers[_key] = arguments[_key];\n }\n\n parsers.forEach(function (parser) {\n if (!parser || !parser.config) return;\n assign(config, parser.config);\n });\n var parser = createParser(config);\n return parser;\n};","import { system, get } from '@styled-system/core';\n\nvar isNumber = function isNumber(n) {\n return typeof n === 'number' && !isNaN(n);\n};\n\nvar getWidth = function getWidth(n, scale) {\n return get(scale, n, !isNumber(n) || n > 1 ? n : n * 100 + '%');\n};\n\nvar config = {\n width: {\n property: 'width',\n scale: 'sizes',\n transform: getWidth\n },\n height: {\n property: 'height',\n scale: 'sizes'\n },\n minWidth: {\n property: 'minWidth',\n scale: 'sizes'\n },\n minHeight: {\n property: 'minHeight',\n scale: 'sizes'\n },\n maxWidth: {\n property: 'maxWidth',\n scale: 'sizes'\n },\n maxHeight: {\n property: 'maxHeight',\n scale: 'sizes'\n },\n size: {\n properties: ['width', 'height'],\n scale: 'sizes'\n },\n overflow: true,\n overflowX: true,\n overflowY: true,\n display: true,\n verticalAlign: true\n};\nexport var layout = system(config);\nexport default layout;","import { system } from '@styled-system/core';\nvar config = {\n color: {\n property: 'color',\n scale: 'colors'\n },\n backgroundColor: {\n property: 'backgroundColor',\n scale: 'colors'\n },\n opacity: true\n};\nconfig.bg = config.backgroundColor;\nexport var color = system(config);\nexport default color;","import { system } from '@styled-system/core';\nvar defaults = {\n fontSizes: [12, 14, 16, 20, 24, 32, 48, 64, 72]\n};\nvar config = {\n fontFamily: {\n property: 'fontFamily',\n scale: 'fonts'\n },\n fontSize: {\n property: 'fontSize',\n scale: 'fontSizes',\n defaultScale: defaults.fontSizes\n },\n fontWeight: {\n property: 'fontWeight',\n scale: 'fontWeights'\n },\n lineHeight: {\n property: 'lineHeight',\n scale: 'lineHeights'\n },\n letterSpacing: {\n property: 'letterSpacing',\n scale: 'letterSpacings'\n },\n textAlign: true,\n fontStyle: true\n};\nexport var typography = system(config);\nexport default typography;","import { system } from '@styled-system/core';\nvar config = {\n alignItems: true,\n alignContent: true,\n justifyItems: true,\n justifyContent: true,\n flexWrap: true,\n flexDirection: true,\n // item\n flex: true,\n flexGrow: true,\n flexShrink: true,\n flexBasis: true,\n justifySelf: true,\n alignSelf: true,\n order: true\n};\nexport var flexbox = system(config);\nexport default flexbox;","import { system } from '@styled-system/core';\nvar defaults = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512]\n};\nvar config = {\n gridGap: {\n property: 'gridGap',\n scale: 'space',\n defaultScale: defaults.space\n },\n gridColumnGap: {\n property: 'gridColumnGap',\n scale: 'space',\n defaultScale: defaults.space\n },\n gridRowGap: {\n property: 'gridRowGap',\n scale: 'space',\n defaultScale: defaults.space\n },\n gridColumn: true,\n gridRow: true,\n gridAutoFlow: true,\n gridAutoColumns: true,\n gridAutoRows: true,\n gridTemplateColumns: true,\n gridTemplateRows: true,\n gridTemplateAreas: true,\n gridArea: true\n};\nexport var grid = system(config);\nexport default grid;","import { system } from '@styled-system/core';\nvar config = {\n border: {\n property: 'border',\n scale: 'borders'\n },\n borderWidth: {\n property: 'borderWidth',\n scale: 'borderWidths'\n },\n borderStyle: {\n property: 'borderStyle',\n scale: 'borderStyles'\n },\n borderColor: {\n property: 'borderColor',\n scale: 'colors'\n },\n borderRadius: {\n property: 'borderRadius',\n scale: 'radii'\n },\n borderTop: {\n property: 'borderTop',\n scale: 'borders'\n },\n borderTopLeftRadius: {\n property: 'borderTopLeftRadius',\n scale: 'radii'\n },\n borderTopRightRadius: {\n property: 'borderTopRightRadius',\n scale: 'radii'\n },\n borderRight: {\n property: 'borderRight',\n scale: 'borders'\n },\n borderBottom: {\n property: 'borderBottom',\n scale: 'borders'\n },\n borderBottomLeftRadius: {\n property: 'borderBottomLeftRadius',\n scale: 'radii'\n },\n borderBottomRightRadius: {\n property: 'borderBottomRightRadius',\n scale: 'radii'\n },\n borderLeft: {\n property: 'borderLeft',\n scale: 'borders'\n },\n borderX: {\n properties: ['borderLeft', 'borderRight'],\n scale: 'borders'\n },\n borderY: {\n properties: ['borderTop', 'borderBottom'],\n scale: 'borders'\n }\n};\nconfig.borderTopWidth = {\n property: 'borderTopWidth',\n scale: 'borderWidths'\n};\nconfig.borderTopColor = {\n property: 'borderTopColor',\n scale: 'colors'\n};\nconfig.borderTopStyle = {\n property: 'borderTopStyle',\n scale: 'borderStyles'\n};\nconfig.borderTopLeftRadius = {\n property: 'borderTopLeftRadius',\n scale: 'radii'\n};\nconfig.borderTopRightRadius = {\n property: 'borderTopRightRadius',\n scale: 'radii'\n};\nconfig.borderBottomWidth = {\n property: 'borderBottomWidth',\n scale: 'borderWidths'\n};\nconfig.borderBottomColor = {\n property: 'borderBottomColor',\n scale: 'colors'\n};\nconfig.borderBottomStyle = {\n property: 'borderBottomStyle',\n scale: 'borderStyles'\n};\nconfig.borderBottomLeftRadius = {\n property: 'borderBottomLeftRadius',\n scale: 'radii'\n};\nconfig.borderBottomRightRadius = {\n property: 'borderBottomRightRadius',\n scale: 'radii'\n};\nconfig.borderLeftWidth = {\n property: 'borderLeftWidth',\n scale: 'borderWidths'\n};\nconfig.borderLeftColor = {\n property: 'borderLeftColor',\n scale: 'colors'\n};\nconfig.borderLeftStyle = {\n property: 'borderLeftStyle',\n scale: 'borderStyles'\n};\nconfig.borderRightWidth = {\n property: 'borderRightWidth',\n scale: 'borderWidths'\n};\nconfig.borderRightColor = {\n property: 'borderRightColor',\n scale: 'colors'\n};\nconfig.borderRightStyle = {\n property: 'borderRightStyle',\n scale: 'borderStyles'\n};\nexport var border = system(config);\nexport default border;","import { system } from '@styled-system/core';\nvar config = {\n background: true,\n backgroundImage: true,\n backgroundSize: true,\n backgroundPosition: true,\n backgroundRepeat: true\n};\nconfig.bgImage = config.backgroundImage;\nconfig.bgSize = config.backgroundSize;\nconfig.bgPosition = config.backgroundPosition;\nconfig.bgRepeat = config.backgroundRepeat;\nexport var background = system(config);\nexport default background;","import { system } from '@styled-system/core';\nvar defaults = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512]\n};\nvar config = {\n position: true,\n zIndex: {\n property: 'zIndex',\n scale: 'zIndices'\n },\n top: {\n property: 'top',\n scale: 'space',\n defaultScale: defaults.space\n },\n right: {\n property: 'right',\n scale: 'space',\n defaultScale: defaults.space\n },\n bottom: {\n property: 'bottom',\n scale: 'space',\n defaultScale: defaults.space\n },\n left: {\n property: 'left',\n scale: 'space',\n defaultScale: defaults.space\n }\n};\nexport var position = system(config);\nexport default position;","import { get, system, compose } from '@styled-system/core';\nvar defaults = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512]\n};\n\nvar isNumber = function isNumber(n) {\n return typeof n === 'number' && !isNaN(n);\n};\n\nvar getMargin = function getMargin(n, scale) {\n if (!isNumber(n)) {\n return get(scale, n, n);\n }\n\n var isNegative = n < 0;\n var absolute = Math.abs(n);\n var value = get(scale, absolute, absolute);\n\n if (!isNumber(value)) {\n return isNegative ? '-' + value : value;\n }\n\n return value * (isNegative ? -1 : 1);\n};\n\nvar configs = {};\nconfigs.margin = {\n margin: {\n property: 'margin',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginTop: {\n property: 'marginTop',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginRight: {\n property: 'marginRight',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginBottom: {\n property: 'marginBottom',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginLeft: {\n property: 'marginLeft',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginX: {\n properties: ['marginLeft', 'marginRight'],\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginY: {\n properties: ['marginTop', 'marginBottom'],\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n }\n};\nconfigs.margin.m = configs.margin.margin;\nconfigs.margin.mt = configs.margin.marginTop;\nconfigs.margin.mr = configs.margin.marginRight;\nconfigs.margin.mb = configs.margin.marginBottom;\nconfigs.margin.ml = configs.margin.marginLeft;\nconfigs.margin.mx = configs.margin.marginX;\nconfigs.margin.my = configs.margin.marginY;\nconfigs.padding = {\n padding: {\n property: 'padding',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingTop: {\n property: 'paddingTop',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingRight: {\n property: 'paddingRight',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingBottom: {\n property: 'paddingBottom',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingLeft: {\n property: 'paddingLeft',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingX: {\n properties: ['paddingLeft', 'paddingRight'],\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingY: {\n properties: ['paddingTop', 'paddingBottom'],\n scale: 'space',\n defaultScale: defaults.space\n }\n};\nconfigs.padding.p = configs.padding.padding;\nconfigs.padding.pt = configs.padding.paddingTop;\nconfigs.padding.pr = configs.padding.paddingRight;\nconfigs.padding.pb = configs.padding.paddingBottom;\nconfigs.padding.pl = configs.padding.paddingLeft;\nconfigs.padding.px = configs.padding.paddingX;\nconfigs.padding.py = configs.padding.paddingY;\nexport var margin = system(configs.margin);\nexport var padding = system(configs.padding);\nexport var space = compose(margin, padding);\nexport default space;","import { system } from '@styled-system/core';\nexport var shadow = system({\n boxShadow: {\n property: 'boxShadow',\n scale: 'shadows'\n },\n textShadow: {\n property: 'textShadow',\n scale: 'shadows'\n }\n});\nexport default shadow;","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n} // based on https://github.com/developit/dlv\n\n\nexport var get = function get(obj, key, def, p, undef) {\n key = key && key.split ? key.split('.') : [key];\n\n for (p = 0; p < key.length; p++) {\n obj = obj ? obj[key[p]] : undef;\n }\n\n return obj === undef ? def : obj;\n};\nvar defaultBreakpoints = [40, 52, 64].map(function (n) {\n return n + 'em';\n});\nvar defaultTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fontSizes: [12, 14, 16, 20, 24, 32, 48, 64, 72]\n};\nvar aliases = {\n bg: 'backgroundColor',\n m: 'margin',\n mt: 'marginTop',\n mr: 'marginRight',\n mb: 'marginBottom',\n ml: 'marginLeft',\n mx: 'marginX',\n my: 'marginY',\n p: 'padding',\n pt: 'paddingTop',\n pr: 'paddingRight',\n pb: 'paddingBottom',\n pl: 'paddingLeft',\n px: 'paddingX',\n py: 'paddingY'\n};\nvar multiples = {\n marginX: ['marginLeft', 'marginRight'],\n marginY: ['marginTop', 'marginBottom'],\n paddingX: ['paddingLeft', 'paddingRight'],\n paddingY: ['paddingTop', 'paddingBottom'],\n size: ['width', 'height']\n};\nvar scales = {\n color: 'colors',\n backgroundColor: 'colors',\n borderColor: 'colors',\n margin: 'space',\n marginTop: 'space',\n marginRight: 'space',\n marginBottom: 'space',\n marginLeft: 'space',\n marginX: 'space',\n marginY: 'space',\n padding: 'space',\n paddingTop: 'space',\n paddingRight: 'space',\n paddingBottom: 'space',\n paddingLeft: 'space',\n paddingX: 'space',\n paddingY: 'space',\n top: 'space',\n right: 'space',\n bottom: 'space',\n left: 'space',\n gridGap: 'space',\n gridColumnGap: 'space',\n gridRowGap: 'space',\n gap: 'space',\n columnGap: 'space',\n rowGap: 'space',\n fontFamily: 'fonts',\n fontSize: 'fontSizes',\n fontWeight: 'fontWeights',\n lineHeight: 'lineHeights',\n letterSpacing: 'letterSpacings',\n border: 'borders',\n borderTop: 'borders',\n borderRight: 'borders',\n borderBottom: 'borders',\n borderLeft: 'borders',\n borderWidth: 'borderWidths',\n borderStyle: 'borderStyles',\n borderRadius: 'radii',\n borderTopRightRadius: 'radii',\n borderTopLeftRadius: 'radii',\n borderBottomRightRadius: 'radii',\n borderBottomLeftRadius: 'radii',\n borderTopWidth: 'borderWidths',\n borderTopColor: 'colors',\n borderTopStyle: 'borderStyles',\n borderBottomWidth: 'borderWidths',\n borderBottomColor: 'colors',\n borderBottomStyle: 'borderStyles',\n borderLeftWidth: 'borderWidths',\n borderLeftColor: 'colors',\n borderLeftStyle: 'borderStyles',\n borderRightWidth: 'borderWidths',\n borderRightColor: 'colors',\n borderRightStyle: 'borderStyles',\n outlineColor: 'colors',\n boxShadow: 'shadows',\n textShadow: 'shadows',\n zIndex: 'zIndices',\n width: 'sizes',\n minWidth: 'sizes',\n maxWidth: 'sizes',\n height: 'sizes',\n minHeight: 'sizes',\n maxHeight: 'sizes',\n flexBasis: 'sizes',\n size: 'sizes',\n // svg\n fill: 'colors',\n stroke: 'colors'\n};\n\nvar positiveOrNegative = function positiveOrNegative(scale, value) {\n if (typeof value !== 'number' || value >= 0) {\n return get(scale, value, value);\n }\n\n var absolute = Math.abs(value);\n var n = get(scale, absolute, absolute);\n if (typeof n === 'string') return '-' + n;\n return n * -1;\n};\n\nvar transforms = ['margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'top', 'bottom', 'left', 'right'].reduce(function (acc, curr) {\n var _extends2;\n\n return _extends({}, acc, (_extends2 = {}, _extends2[curr] = positiveOrNegative, _extends2));\n}, {});\nexport var responsive = function responsive(styles) {\n return function (theme) {\n var next = {};\n var breakpoints = get(theme, 'breakpoints', defaultBreakpoints);\n var mediaQueries = [null].concat(breakpoints.map(function (n) {\n return \"@media screen and (min-width: \" + n + \")\";\n }));\n\n for (var key in styles) {\n var value = typeof styles[key] === 'function' ? styles[key](theme) : styles[key];\n if (value == null) continue;\n\n if (!Array.isArray(value)) {\n next[key] = value;\n continue;\n }\n\n for (var i = 0; i < value.slice(0, mediaQueries.length).length; i++) {\n var media = mediaQueries[i];\n\n if (!media) {\n next[key] = value[i];\n continue;\n }\n\n next[media] = next[media] || {};\n if (value[i] == null) continue;\n next[media][key] = value[i];\n }\n }\n\n return next;\n };\n};\nexport var css = function css(args) {\n return function (props) {\n if (props === void 0) {\n props = {};\n }\n\n var theme = _extends({}, defaultTheme, {}, props.theme || props);\n\n var result = {};\n var obj = typeof args === 'function' ? args(theme) : args;\n var styles = responsive(obj)(theme);\n\n for (var key in styles) {\n var x = styles[key];\n var val = typeof x === 'function' ? x(theme) : x;\n\n if (key === 'variant') {\n var variant = css(get(theme, val))(theme);\n result = _extends({}, result, {}, variant);\n continue;\n }\n\n if (val && typeof val === 'object') {\n result[key] = css(val)(theme);\n continue;\n }\n\n var prop = get(aliases, key, key);\n var scaleName = get(scales, prop);\n var scale = get(theme, scaleName, get(theme, prop, {}));\n var transform = get(transforms, prop, get);\n var value = transform(scale, val, val);\n\n if (multiples[prop]) {\n var dirs = multiples[prop];\n\n for (var i = 0; i < dirs.length; i++) {\n result[dirs[i]] = value;\n }\n } else {\n result[prop] = value;\n }\n }\n\n return result;\n };\n};\nexport default css;","import { get, createParser } from '@styled-system/core';\nimport css from '@styled-system/css';\nexport var variant = function variant(_ref) {\n var _config;\n\n var scale = _ref.scale,\n _ref$prop = _ref.prop,\n prop = _ref$prop === void 0 ? 'variant' : _ref$prop,\n _ref$variants = _ref.variants,\n variants = _ref$variants === void 0 ? {} : _ref$variants,\n key = _ref.key;\n var sx;\n\n if (Object.keys(variants).length) {\n sx = function sx(value, scale, props) {\n return css(get(scale, value, null))(props.theme);\n };\n } else {\n sx = function sx(value, scale) {\n return get(scale, value, null);\n };\n }\n\n sx.scale = scale || key;\n sx.defaults = variants;\n var config = (_config = {}, _config[prop] = sx, _config);\n var parser = createParser(config);\n return parser;\n};\nexport default variant;\nexport var buttonStyle = variant({\n key: 'buttons'\n});\nexport var textStyle = variant({\n key: 'textStyles',\n prop: 'textStyle'\n});\nexport var colorStyle = variant({\n key: 'colorStyles',\n prop: 'colors'\n});","import { createStyleFunction, createParser } from '@styled-system/core'; // v4 api shims\n\nimport layout from '@styled-system/layout';\nimport color from '@styled-system/color';\nimport typography from '@styled-system/typography';\nimport flexbox from '@styled-system/flexbox';\nimport grid from '@styled-system/grid';\nimport border from '@styled-system/border';\nimport background from '@styled-system/background';\nimport position from '@styled-system/position';\nexport { get, createParser, createStyleFunction, compose, system } from '@styled-system/core';\nexport { margin, padding, space } from '@styled-system/space';\nexport { color } from '@styled-system/color';\nexport { layout } from '@styled-system/layout';\nexport { typography } from '@styled-system/typography';\nexport { flexbox } from '@styled-system/flexbox';\nexport { border } from '@styled-system/border';\nexport { background } from '@styled-system/background';\nexport { position } from '@styled-system/position';\nexport { grid } from '@styled-system/grid';\nexport { shadow } from '@styled-system/shadow';\nexport { default as boxShadow, default as textShadow } from '@styled-system/shadow';\nexport { variant, buttonStyle, textStyle, colorStyle } from '@styled-system/variant';\nvar width = layout.width,\n height = layout.height,\n minWidth = layout.minWidth,\n minHeight = layout.minHeight,\n maxWidth = layout.maxWidth,\n maxHeight = layout.maxHeight,\n size = layout.size,\n verticalAlign = layout.verticalAlign,\n display = layout.display,\n overflow = layout.overflow,\n overflowX = layout.overflowX,\n overflowY = layout.overflowY;\nvar opacity = color.opacity;\nvar fontSize = typography.fontSize,\n fontFamily = typography.fontFamily,\n fontWeight = typography.fontWeight,\n lineHeight = typography.lineHeight,\n textAlign = typography.textAlign,\n fontStyle = typography.fontStyle,\n letterSpacing = typography.letterSpacing;\nvar alignItems = flexbox.alignItems,\n alignContent = flexbox.alignContent,\n justifyItems = flexbox.justifyItems,\n justifyContent = flexbox.justifyContent,\n flexWrap = flexbox.flexWrap,\n flexDirection = flexbox.flexDirection,\n flex = flexbox.flex,\n flexGrow = flexbox.flexGrow,\n flexShrink = flexbox.flexShrink,\n flexBasis = flexbox.flexBasis,\n justifySelf = flexbox.justifySelf,\n alignSelf = flexbox.alignSelf,\n order = flexbox.order;\nvar gridGap = grid.gridGap,\n gridColumnGap = grid.gridColumnGap,\n gridRowGap = grid.gridRowGap,\n gridColumn = grid.gridColumn,\n gridRow = grid.gridRow,\n gridAutoFlow = grid.gridAutoFlow,\n gridAutoColumns = grid.gridAutoColumns,\n gridAutoRows = grid.gridAutoRows,\n gridTemplateColumns = grid.gridTemplateColumns,\n gridTemplateRows = grid.gridTemplateRows,\n gridTemplateAreas = grid.gridTemplateAreas,\n gridArea = grid.gridArea;\nvar borderWidth = border.borderWidth,\n borderStyle = border.borderStyle,\n borderColor = border.borderColor,\n borderTop = border.borderTop,\n borderRight = border.borderRight,\n borderBottom = border.borderBottom,\n borderLeft = border.borderLeft,\n borderRadius = border.borderRadius;\nvar backgroundImage = background.backgroundImage,\n backgroundSize = background.backgroundSize,\n backgroundPosition = background.backgroundPosition,\n backgroundRepeat = background.backgroundRepeat;\nvar zIndex = position.zIndex,\n top = position.top,\n right = position.right,\n bottom = position.bottom,\n left = position.left;\nexport { default as borders } from '@styled-system/border';\nexport { width, height, minWidth, minHeight, maxWidth, maxHeight, size, verticalAlign, display, overflow, overflowX, overflowY // color\n, opacity // typography\n, fontSize, fontFamily, fontWeight, lineHeight, textAlign, fontStyle, letterSpacing // flexbox\n, alignItems, alignContent, justifyItems, justifyContent, flexWrap, flexDirection, flex, flexGrow, flexShrink, flexBasis, justifySelf, alignSelf, order // grid\n, gridGap, gridColumnGap, gridRowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea // border\n, borderWidth, borderStyle, borderColor, borderTop, borderRight, borderBottom, borderLeft, borderRadius // background\n, backgroundImage, backgroundSize, backgroundPosition, backgroundRepeat // position\n, zIndex, top, right, bottom, left }; // v4 style API shim\n\nexport var style = function style(_ref) {\n var prop = _ref.prop,\n cssProperty = _ref.cssProperty,\n alias = _ref.alias,\n key = _ref.key,\n transformValue = _ref.transformValue,\n scale = _ref.scale,\n properties = _ref.properties;\n var config = {};\n config[prop] = createStyleFunction({\n properties: properties,\n property: cssProperty || prop,\n scale: key,\n defaultScale: scale,\n transform: transformValue\n });\n if (alias) config[alias] = config[prop];\n var parse = createParser(config);\n return parse;\n};","/* Web Font Loader v1.6.28 - (c) Adobe Systems, Google. License: Apache 2.0 */\n(function () {\n function aa(a, b, c) {\n return a.call.apply(a.bind, arguments);\n }\n\n function ba(a, b, c) {\n if (!a) throw Error();\n\n if (2 < arguments.length) {\n var d = Array.prototype.slice.call(arguments, 2);\n return function () {\n var c = Array.prototype.slice.call(arguments);\n Array.prototype.unshift.apply(c, d);\n return a.apply(b, c);\n };\n }\n\n return function () {\n return a.apply(b, arguments);\n };\n }\n\n function p(a, b, c) {\n p = Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf(\"native code\") ? aa : ba;\n return p.apply(null, arguments);\n }\n\n var q = Date.now || function () {\n return +new Date();\n };\n\n function ca(a, b) {\n this.a = a;\n this.o = b || a;\n this.c = this.o.document;\n }\n\n var da = !!window.FontFace;\n\n function t(a, b, c, d) {\n b = a.c.createElement(b);\n if (c) for (var e in c) {\n c.hasOwnProperty(e) && (\"style\" == e ? b.style.cssText = c[e] : b.setAttribute(e, c[e]));\n }\n d && b.appendChild(a.c.createTextNode(d));\n return b;\n }\n\n function u(a, b, c) {\n a = a.c.getElementsByTagName(b)[0];\n a || (a = document.documentElement);\n a.insertBefore(c, a.lastChild);\n }\n\n function v(a) {\n a.parentNode && a.parentNode.removeChild(a);\n }\n\n function w(a, b, c) {\n b = b || [];\n c = c || [];\n\n for (var d = a.className.split(/\\s+/), e = 0; e < b.length; e += 1) {\n for (var f = !1, g = 0; g < d.length; g += 1) {\n if (b[e] === d[g]) {\n f = !0;\n break;\n }\n }\n\n f || d.push(b[e]);\n }\n\n b = [];\n\n for (e = 0; e < d.length; e += 1) {\n f = !1;\n\n for (g = 0; g < c.length; g += 1) {\n if (d[e] === c[g]) {\n f = !0;\n break;\n }\n }\n\n f || b.push(d[e]);\n }\n\n a.className = b.join(\" \").replace(/\\s+/g, \" \").replace(/^\\s+|\\s+$/, \"\");\n }\n\n function y(a, b) {\n for (var c = a.className.split(/\\s+/), d = 0, e = c.length; d < e; d++) {\n if (c[d] == b) return !0;\n }\n\n return !1;\n }\n\n function ea(a) {\n return a.o.location.hostname || a.a.location.hostname;\n }\n\n function z(a, b, c) {\n function d() {\n m && e && f && (m(g), m = null);\n }\n\n b = t(a, \"link\", {\n rel: \"stylesheet\",\n href: b,\n media: \"all\"\n });\n var e = !1,\n f = !0,\n g = null,\n m = c || null;\n da ? (b.onload = function () {\n e = !0;\n d();\n }, b.onerror = function () {\n e = !0;\n g = Error(\"Stylesheet failed to load\");\n d();\n }) : setTimeout(function () {\n e = !0;\n d();\n }, 0);\n u(a, \"head\", b);\n }\n\n function A(a, b, c, d) {\n var e = a.c.getElementsByTagName(\"head\")[0];\n\n if (e) {\n var f = t(a, \"script\", {\n src: b\n }),\n g = !1;\n\n f.onload = f.onreadystatechange = function () {\n g || this.readyState && \"loaded\" != this.readyState && \"complete\" != this.readyState || (g = !0, c && c(null), f.onload = f.onreadystatechange = null, \"HEAD\" == f.parentNode.tagName && e.removeChild(f));\n };\n\n e.appendChild(f);\n setTimeout(function () {\n g || (g = !0, c && c(Error(\"Script load timeout\")));\n }, d || 5E3);\n return f;\n }\n\n return null;\n }\n\n ;\n\n function B() {\n this.a = 0;\n this.c = null;\n }\n\n function C(a) {\n a.a++;\n return function () {\n a.a--;\n D(a);\n };\n }\n\n function E(a, b) {\n a.c = b;\n D(a);\n }\n\n function D(a) {\n 0 == a.a && a.c && (a.c(), a.c = null);\n }\n\n ;\n\n function F(a) {\n this.a = a || \"-\";\n }\n\n F.prototype.c = function (a) {\n for (var b = [], c = 0; c < arguments.length; c++) {\n b.push(arguments[c].replace(/[\\W_]+/g, \"\").toLowerCase());\n }\n\n return b.join(this.a);\n };\n\n function G(a, b) {\n this.c = a;\n this.f = 4;\n this.a = \"n\";\n var c = (b || \"n4\").match(/^([nio])([1-9])$/i);\n c && (this.a = c[1], this.f = parseInt(c[2], 10));\n }\n\n function fa(a) {\n return H(a) + \" \" + (a.f + \"00\") + \" 300px \" + I(a.c);\n }\n\n function I(a) {\n var b = [];\n a = a.split(/,\\s*/);\n\n for (var c = 0; c < a.length; c++) {\n var d = a[c].replace(/['\"]/g, \"\");\n -1 != d.indexOf(\" \") || /^\\d/.test(d) ? b.push(\"'\" + d + \"'\") : b.push(d);\n }\n\n return b.join(\",\");\n }\n\n function J(a) {\n return a.a + a.f;\n }\n\n function H(a) {\n var b = \"normal\";\n \"o\" === a.a ? b = \"oblique\" : \"i\" === a.a && (b = \"italic\");\n return b;\n }\n\n function ga(a) {\n var b = 4,\n c = \"n\",\n d = null;\n a && ((d = a.match(/(normal|oblique|italic)/i)) && d[1] && (c = d[1].substr(0, 1).toLowerCase()), (d = a.match(/([1-9]00|normal|bold)/i)) && d[1] && (/bold/i.test(d[1]) ? b = 7 : /[1-9]00/.test(d[1]) && (b = parseInt(d[1].substr(0, 1), 10))));\n return c + b;\n }\n\n ;\n\n function ha(a, b) {\n this.c = a;\n this.f = a.o.document.documentElement;\n this.h = b;\n this.a = new F(\"-\");\n this.j = !1 !== b.events;\n this.g = !1 !== b.classes;\n }\n\n function ia(a) {\n a.g && w(a.f, [a.a.c(\"wf\", \"loading\")]);\n K(a, \"loading\");\n }\n\n function L(a) {\n if (a.g) {\n var b = y(a.f, a.a.c(\"wf\", \"active\")),\n c = [],\n d = [a.a.c(\"wf\", \"loading\")];\n b || c.push(a.a.c(\"wf\", \"inactive\"));\n w(a.f, c, d);\n }\n\n K(a, \"inactive\");\n }\n\n function K(a, b, c) {\n if (a.j && a.h[b]) if (c) a.h[b](c.c, J(c));else a.h[b]();\n }\n\n ;\n\n function ja() {\n this.c = {};\n }\n\n function ka(a, b, c) {\n var d = [],\n e;\n\n for (e in b) {\n if (b.hasOwnProperty(e)) {\n var f = a.c[e];\n f && d.push(f(b[e], c));\n }\n }\n\n return d;\n }\n\n ;\n\n function M(a, b) {\n this.c = a;\n this.f = b;\n this.a = t(this.c, \"span\", {\n \"aria-hidden\": \"true\"\n }, this.f);\n }\n\n function N(a) {\n u(a.c, \"body\", a.a);\n }\n\n function O(a) {\n return \"display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:\" + I(a.c) + \";\" + (\"font-style:\" + H(a) + \";font-weight:\" + (a.f + \"00\") + \";\");\n }\n\n ;\n\n function P(a, b, c, d, e, f) {\n this.g = a;\n this.j = b;\n this.a = d;\n this.c = c;\n this.f = e || 3E3;\n this.h = f || void 0;\n }\n\n P.prototype.start = function () {\n var a = this.c.o.document,\n b = this,\n c = q(),\n d = new Promise(function (d, e) {\n function f() {\n q() - c >= b.f ? e() : a.fonts.load(fa(b.a), b.h).then(function (a) {\n 1 <= a.length ? d() : setTimeout(f, 25);\n }, function () {\n e();\n });\n }\n\n f();\n }),\n e = null,\n f = new Promise(function (a, d) {\n e = setTimeout(d, b.f);\n });\n Promise.race([f, d]).then(function () {\n e && (clearTimeout(e), e = null);\n b.g(b.a);\n }, function () {\n b.j(b.a);\n });\n };\n\n function Q(a, b, c, d, e, f, g) {\n this.v = a;\n this.B = b;\n this.c = c;\n this.a = d;\n this.s = g || \"BESbswy\";\n this.f = {};\n this.w = e || 3E3;\n this.u = f || null;\n this.m = this.j = this.h = this.g = null;\n this.g = new M(this.c, this.s);\n this.h = new M(this.c, this.s);\n this.j = new M(this.c, this.s);\n this.m = new M(this.c, this.s);\n a = new G(this.a.c + \",serif\", J(this.a));\n a = O(a);\n this.g.a.style.cssText = a;\n a = new G(this.a.c + \",sans-serif\", J(this.a));\n a = O(a);\n this.h.a.style.cssText = a;\n a = new G(\"serif\", J(this.a));\n a = O(a);\n this.j.a.style.cssText = a;\n a = new G(\"sans-serif\", J(this.a));\n a = O(a);\n this.m.a.style.cssText = a;\n N(this.g);\n N(this.h);\n N(this.j);\n N(this.m);\n }\n\n var R = {\n D: \"serif\",\n C: \"sans-serif\"\n },\n S = null;\n\n function T() {\n if (null === S) {\n var a = /AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))/.exec(window.navigator.userAgent);\n S = !!a && (536 > parseInt(a[1], 10) || 536 === parseInt(a[1], 10) && 11 >= parseInt(a[2], 10));\n }\n\n return S;\n }\n\n Q.prototype.start = function () {\n this.f.serif = this.j.a.offsetWidth;\n this.f[\"sans-serif\"] = this.m.a.offsetWidth;\n this.A = q();\n U(this);\n };\n\n function la(a, b, c) {\n for (var d in R) {\n if (R.hasOwnProperty(d) && b === a.f[R[d]] && c === a.f[R[d]]) return !0;\n }\n\n return !1;\n }\n\n function U(a) {\n var b = a.g.a.offsetWidth,\n c = a.h.a.offsetWidth,\n d;\n (d = b === a.f.serif && c === a.f[\"sans-serif\"]) || (d = T() && la(a, b, c));\n d ? q() - a.A >= a.w ? T() && la(a, b, c) && (null === a.u || a.u.hasOwnProperty(a.a.c)) ? V(a, a.v) : V(a, a.B) : ma(a) : V(a, a.v);\n }\n\n function ma(a) {\n setTimeout(p(function () {\n U(this);\n }, a), 50);\n }\n\n function V(a, b) {\n setTimeout(p(function () {\n v(this.g.a);\n v(this.h.a);\n v(this.j.a);\n v(this.m.a);\n b(this.a);\n }, a), 0);\n }\n\n ;\n\n function W(a, b, c) {\n this.c = a;\n this.a = b;\n this.f = 0;\n this.m = this.j = !1;\n this.s = c;\n }\n\n var X = null;\n\n W.prototype.g = function (a) {\n var b = this.a;\n b.g && w(b.f, [b.a.c(\"wf\", a.c, J(a).toString(), \"active\")], [b.a.c(\"wf\", a.c, J(a).toString(), \"loading\"), b.a.c(\"wf\", a.c, J(a).toString(), \"inactive\")]);\n K(b, \"fontactive\", a);\n this.m = !0;\n na(this);\n };\n\n W.prototype.h = function (a) {\n var b = this.a;\n\n if (b.g) {\n var c = y(b.f, b.a.c(\"wf\", a.c, J(a).toString(), \"active\")),\n d = [],\n e = [b.a.c(\"wf\", a.c, J(a).toString(), \"loading\")];\n c || d.push(b.a.c(\"wf\", a.c, J(a).toString(), \"inactive\"));\n w(b.f, d, e);\n }\n\n K(b, \"fontinactive\", a);\n na(this);\n };\n\n function na(a) {\n 0 == --a.f && a.j && (a.m ? (a = a.a, a.g && w(a.f, [a.a.c(\"wf\", \"active\")], [a.a.c(\"wf\", \"loading\"), a.a.c(\"wf\", \"inactive\")]), K(a, \"active\")) : L(a.a));\n }\n\n ;\n\n function oa(a) {\n this.j = a;\n this.a = new ja();\n this.h = 0;\n this.f = this.g = !0;\n }\n\n oa.prototype.load = function (a) {\n this.c = new ca(this.j, a.context || this.j);\n this.g = !1 !== a.events;\n this.f = !1 !== a.classes;\n pa(this, new ha(this.c, a), a);\n };\n\n function qa(a, b, c, d, e) {\n var f = 0 == --a.h;\n (a.f || a.g) && setTimeout(function () {\n var a = e || null,\n m = d || null || {};\n if (0 === c.length && f) L(b.a);else {\n b.f += c.length;\n f && (b.j = f);\n var h,\n l = [];\n\n for (h = 0; h < c.length; h++) {\n var k = c[h],\n n = m[k.c],\n r = b.a,\n x = k;\n r.g && w(r.f, [r.a.c(\"wf\", x.c, J(x).toString(), \"loading\")]);\n K(r, \"fontloading\", x);\n r = null;\n if (null === X) if (window.FontFace) {\n var x = /Gecko.*Firefox\\/(\\d+)/.exec(window.navigator.userAgent),\n xa = /OS X.*Version\\/10\\..*Safari/.exec(window.navigator.userAgent) && /Apple/.exec(window.navigator.vendor);\n X = x ? 42 < parseInt(x[1], 10) : xa ? !1 : !0;\n } else X = !1;\n X ? r = new P(p(b.g, b), p(b.h, b), b.c, k, b.s, n) : r = new Q(p(b.g, b), p(b.h, b), b.c, k, b.s, a, n);\n l.push(r);\n }\n\n for (h = 0; h < l.length; h++) {\n l[h].start();\n }\n }\n }, 0);\n }\n\n function pa(a, b, c) {\n var d = [],\n e = c.timeout;\n ia(b);\n var d = ka(a.a, c, a.c),\n f = new W(a.c, b, e);\n a.h = d.length;\n b = 0;\n\n for (c = d.length; b < c; b++) {\n d[b].load(function (b, d, c) {\n qa(a, f, b, d, c);\n });\n }\n }\n\n ;\n\n function ra(a, b) {\n this.c = a;\n this.a = b;\n }\n\n ra.prototype.load = function (a) {\n function b() {\n if (f[\"__mti_fntLst\" + d]) {\n var c = f[\"__mti_fntLst\" + d](),\n e = [],\n h;\n if (c) for (var l = 0; l < c.length; l++) {\n var k = c[l].fontfamily;\n void 0 != c[l].fontStyle && void 0 != c[l].fontWeight ? (h = c[l].fontStyle + c[l].fontWeight, e.push(new G(k, h))) : e.push(new G(k));\n }\n a(e);\n } else setTimeout(function () {\n b();\n }, 50);\n }\n\n var c = this,\n d = c.a.projectId,\n e = c.a.version;\n\n if (d) {\n var f = c.c.o;\n A(this.c, (c.a.api || \"https://fast.fonts.net/jsapi\") + \"/\" + d + \".js\" + (e ? \"?v=\" + e : \"\"), function (e) {\n e ? a([]) : (f[\"__MonotypeConfiguration__\" + d] = function () {\n return c.a;\n }, b());\n }).id = \"__MonotypeAPIScript__\" + d;\n } else a([]);\n };\n\n function sa(a, b) {\n this.c = a;\n this.a = b;\n }\n\n sa.prototype.load = function (a) {\n var b,\n c,\n d = this.a.urls || [],\n e = this.a.families || [],\n f = this.a.testStrings || {},\n g = new B();\n b = 0;\n\n for (c = d.length; b < c; b++) {\n z(this.c, d[b], C(g));\n }\n\n var m = [];\n b = 0;\n\n for (c = e.length; b < c; b++) {\n if (d = e[b].split(\":\"), d[1]) for (var h = d[1].split(\",\"), l = 0; l < h.length; l += 1) {\n m.push(new G(d[0], h[l]));\n } else m.push(new G(d[0]));\n }\n\n E(g, function () {\n a(m, f);\n });\n };\n\n function ta(a, b) {\n a ? this.c = a : this.c = ua;\n this.a = [];\n this.f = [];\n this.g = b || \"\";\n }\n\n var ua = \"https://fonts.googleapis.com/css\";\n\n function va(a, b) {\n for (var c = b.length, d = 0; d < c; d++) {\n var e = b[d].split(\":\");\n 3 == e.length && a.f.push(e.pop());\n var f = \"\";\n 2 == e.length && \"\" != e[1] && (f = \":\");\n a.a.push(e.join(f));\n }\n }\n\n function wa(a) {\n if (0 == a.a.length) throw Error(\"No fonts to load!\");\n if (-1 != a.c.indexOf(\"kit=\")) return a.c;\n\n for (var b = a.a.length, c = [], d = 0; d < b; d++) {\n c.push(a.a[d].replace(/ /g, \"+\"));\n }\n\n b = a.c + \"?family=\" + c.join(\"%7C\");\n 0 < a.f.length && (b += \"&subset=\" + a.f.join(\",\"));\n 0 < a.g.length && (b += \"&text=\" + encodeURIComponent(a.g));\n return b;\n }\n\n ;\n\n function ya(a) {\n this.f = a;\n this.a = [];\n this.c = {};\n }\n\n var za = {\n latin: \"BESbswy\",\n \"latin-ext\": \"\\xE7\\xF6\\xFC\\u011F\\u015F\",\n cyrillic: \"\\u0439\\u044F\\u0416\",\n greek: \"\\u03B1\\u03B2\\u03A3\",\n khmer: \"\\u1780\\u1781\\u1782\",\n Hanuman: \"\\u1780\\u1781\\u1782\"\n },\n Aa = {\n thin: \"1\",\n extralight: \"2\",\n \"extra-light\": \"2\",\n ultralight: \"2\",\n \"ultra-light\": \"2\",\n light: \"3\",\n regular: \"4\",\n book: \"4\",\n medium: \"5\",\n \"semi-bold\": \"6\",\n semibold: \"6\",\n \"demi-bold\": \"6\",\n demibold: \"6\",\n bold: \"7\",\n \"extra-bold\": \"8\",\n extrabold: \"8\",\n \"ultra-bold\": \"8\",\n ultrabold: \"8\",\n black: \"9\",\n heavy: \"9\",\n l: \"3\",\n r: \"4\",\n b: \"7\"\n },\n Ba = {\n i: \"i\",\n italic: \"i\",\n n: \"n\",\n normal: \"n\"\n },\n Ca = /^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;\n\n function Da(a) {\n for (var b = a.f.length, c = 0; c < b; c++) {\n var d = a.f[c].split(\":\"),\n e = d[0].replace(/\\+/g, \" \"),\n f = [\"n4\"];\n\n if (2 <= d.length) {\n var g;\n var m = d[1];\n g = [];\n if (m) for (var m = m.split(\",\"), h = m.length, l = 0; l < h; l++) {\n var k;\n k = m[l];\n\n if (k.match(/^[\\w-]+$/)) {\n var n = Ca.exec(k.toLowerCase());\n if (null == n) k = \"\";else {\n k = n[2];\n k = null == k || \"\" == k ? \"n\" : Ba[k];\n n = n[1];\n if (null == n || \"\" == n) n = \"4\";else var r = Aa[n],\n n = r ? r : isNaN(n) ? \"4\" : n.substr(0, 1);\n k = [k, n].join(\"\");\n }\n } else k = \"\";\n\n k && g.push(k);\n }\n 0 < g.length && (f = g);\n 3 == d.length && (d = d[2], g = [], d = d ? d.split(\",\") : g, 0 < d.length && (d = za[d[0]]) && (a.c[e] = d));\n }\n\n a.c[e] || (d = za[e]) && (a.c[e] = d);\n\n for (d = 0; d < f.length; d += 1) {\n a.a.push(new G(e, f[d]));\n }\n }\n }\n\n ;\n\n function Ea(a, b) {\n this.c = a;\n this.a = b;\n }\n\n var Fa = {\n Arimo: !0,\n Cousine: !0,\n Tinos: !0\n };\n\n Ea.prototype.load = function (a) {\n var b = new B(),\n c = this.c,\n d = new ta(this.a.api, this.a.text),\n e = this.a.families;\n va(d, e);\n var f = new ya(e);\n Da(f);\n z(c, wa(d), C(b));\n E(b, function () {\n a(f.a, f.c, Fa);\n });\n };\n\n function Ga(a, b) {\n this.c = a;\n this.a = b;\n }\n\n Ga.prototype.load = function (a) {\n var b = this.a.id,\n c = this.c.o;\n b ? A(this.c, (this.a.api || \"https://use.typekit.net\") + \"/\" + b + \".js\", function (b) {\n if (b) a([]);else if (c.Typekit && c.Typekit.config && c.Typekit.config.fn) {\n b = c.Typekit.config.fn;\n\n for (var e = [], f = 0; f < b.length; f += 2) {\n for (var g = b[f], m = b[f + 1], h = 0; h < m.length; h++) {\n e.push(new G(g, m[h]));\n }\n }\n\n try {\n c.Typekit.load({\n events: !1,\n classes: !1,\n async: !0\n });\n } catch (l) {}\n\n a(e);\n }\n }, 2E3) : a([]);\n };\n\n function Ha(a, b) {\n this.c = a;\n this.f = b;\n this.a = [];\n }\n\n Ha.prototype.load = function (a) {\n var b = this.f.id,\n c = this.c.o,\n d = this;\n b ? (c.__webfontfontdeckmodule__ || (c.__webfontfontdeckmodule__ = {}), c.__webfontfontdeckmodule__[b] = function (b, c) {\n for (var g = 0, m = c.fonts.length; g < m; ++g) {\n var h = c.fonts[g];\n d.a.push(new G(h.name, ga(\"font-weight:\" + h.weight + \";font-style:\" + h.style)));\n }\n\n a(d.a);\n }, A(this.c, (this.f.api || \"https://f.fontdeck.com/s/css/js/\") + ea(this.c) + \"/\" + b + \".js\", function (b) {\n b && a([]);\n })) : a([]);\n };\n\n var Y = new oa(window);\n\n Y.a.c.custom = function (a, b) {\n return new sa(b, a);\n };\n\n Y.a.c.fontdeck = function (a, b) {\n return new Ha(b, a);\n };\n\n Y.a.c.monotype = function (a, b) {\n return new ra(b, a);\n };\n\n Y.a.c.typekit = function (a, b) {\n return new Ga(b, a);\n };\n\n Y.a.c.google = function (a, b) {\n return new Ea(b, a);\n };\n\n var Z = {\n load: p(Y.load, Y)\n };\n \"function\" === typeof define && define.amd ? define(function () {\n return Z;\n }) : \"undefined\" !== typeof module && module.exports ? module.exports = Z : (window.WebFont = Z, window.WebFontConfig && Y.load(window.WebFontConfig));\n})();","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var call = Function.prototype.call;\n\nmodule.exports = call.bind ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = bind && bind.bind(call, call);\n\nmodule.exports = bind ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.20.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2022 Denis Pushkarev (zloirock.ru)'\n});\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-hypot -- required for testing\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.es/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, forced: BUGGY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n hypot: function hypot(value1, value2) {\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * sqrt(sum);\n }\n});\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigate = exports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nvar _utils = require(\"@gatsbyjs/reach-router/lib/utils\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\nvar _excluded = [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"];\n\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + (base !== null && base !== void 0 && base.endsWith(\"/\") ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nvar isLocalLink = function isLocalLink(path) {\n return path && !path.startsWith(\"http://\") && !path.startsWith(\"https://\") && !path.startsWith(\"//\");\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n return (0, _utils.resolve)(path, current);\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n return isAbsolutePath(path) ? withPrefix(path) : absolutify(path, relativeTo);\n};\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(el);\n io.disconnect();\n cb();\n }\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nfunction GatsbyLinkLocationWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Location, null, function (_ref2) {\n var location = _ref2.location;\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, {\n _location: location\n }));\n });\n}\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref3) {\n var isPartiallyCurrent = _ref3.isPartiallyCurrent,\n isCurrent = _ref3.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto._prefetch = function _prefetch() {\n var currentPath = window.location.pathname; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname;\n }\n\n var rewrittenPath = rewriteLinkPath(this.props.to, currentPath);\n var newPathName = (0, _parsePath.parsePath)(rewrittenPath).pathname; // Prefech is used to speed up next navigations. When you use it on the current navigation,\n // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete\n\n if (currentPath !== newPathName) {\n ___loader.enqueue(newPathName);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Preserve non IO functionality if no support\n if (this.props.to !== prevProps.to && !this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Preserve non IO functionality if no support\n if (!this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && this.props.innerRef.hasOwnProperty(\"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function () {\n _this2._prefetch();\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n _location = _this$props._location,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);\n\n if (process.env.NODE_ENV !== \"production\" && !isLocalLink(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = rewriteLinkPath(to, _location.pathname);\n\n if (!isLocalLink(prefixedTo)) {\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n }\n\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n ___loader.hovering((0, _parsePath.parsePath)(prefixedTo).pathname);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n\n var isCurrent = encodeURI(prefixedTo) === _location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate(rewriteLinkPath(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;","\"use strict\";\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { extend, Button as __Button } from 'elemental-react';\nvar _Button = function (_a) {\n var label = _a.label, children = _a.children, props = __rest(_a, [\"label\", \"children\"]);\n return (_jsx(__Button, __assign({ outlined: false, label: (label && typeof label === 'string') ? label.toUpperCase() : label }, props, { children: (children && typeof children === 'string') ? children.toUpperCase() : children }), void 0));\n};\nvar BaseButton = extend(_Button, function () { return ({\n m: 2,\n px: '20px',\n borderRadius: 2,\n bg: 'btn.bg',\n height: 36,\n color: 'white',\n fontSize: 16,\n lineHeight: 20,\n fontFamily: 'Roboto Mono',\n fontWeight: 'bold',\n letterSpacing: 1,\n}); });\nexport default BaseButton;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Box } from 'elemental-react';\n// const DetailsBase = styled(Box)`\n// & > summary {\n// list-style: none;\n// }\n// & > summary::-webkit-details-marker {\n// display: none;\n// }\n// `;\nvar Details = function (props) { return (_jsx(Box, __assign({ as: \"details\" }, props), void 0)); };\nDetails.displayName = 'Details';\nexport default Details;\n","import { extend } from 'elemental-react';\nimport BaseButton from './BaseButton';\nvar DefaultButton = extend(BaseButton, function () { return ({\n color: 'black',\n ':hover': {\n bg: 'btn.hoverBg',\n },\n ':focus': {\n bg: 'btn.focusBg',\n },\n ':disabled': {\n bg: 'btn.disabledBg',\n color: 'btn.disabledText', // FIXME: elemental-react bug, we need to move this into context state that can be accessed by