{"version":3,"sources":["../node_modules/react/index.js","../node_modules/fbjs/lib/invariant.js","../node_modules/react/jsx-runtime.js","../node_modules/react-native-web/dist/exports/StyleSheet/StyleSheet.js","../node_modules/react-native-web/dist/exports/StyleSheet/index.js","../node_modules/react-native-web/dist/exports/View/index.js","../node_modules/fbjs/lib/ExecutionEnvironment.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedHelper.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedNode.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedValue.js","../node_modules/react-native-web/dist/modules/forwardedProps/index.js","../node_modules/react-native-web/dist/modules/setValueForStyles/dangerousStyleValue.js","../node_modules/react-native-web/dist/modules/setValueForStyles/index.js","../node_modules/react-native-web/dist/exports/UIManager/index.js","../node_modules/react-native-web/dist/exports/createElement/index.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedWithChildren.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedInterpolation.js","../index.ts","../node_modules/react-native-web/dist/modules/useMergeRefs/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@emotion/react/dist/emotion-element-99289b21.browser.esm.js","../node_modules/react-native-web/dist/exports/Platform/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/react-native-web/dist/exports/StyleSheet/constants.js","../node_modules/react-native-web/dist/exports/Dimensions/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/normalizeValueWithProperty.js","../node_modules/@emotion/primitives-core/dist/emotion-primitives-core.browser.esm.js","../node_modules/@emotion/native/dist/emotion-native.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/redux/es/redux.js","../node_modules/redux-thunk/es/index.js","../../src/utils/errors.ts","../../src/utils/common.ts","../../src/types/types-internal.ts","../../src/utils/plugins.ts","../../src/core/scope.ts","../../src/core/finalize.ts","../../src/core/proxy.ts","../../src/core/immerClass.ts","../../src/core/current.ts","../../src/immer.ts","../../src/utils/env.ts","../../src/context.js","../../src/hooks.js","../../src/constants.js","../../src/helpers.js","../../src/lib.js","../../src/create-reducer.js","../../src/persistence.js","../../src/thunks.js","../../src/listeners.js","../../src/computed-properties.js","../../src/effects.js","../../src/extract-data-from-model.js","../../src/actions.js","../../src/create-store.js","../../src/provider.js","../node_modules/@babel/runtime/helpers/objectSpread2.js","../node_modules/react-dom/index.js","../node_modules/react-native-web/dist/exports/findNodeHandle/index.js","../node_modules/react-native-web/dist/exports/render/index.js","../node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js","../node_modules/react-native-web/dist/exports/NativeModules/index.js","../node_modules/react-native-web/dist/exports/AccessibilityInfo/index.js","../node_modules/react-native-web/dist/exports/Alert/index.js","../node_modules/react-native-web/dist/vendor/react-native/deepDiffer/index.js","../node_modules/react-native-web/dist/vendor/react-native/Batchinator/index.js","../node_modules/react-native-web/dist/exports/RefreshControl/index.js","../node_modules/react-native-web/dist/modules/TextInputState/index.js","../node_modules/react-native-web/dist/modules/dismissKeyboard/index.js","../node_modules/react-native-web/dist/modules/ScrollResponder/index.js","../node_modules/react-native-web/dist/exports/ScrollView/ScrollViewBase.js","../node_modules/react-native-web/dist/exports/ScrollView/index.js","../node_modules/react-native-web/dist/vendor/react-native/ViewabilityHelper/index.js","../node_modules/react-native-web/dist/vendor/react-native/infoLog/index.js","../node_modules/react-native-web/dist/vendor/react-native/VirtualizeUtils/index.js","../node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/VirtualizedListContext.js","../node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js","../node_modules/react-native-web/dist/vendor/react-native/FlatList/index.js","../node_modules/react-native-web/dist/exports/FlatList/index.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedEvent.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedTransform.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedStyle.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedProps.js","../node_modules/react-native-web/dist/vendor/react-native/Utilities/setAndForwardRef.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/createAnimatedComponent.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedFlatList.js","../node_modules/react-native-web/dist/modules/AssetRegistry/index.js","../node_modules/react-native-web/dist/modules/ImageLoader/index.js","../node_modules/react-native-web/dist/exports/PixelRatio/index.js","../node_modules/react-native-web/dist/exports/Image/index.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedImage.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedScrollView.js","../node_modules/react-native-web/dist/vendor/react-native/VirtualizedSectionList/index.js","../node_modules/react-native-web/dist/vendor/react-native/SectionList/index.js","../node_modules/react-native-web/dist/exports/SectionList/index.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedSectionList.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedText.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedView.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedAddition.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedDivision.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedModulo.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedMultiplication.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedSubtraction.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedTracking.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedImplementation.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedMock.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/Animated.js","../node_modules/react-native-web/dist/exports/Animated/index.js","../node_modules/react-native-web/dist/exports/Appearance/index.js","../node_modules/react-native-web/dist/exports/AppRegistry/AppContainer.js","../node_modules/react-native-web/dist/exports/AppRegistry/renderApplication.js","../node_modules/react-native-web/dist/exports/AppRegistry/index.js","../node_modules/react-native-web/dist/exports/AppState/index.js","../node_modules/react-native-web/dist/exports/BackHandler/index.js","../node_modules/react-native-web/dist/exports/Clipboard/index.js","../node_modules/react-native-web/dist/exports/DeviceInfo/index.js","../node_modules/react-native-web/dist/exports/Keyboard/index.js","../node_modules/react-native-web/dist/vendor/react-native/LayoutAnimation/index.js","../node_modules/react-native-web/dist/exports/LayoutAnimation/index.js","../node_modules/react-native-web/dist/exports/NativeEventEmitter/index.js","../node_modules/react-native-web/dist/vendor/react-native/TouchHistoryMath/index.js","../node_modules/react-native-web/dist/vendor/react-native/PanResponder/index.js","../node_modules/react-native-web/dist/exports/PanResponder/index.js","../node_modules/react-native-web/dist/exports/Share/index.js","../node_modules/react-native-web/dist/exports/Vibration/index.js","../node_modules/react-native-web/dist/exports/ActivityIndicator/index.js","../node_modules/react-native-web/dist/exports/CheckBox/index.js","../node_modules/react-native-web/dist/exports/ImageBackground/index.js","../node_modules/react-native-web/dist/exports/KeyboardAvoidingView/index.js","../node_modules/react-native-web/dist/exports/Modal/ModalPortal.js","../node_modules/react-native-web/dist/exports/Modal/ModalAnimation.js","../node_modules/react-native-web/dist/exports/Modal/ModalContent.js","../node_modules/react-native-web/dist/exports/Modal/ModalFocusTrap.js","../node_modules/react-native-web/dist/exports/Modal/index.js","../node_modules/react-native-web/dist/exports/Picker/index.js","../node_modules/react-native-web/dist/exports/Picker/PickerItem.js","../node_modules/react-native-web/dist/modules/createEventHandle/index.js","../node_modules/react-native-web/dist/modules/modality/index.js","../node_modules/react-native-web/dist/modules/useEvent/index.js","../node_modules/react-native-web/dist/modules/useHover/index.js","../node_modules/react-native-web/dist/exports/Pressable/index.js","../node_modules/react-native-web/dist/exports/ProgressBar/index.js","../node_modules/react-native-web/dist/exports/SafeAreaView/index.js","../node_modules/react-native-web/dist/exports/StatusBar/index.js","../node_modules/react-native-web/dist/exports/Switch/index.js","../node_modules/react-native-web/dist/exports/TextInput/index.js","../node_modules/react-native-web/dist/vendor/react-native/PooledClass/index.js","../node_modules/react-native-web/dist/exports/Touchable/BoundingDimensions.js","../node_modules/react-native-web/dist/exports/Touchable/Position.js","../node_modules/react-native-web/dist/exports/Touchable/index.js","../node_modules/react-native-web/dist/exports/TouchableHighlight/index.js","../node_modules/react-native-web/dist/modules/UnimplementedView/index.js","../node_modules/react-native-web/dist/exports/TouchableNativeFeedback/index.js","../node_modules/react-native-web/dist/exports/TouchableWithoutFeedback/index.js","../node_modules/react-native-web/dist/exports/VirtualizedList/index.js","../node_modules/react-native-web/dist/exports/YellowBox/index.js","../node_modules/react-native-web/dist/exports/LogBox/index.js","../node_modules/react-native-web/dist/exports/DrawerLayoutAndroid/index.js","../node_modules/react-native-web/dist/exports/InputAccessoryView/index.js","../node_modules/react-native-web/dist/exports/ToastAndroid/index.js","../node_modules/react-native-web/dist/exports/PermissionsAndroid/index.js","../node_modules/react-native-web/dist/exports/Settings/index.js","../node_modules/react-native-web/dist/exports/Systrace/index.js","../node_modules/react-native-web/dist/exports/TVEventHandler/index.js","../node_modules/react-native-web/dist/exports/DeviceEventEmitter/index.js","../node_modules/react-native-web/dist/exports/useColorScheme/index.js","../node_modules/react-native-web/dist/exports/useWindowDimensions/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/css.js","../node_modules/react-native-web/dist/modules/requestIdleCallback/index.js","../node_modules/react-native-web/dist/exports/InteractionManager/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/react-native-web/dist/modules/useLayoutEffect/index.js","../node_modules/react-native-web/dist/vendor/react-native/emitter/EventEmitter.js","../node_modules/react-native-web/dist/vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter.js","../node_modules/react-native-web/dist/modules/pick/index.js","../node_modules/react-native-web/dist/modules/usePlatformMethods/index.js","../node_modules/react-native-web/dist/modules/usePressEvents/PressResponder.js","../node_modules/react-native-web/dist/modules/usePressEvents/index.js","../node_modules/qrcode/lib/core/utils.js","../node_modules/qrcode/lib/core/mode.js","../node_modules/react-native-web/dist/exports/I18nManager/index.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedValueXY.js","../node_modules/react-native-web/dist/exports/StyleSheet/flattenStyle.js","../node_modules/react-native-web/dist/exports/Text/TextAncestorContext.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/webpack/buildin/global.js","../node_modules/qrcode/lib/utils/typedarray-buffer.js","../node_modules/react-native-web/dist/exports/Text/index.js","../node_modules/normalize-css-color/index.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/animations/Animation.js","../node_modules/react-native-web/dist/modules/useElementLayout/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/createCompileableStyle.js","../node_modules/react-native-web/dist/exports/StyleSheet/createOrderedCSSStyleSheet.js","../node_modules/react-native-web/dist/modules/flattenArray/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/i18nStyle.js","../node_modules/react-native-web/dist/exports/StyleSheet/createReactDOMStyle.js","../node_modules/react-native-web/dist/vendor/hash/index.js","../node_modules/react-native-web/dist/modules/prefixStyles/static.js","../node_modules/react-native-web/dist/modules/prefixStyles/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/compile.js","../node_modules/react-native-web/dist/exports/StyleSheet/initialRules.js","../node_modules/react-native-web/dist/exports/StyleSheet/modality.js","../node_modules/react-native-web/dist/exports/StyleSheet/createStyleResolver.js","../node_modules/react-native-web/dist/exports/StyleSheet/styleResolver.js","../node_modules/react-native-web/dist/exports/StyleSheet/createCSSStyleSheet.js","../node_modules/react-native-web/dist/modules/useResponderEvents/ResponderEventTypes.js","../node_modules/react-native-web/dist/modules/useResponderEvents/ResponderTouchHistoryStore.js","../node_modules/react-native-web/dist/modules/useResponderEvents/createResponderEvent.js","../node_modules/react-native-web/dist/modules/useResponderEvents/utils.js","../node_modules/react-native-web/dist/modules/isSelectionValid/index.js","../node_modules/react-native-web/dist/modules/useResponderEvents/ResponderSystem.js","../node_modules/react-native-web/dist/modules/useResponderEvents/index.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/isDisabled.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAriaRole.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAccessibilityComponent.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/react-native-web/dist/modules/multiplyStyleLengthValue/index.js","../node_modules/react-native-web/dist/modules/getBoundingClientRect/index.js","../node_modules/react-native-hyperlink/dist/index.js","../node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/css-in-js-utils/lib/isPrefixedValue.js","../node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/bezier.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/Easing.js","../node_modules/react-native-web/dist/exports/Easing/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/ReactNativePropRegistry.js","../node_modules/react-native-web/dist/modules/unitlessNumbers/index.js","../node_modules/react-native-web/dist/modules/useStable/index.js","../node_modules/object-assign/index.js","../node_modules/react-native-web/dist/exports/processColor/index.js","../node_modules/react-native-web/dist/exports/TouchableOpacity/index.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/react-native-web/dist/modules/createDOMProps/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/resolveShadowValue.js","../node_modules/react-native-web/dist/vendor/react-native/TurboModule/TurboModuleRegistry.js","../node_modules/react-native-web/dist/vendor/react-native/NativeEventEmitter/index.js","../node_modules/react-native-web/dist/modules/mergeRefs/index.js","../node_modules/react-native-web/dist/vendor/react-native/emitter/_EmitterSubscription.js","../node_modules/react-native-web/dist/vendor/react-native/emitter/_EventSubscription.js","../node_modules/react-native-web/dist/vendor/react-native/emitter/_EventSubscriptionVendor.js","../node_modules/react-native-web/dist/vendor/react-native/emitter/_EventEmitter.js","../node_modules/react-native-web/dist/modules/isWebColor/index.js","../node_modules/react-native-web/dist/modules/normalizeColor/index.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/isarray/index.js","../node_modules/qrcode/lib/core/error-correction-level.js","../node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js","../node_modules/@emotion/react/isolated-hoist-non-react-statics-do-not-use-this-in-your-code/dist/emotion-react-isolated-hoist-non-react-statics-do-not-use-this-in-your-code.browser.esm.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hyphenate-style-name/index.js","../node_modules/fbjs/lib/warning.js","../../src/Enum.js","../../src/Utility.js","../../src/Tokenizer.js","../../src/Parser.js","../../src/Prefixer.js","../../src/Serializer.js","../../src/Middleware.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/animations/SpringAnimation.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/SpringConfig.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/animations/TimingAnimation.js","../node_modules/bech32/dist/index.js","../node_modules/inline-style-prefixer/lib/utils/capitalizeString.js","../node_modules/prop-types/index.js","../node_modules/react-native-web/dist/exports/Linking/index.js","../node_modules/react-native-web/dist/exports/Button/index.js","../node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/qrcode/lib/core/error-correction-code.js","../node_modules/qrcode/lib/core/version-check.js","../node_modules/qrcode/lib/core/regex.js","../node_modules/qrcode/lib/renderer/utils.js","../node_modules/css-to-react-native/index.js","../node_modules/inline-style-prefixer/lib/createPrefixer.js","../node_modules/inline-style-prefixer/lib/plugins/backgroundClip.js","../node_modules/inline-style-prefixer/lib/plugins/crossFade.js","../node_modules/inline-style-prefixer/lib/plugins/cursor.js","../node_modules/inline-style-prefixer/lib/plugins/filter.js","../node_modules/inline-style-prefixer/lib/plugins/flex.js","../node_modules/inline-style-prefixer/lib/plugins/flexboxIE.js","../node_modules/inline-style-prefixer/lib/plugins/flexboxOld.js","../node_modules/inline-style-prefixer/lib/plugins/gradient.js","../node_modules/inline-style-prefixer/lib/plugins/grid.js","../node_modules/inline-style-prefixer/lib/plugins/imageSet.js","../node_modules/inline-style-prefixer/lib/plugins/logical.js","../node_modules/inline-style-prefixer/lib/plugins/position.js","../node_modules/inline-style-prefixer/lib/plugins/sizing.js","../node_modules/inline-style-prefixer/lib/plugins/transition.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedTurboModule.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedModule.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/animations/DecayAnimation.js","../node_modules/create-react-class/index.js","../node_modules/react-native-web/dist/vendor/react-native/FillRateHelper/index.js","../node_modules/qrcode/lib/browser.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/react-native-qrcode-svg/src/index.js","../node_modules/react-native-qrcode-svg/src/transformMatrixIntoPath.js","../node_modules/react-native-qrcode-svg/src/genMatrix.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/postcss-value-parser/lib/index.js","../node_modules/postcss-value-parser/lib/parse.js","../node_modules/postcss-value-parser/lib/walk.js","../node_modules/postcss-value-parser/lib/stringify.js","../node_modules/postcss-value-parser/lib/unit.js","../node_modules/camelize/index.js","../node_modules/css-color-keywords/index.js","../node_modules/react-is/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/inline-style-prefixer/lib/utils/prefixProperty.js","../node_modules/inline-style-prefixer/lib/utils/prefixValue.js","../node_modules/inline-style-prefixer/lib/utils/addNewValuesOnly.js","../node_modules/inline-style-prefixer/lib/utils/isObject.js","../node_modules/css-in-js-utils/lib/hyphenateProperty.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/fbjs/lib/emptyFunction.js","../node_modules/create-react-class/factory.js","../ReactNativeSVG.web.ts","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../SvgTouchableMixin.ts","../resolve.ts","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/qrcode/lib/can-promise.js","../node_modules/qrcode/lib/core/qrcode.js","../node_modules/qrcode/lib/core/bit-buffer.js","../node_modules/qrcode/lib/core/bit-matrix.js","../node_modules/qrcode/lib/core/alignment-pattern.js","../node_modules/qrcode/lib/core/finder-pattern.js","../node_modules/qrcode/lib/core/mask-pattern.js","../node_modules/qrcode/lib/core/reed-solomon-encoder.js","../node_modules/qrcode/lib/core/polynomial.js","../node_modules/qrcode/lib/core/galois-field.js","../node_modules/node-libs-browser/node_modules/buffer/index.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/node-libs-browser/node_modules/isarray/index.js","../node_modules/qrcode/lib/core/version.js","../node_modules/qrcode/lib/core/format-info.js","../node_modules/qrcode/lib/core/segments.js","../node_modules/qrcode/lib/core/numeric-data.js","../node_modules/qrcode/lib/core/alphanumeric-data.js","../node_modules/qrcode/lib/core/byte-data.js","../node_modules/qrcode/lib/core/kanji-data.js","../node_modules/dijkstrajs/dijkstra.js","../node_modules/qrcode/lib/renderer/canvas.js","../node_modules/qrcode/lib/renderer/svg-tag.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/mdurl/index.js","../node_modules/mdurl/encode.js","../node_modules/mdurl/decode.js","../node_modules/mdurl/format.js","../node_modules/mdurl/parse.js","../node_modules/linkify-it/index.js","../node_modules/linkify-it/lib/re.js","../node_modules/uc.micro/properties/Any/regex.js","../node_modules/uc.micro/categories/Cc/regex.js","../node_modules/uc.micro/categories/Z/regex.js","../node_modules/uc.micro/categories/P/regex.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/date-fns/esm/compareAsc/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/isLastDayOfMonth/index.js","../node_modules/date-fns/esm/differenceInMonths/index.js","../node_modules/date-fns/esm/differenceInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/roundingMethods/index.js","../node_modules/date-fns/esm/differenceInSeconds/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/_lib/cloneObject/index.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/formatDistance/index.js"],"names":["module","exports","require","validateFormat","format","condition","_len","arguments","length","args","Array","_key","error","undefined","Error","argIndex","replace","String","name","framesToPop","absoluteFillObject","position","left","right","top","bottom","StyleSheet","absoluteFill","ReactNativePropRegistry","register","compose","style1","style2","create","styles","result","Object","keys","forEach","key","id","flatten","flattenStyle","hairlineWidth","canUseDOM","window","__REACT_DEVTOOLS_GLOBAL_HOOK__","resolveRNStyle","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","forwardPropsList","forwardedProps","href","lang","onScroll","onWheel","pointerEvents","View","React","props","forwardedRef","hrefAttrs","onLayout","onMoveShouldSetResponder","onMoveShouldSetResponderCapture","onResponderEnd","onResponderGrant","onResponderMove","onResponderReject","onResponderRelease","onResponderStart","onResponderTerminate","onResponderTerminationRequest","onScrollShouldSetResponder","onScrollShouldSetResponderCapture","onSelectionChangeShouldSetResponder","onSelectionChangeShouldSetResponderCapture","onStartShouldSetResponder","onStartShouldSetResponderCapture","hasTextAncestor","TextAncestorContext","hostRef","useElementLayout","useResponderEvents","component","style","inline","supportedProps","pick","pickProps","classList","download","rel","charAt","platformMethodsRef","usePlatformMethods","setRef","useMergeRefs","ref","createElement","displayName","css","view","alignItems","border","boxSizing","display","flexBasis","flexDirection","flexShrink","margin","minHeight","minWidth","padding","zIndex","document","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","isInWorker","nativeEventEmitter","NativeAnimatedModule","Platform","OS","global","RN$Bridgeless","NativeAnimatedTurboModule","NativeAnimatedNonTurboModule","__nativeAnimatedNodeTagCount","__nativeAnimationIdCount","waitingForQueuedOperations","Set","queueOperations","queue","API","getValue","tag","saveValueCallback","invariant","setWaitingForIdentifier","add","unsetWaitingForIdentifier","delete","size","disableQueue","startOperationBatch","q","l","finishOperationBatch","queueOperation","fn","createAnimatedNode","config","startListeningToAnimatedNodeValue","stopListeningToAnimatedNodeValue","connectAnimatedNodes","parentTag","childTag","disconnectAnimatedNodes","startAnimatingNode","animationId","nodeTag","endCallback","stopAnimation","setAnimatedNodeValue","setAnimatedNodeOffset","offset","flattenAnimatedNodeOffset","extractAnimatedNodeOffset","connectAnimatedNodeToView","viewTag","disconnectAnimatedNodeFromView","restoreDefaultValues","dropAnimatedNode","addAnimatedEventToView","eventName","eventMapping","removeAnimatedEventFromView","animatedNodeTag","SUPPORTED_STYLES","opacity","transform","borderRadius","borderBottomEndRadius","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStartRadius","borderTopEndRadius","borderTopLeftRadius","borderTopRightRadius","borderTopStartRadius","elevation","shadowOpacity","shadowRadius","scaleX","scaleY","translateX","translateY","SUPPORTED_TRANSFORMS","scale","rotate","rotateX","rotateY","rotateZ","perspective","SUPPORTED_INTERPOLATION_PARAMS","inputRange","outputRange","extrapolate","extrapolateRight","extrapolateLeft","generateNewAnimationId","_warnedMissingNativeAnimated","shouldUseNativeDriver","useNativeDriver","console","warn","addWhitelistedStyleProp","prop","addWhitelistedTransformProp","addWhitelistedInterpolationParam","param","validateStyles","hasOwnProperty","validateTransform","configs","property","validateInterpolation","_key2","generateNewNodeTag","assertNativeAnimatedModule","transformDataType","test","parseFloat","Math","PI","NativeEventEmitter","NativeAnimatedAPI","NativeAnimatedHelper","_uniqueId","AnimatedNode","_proto","prototype","this","_listeners","__attach","__detach","__isNative","__nativeTag","__getValue","__getAnimatedValue","__addChild","child","__removeChild","__getChildren","__makeNative","hasListeners","_startListeningToNativeValueUpdates","addListener","callback","removeListener","_stopListeningForNativeValueUpdates","removeAllListeners","_this","__nativeAnimatedValueListener","__shouldUpdateListenersForNewNativeTag","__getNativeTag","data","_onAnimatedValueUpdateReceived","__callListeners","remove","_this$__nativeTag","nativeTag","__getNativeConfig","toJSON","_setPrototypeOf","o","p","setPrototypeOf","__proto__","AnimatedValue","_AnimatedWithChildren","subClass","superClass","call","_startingValue","_value","_offset","_animation","constructor","_this2","setValue","stop","_updateValue","setOffset","flattenOffset","extractOffset","stopTracking","resetAnimation","interpolate","AnimatedInterpolation","animate","animation","_this3","handle","__isInteraction","InteractionManager","createInteractionHandle","previousAnimation","start","clearInteractionHandle","_tracking","track","tracking","flush","rootNode","animatedStyles","findAnimatedStyles","node","update","animatedStyle","_flush","type","AnimatedWithChildren","defaultProps","children","dataSet","nativeID","suppressHydrationWarning","testID","accessibilityProps","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","dir","focusable","accessible","accessibilityState","accessibilityValue","clickProps","onClick","onClickCapture","onContextMenu","focusProps","onBlur","onFocus","keyboardProps","onKeyDown","onKeyDownCapture","onKeyUp","onKeyUpCapture","mouseProps","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOver","onMouseOut","onMouseUp","touchProps","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","styleProps","dangerousStyleValue","isCustomProperty","isUnitlessNumber","trim","setValueForStyles","styleName","indexOf","styleValue","setProperty","getRect","_getBoundingClientRec","getBoundingClientRect","x","y","width","offsetWidth","height","offsetHeight","_measureLayout","relativeToNativeNode","relativeNode","parentNode","setTimeout","relativeRect","_getRect","focusableElements","A","INPUT","SELECT","TEXTAREA","UIManager","blur","err","focus","nodeName","getAttribute","setAttribute","measure","measureInWindow","_getRect2","measureLayout","onFail","onSuccess","updateView","configureNextLayoutAnimation","onAnimationDidEnd","setLayoutAnimationEnabledExperimental","accessibilityComponent","AccessibilityUtil","propsToAccessibilityComponent","Component","domProps","createDOMProps","concat","_createForOfIteratorHelperLoose","allowArrayLike","it","Symbol","iterator","isArray","minLen","_arrayLikeToArray","n","toString","slice","from","_unsupportedIterableToArray","done","TypeError","next","bind","arr","len","arr2","_AnimatedNode","_children","_step","_iterator","index","splice","_step2","_iterator2","linear","t","createInterpolation","pattern","stringShapeRegex","checkPattern","map","colorToRgba","outputRanges","match","number","interpolations","shouldRound","range","startsWith","input","val","round","createInterpolationFromStringOutputRange","checkInfiniteRange","checkValidInputRange","easing","findRange","inputMin","inputMax","outputMin","outputMax","Infinity","normalizedColor","normalizeColor","parent","_parent","_config","_interpolation","parentValue","__transformDataType","__createInterpolation","mergeRefs","_extends","assign","EmotionCacheContext","createContext","HTMLElement","createCache","Provider","withEmotionCache","func","forwardRef","cache","useContext","ThemeContext","createCacheWithTheme","weakMemoize","outerTheme","theme","getTheme","ThemeProvider","typePropName","createEmotionProps","newProps","Emotion","cssProp","registered","registeredStyles","className","getRegisteredStyles","serialized","serializeStyles","insertStyles","select","web","default","isTesting","_taggedTemplateLiteral","strings","raw","freeze","STYLE_ELEMENT_ID","STYLE_GROUPS","reset","modality","classicReset","classic","atomic","custom","borderColor","borderStyle","borderWidth","flex","overflow","overscrollBehavior","marginHorizontal","marginVertical","paddingHorizontal","paddingVertical","STYLE_SHORT_FORM_EXPANSIONS","MONOSPACE_FONT_STACK","SYSTEM_FONT_STACK","dimensions","fontScale","listeners","Dimensions","get","dimension","set","initialDimensions","_update","win","docEl","documentElement","clientHeight","devicePixelRatio","clientWidth","handler","removeEventListener","_handler","colorProps","backgroundColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","color","shadowColor","textDecorationColor","textShadowColor","normalizeValueWithProperty","returnValue","unitlessNumbers","interleave","vals","finalArray","lastType","generated","buffer","handleInterpolation","interpolation","isIrrelevant","isRnStyle","converted","convertStyles","_converted","createCss","prevBuffer","hash","JSON","stringify","styleSheet","propertyValuePattern","convertPropertyValue","exec","shift","str","stylePairs","split","msg","message","includes","values","errorMsg","testOmitPropsOnComponent","getDisplayName","primitive","styled","_temp","_ref$getShouldForward","getShouldForwardProp","createEmotion","options","shouldForwardProp","defaultShouldForwardProp","shouldUseAs","rawStyles","Styled","finalTag","as","mergedProps","finalShouldForwardProp","withComponent","newComponent","createStyled","reduce","acc","comp","reactNative","formatProdErrorMessage","code","$$observable","observable","randomString","random","substring","join","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","proto","getPrototypeOf","createStore","reducer","preloadedState","enhancer","_ref2","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","getState","subscribe","listener","isSubscribed","dispatch","action","replaceReducer","nextReducer","_ref","outerSubscribe","observer","observeState","unsubscribe","funcs","arg","a","b","applyMiddleware","middlewares","store","_dispatch","middlewareAPI","chain","middleware","createThunkMiddleware","extraArgument","thunk","withExtraArgument","die","s","isDraft","DRAFT_STATE","isDraftable","Ctor","Function","objectCtorString","DRAFTABLE","isMap","isSet","each","iter","getArchtype","entry","thing","state","type_","has","propOrOldValue","is","hasMap","Map","hasSet","latest","copy_","base_","shallowCopy","base","descriptors","desc","deep","isFrozen","clear","dontMutateFrozenCollections","getPlugin","pluginKey","plugin","plugins","getCurrentScope","currentScope","usePatchesInScope","scope","patchListener","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","drafts_","revokeDraft","parent_","enterScope","immer","immer_","canAutoFreeze_","unfinalizedDrafts_","draft","revoke_","revoked_","processResult","baseDraft","isReplaced","useProxies_","willFinalizeES5_","modified_","finalize","maybeFreeze","generateReplacementPatches_","NOTHING","rootScope","path","childValue","finalizeProperty","scope_","finalized_","draft_","generatePatches_","parentState","targetObject","rootPath","res","assigned_","autoFreeze_","peek","getDescriptorFromProto","markChanged","prepareCopy","createProxy","proxyMap_","proxySet_","isManual_","traps","objectTraps","arrayTraps","Proxy","revocable","revoke","proxy","createES5Proxy_","current","currentImpl","copy","archType","hasChanges_","copyHelper","hasSymbol","hasProxies","Reflect","for","getOwnPropertyNames","deleteProperty","owner","Immer","e","recipe","defaultBase","self","produce","hasError","Promise","then","arg1","arg2","produceWithPatches","ip","patches","inversePatches","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","patch","op","applyPatchesImpl","applyPatches_","StoreContext","useIsomorphicLayoutEffect","createStoreStateHook","Context","mapState","equalityFn","mapStateRef","useRef","stateRef","mountedRef","subscriptionMapStateError","useReducer","forceRender","checkMapState","newState","useStoreState","createStoreActionsHook","mapActions","useStoreActions","createStoreDispatchHook","useStoreDispatch","createStoreRehydratedHook","useState","rehydrated","setRehydrated","useEffect","useStoreRehydrated","createTypedHooks","useStore","clone","recursiveClone","isPromise","newify","currentPath","finalValue","idx","createSimpleProduce","disableImmer","easyPeasyImmer","parentPath","pSeries","tasks","iterable","initialValue","results","task","total","element","resolve","reject","areInputsEqual","newInputs","lastInputs","createReducer","_aRD","_cR","_cP","simpleProduce","reducerForActions","actionReducer","runActionReducerAtPath","reducerForCustomReducers","original","stateAfterActions","bindComputedProperty","noopStorage","getItem","setItem","removeItem","getBrowerStorage","storageName","storageCache","_","localStorage","sessionStorage","createStorageWrapper","storage","transformers","outTransformers","deserialize","cur","isAsync","wrapped","serialize","createPersistenceClearer","persistKey","_r","createPersistor","persistPromise","isPersisting","timingMethod","persist","nextState","operation","allow","deny","persistTargets","targets","resolvePersistTargets","stateToPersist","rawValue","nextPersistOperation","rehydrateStateFromPersistIfNeeded","rehydrating","persistInstance","mergeStrategy","root","hasDataModelChanged","dataModel","rehydratingModelData","rehydate","persistedState","targetState","setAt","currentTargetState","currentPersistedState","applyRehydrationStrategy","getItemResult","replaceState","logThunkEventListenerError","handleEventDispatchErrors","dispatcher","createListenerMiddleware","sourceAction","actionCreator","payload","createComputedPropertiesMiddleware","createEffectsMiddleware","prevState","prevLocal","def","nextLocal","prevDependencies","resolver","nextDependencies","dependency","logEffectError","logEffectEventListenerError","extractDataFromModel","_dS","_aCD","_aC","actionThunks","_e","_lAC","_lAM","listenerdefs","_persistenceConfig","aPath","bPath","recursiveExtractFromModel","meta","handleValueAsState","initialParentRef","category","actionName","createActionCreator","startType","successType","failType","injections","helpers","fail","getStoreActions","getStoreState","createThunkHandler","dispatchStart","dispatchFail","dispatchSuccess","failure","_failure","createThunkActionsCreator","runOnce","prevInputs","storeState","inputs","stack","prevValue","createComputedPropertyBinder","effectHandler","actions","dispose","disposeResult","effectResult","createEffectHandler","previousDependencies","change","prev","createEffectActionsCreator","persistdef","extractPersistConfig","model","targetTypes","listenerReg","bindListenerdefs","_cS","isInReducer","modelClone","devTools","enhancers","initialState","mockActions","storeName","version","reducerEnhancer","bindReplaceState","modelDef","ePRS","modeldef","mockedActions","targetPath","persistor","persistMiddleware","createPersistMiddleware","bindStoreInternals","composeEnhancers","easyPeasyMiddleware","reduxCreateStore","bindActionCreators","rebindStore","removeKey","resolveRehydration","addModel","addModelRehydration","clearMockedActions","getActions","getListeners","getMockedActions","reconfigure","removeModel","StoreProvider","__esModule","checkDCE","findNodeHandle","findDOMNode","render","unmountComponentAtNode","NativeModules","isScreenReaderEnabled","prefersReducedMotionMedia","matchMedia","handlers","AccessibilityInfo","isReduceMotionEnabled","matches","fetch","event","setAccessibilityFocus","reactTag","announceForAccessibility","announcement","Alert","alert","deepDiffer","one","two","maxDepth","ii","twoKey","Batchinator","delayMS","_delay","_callback","abort","_taskHandle","cancel","schedule","timeoutHandle","runAfterInteractions","clearTimeout","RefreshControl","colors","enabled","onRefresh","progressBackgroundColor","progressViewOffset","refreshing","tintColor","title","titleColor","rest","excluded","sourceKeys","_objectWithoutPropertiesLoose","TextInputState","_currentlyFocusedNode","currentlyFocusedField","activeElement","focusTextInput","textFieldNode","blurTextInput","dismissKeyboard","emptyObject","ScrollResponder","Mixin","scrollResponderMixinGetInitialState","isTouching","lastMomentumScrollBeginTime","lastMomentumScrollEndTime","observedScrollSinceBecomingResponder","becameResponderWhileAnimating","scrollResponderHandleScrollShouldSetResponder","scrollResponderHandleStartShouldSetResponder","scrollResponderHandleStartShouldSetResponderCapture","scrollResponderIsAnimating","scrollResponderHandleResponderReject","warning","scrollResponderHandleTerminationRequest","scrollResponderHandleTouchEnd","nativeEvent","touches","scrollResponderHandleResponderRelease","currentlyFocusedTextInput","keyboardShouldPersistTaps","onScrollResponderKeyboardDismissed","scrollResponderHandleScroll","scrollResponderHandleResponderGrant","scrollResponderHandleScrollBeginDrag","onScrollBeginDrag","scrollResponderHandleScrollEndDrag","onScrollEndDrag","scrollResponderHandleMomentumScrollBegin","Date","now","onMomentumScrollBegin","scrollResponderHandleMomentumScrollEnd","onMomentumScrollEnd","scrollResponderHandleTouchStart","scrollResponderHandleTouchMove","scrollResponderGetScrollableNode","getScrollableNode","scrollResponderScrollTo","animated","scroll","behavior","scrollLeft","scrollTop","scrollResponderZoomTo","rect","scrollResponderFlashScrollIndicators","scrollResponderScrollNativeHandleToKeyboard","nodeHandle","additionalOffset","preventNegativeScrollOffset","additionalScrollOffset","getInnerViewNode","scrollResponderTextInputFocusError","scrollResponderInputMeasureAndScrollToKeyboard","keyboardScreenY","keyboardWillOpenTo","endCoordinates","screenY","scrollOffsetY","max","UNSAFE_componentWillMount","scrollResponderKeyboardWillShow","onKeyboardWillShow","scrollResponderKeyboardWillHide","onKeyboardWillHide","scrollResponderKeyboardDidShow","onKeyboardDidShow","scrollResponderKeyboardDidHide","onKeyboardDidHide","normalizeScrollEvent","contentOffset","contentSize","scrollHeight","scrollWidth","layoutMeasurement","timeStamp","ScrollViewBase","_props$scrollEnabled","scrollEnabled","_props$scrollEventThr","scrollEventThrottle","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","scrollState","isScrolling","scrollLastTick","scrollTimeout","scrollRef","createPreventableScrollHandler","handleScrollTick","hideScrollbar","stopPropagation","handleScrollEnd","lastTick","eventThrottle","timeSinceLastTick","shouldEmitScrollEvent","handleScrollStart","scrollDisabled","overflowX","overflowY","touchAction","scrollbarWidth","ScrollView","createReactClass","mixins","getInitialState","flashScrollIndicators","getScrollResponder","_scrollNodeRef","getInnerViewRef","_innerViewRef","getNativeScrollRef","scrollTo","scrollToEnd","horizontal","scrollResponder","scrollResponderNode","_this$props","contentContainerStyle","onContentSizeChange","refreshControl","stickyHeaderIndices","pagingEnabled","other","keyboardDismissMode","contentSizeChangeProps","_handleContentOnLayout","hasStickyHeaderIndices","Children","isSticky","stickyHeader","pagingEnabledChild","contentContainer","collapsable","_setInnerViewRef","contentContainerHorizontal","baseStyle","baseHorizontal","baseVertical","pagingEnabledStyle","pagingEnabledHorizontal","pagingEnabledVertical","_handleScroll","scrollResponderHandleTerminate","ScrollViewClass","scrollView","_setScrollNodeRef","cloneElement","_e$nativeEvent$layout","layout","commonStyle","flexGrow","translateZ","WebkitOverflowScrolling","scrollSnapType","scrollSnapAlign","ForwardedScrollView","_isViewable","viewAreaMode","viewablePercentThreshold","viewportHeight","itemLength","_isEntirelyVisible","pixels","visibleHeight","min","_getPixelsVisible","ViewabilityHelper","viewAreaCoveragePercentThreshold","_hasInteracted","_timers","_viewableIndices","_viewableItems","computeViewableItems","itemCount","scrollOffset","getFrameMetrics","renderRange","_this$_config","itemVisiblePercentThreshold","viewableIndices","firstVisible","first","last","metrics","onUpdate","createViewToken","onViewableItemsChanged","waitForInteraction","every","v","minimumViewTime","_onUpdateSync","resetViewableIndices","recordInteraction","viewableIndicesToCheck","prevItems","nextItems","viewable","changed","_step$value","_step2$value","_viewable","isViewable","viewableItems","viewabilityConfig","infoLog","_console","log","elementsThatOverlapOffsets","offsets","out","outLength","frame","trailingOffset","kk","newRangeCount","computeWindowedRenderLimits","getFrameMetricsApprox","scrollMetrics","getItemCount","maxToRenderPerBatch","windowSize","velocity","visibleLength","visibleBegin","visibleEnd","overscanLength","fillPreference","overscanBegin","overscanEnd","_elementsThatOverlapO","overscanFirst","overscanLast","visible","newCellCount","maxNewCells","firstWillAddMore","firstShouldIncrement","lastWillAddMore","lastShouldIncrement","VirtualizedListContext","VirtualizedListContextProvider","context","useMemo","cellKey","getScrollMetrics","getOutermostParentListRef","getNestedChildState","registerAsNestedChild","unregisterAsNestedChild","debugInfo","listKey","VirtualizedListCellContextProvider","_ref3","_inheritsLoose","_usedIndexForKey","_keylessItemComponentName","VirtualizedList","_React$PureComponent","_props","_getScrollMetrics","_scrollMetrics","_getOutermostParentListRef","_isNestedWithSameOrientation","ReferenceError","_assertThisInitialized","_getNestedChildState","existingChildData","_nestedChildLists","_registerAsNestedChild","childList","childListsInCell","_cellKeysToChildListKeys","trace","parentDebugInfo","describeNestedLists","_unregisterAsNestedChild","_onUpdateSeparators","_cellRefs","updateSeparatorProps","_averageCellLength","_frames","_footerLength","_hasDoneInitialScroll","_hasMore","_hasWarned","_headerLength","_hiPriInProgress","_highestMeasuredFrameIndex","_indicesToKeys","_offsetFromParentVirtualizedList","_prevParentOffset","contentLength","dOffset","dt","timestamp","_scrollRef","_sentEndForContentLength","_totalCellLength","_totalCellsMeasured","_viewabilityTuples","_captureScrollRef","_defaultRenderScrollComponent","_onCellUnmount","curr","inLayout","_onLayout","measureLayoutRelativeToContainingList","_selectLength","_scheduleCellsToRenderUpdate","_maybeCallOnEndReached","_onLayoutEmpty","_onLayoutFooter","_triggerRemeasureForChildListsInCell","_getFooterCellKey","_onLayoutHeader","_onContentSizeChange","initialScrollIndex","_convertParentScrollMetrics","_onScroll","_selectOffset","_this$_convertParentS","perf","prevDt","_updateViewableItems","_fillRateHelper","activate","_computeBlankness","_onScrollBeginDrag","tuple","viewabilityHelper","_onScrollEndDrag","_onMomentumScrollBegin","_onMomentumScrollEnd","_updateCellsToRender","_this$props3","onEndReachedThreshold","isVirtualizationDisabled","_isVirtualizationDisabled","setState","_this$_scrollMetrics","renderAhead","_getFrameMetricsApprox","newFirst","newLast","cellKeyForIndex","childListKeys","someChildHasMore","childKey","hasMore","_createViewToken","_this$props4","keyExtractor","item","_getFrameMetrics","getItemLayout","_this$props5","FillRateHelper","_updateCellsToRenderBatcher","updateCellsBatchingPeriod","viewabilityConfigCallbackPairs","pair","initialNumToRender","storedState","_getListKey","frames","params","veryLast","scrollToIndex","onScrollToIndexFailed","viewOffset","viewPosition","averageItemLength","highestMeasuredFrameIndex","scrollToItem","_this$props2","_index","scrollToOffset","getScrollRef","setNativeProps","_getCellKey","_this$context","_getDebugInfo","_this$context2","componentDidMount","componentWillUnmount","deactivateAndFlush","getDerivedStateFromProps","_pushCells","cells","stickyIndicesFromProps","inversionStyle","prevCellKey","_this$props6","CellRendererComponent","ItemSeparatorComponent","stickyOffset","ListHeaderComponent","end","_loop","CellRenderer","fillRateHelper","onUpdateSeparators","_onCellLayout","onUnmount","parentProps","disableVirtualization","nestedContext","_this$props7","ListEmptyComponent","ListFooterComponent","_this$props8","inverted","horizontallyInverted","verticallyInverted","ListHeaderComponentStyle","spacerKey","lastInitialIndex","_this$state","firstAfterInitial","insertedStickySpacer","initBlock","stickyBlock","leadSpace","trailSpace","_ref4","_initBlock","firstSpace","_ref5","lastFrame","endFrame","tailSpacerLength","_element","_element2","ListFooterComponentStyle","scrollProps","ret","renderScrollComponent","debug","_renderDebugOverlay","componentDidUpdate","prevProps","_this$props9","extraData","hiPriInProgress","computeBlankness","_this4","normalize","framesInLayout","windowTop","frameLast","windowLen","visTop","visLen","debugOverlayBase","debugOverlay","f","debugOverlayFrame","debugOverlayFrameLast","debugOverlayFrameVis","_this$props10","onEndReached","_this$_scrollMetrics2","distanceFromEnd","threshold","_this$state2","_this$_scrollMetrics3","hiPri","scrollingThreshold","distTop","distBottom","_this5","contextType","_React$Component","_this6","separatorProps","highlighted","leadingItem","_separators","highlight","_this6$props","unhighlight","_this6$props2","updateProps","_this6$props3","_proto2","_renderElement","renderItem","ListItemComponent","separators","_this$props11","itemSeparator","cellStyle","rowReverse","columnReverse","row","numColumns","FlatList","_virtualizedListPairs","_captureRef","_listRef","_getItem","_item","_getItemCount","ceil","_keyExtractor","items","_renderer","columnWrapperStyle","renderer","info","_item2","_checkProps","_createOnViewableItemsChanged","_pushMultiColumnViewable","restProps","attachNativeEvent","viewRef","argMapping","eventMappings","traverse","nativeEventPath","animatedValueTag","mapping","detach","AnimatedEvent","_argMapping","__addListener","_callListeners","_attachedEvent","__removeListener","__getHandler","_len2","_key3","recMapping","recEvt","mappingKey","_len3","_key4","AnimatedTransform","transforms","_transforms","transConfigs","AnimatedStyle","_style","_walkStyleAndGetValues","updatedStyle","_walkStyleAndGetAnimatedValues","styleConfig","styleKey","AnimatedProps","_animatedView","__disconnectAnimatedView","__connectAnimatedView","setNativeView","animatedView","nativeViewTag","__restoreDefaultValues","propsConfig","propKey","setAndForwardRef","getForwardedRef","setLocalRef","animatedComponentNextId","createAnimatedComponent","isReactComponent","AnimatedComponent","_invokeAnimatedPropsCallbackOnMount","_eventDetachers","_animatedComponentId","_isFabric","_this$_component$_int","_this$_component$_int2","_this$_component$getN","_this$_component$getN2","_this$_component$getS","_this$_component$getS2","_component","stateNode","canonical","_waitForUpdate","_markUpdateComplete","_animatedPropsCallback","forceUpdate","_propsAnimated","_setComponentRef","_prevComponent","getNode","_ref$constructor$name","_attachNativeEvents","_this$_component","scrollableNode","_detachNativeEvents","_attachProps","nextProps","oldPropsAnimated","_ref$style","passthroughAnimatedPropExplicitValues","_ref2$style","passthruStyle","passthruProps","mergedStyle","UNSAFE_componentWillReceiveProps","assets","getAssetByID","assetId","dataUriPattern","ImageUriCache","uri","entries","_entries","Boolean","lastUsedTimestamp","refCount","_cleanUpIfNeeded","leastRecentlyUsedKey","leastRecentlyUsedEntry","imageUris","_maximumEntries","requests","ImageLoader","requestId","image","onerror","onload","getSize","success","complete","interval","setInterval","load","clearInterval","naturalHeight","naturalWidth","onLoad","onError","Image","onDecode","decode","src","prefetch","queryCache","uris","u","PixelRatio","getFontScale","getPixelSizeForLayoutSize","layoutSize","roundToNearestPixel","ratio","LOADED","LOADING","_filterId","svgDataUriPattern","resolveAssetUri","asset","scales","preferredScale","abs","scaleSuffix","httpServerLocation","prefix","svg","encodeURIComponent","blurRadius","defaultSource","draggable","onLoadEnd","onLoadStart","_React$useState","updateState","_React$useState2","updateLayout","hiddenImageRef","filterRef","requestRef","shouldDisplaySource","_getFlatStyle","filterId","flatStyle","resizeMode","shadowOffset","filters","_filter","shadowString","resolveShadowValue","overlayColor","getFlatStyle","_resizeMode","selectedSource","displayImageUri","imageSizeStyle","_getAssetByID","resolveAssetDimensions","backgroundImage","backgroundSize","_hiddenImageRef$curre","_height3","_width3","scaleFactor","getBackgroundSize","hiddenImage","alt","classes","accessibilityImage","abortPendingRequest","_layout","resizeModeStyles","visibility","floodColor","in2","operator","createTintColorSVG","ImageWithStatics","backgroundPosition","backgroundRepeat","center","contain","cover","none","repeat","stretch","VirtualizedSectionList","sections","itemIdx","section","sectionData","_subExtractor","_convertViewable","_onViewableItemsChanged","_renderItem","listItemCount","infoIndex","header","renderSectionHeader","renderSectionFooter","SeparatorComponent","_getSeparatorComponent","ItemWithSeparator","LeadingSeparatorComponent","SectionSeparatorComponent","leadingSection","onUpdateSeparator","_onUpdateSeparator","trailingItem","trailingSection","scrollToLocation","itemIndex","sectionIndex","stickySectionHeadersEnabled","toIndexParams","getListRef","passThroughProps","listHeaderOffset","isLastItemInList","isLastItemInSection","leadingSeparatorProps","_this3$props","leadingSeparator","separator","SectionList","_wrapperListRef","listRef","Text","AnimatedAddition","_a","_b","AnimatedDiffClamp","_min","_max","_lastValue","diff","AnimatedDivision","_warnedAboutDivideByZero","AnimatedModulo","modulus","_modulus","AnimatedMultiplication","AnimatedSubtraction","AnimatedTracking","animationClass","animationConfig","_animationClass","_animationConfig","_useNativeDriver","toValue","__getNativeAnimationConfig","_combineCallbacks","onComplete","maybeVectorAnim","anim","AnimatedValueXY","configX","configY","_config$key","aX","aY","parallel","stopTogether","timing","_start2","animatedValue","configuration","singleValue","singleConfig","TimingAnimation","_startNativeLoop","iterations","_isUsingNativeDriver","sequence","animations","finished","doneCount","hasEnded","cb","endResult","delay","time","duration","Value","ValueXY","Interpolation","Node","decay","_start3","DecayAnimation","spring","_start","SpringAnimation","subtract","divide","multiply","modulo","diffClamp","stagger","loop","_ref$iterations","_ref$resetBeforeItera","resetBeforeIteration","isFinished","iterationsSoFar","restart","animatedEvent","forkEvent","unforkEvent","Event","__PropsOnlyForTests","emptyAnimation","anyValue","AnimatedImplementation","AnimatedMock","Animated","query","listenerMapping","WeakMap","Appearance","getColorScheme","addChangeListener","mappedListener","colorScheme","removeChangeListener","RootTagContext","AppContainer","WrapperComponent","innerView","appContainer","rootTag","wrapperComponentProvider","runnables","componentProviderInstrumentationHook","AppRegistry","getAppKeys","getApplication","appKey","appParameters","registerComponent","componentProvider","RootComponent","initialProps","getStyleElement","sheet","styleResolver","getStyleSheet","dangerouslySetInnerHTML","__html","textContent","run","shouldHydrate","hydrate","renderFn","renderApplication","registerConfig","registerRunnable","runApplication","setComponentProviderInstrumentationHook","hook","setWrapperComponentProvider","provider","unmountApplicationComponentAtRootTag","_defineProperties","descriptor","isPrefixed","EVENT_TYPES","VISIBILITY_CHANGE_EVENT","VISIBILITY_STATE_PROPERTY","AppStates","changeEmitter","AppState","Constructor","protoProps","staticProps","isAvailable","EventEmitter","emit","emptyFunction","clipboardAvailable","BackHandler","exitApp","Clipboard","queryCommandSupported","getString","setString","text","body","whiteSpace","userSelect","appendChild","selection","getSelection","removeAllRanges","createRange","selectNodeContents","addRange","execCommand","removeChild","DeviceInfo","windowPhysicalPixels","_Dimensions$get","screenPhysicalPixels","_Dimensions$get2","locale","navigator","languages","language","totalMemory","deviceMemory","userAgent","Keyboard","dismiss","configureNext","Presets","easeInEaseOut","springDamping","LayoutAnimation","Types","easeIn","easeOut","keyboard","Properties","scaleXY","checkConfig","TouchHistoryMath","centroidDimension","touchHistory","touchesChangedAfter","isXAxis","ofCurrent","touchBank","count","oneTouchData","numberActiveTouches","indexOfSingleActiveTouch","touchActive","currentTimeStamp","currentPageX","currentPageY","previousPageX","previousPageY","touchTrack","noCentroid","currentCentroidXOfTouchesChangedAfter","currentCentroidYOfTouchesChangedAfter","previousCentroidXOfTouchesChangedAfter","previousCentroidYOfTouchesChangedAfter","currentCentroidX","currentCentroidY","PanResponder","_initializeGestureState","gestureState","moveX","moveY","x0","y0","dx","dy","vx","vy","_accountsForMovesUpTo","_updateGestureStateOnMove","movedAfter","prevX","prevY","nextDX","nextDY","mostRecentTimeStamp","interactionState","shouldCancelClick","timeout","stateID","panHandlers","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponderCapture","clearInteractionTimeout","onPanResponderGrant","onShouldBlockNativeResponder","onPanResponderReject","onPanResponderRelease","setInteractionTimeout","onPanResponderStart","onPanResponderMove","onPanResponderEnd","onPanResponderTerminate","onPanResponderTerminationRequest","preventDefault","getInteractionHandle","Share","share","content","url","_vibrate","vibrate","Vibration","createSvgCircle","cx","cy","fill","r","strokeWidth","ActivityIndicator","_props$animating","animating","_props$color","_props$hidesWhenStopp","hidesWhenStopped","_props$size","viewBox","stroke","strokeDasharray","strokeDashoffset","container","indicatorSizes","animationPause","justifyContent","animationDuration","animationKeyframes","animationTimingFunction","animationIterationCount","animationPlayState","small","large","CheckBox","disabled","onChange","onValueChange","fakeControl","fakeControlChecked","fakeControlDisabled","fakeControlCheckedAndDisabled","nativeControl","checked","cursorInherit","cursorDefault","cursor","ImageBackground","_props$style","imageStyle","imageRef","_StyleSheet$flatten","KeyboardAvoidingView","relativeKeyboardHeight","keyboardFrame","keyboardY","keyboardVerticalOffset","onKeyboardChange","ModalPortal","elementRef","ReactDOM","createPortal","getAnimationStyle","animationType","animatedSlideInStyles","animatedSlideOutStyles","animatedFadeInStyles","animatedFadeOutStyles","hidden","animatedIn","ANIMATION_DURATION","animatedOut","fadeIn","fadeOut","slideIn","slideOut","ModalAnimation","onDismiss","onShow","isRendering","setIsRendering","wasVisible","isAnimated","animationEndCallback","currentTarget","onAnimationEnd","ModalContent","active","onRequestClose","transparent","closeOnEscape","modal","modalTransparent","modalOpaque","FocusBracket","tabIndex","focusBracket","attemptFocus","focusFirstDescendant","childNodes","focusLastDescendant","ModalFocusTrap","trapElementRef","focusRef","trapFocusInProgress","lastFocusedElement","trapFocus","contains","hasFocused","lastFocusedElementOutsideTrap","outlineStyle","uniqueModalIdentifier","activeModalStack","activeModalListeners","notifyActiveModalListeners","activeModalId","modalId","removeActiveModal","Modal","_props$visible","isActive","setIsActive","onDismissCallback","onShowCallback","addActiveModal","Picker","selectedValue","itemStyle","mode","prompt","_e$target","selectedIndex","initial","Item","label","fontFamily","fontSize","canUsePassiveEvents","supported","supportsPassiveEvents","isPropagationStopped","cancelBubble","isDefaultPrevented","defaultPrevented","createEventHandle","opts","capture","getOptions","compatListener","previousModality","previousActiveModality","activeModality","isEmulatingMouseEvents","KEYBOARD","MOUSE","TOUCH","CONTEXTMENU","MOUSEDOWN","MOUSEMOVE","MOUSEUP","POINTERDOWN","POINTERMOVE","SCROLL","SELECTIONCHANGE","TOUCHCANCEL","TOUCHMOVE","TOUCHSTART","bubbleOptions","passive","captureOptions","addBlurListener","addFocusListener","addVisibilityChangeListener","addKeyDownListener","addPointerDownListener","addPointerMoveListener","addContextMenuListener","addMouseDownListener","addMouseMoveListener","addMouseUpListener","addScrollListener","addSelectiomChangeListener","addTouchCancelListener","addTouchMoveListener","addTouchStartListener","restoreModality","callListeners","onPointerish","eventType","PointerEvent","pointerType","metaKey","altKey","ctrlKey","visibilityState","useEvent","targetListeners","useStable","removeTargetListener","useLayoutEffect","lockEventType","unlockEventType","dispatchCustomEvent","createEvent","_ref$bubbles","bubbles","_ref$cancelable","cancelable","detail","initCustomEvent","dispatchEvent","getPointerType","useHover","targetRef","onHoverStart","onHoverChange","onHoverUpdate","onHoverEnd","canUsePE","addMoveListener","addEnterListener","addLeaveListener","addLockListener","addUnlockListener","hoverEnd","leaveListener","moveListener","clientX","clientY","hoverStart","lockEvent","Pressable","delayLongPress","delayPressIn","delayPressOut","onHoverIn","onHoverOut","onLongPress","onPress","onPressMove","onPressIn","onPressOut","testOnly_hovered","testOnly_pressed","_useForceableState","useForceableState","hovered","setHovered","_useForceableState2","focused","setFocused","_useForceableState3","pressed","setPressed","pressConfig","delayPressStart","delayPressEnd","onPressChange","onPressStart","onPressEnd","pressEventHandlers","usePressEvents","onContextMenuPress","onKeyDownPress","blurHandler","focusHandler","contextMenuHandler","keyDownHandler","forced","_useState","MemoedPressable","memo","ProgressBar","_props$indeterminate","indeterminate","_props$progress","progress","_props$trackColor","trackColor","percentageProgress","progressRef","forcedColorAdjust","cssFunction","CSS","supports","SafeAreaView","paddingTop","paddingRight","paddingBottom","paddingLeft","StatusBar","setBackgroundColor","setBarStyle","setHidden","setNetworkActivityIndicatorVisible","setTranslucent","thumbDefaultBoxShadow","Switch","_props$activeThumbCol","activeThumbColor","_props$activeTrackCol","activeTrackColor","_props$disabled","_props$thumbColor","thumbColor","_props$value","thumbRef","handleFocusState","boxShadow","styleHeight","styleWidth","multiplyStyleLengthValue","trackBorderRadius","trackCurrentColor","true","false","thumbCurrentColor","thumbHeight","thumbWidth","rootStyle","trackStyle","thumbStyle","thumb","thumbActive","marginStart","role","transitionDuration","alignSelf","autoCapitalize","autoComplete","autoCorrect","autoFocus","defaultValue","maxLength","placeholder","readOnly","rows","spellCheck","TextInput","inputMode","_props$autoCapitalize","autoCompleteType","_props$autoCorrect","blurOnSubmit","clearTextOnFocus","_props$editable","editable","_props$keyboardType","keyboardType","_props$multiline","multiline","_props$numberOfLines","numberOfLines","onChangeText","onKeyPress","onSelectionChange","onSubmitEditing","placeholderTextColor","returnKeyType","_props$secureTextEntr","secureTextEntry","selectTextOnFocus","handleContentSizeChange","hostNode","newHeight","newWidth","imperativeRef","isFocused","selectionEnd","selectionStart","isSelectionStale","setSelectionRange","setSelection","textinput","enterKeyHint","shouldBlurOnSubmit","isComposing","keyCode","isEventComposing","shiftKey","onSelect","State","MozAppearance","WebkitAppearance","font","resize","twoArgumentPooler","a1","a2","Klass","instancePool","instance","pop","standardReleaser","destructor","poolSize","DEFAULT_POOLER","PooledClass","addPoolingTo","CopyConstructor","pooler","NewKlass","getPooled","release","BoundingDimensions","getPooledFromElement","Position","extractSingleTouch","changedTouches","hasTouches","hasChangedTouches","States","baseStatesConditions","NOT_RESPONDER","RESPONDER_INACTIVE_PRESS_IN","RESPONDER_INACTIVE_PRESS_OUT","RESPONDER_ACTIVE_PRESS_IN","RESPONDER_ACTIVE_PRESS_OUT","RESPONDER_ACTIVE_LONG_PRESS_IN","RESPONDER_ACTIVE_LONG_PRESS_OUT","ERROR","IsActive","IsPressingIn","IsLongPressingIn","Signals","Transitions","DELAY","RESPONDER_GRANT","RESPONDER_RELEASE","RESPONDER_TERMINATED","ENTER_PRESS_RECT","LEAVE_PRESS_RECT","LONG_PRESS_DETECTED","TouchableMixin","_touchableNode","_touchableBlurListener","_isTouchableKeyboardActive","touchable","touchState","touchableHandleResponderTerminate","touchableDelayTimeout","longPressDelayTimeout","pressOutDelayTimeout","pressInLocation","responderID","touchableGetInitialState","touchableHandleResponderTerminationRequest","rejectResponderTermination","touchableHandleStartShouldSetResponder","touchableLongPressCancelsPress","touchableHandleResponderGrant","dispatchID","_receiveSignal","touchableGetHighlightDelayMS","isNaN","_handleDelay","longDelayMS","touchableGetLongPressDelayMS","LONG_PRESS_THRESHOLD","_handleLongDelay","touchableHandleResponderRelease","touchableHandleResponderMove","positionOnActivate","dimensionsOnActivate","pressRectOffset","touchableGetPressRectOffset","pressExpandLeft","pressExpandTop","pressExpandRight","pressExpandBottom","hitSlop","touchableGetHitSlop","touch","pageX","pageY","_getDistanceBetweenPoints","_cancelLongPressDelayTimeout","touchableHandleFocus","touchableHandleBlur","_remeasureMetricsOnActivation","_handleQueryLayout","w","h","globalX","globalY","curState","signal","_performSideEffectsForTransition","_isHighlight","_savePressInLocation","locationX","locationY","bX","bY","deltaX","deltaY","sqrt","curIsHighlight","newIsHighlight","isInitialTransition","isActiveTransition","touchableHandleLongPress","_startHighlight","_endHighlight","hasLongPressHandler","pressIsLongButStillCallOnPress","touchableHandlePress","_playTouchSound","playTouchSound","touchableHandleActivePressIn","touchableHandleActivePressOut","touchableGetPressOutDelayMS","touchableHandleKeyEvent","propsToAriaRole","withoutDefaultFocusAndBlur","TouchableMixinWithoutDefaultFocusAndBlur","Touchable","TOUCH_TARGET_DEBUG","renderDebugView","debugHitSlopStyle","hexColor","substr","createExtraStyles","activeOpacity","underlayColor","underlay","hasPressHandler","TouchableHighlight","onHideUnderlay","onShowUnderlay","extraStyles","setExtraStyles","showUnderlay","useCallback","hideUnderlay","only","actionable","MemoedTouchableHighlight","UnimplementedView","unimplementedViewStyles","TouchableWithoutFeedback","elementProps","MemoedTouchableWithoutFeedback","YellowBox","ignoreWarnings","LogBox","ignoreLogs","ignoreAllLogs","uninstall","install","promiseMock","PERMISSIONS","RESULTS","checkPermission","check","requestPermission","request","requestMultiple","RCTDeviceEventEmitter","useColorScheme","setColorScheme","appearance","useWindowDimensions","dims","setDims","handleChange","rules","group","createCSS","isSupported","requestIdleCallback","didTimeout","timeRemaining","cancelIdleCallback","Events","interactionStart","interactionComplete","promise","useLayoutEffectImpl","list","nextObj","previousStyleRef","setNativePropsArgsRef","relativeToNode","nativeProps","nextDomStyle","RESPONDER_ACTIVE_LONG_PRESS_START","RESPONDER_ACTIVE_PRESS_START","RESPONDER_INACTIVE_PRESS_START","isActiveSignal","isButtonRole","isPressStartSignal","isValidKeyPress","PressResponder","_eventHandlers","_isPointerTouch","_longPressDelayTimeout","_longPressDispatched","_pressDelayTimeout","_pressOutDelayTimeout","_touchState","configure","_cancelPressDelayTimeout","_cancelPressOutDelayTimeout","getEventHandlers","_createEventHandlers","shouldDelay","_selectionTerminated","normalizeDelay","_handleLongPress","keyupHandler","elementType","tagName","toLowerCase","getTouchFromResponderEvent","_touchActivatePosition","hypot","_this$_config2","_this$_config3","_performTransitionSideEffects","isTerminalSignal","isPrevActive","isNextActive","_activate","_deactivate","_this$_config4","_onLongPress","_this$_config5","_this$_config6","fallback","_event$nativeEvent","pressResponderRef","pressResponder","useDebugValue","toSJISFunction","CODEWORDS_COUNT","getSymbolSize","getSymbolTotalCodewords","getBCHDigit","digit","setToSJISFunction","isKanjiModeEnabled","toSJIS","kanji","VersionCheck","Regex","NUMERIC","bit","ccBits","ALPHANUMERIC","BYTE","KANJI","MIXED","getCharCountIndicator","isValid","getBestModeForData","dataStr","testNumeric","testAlphanumeric","testKanji","string","fromString","doLeftAndRightSwapInRTL","isPreferredLanguageRTL","isRTLAllowed","isRTLForced","isRTL","onDirectionChange","I18nManager","allowRTL","bool","forceRTL","getConstants","setPreferredLanguageRTL","swapLeftAndRightInRTL","valueIn","jointCallback","getLayout","getTranslateTransform","getByID","getStyle","styleLength","computedStyle","classNames","rawClassName","isStringTag","inserted","insert","g","Buffer","TYPED_ARRAY_SUPPORT","Uint8Array","foo","typedArraySupport","K_MAX_LENGTH","allocUnsafe","that","ArrayBuffer","array","byteOffset","byteLength","RangeError","buf","fromArrayLike","fromArrayBuffer","createBuffer","actual","write","isBuffer","fromObject","utf8ToBytes","units","codePoint","leadSurrogate","bytes","charCodeAt","isView","species","isFinite","remaining","dst","blitBuffer","utf8Write","newBuf","subarray","sliceLen","targetStart","pos","_isBuffer","alloc","selectable","textHasAncestor","textMultiLine","WebkitLineClamp","notSelectable","pressable","handleClick","wordWrap","maxWidth","textOverflow","WebkitBoxOrient","matchers","hex6","parseInt","names","rgb","parse255","rgba","parse1","hex3","hex8","hex4","hsl","hslToRgb","parse360","parsePercentage","hsla","hue2rgb","NUMBER","PERCENTAGE","toArray","arrayLike","RegExp","int","num","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","colorInt","startNativeAnimationNextId","Animation","fromValue","onEnd","__nativeId","__debouncedOnEnd","__onEnd","__startNativeAnimation","startNativeAnimationWaitId","resizeObserver","ResizeObserver","observe","unobserve","defaultOffset","createCompileableStyle","textShadowOffset","textShadowRadius","nextStyles","resolvedStyle","shadow","boxShadowReducer","radius","offsetX","offsetY","textShadow","textShadowReducer","createOrderedCSSStyleSheet","groups","selectors","cssRules","cssRule","cssText","Number","selectorText","decodeGroupRule","getSelectorText","sheetInsert","orderedGroups","getOrderedGroups","nextGroupIndex","nextGroup","isInserted","insertRule","insertRuleAt","groupNumber","previousStart","OrderedCSSStyleSheet","getTextContent","groupValue","markerRule","encodeGroupRule","sort","selector","flattenArray","flattenDown","borderLeftStyle","borderLeftWidth","borderRightStyle","borderRightWidth","marginLeft","marginRight","PROPERTIES_FLIP","PROPERTIES_I18N","borderStartColor","borderStartStyle","borderStartWidth","borderEndColor","borderEndStyle","borderEndWidth","marginEnd","paddingStart","paddingEnd","PROPERTIES_VALUE","float","textAlign","additiveInverse","i18nStyle","originalStyle","_I18nManager$getConst","frozenProps","nextStyle","originalProp","originalValue","convertedProp","convertedValue","flippedValue","invertedValue","supportsCSS3TextDecoration","mapTransform","createReactDOMStyle","backgroundClip","WebkitBackgroundClip","fontVariant","verticalAlign","textDecorationLine","textDecoration","resolveTransform","direction","longFormProperties","longForm","seed","k","murmurhash2_32_gc","m","ms","wm","wms","wmms","crossFade","flexboxIE","flexboxOld","gradient","grid","imageSet","logical","sizing","transition","prefixMap","animationDelay","animationDirection","animationFillMode","animationName","textEmphasisPosition","textEmphasis","textEmphasisStyle","textEmphasisColor","boxDecorationBreak","clipPath","maskImage","maskMode","maskRepeat","maskPosition","maskClip","maskOrigin","maskSize","maskComposite","mask","maskBorderSource","maskBorderMode","maskBorderSlice","maskBorderWidth","maskBorderOutset","maskBorderRepeat","maskBorder","maskType","textDecorationStyle","textDecorationSkip","fontFeatureSettings","breakAfter","breakBefore","breakInside","columnCount","columnFill","columnGap","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columns","columnSpan","columnWidth","writingMode","flexFlow","flexWrap","alignContent","order","transformOrigin","transformOriginX","transformOriginY","backfaceVisibility","perspectiveOrigin","transformStyle","transformOriginZ","backdropFilter","fontKerning","scrollSnapPointsX","scrollSnapPointsY","scrollSnapDestination","scrollSnapCoordinate","shapeImageThreshold","shapeImageMargin","shapeImageOutside","hyphens","flowInto","flowFrom","regionFragment","textOrientation","textAlignLast","tabSize","wrapFlow","wrapThrough","wrapMargin","textSizeAdjust","borderImage","borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth","transitionDelay","transitionProperty","transitionTimingFunction","prefixAll","createPrefixer","staticData","valueString","stringifyValueWithProperty","cachedResult","identifier","_identifier","createIdentifier","_processKeyframesValu2","processKeyframesValue","animationNames","keyframesRules","block","createDeclarationBlock","_block","_block3","_block4","_block2","_block5","_createDeclarationBlo","_block6","createAtomicRules","_cachedResult","_processKeyframesValu","prefixedStyles","prefixInlineStyles","normalizedValue","domStyle","prefixStyles","hyphenateStyleName","keyframesValue","keyframes","_createKeyframes","steps","stepName","createKeyframes","resets","focusVisibleAttributeName","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","search","tel","email","password","date","month","week","datetime","isValidFocusTarget","addFocusVisibleAttribute","onPointerDown","el","isReadOnly","isContentEditable","focusTriggersKeyboardModality","hasAttribute","removeFocusVisibleAttribute","addInitialPointerMoveListeners","removeAttribute","querySelectorAll","removeAllFocusVisibleAttributes","onInitialPointerMove","createCacheKey","classListToString","resolved","ltr","rtl","rtlNoSwap","init","getElementById","head","insertBefore","firstChild","createCSSStyleSheet","rule","initialRules","_injectRegisteredStyle","_results$key","addToCache","_resolveStyle","_I18nManager$getConst2","localizedStyle","styleProp","getClassName","_atomic","_a$key","compiled","_compiled$key","nextClassList","flatArray","isArrayOfNumbers","cacheKey","finalProps","createStyleResolver","isStartish","isMoveish","isEndish","isCancelish","timestampForTouch","getTouchIdentifier","recordTouchStart","touchRecord","startPageX","startPageY","startTimeStamp","previousTimeStamp","resetTouchRecord","createTouchRecord","recordTouchMove","printTouch","printTouchBank","recordTouchEnd","printed","ResponderTouchHistoryStore","recordTouchTrack","topLevelType","touchTrackToCheck","emptyArray","normalizeIdentifier","createResponderEvent","domEvent","propagationWasStopped","domEventChangedTouches","domEventType","force","normalizeTouches","emulatedTouches","responderEvent","dispatchConfig","eventPhase","isTrusted","keyName","composedPathFallback","getResponderId","getResponderPaths","idPath","nodePath","eventPath","anchorNode","composedPath","getEventPath","hasValidSelection","focusNode","isTextNode","nodeType","TEXT_NODE","isSelectionValid","startRegistration","moveRegistration","shouldSetResponderEvents","touchstart","mousedown","touchmove","mousemove","emptyResponder","responderListenersMap","trackedTouchCount","currentResponder","changeCurrentResponder","responder","getResponderConfig","eventListener","eventTarget","isStartEvent","button","buttons","noModifiers","isPrimaryPointerDown","isMoveEvent","isEndEvent","isScrollEvent","isScroll","isSelectionChangeEvent","isSelectionChange","wantsResponder","eventPaths","wasNegotiated","currentResponderIdPath","eventIdPath","lowestCommonAncestor","pathA","pathB","pathALength","pathBLength","itemA","indexA","itemB","indexB","depth","getLowestCommonAncestor","shouldSetCallbacks","shouldSetCallbackCaptureName","shouldSetCallbackBubbleName","callbackName","shouldSetCallback","_i","_result","_id2","_node2","findWantsResponder","_currentResponder2","currentId","currentNode","_getResponderConfig2","registrationName","_getResponderConfig3","allowTransfer","attemptTransfer","_currentResponder","_getResponderConfig","isTerminateEvent","relatedTarget","isReleaseEvent","hasTargetTouches","shouldTerminate","documentEventsCapturePhase","documentEventsBubblePhase","addNode","setResponderId","removeNode","_currentResponder3","terminateResponder","idCounter","getInitialValue","isAttachedRef","__reactResponderSystemActive","ResponderSystem","requiresResponderSystem","isResponder","accessibilityRoleToWebRole","adjustable","imagebutton","keyboardkey","link","summary","inferredRole","roleComponents","article","banner","blockquote","complementary","contentinfo","deletion","emphasis","figure","insertion","form","listitem","main","navigation","region","strong","isDisabled","accessibilityStates","level","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","CSS_UNIT_RE","multiple","_react","_typeof","_getRequireWildcardCache","newObj","hasPropertyDescriptor","_interopRequireWildcard","_propTypes","_interopRequireDefault","_reactNative","_mdurl","_classCallCheck","_createClass","_possibleConstructorReturn","_getPrototypeOf","_inherits","linkify","textPropTypes","propTypes","Hyperlink","_Component","linkifyIt","pretest","elements","_lastIndex","componentProps","lastIndex","nonLinkedText","linkText","clickHandlerProps","linkStyle","injectViewProps","_ref2$props","_ref3$type","isTextNested","parse","viewProps","linkDefault","isValidElement","_component$type","oneOfType","_default","_Component2","handleLink","urlObject","protocol","normalizedURL","Linking","canOpenURL","openURL","murmur2","unitlessKeys","boxFlex","boxFlexGroup","boxOrdinalGroup","flexPositive","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","orphans","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeMiterlimit","strokeOpacity","hyphenateRegex","animationRegex","isProcessableValue","processStyleName","memoize","processStyleValue","p1","p2","unitless","__emotion_styles","interpolated","createStringFromObject","previousCursor","cached","labelPattern","stringMode","identifierName","hashString","regex","Global","sheetRef","nonce","speedy","isSpeedy","querySelector","tags","before","sheetRefCurrent","nextElementSibling","_ease","kSampleStepSize","float32ArraySupported","Float32Array","aA1","aA2","B","C","calcBezier","aT","getSlope","bezier","mX1","mY1","mX2","mY2","sampleValues","getTForX","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","_aGuessT","aGuessT","currentSlope","newtonRaphsonIterate","_aA","_aB","currentX","currentT","aA","aB","binarySubdivide","Easing","step0","step1","ease","quad","cubic","poly","pow","sin","cos","circle","exp","elastic","bounciness","back","bounce","_t","_t2","t2","x1","y1","x2","y2","_bezier","in","inOut","objects","uniqueID","createKey","aspectRatio","gridRowGap","gridColumnGap","lineClamp","scaleZ","prefixes","toUpperCase","prefixKey","UNINITIALIZED","propIsEnumerable","propertyIsEnumerable","toObject","test1","test2","fromCharCode","test3","letter","shouldUseNative","to","processColor","int32Color","TouchableOpacity","setDuration","_useState2","opacityOverride","setOpacityOverride","setOpacityTo","setOpacityActive","setOpacityInactive","isGrant","MemoedTouchableOpacity","_insertTag","prepend","nextSibling","ctr","nodes","createTextNode","createStyleElement","styleSheets","ownerNode","sheetForTag","process","uppercasePattern","toHyphenLower","processIDRefList","idRefList","listStyle","pointerEventsStyles","auto","providedStyle","_prop","required","dataProp","dataName","dataValue","_focusable","reactNativeStyle","needsCursor","finalClassList","_styleResolver$resolv","nativeModule","_nativeModule","_this$_nativeModule","subscription","_this$_nativeModule2","removeListeners","_this$_nativeModule3","_this$_nativeModule4","listenerCount","EmitterSubscription","_EventSubscription2","emitter","subscriber","removeSubscription","_EventSubscription","EventSubscriptionVendor","_subscriptionsForType","addSubscription","removeAllSubscriptions","subscriptionsForType","getSubscriptionsForType","sparseFilterPredicate","_subscriber","subscriptions","isWebColor","toFixed","L","M","Q","H","hoistNonReactStatics","targetComponent","sourceComponent","hoistNonReactStatics$1","reactIs","REACT_STATICS","childContextTypes","contextTypes","getDefaultProps","getDerivedStateFromError","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","blacklist","inheritedComponent","targetStatics","sourceStatics","msPattern","hName","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","replacement","indexof","charat","begin","strlen","sizeof","append","combine","line","column","character","characters","return","caret","token","dealloc","delimit","delimiter","whitespace","escaping","commenter","compile","rulesets","pseudo","points","declarations","atrule","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","j","z","output","rulesheet","getRules","parsed","toRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","defaultStylisPlugins","ssrStyles","stylisPlugins","_insert","nodesToHydrate","attrib","omnipresentPlugins","currentSheet","finalizingPlugins","serializer","collection","shouldCache","_Animation","_config$overshootClam","_config$restDisplacem","_config$restSpeedThre","_config$velocity","_config$velocity2","_config$delay","_config$isInteraction","_config$iterations","_config$stiffness","_config$damping","_config$mass","_overshootClamping","overshootClamping","_restDisplacementThreshold","restDisplacementThreshold","_restSpeedThreshold","restSpeedThreshold","_initialVelocity","_lastVelocity","_toValue","isInteraction","__iterations","stiffness","damping","mass","speed","tension","friction","_stiffness","_damping","_mass","_config$bounciness","_config$speed","springConfig","SpringConfig","fromBouncinessAndSpeed","_config$tension","_config$friction","_springConfig","fromOrigamiTensionAndFriction","_this$_initialVelocit","initialVelocity","__active","_startPosition","_lastPosition","_onUpdate","_lastTime","_frameTime","internalState","getInternalState","lastPosition","lastVelocity","lastTime","_timeout","deltaTime","c","v0","zeta","omega0","omega1","envelope","_envelope","isOvershooting","isVelocity","isDisplacement","_animationFrame","requestAnimationFrame","cancelAnimationFrame","stiffnessFromOrigamiValue","oValue","dampingFromOrigamiValue","startValue","endValue","projectNormal","bouncyTension","bouncyFriction","b3Friction2","b3Friction3","b3Nobounce","linearInterpolation","_easeInOut","_config$easing","_config$duration","_easing","_duration","numFrames","_fromValue","_startTime","bech32m","bech32","ALPHABET","ALPHABET_MAP","polymodStep","pre","prefixChk","chk","convert","inBits","outBits","pad","bits","maxV","toWords","fromWordsUnsafe","words","fromWords","getLibraryFromEncoding","encoding","ENCODING_CONST","__decode","LIMIT","lowered","uppered","lastIndexOf","wordChars","decodeUnsafe","encode","initialURL","location","_eventCallbacks","filteredCallbacks","_dispatchEvent","getInitialURL","open","_validateURL","urlToOpen","URL","Button","buttonDisabled","textDisabled","textTransform","nodeInterop","cacheBabelInterop","cacheNodeInterop","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","getBlocksCount","errorCorrectionLevel","getTotalCodewordsCount","numeric","byte","BYTE_KANJI","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","hex2rgba","hex","hexCode","hexValue","dark","light","rendererOpts","getScale","qrSize","getImageWidth","floor","qrToImageData","imgData","qr","modules","symbolSize","scaledMargin","palette","posDst","pxColor","_interopDefault","ex","parse__default","camelizeStyleName","cssColorKeywords","hexColorRe","cssFunctionNameRe","noopToken","predicate","regExpToken","regExp","SPACE","SLASH","COMMA","WORD","NONE","AUTO","LENGTH","UNSUPPORTED_LENGTH_UNIT","ANGLE","angle","PERCENT","IDENT","STRING","charCode","COLOR","LINE","BORDER_STYLE","directionFactory","_ref$types","types","_ref$directions","directions","_ref$prefix","_ref$suffix","suffix","tokenStream","expect","hasTokens","expectEmpty","_values$","_values$2","_values$3","keyFor","parseShadowOffset","parseShadow","didParseFirst","lastValue","saveRewindPoint","rewind","FLEX_WRAP","FLEX_DIRECTION","NORMAL","STYLE","WEIGHT","VARIANT","defaultFontVariant","ALIGN_CONTENT","JUSTIFY_CONTENT","STYLE$1","tokenType","functionStream","singleNumber","singleLength","singleAngle","xyTransformFactory","valueIfOmitted","xyNumber","xyLength","xyAngle","partTransforms","translate","skewX","skewY","skew","background","partsParsed","_parseShadow","fontStyle","numStyleWeightVariantMatched","fontFamily$1","placeContent","_parseShadow2","lines","reverse","expectFunction","functionName","transformedValues","TokenStream","rewindIndex","tokenDescriptor","matchesFunction","numberOrLengthRe","boolRe","nullRe","undefinedRe","transformRawValue","propName","numberMatch","boolMatch","transformShorthandValue","ast","getStylesForProperty","inputValue","allowShorthand","_ref6","isRawValue","getPropertyName","shorthandBlacklist","accum","propertyName","_isObject2","combinedValue","processedValue","_prefixValue2","_addNewValuesOnly2","_processedValue","_prefixProperty2","_isPrefixedValue2","_isPrefixedValue","grab","grabbing","alternativeProps","alternativeValues","flexShorthandMappings","msFlex","logTag","flexValues","inherit","unset","WebkitBoxDirection","wrap","grad","_slicedToArray","_arr","_n","_d","_s","sliceIterator","isSimplePositionValue","isComplexSpanValue","displayValues","propertyConverters","propertyConverter","alignmentValues","msGridRowAlign","_value$split","_value$split2","_end$split","_end$split2","maybeSpan","maybeNumber","_value$split3","_value$split4","_end$split3","_end$split4","gridTemplateColumns","msGridColumns","gridTemplateRows","msGridRows","justifySelf","msGridColumnAlign","alternativePropList","marginBlockStart","marginBlockEnd","marginInlineStart","marginInlineEnd","paddingBlockStart","paddingBlockEnd","paddingInlineStart","paddingInlineEnd","borderBlockStart","borderBlockStartColor","borderBlockStartStyle","borderBlockStartWidth","borderBlockEnd","borderBlockEndColor","borderBlockEndStyle","borderBlockEndWidth","borderInlineStart","borderInlineStartColor","borderInlineStartStyle","borderInlineStartWidth","borderInlineEnd","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","properties","maxHeight","propertyPrefixMap","outputValue","multipleValues","dashCaseProperty","_hyphenateProperty2","pLen","unshift","prefixMapping","prefixValue","webkitOutput","mozOutput","_capitalizeString2","WebkitTransition","WebkitTransitionProperty","MozTransition","MozTransitionProperty","Webkit","Moz","TurboModuleRegistry","_config$deceleration","_deceleration","deceleration","_velocity","factory","ReactNoopUpdateQueue","updater","Info","any_blank_count","any_blank_ms","any_blank_speed_sum","mostly_blank_count","mostly_blank_ms","pixels_blank","pixels_sampled","pixels_scrolled","total_time_spent","sample_count","_minSampleCount","_sampleRate","_anyBlankStartTime","_enabled","_info","_mostlyBlankStartTime","_samplesStartTime","_resetData","setSampleRate","sampleRate","setMinSampleCount","minSampleCount","performance","scrollSpeed","blankTop","firstFrame","blankBottom","bottomEdge","blankness","canPromise","QRCode","CanvasRenderer","SvgRenderer","renderCanvas","renderFunc","canvas","argsNum","isLastArgCb","getContext","toCanvas","toDataURL","renderToDataURL","renderLogo","logo","logoSize","logoBackgroundColor","logoMargin","logoBorderRadius","logoPosition","logoBackgroundSize","logoBackgroundBorderRadius","rx","ry","preserveAspectRatio","quietZone","enableLinearGradient","gradientDirection","linearGradient","ecl","getRef","matrix","cellSize","needDraw","transformMatrixIntoPath","genMatrix","stopColor","d","strokeLinecap","Fragment","StrictMode","Profiler","Suspense","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","D","E","F","isPureReactComponent","G","I","__self","__source","J","$$typeof","_owner","N","escape","O","K","P","_status","R","S","T","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","IsSomeRendererActing","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Consumer","_context","createFactory","createRef","lazy","_payload","_init","useImperativeHandle","aa","ba","ca","da","ea","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","oa","pa","qa","ma","na","la","setAttributeNS","xlinkHref","ra","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","construct","Qa","_render","Ra","Sa","Ta","Va","_valueTracker","Ua","Wa","Xa","Ya","defaultChecked","_wrapperState","initialChecked","Za","controlled","$a","ab","bb","ownerDocument","eb","db","fb","selected","defaultSelected","gb","hb","ib","jb","kb","lb","mb","nb","ob","namespaceURI","innerHTML","valueOf","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeValue","qb","gridArea","rb","sb","tb","ub","menuitem","area","br","col","embed","hr","img","keygen","wbr","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","flags","$b","memoizedState","dehydrated","ac","cc","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","targetContainers","sc","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","pd","qd","rd","_reactName","_targetInst","isPersistent","wd","xd","yd","sd","td","ud","vd","Ad","screenX","getModifierState","zd","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","Vd","targetTouches","Xd","Yd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","Le","Me","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","defaultView","anchorOffset","focusOffset","Ve","We","Xe","Ye","Ze","Yb","$e","af","bf","cf","df","Nb","ef","ff","parentWindow","gf","hf","je","char","ke","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","Ng","componentWillReceiveProps","Og","getSnapshotBeforeUpdate","componentWillMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","getSnapshot","setSnapshot","Oh","Ph","Qh","Rh","destroy","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","hi","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","qi","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tail","tailMode","Ai","Fi","Gi","wasMultiple","onclick","createElementNS","V","Hi","Ii","W","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","extend","setStart","setEnd","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","sk","uk","hk","unstable_observedBits","unmount","Vj","vk","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","supportsFiber","inject","flushSync","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","_invoke","GenStateSuspendedStart","method","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","walk","ValueParser","bubble","unit","openParentheses","closeParentheses","singleQuote","doubleQuote","backslash","slash","comma","colon","star","uLower","uUpper","plus","isUnicodeRange","quote","escapePos","whitespacePos","parenthesesOpenPos","tokens","balanced","after","sourceIndex","unclosed","stringifyNode","customResult","minus","dot","EXP","nextCode","nextNextCode","likeNumber","isDate","isRegex","xs","objectKeys","camelCase","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","prefixProperties","newStyle","requiredPrefixes","capitalizedProperty","styleProperty","_capitalizeString","metaData","addIfNew","_hyphenateStyleName2","_hyphenateStyleName","ReactPropTypesSecret","emptyFunctionWithReset","resetWarningCache","shim","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","symbol","any","arrayOf","instanceOf","objectOf","oneOf","shape","exact","checkPropTypes","PropTypes","makeEmptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","_assign","_invariant","MIXINS_KEY","ReactComponent","injectedMixins","ReactClassInterface","statics","updateComponent","ReactClassStaticInterface","RESERVED_SPEC_KEYS","mixSpecIntoComponent","createMergedResultFunction","mixStaticSpecIntoComponent","autobind","validateMethodOverride","isAlreadyDefined","specPolicy","ReactClassMixin","spec","autoBindPairs","__reactAutoBindPairs","isReactClassMethod","createChainedFunction","mergeIntoWithNoDuplicateKeys","bindAutoBindMethod","IsMountedPreMixin","__isMounted","IsMountedPostMixin","ReactClassComponent","pairs","autoBindKey","bindAutoBindMethods","methodName","cE","ucE","prepare","rotation","originX","originY","hasTouchableProperty","clean","remeasure","WebShape","Circle","ClipPath","Defs","Ellipse","Line","LinearGradient","Path","Polygon","Polyline","RadialGradient","Rect","Stop","Svg","TSpan","TextPath","Use","Mask","ForeignObject","Marker","Pattern","assertThisInitialized","objectWithoutPropertiesLoose","sourceSymbolKeys","PRESS_RETENTION_OFFSET","SvgTouchableMixin","touchKeys","touchVals","numTouchKeys","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","arrayLikeToArray","BufferUtil","Utils","BitBuffer","BitMatrix","AlignmentPattern","FinderPattern","MaskPattern","ECCode","ReedSolomonEncoder","Version","FormatInfo","Mode","Segments","setupFormatInfo","maskPattern","mod","getEncodedBits","createData","segments","put","getLength","dataTotalCodewordsBits","getLengthInBits","putBit","remainingByte","bitBuffer","totalCodewords","ecTotalCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","rs","dcData","ecData","maxDataSize","dataSize","createCodewords","createSymbol","fromArray","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","moduleCount","getPositions","setupFinderPattern","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","inc","bitIndex","byteIndex","isReserved","setupData","getBestMask","applyMask","toSJISFunc","bufIndex","reservedBit","reserved","xor","getRowColCoords","posCount","intervals","positions","coords","posLength","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PenaltyScores","getMaskAt","getPenaltyN1","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","setupFormatFunc","numPatterns","bestPattern","lowerPenalty","penalty","Polynomial","degree","genPoly","initialize","generateECPolynomial","paddedData","remainder","buff","GF","mul","coeff","divident","divisor","EXP_TABLE","LOG_TABLE","base64","ieee754","kMaxLength","encodingOrOffset","isEncoding","assertSize","loweredCase","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","hexWrite","strLen","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","SlowBuffer","INSPECT_MAX_BYTES","_augment","allocUnsafeSlow","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","INVALID_BASE64_RE","toByteArray","stringtrim","base64clean","b64","lens","getLens","validLen","placeHoldersLen","tmp","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","parts","maxChunkLength","len2","encodeChunk","lookup","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","getBitsLength","getCapacity","usableBits","seg","currentVersion","getBestVersionForMixedData","getBestVersionForDataLength","G15_BCH","NumericData","AlphanumericData","ByteData","KanjiData","dijkstra","getStringByteLength","unescape","getSegments","getSegmentsFromString","byteSegs","kanjiSegs","numSegs","alphaNumSegs","s1","s2","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","segs","buildNodes","graph","table","prevNodeIds","nodeGroup","currentNodeIds","lastCount","prevNodeId","buildGraph","find_path","optimizedSegs","prevSeg","mergeSegments","remainingNum","ALPHA_NUM_CHARS","single_source_shortest_paths","predecessors","costs","closest","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","PriorityQueue","make","empty","cost","extract_shortest_path_from_predecessor_list","sorter","default_sorter","qrData","canvasEl","getCanvasElement","ctx","createImageData","clearRect","clearCanvas","putImageData","quality","getColorAttrib","alpha","svgCmd","cmd","qrcodesize","moveBy","newRow","lineLength","qrToPath","svgTag","jsx","jsxs","encodeCache","exclude","keepEscaped","defaultChars","getEncodeCache","componentChars","decodeCache","getDecodeCache","seq","b1","b2","b3","b4","chr","slashes","auth","hostname","port","pathname","Url","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","hostlessProtocol","slashedProtocol","slashesDenoteHost","lowerProto","hec","simplePath","atSign","hostEnd","host","parseHost","ipv6Hostname","hostparts","part","newpart","validParts","notHost","qm","sources","_class","isFunction","escapeRE","defaultOptions","fuzzyLink","fuzzyEmail","fuzzyIP","defaultSchemas","validate","http","src_auth","src_host_port_strict","src_path","no_http","src_domain","src_domain_root","src_port","src_host_terminator","mailto","src_email_name","src_host_strict","tlds_default","__opts__","tlds","__tlds__","untpl","tpl","src_tlds","onCompile","__tlds_replaced__","src_xn","email_fuzzy","tpl_email_fuzzy","link_fuzzy","tpl_link_fuzzy","link_no_ip_fuzzy","tpl_link_no_ip_fuzzy","host_fuzzy_test","tpl_host_fuzzy_test","aliases","schemaError","__compiled__","__schemas__","isRegExp","createValidator","isString","alias","slist","schema_test","src_ZPCc","schema_search","__index__","__text_cache__","resetScanCache","Match","__last_index__","schema","__schema__","createMatch","LinkifyIt","schemas","definition","ml","tld_pos","testSchemaAt","keepOld","src_Any","src_Cc","src_Z","src_P","src_ZCc","src_pseudo_letter","src_ip4","src_host","tpl_host_fuzzy","tpl_host_no_ip_fuzzy","tpl_host_fuzzy_strict","tpl_host_port_fuzzy_strict","tpl_host_port_no_ip_fuzzy_strict","requiredArgs","toDate","argument","argStr","getTime","compareAsc","dirtyDateLeft","dirtyDateRight","dateLeft","dateRight","differenceInCalendarMonths","yearDiff","getFullYear","monthDiff","getMonth","endOfDay","dirtyDate","setHours","endOfMonth","setFullYear","isLastDayOfMonth","differenceInMonths","sign","difference","getDate","setDate","setMonth","isLastMonthNotFull","differenceInMilliseconds","roundingMap","trunc","getRoundingMethod","differenceInSeconds","roundingMethod","formatDistanceLocale","lessThanXSeconds","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","tokenValue","addSuffix","comparison","buildFormatLongFn","defaultWidth","formats","formatLong","full","long","medium","short","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","formatRelative","_date","_baseDate","_options","buildLocalizeFn","dirtyIndex","dirtyOptions","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","localize","ordinalNumber","dirtyNumber","rem100","era","narrow","abbreviated","wide","quarter","day","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","findIndex","findKey","valueCallback","parsePattern","parseResult","weekStartsOn","firstWeekContainsDate","cloneObject","dirtyObject","getTimezoneOffsetInMilliseconds","utcDate","UTC","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","MINUTES_IN_DAY","MINUTES_IN_MONTH","dirtyBaseDate","defaultLocale","localizeOptions","months","seconds","offsetInSeconds","minutes","includeSeconds","hours","days","nearestMonth","monthsSinceStartOfYear","years"],"mappings":"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","file":"static/js/2.467a992b.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\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;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code 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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport css from '../StyleSheet/css';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from '../Text/TextAncestorContext';\n\nvar forwardPropsList = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, forwardedProps.defaultProps), forwardedProps.accessibilityProps), forwardedProps.clickProps), forwardedProps.focusProps), forwardedProps.keyboardProps), forwardedProps.mouseProps), forwardedProps.touchProps), forwardedProps.styleProps), {}, {\n href: true,\n lang: true,\n onScroll: true,\n onWheel: true,\n pointerEvents: true\n});\n\nvar pickProps = function pickProps(props) {\n return pick(props, forwardPropsList);\n};\n\nvar View = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var hrefAttrs = props.hrefAttrs,\n onLayout = props.onLayout,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture;\n\n if (process.env.NODE_ENV !== 'production') {\n React.Children.toArray(props.children).forEach(function (item) {\n if (typeof item === 'string') {\n console.error(\"Unexpected text node: \" + item + \". A text node cannot be a child of a .\");\n }\n });\n }\n\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hostRef = React.useRef(null);\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder: onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture: onMoveShouldSetResponderCapture,\n onResponderEnd: onResponderEnd,\n onResponderGrant: onResponderGrant,\n onResponderMove: onResponderMove,\n onResponderReject: onResponderReject,\n onResponderRelease: onResponderRelease,\n onResponderStart: onResponderStart,\n onResponderTerminate: onResponderTerminate,\n onResponderTerminationRequest: onResponderTerminationRequest,\n onScrollShouldSetResponder: onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture: onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder: onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture: onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder: onStartShouldSetResponder,\n onStartShouldSetResponderCapture: onStartShouldSetResponderCapture\n });\n var component = 'div';\n var style = StyleSheet.compose(hasTextAncestor && styles.inline, props.style);\n var supportedProps = pickProps(props);\n supportedProps.classList = classList;\n supportedProps.style = style;\n\n if (props.href != null) {\n component = 'a';\n\n if (hrefAttrs != null) {\n var download = hrefAttrs.download,\n rel = hrefAttrs.rel,\n target = hrefAttrs.target;\n\n if (download != null) {\n supportedProps.download = download;\n }\n\n if (rel != null) {\n supportedProps.rel = rel;\n }\n\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\n }\n }\n }\n\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement(component, supportedProps);\n});\nView.displayName = 'View';\nvar classes = css.create({\n view: {\n alignItems: 'stretch',\n border: '0 solid black',\n boxSizing: 'border-box',\n display: 'flex',\n flexBasis: 'auto',\n flexDirection: 'column',\n flexShrink: 0,\n margin: 0,\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n position: 'relative',\n zIndex: 0\n }\n});\nvar classList = [classes.view];\nvar styles = StyleSheet.create({\n inline: {\n display: 'inline-flex'\n }\n});\nexport default View;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\n\nvar ExecutionEnvironment = {\n canUseDOM: canUseDOM,\n canUseWorkers: typeof Worker !== 'undefined',\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n canUseViewport: canUseDOM && !!window.screen,\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\nmodule.exports = ExecutionEnvironment;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport NativeAnimatedNonTurboModule from './NativeAnimatedModule';\nimport NativeAnimatedTurboModule from './NativeAnimatedTurboModule';\nimport NativeEventEmitter from '../NativeEventEmitter';\nimport Platform from '../../../exports/Platform';\nimport invariant from 'fbjs/lib/invariant'; // TODO T69437152 @petetheheat - Delete this fork when Fabric ships to 100%.\n\nvar NativeAnimatedModule = Platform.OS === 'ios' && global.RN$Bridgeless ? NativeAnimatedTurboModule : NativeAnimatedNonTurboModule;\nvar __nativeAnimatedNodeTagCount = 1;\n/* used for animated nodes */\n\nvar __nativeAnimationIdCount = 1;\n/* used for started animations */\n\nvar nativeEventEmitter;\nvar waitingForQueuedOperations = new Set();\nvar queueOperations = false;\nvar queue = [];\n/**\n * Simple wrappers around NativeAnimatedModule to provide flow and autocomplete support for\n * the native module methods\n */\n\nvar API = {\n getValue: function getValue(tag, saveValueCallback) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n\n if (NativeAnimatedModule.getValue) {\n NativeAnimatedModule.getValue(tag, saveValueCallback);\n }\n },\n setWaitingForIdentifier: function setWaitingForIdentifier(id) {\n waitingForQueuedOperations.add(id);\n queueOperations = true;\n },\n unsetWaitingForIdentifier: function unsetWaitingForIdentifier(id) {\n waitingForQueuedOperations.delete(id);\n\n if (waitingForQueuedOperations.size === 0) {\n queueOperations = false;\n API.disableQueue();\n }\n },\n disableQueue: function disableQueue() {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n\n if (Platform.OS === 'android') {\n NativeAnimatedModule.startOperationBatch();\n }\n\n for (var q = 0, l = queue.length; q < l; q++) {\n queue[q]();\n }\n\n queue.length = 0;\n\n if (Platform.OS === 'android') {\n NativeAnimatedModule.finishOperationBatch();\n }\n },\n queueOperation: function queueOperation(fn) {\n if (queueOperations) {\n queue.push(fn);\n } else {\n fn();\n }\n },\n createAnimatedNode: function createAnimatedNode(tag, config) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.createAnimatedNode(tag, config);\n });\n },\n startListeningToAnimatedNodeValue: function startListeningToAnimatedNodeValue(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.startListeningToAnimatedNodeValue(tag);\n });\n },\n stopListeningToAnimatedNodeValue: function stopListeningToAnimatedNodeValue(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.stopListeningToAnimatedNodeValue(tag);\n });\n },\n connectAnimatedNodes: function connectAnimatedNodes(parentTag, childTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.connectAnimatedNodes(parentTag, childTag);\n });\n },\n disconnectAnimatedNodes: function disconnectAnimatedNodes(parentTag, childTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.disconnectAnimatedNodes(parentTag, childTag);\n });\n },\n startAnimatingNode: function startAnimatingNode(animationId, nodeTag, config, endCallback) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.startAnimatingNode(animationId, nodeTag, config, endCallback);\n });\n },\n stopAnimation: function stopAnimation(animationId) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.stopAnimation(animationId);\n });\n },\n setAnimatedNodeValue: function setAnimatedNodeValue(nodeTag, value) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.setAnimatedNodeValue(nodeTag, value);\n });\n },\n setAnimatedNodeOffset: function setAnimatedNodeOffset(nodeTag, offset) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.setAnimatedNodeOffset(nodeTag, offset);\n });\n },\n flattenAnimatedNodeOffset: function flattenAnimatedNodeOffset(nodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.flattenAnimatedNodeOffset(nodeTag);\n });\n },\n extractAnimatedNodeOffset: function extractAnimatedNodeOffset(nodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.extractAnimatedNodeOffset(nodeTag);\n });\n },\n connectAnimatedNodeToView: function connectAnimatedNodeToView(nodeTag, viewTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.connectAnimatedNodeToView(nodeTag, viewTag);\n });\n },\n disconnectAnimatedNodeFromView: function disconnectAnimatedNodeFromView(nodeTag, viewTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.disconnectAnimatedNodeFromView(nodeTag, viewTag);\n });\n },\n restoreDefaultValues: function restoreDefaultValues(nodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available'); // Backwards compat with older native runtimes, can be removed later.\n\n if (NativeAnimatedModule.restoreDefaultValues != null) {\n API.queueOperation(function () {\n return NativeAnimatedModule.restoreDefaultValues(nodeTag);\n });\n }\n },\n dropAnimatedNode: function dropAnimatedNode(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.dropAnimatedNode(tag);\n });\n },\n addAnimatedEventToView: function addAnimatedEventToView(viewTag, eventName, eventMapping) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.addAnimatedEventToView(viewTag, eventName, eventMapping);\n });\n },\n removeAnimatedEventFromView: function removeAnimatedEventFromView(viewTag, eventName, animatedNodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.removeAnimatedEventFromView(viewTag, eventName, animatedNodeTag);\n });\n }\n};\n/**\n * Styles allowed by the native animated implementation.\n *\n * In general native animated implementation should support any numeric property that doesn't need\n * to be updated through the shadow view hierarchy (all non-layout properties).\n */\n\nvar SUPPORTED_STYLES = {\n opacity: true,\n transform: true,\n borderRadius: true,\n borderBottomEndRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomStartRadius: true,\n borderTopEndRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopStartRadius: true,\n elevation: true,\n zIndex: true,\n\n /* ios styles */\n shadowOpacity: true,\n shadowRadius: true,\n\n /* legacy android transform properties */\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true\n};\nvar SUPPORTED_TRANSFORMS = {\n translateX: true,\n translateY: true,\n scale: true,\n scaleX: true,\n scaleY: true,\n rotate: true,\n rotateX: true,\n rotateY: true,\n rotateZ: true,\n perspective: true\n};\nvar SUPPORTED_INTERPOLATION_PARAMS = {\n inputRange: true,\n outputRange: true,\n extrapolate: true,\n extrapolateRight: true,\n extrapolateLeft: true\n};\n\nfunction addWhitelistedStyleProp(prop) {\n SUPPORTED_STYLES[prop] = true;\n}\n\nfunction addWhitelistedTransformProp(prop) {\n SUPPORTED_TRANSFORMS[prop] = true;\n}\n\nfunction addWhitelistedInterpolationParam(param) {\n SUPPORTED_INTERPOLATION_PARAMS[param] = true;\n}\n\nfunction validateTransform(configs) {\n configs.forEach(function (config) {\n if (!SUPPORTED_TRANSFORMS.hasOwnProperty(config.property)) {\n throw new Error(\"Property '\" + config.property + \"' is not supported by native animated module\");\n }\n });\n}\n\nfunction validateStyles(styles) {\n for (var _key in styles) {\n if (!SUPPORTED_STYLES.hasOwnProperty(_key)) {\n throw new Error(\"Style property '\" + _key + \"' is not supported by native animated module\");\n }\n }\n}\n\nfunction validateInterpolation(config) {\n for (var _key2 in config) {\n if (!SUPPORTED_INTERPOLATION_PARAMS.hasOwnProperty(_key2)) {\n throw new Error(\"Interpolation property '\" + _key2 + \"' is not supported by native animated module\");\n }\n }\n}\n\nfunction generateNewNodeTag() {\n return __nativeAnimatedNodeTagCount++;\n}\n\nexport function generateNewAnimationId() {\n return __nativeAnimationIdCount++;\n}\n\nfunction assertNativeAnimatedModule() {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n}\n\nvar _warnedMissingNativeAnimated = false;\nexport function shouldUseNativeDriver(config) {\n if (config.useNativeDriver == null) {\n console.warn('Animated: `useNativeDriver` was not specified. This is a required ' + 'option and must be explicitly set to `true` or `false`');\n }\n\n if (config.useNativeDriver === true && !NativeAnimatedModule) {\n if (!_warnedMissingNativeAnimated) {\n console.warn('Animated: `useNativeDriver` is not supported because the native ' + 'animated module is missing. Falling back to JS-based animation. To ' + 'resolve this, add `RCTAnimation` module to this app, or remove ' + '`useNativeDriver`. ' + 'Make sure to run `pod install` first. Read more about autolinking: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md');\n _warnedMissingNativeAnimated = true;\n }\n\n return false;\n }\n\n return config.useNativeDriver || false;\n}\n\nfunction transformDataType(value) {\n // Change the string type to number type so we can reuse the same logic in\n // iOS and Android platform\n if (typeof value !== 'string') {\n return value;\n }\n\n if (/deg$/.test(value)) {\n var degrees = parseFloat(value) || 0;\n var radians = degrees * Math.PI / 180.0;\n return radians;\n } else {\n return value;\n }\n}\n\nexport default {\n API: API,\n addWhitelistedStyleProp: addWhitelistedStyleProp,\n addWhitelistedTransformProp: addWhitelistedTransformProp,\n addWhitelistedInterpolationParam: addWhitelistedInterpolationParam,\n validateStyles: validateStyles,\n validateTransform: validateTransform,\n validateInterpolation: validateInterpolation,\n generateNewNodeTag: generateNewNodeTag,\n generateNewAnimationId: generateNewAnimationId,\n assertNativeAnimatedModule: assertNativeAnimatedModule,\n shouldUseNativeDriver: shouldUseNativeDriver,\n transformDataType: transformDataType,\n\n // $FlowExpectedError - unsafe getter lint suppresion\n get nativeEventEmitter() {\n if (!nativeEventEmitter) {\n nativeEventEmitter = new NativeEventEmitter(NativeAnimatedModule);\n }\n\n return nativeEventEmitter;\n }\n\n};","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar NativeAnimatedAPI = NativeAnimatedHelper.API;\nimport invariant from 'fbjs/lib/invariant';\nvar _uniqueId = 1; // Note(vjeux): this would be better as an interface but flow doesn't\n// support them yet\n\nvar AnimatedNode = /*#__PURE__*/function () {\n var _proto = AnimatedNode.prototype;\n\n _proto.__attach = function __attach() {};\n\n _proto.__detach = function __detach() {\n if (this.__isNative && this.__nativeTag != null) {\n NativeAnimatedHelper.API.dropAnimatedNode(this.__nativeTag);\n this.__nativeTag = undefined;\n }\n };\n\n _proto.__getValue = function __getValue() {};\n\n _proto.__getAnimatedValue = function __getAnimatedValue() {\n return this.__getValue();\n };\n\n _proto.__addChild = function __addChild(child) {};\n\n _proto.__removeChild = function __removeChild(child) {};\n\n _proto.__getChildren = function __getChildren() {\n return [];\n }\n /* Methods and props used by native Animated impl */\n ;\n\n function AnimatedNode() {\n this._listeners = {};\n }\n\n _proto.__makeNative = function __makeNative() {\n if (!this.__isNative) {\n throw new Error('This node cannot be made a \"native\" animated node');\n }\n\n if (this.hasListeners()) {\n this._startListeningToNativeValueUpdates();\n }\n }\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to\n * synchronously read the value because it might be driven natively.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#addlistener\n */\n ;\n\n _proto.addListener = function addListener(callback) {\n var id = String(_uniqueId++);\n this._listeners[id] = callback;\n\n if (this.__isNative) {\n this._startListeningToNativeValueUpdates();\n }\n\n return id;\n }\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#removelistener\n */\n ;\n\n _proto.removeListener = function removeListener(id) {\n delete this._listeners[id];\n\n if (this.__isNative && !this.hasListeners()) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#removealllisteners\n */\n ;\n\n _proto.removeAllListeners = function removeAllListeners() {\n this._listeners = {};\n\n if (this.__isNative) {\n this._stopListeningForNativeValueUpdates();\n }\n };\n\n _proto.hasListeners = function hasListeners() {\n return !!Object.keys(this._listeners).length;\n };\n\n _proto._startListeningToNativeValueUpdates = function _startListeningToNativeValueUpdates() {\n var _this = this;\n\n if (this.__nativeAnimatedValueListener && !this.__shouldUpdateListenersForNewNativeTag) {\n return;\n }\n\n if (this.__shouldUpdateListenersForNewNativeTag) {\n this.__shouldUpdateListenersForNewNativeTag = false;\n\n this._stopListeningForNativeValueUpdates();\n }\n\n NativeAnimatedAPI.startListeningToAnimatedNodeValue(this.__getNativeTag());\n this.__nativeAnimatedValueListener = NativeAnimatedHelper.nativeEventEmitter.addListener('onAnimatedValueUpdate', function (data) {\n if (data.tag !== _this.__getNativeTag()) {\n return;\n }\n\n _this._onAnimatedValueUpdateReceived(data.value);\n });\n };\n\n _proto._onAnimatedValueUpdateReceived = function _onAnimatedValueUpdateReceived(value) {\n this.__callListeners(value);\n };\n\n _proto.__callListeners = function __callListeners(value) {\n for (var _key in this._listeners) {\n this._listeners[_key]({\n value: value\n });\n }\n };\n\n _proto._stopListeningForNativeValueUpdates = function _stopListeningForNativeValueUpdates() {\n if (!this.__nativeAnimatedValueListener) {\n return;\n }\n\n this.__nativeAnimatedValueListener.remove();\n\n this.__nativeAnimatedValueListener = null;\n NativeAnimatedAPI.stopListeningToAnimatedNodeValue(this.__getNativeTag());\n };\n\n _proto.__getNativeTag = function __getNativeTag() {\n var _this$__nativeTag;\n\n NativeAnimatedHelper.assertNativeAnimatedModule();\n invariant(this.__isNative, 'Attempt to get native tag from node not marked as \"native\"');\n var nativeTag = (_this$__nativeTag = this.__nativeTag) !== null && _this$__nativeTag !== void 0 ? _this$__nativeTag : NativeAnimatedHelper.generateNewNodeTag();\n\n if (this.__nativeTag == null) {\n this.__nativeTag = nativeTag;\n NativeAnimatedHelper.API.createAnimatedNode(nativeTag, this.__getNativeConfig());\n this.__shouldUpdateListenersForNewNativeTag = true;\n }\n\n return nativeTag;\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n throw new Error('This JS animated node type cannot be used as native animated node');\n };\n\n _proto.toJSON = function toJSON() {\n return this.__getValue();\n };\n\n return AnimatedNode;\n}();\n\nexport default AnimatedNode;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport InteractionManager from '../../../../exports/InteractionManager';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar NativeAnimatedAPI = NativeAnimatedHelper.API;\n/**\n * Animated works by building a directed acyclic graph of dependencies\n * transparently when you render your Animated components.\n *\n * new Animated.Value(0)\n * .interpolate() .interpolate() new Animated.Value(1)\n * opacity translateY scale\n * style transform\n * View#234 style\n * View#123\n *\n * A) Top Down phase\n * When an Animated.Value is updated, we recursively go down through this\n * graph in order to find leaf nodes: the views that we flag as needing\n * an update.\n *\n * B) Bottom Up phase\n * When a view is flagged as needing an update, we recursively go back up\n * in order to build the new value that it needs. The reason why we need\n * this two-phases process is to deal with composite props such as\n * transform which can receive values from multiple parents.\n */\n\nfunction _flush(rootNode) {\n var animatedStyles = new Set();\n\n function findAnimatedStyles(node) {\n /* $FlowFixMe(>=0.68.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.68 was deployed. To see the error delete this\n * comment and run Flow. */\n if (typeof node.update === 'function') {\n animatedStyles.add(node);\n } else {\n node.__getChildren().forEach(findAnimatedStyles);\n }\n }\n\n findAnimatedStyles(rootNode);\n /* $FlowFixMe */\n\n animatedStyles.forEach(function (animatedStyle) {\n return animatedStyle.update();\n });\n}\n/**\n * Standard value for driving animations. One `Animated.Value` can drive\n * multiple properties in a synchronized fashion, but can only be driven by one\n * mechanism at a time. Using a new mechanism (e.g. starting a new animation,\n * or calling `setValue`) will stop any previous ones.\n *\n * See https://reactnative.dev/docs/animatedvalue.html\n */\n\n\nvar AnimatedValue = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedValue, _AnimatedWithChildren);\n\n function AnimatedValue(value) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n\n if (typeof value !== 'number') {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n\n _this._startingValue = _this._value = value;\n _this._offset = 0;\n _this._animation = null;\n return _this;\n }\n\n var _proto = AnimatedValue.prototype;\n\n _proto.__detach = function __detach() {\n var _this2 = this;\n\n if (this.__isNative) {\n NativeAnimatedAPI.getValue(this.__getNativeTag(), function (value) {\n _this2._value = value;\n });\n }\n\n this.stopAnimation();\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n return this._value + this._offset;\n }\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#setvalue\n */\n ;\n\n _proto.setValue = function setValue(value) {\n if (this._animation) {\n this._animation.stop();\n\n this._animation = null;\n }\n\n this._updateValue(value, !this.__isNative\n /* don't perform a flush for natively driven values */\n );\n\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeValue(this.__getNativeTag(), value);\n }\n }\n /**\n * Sets an offset that is applied on top of whatever value is set, whether via\n * `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#setoffset\n */\n ;\n\n _proto.setOffset = function setOffset(offset) {\n this._offset = offset;\n\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeOffset(this.__getNativeTag(), offset);\n }\n }\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#flattenoffset\n */\n ;\n\n _proto.flattenOffset = function flattenOffset() {\n this._value += this._offset;\n this._offset = 0;\n\n if (this.__isNative) {\n NativeAnimatedAPI.flattenAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n /**\n * Sets the offset value to the base value, and resets the base value to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#extractoffset\n */\n ;\n\n _proto.extractOffset = function extractOffset() {\n this._offset += this._value;\n this._value = 0;\n\n if (this.__isNative) {\n NativeAnimatedAPI.extractAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#stopanimation\n */\n ;\n\n _proto.stopAnimation = function stopAnimation(callback) {\n this.stopTracking();\n this._animation && this._animation.stop();\n this._animation = null;\n callback && callback(this.__getValue());\n }\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#resetanimation\n */\n ;\n\n _proto.resetAnimation = function resetAnimation(callback) {\n this.stopAnimation(callback);\n this._value = this._startingValue;\n };\n\n _proto._onAnimatedValueUpdateReceived = function _onAnimatedValueUpdateReceived(value) {\n this._updateValue(value, false\n /*flush*/\n );\n }\n /**\n * Interpolates the value before updating the property, e.g. mapping 0-1 to\n * 0-10.\n */\n ;\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n /**\n * Typically only used internally, but could be used by a custom Animation\n * class.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#animate\n */\n ;\n\n _proto.animate = function animate(animation, callback) {\n var _this3 = this;\n\n var handle = null;\n\n if (animation.__isInteraction) {\n handle = InteractionManager.createInteractionHandle();\n }\n\n var previousAnimation = this._animation;\n this._animation && this._animation.stop();\n this._animation = animation;\n animation.start(this._value, function (value) {\n // Natively driven animations will never call into that callback, therefore we can always\n // pass flush = true to allow the updated value to propagate to native with setNativeProps\n _this3._updateValue(value, true\n /* flush */\n );\n }, function (result) {\n _this3._animation = null;\n\n if (handle !== null) {\n InteractionManager.clearInteractionHandle(handle);\n }\n\n callback && callback(result);\n }, previousAnimation, this);\n }\n /**\n * Typically only used internally.\n */\n ;\n\n _proto.stopTracking = function stopTracking() {\n this._tracking && this._tracking.__detach();\n this._tracking = null;\n }\n /**\n * Typically only used internally.\n */\n ;\n\n _proto.track = function track(tracking) {\n this.stopTracking();\n this._tracking = tracking;\n };\n\n _proto._updateValue = function _updateValue(value, flush) {\n if (value === undefined) {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n\n this._value = value;\n\n if (flush) {\n _flush(this);\n }\n\n _AnimatedWithChildren.prototype.__callListeners.call(this, this.__getValue());\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'value',\n value: this._value,\n offset: this._offset\n };\n };\n\n return AnimatedValue;\n}(AnimatedWithChildren);\n\nexport default AnimatedValue;","/**\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};","/* eslint-disable */\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.0.0\n * \n */\nimport isUnitlessNumber from '../unitlessNumbers';\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n\n if (isEmpty) {\n return '';\n }\n\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return ('' + value).trim();\n}\n\nexport default dangerousStyleValue;","/* eslint-disable */\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.3.0\n * \n */\nimport dangerousStyleValue from './dangerousStyleValue';\n/**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\n\nfunction setValueForStyles(node, styles) {\n var style = node.style;\n\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n\n var isCustomProperty = styleName.indexOf('--') === 0;\n var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n\n if (isCustomProperty) {\n style.setProperty(styleName, styleValue);\n } else {\n style[styleName] = styleValue;\n }\n }\n}\n\nexport default setValueForStyles;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nimport setValueForStyles from '../../modules/setValueForStyles';\n\nvar getRect = function getRect(node) {\n // Unlike the DOM's getBoundingClientRect, React Native layout measurements\n // for \"height\" and \"width\" ignore scale transforms.\n // https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model/Determining_the_dimensions_of_elements\n var _getBoundingClientRec = getBoundingClientRect(node),\n x = _getBoundingClientRec.x,\n y = _getBoundingClientRec.y,\n top = _getBoundingClientRec.top,\n left = _getBoundingClientRec.left;\n\n var width = node.offsetWidth;\n var height = node.offsetHeight;\n return {\n x: x,\n y: y,\n width: width,\n height: height,\n top: top,\n left: left\n };\n};\n\nvar _measureLayout = function measureLayout(node, relativeToNativeNode, callback) {\n var relativeNode = relativeToNativeNode || node && node.parentNode;\n\n if (node && relativeNode) {\n setTimeout(function () {\n var relativeRect = getBoundingClientRect(relativeNode);\n\n var _getRect = getRect(node),\n height = _getRect.height,\n left = _getRect.left,\n top = _getRect.top,\n width = _getRect.width;\n\n var x = left - relativeRect.left;\n var y = top - relativeRect.top;\n callback(x, y, width, height, left, top);\n }, 0);\n }\n};\n\nvar focusableElements = {\n A: true,\n INPUT: true,\n SELECT: true,\n TEXTAREA: true\n};\nvar UIManager = {\n blur: function blur(node) {\n try {\n node.blur();\n } catch (err) {}\n },\n focus: function focus(node) {\n try {\n var name = node.nodeName; // A tabIndex of -1 allows element to be programmatically focused but\n // prevents keyboard focus, so we don't want to set the value on elements\n // that support keyboard focus by default.\n\n if (node.getAttribute('tabIndex') == null && focusableElements[name] == null) {\n node.setAttribute('tabIndex', '-1');\n }\n\n node.focus();\n } catch (err) {}\n },\n measure: function measure(node, callback) {\n _measureLayout(node, null, callback);\n },\n measureInWindow: function measureInWindow(node, callback) {\n if (node) {\n setTimeout(function () {\n var _getRect2 = getRect(node),\n height = _getRect2.height,\n left = _getRect2.left,\n top = _getRect2.top,\n width = _getRect2.width;\n\n callback(left, top, width, height);\n }, 0);\n }\n },\n measureLayout: function measureLayout(node, relativeToNativeNode, onFail, onSuccess) {\n _measureLayout(node, relativeToNativeNode, onSuccess);\n },\n updateView: function updateView(node, props) {\n for (var prop in props) {\n if (!Object.prototype.hasOwnProperty.call(props, prop)) {\n continue;\n }\n\n var value = props[prop];\n\n switch (prop) {\n case 'style':\n {\n setValueForStyles(node, value);\n break;\n }\n\n case 'class':\n case 'className':\n {\n node.setAttribute('class', value);\n break;\n }\n\n case 'text':\n case 'value':\n // native platforms use `text` prop to replace text input value\n node.value = value;\n break;\n\n default:\n node.setAttribute(prop, value);\n }\n }\n },\n configureNextLayoutAnimation: function configureNextLayoutAnimation(config, onAnimationDidEnd) {\n onAnimationDidEnd();\n },\n // mocks\n setLayoutAnimationEnabledExperimental: function setLayoutAnimationEnabledExperimental() {}\n};\nexport default UIManager;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport AccessibilityUtil from '../../modules/AccessibilityUtil';\nimport createDOMProps from '../../modules/createDOMProps';\nimport React from 'react';\n\nvar createElement = function createElement(component, props) {\n // Use equivalent platform elements where possible.\n var accessibilityComponent;\n\n if (component && component.constructor === String) {\n accessibilityComponent = AccessibilityUtil.propsToAccessibilityComponent(props);\n }\n\n var Component = accessibilityComponent || component;\n var domProps = createDOMProps(Component, props);\n\n for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n children[_key - 2] = arguments[_key];\n }\n\n return /*#__PURE__*/React.createElement.apply(React, [Component, domProps].concat(children));\n};\n\nexport default createElement;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedNode from './AnimatedNode';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\n\nvar AnimatedWithChildren = /*#__PURE__*/function (_AnimatedNode) {\n _inheritsLoose(AnimatedWithChildren, _AnimatedNode);\n\n function AnimatedWithChildren() {\n var _this;\n\n _this = _AnimatedNode.call(this) || this;\n _this._children = [];\n return _this;\n }\n\n var _proto = AnimatedWithChildren.prototype;\n\n _proto.__makeNative = function __makeNative() {\n if (!this.__isNative) {\n this.__isNative = true;\n\n for (var _iterator = _createForOfIteratorHelperLoose(this._children), _step; !(_step = _iterator()).done;) {\n var child = _step.value;\n\n child.__makeNative();\n\n NativeAnimatedHelper.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n }\n\n _AnimatedNode.prototype.__makeNative.call(this);\n };\n\n _proto.__addChild = function __addChild(child) {\n if (this._children.length === 0) {\n this.__attach();\n }\n\n this._children.push(child);\n\n if (this.__isNative) {\n // Only accept \"native\" animated nodes as children\n child.__makeNative();\n\n NativeAnimatedHelper.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n };\n\n _proto.__removeChild = function __removeChild(child) {\n var index = this._children.indexOf(child);\n\n if (index === -1) {\n console.warn(\"Trying to remove a child that doesn't exist\");\n return;\n }\n\n if (this.__isNative && child.__isNative) {\n NativeAnimatedHelper.API.disconnectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n\n this._children.splice(index, 1);\n\n if (this._children.length === 0) {\n this.__detach();\n }\n };\n\n _proto.__getChildren = function __getChildren() {\n return this._children;\n };\n\n _proto.__callListeners = function __callListeners(value) {\n _AnimatedNode.prototype.__callListeners.call(this, value);\n\n if (!this.__isNative) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this._children), _step2; !(_step2 = _iterator2()).done;) {\n var child = _step2.value;\n\n if (child.__getValue) {\n child.__callListeners(child.__getValue());\n }\n }\n }\n };\n\n return AnimatedWithChildren;\n}(AnimatedNode);\n\nexport default AnimatedWithChildren;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n/* eslint no-bitwise: 0 */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport invariant from 'fbjs/lib/invariant';\nimport normalizeColor from 'normalize-css-color';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar linear = function linear(t) {\n return t;\n};\n/**\n * Very handy helper to map input ranges to output ranges with an easing\n * function and custom behavior outside of the ranges.\n */\n\n\nfunction createInterpolation(config) {\n if (config.outputRange && typeof config.outputRange[0] === 'string') {\n return createInterpolationFromStringOutputRange(config);\n }\n\n var outputRange = config.outputRange;\n checkInfiniteRange('outputRange', outputRange);\n var inputRange = config.inputRange;\n checkInfiniteRange('inputRange', inputRange);\n checkValidInputRange(inputRange);\n invariant(inputRange.length === outputRange.length, 'inputRange (' + inputRange.length + ') and outputRange (' + outputRange.length + ') must have the same length');\n var easing = config.easing || linear;\n var extrapolateLeft = 'extend';\n\n if (config.extrapolateLeft !== undefined) {\n extrapolateLeft = config.extrapolateLeft;\n } else if (config.extrapolate !== undefined) {\n extrapolateLeft = config.extrapolate;\n }\n\n var extrapolateRight = 'extend';\n\n if (config.extrapolateRight !== undefined) {\n extrapolateRight = config.extrapolateRight;\n } else if (config.extrapolate !== undefined) {\n extrapolateRight = config.extrapolate;\n }\n\n return function (input) {\n invariant(typeof input === 'number', 'Cannot interpolation an input which is not a number');\n var range = findRange(input, inputRange);\n return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight);\n };\n}\n\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight) {\n var result = input; // Extrapolate\n\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') {\n return result;\n } else if (extrapolateLeft === 'clamp') {\n result = inputMin;\n } else if (extrapolateLeft === 'extend') {// noop\n }\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') {\n return result;\n } else if (extrapolateRight === 'clamp') {\n result = inputMax;\n } else if (extrapolateRight === 'extend') {// noop\n }\n }\n\n if (outputMin === outputMax) {\n return outputMin;\n }\n\n if (inputMin === inputMax) {\n if (input <= inputMin) {\n return outputMin;\n }\n\n return outputMax;\n } // Input Range\n\n\n if (inputMin === -Infinity) {\n result = -result;\n } else if (inputMax === Infinity) {\n result = result - inputMin;\n } else {\n result = (result - inputMin) / (inputMax - inputMin);\n } // Easing\n\n\n result = easing(result); // Output Range\n\n if (outputMin === -Infinity) {\n result = -result;\n } else if (outputMax === Infinity) {\n result = result + outputMin;\n } else {\n result = result * (outputMax - outputMin) + outputMin;\n }\n\n return result;\n}\n\nfunction colorToRgba(input) {\n var normalizedColor = normalizeColor(input);\n\n if (normalizedColor === null || typeof normalizedColor !== 'number') {\n return input;\n }\n\n normalizedColor = normalizedColor || 0;\n var r = (normalizedColor & 0xff000000) >>> 24;\n var g = (normalizedColor & 0x00ff0000) >>> 16;\n var b = (normalizedColor & 0x0000ff00) >>> 8;\n var a = (normalizedColor & 0x000000ff) / 255;\n return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + a + \")\";\n}\n\nvar stringShapeRegex = /[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?/g;\n/**\n * Supports string shapes by extracting numbers so new values can be computed,\n * and recombines those values into new strings of the same shape. Supports\n * things like:\n *\n * rgba(123, 42, 99, 0.36) // colors\n * -45deg // values with units\n */\n\nfunction createInterpolationFromStringOutputRange(config) {\n var outputRange = config.outputRange;\n invariant(outputRange.length >= 2, 'Bad output range');\n outputRange = outputRange.map(colorToRgba);\n checkPattern(outputRange); // ['rgba(0, 100, 200, 0)', 'rgba(50, 150, 250, 0.5)']\n // ->\n // [\n // [0, 50],\n // [100, 150],\n // [200, 250],\n // [0, 0.5],\n // ]\n\n /* $FlowFixMe(>=0.18.0): `outputRange[0].match()` can return `null`. Need to\n * guard against this possibility.\n */\n\n var outputRanges = outputRange[0].match(stringShapeRegex).map(function () {\n return [];\n });\n outputRange.forEach(function (value) {\n /* $FlowFixMe(>=0.18.0): `value.match()` can return `null`. Need to guard\n * against this possibility.\n */\n value.match(stringShapeRegex).forEach(function (number, i) {\n outputRanges[i].push(+number);\n });\n });\n var interpolations = outputRange[0].match(stringShapeRegex)\n /* $FlowFixMe(>=0.18.0): `outputRange[0].match()` can return `null`. Need\n * to guard against this possibility. */\n .map(function (value, i) {\n return createInterpolation(_objectSpread(_objectSpread({}, config), {}, {\n outputRange: outputRanges[i]\n }));\n }); // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to\n // round the opacity (4th column).\n\n var shouldRound = isRgbOrRgba(outputRange[0]);\n return function (input) {\n var i = 0; // 'rgba(0, 100, 200, 0)'\n // ->\n // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...'\n\n return outputRange[0].replace(stringShapeRegex, function () {\n var val = +interpolations[i++](input);\n\n if (shouldRound) {\n val = i < 4 ? Math.round(val) : Math.round(val * 1000) / 1000;\n }\n\n return String(val);\n });\n };\n}\n\nfunction isRgbOrRgba(range) {\n return typeof range === 'string' && range.startsWith('rgb');\n}\n\nfunction checkPattern(arr) {\n var pattern = arr[0].replace(stringShapeRegex, '');\n\n for (var i = 1; i < arr.length; ++i) {\n invariant(pattern === arr[i].replace(stringShapeRegex, ''), 'invalid pattern ' + arr[0] + ' and ' + arr[i]);\n }\n}\n\nfunction findRange(input, inputRange) {\n var i;\n\n for (i = 1; i < inputRange.length - 1; ++i) {\n if (inputRange[i] >= input) {\n break;\n }\n }\n\n return i - 1;\n}\n\nfunction checkValidInputRange(arr) {\n invariant(arr.length >= 2, 'inputRange must have at least 2 elements');\n\n for (var i = 1; i < arr.length; ++i) {\n invariant(arr[i] >= arr[i - 1],\n /* $FlowFixMe(>=0.13.0) - In the addition expression below this comment,\n * one or both of the operands may be something that doesn't cleanly\n * convert to a string, like undefined, null, and object, etc. If you really\n * mean this implicit string conversion, you can do something like\n * String(myThing)\n */\n 'inputRange must be monotonically non-decreasing ' + arr);\n }\n}\n\nfunction checkInfiniteRange(name, arr) {\n invariant(arr.length >= 2, name + ' must have at least 2 elements');\n invariant(arr.length !== 2 || arr[0] !== -Infinity || arr[1] !== Infinity,\n /* $FlowFixMe(>=0.13.0) - In the addition expression below this comment,\n * one or both of the operands may be something that doesn't cleanly convert\n * to a string, like undefined, null, and object, etc. If you really mean\n * this implicit string conversion, you can do something like\n * String(myThing)\n */\n name + 'cannot be ]-infinity;+infinity[ ' + arr);\n}\n\nvar AnimatedInterpolation = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedInterpolation, _AnimatedWithChildren);\n\n // Export for testing.\n function AnimatedInterpolation(parent, config) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._parent = parent;\n _this._config = config;\n _this._interpolation = createInterpolation(config);\n return _this;\n }\n\n var _proto = AnimatedInterpolation.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._parent.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n var parentValue = this._parent.__getValue();\n\n invariant(typeof parentValue === 'number', 'Cannot interpolate an input which is not a number.');\n return this._interpolation(parentValue);\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__attach = function __attach() {\n this._parent.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._parent.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__transformDataType = function __transformDataType(range) {\n return range.map(NativeAnimatedHelper.transformDataType);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n if (__DEV__) {\n NativeAnimatedHelper.validateInterpolation(this._config);\n }\n\n return {\n inputRange: this._config.inputRange,\n // Only the `outputRange` can contain strings so we don't need to transform `inputRange` here\n\n /* $FlowFixMe(>=0.38.0) - Flow error detected during the deployment of\n * v0.38.0. To see the error, remove this comment and run flow */\n outputRange: this.__transformDataType(this._config.outputRange),\n extrapolateLeft: this._config.extrapolateLeft || this._config.extrapolate || 'extend',\n extrapolateRight: this._config.extrapolateRight || this._config.extrapolate || 'extend',\n type: 'interpolation'\n };\n };\n\n return AnimatedInterpolation;\n}(AnimatedWithChildren);\n\nAnimatedInterpolation.__createInterpolation = createInterpolation;\nexport default AnimatedInterpolation;","export * from './ReactNativeSVG';\n\nexport { default } from './ReactNativeSVG';\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}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import { createContext, useContext, forwardRef, createElement } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../isolated-hoist-non-react-statics-do-not-use-this-in-your-code/dist/emotion-react-isolated-hoist-non-react-statics-do-not-use-this-in-your-code.browser.esm.js';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = useContext(ThemeContext);\n return /*#__PURE__*/createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\n// thus we only need to replace what is a valid character for JS, but not for CSS\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\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[typePropName] = type;\n\n if (process.env.NODE_ENV !== 'production') {\n var error = new Error();\n\n if (error.stack) {\n // chrome\n var match = error.stack.match(/at (?:Object\\.|Module\\.|)(?:jsx|createEmotionProps).*\\n\\s+at (?:Object\\.|)([A-Z][A-Za-z0-9$]+) /);\n\n if (!match) {\n // safari and firefox\n match = error.stack.match(/.*\\n([A-Z][A-Za-z0-9$]+)@/);\n }\n\n if (match) {\n newProps[labelPropName] = sanitizeIdentifier(match[1]);\n }\n }\n }\n\n return newProps;\n};\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var type = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n var rules = insertStyles(cache, serialized, typeof type === 'string');\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n var ele = /*#__PURE__*/createElement(type, newProps);\n\n return ele;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, useTheme as u, withEmotionCache as w };\n","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar Platform = {\n OS: 'web',\n select: function select(obj) {\n return 'web' in obj ? obj.web : obj.default;\n },\n\n get isTesting() {\n if (process.env.NODE_ENV === 'test') {\n return true;\n }\n\n return false;\n }\n\n};\nexport default Platform;","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nexport var STYLE_ELEMENT_ID = 'react-native-stylesheet';\nexport var STYLE_GROUPS = {\n reset: 0,\n modality: 0.1,\n classicReset: 0.5,\n classic: 1,\n atomic: 2.2,\n custom: {\n borderColor: 2,\n borderRadius: 2,\n borderStyle: 2,\n borderWidth: 2,\n display: 2,\n flex: 2,\n margin: 2,\n overflow: 2,\n overscrollBehavior: 2,\n padding: 2,\n marginHorizontal: 2.1,\n marginVertical: 2.1,\n paddingHorizontal: 2.1,\n paddingVertical: 2.1\n }\n};\nexport var STYLE_SHORT_FORM_EXPANSIONS = {\n borderColor: ['borderTopColor', 'borderRightColor', 'borderBottomColor', 'borderLeftColor'],\n borderRadius: ['borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomRightRadius', 'borderBottomLeftRadius'],\n borderStyle: ['borderTopStyle', 'borderRightStyle', 'borderBottomStyle', 'borderLeftStyle'],\n borderWidth: ['borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth'],\n margin: ['marginTop', 'marginRight', 'marginBottom', 'marginLeft'],\n marginHorizontal: ['marginRight', 'marginLeft'],\n marginVertical: ['marginTop', 'marginBottom'],\n overflow: ['overflowX', 'overflowY'],\n overscrollBehavior: ['overscrollBehaviorX', 'overscrollBehaviorY'],\n padding: ['paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft'],\n paddingHorizontal: ['paddingRight', 'paddingLeft'],\n paddingVertical: ['paddingTop', 'paddingBottom']\n};\nexport var MONOSPACE_FONT_STACK = 'monospace,monospace';\nexport var SYSTEM_FONT_STACK = '-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif';","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport invariant from 'fbjs/lib/invariant';\nvar dimensions = {\n window: {\n fontScale: 1,\n height: 0,\n scale: 1,\n width: 0\n },\n screen: {\n fontScale: 1,\n height: 0,\n scale: 1,\n width: 0\n }\n};\nvar listeners = {};\n\nvar Dimensions = /*#__PURE__*/function () {\n function Dimensions() {}\n\n Dimensions.get = function get(dimension) {\n invariant(dimensions[dimension], \"No dimension set for key \" + dimension);\n return dimensions[dimension];\n };\n\n Dimensions.set = function set(initialDimensions) {\n if (initialDimensions) {\n if (canUseDOM) {\n invariant(false, 'Dimensions cannot be set in the browser');\n } else {\n if (initialDimensions.screen != null) {\n dimensions.screen = initialDimensions.screen;\n }\n\n if (initialDimensions.window != null) {\n dimensions.window = initialDimensions.window;\n }\n }\n }\n };\n\n Dimensions._update = function _update() {\n if (!canUseDOM) {\n return;\n }\n\n var win = window;\n var docEl = win.document.documentElement;\n dimensions.window = {\n fontScale: 1,\n height: docEl.clientHeight,\n scale: win.devicePixelRatio || 1,\n width: docEl.clientWidth\n };\n dimensions.screen = {\n fontScale: 1,\n height: win.screen.height,\n scale: win.devicePixelRatio || 1,\n width: win.screen.width\n };\n\n if (Array.isArray(listeners['change'])) {\n listeners['change'].forEach(function (handler) {\n return handler(dimensions);\n });\n }\n };\n\n Dimensions.addEventListener = function addEventListener(type, handler) {\n var _this = this;\n\n listeners[type] = listeners[type] || [];\n listeners[type].push(handler);\n return {\n remove: function remove() {\n _this.removeEventListener(type, handler);\n }\n };\n };\n\n Dimensions.removeEventListener = function removeEventListener(type, handler) {\n if (Array.isArray(listeners[type])) {\n listeners[type] = listeners[type].filter(function (_handler) {\n return _handler !== handler;\n });\n }\n };\n\n return Dimensions;\n}();\n\nexport { Dimensions as default };\n\nif (canUseDOM) {\n Dimensions._update();\n\n window.addEventListener('resize', Dimensions._update, false);\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code 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}","import transform from 'css-to-react-native';\nimport { forwardRef, useContext, createElement } from 'react';\nimport { ThemeContext } from '@emotion/react';\n\nfunction interleave(vals) {\n var strings = vals[0];\n var finalArray = [strings[0]];\n\n for (var i = 1, len = vals.length; i < len; i++) {\n finalArray.push(vals[i]);\n\n if (strings[i] !== undefined) {\n finalArray.push(strings[i]);\n }\n }\n\n return finalArray;\n}\n\n// they're reset on every call to css\n// this is done so we don't create a new\n// handleInterpolation function on every css call\n\nvar styles;\nvar generated = {};\nvar buffer = '';\nvar lastType;\n\nfunction handleInterpolation(interpolation, i, arr) {\n var type = typeof interpolation;\n\n if (type === 'string') {\n // strip comments\n interpolation = interpolation.replace(/\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*$/gm, '');\n }\n\n if (type === 'function') {\n if (this === undefined) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Interpolating functions in css calls is not allowed.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + 'let SomeComponent = styled.View`${dynamicStyle}`');\n }\n } else {\n handleInterpolation.call(this, interpolation( // $FlowFixMe\n this), i, arr);\n }\n\n return;\n }\n\n var isIrrelevant = interpolation == null || type === 'boolean';\n var isRnStyle = type === 'object' && !Array.isArray(interpolation) || type === 'number';\n\n if (lastType === 'string' && (isRnStyle || isIrrelevant)) {\n var converted = convertStyles(buffer);\n\n if (converted !== undefined) {\n styles.push(converted);\n }\n\n buffer = '';\n }\n\n if (isIrrelevant) {\n return;\n }\n\n if (type === 'string') {\n buffer += interpolation;\n\n if (arr.length - 1 === i) {\n var _converted = convertStyles(buffer);\n\n if (_converted !== undefined) {\n styles.push(_converted);\n }\n\n buffer = '';\n }\n }\n\n if (isRnStyle) {\n styles.push(interpolation);\n }\n\n if (Array.isArray(interpolation)) {\n interpolation.forEach(handleInterpolation, this);\n }\n\n lastType = type;\n} // Use platform specific StyleSheet method for creating the styles.\n// This enables us to use the css``/css({}) in any environment (Native | Sketch | Web)\n\n\nfunction createCss(StyleSheet) {\n return function css() {\n var prevBuffer = buffer;\n var vals; // these are declared earlier\n // this is done so we don't create a new\n // handleInterpolation function on every css call\n\n styles = [];\n buffer = '';\n lastType = undefined;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n vals = args;\n } else {\n vals = interleave(args);\n }\n\n try {\n vals.forEach(handleInterpolation, this);\n } finally {\n buffer = prevBuffer;\n }\n\n var hash = JSON.stringify(styles);\n\n if (!generated[hash]) {\n var styleSheet = StyleSheet.create({\n generated: StyleSheet.flatten(styles)\n });\n generated[hash] = styleSheet.generated;\n }\n\n return generated[hash];\n };\n}\nvar propertyValuePattern = /\\s*([^\\s]+)\\s*:\\s*(.+?)\\s*$/;\n\nfunction convertPropertyValue(style) {\n // Get prop name and prop value\n var match = propertyValuePattern.exec(style); // match[2] will be \" \" in cases where there is no value\n // but there is whitespace, e.g. \"color: \"\n\n if (match !== null && match[2] !== ' ') {\n // the first value in the array will\n // be the whole string so we remove it\n match.shift(); // yes i know this looks funny\n\n this.push(match);\n }\n}\n\nfunction convertStyles(str) {\n if (str.trim() === '') return;\n var stylePairs = [];\n var parsedString = str.split(';');\n parsedString.forEach(convertPropertyValue, stylePairs);\n\n try {\n return transform(stylePairs);\n } catch (error) {\n var msg = error.message;\n\n if (msg.includes('Failed to parse declaration')) {\n var values = msg.replace('Failed to parse declaration ', '').replace(/\"/g, '').trim().split(':');\n var errorMsg = \"'\" + values[0] + \"' shorthand property requires units for example - \" + values[0] + \": 20px or \" + values[0] + \": 10px 20px 40px 50px\";\n console.error(errorMsg);\n }\n }\n}\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(prop) {\n return prop !== 'theme' && prop !== 'as';\n};\n\nfunction createStyled(StyleSheet, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$getShouldForward = _ref.getShouldForwardProp,\n getShouldForwardProp = _ref$getShouldForward === void 0 ? function () {\n return testOmitPropsOnComponent;\n } : _ref$getShouldForward;\n\n var css = createCss(StyleSheet);\n return function createEmotion(component, options) {\n var shouldForwardProp = options && options.shouldForwardProp ? options.shouldForwardProp : undefined;\n var defaultShouldForwardProp = shouldForwardProp || getShouldForwardProp(component);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function createStyledComponent() {\n var styles;\n\n for (var _len = arguments.length, rawStyles = new Array(_len), _key = 0; _key < _len; _key++) {\n rawStyles[_key] = arguments[_key];\n }\n\n if (rawStyles[0] == null || rawStyles[0].raw === undefined) {\n styles = rawStyles;\n } else {\n styles = interleave(rawStyles);\n } // do we really want to use the same infra as the web since it only really uses theming?\n // $FlowFixMe\n\n\n var Styled = /*#__PURE__*/forwardRef(function (props, ref) {\n var finalTag = shouldUseAs && props.as || component;\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = useContext(ThemeContext);\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getShouldForwardProp(finalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key2 in props) {\n if (shouldUseAs && _key2 === 'as') continue;\n\n if (finalShouldForwardProp(_key2)) {\n newProps[_key2] = props[_key2];\n }\n }\n\n newProps.style = [css.apply(mergedProps, styles), props.style];\n newProps.ref = ref; // $FlowFixMe\n\n return /*#__PURE__*/createElement(finalTag, newProps);\n }); // $FlowFixMe\n\n Styled.withComponent = function (newComponent) {\n return createEmotion(newComponent).apply(void 0, styles);\n };\n\n Styled.displayName = \"emotion(\" + getDisplayName(component) + \")\";\n return Styled;\n };\n };\n}\n\nvar getDisplayName = function getDisplayName(primitive) {\n return typeof primitive === 'string' ? primitive : primitive.displayName || primitive.name || 'Styled';\n};\n\nexport { createCss, createStyled };\n","import * as reactNative from 'react-native';\nimport { StyleSheet } from 'react-native';\nimport { createStyled, createCss } from '@emotion/primitives-core';\n\n/**\n * a function that returns a styled component which render styles in React Native\n */\n\nvar styled = createStyled(StyleSheet);\n\nvar css = createCss(StyleSheet);\nvar components = ['ActivityIndicator', 'Button', 'DatePickerIOS', 'DrawerLayoutAndroid', 'FlatList', 'Image', 'ImageBackground', 'KeyboardAvoidingView', 'ListView', 'Modal', 'NavigatorIOS', 'Picker', 'PickerIOS', 'Pressable', 'ProgressBarAndroid', 'ProgressViewIOS', 'RecyclerViewBackedScrollView', 'RefreshControl', 'SafeAreaView', 'ScrollView', 'SectionList', 'SegmentedControlIOS', 'Slider', 'SnapshotViewIOS', 'StatusBar', 'SwipeableListView', 'Switch', 'SwitchIOS', 'TabBarIOS', 'Text', 'TextInput', 'ToolbarAndroid', 'TouchableHighlight', 'TouchableNativeFeedback', 'TouchableOpacity', 'TouchableWithoutFeedback', 'View', 'ViewPagerAndroid'];\nvar index = components.reduce(function (acc, comp) {\n return Object.defineProperty(acc, comp, {\n enumerable: true,\n configurable: false,\n get: function get() {\n return styled(reactNative[comp]);\n }\n });\n}, styled);\n\nexport default index;\nexport { css };\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _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}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","function createThunkMiddleware(extraArgument) {\n return function (_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n if (typeof action === 'function') {\n return action(dispatch, getState, extraArgument);\n }\n\n return next(action);\n };\n };\n };\n}\n\nvar thunk = createThunkMiddleware();\nthunk.withExtraArgument = createThunkMiddleware;\n\nexport default thunk;","const errors = {\n\t0: \"Illegal state\",\n\t1: \"Immer drafts cannot have computed properties\",\n\t2: \"This object has been frozen and should not be mutated\",\n\t3(data: any) {\n\t\treturn (\n\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\tdata\n\t\t)\n\t},\n\t4: \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t5: \"Immer forbids circular references\",\n\t6: \"The first or second argument to `produce` must be a function\",\n\t7: \"The third argument to `produce` must be a function or undefined\",\n\t8: \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t9: \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t10: \"The given draft is already finalized\",\n\t11: \"Object.defineProperty() cannot be used on an Immer draft\",\n\t12: \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t13: \"Immer only supports deleting array indices\",\n\t14: \"Immer only supports setting array indices and the 'length' property\",\n\t15(path: string) {\n\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t},\n\t16: 'Sets cannot have \"replace\" patches.',\n\t17(op: string) {\n\t\treturn \"Unsupported patch operation: \" + op\n\t},\n\t18(plugin: string) {\n\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t},\n\t20: \"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",\n\t21(thing: string) {\n\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t},\n\t22(thing: string) {\n\t\treturn `'current' expects a draft, got: ${thing}`\n\t},\n\t23(thing: string) {\n\t\treturn `'original' expects a draft, got: ${thing}`\n\t},\n\t24: \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n} as const\n\nexport function die(error: keyof typeof errors, ...args: any[]): never {\n\tif (__DEV__) {\n\t\tconst e = errors[error]\n\t\tconst msg = !e\n\t\t\t? \"unknown error nr: \" + error\n\t\t\t: typeof e === \"function\"\n\t\t\t? e.apply(null, args as any)\n\t\t\t: e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}${\n\t\t\targs.length ? \" \" + args.map(s => `'${s}'`).join(\",\") : \"\"\n\t\t}. Find the full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\thasSet,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\thasMap,\n\tArchtypeObject,\n\tArchtypeArray,\n\tArchtypeMap,\n\tArchtypeSet,\n\tdie\n} from \"../internal\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original(value: T): T | undefined\nexport function original(value: Drafted): any {\n\tif (!isDraft(value)) die(23, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/*#__PURE__*/\nexport const ownKeys: (target: AnyObject) => PropertyKey[] =\n\ttypeof Reflect !== \"undefined\" && Reflect.ownKeys\n\t\t? Reflect.ownKeys\n\t\t: typeof Object.getOwnPropertySymbols !== \"undefined\"\n\t\t? obj =>\n\t\t\t\tObject.getOwnPropertyNames(obj).concat(\n\t\t\t\t\tObject.getOwnPropertySymbols(obj) as any\n\t\t\t\t)\n\t\t: /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport const getOwnPropertyDescriptors =\n\tObject.getOwnPropertyDescriptors ||\n\tfunction getOwnPropertyDescriptors(target: any) {\n\t\t// Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n\t\tconst res: any = {}\n\t\townKeys(target).forEach(key => {\n\t\t\tres[key] = Object.getOwnPropertyDescriptor(target, key)\n\t\t})\n\t\treturn res\n\t}\n\nexport function each(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tenumerableOnly?: boolean\n): void\nexport function each(obj: any, iter: any, enumerableOnly = false) {\n\tif (getArchtype(obj) === ArchtypeObject) {\n\t\t;(enumerableOnly ? Object.keys : ownKeys)(obj).forEach(key => {\n\t\t\tif (!enumerableOnly || typeof key !== \"symbol\") iter(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): 0 | 1 | 2 | 3 {\n\t/* istanbul ignore next */\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_ > 3\n\t\t\t? state.type_ - 4 // cause Object and Array map back from 4 and 5\n\t\t\t: (state.type_ as any) // others are the same\n\t\t: Array.isArray(thing)\n\t\t? ArchtypeArray\n\t\t: isMap(thing)\n\t\t? ArchtypeMap\n\t\t: isSet(thing)\n\t\t? ArchtypeSet\n\t\t: ArchtypeObject\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === ArchtypeMap\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === ArchtypeMap ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === ArchtypeMap) thing.set(propOrOldValue, value)\n\telse if (t === ArchtypeSet) {\n\t\tthing.delete(propOrOldValue)\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn hasMap && target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn hasSet && target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any) {\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\tconst descriptors = getOwnPropertyDescriptors(base)\n\tdelete descriptors[DRAFT_STATE as any]\n\tlet keys = ownKeys(descriptors)\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key: any = keys[i]\n\t\tconst desc = descriptors[key]\n\t\tif (desc.writable === false) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable = true\n\t\t}\n\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t// with libraries that trap values, like mobx or vue\n\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\tif (desc.get || desc.set)\n\t\t\tdescriptors[key] = {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\tvalue: base[key]\n\t\t\t}\n\t}\n\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze(obj: T, deep?: boolean): T\nexport function freeze(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (key, value) => freeze(value, true), true)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\tif (obj == null || typeof obj !== \"object\") return true\n\t// See #600, IE dies on non-objects in Object.isFrozen\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tSetState,\n\tImmerScope,\n\tProxyObjectState,\n\tProxyArrayState,\n\tES5ObjectState,\n\tES5ArrayState,\n\tMapState,\n\tDRAFT_STATE\n} from \"../internal\"\n\nexport type Objectish = AnyObject | AnyArray | AnyMap | AnySet\nexport type ObjectishNoSet = AnyObject | AnyArray | AnyMap\n\nexport type AnyObject = {[key: string]: any}\nexport type AnyArray = Array\nexport type AnySet = Set\nexport type AnyMap = Map\n\nexport const ArchtypeObject = 0\nexport const ArchtypeArray = 1\nexport const ArchtypeMap = 2\nexport const ArchtypeSet = 3\n\nexport const ProxyTypeProxyObject = 0\nexport const ProxyTypeProxyArray = 1\nexport const ProxyTypeES5Object = 4\nexport const ProxyTypeES5Array = 5\nexport const ProxyTypeMap = 2\nexport const ProxyTypeSet = 3\n\nexport interface ImmerBaseState {\n\tparent_?: ImmerState\n\tscope_: ImmerScope\n\tmodified_: boolean\n\tfinalized_: boolean\n\tisManual_: boolean\n}\n\nexport type ImmerState =\n\t| ProxyObjectState\n\t| ProxyArrayState\n\t| ES5ObjectState\n\t| ES5ArrayState\n\t| MapState\n\t| SetState\n\n// The _internal_ type used for drafts (not to be confused with Draft, which is public facing)\nexport type Drafted = {\n\t[DRAFT_STATE]: T\n} & Base\n","import {\n\tImmerState,\n\tPatch,\n\tImmerScope,\n\tDrafted,\n\tAnyObject,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tProxyTypeES5Array,\n\tProxyTypeES5Object,\n\tProxyTypeMap,\n\tProxyTypeSet,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\trootState: ImmerState,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_(draft: T, patches: Patch[]): T\n\t}\n\tES5?: {\n\t\twillFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void\n\t\tcreateES5Proxy_(\n\t\t\tbase: T,\n\t\t\tparent?: ImmerState\n\t\t): Drafted\n\t\thasChanges_(state: ES5ArrayState | ES5ObjectState): boolean\n\t}\n\tMapSet?: {\n\t\tproxyMap_(target: T, parent?: ImmerState): T\n\t\tproxySet_(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin(\n\tpluginKey: K\n): Exclude {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(18, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n\n/** ES5 Plugin */\n\ninterface ES5BaseState extends ImmerBaseState {\n\tassigned_: {[key: string]: any}\n\tparent_?: ImmerState\n\trevoked_: boolean\n}\n\nexport interface ES5ObjectState extends ES5BaseState {\n\ttype_: typeof ProxyTypeES5Object\n\tdraft_: Drafted\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n}\n\nexport interface ES5ArrayState extends ES5BaseState {\n\ttype_: typeof ProxyTypeES5Array\n\tdraft_: Drafted\n\tbase_: any\n\tcopy_: any\n}\n\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: typeof ProxyTypeMap\n\tcopy_: AnyMap | undefined\n\tassigned_: Map | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: typeof ProxyTypeSet\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tProxyTypeProxyObject,\n\tProxyTypeProxyArray,\n\tgetPlugin\n} from \"../internal\"\nimport {die} from \"../utils/errors\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\tif (__DEV__ && !currentScope) die(0)\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (\n\t\tstate.type_ === ProxyTypeProxyObject ||\n\t\tstate.type_ === ProxyTypeProxyArray\n\t)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tProxyTypeES5Object,\n\tProxyTypeES5Array,\n\tProxyTypeSet,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tshallowCopy\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (!scope.immer_.useProxies_)\n\t\tgetPlugin(\"ES5\").willFinalizeES5_(scope, result, isReplaced)\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE],\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\ttrue // See #590, don't recurse into non-enumarable of non drafted objects\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result =\n\t\t\t// For ES5, create a good copy from the draft first, with added keys and without deleted keys.\n\t\t\tstate.type_ === ProxyTypeES5Object || state.type_ === ProxyTypeES5Array\n\t\t\t\t? (state.copy_ = shallowCopy(state.draft_))\n\t\t\t\t: state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// Although the original test case doesn't seem valid anyway, so if this in the way we can turn the next line\n\t\t// back to each(result, ....)\n\t\teach(\n\t\t\tstate.type_ === ProxyTypeSet ? new Set(result) : result,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath\n) {\n\tif (__DEV__ && childValue === targetObject) die(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ProxyTypeSet && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\tif (scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tProxyTypeProxyObject,\n\tProxyTypeProxyArray\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: typeof ProxyTypeProxyObject\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: typeof ProxyTypeProxyArray\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ProxyTypeProxyArray : (ProxyTypeProxyObject as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(\n\t\t\t\tstate.scope_.immer_,\n\t\t\t\tvalue,\n\t\t\t\tstate\n\t\t\t))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existig to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (state.copy_![prop] === value && typeof value !== \"number\") return true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\t// @ts-ignore\n\t\tif (state.copy_) delete state.copy_[prop]\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ProxyTypeProxyArray || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn Object.getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (__DEV__ && isNaN(parseInt(prop as any))) die(13)\n\treturn objectTraps.deleteProperty!.call(this, state[0], prop)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (__DEV__ && prop !== \"length\" && isNaN(parseInt(prop as any))) die(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = Object.getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = Object.getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {base_: any; copy_: any}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(state.base_)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\thasProxies,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tuseProxies_: boolean = hasProxies\n\n\tautoFreeze_: boolean = true\n\n\tconstructor(config?: {useProxies?: boolean; autoFreeze?: boolean}) {\n\t\tif (typeof config?.useProxies === \"boolean\")\n\t\t\tthis.setUseProxies(config!.useProxies)\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(this, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\t\treturn result.then(\n\t\t\t\t\tresult => {\n\t\t\t\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\t\t\t\treturn processResult(result, scope)\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\trevokeScope(scope)\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === NOTHING) return undefined\n\t\t\tif (result === undefined) result = base\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\treturn result\n\t\t} else die(21, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (\n\t\targ1: any,\n\t\targ2?: any,\n\t\targ3?: any\n\t): any => {\n\t\tif (typeof arg1 === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => arg1(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst nextState = this.produce(arg1, arg2, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [nextState, patches!, inversePatches!]\n\t}\n\n\tcreateDraft(base: T): Draft {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(this, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (__DEV__) {\n\t\t\tif (!state || !state.isManual_) die(9)\n\t\t\tif (state.finalized_) die(10)\n\t\t}\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n\t * always faster than using ES5 proxies.\n\t *\n\t * By default, feature detection is used, so calling this is rarely necessary.\n\t */\n\tsetUseProxies(value: boolean) {\n\t\tif (value && !hasProxies) {\n\t\t\tdie(20)\n\t\t}\n\t\tthis.useProxies_ = value\n\t}\n\n\tapplyPatches(base: Objectish, patches: Patch[]) {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches.slice(i + 1))\n\t\t)\n\t}\n}\n\nexport function createProxy(\n\timmer: Immer,\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: immer.useProxies_\n\t\t? createProxyProxy(value, parent)\n\t\t: getPlugin(\"ES5\").createES5Proxy_(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tget,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tArchtypeMap,\n\tArchtypeSet,\n\tgetArchtype,\n\tgetPlugin\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(22, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tconst archType = getArchtype(value)\n\tif (state) {\n\t\tif (\n\t\t\t!state.modified_ &&\n\t\t\t(state.type_ < 4 || !getPlugin(\"ES5\").hasChanges_(state as any))\n\t\t)\n\t\t\treturn state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = copyHelper(value, archType)\n\t\tstate.finalized_ = false\n\t} else {\n\t\tcopy = copyHelper(value, archType)\n\t}\n\n\teach(copy, (key, childValue) => {\n\t\tif (state && get(state.base_, key) === childValue) return // no need to copy or search in something that didn't change\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\t// In the future, we might consider freezing here, based on the current settings\n\treturn archType === ArchtypeSet ? new Set(copy) : copy\n}\n\nfunction copyHelper(value: any, archType: number): any {\n\t// creates a shallow copy, even if it is a map or set\n\tswitch (archType) {\n\t\tcase ArchtypeMap:\n\t\t\treturn new Map(value)\n\t\tcase ArchtypeSet:\n\t\t\t// Set will be cloned as array temporarily, so that we can replace individual items\n\t\t\treturn Array.from(value)\n\t}\n\treturn shallowCopy(value)\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\nexport default produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\nexport const setUseProxies = immer.setUseProxies.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft(value: T): Draft {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable(value: T): Immutable {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enableES5} from \"./plugins/es5\"\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableAllPlugins} from \"./plugins/all\"\n","// Should be no imports here!\n\n// Some things that should be evaluated before all else...\n\n// We only want to know if non-polyfilled symbols are available\nconst hasSymbol =\n\ttypeof Symbol !== \"undefined\" && typeof Symbol(\"x\") === \"symbol\"\nexport const hasMap = typeof Map !== \"undefined\"\nexport const hasSet = typeof Set !== \"undefined\"\nexport const hasProxies =\n\ttypeof Proxy !== \"undefined\" &&\n\ttypeof Proxy.revocable !== \"undefined\" &&\n\ttypeof Reflect !== \"undefined\"\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: Nothing = hasSymbol\n\t? Symbol.for(\"immer-nothing\")\n\t: ({[\"immer-nothing\"]: true} as any)\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-draftable\")\n\t: (\"__$immer_draftable\" as any)\n\nexport const DRAFT_STATE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-state\")\n\t: (\"__$immer_state\" as any)\n\n// Even a polyfilled Symbol might provide Symbol.iterator\nexport const iteratorSymbol: typeof Symbol.iterator =\n\t(typeof Symbol != \"undefined\" && Symbol.iterator) || (\"@@iterator\" as any)\n\n/** Use a class type for `nothing` so its type is unique */\nexport class Nothing {\n\t// This lets us do `Exclude`\n\t// @ts-ignore\n\tprivate _!: unique symbol\n}\n","import { createContext } from 'react';\n\nconst StoreContext = createContext();\n\nexport default StoreContext;\n","import {\n useContext,\n useEffect,\n useLayoutEffect,\n useReducer,\n useRef,\n useState,\n} from 'react';\nimport EasyPeasyContext from './context';\n\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\nexport function createStoreStateHook(Context) {\n return function useStoreState(mapState, equalityFn) {\n const store = useContext(Context);\n const mapStateRef = useRef(mapState);\n const stateRef = useRef();\n const mountedRef = useRef(true);\n const subscriptionMapStateError = useRef();\n\n const [, forceRender] = useReducer((s) => s + 1, 0);\n\n if (\n subscriptionMapStateError.current ||\n mapStateRef.current !== mapState ||\n stateRef.current === undefined\n ) {\n try {\n stateRef.current = mapState(store.getState());\n } catch (err) {\n if (process.env.NODE_ENV === 'development') {\n let errorMessage = `Error in useStoreState: ${err.message}.`;\n if (subscriptionMapStateError.current) {\n errorMessage += `\\nMaybe related to:\\n${subscriptionMapStateError.current.stack}`;\n }\n throw new Error(errorMessage);\n }\n throw subscriptionMapStateError.current || err;\n }\n }\n\n useIsomorphicLayoutEffect(() => {\n mapStateRef.current = mapState;\n subscriptionMapStateError.current = undefined;\n });\n\n useIsomorphicLayoutEffect(() => {\n const checkMapState = () => {\n try {\n const newState = mapStateRef.current(store.getState());\n\n const isStateEqual =\n typeof equalityFn === 'function'\n ? equalityFn(stateRef.current, newState)\n : stateRef.current === newState;\n\n if (isStateEqual) {\n return;\n }\n\n stateRef.current = newState;\n } catch (err) {\n // see https://github.com/reduxjs/react-redux/issues/1179\n // There is a possibility mapState will fail due to stale state or\n // props, therefore we will just track the error and force our\n // component to update. It should then receive the updated state\n subscriptionMapStateError.current = err;\n }\n if (mountedRef.current) {\n forceRender({});\n }\n };\n const unsubscribe = store.subscribe(checkMapState);\n checkMapState();\n return () => {\n mountedRef.current = false;\n unsubscribe();\n };\n }, []);\n\n return stateRef.current;\n };\n}\n\nexport const useStoreState = createStoreStateHook(EasyPeasyContext);\n\nexport function createStoreActionsHook(Context) {\n return function useStoreActions(mapActions) {\n const store = useContext(Context);\n return mapActions(store.getActions());\n };\n}\n\nexport const useStoreActions = createStoreActionsHook(EasyPeasyContext);\n\nexport function createStoreDispatchHook(Context) {\n return function useStoreDispatch() {\n const store = useContext(Context);\n return store.dispatch;\n };\n}\n\nexport const useStoreDispatch = createStoreDispatchHook(EasyPeasyContext);\n\nexport function useStore() {\n return useContext(EasyPeasyContext);\n}\n\nexport function createStoreRehydratedHook(Context) {\n return function useStoreRehydrated() {\n const store = useContext(Context);\n const [rehydrated, setRehydrated] = useState(false);\n useEffect(() => {\n store.persist.resolveRehydration().then(() => setRehydrated(true));\n }, []);\n return rehydrated;\n };\n}\n\nexport const useStoreRehydrated = createStoreRehydratedHook(EasyPeasyContext);\n\nexport function createTypedHooks() {\n return {\n useStoreActions,\n useStoreDispatch,\n useStoreState,\n useStoreRehydrated,\n useStore,\n };\n}\n","export const actionSymbol = '$_a';\nexport const actionOnSymbol = '$_aO';\nexport const computedSymbol = '$_c';\nexport const effectOnSymbol = '$_e';\nexport const persistSymbol = '$_p';\nexport const reducerSymbol = '$_r';\nexport const thunkOnSymbol = '$_tO';\nexport const thunkSymbol = '$_t';\n","import { isDraft, current } from 'immer';\nimport {\n actionOnSymbol,\n actionSymbol,\n computedSymbol,\n effectOnSymbol,\n persistSymbol,\n reducerSymbol,\n thunkOnSymbol,\n thunkSymbol,\n} from './constants';\n\nexport const debug = (state) => {\n if (isDraft(state)) {\n return current(state);\n }\n return state;\n};\n\nexport const actionOn = (targetResolver, fn) => ({\n [actionOnSymbol]: true,\n fn,\n targetResolver,\n});\n\nexport const action = (fn) => ({\n [actionSymbol]: true,\n fn,\n});\n\nconst defaultStateResolvers = [(state) => state];\n\nexport const computed = (fnOrStateResolvers, fn) => {\n if (typeof fn === 'function') {\n return {\n [computedSymbol]: true,\n fn,\n stateResolvers: fnOrStateResolvers,\n };\n }\n return {\n [computedSymbol]: true,\n fn: fnOrStateResolvers,\n stateResolvers: defaultStateResolvers,\n };\n};\n\nexport function unstable_effectOn(dependencyResolvers, fn) {\n return {\n [effectOnSymbol]: true,\n dependencyResolvers,\n fn,\n };\n}\n\nexport function generic(value) {\n return value;\n}\n\nexport const persist = (model, config) =>\n // if we are not running in a browser context this becomes a no-op\n typeof window === 'undefined'\n ? model\n : {\n ...model,\n [persistSymbol]: config,\n };\n\nexport const thunkOn = (targetResolver, fn) => ({\n [thunkOnSymbol]: true,\n fn,\n targetResolver,\n});\n\nexport const thunk = (fn) => ({\n [thunkSymbol]: true,\n fn,\n});\n\nexport const reducer = (fn) => ({\n [reducerSymbol]: true,\n fn,\n});\n","import React from 'react';\nimport { Immer, isDraft } from 'immer';\n\n/**\n * We create our own immer instance to avoid potential issues with autoFreeze\n * becoming default enabled everywhere. We want to disable autofreeze as it\n * does not suit the design of Easy Peasy.\n * https://github.com/immerjs/immer/issues/681#issuecomment-705581111\n */\nlet easyPeasyImmer;\n\nexport function isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n\n let proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\nexport function clone(source) {\n function recursiveClone(current) {\n const next = Object.keys(current).reduce((acc, key) => {\n if (Object.getOwnPropertyDescriptor(current, key).get == null) {\n acc[key] = current[key];\n }\n return acc;\n }, {});\n Object.keys(next).forEach((key) => {\n if (isPlainObject(next[key])) {\n next[key] = recursiveClone(next[key]);\n }\n });\n return next;\n }\n return recursiveClone(source);\n}\n\nexport function isPromise(x) {\n return x != null && typeof x === 'object' && typeof x.then === 'function';\n}\n\nexport function get(path, target) {\n return path.reduce(\n (acc, cur) => (isPlainObject(acc) ? acc[cur] : undefined),\n target,\n );\n}\n\nexport function newify(currentPath, currentState, finalValue) {\n if (currentPath.length === 0) {\n return finalValue;\n }\n const newState = { ...currentState };\n const key = currentPath[0];\n if (currentPath.length === 1) {\n newState[key] = finalValue;\n } else {\n newState[key] = newify(currentPath.slice(1), newState[key], finalValue);\n }\n return newState;\n}\n\nexport function set(path, target, value) {\n if (path.length === 0) {\n if (typeof value === 'object') {\n Object.keys(target).forEach((key) => {\n delete target[key];\n });\n Object.keys(value).forEach((key) => {\n target[key] = value[key];\n });\n }\n return;\n }\n path.reduce((acc, cur, idx) => {\n if (idx + 1 === path.length) {\n acc[cur] = value;\n } else {\n acc[cur] = acc[cur] || {};\n }\n return acc[cur];\n }, target);\n}\n\nexport function createSimpleProduce(disableImmer = false) {\n return function simpleProduce(path, state, fn) {\n if (disableImmer) {\n const current = get(path, state);\n const next = fn(current);\n if (current !== next) {\n return newify(path, state, next);\n }\n return state;\n }\n if (!easyPeasyImmer) {\n easyPeasyImmer = new Immer({\n // We need to ensure that we disable proxies if they aren't available\n // on the environment. Users need to ensure that they use the enableES5\n // feature of immer.\n useProxies:\n typeof Proxy !== 'undefined' &&\n typeof Proxy.revocable !== 'undefined' &&\n typeof Reflect !== 'undefined',\n // Autofreezing breaks easy-peasy, we need a mixed version of immutability\n // and mutability in order to apply updates to our computed properties\n autoFreeze: false,\n });\n }\n if (path.length === 0) {\n const draft = easyPeasyImmer.createDraft(state);\n const result = fn(draft);\n if (result) {\n return isDraft(result) ? easyPeasyImmer.finishDraft(result) : result;\n }\n return easyPeasyImmer.finishDraft(draft);\n }\n const parentPath = path.slice(0, path.length - 1);\n const draft = easyPeasyImmer.createDraft(state);\n const parent = get(parentPath, state);\n const current = get(path, draft);\n const result = fn(current);\n\n if (result) {\n parent[path[path.length - 1]] = result;\n }\n return easyPeasyImmer.finishDraft(draft);\n };\n}\n\nconst pReduce = (iterable, reducer, initialValue) =>\n new Promise((resolve, reject) => {\n const iterator = iterable[Symbol.iterator]();\n let index = 0;\n\n const next = (total) => {\n const element = iterator.next();\n\n if (element.done) {\n resolve(total);\n return;\n }\n\n Promise.all([total, element.value])\n .then((value) =>\n // eslint-disable-next-line no-plusplus\n next(reducer(value[0], value[1], index++)),\n )\n .catch((err) => reject(err));\n };\n\n next(initialValue);\n });\n\nexport const pSeries = (tasks) => {\n const results = [];\n return pReduce(tasks, (_, task) =>\n task().then((value) => {\n results.push(value);\n }),\n ).then(() => results);\n};\n\nexport function areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (let i = 0; i < newInputs.length; i += 1) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n return true;\n}\n\n// export function memoizeOne(resultFn) {\n// let lastArgs = [];\n// let lastResult;\n// let calledOnce = false;\n\n// return function memoized(...args) {\n// if (calledOnce && areInputsEqual(args, lastArgs)) {\n// return lastResult;\n// }\n// lastResult = resultFn(...args);\n// calledOnce = true;\n// lastArgs = args;\n// return lastResult;\n// };\n// }\n\nexport function useMemoOne(\n // getResult changes on every call,\n getResult,\n // the inputs array changes on every call\n inputs,\n) {\n // using useState to generate initial value as it is lazy\n const initial = React.useState(() => ({\n inputs,\n result: getResult(),\n }))[0];\n\n const committed = React.useRef(initial);\n\n // persist any uncommitted changes after they have been committed\n\n const isInputMatch = Boolean(\n inputs &&\n committed.current.inputs &&\n areInputsEqual(inputs, committed.current.inputs),\n );\n\n // create a new cache if required\n const cache = isInputMatch\n ? committed.current\n : {\n inputs,\n result: getResult(),\n };\n\n // commit the cache\n React.useEffect(() => {\n committed.current = cache;\n }, [cache]);\n\n return cache.result;\n}\n","import { isDraft, original } from 'immer';\nimport { createSimpleProduce, get } from './lib';\n\nexport default function createReducer(disableImmer, _aRD, _cR, _cP) {\n const simpleProduce = createSimpleProduce(disableImmer);\n\n const runActionReducerAtPath = (state, action, actionReducer, path) =>\n simpleProduce(path, state, (draft) => actionReducer(draft, action.payload));\n\n const reducerForActions = (state, action) => {\n const actionReducer = _aRD[action.type];\n if (actionReducer) {\n return runActionReducerAtPath(\n state,\n action,\n actionReducer,\n actionReducer.def.meta.parent,\n );\n }\n return state;\n };\n\n const reducerForCustomReducers = (state, action) =>\n _cR.reduce(\n (acc, { parentPath, key, reducer }) =>\n simpleProduce(parentPath, acc, (draft) => {\n draft[key] = reducer(\n isDraft(draft[key]) ? original(draft[key]) : draft[key],\n action,\n );\n return draft;\n }),\n state,\n );\n\n const rootReducer = (state, action) => {\n const stateAfterActions = reducerForActions(state, action);\n const next =\n _cR.length > 0\n ? reducerForCustomReducers(stateAfterActions, action)\n : stateAfterActions;\n if (state !== next) {\n _cP.forEach(({ parentPath, bindComputedProperty }) => {\n const parentState = get(parentPath, next);\n if (parentState != null) bindComputedProperty(parentState, next);\n });\n }\n return next;\n };\n\n return rootReducer;\n}\n","import { clone, get, isPlainObject, isPromise, set, pSeries } from './lib';\n\nconst noopStorage = {\n getItem: () => undefined,\n setItem: () => undefined,\n removeItem: () => undefined,\n};\n\nconst getBrowerStorage = (storageName) => {\n let storageCache;\n return () => {\n if (!storageCache) {\n try {\n if (\n typeof window !== 'undefined' &&\n typeof window[storageName] !== 'undefined'\n ) {\n storageCache = window[storageName];\n }\n } catch (_) {\n // swallow the failure\n }\n if (!storageCache) {\n storageCache = noopStorage;\n }\n }\n\n return storageCache;\n };\n};\n\nconst localStorage = getBrowerStorage('localStorage');\nconst sessionStorage = getBrowerStorage('sessionStorage');\n\nfunction createStorageWrapper(storage, transformers = []) {\n if (storage == null) {\n storage = sessionStorage();\n }\n\n if (typeof storage === 'string') {\n if (storage === 'localStorage') {\n storage = localStorage();\n } else if (storage === 'sessionStorage') {\n storage = sessionStorage();\n } else {\n if (process.env.NODE_ENV === 'development') {\n console.warn(`Invalid storage provider`);\n }\n storage = noopStorage;\n }\n }\n\n const outTransformers = [...transformers].reverse();\n\n const serialize = (data) => {\n if (transformers.length > 0 && data != null && typeof data === 'object') {\n Object.keys(data).forEach((key) => {\n data[key] = transformers.reduce(\n (acc, cur) => cur.in(acc, key),\n data[key],\n );\n });\n }\n\n return storage === localStorage() || storage === sessionStorage()\n ? JSON.stringify({ data })\n : data;\n };\n\n const deserialize = (data) => {\n const result =\n storage === localStorage() || storage === sessionStorage()\n ? JSON.parse(data).data\n : data;\n if (\n outTransformers.length > 0 &&\n result != null &&\n typeof result === 'object'\n ) {\n Object.keys(result).forEach((key) => {\n result[key] = outTransformers.reduce(\n (acc, cur) => cur.out(acc, key),\n result[key],\n );\n });\n }\n return result;\n };\n\n const isAsync = isPromise(storage.getItem('_'));\n\n return {\n getItem: (key) => {\n if (isAsync) {\n return storage\n .getItem(key)\n .then((wrapped) =>\n wrapped != null ? deserialize(wrapped) : undefined,\n );\n }\n const wrapped = storage.getItem(key);\n return wrapped != null ? deserialize(wrapped) : undefined;\n },\n setItem: (key, data) => storage.setItem(key, serialize(data)),\n removeItem: (key) => storage.removeItem(key),\n };\n}\n\nexport function extractPersistConfig(path, persistdef = {}) {\n return {\n path,\n config: {\n allow: persistdef.allow || [],\n deny: persistdef.deny || [],\n mergeStrategy: persistdef.mergeStrategy || 'mergeDeep',\n storage: createStorageWrapper(\n persistdef.storage,\n persistdef.transformers,\n ),\n },\n };\n}\n\nfunction resolvePersistTargets(target, allow, deny) {\n let targets = Object.keys(target);\n if (allow.length > 0) {\n targets = targets.reduce((acc, cur) => {\n if (allow.findIndex((x) => x === cur) !== -1) {\n return [...acc, cur];\n }\n return acc;\n }, []);\n }\n if (deny.length > 0) {\n targets = targets.reduce((acc, cur) => {\n if (deny.findIndex((x) => x === cur) !== -1) {\n return acc;\n }\n return [...acc, cur];\n }, []);\n }\n return targets;\n}\n\nfunction createPersistenceClearer(persistKey, _r) {\n return () => {\n if (_r._i._persistenceConfig.length === 0) {\n return Promise.resolve();\n }\n return pSeries(\n _r._i._persistenceConfig.map(({ path, config }) => () =>\n Promise.resolve(config.storage.removeItem(persistKey(path))),\n ),\n );\n };\n}\n\nexport function createPersistor(persistKey, _r) {\n let persistPromise = Promise.resolve();\n let isPersisting = false;\n let nextPersistOperation;\n\n const timingMethod =\n typeof window === 'undefined'\n ? (fn) => fn()\n : window.requestIdleCallback != null\n ? window.requestIdleCallback\n : window.requestAnimationFrame;\n\n const persist = (nextState) => {\n if (_r._i._persistenceConfig.length === 0) {\n return;\n }\n\n const operation = () => {\n isPersisting = true;\n persistPromise = new Promise((resolve) => {\n timingMethod(() => {\n pSeries(\n _r._i._persistenceConfig.map(({ path, config }) => () => {\n const { storage, allow, deny } = config;\n const persistRootState = clone(get(path, nextState));\n const persistTargets = resolvePersistTargets(\n persistRootState,\n allow,\n deny,\n );\n const stateToPersist = {};\n persistTargets.map((key) => {\n const targetPath = [...path, key];\n const rawValue = get(targetPath, nextState);\n const value = isPlainObject(rawValue)\n ? clone(rawValue)\n : rawValue;\n stateToPersist[key] = value;\n });\n return Promise.resolve(\n storage.setItem(persistKey(path), stateToPersist),\n );\n }),\n ).finally(() => {\n isPersisting = false;\n if (nextPersistOperation) {\n const next = nextPersistOperation;\n nextPersistOperation = null;\n next();\n } else {\n resolve();\n }\n });\n });\n });\n };\n\n if (isPersisting) {\n nextPersistOperation = operation;\n } else {\n operation();\n }\n };\n\n return {\n persist,\n clear: createPersistenceClearer(persistKey, _r),\n flush: () => {\n if (nextPersistOperation) {\n nextPersistOperation();\n }\n return persistPromise;\n },\n };\n}\n\nexport function createPersistMiddleware(persistor, _r) {\n return ({ getState }) => (next) => (action) => {\n const state = next(action);\n if (\n action &&\n action.type !== '@action.ePRS' &&\n _r._i._persistenceConfig.length > 0\n ) {\n persistor.persist(getState());\n }\n return state;\n };\n}\n\nexport function rehydrateStateFromPersistIfNeeded(\n persistKey,\n replaceState,\n _r,\n root,\n) {\n if (_r._i._persistenceConfig.length === 0) {\n return Promise.resolve();\n }\n\n const state = clone(_r._i._dS);\n\n let rehydrating = false;\n\n return pSeries(\n _r._i._persistenceConfig.map((persistInstance) => () => {\n const { path, config } = persistInstance;\n const { mergeStrategy, storage } = config;\n\n if (root && (path.length < 1 || path[0] !== root)) {\n return Promise.resolve();\n }\n\n const hasDataModelChanged = (dataModel, rehydratingModelData) =>\n dataModel != null &&\n rehydratingModelData != null &&\n (typeof dataModel !== typeof rehydratingModelData ||\n (Array.isArray(dataModel) && !Array.isArray(rehydratingModelData)));\n\n const applyRehydrationStrategy = (persistedState) => {\n if (mergeStrategy === 'overwrite') {\n set(path, state, persistedState);\n } else if (mergeStrategy === 'mergeShallow') {\n const targetState = get(path, state);\n Object.keys(persistedState).forEach((key) => {\n if (hasDataModelChanged(targetState[key], persistedState[key])) {\n // skip as the data model type has changed since the data was persisted\n } else {\n targetState[key] = persistedState[key];\n }\n });\n } else if (mergeStrategy === 'mergeDeep') {\n const targetState = get(path, state);\n const setAt = (currentTargetState, currentPersistedState) => {\n Object.keys(currentPersistedState).forEach((key) => {\n if (\n hasDataModelChanged(\n currentTargetState[key],\n currentPersistedState[key],\n )\n ) {\n // skip as the data model type has changed since the data was persisted\n } else if (isPlainObject(currentPersistedState[key])) {\n currentTargetState[key] = currentTargetState[key] || {};\n setAt(currentTargetState[key], currentPersistedState[key]);\n } else {\n currentTargetState[key] = currentPersistedState[key];\n }\n });\n };\n setAt(targetState, persistedState);\n }\n };\n\n const rehydate = (persistedState) => {\n if (persistedState != null) {\n applyRehydrationStrategy(persistedState);\n rehydrating = true;\n }\n };\n\n const getItemResult = storage.getItem(persistKey(path));\n if (isPromise(getItemResult)) {\n return getItemResult.then(rehydate);\n }\n return Promise.resolve(rehydate(getItemResult));\n }),\n ).then(() => {\n if (rehydrating) {\n replaceState(state);\n }\n });\n}\n","import { thunkOnSymbol } from './constants';\nimport { get, isPromise } from './lib';\n\nexport function createThunkHandler(def, _r, injections, _aC) {\n return (payload, fail) => {\n const helpers = {\n dispatch: _r.dispatch,\n fail,\n getState: () => get(def.meta.parent, _r.getState()),\n getStoreActions: () => _aC,\n getStoreState: _r.getState,\n injections,\n meta: {\n key: def.meta.actionName,\n parent: def.meta.parent,\n path: def.meta.path,\n },\n };\n if (def[thunkOnSymbol] && def.meta.resolvedTargets) {\n payload.resolvedTargets = [...def.meta.resolvedTargets];\n }\n return def.fn(get(def.meta.parent, _aC), payload, helpers);\n };\n}\n\nconst logThunkEventListenerError = (type, err) => {\n // eslint-disable-next-line no-console\n console.log(`Error in ${type}`);\n // eslint-disable-next-line no-console\n console.log(err);\n};\n\nconst handleEventDispatchErrors = (type, dispatcher) => (...args) => {\n try {\n const result = dispatcher(...args);\n if (isPromise(result)) {\n result.catch((err) => {\n logThunkEventListenerError(type, err);\n });\n }\n } catch (err) {\n logThunkEventListenerError(type, err);\n }\n};\n\nexport function createThunkActionsCreator(def, _r) {\n const actionCreator = (payload) => {\n const dispatchStart = handleEventDispatchErrors(def.meta.startType, () =>\n _r.dispatch({\n type: def.meta.startType,\n payload,\n }),\n );\n\n const dispatchFail = handleEventDispatchErrors(def.meta.failType, (err) =>\n _r.dispatch({\n type: def.meta.failType,\n payload,\n error: err,\n }),\n );\n\n const dispatchSuccess = handleEventDispatchErrors(\n def.meta.successType,\n (result) =>\n _r.dispatch({\n type: def.meta.successType,\n payload,\n result,\n }),\n );\n\n dispatchStart();\n\n let failure = null;\n\n const fail = (_failure) => {\n failure = _failure;\n };\n\n const result = _r.dispatch(() => def.thunkHandler(payload, fail));\n\n if (isPromise(result)) {\n return result.then((resolved) => {\n if (failure) {\n dispatchFail(failure);\n } else {\n dispatchSuccess(resolved);\n }\n return resolved;\n });\n }\n\n if (failure) {\n dispatchFail(failure);\n } else {\n dispatchSuccess(result);\n }\n\n return result;\n };\n\n actionCreator.type = def.meta.type;\n actionCreator.successType = def.meta.successType;\n actionCreator.failType = def.meta.failType;\n actionCreator.startType = def.meta.startType;\n\n return actionCreator;\n}\n","import { get } from './lib';\n\nexport function createListenerMiddleware(_r) {\n return () => (next) => (action) => {\n const result = next(action);\n if (\n action &&\n _r._i._lAM[action.type] &&\n _r._i._lAM[action.type].length > 0\n ) {\n const sourceAction = _r._i._aCD[action.type];\n _r._i._lAM[action.type].forEach((actionCreator) => {\n actionCreator({\n type: sourceAction ? sourceAction.def.meta.type : action.type,\n payload: action.payload,\n error: action.error,\n result: action.result,\n });\n });\n }\n return result;\n };\n}\n\nexport function bindListenerdefs(listenerdefs, _aC, _aCD, _lAM) {\n listenerdefs.forEach((def) => {\n const targets = def.targetResolver(get(def.meta.parent, _aC), _aC);\n\n const targetTypes = (Array.isArray(targets) ? targets : [targets]).reduce(\n (acc, target) => {\n if (\n typeof target === 'function' &&\n target.def.meta.type &&\n _aCD[target.def.meta.type]\n ) {\n if (target.def.meta.successType) {\n acc.push(target.def.meta.successType);\n } else {\n acc.push(target.def.meta.type);\n }\n } else if (typeof target === 'string') {\n acc.push(target);\n }\n return acc;\n },\n [],\n );\n\n def.meta.resolvedTargets = targetTypes;\n\n targetTypes.forEach((targetType) => {\n const listenerReg = _lAM[targetType] || [];\n listenerReg.push(_aCD[def.meta.type]);\n _lAM[targetType] = listenerReg;\n });\n });\n}\n","import { areInputsEqual } from './lib';\n\nexport function createComputedPropertyBinder(parentPath, key, def, _r) {\n let runOnce = false;\n let prevInputs = [];\n let prevValue;\n return function createComputedProperty(parentState, storeState) {\n Object.defineProperty(parentState, key, {\n configurable: true,\n enumerable: true,\n get: () => {\n const inputs = def.stateResolvers.map((resolver) =>\n resolver(parentState, storeState),\n );\n if (\n runOnce &&\n (areInputsEqual(prevInputs, inputs) ||\n (_r._i._cS.isInReducer &&\n new Error().stack.match(/shallowCopy/gi) !== null))\n ) {\n // We don't want computed properties resolved every time an action\n // is handled by the reducer. They need to remain lazy, only being\n // computed when used by a component or getState call.\n return prevValue;\n }\n prevInputs = inputs;\n prevValue = def.fn(...inputs);\n runOnce = true;\n return prevValue;\n },\n });\n };\n}\n\nexport function createComputedPropertiesMiddleware(_r) {\n return () => (next) => (action) => {\n _r._i._cS.isInReducer = true;\n const result = next(action);\n _r._i._cS.isInReducer = false;\n return result;\n };\n}\n","import { get, isPromise } from './lib';\n\nexport function createEffectsMiddleware(_r) {\n return (store) => (next) => (action) => {\n if (_r._i._e.length === 0) {\n return next(action);\n }\n const prevState = store.getState();\n const result = next(action);\n const nextState = store.getState();\n _r._i._e.forEach((def) => {\n const prevLocal = get(def.meta.parent, prevState);\n const nextLocal = get(def.meta.parent, nextState);\n if (prevLocal !== nextLocal) {\n const prevDependencies = def.dependencyResolvers.map((resolver) =>\n resolver(prevLocal),\n );\n const nextDependencies = def.dependencyResolvers.map((resolver) =>\n resolver(nextLocal),\n );\n const hasChanged = prevDependencies.some(\n (dependency, idx) => dependency !== nextDependencies[idx],\n );\n if (hasChanged) {\n def.actionCreator(prevDependencies, nextDependencies, action);\n }\n }\n });\n return result;\n };\n}\n\nconst logEffectError = (err) => {\n // As users can't get a handle on effects we need to report the error\n // eslint-disable-next-line no-console\n console.log(err);\n};\n\nexport function createEffectHandler(def, _r, injections, _aC) {\n const actions = get(def.meta.parent, _aC);\n\n let dispose;\n\n return (change) => {\n const helpers = {\n dispatch: _r.dispatch,\n getState: () => get(def.meta.parent, _r.getState()),\n getStoreActions: () => _aC,\n getStoreState: _r.getState,\n injections,\n meta: {\n key: def.meta.actionName,\n parent: def.meta.parent,\n path: def.meta.path,\n },\n };\n\n if (dispose !== undefined) {\n const disposeResult = dispose();\n dispose = undefined;\n if (isPromise(disposeResult)) {\n disposeResult.catch(logEffectError);\n }\n }\n\n const effectResult = def.fn(actions, change, helpers);\n\n if (isPromise(effectResult)) {\n return effectResult.then((resolved) => {\n if (typeof resolved === 'function') {\n if (process.env.NODE_ENV !== 'production') {\n // Dispose functions are not allowed to be resolved asynchronously.\n // Doing so would provide inconsistent behaviour around their execution.\n // eslint-disable-next-line no-console\n console.warn(\n '[easy-peasy] Effect is asynchronously resolving a dispose fn.',\n );\n }\n }\n });\n }\n\n if (typeof effectResult === 'function') {\n dispose = effectResult;\n }\n\n return undefined;\n };\n}\n\nconst logEffectEventListenerError = (type, err) => {\n // eslint-disable-next-line no-console\n console.log(`Error in ${type}`);\n // eslint-disable-next-line no-console\n console.log(err);\n};\n\nconst handleEventDispatchErrors = (type, dispatcher) => (...args) => {\n try {\n const result = dispatcher(...args);\n if (isPromise(result)) {\n result.catch((err) => {\n logEffectEventListenerError(type, err);\n });\n }\n } catch (err) {\n logEffectEventListenerError(type, err);\n }\n};\n\nexport function createEffectActionsCreator(def, _r, effectHandler) {\n const actionCreator = (previousDependencies, nextDependencies, action) => {\n const change = {\n prev: previousDependencies,\n current: nextDependencies,\n action,\n };\n\n const dispatchStart = handleEventDispatchErrors(def.meta.startType, () =>\n _r.dispatch({\n type: def.meta.startType,\n change,\n }),\n );\n\n const dispatchSuccess = handleEventDispatchErrors(\n def.meta.successType,\n () =>\n _r.dispatch({\n type: def.meta.successType,\n change,\n }),\n );\n\n dispatchStart();\n\n try {\n const result = _r.dispatch(() => effectHandler(change));\n\n if (isPromise(result)) {\n return result.then((resolved) => {\n dispatchSuccess(resolved);\n return resolved;\n }, logEffectError);\n }\n\n dispatchSuccess(result);\n\n return result;\n } catch (err) {\n logEffectError(err);\n }\n };\n\n actionCreator.type = def.meta.type;\n actionCreator.startType = def.meta.startType;\n actionCreator.successType = def.meta.successType;\n actionCreator.failType = def.meta.failType;\n\n return actionCreator;\n}\n","import {\n actionOnSymbol,\n actionSymbol,\n computedSymbol,\n effectOnSymbol,\n persistSymbol,\n reducerSymbol,\n thunkOnSymbol,\n thunkSymbol,\n} from './constants';\nimport { get, isPlainObject, set } from './lib';\nimport { extractPersistConfig } from './persistence';\nimport { createActionCreator } from './actions';\nimport { createThunkHandler, createThunkActionsCreator } from './thunks';\nimport { bindListenerdefs } from './listeners';\nimport { createComputedPropertyBinder } from './computed-properties';\nimport { createEffectHandler, createEffectActionsCreator } from './effects';\n\nexport default function extractDataFromModel(\n model,\n initialState,\n injections,\n _r,\n) {\n const _dS = initialState;\n const _aCD = {};\n const _aC = {};\n const _aRD = {};\n const actionThunks = {};\n const _cP = [];\n const _cR = [];\n const _e = [];\n const _lAC = {};\n const _lAM = {};\n const listenerdefs = [];\n let _persistenceConfig = [];\n const _cS = {\n isInReducer: false,\n };\n\n const recursiveExtractFromModel = (current, parentPath) =>\n Object.keys(current).forEach((key) => {\n const value = current[key];\n const path = [...parentPath, key];\n const meta = {\n parent: parentPath,\n path,\n key,\n };\n const handleValueAsState = () => {\n const initialParentRef = get(parentPath, initialState);\n if (initialParentRef && key in initialParentRef) {\n set(path, _dS, initialParentRef[key]);\n } else {\n set(path, _dS, value);\n }\n };\n\n if (key === persistSymbol) {\n _persistenceConfig.push(extractPersistConfig(parentPath, value));\n return;\n }\n\n if (value != null && typeof value === 'object') {\n if (value[actionSymbol] || value[actionOnSymbol]) {\n const def = { ...value };\n\n // Determine the category of the action\n const category = def[actionSymbol] ? '@action' : '@actionOn';\n\n // Establish the meta data describing the action\n def.meta = {\n actionName: meta.key,\n category,\n type: `${category}.${meta.path.join('.')}`,\n parent: meta.parent,\n path: meta.path,\n };\n\n // Create the \"action creator\" function\n def.actionCreator = createActionCreator(def, _r);\n\n // Create a bidirectional relationship of the def/actionCreator\n def.actionCreator.def = def;\n\n // Create a bidirectional relationship of the def/reducer\n def.fn.def = def;\n\n // Add the action creator to lookup map\n _aCD[def.meta.type] = def.actionCreator;\n\n // Add the reducer to lookup map\n _aRD[def.meta.type] = def.fn;\n\n // We don't want to expose the internal action to consumers\n if (meta.key !== 'ePRS') {\n // Set the action creator in the \"actions\" object tree for\n // either the listeners object tree, or the standard actions/thunks\n // object tree\n if (def[actionOnSymbol]) {\n listenerdefs.push(def);\n set(path, _lAC, def.actionCreator);\n } else {\n set(path, _aC, def.actionCreator);\n }\n }\n } else if (value[thunkSymbol] || value[thunkOnSymbol]) {\n const def = { ...value };\n\n // Determine the category of the thunk\n const category = def[thunkSymbol] ? '@thunk' : '@thunkOn';\n\n // Establish the meta data describing the thunk\n const type = `${category}.${meta.path.join('.')}`;\n def.meta = {\n actionName: meta.key,\n parent: meta.parent,\n path: meta.path,\n type,\n startType: `${type}(start)`,\n successType: `${type}(success)`,\n failType: `${type}(fail)`,\n };\n\n // Create the function that will handle, i.e. be executed, when\n // the thunk action is created/dispatched\n def.thunkHandler = createThunkHandler(def, _r, injections, _aC);\n\n // Register the thunk handler\n set(path, actionThunks, def.thunkHandler);\n\n // Create the \"action creator\" function\n def.actionCreator = createThunkActionsCreator(def, _r);\n\n // Create a bidirectional relationship of the def/actionCreator\n def.actionCreator.def = def;\n\n // Register the action creator within the lookup map\n _aCD[def.meta.type] = def.actionCreator;\n\n // Set the action creator in the \"actions\" object tree for\n // either the listeners object tree, or the standard actions/thunks\n // object tree\n if (def[thunkOnSymbol]) {\n listenerdefs.push(def);\n set(path, _lAC, def.actionCreator);\n } else {\n set(path, _aC, def.actionCreator);\n }\n } else if (value[computedSymbol]) {\n const parent = get(parentPath, _dS);\n const bindComputedProperty = createComputedPropertyBinder(\n parentPath,\n key,\n value,\n _r,\n );\n bindComputedProperty(parent, _dS);\n _cP.push({ key, parentPath, bindComputedProperty });\n } else if (value[reducerSymbol]) {\n _cR.push({ key, parentPath, reducer: value.fn });\n } else if (value[effectOnSymbol]) {\n const def = { ...value };\n\n // Establish the meta data describing the effect\n const type = `@effectOn.${meta.path.join('.')}`;\n def.meta = {\n type,\n actionName: meta.key,\n parent: meta.parent,\n path: meta.path,\n startType: `${type}(start)`,\n successType: `${type}(success)`,\n failType: `${type}(fail)`,\n };\n\n const effectHandler = createEffectHandler(def, _r, injections, _aC);\n\n const actionCreator = createEffectActionsCreator(\n def,\n _r,\n effectHandler,\n );\n\n def.actionCreator = actionCreator;\n\n _e.push(def);\n } else if (isPlainObject(value)) {\n const existing = get(path, _dS);\n if (existing == null) {\n set(path, _dS, {});\n }\n recursiveExtractFromModel(value, path);\n } else {\n handleValueAsState();\n }\n } else {\n handleValueAsState();\n }\n });\n\n _persistenceConfig = _persistenceConfig.sort((a, b) => {\n const aPath = a.path.join('.');\n const bPath = b.path.join('.');\n if (aPath < bPath) {\n return -1;\n }\n if (aPath > bPath) {\n return 1;\n }\n return 0;\n });\n\n recursiveExtractFromModel(model, []);\n\n bindListenerdefs(listenerdefs, _aC, _aCD, _lAM);\n\n return {\n _aCD,\n _aC,\n _aRD,\n _cP,\n _cR,\n _cS,\n _dS,\n _e,\n _lAC,\n _lAM,\n _persistenceConfig,\n };\n}\n","import { actionOnSymbol } from './constants';\n\nexport function createActionCreator(def, _r) {\n function actionCreator(payload) {\n const action = {\n type: def.meta.type,\n payload,\n };\n if (def[actionOnSymbol] && def.meta.resolvedTargets) {\n payload.resolvedTargets = [...def.meta.resolvedTargets];\n }\n return _r.dispatch(action);\n }\n\n // We bind the types to the creator for easy reference by consumers\n actionCreator.type = def.meta.type;\n\n return actionCreator;\n}\n","import {\n applyMiddleware,\n compose as reduxCompose,\n createStore as reduxCreateStore,\n} from 'redux';\nimport reduxThunk from 'redux-thunk';\nimport * as helpers from './helpers';\nimport createReducer from './create-reducer';\nimport extractDataFromModel from './extract-data-from-model';\nimport {\n createPersistor,\n createPersistMiddleware,\n rehydrateStateFromPersistIfNeeded,\n} from './persistence';\nimport { createComputedPropertiesMiddleware } from './computed-properties';\nimport { createListenerMiddleware } from './listeners';\nimport { clone } from './lib';\nimport { createEffectsMiddleware } from './effects';\n\nexport function createStore(model, options = {}) {\n const modelClone = clone(model);\n const {\n compose,\n devTools = process.env.NODE_ENV !== 'production',\n disableImmer = false,\n enhancers = [],\n initialState = {},\n injections = {},\n middleware = [],\n mockActions = false,\n name: storeName = `EasyPeasyStore`,\n version = 0,\n reducerEnhancer = (rootReducer) => rootReducer,\n } = options;\n\n const bindReplaceState = (modelDef) => ({\n ...modelDef,\n ePRS: helpers.action((_, payload) => payload),\n });\n\n const _r = {};\n\n let modeldef = bindReplaceState(modelClone);\n let mockedActions = [];\n\n const persistKey = (targetPath) =>\n `[${storeName}][${version}]${\n targetPath.length > 0 ? `[${targetPath.join('.')}]` : ''\n }`;\n const persistor = createPersistor(persistKey, _r);\n const persistMiddleware = createPersistMiddleware(persistor, _r);\n\n const replaceState = (nextState) => _r._i._aCD['@action.ePRS'](nextState);\n\n const bindStoreInternals = (state = {}) => {\n const data = extractDataFromModel(modeldef, state, injections, _r);\n _r._i = {\n ...data,\n reducer: reducerEnhancer(\n createReducer(disableImmer, data._aRD, data._cR, data._cP),\n ),\n };\n };\n\n const mockActionsMiddleware = () => () => (action) => {\n if (action != null) {\n mockedActions.push(action);\n }\n return undefined;\n };\n\n const composeEnhancers =\n compose ||\n (devTools &&\n typeof window !== 'undefined' &&\n window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\n ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({\n name: storeName,\n })\n : reduxCompose);\n\n bindStoreInternals(initialState);\n\n const easyPeasyMiddleware = [\n createComputedPropertiesMiddleware(_r),\n ...middleware,\n reduxThunk,\n createListenerMiddleware(_r),\n createEffectsMiddleware(_r),\n persistMiddleware,\n ];\n\n if (mockActions) {\n easyPeasyMiddleware.push(mockActionsMiddleware);\n }\n\n const store = reduxCreateStore(\n _r._i.reducer,\n _r._i._dS,\n composeEnhancers(applyMiddleware(...easyPeasyMiddleware), ...enhancers),\n );\n\n store.subscribe(() => {\n _r._i._cS.isInReducer = false;\n });\n\n _r.dispatch = store.dispatch;\n _r.getState = store.getState;\n\n const bindActionCreators = () => {\n Object.keys(store.dispatch).forEach((actionsKey) => {\n delete store.dispatch[actionsKey];\n });\n Object.keys(_r._i._aC).forEach((key) => {\n store.dispatch[key] = _r._i._aC[key];\n });\n };\n\n bindActionCreators();\n\n const rebindStore = (removeKey) => {\n const currentState = store.getState();\n if (removeKey) {\n delete currentState[removeKey];\n }\n bindStoreInternals(currentState);\n store.replaceReducer(_r._i.reducer);\n replaceState(_r._i._dS);\n bindActionCreators();\n };\n\n const resolveRehydration = rehydrateStateFromPersistIfNeeded(\n persistKey,\n replaceState,\n _r,\n );\n\n return Object.assign(store, {\n addModel: (key, modelForKey) => {\n if (modeldef[key] && process.env.NODE_ENV !== 'production') {\n store.removeModel(key);\n }\n modeldef[key] = modelForKey;\n rebindStore();\n // There may have been persisted state for a dynamic model. We should try\n // and rehydrate the specifc node\n const addModelRehydration = rehydrateStateFromPersistIfNeeded(\n persistKey,\n replaceState,\n _r,\n key,\n );\n return {\n resolveRehydration: () => addModelRehydration,\n };\n },\n clearMockedActions: () => {\n mockedActions = [];\n },\n getActions: () => _r._i._aC,\n getListeners: () => _r._i._lAC,\n getMockedActions: () => [...mockedActions],\n persist: {\n clear: persistor.clear,\n flush: persistor.flush,\n resolveRehydration: () => resolveRehydration,\n },\n reconfigure: (newModel) => {\n modeldef = bindReplaceState(newModel);\n rebindStore();\n },\n removeModel: (key) => {\n if (!modeldef[key]) {\n return;\n }\n delete modeldef[key];\n rebindStore(key);\n },\n });\n}\n","/* eslint-disable react/prop-types */\n\nimport React from 'react';\nimport StoreContext from './context';\n\nexport function StoreProvider({ children, store }) {\n return (\n {children}\n );\n}\n","var defineProperty = require(\"./defineProperty.js\");\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\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\nmodule.exports = _objectSpread2;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\n * 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 */\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/*\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 * @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;","function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport View from '../View';\nimport React from 'react';\n\nfunction RefreshControl(props) {\n var colors = props.colors,\n enabled = props.enabled,\n onRefresh = props.onRefresh,\n progressBackgroundColor = props.progressBackgroundColor,\n progressViewOffset = props.progressViewOffset,\n refreshing = props.refreshing,\n size = props.size,\n tintColor = props.tintColor,\n title = props.title,\n titleColor = props.titleColor,\n rest = _objectWithoutPropertiesLoose(props, [\"colors\", \"enabled\", \"onRefresh\", \"progressBackgroundColor\", \"progressViewOffset\", \"refreshing\", \"size\", \"tintColor\", \"title\", \"titleColor\"]);\n\n return /*#__PURE__*/React.createElement(View, rest);\n}\n\nexport default RefreshControl;","/**\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 */\nimport Dimensions from '../../exports/Dimensions';\nimport findNodeHandle from '../../exports/findNodeHandle';\nimport invariant from 'fbjs/lib/invariant';\nimport Platform from '../../exports/Platform';\nimport TextInputState from '../TextInputState';\nimport UIManager from '../../exports/UIManager';\nimport warning from 'fbjs/lib/warning';\n/**\n * Mixin that can be integrated in order to handle scrolling that plays well\n * with `ResponderEventPlugin`. Integrate with your platform specific scroll\n * views, or even your custom built (every-frame animating) scroll views so that\n * all of these systems play well with the `ResponderEventPlugin`.\n *\n * iOS scroll event timing nuances:\n * ===============================\n *\n *\n * Scrolling without bouncing, if you touch down:\n * -------------------------------\n *\n * 1. `onMomentumScrollBegin` (when animation begins after letting up)\n * ... physical touch starts ...\n * 2. `onTouchStartCapture` (when you press down to stop the scroll)\n * 3. `onTouchStart` (same, but bubble phase)\n * 4. `onResponderRelease` (when lifting up - you could pause forever before * lifting)\n * 5. `onMomentumScrollEnd`\n *\n *\n * Scrolling with bouncing, if you touch down:\n * -------------------------------\n *\n * 1. `onMomentumScrollBegin` (when animation begins after letting up)\n * ... bounce begins ...\n * ... some time elapses ...\n * ... physical touch during bounce ...\n * 2. `onMomentumScrollEnd` (Makes no sense why this occurs first during bounce)\n * 3. `onTouchStartCapture` (immediately after `onMomentumScrollEnd`)\n * 4. `onTouchStart` (same, but bubble phase)\n * 5. `onTouchEnd` (You could hold the touch start for a long time)\n * 6. `onMomentumScrollBegin` (When releasing the view starts bouncing back)\n *\n * So when we receive an `onTouchStart`, how can we tell if we are touching\n * *during* an animation (which then causes the animation to stop)? The only way\n * to tell is if the `touchStart` occurred immediately after the\n * `onMomentumScrollEnd`.\n *\n * This is abstracted out for you, so you can just call this.scrollResponderIsAnimating() if\n * necessary\n *\n * `ScrollResponder` also includes logic for blurring a currently focused input\n * if one is focused while scrolling. The `ScrollResponder` is a natural place\n * to put this logic since it can support not dismissing the keyboard while\n * scrolling, unless a recognized \"tap\"-like gesture has occurred.\n *\n * The public lifecycle API includes events for keyboard interaction, responder\n * interaction, and scrolling (among others). The keyboard callbacks\n * `onKeyboardWill/Did/*` are *global* events, but are invoked on scroll\n * responder's props so that you can guarantee that the scroll responder's\n * internal state has been updated accordingly (and deterministically) by\n * the time the props callbacks are invoke. Otherwise, you would always wonder\n * if the scroll responder is currently in a state where it recognizes new\n * keyboard positions etc. If coordinating scrolling with keyboard movement,\n * *always* use these hooks instead of listening to your own global keyboard\n * events.\n *\n * Public keyboard lifecycle API: (props callbacks)\n *\n * Standard Keyboard Appearance Sequence:\n *\n * this.props.onKeyboardWillShow\n * this.props.onKeyboardDidShow\n *\n * `onScrollResponderKeyboardDismissed` will be invoked if an appropriate\n * tap inside the scroll responder's scrollable region was responsible\n * for the dismissal of the keyboard. There are other reasons why the\n * keyboard could be dismissed.\n *\n * this.props.onScrollResponderKeyboardDismissed\n *\n * Standard Keyboard Hide Sequence:\n *\n * this.props.onKeyboardWillHide\n * this.props.onKeyboardDidHide\n */\n\nvar emptyObject = {};\nvar IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;\nvar ScrollResponderMixin = {\n // mixins: [Subscribable.Mixin],\n scrollResponderMixinGetInitialState: function scrollResponderMixinGetInitialState() {\n return {\n isTouching: false,\n lastMomentumScrollBeginTime: 0,\n lastMomentumScrollEndTime: 0,\n // Reset to false every time becomes responder. This is used to:\n // - Determine if the scroll view has been scrolled and therefore should\n // refuse to give up its responder lock.\n // - Determine if releasing should dismiss the keyboard when we are in\n // tap-to-dismiss mode (!this.props.keyboardShouldPersistTaps).\n observedScrollSinceBecomingResponder: false,\n becameResponderWhileAnimating: false\n };\n },\n\n /**\n * Invoke this from an `onScroll` event.\n */\n scrollResponderHandleScrollShouldSetResponder: function scrollResponderHandleScrollShouldSetResponder() {\n return this.state.isTouching;\n },\n\n /**\n * Merely touch starting is not sufficient for a scroll view to become the\n * responder. Being the \"responder\" means that the very next touch move/end\n * event will result in an action/movement.\n *\n * Invoke this from an `onStartShouldSetResponder` event.\n *\n * `onStartShouldSetResponder` is used when the next move/end will trigger\n * some UI movement/action, but when you want to yield priority to views\n * nested inside of the view.\n *\n * There may be some cases where scroll views actually should return `true`\n * from `onStartShouldSetResponder`: Any time we are detecting a standard tap\n * that gives priority to nested views.\n *\n * - If a single tap on the scroll view triggers an action such as\n * recentering a map style view yet wants to give priority to interaction\n * views inside (such as dropped pins or labels), then we would return true\n * from this method when there is a single touch.\n *\n * - Similar to the previous case, if a two finger \"tap\" should trigger a\n * zoom, we would check the `touches` count, and if `>= 2`, we would return\n * true.\n *\n */\n scrollResponderHandleStartShouldSetResponder: function scrollResponderHandleStartShouldSetResponder() {\n return false;\n },\n\n /**\n * There are times when the scroll view wants to become the responder\n * (meaning respond to the next immediate `touchStart/touchEnd`), in a way\n * that *doesn't* give priority to nested views (hence the capture phase):\n *\n * - Currently animating.\n * - Tapping anywhere that is not the focused input, while the keyboard is\n * up (which should dismiss the keyboard).\n *\n * Invoke this from an `onStartShouldSetResponderCapture` event.\n */\n scrollResponderHandleStartShouldSetResponderCapture: function scrollResponderHandleStartShouldSetResponderCapture(e) {\n // First see if we want to eat taps while the keyboard is up\n // var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();\n // if (!this.props.keyboardShouldPersistTaps &&\n // currentlyFocusedTextInput != null &&\n // e.target !== currentlyFocusedTextInput) {\n // return true;\n // }\n return this.scrollResponderIsAnimating();\n },\n\n /**\n * Invoke this from an `onResponderReject` event.\n *\n * Some other element is not yielding its role as responder. Normally, we'd\n * just disable the `UIScrollView`, but a touch has already began on it, the\n * `UIScrollView` will not accept being disabled after that. The easiest\n * solution for now is to accept the limitation of disallowing this\n * altogether. To improve this, find a way to disable the `UIScrollView` after\n * a touch has already started.\n */\n scrollResponderHandleResponderReject: function scrollResponderHandleResponderReject() {\n warning(false, \"ScrollView doesn't take rejection well - scrolls anyway\");\n },\n\n /**\n * We will allow the scroll view to give up its lock iff it acquired the lock\n * during an animation. This is a very useful default that happens to satisfy\n * many common user experiences.\n *\n * - Stop a scroll on the left edge, then turn that into an outer view's\n * backswipe.\n * - Stop a scroll mid-bounce at the top, continue pulling to have the outer\n * view dismiss.\n * - However, without catching the scroll view mid-bounce (while it is\n * motionless), if you drag far enough for the scroll view to become\n * responder (and therefore drag the scroll view a bit), any backswipe\n * navigation of a swipe gesture higher in the view hierarchy, should be\n * rejected.\n */\n scrollResponderHandleTerminationRequest: function scrollResponderHandleTerminationRequest() {\n return !this.state.observedScrollSinceBecomingResponder;\n },\n\n /**\n * Invoke this from an `onTouchEnd` event.\n *\n * @param {SyntheticEvent} e Event.\n */\n scrollResponderHandleTouchEnd: function scrollResponderHandleTouchEnd(e) {\n var nativeEvent = e.nativeEvent;\n this.state.isTouching = nativeEvent.touches.length !== 0;\n this.props.onTouchEnd && this.props.onTouchEnd(e);\n },\n\n /**\n * Invoke this from an `onResponderRelease` event.\n */\n scrollResponderHandleResponderRelease: function scrollResponderHandleResponderRelease(e) {\n this.props.onResponderRelease && this.props.onResponderRelease(e); // By default scroll views will unfocus a textField\n // if another touch occurs outside of it\n\n var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();\n\n if (!this.props.keyboardShouldPersistTaps && currentlyFocusedTextInput != null && e.target !== currentlyFocusedTextInput && !this.state.observedScrollSinceBecomingResponder && !this.state.becameResponderWhileAnimating) {\n this.props.onScrollResponderKeyboardDismissed && this.props.onScrollResponderKeyboardDismissed(e);\n TextInputState.blurTextInput(currentlyFocusedTextInput);\n }\n },\n scrollResponderHandleScroll: function scrollResponderHandleScroll(e) {\n this.state.observedScrollSinceBecomingResponder = true;\n this.props.onScroll && this.props.onScroll(e);\n },\n\n /**\n * Invoke this from an `onResponderGrant` event.\n */\n scrollResponderHandleResponderGrant: function scrollResponderHandleResponderGrant(e) {\n this.state.observedScrollSinceBecomingResponder = false;\n this.props.onResponderGrant && this.props.onResponderGrant(e);\n this.state.becameResponderWhileAnimating = this.scrollResponderIsAnimating();\n },\n\n /**\n * Unfortunately, `onScrollBeginDrag` also fires when *stopping* the scroll\n * animation, and there's not an easy way to distinguish a drag vs. stopping\n * momentum.\n *\n * Invoke this from an `onScrollBeginDrag` event.\n */\n scrollResponderHandleScrollBeginDrag: function scrollResponderHandleScrollBeginDrag(e) {\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n },\n\n /**\n * Invoke this from an `onScrollEndDrag` event.\n */\n scrollResponderHandleScrollEndDrag: function scrollResponderHandleScrollEndDrag(e) {\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n },\n\n /**\n * Invoke this from an `onMomentumScrollBegin` event.\n */\n scrollResponderHandleMomentumScrollBegin: function scrollResponderHandleMomentumScrollBegin(e) {\n this.state.lastMomentumScrollBeginTime = Date.now();\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n },\n\n /**\n * Invoke this from an `onMomentumScrollEnd` event.\n */\n scrollResponderHandleMomentumScrollEnd: function scrollResponderHandleMomentumScrollEnd(e) {\n this.state.lastMomentumScrollEndTime = Date.now();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n },\n\n /**\n * Invoke this from an `onTouchStart` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {SyntheticEvent} e Touch Start event.\n */\n scrollResponderHandleTouchStart: function scrollResponderHandleTouchStart(e) {\n this.state.isTouching = true;\n this.props.onTouchStart && this.props.onTouchStart(e);\n },\n\n /**\n * Invoke this from an `onTouchMove` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {SyntheticEvent} e Touch Start event.\n */\n scrollResponderHandleTouchMove: function scrollResponderHandleTouchMove(e) {\n this.props.onTouchMove && this.props.onTouchMove(e);\n },\n\n /**\n * A helper function for this class that lets us quickly determine if the\n * view is currently animating. This is particularly useful to know when\n * a touch has just started or ended.\n */\n scrollResponderIsAnimating: function scrollResponderIsAnimating() {\n var now = Date.now();\n var timeSinceLastMomentumScrollEnd = now - this.state.lastMomentumScrollEndTime;\n var isAnimating = timeSinceLastMomentumScrollEnd < IS_ANIMATING_TOUCH_START_THRESHOLD_MS || this.state.lastMomentumScrollEndTime < this.state.lastMomentumScrollBeginTime;\n return isAnimating;\n },\n\n /**\n * Returns the node that represents native view that can be scrolled.\n * Components can pass what node to use by defining a `getScrollableNode`\n * function otherwise `this` is used.\n */\n scrollResponderGetScrollableNode: function scrollResponderGetScrollableNode() {\n return this.getScrollableNode ? this.getScrollableNode() : findNodeHandle(this);\n },\n\n /**\n * A helper function to scroll to a specific point in the scrollview.\n * This is currently used to help focus on child textviews, but can also\n * be used to quickly scroll to any element we want to focus. Syntax:\n *\n * scrollResponderScrollTo(options: {x: number = 0; y: number = 0; animated: boolean = true})\n *\n * Note: The weird argument signature is due to the fact that, for historical reasons,\n * the function also accepts separate arguments as as alternative to the options object.\n * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n */\n scrollResponderScrollTo: function scrollResponderScrollTo(x, y, animated) {\n if (typeof x === 'number') {\n console.warn('`scrollResponderScrollTo(x, y, animated)` is deprecated. Use `scrollResponderScrollTo({x: 5, y: 5, animated: true})` instead.');\n } else {\n var _ref = x || emptyObject;\n\n x = _ref.x;\n y = _ref.y;\n animated = _ref.animated;\n }\n\n var node = this.scrollResponderGetScrollableNode();\n var left = x || 0;\n var top = y || 0;\n\n if (typeof node.scroll === 'function') {\n node.scroll({\n top: top,\n left: left,\n behavior: !animated ? 'auto' : 'smooth'\n });\n } else {\n node.scrollLeft = left;\n node.scrollTop = top;\n }\n },\n\n /**\n * A helper function to zoom to a specific rect in the scrollview. The argument has the shape\n * {x: number; y: number; width: number; height: number; animated: boolean = true}\n *\n * @platform ios\n */\n scrollResponderZoomTo: function scrollResponderZoomTo(rect, animated) // deprecated, put this inside the rect argument instead\n {\n if (Platform.OS !== 'ios') {\n invariant('zoomToRect is not implemented');\n }\n },\n\n /**\n * Displays the scroll indicators momentarily.\n */\n scrollResponderFlashScrollIndicators: function scrollResponderFlashScrollIndicators() {},\n\n /**\n * This method should be used as the callback to onFocus in a TextInputs'\n * parent view. Note that any module using this mixin needs to return\n * the parent view's ref in getScrollViewRef() in order to use this method.\n * @param {any} nodeHandle The TextInput node handle\n * @param {number} additionalOffset The scroll view's top \"contentInset\".\n * Default is 0.\n * @param {bool} preventNegativeScrolling Whether to allow pulling the content\n * down to make it meet the keyboard's top. Default is false.\n */\n scrollResponderScrollNativeHandleToKeyboard: function scrollResponderScrollNativeHandleToKeyboard(nodeHandle, additionalOffset, preventNegativeScrollOffset) {\n this.additionalScrollOffset = additionalOffset || 0;\n this.preventNegativeScrollOffset = !!preventNegativeScrollOffset;\n UIManager.measureLayout(nodeHandle, findNodeHandle(this.getInnerViewNode()), this.scrollResponderTextInputFocusError, this.scrollResponderInputMeasureAndScrollToKeyboard);\n },\n\n /**\n * The calculations performed here assume the scroll view takes up the entire\n * screen - even if has some content inset. We then measure the offsets of the\n * keyboard, and compensate both for the scroll view's \"contentInset\".\n *\n * @param {number} left Position of input w.r.t. table view.\n * @param {number} top Position of input w.r.t. table view.\n * @param {number} width Width of the text input.\n * @param {number} height Height of the text input.\n */\n scrollResponderInputMeasureAndScrollToKeyboard: function scrollResponderInputMeasureAndScrollToKeyboard(left, top, width, height) {\n var keyboardScreenY = Dimensions.get('window').height;\n\n if (this.keyboardWillOpenTo) {\n keyboardScreenY = this.keyboardWillOpenTo.endCoordinates.screenY;\n }\n\n var scrollOffsetY = top - keyboardScreenY + height + this.additionalScrollOffset; // By default, this can scroll with negative offset, pulling the content\n // down so that the target component's bottom meets the keyboard's top.\n // If requested otherwise, cap the offset at 0 minimum to avoid content\n // shifting down.\n\n if (this.preventNegativeScrollOffset) {\n scrollOffsetY = Math.max(0, scrollOffsetY);\n }\n\n this.scrollResponderScrollTo({\n x: 0,\n y: scrollOffsetY,\n animated: true\n });\n this.additionalOffset = 0;\n this.preventNegativeScrollOffset = false;\n },\n scrollResponderTextInputFocusError: function scrollResponderTextInputFocusError(e) {\n console.error('Error measuring text field: ', e);\n },\n\n /**\n * `componentWillMount` is the closest thing to a standard \"constructor\" for\n * React components.\n *\n * The `keyboardWillShow` is called before input focus.\n */\n UNSAFE_componentWillMount: function UNSAFE_componentWillMount() {\n this.keyboardWillOpenTo = null;\n this.additionalScrollOffset = 0; // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardWillShow', this.scrollResponderKeyboardWillShow);\n // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardWillHide', this.scrollResponderKeyboardWillHide);\n // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardDidShow', this.scrollResponderKeyboardDidShow);\n // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardDidHide', this.scrollResponderKeyboardDidHide);\n },\n\n /**\n * Warning, this may be called several times for a single keyboard opening.\n * It's best to store the information in this method and then take any action\n * at a later point (either in `keyboardDidShow` or other).\n *\n * Here's the order that events occur in:\n * - focus\n * - willShow {startCoordinates, endCoordinates} several times\n * - didShow several times\n * - blur\n * - willHide {startCoordinates, endCoordinates} several times\n * - didHide several times\n *\n * The `ScrollResponder` providesModule callbacks for each of these events.\n * Even though any user could have easily listened to keyboard events\n * themselves, using these `props` callbacks ensures that ordering of events\n * is consistent - and not dependent on the order that the keyboard events are\n * subscribed to. This matters when telling the scroll view to scroll to where\n * the keyboard is headed - the scroll responder better have been notified of\n * the keyboard destination before being instructed to scroll to where the\n * keyboard will be. Stick to the `ScrollResponder` callbacks, and everything\n * will work.\n *\n * WARNING: These callbacks will fire even if a keyboard is displayed in a\n * different navigation pane. Filter out the events to determine if they are\n * relevant to you. (For example, only if you receive these callbacks after\n * you had explicitly focused a node etc).\n */\n scrollResponderKeyboardWillShow: function scrollResponderKeyboardWillShow(e) {\n this.keyboardWillOpenTo = e;\n this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);\n },\n scrollResponderKeyboardWillHide: function scrollResponderKeyboardWillHide(e) {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardWillHide && this.props.onKeyboardWillHide(e);\n },\n scrollResponderKeyboardDidShow: function scrollResponderKeyboardDidShow(e) {\n // TODO(7693961): The event for DidShow is not available on iOS yet.\n // Use the one from WillShow and do not assign.\n if (e) {\n this.keyboardWillOpenTo = e;\n }\n\n this.props.onKeyboardDidShow && this.props.onKeyboardDidShow(e);\n },\n scrollResponderKeyboardDidHide: function scrollResponderKeyboardDidHide(e) {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardDidHide && this.props.onKeyboardDidHide(e);\n }\n};\nvar ScrollResponder = {\n Mixin: ScrollResponderMixin\n};\nexport default ScrollResponder;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport useMergeRefs from '../../modules/useMergeRefs';\n\nfunction normalizeScrollEvent(e) {\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return e.target.scrollLeft;\n },\n\n get y() {\n return e.target.scrollTop;\n }\n\n },\n contentSize: {\n get height() {\n return e.target.scrollHeight;\n },\n\n get width() {\n return e.target.scrollWidth;\n }\n\n },\n layoutMeasurement: {\n get height() {\n return e.target.offsetHeight;\n },\n\n get width() {\n return e.target.offsetWidth;\n }\n\n }\n },\n timeStamp: Date.now()\n };\n}\n\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n var timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\n/**\n * Encapsulates the Web-specific scroll throttling and disabling logic\n */\n\n\nvar ScrollViewBase = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var onScroll = props.onScroll,\n onTouchMove = props.onTouchMove,\n onWheel = props.onWheel,\n _props$scrollEnabled = props.scrollEnabled,\n scrollEnabled = _props$scrollEnabled === void 0 ? true : _props$scrollEnabled,\n _props$scrollEventThr = props.scrollEventThrottle,\n scrollEventThrottle = _props$scrollEventThr === void 0 ? 0 : _props$scrollEventThr,\n showsHorizontalScrollIndicator = props.showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator = props.showsVerticalScrollIndicator,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, [\"onScroll\", \"onTouchMove\", \"onWheel\", \"scrollEnabled\", \"scrollEventThrottle\", \"showsHorizontalScrollIndicator\", \"showsVerticalScrollIndicator\", \"style\"]);\n\n var scrollState = React.useRef({\n isScrolling: false,\n scrollLastTick: 0\n });\n var scrollTimeout = React.useRef(null);\n var scrollRef = React.useRef(null);\n\n function createPreventableScrollHandler(handler) {\n return function (e) {\n if (scrollEnabled) {\n if (handler) {\n handler(e);\n }\n }\n };\n }\n\n function handleScroll(e) {\n e.stopPropagation();\n\n if (e.target === scrollRef.current) {\n e.persist(); // A scroll happened, so the scroll resets the scrollend timeout.\n\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n\n scrollTimeout.current = setTimeout(function () {\n handleScrollEnd(e);\n }, 100);\n\n if (scrollState.current.isScrolling) {\n // Scroll last tick may have changed, check if we need to notify\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n handleScrollTick(e);\n }\n } else {\n // Weren't scrolling, so we must have just started\n handleScrollStart(e);\n }\n }\n }\n\n function handleScrollStart(e) {\n scrollState.current.isScrolling = true;\n handleScrollTick(e);\n }\n\n function handleScrollTick(e) {\n scrollState.current.scrollLastTick = Date.now();\n\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\n }\n }\n\n function handleScrollEnd(e) {\n scrollState.current.isScrolling = false;\n\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\n }\n }\n\n var hideScrollbar = showsHorizontalScrollIndicator === false || showsVerticalScrollIndicator === false;\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n onScroll: handleScroll,\n onTouchMove: createPreventableScrollHandler(onTouchMove),\n onWheel: createPreventableScrollHandler(onWheel),\n ref: useMergeRefs(scrollRef, forwardedRef),\n style: [style, !scrollEnabled && styles.scrollDisabled, hideScrollbar && styles.hideScrollbar]\n }));\n}); // Chrome doesn't support e.preventDefault in this case; touch-action must be\n// used to disable scrolling.\n// https://developers.google.com/web/updates/2017/01/scrolling-intervention\n\nvar styles = StyleSheet.create({\n scrollDisabled: {\n overflowX: 'hidden',\n overflowY: 'hidden',\n touchAction: 'none'\n },\n hideScrollbar: {\n scrollbarWidth: 'none'\n }\n});\nexport default ScrollViewBase;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createReactClass from 'create-react-class';\nimport dismissKeyboard from '../../modules/dismissKeyboard';\nimport invariant from 'fbjs/lib/invariant';\nimport mergeRefs from '../../modules/mergeRefs';\nimport ScrollResponder from '../../modules/ScrollResponder';\nimport ScrollViewBase from './ScrollViewBase';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport React from 'react';\nvar emptyObject = {};\n/* eslint-disable react/prefer-es6-class */\n\nvar ScrollView = createReactClass({\n displayName: \"ScrollView\",\n mixins: [ScrollResponder.Mixin],\n getInitialState: function getInitialState() {\n return this.scrollResponderMixinGetInitialState();\n },\n flashScrollIndicators: function flashScrollIndicators() {\n this.scrollResponderFlashScrollIndicators();\n },\n\n /**\n * Returns a reference to the underlying scroll responder, which supports\n * operations like `scrollTo`. All ScrollView-like components should\n * implement this method so that they can be composed while providing access\n * to the underlying scroll responder's methods.\n */\n getScrollResponder: function getScrollResponder() {\n return this;\n },\n getScrollableNode: function getScrollableNode() {\n return this._scrollNodeRef;\n },\n getInnerViewRef: function getInnerViewRef() {\n return this._innerViewRef;\n },\n getInnerViewNode: function getInnerViewNode() {\n return this._innerViewRef;\n },\n getNativeScrollRef: function getNativeScrollRef() {\n return this._scrollNodeRef;\n },\n\n /**\n * Scrolls to a given x, y offset, either immediately or with a smooth animation.\n * Syntax:\n *\n * scrollTo(options: {x: number = 0; y: number = 0; animated: boolean = true})\n *\n * Note: The weird argument signature is due to the fact that, for historical reasons,\n * the function also accepts separate arguments as as alternative to the options object.\n * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n */\n scrollTo: function scrollTo(y, x, animated) {\n if (typeof y === 'number') {\n console.warn('`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, animated: true})` instead.');\n } else {\n var _ref = y || emptyObject;\n\n x = _ref.x;\n y = _ref.y;\n animated = _ref.animated;\n }\n\n this.getScrollResponder().scrollResponderScrollTo({\n x: x || 0,\n y: y || 0,\n animated: animated !== false\n });\n },\n\n /**\n * If this is a vertical ScrollView scrolls to the bottom.\n * If this is a horizontal ScrollView scrolls to the right.\n *\n * Use `scrollToEnd({ animated: true })` for smooth animated scrolling,\n * `scrollToEnd({ animated: false })` for immediate scrolling.\n * If no options are passed, `animated` defaults to true.\n */\n scrollToEnd: function scrollToEnd(options) {\n // Default to true\n var animated = (options && options.animated) !== false;\n var horizontal = this.props.horizontal;\n var scrollResponder = this.getScrollResponder();\n var scrollResponderNode = scrollResponder.scrollResponderGetScrollableNode();\n var x = horizontal ? scrollResponderNode.scrollWidth : 0;\n var y = horizontal ? 0 : scrollResponderNode.scrollHeight;\n scrollResponder.scrollResponderScrollTo({\n x: x,\n y: y,\n animated: animated\n });\n },\n render: function render() {\n var _this$props = this.props,\n contentContainerStyle = _this$props.contentContainerStyle,\n horizontal = _this$props.horizontal,\n onContentSizeChange = _this$props.onContentSizeChange,\n refreshControl = _this$props.refreshControl,\n stickyHeaderIndices = _this$props.stickyHeaderIndices,\n pagingEnabled = _this$props.pagingEnabled,\n forwardedRef = _this$props.forwardedRef,\n keyboardDismissMode = _this$props.keyboardDismissMode,\n onScroll = _this$props.onScroll,\n other = _objectWithoutPropertiesLoose(_this$props, [\"contentContainerStyle\", \"horizontal\", \"onContentSizeChange\", \"refreshControl\", \"stickyHeaderIndices\", \"pagingEnabled\", \"forwardedRef\", \"keyboardDismissMode\", \"onScroll\"]);\n\n if (process.env.NODE_ENV !== 'production' && this.props.style) {\n var style = StyleSheet.flatten(this.props.style);\n var childLayoutProps = ['alignItems', 'justifyContent'].filter(function (prop) {\n return style && style[prop] !== undefined;\n });\n invariant(childLayoutProps.length === 0, \"ScrollView child layout (\" + JSON.stringify(childLayoutProps) + \") \" + 'must be applied through the contentContainerStyle prop.');\n }\n\n var contentSizeChangeProps = {};\n\n if (onContentSizeChange) {\n contentSizeChangeProps = {\n onLayout: this._handleContentOnLayout\n };\n }\n\n var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n var children = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(this.props.children, function (child, i) {\n var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n\n if (child != null && (isSticky || pagingEnabled)) {\n return /*#__PURE__*/React.createElement(View, {\n style: StyleSheet.compose(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild)\n }, child);\n } else {\n return child;\n }\n }) : this.props.children;\n var contentContainer = /*#__PURE__*/React.createElement(View, _extends({}, contentSizeChangeProps, {\n children: children,\n collapsable: false,\n ref: this._setInnerViewRef,\n style: StyleSheet.compose(horizontal && styles.contentContainerHorizontal, contentContainerStyle)\n }));\n var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n\n var props = _objectSpread(_objectSpread({}, other), {}, {\n style: [baseStyle, pagingEnabled && pagingEnabledStyle, this.props.style],\n onTouchStart: this.scrollResponderHandleTouchStart,\n onTouchMove: this.scrollResponderHandleTouchMove,\n onTouchEnd: this.scrollResponderHandleTouchEnd,\n onScrollBeginDrag: this.scrollResponderHandleScrollBeginDrag,\n onScrollEndDrag: this.scrollResponderHandleScrollEndDrag,\n onMomentumScrollBegin: this.scrollResponderHandleMomentumScrollBegin,\n onMomentumScrollEnd: this.scrollResponderHandleMomentumScrollEnd,\n onStartShouldSetResponder: this.scrollResponderHandleStartShouldSetResponder,\n onStartShouldSetResponderCapture: this.scrollResponderHandleStartShouldSetResponderCapture,\n onScrollShouldSetResponder: this.scrollResponderHandleScrollShouldSetResponder,\n onScroll: this._handleScroll,\n onResponderGrant: this.scrollResponderHandleResponderGrant,\n onResponderTerminationRequest: this.scrollResponderHandleTerminationRequest,\n onResponderTerminate: this.scrollResponderHandleTerminate,\n onResponderRelease: this.scrollResponderHandleResponderRelease,\n onResponderReject: this.scrollResponderHandleResponderReject\n });\n\n var ScrollViewClass = ScrollViewBase;\n invariant(ScrollViewClass !== undefined, 'ScrollViewClass must not be undefined');\n var scrollView = /*#__PURE__*/React.createElement(ScrollViewClass, _extends({}, props, {\n ref: this._setScrollNodeRef\n }), contentContainer);\n\n if (refreshControl) {\n return /*#__PURE__*/React.cloneElement(refreshControl, {\n style: props.style\n }, scrollView);\n }\n\n return scrollView;\n },\n _handleContentOnLayout: function _handleContentOnLayout(e) {\n var _e$nativeEvent$layout = e.nativeEvent.layout,\n width = _e$nativeEvent$layout.width,\n height = _e$nativeEvent$layout.height;\n this.props.onContentSizeChange(width, height);\n },\n _handleScroll: function _handleScroll(e) {\n if (process.env.NODE_ENV !== 'production') {\n if (this.props.onScroll && this.props.scrollEventThrottle == null) {\n console.log('You specified `onScroll` on a but not ' + '`scrollEventThrottle`. You will only receive one event. ' + 'Using `16` you get all the events but be aware that it may ' + \"cause frame drops, use a bigger number if you don't need as \" + 'much precision.');\n }\n }\n\n if (this.props.keyboardDismissMode === 'on-drag') {\n dismissKeyboard();\n }\n\n this.scrollResponderHandleScroll(e);\n },\n _setInnerViewRef: function _setInnerViewRef(node) {\n this._innerViewRef = node;\n },\n _setScrollNodeRef: function _setScrollNodeRef(node) {\n this._scrollNodeRef = node; // ScrollView needs to add more methods to the hostNode in addition to those\n // added by `usePlatformMethods`. This is temporarily until an API like\n // `ScrollView.scrollTo(hostNode, { x, y })` is added to React Native.\n\n if (node != null) {\n node.getScrollResponder = this.getScrollResponder;\n node.getInnerViewNode = this.getInnerViewNode;\n node.getInnerViewRef = this.getInnerViewRef;\n node.getNativeScrollRef = this.getNativeScrollRef;\n node.getScrollableNode = this.getScrollableNode;\n node.scrollTo = this.scrollTo;\n node.scrollToEnd = this.scrollToEnd;\n node.flashScrollIndicators = this.flashScrollIndicators;\n node.scrollResponderZoomTo = this.scrollResponderZoomTo;\n node.scrollResponderScrollNativeHandleToKeyboard = this.scrollResponderScrollNativeHandleToKeyboard;\n }\n\n var ref = mergeRefs(this.props.forwardedRef);\n ref(node);\n }\n});\nvar commonStyle = {\n flexGrow: 1,\n flexShrink: 1,\n // Enable hardware compositing in modern browsers.\n // Creates a new layer with its own backing surface that can significantly\n // improve scroll performance.\n transform: [{\n translateZ: 0\n }],\n // iOS native scrolling\n WebkitOverflowScrolling: 'touch'\n};\nvar styles = StyleSheet.create({\n baseVertical: _objectSpread(_objectSpread({}, commonStyle), {}, {\n flexDirection: 'column',\n overflowX: 'hidden',\n overflowY: 'auto'\n }),\n baseHorizontal: _objectSpread(_objectSpread({}, commonStyle), {}, {\n flexDirection: 'row',\n overflowX: 'auto',\n overflowY: 'hidden'\n }),\n contentContainerHorizontal: {\n flexDirection: 'row'\n },\n stickyHeader: {\n position: 'sticky',\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: 'x mandatory'\n },\n pagingEnabledVertical: {\n scrollSnapType: 'y mandatory'\n },\n pagingEnabledChild: {\n scrollSnapAlign: 'start'\n }\n});\nvar ForwardedScrollView = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n return /*#__PURE__*/React.createElement(ScrollView, _extends({}, props, {\n forwardedRef: forwardedRef\n }));\n});\nForwardedScrollView.displayName = 'ScrollView';\nexport default ForwardedScrollView;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport invariant from 'fbjs/lib/invariant';\n\n/**\n * A Utility class for calculating viewable items based on current metrics like scroll position and\n * layout.\n *\n * An item is said to be in a \"viewable\" state when any of the following\n * is true for longer than `minimumViewTime` milliseconds (after an interaction if `waitForInteraction`\n * is true):\n *\n * - Occupying >= `viewAreaCoveragePercentThreshold` of the view area XOR fraction of the item\n * visible in the view area >= `itemVisiblePercentThreshold`.\n * - Entirely visible on screen\n */\nvar ViewabilityHelper = /*#__PURE__*/function () {\n function ViewabilityHelper(config) {\n if (config === void 0) {\n config = {\n viewAreaCoveragePercentThreshold: 0\n };\n }\n\n this._hasInteracted = false;\n this._timers = new Set();\n this._viewableIndices = [];\n this._viewableItems = new Map();\n this._config = config;\n }\n /**\n * Cleanup, e.g. on unmount. Clears any pending timers.\n */\n\n\n var _proto = ViewabilityHelper.prototype;\n\n _proto.dispose = function dispose() {\n this._timers.forEach(clearTimeout);\n }\n /**\n * Determines which items are viewable based on the current metrics and config.\n */\n ;\n\n _proto.computeViewableItems = function computeViewableItems(itemCount, scrollOffset, viewportHeight, getFrameMetrics, renderRange) {\n var _this$_config = this._config,\n itemVisiblePercentThreshold = _this$_config.itemVisiblePercentThreshold,\n viewAreaCoveragePercentThreshold = _this$_config.viewAreaCoveragePercentThreshold;\n var viewAreaMode = viewAreaCoveragePercentThreshold != null;\n var viewablePercentThreshold = viewAreaMode ? viewAreaCoveragePercentThreshold : itemVisiblePercentThreshold;\n invariant(viewablePercentThreshold != null && itemVisiblePercentThreshold != null !== (viewAreaCoveragePercentThreshold != null), 'Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold');\n var viewableIndices = [];\n\n if (itemCount === 0) {\n return viewableIndices;\n }\n\n var firstVisible = -1;\n\n var _ref = renderRange || {\n first: 0,\n last: itemCount - 1\n },\n first = _ref.first,\n last = _ref.last;\n\n if (last >= itemCount) {\n console.warn('Invalid render range computing viewability ' + JSON.stringify({\n renderRange: renderRange,\n itemCount: itemCount\n }));\n return [];\n }\n\n for (var idx = first; idx <= last; idx++) {\n var metrics = getFrameMetrics(idx);\n\n if (!metrics) {\n continue;\n }\n\n var top = metrics.offset - scrollOffset;\n var bottom = top + metrics.length;\n\n if (top < viewportHeight && bottom > 0) {\n firstVisible = idx;\n\n if (_isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, metrics.length)) {\n viewableIndices.push(idx);\n }\n } else if (firstVisible >= 0) {\n break;\n }\n }\n\n return viewableIndices;\n }\n /**\n * Figures out which items are viewable and how that has changed from before and calls\n * `onViewableItemsChanged` as appropriate.\n */\n ;\n\n _proto.onUpdate = function onUpdate(itemCount, scrollOffset, viewportHeight, getFrameMetrics, createViewToken, onViewableItemsChanged, renderRange) {\n var _this = this;\n\n if (this._config.waitForInteraction && !this._hasInteracted || itemCount === 0 || !getFrameMetrics(0)) {\n return;\n }\n\n var viewableIndices = [];\n\n if (itemCount) {\n viewableIndices = this.computeViewableItems(itemCount, scrollOffset, viewportHeight, getFrameMetrics, renderRange);\n }\n\n if (this._viewableIndices.length === viewableIndices.length && this._viewableIndices.every(function (v, ii) {\n return v === viewableIndices[ii];\n })) {\n // We might get a lot of scroll events where visibility doesn't change and we don't want to do\n // extra work in those cases.\n return;\n }\n\n this._viewableIndices = viewableIndices;\n\n if (this._config.minimumViewTime) {\n var handle = setTimeout(function () {\n _this._timers.delete(handle);\n\n _this._onUpdateSync(viewableIndices, onViewableItemsChanged, createViewToken);\n }, this._config.minimumViewTime);\n\n this._timers.add(handle);\n } else {\n this._onUpdateSync(viewableIndices, onViewableItemsChanged, createViewToken);\n }\n }\n /**\n * clean-up cached _viewableIndices to evaluate changed items on next update\n */\n ;\n\n _proto.resetViewableIndices = function resetViewableIndices() {\n this._viewableIndices = [];\n }\n /**\n * Records that an interaction has happened even if there has been no scroll.\n */\n ;\n\n _proto.recordInteraction = function recordInteraction() {\n this._hasInteracted = true;\n };\n\n _proto._onUpdateSync = function _onUpdateSync( // $FlowFixMe\n viewableIndicesToCheck, // $FlowFixMe\n onViewableItemsChanged, // $FlowFixMe\n createViewToken) {\n var _this2 = this;\n\n // Filter out indices that have gone out of view since this call was scheduled.\n viewableIndicesToCheck = viewableIndicesToCheck.filter(function (ii) {\n return _this2._viewableIndices.includes(ii);\n });\n var prevItems = this._viewableItems;\n var nextItems = new Map(viewableIndicesToCheck.map(function (ii) {\n var viewable = createViewToken(ii, true);\n return [viewable.key, viewable];\n }));\n var changed = [];\n\n for (var _iterator = _createForOfIteratorHelperLoose(nextItems), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n viewable = _step$value[1];\n\n if (!prevItems.has(key)) {\n changed.push(viewable);\n }\n }\n\n for (var _iterator2 = _createForOfIteratorHelperLoose(prevItems), _step2; !(_step2 = _iterator2()).done;) {\n var _step2$value = _step2.value,\n _key = _step2$value[0],\n _viewable = _step2$value[1];\n\n if (!nextItems.has(_key)) {\n changed.push(_objectSpread(_objectSpread({}, _viewable), {}, {\n isViewable: false\n }));\n }\n }\n\n if (changed.length > 0) {\n this._viewableItems = nextItems;\n onViewableItemsChanged({\n viewableItems: Array.from(nextItems.values()),\n changed: changed,\n viewabilityConfig: this._config\n });\n }\n };\n\n return ViewabilityHelper;\n}();\n\nfunction _isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, itemLength) {\n if (_isEntirelyVisible(top, bottom, viewportHeight)) {\n return true;\n } else {\n var pixels = _getPixelsVisible(top, bottom, viewportHeight);\n\n var percent = 100 * (viewAreaMode ? pixels / viewportHeight : pixels / itemLength);\n return percent >= viewablePercentThreshold;\n }\n}\n\nfunction _getPixelsVisible(top, bottom, viewportHeight) {\n var visibleHeight = Math.min(bottom, viewportHeight) - Math.max(top, 0);\n return Math.max(0, visibleHeight);\n}\n\nfunction _isEntirelyVisible(top, bottom, viewportHeight) {\n return top >= 0 && bottom <= viewportHeight && bottom > top;\n}\n\nexport default ViewabilityHelper;","/**\n * Copyright (c) 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;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport { useMemo, useContext } from 'react';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nexport var VirtualizedListContext = /*#__PURE__*/React.createContext(null);\n\nif (__DEV__) {\n VirtualizedListContext.displayName = 'VirtualizedListContext';\n}\n/**\n * Resets the context. Intended for use by portal-like components (e.g. Modal).\n */\n\n\nexport function VirtualizedListContextResetter(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: null\n }, children);\n}\n/**\n * Sets the context with memoization. Intended to be used by `VirtualizedList`.\n */\n\nexport function VirtualizedListContextProvider(_ref2) {\n var children = _ref2.children,\n value = _ref2.value;\n // Avoid setting a newly created context object if the values are identical.\n var context = useMemo(function () {\n return {\n cellKey: null,\n getScrollMetrics: value.getScrollMetrics,\n horizontal: value.horizontal,\n getOutermostParentListRef: value.getOutermostParentListRef,\n getNestedChildState: value.getNestedChildState,\n registerAsNestedChild: value.registerAsNestedChild,\n unregisterAsNestedChild: value.unregisterAsNestedChild,\n debugInfo: {\n cellKey: value.debugInfo.cellKey,\n horizontal: value.debugInfo.horizontal,\n listKey: value.debugInfo.listKey,\n parent: value.debugInfo.parent\n }\n };\n }, [value.getScrollMetrics, value.horizontal, value.getOutermostParentListRef, value.getNestedChildState, value.registerAsNestedChild, value.unregisterAsNestedChild, value.debugInfo.cellKey, value.debugInfo.horizontal, value.debugInfo.listKey, value.debugInfo.parent]);\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: context\n }, children);\n}\n/**\n * Sets the `cellKey`. Intended to be used by `VirtualizedList` for each cell.\n */\n\nexport function VirtualizedListCellContextProvider(_ref3) {\n var cellKey = _ref3.cellKey,\n children = _ref3.children;\n var context = useContext(VirtualizedListContext);\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: context == null ? null : _objectSpread(_objectSpread({}, context), {}, {\n cellKey: cellKey\n })\n }, children);\n}","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport Batchinator from '../Batchinator';\nimport FillRateHelper from '../FillRateHelper';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport RefreshControl from '../../../exports/RefreshControl';\nimport ScrollView from '../../../exports/ScrollView';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport UIManager from '../../../exports/UIManager';\nimport View from '../../../exports/View';\nimport ViewabilityHelper from '../ViewabilityHelper';\nimport findNodeHandle from '../../../exports/findNodeHandle';\nvar flattenStyle = StyleSheet.flatten;\nimport infoLog from '../infoLog';\nimport invariant from 'fbjs/lib/invariant';\nimport warning from 'fbjs/lib/warning';\nimport { computeWindowedRenderLimits } from '../VirtualizeUtils';\nimport { VirtualizedListCellContextProvider, VirtualizedListContext, VirtualizedListContextProvider } from './VirtualizedListContext.js';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar _usedIndexForKey = false;\nvar _keylessItemComponentName = '';\n\n/**\n * Base implementation for the more convenient [``](https://reactnative.dev/docs/flatlist.html)\n * and [``](https://reactnative.dev/docs/sectionlist.html) components, which are also better\n * documented. In general, this should only really be used if you need more flexibility than\n * `FlatList` provides, e.g. for use with immutable data instead of plain arrays.\n *\n * Virtualization massively improves memory consumption and performance of large lists by\n * maintaining a finite render window of active items and replacing all items outside of the render\n * window with appropriately sized blank space. The window adapts to scrolling behavior, and items\n * are rendered incrementally with low-pri (after any running interactions) if they are far from the\n * visible area, or with hi-pri otherwise to minimize the potential of seeing blank space.\n *\n * Some caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` or `id` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n */\nvar VirtualizedList = /*#__PURE__*/function (_React$PureComponent) {\n _inheritsLoose(VirtualizedList, _React$PureComponent);\n\n var _proto = VirtualizedList.prototype;\n\n // scrollToEnd may be janky without getItemLayout prop\n _proto.scrollToEnd = function scrollToEnd(params) {\n var animated = params ? params.animated : true;\n var veryLast = this.props.getItemCount(this.props.data) - 1;\n\n var frame = this._getFrameMetricsApprox(veryLast);\n\n var offset = Math.max(0, frame.offset + frame.length + this._footerLength - this._scrollMetrics.visibleLength);\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n\n this._scrollRef.scrollTo(this.props.horizontal ? {\n x: offset,\n animated: animated\n } : {\n y: offset,\n animated: animated\n });\n } // scrollToIndex may be janky without getItemLayout prop\n ;\n\n _proto.scrollToIndex = function scrollToIndex(params) {\n var _this$props = this.props,\n data = _this$props.data,\n horizontal = _this$props.horizontal,\n getItemCount = _this$props.getItemCount,\n getItemLayout = _this$props.getItemLayout,\n onScrollToIndexFailed = _this$props.onScrollToIndexFailed;\n var animated = params.animated,\n index = params.index,\n viewOffset = params.viewOffset,\n viewPosition = params.viewPosition;\n invariant(index >= 0, \"scrollToIndex out of range: requested index \" + index + \" but minimum is 0\");\n invariant(getItemCount(data) >= 1, \"scrollToIndex out of range: item length \" + getItemCount(data) + \" but minimum is 1\");\n invariant(index < getItemCount(data), \"scrollToIndex out of range: requested index \" + index + \" is out of 0 to \" + (getItemCount(data) - 1));\n\n if (!getItemLayout && index > this._highestMeasuredFrameIndex) {\n invariant(!!onScrollToIndexFailed, 'scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, ' + 'otherwise there is no way to know the location of offscreen indices or handle failures.');\n onScrollToIndexFailed({\n averageItemLength: this._averageCellLength,\n highestMeasuredFrameIndex: this._highestMeasuredFrameIndex,\n index: index\n });\n return;\n }\n\n var frame = this._getFrameMetricsApprox(index);\n\n var offset = Math.max(0, frame.offset - (viewPosition || 0) * (this._scrollMetrics.visibleLength - frame.length)) - (viewOffset || 0);\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n\n this._scrollRef.scrollTo(horizontal ? {\n x: offset,\n animated: animated\n } : {\n y: offset,\n animated: animated\n });\n } // scrollToItem may be janky without getItemLayout prop. Required linear scan through items -\n // use scrollToIndex instead if possible.\n ;\n\n _proto.scrollToItem = function scrollToItem(params) {\n var item = params.item;\n var _this$props2 = this.props,\n data = _this$props2.data,\n getItem = _this$props2.getItem,\n getItemCount = _this$props2.getItemCount;\n var itemCount = getItemCount(data);\n\n for (var _index = 0; _index < itemCount; _index++) {\n if (getItem(data, _index) === item) {\n this.scrollToIndex(_objectSpread(_objectSpread({}, params), {}, {\n index: _index\n }));\n break;\n }\n }\n }\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Param `offset` expects the offset to scroll to.\n * In case of `horizontal` is true, the offset is the x-value,\n * in any other case the offset is the y-value.\n *\n * Param `animated` (`true` by default) defines whether the list\n * should do an animation while scrolling.\n */\n ;\n\n _proto.scrollToOffset = function scrollToOffset(params) {\n var animated = params.animated,\n offset = params.offset;\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n\n this._scrollRef.scrollTo(this.props.horizontal ? {\n x: offset,\n animated: animated\n } : {\n y: offset,\n animated: animated\n });\n };\n\n _proto.recordInteraction = function recordInteraction() {\n this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref.recordInteraction();\n });\n\n this._viewabilityTuples.forEach(function (t) {\n t.viewabilityHelper.recordInteraction();\n });\n\n this._updateViewableItems(this.props.data);\n };\n\n _proto.flashScrollIndicators = function flashScrollIndicators() {\n if (this._scrollRef == null) {\n return;\n }\n\n this._scrollRef.flashScrollIndicators();\n }\n /**\n * Provides a handle to the underlying scroll responder.\n * Note that `this._scrollRef` might not be a `ScrollView`, so we\n * need to check that it responds to `getScrollResponder` before calling it.\n */\n ;\n\n _proto.getScrollResponder = function getScrollResponder() {\n if (this._scrollRef && this._scrollRef.getScrollResponder) {\n return this._scrollRef.getScrollResponder();\n }\n };\n\n _proto.getScrollableNode = function getScrollableNode() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n return this._scrollRef.getScrollableNode();\n } else {\n return findNodeHandle(this._scrollRef);\n }\n };\n\n _proto.getScrollRef = function getScrollRef() {\n if (this._scrollRef && this._scrollRef.getScrollRef) {\n return this._scrollRef.getScrollRef();\n } else {\n return this._scrollRef;\n }\n };\n\n _proto.setNativeProps = function setNativeProps(props) {\n if (this._scrollRef) {\n this._scrollRef.setNativeProps(props);\n }\n };\n\n _proto._getCellKey = function _getCellKey() {\n var _this$context;\n\n return ((_this$context = this.context) == null ? void 0 : _this$context.cellKey) || 'rootList';\n };\n\n _proto._getListKey = function _getListKey() {\n return this.props.listKey || this._getCellKey();\n };\n\n _proto._getDebugInfo = function _getDebugInfo() {\n var _this$context2;\n\n return {\n listKey: this._getListKey(),\n cellKey: this._getCellKey(),\n horizontal: !!this.props.horizontal,\n parent: (_this$context2 = this.context) == null ? void 0 : _this$context2.debugInfo\n };\n };\n\n _proto.hasMore = function hasMore() {\n return this._hasMore;\n };\n\n function VirtualizedList(_props) {\n var _this;\n\n _this = _React$PureComponent.call(this, _props) || this;\n\n _this._getScrollMetrics = function () {\n return _this._scrollMetrics;\n };\n\n _this._getOutermostParentListRef = function () {\n if (_this._isNestedWithSameOrientation()) {\n return _this.context.getOutermostParentListRef();\n } else {\n return _assertThisInitialized(_this);\n }\n };\n\n _this._getNestedChildState = function (key) {\n var existingChildData = _this._nestedChildLists.get(key);\n\n return existingChildData && existingChildData.state;\n };\n\n _this._registerAsNestedChild = function (childList) {\n // Register the mapping between this child key and the cellKey for its cell\n var childListsInCell = _this._cellKeysToChildListKeys.get(childList.cellKey) || new Set();\n childListsInCell.add(childList.key);\n\n _this._cellKeysToChildListKeys.set(childList.cellKey, childListsInCell);\n\n var existingChildData = _this._nestedChildLists.get(childList.key);\n\n if (existingChildData && existingChildData.ref !== null) {\n console.error('A VirtualizedList contains a cell which itself contains ' + 'more than one VirtualizedList of the same orientation as the parent ' + 'list. You must pass a unique listKey prop to each sibling list.\\n\\n' + describeNestedLists(_objectSpread(_objectSpread({}, childList), {}, {\n // We're called from the child's componentDidMount, so it's safe to\n // read the child's props here (albeit weird).\n horizontal: !!childList.ref.props.horizontal\n })));\n }\n\n _this._nestedChildLists.set(childList.key, {\n ref: childList.ref,\n state: null\n });\n\n if (_this._hasInteracted) {\n childList.ref.recordInteraction();\n }\n };\n\n _this._unregisterAsNestedChild = function (childList) {\n _this._nestedChildLists.set(childList.key, {\n ref: null,\n state: childList.state\n });\n };\n\n _this._onUpdateSeparators = function (keys, newProps) {\n keys.forEach(function (key) {\n var ref = key != null && _this._cellRefs[key];\n ref && ref.updateSeparatorProps(newProps);\n });\n };\n\n _this._averageCellLength = 0;\n _this._cellKeysToChildListKeys = new Map();\n _this._cellRefs = {};\n _this._frames = {};\n _this._footerLength = 0;\n _this._hasDoneInitialScroll = false;\n _this._hasInteracted = false;\n _this._hasMore = false;\n _this._hasWarned = {};\n _this._headerLength = 0;\n _this._hiPriInProgress = false;\n _this._highestMeasuredFrameIndex = 0;\n _this._indicesToKeys = new Map();\n _this._nestedChildLists = new Map();\n _this._offsetFromParentVirtualizedList = 0;\n _this._prevParentOffset = 0;\n _this._scrollMetrics = {\n contentLength: 0,\n dOffset: 0,\n dt: 10,\n offset: 0,\n timestamp: 0,\n velocity: 0,\n visibleLength: 0\n };\n _this._scrollRef = null;\n _this._sentEndForContentLength = 0;\n _this._totalCellLength = 0;\n _this._totalCellsMeasured = 0;\n _this._viewabilityTuples = [];\n\n _this._captureScrollRef = function (ref) {\n _this._scrollRef = ref;\n };\n\n _this._defaultRenderScrollComponent = function (props) {\n var onRefresh = props.onRefresh;\n\n if (_this._isNestedWithSameOrientation()) {\n // $FlowFixMe - Typing ReactNativeComponent revealed errors\n return /*#__PURE__*/React.createElement(View, props);\n } else if (onRefresh) {\n invariant(typeof props.refreshing === 'boolean', '`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `' +\n /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment suppresses\n * an error found when Flow v0.111 was deployed. To see the error,\n * delete this comment and run Flow. */\n JSON.stringify(props.refreshing) + '`');\n return (\n /*#__PURE__*/\n // $FlowFixMe Invalid prop usage\n React.createElement(ScrollView, _extends({}, props, {\n refreshControl: props.refreshControl == null ? /*#__PURE__*/React.createElement(RefreshControl, {\n refreshing: props.refreshing,\n onRefresh: onRefresh,\n progressViewOffset: props.progressViewOffset\n }) : props.refreshControl\n }))\n );\n } else {\n // $FlowFixMe Invalid prop usage\n return /*#__PURE__*/React.createElement(ScrollView, props);\n }\n };\n\n _this._onCellUnmount = function (cellKey) {\n var curr = _this._frames[cellKey];\n\n if (curr) {\n _this._frames[cellKey] = _objectSpread(_objectSpread({}, curr), {}, {\n inLayout: false\n });\n }\n };\n\n _this._onLayout = function (e) {\n if (_this._isNestedWithSameOrientation()) {\n // Need to adjust our scroll metrics to be relative to our containing\n // VirtualizedList before we can make claims about list item viewability\n _this.measureLayoutRelativeToContainingList();\n } else {\n _this._scrollMetrics.visibleLength = _this._selectLength(e.nativeEvent.layout);\n }\n\n _this.props.onLayout && _this.props.onLayout(e);\n\n _this._scheduleCellsToRenderUpdate();\n\n _this._maybeCallOnEndReached();\n };\n\n _this._onLayoutEmpty = function (e) {\n _this.props.onLayout && _this.props.onLayout(e);\n };\n\n _this._onLayoutFooter = function (e) {\n _this._triggerRemeasureForChildListsInCell(_this._getFooterCellKey());\n\n _this._footerLength = _this._selectLength(e.nativeEvent.layout);\n };\n\n _this._onLayoutHeader = function (e) {\n _this._headerLength = _this._selectLength(e.nativeEvent.layout);\n };\n\n _this._onContentSizeChange = function (width, height) {\n if (width > 0 && height > 0 && _this.props.initialScrollIndex != null && _this.props.initialScrollIndex > 0 && !_this._hasDoneInitialScroll) {\n _this._hasDoneInitialScroll = true;\n }\n\n if (_this.props.onContentSizeChange) {\n _this.props.onContentSizeChange(width, height);\n }\n\n _this._scrollMetrics.contentLength = _this._selectLength({\n height: height,\n width: width\n });\n\n _this._scheduleCellsToRenderUpdate();\n\n _this._maybeCallOnEndReached();\n };\n\n _this._convertParentScrollMetrics = function (metrics) {\n // Offset of the top of the nested list relative to the top of its parent's viewport\n var offset = metrics.offset - _this._offsetFromParentVirtualizedList; // Child's visible length is the same as its parent's\n\n var visibleLength = metrics.visibleLength;\n var dOffset = offset - _this._scrollMetrics.offset;\n var contentLength = _this._scrollMetrics.contentLength;\n return {\n visibleLength: visibleLength,\n contentLength: contentLength,\n offset: offset,\n dOffset: dOffset\n };\n };\n\n _this._onScroll = function (e) {\n _this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref._onScroll(e);\n });\n\n if (_this.props.onScroll) {\n _this.props.onScroll(e);\n }\n\n var timestamp = e.timeStamp;\n\n var visibleLength = _this._selectLength(e.nativeEvent.layoutMeasurement);\n\n var contentLength = _this._selectLength(e.nativeEvent.contentSize);\n\n var offset = _this._selectOffset(e.nativeEvent.contentOffset);\n\n var dOffset = offset - _this._scrollMetrics.offset;\n\n if (_this._isNestedWithSameOrientation()) {\n if (_this._scrollMetrics.contentLength === 0) {\n // Ignore scroll events until onLayout has been called and we\n // know our offset from our offset from our parent\n return;\n }\n\n var _this$_convertParentS = _this._convertParentScrollMetrics({\n visibleLength: visibleLength,\n offset: offset\n });\n\n visibleLength = _this$_convertParentS.visibleLength;\n contentLength = _this$_convertParentS.contentLength;\n offset = _this$_convertParentS.offset;\n dOffset = _this$_convertParentS.dOffset;\n }\n\n var dt = _this._scrollMetrics.timestamp ? Math.max(1, timestamp - _this._scrollMetrics.timestamp) : 1;\n var velocity = dOffset / dt;\n\n if (dt > 500 && _this._scrollMetrics.dt > 500 && contentLength > 5 * visibleLength && !_this._hasWarned.perf) {\n infoLog('VirtualizedList: You have a large list that is slow to update - make sure your ' + 'renderItem function renders components that follow React performance best practices ' + 'like PureComponent, shouldComponentUpdate, etc.', {\n dt: dt,\n prevDt: _this._scrollMetrics.dt,\n contentLength: contentLength\n });\n _this._hasWarned.perf = true;\n }\n\n _this._scrollMetrics = {\n contentLength: contentLength,\n dt: dt,\n dOffset: dOffset,\n offset: offset,\n timestamp: timestamp,\n velocity: velocity,\n visibleLength: visibleLength\n };\n\n _this._updateViewableItems(_this.props.data);\n\n if (!_this.props) {\n return;\n }\n\n _this._maybeCallOnEndReached();\n\n if (velocity !== 0) {\n _this._fillRateHelper.activate();\n }\n\n _this._computeBlankness();\n\n _this._scheduleCellsToRenderUpdate();\n };\n\n _this._onScrollBeginDrag = function (e) {\n _this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref._onScrollBeginDrag(e);\n });\n\n _this._viewabilityTuples.forEach(function (tuple) {\n tuple.viewabilityHelper.recordInteraction();\n });\n\n _this._hasInteracted = true;\n _this.props.onScrollBeginDrag && _this.props.onScrollBeginDrag(e);\n };\n\n _this._onScrollEndDrag = function (e) {\n _this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref._onScrollEndDrag(e);\n });\n\n var velocity = e.nativeEvent.velocity;\n\n if (velocity) {\n _this._scrollMetrics.velocity = _this._selectOffset(velocity);\n }\n\n _this._computeBlankness();\n\n _this.props.onScrollEndDrag && _this.props.onScrollEndDrag(e);\n };\n\n _this._onMomentumScrollBegin = function (e) {\n _this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref._onMomentumScrollBegin(e);\n });\n\n _this.props.onMomentumScrollBegin && _this.props.onMomentumScrollBegin(e);\n };\n\n _this._onMomentumScrollEnd = function (e) {\n _this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref._onMomentumScrollEnd(e);\n });\n\n _this._scrollMetrics.velocity = 0;\n\n _this._computeBlankness();\n\n _this.props.onMomentumScrollEnd && _this.props.onMomentumScrollEnd(e);\n };\n\n _this._updateCellsToRender = function () {\n var _this$props3 = _this.props,\n data = _this$props3.data,\n getItemCount = _this$props3.getItemCount,\n onEndReachedThreshold = _this$props3.onEndReachedThreshold;\n\n var isVirtualizationDisabled = _this._isVirtualizationDisabled();\n\n _this._updateViewableItems(data);\n\n if (!data) {\n return;\n }\n\n _this.setState(function (state) {\n var newState;\n var _this$_scrollMetrics = _this._scrollMetrics,\n contentLength = _this$_scrollMetrics.contentLength,\n offset = _this$_scrollMetrics.offset,\n visibleLength = _this$_scrollMetrics.visibleLength;\n\n if (!isVirtualizationDisabled) {\n // If we run this with bogus data, we'll force-render window {first: 0, last: 0},\n // and wipe out the initialNumToRender rendered elements.\n // So let's wait until the scroll view metrics have been set up. And until then,\n // we will trust the initialNumToRender suggestion\n if (visibleLength > 0 && contentLength > 0) {\n // If we have a non-zero initialScrollIndex and run this before we've scrolled,\n // we'll wipe out the initialNumToRender rendered elements starting at initialScrollIndex.\n // So let's wait until we've scrolled the view to the right place. And until then,\n // we will trust the initialScrollIndex suggestion.\n if (!_this.props.initialScrollIndex || _this._scrollMetrics.offset) {\n newState = computeWindowedRenderLimits(_this.props, state, _this._getFrameMetricsApprox, _this._scrollMetrics);\n }\n }\n } else {\n var distanceFromEnd = contentLength - visibleLength - offset;\n var renderAhead =\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses\n * an error found when Flow v0.63 was deployed. To see the error\n * delete this comment and run Flow. */\n distanceFromEnd < onEndReachedThreshold * visibleLength ? _this.props.maxToRenderPerBatch : 0;\n newState = {\n first: 0,\n last: Math.min(state.last + renderAhead, getItemCount(data) - 1)\n };\n }\n\n if (newState && _this._nestedChildLists.size > 0) {\n var newFirst = newState.first;\n var newLast = newState.last; // If some cell in the new state has a child list in it, we should only render\n // up through that item, so that we give that list a chance to render.\n // Otherwise there's churn from multiple child lists mounting and un-mounting\n // their items.\n\n for (var ii = newFirst; ii <= newLast; ii++) {\n var cellKeyForIndex = _this._indicesToKeys.get(ii);\n\n var childListKeys = cellKeyForIndex && _this._cellKeysToChildListKeys.get(cellKeyForIndex);\n\n if (!childListKeys) {\n continue;\n }\n\n var someChildHasMore = false; // For each cell, need to check whether any child list in it has more elements to render\n\n for (var _iterator = _createForOfIteratorHelperLoose(childListKeys), _step; !(_step = _iterator()).done;) {\n var childKey = _step.value;\n\n var childList = _this._nestedChildLists.get(childKey);\n\n if (childList && childList.ref && childList.ref.hasMore()) {\n someChildHasMore = true;\n break;\n }\n }\n\n if (someChildHasMore && newState) {\n newState.last = ii;\n break;\n }\n }\n }\n\n if (newState != null && newState.first === state.first && newState.last === state.last) {\n newState = null;\n }\n\n return newState;\n });\n };\n\n _this._createViewToken = function (index, isViewable) {\n var _this$props4 = _this.props,\n data = _this$props4.data,\n getItem = _this$props4.getItem,\n keyExtractor = _this$props4.keyExtractor;\n var item = getItem(data, index);\n return {\n index: index,\n item: item,\n key: keyExtractor(item, index),\n isViewable: isViewable\n };\n };\n\n _this._getFrameMetricsApprox = function (index) {\n var frame = _this._getFrameMetrics(index);\n\n if (frame && frame.index === index) {\n // check for invalid frames due to row re-ordering\n return frame;\n } else {\n var getItemLayout = _this.props.getItemLayout;\n invariant(!getItemLayout, 'Should not have to estimate frames when a measurement metrics function is provided');\n return {\n length: _this._averageCellLength,\n offset: _this._averageCellLength * index\n };\n }\n };\n\n _this._getFrameMetrics = function (index) {\n var _this$props5 = _this.props,\n data = _this$props5.data,\n getItem = _this$props5.getItem,\n getItemCount = _this$props5.getItemCount,\n getItemLayout = _this$props5.getItemLayout,\n keyExtractor = _this$props5.keyExtractor;\n invariant(getItemCount(data) > index, 'Tried to get frame for out of range index ' + index);\n var item = getItem(data, index);\n\n var frame = item && _this._frames[keyExtractor(item, index)];\n\n if (!frame || frame.index !== index) {\n if (getItemLayout) {\n frame = getItemLayout(data, index);\n }\n }\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.63 was deployed. To see the error delete this\n * comment and run Flow. */\n\n\n return frame;\n };\n\n invariant( // $FlowFixMe\n !_props.onScroll || !_props.onScroll.__isNative, 'Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent ' + 'to support native onScroll events with useNativeDriver');\n invariant(_props.windowSize > 0, 'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.');\n _this._fillRateHelper = new FillRateHelper(_this._getFrameMetrics);\n _this._updateCellsToRenderBatcher = new Batchinator(_this._updateCellsToRender, _this.props.updateCellsBatchingPeriod);\n\n if (_this.props.viewabilityConfigCallbackPairs) {\n _this._viewabilityTuples = _this.props.viewabilityConfigCallbackPairs.map(function (pair) {\n return {\n viewabilityHelper: new ViewabilityHelper(pair.viewabilityConfig),\n onViewableItemsChanged: pair.onViewableItemsChanged\n };\n });\n } else if (_this.props.onViewableItemsChanged) {\n var onViewableItemsChanged = _this.props.onViewableItemsChanged;\n\n _this._viewabilityTuples.push({\n viewabilityHelper: new ViewabilityHelper(_this.props.viewabilityConfig),\n onViewableItemsChanged: onViewableItemsChanged\n });\n }\n\n var initialState = {\n first: _this.props.initialScrollIndex || 0,\n last: Math.min(_this.props.getItemCount(_this.props.data), (_this.props.initialScrollIndex || 0) + _this.props.initialNumToRender) - 1\n };\n\n if (_this._isNestedWithSameOrientation()) {\n var storedState = _this.context.getNestedChildState(_this._getListKey());\n\n if (storedState) {\n initialState = storedState;\n _this.state = storedState;\n _this._frames = storedState.frames;\n }\n }\n\n _this.state = initialState;\n return _this;\n }\n\n _proto.componentDidMount = function componentDidMount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.registerAsNestedChild({\n cellKey: this._getCellKey(),\n key: this._getListKey(),\n ref: this,\n // NOTE: When the child mounts (here) it's not necessarily safe to read\n // the parent's props. This is why we explicitly propagate debugInfo\n // \"down\" via context and \"up\" again via this method call on the\n // parent.\n parentDebugInfo: this.context.debugInfo\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.unregisterAsNestedChild({\n key: this._getListKey(),\n state: {\n first: this.state.first,\n last: this.state.last,\n frames: this._frames\n }\n });\n }\n\n this._updateViewableItems(null);\n\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n\n this._viewabilityTuples.forEach(function (tuple) {\n tuple.viewabilityHelper.dispose();\n });\n\n this._fillRateHelper.deactivateAndFlush();\n };\n\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;\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\n if (flatStyles != null && flatStyles.flexWrap === 'wrap') {\n console.warn('`flexWrap: `wrap`` is not supported with the `VirtualizedList` components.' + 'Consider using `numColumns` with `FlatList` instead.');\n }\n }\n\n var _this$props7 = this.props,\n ListEmptyComponent = _this$props7.ListEmptyComponent,\n ListFooterComponent = _this$props7.ListFooterComponent,\n ListHeaderComponent = _this$props7.ListHeaderComponent;\n var _this$props8 = this.props,\n data = _this$props8.data,\n horizontal = _this$props8.horizontal;\n\n var isVirtualizationDisabled = this._isVirtualizationDisabled();\n\n var inversionStyle = this.props.inverted ? this.props.horizontal ? styles.horizontallyInverted : styles.verticallyInverted : null;\n var cells = [];\n var stickyIndicesFromProps = new Set(this.props.stickyHeaderIndices);\n var stickyHeaderIndices = [];\n\n if (ListHeaderComponent) {\n if (stickyIndicesFromProps.has(0)) {\n stickyHeaderIndices.push(0);\n }\n\n var element = /*#__PURE__*/React.isValidElement(ListHeaderComponent) ? ListHeaderComponent :\n /*#__PURE__*/\n // $FlowFixMe\n React.createElement(ListHeaderComponent, null);\n cells.push( /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this._getCellKey() + '-header',\n key: \"$header\"\n }, /*#__PURE__*/React.createElement(View, {\n onLayout: this._onLayoutHeader,\n style: StyleSheet.compose(inversionStyle, this.props.ListHeaderComponentStyle)\n }, // $FlowFixMe - Typing ReactNativeComponent revealed errors\n element)));\n }\n\n var itemCount = this.props.getItemCount(data);\n\n if (itemCount > 0) {\n _usedIndexForKey = false;\n _keylessItemComponentName = '';\n var spacerKey = !horizontal ? 'height' : 'width';\n var lastInitialIndex = this.props.initialScrollIndex ? -1 : this.props.initialNumToRender - 1;\n var _this$state = this.state,\n first = _this$state.first,\n last = _this$state.last;\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, 0, lastInitialIndex, inversionStyle);\n\n var firstAfterInitial = Math.max(lastInitialIndex + 1, first);\n\n if (!isVirtualizationDisabled && first > lastInitialIndex + 1) {\n var insertedStickySpacer = false;\n\n if (stickyIndicesFromProps.size > 0) {\n var stickyOffset = ListHeaderComponent ? 1 : 0; // See if there are any sticky headers in the virtualized space that we need to render.\n\n for (var ii = firstAfterInitial - 1; ii > lastInitialIndex; ii--) {\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n var _ref2, _ref3;\n\n var initBlock = this._getFrameMetricsApprox(lastInitialIndex);\n\n var stickyBlock = this._getFrameMetricsApprox(ii);\n\n var leadSpace = stickyBlock.offset - initBlock.offset - (this.props.initialScrollIndex ? 0 : initBlock.length);\n cells.push(\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.111 was deployed. To\n * see the error, delete this comment and run Flow. */\n React.createElement(View, {\n key: \"$sticky_lead\",\n style: (_ref2 = {}, _ref2[spacerKey] = leadSpace, _ref2)\n }));\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, ii, ii, inversionStyle);\n\n var trailSpace = this._getFrameMetricsApprox(first).offset - (stickyBlock.offset + stickyBlock.length);\n cells.push(\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.111 was deployed. To\n * see the error, delete this comment and run Flow. */\n React.createElement(View, {\n key: \"$sticky_trail\",\n style: (_ref3 = {}, _ref3[spacerKey] = trailSpace, _ref3)\n }));\n insertedStickySpacer = true;\n break;\n }\n }\n }\n\n if (!insertedStickySpacer) {\n var _ref4;\n\n var _initBlock = this._getFrameMetricsApprox(lastInitialIndex);\n\n var firstSpace = this._getFrameMetricsApprox(first).offset - (_initBlock.offset + _initBlock.length);\n\n cells.push(\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.111 was deployed. To see\n * the error, delete this comment and run Flow. */\n React.createElement(View, {\n key: \"$lead_spacer\",\n style: (_ref4 = {}, _ref4[spacerKey] = firstSpace, _ref4)\n }));\n }\n }\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, firstAfterInitial, last, inversionStyle);\n\n if (!this._hasWarned.keys && _usedIndexForKey) {\n console.warn('VirtualizedList: missing keys for items, make sure to specify a key or id property on each ' + 'item or provide a custom keyExtractor.', _keylessItemComponentName);\n this._hasWarned.keys = true;\n }\n\n if (!isVirtualizationDisabled && last < itemCount - 1) {\n var _ref5;\n\n var lastFrame = this._getFrameMetricsApprox(last); // Without getItemLayout, we limit our tail spacer to the _highestMeasuredFrameIndex to\n // prevent the user for hyperscrolling into un-measured area because otherwise content will\n // likely jump around as it renders in above the viewport.\n\n\n var end = this.props.getItemLayout ? itemCount - 1 : Math.min(itemCount - 1, this._highestMeasuredFrameIndex);\n\n var endFrame = this._getFrameMetricsApprox(end);\n\n var tailSpacerLength = endFrame.offset + endFrame.length - (lastFrame.offset + lastFrame.length);\n cells.push(\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment suppresses\n * an error found when Flow v0.111 was deployed. To see the error,\n * delete this comment and run Flow. */\n React.createElement(View, {\n key: \"$tail_spacer\",\n style: (_ref5 = {}, _ref5[spacerKey] = tailSpacerLength, _ref5)\n }));\n }\n } else if (ListEmptyComponent) {\n var _element = /*#__PURE__*/React.isValidElement(ListEmptyComponent) ? ListEmptyComponent :\n /*#__PURE__*/\n // $FlowFixMe\n React.createElement(ListEmptyComponent, null);\n\n cells.push( /*#__PURE__*/React.cloneElement(_element, {\n key: '$empty',\n onLayout: function onLayout(event) {\n _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(VirtualizedListCellContextProvider, {\n cellKey: this._getFooterCellKey(),\n key: \"$footer\"\n }, /*#__PURE__*/React.createElement(View, {\n onLayout: this._onLayoutFooter,\n style: StyleSheet.compose(inversionStyle, this.props.ListFooterComponentStyle)\n }, // $FlowFixMe - Typing ReactNativeComponent revealed errors\n _element2)));\n }\n\n var scrollProps = _objectSpread(_objectSpread({}, this.props), {}, {\n onContentSizeChange: this._onContentSizeChange,\n onLayout: this._onLayout,\n onScroll: this._onScroll,\n onScrollBeginDrag: this._onScrollBeginDrag,\n onScrollEndDrag: this._onScrollEndDrag,\n onMomentumScrollBegin: this._onMomentumScrollBegin,\n onMomentumScrollEnd: this._onMomentumScrollEnd,\n scrollEventThrottle: this.props.scrollEventThrottle,\n // TODO: Android support\n stickyHeaderIndices: stickyHeaderIndices,\n style: inversionStyle ? [inversionStyle, this.props.style] : this.props.style\n });\n\n this._hasMore = this.state.last < this.props.getItemCount(this.props.data) - 1;\n var innerRet = /*#__PURE__*/React.createElement(VirtualizedListContextProvider, {\n value: {\n cellKey: null,\n getScrollMetrics: this._getScrollMetrics,\n horizontal: this.props.horizontal,\n getOutermostParentListRef: this._getOutermostParentListRef,\n getNestedChildState: this._getNestedChildState,\n registerAsNestedChild: this._registerAsNestedChild,\n unregisterAsNestedChild: this._unregisterAsNestedChild,\n debugInfo: this._getDebugInfo()\n }\n }, /*#__PURE__*/React.cloneElement((this.props.renderScrollComponent || this._defaultRenderScrollComponent)(scrollProps), {\n ref: this._captureScrollRef\n }, cells));\n var ret = innerRet;\n\n if (this.props.debug) {\n return /*#__PURE__*/React.createElement(View, {\n style: styles.debug\n }, ret, this._renderDebugOverlay());\n } else {\n return ret;\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props9 = this.props,\n data = _this$props9.data,\n extraData = _this$props9.extraData;\n\n if (data !== prevProps.data || extraData !== prevProps.extraData) {\n // clear the viewableIndices cache to also trigger\n // the onViewableItemsChanged callback with the new data\n this._viewabilityTuples.forEach(function (tuple) {\n tuple.viewabilityHelper.resetViewableIndices();\n });\n } // The `this._hiPriInProgress` is guaranteeing a hiPri cell update will only happen\n // once per fiber update. The `_scheduleCellsToRenderUpdate` will set it to true\n // if a hiPri update needs to perform. If `componentDidUpdate` is triggered with\n // `this._hiPriInProgress=true`, means it's triggered by the hiPri update. The\n // `_scheduleCellsToRenderUpdate` will check this condition and not perform\n // another hiPri update.\n\n\n var hiPriInProgress = this._hiPriInProgress;\n\n this._scheduleCellsToRenderUpdate(); // Make sure setting `this._hiPriInProgress` back to false after `componentDidUpdate`\n // is triggered with `this._hiPriInProgress = true`\n\n\n if (hiPriInProgress) {\n this._hiPriInProgress = false;\n }\n };\n\n _proto._computeBlankness = function _computeBlankness() {\n this._fillRateHelper.computeBlankness(this.props, this.state, this._scrollMetrics);\n };\n\n _proto._onCellLayout = function _onCellLayout(e, cellKey, index) {\n var layout = e.nativeEvent.layout;\n var next = {\n offset: this._selectOffset(layout),\n length: this._selectLength(layout),\n index: index,\n inLayout: true\n };\n var curr = this._frames[cellKey];\n\n if (!curr || next.offset !== curr.offset || next.length !== curr.length || index !== curr.index) {\n this._totalCellLength += next.length - (curr ? curr.length : 0);\n this._totalCellsMeasured += curr ? 0 : 1;\n this._averageCellLength = this._totalCellLength / this._totalCellsMeasured;\n this._frames[cellKey] = next;\n this._highestMeasuredFrameIndex = Math.max(this._highestMeasuredFrameIndex, index);\n\n this._scheduleCellsToRenderUpdate();\n } else {\n this._frames[cellKey].inLayout = true;\n }\n\n this._triggerRemeasureForChildListsInCell(cellKey);\n\n this._computeBlankness();\n\n this._updateViewableItems(this.props.data);\n };\n\n _proto._triggerRemeasureForChildListsInCell = function _triggerRemeasureForChildListsInCell(cellKey) {\n var childListKeys = this._cellKeysToChildListKeys.get(cellKey);\n\n if (childListKeys) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(childListKeys), _step2; !(_step2 = _iterator2()).done;) {\n var childKey = _step2.value;\n\n var childList = this._nestedChildLists.get(childKey);\n\n childList && childList.ref && childList.ref.measureLayoutRelativeToContainingList();\n }\n }\n };\n\n _proto.measureLayoutRelativeToContainingList = function measureLayoutRelativeToContainingList() {\n var _this4 = this;\n\n // TODO (T35574538): findNodeHandle sometimes crashes with \"Unable to find\n // node on an unmounted component\" during scrolling\n try {\n if (!this._scrollRef) {\n return;\n } // We are assuming that getOutermostParentListRef().getScrollRef()\n // is a non-null reference to a ScrollView\n\n\n this._scrollRef.measureLayout(this.context.getOutermostParentListRef().getScrollRef(), function (x, y, width, height) {\n _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.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._getFooterCellKey = function _getFooterCellKey() {\n return this._getCellKey() + '-footer';\n };\n\n _proto._renderDebugOverlay = function _renderDebugOverlay() {\n var normalize = this._scrollMetrics.visibleLength / (this._scrollMetrics.contentLength || 1);\n var framesInLayout = [];\n var itemCount = this.props.getItemCount(this.props.data);\n\n for (var ii = 0; ii < itemCount; ii++) {\n var frame = this._getFrameMetricsApprox(ii);\n /* $FlowFixMe(>=0.68.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.68 was deployed. To see the error delete this\n * comment and run Flow. */\n\n\n if (frame.inLayout) {\n framesInLayout.push(frame);\n }\n }\n\n var windowTop = this._getFrameMetricsApprox(this.state.first).offset;\n\n var frameLast = this._getFrameMetricsApprox(this.state.last);\n\n var windowLen = frameLast.offset + frameLast.length - windowTop;\n var visTop = this._scrollMetrics.offset;\n var visLen = this._scrollMetrics.visibleLength;\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlay]\n }, framesInLayout.map(function (f, ii) {\n return /*#__PURE__*/React.createElement(View, {\n key: 'f' + ii,\n style: [styles.debugOverlayBase, styles.debugOverlayFrame, {\n top: f.offset * normalize,\n height: f.length * normalize\n }]\n });\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlayFrameLast, {\n top: windowTop * normalize,\n height: windowLen * normalize\n }]\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlayFrameVis, {\n top: visTop * normalize,\n height: visLen * normalize\n }]\n }));\n };\n\n _proto._selectLength = function _selectLength(metrics) {\n return !this.props.horizontal ? metrics.height : metrics.width;\n };\n\n _proto._selectOffset = function _selectOffset(metrics) {\n return !this.props.horizontal ? metrics.y : metrics.x;\n };\n\n _proto._maybeCallOnEndReached = function _maybeCallOnEndReached() {\n var _this$props10 = this.props,\n data = _this$props10.data,\n getItemCount = _this$props10.getItemCount,\n onEndReached = _this$props10.onEndReached,\n onEndReachedThreshold = _this$props10.onEndReachedThreshold;\n var _this$_scrollMetrics2 = this._scrollMetrics,\n contentLength = _this$_scrollMetrics2.contentLength,\n visibleLength = _this$_scrollMetrics2.visibleLength,\n offset = _this$_scrollMetrics2.offset;\n var distanceFromEnd = contentLength - visibleLength - offset;\n var threshold = onEndReachedThreshold ? onEndReachedThreshold * visibleLength : 2;\n\n if (onEndReached && this.state.last === getItemCount(data) - 1 && distanceFromEnd < threshold && this._scrollMetrics.contentLength !== this._sentEndForContentLength) {\n // Only call onEndReached once for a given content length\n this._sentEndForContentLength = this._scrollMetrics.contentLength;\n onEndReached({\n distanceFromEnd: distanceFromEnd\n });\n } else if (distanceFromEnd > threshold) {\n // If the user scrolls away from the end and back again cause\n // an onEndReached to be triggered again\n this._sentEndForContentLength = 0;\n }\n };\n\n _proto._scheduleCellsToRenderUpdate = function _scheduleCellsToRenderUpdate() {\n var _this$state2 = this.state,\n first = _this$state2.first,\n last = _this$state2.last;\n var _this$_scrollMetrics3 = this._scrollMetrics,\n offset = _this$_scrollMetrics3.offset,\n visibleLength = _this$_scrollMetrics3.visibleLength,\n velocity = _this$_scrollMetrics3.velocity;\n var itemCount = this.props.getItemCount(this.props.data);\n var hiPri = false;\n var scrollingThreshold =\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.63 was deployed. To see the error delete\n * this comment and run Flow. */\n this.props.onEndReachedThreshold * visibleLength / 2; // Mark as high priority if we're close to the start of the first item\n // But only if there are items before the first rendered item\n\n if (first > 0) {\n var distTop = offset - this._getFrameMetricsApprox(first).offset;\n\n hiPri = hiPri || distTop < 0 || velocity < -2 && distTop < scrollingThreshold;\n } // Mark as high priority if we're close to the end of the last item\n // But only if there are items after the last rendered item\n\n\n if (last < itemCount - 1) {\n var distBottom = this._getFrameMetricsApprox(last).offset - (offset + visibleLength);\n hiPri = hiPri || distBottom < 0 || velocity > 2 && distBottom < scrollingThreshold;\n } // Only trigger high-priority updates if we've actually rendered cells,\n // and with that size estimate, accurately compute how many cells we should render.\n // Otherwise, it would just render as many cells as it can (of zero dimension),\n // each time through attempting to render more (limited by maxToRenderPerBatch),\n // starving the renderer from actually laying out the objects and computing _averageCellLength.\n // If this is triggered in an `componentDidUpdate` followed by a hiPri cellToRenderUpdate\n // We shouldn't do another hipri cellToRenderUpdate\n\n\n if (hiPri && (this._averageCellLength || this.props.getItemLayout) && !this._hiPriInProgress) {\n this._hiPriInProgress = true; // Don't worry about interactions when scrolling quickly; focus on filling content as fast\n // as possible.\n\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n\n this._updateCellsToRender();\n\n return;\n } else {\n this._updateCellsToRenderBatcher.schedule();\n }\n };\n\n _proto._updateViewableItems = function _updateViewableItems(data) {\n var _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.contextType = VirtualizedListContext;\nVirtualizedList.defaultProps = {\n disableVirtualization: false,\n horizontal: false,\n initialNumToRender: 10,\n keyExtractor: function keyExtractor(item, index) {\n if (item.key != null) {\n return item.key;\n }\n\n if (item.id != null) {\n return item.id;\n }\n\n _usedIndexForKey = true;\n\n if (item.type && item.type.displayName) {\n _keylessItemComponentName = item.type.displayName;\n }\n\n return String(index);\n },\n maxToRenderPerBatch: 10,\n onEndReachedThreshold: 2,\n // multiples of length\n scrollEventThrottle: 50,\n updateCellsBatchingPeriod: 50,\n windowSize: 21 // multiples of length\n\n};\n\nvar CellRenderer = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CellRenderer, _React$Component);\n\n function CellRenderer() {\n var _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 CellRenderer.getDerivedStateFromProps = function getDerivedStateFromProps(props, prevState) {\n return {\n separatorProps: _objectSpread(_objectSpread({}, prevState.separatorProps), {}, {\n leadingItem: props.item\n })\n };\n } // TODO: consider factoring separator stuff out of VirtualizedList into FlatList since it's not\n // reused by SectionList and we can keep VirtualizedList simpler.\n ;\n\n var _proto2 = CellRenderer.prototype;\n\n _proto2.updateSeparatorProps = function updateSeparatorProps(newProps) {\n this.setState(function (state) {\n return {\n separatorProps: _objectSpread(_objectSpread({}, state.separatorProps), newProps)\n };\n });\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n this.props.onUnmount(this.props.cellKey);\n };\n\n _proto2._renderElement = function _renderElement(renderItem, ListItemComponent, item, index) {\n if (renderItem && ListItemComponent) {\n console.warn('VirtualizedList: Both ListItemComponent and renderItem props are present. ListItemComponent will take' + ' precedence over renderItem.');\n }\n\n if (ListItemComponent) {\n /* $FlowFixMe(>=0.108.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.108 was deployed. To see the error, delete\n * this comment and run Flow. */\n return /*#__PURE__*/React.createElement(ListItemComponent, {\n item: item,\n index: index,\n separators: this._separators\n });\n }\n\n if (renderItem) {\n return renderItem({\n item: item,\n index: index,\n separators: this._separators\n });\n }\n\n invariant(false, 'VirtualizedList: Either ListItemComponent or renderItem props are required but none were found.');\n };\n\n _proto2.render = function render() {\n var _this$props11 = this.props,\n CellRendererComponent = _this$props11.CellRendererComponent,\n ItemSeparatorComponent = _this$props11.ItemSeparatorComponent,\n fillRateHelper = _this$props11.fillRateHelper,\n horizontal = _this$props11.horizontal,\n item = _this$props11.item,\n index = _this$props11.index,\n inversionStyle = _this$props11.inversionStyle,\n parentProps = _this$props11.parentProps;\n var renderItem = parentProps.renderItem,\n getItemLayout = parentProps.getItemLayout,\n ListItemComponent = parentProps.ListItemComponent;\n\n var element = this._renderElement(renderItem, ListItemComponent, item, index);\n\n var onLayout =\n /* $FlowFixMe(>=0.68.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.68 was deployed. To see the error delete this\n * comment and run Flow. */\n getItemLayout && !parentProps.debug && !fillRateHelper.enabled() ? undefined : this.props.onLayout; // NOTE: that when this is a sticky header, `onLayout` will get automatically extracted and\n // called explicitly by `ScrollViewStickyHeader`.\n\n var itemSeparator = ItemSeparatorComponent && /*#__PURE__*/React.createElement(ItemSeparatorComponent, this.state.separatorProps);\n var cellStyle = inversionStyle ? horizontal ? [styles.rowReverse, inversionStyle] : [styles.columnReverse, inversionStyle] : horizontal ? [styles.row, inversionStyle] : inversionStyle;\n var result = !CellRendererComponent ?\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.89.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete\n * this comment and run Flow. */\n React.createElement(View, {\n style: cellStyle,\n onLayout: onLayout\n }, element, itemSeparator) : /*#__PURE__*/React.createElement(CellRendererComponent, _extends({}, this.props, {\n style: cellStyle,\n onLayout: onLayout\n }), element, itemSeparator);\n return /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this.props.cellKey\n }, result);\n };\n\n return CellRenderer;\n}(React.Component);\n\nfunction describeNestedLists(childList) {\n var trace = 'VirtualizedList trace:\\n' + (\" Child (\" + (childList.horizontal ? 'horizontal' : 'vertical') + \"):\\n\") + (\" listKey: \" + childList.key + \"\\n\") + (\" cellKey: \" + childList.cellKey);\n var debugInfo = childList.parentDebugInfo;\n\n while (debugInfo) {\n trace += \"\\n Parent (\" + (debugInfo.horizontal ? 'horizontal' : 'vertical') + \"):\\n\" + (\" listKey: \" + debugInfo.listKey + \"\\n\") + (\" cellKey: \" + debugInfo.cellKey);\n debugInfo = debugInfo.parent;\n }\n\n return trace;\n}\n\nvar styles = StyleSheet.create({\n verticallyInverted: {\n transform: [{\n scaleY: -1\n }]\n },\n horizontallyInverted: {\n transform: [{\n scaleX: -1\n }]\n },\n row: {\n flexDirection: 'row'\n },\n rowReverse: {\n flexDirection: 'row-reverse'\n },\n columnReverse: {\n flexDirection: 'column-reverse'\n },\n debug: {\n flex: 1\n },\n debugOverlayBase: {\n position: 'absolute',\n top: 0,\n right: 0\n },\n debugOverlay: {\n bottom: 0,\n width: 20,\n borderColor: 'blue',\n borderWidth: 1\n },\n debugOverlayFrame: {\n left: 0,\n backgroundColor: 'orange'\n },\n debugOverlayFrameLast: {\n left: 0,\n borderColor: 'green',\n borderWidth: 2\n },\n debugOverlayFrameVis: {\n left: 0,\n borderColor: 'red',\n borderWidth: 2\n }\n});\nexport default VirtualizedList;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport deepDiffer from '../deepDiffer';\nimport * as React from 'react';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport View from '../../../exports/View';\nimport ScrollView from '../../../exports/ScrollView';\nimport VirtualizedList from '../VirtualizedList';\nimport invariant from 'fbjs/lib/invariant';\n\nvar defaultProps = _objectSpread(_objectSpread({}, VirtualizedList.defaultProps), {}, {\n numColumns: 1\n});\n\n/**\n * A performant interface for rendering simple, flat lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Optional horizontal mode.\n * - Configurable viewability callbacks.\n * - Header support.\n * - Footer support.\n * - Separator support.\n * - Pull to Refresh.\n * - Scroll loading.\n * - ScrollToIndex support.\n *\n * If you need section support, use [``](docs/sectionlist.html).\n *\n * Minimal Example:\n *\n * {item.key}}\n * />\n *\n * More complex, multi-select example demonstrating `PureComponent` usage for perf optimization and avoiding bugs.\n *\n * - By binding the `onPressItem` handler, the props will remain `===` and `PureComponent` will\n * prevent wasteful re-renders unless the actual `id`, `selected`, or `title` props change, even\n * if the components rendered in `MyListItem` did not have such optimizations.\n * - By passing `extraData={this.state}` to `FlatList` we make sure `FlatList` itself will re-render\n * when the `state.selected` changes. Without setting this prop, `FlatList` would not know it\n * needs to re-render any items because it is also a `PureComponent` and the prop comparison will\n * not show any changes.\n * - `keyExtractor` tells the list to use the `id`s for the react keys instead of the default `key` property.\n *\n *\n * class MyListItem extends React.PureComponent {\n * _onPress = () => {\n * this.props.onPressItem(this.props.id);\n * };\n *\n * render() {\n * const textColor = this.props.selected ? \"red\" : \"black\";\n * return (\n * \n * \n * \n * {this.props.title}\n * \n * \n * \n * );\n * }\n * }\n *\n * class MultiSelectList extends React.PureComponent {\n * state = {selected: (new Map(): Map)};\n *\n * _keyExtractor = (item, index) => item.id;\n *\n * _onPressItem = (id: string) => {\n * // updater functions are preferred for transactional updates\n * this.setState((state) => {\n * // copy the map rather than modifying state.\n * const selected = new Map(state.selected);\n * selected.set(id, !selected.get(id)); // toggle\n * return {selected};\n * });\n * };\n *\n * _renderItem = ({item}) => (\n * \n * );\n *\n * render() {\n * return (\n * \n * );\n * }\n * }\n *\n * This is a convenience wrapper around [``](docs/virtualizedlist.html),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n * Also inherits [ScrollView Props](docs/scrollview.html#props), unless it is nested in another FlatList of same orientation.\n */\nvar FlatList = /*#__PURE__*/function (_React$PureComponent) {\n _inheritsLoose(FlatList, _React$PureComponent);\n\n var _proto = FlatList.prototype;\n\n /**\n * Scrolls to the end of the content. May be janky without `getItemLayout` prop.\n */\n _proto.scrollToEnd = function scrollToEnd(params) {\n if (this._listRef) {\n this._listRef.scrollToEnd(params);\n }\n }\n /**\n * Scrolls to the item at the specified index such that it is positioned in the viewable area\n * such that `viewPosition` 0 places it at the top, 1 at the bottom, and 0.5 centered in the\n * middle. `viewOffset` is a fixed number of pixels to offset the final target position.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n ;\n\n _proto.scrollToIndex = function scrollToIndex(params) {\n if (this._listRef) {\n this._listRef.scrollToIndex(params);\n }\n }\n /**\n * Requires linear scan through data - use `scrollToIndex` instead if possible.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n ;\n\n _proto.scrollToItem = function scrollToItem(params) {\n if (this._listRef) {\n this._listRef.scrollToItem(params);\n }\n }\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Check out [scrollToOffset](docs/virtualizedlist.html#scrolltooffset) of VirtualizedList\n */\n ;\n\n _proto.scrollToOffset = function scrollToOffset(params) {\n if (this._listRef) {\n this._listRef.scrollToOffset(params);\n }\n }\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n ;\n\n _proto.recordInteraction = function recordInteraction() {\n if (this._listRef) {\n this._listRef.recordInteraction();\n }\n }\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n ;\n\n _proto.flashScrollIndicators = function flashScrollIndicators() {\n if (this._listRef) {\n this._listRef.flashScrollIndicators();\n }\n }\n /**\n * Provides a handle to the underlying scroll responder.\n */\n ;\n\n _proto.getScrollResponder = function getScrollResponder() {\n if (this._listRef) {\n return this._listRef.getScrollResponder();\n }\n }\n /**\n * Provides a reference to the underlying host component\n */\n ;\n\n _proto.getNativeScrollRef = function getNativeScrollRef() {\n if (this._listRef) {\n /* $FlowFixMe[incompatible-return] Suppresses errors found when fixing\n * TextInput typing */\n return this._listRef.getScrollRef();\n }\n };\n\n _proto.getScrollableNode = function getScrollableNode() {\n if (this._listRef) {\n return this._listRef.getScrollableNode();\n }\n };\n\n _proto.setNativeProps = function setNativeProps(props) {\n if (this._listRef) {\n this._listRef.setNativeProps(props);\n }\n };\n\n function FlatList(_props) {\n var _this;\n\n _this = _React$PureComponent.call(this, _props) || this;\n _this._virtualizedListPairs = [];\n\n _this._captureRef = function (ref) {\n _this._listRef = ref;\n };\n\n _this._getItem = function (data, index) {\n var numColumns = _this.props.numColumns;\n\n if (numColumns > 1) {\n var ret = [];\n\n for (var kk = 0; kk < numColumns; kk++) {\n var _item = data[index * numColumns + kk];\n\n if (_item != null) {\n ret.push(_item);\n }\n }\n\n return ret;\n } else {\n return data[index];\n }\n };\n\n _this._getItemCount = function (data) {\n if (data) {\n var numColumns = _this.props.numColumns;\n return numColumns > 1 ? Math.ceil(data.length / numColumns) : data.length;\n } else {\n return 0;\n }\n };\n\n _this._keyExtractor = function (items, index) {\n var _this$props = _this.props,\n keyExtractor = _this$props.keyExtractor,\n numColumns = _this$props.numColumns;\n\n if (numColumns > 1) {\n invariant(Array.isArray(items), 'FlatList: Encountered internal consistency error, expected each item to consist of an ' + 'array with 1-%s columns; instead, received a single item.', numColumns);\n return items // $FlowFixMe[incompatible-call]\n .map(function (it, kk) {\n return keyExtractor(it, index * numColumns + kk);\n }).join(':');\n } else {\n // $FlowFixMe Can't call keyExtractor with an array\n return keyExtractor(items, index);\n }\n };\n\n _this._renderer = function () {\n var _ref;\n\n var _this$props2 = _this.props,\n ListItemComponent = _this$props2.ListItemComponent,\n renderItem = _this$props2.renderItem,\n numColumns = _this$props2.numColumns,\n columnWrapperStyle = _this$props2.columnWrapperStyle;\n var virtualizedListRenderKey = ListItemComponent ? 'ListItemComponent' : 'renderItem';\n\n var renderer = function renderer(props) {\n if (ListItemComponent) {\n // $FlowFixMe Component isn't valid\n return /*#__PURE__*/React.createElement(ListItemComponent, props);\n } else if (renderItem) {\n // $FlowFixMe[incompatible-call]\n return renderItem(props);\n } else {\n return null;\n }\n };\n\n return _ref = {}, _ref[virtualizedListRenderKey] = function (info) {\n if (numColumns > 1) {\n var _item2 = info.item,\n _index = info.index;\n invariant(Array.isArray(_item2), 'Expected array of items with numColumns > 1');\n return /*#__PURE__*/React.createElement(View, {\n style: StyleSheet.compose(styles.row, columnWrapperStyle)\n }, _item2.map(function (it, kk) {\n var element = renderer({\n item: it,\n index: _index * numColumns + kk,\n separators: info.separators\n });\n return element != null ? /*#__PURE__*/React.createElement(React.Fragment, {\n key: kk\n }, element) : null;\n }));\n } else {\n return renderer(info);\n }\n }, _ref;\n };\n\n _this._checkProps(_this.props);\n\n if (_this.props.viewabilityConfigCallbackPairs) {\n _this._virtualizedListPairs = _this.props.viewabilityConfigCallbackPairs.map(function (pair) {\n return {\n viewabilityConfig: pair.viewabilityConfig,\n onViewableItemsChanged: _this._createOnViewableItemsChanged(pair.onViewableItemsChanged)\n };\n });\n } else if (_this.props.onViewableItemsChanged) {\n _this._virtualizedListPairs.push({\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.63 was deployed. To see the error delete\n * this comment and run Flow. */\n viewabilityConfig: _this.props.viewabilityConfig,\n onViewableItemsChanged: _this._createOnViewableItemsChanged(_this.props.onViewableItemsChanged)\n });\n }\n\n return _this;\n }\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n invariant(prevProps.numColumns === this.props.numColumns, 'Changing numColumns on the fly is not supported. Change the key prop on FlatList when ' + 'changing the number of columns to force a fresh render of the component.');\n invariant(prevProps.onViewableItemsChanged === this.props.onViewableItemsChanged, 'Changing onViewableItemsChanged on the fly is not supported');\n invariant(!deepDiffer(prevProps.viewabilityConfig, this.props.viewabilityConfig), 'Changing viewabilityConfig on the fly is not supported');\n invariant(prevProps.viewabilityConfigCallbackPairs === this.props.viewabilityConfigCallbackPairs, 'Changing viewabilityConfigCallbackPairs on the fly is not supported');\n\n this._checkProps(this.props);\n };\n\n _proto._checkProps = function _checkProps(props) {\n var getItem = props.getItem,\n getItemCount = props.getItemCount,\n horizontal = props.horizontal,\n numColumns = props.numColumns,\n columnWrapperStyle = props.columnWrapperStyle,\n onViewableItemsChanged = props.onViewableItemsChanged,\n viewabilityConfigCallbackPairs = props.viewabilityConfigCallbackPairs;\n invariant(!getItem && !getItemCount, 'FlatList does not support custom data formats.');\n\n if (numColumns > 1) {\n invariant(!horizontal, 'numColumns does not support horizontal.');\n } else {\n invariant(!columnWrapperStyle, 'columnWrapperStyle not supported for single column lists');\n }\n\n invariant(!(onViewableItemsChanged && viewabilityConfigCallbackPairs), 'FlatList does not support setting both onViewableItemsChanged and ' + 'viewabilityConfigCallbackPairs.');\n };\n\n _proto._pushMultiColumnViewable = function _pushMultiColumnViewable(arr, v) {\n var _this$props3 = this.props,\n numColumns = _this$props3.numColumns,\n keyExtractor = _this$props3.keyExtractor;\n v.item.forEach(function (item, ii) {\n invariant(v.index != null, 'Missing index!');\n var index = v.index * numColumns + ii;\n arr.push(_objectSpread(_objectSpread({}, v), {}, {\n item: item,\n key: keyExtractor(item, index),\n index: index\n }));\n });\n };\n\n _proto._createOnViewableItemsChanged = function _createOnViewableItemsChanged(onViewableItemsChanged) {\n var _this2 = this;\n\n return function (info) {\n var numColumns = _this2.props.numColumns;\n\n if (onViewableItemsChanged) {\n if (numColumns > 1) {\n var changed = [];\n var viewableItems = [];\n info.viewableItems.forEach(function (v) {\n return _this2._pushMultiColumnViewable(viewableItems, v);\n });\n info.changed.forEach(function (v) {\n return _this2._pushMultiColumnViewable(changed, v);\n });\n onViewableItemsChanged({\n viewableItems: viewableItems,\n changed: changed\n });\n } else {\n onViewableItemsChanged(info);\n }\n }\n };\n };\n\n _proto.render = function render() {\n var _this$props4 = this.props,\n numColumns = _this$props4.numColumns,\n columnWrapperStyle = _this$props4.columnWrapperStyle,\n restProps = _objectWithoutPropertiesLoose(_this$props4, [\"numColumns\", \"columnWrapperStyle\"]);\n\n return /*#__PURE__*/React.createElement(VirtualizedList, _extends({}, restProps, {\n getItem: this._getItem,\n getItemCount: this._getItemCount,\n keyExtractor: this._keyExtractor,\n ref: this._captureRef,\n viewabilityConfigCallbackPairs: this._virtualizedListPairs\n }, this._renderer()));\n };\n\n return FlatList;\n}(React.PureComponent);\n\nFlatList.defaultProps = defaultProps;\nvar styles = StyleSheet.create({\n row: {\n flexDirection: 'row'\n }\n});\nexport default FlatList;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport FlatList from '../../vendor/react-native/FlatList';\nexport default FlatList;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport AnimatedValue from './nodes/AnimatedValue';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport findNodeHandle from '../../../exports/findNodeHandle';\nimport invariant from 'fbjs/lib/invariant';\nimport { shouldUseNativeDriver } from './NativeAnimatedHelper';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nexport function attachNativeEvent(viewRef, eventName, argMapping) {\n // Find animated values in `argMapping` and create an array representing their\n // key path inside the `nativeEvent` object. Ex.: ['contentOffset', 'x'].\n var eventMappings = [];\n\n var traverse = function traverse(value, path) {\n if (value instanceof AnimatedValue) {\n value.__makeNative();\n\n eventMappings.push({\n nativeEventPath: path,\n animatedValueTag: value.__getNativeTag()\n });\n } else if (typeof value === 'object') {\n for (var _key in value) {\n traverse(value[_key], path.concat(_key));\n }\n }\n };\n\n invariant(argMapping[0] && argMapping[0].nativeEvent, 'Native driven events only support animated values contained inside `nativeEvent`.'); // Assume that the event containing `nativeEvent` is always the first argument.\n\n traverse(argMapping[0].nativeEvent, []);\n var viewTag = findNodeHandle(viewRef);\n\n if (viewTag != null) {\n eventMappings.forEach(function (mapping) {\n NativeAnimatedHelper.API.addAnimatedEventToView(viewTag, eventName, mapping);\n });\n }\n\n return {\n detach: function detach() {\n if (viewTag != null) {\n eventMappings.forEach(function (mapping) {\n NativeAnimatedHelper.API.removeAnimatedEventFromView(viewTag, eventName, // $FlowFixMe[incompatible-call]\n mapping.animatedValueTag);\n });\n }\n }\n };\n}\n\nfunction validateMapping(argMapping, args) {\n var validate = function validate(recMapping, recEvt, key) {\n if (recMapping instanceof AnimatedValue) {\n invariant(typeof recEvt === 'number', 'Bad mapping of event key ' + key + ', should be number but got ' + typeof recEvt);\n return;\n }\n\n if (typeof recEvt === 'number') {\n invariant(recMapping instanceof AnimatedValue, 'Bad mapping of type ' + typeof recMapping + ' for key ' + key + ', event value must map to AnimatedValue');\n return;\n }\n\n invariant(typeof recMapping === 'object', 'Bad mapping of type ' + typeof recMapping + ' for key ' + key);\n invariant(typeof recEvt === 'object', 'Bad event of type ' + typeof recEvt + ' for key ' + key);\n\n for (var mappingKey in recMapping) {\n validate(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n }\n };\n\n invariant(args.length >= argMapping.length, 'Event has less arguments than mapping');\n argMapping.forEach(function (mapping, idx) {\n validate(mapping, args[idx], 'arg' + idx);\n });\n}\n\nexport var AnimatedEvent = /*#__PURE__*/function () {\n function AnimatedEvent(argMapping, config) {\n this._listeners = [];\n this._argMapping = argMapping;\n\n if (config == null) {\n console.warn('Animated.event now requires a second argument for options');\n config = {\n useNativeDriver: false\n };\n }\n\n if (config.listener) {\n this.__addListener(config.listener);\n }\n\n this._callListeners = this._callListeners.bind(this);\n this._attachedEvent = null;\n this.__isNative = shouldUseNativeDriver(config);\n }\n\n var _proto = AnimatedEvent.prototype;\n\n _proto.__addListener = function __addListener(callback) {\n this._listeners.push(callback);\n };\n\n _proto.__removeListener = function __removeListener(callback) {\n this._listeners = this._listeners.filter(function (listener) {\n return listener !== callback;\n });\n };\n\n _proto.__attach = function __attach(viewRef, eventName) {\n invariant(this.__isNative, 'Only native driven events need to be attached.');\n this._attachedEvent = attachNativeEvent(viewRef, eventName, this._argMapping);\n };\n\n _proto.__detach = function __detach(viewTag, eventName) {\n invariant(this.__isNative, 'Only native driven events need to be detached.');\n this._attachedEvent && this._attachedEvent.detach();\n };\n\n _proto.__getHandler = function __getHandler() {\n var _this = this;\n\n if (this.__isNative) {\n if (__DEV__) {\n var _validatedMapping = false;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (!_validatedMapping) {\n validateMapping(_this._argMapping, args);\n _validatedMapping = true;\n }\n\n _this._callListeners.apply(_this, args);\n };\n } else {\n return this._callListeners;\n }\n }\n\n var validatedMapping = false;\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (__DEV__ && !validatedMapping) {\n validateMapping(_this._argMapping, args);\n validatedMapping = true;\n }\n\n var traverse = function traverse(recMapping, recEvt, key) {\n if (recMapping instanceof AnimatedValue) {\n if (typeof recEvt === 'number') {\n recMapping.setValue(recEvt);\n }\n } else if (typeof recMapping === 'object') {\n for (var mappingKey in recMapping) {\n /* $FlowFixMe(>=0.120.0) This comment suppresses an error found\n * when Flow v0.120 was deployed. To see the error, delete this\n * comment and run Flow. */\n traverse(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n }\n }\n };\n\n _this._argMapping.forEach(function (mapping, idx) {\n traverse(mapping, args[idx], 'arg' + idx);\n });\n\n _this._callListeners.apply(_this, args);\n };\n };\n\n _proto._callListeners = function _callListeners() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key4 = 0; _key4 < _len3; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n this._listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n };\n\n return AnimatedEvent;\n}();","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\n\nvar AnimatedTransform = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedTransform, _AnimatedWithChildren);\n\n function AnimatedTransform(transforms) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._transforms = transforms;\n return _this;\n }\n\n var _proto = AnimatedTransform.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._transforms.forEach(function (transform) {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n });\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n return this._transforms.map(function (transform) {\n var result = {};\n\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n result[key] = value.__getValue();\n } else {\n result[key] = value;\n }\n }\n\n return result;\n });\n };\n\n _proto.__getAnimatedValue = function __getAnimatedValue() {\n return this._transforms.map(function (transform) {\n var result = {};\n\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n result[key] = value.__getAnimatedValue();\n } else {\n // All transform components needed to recompose matrix\n result[key] = value;\n }\n }\n\n return result;\n });\n };\n\n _proto.__attach = function __attach() {\n var _this2 = this;\n\n this._transforms.forEach(function (transform) {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n value.__addChild(_this2);\n }\n }\n });\n };\n\n _proto.__detach = function __detach() {\n var _this3 = this;\n\n this._transforms.forEach(function (transform) {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n value.__removeChild(_this3);\n }\n }\n });\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n var transConfigs = [];\n\n this._transforms.forEach(function (transform) {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n transConfigs.push({\n type: 'animated',\n property: key,\n nodeTag: value.__getNativeTag()\n });\n } else {\n transConfigs.push({\n type: 'static',\n property: key,\n value: NativeAnimatedHelper.transformDataType(value)\n });\n }\n }\n });\n\n NativeAnimatedHelper.validateTransform(transConfigs);\n return {\n type: 'transform',\n transforms: transConfigs\n };\n };\n\n return AnimatedTransform;\n}(AnimatedWithChildren);\n\nexport default AnimatedTransform;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedTransform from './AnimatedTransform';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport flattenStyle from '../../../../exports/StyleSheet/flattenStyle';\n\nvar AnimatedStyle = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedStyle, _AnimatedWithChildren);\n\n function AnimatedStyle(style) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n style = flattenStyle(style) || {};\n\n if (style.transform) {\n style = _objectSpread(_objectSpread({}, style), {}, {\n transform: new AnimatedTransform(style.transform)\n });\n }\n\n _this._style = style;\n return _this;\n } // Recursively get values for nested styles (like iOS's shadowOffset)\n\n\n var _proto = AnimatedStyle.prototype;\n\n _proto._walkStyleAndGetValues = function _walkStyleAndGetValues(style) {\n var updatedStyle = {};\n\n for (var key in style) {\n var value = style[key];\n\n if (value instanceof AnimatedNode) {\n if (!value.__isNative) {\n // We cannot use value of natively driven nodes this way as the value we have access from\n // JS may not be up to date.\n updatedStyle[key] = value.__getValue();\n }\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetValues(value);\n } else {\n updatedStyle[key] = value;\n }\n }\n\n return updatedStyle;\n };\n\n _proto.__getValue = function __getValue() {\n return this._walkStyleAndGetValues(this._style);\n } // Recursively get animated values for nested styles (like iOS's shadowOffset)\n ;\n\n _proto._walkStyleAndGetAnimatedValues = function _walkStyleAndGetAnimatedValues(style) {\n var updatedStyle = {};\n\n for (var key in style) {\n var value = style[key];\n\n if (value instanceof AnimatedNode) {\n updatedStyle[key] = value.__getAnimatedValue();\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetAnimatedValues(value);\n }\n }\n\n return updatedStyle;\n };\n\n _proto.__getAnimatedValue = function __getAnimatedValue() {\n return this._walkStyleAndGetAnimatedValues(this._style);\n };\n\n _proto.__attach = function __attach() {\n for (var key in this._style) {\n var value = this._style[key];\n\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n };\n\n _proto.__detach = function __detach() {\n for (var key in this._style) {\n var value = this._style[key];\n\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__makeNative = function __makeNative() {\n for (var key in this._style) {\n var value = this._style[key];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n var styleConfig = {};\n\n for (var styleKey in this._style) {\n if (this._style[styleKey] instanceof AnimatedNode) {\n var style = this._style[styleKey];\n\n style.__makeNative();\n\n styleConfig[styleKey] = style.__getNativeTag();\n } // Non-animated styles are set using `setNativeProps`, no need\n // to pass those as a part of the node config\n\n }\n\n NativeAnimatedHelper.validateStyles(styleConfig);\n return {\n type: 'style',\n style: styleConfig\n };\n };\n\n return AnimatedStyle;\n}(AnimatedWithChildren);\n\nexport default AnimatedStyle;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport { AnimatedEvent } from '../AnimatedEvent';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedStyle from './AnimatedStyle';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport findNodeHandle from '../../../../exports/findNodeHandle';\nimport invariant from 'fbjs/lib/invariant';\n\nvar AnimatedProps = /*#__PURE__*/function (_AnimatedNode) {\n _inheritsLoose(AnimatedProps, _AnimatedNode);\n\n function AnimatedProps(props, callback) {\n var _this;\n\n _this = _AnimatedNode.call(this) || this;\n\n if (props.style) {\n props = _objectSpread(_objectSpread({}, props), {}, {\n style: new AnimatedStyle(props.style)\n });\n }\n\n _this._props = props;\n _this._callback = callback;\n\n _this.__attach();\n\n return _this;\n }\n\n var _proto = AnimatedProps.prototype;\n\n _proto.__getValue = function __getValue() {\n var props = {};\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n if (!value.__isNative || value instanceof AnimatedStyle) {\n // We cannot use value of natively driven nodes this way as the value we have access from\n // JS may not be up to date.\n props[key] = value.__getValue();\n }\n } else if (value instanceof AnimatedEvent) {\n props[key] = value.__getHandler();\n } else {\n props[key] = value;\n }\n }\n\n return props;\n };\n\n _proto.__getAnimatedValue = function __getAnimatedValue() {\n var props = {};\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n props[key] = value.__getAnimatedValue();\n }\n }\n\n return props;\n };\n\n _proto.__attach = function __attach() {\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n };\n\n _proto.__detach = function __detach() {\n if (this.__isNative && this._animatedView) {\n this.__disconnectAnimatedView();\n }\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n\n _AnimatedNode.prototype.__detach.call(this);\n };\n\n _proto.update = function update() {\n this._callback();\n };\n\n _proto.__makeNative = function __makeNative() {\n if (!this.__isNative) {\n this.__isNative = true;\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n\n if (this._animatedView) {\n this.__connectAnimatedView();\n }\n }\n };\n\n _proto.setNativeView = function setNativeView(animatedView) {\n if (this._animatedView === animatedView) {\n return;\n }\n\n this._animatedView = animatedView;\n\n if (this.__isNative) {\n this.__connectAnimatedView();\n }\n };\n\n _proto.__connectAnimatedView = function __connectAnimatedView() {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n var nativeViewTag = findNodeHandle(this._animatedView);\n invariant(nativeViewTag != null, 'Unable to locate attached view in the native tree');\n NativeAnimatedHelper.API.connectAnimatedNodeToView(this.__getNativeTag(), nativeViewTag);\n };\n\n _proto.__disconnectAnimatedView = function __disconnectAnimatedView() {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n var nativeViewTag = findNodeHandle(this._animatedView);\n invariant(nativeViewTag != null, 'Unable to locate attached view in the native tree');\n NativeAnimatedHelper.API.disconnectAnimatedNodeFromView(this.__getNativeTag(), nativeViewTag);\n };\n\n _proto.__restoreDefaultValues = function __restoreDefaultValues() {\n // When using the native driver, view properties need to be restored to\n // their default values manually since react no longer tracks them. This\n // is needed to handle cases where a prop driven by native animated is removed\n // after having been changed natively by an animation.\n if (this.__isNative) {\n NativeAnimatedHelper.API.restoreDefaultValues(this.__getNativeTag());\n }\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n var propsConfig = {};\n\n for (var propKey in this._props) {\n var value = this._props[propKey];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n\n propsConfig[propKey] = value.__getNativeTag();\n }\n }\n\n return {\n type: 'props',\n props: propsConfig\n };\n };\n\n return AnimatedProps;\n}(AnimatedNode);\n\nexport default AnimatedProps;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\n/**\n * This is a helper function for when a component needs to be able to forward a ref\n * to a child component, but still needs to have access to that component as part of\n * its implementation.\n *\n * Its main use case is in wrappers for native components.\n *\n * Usage:\n *\n * class MyView extends React.Component {\n * _nativeRef = null;\n *\n * _setNativeRef = setAndForwardRef({\n * getForwardedRef: () => this.props.forwardedRef,\n * setLocalRef: ref => {\n * this._nativeRef = ref;\n * },\n * });\n *\n * render() {\n * return ;\n * }\n * }\n *\n * const MyViewWithRef = React.forwardRef((props, ref) => (\n * \n * ));\n *\n * module.exports = MyViewWithRef;\n */\nfunction setAndForwardRef(_ref) {\n var getForwardedRef = _ref.getForwardedRef,\n setLocalRef = _ref.setLocalRef;\n return function forwardRef(ref) {\n var forwardedRef = getForwardedRef();\n setLocalRef(ref); // Forward to user ref prop (if one has been specified)\n\n if (typeof forwardedRef === 'function') {\n // Handle function-based refs. String-based refs are handled as functions.\n forwardedRef(ref);\n } else if (typeof forwardedRef === 'object' && forwardedRef != null) {\n // Handle createRef-based refs\n forwardedRef.current = ref;\n }\n };\n}\n\nexport default setAndForwardRef;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport View from '../../../exports/View';\nimport { AnimatedEvent } from './AnimatedEvent';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport * as React from 'react';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport invariant from 'fbjs/lib/invariant';\nimport setAndForwardRef from '../Utilities/setAndForwardRef';\nvar animatedComponentNextId = 1;\n\nfunction createAnimatedComponent(Component, options) {\n invariant(typeof Component !== 'function' || Component.prototype && Component.prototype.isReactComponent, '`createAnimatedComponent` does not support stateless functional components; ' + 'use a class component instead.');\n\n var AnimatedComponent = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(AnimatedComponent, _React$Component);\n\n function AnimatedComponent() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._invokeAnimatedPropsCallbackOnMount = false;\n _this._eventDetachers = [];\n _this._animatedComponentId = animatedComponentNextId++ + \":animatedComponent\";\n\n _this._isFabric = function () {\n var _this$_component$_int, _this$_component$_int2, _this$_component$getN, _this$_component$getN2, _this$_component$getS, _this$_component$getS2;\n\n // When called during the first render, `_component` is always null.\n // Therefore, even if a component is rendered in Fabric, we can't detect\n // that until ref is set, which happens sometime after the first render.\n // In cases where this value switching between \"false\" and \"true\" on Fabric\n // causes issues, add an additional check for _component nullity.\n if (_this._component == null) {\n return false;\n }\n\n return (// eslint-disable-next-line dot-notation\n ((_this$_component$_int = _this._component['_internalInstanceHandle']) == null ? void 0 : (_this$_component$_int2 = _this$_component$_int.stateNode) == null ? void 0 : _this$_component$_int2.canonical) != null || // Some components have a setNativeProps function but aren't a host component\n // such as lists like FlatList and SectionList. These should also use\n // forceUpdate in Fabric since setNativeProps doesn't exist on the underlying\n // host component. This crazy hack is essentially special casing those lists and\n // ScrollView itself to use forceUpdate in Fabric.\n // If these components end up using forwardRef then these hacks can go away\n // as this._component would actually be the underlying host component and the above check\n // would be sufficient.\n _this._component.getNativeScrollRef != null && _this._component.getNativeScrollRef() != null && // eslint-disable-next-line dot-notation\n ((_this$_component$getN = _this._component.getNativeScrollRef()['_internalInstanceHandle']) == null ? void 0 : (_this$_component$getN2 = _this$_component$getN.stateNode) == null ? void 0 : _this$_component$getN2.canonical) != null || _this._component.getScrollResponder != null && _this._component.getScrollResponder() != null && _this._component.getScrollResponder().getNativeScrollRef != null && _this._component.getScrollResponder().getNativeScrollRef() != null && ((_this$_component$getS = _this._component.getScrollResponder().getNativeScrollRef()[// eslint-disable-next-line dot-notation\n '_internalInstanceHandle']) == null ? void 0 : (_this$_component$getS2 = _this$_component$getS.stateNode) == null ? void 0 : _this$_component$getS2.canonical) != null\n );\n };\n\n _this._waitForUpdate = function () {\n if (_this._isFabric()) {\n NativeAnimatedHelper.API.setWaitingForIdentifier(_this._animatedComponentId);\n }\n };\n\n _this._markUpdateComplete = function () {\n if (_this._isFabric()) {\n NativeAnimatedHelper.API.unsetWaitingForIdentifier(_this._animatedComponentId);\n }\n };\n\n _this._animatedPropsCallback = function () {\n if (_this._component == null) {\n // AnimatedProps is created in will-mount because it's used in render.\n // But this callback may be invoked before mount in async mode,\n // In which case we should defer the setNativeProps() call.\n // React may throw away uncommitted work in async mode,\n // So a deferred call won't always be invoked.\n _this._invokeAnimatedPropsCallbackOnMount = true;\n } else if (process.env.NODE_ENV === 'test' || // For animating properties of non-leaf/non-native components\n typeof _this._component.setNativeProps !== 'function' || // In Fabric, force animations to go through forceUpdate and skip setNativeProps\n _this._isFabric()) {\n _this.forceUpdate();\n } else if (!_this._propsAnimated.__isNative) {\n _this._component.setNativeProps(_this._propsAnimated.__getAnimatedValue());\n } else {\n throw new Error('Attempting to run JS driven animation on animated ' + 'node that has been moved to \"native\" earlier by starting an ' + 'animation with `useNativeDriver: true`');\n }\n };\n\n _this._setComponentRef = setAndForwardRef({\n getForwardedRef: function getForwardedRef() {\n return _this.props.forwardedRef;\n },\n setLocalRef: function setLocalRef(ref) {\n _this._prevComponent = _this._component;\n _this._component = ref; // TODO: Delete this in a future release.\n\n if (ref != null && ref.getNode == null) {\n ref.getNode = function () {\n var _ref$constructor$name;\n\n console.warn('%s: Calling `getNode()` on the ref of an Animated component ' + 'is no longer necessary. You can now directly use the ref ' + 'instead. This method will be removed in a future release.', (_ref$constructor$name = ref.constructor.name) !== null && _ref$constructor$name !== void 0 ? _ref$constructor$name : '<>');\n return ref;\n };\n }\n }\n });\n return _this;\n }\n\n var _proto = AnimatedComponent.prototype;\n\n _proto._attachNativeEvents = function _attachNativeEvents() {\n var _this$_component,\n _this2 = this;\n\n // Make sure to get the scrollable node for components that implement\n // `ScrollResponder.Mixin`.\n var scrollableNode = (_this$_component = this._component) != null && _this$_component.getScrollableNode ? this._component.getScrollableNode() : this._component;\n\n var _loop = function _loop(key) {\n var prop = _this2.props[key];\n\n if (prop instanceof AnimatedEvent && prop.__isNative) {\n prop.__attach(scrollableNode, key);\n\n _this2._eventDetachers.push(function () {\n return prop.__detach(scrollableNode, key);\n });\n }\n };\n\n for (var key in this.props) {\n _loop(key);\n }\n };\n\n _proto._detachNativeEvents = function _detachNativeEvents() {\n this._eventDetachers.forEach(function (remove) {\n return remove();\n });\n\n this._eventDetachers = [];\n };\n\n _proto._attachProps = function _attachProps(nextProps) {\n var oldPropsAnimated = this._propsAnimated;\n\n if (nextProps === oldPropsAnimated) {\n return;\n }\n\n this._propsAnimated = new AnimatedProps(nextProps, this._animatedPropsCallback); // When you call detach, it removes the element from the parent list\n // of children. If it goes to 0, then the parent also detaches itself\n // and so on.\n // An optimization is to attach the new elements and THEN detach the old\n // ones instead of detaching and THEN attaching.\n // This way the intermediate state isn't to go to 0 and trigger\n // this expensive recursive detaching to then re-attach everything on\n // the very next operation.\n\n if (oldPropsAnimated) {\n oldPropsAnimated.__restoreDefaultValues();\n\n oldPropsAnimated.__detach();\n }\n };\n\n _proto.render = function render() {\n var _ref = this._propsAnimated.__getValue() || {},\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n props = _objectWithoutPropertiesLoose(_ref, [\"style\"]);\n\n var _ref2 = this.props.passthroughAnimatedPropExplicitValues || {},\n _ref2$style = _ref2.style,\n passthruStyle = _ref2$style === void 0 ? {} : _ref2$style,\n passthruProps = _objectWithoutPropertiesLoose(_ref2, [\"style\"]);\n\n var mergedStyle = _objectSpread(_objectSpread({}, style), passthruStyle);\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, passthruProps, {\n style: mergedStyle,\n ref: this._setComponentRef\n }));\n };\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n this._waitForUpdate();\n\n this._attachProps(this.props);\n };\n\n _proto.componentDidMount = function componentDidMount() {\n if (this._invokeAnimatedPropsCallbackOnMount) {\n this._invokeAnimatedPropsCallbackOnMount = false;\n\n this._animatedPropsCallback();\n }\n\n this._propsAnimated.setNativeView(this._component);\n\n this._attachNativeEvents();\n\n this._markUpdateComplete();\n };\n\n _proto.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(newProps) {\n this._waitForUpdate();\n\n this._attachProps(newProps);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this._component !== this._prevComponent) {\n this._propsAnimated.setNativeView(this._component);\n }\n\n if (this._component !== this._prevComponent || prevProps !== this.props) {\n this._detachNativeEvents();\n\n this._attachNativeEvents();\n }\n\n this._markUpdateComplete();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this._propsAnimated && this._propsAnimated.__detach();\n\n this._detachNativeEvents();\n\n this._markUpdateComplete();\n\n this._component = null;\n this._prevComponent = null;\n };\n\n return AnimatedComponent;\n }(React.Component);\n\n return /*#__PURE__*/React.forwardRef(function AnimatedComponentWrapper(props, ref) {\n return /*#__PURE__*/React.createElement(AnimatedComponent, _extends({}, props, ref == null ? null : {\n forwardedRef: ref\n }));\n });\n}\n\nexport default createAnimatedComponent;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport FlatList from '../../../../exports/FlatList';\nimport createAnimatedComponent from '../createAnimatedComponent';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nvar FlatListWithEventThrottle = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(FlatList, _extends({\n scrollEventThrottle: 0.0001\n }, props, {\n ref: ref\n }));\n});\nexport default createAnimatedComponent(FlatListWithEventThrottle);","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source 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 /**\n * Returns the device pixel density.\n */\n PixelRatio.get = function get() {\n return Dimensions.get('window').scale;\n }\n /**\n * No equivalent for Web\n */\n ;\n\n PixelRatio.getFontScale = function getFontScale() {\n return Dimensions.get('window').fontScale || PixelRatio.get();\n }\n /**\n * Converts a layout size (dp) to pixel size (px).\n * Guaranteed to return an integer number.\n */\n ;\n\n PixelRatio.getPixelSizeForLayoutSize = function getPixelSizeForLayoutSize(layoutSize) {\n return Math.round(layoutSize * PixelRatio.get());\n }\n /**\n * Rounds a layout size (dp) to the nearest layout size that corresponds to\n * an integer number of pixels. For example, on a device with a PixelRatio\n * of 3, `PixelRatio.roundToNearestPixel(8.4) = 8.33`, which corresponds to\n * exactly (8.33 * 3) = 25 pixels.\n */\n ;\n\n PixelRatio.roundToNearestPixel = function roundToNearestPixel(layoutSize) {\n var ratio = PixelRatio.get();\n return Math.round(layoutSize * ratio) / ratio;\n };\n\n return PixelRatio;\n}();\n\nexport { PixelRatio as default };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport css from '../StyleSheet/css';\nimport { getAssetByID } from '../../modules/AssetRegistry';\nimport resolveShadowValue from '../StyleSheet/resolveShadowValue';\nimport ImageLoader from '../../modules/ImageLoader';\nimport PixelRatio from '../PixelRatio';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from '../Text/TextAncestorContext';\nimport View from '../View';\nvar ERRORED = 'ERRORED';\nvar LOADED = 'LOADED';\nvar LOADING = 'LOADING';\nvar IDLE = 'IDLE';\nvar _filterId = 0;\nvar svgDataUriPattern = /^(data:image\\/svg\\+xml;utf8,)(.*)/;\n\nfunction createTintColorSVG(tintColor, id) {\n return tintColor && id != null ? /*#__PURE__*/React.createElement(\"svg\", {\n style: {\n position: 'absolute',\n height: 0,\n visibility: 'hidden',\n width: 0\n }\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"tint-\" + id,\n suppressHydrationWarning: true\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodColor: \"\" + tintColor,\n key: tintColor\n }), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"SourceAlpha\",\n operator: \"atop\"\n })))) : null;\n}\n\nfunction getFlatStyle(style, blurRadius, filterId) {\n var flatStyle = _objectSpread({}, StyleSheet.flatten(style));\n\n var filter = flatStyle.filter,\n resizeMode = flatStyle.resizeMode,\n shadowOffset = flatStyle.shadowOffset,\n tintColor = flatStyle.tintColor; // Add CSS filters\n // React Native exposes these features as props and proprietary styles\n\n var filters = [];\n var _filter = null;\n\n if (filter) {\n filters.push(filter);\n }\n\n if (blurRadius) {\n filters.push(\"blur(\" + blurRadius + \"px)\");\n }\n\n if (shadowOffset) {\n var shadowString = resolveShadowValue(flatStyle);\n\n if (shadowString) {\n filters.push(\"drop-shadow(\" + shadowString + \")\");\n }\n }\n\n if (tintColor && filterId != null) {\n filters.push(\"url(#tint-\" + filterId + \")\");\n }\n\n if (filters.length > 0) {\n _filter = filters.join(' ');\n } // These styles are converted to CSS filters applied to the\n // element displaying the background image.\n\n\n delete flatStyle.blurRadius;\n delete flatStyle.shadowColor;\n delete flatStyle.shadowOpacity;\n delete flatStyle.shadowOffset;\n delete flatStyle.shadowRadius;\n delete flatStyle.tintColor; // These styles are not supported on View\n\n delete flatStyle.overlayColor;\n delete flatStyle.resizeMode;\n return [flatStyle, resizeMode, _filter, tintColor];\n}\n\nfunction resolveAssetDimensions(source) {\n if (typeof source === 'number') {\n var _getAssetByID = getAssetByID(source),\n _height = _getAssetByID.height,\n _width = _getAssetByID.width;\n\n return {\n height: _height,\n width: _width\n };\n } else if (source != null && !Array.isArray(source) && typeof source === 'object') {\n var _height2 = source.height,\n _width2 = source.width;\n return {\n height: _height2,\n width: _width2\n };\n }\n}\n\nfunction resolveAssetUri(source) {\n var uri = null;\n\n if (typeof source === 'number') {\n // get the URI from the packager\n var asset = getAssetByID(source);\n var scale = asset.scales[0];\n\n if (asset.scales.length > 1) {\n var preferredScale = PixelRatio.get(); // Get the scale which is closest to the preferred scale\n\n scale = asset.scales.reduce(function (prev, curr) {\n return Math.abs(curr - preferredScale) < Math.abs(prev - preferredScale) ? curr : prev;\n });\n }\n\n var scaleSuffix = scale !== 1 ? \"@\" + scale + \"x\" : '';\n uri = asset ? asset.httpServerLocation + \"/\" + asset.name + scaleSuffix + \".\" + asset.type : '';\n } else if (typeof source === 'string') {\n uri = source;\n } else if (source && typeof source.uri === 'string') {\n uri = source.uri;\n }\n\n if (uri) {\n var match = uri.match(svgDataUriPattern); // inline SVG markup may contain characters (e.g., #, \") that need to be escaped\n\n if (match) {\n var prefix = match[1],\n svg = match[2];\n var encodedSvg = encodeURIComponent(svg);\n return \"\" + prefix + encodedSvg;\n }\n }\n\n return uri;\n}\n\nvar Image = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var accessibilityLabel = props.accessibilityLabel,\n blurRadius = props.blurRadius,\n defaultSource = props.defaultSource,\n draggable = props.draggable,\n onError = props.onError,\n onLayout = props.onLayout,\n onLoad = props.onLoad,\n onLoadEnd = props.onLoadEnd,\n onLoadStart = props.onLoadStart,\n pointerEvents = props.pointerEvents,\n source = props.source,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, [\"accessibilityLabel\", \"blurRadius\", \"defaultSource\", \"draggable\", \"onError\", \"onLayout\", \"onLoad\", \"onLoadEnd\", \"onLoadStart\", \"pointerEvents\", \"source\", \"style\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (props.children) {\n throw new Error('The component cannot contain children. If you want to render content on top of the image, consider using the component or absolute positioning.');\n }\n }\n\n var _React$useState = React.useState(function () {\n var uri = resolveAssetUri(source);\n\n if (uri != null) {\n var isLoaded = ImageLoader.has(uri);\n\n if (isLoaded) {\n return LOADED;\n }\n }\n\n return IDLE;\n }),\n state = _React$useState[0],\n updateState = _React$useState[1];\n\n var _React$useState2 = React.useState({}),\n layout = _React$useState2[0],\n updateLayout = _React$useState2[1];\n\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hiddenImageRef = React.useRef(null);\n var filterRef = React.useRef(_filterId++);\n var requestRef = React.useRef(null);\n var shouldDisplaySource = state === LOADED || state === LOADING && defaultSource == null;\n\n var _getFlatStyle = getFlatStyle(style, blurRadius, filterRef.current),\n flatStyle = _getFlatStyle[0],\n _resizeMode = _getFlatStyle[1],\n filter = _getFlatStyle[2],\n tintColor = _getFlatStyle[3];\n\n var resizeMode = props.resizeMode || _resizeMode || 'cover';\n var selectedSource = shouldDisplaySource ? source : defaultSource;\n var displayImageUri = resolveAssetUri(selectedSource);\n var imageSizeStyle = resolveAssetDimensions(selectedSource);\n var backgroundImage = displayImageUri ? \"url(\\\"\" + displayImageUri + \"\\\")\" : null;\n var backgroundSize = getBackgroundSize(); // Accessibility image allows users to trigger the browser's image context menu\n\n var hiddenImage = displayImageUri ? createElement('img', {\n alt: accessibilityLabel || '',\n classList: [classes.accessibilityImage],\n draggable: draggable || false,\n ref: hiddenImageRef,\n src: displayImageUri\n }) : null;\n\n function getBackgroundSize() {\n if (hiddenImageRef.current != null && (resizeMode === 'center' || resizeMode === 'repeat')) {\n var _hiddenImageRef$curre = hiddenImageRef.current,\n naturalHeight = _hiddenImageRef$curre.naturalHeight,\n naturalWidth = _hiddenImageRef$curre.naturalWidth;\n var _height3 = layout.height,\n _width3 = layout.width;\n\n if (naturalHeight && naturalWidth && _height3 && _width3) {\n var scaleFactor = Math.min(1, _width3 / naturalWidth, _height3 / naturalHeight);\n var x = Math.ceil(scaleFactor * naturalWidth);\n var y = Math.ceil(scaleFactor * naturalHeight);\n return x + \"px \" + y + \"px\";\n }\n }\n }\n\n function handleLayout(e) {\n if (resizeMode === 'center' || resizeMode === 'repeat' || onLayout) {\n var _layout = e.nativeEvent.layout;\n onLayout && onLayout(e);\n updateLayout(_layout);\n }\n } // Image loading\n\n\n var uri = resolveAssetUri(source);\n React.useEffect(function () {\n abortPendingRequest();\n\n if (uri != null) {\n updateState(LOADING);\n\n if (onLoadStart) {\n onLoadStart();\n }\n\n requestRef.current = ImageLoader.load(uri, function load(e) {\n updateState(LOADED);\n\n if (onLoad) {\n onLoad(e);\n }\n\n if (onLoadEnd) {\n onLoadEnd();\n }\n }, function error() {\n updateState(ERRORED);\n\n if (onError) {\n onError({\n nativeEvent: {\n error: \"Failed to load resource \" + uri + \" (404)\"\n }\n });\n }\n\n if (onLoadEnd) {\n onLoadEnd();\n }\n });\n }\n\n function abortPendingRequest() {\n if (requestRef.current != null) {\n ImageLoader.abort(requestRef.current);\n requestRef.current = null;\n }\n }\n\n return abortPendingRequest;\n }, [uri, requestRef, updateState, onError, onLoad, onLoadEnd, onLoadStart]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n accessibilityLabel: accessibilityLabel,\n onLayout: handleLayout,\n pointerEvents: pointerEvents,\n ref: ref,\n style: [styles.root, hasTextAncestor && styles.inline, imageSizeStyle, flatStyle]\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.image, resizeModeStyles[resizeMode], {\n backgroundImage: backgroundImage,\n filter: filter\n }, backgroundSize != null && {\n backgroundSize: backgroundSize\n }],\n suppressHydrationWarning: true\n }), hiddenImage, createTintColorSVG(tintColor, filterRef.current));\n});\nImage.displayName = 'Image'; // $FlowIgnore: This is the correct type, but casting makes it unhappy since the variables aren't defined yet\n\nvar ImageWithStatics = Image;\n\nImageWithStatics.getSize = function (uri, success, failure) {\n ImageLoader.getSize(uri, success, failure);\n};\n\nImageWithStatics.prefetch = function (uri) {\n return ImageLoader.prefetch(uri);\n};\n\nImageWithStatics.queryCache = function (uris) {\n return ImageLoader.queryCache(uris);\n};\n\nvar classes = css.create({\n accessibilityImage: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n opacity: 0,\n width: '100%',\n zIndex: -1\n })\n});\nvar styles = StyleSheet.create({\n root: {\n flexBasis: 'auto',\n overflow: 'hidden',\n zIndex: 0\n },\n inline: {\n display: 'inline-flex'\n },\n image: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n backgroundColor: 'transparent',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n height: '100%',\n width: '100%',\n zIndex: -1\n })\n});\nvar resizeModeStyles = StyleSheet.create({\n center: {\n backgroundSize: 'auto'\n },\n contain: {\n backgroundSize: 'contain'\n },\n cover: {\n backgroundSize: 'cover'\n },\n none: {\n backgroundPosition: '0 0',\n backgroundSize: 'auto'\n },\n repeat: {\n backgroundPosition: '0 0',\n backgroundRepeat: 'repeat',\n backgroundSize: 'auto'\n },\n stretch: {\n backgroundSize: '100% 100%'\n }\n});\nexport default ImageWithStatics;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport Image from '../../../../exports/Image';\nimport createAnimatedComponent from '../createAnimatedComponent';\nexport default createAnimatedComponent(Image, {\n collapsable: false\n});","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport ScrollView from '../../../../exports/ScrollView';\nimport createAnimatedComponent from '../createAnimatedComponent';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nvar ScrollViewWithEventThrottle = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(ScrollView, _extends({\n scrollEventThrottle: 0.0001\n }, props, {\n ref: ref\n }));\n});\nexport default createAnimatedComponent(ScrollViewWithEventThrottle, {\n collapsable: false\n});","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport * as React from 'react';\nimport View from '../../../exports/View';\nimport VirtualizedList from '../VirtualizedList';\nimport invariant from 'fbjs/lib/invariant';\n\n/**\n * Right now this just flattens everything into one list and uses VirtualizedList under the\n * hood. The only operation that might not scale well is concatting the data arrays of all the\n * sections when new props are received, which should be plenty fast for up to ~10,000 items.\n */\nvar VirtualizedSectionList = /*#__PURE__*/function (_React$PureComponent) {\n _inheritsLoose(VirtualizedSectionList, _React$PureComponent);\n\n function VirtualizedSectionList() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;\n\n _this._getItem = function (props, sections, index) {\n if (!sections) {\n return null;\n }\n\n var itemIdx = index - 1;\n\n for (var i = 0; i < sections.length; i++) {\n var section = sections[i];\n var sectionData = section.data;\n var itemCount = props.getItemCount(sectionData);\n\n if (itemIdx === -1 || itemIdx === itemCount) {\n // We intend for there to be overflow by one on both ends of the list.\n // This will be for headers and footers. When returning a header or footer\n // item the section itself is the item.\n return section;\n } else if (itemIdx < itemCount) {\n // If we are in the bounds of the list's data then return the item.\n return props.getItem(sectionData, itemIdx);\n } else {\n itemIdx -= itemCount + 2; // Add two for the header and footer\n }\n }\n\n return null;\n };\n\n _this._keyExtractor = function (item, index) {\n var info = _this._subExtractor(index);\n\n return info && info.key || String(index);\n };\n\n _this._convertViewable = function (viewable) {\n invariant(viewable.index != null, 'Received a broken ViewToken');\n\n var info = _this._subExtractor(viewable.index);\n\n if (!info) {\n return null;\n }\n\n var keyExtractor = info.section.keyExtractor || _this.props.keyExtractor;\n return _objectSpread(_objectSpread({}, viewable), {}, {\n index: info.index,\n\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.63 was deployed. To see the error delete this\n * comment and run Flow. */\n key: keyExtractor(viewable.item, info.index),\n section: info.section\n });\n };\n\n _this._onViewableItemsChanged = function (_ref) {\n var viewableItems = _ref.viewableItems,\n changed = _ref.changed;\n var onViewableItemsChanged = _this.props.onViewableItemsChanged;\n\n if (onViewableItemsChanged != null) {\n onViewableItemsChanged({\n viewableItems: viewableItems.map(_this._convertViewable, _assertThisInitialized(_this)).filter(Boolean),\n changed: changed.map(_this._convertViewable, _assertThisInitialized(_this)).filter(Boolean)\n });\n }\n };\n\n _this._renderItem = function (listItemCount) {\n return function (_ref2) {\n var item = _ref2.item,\n index = _ref2.index;\n\n var info = _this._subExtractor(index);\n\n if (!info) {\n return null;\n }\n\n var infoIndex = info.index;\n\n if (infoIndex == null) {\n var section = info.section;\n\n if (info.header === true) {\n var renderSectionHeader = _this.props.renderSectionHeader;\n return renderSectionHeader ? renderSectionHeader({\n section: section\n }) : null;\n } else {\n var renderSectionFooter = _this.props.renderSectionFooter;\n return renderSectionFooter ? renderSectionFooter({\n section: section\n }) : null;\n }\n } else {\n var renderItem = info.section.renderItem || _this.props.renderItem;\n\n var SeparatorComponent = _this._getSeparatorComponent(index, info, listItemCount);\n\n invariant(renderItem, 'no renderItem!');\n return /*#__PURE__*/React.createElement(ItemWithSeparator, {\n SeparatorComponent: SeparatorComponent,\n LeadingSeparatorComponent: infoIndex === 0 ? _this.props.SectionSeparatorComponent : undefined,\n cellKey: info.key,\n index: infoIndex,\n item: item,\n leadingItem: info.leadingItem,\n leadingSection: info.leadingSection,\n onUpdateSeparator: _this._onUpdateSeparator,\n prevCellKey: (_this._subExtractor(index - 1) || {}).key,\n ref: function ref(_ref3) {\n _this._cellRefs[info.key] = _ref3;\n },\n renderItem: renderItem,\n section: info.section,\n trailingItem: info.trailingItem,\n trailingSection: info.trailingSection,\n inverted: !!_this.props.inverted\n });\n }\n };\n };\n\n _this._onUpdateSeparator = function (key, newProps) {\n var ref = _this._cellRefs[key];\n ref && ref.updateSeparatorProps(newProps);\n };\n\n _this._cellRefs = {};\n\n _this._captureRef = function (ref) {\n _this._listRef = ref;\n };\n\n return _this;\n }\n\n var _proto = VirtualizedSectionList.prototype;\n\n _proto.scrollToLocation = function scrollToLocation(params) {\n var index = params.itemIndex;\n\n for (var i = 0; i < params.sectionIndex; i++) {\n index += this.props.getItemCount(this.props.sections[i].data) + 2;\n }\n\n var viewOffset = params.viewOffset || 0;\n\n if (this._listRef == null) {\n return;\n }\n\n if (params.itemIndex > 0 && this.props.stickySectionHeadersEnabled) {\n // $FlowFixMe[prop-missing] Cannot access private property\n var frame = this._listRef._getFrameMetricsApprox(index - params.itemIndex);\n\n viewOffset += frame.length;\n }\n\n var toIndexParams = _objectSpread(_objectSpread({}, params), {}, {\n viewOffset: viewOffset,\n index: index\n });\n\n this._listRef.scrollToIndex(toIndexParams);\n };\n\n _proto.getListRef = function getListRef() {\n return this._listRef;\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n ItemSeparatorComponent = _this$props.ItemSeparatorComponent,\n SectionSeparatorComponent = _this$props.SectionSeparatorComponent,\n _renderItem = _this$props.renderItem,\n renderSectionFooter = _this$props.renderSectionFooter,\n renderSectionHeader = _this$props.renderSectionHeader,\n _sections = _this$props.sections,\n stickySectionHeadersEnabled = _this$props.stickySectionHeadersEnabled,\n passThroughProps = _objectWithoutPropertiesLoose(_this$props, [\"ItemSeparatorComponent\", \"SectionSeparatorComponent\", \"renderItem\", \"renderSectionFooter\", \"renderSectionHeader\", \"sections\", \"stickySectionHeadersEnabled\"]);\n\n var listHeaderOffset = this.props.ListHeaderComponent ? 1 : 0;\n var stickyHeaderIndices = this.props.stickySectionHeadersEnabled ? [] : undefined;\n var itemCount = 0;\n\n for (var _iterator = _createForOfIteratorHelperLoose(this.props.sections), _step; !(_step = _iterator()).done;) {\n var section = _step.value;\n\n // Track the section header indices\n if (stickyHeaderIndices != null) {\n stickyHeaderIndices.push(itemCount + listHeaderOffset);\n } // Add two for the section header and footer.\n\n\n itemCount += 2;\n itemCount += this.props.getItemCount(section.data);\n }\n\n var renderItem = this._renderItem(itemCount);\n\n return /*#__PURE__*/React.createElement(VirtualizedList, _extends({}, passThroughProps, {\n keyExtractor: this._keyExtractor,\n stickyHeaderIndices: stickyHeaderIndices,\n renderItem: renderItem,\n data: this.props.sections,\n getItem: function getItem(sections, index) {\n return _this2._getItem(_this2.props, sections, index);\n },\n getItemCount: function getItemCount() {\n return itemCount;\n },\n onViewableItemsChanged: this.props.onViewableItemsChanged ? this._onViewableItemsChanged : undefined,\n ref: this._captureRef\n }));\n };\n\n _proto._subExtractor = function _subExtractor(index) {\n var itemIndex = index;\n var _this$props2 = this.props,\n getItem = _this$props2.getItem,\n getItemCount = _this$props2.getItemCount,\n keyExtractor = _this$props2.keyExtractor,\n sections = _this$props2.sections;\n\n for (var i = 0; i < sections.length; i++) {\n var section = sections[i];\n var sectionData = section.data;\n var key = section.key || String(i);\n itemIndex -= 1; // The section adds an item for the header\n\n if (itemIndex >= getItemCount(sectionData) + 1) {\n itemIndex -= getItemCount(sectionData) + 1; // The section adds an item for the footer.\n } else if (itemIndex === -1) {\n return {\n section: section,\n key: key + ':header',\n index: null,\n header: true,\n trailingSection: sections[i + 1]\n };\n } else if (itemIndex === getItemCount(sectionData)) {\n return {\n section: section,\n key: key + ':footer',\n index: null,\n header: false,\n trailingSection: sections[i + 1]\n };\n } else {\n var extractor = section.keyExtractor || keyExtractor;\n return {\n section: section,\n key: key + ':' + extractor(getItem(sectionData, itemIndex), itemIndex),\n index: itemIndex,\n leadingItem: getItem(sectionData, itemIndex - 1),\n leadingSection: sections[i - 1],\n trailingItem: getItem(sectionData, itemIndex + 1),\n trailingSection: sections[i + 1]\n };\n }\n }\n };\n\n _proto._getSeparatorComponent = function _getSeparatorComponent(index, info, listItemCount) {\n info = info || this._subExtractor(index);\n\n if (!info) {\n return null;\n }\n\n var ItemSeparatorComponent = info.section.ItemSeparatorComponent || this.props.ItemSeparatorComponent;\n var SectionSeparatorComponent = this.props.SectionSeparatorComponent;\n var isLastItemInList = index === listItemCount - 1;\n var isLastItemInSection = info.index === this.props.getItemCount(info.section.data) - 1;\n\n if (SectionSeparatorComponent && isLastItemInSection) {\n return SectionSeparatorComponent;\n }\n\n if (ItemSeparatorComponent && !isLastItemInSection && !isLastItemInList) {\n return ItemSeparatorComponent;\n }\n\n return null;\n };\n\n return VirtualizedSectionList;\n}(React.PureComponent);\n\nVirtualizedSectionList.defaultProps = _objectSpread(_objectSpread({}, VirtualizedList.defaultProps), {}, {\n data: []\n});\n\nvar ItemWithSeparator = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ItemWithSeparator, _React$Component);\n\n function ItemWithSeparator() {\n var _this3;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this3 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this3.state = {\n separatorProps: {\n highlighted: false,\n leadingItem: _this3.props.item,\n leadingSection: _this3.props.leadingSection,\n section: _this3.props.section,\n trailingItem: _this3.props.trailingItem,\n trailingSection: _this3.props.trailingSection\n },\n leadingSeparatorProps: {\n highlighted: false,\n leadingItem: _this3.props.leadingItem,\n leadingSection: _this3.props.leadingSection,\n section: _this3.props.section,\n trailingItem: _this3.props.item,\n trailingSection: _this3.props.trailingSection\n }\n };\n _this3._separators = {\n highlight: function highlight() {\n ['leading', 'trailing'].forEach(function (s) {\n return _this3._separators.updateProps(s, {\n highlighted: true\n });\n });\n },\n unhighlight: function unhighlight() {\n ['leading', 'trailing'].forEach(function (s) {\n return _this3._separators.updateProps(s, {\n highlighted: false\n });\n });\n },\n updateProps: function updateProps(select, newProps) {\n var _this3$props = _this3.props,\n LeadingSeparatorComponent = _this3$props.LeadingSeparatorComponent,\n cellKey = _this3$props.cellKey,\n prevCellKey = _this3$props.prevCellKey;\n\n if (select === 'leading' && LeadingSeparatorComponent != null) {\n _this3.setState(function (state) {\n return {\n leadingSeparatorProps: _objectSpread(_objectSpread({}, state.leadingSeparatorProps), newProps)\n };\n });\n } else {\n _this3.props.onUpdateSeparator(select === 'leading' && prevCellKey || cellKey, newProps);\n }\n }\n };\n return _this3;\n }\n\n ItemWithSeparator.getDerivedStateFromProps = function getDerivedStateFromProps(props, prevState) {\n return {\n separatorProps: _objectSpread(_objectSpread({}, prevState.separatorProps), {}, {\n leadingItem: props.item,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.trailingItem,\n trailingSection: props.trailingSection\n }),\n leadingSeparatorProps: _objectSpread(_objectSpread({}, prevState.leadingSeparatorProps), {}, {\n leadingItem: props.leadingItem,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.item,\n trailingSection: props.trailingSection\n })\n };\n };\n\n var _proto2 = ItemWithSeparator.prototype;\n\n _proto2.updateSeparatorProps = function updateSeparatorProps(newProps) {\n this.setState(function (state) {\n return {\n separatorProps: _objectSpread(_objectSpread({}, state.separatorProps), newProps)\n };\n });\n };\n\n _proto2.render = function render() {\n var _this$props3 = this.props,\n LeadingSeparatorComponent = _this$props3.LeadingSeparatorComponent,\n SeparatorComponent = _this$props3.SeparatorComponent,\n item = _this$props3.item,\n index = _this$props3.index,\n section = _this$props3.section,\n inverted = _this$props3.inverted;\n var element = this.props.renderItem({\n item: item,\n index: index,\n section: section,\n separators: this._separators\n });\n var leadingSeparator = LeadingSeparatorComponent != null && /*#__PURE__*/React.createElement(LeadingSeparatorComponent, this.state.leadingSeparatorProps);\n var separator = SeparatorComponent != null && /*#__PURE__*/React.createElement(SeparatorComponent, this.state.separatorProps);\n return leadingSeparator || separator ? /*#__PURE__*/React.createElement(View, null, inverted === false ? leadingSeparator : separator, element, inverted === false ? separator : leadingSeparator) : element;\n };\n\n return ItemWithSeparator;\n}(React.Component);\n\nexport default VirtualizedSectionList;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Platform from '../../../exports/Platform';\nimport * as React from 'react';\nimport ScrollView from '../../../exports/ScrollView';\nimport VirtualizedSectionList from '../VirtualizedSectionList';\n\nvar defaultProps = _objectSpread(_objectSpread({}, VirtualizedSectionList.defaultProps), {}, {\n stickySectionHeadersEnabled: Platform.OS === 'ios'\n});\n\n/**\n * A performant interface for rendering sectioned lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Configurable viewability callbacks.\n * - List header support.\n * - List footer support.\n * - Item separator support.\n * - Section header support.\n * - Section separator support.\n * - Heterogeneous data and item rendering support.\n * - Pull to Refresh.\n * - Scroll loading.\n *\n * If you don't need section support and want a simpler interface, use\n * [``](/react-native/docs/flatlist.html).\n *\n * Simple Examples:\n *\n * }\n * renderSectionHeader={({section}) =>
}\n * sections={[ // homogeneous rendering between sections\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * ]}\n * />\n *\n * \n *\n * This is a convenience wrapper around [``](docs/virtualizedlist.html),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate and momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n */\nvar SectionList = /*#__PURE__*/function (_React$PureComponent) {\n _inheritsLoose(SectionList, _React$PureComponent);\n\n function SectionList() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;\n\n _this._captureRef = function (ref) {\n // $FlowFixMe\n _this._wrapperListRef = ref;\n };\n\n return _this;\n }\n\n var _proto = SectionList.prototype;\n\n /**\n * Scrolls to the item at the specified `sectionIndex` and `itemIndex` (within the section)\n * positioned in the viewable area such that `viewPosition` 0 places it at the top (and may be\n * covered by a sticky header), 1 at the bottom, and 0.5 centered in the middle. `viewOffset` is a\n * fixed number of pixels to offset the final target position, e.g. to compensate for sticky\n * headers.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n _proto.scrollToLocation = function scrollToLocation(params) {\n if (this._wrapperListRef != null) {\n this._wrapperListRef.scrollToLocation(params);\n }\n }\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n ;\n\n _proto.recordInteraction = function recordInteraction() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n listRef && listRef.recordInteraction();\n }\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n ;\n\n _proto.flashScrollIndicators = function flashScrollIndicators() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n listRef && listRef.flashScrollIndicators();\n }\n /**\n * Provides a handle to the underlying scroll responder.\n */\n ;\n\n _proto.getScrollResponder = function getScrollResponder() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n if (listRef) {\n return listRef.getScrollResponder();\n }\n };\n\n _proto.getScrollableNode = function getScrollableNode() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n if (listRef) {\n return listRef.getScrollableNode();\n }\n };\n\n _proto.setNativeProps = function setNativeProps(props) {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n if (listRef) {\n listRef.setNativeProps(props);\n }\n };\n\n _proto.render = function render() {\n return (\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.66.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.66 was deployed. To see the error delete this\n * comment and run Flow. */\n React.createElement(VirtualizedSectionList, _extends({}, this.props, {\n ref: this._captureRef,\n getItemCount: function getItemCount(items) {\n return items.length;\n },\n getItem: function getItem(items, index) {\n return items[index];\n }\n }))\n );\n };\n\n return SectionList;\n}(React.PureComponent);\n\nSectionList.defaultProps = defaultProps;\nexport default SectionList;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport SectionList from '../../vendor/react-native/SectionList';\nexport default SectionList;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport SectionList from '../../../../exports/SectionList';\nimport createAnimatedComponent from '../createAnimatedComponent';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nvar SectionListWithEventThrottle = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SectionList, _extends({\n scrollEventThrottle: 0.0001\n }, props, {\n ref: ref\n }));\n});\nexport default createAnimatedComponent(SectionListWithEventThrottle);","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport Text from '../../../../exports/Text';\nimport createAnimatedComponent from '../createAnimatedComponent';\nexport default createAnimatedComponent(Text, {\n collapsable: false\n});","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport View from '../../../../exports/View';\nimport createAnimatedComponent from '../createAnimatedComponent';\nexport default createAnimatedComponent(View, {\n collapsable: true\n});","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nvar AnimatedAddition = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedAddition, _AnimatedWithChildren);\n\n function AnimatedAddition(a, b) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n _this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n return _this;\n }\n\n var _proto = AnimatedAddition.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n return this._a.__getValue() + this._b.__getValue();\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__attach = function __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'addition',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n };\n\n return AnimatedAddition;\n}(AnimatedWithChildren);\n\nexport default AnimatedAddition;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nvar AnimatedDiffClamp = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedDiffClamp, _AnimatedWithChildren);\n\n function AnimatedDiffClamp(a, min, max) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._a = a;\n _this._min = min;\n _this._max = max;\n _this._value = _this._lastValue = _this._a.__getValue();\n return _this;\n }\n\n var _proto = AnimatedDiffClamp.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._a.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__getValue = function __getValue() {\n var value = this._a.__getValue();\n\n var diff = value - this._lastValue;\n this._lastValue = value;\n this._value = Math.min(Math.max(this._value + diff, this._min), this._max);\n return this._value;\n };\n\n _proto.__attach = function __attach() {\n this._a.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._a.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'diffclamp',\n input: this._a.__getNativeTag(),\n min: this._min,\n max: this._max\n };\n };\n\n return AnimatedDiffClamp;\n}(AnimatedWithChildren);\n\nexport default AnimatedDiffClamp;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nvar AnimatedDivision = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedDivision, _AnimatedWithChildren);\n\n function AnimatedDivision(a, b) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._warnedAboutDivideByZero = false;\n\n if (b === 0 || b instanceof AnimatedNode && b.__getValue() === 0) {\n console.error('Detected potential division by zero in AnimatedDivision');\n }\n\n _this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n _this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n return _this;\n }\n\n var _proto = AnimatedDivision.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n var a = this._a.__getValue();\n\n var b = this._b.__getValue();\n\n if (b === 0) {\n // Prevent spamming the console/LogBox\n if (!this._warnedAboutDivideByZero) {\n console.error('Detected division by zero in AnimatedDivision');\n this._warnedAboutDivideByZero = true;\n } // Passing infinity/NaN to Fabric will cause a native crash\n\n\n return 0;\n }\n\n this._warnedAboutDivideByZero = false;\n return a / b;\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__attach = function __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'division',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n };\n\n return AnimatedDivision;\n}(AnimatedWithChildren);\n\nexport default AnimatedDivision;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nvar AnimatedModulo = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedModulo, _AnimatedWithChildren);\n\n function AnimatedModulo(a, modulus) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._a = a;\n _this._modulus = modulus;\n return _this;\n }\n\n var _proto = AnimatedModulo.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._a.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n return (this._a.__getValue() % this._modulus + this._modulus) % this._modulus;\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__attach = function __attach() {\n this._a.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._a.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'modulus',\n input: this._a.__getNativeTag(),\n modulus: this._modulus\n };\n };\n\n return AnimatedModulo;\n}(AnimatedWithChildren);\n\nexport default AnimatedModulo;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nvar AnimatedMultiplication = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedMultiplication, _AnimatedWithChildren);\n\n function AnimatedMultiplication(a, b) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n _this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n return _this;\n }\n\n var _proto = AnimatedMultiplication.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n return this._a.__getValue() * this._b.__getValue();\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__attach = function __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'multiplication',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n };\n\n return AnimatedMultiplication;\n}(AnimatedWithChildren);\n\nexport default AnimatedMultiplication;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nvar AnimatedSubtraction = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedSubtraction, _AnimatedWithChildren);\n\n function AnimatedSubtraction(a, b) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n _this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n return _this;\n }\n\n var _proto = AnimatedSubtraction.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n return this._a.__getValue() - this._b.__getValue();\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__attach = function __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'subtraction',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n };\n\n return AnimatedSubtraction;\n}(AnimatedWithChildren);\n\nexport default AnimatedSubtraction;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedNode from './AnimatedNode';\nimport { generateNewAnimationId, shouldUseNativeDriver } from '../NativeAnimatedHelper';\n\nvar AnimatedTracking = /*#__PURE__*/function (_AnimatedNode) {\n _inheritsLoose(AnimatedTracking, _AnimatedNode);\n\n function AnimatedTracking(value, parent, animationClass, animationConfig, callback) {\n var _this;\n\n _this = _AnimatedNode.call(this) || this;\n _this._value = value;\n _this._parent = parent;\n _this._animationClass = animationClass;\n _this._animationConfig = animationConfig;\n _this._useNativeDriver = shouldUseNativeDriver(animationConfig);\n _this._callback = callback;\n\n _this.__attach();\n\n return _this;\n }\n\n var _proto = AnimatedTracking.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this.__isNative = true;\n\n this._parent.__makeNative();\n\n _AnimatedNode.prototype.__makeNative.call(this);\n\n this._value.__makeNative();\n };\n\n _proto.__getValue = function __getValue() {\n return this._parent.__getValue();\n };\n\n _proto.__attach = function __attach() {\n this._parent.__addChild(this);\n\n if (this._useNativeDriver) {\n // when the tracking starts we need to convert this node to a \"native node\"\n // so that the parent node will be made \"native\" too. This is necessary as\n // if we don't do this `update` method will get called. At that point it\n // may be too late as it would mean the JS driver has already started\n // updating node values\n this.__makeNative();\n }\n };\n\n _proto.__detach = function __detach() {\n this._parent.__removeChild(this);\n\n _AnimatedNode.prototype.__detach.call(this);\n };\n\n _proto.update = function update() {\n this._value.animate(new this._animationClass(_objectSpread(_objectSpread({}, this._animationConfig), {}, {\n toValue: this._animationConfig.toValue.__getValue()\n })), this._callback);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n var animation = new this._animationClass(_objectSpread(_objectSpread({}, this._animationConfig), {}, {\n // remove toValue from the config as it's a ref to Animated.Value\n toValue: undefined\n }));\n\n var animationConfig = animation.__getNativeAnimationConfig();\n\n return {\n type: 'tracking',\n animationId: generateNewAnimationId(),\n animationConfig: animationConfig,\n toValue: this._parent.__getNativeTag(),\n value: this._value.__getNativeTag()\n };\n };\n\n return AnimatedTracking;\n}(AnimatedNode);\n\nexport default AnimatedTracking;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { AnimatedEvent, attachNativeEvent } from './AnimatedEvent';\nimport AnimatedAddition from './nodes/AnimatedAddition';\nimport AnimatedDiffClamp from './nodes/AnimatedDiffClamp';\nimport AnimatedDivision from './nodes/AnimatedDivision';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedModulo from './nodes/AnimatedModulo';\nimport AnimatedMultiplication from './nodes/AnimatedMultiplication';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport AnimatedSubtraction from './nodes/AnimatedSubtraction';\nimport AnimatedTracking from './nodes/AnimatedTracking';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\nimport DecayAnimation from './animations/DecayAnimation';\nimport SpringAnimation from './animations/SpringAnimation';\nimport TimingAnimation from './animations/TimingAnimation';\nimport createAnimatedComponent from './createAnimatedComponent';\n\nvar add = function add(a, b) {\n return new AnimatedAddition(a, b);\n};\n\nvar subtract = function subtract(a, b) {\n return new AnimatedSubtraction(a, b);\n};\n\nvar divide = function divide(a, b) {\n return new AnimatedDivision(a, b);\n};\n\nvar multiply = function multiply(a, b) {\n return new AnimatedMultiplication(a, b);\n};\n\nvar modulo = function modulo(a, modulus) {\n return new AnimatedModulo(a, modulus);\n};\n\nvar diffClamp = function diffClamp(a, min, max) {\n return new AnimatedDiffClamp(a, min, max);\n};\n\nvar _combineCallbacks = function _combineCallbacks(callback, config) {\n if (callback && config.onComplete) {\n return function () {\n config.onComplete && config.onComplete.apply(config, arguments);\n callback && callback.apply(void 0, arguments);\n };\n } else {\n return callback || config.onComplete;\n }\n};\n\nvar maybeVectorAnim = function maybeVectorAnim(value, config, anim) {\n if (value instanceof AnimatedValueXY) {\n var configX = _objectSpread({}, config);\n\n var configY = _objectSpread({}, config);\n\n for (var key in config) {\n var _config$key = config[key],\n x = _config$key.x,\n y = _config$key.y;\n\n if (x !== undefined && y !== undefined) {\n configX[key] = x;\n configY[key] = y;\n }\n }\n\n var aX = anim(value.x, configX);\n var aY = anim(value.y, configY); // We use `stopTogether: false` here because otherwise tracking will break\n // because the second animation will get stopped before it can update.\n\n return parallel([aX, aY], {\n stopTogether: false\n });\n }\n\n return null;\n};\n\nvar spring = function spring(value, config) {\n var _start = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(new AnimatedTracking(singleValue, configuration.toValue, SpringAnimation, singleConfig, callback));\n } else {\n singleValue.animate(new SpringAnimation(singleConfig), callback);\n }\n };\n\n return maybeVectorAnim(value, config, spring) || {\n start: function start(callback) {\n _start(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations: iterations\n });\n\n _start(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\n\nvar timing = function timing(value, config) {\n var _start2 = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(new AnimatedTracking(singleValue, configuration.toValue, TimingAnimation, singleConfig, callback));\n } else {\n singleValue.animate(new TimingAnimation(singleConfig), callback);\n }\n };\n\n return maybeVectorAnim(value, config, timing) || {\n start: function start(callback) {\n _start2(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations: iterations\n });\n\n _start2(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\n\nvar decay = function decay(value, config) {\n var _start3 = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n singleValue.animate(new DecayAnimation(singleConfig), callback);\n };\n\n return maybeVectorAnim(value, config, decay) || {\n start: function start(callback) {\n _start3(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations: iterations\n });\n\n _start3(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\n\nvar sequence = function sequence(animations) {\n var current = 0;\n return {\n start: function start(callback) {\n var onComplete = function onComplete(result) {\n if (!result.finished) {\n callback && callback(result);\n return;\n }\n\n current++;\n\n if (current === animations.length) {\n callback && callback(result);\n return;\n }\n\n animations[current].start(onComplete);\n };\n\n if (animations.length === 0) {\n callback && callback({\n finished: true\n });\n } else {\n animations[current].start(onComplete);\n }\n },\n stop: function stop() {\n if (current < animations.length) {\n animations[current].stop();\n }\n },\n reset: function reset() {\n animations.forEach(function (animation, idx) {\n if (idx <= current) {\n animation.reset();\n }\n });\n current = 0;\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.sequence animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return false;\n }\n };\n};\n\nvar parallel = function parallel(animations, config) {\n var doneCount = 0; // Make sure we only call stop() at most once for each animation\n\n var hasEnded = {};\n var stopTogether = !(config && config.stopTogether === false);\n var result = {\n start: function start(callback) {\n if (doneCount === animations.length) {\n callback && callback({\n finished: true\n });\n return;\n }\n\n animations.forEach(function (animation, idx) {\n var cb = function cb(endResult) {\n hasEnded[idx] = true;\n doneCount++;\n\n if (doneCount === animations.length) {\n doneCount = 0;\n callback && callback(endResult);\n return;\n }\n\n if (!endResult.finished && stopTogether) {\n result.stop();\n }\n };\n\n if (!animation) {\n cb({\n finished: true\n });\n } else {\n animation.start(cb);\n }\n });\n },\n stop: function stop() {\n animations.forEach(function (animation, idx) {\n !hasEnded[idx] && animation.stop();\n hasEnded[idx] = true;\n });\n },\n reset: function reset() {\n animations.forEach(function (animation, idx) {\n animation.reset();\n hasEnded[idx] = false;\n doneCount = 0;\n });\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.parallel animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return false;\n }\n };\n return result;\n};\n\nvar delay = function delay(time) {\n // Would be nice to make a specialized implementation\n return timing(new AnimatedValue(0), {\n toValue: 0,\n delay: time,\n duration: 0,\n useNativeDriver: false\n });\n};\n\nvar stagger = function stagger(time, animations) {\n return parallel(animations.map(function (animation, i) {\n return sequence([delay(time * i), animation]);\n }));\n};\n\nvar loop = function loop(animation, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$iterations = _ref.iterations,\n iterations = _ref$iterations === void 0 ? -1 : _ref$iterations,\n _ref$resetBeforeItera = _ref.resetBeforeIteration,\n resetBeforeIteration = _ref$resetBeforeItera === void 0 ? true : _ref$resetBeforeItera;\n\n var isFinished = false;\n var iterationsSoFar = 0;\n return {\n start: function start(callback) {\n var restart = function restart(result) {\n if (result === void 0) {\n result = {\n finished: true\n };\n }\n\n if (isFinished || iterationsSoFar === iterations || result.finished === false) {\n callback && callback(result);\n } else {\n iterationsSoFar++;\n resetBeforeIteration && animation.reset();\n animation.start(restart);\n }\n };\n\n if (!animation || iterations === 0) {\n callback && callback({\n finished: true\n });\n } else {\n if (animation._isUsingNativeDriver()) {\n animation._startNativeLoop(iterations);\n } else {\n restart(); // Start looping recursively on the js thread\n }\n }\n },\n stop: function stop() {\n isFinished = true;\n animation.stop();\n },\n reset: function reset() {\n iterationsSoFar = 0;\n isFinished = false;\n animation.reset();\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.loop animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return animation._isUsingNativeDriver();\n }\n };\n};\n\nfunction forkEvent(event, listener) {\n if (!event) {\n return listener;\n } else if (event instanceof AnimatedEvent) {\n event.__addListener(listener);\n\n return event;\n } else {\n return function () {\n typeof event === 'function' && event.apply(void 0, arguments);\n listener.apply(void 0, arguments);\n };\n }\n}\n\nfunction unforkEvent(event, listener) {\n if (event && event instanceof AnimatedEvent) {\n event.__removeListener(listener);\n }\n}\n\nvar event = function event(argMapping, config) {\n var animatedEvent = new AnimatedEvent(argMapping, config);\n\n if (animatedEvent.__isNative) {\n return animatedEvent;\n } else {\n return animatedEvent.__getHandler();\n }\n};\n/**\n * The `Animated` library is designed to make animations fluid, powerful, and\n * easy to build and maintain. `Animated` focuses on declarative relationships\n * between inputs and outputs, with configurable transforms in between, and\n * simple `start`/`stop` methods to control time-based animation execution.\n * If additional transforms are added, be sure to include them in\n * AnimatedMock.js as well.\n *\n * See https://reactnative.dev/docs/animated.html\n */\n\n\nexport default {\n /**\n * Standard value class for driving animations. Typically initialized with\n * `new Animated.Value(0);`\n *\n * See https://reactnative.dev/docs/animated.html#value\n */\n Value: AnimatedValue,\n\n /**\n * 2D value class for driving 2D animations, such as pan gestures.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html\n */\n ValueXY: AnimatedValueXY,\n\n /**\n * Exported to use the Interpolation type in flow.\n *\n * See https://reactnative.dev/docs/animated.html#interpolation\n */\n Interpolation: AnimatedInterpolation,\n\n /**\n * Exported for ease of type checking. All animated values derive from this\n * class.\n *\n * See https://reactnative.dev/docs/animated.html#node\n */\n Node: AnimatedNode,\n\n /**\n * Animates a value from an initial velocity to zero based on a decay\n * coefficient.\n *\n * See https://reactnative.dev/docs/animated.html#decay\n */\n decay: decay,\n\n /**\n * Animates a value along a timed easing curve. The Easing module has tons of\n * predefined curves, or you can use your own function.\n *\n * See https://reactnative.dev/docs/animated.html#timing\n */\n timing: timing,\n\n /**\n * Animates a value according to an analytical spring model based on\n * damped harmonic oscillation.\n *\n * See https://reactnative.dev/docs/animated.html#spring\n */\n spring: spring,\n\n /**\n * Creates a new Animated value composed from two Animated values added\n * together.\n *\n * See https://reactnative.dev/docs/animated.html#add\n */\n add: add,\n\n /**\n * Creates a new Animated value composed by subtracting the second Animated\n * value from the first Animated value.\n *\n * See https://reactnative.dev/docs/animated.html#subtract\n */\n subtract: subtract,\n\n /**\n * Creates a new Animated value composed by dividing the first Animated value\n * by the second Animated value.\n *\n * See https://reactnative.dev/docs/animated.html#divide\n */\n divide: divide,\n\n /**\n * Creates a new Animated value composed from two Animated values multiplied\n * together.\n *\n * See https://reactnative.dev/docs/animated.html#multiply\n */\n multiply: multiply,\n\n /**\n * Creates a new Animated value that is the (non-negative) modulo of the\n * provided Animated value.\n *\n * See https://reactnative.dev/docs/animated.html#modulo\n */\n modulo: modulo,\n\n /**\n * Create a new Animated value that is limited between 2 values. It uses the\n * difference between the last value so even if the value is far from the\n * bounds it will start changing when the value starts getting closer again.\n *\n * See https://reactnative.dev/docs/animated.html#diffclamp\n */\n diffClamp: diffClamp,\n\n /**\n * Starts an animation after the given delay.\n *\n * See https://reactnative.dev/docs/animated.html#delay\n */\n delay: delay,\n\n /**\n * Starts an array of animations in order, waiting for each to complete\n * before starting the next. If the current running animation is stopped, no\n * following animations will be started.\n *\n * See https://reactnative.dev/docs/animated.html#sequence\n */\n sequence: sequence,\n\n /**\n * Starts an array of animations all at the same time. By default, if one\n * of the animations is stopped, they will all be stopped. You can override\n * this with the `stopTogether` flag.\n *\n * See https://reactnative.dev/docs/animated.html#parallel\n */\n parallel: parallel,\n\n /**\n * Array of animations may run in parallel (overlap), but are started in\n * sequence with successive delays. Nice for doing trailing effects.\n *\n * See https://reactnative.dev/docs/animated.html#stagger\n */\n stagger: stagger,\n\n /**\n * Loops a given animation continuously, so that each time it reaches the\n * end, it resets and begins again from the start.\n *\n * See https://reactnative.dev/docs/animated.html#loop\n */\n loop: loop,\n\n /**\n * Takes an array of mappings and extracts values from each arg accordingly,\n * then calls `setValue` on the mapped outputs.\n *\n * See https://reactnative.dev/docs/animated.html#event\n */\n event: event,\n\n /**\n * Make any React component Animatable. Used to create `Animated.View`, etc.\n *\n * See https://reactnative.dev/docs/animated.html#createanimatedcomponent\n */\n createAnimatedComponent: createAnimatedComponent,\n\n /**\n * Imperative API to attach an animated value to an event on a view. Prefer\n * using `Animated.event` with `useNativeDrive: true` if possible.\n *\n * See https://reactnative.dev/docs/animated.html#attachnativeevent\n */\n attachNativeEvent: attachNativeEvent,\n\n /**\n * Advanced imperative API for snooping on animated events that are passed in\n * through props. Use values directly where possible.\n *\n * See https://reactnative.dev/docs/animated.html#forkevent\n */\n forkEvent: forkEvent,\n unforkEvent: unforkEvent,\n\n /**\n * Expose Event class, so it can be used as a type for type checkers.\n */\n Event: AnimatedEvent,\n __PropsOnlyForTests: AnimatedProps\n};","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { AnimatedEvent, attachNativeEvent } from './AnimatedEvent';\nimport AnimatedImplementation from './AnimatedImplementation';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\nimport createAnimatedComponent from './createAnimatedComponent';\nvar emptyAnimation = {\n start: function start() {},\n stop: function stop() {},\n reset: function reset() {},\n _startNativeLoop: function _startNativeLoop() {},\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return false;\n }\n};\n\nvar spring = function spring(value, config) {\n var anyValue = value;\n return _objectSpread(_objectSpread({}, emptyAnimation), {}, {\n start: function start(callback) {\n anyValue.setValue(config.toValue);\n callback && callback({\n finished: true\n });\n }\n });\n};\n\nvar timing = function timing(value, config) {\n var anyValue = value;\n return _objectSpread(_objectSpread({}, emptyAnimation), {}, {\n start: function start(callback) {\n anyValue.setValue(config.toValue);\n callback && callback({\n finished: true\n });\n }\n });\n};\n\nvar decay = function decay(value, config) {\n return emptyAnimation;\n};\n\nvar sequence = function sequence(animations) {\n return emptyAnimation;\n};\n\nvar parallel = function parallel(animations, config) {\n return emptyAnimation;\n};\n\nvar delay = function delay(time) {\n return emptyAnimation;\n};\n\nvar stagger = function stagger(time, animations) {\n return emptyAnimation;\n};\n\nvar loop = function loop(animation, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$iterations = _ref.iterations,\n iterations = _ref$iterations === void 0 ? -1 : _ref$iterations;\n\n return emptyAnimation;\n};\n\nvar event = function event(argMapping, config) {\n return null;\n};\n\nexport default {\n Value: AnimatedValue,\n ValueXY: AnimatedValueXY,\n Interpolation: AnimatedInterpolation,\n Node: AnimatedNode,\n decay: decay,\n timing: timing,\n spring: spring,\n add: AnimatedImplementation.add,\n subtract: AnimatedImplementation.subtract,\n divide: AnimatedImplementation.divide,\n multiply: AnimatedImplementation.multiply,\n modulo: AnimatedImplementation.modulo,\n diffClamp: AnimatedImplementation.diffClamp,\n delay: delay,\n sequence: sequence,\n parallel: parallel,\n stagger: stagger,\n loop: loop,\n event: event,\n createAnimatedComponent: createAnimatedComponent,\n attachNativeEvent: attachNativeEvent,\n forkEvent: AnimatedImplementation.forkEvent,\n unforkEvent: AnimatedImplementation.unforkEvent,\n Event: AnimatedEvent,\n __PropsOnlyForTests: AnimatedProps\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport Platform from '../../../exports/Platform';\nimport FlatList from './components/AnimatedFlatList';\nimport Image from './components/AnimatedImage';\nimport ScrollView from './components/AnimatedScrollView';\nimport SectionList from './components/AnimatedSectionList';\nimport Text from './components/AnimatedText';\nimport View from './components/AnimatedView';\nimport AnimatedMock from './AnimatedMock';\nimport AnimatedImplementation from './AnimatedImplementation';\nvar Animated = Platform.isTesting ? AnimatedMock : AnimatedImplementation;\nexport default _objectSpread({\n FlatList: FlatList,\n Image: Image,\n ScrollView: ScrollView,\n SectionList: SectionList,\n Text: Text,\n View: View\n}, Animated);","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport Animated from '../../vendor/react-native/Animated/Animated';\nexport default Animated;","/**\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 * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar RootTagContext = /*#__PURE__*/React.createContext(null);\nexport default function AppContainer(props) {\n var children = props.children,\n WrapperComponent = props.WrapperComponent;\n var innerView = /*#__PURE__*/React.createElement(View, {\n children: children,\n key: 1,\n pointerEvents: \"box-none\",\n style: styles.appContainer\n });\n\n if (WrapperComponent) {\n innerView = /*#__PURE__*/React.createElement(WrapperComponent, null, innerView);\n }\n\n return /*#__PURE__*/React.createElement(RootTagContext.Provider, {\n value: props.rootTag\n }, /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"box-none\",\n style: styles.appContainer\n }, innerView));\n}\nvar styles = StyleSheet.create({\n appContainer: {\n flex: 1\n }\n});","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport AppContainer from './AppContainer';\nimport invariant from 'fbjs/lib/invariant';\nimport render, { hydrate } from '../render';\nimport styleResolver from '../StyleSheet/styleResolver';\nimport React from 'react';\nexport default function renderApplication(RootComponent, WrapperComponent, callback, options) {\n var shouldHydrate = options.hydrate,\n initialProps = options.initialProps,\n rootTag = options.rootTag;\n var renderFn = shouldHydrate ? hydrate : render;\n invariant(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag);\n renderFn( /*#__PURE__*/React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n rootTag: rootTag\n }, /*#__PURE__*/React.createElement(RootComponent, initialProps)), rootTag, callback);\n}\nexport function getApplication(RootComponent, initialProps, WrapperComponent) {\n var element = /*#__PURE__*/React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n rootTag: {}\n }, /*#__PURE__*/React.createElement(RootComponent, initialProps)); // Don't escape CSS text\n\n var getStyleElement = function getStyleElement(props) {\n var sheet = styleResolver.getStyleSheet();\n return /*#__PURE__*/React.createElement(\"style\", _extends({}, props, {\n dangerouslySetInnerHTML: {\n __html: sheet.textContent\n },\n id: sheet.id\n }));\n };\n\n return {\n element: element,\n getStyleElement: getStyleElement\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport invariant from 'fbjs/lib/invariant';\nimport unmountComponentAtNode from '../unmountComponentAtNode';\nimport renderApplication, { getApplication as _getApplication } from './renderApplication';\nvar emptyObject = {};\nvar runnables = {};\n\nvar componentProviderInstrumentationHook = function componentProviderInstrumentationHook(component) {\n return component();\n};\n\nvar wrapperComponentProvider;\n/**\n * `AppRegistry` is the JS entry point to running all React Native apps.\n */\n\nvar AppRegistry = /*#__PURE__*/function () {\n function AppRegistry() {}\n\n AppRegistry.getAppKeys = function getAppKeys() {\n return Object.keys(runnables);\n };\n\n AppRegistry.getApplication = function getApplication(appKey, appParameters) {\n invariant(runnables[appKey] && runnables[appKey].getApplication, \"Application \" + appKey + \" has not been registered. \" + 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');\n return runnables[appKey].getApplication(appParameters);\n };\n\n AppRegistry.registerComponent = function registerComponent(appKey, componentProvider) {\n runnables[appKey] = {\n getApplication: function getApplication(appParameters) {\n return _getApplication(componentProviderInstrumentationHook(componentProvider), appParameters ? appParameters.initialProps : emptyObject, wrapperComponentProvider && wrapperComponentProvider(appParameters));\n },\n run: function run(appParameters) {\n return renderApplication(componentProviderInstrumentationHook(componentProvider), wrapperComponentProvider && wrapperComponentProvider(appParameters), appParameters.callback, {\n hydrate: appParameters.hydrate || false,\n initialProps: appParameters.initialProps || emptyObject,\n rootTag: appParameters.rootTag\n });\n }\n };\n return appKey;\n };\n\n AppRegistry.registerConfig = function registerConfig(config) {\n config.forEach(function (_ref) {\n var appKey = _ref.appKey,\n component = _ref.component,\n run = _ref.run;\n\n if (run) {\n AppRegistry.registerRunnable(appKey, run);\n } else {\n invariant(component, 'No component provider passed in');\n AppRegistry.registerComponent(appKey, component);\n }\n });\n } // TODO: fix style sheet creation when using this method\n ;\n\n AppRegistry.registerRunnable = function registerRunnable(appKey, run) {\n runnables[appKey] = {\n run: run\n };\n return appKey;\n };\n\n AppRegistry.runApplication = function runApplication(appKey, appParameters) {\n var isDevelopment = process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test';\n\n if (isDevelopment) {\n var params = _objectSpread({}, appParameters);\n\n params.rootTag = \"#\" + params.rootTag.id;\n console.log(\"Running application \\\"\" + appKey + \"\\\" with appParams:\\n\", params, \"\\nDevelopment-level warnings: \" + (isDevelopment ? 'ON' : 'OFF') + \".\" + (\"\\nPerformance optimizations: \" + (isDevelopment ? 'OFF' : 'ON') + \".\"));\n }\n\n invariant(runnables[appKey] && runnables[appKey].run, \"Application \\\"\" + appKey + \"\\\" has not been registered. \" + 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');\n runnables[appKey].run(appParameters);\n };\n\n AppRegistry.setComponentProviderInstrumentationHook = function setComponentProviderInstrumentationHook(hook) {\n componentProviderInstrumentationHook = hook;\n };\n\n AppRegistry.setWrapperComponentProvider = function setWrapperComponentProvider(provider) {\n wrapperComponentProvider = provider;\n };\n\n AppRegistry.unmountApplicationComponentAtRootTag = function unmountApplicationComponentAtRootTag(rootTag) {\n unmountComponentAtNode(rootTag);\n };\n\n return AppRegistry;\n}();\n\nexport { AppRegistry as default };","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport invariant from 'fbjs/lib/invariant';\nimport EventEmitter from '../../vendor/react-native/emitter/_EventEmitter'; // Android 4.4 browser\n\nvar isPrefixed = canUseDOM && !document.hasOwnProperty('hidden') && document.hasOwnProperty('webkitHidden');\nvar EVENT_TYPES = ['change', 'memoryWarning'];\nvar VISIBILITY_CHANGE_EVENT = isPrefixed ? 'webkitvisibilitychange' : 'visibilitychange';\nvar VISIBILITY_STATE_PROPERTY = isPrefixed ? 'webkitVisibilityState' : 'visibilityState';\nvar AppStates = {\n BACKGROUND: 'background',\n ACTIVE: 'active'\n};\nvar changeEmitter = null;\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 if (!changeEmitter) {\n changeEmitter = new EventEmitter();\n document.addEventListener(VISIBILITY_CHANGE_EVENT, function () {\n if (changeEmitter) {\n changeEmitter.emit('change', AppState.currentState);\n }\n }, false);\n }\n\n return changeEmitter.addListener(type, handler);\n }\n }\n };\n\n 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' && changeEmitter) {\n changeEmitter.removeListener(handler);\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 (navigator.languages) {\n return navigator.languages[0];\n } else {\n return navigator.language;\n }\n }\n },\n\n get totalMemory() {\n // $FlowIssue deviceMemory not defined in navigator\n return canUseDOM ? navigator.deviceMemory : undefined;\n },\n\n get userAgent() {\n return canUseDOM ? navigator.userAgent : '';\n }\n\n};\nexport default DeviceInfo;","/**\n * Copyright (c) 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) 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) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport invariant from 'fbjs/lib/invariant';\n\nvar Share = /*#__PURE__*/function () {\n function Share() {}\n\n Share.share = function share(content, options) {\n if (options === void 0) {\n options = {};\n }\n\n invariant(typeof content === 'object' && content !== null, 'Content to share must be a valid object');\n invariant(typeof content.url === 'string' || typeof content.message === 'string', 'At least one of URL and message is required');\n invariant(typeof options === 'object' && options !== null, 'Options must be a valid object');\n invariant(!content.title || typeof content.title === 'string', 'Invalid title: title should be a string.');\n\n if (window.navigator.share !== undefined) {\n return window.navigator.share({\n title: content.title,\n text: content.message,\n url: content.url\n });\n } else {\n return Promise.reject(new Error('Share is not supported in this browser'));\n }\n }\n /**\n * The content was successfully shared.\n */\n ;\n\n _createClass(Share, null, [{\n key: \"sharedAction\",\n get: function get() {\n return 'sharedAction';\n }\n /**\n * The dialog has been dismissed.\n * @platform ios\n */\n\n }, {\n key: \"dismissedAction\",\n get: function get() {\n return 'dismissedAction';\n }\n }]);\n\n return Share;\n}();\n\nexport default Share;","/**\n * Copyright (c) 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() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar accessibilityValue = {\n max: 1,\n min: 0\n};\n\nvar createSvgCircle = function createSvgCircle(style) {\n return /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"16\",\n cy: \"16\",\n fill: \"none\",\n r: \"14\",\n strokeWidth: \"4\",\n style: style\n });\n};\n\nvar ActivityIndicator = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var _props$animating = props.animating,\n animating = _props$animating === void 0 ? true : _props$animating,\n _props$color = props.color,\n color = _props$color === void 0 ? '#1976D2' : _props$color,\n _props$hidesWhenStopp = props.hidesWhenStopped,\n hidesWhenStopped = _props$hidesWhenStopp === void 0 ? true : _props$hidesWhenStopp,\n _props$size = props.size,\n size = _props$size === void 0 ? 'small' : _props$size,\n style = props.style,\n other = _objectWithoutPropertiesLoose(props, [\"animating\", \"color\", \"hidesWhenStopped\", \"size\", \"style\"]);\n\n var svg = /*#__PURE__*/React.createElement(\"svg\", {\n height: \"100%\",\n viewBox: \"0 0 32 32\",\n width: \"100%\"\n }, createSvgCircle({\n stroke: color,\n opacity: 0.2\n }), createSvgCircle({\n stroke: color,\n strokeDasharray: 80,\n strokeDashoffset: 60\n }));\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n accessibilityRole: \"progressbar\",\n accessibilityValue: accessibilityValue,\n ref: forwardedRef,\n style: [styles.container, style]\n }), /*#__PURE__*/React.createElement(View, {\n children: svg,\n style: [typeof size === 'number' ? {\n height: size,\n width: size\n } : indicatorSizes[size], styles.animation, !animating && styles.animationPause, !animating && hidesWhenStopped && styles.hidesWhenStopped]\n }));\n});\nActivityIndicator.displayName = 'ActivityIndicator';\nvar styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center'\n },\n hidesWhenStopped: {\n visibility: 'hidden'\n },\n animation: {\n animationDuration: '0.75s',\n animationKeyframes: [{\n '0%': {\n transform: [{\n rotate: '0deg'\n }]\n },\n '100%': {\n transform: [{\n rotate: '360deg'\n }]\n }\n }],\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite'\n },\n animationPause: {\n animationPlayState: 'paused'\n }\n});\nvar indicatorSizes = StyleSheet.create({\n small: {\n width: 20,\n height: 20\n },\n large: {\n width: 36,\n height: 36\n }\n});\nexport default ActivityIndicator;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar CheckBox = /*#__PURE__*/React.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() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) 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 { 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() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport View from '../View';\n\nvar KeyboardAvoidingView = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(KeyboardAvoidingView, _React$Component);\n\n function KeyboardAvoidingView() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.frame = null;\n\n _this.onLayout = function (event) {\n _this.frame = event.nativeEvent.layout;\n };\n\n return _this;\n }\n\n var _proto = KeyboardAvoidingView.prototype;\n\n _proto.relativeKeyboardHeight = function relativeKeyboardHeight(keyboardFrame) {\n var frame = this.frame;\n\n if (!frame || !keyboardFrame) {\n return 0;\n }\n\n var keyboardY = keyboardFrame.screenY - (this.props.keyboardVerticalOffset || 0);\n return Math.max(frame.y + frame.height - keyboardY, 0);\n };\n\n _proto.onKeyboardChange = function onKeyboardChange(event) {};\n\n _proto.render = function render() {\n var _this$props = this.props,\n behavior = _this$props.behavior,\n contentContainerStyle = _this$props.contentContainerStyle,\n keyboardVerticalOffset = _this$props.keyboardVerticalOffset,\n rest = _objectWithoutPropertiesLoose(_this$props, [\"behavior\", \"contentContainerStyle\", \"keyboardVerticalOffset\"]);\n\n return /*#__PURE__*/React.createElement(View, _extends({\n onLayout: this.onLayout\n }, rest));\n };\n\n return KeyboardAvoidingView;\n}(React.Component);\n\nexport default KeyboardAvoidingView;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport ReactDOM from 'react-dom';\n\nfunction ModalPortal(props) {\n var children = props.children;\n var elementRef = React.useRef(null);\n\n if (canUseDOM && !elementRef.current) {\n var element = document.createElement('div');\n\n if (element && document.body) {\n document.body.appendChild(element);\n elementRef.current = element;\n }\n }\n\n React.useEffect(function () {\n if (canUseDOM) {\n return function () {\n if (document.body && elementRef.current) {\n document.body.removeChild(elementRef.current);\n elementRef.current = null;\n }\n };\n }\n }, []);\n return elementRef.current && canUseDOM ? /*#__PURE__*/ReactDOM.createPortal(children, elementRef.current) : null;\n}\n\nexport default ModalPortal;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport createElement from '../createElement';\nvar ANIMATION_DURATION = 300;\n\nfunction getAnimationStyle(animationType, visible) {\n if (animationType === 'slide') {\n return visible ? animatedSlideInStyles : animatedSlideOutStyles;\n }\n\n if (animationType === 'fade') {\n return visible ? animatedFadeInStyles : animatedFadeOutStyles;\n }\n\n return visible ? styles.container : styles.hidden;\n}\n\nfunction ModalAnimation(props) {\n var animationType = props.animationType,\n children = props.children,\n onDismiss = props.onDismiss,\n onShow = props.onShow,\n visible = props.visible;\n\n var _React$useState = React.useState(false),\n isRendering = _React$useState[0],\n setIsRendering = _React$useState[1];\n\n var wasVisible = React.useRef(false);\n var isAnimated = animationType && animationType !== 'none';\n var animationEndCallback = React.useCallback(function (e) {\n if (e && e.currentTarget !== e.target) {\n // If the event was generated for something NOT this element we\n // should ignore it as it's not relevant to us\n return;\n }\n\n if (visible) {\n if (onShow) {\n onShow();\n }\n } else {\n setIsRendering(false);\n\n if (onDismiss) {\n onDismiss();\n }\n }\n }, [onDismiss, onShow, visible]);\n React.useEffect(function () {\n if (visible) {\n setIsRendering(true);\n }\n\n if (visible !== wasVisible.current && !isAnimated) {\n // Manually call `animationEndCallback` if no animation is used\n animationEndCallback();\n }\n\n wasVisible.current = visible;\n }, [isAnimated, visible, animationEndCallback]);\n return isRendering || visible ? createElement('div', {\n style: isRendering ? getAnimationStyle(animationType, visible) : styles.hidden,\n onAnimationEnd: animationEndCallback,\n children: children\n }) : null;\n}\n\nvar styles = StyleSheet.create({\n container: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: 9999\n },\n animatedIn: {\n animationDuration: ANIMATION_DURATION + \"ms\",\n animationTimingFunction: 'ease-in'\n },\n animatedOut: {\n pointerEvents: 'none',\n animationDuration: ANIMATION_DURATION + \"ms\",\n animationTimingFunction: 'ease-out'\n },\n fadeIn: {\n opacity: 1,\n animationKeyframes: {\n '0%': {\n opacity: 0\n },\n '100%': {\n opacity: 1\n }\n }\n },\n fadeOut: {\n opacity: 0,\n animationKeyframes: {\n '0%': {\n opacity: 1\n },\n '100%': {\n opacity: 0\n }\n }\n },\n slideIn: {\n transform: [{\n translateY: '0%'\n }],\n animationKeyframes: {\n '0%': {\n transform: [{\n translateY: '100%'\n }]\n },\n '100%': {\n transform: [{\n translateY: '0%'\n }]\n }\n }\n },\n slideOut: {\n transform: [{\n translateY: '100%'\n }],\n animationKeyframes: {\n '0%': {\n transform: [{\n translateY: '0%'\n }]\n },\n '100%': {\n transform: [{\n translateY: '100%'\n }]\n }\n }\n },\n hidden: {\n opacity: 0\n }\n});\nvar animatedSlideInStyles = [styles.container, styles.animatedIn, styles.slideIn];\nvar animatedSlideOutStyles = [styles.container, styles.animatedOut, styles.slideOut];\nvar animatedFadeInStyles = [styles.container, styles.animatedIn, styles.fadeIn];\nvar animatedFadeOutStyles = [styles.container, styles.animatedOut, styles.fadeOut];\nexport default ModalAnimation;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport View from '../View';\nimport StyleSheet from '../StyleSheet';\nvar ModalContent = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var active = props.active,\n children = props.children,\n onRequestClose = props.onRequestClose,\n transparent = props.transparent;\n React.useEffect(function () {\n if (canUseDOM) {\n var closeOnEscape = function closeOnEscape(e) {\n if (active && e.key === 'Escape') {\n e.stopPropagation();\n\n if (onRequestClose) {\n onRequestClose();\n }\n }\n };\n\n document.addEventListener('keyup', closeOnEscape, false);\n return function () {\n return document.removeEventListener('keyup', closeOnEscape, false);\n };\n }\n }, [active, onRequestClose]);\n var style = React.useMemo(function () {\n return [styles.modal, transparent ? styles.modalTransparent : styles.modalOpaque];\n }, [transparent]);\n return /*#__PURE__*/React.createElement(View, {\n accessibilityRole: active ? 'dialog' : null,\n \"aria-modal\": true,\n ref: forwardedRef,\n style: style\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.container\n }, children));\n});\nvar styles = StyleSheet.create({\n modal: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n modalTransparent: {\n backgroundColor: 'transparent'\n },\n modalOpaque: {\n backgroundColor: 'white'\n },\n container: {\n top: 0,\n flex: 1\n }\n});\nexport default ModalContent;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport View from '../View';\nimport createElement from '../createElement';\nimport StyleSheet from '../StyleSheet';\nimport UIManager from '../UIManager';\n/**\n * This Component is used to \"wrap\" the modal we're opening\n * so that changing focus via tab will never leave the document.\n *\n * This allows us to properly trap the focus within a modal\n * even if the modal is at the start or end of a document.\n */\n\nvar FocusBracket = function FocusBracket() {\n return createElement('div', {\n accessibilityRole: 'none',\n tabIndex: 0,\n style: styles.focusBracket\n });\n};\n\nfunction attemptFocus(element) {\n if (!canUseDOM) {\n return false;\n }\n\n try {\n element.focus();\n } catch (e) {// Do nothing\n }\n\n return document.activeElement === element;\n}\n\nfunction focusFirstDescendant(element) {\n for (var i = 0; i < element.childNodes.length; i++) {\n var child = element.childNodes[i];\n\n if (attemptFocus(child) || focusFirstDescendant(child)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction focusLastDescendant(element) {\n for (var i = element.childNodes.length - 1; i >= 0; i--) {\n var child = element.childNodes[i];\n\n if (attemptFocus(child) || focusLastDescendant(child)) {\n return true;\n }\n }\n\n return false;\n}\n\nvar ModalFocusTrap = function ModalFocusTrap(_ref) {\n var active = _ref.active,\n children = _ref.children;\n var trapElementRef = React.useRef();\n var focusRef = React.useRef({\n trapFocusInProgress: false,\n lastFocusedElement: null\n });\n React.useEffect(function () {\n if (canUseDOM) {\n var trapFocus = function trapFocus() {\n // We should not trap focus if:\n // - The modal hasn't fully initialized with an HTMLElement ref\n // - Focus is already in the process of being trapped (e.g., we're refocusing)\n // - isTrapActive prop being falsey tells us to do nothing\n if (trapElementRef.current == null || focusRef.current.trapFocusInProgress || !active) {\n return;\n }\n\n try {\n focusRef.current.trapFocusInProgress = true;\n\n if (document.activeElement instanceof Node && !trapElementRef.current.contains(document.activeElement)) {\n // To handle keyboard focusing we can make an assumption here.\n // If you're tabbing through the focusable elements, the previously\n // active element will either be the first or the last.\n // If the previously selected element is the \"first\" descendant\n // and we're leaving it - this means that we should be looping\n // around to the other side of the modal.\n var hasFocused = focusFirstDescendant(trapElementRef.current);\n\n if (focusRef.current.lastFocusedElement === document.activeElement) {\n hasFocused = focusLastDescendant(trapElementRef.current);\n } // If we couldn't focus a new element then we need to focus onto the trap target\n\n\n if (!hasFocused && trapElementRef.current != null && document.activeElement) {\n UIManager.focus(trapElementRef.current);\n }\n }\n } finally {\n focusRef.current.trapFocusInProgress = false;\n }\n\n focusRef.current.lastFocusedElement = document.activeElement;\n }; // Call the trapFocus callback at least once when this modal has been activated.\n\n\n trapFocus();\n document.addEventListener('focus', trapFocus, true);\n return function () {\n return document.removeEventListener('focus', trapFocus, true);\n };\n }\n }, [active]); // To be fully compliant with WCAG we need to refocus element that triggered opening modal\n // after closing it\n\n React.useEffect(function () {\n if (canUseDOM) {\n var lastFocusedElementOutsideTrap = document.activeElement;\n return function () {\n if (lastFocusedElementOutsideTrap && document.contains(lastFocusedElementOutsideTrap)) {\n UIManager.focus(lastFocusedElementOutsideTrap);\n }\n };\n }\n }, []);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FocusBracket, null), /*#__PURE__*/React.createElement(View, {\n ref: trapElementRef\n }, children), /*#__PURE__*/React.createElement(FocusBracket, null));\n};\n\nexport default ModalFocusTrap;\nvar styles = StyleSheet.create({\n focusBracket: {\n outlineStyle: 'none'\n }\n});","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport ModalPortal from './ModalPortal';\nimport ModalAnimation from './ModalAnimation';\nimport ModalContent from './ModalContent';\nimport ModalFocusTrap from './ModalFocusTrap';\nvar uniqueModalIdentifier = 0;\nvar activeModalStack = [];\nvar activeModalListeners = {};\n\nfunction notifyActiveModalListeners() {\n if (activeModalStack.length === 0) {\n return;\n }\n\n var activeModalId = activeModalStack[activeModalStack.length - 1];\n activeModalStack.forEach(function (modalId) {\n if (modalId in activeModalListeners) {\n activeModalListeners[modalId](modalId === activeModalId);\n }\n });\n}\n\nfunction removeActiveModal(modalId) {\n if (modalId in activeModalListeners) {\n // Before removing this listener we should probably tell it\n // that it's no longer the active modal for sure.\n activeModalListeners[modalId](false);\n delete activeModalListeners[modalId];\n }\n\n var index = activeModalStack.indexOf(modalId);\n\n if (index !== -1) {\n activeModalStack.splice(index, 1);\n notifyActiveModalListeners();\n }\n}\n\nfunction addActiveModal(modalId, listener) {\n removeActiveModal(modalId);\n activeModalStack.push(modalId);\n activeModalListeners[modalId] = listener;\n notifyActiveModalListeners();\n}\n\nvar Modal = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var animationType = props.animationType,\n children = props.children,\n onDismiss = props.onDismiss,\n onRequestClose = props.onRequestClose,\n onShow = props.onShow,\n transparent = props.transparent,\n _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible; // Set a unique model identifier so we can correctly route\n // dismissals and check the layering of modals.\n\n var modalId = React.useMemo(function () {\n return uniqueModalIdentifier++;\n }, []);\n\n var _React$useState = React.useState(false),\n isActive = _React$useState[0],\n setIsActive = _React$useState[1];\n\n var onDismissCallback = React.useCallback(function () {\n removeActiveModal(modalId);\n\n if (onDismiss) {\n onDismiss();\n }\n }, [modalId, onDismiss]);\n var onShowCallback = React.useCallback(function () {\n addActiveModal(modalId, setIsActive);\n\n if (onShow) {\n onShow();\n }\n }, [modalId, onShow]);\n React.useEffect(function () {\n return function () {\n return removeActiveModal(modalId);\n };\n }, [modalId]);\n return /*#__PURE__*/React.createElement(ModalPortal, null, /*#__PURE__*/React.createElement(ModalAnimation, {\n animationType: animationType,\n onDismiss: onDismissCallback,\n onShow: onShowCallback,\n visible: visible\n }, /*#__PURE__*/React.createElement(ModalFocusTrap, {\n active: isActive\n }, /*#__PURE__*/React.createElement(ModalContent, {\n active: isActive,\n onRequestClose: onRequestClose,\n ref: forwardedRef,\n transparent: transparent\n }, children))));\n});\nexport default Modal;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport PickerItem from './PickerItem';\nimport StyleSheet from '../StyleSheet';\nvar Picker = /*#__PURE__*/React.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 = React.useRef(null);\n\n function handleChange(e) {\n var _e$target = e.target,\n selectedIndex = _e$target.selectedIndex,\n value = _e$target.value;\n\n if (onValueChange) {\n onValueChange(value, selectedIndex);\n }\n } // $FlowFixMe\n\n\n var supportedProps = _objectSpread({\n children: 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/**\n * This can be used with any event type include custom events.\n *\n * const click = useEvent('click', options);\n * useEffect(() => {\n * click.setListener(target, onClick);\n * return () => click.clear();\n * }).\n */\nexport default function useEvent(event, options) {\n var targetListeners = useStable(function () {\n return new Map();\n });\n var addListener = useStable(function () {\n var addEventListener = createEventHandle(event, options);\n return function (target, callback) {\n var removeTargetListener = targetListeners.get(target);\n\n if (removeTargetListener != null) {\n removeTargetListener();\n }\n\n if (callback == null) {\n targetListeners.delete(target);\n }\n\n var removeEventListener = addEventListener(target, callback);\n targetListeners.set(target, removeEventListener);\n return removeEventListener;\n };\n });\n useLayoutEffect(function () {\n return function () {\n targetListeners.forEach(function (removeListener) {\n removeListener();\n });\n targetListeners.clear();\n };\n }, []);\n return addListener;\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { getModality } from '../modality';\nimport useEvent from '../useEvent';\nimport useLayoutEffect from '../useLayoutEffect';\n/**\n * Types\n */\n\n/**\n * Implementation\n */\nvar emptyObject = {};\nvar opts = {\n passive: true\n};\nvar lockEventType = 'react-gui:hover:lock';\nvar unlockEventType = 'react-gui:hover:unlock';\n\nvar supportsPointerEvent = function supportsPointerEvent() {\n return !!(typeof window !== 'undefined' && window.PointerEvent != null);\n};\n\nfunction dispatchCustomEvent(target, type, payload) {\n var event = document.createEvent('CustomEvent');\n\n var _ref = payload || emptyObject,\n _ref$bubbles = _ref.bubbles,\n bubbles = _ref$bubbles === void 0 ? true : _ref$bubbles,\n _ref$cancelable = _ref.cancelable,\n cancelable = _ref$cancelable === void 0 ? true : _ref$cancelable,\n detail = _ref.detail;\n\n event.initCustomEvent(type, bubbles, cancelable, detail);\n target.dispatchEvent(event);\n} // This accounts for the non-PointerEvent fallback events.\n\n\nfunction getPointerType(event) {\n var pointerType = event.pointerType;\n return pointerType != null ? pointerType : getModality();\n}\n\nexport default function useHover(targetRef, config) {\n var contain = config.contain,\n disabled = config.disabled,\n onHoverStart = config.onHoverStart,\n onHoverChange = config.onHoverChange,\n onHoverUpdate = config.onHoverUpdate,\n onHoverEnd = config.onHoverEnd;\n var canUsePE = supportsPointerEvent();\n var addMoveListener = useEvent(canUsePE ? 'pointermove' : 'mousemove', opts);\n var addEnterListener = useEvent(canUsePE ? 'pointerenter' : 'mouseenter', opts);\n var addLeaveListener = useEvent(canUsePE ? 'pointerleave' : 'mouseleave', opts); // These custom events are used to implement the \"contain\" prop.\n\n var addLockListener = useEvent(lockEventType, opts);\n var addUnlockListener = useEvent(unlockEventType, opts);\n useLayoutEffect(function () {\n var target = targetRef.current;\n\n if (target !== null) {\n /**\n * End the hover gesture\n */\n var hoverEnd = function hoverEnd(e) {\n if (onHoverEnd != null) {\n onHoverEnd(e);\n }\n\n if (onHoverChange != null) {\n onHoverChange(false);\n } // Remove the listeners once finished.\n\n\n addMoveListener(target, null);\n addLeaveListener(target, null);\n };\n /**\n * Leave element\n */\n\n\n var leaveListener = function leaveListener(e) {\n var target = targetRef.current;\n\n if (target != null && getPointerType(e) !== 'touch') {\n if (contain) {\n dispatchCustomEvent(target, unlockEventType);\n }\n\n hoverEnd(e);\n }\n };\n /**\n * Move within element\n */\n\n\n var moveListener = function moveListener(e) {\n if (getPointerType(e) !== 'touch') {\n if (onHoverUpdate != null) {\n // Not all browsers have these properties\n if (e.x == null) {\n e.x = e.clientX;\n }\n\n if (e.y == null) {\n e.y = e.clientY;\n }\n\n onHoverUpdate(e);\n }\n }\n };\n /**\n * Start the hover gesture\n */\n\n\n var hoverStart = function hoverStart(e) {\n if (onHoverStart != null) {\n onHoverStart(e);\n }\n\n if (onHoverChange != null) {\n onHoverChange(true);\n } // Set the listeners needed for the rest of the hover gesture.\n\n\n if (onHoverUpdate != null) {\n addMoveListener(target, !disabled ? moveListener : null);\n }\n\n addLeaveListener(target, !disabled ? leaveListener : null);\n };\n /**\n * Enter element\n */\n\n\n var enterListener = function enterListener(e) {\n var target = targetRef.current;\n\n if (target != null && getPointerType(e) !== 'touch') {\n if (contain) {\n dispatchCustomEvent(target, lockEventType);\n }\n\n hoverStart(e);\n\n var lockListener = function lockListener(lockEvent) {\n if (lockEvent.target !== target) {\n hoverEnd(e);\n }\n };\n\n var unlockListener = function unlockListener(lockEvent) {\n if (lockEvent.target !== target) {\n hoverStart(e);\n }\n };\n\n addLockListener(target, !disabled ? lockListener : null);\n addUnlockListener(target, !disabled ? unlockListener : null);\n }\n };\n\n addEnterListener(target, !disabled ? enterListener : null);\n }\n }, [addEnterListener, addMoveListener, addLeaveListener, addLockListener, addUnlockListener, contain, disabled, onHoverStart, onHoverChange, onHoverUpdate, onHoverEnd, targetRef]);\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from 'react';\nimport { forwardRef, memo, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport useHover from '../../modules/useHover';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\n/**\n * Component used to build display components that should respond to whether the\n * component is currently pressed or not.\n */\nfunction Pressable(props, forwardedRef) {\n var children = props.children,\n delayLongPress = props.delayLongPress,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n disabled = props.disabled,\n focusable = props.focusable,\n onBlur = props.onBlur,\n onContextMenu = props.onContextMenu,\n onFocus = props.onFocus,\n onHoverIn = props.onHoverIn,\n onHoverOut = props.onHoverOut,\n onKeyDown = props.onKeyDown,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressMove = props.onPressMove,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n style = props.style,\n testOnly_hovered = props.testOnly_hovered,\n testOnly_pressed = props.testOnly_pressed,\n rest = _objectWithoutPropertiesLoose(props, [\"children\", \"delayLongPress\", \"delayPressIn\", \"delayPressOut\", \"disabled\", \"focusable\", \"onBlur\", \"onContextMenu\", \"onFocus\", \"onHoverIn\", \"onHoverOut\", \"onKeyDown\", \"onLongPress\", \"onPress\", \"onPressMove\", \"onPressIn\", \"onPressOut\", \"style\", \"testOnly_hovered\", \"testOnly_pressed\"]);\n\n var _useForceableState = useForceableState(testOnly_hovered === true),\n hovered = _useForceableState[0],\n setHovered = _useForceableState[1];\n\n var _useForceableState2 = useForceableState(false),\n focused = _useForceableState2[0],\n setFocused = _useForceableState2[1];\n\n var _useForceableState3 = useForceableState(testOnly_pressed === true),\n pressed = _useForceableState3[0],\n setPressed = _useForceableState3[1];\n\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n var pressConfig = useMemo(function () {\n return {\n delayLongPress: delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n disabled: disabled,\n onLongPress: onLongPress,\n onPress: onPress,\n onPressChange: setPressed,\n onPressStart: onPressIn,\n onPressMove: onPressMove,\n onPressEnd: onPressOut\n };\n }, [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressMove, onPressOut, setPressed]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var onContextMenuPress = pressEventHandlers.onContextMenu,\n onKeyDownPress = pressEventHandlers.onKeyDown;\n useHover(hostRef, {\n contain: true,\n disabled: disabled,\n onHoverChange: setHovered,\n onHoverStart: onHoverIn,\n onHoverEnd: onHoverOut\n });\n var interactionState = {\n hovered: hovered,\n focused: focused,\n pressed: pressed\n };\n var blurHandler = React.useCallback(function (e) {\n if (disabled) {\n return;\n }\n\n if (e.nativeEvent.target === hostRef.current) {\n setFocused(false);\n\n if (onBlur != null) {\n onBlur(e);\n }\n }\n }, [disabled, hostRef, setFocused, onBlur]);\n var focusHandler = React.useCallback(function (e) {\n if (disabled) {\n return;\n }\n\n if (e.nativeEvent.target === hostRef.current) {\n setFocused(true);\n\n if (onFocus != null) {\n onFocus(e);\n }\n }\n }, [disabled, hostRef, setFocused, onFocus]);\n var contextMenuHandler = React.useCallback(function (e) {\n if (onContextMenuPress != null) {\n onContextMenuPress(e);\n }\n\n if (onContextMenu != null) {\n onContextMenu(e);\n }\n }, [onContextMenu, onContextMenuPress]);\n var keyDownHandler = React.useCallback(function (e) {\n if (onKeyDownPress != null) {\n onKeyDownPress(e);\n }\n\n if (onKeyDown != null) {\n onKeyDown(e);\n }\n }, [onKeyDown, onKeyDownPress]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n onBlur: blurHandler,\n onContextMenu: contextMenuHandler,\n onFocus: focusHandler,\n onKeyDown: keyDownHandler,\n ref: setRef,\n style: [!disabled && styles.root, typeof style === 'function' ? style(interactionState) : style]\n }), typeof children === 'function' ? children(interactionState) : children);\n}\n\nfunction useForceableState(forced) {\n var _useState = useState(false),\n bool = _useState[0],\n setBool = _useState[1];\n\n return [bool || forced, setBool];\n}\n\nvar styles = StyleSheet.create({\n root: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedPressable = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(Pressable));\nMemoedPressable.displayName = 'Pressable';\nexport default MemoedPressable;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar ProgressBar = /*#__PURE__*/React.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 = React.useRef(null);\n React.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 forcedColorAdjust: 'none',\n height: 5,\n overflow: 'hidden',\n userSelect: 'none',\n zIndex: 0\n },\n progress: {\n forcedColorAdjust: 'none',\n height: '100%',\n zIndex: -1\n },\n animation: {\n animationDuration: '1s',\n animationKeyframes: [{\n '0%': {\n transform: [{\n translateX: '-100%'\n }]\n },\n '100%': {\n transform: [{\n translateX: '400%'\n }]\n }\n }],\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite'\n }\n});\nexport default ProgressBar;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\nvar cssFunction = function () {\n if (canUseDOM && window.CSS && window.CSS.supports && window.CSS.supports('top: constant(safe-area-inset-top)')) {\n return 'constant';\n }\n\n return 'env';\n}();\n\nvar SafeAreaView = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var style = props.style,\n rest = _objectWithoutPropertiesLoose(props, [\"style\"]);\n\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n ref: ref,\n style: StyleSheet.compose(styles.root, style)\n }));\n});\nSafeAreaView.displayName = 'SafeAreaView';\nvar styles = StyleSheet.create({\n root: {\n paddingTop: cssFunction + \"(safe-area-inset-top)\",\n paddingRight: cssFunction + \"(safe-area-inset-right)\",\n paddingBottom: cssFunction + \"(safe-area-inset-bottom)\",\n paddingLeft: cssFunction + \"(safe-area-inset-left)\"\n }\n});\nexport default SafeAreaView;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source 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) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport multiplyStyleLengthValue from '../../modules/multiplyStyleLengthValue';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar emptyObject = {};\nvar thumbDefaultBoxShadow = '0px 1px 3px rgba(0,0,0,0.5)';\nvar thumbFocusedBoxShadow = thumbDefaultBoxShadow + \", 0 0 0 10px rgba(0,0,0,0.1)\";\nvar Switch = /*#__PURE__*/React.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 = React.useRef(null);\n\n function handleChange(event) {\n if (onValueChange != null) {\n onValueChange(event.nativeEvent.target.checked);\n }\n }\n\n function handleFocusState(event) {\n var isFocused = event.nativeEvent.type === 'focus';\n var boxShadow = isFocused ? thumbFocusedBoxShadow : thumbDefaultBoxShadow;\n\n if (thumbRef.current != null) {\n thumbRef.current.style.boxShadow = boxShadow;\n }\n }\n\n var _StyleSheet$flatten = StyleSheet.flatten(style),\n styleHeight = _StyleSheet$flatten.height,\n styleWidth = _StyleSheet$flatten.width;\n\n var height = styleHeight || '20px';\n var minWidth = multiplyStyleLengthValue(height, 2);\n var width = styleWidth > minWidth ? styleWidth : minWidth;\n var trackBorderRadius = multiplyStyleLengthValue(height, 0.5);\n\n var trackCurrentColor = function () {\n if (value === true) {\n if (trackColor != null && typeof trackColor === 'object') {\n return trackColor.true;\n } else {\n return activeTrackColor;\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({\n forcedColorAdjust: 'none'\n }, StyleSheet.absoluteFillObject), {}, {\n height: '70%',\n margin: 'auto',\n transitionDuration: '0.1s',\n width: '100%'\n }),\n thumb: {\n forcedColorAdjust: 'none',\n alignSelf: 'flex-start',\n borderRadius: '100%',\n boxShadow: thumbDefaultBoxShadow,\n start: '0%',\n transform: [{\n translateZ: 0\n }],\n transitionDuration: '0.1s'\n },\n thumbActive: {\n start: '100%'\n },\n nativeControl: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n margin: 0,\n opacity: 0,\n padding: 0,\n width: '100%'\n })\n});\nexport default Switch;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport css from '../StyleSheet/css';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useLayoutEffect from '../../modules/useLayoutEffect';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextInputState from '../../modules/TextInputState';\n/**\n * Determines whether a 'selection' prop differs from a node's existing\n * selection state.\n */\n\nvar isSelectionStale = function isSelectionStale(node, selection) {\n var selectionEnd = node.selectionEnd,\n selectionStart = node.selectionStart;\n var start = selection.start,\n end = selection.end;\n return start !== selectionStart || end !== selectionEnd;\n};\n/**\n * Certain input types do no support 'selectSelectionRange' and will throw an\n * error.\n */\n\n\nvar setSelection = function setSelection(node, selection) {\n if (isSelectionStale(node, selection)) {\n var start = selection.start,\n end = selection.end;\n\n try {\n node.setSelectionRange(start, end || start);\n } catch (e) {}\n }\n};\n\nvar forwardPropsList = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, forwardedProps.defaultProps), forwardedProps.accessibilityProps), forwardedProps.clickProps), forwardedProps.focusProps), forwardedProps.keyboardProps), forwardedProps.mouseProps), forwardedProps.touchProps), forwardedProps.styleProps), {}, {\n autoCapitalize: true,\n autoComplete: true,\n autoCorrect: true,\n autoFocus: true,\n defaultValue: true,\n disabled: true,\n lang: true,\n maxLength: true,\n onChange: true,\n onScroll: true,\n placeholder: true,\n pointerEvents: true,\n readOnly: true,\n rows: true,\n spellCheck: true,\n value: true,\n type: true\n});\n\nvar pickProps = function pickProps(props) {\n return pick(props, forwardPropsList);\n}; // If an Input Method Editor is processing key input, the 'keyCode' is 229.\n// https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n\n\nfunction isEventComposing(nativeEvent) {\n return nativeEvent.isComposing || nativeEvent.keyCode === 229;\n}\n\nvar TextInput = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var _props$autoCapitalize = props.autoCapitalize,\n autoCapitalize = _props$autoCapitalize === void 0 ? 'sentences' : _props$autoCapitalize,\n autoComplete = props.autoComplete,\n autoCompleteType = props.autoCompleteType,\n _props$autoCorrect = props.autoCorrect,\n autoCorrect = _props$autoCorrect === void 0 ? true : _props$autoCorrect,\n blurOnSubmit = props.blurOnSubmit,\n clearTextOnFocus = props.clearTextOnFocus,\n dir = props.dir,\n _props$editable = props.editable,\n editable = _props$editable === void 0 ? true : _props$editable,\n _props$keyboardType = props.keyboardType,\n keyboardType = _props$keyboardType === void 0 ? 'default' : _props$keyboardType,\n _props$multiline = props.multiline,\n multiline = _props$multiline === void 0 ? false : _props$multiline,\n _props$numberOfLines = props.numberOfLines,\n numberOfLines = _props$numberOfLines === void 0 ? 1 : _props$numberOfLines,\n onBlur = props.onBlur,\n onChange = props.onChange,\n onChangeText = props.onChangeText,\n onContentSizeChange = props.onContentSizeChange,\n onFocus = props.onFocus,\n onKeyPress = props.onKeyPress,\n onLayout = props.onLayout,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChange = props.onSelectionChange,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n onSubmitEditing = props.onSubmitEditing,\n placeholderTextColor = props.placeholderTextColor,\n returnKeyType = props.returnKeyType,\n _props$secureTextEntr = props.secureTextEntry,\n secureTextEntry = _props$secureTextEntr === void 0 ? false : _props$secureTextEntr,\n selection = props.selection,\n selectTextOnFocus = props.selectTextOnFocus,\n spellCheck = props.spellCheck;\n var type;\n var inputMode;\n\n switch (keyboardType) {\n case 'email-address':\n type = 'email';\n break;\n\n case 'number-pad':\n case 'numeric':\n inputMode = 'numeric';\n break;\n\n case 'decimal-pad':\n inputMode = 'decimal';\n break;\n\n case 'phone-pad':\n type = 'tel';\n break;\n\n case 'search':\n case 'web-search':\n type = 'search';\n break;\n\n case 'url':\n type = 'url';\n break;\n\n default:\n type = 'text';\n }\n\n if (secureTextEntry) {\n type = 'password';\n }\n\n var dimensions = React.useRef({\n height: null,\n width: null\n });\n var hostRef = React.useRef(null);\n var handleContentSizeChange = React.useCallback(function (hostNode) {\n if (multiline && onContentSizeChange && hostNode != null) {\n var newHeight = hostNode.scrollHeight;\n var newWidth = hostNode.scrollWidth;\n\n if (newHeight !== dimensions.current.height || newWidth !== dimensions.current.width) {\n dimensions.current.height = newHeight;\n dimensions.current.width = newWidth;\n onContentSizeChange({\n nativeEvent: {\n contentSize: {\n height: dimensions.current.height,\n width: dimensions.current.width\n }\n }\n });\n }\n }\n }, [multiline, onContentSizeChange]);\n var imperativeRef = React.useMemo(function () {\n return function (hostNode) {\n // TextInput needs to add more methods to the hostNode in addition to those\n // added by `usePlatformMethods`. This is temporarily until an API like\n // `TextInput.clear(hostRef)` is added to React Native.\n if (hostNode != null) {\n hostNode.clear = function () {\n if (hostNode != null) {\n hostNode.value = '';\n }\n };\n\n hostNode.isFocused = function () {\n return hostNode != null && TextInputState.currentlyFocusedField() === hostNode;\n };\n\n handleContentSizeChange(hostNode);\n }\n };\n }, [handleContentSizeChange]);\n\n function handleBlur(e) {\n TextInputState._currentlyFocusedNode = null;\n\n if (onBlur) {\n e.nativeEvent.text = e.target.value;\n onBlur(e);\n }\n }\n\n function handleChange(e) {\n var hostNode = e.target;\n var text = hostNode.value;\n e.nativeEvent.text = text;\n handleContentSizeChange(hostNode);\n\n if (onChange) {\n onChange(e);\n }\n\n if (onChangeText) {\n onChangeText(text);\n }\n }\n\n function handleFocus(e) {\n var hostNode = e.target;\n\n if (onFocus) {\n e.nativeEvent.text = hostNode.value;\n onFocus(e);\n }\n\n if (hostNode != null) {\n TextInputState._currentlyFocusedNode = hostNode;\n\n if (clearTextOnFocus) {\n hostNode.value = '';\n }\n\n if (selectTextOnFocus) {\n // Safari requires selection to occur in a setTimeout\n setTimeout(function () {\n hostNode.select();\n }, 0);\n }\n }\n }\n\n function handleKeyDown(e) {\n var hostNode = e.target; // Prevent key events bubbling (see #612)\n\n e.stopPropagation();\n var blurOnSubmitDefault = !multiline;\n var shouldBlurOnSubmit = blurOnSubmit == null ? blurOnSubmitDefault : blurOnSubmit;\n var nativeEvent = e.nativeEvent;\n var isComposing = isEventComposing(nativeEvent);\n\n if (onKeyPress) {\n onKeyPress(e);\n }\n\n if (e.key === 'Enter' && !e.shiftKey && // Do not call submit if composition is occuring.\n !isComposing && !e.isDefaultPrevented()) {\n if ((blurOnSubmit || !multiline) && onSubmitEditing) {\n // prevent \"Enter\" from inserting a newline or submitting a form\n e.preventDefault();\n nativeEvent.text = e.target.value;\n onSubmitEditing(e);\n }\n\n if (shouldBlurOnSubmit && hostNode != null) {\n hostNode.blur();\n }\n }\n }\n\n function handleSelectionChange(e) {\n if (onSelectionChange) {\n try {\n var node = e.target;\n var selectionStart = node.selectionStart,\n selectionEnd = node.selectionEnd;\n e.nativeEvent.selection = {\n start: selectionStart,\n end: selectionEnd\n };\n e.nativeEvent.text = e.target.value;\n onSelectionChange(e);\n } catch (e) {}\n }\n }\n\n useLayoutEffect(function () {\n var node = hostRef.current;\n\n if (node != null && selection != null) {\n setSelection(node, selection);\n }\n\n if (document.activeElement === node) {\n TextInputState._currentlyFocusedNode = node;\n }\n }, [hostRef, selection]);\n var component = multiline ? 'textarea' : 'input';\n var classList = [classes.textinput];\n var style = StyleSheet.compose(props.style, placeholderTextColor && {\n placeholderTextColor: placeholderTextColor\n });\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder: onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture: onMoveShouldSetResponderCapture,\n onResponderEnd: onResponderEnd,\n onResponderGrant: onResponderGrant,\n onResponderMove: onResponderMove,\n onResponderReject: onResponderReject,\n onResponderRelease: onResponderRelease,\n onResponderStart: onResponderStart,\n onResponderTerminate: onResponderTerminate,\n onResponderTerminationRequest: onResponderTerminationRequest,\n onScrollShouldSetResponder: onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture: onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder: onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture: onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder: onStartShouldSetResponder,\n onStartShouldSetResponderCapture: onStartShouldSetResponderCapture\n });\n var supportedProps = pickProps(props);\n supportedProps.autoCapitalize = autoCapitalize;\n supportedProps.autoComplete = autoComplete || autoCompleteType || 'on';\n supportedProps.autoCorrect = autoCorrect ? 'on' : 'off';\n supportedProps.classList = classList; // 'auto' by default allows browsers to infer writing direction\n\n supportedProps.dir = dir !== undefined ? dir : 'auto';\n supportedProps.enterKeyHint = returnKeyType;\n supportedProps.onBlur = handleBlur;\n supportedProps.onChange = handleChange;\n supportedProps.onFocus = handleFocus;\n supportedProps.onKeyDown = handleKeyDown;\n supportedProps.onSelect = handleSelectionChange;\n supportedProps.readOnly = !editable;\n supportedProps.rows = multiline ? numberOfLines : undefined;\n supportedProps.spellCheck = spellCheck != null ? spellCheck : autoCorrect;\n supportedProps.style = style;\n supportedProps.type = multiline ? undefined : type;\n supportedProps.inputMode = inputMode;\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, imperativeRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement(component, supportedProps);\n});\nTextInput.displayName = 'TextInput'; // $FlowFixMe\n\nTextInput.State = TextInputState;\nvar classes = css.create({\n textinput: {\n MozAppearance: 'textfield',\n WebkitAppearance: 'none',\n backgroundColor: 'transparent',\n border: '0 solid black',\n borderRadius: 0,\n boxSizing: 'border-box',\n font: '14px System',\n margin: 0,\n padding: 0,\n resize: 'none'\n }\n});\nexport default TextInput;","/* 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) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport AccessibilityUtil from '../../modules/AccessibilityUtil';\nimport BoundingDimensions from './BoundingDimensions';\nimport findNodeHandle from '../findNodeHandle';\nimport normalizeColor from 'normalize-css-color';\nimport Position from './Position';\nimport React from 'react';\nimport UIManager from '../UIManager';\nimport View from '../View';\n\nvar extractSingleTouch = function extractSingleTouch(nativeEvent) {\n var touches = nativeEvent.touches;\n var changedTouches = nativeEvent.changedTouches;\n var hasTouches = touches && touches.length > 0;\n var hasChangedTouches = changedTouches && changedTouches.length > 0;\n return !hasTouches && hasChangedTouches ? changedTouches[0] : hasTouches ? touches[0] : nativeEvent;\n};\n/**\n * `Touchable`: Taps done right.\n *\n * You hook your `ResponderEventPlugin` events into `Touchable`. `Touchable`\n * will measure time/geometry and tells you when to give feedback to the user.\n *\n * ====================== Touchable Tutorial ===============================\n * The `Touchable` mixin helps you handle the \"press\" interaction. It analyzes\n * the geometry of elements, and observes when another responder (scroll view\n * etc) has stolen the touch lock. It notifies your component when it should\n * give feedback to the user. (bouncing/highlighting/unhighlighting).\n *\n * - When a touch was activated (typically you highlight)\n * - When a touch was deactivated (typically you unhighlight)\n * - When a touch was \"pressed\" - a touch ended while still within the geometry\n * of the element, and no other element (like scroller) has \"stolen\" touch\n * lock (\"responder\") (Typically you bounce the element).\n *\n * A good tap interaction isn't as simple as you might think. There should be a\n * slight delay before showing a highlight when starting a touch. If a\n * subsequent touch move exceeds the boundary of the element, it should\n * unhighlight, but if that same touch is brought back within the boundary, it\n * should rehighlight again. A touch can move in and out of that boundary\n * several times, each time toggling highlighting, but a \"press\" is only\n * triggered if that touch ends while within the element's boundary and no\n * scroller (or anything else) has stolen the lock on touches.\n *\n * To create a new type of component that handles interaction using the\n * `Touchable` mixin, do the following:\n *\n * - Initialize the `Touchable` state.\n *\n * getInitialState: function() {\n * return merge(this.touchableGetInitialState(), yourComponentState);\n * }\n *\n * - Choose the rendered component who's touches should start the interactive\n * sequence. On that rendered node, forward all `Touchable` responder\n * handlers. You can choose any rendered node you like. Choose a node whose\n * hit target you'd like to instigate the interaction sequence:\n *\n * // In render function:\n * return (\n * \n * \n * Even though the hit detection/interactions are triggered by the\n * wrapping (typically larger) node, we usually end up implementing\n * custom logic that highlights this inner one.\n * \n * \n * );\n *\n * - You may set up your own handlers for each of these events, so long as you\n * also invoke the `touchable*` handlers inside of your custom handler.\n *\n * - Implement the handlers on your component class in order to provide\n * feedback to the user. See documentation for each of these class methods\n * that you should implement.\n *\n * touchableHandlePress: function() {\n * this.performBounceAnimation(); // or whatever you want to do.\n * },\n * touchableHandleActivePressIn: function() {\n * this.beginHighlighting(...); // Whatever you like to convey activation\n * },\n * touchableHandleActivePressOut: function() {\n * this.endHighlighting(...); // Whatever you like to convey deactivation\n * },\n *\n * - There are more advanced methods you can implement (see documentation below):\n * touchableGetHighlightDelayMS: function() {\n * return 20;\n * }\n * // In practice, *always* use a predeclared constant (conserve memory).\n * touchableGetPressRectOffset: function() {\n * return {top: 20, left: 20, right: 20, bottom: 100};\n * }\n */\n\n/**\n * Touchable states.\n */\n\n\nvar States = {\n NOT_RESPONDER: 'NOT_RESPONDER',\n // Not the responder\n RESPONDER_INACTIVE_PRESS_IN: 'RESPONDER_INACTIVE_PRESS_IN',\n // Responder, inactive, in the `PressRect`\n RESPONDER_INACTIVE_PRESS_OUT: 'RESPONDER_INACTIVE_PRESS_OUT',\n // Responder, inactive, out of `PressRect`\n RESPONDER_ACTIVE_PRESS_IN: 'RESPONDER_ACTIVE_PRESS_IN',\n // Responder, active, in the `PressRect`\n RESPONDER_ACTIVE_PRESS_OUT: 'RESPONDER_ACTIVE_PRESS_OUT',\n // Responder, active, out of `PressRect`\n RESPONDER_ACTIVE_LONG_PRESS_IN: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n // Responder, active, in the `PressRect`, after long press threshold\n RESPONDER_ACTIVE_LONG_PRESS_OUT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n // Responder, active, out of `PressRect`, after long press threshold\n ERROR: 'ERROR'\n};\n\n/*\n * Quick lookup map for states that are considered to be \"active\"\n */\nvar baseStatesConditions = {\n NOT_RESPONDER: false,\n RESPONDER_INACTIVE_PRESS_IN: false,\n RESPONDER_INACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_PRESS_IN: false,\n RESPONDER_ACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_LONG_PRESS_IN: false,\n RESPONDER_ACTIVE_LONG_PRESS_OUT: false,\n ERROR: false\n};\n\nvar IsActive = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_ACTIVE_PRESS_OUT: true,\n RESPONDER_ACTIVE_PRESS_IN: true\n});\n/**\n * Quick lookup for states that are considered to be \"pressing\" and are\n * therefore eligible to result in a \"selection\" if the press stops.\n */\n\n\nvar IsPressingIn = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_INACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true\n});\n\nvar IsLongPressingIn = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_ACTIVE_LONG_PRESS_IN: true\n});\n/**\n * Inputs to the state machine.\n */\n\n\nvar Signals = {\n DELAY: 'DELAY',\n RESPONDER_GRANT: 'RESPONDER_GRANT',\n RESPONDER_RELEASE: 'RESPONDER_RELEASE',\n RESPONDER_TERMINATED: 'RESPONDER_TERMINATED',\n ENTER_PRESS_RECT: 'ENTER_PRESS_RECT',\n LEAVE_PRESS_RECT: 'LEAVE_PRESS_RECT',\n LONG_PRESS_DETECTED: 'LONG_PRESS_DETECTED'\n};\n\n/**\n * Mapping from States x Signals => States\n */\nvar Transitions = {\n NOT_RESPONDER: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.ERROR,\n RESPONDER_TERMINATED: States.ERROR,\n ENTER_PRESS_RECT: States.ERROR,\n LEAVE_PRESS_RECT: States.ERROR,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_INACTIVE_PRESS_IN: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_IN,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_INACTIVE_PRESS_OUT: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_OUT,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_ACTIVE_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN\n },\n RESPONDER_ACTIVE_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_ACTIVE_LONG_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN\n },\n RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n error: {\n DELAY: States.NOT_RESPONDER,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.NOT_RESPONDER,\n LEAVE_PRESS_RECT: States.NOT_RESPONDER,\n LONG_PRESS_DETECTED: States.NOT_RESPONDER\n }\n}; // ==== Typical Constants for integrating into UI components ====\n// var HIT_EXPAND_PX = 20;\n// var HIT_VERT_OFFSET_PX = 10;\n\nvar HIGHLIGHT_DELAY_MS = 130;\nvar PRESS_EXPAND_PX = 20;\nvar LONG_PRESS_THRESHOLD = 500;\nvar LONG_PRESS_DELAY_MS = LONG_PRESS_THRESHOLD - HIGHLIGHT_DELAY_MS;\nvar LONG_PRESS_ALLOWED_MOVEMENT = 10; // Default amount \"active\" region protrudes beyond box\n\n/**\n * By convention, methods prefixed with underscores are meant to be @private,\n * and not @protected. Mixers shouldn't access them - not even to provide them\n * as callback handlers.\n *\n *\n * ========== Geometry =========\n * `Touchable` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * +--------------------------+\n * | | - \"Start\" events in `HitRect` cause `HitRect`\n * | +--------------------+ | to become the responder.\n * | | +--------------+ | | - `HitRect` is typically expanded around\n * | | | | | | the `VisualRect`, but shifted downward.\n * | | | VisualRect | | | - After pressing down, after some delay,\n * | | | | | | and before letting up, the Visual React\n * | | +--------------+ | | will become \"active\". This makes it eligible\n * | | HitRect | | for being highlighted (so long as the\n * | +--------------------+ | press remains in the `PressRect`).\n * | PressRect o |\n * +----------------------|---+\n * Out Region |\n * +-----+ This gap between the `HitRect` and\n * `PressRect` allows a touch to move far away\n * from the original hit rect, and remain\n * highlighted, and eligible for a \"Press\".\n * Customize this via\n * `touchableGetPressRectOffset()`.\n *\n *\n *\n * ======= State Machine =======\n *\n * +-------------+ <---+ RESPONDER_RELEASE\n * |NOT_RESPONDER|\n * +-------------+ <---+ RESPONDER_TERMINATED\n * +\n * | RESPONDER_GRANT (HitRect)\n * v\n * +---------------------------+ DELAY +-------------------------+ T + DELAY +------------------------------+\n * |RESPONDER_INACTIVE_PRESS_IN|+-------->|RESPONDER_ACTIVE_PRESS_IN| +------------> |RESPONDER_ACTIVE_LONG_PRESS_IN|\n * +---------------------------+ +-------------------------+ +------------------------------+\n * + ^ + ^ + ^\n * |LEAVE_ |ENTER_ |LEAVE_ |ENTER_ |LEAVE_ |ENTER_\n * |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT\n * | | | | | |\n * v + v + v +\n * +----------------------------+ DELAY +--------------------------+ +-------------------------------+\n * |RESPONDER_INACTIVE_PRESS_OUT|+------->|RESPONDER_ACTIVE_PRESS_OUT| |RESPONDER_ACTIVE_LONG_PRESS_OUT|\n * +----------------------------+ +--------------------------+ +-------------------------------+\n *\n * T + DELAY => LONG_PRESS_DELAY_MS + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the `touchableHandlePress` abstract method invocation that occurs\n * when a responder is released while in either of the \"Press\" states.\n *\n * The other important side effects are the highlight abstract method\n * invocations (internal callbacks) to be implemented by the mixer.\n *\n *\n * @lends Touchable.prototype\n */\n\nvar TouchableMixin = {\n // HACK (part 1): basic support for touchable interactions using a keyboard\n componentDidMount: function componentDidMount() {\n var _this = this;\n\n this._touchableNode = findNodeHandle(this);\n\n if (this._touchableNode && this._touchableNode.addEventListener) {\n this._touchableBlurListener = function (e) {\n if (_this._isTouchableKeyboardActive) {\n if (_this.state.touchable.touchState && _this.state.touchable.touchState !== States.NOT_RESPONDER) {\n _this.touchableHandleResponderTerminate({\n nativeEvent: e\n });\n }\n\n _this._isTouchableKeyboardActive = false;\n }\n };\n\n this._touchableNode.addEventListener('blur', this._touchableBlurListener);\n }\n },\n\n /**\n * Clear all timeouts on unmount\n */\n componentWillUnmount: function componentWillUnmount() {\n if (this._touchableNode && this._touchableNode.addEventListener) {\n this._touchableNode.removeEventListener('blur', this._touchableBlurListener);\n }\n\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout); // Clear DOM nodes\n\n this.pressInLocation = null;\n this.state.touchable.responderID = null;\n this._touchableNode = null;\n },\n\n /**\n * It's prefer that mixins determine state in this way, having the class\n * explicitly mix the state in the one and only `getInitialState` method.\n *\n * @return {object} State object to be placed inside of\n * `this.state.touchable`.\n */\n touchableGetInitialState: function touchableGetInitialState() {\n return {\n touchable: {\n touchState: undefined,\n responderID: null\n }\n };\n },\n // ==== Hooks to Gesture Responder system ====\n\n /**\n * Must return true if embedded in a native platform scroll view.\n */\n touchableHandleResponderTerminationRequest: function touchableHandleResponderTerminationRequest() {\n return !this.props.rejectResponderTermination;\n },\n\n /**\n * Must return true to start the process of `Touchable`.\n */\n touchableHandleStartShouldSetResponder: function touchableHandleStartShouldSetResponder() {\n return !this.props.disabled;\n },\n\n /**\n * Return true to cancel press on long press.\n */\n touchableLongPressCancelsPress: function touchableLongPressCancelsPress() {\n return true;\n },\n\n /**\n * Place as callback for a DOM element's `onResponderGrant` event.\n * @param {SyntheticEvent} e Synthetic event from event system.\n *\n */\n touchableHandleResponderGrant: function touchableHandleResponderGrant(e) {\n var dispatchID = e.currentTarget; // Since e is used in a callback invoked on another event loop\n // (as in setTimeout etc), we need to call e.persist() on the\n // event to make sure it doesn't get reused in the event object pool.\n\n e.persist();\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n this.pressOutDelayTimeout = null;\n this.state.touchable.touchState = States.NOT_RESPONDER;\n this.state.touchable.responderID = dispatchID;\n\n this._receiveSignal(Signals.RESPONDER_GRANT, e);\n\n var delayMS = this.touchableGetHighlightDelayMS !== undefined ? Math.max(this.touchableGetHighlightDelayMS(), 0) : HIGHLIGHT_DELAY_MS;\n delayMS = isNaN(delayMS) ? HIGHLIGHT_DELAY_MS : delayMS;\n\n if (delayMS !== 0) {\n this.touchableDelayTimeout = setTimeout(this._handleDelay.bind(this, e), delayMS);\n } else {\n this._handleDelay(e);\n }\n\n var longDelayMS = this.touchableGetLongPressDelayMS !== undefined ? Math.max(this.touchableGetLongPressDelayMS(), 10) : LONG_PRESS_DELAY_MS;\n longDelayMS = isNaN(longDelayMS) ? LONG_PRESS_DELAY_MS : longDelayMS;\n this.longPressDelayTimeout = setTimeout(this._handleLongDelay.bind(this, e), longDelayMS + delayMS);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderRelease` event.\n */\n touchableHandleResponderRelease: function touchableHandleResponderRelease(e) {\n this.pressInLocation = null;\n\n this._receiveSignal(Signals.RESPONDER_RELEASE, e);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderTerminate` event.\n */\n touchableHandleResponderTerminate: function touchableHandleResponderTerminate(e) {\n this.pressInLocation = null;\n\n this._receiveSignal(Signals.RESPONDER_TERMINATED, e);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderMove` event.\n */\n touchableHandleResponderMove: function touchableHandleResponderMove(e) {\n // Measurement may not have returned yet.\n if (!this.state.touchable.positionOnActivate) {\n return;\n }\n\n var positionOnActivate = this.state.touchable.positionOnActivate;\n var dimensionsOnActivate = this.state.touchable.dimensionsOnActivate;\n var pressRectOffset = this.touchableGetPressRectOffset ? this.touchableGetPressRectOffset() : {\n left: PRESS_EXPAND_PX,\n right: PRESS_EXPAND_PX,\n top: PRESS_EXPAND_PX,\n bottom: PRESS_EXPAND_PX\n };\n var pressExpandLeft = pressRectOffset.left;\n var pressExpandTop = pressRectOffset.top;\n var pressExpandRight = pressRectOffset.right;\n var pressExpandBottom = pressRectOffset.bottom;\n var hitSlop = this.touchableGetHitSlop ? this.touchableGetHitSlop() : null;\n\n if (hitSlop) {\n pressExpandLeft += hitSlop.left || 0;\n pressExpandTop += hitSlop.top || 0;\n pressExpandRight += hitSlop.right || 0;\n pressExpandBottom += hitSlop.bottom || 0;\n }\n\n var touch = extractSingleTouch(e.nativeEvent);\n var pageX = touch && touch.pageX;\n var pageY = touch && touch.pageY;\n\n if (this.pressInLocation) {\n var movedDistance = this._getDistanceBetweenPoints(pageX, pageY, this.pressInLocation.pageX, this.pressInLocation.pageY);\n\n if (movedDistance > LONG_PRESS_ALLOWED_MOVEMENT) {\n this._cancelLongPressDelayTimeout();\n }\n }\n\n var isTouchWithinActive = pageX > positionOnActivate.left - pressExpandLeft && pageY > positionOnActivate.top - pressExpandTop && pageX < positionOnActivate.left + dimensionsOnActivate.width + pressExpandRight && pageY < positionOnActivate.top + dimensionsOnActivate.height + pressExpandBottom;\n\n if (isTouchWithinActive) {\n var prevState = this.state.touchable.touchState;\n\n this._receiveSignal(Signals.ENTER_PRESS_RECT, e);\n\n var curState = this.state.touchable.touchState;\n\n if (curState === States.RESPONDER_INACTIVE_PRESS_IN && prevState !== States.RESPONDER_INACTIVE_PRESS_IN) {\n // fix for t7967420\n this._cancelLongPressDelayTimeout();\n }\n } else {\n this._cancelLongPressDelayTimeout();\n\n this._receiveSignal(Signals.LEAVE_PRESS_RECT, e);\n }\n },\n\n /**\n * Invoked when the item receives focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * currently has the focus. Most platforms only support a single element being\n * focused at a time, in which case there may have been a previously focused\n * element that was blurred just prior to this. This can be overridden when\n * using `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n touchableHandleFocus: function touchableHandleFocus(e) {\n this.props.onFocus && this.props.onFocus(e);\n },\n\n /**\n * Invoked when the item loses focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * no longer has focus. Most platforms only support a single element being\n * focused at a time, in which case the focus may have moved to another.\n * This can be overridden when using\n * `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n touchableHandleBlur: function touchableHandleBlur(e) {\n this.props.onBlur && this.props.onBlur(e);\n },\n // ==== Abstract Application Callbacks ====\n\n /**\n * Invoked when the item should be highlighted. Mixers should implement this\n * to visually distinguish the `VisualRect` so that the user knows that\n * releasing a touch will result in a \"selection\" (analog to click).\n *\n * @abstract\n * touchableHandleActivePressIn: function,\n */\n\n /**\n * Invoked when the item is \"active\" (in that it is still eligible to become\n * a \"select\") but the touch has left the `PressRect`. Usually the mixer will\n * want to unhighlight the `VisualRect`. If the user (while pressing) moves\n * back into the `PressRect` `touchableHandleActivePressIn` will be invoked\n * again and the mixer should probably highlight the `VisualRect` again. This\n * event will not fire on an `touchEnd/mouseUp` event, only move events while\n * the user is depressing the mouse/touch.\n *\n * @abstract\n * touchableHandleActivePressOut: function\n */\n\n /**\n * Invoked when the item is \"selected\" - meaning the interaction ended by\n * letting up while the item was either in the state\n * `RESPONDER_ACTIVE_PRESS_IN` or `RESPONDER_INACTIVE_PRESS_IN`.\n *\n * @abstract\n * touchableHandlePress: function\n */\n\n /**\n * Invoked when the item is long pressed - meaning the interaction ended by\n * letting up while the item was in `RESPONDER_ACTIVE_LONG_PRESS_IN`. If\n * `touchableHandleLongPress` is *not* provided, `touchableHandlePress` will\n * be called as it normally is. If `touchableHandleLongPress` is provided, by\n * default any `touchableHandlePress` callback will not be invoked. To\n * override this default behavior, override `touchableLongPressCancelsPress`\n * to return false. As a result, `touchableHandlePress` will be called when\n * lifting up, even if `touchableHandleLongPress` has also been called.\n *\n * @abstract\n * touchableHandleLongPress: function\n */\n\n /**\n * Returns the number of millis to wait before triggering a highlight.\n *\n * @abstract\n * touchableGetHighlightDelayMS: function\n */\n\n /**\n * Returns the amount to extend the `HitRect` into the `PressRect`. Positive\n * numbers mean the size expands outwards.\n *\n * @abstract\n * touchableGetPressRectOffset: function\n */\n // ==== Internal Logic ====\n\n /**\n * Measures the `HitRect` node on activation. The Bounding rectangle is with\n * respect to viewport - not page, so adding the `pageXOffset/pageYOffset`\n * should result in points that are in the same coordinate system as an\n * event's `globalX/globalY` data values.\n *\n * - Consider caching this for the lifetime of the component, or possibly\n * being able to share this cache between any `ScrollMap` view.\n *\n * @sideeffects\n * @private\n */\n _remeasureMetricsOnActivation: function _remeasureMetricsOnActivation() {\n var tag = this.state.touchable.responderID;\n\n if (tag == null) {\n return;\n }\n\n UIManager.measure(tag, this._handleQueryLayout);\n },\n _handleQueryLayout: function _handleQueryLayout(l, t, w, h, globalX, globalY) {\n //don't do anything UIManager failed to measure node\n if (!l && !t && !w && !h && !globalX && !globalY) {\n return;\n }\n\n this.state.touchable.positionOnActivate && Position.release(this.state.touchable.positionOnActivate);\n this.state.touchable.dimensionsOnActivate && // $FlowFixMe\n BoundingDimensions.release(this.state.touchable.dimensionsOnActivate);\n this.state.touchable.positionOnActivate = Position.getPooled(globalX, globalY); // $FlowFixMe\n\n this.state.touchable.dimensionsOnActivate = BoundingDimensions.getPooled(w, h);\n },\n _handleDelay: function _handleDelay(e) {\n this.touchableDelayTimeout = null;\n\n this._receiveSignal(Signals.DELAY, e);\n },\n _handleLongDelay: function _handleLongDelay(e) {\n this.longPressDelayTimeout = null;\n var curState = this.state.touchable.touchState;\n\n if (curState !== States.RESPONDER_ACTIVE_PRESS_IN && curState !== States.RESPONDER_ACTIVE_LONG_PRESS_IN) {\n console.error('Attempted to transition from state `' + curState + '` to `' + States.RESPONDER_ACTIVE_LONG_PRESS_IN + '`, which is not supported. This is ' + 'most likely due to `Touchable.longPressDelayTimeout` not being cancelled.');\n } else {\n this._receiveSignal(Signals.LONG_PRESS_DETECTED, e);\n }\n },\n\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n *\n * @param {Signals} signal State machine signal.\n * @throws Error if invalid state transition or unrecognized signal.\n * @sideeffects\n */\n _receiveSignal: function _receiveSignal(signal, e) {\n var responderID = this.state.touchable.responderID;\n var curState = this.state.touchable.touchState;\n var nextState = Transitions[curState] && Transitions[curState][signal];\n\n if (!responderID && signal === Signals.RESPONDER_RELEASE) {\n return;\n }\n\n if (!nextState) {\n throw new Error('Unrecognized signal `' + signal + '` or state `' + curState + '` for Touchable responder `' + responderID + '`');\n }\n\n if (nextState === States.ERROR) {\n throw new Error('Touchable cannot transition from `' + curState + '` to `' + signal + '` for responder `' + responderID + '`');\n }\n\n if (curState !== nextState) {\n this._performSideEffectsForTransition(curState, nextState, signal, e);\n\n this.state.touchable.touchState = nextState;\n }\n },\n _cancelLongPressDelayTimeout: function _cancelLongPressDelayTimeout() {\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.longPressDelayTimeout = null;\n },\n _isHighlight: function _isHighlight(state) {\n return state === States.RESPONDER_ACTIVE_PRESS_IN || state === States.RESPONDER_ACTIVE_LONG_PRESS_IN;\n },\n _savePressInLocation: function _savePressInLocation(e) {\n var touch = extractSingleTouch(e.nativeEvent);\n var pageX = touch && touch.pageX;\n var pageY = touch && touch.pageY;\n var locationX = touch && touch.locationX;\n var locationY = touch && touch.locationY;\n this.pressInLocation = {\n pageX: pageX,\n pageY: pageY,\n locationX: locationX,\n locationY: locationY\n };\n },\n _getDistanceBetweenPoints: function _getDistanceBetweenPoints(aX, aY, bX, bY) {\n var deltaX = aX - bX;\n var deltaY = aY - bY;\n return Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n },\n\n /**\n * Will perform a transition between touchable states, and identify any\n * highlighting or unhighlighting that must be performed for this particular\n * transition.\n *\n * @param {States} curState Current Touchable state.\n * @param {States} nextState Next Touchable state.\n * @param {Signal} signal Signal that triggered the transition.\n * @param {Event} e Native event.\n * @sideeffects\n */\n _performSideEffectsForTransition: function _performSideEffectsForTransition(curState, nextState, signal, e) {\n var curIsHighlight = this._isHighlight(curState);\n\n var newIsHighlight = this._isHighlight(nextState);\n\n var isFinalSignal = signal === Signals.RESPONDER_TERMINATED || signal === Signals.RESPONDER_RELEASE;\n\n if (isFinalSignal) {\n this._cancelLongPressDelayTimeout();\n }\n\n var isInitialTransition = curState === States.NOT_RESPONDER && nextState === States.RESPONDER_INACTIVE_PRESS_IN;\n var isActiveTransition = !IsActive[curState] && IsActive[nextState];\n\n if (isInitialTransition || isActiveTransition) {\n this._remeasureMetricsOnActivation();\n }\n\n if (IsPressingIn[curState] && signal === Signals.LONG_PRESS_DETECTED) {\n this.touchableHandleLongPress && this.touchableHandleLongPress(e);\n }\n\n if (newIsHighlight && !curIsHighlight) {\n this._startHighlight(e);\n } else if (!newIsHighlight && curIsHighlight) {\n this._endHighlight(e);\n }\n\n if (IsPressingIn[curState] && signal === Signals.RESPONDER_RELEASE) {\n var hasLongPressHandler = !!this.props.onLongPress;\n var pressIsLongButStillCallOnPress = IsLongPressingIn[curState] && ( // We *are* long pressing.. // But either has no long handler\n !hasLongPressHandler || !this.touchableLongPressCancelsPress()); // or we're told to ignore it.\n\n var shouldInvokePress = !IsLongPressingIn[curState] || pressIsLongButStillCallOnPress;\n\n if (shouldInvokePress && this.touchableHandlePress) {\n if (!newIsHighlight && !curIsHighlight) {\n // we never highlighted because of delay, but we should highlight now\n this._startHighlight(e);\n\n this._endHighlight(e);\n }\n\n this.touchableHandlePress(e);\n }\n }\n\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.touchableDelayTimeout = null;\n },\n _playTouchSound: function _playTouchSound() {\n UIManager.playTouchSound();\n },\n _startHighlight: function _startHighlight(e) {\n this._savePressInLocation(e);\n\n this.touchableHandleActivePressIn && this.touchableHandleActivePressIn(e);\n },\n _endHighlight: function _endHighlight(e) {\n var _this2 = this;\n\n if (this.touchableHandleActivePressOut) {\n if (this.touchableGetPressOutDelayMS && this.touchableGetPressOutDelayMS()) {\n this.pressOutDelayTimeout = setTimeout(function () {\n _this2.touchableHandleActivePressOut(e);\n }, this.touchableGetPressOutDelayMS());\n } else {\n this.touchableHandleActivePressOut(e);\n }\n }\n },\n // HACK (part 2): basic support for touchable interactions using a keyboard (including\n // delays and longPress)\n touchableHandleKeyEvent: function touchableHandleKeyEvent(e) {\n var type = e.type,\n key = e.key;\n\n if (key === 'Enter' || key === ' ') {\n if (type === 'keydown') {\n if (!this._isTouchableKeyboardActive) {\n if (!this.state.touchable.touchState || this.state.touchable.touchState === States.NOT_RESPONDER) {\n this.touchableHandleResponderGrant(e);\n this._isTouchableKeyboardActive = true;\n }\n }\n } else if (type === 'keyup') {\n if (this._isTouchableKeyboardActive) {\n if (this.state.touchable.touchState && this.state.touchable.touchState !== States.NOT_RESPONDER) {\n this.touchableHandleResponderRelease(e);\n this._isTouchableKeyboardActive = false;\n }\n }\n }\n\n e.stopPropagation(); // prevent the default behaviour unless the Touchable functions as a link\n // and Enter is pressed\n\n if (!(key === 'Enter' && AccessibilityUtil.propsToAriaRole(this.props) === 'link')) {\n e.preventDefault();\n }\n }\n },\n withoutDefaultFocusAndBlur: {}\n};\n/**\n * Provide an optional version of the mixin where `touchableHandleFocus` and\n * `touchableHandleBlur` can be overridden. This allows appropriate defaults to\n * be set on TV platforms, without breaking existing implementations of\n * `Touchable`.\n */\n\nvar touchableHandleFocus = TouchableMixin.touchableHandleFocus,\n touchableHandleBlur = TouchableMixin.touchableHandleBlur,\n TouchableMixinWithoutDefaultFocusAndBlur = _objectWithoutPropertiesLoose(TouchableMixin, [\"touchableHandleFocus\", \"touchableHandleBlur\"]);\n\nTouchableMixin.withoutDefaultFocusAndBlur = TouchableMixinWithoutDefaultFocusAndBlur;\nvar Touchable = {\n Mixin: TouchableMixin,\n TOUCH_TARGET_DEBUG: false,\n // Highlights all touchable targets. Toggle with Inspector.\n\n /**\n * Renders a debugging overlay to visualize touch target with hitSlop (might not work on Android).\n */\n renderDebugView: function renderDebugView(_ref) {\n var color = _ref.color,\n hitSlop = _ref.hitSlop;\n\n if (!Touchable.TOUCH_TARGET_DEBUG) {\n return null;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n throw Error('Touchable.TOUCH_TARGET_DEBUG should not be enabled in prod!');\n }\n\n var debugHitSlopStyle = {};\n hitSlop = hitSlop || {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n };\n\n for (var key in hitSlop) {\n debugHitSlopStyle[key] = -hitSlop[key];\n }\n\n var normalizedColor = normalizeColor(color);\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n var hexColor = '#' + ('00000000' + normalizedColor.toString(16)).substr(-8);\n return /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"none\",\n style: _objectSpread({\n position: 'absolute',\n borderColor: hexColor.slice(0, -2) + '55',\n // More opaque\n borderWidth: 1,\n borderStyle: 'dashed',\n backgroundColor: hexColor.slice(0, -2) + '0F'\n }, debugHitSlopStyle)\n });\n }\n};\nexport default Touchable;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from 'react';\nimport { useCallback, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\nfunction createExtraStyles(activeOpacity, underlayColor) {\n return {\n child: {\n opacity: activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.85\n },\n underlay: {\n backgroundColor: underlayColor === undefined ? 'black' : underlayColor\n }\n };\n}\n\nfunction hasPressHandler(props) {\n return props.onPress != null || props.onPressIn != null || props.onPressOut != null || props.onLongPress != null;\n}\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, which allows\n * the underlay color to show through, darkening or tinting the view.\n *\n * The underlay comes from wrapping the child in a new View, which can affect\n * layout, and sometimes cause unwanted visual artifacts if not used correctly,\n * for example if the backgroundColor of the wrapped view isn't explicitly set\n * to an opaque color.\n *\n * TouchableHighlight must have one child (not zero or more than one).\n * If you wish to have several child components, wrap them in a View.\n */\n\n\nfunction TouchableHighlight(props, forwardedRef) {\n var activeOpacity = props.activeOpacity,\n children = props.children,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onHideUnderlay = props.onHideUnderlay,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n onShowUnderlay = props.onShowUnderlay,\n rejectResponderTermination = props.rejectResponderTermination,\n style = props.style,\n testOnly_pressed = props.testOnly_pressed,\n underlayColor = props.underlayColor,\n rest = _objectWithoutPropertiesLoose(props, [\"activeOpacity\", \"children\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onHideUnderlay\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"onShowUnderlay\", \"rejectResponderTermination\", \"style\", \"testOnly_pressed\", \"underlayColor\"]);\n\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n\n var _useState = useState(testOnly_pressed === true ? createExtraStyles(activeOpacity, underlayColor) : null),\n extraStyles = _useState[0],\n setExtraStyles = _useState[1];\n\n var showUnderlay = useCallback(function () {\n if (!hasPressHandler(props)) {\n return;\n }\n\n setExtraStyles(createExtraStyles(activeOpacity, underlayColor));\n\n if (onShowUnderlay != null) {\n onShowUnderlay();\n }\n }, [activeOpacity, onShowUnderlay, props, underlayColor]);\n var hideUnderlay = useCallback(function () {\n if (testOnly_pressed === true) {\n return;\n }\n\n if (hasPressHandler(props)) {\n setExtraStyles(null);\n\n if (onHideUnderlay != null) {\n onHideUnderlay();\n }\n }\n }, [onHideUnderlay, props, testOnly_pressed]);\n var pressConfig = useMemo(function () {\n return {\n cancelable: !rejectResponderTermination,\n disabled: disabled,\n delayLongPress: delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress: onLongPress,\n onPress: onPress,\n onPressStart: function onPressStart(event) {\n showUnderlay();\n\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n onPressEnd: function onPressEnd(event) {\n hideUnderlay();\n\n if (onPressOut != null) {\n onPressOut(event);\n }\n }\n };\n }, [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, showUnderlay, hideUnderlay]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var child = React.Children.only(children);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n ref: setRef,\n style: [styles.root, style, !disabled && styles.actionable, extraStyles && extraStyles.underlay]\n }), /*#__PURE__*/React.cloneElement(child, {\n style: StyleSheet.compose(child.props.style, extraStyles && extraStyles.child)\n }));\n}\n\nvar styles = StyleSheet.create({\n root: {\n userSelect: 'none'\n },\n actionable: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedTouchableHighlight = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableHighlight));\nMemoedTouchableHighlight.displayName = 'TouchableHighlight';\nexport default MemoedTouchableHighlight;","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport View from '../../exports/View';\nimport React from 'react';\n/**\n * Common implementation for a simple stubbed view.\n */\n\nvar UnimplementedView = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(UnimplementedView, _React$Component);\n\n function UnimplementedView() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = UnimplementedView.prototype;\n\n _proto.setNativeProps = function setNativeProps() {// Do nothing.\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(View, {\n style: [unimplementedViewStyles, this.props.style]\n }, this.props.children);\n };\n\n return UnimplementedView;\n}(React.Component);\n\nvar unimplementedViewStyles = process.env.NODE_ENV !== 'production' ? {\n alignSelf: 'flex-start',\n borderColor: 'red',\n borderWidth: 1\n} : {};\nexport default UnimplementedView;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code 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}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nimport Dimensions from '../Dimensions';\nimport { useEffect, useState } from 'react';\nexport default function useWindowDimensions() {\n var _useState = useState(function () {\n return Dimensions.get('window');\n }),\n dims = _useState[0],\n setDims = _useState[1];\n\n useEffect(function () {\n function handleChange(_ref) {\n var window = _ref.window;\n\n if (window != null) {\n setDims(window);\n }\n }\n\n Dimensions.addEventListener('change', handleChange); // We might have missed an update between calling `get` in render and\n // `addEventListener` in this handler, so we set it here. If there was\n // no change, React will filter out this update as a no-op.\n\n setDims(Dimensions.get('window'));\n return function () {\n Dimensions.removeEventListener('change', handleChange);\n };\n }, []);\n return dims;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code 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 { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\n\nvar _requestIdleCallback = function _requestIdleCallback(cb, options) {\n return setTimeout(function () {\n var start = Date.now();\n cb({\n didTimeout: false,\n timeRemaining: function timeRemaining() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\n\nvar _cancelIdleCallback = function _cancelIdleCallback(id) {\n clearTimeout(id);\n};\n\nvar isSupported = canUseDOM && typeof window.requestIdleCallback !== 'undefined';\nvar requestIdleCallback = isSupported ? window.requestIdleCallback : _requestIdleCallback;\nvar cancelIdleCallback = isSupported ? window.cancelIdleCallback : _cancelIdleCallback;\nexport default requestIdleCallback;\nexport { cancelIdleCallback };","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport invariant from 'fbjs/lib/invariant';\nimport requestIdleCallback, { cancelIdleCallback } from '../../modules/requestIdleCallback';\nvar InteractionManager = {\n Events: {\n interactionStart: 'interactionStart',\n interactionComplete: 'interactionComplete'\n },\n\n /**\n * Schedule a function to run after all interactions have completed.\n */\n runAfterInteractions: function runAfterInteractions(task) {\n var handle;\n var promise = new Promise(function (resolve) {\n handle = requestIdleCallback(function () {\n if (task) {\n resolve(task());\n } else {\n resolve();\n }\n });\n });\n return {\n then: promise.then.bind(promise),\n done: promise.then.bind(promise),\n cancel: function cancel() {\n cancelIdleCallback(handle);\n }\n };\n },\n\n /**\n * Notify manager that an interaction has started.\n */\n createInteractionHandle: function createInteractionHandle() {\n return 1;\n },\n\n /**\n * Notify manager that an interaction has completed.\n */\n clearInteractionHandle: function clearInteractionHandle(handle) {\n invariant(!!handle, 'Must provide a handle to clear.');\n },\n addListener: function addListener() {}\n};\nexport default InteractionManager;","module.exports = require(\"regenerator-runtime\");\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) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport EventEmitter from './_EventEmitter';\nexport default EventEmitter;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport EventEmitter from '../emitter/EventEmitter'; // FIXME: use typed events\n\n/**\n * Global EventEmitter used by the native platform to emit events to JavaScript.\n * Events are identified by globally unique event names.\n *\n * NativeModules that emit events should instead subclass `NativeEventEmitter`.\n */\nexport default new EventEmitter();","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nexport 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}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport UIManager from '../../exports/UIManager';\nimport createDOMProps from '../createDOMProps';\nimport useStable from '../useStable';\nimport { useRef } from 'react';\nvar emptyObject = {};\n\nfunction setNativeProps(node, nativeProps, classList, pointerEvents, style, previousStyleRef) {\n if (node != null && nativeProps) {\n var domProps = createDOMProps(null, _objectSpread(_objectSpread({\n pointerEvents: pointerEvents\n }, nativeProps), {}, {\n classList: [classList, nativeProps.className],\n style: [style, nativeProps.style]\n }));\n var nextDomStyle = domProps.style;\n\n if (previousStyleRef.current != null) {\n if (domProps.style == null) {\n domProps.style = {};\n }\n\n for (var styleName in previousStyleRef.current) {\n if (domProps.style[styleName] == null) {\n domProps.style[styleName] = '';\n }\n }\n }\n\n previousStyleRef.current = nextDomStyle;\n UIManager.updateView(node, domProps);\n }\n}\n/**\n * Adds non-standard methods to the hode element. This is temporarily until an\n * API like `ReactNative.measure(hostRef, callback)` is added to React Native.\n */\n\n\nexport default function usePlatformMethods(_ref) {\n var classList = _ref.classList,\n pointerEvents = _ref.pointerEvents,\n style = _ref.style;\n var previousStyleRef = useRef(null);\n var setNativePropsArgsRef = useRef(null);\n setNativePropsArgsRef.current = {\n classList: classList,\n pointerEvents: pointerEvents,\n style: style\n }; // Avoid creating a new ref on every render. The props only need to be\n // available to 'setNativeProps' when it is called.\n\n var ref = useStable(function () {\n return function (hostNode) {\n if (hostNode != null) {\n hostNode.measure = function (callback) {\n return UIManager.measure(hostNode, callback);\n };\n\n hostNode.measureLayout = function (relativeToNode, success, failure) {\n return UIManager.measureLayout(hostNode, relativeToNode, failure, success);\n };\n\n hostNode.measureInWindow = function (callback) {\n return UIManager.measureInWindow(hostNode, callback);\n };\n\n hostNode.setNativeProps = function (nativeProps) {\n var _ref2 = setNativePropsArgsRef.current || emptyObject,\n classList = _ref2.classList,\n style = _ref2.style,\n pointerEvents = _ref2.pointerEvents;\n\n setNativeProps(hostNode, nativeProps, classList, pointerEvents, style, previousStyleRef);\n };\n }\n };\n });\n return ref;\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nvar DELAY = 'DELAY';\nvar ERROR = 'ERROR';\nvar LONG_PRESS_DETECTED = 'LONG_PRESS_DETECTED';\nvar NOT_RESPONDER = 'NOT_RESPONDER';\nvar RESPONDER_ACTIVE_LONG_PRESS_START = 'RESPONDER_ACTIVE_LONG_PRESS_START';\nvar RESPONDER_ACTIVE_PRESS_START = 'RESPONDER_ACTIVE_PRESS_START';\nvar RESPONDER_INACTIVE_PRESS_START = 'RESPONDER_INACTIVE_PRESS_START';\nvar RESPONDER_GRANT = 'RESPONDER_GRANT';\nvar RESPONDER_RELEASE = 'RESPONDER_RELEASE';\nvar RESPONDER_TERMINATED = 'RESPONDER_TERMINATED';\nvar Transitions = Object.freeze({\n NOT_RESPONDER: {\n DELAY: ERROR,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: ERROR,\n RESPONDER_TERMINATED: ERROR,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_INACTIVE_PRESS_START: {\n DELAY: RESPONDER_ACTIVE_PRESS_START,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_ACTIVE_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n RESPONDER_ACTIVE_LONG_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n ERROR: {\n DELAY: NOT_RESPONDER,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: NOT_RESPONDER\n }\n});\n\nvar isActiveSignal = function isActiveSignal(signal) {\n return signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n};\n\nvar isButtonRole = function isButtonRole(element) {\n return element.getAttribute('role') === 'button';\n};\n\nvar isPressStartSignal = function isPressStartSignal(signal) {\n return signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n};\n\nvar isTerminalSignal = function isTerminalSignal(signal) {\n return signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE;\n};\n\nvar isValidKeyPress = function isValidKeyPress(event) {\n var key = event.key,\n target = event.target;\n var role = target.getAttribute('role');\n var isSpacebar = key === ' ' || key === 'Spacebar';\n return key === 'Enter' || isSpacebar && role === 'button';\n};\n\nvar DEFAULT_LONG_PRESS_DELAY_MS = 450; // 500 - 50\n\nvar DEFAULT_PRESS_DELAY_MS = 50;\n/**\n * =========================== PressResponder Tutorial ===========================\n *\n * The `PressResponder` class helps you create press interactions by analyzing the\n * geometry of elements and observing when another responder (e.g. ScrollView)\n * has stolen the touch lock. It offers hooks for your component to provide\n * interaction feedback to the user:\n *\n * - When a press has activated (e.g. highlight an element)\n * - When a press has deactivated (e.g. un-highlight an element)\n * - When a press sould trigger an action, meaning it activated and deactivated\n * while within the geometry of the element without the lock being stolen.\n *\n * A high quality interaction isn't as simple as you might think. There should\n * be a slight delay before activation. Moving your finger beyond an element's\n * bounds should trigger deactivation, but moving the same finger back within an\n * element's bounds should trigger reactivation.\n *\n * In order to use `PressResponder`, do the following:\n *\n * const pressResponder = new PressResponder(config);\n *\n * 2. Choose the rendered component who should collect the press events. On that\n * element, spread `pressability.getEventHandlers()` into its props.\n *\n * return (\n * \n * );\n *\n * 3. Reset `PressResponder` when your component unmounts.\n *\n * componentWillUnmount() {\n * this.state.pressResponder.reset();\n * }\n *\n * ==================== Implementation Details ====================\n *\n * `PressResponder` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * # Geometry\n *\n * ┌────────────────────────┐\n * │ ┌──────────────────┐ │ - Presses start anywhere within `HitRect`.\n * │ │ ┌────────────┐ │ │\n * │ │ │ VisualRect │ │ │\n * │ │ └────────────┘ │ │ - When pressed down for sufficient amount of time\n * │ │ HitRect │ │ before letting up, `VisualRect` activates.\n * │ └──────────────────┘ │\n * │ Out Region o │\n * └────────────────────│───┘\n * └────── When the press is released outside the `HitRect`,\n * the responder is NOT eligible for a \"press\".\n *\n * # State Machine\n *\n * ┌───────────────┐ ◀──── RESPONDER_RELEASE\n * │ NOT_RESPONDER │\n * └───┬───────────┘ ◀──── RESPONDER_TERMINATED\n * │\n * │ RESPONDER_GRANT (HitRect)\n * │\n * ▼\n * ┌─────────────────────┐ ┌───────────────────┐ ┌───────────────────┐\n * │ RESPONDER_INACTIVE_ │ DELAY │ RESPONDER_ACTIVE_ │ T + DELAY │ RESPONDER_ACTIVE_ │\n * │ PRESS_START ├────────▶ │ PRESS_START ├────────────▶ │ LONG_PRESS_START │\n * └─────────────────────┘ └───────────────────┘ └───────────────────┘\n *\n * T + DELAY => LONG_PRESS_DELAY + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the invocation of `onLongPress`. Only when the browser produces a\n * `click` event is `onPress` invoked.\n */\n\nvar PressResponder = /*#__PURE__*/function () {\n function PressResponder(config) {\n this._eventHandlers = null;\n this._isPointerTouch = false;\n this._longPressDelayTimeout = null;\n this._longPressDispatched = false;\n this._pressDelayTimeout = null;\n this._pressOutDelayTimeout = null;\n this._touchState = NOT_RESPONDER;\n this.configure(config);\n }\n\n var _proto = PressResponder.prototype;\n\n _proto.configure = function configure(config) {\n this._config = config;\n }\n /**\n * Resets any pending timers. This should be called on unmount.\n */\n ;\n\n _proto.reset = function reset() {\n this._cancelLongPressDelayTimeout();\n\n this._cancelPressDelayTimeout();\n\n this._cancelPressOutDelayTimeout();\n }\n /**\n * Returns a set of props to spread into the interactive element.\n */\n ;\n\n _proto.getEventHandlers = function getEventHandlers() {\n if (this._eventHandlers == null) {\n this._eventHandlers = this._createEventHandlers();\n }\n\n return this._eventHandlers;\n };\n\n _proto._createEventHandlers = function _createEventHandlers() {\n var _this = this;\n\n var start = function start(event, shouldDelay) {\n event.persist();\n\n _this._cancelPressOutDelayTimeout();\n\n _this._longPressDispatched = false;\n _this._selectionTerminated = false;\n _this._touchState = NOT_RESPONDER;\n _this._isPointerTouch = event.nativeEvent.type === 'touchstart';\n\n _this._receiveSignal(RESPONDER_GRANT, event);\n\n var delayPressStart = normalizeDelay(_this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);\n\n if (shouldDelay !== false && delayPressStart > 0) {\n _this._pressDelayTimeout = setTimeout(function () {\n _this._receiveSignal(DELAY, event);\n }, delayPressStart);\n } else {\n _this._receiveSignal(DELAY, event);\n }\n\n var delayLongPress = normalizeDelay(_this._config.delayLongPress, 10, DEFAULT_LONG_PRESS_DELAY_MS);\n _this._longPressDelayTimeout = setTimeout(function () {\n _this._handleLongPress(event);\n }, delayLongPress + delayPressStart);\n };\n\n var end = function end(event) {\n _this._receiveSignal(RESPONDER_RELEASE, event);\n };\n\n var keyupHandler = function keyupHandler(event) {\n var onPress = _this._config.onPress;\n var target = event.target;\n\n if (_this._touchState !== NOT_RESPONDER && isValidKeyPress(event)) {\n end(event);\n document.removeEventListener('keyup', keyupHandler);\n var role = target.getAttribute('role');\n var elementType = target.tagName.toLowerCase();\n var isNativeInteractiveElement = role === 'link' || elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea';\n\n if (onPress != null && !isNativeInteractiveElement) {\n onPress(event);\n }\n }\n };\n\n return {\n onStartShouldSetResponder: function onStartShouldSetResponder(event) {\n var disabled = _this._config.disabled;\n\n if (disabled && isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n\n if (disabled == null) {\n return true;\n }\n\n return !disabled;\n },\n onKeyDown: function onKeyDown(event) {\n var disabled = _this._config.disabled;\n var key = event.key,\n target = event.target;\n\n if (!disabled && isValidKeyPress(event)) {\n if (_this._touchState === NOT_RESPONDER) {\n start(event, false); // Listen to 'keyup' on document to account for situations where\n // focus is moved to another element during 'keydown'.\n\n document.addEventListener('keyup', keyupHandler);\n }\n\n var role = target.getAttribute('role');\n var isSpacebarKey = key === ' ' || key === 'Spacebar';\n\n var _isButtonRole = role === 'button' || role === 'menuitem';\n\n if (isSpacebarKey && _isButtonRole) {\n // Prevent spacebar scrolling the window\n event.preventDefault();\n }\n\n event.stopPropagation();\n }\n },\n onResponderGrant: function onResponderGrant(event) {\n return start(event);\n },\n onResponderMove: function onResponderMove(event) {\n if (_this._config.onPressMove != null) {\n _this._config.onPressMove(event);\n }\n\n var touch = getTouchFromResponderEvent(event);\n\n if (_this._touchActivatePosition != null) {\n var deltaX = _this._touchActivatePosition.pageX - touch.pageX;\n var deltaY = _this._touchActivatePosition.pageY - touch.pageY;\n\n if (Math.hypot(deltaX, deltaY) > 10) {\n _this._cancelLongPressDelayTimeout();\n }\n }\n },\n onResponderRelease: function onResponderRelease(event) {\n return end(event);\n },\n onResponderTerminate: function onResponderTerminate(event) {\n if (event.nativeEvent.type === 'selectionchange') {\n _this._selectionTerminated = true;\n }\n\n _this._receiveSignal(RESPONDER_TERMINATED, event);\n },\n onResponderTerminationRequest: function onResponderTerminationRequest(event) {\n var _this$_config = _this._config,\n cancelable = _this$_config.cancelable,\n disabled = _this$_config.disabled,\n onLongPress = _this$_config.onLongPress; // If `onLongPress` is provided, don't terminate on `contextmenu` as default\n // behavior will be prevented for non-mouse pointers.\n\n if (!disabled && onLongPress != null && _this._isPointerTouch && event.nativeEvent.type === 'contextmenu') {\n return false;\n }\n\n if (cancelable == null) {\n return true;\n }\n\n return cancelable;\n },\n // NOTE: this diverges from react-native in 3 significant ways:\n // * The `onPress` callback is not connected to the responder system (the native\n // `click` event must be used but is dispatched in many scenarios where no pointers\n // are on the screen.) Therefore, it's possible for `onPress` to be called without\n // `onPress{Start,End}` being called first.\n // * The `onPress` callback is only be called on the first ancestor of the native\n // `click` target that is using the PressResponder.\n // * The event's `nativeEvent` is a `MouseEvent` not a `TouchEvent`.\n onClick: function onClick(event) {\n var _this$_config2 = _this._config,\n disabled = _this$_config2.disabled,\n onPress = _this$_config2.onPress;\n\n if (!disabled) {\n // If long press dispatched, cancel default click behavior.\n // If the responder terminated because text was selected during the gesture,\n // cancel the default click behavior.\n event.stopPropagation();\n\n if (_this._longPressDispatched || _this._selectionTerminated) {\n event.preventDefault();\n } else if (onPress != null && event.altKey === false) {\n onPress(event);\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n },\n // If `onLongPress` is provided and a touch pointer is being used, prevent the\n // default context menu from opening.\n onContextMenu: function onContextMenu(event) {\n var _this$_config3 = _this._config,\n disabled = _this$_config3.disabled,\n onLongPress = _this$_config3.onLongPress;\n\n if (!disabled) {\n if (onLongPress != null && _this._isPointerTouch && !event.defaultPrevented) {\n event.preventDefault();\n event.stopPropagation();\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n }\n };\n }\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n */\n ;\n\n _proto._receiveSignal = function _receiveSignal(signal, event) {\n var prevState = this._touchState;\n var nextState = null;\n\n if (Transitions[prevState] != null) {\n nextState = Transitions[prevState][signal];\n }\n\n if (this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) {\n return;\n }\n\n if (nextState == null || nextState === ERROR) {\n console.error(\"PressResponder: Invalid signal \" + signal + \" for state \" + prevState + \" on responder\");\n } else if (prevState !== nextState) {\n this._performTransitionSideEffects(prevState, nextState, signal, event);\n\n this._touchState = nextState;\n }\n }\n /**\n * Performs a transition between touchable states and identify any activations\n * or deactivations (and callback invocations).\n */\n ;\n\n _proto._performTransitionSideEffects = function _performTransitionSideEffects(prevState, nextState, signal, event) {\n if (isTerminalSignal(signal)) {\n this._isPointerTouch = false;\n this._touchActivatePosition = null;\n\n this._cancelLongPressDelayTimeout();\n }\n\n if (isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {\n var onLongPress = this._config.onLongPress; // Long press is not supported for keyboards because 'click' can be dispatched\n // immediately (and multiple times) after 'keydown'.\n\n if (onLongPress != null && event.nativeEvent.key == null) {\n onLongPress(event);\n this._longPressDispatched = true;\n }\n }\n\n var isPrevActive = isActiveSignal(prevState);\n var isNextActive = isActiveSignal(nextState);\n\n if (!isPrevActive && isNextActive) {\n this._activate(event);\n } else if (isPrevActive && !isNextActive) {\n this._deactivate(event);\n }\n\n if (isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {\n var _this$_config4 = this._config,\n _onLongPress = _this$_config4.onLongPress,\n onPress = _this$_config4.onPress;\n\n if (onPress != null) {\n var isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;\n\n if (!isPressCanceledByLongPress) {\n // If we never activated (due to delays), activate and deactivate now.\n if (!isNextActive && !isPrevActive) {\n this._activate(event);\n\n this._deactivate(event);\n }\n }\n }\n }\n\n this._cancelPressDelayTimeout();\n };\n\n _proto._activate = function _activate(event) {\n var _this$_config5 = this._config,\n onPressChange = _this$_config5.onPressChange,\n onPressStart = _this$_config5.onPressStart;\n var touch = getTouchFromResponderEvent(event);\n this._touchActivatePosition = {\n pageX: touch.pageX,\n pageY: touch.pageY\n };\n\n if (onPressStart != null) {\n onPressStart(event);\n }\n\n if (onPressChange != null) {\n onPressChange(true);\n }\n };\n\n _proto._deactivate = function _deactivate(event) {\n var _this$_config6 = this._config,\n onPressChange = _this$_config6.onPressChange,\n onPressEnd = _this$_config6.onPressEnd;\n\n function end() {\n if (onPressEnd != null) {\n onPressEnd(event);\n }\n\n if (onPressChange != null) {\n onPressChange(false);\n }\n }\n\n var delayPressEnd = normalizeDelay(this._config.delayPressEnd);\n\n if (delayPressEnd > 0) {\n this._pressOutDelayTimeout = setTimeout(function () {\n end();\n }, delayPressEnd);\n } else {\n end();\n }\n };\n\n _proto._handleLongPress = function _handleLongPress(event) {\n if (this._touchState === RESPONDER_ACTIVE_PRESS_START || this._touchState === RESPONDER_ACTIVE_LONG_PRESS_START) {\n this._receiveSignal(LONG_PRESS_DETECTED, event);\n }\n };\n\n _proto._cancelLongPressDelayTimeout = function _cancelLongPressDelayTimeout() {\n if (this._longPressDelayTimeout != null) {\n clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n }\n };\n\n _proto._cancelPressDelayTimeout = function _cancelPressDelayTimeout() {\n if (this._pressDelayTimeout != null) {\n clearTimeout(this._pressDelayTimeout);\n this._pressDelayTimeout = null;\n }\n };\n\n _proto._cancelPressOutDelayTimeout = function _cancelPressOutDelayTimeout() {\n if (this._pressOutDelayTimeout != null) {\n clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n }\n };\n\n return PressResponder;\n}();\n\nexport { PressResponder as default };\n\nfunction normalizeDelay(delay, min, fallback) {\n if (min === void 0) {\n min = 0;\n }\n\n if (fallback === void 0) {\n fallback = 0;\n }\n\n return Math.max(min, delay !== null && delay !== void 0 ? delay : fallback);\n}\n\nfunction getTouchFromResponderEvent(event) {\n var _event$nativeEvent = event.nativeEvent,\n changedTouches = _event$nativeEvent.changedTouches,\n touches = _event$nativeEvent.touches;\n\n if (touches != null && touches.length > 0) {\n return touches[0];\n }\n\n if (changedTouches != null && changedTouches.length > 0) {\n return changedTouches[0];\n }\n\n return event.nativeEvent;\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport PressResponder from './PressResponder';\nimport { useDebugValue, useEffect, useRef } from 'react';\nexport default function usePressEvents(hostRef, config) {\n var pressResponderRef = useRef(null);\n\n if (pressResponderRef.current == null) {\n pressResponderRef.current = new PressResponder(config);\n }\n\n var pressResponder = pressResponderRef.current; // Re-configure to use the current node and configuration.\n\n useEffect(function () {\n pressResponder.configure(config);\n }, [config, pressResponder]); // Reset the `pressResponder` when cleanup needs to occur. This is\n // a separate effect because we do not want to rest the responder when `config` changes.\n\n useEffect(function () {\n return function () {\n pressResponder.reset();\n };\n }, [pressResponder]);\n useDebugValue(config);\n return pressResponder.getEventHandlers();\n}","var toSJISFunction\nvar CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n 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","var VersionCheck = require('./version-check')\nvar Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n var lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","/**\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) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport invariant from 'fbjs/lib/invariant';\nvar _uniqueId = 1;\n/**\n * 2D Value for driving 2D animations, such as pan gestures. Almost identical\n * API to normal `Animated.Value`, but multiplexed.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html\n */\n\nvar AnimatedValueXY = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedValueXY, _AnimatedWithChildren);\n\n function AnimatedValueXY(valueIn) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n var value = valueIn || {\n x: 0,\n y: 0\n }; // fixme: shouldn't need `: any`\n\n if (typeof value.x === 'number' && typeof value.y === 'number') {\n _this.x = new AnimatedValue(value.x);\n _this.y = new AnimatedValue(value.y);\n } else {\n invariant(value.x instanceof AnimatedValue && value.y instanceof AnimatedValue, 'AnimatedValueXY must be initialized with an object of numbers or ' + 'AnimatedValues.');\n _this.x = value.x;\n _this.y = value.y;\n }\n\n _this._listeners = {};\n return _this;\n }\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#setvalue\n */\n\n\n var _proto = AnimatedValueXY.prototype;\n\n _proto.setValue = function setValue(value) {\n this.x.setValue(value.x);\n this.y.setValue(value.y);\n }\n /**\n * Sets an offset that is applied on top of whatever value is set, whether\n * via `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#setoffset\n */\n ;\n\n _proto.setOffset = function setOffset(offset) {\n this.x.setOffset(offset.x);\n this.y.setOffset(offset.y);\n }\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#flattenoffset\n */\n ;\n\n _proto.flattenOffset = function flattenOffset() {\n this.x.flattenOffset();\n this.y.flattenOffset();\n }\n /**\n * Sets the offset value to the base value, and resets the base value to\n * zero. The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#extractoffset\n */\n ;\n\n _proto.extractOffset = function extractOffset() {\n this.x.extractOffset();\n this.y.extractOffset();\n };\n\n _proto.__getValue = function __getValue() {\n return {\n x: this.x.__getValue(),\n y: this.y.__getValue()\n };\n }\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#resetanimation\n */\n ;\n\n _proto.resetAnimation = function resetAnimation(callback) {\n this.x.resetAnimation();\n this.y.resetAnimation();\n callback && callback(this.__getValue());\n }\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#stopanimation\n */\n ;\n\n _proto.stopAnimation = function stopAnimation(callback) {\n this.x.stopAnimation();\n this.y.stopAnimation();\n callback && callback(this.__getValue());\n }\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to synchronously read\n * the value because it might be driven natively.\n *\n * Returns a string that serves as an identifier for the listener.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#addlistener\n */\n ;\n\n _proto.addListener = function addListener(callback) {\n var _this2 = this;\n\n var id = String(_uniqueId++);\n\n var jointCallback = function jointCallback(_ref) {\n var number = _ref.value;\n callback(_this2.__getValue());\n };\n\n this._listeners[id] = {\n x: this.x.addListener(jointCallback),\n y: this.y.addListener(jointCallback)\n };\n return id;\n }\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#removelistener\n */\n ;\n\n _proto.removeListener = function removeListener(id) {\n this.x.removeListener(this._listeners[id].x);\n this.y.removeListener(this._listeners[id].y);\n delete this._listeners[id];\n }\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#removealllisteners\n */\n ;\n\n _proto.removeAllListeners = function removeAllListeners() {\n this.x.removeAllListeners();\n this.y.removeAllListeners();\n this._listeners = {};\n }\n /**\n * Converts `{x, y}` into `{left, top}` for use in style.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#getlayout\n */\n ;\n\n _proto.getLayout = function getLayout() {\n return {\n left: this.x,\n top: this.y\n };\n }\n /**\n * Converts `{x, y}` into a useable translation transform.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#gettranslatetransform\n */\n ;\n\n _proto.getTranslateTransform = function getTranslateTransform() {\n return [{\n translateX: this.x\n }, {\n translateY: this.y\n }];\n };\n\n return AnimatedValueXY;\n}(AnimatedWithChildren);\n\nexport default AnimatedValueXY;","/**\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) 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;","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles };\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * Implementation of a subset of node.js Buffer methods for the browser.\n * Based on https://github.com/feross/buffer\n */\n\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar isArray = require('isarray')\n\nfunction typedArraySupport () {\n // Can typed array instances be augmented?\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nvar K_MAX_LENGTH = Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n\nfunction Buffer (arg, offset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, offset, length)\n }\n\n if (typeof arg === 'number') {\n return allocUnsafe(this, arg)\n }\n\n return from(this, arg, offset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true,\n enumerable: false,\n writable: false\n })\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\nfunction createBuffer (that, length) {\n var buf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n buf = new Uint8Array(length)\n buf.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n buf = that\n if (buf === null) {\n buf = new Buffer(length)\n }\n buf.length = length\n }\n\n return buf\n}\n\nfunction allocUnsafe (that, size) {\n var buf = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n buf[i] = 0\n }\n }\n\n return buf\n}\n\nfunction fromString (that, string) {\n var length = byteLength(string) | 0\n var buf = createBuffer(that, length)\n\n var actual = buf.write(string)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n buf.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n buf = fromArrayLike(that, buf)\n }\n\n return buf\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(that, len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction byteLength (string) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n return utf8ToBytes(string).length\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction from (that, value, offset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, offset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, offset)\n }\n\n return fromObject(that, value)\n}\n\nBuffer.prototype.write = function write (string, offset, length) {\n // Buffer#write(string)\n if (offset === undefined) {\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n } else {\n length = undefined\n }\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n return utf8Write(this, string, offset, length)\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\nBuffer.prototype.fill = function fill (val, start, end) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : new Buffer(val)\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return createBuffer(null, 0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = allocUnsafe(null, length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nBuffer.byteLength = byteLength\n\nBuffer.prototype._isBuffer = true\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nmodule.exports.alloc = function (size) {\n var buffer = new Buffer(size)\n buffer.fill(0)\n return buffer\n}\n\nmodule.exports.from = function (data) {\n return new Buffer(data)\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport css from '../StyleSheet/css';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from './TextAncestorContext';\n\nvar forwardPropsList = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, forwardedProps.defaultProps), forwardedProps.accessibilityProps), forwardedProps.clickProps), forwardedProps.focusProps), forwardedProps.keyboardProps), forwardedProps.mouseProps), forwardedProps.touchProps), forwardedProps.styleProps), {}, {\n href: true,\n lang: true,\n pointerEvents: true\n});\n\nvar pickProps = function pickProps(props) {\n return pick(props, forwardPropsList);\n};\n\nvar Text = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var dir = props.dir,\n hrefAttrs = props.hrefAttrs,\n numberOfLines = props.numberOfLines,\n onClick = props.onClick,\n onLayout = props.onLayout,\n onPress = props.onPress,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n selectable = props.selectable;\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hostRef = React.useRef(null);\n var classList = [classes.text, hasTextAncestor === true && classes.textHasAncestor, numberOfLines != null && classes.textMultiLine];\n var style = [props.style, numberOfLines != null && {\n WebkitLineClamp: numberOfLines\n }, selectable === true && styles.selectable, selectable === false && styles.notSelectable, onPress && styles.pressable];\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder: onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture: onMoveShouldSetResponderCapture,\n onResponderEnd: onResponderEnd,\n onResponderGrant: onResponderGrant,\n onResponderMove: onResponderMove,\n onResponderReject: onResponderReject,\n onResponderRelease: onResponderRelease,\n onResponderStart: onResponderStart,\n onResponderTerminate: onResponderTerminate,\n onResponderTerminationRequest: onResponderTerminationRequest,\n onScrollShouldSetResponder: onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture: onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder: onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture: onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder: onStartShouldSetResponder,\n onStartShouldSetResponderCapture: onStartShouldSetResponderCapture\n });\n var handleClick = React.useCallback(function (e) {\n if (onClick != null) {\n onClick(e);\n } else if (onPress != null) {\n e.stopPropagation();\n onPress(e);\n }\n }, [onClick, onPress]);\n var component = hasTextAncestor ? 'span' : 'div';\n var supportedProps = pickProps(props);\n supportedProps.classList = classList;\n supportedProps.dir = dir; // 'auto' by default allows browsers to infer writing direction (root elements only)\n\n if (!hasTextAncestor) {\n supportedProps.dir = dir != null ? dir : 'auto';\n }\n\n if (onClick || onPress) {\n supportedProps.onClick = handleClick;\n }\n\n supportedProps.style = style;\n\n if (props.href != null) {\n component = 'a';\n\n if (hrefAttrs != null) {\n var download = hrefAttrs.download,\n rel = hrefAttrs.rel,\n target = hrefAttrs.target;\n\n if (download != null) {\n supportedProps.download = download;\n }\n\n if (rel != null) {\n supportedProps.rel = rel;\n }\n\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\n }\n }\n }\n\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n var element = createElement(component, supportedProps);\n return hasTextAncestor ? element : /*#__PURE__*/React.createElement(TextAncestorContext.Provider, {\n value: true\n }, element);\n});\nText.displayName = 'Text';\nvar classes = css.create({\n text: {\n border: '0 solid black',\n boxSizing: 'border-box',\n color: 'black',\n display: 'inline',\n font: '14px System',\n margin: 0,\n padding: 0,\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word'\n },\n textHasAncestor: {\n color: 'inherit',\n font: 'inherit',\n whiteSpace: 'inherit'\n },\n // See #13\n textMultiLine: {\n display: '-webkit-box',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n WebkitBoxOrient: 'vertical'\n }\n});\nvar styles = StyleSheet.create({\n notSelectable: {\n userSelect: 'none'\n },\n selectable: {\n userSelect: 'text'\n },\n pressable: {\n cursor: 'pointer'\n }\n});\nexport default Text;","/*\n * Copyright (c) 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\nfunction normalizeColor(color) {\n var match;\n\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers.hex6.exec(color))) {\n return parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n if (names.hasOwnProperty(color)) {\n return names[color];\n }\n\n if ((match = matchers.rgb.exec(color))) {\n return (\n parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n 0x000000ff // a\n ) >>> 0;\n }\n\n if ((match = matchers.rgba.exec(color))) {\n return (\n parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n parse1(match[4]) // a\n ) >>> 0;\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return parseInt(\n match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n 'ff', // a\n 16\n ) >>> 0;\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers.hex8.exec(color))) {\n return parseInt(match[1], 16) >>> 0;\n }\n\n if ((match = matchers.hex4.exec(color))) {\n return parseInt(\n match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n match[4] + match[4], // a\n 16\n ) >>> 0;\n }\n\n if ((match = matchers.hsl.exec(color))) {\n return (\n hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n 0x000000ff // a\n ) >>> 0;\n }\n\n if ((match = matchers.hsla.exec(color))) {\n return (\n hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n parse1(match[4]) // a\n ) >>> 0;\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n var r = hue2rgb(p, q, h + 1 / 3);\n var g = hue2rgb(p, q, h);\n var b = hue2rgb(p, q, h - 1 / 3);\n\n return (\n Math.round(r * 255) << 24 |\n Math.round(g * 255) << 16 |\n Math.round(b * 255) << 8\n );\n}\n\n// var INTEGER = '[-+]?\\\\d+';\nvar NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nvar PERCENTAGE = NUMBER + '%';\n\nfunction toArray(arrayLike) {\n return Array.prototype.slice.call(arrayLike, 0);\n}\n\nfunction call() {\n return '\\\\(\\\\s*(' + toArray(arguments).join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nvar matchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER)),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/,\n};\n\nfunction parse255(str) {\n var int = parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\n\nfunction parse360(str) {\n var int = parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str) {\n var num = parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n var int = parseFloat(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nvar names = {\n transparent: 0x00000000,\n\n // http://www.w3.org/TR/css3-color/#svg-color\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff,\n};\n\nfunction rgba(colorInt) {\n var r = Math.round(((colorInt & 0xff000000) >>> 24));\n var g = Math.round(((colorInt & 0x00ff0000) >>> 16));\n var b = Math.round(((colorInt & 0x0000ff00) >>> 8));\n var a = ((colorInt & 0x000000ff) >>> 0) / 255;\n return {\n r: r,\n g: g,\n b: b,\n a: a,\n };\n};\n\nnormalizeColor.rgba = rgba;\n\nmodule.exports = normalizeColor;\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar startNativeAnimationNextId = 1; // Important note: start() and stop() will only be called at most once.\n// Once an animation has been stopped or finished its course, it will\n// not be reused.\n\nvar Animation = /*#__PURE__*/function () {\n function Animation() {}\n\n var _proto = Animation.prototype;\n\n _proto.start = function start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {};\n\n _proto.stop = function stop() {\n if (this.__nativeId) {\n NativeAnimatedHelper.API.stopAnimation(this.__nativeId);\n }\n };\n\n _proto.__getNativeAnimationConfig = function __getNativeAnimationConfig() {\n // Subclasses that have corresponding animation implementation done in native\n // should override this method\n throw new Error('This animation type cannot be offloaded to native');\n } // Helper function for subclasses to make sure onEnd is only called once.\n ;\n\n _proto.__debouncedOnEnd = function __debouncedOnEnd(result) {\n var onEnd = this.__onEnd;\n this.__onEnd = null;\n onEnd && onEnd(result);\n };\n\n _proto.__startNativeAnimation = function __startNativeAnimation(animatedValue) {\n var startNativeAnimationWaitId = startNativeAnimationNextId + \":startAnimation\";\n startNativeAnimationNextId += 1;\n NativeAnimatedHelper.API.setWaitingForIdentifier(startNativeAnimationWaitId);\n\n try {\n animatedValue.__makeNative();\n\n this.__nativeId = NativeAnimatedHelper.generateNewAnimationId();\n NativeAnimatedHelper.API.startAnimatingNode(this.__nativeId, animatedValue.__getNativeTag(), this.__getNativeAnimationConfig(), this.__debouncedOnEnd.bind(this));\n } catch (e) {\n throw e;\n } finally {\n NativeAnimatedHelper.API.unsetWaitingForIdentifier(startNativeAnimationWaitId);\n }\n };\n\n return Animation;\n}();\n\nexport default Animation;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport useLayoutEffect from '../useLayoutEffect';\nimport UIManager from '../../exports/UIManager';\nvar DOM_LAYOUT_HANDLER_NAME = '__reactLayoutHandler';\nvar didWarn = !canUseDOM;\nvar resizeObserver = null;\n\nfunction getResizeObserver() {\n if (canUseDOM && typeof window.ResizeObserver !== 'undefined') {\n if (resizeObserver == null) {\n resizeObserver = new window.ResizeObserver(function (entries) {\n entries.forEach(function (entry) {\n var node = entry.target;\n var onLayout = node[DOM_LAYOUT_HANDLER_NAME];\n\n if (typeof onLayout === 'function') {\n // We still need to measure the view because browsers don't yet provide\n // border-box dimensions in the entry\n UIManager.measure(node, function (x, y, width, height, left, top) {\n var event = {\n // $FlowFixMe\n nativeEvent: {\n layout: {\n x: x,\n y: y,\n width: width,\n height: height,\n left: left,\n top: top\n }\n },\n timeStamp: Date.now()\n };\n Object.defineProperty(event.nativeEvent, 'target', {\n enumerable: true,\n get: function get() {\n return entry.target;\n }\n });\n onLayout(event);\n });\n }\n });\n });\n }\n } else if (!didWarn) {\n if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {\n console.warn('onLayout relies on ResizeObserver which is not supported by your browser. ' + 'Please include a polyfill, e.g., https://github.com/que-etc/resize-observer-polyfill.');\n didWarn = true;\n }\n }\n\n return resizeObserver;\n}\n\nexport default function useElementLayout(ref, onLayout) {\n var observer = getResizeObserver();\n useLayoutEffect(function () {\n var node = ref.current;\n\n if (node != null) {\n node[DOM_LAYOUT_HANDLER_NAME] = onLayout;\n }\n }, [ref, onLayout]); // Observing is done in a separate effect to avoid this effect running\n // when 'onLayout' changes.\n\n useLayoutEffect(function () {\n var node = ref.current;\n\n if (node != null && observer != null) {\n if (typeof node[DOM_LAYOUT_HANDLER_NAME] === 'function') {\n observer.observe(node);\n } else {\n observer.unobserve(node);\n }\n }\n\n return function () {\n if (node != null && observer != null) {\n observer.unobserve(node);\n }\n };\n }, [ref, observer]);\n}","function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport resolveShadowValue from './resolveShadowValue';\nvar defaultOffset = {\n height: 0,\n width: 0\n};\n\nfunction boxShadowReducer(resolvedStyle, style) {\n var boxShadow = style.boxShadow;\n var shadow = resolveShadowValue(style);\n\n if (shadow != null) {\n resolvedStyle.boxShadow = boxShadow ? boxShadow + \", \" + shadow : shadow;\n }\n}\n\nfunction textShadowReducer(resolvedStyle, style) {\n var textShadowColor = style.textShadowColor,\n textShadowOffset = style.textShadowOffset,\n textShadowRadius = style.textShadowRadius;\n\n var _ref = textShadowOffset || defaultOffset,\n height = _ref.height,\n width = _ref.width;\n\n var radius = textShadowRadius || 0;\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(radius);\n var color = normalizeValueWithProperty(textShadowColor, 'textShadowColor');\n\n if (color && (height !== 0 || width !== 0 || radius !== 0) && offsetX != null && offsetY != null && blurRadius != null) {\n resolvedStyle.textShadow = offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n}\n\nvar createCompileableStyle = function createCompileableStyle(styles) {\n var shadowColor = styles.shadowColor,\n shadowOffset = styles.shadowOffset,\n shadowOpacity = styles.shadowOpacity,\n shadowRadius = styles.shadowRadius,\n textShadowColor = styles.textShadowColor,\n textShadowOffset = styles.textShadowOffset,\n textShadowRadius = styles.textShadowRadius,\n nextStyles = _objectWithoutPropertiesLoose(styles, [\"shadowColor\", \"shadowOffset\", \"shadowOpacity\", \"shadowRadius\", \"textShadowColor\", \"textShadowOffset\", \"textShadowRadius\"]);\n\n if (shadowColor != null || shadowOffset != null || shadowOpacity != null || shadowRadius != null) {\n boxShadowReducer(nextStyles, styles);\n }\n\n if (textShadowColor != null || textShadowOffset != null || textShadowRadius != null) {\n textShadowReducer(nextStyles, styles);\n }\n\n return nextStyles;\n};\n\nexport default createCompileableStyle;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar slice = Array.prototype.slice;\n/**\n * Order-based insertion of CSS.\n *\n * Each rule is associated with a numerically defined group.\n * Groups are ordered within the style sheet according to their number, with the\n * lowest first.\n *\n * Groups are implemented using marker rules. The selector of the first rule of\n * each group is used only to encode the group number for hydration. An\n * alternative implementation could rely on CSSMediaRule, allowing groups to be\n * treated as a sub-sheet, but the Edge implementation of CSSMediaRule is\n * broken.\n * https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule\n * https://gist.github.com/necolas/aa0c37846ad6bd3b05b727b959e82674\n */\n\nexport default function createOrderedCSSStyleSheet(sheet) {\n var groups = {};\n var selectors = {};\n /**\n * Hydrate approximate record from any existing rules in the sheet.\n */\n\n if (sheet != null) {\n var group;\n slice.call(sheet.cssRules).forEach(function (cssRule, i) {\n var cssText = cssRule.cssText; // Create record of existing selectors and rules\n\n if (cssText.indexOf('stylesheet-group') > -1) {\n group = decodeGroupRule(cssRule);\n groups[group] = {\n start: i,\n rules: [cssText]\n };\n } else {\n var selectorText = getSelectorText(cssText);\n\n if (selectorText != null) {\n selectors[selectorText] = true;\n groups[group].rules.push(cssText);\n }\n }\n });\n }\n\n function sheetInsert(sheet, group, text) {\n var orderedGroups = getOrderedGroups(groups);\n var groupIndex = orderedGroups.indexOf(group);\n var nextGroupIndex = groupIndex + 1;\n var nextGroup = orderedGroups[nextGroupIndex]; // Insert rule before the next group, or at the end of the stylesheet\n\n var position = nextGroup != null && groups[nextGroup].start != null ? groups[nextGroup].start : sheet.cssRules.length;\n var isInserted = insertRuleAt(sheet, text, position);\n\n if (isInserted) {\n // Set the starting index of the new group\n if (groups[group].start == null) {\n groups[group].start = position;\n } // Increment the starting index of all subsequent groups\n\n\n for (var i = nextGroupIndex; i < orderedGroups.length; i += 1) {\n var groupNumber = orderedGroups[i];\n var previousStart = groups[groupNumber].start || 0;\n groups[groupNumber].start = previousStart + 1;\n }\n }\n\n return isInserted;\n }\n\n var OrderedCSSStyleSheet = {\n /**\n * The textContent of the style sheet.\n */\n getTextContent: function getTextContent() {\n return getOrderedGroups(groups).map(function (group) {\n var rules = groups[group].rules;\n return rules.join('\\n');\n }).join('\\n');\n },\n\n /**\n * Insert a rule into the style sheet\n */\n insert: function insert(cssText, groupValue) {\n var group = Number(groupValue); // Create a new group.\n\n if (groups[group] == null) {\n var markerRule = encodeGroupRule(group); // Create the internal record.\n\n groups[group] = {\n start: null,\n rules: [markerRule]\n }; // Update CSSOM.\n\n if (sheet != null) {\n sheetInsert(sheet, group, markerRule);\n }\n } // selectorText is more reliable than cssText for insertion checks. The\n // browser excludes vendor-prefixed properties and rewrites certain values\n // making cssText more likely to be different from what was inserted.\n\n\n var selectorText = getSelectorText(cssText);\n\n if (selectorText != null && selectors[selectorText] == null) {\n // Update the internal records.\n selectors[selectorText] = true;\n groups[group].rules.push(cssText); // Update CSSOM.\n\n if (sheet != null) {\n var isInserted = sheetInsert(sheet, group, cssText);\n\n if (!isInserted) {\n // Revert internal record change if a rule was rejected (e.g.,\n // unrecognized pseudo-selector)\n groups[group].rules.pop();\n }\n }\n }\n }\n };\n return OrderedCSSStyleSheet;\n}\n/**\n * Helper functions\n */\n\nfunction encodeGroupRule(group) {\n return \"[stylesheet-group=\\\"\" + group + \"\\\"]{}\";\n}\n\nfunction decodeGroupRule(cssRule) {\n return Number(cssRule.selectorText.split(/[\"']/)[1]);\n}\n\nfunction getOrderedGroups(obj) {\n return Object.keys(obj).map(Number).sort(function (a, b) {\n return a > b ? 1 : -1;\n });\n}\n\nvar pattern = /\\s*([,])\\s*/g;\n\nfunction getSelectorText(cssText) {\n var selector = cssText.split('{')[0].trim();\n return selector !== '' ? selector.replace(pattern, '$1') : null;\n}\n\nfunction insertRuleAt(root, cssText, position) {\n try {\n // $FlowFixMe: Flow is missing CSSOM types needed to type 'root'.\n root.insertRule(cssText, position);\n return true;\n } catch (e) {\n // JSDOM doesn't support `CSSSMediaRule#insertRule`.\n // Also ignore errors that occur from attempting to insert vendor-prefixed selectors.\n return false;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nfunction flattenArray(array) {\n function flattenDown(array, result) {\n for (var i = 0; i < array.length; i++) {\n var value = array[i];\n\n if (Array.isArray(value)) {\n flattenDown(value, result);\n } else if (value != null && value !== false) {\n result.push(value);\n }\n }\n\n return result;\n }\n\n return flattenDown(array, []);\n}\n\nexport default flattenArray;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport I18nManager from '../I18nManager';\nimport multiplyStyleLengthValue from '../../modules/multiplyStyleLengthValue';\nvar emptyObject = {};\nvar borderTopLeftRadius = 'borderTopLeftRadius';\nvar borderTopRightRadius = 'borderTopRightRadius';\nvar borderBottomLeftRadius = 'borderBottomLeftRadius';\nvar borderBottomRightRadius = 'borderBottomRightRadius';\nvar borderLeftColor = 'borderLeftColor';\nvar borderLeftStyle = 'borderLeftStyle';\nvar borderLeftWidth = 'borderLeftWidth';\nvar borderRightColor = 'borderRightColor';\nvar borderRightStyle = 'borderRightStyle';\nvar borderRightWidth = 'borderRightWidth';\nvar right = 'right';\nvar marginLeft = 'marginLeft';\nvar marginRight = 'marginRight';\nvar paddingLeft = 'paddingLeft';\nvar paddingRight = 'paddingRight';\nvar left = 'left'; // Map of LTR property names to their BiDi equivalent.\n\nvar PROPERTIES_FLIP = {\n borderTopLeftRadius: borderTopRightRadius,\n borderTopRightRadius: borderTopLeftRadius,\n borderBottomLeftRadius: borderBottomRightRadius,\n borderBottomRightRadius: borderBottomLeftRadius,\n borderLeftColor: borderRightColor,\n borderLeftStyle: borderRightStyle,\n borderLeftWidth: borderRightWidth,\n borderRightColor: borderLeftColor,\n borderRightStyle: borderLeftStyle,\n borderRightWidth: borderLeftWidth,\n left: right,\n marginLeft: marginRight,\n marginRight: marginLeft,\n paddingLeft: paddingRight,\n paddingRight: paddingLeft,\n right: left\n}; // Map of I18N property names to their LTR equivalent.\n\nvar PROPERTIES_I18N = {\n borderTopStartRadius: borderTopLeftRadius,\n borderTopEndRadius: borderTopRightRadius,\n borderBottomStartRadius: borderBottomLeftRadius,\n borderBottomEndRadius: borderBottomRightRadius,\n borderStartColor: borderLeftColor,\n borderStartStyle: borderLeftStyle,\n borderStartWidth: borderLeftWidth,\n borderEndColor: borderRightColor,\n borderEndStyle: borderRightStyle,\n borderEndWidth: borderRightWidth,\n end: right,\n marginStart: marginLeft,\n marginEnd: marginRight,\n paddingStart: paddingLeft,\n paddingEnd: paddingRight,\n start: left\n};\nvar PROPERTIES_VALUE = {\n clear: true,\n float: true,\n textAlign: true\n}; // Invert the sign of a numeric-like value\n\nvar additiveInverse = function additiveInverse(value) {\n return multiplyStyleLengthValue(value, -1);\n};\n\nvar i18nStyle = function i18nStyle(originalStyle) {\n var _I18nManager$getConst = I18nManager.getConstants(),\n doLeftAndRightSwapInRTL = _I18nManager$getConst.doLeftAndRightSwapInRTL,\n isRTL = _I18nManager$getConst.isRTL;\n\n var style = originalStyle || emptyObject;\n var frozenProps = {};\n var nextStyle = {};\n\n for (var originalProp in style) {\n if (!Object.prototype.hasOwnProperty.call(style, originalProp)) {\n continue;\n }\n\n var originalValue = style[originalProp];\n var prop = originalProp;\n var value = originalValue; // BiDi flip properties\n\n if (PROPERTIES_I18N.hasOwnProperty(originalProp)) {\n // convert start/end\n var convertedProp = PROPERTIES_I18N[originalProp];\n prop = isRTL ? PROPERTIES_FLIP[convertedProp] : convertedProp;\n } else if (isRTL && doLeftAndRightSwapInRTL && PROPERTIES_FLIP[originalProp]) {\n prop = PROPERTIES_FLIP[originalProp];\n } // BiDi flip values\n\n\n if (PROPERTIES_VALUE.hasOwnProperty(originalProp)) {\n if (originalValue === 'start') {\n value = isRTL ? 'right' : 'left';\n } else if (originalValue === 'end') {\n value = isRTL ? 'left' : 'right';\n } else if (isRTL && doLeftAndRightSwapInRTL) {\n if (originalValue === 'left') {\n value = 'right';\n } else if (originalValue === 'right') {\n value = 'left';\n }\n }\n } // BiDi flip transitionProperty value\n\n\n if (prop === 'transitionProperty') {\n // BiDi flip properties\n if (PROPERTIES_I18N.hasOwnProperty(value)) {\n // convert start/end\n var convertedValue = PROPERTIES_I18N[originalValue];\n value = isRTL ? PROPERTIES_FLIP[convertedValue] : convertedValue;\n } else if (isRTL && doLeftAndRightSwapInRTL) {\n var flippedValue = PROPERTIES_FLIP[originalValue];\n\n if (flippedValue != null) {\n value = flippedValue;\n }\n }\n } // Create finalized style\n\n\n if (isRTL && prop === 'textShadowOffset') {\n var invertedValue = additiveInverse(value.width);\n value.width = invertedValue;\n nextStyle[prop] = value;\n } else if (!frozenProps[prop]) {\n nextStyle[prop] = value;\n }\n\n if (PROPERTIES_I18N[originalProp]) {\n frozenProps[prop] = true;\n }\n } // $FlowIgnore\n\n\n return nextStyle;\n};\n\nexport default i18nStyle;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport { MONOSPACE_FONT_STACK, SYSTEM_FONT_STACK, STYLE_SHORT_FORM_EXPANSIONS } from './constants';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\n/**\n * The browser implements the CSS cascade, where the order of properties is a\n * factor in determining which styles to paint. React Native is different. It\n * gives giving precedence to the more specific style property. For example,\n * the value of `paddingTop` takes precedence over that of `padding`.\n *\n * This module creates mutally exclusive style declarations by expanding all of\n * React Native's supported shortform properties (e.g. `padding`) to their\n * longfrom equivalents.\n */\n\nvar emptyObject = {};\nvar supportsCSS3TextDecoration = !canUseDOM || window.CSS != null && window.CSS.supports != null && (window.CSS.supports('text-decoration-line', 'none') || window.CSS.supports('-webkit-text-decoration-line', 'none'));\n/**\n * Transform\n */\n// { scale: 2 } => 'scale(2)'\n// { translateX: 20 } => 'translateX(20px)'\n// { matrix: [1,2,3,4,5,6] } => 'matrix(1,2,3,4,5,6)'\n\nvar mapTransform = function mapTransform(transform) {\n var type = Object.keys(transform)[0];\n var value = transform[type];\n\n if (type === 'matrix' || type === 'matrix3d') {\n return type + \"(\" + value.join(',') + \")\";\n } else {\n var normalizedValue = normalizeValueWithProperty(value, type);\n return type + \"(\" + normalizedValue + \")\";\n }\n};\n\nvar resolveTransform = function resolveTransform(resolvedStyle, style) {\n var transform = style.transform;\n\n if (Array.isArray(style.transform)) {\n transform = style.transform.map(mapTransform).join(' ');\n }\n\n resolvedStyle.transform = transform;\n};\n/**\n * Reducer\n */\n\n\nvar createReactDOMStyle = function createReactDOMStyle(style) {\n if (!style) {\n return emptyObject;\n }\n\n var resolvedStyle = {};\n Object.keys(style).sort().forEach(function (prop) {\n var value = normalizeValueWithProperty(style[prop], prop); // Ignore everything else with a null value\n\n if (value == null) {\n return;\n }\n\n switch (prop) {\n // Ignore some React Native styles\n case 'elevation':\n case 'overlayColor':\n case 'resizeMode':\n case 'tintColor':\n {\n break;\n }\n\n case 'aspectRatio':\n {\n resolvedStyle[prop] = value.toString();\n break;\n }\n // TODO: remove once this issue is fixed\n // https://github.com/rofrischmann/inline-style-prefixer/issues/159\n\n case 'backgroundClip':\n {\n if (value === 'text') {\n resolvedStyle.backgroundClip = value;\n resolvedStyle.WebkitBackgroundClip = value;\n }\n\n break;\n }\n // The 'flex' property value in React Native must be a positive integer,\n // 0, or -1.\n\n case 'flex':\n {\n if (value === -1) {\n resolvedStyle.flexGrow = 0;\n resolvedStyle.flexShrink = 1;\n resolvedStyle.flexBasis = 'auto';\n } else {\n resolvedStyle.flex = value;\n }\n\n break;\n }\n\n case 'font':\n {\n resolvedStyle[prop] = value.replace('System', SYSTEM_FONT_STACK);\n break;\n }\n\n case 'fontFamily':\n {\n if (value.indexOf('System') > -1) {\n var stack = value.split(/,\\s*/);\n stack[stack.indexOf('System')] = SYSTEM_FONT_STACK;\n resolvedStyle[prop] = stack.join(',');\n } else if (value === 'monospace') {\n resolvedStyle[prop] = MONOSPACE_FONT_STACK;\n } else {\n resolvedStyle[prop] = value;\n }\n\n break;\n }\n\n case 'fontVariant':\n {\n if (Array.isArray(value) && value.length > 0) {\n resolvedStyle.fontVariant = value.join(' ');\n }\n\n break;\n }\n\n case 'textAlignVertical':\n {\n resolvedStyle.verticalAlign = value === 'center' ? 'middle' : value;\n break;\n }\n\n case 'textDecorationLine':\n {\n // use 'text-decoration' for browsers that only support CSS2\n // text-decoration (e.g., IE, Edge)\n if (!supportsCSS3TextDecoration) {\n resolvedStyle.textDecoration = value;\n } else {\n resolvedStyle.textDecorationLine = value;\n }\n\n break;\n }\n\n case 'transform':\n case 'transformMatrix':\n {\n resolveTransform(resolvedStyle, style);\n break;\n }\n\n case 'writingDirection':\n {\n resolvedStyle.direction = value;\n break;\n }\n\n default:\n {\n var longFormProperties = STYLE_SHORT_FORM_EXPANSIONS[prop];\n\n if (longFormProperties) {\n longFormProperties.forEach(function (longForm, i) {\n // The value of any longform property in the original styles takes\n // precedence over the shortform's value.\n if (typeof style[longForm] === 'undefined') {\n resolvedStyle[longForm] = value;\n }\n });\n } else {\n resolvedStyle[prop] = Array.isArray(value) ? value.join(',') : value;\n }\n }\n }\n });\n return resolvedStyle;\n};\n\nexport default createReactDOMStyle;","/* eslint-disable */\n\n/**\n * JS Implementation of MurmurHash2\n *\n * @author Gary Court\n * @see http://github.com/garycourt/murmurhash-js\n * @author Austin Appleby\n * @see http://sites.google.com/site/murmurhash/\n *\n * @param {string} str ASCII only\n * @param {number} seed Positive integer only\n * @return {number} 32-bit positive integer hash\n *\n * \n */\nfunction murmurhash2_32_gc(str, seed) {\n var l = str.length,\n h = seed ^ l,\n i = 0,\n k;\n\n while (l >= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n k ^= k >>> 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k;\n l -= 4;\n ++i;\n }\n\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n }\n\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h ^= h >>> 15;\n return h >>> 0;\n}\n\nvar hash = function hash(str) {\n return murmurhash2_32_gc(str, 1).toString(36);\n};\n\nexport default hash;","import backgroundClip from 'inline-style-prefixer/lib/plugins/backgroundClip';\nimport crossFade from 'inline-style-prefixer/lib/plugins/crossFade';\nimport cursor from 'inline-style-prefixer/lib/plugins/cursor';\nimport filter from 'inline-style-prefixer/lib/plugins/filter';\nimport flex from 'inline-style-prefixer/lib/plugins/flex';\nimport flexboxIE from 'inline-style-prefixer/lib/plugins/flexboxIE';\nimport flexboxOld from 'inline-style-prefixer/lib/plugins/flexboxOld';\nimport gradient from 'inline-style-prefixer/lib/plugins/gradient';\nimport grid from 'inline-style-prefixer/lib/plugins/grid';\nimport imageSet from 'inline-style-prefixer/lib/plugins/imageSet';\nimport logical from 'inline-style-prefixer/lib/plugins/logical';\nimport position from 'inline-style-prefixer/lib/plugins/position';\nimport sizing from 'inline-style-prefixer/lib/plugins/sizing';\nimport transition from 'inline-style-prefixer/lib/plugins/transition';\nvar w = ['Webkit'];\nvar m = ['Moz'];\nvar ms = ['ms'];\nvar wm = ['Webkit', 'Moz'];\nvar wms = ['Webkit', 'ms'];\nvar wmms = ['Webkit', 'Moz', 'ms'];\nexport default {\n plugins: [backgroundClip, crossFade, cursor, filter, flex, flexboxIE, flexboxOld, gradient, grid, imageSet, logical, position, sizing, transition],\n prefixMap: {\n animation: w,\n animationDelay: w,\n animationDirection: w,\n animationFillMode: w,\n animationDuration: w,\n animationIterationCount: w,\n animationName: w,\n animationPlayState: w,\n animationTimingFunction: w,\n appearance: wm,\n userSelect: wmms,\n textEmphasisPosition: w,\n textEmphasis: w,\n textEmphasisStyle: w,\n textEmphasisColor: w,\n boxDecorationBreak: w,\n clipPath: w,\n maskImage: w,\n maskMode: w,\n maskRepeat: w,\n maskPosition: w,\n maskClip: w,\n maskOrigin: w,\n maskSize: w,\n maskComposite: w,\n mask: w,\n maskBorderSource: w,\n maskBorderMode: w,\n maskBorderSlice: w,\n maskBorderWidth: w,\n maskBorderOutset: w,\n maskBorderRepeat: w,\n maskBorder: w,\n maskType: w,\n textDecorationStyle: w,\n textDecorationSkip: w,\n textDecorationLine: w,\n textDecorationColor: w,\n filter: w,\n fontFeatureSettings: w,\n breakAfter: wmms,\n breakBefore: wmms,\n breakInside: wmms,\n columnCount: wm,\n columnFill: wm,\n columnGap: wm,\n columnRule: wm,\n columnRuleColor: wm,\n columnRuleStyle: wm,\n columnRuleWidth: wm,\n columns: wm,\n columnSpan: wm,\n columnWidth: wm,\n writingMode: wms,\n flex: wms,\n flexBasis: w,\n flexDirection: wms,\n flexGrow: w,\n flexFlow: wms,\n flexShrink: w,\n flexWrap: wms,\n alignContent: w,\n alignItems: w,\n alignSelf: w,\n justifyContent: w,\n order: w,\n transform: w,\n transformOrigin: w,\n transformOriginX: w,\n transformOriginY: w,\n backfaceVisibility: w,\n perspective: w,\n perspectiveOrigin: w,\n transformStyle: w,\n transformOriginZ: w,\n backdropFilter: w,\n fontKerning: w,\n scrollSnapType: wms,\n scrollSnapPointsX: wms,\n scrollSnapPointsY: wms,\n scrollSnapDestination: wms,\n scrollSnapCoordinate: wms,\n shapeImageThreshold: w,\n shapeImageMargin: w,\n shapeImageOutside: w,\n hyphens: wmms,\n flowInto: wms,\n flowFrom: wms,\n regionFragment: wms,\n textOrientation: w,\n textAlignLast: m,\n tabSize: m,\n wrapFlow: ms,\n wrapThrough: ms,\n wrapMargin: ms,\n touchAction: ms,\n textSizeAdjust: ['ms', 'Webkit'],\n borderImage: w,\n borderImageOutset: w,\n borderImageRepeat: w,\n borderImageSlice: w,\n borderImageSource: w,\n borderImageWidth: w,\n transitionDelay: w,\n transitionDuration: w,\n transitionProperty: w,\n transitionTimingFunction: w\n }\n};","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createPrefixer from 'inline-style-prefixer/lib/createPrefixer';\nimport staticData from './static';\nvar prefixAll = createPrefixer(staticData);\nexport var prefixInlineStyles = function prefixInlineStyles(style) {\n var prefixedStyles = prefixAll(style); // React@15 removed undocumented support for fallback values in\n // inline-styles. Revert array values to the standard CSS value\n\n Object.keys(prefixedStyles).forEach(function (prop) {\n var value = prefixedStyles[prop];\n\n if (Array.isArray(value)) {\n prefixedStyles[prop] = value[value.length - 1];\n }\n });\n return prefixedStyles;\n};\nexport default prefixAll;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createReactDOMStyle from './createReactDOMStyle';\nimport hash from '../../vendor/hash';\nimport hyphenateStyleName from 'hyphenate-style-name';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport prefixStyles, { prefixInlineStyles } from '../../modules/prefixStyles';\nvar cache = {\n get: function get(property, value) {\n if (cache[property] != null && cache[property].hasOwnProperty(value) && cache[property][value] != null) {\n return cache[property][value];\n }\n },\n set: function set(property, value, object) {\n if (cache[property] == null) {\n cache[property] = {};\n }\n\n return cache[property][value] = object;\n }\n};\n/**\n * Compile style to atomic CSS rules.\n */\n\nexport function atomic(style) {\n return Object.keys(style).sort().reduce(function (acc, property) {\n var value = style[property];\n\n if (value != null) {\n var valueString = stringifyValueWithProperty(value, property);\n var cachedResult = cache.get(property, valueString);\n\n if (cachedResult != null) {\n var identifier = cachedResult.identifier;\n acc[identifier] = cachedResult;\n } else {\n var _identifier = createIdentifier('r', property, value);\n\n var rules = createAtomicRules(_identifier, property, value);\n\n var _cachedResult = cache.set(property, valueString, {\n property: property,\n value: stringifyValueWithProperty(value, property),\n identifier: _identifier,\n rules: rules\n });\n\n acc[_identifier] = _cachedResult;\n }\n }\n\n return acc;\n }, {});\n}\n/**\n * Compile simple style object to classic CSS rules.\n * No support for 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\n\nexport function classic(style, name) {\n var _ref;\n\n var identifier = createIdentifier('css', name, style);\n\n var animationKeyframes = style.animationKeyframes,\n rest = _objectWithoutPropertiesLoose(style, [\"animationKeyframes\"]);\n\n var rules = [];\n var selector = \".\" + identifier;\n var animationName;\n\n if (animationKeyframes != null) {\n var _processKeyframesValu = processKeyframesValue(animationKeyframes),\n animationNames = _processKeyframesValu.animationNames,\n keyframesRules = _processKeyframesValu.rules;\n\n animationName = animationNames.join(',');\n rules.push.apply(rules, keyframesRules);\n }\n\n var block = createDeclarationBlock(_objectSpread(_objectSpread({}, rest), {}, {\n animationName: animationName\n }));\n rules.push(\"\" + selector + block);\n return _ref = {}, _ref[identifier] = {\n identifier: identifier,\n rules: rules\n }, _ref;\n}\n/**\n * Compile simple style object to inline DOM styles.\n * No support for 'animationKeyframes', 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\n\nexport function inline(style) {\n return prefixInlineStyles(createReactDOMStyle(style));\n}\n/**\n * Create a value string that normalizes different input values with a common\n * output.\n */\n\nexport function stringifyValueWithProperty(value, property) {\n // e.g., 0 => '0px', 'black' => 'rgba(0,0,0,1)'\n var normalizedValue = normalizeValueWithProperty(value, property);\n return typeof normalizedValue !== 'string' ? JSON.stringify(normalizedValue || '') : normalizedValue;\n}\n/**\n * Create the Atomic CSS rules needed for a given StyleSheet rule.\n * Translates StyleSheet declarations to CSS.\n */\n\nfunction createAtomicRules(identifier, property, value) {\n var rules = [];\n var selector = \".\" + identifier; // Handle non-standard properties and object values that require multiple\n // CSS rules to be created.\n\n switch (property) {\n case 'animationKeyframes':\n {\n var _processKeyframesValu2 = processKeyframesValue(value),\n animationNames = _processKeyframesValu2.animationNames,\n keyframesRules = _processKeyframesValu2.rules;\n\n var block = createDeclarationBlock({\n animationName: animationNames.join(',')\n });\n rules.push.apply(rules, [\"\" + selector + block].concat(keyframesRules));\n break;\n }\n // Equivalent to using '::placeholder'\n\n case 'placeholderTextColor':\n {\n var _block = createDeclarationBlock({\n color: value,\n opacity: 1\n });\n\n rules.push(selector + \"::-webkit-input-placeholder\" + _block, selector + \"::-moz-placeholder\" + _block, selector + \":-ms-input-placeholder\" + _block, selector + \"::placeholder\" + _block);\n break;\n }\n // Polyfill for additional 'pointer-events' values\n // See d13f78622b233a0afc0c7a200c0a0792c8ca9e58\n\n case 'pointerEvents':\n {\n var finalValue = value;\n\n if (value === 'auto' || value === 'box-only') {\n finalValue = 'auto!important';\n\n if (value === 'box-only') {\n var _block3 = createDeclarationBlock({\n pointerEvents: 'none'\n });\n\n rules.push(selector + \">*\" + _block3);\n }\n } else if (value === 'none' || value === 'box-none') {\n finalValue = 'none!important';\n\n if (value === 'box-none') {\n var _block4 = createDeclarationBlock({\n pointerEvents: 'auto'\n });\n\n rules.push(selector + \">*\" + _block4);\n }\n }\n\n var _block2 = createDeclarationBlock({\n pointerEvents: finalValue\n });\n\n rules.push(\"\" + selector + _block2);\n break;\n }\n // Polyfill for draft spec\n // https://drafts.csswg.org/css-scrollbars-1/\n\n case 'scrollbarWidth':\n {\n if (value === 'none') {\n rules.push(selector + \"::-webkit-scrollbar{display:none}\");\n }\n\n var _block5 = createDeclarationBlock({\n scrollbarWidth: value\n });\n\n rules.push(\"\" + selector + _block5);\n break;\n }\n\n default:\n {\n var _createDeclarationBlo;\n\n var _block6 = createDeclarationBlock((_createDeclarationBlo = {}, _createDeclarationBlo[property] = value, _createDeclarationBlo));\n\n rules.push(\"\" + selector + _block6);\n break;\n }\n }\n\n return rules;\n}\n/**\n * Creates a CSS declaration block from a StyleSheet object.\n */\n\n\nfunction createDeclarationBlock(style) {\n var domStyle = prefixStyles(createReactDOMStyle(style));\n var declarationsString = Object.keys(domStyle).map(function (property) {\n var value = domStyle[property];\n var prop = hyphenateStyleName(property); // The prefixer may return an array of values:\n // { display: [ '-webkit-flex', 'flex' ] }\n // to represent \"fallback\" declarations\n // { display: -webkit-flex; display: flex; }\n\n if (Array.isArray(value)) {\n return value.map(function (v) {\n return prop + \":\" + v;\n }).join(';');\n } else {\n return prop + \":\" + value;\n }\n }) // Once properties are hyphenated, this will put the vendor\n // prefixed and short-form properties first in the list.\n .sort().join(';');\n return \"{\" + declarationsString + \";}\";\n}\n/**\n * An identifier is associated with a unique set of styles.\n */\n\n\nfunction createIdentifier(prefix, name, value) {\n var hashedString = hash(name + stringifyValueWithProperty(value, name));\n return process.env.NODE_ENV !== 'production' ? prefix + \"-\" + name + \"-\" + hashedString : prefix + \"-\" + hashedString;\n}\n/**\n * Create individual CSS keyframes rules.\n */\n\n\nfunction createKeyframes(keyframes) {\n var prefixes = ['-webkit-', ''];\n var identifier = createIdentifier('r', 'animation', keyframes);\n var steps = '{' + Object.keys(keyframes).map(function (stepName) {\n var rule = keyframes[stepName];\n var block = createDeclarationBlock(rule);\n return \"\" + stepName + block;\n }).join('') + '}';\n var rules = prefixes.map(function (prefix) {\n return \"@\" + prefix + \"keyframes \" + identifier + steps;\n });\n return {\n identifier: identifier,\n rules: rules\n };\n}\n/**\n * Create CSS keyframes rules and names from a StyleSheet keyframes object.\n */\n\n\nfunction processKeyframesValue(keyframesValue) {\n if (typeof keyframesValue === 'number') {\n throw new Error(\"Invalid CSS keyframes type: \" + typeof keyframesValue);\n }\n\n var animationNames = [];\n var rules = [];\n var value = Array.isArray(keyframesValue) ? keyframesValue : [keyframesValue];\n value.forEach(function (keyframes) {\n if (typeof keyframes === 'string') {\n // Support external animation libraries (identifiers only)\n animationNames.push(keyframes);\n } else {\n // Create rules for each of the keyframes\n var _createKeyframes = createKeyframes(keyframes),\n identifier = _createKeyframes.identifier,\n keyframesRules = _createKeyframes.rules;\n\n animationNames.push(identifier);\n rules.push.apply(rules, keyframesRules);\n }\n });\n return {\n animationNames: animationNames,\n rules: rules\n };\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar resets = [// minimal top-level reset\n'html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}', 'body{margin:0;}', // minimal form pseudo-element reset\n'button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}', 'input::-webkit-search-cancel-button,input::-webkit-search-decoration,' + 'input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}'];\nexport default resets;","/**\n * Adapts focus styles based on the user's active input modality (i.e., how\n * they are interacting with the UI right now).\n *\n * Focus styles are only relevant when using the keyboard to interact with the\n * page. If we only show the focus ring when relevant, we can avoid user\n * confusion without compromising accessibility.\n *\n * The script uses two heuristics to determine whether the keyboard is being used:\n *\n * 1. a keydown event occurred immediately before a focus event;\n * 2. a focus event happened on an element which requires keyboard interaction (e.g., a text field);\n *\n * This software or document includes material copied from or derived from https://github.com/WICG/focus-visible.\n * Copyright © 2018 W3C® (MIT, ERCIM, Keio, Beihang).\n * W3C Software Notice and License: https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nvar focusVisibleAttributeName = 'data-focusvisible-polyfill';\nvar rule = \":focus:not([\" + focusVisibleAttributeName + \"]){outline: none;}\";\n\nvar modality = function modality(insertRule) {\n insertRule(rule);\n\n if (!canUseDOM) {\n return;\n }\n\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n var inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n */\n\n function isValidFocusTarget(el) {\n if (el && el !== document && el.nodeName !== 'HTML' && el.nodeName !== 'BODY' && 'classList' in el && 'contains' in el.classList) {\n return true;\n }\n\n return false;\n }\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` attribute being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n */\n\n\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n var isReadOnly = el.readOnly;\n\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !isReadOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !isReadOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n /**\n * Add the `focus-visible` attribute to the given element if it was not added by\n * the author.\n */\n\n\n function addFocusVisibleAttribute(el) {\n if (el.hasAttribute(focusVisibleAttributeName)) {\n return;\n }\n\n el.setAttribute(focusVisibleAttributeName, true);\n }\n /**\n * Remove the `focus-visible` attribute from the given element if it was not\n * originally added by the author.\n */\n\n\n function removeFocusVisibleAttribute(el) {\n el.removeAttribute(focusVisibleAttributeName);\n }\n /**\n * Remove the `focus-visible` attribute from all elements in the document.\n */\n\n\n function removeAllFocusVisibleAttributes() {\n var list = document.querySelectorAll(\"[\" + focusVisibleAttributeName + \"]\");\n\n for (var i = 0; i < list.length; i += 1) {\n removeFocusVisibleAttribute(list[i]);\n }\n }\n /**\n * Treat `keydown` as a signal that the user is in keyboard modality.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n */\n\n\n function onKeyDown(e) {\n if (e.key !== 'Tab' && (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)) {\n return;\n }\n\n if (isValidFocusTarget(document.activeElement)) {\n addFocusVisibleAttribute(document.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * It also avoids the situation where a user presses on an element within a\n * previously keyboard-focused element (i.e., `e.target` is not the previously\n * focused element, but one of its descendants) and we need to remove the\n * focus ring because a `blur` event doesn't occur.\n */\n\n\n function onPointerDown(e) {\n if (hadKeyboardEvent === true) {\n removeAllFocusVisibleAttributes();\n }\n\n hadKeyboardEvent = false;\n }\n /**\n * On `focus`, add the `focus-visible` attribute to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n */\n\n\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleAttribute(e.target);\n }\n }\n /**\n * On `blur`, remove the `focus-visible` attribute from the target.\n */\n\n\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (e.target.hasAttribute(focusVisibleAttributeName)) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function () {\n hadFocusVisibleRecently = false;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n }, 100);\n removeFocusVisibleAttribute(e.target);\n }\n }\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had the focus-visible attribute.\n */\n\n\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the attribute when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n\n addInitialPointerMoveListeners();\n }\n }\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n\n\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n */\n\n\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. ¯\\_(ツ)_/¯\n if (e.target.nodeName === 'HTML') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('focus', onFocus, true);\n document.addEventListener('blur', onBlur, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n addInitialPointerMoveListeners();\n};\n\nexport default modality;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * WARNING: changes to this file in particular can cause significant changes to\n * the results of render performance benchmarks.\n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport createCSSStyleSheet from './createCSSStyleSheet';\nimport createCompileableStyle from './createCompileableStyle';\nimport createOrderedCSSStyleSheet from './createOrderedCSSStyleSheet';\nimport flattenArray from '../../modules/flattenArray';\nimport flattenStyle from './flattenStyle';\nimport I18nManager from '../I18nManager';\nimport i18nStyle from './i18nStyle';\nimport { atomic, classic, inline, stringifyValueWithProperty } from './compile';\nimport initialRules from './initialRules';\nimport modality from './modality';\nimport { STYLE_ELEMENT_ID, STYLE_GROUPS } from './constants';\nexport default function createStyleResolver() {\n var inserted, sheet, cache;\n var resolved = {\n css: {},\n ltr: {},\n rtl: {},\n rtlNoSwap: {}\n };\n\n var init = function init() {\n inserted = {\n css: {},\n ltr: {},\n rtl: {},\n rtlNoSwap: {}\n };\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(STYLE_ELEMENT_ID));\n cache = {};\n modality(function (rule) {\n return sheet.insert(rule, STYLE_GROUPS.modality);\n });\n initialRules.forEach(function (rule) {\n sheet.insert(rule, STYLE_GROUPS.reset);\n });\n };\n\n init();\n\n function addToCache(className, prop, value) {\n if (!cache[prop]) {\n cache[prop] = {};\n }\n\n cache[prop][value] = className;\n }\n\n function getClassName(prop, value) {\n var val = stringifyValueWithProperty(value, prop);\n return cache[prop] && cache[prop].hasOwnProperty(val) && cache[prop][val];\n }\n\n function _injectRegisteredStyle(id) {\n var _I18nManager$getConst = I18nManager.getConstants(),\n doLeftAndRightSwapInRTL = _I18nManager$getConst.doLeftAndRightSwapInRTL,\n isRTL = _I18nManager$getConst.isRTL;\n\n var dir = isRTL ? doLeftAndRightSwapInRTL ? 'rtl' : 'rtlNoSwap' : 'ltr';\n\n if (!inserted[dir][id]) {\n var style = createCompileableStyle(i18nStyle(flattenStyle(id)));\n var results = atomic(style);\n Object.keys(results).forEach(function (key) {\n var _results$key = results[key],\n identifier = _results$key.identifier,\n property = _results$key.property,\n rules = _results$key.rules,\n value = _results$key.value;\n addToCache(identifier, property, value);\n rules.forEach(function (rule) {\n var group = STYLE_GROUPS.custom[property] || STYLE_GROUPS.atomic;\n sheet.insert(rule, group);\n });\n });\n inserted[dir][id] = true;\n }\n }\n /**\n * Resolves a React Native style object to DOM attributes\n */\n\n\n function resolve(style, classList) {\n var nextClassList = [];\n var props = {};\n\n if (!style && !classList) {\n return props;\n }\n\n if (Array.isArray(classList)) {\n flattenArray(classList).forEach(function (identifier) {\n if (identifier) {\n if (inserted.css[identifier] == null && resolved.css[identifier] != null) {\n var item = resolved.css[identifier];\n item.rules.forEach(function (rule) {\n sheet.insert(rule, item.group);\n });\n inserted.css[identifier] = true;\n }\n\n nextClassList.push(identifier);\n }\n });\n }\n\n if (typeof style === 'number') {\n // fast and cachable\n _injectRegisteredStyle(style);\n\n var key = createCacheKey(style);\n props = _resolveStyle(style, key);\n } else if (!Array.isArray(style)) {\n // resolve a plain RN style object\n props = _resolveStyle(style);\n } else {\n // flatten the style array\n // cache resolved props when all styles are registered\n // otherwise fallback to resolving\n var flatArray = flattenArray(style);\n var isArrayOfNumbers = true;\n var cacheKey = '';\n\n for (var i = 0; i < flatArray.length; i++) {\n var id = flatArray[i];\n\n if (typeof id !== 'number') {\n isArrayOfNumbers = false;\n } else {\n if (isArrayOfNumbers) {\n cacheKey += id + '-';\n }\n\n _injectRegisteredStyle(id);\n }\n }\n\n var _key = isArrayOfNumbers ? createCacheKey(cacheKey) : null;\n\n props = _resolveStyle(flatArray, _key);\n }\n\n nextClassList.push.apply(nextClassList, props.classList);\n var finalProps = {\n className: classListToString(nextClassList),\n classList: nextClassList\n };\n\n if (props.style) {\n finalProps.style = props.style;\n }\n\n return finalProps;\n }\n /**\n * Resolves a React Native style object\n */\n\n\n function _resolveStyle(style, key) {\n var _I18nManager$getConst2 = I18nManager.getConstants(),\n doLeftAndRightSwapInRTL = _I18nManager$getConst2.doLeftAndRightSwapInRTL,\n isRTL = _I18nManager$getConst2.isRTL;\n\n var dir = isRTL ? doLeftAndRightSwapInRTL ? 'rtl' : 'rtlNoSwap' : 'ltr'; // faster: memoized\n\n if (key != null && resolved[dir][key] != null) {\n return resolved[dir][key];\n }\n\n var flatStyle = flattenStyle(style);\n var localizedStyle = createCompileableStyle(i18nStyle(flatStyle)); // slower: convert style object to props and cache\n\n var props = Object.keys(localizedStyle).sort().reduce(function (props, styleProp) {\n var value = localizedStyle[styleProp];\n\n if (value != null) {\n var className = getClassName(styleProp, value);\n\n if (className) {\n props.classList.push(className);\n } else {\n // Certain properties and values are not transformed by 'createReactDOMStyle' as they\n // require more complex transforms into multiple CSS rules. Here we assume that StyleManager\n // can bind these styles to a className, and prevent them becoming invalid inline-styles.\n if (styleProp === 'animationKeyframes' || styleProp === 'placeholderTextColor' || styleProp === 'pointerEvents' || styleProp === 'scrollbarWidth') {\n var _atomic;\n\n var a = atomic((_atomic = {}, _atomic[styleProp] = value, _atomic));\n Object.keys(a).forEach(function (key) {\n var _a$key = a[key],\n identifier = _a$key.identifier,\n rules = _a$key.rules;\n props.classList.push(identifier);\n rules.forEach(function (rule) {\n sheet.insert(rule, STYLE_GROUPS.atomic);\n });\n });\n } else {\n if (!props.style) {\n props.style = {};\n } // 4x slower render\n\n\n props.style[styleProp] = value;\n }\n }\n }\n\n return props;\n }, {\n classList: []\n });\n\n if (props.style) {\n props.style = inline(props.style);\n }\n\n if (key != null) {\n resolved[dir][key] = props;\n }\n\n return props;\n }\n\n return {\n getStyleSheet: function getStyleSheet() {\n var textContent = sheet.getTextContent(); // Reset state on the server so critical css is always the result\n\n if (!canUseDOM) {\n init();\n }\n\n return {\n id: STYLE_ELEMENT_ID,\n textContent: textContent\n };\n },\n createCSS: function createCSS(rules, group) {\n var result = {};\n Object.keys(rules).forEach(function (name) {\n var style = rules[name];\n var compiled = classic(style, name);\n Object.keys(compiled).forEach(function (key) {\n var _compiled$key = compiled[key],\n identifier = _compiled$key.identifier,\n rules = _compiled$key.rules;\n resolved.css[identifier] = {\n group: group || STYLE_GROUPS.classic,\n rules: rules\n };\n result[name] = identifier;\n });\n });\n return result;\n },\n resolve: resolve,\n\n get sheet() {\n return sheet;\n }\n\n };\n}\n/**\n * Misc helpers\n */\n\nvar createCacheKey = function createCacheKey(id) {\n var prefix = 'rn';\n return prefix + \"-\" + id;\n};\n\nvar classListToString = function classListToString(list) {\n return list.join(' ').trim();\n};","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createStyleResolver from './createStyleResolver';\nvar styleResolver = createStyleResolver();\nexport default styleResolver;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; // $FlowFixMe: HTMLStyleElement is incorrectly typed - https://github.com/facebook/flow/issues/2696\n\nexport default function createCSSStyleSheet(id) {\n if (canUseDOM) {\n var element = document.getElementById(id);\n\n if (element != null) {\n // $FlowFixMe: HTMLElement is incorrectly typed\n return element.sheet;\n } else {\n var _element = document.createElement('style');\n\n _element.setAttribute('id', id);\n\n var head = document.head;\n\n if (head) {\n head.insertBefore(_element, head.firstChild);\n }\n\n return _element.sheet;\n }\n } else {\n return null;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source 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/**\n * Tracks the position and time of each active touch by `touch.identifier`. We\n * should typically only see IDs in the range of 1-20 because IDs get recycled\n * when touches end and start again.\n */\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar MAX_TOUCH_BANK = 20;\nvar touchBank = [];\nvar touchHistory = {\n touchBank: touchBank,\n numberActiveTouches: 0,\n // If there is only one active touch, we remember its location. This prevents\n // us having to loop through all of the touches all the time in the most\n // common case.\n indexOfSingleActiveTouch: -1,\n mostRecentTimeStamp: 0\n};\n\nfunction timestampForTouch(touch) {\n // The legacy internal implementation provides \"timeStamp\", which has been\n // renamed to \"timestamp\".\n return touch.timeStamp || touch.timestamp;\n}\n/**\n * TODO: Instead of making gestures recompute filtered velocity, we could\n * include a built in velocity computation that can be reused globally.\n */\n\n\nfunction createTouchRecord(touch) {\n return {\n touchActive: true,\n startPageX: touch.pageX,\n startPageY: touch.pageY,\n startTimeStamp: timestampForTouch(touch),\n currentPageX: touch.pageX,\n currentPageY: touch.pageY,\n currentTimeStamp: timestampForTouch(touch),\n previousPageX: touch.pageX,\n previousPageY: touch.pageY,\n previousTimeStamp: timestampForTouch(touch)\n };\n}\n\nfunction resetTouchRecord(touchRecord, touch) {\n touchRecord.touchActive = true;\n touchRecord.startPageX = touch.pageX;\n touchRecord.startPageY = touch.pageY;\n touchRecord.startTimeStamp = timestampForTouch(touch);\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchRecord.previousPageX = touch.pageX;\n touchRecord.previousPageY = touch.pageY;\n touchRecord.previousTimeStamp = timestampForTouch(touch);\n}\n\nfunction getTouchIdentifier(_ref) {\n var identifier = _ref.identifier;\n\n if (identifier == null) {\n console.error('Touch object is missing identifier.');\n }\n\n if (__DEV__) {\n if (identifier > MAX_TOUCH_BANK) {\n console.error('Touch identifier %s is greater than maximum supported %s which causes ' + 'performance issues backfilling array locations for all of the indices.', identifier, MAX_TOUCH_BANK);\n }\n }\n\n return identifier;\n}\n\nfunction recordTouchStart(touch) {\n var identifier = getTouchIdentifier(touch);\n var touchRecord = touchBank[identifier];\n\n if (touchRecord) {\n resetTouchRecord(touchRecord, touch);\n } else {\n touchBank[identifier] = createTouchRecord(touch);\n }\n\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\n\nfunction recordTouchMove(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n\n if (touchRecord) {\n touchRecord.touchActive = true;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn('Cannot record touch move without a touch start.\\n', \"Touch Move: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank());\n }\n}\n\nfunction recordTouchEnd(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n\n if (touchRecord) {\n touchRecord.touchActive = false;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn('Cannot record touch end without a touch start.\\n', \"Touch End: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank());\n }\n}\n\nfunction printTouch(touch) {\n return JSON.stringify({\n identifier: touch.identifier,\n pageX: touch.pageX,\n pageY: touch.pageY,\n timestamp: timestampForTouch(touch)\n });\n}\n\nfunction printTouchBank() {\n var printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));\n\n if (touchBank.length > MAX_TOUCH_BANK) {\n printed += ' (original size: ' + touchBank.length + ')';\n }\n\n return printed;\n}\n\nvar ResponderTouchHistoryStore = {\n recordTouchTrack: function recordTouchTrack(topLevelType, nativeEvent) {\n if (isMoveish(topLevelType)) {\n nativeEvent.changedTouches.forEach(recordTouchMove);\n } else if (isStartish(topLevelType)) {\n nativeEvent.changedTouches.forEach(recordTouchStart);\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n\n if (touchHistory.numberActiveTouches === 1) {\n touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;\n }\n } else if (isEndish(topLevelType)) {\n nativeEvent.changedTouches.forEach(recordTouchEnd);\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n\n if (touchHistory.numberActiveTouches === 1) {\n for (var i = 0; i < touchBank.length; i++) {\n var touchTrackToCheck = touchBank[i];\n\n if (touchTrackToCheck != null && touchTrackToCheck.touchActive) {\n touchHistory.indexOfSingleActiveTouch = i;\n break;\n }\n }\n\n if (__DEV__) {\n var activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];\n\n if (!(activeRecord != null && activeRecord.touchActive)) {\n console.error('Cannot find single active touch.');\n }\n }\n }\n }\n },\n touchHistory: touchHistory\n};\nexport default ResponderTouchHistoryStore;","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nimport ResponderTouchHistoryStore from './ResponderTouchHistoryStore';\n\nvar emptyFunction = function emptyFunction() {};\n\nvar emptyObject = {};\nvar emptyArray = [];\n/**\n * Safari produces very large identifiers that would cause the `touchBank` array\n * length to be so large as to crash the browser, if not normalized like this.\n * In the future the `touchBank` should use an object/map instead.\n */\n\nfunction normalizeIdentifier(identifier) {\n return identifier > 20 ? identifier % 20 : identifier;\n}\n/**\n * Converts a native DOM event to a ResponderEvent.\n * Mouse events are transformed into fake touch events.\n */\n\n\nexport default function createResponderEvent(domEvent) {\n var rect;\n var propagationWasStopped = false;\n var changedTouches;\n var touches;\n var domEventChangedTouches = domEvent.changedTouches;\n var domEventType = domEvent.type;\n var metaKey = domEvent.metaKey === true;\n var shiftKey = domEvent.shiftKey === true;\n var force = domEventChangedTouches && domEventChangedTouches[0].force || 0;\n var identifier = normalizeIdentifier(domEventChangedTouches && domEventChangedTouches[0].identifier || 0);\n var clientX = domEventChangedTouches && domEventChangedTouches[0].clientX || domEvent.clientX;\n var clientY = domEventChangedTouches && domEventChangedTouches[0].clientY || domEvent.clientY;\n var pageX = domEventChangedTouches && domEventChangedTouches[0].pageX || domEvent.pageX;\n var pageY = domEventChangedTouches && domEventChangedTouches[0].pageY || domEvent.pageY;\n var preventDefault = typeof domEvent.preventDefault === 'function' ? domEvent.preventDefault.bind(domEvent) : emptyFunction;\n var timestamp = domEvent.timeStamp;\n\n function normalizeTouches(touches) {\n return Array.prototype.slice.call(touches).map(function (touch) {\n return {\n force: touch.force,\n identifier: normalizeIdentifier(touch.identifier),\n\n get locationX() {\n return locationX(touch.clientX);\n },\n\n get locationY() {\n return locationY(touch.clientY);\n },\n\n pageX: touch.pageX,\n pageY: touch.pageY,\n target: touch.target,\n timestamp: timestamp\n };\n });\n }\n\n if (domEventChangedTouches != null) {\n changedTouches = normalizeTouches(domEventChangedTouches);\n touches = normalizeTouches(domEvent.touches);\n } else {\n var emulatedTouches = [{\n force: force,\n identifier: identifier,\n\n get locationX() {\n return locationX(clientX);\n },\n\n get locationY() {\n return locationY(clientY);\n },\n\n pageX: pageX,\n pageY: pageY,\n target: domEvent.target,\n timestamp: timestamp\n }];\n changedTouches = emulatedTouches;\n touches = domEventType === 'mouseup' || domEventType === 'dragstart' ? emptyArray : emulatedTouches;\n }\n\n var responderEvent = {\n bubbles: true,\n cancelable: true,\n // `currentTarget` is set before dispatch\n currentTarget: null,\n defaultPrevented: domEvent.defaultPrevented,\n dispatchConfig: emptyObject,\n eventPhase: domEvent.eventPhase,\n isDefaultPrevented: function isDefaultPrevented() {\n return domEvent.defaultPrevented;\n },\n isPropagationStopped: function isPropagationStopped() {\n return propagationWasStopped;\n },\n isTrusted: domEvent.isTrusted,\n nativeEvent: {\n altKey: false,\n ctrlKey: false,\n metaKey: metaKey,\n shiftKey: shiftKey,\n changedTouches: changedTouches,\n force: force,\n identifier: identifier,\n\n get locationX() {\n return locationX(clientX);\n },\n\n get locationY() {\n return locationY(clientY);\n },\n\n pageX: pageX,\n pageY: pageY,\n target: domEvent.target,\n timestamp: timestamp,\n touches: touches,\n type: domEventType\n },\n persist: emptyFunction,\n preventDefault: preventDefault,\n stopPropagation: function stopPropagation() {\n propagationWasStopped = true;\n },\n target: domEvent.target,\n timeStamp: timestamp,\n touchHistory: ResponderTouchHistoryStore.touchHistory\n }; // Using getters and functions serves two purposes:\n // 1) The value of `currentTarget` is not initially available.\n // 2) Measuring the clientRect may cause layout jank and should only be done on-demand.\n\n function locationX(x) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n\n if (rect) {\n return x - rect.left;\n }\n }\n\n function locationY(y) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n\n if (rect) {\n return y - rect.top;\n }\n }\n\n return responderEvent;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport isSelectionValid from '../../modules/isSelectionValid';\nvar keyName = '__reactResponderId';\n\nfunction getEventPath(domEvent) {\n // The 'selectionchange' event always has the 'document' as the target.\n // Use the anchor node as the initial target to reconstruct a path.\n // (We actually only need the first \"responder\" node in practice.)\n if (domEvent.type === 'selectionchange') {\n var target = window.getSelection().anchorNode;\n return composedPathFallback(target);\n } else {\n var path = domEvent.composedPath != null ? domEvent.composedPath() : composedPathFallback(domEvent.target);\n return path;\n }\n}\n\nfunction composedPathFallback(target) {\n var path = [];\n\n while (target != null && target !== document.body) {\n path.push(target);\n target = target.parentNode;\n }\n\n return path;\n}\n/**\n * Retrieve the responderId from a host node\n */\n\n\nfunction getResponderId(node) {\n if (node != null) {\n return node[keyName];\n }\n\n return null;\n}\n/**\n * Store the responderId on a host node\n */\n\n\nexport function setResponderId(node, id) {\n if (node != null) {\n node[keyName] = id;\n }\n}\n/**\n * Filter the event path to contain only the nodes attached to the responder system\n */\n\nexport function getResponderPaths(domEvent) {\n var idPath = [];\n var nodePath = [];\n var eventPath = getEventPath(domEvent);\n\n for (var i = 0; i < eventPath.length; i++) {\n var node = eventPath[i];\n var id = getResponderId(node);\n\n if (id != null) {\n idPath.push(id);\n nodePath.push(node);\n }\n }\n\n return {\n idPath: idPath,\n nodePath: nodePath\n };\n}\n/**\n * Walk the paths and find the first common ancestor\n */\n\nexport function getLowestCommonAncestor(pathA, pathB) {\n var pathALength = pathA.length;\n var pathBLength = pathB.length;\n\n if ( // If either path is empty\n pathALength === 0 || pathBLength === 0 || // If the last elements aren't the same there can't be a common ancestor\n // that is connected to the responder system\n pathA[pathALength - 1] !== pathB[pathBLength - 1]) {\n return null;\n }\n\n var itemA = pathA[0];\n var indexA = 0;\n var itemB = pathB[0];\n var indexB = 0; // If A is deeper, skip indices that can't match.\n\n if (pathALength - pathBLength > 0) {\n indexA = pathALength - pathBLength;\n itemA = pathA[indexA];\n pathALength = pathBLength;\n } // If B is deeper, skip indices that can't match\n\n\n if (pathBLength - pathALength > 0) {\n indexB = pathBLength - pathALength;\n itemB = pathB[indexB];\n pathBLength = pathALength;\n } // Walk in lockstep until a match is found\n\n\n var depth = pathALength;\n\n while (depth--) {\n if (itemA === itemB) {\n return itemA;\n }\n\n itemA = pathA[indexA++];\n itemB = pathB[indexB++];\n }\n\n return null;\n}\n/**\n * Determine whether any of the active touches are within the current responder.\n * This cannot rely on W3C `targetTouches`, as neither IE11 nor Safari implement it.\n */\n\nexport function hasTargetTouches(target, touches) {\n if (!touches || touches.length === 0) {\n return false;\n }\n\n for (var i = 0; i < touches.length; i++) {\n var node = touches[i].target;\n\n if (node != null) {\n if (target.contains(node)) {\n return true;\n }\n }\n }\n\n return false;\n}\n/**\n * Ignore 'selectionchange' events that don't correspond with a person's intent to\n * select text.\n */\n\nexport function hasValidSelection(domEvent) {\n if (domEvent.type === 'selectionchange') {\n return isSelectionValid();\n }\n\n return domEvent.type === 'select';\n}\n/**\n * Events are only valid if the primary button was used without specific modifier keys.\n */\n\nexport function isPrimaryPointerDown(domEvent) {\n var altKey = domEvent.altKey,\n button = domEvent.button,\n buttons = domEvent.buttons,\n ctrlKey = domEvent.ctrlKey,\n type = domEvent.type;\n var isTouch = type === 'touchstart' || type === 'touchmove';\n var isPrimaryMouseDown = type === 'mousedown' && (button === 0 || buttons === 1);\n var isPrimaryMouseMove = type === 'mousemove' && buttons === 1;\n var noModifiers = altKey === false && ctrlKey === false;\n\n if (isTouch || isPrimaryMouseDown && noModifiers || isPrimaryMouseMove && noModifiers) {\n return true;\n }\n\n return false;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nexport default function isSelectionValid() {\n var selection = window.getSelection();\n var string = selection.toString();\n var anchorNode = selection.anchorNode;\n var focusNode = selection.focusNode;\n var isTextNode = anchorNode && anchorNode.nodeType === window.Node.TEXT_NODE || focusNode && focusNode.nodeType === window.Node.TEXT_NODE;\n return string.length >= 1 && string !== '\\n' && isTextNode;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * RESPONDER EVENT SYSTEM\n *\n * A single, global \"interaction lock\" on views. For a view to be the \"responder\" means\n * that pointer interactions are exclusive to that view and none other. The \"interaction\n * lock\" can be transferred (only) to ancestors of the current \"responder\" as long as\n * pointers continue to be active.\n *\n * Responder being granted:\n *\n * A view can become the \"responder\" after the following events:\n * * \"pointerdown\" (implemented using \"touchstart\", \"mousedown\")\n * * \"pointermove\" (implemented using \"touchmove\", \"mousemove\")\n * * \"scroll\" (while a pointer is down)\n * * \"selectionchange\" (while a pointer is down)\n *\n * If nothing is already the \"responder\", the event propagates to (capture) and from\n * (bubble) the event target until a view returns `true` for\n * `on*ShouldSetResponder(Capture)`.\n *\n * If something is already the responder, the event propagates to (capture) and from\n * (bubble) the lowest common ancestor of the event target and the current \"responder\".\n * Then negotiation happens between the current \"responder\" and a view that wants to\n * become the \"responder\": see the timing diagram below.\n *\n * (NOTE: Scrolled views either automatically become the \"responder\" or release the\n * \"interaction lock\". A native scroll view that isn't built on top of the responder\n * system must result in the current \"responder\" being notified that it no longer has\n * the \"interaction lock\" - the native system has taken over.\n *\n * Responder being released:\n *\n * As soon as there are no more active pointers that *started* inside descendants\n * of the *current* \"responder\", an `onResponderRelease` event is dispatched to the\n * current \"responder\", and the responder lock is released.\n *\n * Typical sequence of events:\n * * startShouldSetResponder\n * * responderGrant/Reject\n * * responderStart\n * * responderMove\n * * responderEnd\n * * responderRelease\n */\n\n/* Negotiation Performed\n +-----------------------+\n / \\\nProcess low level events to + Current Responder + wantsResponderID\ndetermine who to perform negot-| (if any exists at all) |\niation/transition | Otherwise just pass through|\n-------------------------------+----------------------------+------------------+\nBubble to find first ID | |\nto return true:wantsResponderID| |\n | |\n +--------------+ | |\n | onTouchStart | | |\n +------+-------+ none | |\n | return| |\n+-----------v-------------+true| +------------------------+ |\n|onStartShouldSetResponder|----->| onResponderStart (cur) |<-----------+\n+-----------+-------------+ | +------------------------+ | |\n | | | +--------+-------+\n | returned true for| false:REJECT +-------->|onResponderReject\n | wantsResponderID | | | +----------------+\n | (now attempt | +------------------+-----+ |\n | handoff) | | onResponder | |\n +------------------->| TerminationRequest | |\n | +------------------+-----+ |\n | | | +----------------+\n | true:GRANT +-------->|onResponderGrant|\n | | +--------+-------+\n | +------------------------+ | |\n | | onResponderTerminate |<-----------+\n | +------------------+-----+ |\n | | | +----------------+\n | +-------->|onResponderStart|\n | | +----------------+\nBubble to find first ID | |\nto return true:wantsResponderID| |\n | |\n +-------------+ | |\n | onTouchMove | | |\n +------+------+ none | |\n | return| |\n+-----------v-------------+true| +------------------------+ |\n|onMoveShouldSetResponder |----->| onResponderMove (cur) |<-----------+\n+-----------+-------------+ | +------------------------+ | |\n | | | +--------+-------+\n | returned true for| false:REJECT +-------->|onResponderReject\n | wantsResponderID | | | +----------------+\n | (now attempt | +------------------+-----+ |\n | handoff) | | onResponder | |\n +------------------->| TerminationRequest| |\n | +------------------+-----+ |\n | | | +----------------+\n | true:GRANT +-------->|onResponderGrant|\n | | +--------+-------+\n | +------------------------+ | |\n | | onResponderTerminate |<-----------+\n | +------------------+-----+ |\n | | | +----------------+\n | +-------->|onResponderMove |\n | | +----------------+\n | |\n | |\n Some active touch started| |\n inside current responder | +------------------------+ |\n +------------------------->| onResponderEnd | |\n | | +------------------------+ |\n +---+---------+ | |\n | onTouchEnd | | |\n +---+---------+ | |\n | | +------------------------+ |\n +------------------------->| onResponderEnd | |\n No active touches started| +-----------+------------+ |\n inside current responder | | |\n | v |\n | +------------------------+ |\n | | onResponderRelease | |\n | +------------------------+ |\n | |\n + + */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport createResponderEvent from './createResponderEvent';\nimport { isCancelish, isEndish, isMoveish, isScroll, isSelectionChange, isStartish } from './ResponderEventTypes';\nimport { getLowestCommonAncestor, getResponderPaths, hasTargetTouches, hasValidSelection, isPrimaryPointerDown, setResponderId } from './utils';\nimport ResponderTouchHistoryStore from './ResponderTouchHistoryStore';\n/* ------------ TYPES ------------ */\n\nvar emptyObject = {};\n/* ------------ IMPLEMENTATION ------------ */\n\nvar startRegistration = ['onStartShouldSetResponderCapture', 'onStartShouldSetResponder', {\n bubbles: true\n}];\nvar moveRegistration = ['onMoveShouldSetResponderCapture', 'onMoveShouldSetResponder', {\n bubbles: true\n}];\nvar scrollRegistration = ['onScrollShouldSetResponderCapture', 'onScrollShouldSetResponder', {\n bubbles: false\n}];\nvar shouldSetResponderEvents = {\n touchstart: startRegistration,\n mousedown: startRegistration,\n touchmove: moveRegistration,\n mousemove: moveRegistration,\n scroll: scrollRegistration\n};\nvar emptyResponder = {\n id: null,\n idPath: null,\n node: null\n};\nvar responderListenersMap = new Map();\nvar isEmulatingMouseEvents = false;\nvar trackedTouchCount = 0;\nvar currentResponder = {\n id: null,\n node: null,\n idPath: null\n};\n\nfunction changeCurrentResponder(responder) {\n currentResponder = responder;\n}\n\nfunction getResponderConfig(id) {\n var config = responderListenersMap.get(id);\n return config != null ? config : emptyObject;\n}\n/**\n * Process native events\n *\n * A single event listener is used to manage the responder system.\n * All pointers are tracked in the ResponderTouchHistoryStore. Native events\n * are interpreted in terms of the Responder System and checked to see if\n * the responder should be transferred. Each host node that is attached to\n * the Responder System has an ID, which is used to look up its associated\n * callbacks.\n */\n\n\nfunction eventListener(domEvent) {\n var eventType = domEvent.type;\n var eventTarget = domEvent.target;\n /**\n * Manage emulated events and early bailout.\n * Since PointerEvent is not used yet (lack of support in older Safari), it's\n * necessary to manually manage the mess of browser touch/mouse events.\n * And bailout early for termination events when there is no active responder.\n */\n // Flag when browser may produce emulated events\n\n if (eventType === 'touchstart') {\n isEmulatingMouseEvents = true;\n } // Remove flag when browser will not produce emulated events\n\n\n if (eventType === 'touchmove' || trackedTouchCount > 1) {\n isEmulatingMouseEvents = false;\n } // Ignore various events in particular circumstances\n\n\n if ( // Ignore browser emulated mouse events\n eventType === 'mousedown' && isEmulatingMouseEvents || eventType === 'mousemove' && isEmulatingMouseEvents || // Ignore mousemove if a mousedown didn't occur first\n eventType === 'mousemove' && trackedTouchCount < 1) {\n return;\n } // Remove flag after emulated events are finished\n\n\n if (isEmulatingMouseEvents && eventType === 'mouseup') {\n if (trackedTouchCount === 0) {\n isEmulatingMouseEvents = false;\n }\n\n return;\n }\n\n var isStartEvent = isStartish(eventType) && isPrimaryPointerDown(domEvent);\n var isMoveEvent = isMoveish(eventType);\n var isEndEvent = isEndish(eventType);\n var isScrollEvent = isScroll(eventType);\n var isSelectionChangeEvent = isSelectionChange(eventType);\n var responderEvent = createResponderEvent(domEvent);\n /**\n * Record the state of active pointers\n */\n\n if (isStartEvent || isMoveEvent || isEndEvent) {\n if (domEvent.touches) {\n trackedTouchCount = domEvent.touches.length;\n } else {\n if (isStartEvent) {\n trackedTouchCount = 1;\n } else if (isEndEvent) {\n trackedTouchCount = 0;\n }\n }\n\n ResponderTouchHistoryStore.recordTouchTrack(eventType, responderEvent.nativeEvent);\n }\n /**\n * Responder System logic\n */\n\n\n var eventPaths = getResponderPaths(domEvent);\n var wasNegotiated = false;\n var wantsResponder; // If an event occured that might change the current responder...\n\n if (isStartEvent || isMoveEvent || isScrollEvent && trackedTouchCount > 0) {\n // If there is already a responder, prune the event paths to the lowest common ancestor\n // of the existing responder and deepest target of the event.\n var currentResponderIdPath = currentResponder.idPath;\n var eventIdPath = eventPaths.idPath;\n\n if (currentResponderIdPath != null && eventIdPath != null) {\n var lowestCommonAncestor = getLowestCommonAncestor(currentResponderIdPath, eventIdPath);\n\n if (lowestCommonAncestor != null) {\n var indexOfLowestCommonAncestor = eventIdPath.indexOf(lowestCommonAncestor); // Skip the current responder so it doesn't receive unexpected \"shouldSet\" events.\n\n var index = indexOfLowestCommonAncestor + (lowestCommonAncestor === currentResponder.id ? 1 : 0);\n eventPaths = {\n idPath: eventIdPath.slice(index),\n nodePath: eventPaths.nodePath.slice(index)\n };\n } else {\n eventPaths = null;\n }\n }\n\n if (eventPaths != null) {\n // If a node wants to become the responder, attempt to transfer.\n wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent);\n\n if (wantsResponder != null) {\n // Sets responder if none exists, or negotates with existing responder.\n attemptTransfer(responderEvent, wantsResponder);\n wasNegotiated = true;\n }\n }\n } // If there is now a responder, invoke its callbacks for the lifecycle of the gesture.\n\n\n if (currentResponder.id != null && currentResponder.node != null) {\n var _currentResponder = currentResponder,\n id = _currentResponder.id,\n node = _currentResponder.node;\n\n var _getResponderConfig = getResponderConfig(id),\n onResponderStart = _getResponderConfig.onResponderStart,\n onResponderMove = _getResponderConfig.onResponderMove,\n onResponderEnd = _getResponderConfig.onResponderEnd,\n onResponderRelease = _getResponderConfig.onResponderRelease,\n onResponderTerminate = _getResponderConfig.onResponderTerminate,\n onResponderTerminationRequest = _getResponderConfig.onResponderTerminationRequest;\n\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node; // Start\n\n if (isStartEvent) {\n if (onResponderStart != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderStart';\n onResponderStart(responderEvent);\n }\n } // Move\n else if (isMoveEvent) {\n if (onResponderMove != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderMove';\n onResponderMove(responderEvent);\n }\n } else {\n var isTerminateEvent = isCancelish(eventType) || // native context menu\n eventType === 'contextmenu' || // window blur\n eventType === 'blur' && eventTarget === window || // responder (or ancestors) blur\n eventType === 'blur' && eventTarget.contains(node) && domEvent.relatedTarget !== node || // native scroll without using a pointer\n isScrollEvent && trackedTouchCount === 0 || // native scroll on node that is parent of the responder (allow siblings to scroll)\n isScrollEvent && eventTarget.contains(node) && eventTarget !== node || // native select/selectionchange on node\n isSelectionChangeEvent && hasValidSelection(domEvent);\n var isReleaseEvent = isEndEvent && !isTerminateEvent && !hasTargetTouches(node, domEvent.touches); // End\n\n if (isEndEvent) {\n if (onResponderEnd != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderEnd';\n onResponderEnd(responderEvent);\n }\n } // Release\n\n\n if (isReleaseEvent) {\n if (onResponderRelease != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderRelease';\n onResponderRelease(responderEvent);\n }\n\n changeCurrentResponder(emptyResponder);\n } // Terminate\n\n\n if (isTerminateEvent) {\n var shouldTerminate = true; // Responders can still avoid termination but only for these events.\n\n if (eventType === 'contextmenu' || eventType === 'scroll' || eventType === 'selectionchange') {\n // Only call this function is it wasn't already called during negotiation.\n if (wasNegotiated) {\n shouldTerminate = false;\n } else if (onResponderTerminationRequest != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n\n if (onResponderTerminationRequest(responderEvent) === false) {\n shouldTerminate = false;\n }\n }\n }\n\n if (shouldTerminate) {\n if (onResponderTerminate != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n onResponderTerminate(responderEvent);\n }\n\n changeCurrentResponder(emptyResponder);\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n }\n }\n }\n }\n}\n/**\n * Walk the event path to/from the target node. At each node, stop and call the\n * relevant \"shouldSet\" functions for the given event type. If any of those functions\n * call \"stopPropagation\" on the event, stop searching for a responder.\n */\n\n\nfunction findWantsResponder(eventPaths, domEvent, responderEvent) {\n var shouldSetCallbacks = shouldSetResponderEvents[domEvent.type]; // for Flow\n\n if (shouldSetCallbacks != null) {\n var idPath = eventPaths.idPath,\n nodePath = eventPaths.nodePath;\n var shouldSetCallbackCaptureName = shouldSetCallbacks[0];\n var shouldSetCallbackBubbleName = shouldSetCallbacks[1];\n var bubbles = shouldSetCallbacks[2].bubbles;\n\n var check = function check(id, node, callbackName) {\n var config = getResponderConfig(id);\n var shouldSetCallback = config[callbackName];\n\n if (shouldSetCallback != null) {\n responderEvent.currentTarget = node;\n\n if (shouldSetCallback(responderEvent) === true) {\n // Start the path from the potential responder\n var prunedIdPath = idPath.slice(idPath.indexOf(id));\n return {\n id: id,\n node: node,\n idPath: prunedIdPath\n };\n }\n }\n }; // capture\n\n\n for (var i = idPath.length - 1; i >= 0; i--) {\n var id = idPath[i];\n var node = nodePath[i];\n var result = check(id, node, shouldSetCallbackCaptureName);\n\n if (result != null) {\n return result;\n }\n\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n } // bubble\n\n\n if (bubbles) {\n for (var _i = 0; _i < idPath.length; _i++) {\n var _id = idPath[_i];\n var _node = nodePath[_i];\n\n var _result = check(_id, _node, shouldSetCallbackBubbleName);\n\n if (_result != null) {\n return _result;\n }\n\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n }\n } else {\n var _id2 = idPath[0];\n var _node2 = nodePath[0];\n var target = domEvent.target;\n\n if (target === _node2) {\n return check(_id2, _node2, shouldSetCallbackBubbleName);\n }\n }\n }\n}\n/**\n * Attempt to transfer the responder.\n */\n\n\nfunction attemptTransfer(responderEvent, wantsResponder) {\n var _currentResponder2 = currentResponder,\n currentId = _currentResponder2.id,\n currentNode = _currentResponder2.node;\n var id = wantsResponder.id,\n node = wantsResponder.node;\n\n var _getResponderConfig2 = getResponderConfig(id),\n onResponderGrant = _getResponderConfig2.onResponderGrant,\n onResponderReject = _getResponderConfig2.onResponderReject;\n\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node; // Set responder\n\n if (currentId == null) {\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\n }\n\n changeCurrentResponder(wantsResponder);\n } // Negotiate with current responder\n else {\n var _getResponderConfig3 = getResponderConfig(currentId),\n onResponderTerminate = _getResponderConfig3.onResponderTerminate,\n onResponderTerminationRequest = _getResponderConfig3.onResponderTerminationRequest;\n\n var allowTransfer = true;\n\n if (onResponderTerminationRequest != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n\n if (onResponderTerminationRequest(responderEvent) === false) {\n allowTransfer = false;\n }\n }\n\n if (allowTransfer) {\n // Terminate existing responder\n if (onResponderTerminate != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n onResponderTerminate(responderEvent);\n } // Grant next responder\n\n\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\n }\n\n changeCurrentResponder(wantsResponder);\n } else {\n // Reject responder request\n if (onResponderReject != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderReject';\n onResponderReject(responderEvent);\n }\n }\n }\n}\n/* ------------ PUBLIC API ------------ */\n\n/**\n * Attach Listeners\n *\n * Use native events as ReactDOM doesn't have a non-plugin API to implement\n * this system.\n */\n\n\nvar documentEventsCapturePhase = ['blur', 'scroll'];\nvar documentEventsBubblePhase = [// mouse\n'mousedown', 'mousemove', 'mouseup', 'dragstart', // touch\n'touchstart', 'touchmove', 'touchend', 'touchcancel', // other\n'contextmenu', 'select', 'selectionchange'];\nexport function attachListeners() {\n if (canUseDOM && window.__reactResponderSystemActive == null) {\n window.addEventListener('blur', eventListener);\n documentEventsBubblePhase.forEach(function (eventType) {\n document.addEventListener(eventType, eventListener);\n });\n documentEventsCapturePhase.forEach(function (eventType) {\n document.addEventListener(eventType, eventListener, true);\n });\n window.__reactResponderSystemActive = true;\n }\n}\n/**\n * Register a node with the ResponderSystem.\n */\n\nexport function addNode(id, node, config) {\n setResponderId(node, id);\n responderListenersMap.set(id, config);\n}\n/**\n * Unregister a node with the ResponderSystem.\n */\n\nexport function removeNode(id) {\n if (currentResponder.id === id) {\n terminateResponder();\n }\n\n if (responderListenersMap.has(id)) {\n responderListenersMap.delete(id);\n }\n}\n/**\n * Allow the current responder to be terminated from within components to support\n * more complex requirements, such as use with other React libraries for working\n * with scroll views, input views, etc.\n */\n\nexport function terminateResponder() {\n var _currentResponder3 = currentResponder,\n id = _currentResponder3.id,\n node = _currentResponder3.node;\n\n if (id != null && node != null) {\n var _getResponderConfig4 = getResponderConfig(id),\n onResponderTerminate = _getResponderConfig4.onResponderTerminate;\n\n if (onResponderTerminate != null) {\n var event = createResponderEvent({});\n event.currentTarget = node;\n onResponderTerminate(event);\n }\n\n changeCurrentResponder(emptyResponder);\n }\n\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n}\n/**\n * Allow unit tests to inspect the current responder in the system.\n * FOR TESTING ONLY.\n */\n\nexport function getResponderNode() {\n return currentResponder.node;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * Hook for integrating the Responder System into React\n *\n * function SomeComponent({ onStartShouldSetResponder }) {\n * const ref = useRef(null);\n * useResponderEvents(ref, { onStartShouldSetResponder });\n * return
\n * }\n */\nimport * as React from 'react';\nimport * as ResponderSystem from './ResponderSystem';\nvar emptyObject = {};\nvar idCounter = 0;\n\nfunction useStable(getInitialValue) {\n var ref = React.useRef(null);\n\n if (ref.current == null) {\n ref.current = getInitialValue();\n }\n\n return ref.current;\n}\n\nexport default function useResponderEvents(hostRef, config) {\n if (config === void 0) {\n config = emptyObject;\n }\n\n var id = useStable(function () {\n return idCounter++;\n });\n var isAttachedRef = React.useRef(false); // This is a separate effects so it doesn't run when the config changes.\n // On initial mount, attach global listeners if needed.\n // On unmount, remove node potentially attached to the Responder System.\n\n React.useEffect(function () {\n ResponderSystem.attachListeners();\n return function () {\n ResponderSystem.removeNode(id);\n };\n }, [id]); // Register and unregister with the Responder System as necessary\n\n React.useEffect(function () {\n var _config = config,\n onMoveShouldSetResponder = _config.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = _config.onMoveShouldSetResponderCapture,\n onScrollShouldSetResponder = _config.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = _config.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = _config.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = _config.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = _config.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = _config.onStartShouldSetResponderCapture;\n var requiresResponderSystem = onMoveShouldSetResponder != null || onMoveShouldSetResponderCapture != null || onScrollShouldSetResponder != null || onScrollShouldSetResponderCapture != null || onSelectionChangeShouldSetResponder != null || onSelectionChangeShouldSetResponderCapture != null || onStartShouldSetResponder != null || onStartShouldSetResponderCapture != null;\n var node = hostRef.current;\n\n if (requiresResponderSystem) {\n ResponderSystem.addNode(id, node, config);\n isAttachedRef.current = true;\n } else if (isAttachedRef.current) {\n ResponderSystem.removeNode(id);\n isAttachedRef.current = false;\n }\n }, [config, hostRef, id]);\n React.useDebugValue({\n isResponder: hostRef.current === ResponderSystem.getResponderNode()\n });\n React.useDebugValue(config);\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar isDisabled = function isDisabled(props) {\n return props.disabled || Array.isArray(props.accessibilityStates) && props.accessibilityStates.indexOf('disabled') > -1;\n};\n\nexport default isDisabled;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar accessibilityRoleToWebRole = {\n adjustable: 'slider',\n button: 'button',\n header: 'heading',\n image: 'img',\n imagebutton: null,\n keyboardkey: null,\n label: null,\n link: 'link',\n none: 'presentation',\n search: 'search',\n summary: 'region',\n text: null\n};\n\nvar propsToAriaRole = function propsToAriaRole(_ref) {\n var accessibilityRole = _ref.accessibilityRole;\n\n if (accessibilityRole) {\n var inferredRole = accessibilityRoleToWebRole[accessibilityRole];\n\n if (inferredRole !== null) {\n // ignore roles that don't map to web\n return inferredRole || accessibilityRole;\n }\n }\n};\n\nexport default propsToAriaRole;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport propsToAriaRole from './propsToAriaRole';\nvar roleComponents = {\n article: 'article',\n banner: 'header',\n blockquote: 'blockquote',\n code: 'code',\n complementary: 'aside',\n contentinfo: 'footer',\n deletion: 'del',\n emphasis: 'em',\n figure: 'figure',\n insertion: 'ins',\n form: 'form',\n list: 'ul',\n listitem: 'li',\n main: 'main',\n navigation: 'nav',\n region: 'section',\n strong: 'strong'\n};\nvar emptyObject = {};\n\nvar propsToAccessibilityComponent = function propsToAccessibilityComponent(props) {\n if (props === void 0) {\n props = emptyObject;\n }\n\n // special-case for \"label\" role which doesn't map to an ARIA role\n if (props.accessibilityRole === 'label') {\n return 'label';\n }\n\n var role = propsToAriaRole(props);\n\n if (role) {\n if (role === 'heading') {\n var level = props.accessibilityLevel || props['aria-level'];\n\n if (level != null) {\n return \"h\" + level;\n }\n\n return 'h1';\n }\n\n return roleComponents[role];\n }\n};\n\nexport default propsToAccessibilityComponent;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport isDisabled from './isDisabled';\nimport propsToAccessibilityComponent from './propsToAccessibilityComponent';\nimport propsToAriaRole from './propsToAriaRole';\nvar AccessibilityUtil = {\n isDisabled: isDisabled,\n propsToAccessibilityComponent: propsToAccessibilityComponent,\n propsToAriaRole: propsToAriaRole\n};\nexport default AccessibilityUtil;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar CSS_UNIT_RE = /^[+-]?\\d*(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?(%|\\w*)/;\n\nvar getUnit = function getUnit(str) {\n return str.match(CSS_UNIT_RE)[1];\n};\n\nvar isNumeric = function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n};\n\nvar multiplyStyleLengthValue = function multiplyStyleLengthValue(value, multiple) {\n if (typeof value === 'string') {\n var number = parseFloat(value) * multiple;\n var unit = getUnit(value);\n return \"\" + number + unit;\n } else if (isNumeric(value)) {\n return value * multiple;\n }\n};\n\nexport default multiplyStyleLengthValue;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar getBoundingClientRect = function getBoundingClientRect(node) {\n if (node != null) {\n var isElement = node.nodeType === 1;\n /* Node.ELEMENT_NODE */\n\n if (isElement && typeof node.getBoundingClientRect === 'function') {\n return node.getBoundingClientRect();\n }\n }\n};\n\nexport default getBoundingClientRect;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactNative = require(\"react-native\");\n\nvar _mdurl = _interopRequireDefault(require(\"mdurl\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar linkify = require('linkify-it')();\n\nvar textPropTypes = _reactNative.Text.propTypes || {};\nvar OS = _reactNative.Platform.OS;\n\nvar Hyperlink =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Hyperlink, _Component);\n\n function Hyperlink(props) {\n var _this;\n\n _classCallCheck(this, Hyperlink);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Hyperlink).call(this, props));\n\n _defineProperty(_assertThisInitialized(_this), \"linkify\", function (component) {\n if (!_this.state.linkifyIt.pretest(component.props.children) || !_this.state.linkifyIt.test(component.props.children)) return component;\n var elements = [];\n var _lastIndex = 0;\n\n var componentProps = _objectSpread({}, component.props, {\n ref: undefined,\n key: undefined\n });\n\n try {\n _this.state.linkifyIt.match(component.props.children).forEach(function (_ref) {\n var index = _ref.index,\n lastIndex = _ref.lastIndex,\n text = _ref.text,\n url = _ref.url;\n var nonLinkedText = component.props.children.substring(_lastIndex, index);\n nonLinkedText && elements.push(nonLinkedText);\n _lastIndex = lastIndex;\n if (_this.props.linkText) text = typeof _this.props.linkText === 'function' ? _this.props.linkText(url) : _this.props.linkText;\n var clickHandlerProps = {};\n\n if (OS !== 'web') {\n clickHandlerProps.onLongPress = _this.props.onLongPress ? function () {\n return _this.props.onLongPress(url, text);\n } : undefined;\n }\n\n clickHandlerProps.onPress = _this.props.onPress ? function () {\n return _this.props.onPress(url, text);\n } : undefined;\n elements.push(_react[\"default\"].createElement(_reactNative.Text, _extends({}, componentProps, clickHandlerProps, {\n key: url + index,\n style: [component.props.style, _this.props.linkStyle]\n }, _this.props.injectViewProps(url)), text));\n });\n\n elements.push(component.props.children.substring(_lastIndex, component.props.children.length));\n return _react[\"default\"].cloneElement(component, componentProps, elements);\n } catch (err) {\n return component;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"parse\", function (component) {\n var _ref2 = component || {},\n _ref2$props = _ref2.props;\n\n _ref2$props = _ref2$props === void 0 ? {} : _ref2$props;\n var children = _ref2$props.children;\n if (!children) return component;\n\n var componentProps = _objectSpread({}, component.props, {\n ref: undefined,\n key: undefined\n });\n\n return _react[\"default\"].cloneElement(component, componentProps, _react[\"default\"].Children.map(children, function (child) {\n var _ref3 = child || {},\n _ref3$type = _ref3.type;\n\n _ref3$type = _ref3$type === void 0 ? {} : _ref3$type;\n var displayName = _ref3$type.displayName;\n if (typeof child === 'string' && _this.state.linkifyIt.pretest(child)) return _this.linkify(_react[\"default\"].createElement(_reactNative.Text, _extends({}, componentProps, {\n style: component.props.style\n }), child));\n if (displayName === 'Text' && !_this.isTextNested(child)) return _this.linkify(child);\n return _this.parse(child);\n }));\n });\n\n _this.state = {\n linkifyIt: props.linkify || linkify\n };\n return _this;\n }\n\n _createClass(Hyperlink, [{\n key: \"render\",\n value: function render() {\n var viewProps = _extends({}, this.props);\n\n delete viewProps.onPress;\n delete viewProps.linkDefault;\n delete viewProps.onLongPress;\n delete viewProps.linkStyle;\n return _react[\"default\"].createElement(_reactNative.View, _extends({}, viewProps, {\n style: this.props.style\n }), !this.props.onPress && !this.props.onLongPress && !this.props.linkStyle ? this.props.children : this.parse(this).props.children);\n }\n }, {\n key: \"isTextNested\",\n value: function isTextNested(component) {\n if (!_react[\"default\"].isValidElement(component)) throw new Error('Invalid component');\n var _component$type = component.type;\n _component$type = _component$type === void 0 ? {} : _component$type;\n var displayName = _component$type.displayName;\n if (displayName !== 'Text') throw new Error('Not a Text component');\n return typeof component.props.children !== 'string';\n }\n }]);\n\n return Hyperlink;\n}(_react.Component);\n\nHyperlink.propTypes = {\n linkDefault: _propTypes[\"default\"].bool,\n linkify: _propTypes[\"default\"].object,\n linkStyle: textPropTypes.style,\n linkText: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].func]),\n onPress: _propTypes[\"default\"].func,\n onLongPress: _propTypes[\"default\"].func,\n injectViewProps: _propTypes[\"default\"].func\n};\nHyperlink.defaultProps = {\n linkify: linkify,\n injectViewProps: function injectViewProps(i) {\n return {};\n }\n};\n\nHyperlink.getDerivedStateFromProps = function (nextProps, prevState) {\n return nextProps.linkify !== prevState.linkifyIt ? {\n linkifyIt: nextProps.linkify\n } : null;\n};\n\nvar _default =\n/*#__PURE__*/\nfunction (_Component2) {\n _inherits(_default, _Component2);\n\n function _default(props) {\n var _this2;\n\n _classCallCheck(this, _default);\n\n _this2 = _possibleConstructorReturn(this, _getPrototypeOf(_default).call(this, props));\n _this2.handleLink = _this2.handleLink.bind(_assertThisInitialized(_this2));\n return _this2;\n }\n\n _createClass(_default, [{\n key: \"handleLink\",\n value: function handleLink(url) {\n var urlObject = _mdurl[\"default\"].parse(url);\n\n urlObject.protocol = urlObject.protocol.toLowerCase();\n\n var normalizedURL = _mdurl[\"default\"].format(urlObject);\n\n _reactNative.Linking.canOpenURL(normalizedURL).then(function (supported) {\n return supported && _reactNative.Linking.openURL(normalizedURL);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var onPress = this.handleLink || this.props.onPress;\n if (this.props.linkDefault) return _react[\"default\"].createElement(Hyperlink, _extends({}, this.props, {\n onPress: onPress\n }));\n return _react[\"default\"].createElement(Hyperlink, this.props);\n }\n }]);\n\n return _default;\n}(_react.Component);\n\nexports[\"default\"] = _default;\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","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};\n\nexport default unitlessKeys;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPrefixedValue;\nvar regex = /-webkit-|-moz-|-ms-/;\n\nfunction isPrefixedValue(value) {\n return typeof value === 'string' && regex.test(value);\n}\nmodule.exports = exports['default'];","var weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexport default weakMemoize;\n","import { createElement, useContext, useRef, useLayoutEffect } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-99289b21.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-99289b21.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport 'hoist-non-react-statics';\nimport '../isolated-hoist-non-react-statics-do-not-use-this-in-your-code/dist/emotion-react-isolated-hoist-non-react-statics-do-not-use-this-in-your-code.browser.esm.js';\nimport { insertStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { StyleSheet } from '@emotion/sheet';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.4.1\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.cjs.js\": \"./dist/emotion-react.browser.cjs.js\",\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"isolated-hoist-non-react-statics-do-not-use-this-in-your-code\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.js\",\n\t\t\"macro.d.ts\",\n\t\t\"macro.js.flow\"\n\t],\n\tsideEffects: false,\n\tauthor: \"mitchellhamilton \",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.13.10\",\n\t\t\"@emotion/cache\": \"^11.4.0\",\n\t\t\"@emotion/serialize\": \"^1.0.2\",\n\t\t\"@emotion/sheet\": \"^1.0.2\",\n\t\t\"@emotion/utils\": \"^1.0.0\",\n\t\t\"@emotion/weak-memoize\": \"^0.2.5\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\t\"@babel/core\": \"^7.0.0\",\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@babel/core\": {\n\t\t\toptional: true\n\t\t},\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@babel/core\": \"^7.13.10\",\n\t\t\"@emotion/css\": \"11.1.3\",\n\t\t\"@emotion/css-prettifier\": \"1.0.0\",\n\t\t\"@emotion/server\": \"11.4.0\",\n\t\t\"@emotion/styled\": \"11.3.0\",\n\t\t\"@types/react\": \"^16.9.11\",\n\t\tdtslint: \"^0.3.0\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./isolated-hoist-non-react-statics-do-not-use-this-in-your-code.js\"\n\t\t],\n\t\tumdName: \"emotionReact\"\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = useRef();\n useLayoutEffect(function () {\n var key = cache.key + \"-global\";\n var sheet = new StyleSheet({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useLayoutEffect(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n\n {\n insertStyles(cache, serialized, false);\n }\n\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n\n return ele;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727 for some reason Jest evaluates modules twice if some consuming module gets mocked with jest.mock\n\n var isJest = typeof jest !== 'undefined';\n\n if (isBrowser && !isJest) {\n var globalContext = isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","/**\n * Portions Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n/**\n * BezierEasing - use bezier curve for transition easing function\n * https://github.com/gre/bezier-easing\n * @copyright 2014-2015 Gaëtan Renaudeau. MIT License.\n */\n'use strict'; // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nvar float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n}\n\nfunction B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n}\n\nfunction C(aA1) {\n return 3.0 * aA1;\n} // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\nfunction calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n} // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\nfunction getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n}\n\nfunction binarySubdivide(aX, _aA, _aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0,\n aA = _aA,\n aB = _aB;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n}\n\nfunction newtonRaphsonIterate(aX, _aGuessT, mX1, mX2) {\n var aGuessT = _aGuessT;\n\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n}\n\nexport default function bezier(mX1, mY1, mX2, mY2) {\n if (!(mX1 >= 0 && mX1 <= 1 && mX2 >= 0 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n } // Precompute samples table\n\n\n var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function getTForX(aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n\n return function BezierEasing(x) {\n if (mX1 === mY1 && mX2 === mY2) {\n return x; // linear\n } // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n\n if (x === 0) {\n return 0;\n }\n\n if (x === 1) {\n return 1;\n }\n\n return calcBezier(getTForX(x), mY1, mY2);\n };\n}\n;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nimport _bezier from './bezier';\n\nvar _ease;\n/**\n * The `Easing` module implements common easing functions. This module is used\n * by [Animate.timing()](docs/animate.html#timing) to convey physically\n * believable motion in animations.\n *\n * You can find a visualization of some common easing functions at\n * http://easings.net/\n *\n * ### Predefined animations\n *\n * The `Easing` module provides several predefined animations through the\n * following methods:\n *\n * - [`back`](docs/easing.html#back) provides a simple animation where the\n * object goes slightly back before moving forward\n * - [`bounce`](docs/easing.html#bounce) provides a bouncing animation\n * - [`ease`](docs/easing.html#ease) provides a simple inertial animation\n * - [`elastic`](docs/easing.html#elastic) provides a simple spring interaction\n *\n * ### Standard functions\n *\n * Three standard easing functions are provided:\n *\n * - [`linear`](docs/easing.html#linear)\n * - [`quad`](docs/easing.html#quad)\n * - [`cubic`](docs/easing.html#cubic)\n *\n * The [`poly`](docs/easing.html#poly) function can be used to implement\n * quartic, quintic, and other higher power functions.\n *\n * ### Additional functions\n *\n * Additional mathematical functions are provided by the following methods:\n *\n * - [`bezier`](docs/easing.html#bezier) provides a cubic bezier curve\n * - [`circle`](docs/easing.html#circle) provides a circular function\n * - [`sin`](docs/easing.html#sin) provides a sinusoidal function\n * - [`exp`](docs/easing.html#exp) provides an exponential function\n *\n * The following helpers are used to modify other easing functions.\n *\n * - [`in`](docs/easing.html#in) runs an easing function forwards\n * - [`inOut`](docs/easing.html#inout) makes any easing function symmetrical\n * - [`out`](docs/easing.html#out) runs an easing function backwards\n */\n\n\nvar Easing = /*#__PURE__*/function () {\n function Easing() {}\n\n /**\n * A stepping function, returns 1 for any positive value of `n`.\n */\n Easing.step0 = function step0(n) {\n return n > 0 ? 1 : 0;\n }\n /**\n * A stepping function, returns 1 if `n` is greater than or equal to 1.\n */\n ;\n\n Easing.step1 = function step1(n) {\n return n >= 1 ? 1 : 0;\n }\n /**\n * A linear function, `f(t) = t`. Position correlates to elapsed time one to\n * one.\n *\n * http://cubic-bezier.com/#0,0,1,1\n */\n ;\n\n Easing.linear = function linear(t) {\n return t;\n }\n /**\n * A simple inertial interaction, similar to an object slowly accelerating to\n * speed.\n *\n * http://cubic-bezier.com/#.42,0,1,1\n */\n ;\n\n Easing.ease = function ease(t) {\n if (!_ease) {\n _ease = Easing.bezier(0.42, 0, 1, 1);\n }\n\n return _ease(t);\n }\n /**\n * A quadratic function, `f(t) = t * t`. Position equals the square of elapsed\n * time.\n *\n * http://easings.net/#easeInQuad\n */\n ;\n\n Easing.quad = function quad(t) {\n return t * t;\n }\n /**\n * A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed\n * time.\n *\n * http://easings.net/#easeInCubic\n */\n ;\n\n Easing.cubic = function cubic(t) {\n return t * t * t;\n }\n /**\n * A power function. Position is equal to the Nth power of elapsed time.\n *\n * n = 4: http://easings.net/#easeInQuart\n * n = 5: http://easings.net/#easeInQuint\n */\n ;\n\n Easing.poly = function poly(n) {\n return function (t) {\n return Math.pow(t, n);\n };\n }\n /**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\n ;\n\n Easing.sin = function sin(t) {\n return 1 - Math.cos(t * Math.PI / 2);\n }\n /**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\n ;\n\n Easing.circle = function circle(t) {\n return 1 - Math.sqrt(1 - t * t);\n }\n /**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\n ;\n\n Easing.exp = function exp(t) {\n return Math.pow(2, 10 * (t - 1));\n }\n /**\n * A simple elastic interaction, similar to a spring oscillating back and\n * forth.\n *\n * Default bounciness is 1, which overshoots a little bit once. 0 bounciness\n * doesn't overshoot at all, and bounciness of N > 1 will overshoot about N\n * times.\n *\n * http://easings.net/#easeInElastic\n */\n ;\n\n Easing.elastic = function elastic(bounciness) {\n if (bounciness === void 0) {\n bounciness = 1;\n }\n\n var p = bounciness * Math.PI;\n return function (t) {\n return 1 - Math.pow(Math.cos(t * Math.PI / 2), 3) * Math.cos(t * p);\n };\n }\n /**\n * Use with `Animated.parallel()` to create a simple effect where the object\n * animates back slightly as the animation starts.\n *\n * Wolfram Plot:\n *\n * - http://tiny.cc/back_default (s = 1.70158, default)\n */\n ;\n\n Easing.back = function back(s) {\n if (s === void 0) {\n s = 1.70158;\n }\n\n return function (t) {\n return t * t * ((s + 1) * t - s);\n };\n }\n /**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\n ;\n\n Easing.bounce = function bounce(t) {\n if (t < 1 / 2.75) {\n return 7.5625 * t * t;\n }\n\n if (t < 2 / 2.75) {\n var _t = t - 1.5 / 2.75;\n\n return 7.5625 * _t * _t + 0.75;\n }\n\n if (t < 2.5 / 2.75) {\n var _t2 = t - 2.25 / 2.75;\n\n return 7.5625 * _t2 * _t2 + 0.9375;\n }\n\n var t2 = t - 2.625 / 2.75;\n return 7.5625 * t2 * t2 + 0.984375;\n }\n /**\n * Provides a cubic bezier curve, equivalent to CSS Transitions'\n * `transition-timing-function`.\n *\n * A useful tool to visualize cubic bezier curves can be found at\n * http://cubic-bezier.com/\n */\n ;\n\n Easing.bezier = function bezier(x1, y1, x2, y2) {\n return _bezier(x1, y1, x2, y2);\n }\n /**\n * Runs an easing function forwards.\n */\n ;\n\n Easing.in = function _in(easing) {\n return easing;\n }\n /**\n * Runs an easing function backwards.\n */\n ;\n\n Easing.out = function out(easing) {\n return function (t) {\n return 1 - easing(1 - t);\n };\n }\n /**\n * Makes any easing function symmetrical. The easing function will run\n * forwards for half of the duration, then backwards for the rest of the\n * duration.\n */\n ;\n\n Easing.inOut = function inOut(easing) {\n return function (t) {\n if (t < 0.5) {\n return easing(t * 2) / 2;\n }\n\n return 1 - easing((1 - t) * 2) / 2;\n };\n };\n\n return Easing;\n}();\n\nexport default Easing;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport Easing from '../../vendor/react-native/Animated/Easing';\nexport default Easing;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\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 */\nvar unitlessNumbers = {\n animationIterationCount: true,\n aspectRatio: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexOrder: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowGap: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnGap: true,\n gridColumnStart: true,\n lineClamp: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n // transform types\n scale: true,\n scaleX: true,\n scaleY: true,\n scaleZ: true,\n // RN properties\n shadowOpacity: true\n};\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\n\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\n\nvar prefixKey = function prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\n\nObject.keys(unitlessNumbers).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n });\n});\nexport default unitlessNumbers;","/**\n * Copyright (c) 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}","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\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) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from 'react';\nimport { useCallback, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, dimming it.\n */\nfunction TouchableOpacity(props, forwardedRef) {\n var activeOpacity = props.activeOpacity,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n rejectResponderTermination = props.rejectResponderTermination,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, [\"activeOpacity\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"rejectResponderTermination\", \"style\"]);\n\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n\n var _useState = useState('0s'),\n duration = _useState[0],\n setDuration = _useState[1];\n\n var _useState2 = useState(null),\n opacityOverride = _useState2[0],\n setOpacityOverride = _useState2[1];\n\n var setOpacityTo = useCallback(function (value, duration) {\n setOpacityOverride(value);\n setDuration(duration ? duration / 1000 + \"s\" : '0s');\n }, [setOpacityOverride, setDuration]);\n var setOpacityActive = useCallback(function (duration) {\n setOpacityTo(activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.2, duration);\n }, [activeOpacity, setOpacityTo]);\n var setOpacityInactive = useCallback(function (duration) {\n setOpacityTo(null, duration);\n }, [setOpacityTo]);\n var pressConfig = useMemo(function () {\n return {\n cancelable: !rejectResponderTermination,\n disabled: disabled,\n delayLongPress: delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress: onLongPress,\n onPress: onPress,\n onPressStart: function onPressStart(event) {\n var isGrant = event.dispatchConfig != null ? event.dispatchConfig.registrationName === 'onResponderGrant' : event.type === 'keydown';\n setOpacityActive(isGrant ? 0 : 150);\n\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n onPressEnd: function onPressEnd(event) {\n setOpacityInactive(250);\n\n if (onPressOut != null) {\n onPressOut(event);\n }\n }\n };\n }, [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, setOpacityActive, setOpacityInactive]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n ref: setRef,\n style: [styles.root, !disabled && styles.actionable, style, opacityOverride != null && {\n opacity: opacityOverride\n }, {\n transitionDuration: duration\n }]\n }));\n}\n\nvar styles = StyleSheet.create({\n root: {\n transitionProperty: 'opacity',\n transitionDuration: '0.15s',\n userSelect: 'none'\n },\n actionable: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedTouchableOpacity = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableOpacity));\nMemoedTouchableOpacity.displayName = 'TouchableOpacity';\nexport default MemoedTouchableOpacity;","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n before = _this.prepend ? _this.container.firstChild : _this.before;\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport AccessibilityUtil from '../AccessibilityUtil';\nimport css from '../../exports/StyleSheet/css';\nimport StyleSheet from '../../exports/StyleSheet';\nimport styleResolver from '../../exports/StyleSheet/styleResolver';\nimport { STYLE_GROUPS } from '../../exports/StyleSheet/constants';\nvar emptyObject = {};\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar uppercasePattern = /[A-Z]/g;\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\n\nfunction hyphenateString(str) {\n return str.replace(uppercasePattern, toHyphenLower);\n}\n\nfunction processIDRefList(idRefList) {\n return isArray(idRefList) ? idRefList.join(' ') : idRefList;\n} // Reset styles for heading, link, and list DOM elements\n\n\nvar classes = css.create({\n reset: {\n backgroundColor: 'transparent',\n color: 'inherit',\n font: 'inherit',\n listStyle: 'none',\n margin: 0,\n textAlign: 'inherit',\n textDecoration: 'none'\n },\n cursor: {\n cursor: 'pointer'\n }\n}, STYLE_GROUPS.classicReset);\nvar pointerEventsStyles = StyleSheet.create({\n auto: {\n pointerEvents: 'auto'\n },\n 'box-none': {\n pointerEvents: 'box-none'\n },\n 'box-only': {\n pointerEvents: 'box-only'\n },\n none: {\n pointerEvents: 'none'\n }\n});\n\nvar createDOMProps = function createDOMProps(elementType, props) {\n if (!props) {\n props = emptyObject;\n }\n\n var _props = props,\n accessibilityActiveDescendant = _props.accessibilityActiveDescendant,\n accessibilityAtomic = _props.accessibilityAtomic,\n accessibilityAutoComplete = _props.accessibilityAutoComplete,\n accessibilityBusy = _props.accessibilityBusy,\n accessibilityChecked = _props.accessibilityChecked,\n accessibilityColumnCount = _props.accessibilityColumnCount,\n accessibilityColumnIndex = _props.accessibilityColumnIndex,\n accessibilityColumnSpan = _props.accessibilityColumnSpan,\n accessibilityControls = _props.accessibilityControls,\n accessibilityCurrent = _props.accessibilityCurrent,\n accessibilityDescribedBy = _props.accessibilityDescribedBy,\n accessibilityDetails = _props.accessibilityDetails,\n accessibilityDisabled = _props.accessibilityDisabled,\n accessibilityErrorMessage = _props.accessibilityErrorMessage,\n accessibilityExpanded = _props.accessibilityExpanded,\n accessibilityFlowTo = _props.accessibilityFlowTo,\n accessibilityHasPopup = _props.accessibilityHasPopup,\n accessibilityHidden = _props.accessibilityHidden,\n accessibilityInvalid = _props.accessibilityInvalid,\n accessibilityKeyShortcuts = _props.accessibilityKeyShortcuts,\n accessibilityLabel = _props.accessibilityLabel,\n accessibilityLabelledBy = _props.accessibilityLabelledBy,\n accessibilityLevel = _props.accessibilityLevel,\n accessibilityLiveRegion = _props.accessibilityLiveRegion,\n accessibilityModal = _props.accessibilityModal,\n accessibilityMultiline = _props.accessibilityMultiline,\n accessibilityMultiSelectable = _props.accessibilityMultiSelectable,\n accessibilityOrientation = _props.accessibilityOrientation,\n accessibilityOwns = _props.accessibilityOwns,\n accessibilityPlaceholder = _props.accessibilityPlaceholder,\n accessibilityPosInSet = _props.accessibilityPosInSet,\n accessibilityPressed = _props.accessibilityPressed,\n accessibilityReadOnly = _props.accessibilityReadOnly,\n accessibilityRequired = _props.accessibilityRequired,\n accessibilityRole = _props.accessibilityRole,\n accessibilityRoleDescription = _props.accessibilityRoleDescription,\n accessibilityRowCount = _props.accessibilityRowCount,\n accessibilityRowIndex = _props.accessibilityRowIndex,\n accessibilityRowSpan = _props.accessibilityRowSpan,\n accessibilitySelected = _props.accessibilitySelected,\n accessibilitySetSize = _props.accessibilitySetSize,\n accessibilitySort = _props.accessibilitySort,\n accessibilityValueMax = _props.accessibilityValueMax,\n accessibilityValueMin = _props.accessibilityValueMin,\n accessibilityValueNow = _props.accessibilityValueNow,\n accessibilityValueText = _props.accessibilityValueText,\n classList = _props.classList,\n dataSet = _props.dataSet,\n focusable = _props.focusable,\n nativeID = _props.nativeID,\n pointerEvents = _props.pointerEvents,\n providedStyle = _props.style,\n testID = _props.testID,\n accessible = _props.accessible,\n accessibilityState = _props.accessibilityState,\n accessibilityValue = _props.accessibilityValue,\n domProps = _objectWithoutPropertiesLoose(_props, [\"accessibilityActiveDescendant\", \"accessibilityAtomic\", \"accessibilityAutoComplete\", \"accessibilityBusy\", \"accessibilityChecked\", \"accessibilityColumnCount\", \"accessibilityColumnIndex\", \"accessibilityColumnSpan\", \"accessibilityControls\", \"accessibilityCurrent\", \"accessibilityDescribedBy\", \"accessibilityDetails\", \"accessibilityDisabled\", \"accessibilityErrorMessage\", \"accessibilityExpanded\", \"accessibilityFlowTo\", \"accessibilityHasPopup\", \"accessibilityHidden\", \"accessibilityInvalid\", \"accessibilityKeyShortcuts\", \"accessibilityLabel\", \"accessibilityLabelledBy\", \"accessibilityLevel\", \"accessibilityLiveRegion\", \"accessibilityModal\", \"accessibilityMultiline\", \"accessibilityMultiSelectable\", \"accessibilityOrientation\", \"accessibilityOwns\", \"accessibilityPlaceholder\", \"accessibilityPosInSet\", \"accessibilityPressed\", \"accessibilityReadOnly\", \"accessibilityRequired\", \"accessibilityRole\", \"accessibilityRoleDescription\", \"accessibilityRowCount\", \"accessibilityRowIndex\", \"accessibilityRowSpan\", \"accessibilitySelected\", \"accessibilitySetSize\", \"accessibilitySort\", \"accessibilityValueMax\", \"accessibilityValueMin\", \"accessibilityValueNow\", \"accessibilityValueText\", \"classList\", \"dataSet\", \"focusable\", \"nativeID\", \"pointerEvents\", \"style\", \"testID\", \"accessible\", \"accessibilityState\", \"accessibilityValue\"]);\n\n var disabled = accessibilityState != null && accessibilityState.disabled === true || accessibilityDisabled;\n var role = AccessibilityUtil.propsToAriaRole(props); // DEPRECATED\n\n if (accessibilityState != null) {\n for (var prop in accessibilityState) {\n var value = accessibilityState[prop];\n\n if (value != null) {\n if (prop === 'disabled' || prop === 'hidden') {\n if (value === true) {\n domProps[\"aria-\" + prop] = value; // also set prop directly to pick up host elementType behaviour\n\n domProps[prop] = value;\n }\n } else {\n domProps[\"aria-\" + prop] = value;\n }\n }\n }\n }\n\n if (accessibilityValue != null) {\n for (var _prop in accessibilityValue) {\n var _value = accessibilityValue[_prop];\n\n if (_value != null) {\n domProps[\"aria-value\" + _prop] = _value;\n }\n }\n } // ACCESSIBILITY\n\n\n if (accessibilityActiveDescendant != null) {\n domProps['aria-activedescendant'] = accessibilityActiveDescendant;\n }\n\n if (accessibilityAtomic != null) {\n domProps['aria-atomic'] = accessibilityAtomic;\n }\n\n if (accessibilityAutoComplete != null) {\n domProps['aria-autocomplete'] = accessibilityAutoComplete;\n }\n\n if (accessibilityBusy != null) {\n domProps['aria-busy'] = accessibilityBusy;\n }\n\n if (accessibilityChecked != null) {\n domProps['aria-checked'] = accessibilityChecked;\n }\n\n if (accessibilityColumnCount != null) {\n domProps['aria-colcount'] = accessibilityColumnCount;\n }\n\n if (accessibilityColumnIndex != null) {\n domProps['aria-colindex'] = accessibilityColumnIndex;\n }\n\n if (accessibilityColumnSpan != null) {\n domProps['aria-colspan'] = accessibilityColumnSpan;\n }\n\n if (accessibilityControls != null) {\n domProps['aria-controls'] = processIDRefList(accessibilityControls);\n }\n\n if (accessibilityCurrent != null) {\n domProps['aria-current'] = accessibilityCurrent;\n }\n\n if (accessibilityDescribedBy != null) {\n domProps['aria-describedby'] = processIDRefList(accessibilityDescribedBy);\n }\n\n if (accessibilityDetails != null) {\n domProps['aria-details'] = accessibilityDetails;\n }\n\n if (disabled === true) {\n domProps['aria-disabled'] = true; // Enhance with native semantics\n\n if (elementType === 'button' || elementType === 'form' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.disabled = true;\n }\n }\n\n if (accessibilityErrorMessage != null) {\n domProps['aria-errormessage'] = accessibilityErrorMessage;\n }\n\n if (accessibilityExpanded != null) {\n domProps['aria-expanded'] = accessibilityExpanded;\n }\n\n if (accessibilityFlowTo != null) {\n domProps['aria-flowto'] = processIDRefList(accessibilityFlowTo);\n }\n\n if (accessibilityHasPopup != null) {\n domProps['aria-haspopup'] = accessibilityHasPopup;\n }\n\n if (accessibilityHidden === true) {\n domProps['aria-hidden'] = accessibilityHidden;\n }\n\n if (accessibilityInvalid != null) {\n domProps['aria-invalid'] = accessibilityInvalid;\n }\n\n if (accessibilityKeyShortcuts != null && Array.isArray(accessibilityKeyShortcuts)) {\n domProps['aria-keyshortcuts'] = accessibilityKeyShortcuts.join(' ');\n }\n\n if (accessibilityLabel != null) {\n domProps['aria-label'] = accessibilityLabel;\n }\n\n if (accessibilityLabelledBy != null) {\n domProps['aria-labelledby'] = processIDRefList(accessibilityLabelledBy);\n }\n\n if (accessibilityLevel != null) {\n domProps['aria-level'] = accessibilityLevel;\n }\n\n if (accessibilityLiveRegion != null) {\n domProps['aria-live'] = accessibilityLiveRegion === 'none' ? 'off' : accessibilityLiveRegion;\n }\n\n if (accessibilityModal != null) {\n domProps['aria-modal'] = accessibilityModal;\n }\n\n if (accessibilityMultiline != null) {\n domProps['aria-multiline'] = accessibilityMultiline;\n }\n\n if (accessibilityMultiSelectable != null) {\n domProps['aria-multiselectable'] = accessibilityMultiSelectable;\n }\n\n if (accessibilityOrientation != null) {\n domProps['aria-orientation'] = accessibilityOrientation;\n }\n\n if (accessibilityOwns != null) {\n domProps['aria-owns'] = processIDRefList(accessibilityOwns);\n }\n\n if (accessibilityPlaceholder != null) {\n domProps['aria-placeholder'] = accessibilityPlaceholder;\n }\n\n if (accessibilityPosInSet != null) {\n domProps['aria-posinset'] = accessibilityPosInSet;\n }\n\n if (accessibilityPressed != null) {\n domProps['aria-pressed'] = accessibilityPressed;\n }\n\n if (accessibilityReadOnly != null) {\n domProps['aria-readonly'] = accessibilityReadOnly; // Enhance with native semantics\n\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.readOnly = true;\n }\n }\n\n if (accessibilityRequired != null) {\n domProps['aria-required'] = accessibilityRequired; // Enhance with native semantics\n\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.required = true;\n }\n }\n\n if (role != null) {\n // 'presentation' synonym has wider browser support\n domProps['role'] = role === 'none' ? 'presentation' : role;\n }\n\n if (accessibilityRoleDescription != null) {\n domProps['aria-roledescription'] = accessibilityRoleDescription;\n }\n\n if (accessibilityRowCount != null) {\n domProps['aria-rowcount'] = accessibilityRowCount;\n }\n\n if (accessibilityRowIndex != null) {\n domProps['aria-rowindex'] = accessibilityRowIndex;\n }\n\n if (accessibilityRowSpan != null) {\n domProps['aria-rowspan'] = accessibilityRowSpan;\n }\n\n if (accessibilitySelected != null) {\n domProps['aria-selected'] = accessibilitySelected;\n }\n\n if (accessibilitySetSize != null) {\n domProps['aria-setsize'] = accessibilitySetSize;\n }\n\n if (accessibilitySort != null) {\n domProps['aria-sort'] = accessibilitySort;\n }\n\n if (accessibilityValueMax != null) {\n domProps['aria-valuemax'] = accessibilityValueMax;\n }\n\n if (accessibilityValueMin != null) {\n domProps['aria-valuemin'] = accessibilityValueMin;\n }\n\n if (accessibilityValueNow != null) {\n domProps['aria-valuenow'] = accessibilityValueNow;\n }\n\n if (accessibilityValueText != null) {\n domProps['aria-valuetext'] = accessibilityValueText;\n } // \"dataSet\" replaced with \"data-*\"\n\n\n if (dataSet != null) {\n for (var dataProp in dataSet) {\n if (hasOwnProperty.call(dataSet, dataProp)) {\n var dataName = hyphenateString(dataProp);\n var dataValue = dataSet[dataProp];\n\n if (dataValue != null) {\n domProps[\"data-\" + dataName] = dataValue;\n }\n }\n }\n } // FOCUS\n // \"focusable\" indicates that an element may be a keyboard tab-stop.\n\n\n var _focusable = focusable != null ? focusable : accessible;\n\n if (_focusable === false) {\n domProps.tabIndex = '-1';\n }\n\n if ( // These native elements are focusable by default\n elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n if (_focusable === false || accessibilityDisabled === true) {\n domProps.tabIndex = '-1';\n }\n } else if ( // These roles are made focusable by default\n role === 'button' || role === 'checkbox' || role === 'link' || role === 'radio' || role === 'textbox' || role === 'switch') {\n if (_focusable !== false) {\n domProps.tabIndex = '0';\n }\n } else {\n // Everything else must explicitly set the prop\n if (_focusable === true) {\n domProps.tabIndex = '0';\n }\n } // STYLE\n\n\n var reactNativeStyle = StyleSheet.compose(pointerEvents && pointerEventsStyles[pointerEvents], providedStyle); // Additional style resets for interactive elements\n\n var needsCursor = (role === 'button' || role === 'link') && !disabled;\n var needsReset = elementType === 'a' || elementType === 'button' || elementType === 'li' || elementType === 'ul' || role === 'heading'; // Classic CSS styles\n\n var finalClassList = [needsReset && classes.reset, needsCursor && classes.cursor, classList]; // Resolve styles\n\n var _styleResolver$resolv = styleResolver.resolve(reactNativeStyle, finalClassList),\n className = _styleResolver$resolv.className,\n style = _styleResolver$resolv.style;\n\n if (className != null && className !== '') {\n domProps.className = className;\n }\n\n if (style) {\n domProps.style = style;\n } // OTHER\n // Native element ID\n\n\n if (nativeID != null) {\n domProps.id = nativeID;\n } // Automated test IDs\n\n\n if (testID != null) {\n domProps['data-testid'] = testID;\n }\n\n return domProps;\n};\n\nexport default createDOMProps;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport normalizeColor from '../../modules/normalizeColor';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nvar defaultOffset = {\n height: 0,\n width: 0\n};\n\nvar resolveShadowValue = function resolveShadowValue(style) {\n var shadowColor = style.shadowColor,\n shadowOffset = style.shadowOffset,\n shadowOpacity = style.shadowOpacity,\n shadowRadius = style.shadowRadius;\n\n var _ref = shadowOffset || defaultOffset,\n height = _ref.height,\n width = _ref.width;\n\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(shadowRadius || 0);\n var color = normalizeColor(shadowColor || 'black', shadowOpacity);\n\n if (color != null && offsetX != null && offsetY != null && blurRadius != null) {\n return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n};\n\nexport default resolveShadowValue;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport invariant from 'fbjs/lib/invariant';\nexport function get(name) {\n return null;\n}\nexport function getEnforcing(name) {\n var module = get(name);\n invariant(module != null, \"TurboModuleRegistry.getEnforcing(...): '\" + name + \"' could not be found. \" + 'Verify that a module by this name is registered in the native binary.');\n return module;\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport Platform from '../../../exports/Platform';\nimport RCTDeviceEventEmitter from './RCTDeviceEventEmitter';\nimport invariant from 'fbjs/lib/invariant';\n\n/**\n * `NativeEventEmitter` is intended for use by Native Modules to emit events to\n * JavaScript listeners. If a `NativeModule` is supplied to the constructor, it\n * will be notified (via `addListener` and `removeListeners`) when the listener\n * count changes to manage \"native memory\".\n *\n * Currently, all native events are fired via a global `RCTDeviceEventEmitter`.\n * This means event names must be globally unique, and it means that call sites\n * can theoretically listen to `RCTDeviceEventEmitter` (although discouraged).\n */\nvar NativeEventEmitter = /*#__PURE__*/function () {\n function NativeEventEmitter(nativeModule) {\n if (Platform.OS === 'ios') {\n invariant(nativeModule != null, '`new NativeEventEmitter()` requires a non-null argument.');\n this._nativeModule = nativeModule;\n }\n }\n\n var _proto = NativeEventEmitter.prototype;\n\n _proto.addListener = function addListener(eventType, listener, context) {\n var _this$_nativeModule,\n _this = this;\n\n (_this$_nativeModule = this._nativeModule) == null ? void 0 : _this$_nativeModule.addListener(eventType);\n var subscription = RCTDeviceEventEmitter.addListener(eventType, listener, context);\n return {\n remove: function remove() {\n if (subscription != null) {\n var _this$_nativeModule2;\n\n (_this$_nativeModule2 = _this._nativeModule) == null ? void 0 : _this$_nativeModule2.removeListeners(1); // $FlowFixMe[incompatible-use]\n\n subscription.remove();\n subscription = null;\n }\n }\n };\n }\n /**\n * @deprecated Use `remove` on the EventSubscription from `addListener`.\n */\n ;\n\n _proto.removeListener = function removeListener(eventType, listener) {\n var _this$_nativeModule3;\n\n (_this$_nativeModule3 = this._nativeModule) == null ? void 0 : _this$_nativeModule3.removeListeners(1); // NOTE: This will report a deprecation notice via `console.error`.\n // $FlowFixMe[prop-missing] - `removeListener` exists but is deprecated.\n\n RCTDeviceEventEmitter.removeListener(eventType, listener);\n };\n\n _proto.emit = function emit(eventType) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n // Generally, `RCTDeviceEventEmitter` is directly invoked. But this is\n // included for completeness.\n RCTDeviceEventEmitter.emit.apply(RCTDeviceEventEmitter, [eventType].concat(args));\n };\n\n _proto.removeAllListeners = function removeAllListeners(eventType) {\n var _this$_nativeModule4;\n\n invariant(eventType != null, '`NativeEventEmitter.removeAllListener()` requires a non-null argument.');\n (_this$_nativeModule4 = this._nativeModule) == null ? void 0 : _this$_nativeModule4.removeListeners(this.listenerCount(eventType));\n RCTDeviceEventEmitter.removeAllListeners(eventType);\n };\n\n _proto.listenerCount = function listenerCount(eventType) {\n return RCTDeviceEventEmitter.listenerCount(eventType);\n };\n\n return NativeEventEmitter;\n}();\n\nexport { NativeEventEmitter as default };","/**\n * Copyright (c) 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) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport _EventSubscription from './_EventSubscription';\n\n/**\n * EmitterSubscription represents a subscription with listener and context data.\n */\nvar EmitterSubscription = /*#__PURE__*/function (_EventSubscription2) {\n _inheritsLoose(EmitterSubscription, _EventSubscription2);\n\n /**\n * @param {EventEmitter} emitter - The event emitter that registered this\n * subscription\n * @param {EventSubscriptionVendor} subscriber - The subscriber that controls\n * this subscription\n * @param {function} listener - Function to invoke when the specified event is\n * emitted\n * @param {*} context - Optional context object to use when invoking the\n * listener\n */\n function EmitterSubscription(emitter, subscriber, listener, context) {\n var _this;\n\n _this = _EventSubscription2.call(this, subscriber) || this;\n _this.emitter = emitter;\n _this.listener = listener;\n _this.context = context;\n return _this;\n }\n /**\n * Removes this subscription from the emitter that registered it.\n * Note: we're overriding the `remove()` method of _EventSubscription here\n * but deliberately not calling `super.remove()` as the responsibility\n * for removing the subscription lies with the EventEmitter.\n */\n\n\n var _proto = EmitterSubscription.prototype;\n\n _proto.remove = function remove() {\n this.emitter.removeSubscription(this);\n };\n\n return EmitterSubscription;\n}(_EventSubscription);\n\nexport default EmitterSubscription;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\n/**\n * EventSubscription represents a subscription to a particular event. It can\n * remove its own subscription.\n */\nvar _EventSubscription = /*#__PURE__*/function () {\n /**\n * @param {EventSubscriptionVendor} subscriber the subscriber that controls\n * this subscription.\n */\n function _EventSubscription(subscriber) {\n this.subscriber = subscriber;\n }\n /**\n * Removes this subscription from the subscriber that controls it.\n */\n\n\n var _proto = _EventSubscription.prototype;\n\n _proto.remove = function remove() {\n this.subscriber.removeSubscription(this);\n };\n\n return _EventSubscription;\n}();\n\nexport default _EventSubscription;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nimport invariant from 'fbjs/lib/invariant';\n\n/**\n * EventSubscriptionVendor stores a set of EventSubscriptions that are\n * subscribed to a particular event type.\n */\nvar EventSubscriptionVendor = /*#__PURE__*/function () {\n function EventSubscriptionVendor() {\n this._subscriptionsForType = {};\n }\n /**\n * Adds a subscription keyed by an event type.\n *\n * @param {string} eventType\n * @param {EventSubscription} subscription\n */\n\n\n var _proto = EventSubscriptionVendor.prototype;\n\n _proto.addSubscription = function addSubscription(eventType, subscription) {\n invariant(subscription.subscriber === this, 'The subscriber of the subscription is incorrectly set.');\n\n if (!this._subscriptionsForType[eventType]) {\n this._subscriptionsForType[eventType] = [];\n }\n\n var key = this._subscriptionsForType[eventType].length;\n\n this._subscriptionsForType[eventType].push(subscription);\n\n subscription.eventType = eventType;\n subscription.key = key;\n return subscription;\n }\n /**\n * Removes a bulk set of the subscriptions.\n *\n * @param {?string} eventType - Optional name of the event type whose\n * registered supscriptions to remove, if null remove all subscriptions.\n */\n ;\n\n _proto.removeAllSubscriptions = function removeAllSubscriptions(eventType) {\n if (eventType == null) {\n this._subscriptionsForType = {};\n } else {\n delete this._subscriptionsForType[eventType];\n }\n }\n /**\n * Removes a specific subscription. Instead of calling this function, call\n * `subscription.remove()` directly.\n *\n * @param {object} subscription\n */\n ;\n\n _proto.removeSubscription = function removeSubscription(subscription) {\n var eventType = subscription.eventType;\n var key = subscription.key;\n var subscriptionsForType = this._subscriptionsForType[eventType];\n\n if (subscriptionsForType) {\n delete subscriptionsForType[key];\n }\n }\n /**\n * Returns the array of subscriptions that are currently registered for the\n * given event type.\n *\n * Note: This array can be potentially sparse as subscriptions are deleted\n * from it when they are removed.\n *\n * TODO: This returns a nullable array. wat?\n *\n * @param {string} eventType\n * @returns {?array}\n */\n ;\n\n _proto.getSubscriptionsForType = function getSubscriptionsForType(eventType) {\n return this._subscriptionsForType[eventType];\n };\n\n return EventSubscriptionVendor;\n}();\n\nexport default EventSubscriptionVendor;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @typecheck\n */\nimport invariant from 'fbjs/lib/invariant';\nimport EmitterSubscription from './_EmitterSubscription';\nimport EventSubscriptionVendor from './_EventSubscriptionVendor';\n\nvar sparseFilterPredicate = function sparseFilterPredicate() {\n return true;\n};\n\n/**\n * @class EventEmitter\n * @description\n * An EventEmitter is responsible for managing a set of listeners and publishing\n * events to them when it is told that such events happened. In addition to the\n * data for the given event it also sends a event control object which allows\n * the listeners/handlers to prevent the default behavior of the given event.\n *\n * The emitter is designed to be generic enough to support all the different\n * contexts in which one might want to emit events. It is a simple multicast\n * mechanism on top of which extra functionality can be composed. For example, a\n * more advanced emitter may use an EventHolder and EventFactory.\n */\nvar EventEmitter = /*#__PURE__*/function () {\n /**\n * @constructor\n *\n * @param {EventSubscriptionVendor} subscriber - Optional subscriber instance\n * to use. If omitted, a new subscriber will be created for the emitter.\n */\n function EventEmitter(subscriber) {\n this._subscriber = subscriber || new EventSubscriptionVendor();\n }\n /**\n * Adds a listener to be invoked when events of the specified type are\n * emitted. An optional calling context may be provided. The data arguments\n * emitted will be passed to the listener function.\n *\n * TODO: Annotate the listener arg's type. This is tricky because listeners\n * can be invoked with varargs.\n *\n * @param {string} eventType - Name of the event to listen to\n * @param {function} listener - Function to invoke when the specified event is\n * emitted\n * @param {*} context - Optional context object to use when invoking the\n * listener\n */\n\n\n var _proto = EventEmitter.prototype;\n\n _proto.addListener = function addListener(eventType, // FIXME: listeners should return void instead of mixed to prevent issues\n listener, context) {\n return this._subscriber.addSubscription(eventType, new EmitterSubscription(this, this._subscriber, listener, context));\n }\n /**\n * Removes all of the registered listeners, including those registered as\n * listener maps.\n *\n * @param {?string} eventType - Optional name of the event whose registered\n * listeners to remove\n */\n ;\n\n _proto.removeAllListeners = function removeAllListeners(eventType) {\n this._subscriber.removeAllSubscriptions(eventType);\n }\n /**\n * @deprecated Use `remove` on the EventSubscription from `addListener`.\n */\n ;\n\n _proto.removeSubscription = function removeSubscription(subscription) {\n invariant(subscription.emitter === this, 'Subscription does not belong to this emitter.');\n\n this._subscriber.removeSubscription(subscription);\n }\n /**\n * Returns the number of listeners that are currently registered for the given\n * event.\n *\n * @param {string} eventType - Name of the event to query\n * @returns {number}\n */\n ;\n\n _proto.listenerCount = function listenerCount(eventType) {\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n return subscriptions ? // We filter out missing entries because the array is sparse.\n // \"callbackfn is called only for elements of the array which actually\n // exist; it is not called for missing elements of the array.\"\n // https://www.ecma-international.org/ecma-262/9.0/index.html#sec-array.prototype.filter\n subscriptions.filter(sparseFilterPredicate).length : 0;\n }\n /**\n * Emits an event of the given type with the given data. All handlers of that\n * particular type will be notified.\n *\n * @param {string} eventType - Name of the event to emit\n * @param {...*} Arbitrary arguments to be passed to each registered listener\n *\n * @example\n * emitter.addListener('someEvent', function(message) {\n * console.log(message);\n * });\n *\n * emitter.emit('someEvent', 'abc'); // logs 'abc'\n */\n ;\n\n _proto.emit = function emit(eventType) {\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n if (subscriptions) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n for (var i = 0, l = subscriptions.length; i < l; i++) {\n var subscription = subscriptions[i]; // The subscription may have been removed during this event loop.\n\n if (subscription && subscription.listener) {\n subscription.listener.apply(subscription.context, args);\n }\n }\n }\n }\n /**\n * @deprecated Use `remove` on the EventSubscription from `addListener`.\n */\n ;\n\n _proto.removeListener = function removeListener(eventType, // FIXME: listeners should return void instead of mixed to prevent issues\n listener) {\n console.error(\"EventEmitter.removeListener('\" + eventType + \"', ...): Method has been \" + 'deprecated. Please instead use `remove()` on the subscription ' + 'returned by `EventEmitter.addListener`.');\n\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n if (subscriptions) {\n for (var i = 0, l = subscriptions.length; i < l; i++) {\n var subscription = subscriptions[i]; // The subscription may have been removed during this event loop.\n // its listener matches the listener in method parameters\n\n if (subscription && subscription.listener === listener) {\n subscription.remove();\n }\n }\n }\n };\n\n return EventEmitter;\n}();\n\nexport default EventEmitter;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar isWebColor = function isWebColor(color) {\n return color === 'currentcolor' || color === 'currentColor' || color === 'inherit' || color.indexOf('var(') === 0;\n};\n\nexport default isWebColor;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport isWebColor from '../isWebColor';\nimport processColor from '../../exports/processColor';\n\nvar normalizeColor = function normalizeColor(color, opacity) {\n if (opacity === void 0) {\n opacity = 1;\n }\n\n if (color == null) return;\n\n if (typeof color === 'string' && isWebColor(color)) {\n return color;\n }\n\n var colorInt = processColor(color);\n\n if (colorInt != null) {\n var r = colorInt >> 16 & 255;\n var g = colorInt >> 8 & 255;\n var b = colorInt & 255;\n var a = (colorInt >> 24 & 255) / 255;\n var alpha = (a * opacity).toFixed(2);\n return \"rgba(\" + r + \",\" + g + \",\" + b + \",\" + alpha + \")\";\n }\n};\n\nexport default normalizeColor;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n 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' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import hoistNonReactStatics$1 from 'hoist-non-react-statics';\n\n// this file isolates this package that is not tree-shakeable\n// and if this module doesn't actually contain any logic of its own\n// then Rollup just use 'hoist-non-react-statics' directly in other chunks\n\nvar hoistNonReactStatics = (function (targetComponent, sourceComponent) {\n return hoistNonReactStatics$1(targetComponent, sourceComponent);\n});\n\nexport default hoistNonReactStatics;\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","/**\n * Copyright (c) 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;","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3)\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} value\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string} type\n * @param {string[]} props\n * @param {object[]} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {string} type\n */\nexport function copy (value, root, type) {\n\treturn node(value, root.root, root.parent, type, root.props, root.children, 0)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\treturn delimiter(type === 34 || type === 39 ? type : character)\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, trim, from, sizeof, strlen, substr, append, replace} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// \" ' [ (\n\t\t\tcase 34: case 39: case 91: case 40:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, length, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {string}\n */\nexport function prefix (value, length) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// flex, flex-direction\n\t\tcase 6828: case 4268:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// (s)ticky?\n\t\t\tif (charat(value, length + 1) !== 115)\n\t\t\t\tbreak\n\t\t// display: (flex|inline-flex)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n\t\t\t\t// stic(k)y\n\t\t\t\tcase 107:\n\t\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\t\t// (inline-)?fl(e)x\n\t\t\t\tcase 101:\n\t\t\t\t\treturn replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t}\n\t\t\tbreak\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t}\n\n\t\t\treturn WEBKIT + value + MS + value + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (!element.return)\n\t\tswitch (element.type) {\n\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length)\n\t\t\t\tbreak\n\t\t\tcase KEYFRAMES:\n\t\t\t\treturn serialize([copy(replace(element.value, '@', '@' + WEBKIT), element, '')], callback)\n\t\t\tcase RULESET:\n\t\t\t\tif (element.length)\n\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\treturn serialize([copy(replace(value, /:(read-\\w+)/, ':' + MOZ + '$1'), element, '')], callback)\n\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\tcopy(replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1'), element, ''),\n\t\t\t\t\t\t\t\t\tcopy(replace(value, /:(plac\\w+)/, ':' + MOZ + '$1'), element, ''),\n\t\t\t\t\t\t\t\t\tcopy(replace(value, /:(plac\\w+)/, MS + 'input-$1'), element, '')\n\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn ''\n\t\t\t\t\t})\n\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, identifier, position, stringify, COMMENT, rulesheet, middleware, prefixer, serialize, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar last = function last(arr) {\n return arr.length ? arr[arr.length - 1] : null;\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifier(position - 1);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // .length indicates if this rule contains pseudo or not\n !element.length) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return !!element && element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule') return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n var prevElement = index > 0 ? children[index - 1] : null;\n\n if (prevElement && isIgnoringComment(last(prevElement.children))) {\n return;\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if ( key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {}; // $FlowFixMe\n\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport default createCache;\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedValue from '../nodes/AnimatedValue';\nimport AnimatedValueXY from '../nodes/AnimatedValueXY';\nimport AnimatedInterpolation from '../nodes/AnimatedInterpolation';\nimport Animation from './Animation';\nimport SpringConfig from '../SpringConfig';\nimport invariant from 'fbjs/lib/invariant';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\n\nvar SpringAnimation = /*#__PURE__*/function (_Animation) {\n _inheritsLoose(SpringAnimation, _Animation);\n\n function SpringAnimation(config) {\n var _config$overshootClam, _config$restDisplacem, _config$restSpeedThre, _config$velocity, _config$velocity2, _config$delay, _config$isInteraction, _config$iterations;\n\n var _this;\n\n _this = _Animation.call(this) || this;\n _this._overshootClamping = (_config$overshootClam = config.overshootClamping) !== null && _config$overshootClam !== void 0 ? _config$overshootClam : false;\n _this._restDisplacementThreshold = (_config$restDisplacem = config.restDisplacementThreshold) !== null && _config$restDisplacem !== void 0 ? _config$restDisplacem : 0.001;\n _this._restSpeedThreshold = (_config$restSpeedThre = config.restSpeedThreshold) !== null && _config$restSpeedThre !== void 0 ? _config$restSpeedThre : 0.001;\n _this._initialVelocity = (_config$velocity = config.velocity) !== null && _config$velocity !== void 0 ? _config$velocity : 0;\n _this._lastVelocity = (_config$velocity2 = config.velocity) !== null && _config$velocity2 !== void 0 ? _config$velocity2 : 0;\n _this._toValue = config.toValue;\n _this._delay = (_config$delay = config.delay) !== null && _config$delay !== void 0 ? _config$delay : 0;\n _this._useNativeDriver = shouldUseNativeDriver(config);\n _this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !_this._useNativeDriver;\n _this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n\n if (config.stiffness !== undefined || config.damping !== undefined || config.mass !== undefined) {\n var _config$stiffness, _config$damping, _config$mass;\n\n invariant(config.bounciness === undefined && config.speed === undefined && config.tension === undefined && config.friction === undefined, 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one');\n _this._stiffness = (_config$stiffness = config.stiffness) !== null && _config$stiffness !== void 0 ? _config$stiffness : 100;\n _this._damping = (_config$damping = config.damping) !== null && _config$damping !== void 0 ? _config$damping : 10;\n _this._mass = (_config$mass = config.mass) !== null && _config$mass !== void 0 ? _config$mass : 1;\n } else if (config.bounciness !== undefined || config.speed !== undefined) {\n var _config$bounciness, _config$speed;\n\n // Convert the origami bounciness/speed values to stiffness/damping\n // We assume mass is 1.\n invariant(config.tension === undefined && config.friction === undefined && config.stiffness === undefined && config.damping === undefined && config.mass === undefined, 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one');\n var springConfig = SpringConfig.fromBouncinessAndSpeed((_config$bounciness = config.bounciness) !== null && _config$bounciness !== void 0 ? _config$bounciness : 8, (_config$speed = config.speed) !== null && _config$speed !== void 0 ? _config$speed : 12);\n _this._stiffness = springConfig.stiffness;\n _this._damping = springConfig.damping;\n _this._mass = 1;\n } else {\n var _config$tension, _config$friction;\n\n // Convert the origami tension/friction values to stiffness/damping\n // We assume mass is 1.\n var _springConfig = SpringConfig.fromOrigamiTensionAndFriction((_config$tension = config.tension) !== null && _config$tension !== void 0 ? _config$tension : 40, (_config$friction = config.friction) !== null && _config$friction !== void 0 ? _config$friction : 7);\n\n _this._stiffness = _springConfig.stiffness;\n _this._damping = _springConfig.damping;\n _this._mass = 1;\n }\n\n invariant(_this._stiffness > 0, 'Stiffness value must be greater than 0');\n invariant(_this._damping > 0, 'Damping value must be greater than 0');\n invariant(_this._mass > 0, 'Mass value must be greater than 0');\n return _this;\n }\n\n var _proto = SpringAnimation.prototype;\n\n _proto.__getNativeAnimationConfig = function __getNativeAnimationConfig() {\n var _this$_initialVelocit;\n\n return {\n type: 'spring',\n overshootClamping: this._overshootClamping,\n restDisplacementThreshold: this._restDisplacementThreshold,\n restSpeedThreshold: this._restSpeedThreshold,\n stiffness: this._stiffness,\n damping: this._damping,\n mass: this._mass,\n initialVelocity: (_this$_initialVelocit = this._initialVelocity) !== null && _this$_initialVelocit !== void 0 ? _this$_initialVelocit : this._lastVelocity,\n toValue: this._toValue,\n iterations: this.__iterations\n };\n };\n\n _proto.start = function start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n var _this2 = this;\n\n this.__active = true;\n this._startPosition = fromValue;\n this._lastPosition = this._startPosition;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n this._lastTime = Date.now();\n this._frameTime = 0.0;\n\n if (previousAnimation instanceof SpringAnimation) {\n var internalState = previousAnimation.getInternalState();\n this._lastPosition = internalState.lastPosition;\n this._lastVelocity = internalState.lastVelocity; // Set the initial velocity to the last velocity\n\n this._initialVelocity = this._lastVelocity;\n this._lastTime = internalState.lastTime;\n }\n\n var start = function start() {\n if (_this2._useNativeDriver) {\n _this2.__startNativeAnimation(animatedValue);\n } else {\n _this2.onUpdate();\n }\n }; // If this._delay is more than 0, we start after the timeout.\n\n\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n };\n\n _proto.getInternalState = function getInternalState() {\n return {\n lastPosition: this._lastPosition,\n lastVelocity: this._lastVelocity,\n lastTime: this._lastTime\n };\n }\n /**\n * This spring model is based off of a damped harmonic oscillator\n * (https://en.wikipedia.org/wiki/Harmonic_oscillator#Damped_harmonic_oscillator).\n *\n * We use the closed form of the second order differential equation:\n *\n * x'' + (2ζ⍵_0)x' + ⍵^2x = 0\n *\n * where\n * ⍵_0 = √(k / m) (undamped angular frequency of the oscillator),\n * ζ = c / 2√mk (damping ratio),\n * c = damping constant\n * k = stiffness\n * m = mass\n *\n * The derivation of the closed form is described in detail here:\n * http://planetmath.org/sites/default/files/texpdf/39745.pdf\n *\n * This algorithm happens to match the algorithm used by CASpringAnimation,\n * a QuartzCore (iOS) API that creates spring animations.\n */\n ;\n\n _proto.onUpdate = function onUpdate() {\n // If for some reason we lost a lot of frames (e.g. process large payload or\n // stopped in the debugger), we only advance by 4 frames worth of\n // computation and will continue on the next frame. It's better to have it\n // running at faster speed than jumping to the end.\n var MAX_STEPS = 64;\n var now = Date.now();\n\n if (now > this._lastTime + MAX_STEPS) {\n now = this._lastTime + MAX_STEPS;\n }\n\n var deltaTime = (now - this._lastTime) / 1000;\n this._frameTime += deltaTime;\n var c = this._damping;\n var m = this._mass;\n var k = this._stiffness;\n var v0 = -this._initialVelocity;\n var zeta = c / (2 * Math.sqrt(k * m)); // damping ratio\n\n var omega0 = Math.sqrt(k / m); // undamped angular frequency of the oscillator (rad/ms)\n\n var omega1 = omega0 * Math.sqrt(1.0 - zeta * zeta); // exponential decay\n\n var x0 = this._toValue - this._startPosition; // calculate the oscillation from x0 = 1 to x = 0\n\n var position = 0.0;\n var velocity = 0.0;\n var t = this._frameTime;\n\n if (zeta < 1) {\n // Under damped\n var envelope = Math.exp(-zeta * omega0 * t);\n position = this._toValue - envelope * ((v0 + zeta * omega0 * x0) / omega1 * Math.sin(omega1 * t) + x0 * Math.cos(omega1 * t)); // This looks crazy -- it's actually just the derivative of the\n // oscillation function\n\n velocity = zeta * omega0 * envelope * (Math.sin(omega1 * t) * (v0 + zeta * omega0 * x0) / omega1 + x0 * Math.cos(omega1 * t)) - envelope * (Math.cos(omega1 * t) * (v0 + zeta * omega0 * x0) - omega1 * x0 * Math.sin(omega1 * t));\n } else {\n // Critically damped\n var _envelope = Math.exp(-omega0 * t);\n\n position = this._toValue - _envelope * (x0 + (v0 + omega0 * x0) * t);\n velocity = _envelope * (v0 * (t * omega0 - 1) + t * x0 * (omega0 * omega0));\n }\n\n this._lastTime = now;\n this._lastPosition = position;\n this._lastVelocity = velocity;\n\n this._onUpdate(position);\n\n if (!this.__active) {\n // a listener might have stopped us in _onUpdate\n return;\n } // Conditions for stopping the spring animation\n\n\n var isOvershooting = false;\n\n if (this._overshootClamping && this._stiffness !== 0) {\n if (this._startPosition < this._toValue) {\n isOvershooting = position > this._toValue;\n } else {\n isOvershooting = position < this._toValue;\n }\n }\n\n var isVelocity = Math.abs(velocity) <= this._restSpeedThreshold;\n\n var isDisplacement = true;\n\n if (this._stiffness !== 0) {\n isDisplacement = Math.abs(this._toValue - position) <= this._restDisplacementThreshold;\n }\n\n if (isOvershooting || isVelocity && isDisplacement) {\n if (this._stiffness !== 0) {\n // Ensure that we end up with a round value\n this._lastPosition = this._toValue;\n this._lastVelocity = 0;\n\n this._onUpdate(this._toValue);\n }\n\n this.__debouncedOnEnd({\n finished: true\n });\n\n return;\n }\n\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n };\n\n _proto.stop = function stop() {\n _Animation.prototype.stop.call(this);\n\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n\n this.__debouncedOnEnd({\n finished: false\n });\n };\n\n return SpringAnimation;\n}(Animation);\n\nexport default SpringAnimation;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nfunction stiffnessFromOrigamiValue(oValue) {\n return (oValue - 30) * 3.62 + 194;\n}\n\nfunction dampingFromOrigamiValue(oValue) {\n return (oValue - 8) * 3 + 25;\n}\n\nfunction fromOrigamiTensionAndFriction(tension, friction) {\n return {\n stiffness: stiffnessFromOrigamiValue(tension),\n damping: dampingFromOrigamiValue(friction)\n };\n}\n\nfunction fromBouncinessAndSpeed(bounciness, speed) {\n function normalize(value, startValue, endValue) {\n return (value - startValue) / (endValue - startValue);\n }\n\n function projectNormal(n, start, end) {\n return start + n * (end - start);\n }\n\n function linearInterpolation(t, start, end) {\n return t * end + (1 - t) * start;\n }\n\n function quadraticOutInterpolation(t, start, end) {\n return linearInterpolation(2 * t - t * t, start, end);\n }\n\n function b3Friction1(x) {\n return 0.0007 * Math.pow(x, 3) - 0.031 * Math.pow(x, 2) + 0.64 * x + 1.28;\n }\n\n function b3Friction2(x) {\n return 0.000044 * Math.pow(x, 3) - 0.006 * Math.pow(x, 2) + 0.36 * x + 2;\n }\n\n function b3Friction3(x) {\n return 0.00000045 * Math.pow(x, 3) - 0.000332 * Math.pow(x, 2) + 0.1078 * x + 5.84;\n }\n\n function b3Nobounce(tension) {\n if (tension <= 18) {\n return b3Friction1(tension);\n } else if (tension > 18 && tension <= 44) {\n return b3Friction2(tension);\n } else {\n return b3Friction3(tension);\n }\n }\n\n var b = normalize(bounciness / 1.7, 0, 20);\n b = projectNormal(b, 0, 0.8);\n var s = normalize(speed / 1.7, 0, 20);\n var bouncyTension = projectNormal(s, 0.5, 200);\n var bouncyFriction = quadraticOutInterpolation(b, b3Nobounce(bouncyTension), 0.01);\n return {\n stiffness: stiffnessFromOrigamiValue(bouncyTension),\n damping: dampingFromOrigamiValue(bouncyFriction)\n };\n}\n\nexport default {\n fromOrigamiTensionAndFriction: fromOrigamiTensionAndFriction,\n fromBouncinessAndSpeed: fromBouncinessAndSpeed\n};","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedValue from '../nodes/AnimatedValue';\nimport AnimatedValueXY from '../nodes/AnimatedValueXY';\nimport AnimatedInterpolation from '../nodes/AnimatedInterpolation';\nimport Animation from './Animation';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\nimport Easing from '../../../../exports/Easing';\n\nvar _easeInOut;\n\nfunction easeInOut() {\n if (!_easeInOut) {\n _easeInOut = Easing.inOut(Easing.ease);\n }\n\n return _easeInOut;\n}\n\nvar TimingAnimation = /*#__PURE__*/function (_Animation) {\n _inheritsLoose(TimingAnimation, _Animation);\n\n function TimingAnimation(config) {\n var _config$easing, _config$duration, _config$delay, _config$iterations, _config$isInteraction;\n\n var _this;\n\n _this = _Animation.call(this) || this;\n _this._toValue = config.toValue;\n _this._easing = (_config$easing = config.easing) !== null && _config$easing !== void 0 ? _config$easing : easeInOut();\n _this._duration = (_config$duration = config.duration) !== null && _config$duration !== void 0 ? _config$duration : 500;\n _this._delay = (_config$delay = config.delay) !== null && _config$delay !== void 0 ? _config$delay : 0;\n _this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n _this._useNativeDriver = shouldUseNativeDriver(config);\n _this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !_this._useNativeDriver;\n return _this;\n }\n\n var _proto = TimingAnimation.prototype;\n\n _proto.__getNativeAnimationConfig = function __getNativeAnimationConfig() {\n var frameDuration = 1000.0 / 60.0;\n var frames = [];\n var numFrames = Math.round(this._duration / frameDuration);\n\n for (var frame = 0; frame < numFrames; frame++) {\n frames.push(this._easing(frame / numFrames));\n }\n\n frames.push(this._easing(1));\n return {\n type: 'frames',\n frames: frames,\n toValue: this._toValue,\n iterations: this.__iterations\n };\n };\n\n _proto.start = function start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n var _this2 = this;\n\n this.__active = true;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n\n var start = function start() {\n // Animations that sometimes have 0 duration and sometimes do not\n // still need to use the native driver when duration is 0 so as to\n // not cause intermixed JS and native animations.\n if (_this2._duration === 0 && !_this2._useNativeDriver) {\n _this2._onUpdate(_this2._toValue);\n\n _this2.__debouncedOnEnd({\n finished: true\n });\n } else {\n _this2._startTime = Date.now();\n\n if (_this2._useNativeDriver) {\n _this2.__startNativeAnimation(animatedValue);\n } else {\n _this2._animationFrame = requestAnimationFrame(_this2.onUpdate.bind(_this2));\n }\n }\n };\n\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n };\n\n _proto.onUpdate = function onUpdate() {\n var now = Date.now();\n\n if (now >= this._startTime + this._duration) {\n if (this._duration === 0) {\n this._onUpdate(this._toValue);\n } else {\n this._onUpdate(this._fromValue + this._easing(1) * (this._toValue - this._fromValue));\n }\n\n this.__debouncedOnEnd({\n finished: true\n });\n\n return;\n }\n\n this._onUpdate(this._fromValue + this._easing((now - this._startTime) / this._duration) * (this._toValue - this._fromValue));\n\n if (this.__active) {\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n };\n\n _proto.stop = function stop() {\n _Animation.prototype.stop.call(this);\n\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n\n this.__debouncedOnEnd({\n finished: false\n });\n };\n\n return TimingAnimation;\n}(Animation);\n\nexport default TimingAnimation;","'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bech32m = exports.bech32 = void 0;\nconst ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l';\nconst ALPHABET_MAP = {};\nfor (let z = 0; z < ALPHABET.length; z++) {\n const x = ALPHABET.charAt(z);\n ALPHABET_MAP[x] = z;\n}\nfunction polymodStep(pre) {\n const b = pre >> 25;\n return (((pre & 0x1ffffff) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3));\n}\nfunction prefixChk(prefix) {\n let chk = 1;\n for (let i = 0; i < prefix.length; ++i) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n return 'Invalid prefix (' + prefix + ')';\n chk = polymodStep(chk) ^ (c >> 5);\n }\n chk = polymodStep(chk);\n for (let i = 0; i < prefix.length; ++i) {\n const v = prefix.charCodeAt(i);\n chk = polymodStep(chk) ^ (v & 0x1f);\n }\n return chk;\n}\nfunction convert(data, inBits, outBits, pad) {\n let value = 0;\n let bits = 0;\n const maxV = (1 << outBits) - 1;\n const result = [];\n for (let i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i];\n bits += inBits;\n while (bits >= outBits) {\n bits -= outBits;\n result.push((value >> bits) & maxV);\n }\n }\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV);\n }\n }\n else {\n if (bits >= inBits)\n return 'Excess padding';\n if ((value << (outBits - bits)) & maxV)\n return 'Non-zero padding';\n }\n return result;\n}\nfunction toWords(bytes) {\n return convert(bytes, 8, 5, true);\n}\nfunction fromWordsUnsafe(words) {\n const res = convert(words, 5, 8, false);\n if (Array.isArray(res))\n return res;\n}\nfunction fromWords(words) {\n const res = convert(words, 5, 8, false);\n if (Array.isArray(res))\n return res;\n throw new Error(res);\n}\nfunction getLibraryFromEncoding(encoding) {\n let ENCODING_CONST;\n if (encoding === 'bech32') {\n ENCODING_CONST = 1;\n }\n else {\n ENCODING_CONST = 0x2bc830a3;\n }\n function encode(prefix, words, LIMIT) {\n LIMIT = LIMIT || 90;\n if (prefix.length + 7 + words.length > LIMIT)\n throw new TypeError('Exceeds length limit');\n prefix = prefix.toLowerCase();\n // determine chk mod\n let chk = prefixChk(prefix);\n if (typeof chk === 'string')\n throw new Error(chk);\n let result = prefix + '1';\n for (let i = 0; i < words.length; ++i) {\n const x = words[i];\n if (x >> 5 !== 0)\n throw new Error('Non 5-bit word');\n chk = polymodStep(chk) ^ x;\n result += ALPHABET.charAt(x);\n }\n for (let i = 0; i < 6; ++i) {\n chk = polymodStep(chk);\n }\n chk ^= ENCODING_CONST;\n for (let i = 0; i < 6; ++i) {\n const v = (chk >> ((5 - i) * 5)) & 0x1f;\n result += ALPHABET.charAt(v);\n }\n return result;\n }\n function __decode(str, LIMIT) {\n LIMIT = LIMIT || 90;\n if (str.length < 8)\n return str + ' too short';\n if (str.length > LIMIT)\n return 'Exceeds length limit';\n // don't allow mixed case\n const lowered = str.toLowerCase();\n const uppered = str.toUpperCase();\n if (str !== lowered && str !== uppered)\n return 'Mixed-case string ' + str;\n str = lowered;\n const split = str.lastIndexOf('1');\n if (split === -1)\n return 'No separator character for ' + str;\n if (split === 0)\n return 'Missing prefix for ' + str;\n const prefix = str.slice(0, split);\n const wordChars = str.slice(split + 1);\n if (wordChars.length < 6)\n return 'Data too short';\n let chk = prefixChk(prefix);\n if (typeof chk === 'string')\n return chk;\n const words = [];\n for (let i = 0; i < wordChars.length; ++i) {\n const c = wordChars.charAt(i);\n const v = ALPHABET_MAP[c];\n if (v === undefined)\n return 'Unknown character ' + c;\n chk = polymodStep(chk) ^ v;\n // not in the checksum?\n if (i + 6 >= wordChars.length)\n continue;\n words.push(v);\n }\n if (chk !== ENCODING_CONST)\n return 'Invalid checksum for ' + str;\n return { prefix, words };\n }\n function decodeUnsafe(str, LIMIT) {\n const res = __decode(str, LIMIT);\n if (typeof res === 'object')\n return res;\n }\n function decode(str, LIMIT) {\n const res = __decode(str, LIMIT);\n if (typeof res === 'object')\n return res;\n throw new Error(res);\n }\n return {\n decodeUnsafe,\n decode,\n encode,\n toWords,\n fromWordsUnsafe,\n fromWords,\n };\n}\nexports.bech32 = getLibraryFromEncoding('bech32');\nexports.bech32m = getLibraryFromEncoding('bech32m');\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = capitalizeString;\nfunction capitalizeString(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) 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) 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;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && 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(nodeInterop);\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 (key !== \"default\" && 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\nmodule.exports = _interopRequireWildcard;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","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;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","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 };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var ECLevel = require('./error-correction-level')\r\n\r\nvar EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nvar EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n","var numeric = '[0-9]+'\nvar alphanumeric = '[A-Z $%*+\\\\-./:]+'\nvar kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nvar byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\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}\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 if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n var hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n var margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0 ? 4 : options.margin\n\n var width = options.width && options.width >= 21 ? options.width : undefined\n var scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n 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 &&\n 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}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar parse = require('postcss-value-parser');\n\nvar parse__default = _interopDefault(parse);\n\nvar camelizeStyleName = _interopDefault(require('camelize'));\n\nvar cssColorKeywords = _interopDefault(require('css-color-keywords'));\n\nvar matchString = function matchString(node) {\n if (node.type !== 'string') return null;\n return node.value.replace(/\\\\([0-9a-f]{1,6})(?:\\s|$)/gi, function (match, charCode) {\n return String.fromCharCode(parseInt(charCode, 16));\n }).replace(/\\\\/g, '');\n};\n\nvar hexColorRe = /^(#(?:[0-9a-f]{3,4}){1,2})$/i;\nvar cssFunctionNameRe = /^(rgba?|hsla?|hwb|lab|lch|gray|color)$/;\n\nvar matchColor = function matchColor(node) {\n if (node.type === 'word' && (hexColorRe.test(node.value) || node.value in cssColorKeywords || node.value === 'transparent')) {\n return node.value;\n } else if (node.type === 'function' && cssFunctionNameRe.test(node.value)) {\n return parse.stringify(node);\n }\n\n return null;\n};\n\nvar noneRe = /^(none)$/i;\nvar autoRe = /^(auto)$/i;\nvar identRe = /(^-?[_a-z][_a-z0-9-]*$)/i; // Note if these are wrong, you'll need to change index.js too\n\nvar numberRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?)$/i; // Note lengthRe is sneaky: you can omit units for 0\n\nvar lengthRe = /^(0$|(?:[+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?)(?=px$))/i;\nvar unsupportedUnitRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?(ch|em|ex|rem|vh|vw|vmin|vmax|cm|mm|in|pc|pt))$/i;\nvar angleRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?(?:deg|rad))$/i;\nvar percentRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?%)$/i;\n\nvar noopToken = function noopToken(predicate) {\n return function (node) {\n return predicate(node) ? '' : null;\n };\n};\n\nvar valueForTypeToken = function valueForTypeToken(type) {\n return function (node) {\n return node.type === type ? node.value : null;\n };\n};\n\nvar regExpToken = function regExpToken(regExp, transform) {\n if (transform === void 0) {\n transform = String;\n }\n\n return function (node) {\n if (node.type !== 'word') return null;\n var match = node.value.match(regExp);\n if (match === null) return null;\n var value = transform(match[1]);\n return value;\n };\n};\n\nvar SPACE = noopToken(function (node) {\n return node.type === 'space';\n});\nvar SLASH = noopToken(function (node) {\n return node.type === 'div' && node.value === '/';\n});\nvar COMMA = noopToken(function (node) {\n return node.type === 'div' && node.value === ',';\n});\nvar WORD = valueForTypeToken('word');\nvar NONE = regExpToken(noneRe);\nvar AUTO = regExpToken(autoRe);\nvar NUMBER = regExpToken(numberRe, Number);\nvar LENGTH = regExpToken(lengthRe, Number);\nvar UNSUPPORTED_LENGTH_UNIT = regExpToken(unsupportedUnitRe);\nvar ANGLE = regExpToken(angleRe, function (angle) {\n return angle.toLowerCase();\n});\nvar PERCENT = regExpToken(percentRe);\nvar IDENT = regExpToken(identRe);\nvar STRING = matchString;\nvar COLOR = matchColor;\nvar LINE = regExpToken(/^(none|underline|line-through)$/i);\nvar BORDER_STYLE = regExpToken(/^(solid|dashed|dotted)$/);\nvar defaultBorderWidth = 1;\nvar defaultBorderColor = 'black';\nvar defaultBorderStyle = 'solid';\n\nvar border = function border(tokenStream) {\n var borderWidth;\n var borderColor;\n var borderStyle;\n\n if (tokenStream.matches(NONE)) {\n tokenStream.expectEmpty();\n return {\n borderWidth: 0,\n borderColor: 'black',\n borderStyle: 'solid'\n };\n }\n\n var partsParsed = 0;\n\n while (partsParsed < 3 && tokenStream.hasTokens()) {\n if (partsParsed !== 0) tokenStream.expect(SPACE);\n\n if (borderWidth === undefined && tokenStream.matches(LENGTH, UNSUPPORTED_LENGTH_UNIT)) {\n borderWidth = tokenStream.lastValue;\n } else if (borderColor === undefined && tokenStream.matches(COLOR)) {\n borderColor = tokenStream.lastValue;\n } else if (borderStyle === undefined && tokenStream.matches(BORDER_STYLE)) {\n borderStyle = tokenStream.lastValue;\n } else {\n tokenStream[\"throw\"]();\n }\n\n partsParsed += 1;\n }\n\n tokenStream.expectEmpty();\n if (borderWidth === undefined) borderWidth = defaultBorderWidth;\n if (borderColor === undefined) borderColor = defaultBorderColor;\n if (borderStyle === undefined) borderStyle = defaultBorderStyle;\n return {\n borderWidth: borderWidth,\n borderColor: borderColor,\n borderStyle: borderStyle\n };\n};\n\nvar directionFactory = function directionFactory(_ref) {\n var _ref$types = _ref.types,\n types = _ref$types === void 0 ? [LENGTH, UNSUPPORTED_LENGTH_UNIT, PERCENT] : _ref$types,\n _ref$directions = _ref.directions,\n directions = _ref$directions === void 0 ? ['Top', 'Right', 'Bottom', 'Left'] : _ref$directions,\n _ref$prefix = _ref.prefix,\n prefix = _ref$prefix === void 0 ? '' : _ref$prefix,\n _ref$suffix = _ref.suffix,\n suffix = _ref$suffix === void 0 ? '' : _ref$suffix;\n return function (tokenStream) {\n var _ref2;\n\n var values = []; // borderWidth doesn't currently allow a percent value, but may do in the future\n\n values.push(tokenStream.expect.apply(tokenStream, types));\n\n while (values.length < 4 && tokenStream.hasTokens()) {\n tokenStream.expect(SPACE);\n values.push(tokenStream.expect.apply(tokenStream, types));\n }\n\n tokenStream.expectEmpty();\n var top = values[0],\n _values$ = values[1],\n right = _values$ === void 0 ? top : _values$,\n _values$2 = values[2],\n bottom = _values$2 === void 0 ? top : _values$2,\n _values$3 = values[3],\n left = _values$3 === void 0 ? right : _values$3;\n\n var keyFor = function keyFor(n) {\n return \"\" + prefix + directions[n] + suffix;\n };\n\n return _ref2 = {}, _ref2[keyFor(0)] = top, _ref2[keyFor(1)] = right, _ref2[keyFor(2)] = bottom, _ref2[keyFor(3)] = left, _ref2;\n };\n};\n\nvar parseShadowOffset = function parseShadowOffset(tokenStream) {\n var width = tokenStream.expect(LENGTH);\n var height = tokenStream.matches(SPACE) ? tokenStream.expect(LENGTH) : width;\n tokenStream.expectEmpty();\n return {\n width: width,\n height: height\n };\n};\n\nvar parseShadow = function parseShadow(tokenStream) {\n var offsetX;\n var offsetY;\n var radius;\n var color;\n\n if (tokenStream.matches(NONE)) {\n tokenStream.expectEmpty();\n return {\n offset: {\n width: 0,\n height: 0\n },\n radius: 0,\n color: 'black'\n };\n }\n\n var didParseFirst = false;\n\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE);\n\n if (offsetX === undefined && tokenStream.matches(LENGTH, UNSUPPORTED_LENGTH_UNIT)) {\n offsetX = tokenStream.lastValue;\n tokenStream.expect(SPACE);\n offsetY = tokenStream.expect(LENGTH, UNSUPPORTED_LENGTH_UNIT);\n tokenStream.saveRewindPoint();\n\n if (tokenStream.matches(SPACE) && tokenStream.matches(LENGTH, UNSUPPORTED_LENGTH_UNIT)) {\n radius = tokenStream.lastValue;\n } else {\n tokenStream.rewind();\n }\n } else if (color === undefined && tokenStream.matches(COLOR)) {\n color = tokenStream.lastValue;\n } else {\n tokenStream[\"throw\"]();\n }\n\n didParseFirst = true;\n }\n\n if (offsetX === undefined) tokenStream[\"throw\"]();\n return {\n offset: {\n width: offsetX,\n height: offsetY\n },\n radius: radius !== undefined ? radius : 0,\n color: color !== undefined ? color : 'black'\n };\n};\n\nvar boxShadow = function boxShadow(tokenStream) {\n var _parseShadow = parseShadow(tokenStream),\n offset = _parseShadow.offset,\n radius = _parseShadow.radius,\n color = _parseShadow.color;\n\n return {\n shadowOffset: offset,\n shadowRadius: radius,\n shadowColor: color,\n shadowOpacity: 1\n };\n};\n\nvar defaultFlexGrow = 1;\nvar defaultFlexShrink = 1;\nvar defaultFlexBasis = 0;\n\nvar flex = function flex(tokenStream) {\n var flexGrow;\n var flexShrink;\n var flexBasis;\n\n if (tokenStream.matches(NONE)) {\n tokenStream.expectEmpty();\n return {\n flexGrow: 0,\n flexShrink: 0,\n flexBasis: 'auto'\n };\n }\n\n tokenStream.saveRewindPoint();\n\n if (tokenStream.matches(AUTO) && !tokenStream.hasTokens()) {\n return {\n flexGrow: 1,\n flexShrink: 1,\n flexBasis: 'auto'\n };\n }\n\n tokenStream.rewind();\n var partsParsed = 0;\n\n while (partsParsed < 2 && tokenStream.hasTokens()) {\n if (partsParsed !== 0) tokenStream.expect(SPACE);\n\n if (flexGrow === undefined && tokenStream.matches(NUMBER)) {\n flexGrow = tokenStream.lastValue;\n tokenStream.saveRewindPoint();\n\n if (tokenStream.matches(SPACE) && tokenStream.matches(NUMBER)) {\n flexShrink = tokenStream.lastValue;\n } else {\n tokenStream.rewind();\n }\n } else if (flexBasis === undefined && tokenStream.matches(LENGTH, UNSUPPORTED_LENGTH_UNIT, PERCENT)) {\n flexBasis = tokenStream.lastValue;\n } else if (flexBasis === undefined && tokenStream.matches(AUTO)) {\n flexBasis = 'auto';\n } else {\n tokenStream[\"throw\"]();\n }\n\n partsParsed += 1;\n }\n\n tokenStream.expectEmpty();\n if (flexGrow === undefined) flexGrow = defaultFlexGrow;\n if (flexShrink === undefined) flexShrink = defaultFlexShrink;\n if (flexBasis === undefined) flexBasis = defaultFlexBasis;\n return {\n flexGrow: flexGrow,\n flexShrink: flexShrink,\n flexBasis: flexBasis\n };\n};\n\nvar FLEX_WRAP = regExpToken(/(nowrap|wrap|wrap-reverse)/);\nvar FLEX_DIRECTION = regExpToken(/(row|row-reverse|column|column-reverse)/);\nvar defaultFlexWrap = 'nowrap';\nvar defaultFlexDirection = 'row';\n\nvar flexFlow = function flexFlow(tokenStream) {\n var flexWrap;\n var flexDirection;\n var partsParsed = 0;\n\n while (partsParsed < 2 && tokenStream.hasTokens()) {\n if (partsParsed !== 0) tokenStream.expect(SPACE);\n\n if (flexWrap === undefined && tokenStream.matches(FLEX_WRAP)) {\n flexWrap = tokenStream.lastValue;\n } else if (flexDirection === undefined && tokenStream.matches(FLEX_DIRECTION)) {\n flexDirection = tokenStream.lastValue;\n } else {\n tokenStream[\"throw\"]();\n }\n\n partsParsed += 1;\n }\n\n tokenStream.expectEmpty();\n if (flexWrap === undefined) flexWrap = defaultFlexWrap;\n if (flexDirection === undefined) flexDirection = defaultFlexDirection;\n return {\n flexWrap: flexWrap,\n flexDirection: flexDirection\n };\n};\n\nvar fontFamily = function fontFamily(tokenStream) {\n var fontFamily;\n\n if (tokenStream.matches(STRING)) {\n fontFamily = tokenStream.lastValue;\n } else {\n fontFamily = tokenStream.expect(IDENT);\n\n while (tokenStream.hasTokens()) {\n tokenStream.expect(SPACE);\n var nextIdent = tokenStream.expect(IDENT);\n fontFamily += \" \" + nextIdent;\n }\n }\n\n tokenStream.expectEmpty();\n return {\n fontFamily: fontFamily\n };\n};\n\nvar NORMAL = regExpToken(/^(normal)$/);\nvar STYLE = regExpToken(/^(italic)$/);\nvar WEIGHT = regExpToken(/^([1-9]00|bold)$/);\nvar VARIANT = regExpToken(/^(small-caps)$/);\nvar defaultFontStyle = 'normal';\nvar defaultFontWeight = 'normal';\nvar defaultFontVariant = [];\n\nvar font = function font(tokenStream) {\n var fontStyle;\n var fontWeight;\n var fontVariant; // let fontSize;\n\n var lineHeight; // let fontFamily;\n\n var numStyleWeightVariantMatched = 0;\n\n while (numStyleWeightVariantMatched < 3 && tokenStream.hasTokens()) {\n if (tokenStream.matches(NORMAL)) ;else if (fontStyle === undefined && tokenStream.matches(STYLE)) {\n fontStyle = tokenStream.lastValue;\n } else if (fontWeight === undefined && tokenStream.matches(WEIGHT)) {\n fontWeight = tokenStream.lastValue;\n } else if (fontVariant === undefined && tokenStream.matches(VARIANT)) {\n fontVariant = [tokenStream.lastValue];\n } else {\n break;\n }\n tokenStream.expect(SPACE);\n numStyleWeightVariantMatched += 1;\n }\n\n var fontSize = tokenStream.expect(LENGTH, UNSUPPORTED_LENGTH_UNIT);\n\n if (tokenStream.matches(SLASH)) {\n lineHeight = tokenStream.expect(LENGTH, UNSUPPORTED_LENGTH_UNIT);\n }\n\n tokenStream.expect(SPACE);\n\n var _fontFamily = fontFamily(tokenStream),\n fontFamily$1 = _fontFamily.fontFamily;\n\n if (fontStyle === undefined) fontStyle = defaultFontStyle;\n if (fontWeight === undefined) fontWeight = defaultFontWeight;\n if (fontVariant === undefined) fontVariant = defaultFontVariant;\n var out = {\n fontStyle: fontStyle,\n fontWeight: fontWeight,\n fontVariant: fontVariant,\n fontSize: fontSize,\n fontFamily: fontFamily$1\n };\n if (lineHeight !== undefined) out.lineHeight = lineHeight;\n return out;\n};\n\nvar ALIGN_CONTENT = regExpToken(/(flex-(?:start|end)|center|stretch|space-(?:between|around))/);\nvar JUSTIFY_CONTENT = regExpToken(/(flex-(?:start|end)|center|space-(?:between|around|evenly))/);\n\nvar placeContent = function placeContent(tokenStream) {\n var alignContent = tokenStream.expect(ALIGN_CONTENT);\n var justifyContent;\n\n if (tokenStream.hasTokens()) {\n tokenStream.expect(SPACE);\n justifyContent = tokenStream.expect(JUSTIFY_CONTENT);\n } else {\n justifyContent = 'stretch';\n }\n\n tokenStream.expectEmpty();\n return {\n alignContent: alignContent,\n justifyContent: justifyContent\n };\n};\n\nvar STYLE$1 = regExpToken(/^(solid|double|dotted|dashed)$/);\nvar defaultTextDecorationLine = 'none';\nvar defaultTextDecorationStyle = 'solid';\nvar defaultTextDecorationColor = 'black';\n\nvar textDecoration = function textDecoration(tokenStream) {\n var line;\n var style;\n var color;\n var didParseFirst = false;\n\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE);\n\n if (line === undefined && tokenStream.matches(LINE)) {\n var lines = [tokenStream.lastValue.toLowerCase()];\n tokenStream.saveRewindPoint();\n\n if (lines[0] !== 'none' && tokenStream.matches(SPACE) && tokenStream.matches(LINE)) {\n lines.push(tokenStream.lastValue.toLowerCase()); // Underline comes before line-through\n\n lines.sort().reverse();\n } else {\n tokenStream.rewind();\n }\n\n line = lines.join(' ');\n } else if (style === undefined && tokenStream.matches(STYLE$1)) {\n style = tokenStream.lastValue;\n } else if (color === undefined && tokenStream.matches(COLOR)) {\n color = tokenStream.lastValue;\n } else {\n tokenStream[\"throw\"]();\n }\n\n didParseFirst = true;\n }\n\n return {\n textDecorationLine: line !== undefined ? line : defaultTextDecorationLine,\n textDecorationColor: color !== undefined ? color : defaultTextDecorationColor,\n textDecorationStyle: style !== undefined ? style : defaultTextDecorationStyle\n };\n};\n\nvar textDecorationLine = function textDecorationLine(tokenStream) {\n var lines = [];\n var didParseFirst = false;\n\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE);\n lines.push(tokenStream.expect(LINE).toLowerCase());\n didParseFirst = true;\n }\n\n lines.sort().reverse();\n return {\n textDecorationLine: lines.join(' ')\n };\n};\n\nvar textShadow = function textShadow(tokenStream) {\n var _parseShadow2 = parseShadow(tokenStream),\n offset = _parseShadow2.offset,\n radius = _parseShadow2.radius,\n color = _parseShadow2.color;\n\n return {\n textShadowOffset: offset,\n textShadowRadius: radius,\n textShadowColor: color\n };\n};\n\nvar oneOfType = function oneOfType(tokenType) {\n return function (functionStream) {\n var value = functionStream.expect(tokenType);\n functionStream.expectEmpty();\n return value;\n };\n};\n\nvar singleNumber = oneOfType(NUMBER);\nvar singleLength = oneOfType(LENGTH);\nvar singleAngle = oneOfType(ANGLE);\n\nvar xyTransformFactory = function xyTransformFactory(tokenType) {\n return function (key, valueIfOmitted) {\n return function (functionStream) {\n var _ref3, _ref4;\n\n var x = functionStream.expect(tokenType);\n var y;\n\n if (functionStream.hasTokens()) {\n functionStream.expect(COMMA);\n y = functionStream.expect(tokenType);\n } else if (valueIfOmitted !== undefined) {\n y = valueIfOmitted;\n } else {\n // Assumption, if x === y, then we can omit XY\n // I.e. scale(5) => [{ scale: 5 }] rather than [{ scaleX: 5 }, { scaleY: 5 }]\n return x;\n }\n\n functionStream.expectEmpty();\n return [(_ref3 = {}, _ref3[key + \"Y\"] = y, _ref3), (_ref4 = {}, _ref4[key + \"X\"] = x, _ref4)];\n };\n };\n};\n\nvar xyNumber = xyTransformFactory(NUMBER);\nvar xyLength = xyTransformFactory(LENGTH);\nvar xyAngle = xyTransformFactory(ANGLE);\nvar partTransforms = {\n perspective: singleNumber,\n scale: xyNumber('scale'),\n scaleX: singleNumber,\n scaleY: singleNumber,\n translate: xyLength('translate', 0),\n translateX: singleLength,\n translateY: singleLength,\n rotate: singleAngle,\n rotateX: singleAngle,\n rotateY: singleAngle,\n rotateZ: singleAngle,\n skewX: singleAngle,\n skewY: singleAngle,\n skew: xyAngle('skew', '0deg')\n};\n\nvar transform = function transform(tokenStream) {\n var transforms = [];\n var didParseFirst = false;\n\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE);\n var functionStream = tokenStream.expectFunction();\n var functionName = functionStream.functionName;\n var transformedValues = partTransforms[functionName](functionStream);\n\n if (!Array.isArray(transformedValues)) {\n var _ref5;\n\n transformedValues = [(_ref5 = {}, _ref5[functionName] = transformedValues, _ref5)];\n }\n\n transforms = transformedValues.concat(transforms);\n didParseFirst = true;\n }\n\n return {\n transform: transforms\n };\n};\n\nvar background = function background(tokenStream) {\n return {\n backgroundColor: tokenStream.expect(COLOR)\n };\n};\n\nvar borderColor = directionFactory({\n types: [COLOR],\n prefix: 'border',\n suffix: 'Color'\n});\nvar borderRadius = directionFactory({\n directions: ['TopLeft', 'TopRight', 'BottomRight', 'BottomLeft'],\n prefix: 'border',\n suffix: 'Radius'\n});\nvar borderWidth = directionFactory({\n prefix: 'border',\n suffix: 'Width'\n});\nvar margin = directionFactory({\n types: [LENGTH, UNSUPPORTED_LENGTH_UNIT, PERCENT, AUTO],\n prefix: 'margin'\n});\nvar padding = directionFactory({\n prefix: 'padding'\n});\n\nvar fontVariant = function fontVariant(tokenStream) {\n return {\n fontVariant: [tokenStream.expect(IDENT)]\n };\n};\n\nvar fontWeight = function fontWeight(tokenStream) {\n return {\n fontWeight: tokenStream.expect(WORD) // Also match numbers as strings\n\n };\n};\n\nvar shadowOffset = function shadowOffset(tokenStream) {\n return {\n shadowOffset: parseShadowOffset(tokenStream)\n };\n};\n\nvar textShadowOffset = function textShadowOffset(tokenStream) {\n return {\n textShadowOffset: parseShadowOffset(tokenStream)\n };\n};\n\nvar transforms = {\n background: background,\n border: border,\n borderColor: borderColor,\n borderRadius: borderRadius,\n borderWidth: borderWidth,\n boxShadow: boxShadow,\n flex: flex,\n flexFlow: flexFlow,\n font: font,\n fontFamily: fontFamily,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n margin: margin,\n padding: padding,\n placeContent: placeContent,\n shadowOffset: shadowOffset,\n textShadow: textShadow,\n textShadowOffset: textShadowOffset,\n textDecoration: textDecoration,\n textDecorationLine: textDecorationLine,\n transform: transform\n};\nvar propertiesWithoutUnits;\n\nif (process.env.NODE_ENV !== 'production') {\n propertiesWithoutUnits = ['aspectRatio', 'elevation', 'flexGrow', 'flexShrink', 'opacity', 'shadowOpacity', 'zIndex'];\n}\n\nvar devPropertiesWithUnitsRegExp = propertiesWithoutUnits != null ? new RegExp(propertiesWithoutUnits.join('|')) : null;\nvar SYMBOL_MATCH = 'SYMBOL_MATCH';\n\nvar TokenStream =\n/*#__PURE__*/\nfunction () {\n function TokenStream(nodes, parent) {\n this.index = 0;\n this.nodes = nodes;\n this.functionName = parent != null ? parent.value : null;\n this.lastValue = null;\n this.rewindIndex = -1;\n }\n\n var _proto = TokenStream.prototype;\n\n _proto.hasTokens = function hasTokens() {\n return this.index <= this.nodes.length - 1;\n };\n\n _proto[SYMBOL_MATCH] = function () {\n if (!this.hasTokens()) return null;\n var node = this.nodes[this.index];\n\n for (var i = 0; i < arguments.length; i += 1) {\n var tokenDescriptor = i < 0 || arguments.length <= i ? undefined : arguments[i];\n var value = tokenDescriptor(node);\n\n if (value !== null) {\n this.index += 1;\n this.lastValue = value;\n return value;\n }\n }\n\n return null;\n };\n\n _proto.matches = function matches() {\n return this[SYMBOL_MATCH].apply(this, arguments) !== null;\n };\n\n _proto.expect = function expect() {\n var value = this[SYMBOL_MATCH].apply(this, arguments);\n return value !== null ? value : this[\"throw\"]();\n };\n\n _proto.matchesFunction = function matchesFunction() {\n var node = this.nodes[this.index];\n if (node.type !== 'function') return null;\n var value = new TokenStream(node.nodes, node);\n this.index += 1;\n this.lastValue = null;\n return value;\n };\n\n _proto.expectFunction = function expectFunction() {\n var value = this.matchesFunction();\n return value !== null ? value : this[\"throw\"]();\n };\n\n _proto.expectEmpty = function expectEmpty() {\n if (this.hasTokens()) this[\"throw\"]();\n };\n\n _proto[\"throw\"] = function _throw() {\n throw new Error(\"Unexpected token type: \" + this.nodes[this.index].type);\n };\n\n _proto.saveRewindPoint = function saveRewindPoint() {\n this.rewindIndex = this.index;\n };\n\n _proto.rewind = function rewind() {\n if (this.rewindIndex === -1) throw new Error('Internal error');\n this.index = this.rewindIndex;\n this.lastValue = null;\n };\n\n return TokenStream;\n}();\n/* eslint-disable no-param-reassign */\n// Note if this is wrong, you'll need to change tokenTypes.js too\n\n\nvar numberOrLengthRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?)(?:px)?$/i;\nvar numberOnlyRe = /^[+-]?(?:\\d*\\.\\d*|[1-9]\\d*)(?:e[+-]?\\d+)?$/i;\nvar boolRe = /^true|false$/i;\nvar nullRe = /^null$/i;\nvar undefinedRe = /^undefined$/i; // Undocumented export\n\nvar transformRawValue = function transformRawValue(propName, value) {\n if (process.env.NODE_ENV !== 'production') {\n var needsUnit = !devPropertiesWithUnitsRegExp.test(propName);\n var isNumberWithoutUnit = numberOnlyRe.test(value);\n\n if (needsUnit && isNumberWithoutUnit) {\n // eslint-disable-next-line no-console\n console.warn(\"Expected style \\\"\" + propName + \": \" + value + \"\\\" to contain units\");\n }\n\n if (!needsUnit && value !== '0' && !isNumberWithoutUnit) {\n // eslint-disable-next-line no-console\n console.warn(\"Expected style \\\"\" + propName + \": \" + value + \"\\\" to be unitless\");\n }\n }\n\n var numberMatch = value.match(numberOrLengthRe);\n if (numberMatch !== null) return Number(numberMatch[1]);\n var boolMatch = value.match(boolRe);\n if (boolMatch !== null) return boolMatch[0].toLowerCase() === 'true';\n var nullMatch = value.match(nullRe);\n if (nullMatch !== null) return null;\n var undefinedMatch = value.match(undefinedRe);\n if (undefinedMatch !== null) return undefined;\n return value;\n};\n\nvar baseTransformShorthandValue = function baseTransformShorthandValue(propName, value) {\n var ast = parse__default(value);\n var tokenStream = new TokenStream(ast.nodes);\n return transforms[propName](tokenStream);\n};\n\nvar transformShorthandValue = process.env.NODE_ENV === 'production' ? baseTransformShorthandValue : function (propName, value) {\n try {\n return baseTransformShorthandValue(propName, value);\n } catch (e) {\n throw new Error(\"Failed to parse declaration \\\"\" + propName + \": \" + value + \"\\\"\");\n }\n};\n\nvar getStylesForProperty = function getStylesForProperty(propName, inputValue, allowShorthand) {\n var _ref6;\n\n var isRawValue = allowShorthand === false || !(propName in transforms);\n var value = inputValue.trim();\n var propValues = isRawValue ? (_ref6 = {}, _ref6[propName] = transformRawValue(propName, value), _ref6) : transformShorthandValue(propName, value);\n return propValues;\n};\n\nvar getPropertyName = function getPropertyName(propName) {\n var isCustomProp = /^--\\w+/.test(propName);\n\n if (isCustomProp) {\n return propName;\n }\n\n return camelizeStyleName(propName);\n};\n\nvar index = function index(rules, shorthandBlacklist) {\n if (shorthandBlacklist === void 0) {\n shorthandBlacklist = [];\n }\n\n return rules.reduce(function (accum, rule) {\n var propertyName = getPropertyName(rule[0]);\n var value = rule[1];\n var allowShorthand = shorthandBlacklist.indexOf(propertyName) === -1;\n return Object.assign(accum, getStylesForProperty(propertyName, value, allowShorthand));\n }, {});\n};\n\nexports[\"default\"] = index;\nexports.getPropertyName = getPropertyName;\nexports.getStylesForProperty = getStylesForProperty;\nexports.transformRawValue = transformRawValue;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createPrefixer;\n\nvar _prefixProperty = require('./utils/prefixProperty');\n\nvar _prefixProperty2 = _interopRequireDefault(_prefixProperty);\n\nvar _prefixValue = require('./utils/prefixValue');\n\nvar _prefixValue2 = _interopRequireDefault(_prefixValue);\n\nvar _addNewValuesOnly = require('./utils/addNewValuesOnly');\n\nvar _addNewValuesOnly2 = _interopRequireDefault(_addNewValuesOnly);\n\nvar _isObject = require('./utils/isObject');\n\nvar _isObject2 = _interopRequireDefault(_isObject);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createPrefixer(_ref) {\n var prefixMap = _ref.prefixMap,\n plugins = _ref.plugins;\n\n return function prefix(style) {\n for (var property in style) {\n var value = style[property];\n\n // handle nested objects\n if ((0, _isObject2.default)(value)) {\n style[property] = prefix(value);\n // handle array values\n } else if (Array.isArray(value)) {\n var combinedValue = [];\n\n for (var i = 0, len = value.length; i < len; ++i) {\n var processedValue = (0, _prefixValue2.default)(plugins, property, value[i], style, prefixMap);\n (0, _addNewValuesOnly2.default)(combinedValue, processedValue || value[i]);\n }\n\n // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n if (combinedValue.length > 0) {\n style[property] = combinedValue;\n }\n } else {\n var _processedValue = (0, _prefixValue2.default)(plugins, property, value, style, prefixMap);\n\n // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n if (_processedValue) {\n style[property] = _processedValue;\n }\n\n style = (0, _prefixProperty2.default)(prefixMap, property, style);\n }\n }\n\n return style;\n };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = backgroundClip;\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/background-clip#Browser_compatibility\nfunction backgroundClip(property, value) {\n if (typeof value === 'string' && value === 'text') {\n return ['-webkit-text', 'text'];\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = crossFade;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// http://caniuse.com/#search=cross-fade\nvar prefixes = ['-webkit-', ''];\nfunction crossFade(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('cross-fade(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/cross-fade\\(/g, prefix + 'cross-fade(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cursor;\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar values = {\n 'zoom-in': true,\n 'zoom-out': true,\n grab: true,\n grabbing: true\n};\n\nfunction cursor(property, value) {\n if (property === 'cursor' && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = filter;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// http://caniuse.com/#feat=css-filter-function\nvar prefixes = ['-webkit-', ''];\nfunction filter(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('filter(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/filter\\(/g, prefix + 'filter(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flex;\nvar values = {\n flex: ['-webkit-box', '-moz-box', '-ms-flexbox', '-webkit-flex', 'flex'],\n 'inline-flex': ['-webkit-inline-box', '-moz-inline-box', '-ms-inline-flexbox', '-webkit-inline-flex', 'inline-flex']\n};\n\nfunction flex(property, value) {\n if (property === 'display' && values.hasOwnProperty(value)) {\n return values[value];\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxIE;\nvar alternativeValues = {\n 'space-around': 'distribute',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end'\n};\nvar alternativeProps = {\n alignContent: 'msFlexLinePack',\n alignSelf: 'msFlexItemAlign',\n alignItems: 'msFlexAlign',\n justifyContent: 'msFlexPack',\n order: 'msFlexOrder',\n flexGrow: 'msFlexPositive',\n flexShrink: 'msFlexNegative',\n flexBasis: 'msFlexPreferredSize'\n // Full expanded syntax is flex-grow | flex-shrink | flex-basis.\n};var flexShorthandMappings = {\n auto: '1 1 auto',\n inherit: 'inherit',\n initial: '0 1 auto',\n none: '0 0 auto',\n unset: 'unset'\n};\nvar isUnitlessNumber = /^\\d+(\\.\\d+)?$/;\nvar logTag = 'inline-style-prefixer.flexboxIE plugin';\nfunction flexboxIE(property, value, style) {\n if (Object.prototype.hasOwnProperty.call(alternativeProps, property)) {\n style[alternativeProps[property]] = alternativeValues[value] || value;\n }\n if (property === 'flex') {\n // For certain values we can do straight mappings based on the spec\n // for the expansions.\n if (Object.prototype.hasOwnProperty.call(flexShorthandMappings, value)) {\n style.msFlex = flexShorthandMappings[value];\n return;\n }\n // Here we have no direct mapping, so we favor looking for a\n // unitless positive number as that will be the most common use-case.\n if (isUnitlessNumber.test(value)) {\n style.msFlex = value + ' 1 0%';\n return;\n }\n\n if (typeof value === 'number' && value < 0) {\n // ignore negative values;\n console.warn(logTag + ': \"flex: ' + value + '\", negative values is not valid and will be ignored.');\n return;\n }\n\n if (!value.split) {\n console.warn(logTag + ': \"flex: ' + value + '\", value format is not detected, it will be remain as is');\n style.msFlex = value;\n return;\n }\n\n // The next thing we can look for is if there are multiple values.\n var flexValues = value.split(/\\s/);\n // If we only have a single value that wasn't a positive unitless\n // or a pre-mapped value, then we can assume it is a unit value.\n switch (flexValues.length) {\n case 1:\n style.msFlex = '1 1 ' + value;\n return;\n case 2:\n // If we have 2 units, then we expect that the first will\n // always be a unitless number and represents flex-grow.\n // The second unit will represent flex-shrink for a unitless\n // value, or flex-basis otherwise.\n if (isUnitlessNumber.test(flexValues[1])) {\n style.msFlex = flexValues[0] + ' ' + flexValues[1] + ' 0%';\n } else {\n style.msFlex = flexValues[0] + ' 1 ' + flexValues[1];\n }\n return;\n default:\n style.msFlex = value;\n }\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxOld;\nvar alternativeValues = {\n 'space-around': 'justify',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end',\n 'wrap-reverse': 'multiple',\n wrap: 'multiple'\n};\n\nvar alternativeProps = {\n alignItems: 'WebkitBoxAlign',\n justifyContent: 'WebkitBoxPack',\n flexWrap: 'WebkitBoxLines',\n flexGrow: 'WebkitBoxFlex'\n};\n\nfunction flexboxOld(property, value, style) {\n if (property === 'flexDirection' && typeof value === 'string') {\n if (value.indexOf('column') > -1) {\n style.WebkitBoxOrient = 'vertical';\n } else {\n style.WebkitBoxOrient = 'horizontal';\n }\n if (value.indexOf('reverse') > -1) {\n style.WebkitBoxDirection = 'reverse';\n } else {\n style.WebkitBoxDirection = 'normal';\n }\n }\n if (alternativeProps.hasOwnProperty(property)) {\n style[alternativeProps[property]] = alternativeValues[value] || value;\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = gradient;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/gi;\n\nfunction gradient(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && values.test(value)) {\n return prefixes.map(function (prefix) {\n return value.replace(values, function (grad) {\n return prefix + grad;\n });\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nexports.default = grid;\nfunction isSimplePositionValue(value) {\n return typeof value === 'number' && !isNaN(value);\n}\n\nfunction isComplexSpanValue(value) {\n return typeof value === 'string' && value.includes('/');\n}\n\nvar alignmentValues = ['center', 'end', 'start', 'stretch'];\n\nvar displayValues = {\n 'inline-grid': ['-ms-inline-grid', 'inline-grid'],\n grid: ['-ms-grid', 'grid']\n};\n\nvar propertyConverters = {\n alignSelf: function alignSelf(value, style) {\n if (alignmentValues.indexOf(value) > -1) {\n style.msGridRowAlign = value;\n }\n },\n\n gridColumn: function gridColumn(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridColumn = value;\n } else if (isComplexSpanValue(value)) {\n var _value$split = value.split('/'),\n _value$split2 = _slicedToArray(_value$split, 2),\n start = _value$split2[0],\n end = _value$split2[1];\n\n propertyConverters.gridColumnStart(+start, style);\n\n var _end$split = end.split(/ ?span /),\n _end$split2 = _slicedToArray(_end$split, 2),\n maybeSpan = _end$split2[0],\n maybeNumber = _end$split2[1];\n\n if (maybeSpan === '') {\n propertyConverters.gridColumnEnd(+start + +maybeNumber, style);\n } else {\n propertyConverters.gridColumnEnd(+end, style);\n }\n } else {\n propertyConverters.gridColumnStart(value, style);\n }\n },\n\n gridColumnEnd: function gridColumnEnd(value, style) {\n var msGridColumn = style.msGridColumn;\n\n if (isSimplePositionValue(value) && isSimplePositionValue(msGridColumn)) {\n style.msGridColumnSpan = value - msGridColumn;\n }\n },\n\n gridColumnStart: function gridColumnStart(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridColumn = value;\n }\n },\n\n gridRow: function gridRow(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridRow = value;\n } else if (isComplexSpanValue(value)) {\n var _value$split3 = value.split('/'),\n _value$split4 = _slicedToArray(_value$split3, 2),\n start = _value$split4[0],\n end = _value$split4[1];\n\n propertyConverters.gridRowStart(+start, style);\n\n var _end$split3 = end.split(/ ?span /),\n _end$split4 = _slicedToArray(_end$split3, 2),\n maybeSpan = _end$split4[0],\n maybeNumber = _end$split4[1];\n\n if (maybeSpan === '') {\n propertyConverters.gridRowEnd(+start + +maybeNumber, style);\n } else {\n propertyConverters.gridRowEnd(+end, style);\n }\n } else {\n propertyConverters.gridRowStart(value, style);\n }\n },\n\n gridRowEnd: function gridRowEnd(value, style) {\n var msGridRow = style.msGridRow;\n\n if (isSimplePositionValue(value) && isSimplePositionValue(msGridRow)) {\n style.msGridRowSpan = value - msGridRow;\n }\n },\n\n gridRowStart: function gridRowStart(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridRow = value;\n }\n },\n\n gridTemplateColumns: function gridTemplateColumns(value, style) {\n style.msGridColumns = value;\n },\n\n gridTemplateRows: function gridTemplateRows(value, style) {\n style.msGridRows = value;\n },\n\n justifySelf: function justifySelf(value, style) {\n if (alignmentValues.indexOf(value) > -1) {\n style.msGridColumnAlign = value;\n }\n }\n};\n\nfunction grid(property, value, style) {\n if (property === 'display' && value in displayValues) {\n return displayValues[value];\n }\n\n if (property in propertyConverters) {\n var propertyConverter = propertyConverters[property];\n propertyConverter(value, style);\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = imageSet;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// http://caniuse.com/#feat=css-image-set\nvar prefixes = ['-webkit-', ''];\nfunction imageSet(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('image-set(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/image-set\\(/g, prefix + 'image-set(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = logical;\nvar alternativeProps = {\n marginBlockStart: ['WebkitMarginBefore'],\n marginBlockEnd: ['WebkitMarginAfter'],\n marginInlineStart: ['WebkitMarginStart', 'MozMarginStart'],\n marginInlineEnd: ['WebkitMarginEnd', 'MozMarginEnd'],\n paddingBlockStart: ['WebkitPaddingBefore'],\n paddingBlockEnd: ['WebkitPaddingAfter'],\n paddingInlineStart: ['WebkitPaddingStart', 'MozPaddingStart'],\n paddingInlineEnd: ['WebkitPaddingEnd', 'MozPaddingEnd'],\n borderBlockStart: ['WebkitBorderBefore'],\n borderBlockStartColor: ['WebkitBorderBeforeColor'],\n borderBlockStartStyle: ['WebkitBorderBeforeStyle'],\n borderBlockStartWidth: ['WebkitBorderBeforeWidth'],\n borderBlockEnd: ['WebkitBorderAfter'],\n borderBlockEndColor: ['WebkitBorderAfterColor'],\n borderBlockEndStyle: ['WebkitBorderAfterStyle'],\n borderBlockEndWidth: ['WebkitBorderAfterWidth'],\n borderInlineStart: ['WebkitBorderStart', 'MozBorderStart'],\n borderInlineStartColor: ['WebkitBorderStartColor', 'MozBorderStartColor'],\n borderInlineStartStyle: ['WebkitBorderStartStyle', 'MozBorderStartStyle'],\n borderInlineStartWidth: ['WebkitBorderStartWidth', 'MozBorderStartWidth'],\n borderInlineEnd: ['WebkitBorderEnd', 'MozBorderEnd'],\n borderInlineEndColor: ['WebkitBorderEndColor', 'MozBorderEndColor'],\n borderInlineEndStyle: ['WebkitBorderEndStyle', 'MozBorderEndStyle'],\n borderInlineEndWidth: ['WebkitBorderEndWidth', 'MozBorderEndWidth']\n};\n\nfunction logical(property, value, style) {\n if (Object.prototype.hasOwnProperty.call(alternativeProps, property)) {\n var alternativePropList = alternativeProps[property];\n for (var i = 0, len = alternativePropList.length; i < len; ++i) {\n style[alternativePropList[i]] = value;\n }\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = position;\nfunction position(property, value) {\n if (property === 'position' && value === 'sticky') {\n return ['-webkit-sticky', 'sticky'];\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = sizing;\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar properties = {\n maxHeight: true,\n maxWidth: true,\n width: true,\n height: true,\n columnWidth: true,\n minWidth: true,\n minHeight: true\n};\nvar values = {\n 'min-content': true,\n 'max-content': true,\n 'fill-available': true,\n 'fit-content': true,\n 'contain-floats': true\n};\n\nfunction sizing(property, value) {\n if (properties.hasOwnProperty(property) && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = transition;\n\nvar _hyphenateProperty = require('css-in-js-utils/lib/hyphenateProperty');\n\nvar _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nvar _capitalizeString = require('../utils/capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar properties = {\n transition: true,\n transitionProperty: true,\n WebkitTransition: true,\n WebkitTransitionProperty: true,\n MozTransition: true,\n MozTransitionProperty: true\n};\n\n\nvar prefixMapping = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n ms: '-ms-'\n};\n\nfunction prefixValue(value, propertyPrefixMap) {\n if ((0, _isPrefixedValue2.default)(value)) {\n return value;\n }\n\n // only split multi values, not cubic beziers\n var multipleValues = value.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g);\n\n for (var i = 0, len = multipleValues.length; i < len; ++i) {\n var singleValue = multipleValues[i];\n var values = [singleValue];\n for (var property in propertyPrefixMap) {\n var dashCaseProperty = (0, _hyphenateProperty2.default)(property);\n\n if (singleValue.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== 'order') {\n var prefixes = propertyPrefixMap[property];\n for (var j = 0, pLen = prefixes.length; j < pLen; ++j) {\n // join all prefixes and create a new value\n values.unshift(singleValue.replace(dashCaseProperty, prefixMapping[prefixes[j]] + dashCaseProperty));\n }\n }\n }\n\n multipleValues[i] = values.join(',');\n }\n\n return multipleValues.join(',');\n}\n\nfunction transition(property, value, style, propertyPrefixMap) {\n // also check for already prefixed transitions\n if (typeof value === 'string' && properties.hasOwnProperty(property)) {\n var outputValue = prefixValue(value, propertyPrefixMap);\n // if the property is already prefixed\n var webkitOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-moz-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Webkit') > -1) {\n return webkitOutput;\n }\n\n var mozOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-webkit-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Moz') > -1) {\n return mozOutput;\n }\n\n style['Webkit' + (0, _capitalizeString2.default)(property)] = webkitOutput;\n style['Moz' + (0, _capitalizeString2.default)(property)] = mozOutput;\n return outputValue;\n }\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\nexport default TurboModuleRegistry.get('NativeAnimatedTurboModule');","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\nexport default TurboModuleRegistry.get('NativeAnimatedModule');","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport Animation from './Animation';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\n\nvar DecayAnimation = /*#__PURE__*/function (_Animation) {\n _inheritsLoose(DecayAnimation, _Animation);\n\n function DecayAnimation(config) {\n var _config$deceleration, _config$isInteraction, _config$iterations;\n\n var _this;\n\n _this = _Animation.call(this) || this;\n _this._deceleration = (_config$deceleration = config.deceleration) !== null && _config$deceleration !== void 0 ? _config$deceleration : 0.998;\n _this._velocity = config.velocity;\n _this._useNativeDriver = shouldUseNativeDriver(config);\n _this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !_this._useNativeDriver;\n _this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n return _this;\n }\n\n var _proto = DecayAnimation.prototype;\n\n _proto.__getNativeAnimationConfig = function __getNativeAnimationConfig() {\n return {\n type: 'decay',\n deceleration: this._deceleration,\n velocity: this._velocity,\n iterations: this.__iterations\n };\n };\n\n _proto.start = function start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n this.__active = true;\n this._lastValue = fromValue;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n this._startTime = Date.now();\n\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n };\n\n _proto.onUpdate = function onUpdate() {\n var now = Date.now();\n var value = this._fromValue + this._velocity / (1 - this._deceleration) * (1 - Math.exp(-(1 - this._deceleration) * (now - this._startTime)));\n\n this._onUpdate(value);\n\n if (Math.abs(this._lastValue - value) < 0.1) {\n this.__debouncedOnEnd({\n finished: true\n });\n\n return;\n }\n\n this._lastValue = value;\n\n if (this.__active) {\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n };\n\n _proto.stop = function stop() {\n _Animation.prototype.stop.call(this);\n\n this.__active = false;\n global.cancelAnimationFrame(this._animationFrame);\n\n this.__debouncedOnEnd({\n finished: false\n });\n };\n\n return DecayAnimation;\n}(Animation);\n\nexport default DecayAnimation;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar React = require('react');\nvar factory = require('./factory');\n\nif (typeof React === 'undefined') {\n throw Error(\n 'create-react-class could not find the React object. If you are using script tags, ' +\n 'make sure that React is being loaded before create-react-class.'\n );\n}\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\n\nmodule.exports = factory(\n React.Component,\n React.isValidElement,\n ReactNoopUpdateQueue\n);\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Info = function Info() {\n this.any_blank_count = 0;\n this.any_blank_ms = 0;\n this.any_blank_speed_sum = 0;\n this.mostly_blank_count = 0;\n this.mostly_blank_ms = 0;\n this.pixels_blank = 0;\n this.pixels_sampled = 0;\n this.pixels_scrolled = 0;\n this.total_time_spent = 0;\n this.sample_count = 0;\n};\n\nvar DEBUG = false;\nvar _listeners = [];\nvar _minSampleCount = 10;\n\nvar _sampleRate = DEBUG ? 1 : null;\n/**\n * A helper class for detecting when the maximem fill rate of `VirtualizedList` is exceeded.\n * By default the sampling rate is set to zero and this will do nothing. If you want to collect\n * samples (e.g. to log them), make sure to call `FillRateHelper.setSampleRate(0.0-1.0)`.\n *\n * Listeners and sample rate are global for all `VirtualizedList`s - typical usage will combine with\n * `SceneTracker.getActiveScene` to determine the context of the events.\n */\n\n\nvar FillRateHelper = /*#__PURE__*/function () {\n FillRateHelper.addListener = function addListener(callback) {\n if (_sampleRate === null) {\n console.warn('Call `FillRateHelper.setSampleRate` before `addListener`.');\n }\n\n _listeners.push(callback);\n\n return {\n remove: function remove() {\n _listeners = _listeners.filter(function (listener) {\n return callback !== listener;\n });\n }\n };\n };\n\n FillRateHelper.setSampleRate = function setSampleRate(sampleRate) {\n _sampleRate = sampleRate;\n };\n\n FillRateHelper.setMinSampleCount = function setMinSampleCount(minSampleCount) {\n _minSampleCount = minSampleCount;\n };\n\n function FillRateHelper(getFrameMetrics) {\n this._anyBlankStartTime = null;\n this._enabled = false;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n this._getFrameMetrics = getFrameMetrics;\n this._enabled = (_sampleRate || 0) > Math.random();\n\n this._resetData();\n }\n\n var _proto = FillRateHelper.prototype;\n\n _proto.activate = function activate() {\n if (this._enabled && this._samplesStartTime == null) {\n DEBUG && console.debug('FillRateHelper: activate');\n this._samplesStartTime = global.performance.now();\n }\n };\n\n _proto.deactivateAndFlush = function deactivateAndFlush() {\n if (!this._enabled) {\n return;\n }\n\n var start = this._samplesStartTime; // const for flow\n\n if (start == null) {\n DEBUG && console.debug('FillRateHelper: bail on deactivate with no start time');\n return;\n }\n\n if (this._info.sample_count < _minSampleCount) {\n // Don't bother with under-sampled events.\n this._resetData();\n\n return;\n }\n\n var total_time_spent = global.performance.now() - start;\n\n var info = _objectSpread(_objectSpread({}, this._info), {}, {\n total_time_spent: total_time_spent\n });\n\n if (DEBUG) {\n var derived = {\n avg_blankness: this._info.pixels_blank / this._info.pixels_sampled,\n avg_speed: this._info.pixels_scrolled / (total_time_spent / 1000),\n avg_speed_when_any_blank: this._info.any_blank_speed_sum / this._info.any_blank_count,\n any_blank_per_min: this._info.any_blank_count / (total_time_spent / 1000 / 60),\n any_blank_time_frac: this._info.any_blank_ms / total_time_spent,\n mostly_blank_per_min: this._info.mostly_blank_count / (total_time_spent / 1000 / 60),\n mostly_blank_time_frac: this._info.mostly_blank_ms / total_time_spent\n };\n\n for (var key in derived) {\n derived[key] = Math.round(1000 * derived[key]) / 1000;\n }\n\n console.debug('FillRateHelper deactivateAndFlush: ', {\n derived: derived,\n info: info\n });\n }\n\n _listeners.forEach(function (listener) {\n return listener(info);\n });\n\n this._resetData();\n };\n\n _proto.computeBlankness = function computeBlankness(props, state, scrollMetrics) {\n if (!this._enabled || props.getItemCount(props.data) === 0 || this._samplesStartTime == null) {\n return 0;\n }\n\n var dOffset = scrollMetrics.dOffset,\n offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength; // Denominator metrics that we track for all events - most of the time there is no blankness and\n // we want to capture that.\n\n this._info.sample_count++;\n this._info.pixels_sampled += Math.round(visibleLength);\n this._info.pixels_scrolled += Math.round(Math.abs(dOffset));\n var scrollSpeed = Math.round(Math.abs(velocity) * 1000); // px / sec\n // Whether blank now or not, record the elapsed time blank if we were blank last time.\n\n var now = global.performance.now();\n\n if (this._anyBlankStartTime != null) {\n this._info.any_blank_ms += now - this._anyBlankStartTime;\n }\n\n this._anyBlankStartTime = null;\n\n if (this._mostlyBlankStartTime != null) {\n this._info.mostly_blank_ms += now - this._mostlyBlankStartTime;\n }\n\n this._mostlyBlankStartTime = null;\n var blankTop = 0;\n var first = state.first;\n\n var firstFrame = this._getFrameMetrics(first);\n\n while (first <= state.last && (!firstFrame || !firstFrame.inLayout)) {\n firstFrame = this._getFrameMetrics(first);\n first++;\n } // Only count blankTop if we aren't rendering the first item, otherwise we will count the header\n // as blank.\n\n\n if (firstFrame && first > 0) {\n blankTop = Math.min(visibleLength, Math.max(0, firstFrame.offset - offset));\n }\n\n var blankBottom = 0;\n var last = state.last;\n\n var lastFrame = this._getFrameMetrics(last);\n\n while (last >= state.first && (!lastFrame || !lastFrame.inLayout)) {\n lastFrame = this._getFrameMetrics(last);\n last--;\n } // Only count blankBottom if we aren't rendering the last item, otherwise we will count the\n // footer as blank.\n\n\n if (lastFrame && last < props.getItemCount(props.data) - 1) {\n var bottomEdge = lastFrame.offset + lastFrame.length;\n blankBottom = Math.min(visibleLength, Math.max(0, offset + visibleLength - bottomEdge));\n }\n\n var pixels_blank = Math.round(blankTop + blankBottom);\n var blankness = pixels_blank / visibleLength;\n\n if (blankness > 0) {\n this._anyBlankStartTime = now;\n this._info.any_blank_speed_sum += scrollSpeed;\n this._info.any_blank_count++;\n this._info.pixels_blank += pixels_blank;\n\n if (blankness > 0.5) {\n this._mostlyBlankStartTime = now;\n this._info.mostly_blank_count++;\n }\n } else if (scrollSpeed < 0.01 || Math.abs(dOffset) < 1) {\n this.deactivateAndFlush();\n }\n\n return blankness;\n };\n\n _proto.enabled = function enabled() {\n return this._enabled;\n };\n\n _proto._resetData = function _resetData() {\n this._anyBlankStartTime = null;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n };\n\n return FillRateHelper;\n}();\n\nexport default FillRateHelper;","\nvar canPromise = require('./can-promise')\n\nvar QRCode = require('./core/qrcode')\nvar CanvasRenderer = require('./renderer/canvas')\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)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\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\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _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}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import React, { useMemo } from 'react'\nimport Svg, {\n Defs,\n G,\n Path,\n Rect,\n Image,\n ClipPath,\n LinearGradient,\n Stop\n} from 'react-native-svg'\nimport genMatrix from './genMatrix'\nimport transformMatrixIntoPath from './transformMatrixIntoPath'\n\nconst renderLogo = ({\n size,\n logo,\n logoSize,\n logoBackgroundColor,\n logoMargin,\n logoBorderRadius\n}) => {\n const logoPosition = (size - logoSize - logoMargin * 2) / 2\n const logoBackgroundSize = logoSize + logoMargin * 2\n const logoBackgroundBorderRadius =\n logoBorderRadius + (logoMargin / logoSize) * logoBorderRadius\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst QRCode = ({\n value = 'this is a QR code',\n size = 100,\n color = 'black',\n backgroundColor = 'white',\n logo,\n logoSize = size * 0.2,\n logoBackgroundColor = 'transparent',\n logoMargin = 2,\n logoBorderRadius = 0,\n quietZone = 0,\n enableLinearGradient = false,\n gradientDirection = ['0%', '0%', '100%', '100%'],\n linearGradient = ['rgb(255,0,0)', 'rgb(0,255,255)'],\n ecl = 'M',\n getRef,\n onError\n}) => {\n const result = useMemo(() => {\n try {\n return transformMatrixIntoPath(genMatrix(value, ecl), size)\n } catch (error) {\n if (onError && typeof onError === 'function') {\n onError(error)\n } else {\n // Pass the error when no handler presented\n throw error\n }\n }\n }, [value, size, ecl])\n\n if (!result) {\n return null\n }\n\n const { path, cellSize } = result\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n {logo &&\n renderLogo({\n size,\n logo,\n logoSize,\n logoBackgroundColor,\n logoMargin,\n logoBorderRadius\n })}\n \n )\n}\n\nexport default QRCode\n","export default (matrix, size) => {\n const cellSize = size / matrix.length\n let path = ''\n matrix.forEach((row, i) => {\n let needDraw = false\n row.forEach((column, j) => {\n if (column) {\n if (!needDraw) {\n path += `M${cellSize * j} ${cellSize / 2 + cellSize * i} `\n needDraw = true\n }\n if (needDraw && j === matrix.length - 1) {\n path += `L${cellSize * (j + 1)} ${cellSize / 2 + cellSize * i} `\n }\n } else {\n if (needDraw) {\n path += `L${cellSize * j} ${cellSize / 2 + cellSize * i} `\n needDraw = false\n }\n }\n })\n })\n return {\n cellSize,\n path\n }\n}\n","import QRCode from 'qrcode'\n\nexport default (value, errorCorrectionLevel) => {\n const arr = Array.prototype.slice.call(QRCode.create(value, { errorCorrectionLevel }).modules.data, 0)\n const sqrt = Math.sqrt(arr.length)\n return arr.reduce((rows, key, index) => (index % sqrt === 0 ? rows.push([key]) : rows[rows.length - 1].push(key)) && rows, [])\n}\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var parse = require(\"./parse\");\nvar walk = require(\"./walk\");\nvar stringify = require(\"./stringify\");\n\nfunction ValueParser(value) {\n if (this instanceof ValueParser) {\n this.nodes = parse(value);\n return this;\n }\n return new ValueParser(value);\n}\n\nValueParser.prototype.toString = function() {\n return Array.isArray(this.nodes) ? stringify(this.nodes) : \"\";\n};\n\nValueParser.prototype.walk = function(cb, bubble) {\n walk(this.nodes, cb, bubble);\n return this;\n};\n\nValueParser.unit = require(\"./unit\");\n\nValueParser.walk = walk;\n\nValueParser.stringify = stringify;\n\nmodule.exports = ValueParser;\n","var openParentheses = \"(\".charCodeAt(0);\nvar closeParentheses = \")\".charCodeAt(0);\nvar singleQuote = \"'\".charCodeAt(0);\nvar doubleQuote = '\"'.charCodeAt(0);\nvar backslash = \"\\\\\".charCodeAt(0);\nvar slash = \"/\".charCodeAt(0);\nvar comma = \",\".charCodeAt(0);\nvar colon = \":\".charCodeAt(0);\nvar star = \"*\".charCodeAt(0);\nvar uLower = \"u\".charCodeAt(0);\nvar uUpper = \"U\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar isUnicodeRange = /^[a-f0-9?-]+$/i;\n\nmodule.exports = function(input) {\n var tokens = [];\n var value = input;\n\n var next,\n quote,\n prev,\n token,\n escape,\n escapePos,\n whitespacePos,\n parenthesesOpenPos;\n var pos = 0;\n var code = value.charCodeAt(pos);\n var max = value.length;\n var stack = [{ nodes: tokens }];\n var balanced = 0;\n var parent;\n\n var name = \"\";\n var before = \"\";\n var after = \"\";\n\n while (pos < max) {\n // Whitespaces\n if (code <= 32) {\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = value.slice(pos, next);\n\n prev = tokens[tokens.length - 1];\n if (code === closeParentheses && balanced) {\n after = token;\n } else if (prev && prev.type === \"div\") {\n prev.after = token;\n } else if (\n code === comma ||\n code === colon ||\n (code === slash &&\n value.charCodeAt(next + 1) !== star &&\n (!parent ||\n (parent && parent.type === \"function\" && parent.value !== \"calc\")))\n ) {\n before = token;\n } else {\n tokens.push({\n type: \"space\",\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n\n // Quotes\n } else if (code === singleQuote || code === doubleQuote) {\n next = pos;\n quote = code === singleQuote ? \"'\" : '\"';\n token = {\n type: \"string\",\n sourceIndex: pos,\n quote: quote\n };\n do {\n escape = false;\n next = value.indexOf(quote, next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += quote;\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n token.value = value.slice(pos + 1, next);\n\n tokens.push(token);\n pos = next + 1;\n code = value.charCodeAt(pos);\n\n // Comments\n } else if (code === slash && value.charCodeAt(pos + 1) === star) {\n token = {\n type: \"comment\",\n sourceIndex: pos\n };\n\n next = value.indexOf(\"*/\", pos);\n if (next === -1) {\n token.unclosed = true;\n next = value.length;\n }\n\n token.value = value.slice(pos + 2, next);\n tokens.push(token);\n\n pos = next + 2;\n code = value.charCodeAt(pos);\n\n // Operation within calc\n } else if (\n (code === slash || code === star) &&\n parent &&\n parent.type === \"function\" &&\n parent.value === \"calc\"\n ) {\n token = value[pos];\n tokens.push({\n type: \"word\",\n sourceIndex: pos - before.length,\n value: token\n });\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Dividers\n } else if (code === slash || code === comma || code === colon) {\n token = value[pos];\n\n tokens.push({\n type: \"div\",\n sourceIndex: pos - before.length,\n value: token,\n before: before,\n after: \"\"\n });\n before = \"\";\n\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Open parentheses\n } else if (openParentheses === code) {\n // Whitespaces after open parentheses\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n parenthesesOpenPos = pos;\n token = {\n type: \"function\",\n sourceIndex: pos - name.length,\n value: name,\n before: value.slice(parenthesesOpenPos + 1, next)\n };\n pos = next;\n\n if (name === \"url\" && code !== singleQuote && code !== doubleQuote) {\n next -= 1;\n do {\n escape = false;\n next = value.indexOf(\")\", next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += \")\";\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n // Whitespaces before closed\n whitespacePos = next;\n do {\n whitespacePos -= 1;\n code = value.charCodeAt(whitespacePos);\n } while (code <= 32);\n if (parenthesesOpenPos < whitespacePos) {\n if (pos !== whitespacePos + 1) {\n token.nodes = [\n {\n type: \"word\",\n sourceIndex: pos,\n value: value.slice(pos, whitespacePos + 1)\n }\n ];\n } else {\n token.nodes = [];\n }\n if (token.unclosed && whitespacePos + 1 !== next) {\n token.after = \"\";\n token.nodes.push({\n type: \"space\",\n sourceIndex: whitespacePos + 1,\n value: value.slice(whitespacePos + 1, next)\n });\n } else {\n token.after = value.slice(whitespacePos + 1, next);\n }\n } else {\n token.after = \"\";\n token.nodes = [];\n }\n pos = next + 1;\n code = value.charCodeAt(pos);\n tokens.push(token);\n } else {\n balanced += 1;\n token.after = \"\";\n tokens.push(token);\n stack.push(token);\n tokens = token.nodes = [];\n parent = token;\n }\n name = \"\";\n\n // Close parentheses\n } else if (closeParentheses === code && balanced) {\n pos += 1;\n code = value.charCodeAt(pos);\n\n parent.after = after;\n after = \"\";\n balanced -= 1;\n stack.pop();\n parent = stack[balanced];\n tokens = parent.nodes;\n\n // Words\n } else {\n next = pos;\n do {\n if (code === backslash) {\n next += 1;\n }\n next += 1;\n code = value.charCodeAt(next);\n } while (\n next < max &&\n !(\n code <= 32 ||\n code === singleQuote ||\n code === doubleQuote ||\n code === comma ||\n code === colon ||\n code === slash ||\n code === openParentheses ||\n (code === star &&\n parent &&\n parent.type === \"function\" &&\n parent.value === \"calc\") ||\n (code === slash &&\n parent.type === \"function\" &&\n parent.value === \"calc\") ||\n (code === closeParentheses && balanced)\n )\n );\n token = value.slice(pos, next);\n\n if (openParentheses === code) {\n name = token;\n } else if (\n (uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) &&\n plus === token.charCodeAt(1) &&\n isUnicodeRange.test(token.slice(2))\n ) {\n tokens.push({\n type: \"unicode-range\",\n sourceIndex: pos,\n value: token\n });\n } else {\n tokens.push({\n type: \"word\",\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n }\n }\n\n for (pos = stack.length - 1; pos; pos -= 1) {\n stack[pos].unclosed = true;\n }\n\n return stack[0].nodes;\n};\n","module.exports = function walk(nodes, cb, bubble) {\n var i, max, node, result;\n\n for (i = 0, max = nodes.length; i < max; i += 1) {\n node = nodes[i];\n if (!bubble) {\n result = cb(node, i, nodes);\n }\n\n if (\n result !== false &&\n node.type === \"function\" &&\n Array.isArray(node.nodes)\n ) {\n walk(node.nodes, cb, bubble);\n }\n\n if (bubble) {\n cb(node, i, nodes);\n }\n }\n};\n","function stringifyNode(node, custom) {\n var type = node.type;\n var value = node.value;\n var buf;\n var customResult;\n\n if (custom && (customResult = custom(node)) !== undefined) {\n return customResult;\n } else if (type === \"word\" || type === \"space\") {\n return value;\n } else if (type === \"string\") {\n buf = node.quote || \"\";\n return buf + value + (node.unclosed ? \"\" : buf);\n } else if (type === \"comment\") {\n return \"/*\" + value + (node.unclosed ? \"\" : \"*/\");\n } else if (type === \"div\") {\n return (node.before || \"\") + value + (node.after || \"\");\n } else if (Array.isArray(node.nodes)) {\n buf = stringify(node.nodes, custom);\n if (type !== \"function\") {\n return buf;\n }\n return (\n value +\n \"(\" +\n (node.before || \"\") +\n buf +\n (node.after || \"\") +\n (node.unclosed ? \"\" : \")\")\n );\n }\n return value;\n}\n\nfunction stringify(nodes, custom) {\n var result, i;\n\n if (Array.isArray(nodes)) {\n result = \"\";\n for (i = nodes.length - 1; ~i; i -= 1) {\n result = stringifyNode(nodes[i], custom) + result;\n }\n return result;\n }\n return stringifyNode(nodes, custom);\n}\n\nmodule.exports = stringify;\n","var minus = \"-\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar dot = \".\".charCodeAt(0);\nvar exp = \"e\".charCodeAt(0);\nvar EXP = \"E\".charCodeAt(0);\n\n// Check if three code points would start a number\n// https://www.w3.org/TR/css-syntax-3/#starts-with-a-number\nfunction likeNumber(value) {\n var code = value.charCodeAt(0);\n var nextCode;\n\n if (code === plus || code === minus) {\n nextCode = value.charCodeAt(1);\n\n if (nextCode >= 48 && nextCode <= 57) {\n return true;\n }\n\n var nextNextCode = value.charCodeAt(2);\n\n if (nextCode === dot && nextNextCode >= 48 && nextNextCode <= 57) {\n return true;\n }\n\n return false;\n }\n\n if (code === dot) {\n nextCode = value.charCodeAt(1);\n\n if (nextCode >= 48 && nextCode <= 57) {\n return true;\n }\n\n return false;\n }\n\n if (code >= 48 && code <= 57) {\n return true;\n }\n\n return false;\n}\n\n// Consume a number\n// https://www.w3.org/TR/css-syntax-3/#consume-number\nmodule.exports = function(value) {\n var pos = 0;\n var length = value.length;\n var code;\n var nextCode;\n var nextNextCode;\n\n if (length === 0 || !likeNumber(value)) {\n return false;\n }\n\n code = value.charCodeAt(pos);\n\n if (code === plus || code === minus) {\n pos++;\n }\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code < 48 || code > 57) {\n break;\n }\n\n pos += 1;\n }\n\n code = value.charCodeAt(pos);\n nextCode = value.charCodeAt(pos + 1);\n\n if (code === dot && nextCode >= 48 && nextCode <= 57) {\n pos += 2;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code < 48 || code > 57) {\n break;\n }\n\n pos += 1;\n }\n }\n\n code = value.charCodeAt(pos);\n nextCode = value.charCodeAt(pos + 1);\n nextNextCode = value.charCodeAt(pos + 2);\n\n if (\n (code === exp || code === EXP) &&\n ((nextCode >= 48 && nextCode <= 57) ||\n ((nextCode === plus || nextCode === minus) &&\n nextNextCode >= 48 &&\n nextNextCode <= 57))\n ) {\n pos += nextCode === plus || nextCode === minus ? 3 : 2;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code < 48 || code > 57) {\n break;\n }\n\n pos += 1;\n }\n }\n\n return {\n number: value.slice(0, pos),\n unit: value.slice(pos)\n };\n};\n","module.exports = function(obj) {\n if (typeof obj === 'string') return camelCase(obj);\n return walk(obj);\n};\n\nfunction walk (obj) {\n if (!obj || typeof obj !== 'object') return obj;\n if (isDate(obj) || isRegex(obj)) return obj;\n if (isArray(obj)) return map(obj, walk);\n return reduce(objectKeys(obj), function (acc, key) {\n var camel = camelCase(key);\n acc[camel] = walk(obj[key]);\n return acc;\n }, {});\n}\n\nfunction camelCase(str) {\n return str.replace(/[_.-](\\w|$)/g, function (_,x) {\n return x.toUpperCase();\n });\n}\n\nvar isArray = Array.isArray || function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n};\n\nvar isDate = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Date]';\n};\n\nvar isRegex = function (obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar has = Object.prototype.hasOwnProperty;\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (has.call(obj, key)) keys.push(key);\n }\n return keys;\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nfunction reduce (xs, f, acc) {\n if (xs.reduce) return xs.reduce(f, acc);\n for (var i = 0; i < xs.length; i++) {\n acc = f(acc, xs[i], i);\n }\n return acc;\n}\n","'use strict'\n\nmodule.exports = require('./colors.json')\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixProperty;\n\nvar _capitalizeString = require('./capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction prefixProperty(prefixProperties, property, style) {\n if (prefixProperties.hasOwnProperty(property)) {\n var newStyle = {};\n var requiredPrefixes = prefixProperties[property];\n var capitalizedProperty = (0, _capitalizeString2.default)(property);\n var keys = Object.keys(style);\n for (var i = 0; i < keys.length; i++) {\n var styleProperty = keys[i];\n if (styleProperty === property) {\n for (var j = 0; j < requiredPrefixes.length; j++) {\n newStyle[requiredPrefixes[j] + capitalizedProperty] = style[property];\n }\n }\n newStyle[styleProperty] = style[styleProperty];\n }\n return newStyle;\n }\n return style;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixValue;\nfunction prefixValue(plugins, property, value, style, metaData) {\n for (var i = 0, len = plugins.length; i < len; ++i) {\n var processedValue = plugins[i](property, value, style, metaData);\n\n // we can stop processing if a value is returned\n // as all plugin criteria are unique\n if (processedValue) {\n return processedValue;\n }\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addNewValuesOnly;\nfunction addIfNew(list, value) {\n if (list.indexOf(value) === -1) {\n list.push(value);\n }\n}\n\nfunction addNewValuesOnly(list, values) {\n if (Array.isArray(values)) {\n for (var i = 0, len = values.length; i < len; ++i) {\n addIfNew(list, values[i]);\n }\n } else {\n addIfNew(list, values);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isObject;\nfunction isObject(value) {\n return value instanceof Object && !Array.isArray(value);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = hyphenateProperty;\n\nvar _hyphenateStyleName = require('hyphenate-style-name');\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction hyphenateProperty(property) {\n return (0, _hyphenateStyleName2.default)(property);\n}\nmodule.exports = exports['default'];","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\n\n\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\n\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\n// -- Inlined from fbjs --\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction _invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nvar warning = function(){};\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\n// /-- Inlined from fbjs --\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\nif (process.env.NODE_ENV !== 'production') {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {\n ReactPropTypeLocationNames = {};\n}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return
Hello World
;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return
Hello, {name}!
;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillMount`.\n *\n * @optional\n */\n UNSAFE_componentWillMount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillReceiveProps`.\n *\n * @optional\n */\n UNSAFE_componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillUpdate`.\n *\n * @optional\n */\n UNSAFE_componentWillUpdate: 'DEFINE_MANY',\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n\n /**\n * Similar to ReactClassInterface but for static methods.\n */\n var ReactClassStaticInterface = {\n /**\n * This method is invoked after a component is instantiated and when it\n * receives new props. Return an object to update state in response to\n * prop changes. Return null to indicate no change to state.\n *\n * If an object is returned, its keys will be merged into the existing state.\n *\n * @return {object || null}\n * @optional\n */\n getDerivedStateFromProps: 'DEFINE_MANY_MERGED'\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function(Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function(Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function(Constructor, childContextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign(\n {},\n Constructor.childContextTypes,\n childContextTypes\n );\n },\n contextTypes: function(Constructor, contextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign(\n {},\n Constructor.contextTypes,\n contextTypes\n );\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function(Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(\n Constructor.getDefaultProps,\n getDefaultProps\n );\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function(Constructor, propTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function(Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function() {}\n };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (process.env.NODE_ENV !== 'production') {\n warning(\n typeof typeDef[propName] === 'function',\n '%s: %s type `%s` is invalid; it must be a function, usually from ' +\n 'React.PropTypes.',\n Constructor.displayName || 'ReactClass',\n ReactPropTypeLocationNames[location],\n propName\n );\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name)\n ? ReactClassInterface[name]\n : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(\n specPolicy === 'OVERRIDE_BASE',\n 'ReactClassInterface: You are attempting to override ' +\n '`%s` from your class specification. Ensure that your method names ' +\n 'do not overlap with React methods.',\n name\n );\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(\n specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClassInterface: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be due ' +\n 'to a mixin.',\n name\n );\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (process.env.NODE_ENV !== 'production') {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n isMixinValid,\n \"%s: You're attempting to include a mixin that is either null \" +\n 'or not an object. Check the mixins included by the component, ' +\n 'as well as any mixins they include themselves. ' +\n 'Expected object but got %s.',\n Constructor.displayName || 'ReactClass',\n spec === null ? null : typeofSpec\n );\n }\n }\n\n return;\n }\n\n _invariant(\n typeof spec !== 'function',\n \"ReactClass: You're attempting to \" +\n 'use a component class or function as a mixin. Instead, just use a ' +\n 'regular object.'\n );\n _invariant(\n !isValidElement(spec),\n \"ReactClass: You're attempting to \" +\n 'use a component as a mixin. Instead, just use a regular object.'\n );\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind =\n isFunction &&\n !isReactClassMethod &&\n !isAlreadyDefined &&\n spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(\n isReactClassMethod &&\n (specPolicy === 'DEFINE_MANY_MERGED' ||\n specPolicy === 'DEFINE_MANY'),\n 'ReactClass: Unexpected spec policy %s for key %s ' +\n 'when mixing in component specs.',\n specPolicy,\n name\n );\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (process.env.NODE_ENV !== 'production') {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(\n !isReserved,\n 'ReactClass: You are attempting to define a reserved ' +\n 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' +\n 'as an instance property instead; it will still be accessible on the ' +\n 'constructor.',\n name\n );\n\n var isAlreadyDefined = name in Constructor;\n if (isAlreadyDefined) {\n var specPolicy = ReactClassStaticInterface.hasOwnProperty(name)\n ? ReactClassStaticInterface[name]\n : null;\n\n _invariant(\n specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClass: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be ' +\n 'due to a mixin.',\n name\n );\n\n Constructor[name] = createMergedResultFunction(Constructor[name], property);\n\n return;\n }\n\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(\n one && two && typeof one === 'object' && typeof two === 'object',\n 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'\n );\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(\n one[key] === undefined,\n 'mergeIntoWithNoDuplicateKeys(): ' +\n 'Tried to merge two objects with the same key: `%s`. This conflict ' +\n 'may be due to a mixin; in particular, this may be caused by two ' +\n 'getInitialState() or getDefaultProps() methods returning objects ' +\n 'with clashing keys.',\n key\n );\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (process.env.NODE_ENV !== 'production') {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function(newThis) {\n for (\n var _len = arguments.length,\n args = Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n false,\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See %s',\n componentName\n );\n }\n } else if (!args.length) {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n false,\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See %s',\n componentName\n );\n }\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedPreMixin = {\n componentDidMount: function() {\n this.__isMounted = true;\n }\n };\n\n var IsMountedPostMixin = {\n componentWillUnmount: function() {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function(newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function() {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n this.__didWarnIsMounted,\n '%s: isMounted is deprecated. Instead, make sure to clean up ' +\n 'subscriptions and pending requests in componentWillUnmount to ' +\n 'prevent memory leaks.',\n (this.constructor && this.constructor.displayName) ||\n this.name ||\n 'Component'\n );\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function() {};\n _assign(\n ReactClassComponent.prototype,\n ReactComponent.prototype,\n ReactClassMixin\n );\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function(props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n this instanceof Constructor,\n 'Something is calling a React component directly. Use a factory or ' +\n 'JSX instead. See: https://fb.me/react-legacyfactory'\n );\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (\n initialState === undefined &&\n this.getInitialState._isMockFunction\n ) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(\n typeof initialState === 'object' && !Array.isArray(initialState),\n '%s.getInitialState(): must return an object or null',\n Constructor.displayName || 'ReactCompositeComponent'\n );\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(\n Constructor.prototype.render,\n 'createClass(...): Class specification must implement a `render` method.'\n );\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n !Constructor.prototype.componentShouldUpdate,\n '%s has a method called ' +\n 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +\n 'The name is phrased as a question because the function is ' +\n 'expected to return a value.',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.componentWillRecieveProps,\n '%s has a method called ' +\n 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.UNSAFE_componentWillRecieveProps,\n '%s has a method called UNSAFE_componentWillRecieveProps(). ' +\n 'Did you mean UNSAFE_componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;\n","// @ts-ignore\nimport * as React from 'react';\nimport {\n GestureResponderEvent,\n // @ts-ignore\n unstable_createElement as ucE,\n // @ts-ignore\n createElement as cE,\n} from 'react-native';\nimport { NumberArray, NumberProp } from './lib/extract/types';\nimport SvgTouchableMixin from './lib/SvgTouchableMixin';\nimport { resolve } from './lib/resolve';\n\nconst createElement = cE || ucE;\n\ntype BlurEvent = Object;\ntype FocusEvent = Object;\ntype PressEvent = Object;\ntype LayoutEvent = Object;\ntype EdgeInsetsProp = Object;\n\ninterface BaseProps {\n accessible?: boolean;\n accessibilityLabel?: string;\n accessibilityHint?: string;\n accessibilityIgnoresInvertColors?: boolean;\n accessibilityRole?: string;\n accessibilityState?: Object;\n delayLongPress?: number;\n delayPressIn?: number;\n delayPressOut?: number;\n disabled?: boolean;\n hitSlop?: EdgeInsetsProp;\n nativeID?: string;\n touchSoundDisabled?: boolean;\n onBlur?: (e: BlurEvent) => void;\n onFocus?: (e: FocusEvent) => void;\n onLayout?: (event: LayoutEvent) => object;\n onLongPress?: (event: PressEvent) => object;\n onClick?: (event: PressEvent) => object;\n onPress?: (event: PressEvent) => object;\n onPressIn?: (event: PressEvent) => object;\n onPressOut?: (event: PressEvent) => object;\n pressRetentionOffset?: EdgeInsetsProp;\n rejectResponderTermination?: boolean;\n\n translate: NumberArray;\n scale: NumberArray;\n rotation: NumberArray;\n skewX: NumberProp;\n skewY: NumberProp;\n originX: NumberProp;\n originY: NumberProp;\n\n fontStyle?: string;\n fontWeight?: NumberProp;\n fontSize?: NumberProp;\n fontFamily?: string;\n forwardedRef: {};\n style: Iterable<{}>;\n}\n\n/**\n * `react-native-svg` supports additional props that aren't defined in the spec.\n * This function replaces them in a spec conforming manner.\n *\n * @param {WebShape} self Instance given to us.\n * @param {Object?} props Optional overridden props given to us.\n * @returns {Object} Cleaned props object.\n * @private\n */\nconst prepare = (\n self: WebShape,\n props = self.props,\n) => {\n const {\n translate,\n scale,\n rotation,\n skewX,\n skewY,\n originX,\n originY,\n fontFamily,\n fontSize,\n fontWeight,\n fontStyle,\n style,\n forwardedRef,\n onPress,\n onPressIn,\n onPressOut,\n onLongPress,\n // @ts-ignore\n ...rest\n } = props;\n const hasTouchableProperty =\n onPress || onPressIn || onPressOut || onLongPress;\n const clean: {\n onStartShouldSetResponder?: (e: GestureResponderEvent) => boolean;\n onResponderMove?: (e: GestureResponderEvent) => void;\n onResponderGrant?: (e: GestureResponderEvent) => void;\n onResponderRelease?: (e: GestureResponderEvent) => void;\n onResponderTerminate?: (e: GestureResponderEvent) => void;\n onResponderTerminationRequest?: (e: GestureResponderEvent) => boolean;\n transform?: string;\n style?: {};\n ref?: {};\n } = {\n ...(hasTouchableProperty\n ? {\n onStartShouldSetResponder:\n self.touchableHandleStartShouldSetResponder,\n onResponderTerminationRequest:\n self.touchableHandleResponderTerminationRequest,\n onResponderGrant: self.touchableHandleResponderGrant,\n onResponderMove: self.touchableHandleResponderMove,\n onResponderRelease: self.touchableHandleResponderRelease,\n onResponderTerminate: self.touchableHandleResponderTerminate,\n }\n : null),\n ...rest,\n };\n\n const transform = [];\n\n if (originX != null || originY != null) {\n transform.push(`translate(${originX || 0}, ${originY || 0})`);\n }\n if (translate != null) {\n transform.push(`translate(${translate})`);\n }\n if (scale != null) {\n transform.push(`scale(${scale})`);\n }\n // rotation maps to rotate, not to collide with the text rotate attribute (which acts per glyph rather than block)\n if (rotation != null) {\n transform.push(`rotate(${rotation})`);\n }\n if (skewX != null) {\n transform.push(`skewX(${skewX})`);\n }\n if (skewY != null) {\n transform.push(`skewY(${skewY})`);\n }\n if (originX != null || originY != null) {\n transform.push(`translate(${-originX || 0}, ${-originY || 0})`);\n }\n\n if (transform.length) {\n clean.transform = transform.join(' ');\n }\n\n if (forwardedRef) {\n clean.ref = forwardedRef;\n }\n\n const styles: {\n fontStyle?: string;\n fontFamily?: string;\n fontSize?: NumberProp;\n fontWeight?: NumberProp;\n } = {};\n\n if (fontFamily != null) {\n styles.fontFamily = fontFamily;\n }\n if (fontSize != null) {\n styles.fontSize = fontSize;\n }\n if (fontWeight != null) {\n styles.fontWeight = fontWeight;\n }\n if (fontStyle != null) {\n styles.fontStyle = fontStyle;\n }\n\n clean.style = resolve(style, styles);\n\n return clean;\n};\n\nconst getBoundingClientRect = (node: SVGElement) => {\n if (node) {\n // @ts-ignore\n const isElement = node.nodeType === 1; /* Node.ELEMENT_NODE */\n // @ts-ignore\n if (isElement && typeof node.getBoundingClientRect === 'function') {\n // @ts-ignore\n return node.getBoundingClientRect();\n }\n }\n};\n\nconst measureLayout = (\n node: SVGElement,\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n left: number,\n top: number,\n ) => void,\n) => {\n // @ts-ignore\n const relativeNode = node && node.parentNode;\n if (relativeNode) {\n setTimeout(() => {\n // @ts-ignore\n const relativeRect = getBoundingClientRect(relativeNode);\n const { height, left, top, width } = getBoundingClientRect(node);\n const x = left - relativeRect.left;\n const y = top - relativeRect.top;\n callback(x, y, width, height, left, top);\n }, 0);\n }\n};\n\nfunction remeasure() {\n // @ts-ignore\n const tag = this.state.touchable.responderID;\n if (tag == null) {\n return;\n }\n // @ts-ignore\n measureLayout(tag, this._handleQueryLayout);\n}\n\nexport class WebShape<\n P extends BaseProps = BaseProps,\n C = {}\n> extends React.Component {\n [x: string]: unknown;\n _remeasureMetricsOnActivation: () => void;\n touchableHandleStartShouldSetResponder?: (\n e: GestureResponderEvent,\n ) => boolean;\n touchableHandleResponderMove?: (e: GestureResponderEvent) => void;\n touchableHandleResponderGrant?: (e: GestureResponderEvent) => void;\n touchableHandleResponderRelease?: (e: GestureResponderEvent) => void;\n touchableHandleResponderTerminate?: (e: GestureResponderEvent) => void;\n touchableHandleResponderTerminationRequest?: (\n e: GestureResponderEvent,\n ) => boolean;\n constructor(props: P, context: C) {\n super(props, context);\n SvgTouchableMixin(this);\n this._remeasureMetricsOnActivation = remeasure.bind(this);\n }\n}\n\nexport class Circle extends WebShape {\n render(): JSX.Element {\n return createElement('circle', prepare(this));\n }\n}\n\nexport class ClipPath extends WebShape {\n render(): JSX.Element {\n return createElement('clipPath', prepare(this));\n }\n}\n\nexport class Defs extends WebShape {\n render(): JSX.Element {\n return createElement('defs', prepare(this));\n }\n}\n\nexport class Ellipse extends WebShape {\n render(): JSX.Element {\n return createElement('ellipse', prepare(this));\n }\n}\n\nexport class G extends WebShape<\n BaseProps & {\n x?: NumberProp;\n y?: NumberProp;\n translate?: string;\n }\n> {\n render(): JSX.Element {\n const { x, y, ...rest } = this.props;\n\n if ((x || y) && !rest.translate) {\n rest.translate = `${x || 0}, ${y || 0}`;\n }\n\n return createElement('g', prepare(this, rest));\n }\n}\n\nexport class Image extends WebShape {\n render(): JSX.Element {\n return createElement('image', prepare(this));\n }\n}\n\nexport class Line extends WebShape {\n render(): JSX.Element {\n return createElement('line', prepare(this));\n }\n}\n\nexport class LinearGradient extends WebShape {\n render(): JSX.Element {\n return createElement('linearGradient', prepare(this));\n }\n}\n\nexport class Path extends WebShape {\n render(): JSX.Element {\n return createElement('path', prepare(this));\n }\n}\n\nexport class Polygon extends WebShape {\n render(): JSX.Element {\n return createElement('polygon', prepare(this));\n }\n}\n\nexport class Polyline extends WebShape {\n render(): JSX.Element {\n return createElement('polyline', prepare(this));\n }\n}\n\nexport class RadialGradient extends WebShape {\n render(): JSX.Element {\n return createElement('radialGradient', prepare(this));\n }\n}\n\nexport class Rect extends WebShape {\n render(): JSX.Element {\n return createElement('rect', prepare(this));\n }\n}\n\nexport class Stop extends WebShape {\n render(): JSX.Element {\n return createElement('stop', prepare(this));\n }\n}\n\nexport class Svg extends WebShape {\n render(): JSX.Element {\n return createElement('svg', prepare(this));\n }\n}\n\nexport class Symbol extends WebShape {\n render(): JSX.Element {\n return createElement('symbol', prepare(this));\n }\n}\n\nexport class Text extends WebShape {\n render(): JSX.Element {\n return createElement('text', prepare(this));\n }\n}\n\nexport class TSpan extends WebShape {\n render(): JSX.Element {\n return createElement('tspan', prepare(this));\n }\n}\n\nexport class TextPath extends WebShape {\n render(): JSX.Element {\n return createElement('textPath', prepare(this));\n }\n}\n\nexport class Use extends WebShape {\n render(): JSX.Element {\n return createElement('use', prepare(this));\n }\n}\n\nexport class Mask extends WebShape {\n render(): JSX.Element {\n return createElement('mask', prepare(this));\n }\n}\n\nexport class ForeignObject extends WebShape {\n render(): JSX.Element {\n return createElement('foreignObject', prepare(this));\n }\n}\n\nexport class Marker extends WebShape {\n render(): JSX.Element {\n return createElement('marker', prepare(this));\n }\n}\n\nexport class Pattern extends WebShape {\n render(): JSX.Element {\n return createElement('pattern', prepare(this));\n }\n}\n\nexport default Svg;\n","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\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","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;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","// @ts-ignore\nimport { Touchable, GestureResponderEvent } from 'react-native';\nconst PRESS_RETENTION_OFFSET = { top: 20, left: 20, right: 20, bottom: 30 };\n// @ts-ignore\nconst { Mixin } = Touchable;\nconst {\n touchableHandleStartShouldSetResponder,\n touchableHandleResponderTerminationRequest,\n touchableHandleResponderGrant,\n touchableHandleResponderMove,\n touchableHandleResponderRelease,\n touchableHandleResponderTerminate,\n touchableGetInitialState,\n} = Mixin;\n\nconst SvgTouchableMixin = {\n ...Mixin,\n\n touchableHandleStartShouldSetResponder(e: GestureResponderEvent) {\n const { onStartShouldSetResponder } = this.props;\n if (onStartShouldSetResponder) {\n return onStartShouldSetResponder(e);\n } else {\n return touchableHandleStartShouldSetResponder.call(this, e);\n }\n },\n\n touchableHandleResponderTerminationRequest(e: GestureResponderEvent) {\n const { onResponderTerminationRequest } = this.props;\n if (onResponderTerminationRequest) {\n return onResponderTerminationRequest(e);\n } else {\n return touchableHandleResponderTerminationRequest.call(this, e);\n }\n },\n\n touchableHandleResponderGrant(e: GestureResponderEvent) {\n const { onResponderGrant } = this.props;\n if (onResponderGrant) {\n return onResponderGrant(e);\n } else {\n return touchableHandleResponderGrant.call(this, e);\n }\n },\n\n touchableHandleResponderMove(e: GestureResponderEvent) {\n const { onResponderMove } = this.props;\n if (onResponderMove) {\n return onResponderMove(e);\n } else {\n return touchableHandleResponderMove.call(this, e);\n }\n },\n\n touchableHandleResponderRelease(e: GestureResponderEvent) {\n const { onResponderRelease } = this.props;\n if (onResponderRelease) {\n return onResponderRelease(e);\n } else {\n return touchableHandleResponderRelease.call(this, e);\n }\n },\n\n touchableHandleResponderTerminate(e: GestureResponderEvent) {\n const { onResponderTerminate } = this.props;\n if (onResponderTerminate) {\n return onResponderTerminate(e);\n } else {\n return touchableHandleResponderTerminate.call(this, e);\n }\n },\n\n touchableHandlePress(e: GestureResponderEvent) {\n const { onPress } = this.props;\n onPress && onPress(e);\n },\n\n touchableHandleActivePressIn(e: GestureResponderEvent) {\n const { onPressIn } = this.props;\n onPressIn && onPressIn(e);\n },\n\n touchableHandleActivePressOut(e: GestureResponderEvent) {\n const { onPressOut } = this.props;\n onPressOut && onPressOut(e);\n },\n\n touchableHandleLongPress(e: GestureResponderEvent) {\n const { onLongPress } = this.props;\n onLongPress && onLongPress(e);\n },\n\n touchableGetPressRectOffset() {\n const { pressRetentionOffset } = this.props;\n return pressRetentionOffset || PRESS_RETENTION_OFFSET;\n },\n\n touchableGetHitSlop() {\n const { hitSlop } = this.props;\n return hitSlop;\n },\n\n touchableGetHighlightDelayMS() {\n const { delayPressIn } = this.props;\n return delayPressIn || 0;\n },\n\n touchableGetLongPressDelayMS() {\n const { delayLongPress } = this.props;\n return delayLongPress === 0 ? 0 : delayLongPress || 500;\n },\n\n touchableGetPressOutDelayMS() {\n const { delayPressOut } = this.props;\n return delayPressOut || 0;\n },\n};\n\nconst touchKeys = Object.keys(SvgTouchableMixin);\nconst touchVals = touchKeys.map(key => SvgTouchableMixin[key]);\nconst numTouchKeys = touchKeys.length;\n\nexport default (target: { [x: string]: unknown; state: unknown }) => {\n for (let i = 0; i < numTouchKeys; i++) {\n const key = touchKeys[i];\n const val = touchVals[i];\n if (typeof val === 'function') {\n target[key] = val.bind(target);\n } else {\n target[key] = val;\n }\n }\n target.state = touchableGetInitialState();\n};\n","import { StyleSheet } from 'react-native';\n\n// Kept in separate file, to avoid name collision with Symbol element\nexport function resolve(styleProp: Iterable, cleanedProps: T) {\n if (styleProp) {\n return StyleSheet\n ? [styleProp, cleanedProps]\n : // Compatibility for arrays of styles in plain react web\n styleProp[Symbol.iterator]\n ? Object.assign({}, ...styleProp, cleanedProps)\n : Object.assign({}, styleProp, cleanedProps);\n } else {\n return cleanedProps;\n }\n}\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","// 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\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n","var BufferUtil = require('../utils/buffer')\nvar Utils = require('./utils')\nvar ECLevel = require('./error-correction-level')\nvar BitBuffer = require('./bit-buffer')\nvar BitMatrix = require('./bit-matrix')\nvar AlignmentPattern = require('./alignment-pattern')\nvar FinderPattern = require('./finder-pattern')\nvar MaskPattern = require('./mask-pattern')\nvar ECCode = require('./error-correction-code')\nvar ReedSolomonEncoder = require('./reed-solomon-encoder')\nvar Version = require('./version')\nvar FormatInfo = require('./format-info')\nvar Mode = require('./mode')\nvar Segments = require('./segments')\nvar isArray = require('isarray')\n\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 */\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)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (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/**\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 */\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/**\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 */\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 ||\n (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/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\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\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\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 */\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\n\n // vertical\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 }\n\n // horizontal\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 }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Buffer} data Data codewords\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/**\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 {Buffer} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n var buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // 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 buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // 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 if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\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\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 while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\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 var remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\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/**\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 {Buffer} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n var dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n var ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n var blocksInGroup2 = totalCodewords % ecTotalBlocks\n var blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n var totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n var dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n var dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n var ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n var rs = new ReedSolomonEncoder(ecCount)\n\n var offset = 0\n var dcData = new Array(ecTotalBlocks)\n var ecData = new Array(ecTotalBlocks)\n var maxDataSize = 0\n var buffer = BufferUtil.from(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (var b = 0; b < ecTotalBlocks; b++) {\n var dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n var data = BufferUtil.alloc(totalCodewords)\n var index = 0\n var i, r\n\n // Add data codewords\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 }\n\n // Apped EC codewords\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/**\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 */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n var segments\n\n if (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)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments,\n errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n var bestVersion = Version.getBestVersionForData(segments,\n errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n var dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n var moduleCount = Utils.getSymbolSize(version)\n var modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // 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 setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\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 */\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}\n","function BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n var bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (var i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n var bufIndex = Math.floor(this.length / 8)\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}\n\nmodule.exports = BitBuffer\n","var BufferUtil = require('../utils/buffer')\n\n/**\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 = BufferUtil.alloc(size * size)\n this.reservedBit = BufferUtil.alloc(size * size)\n}\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 */\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/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\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 */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\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 */\n\nvar getSymbolSize = require('./utils').getSymbolSize\n\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 */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\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/**\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 * var 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 */\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)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n","var getSymbolSize = require('./utils').getSymbolSize\nvar FINDER_PATTERN_SIZE = 7\n\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 */\nexports.getPositions = function getPositions (version) {\n var size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n","/**\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/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nvar PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\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 */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\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 */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\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*/\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 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 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/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\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) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\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 */\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 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\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/**\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 */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n var darkCount = 0\n var modulesCount = data.data.length\n\n for (var i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n var k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\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 */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\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 */\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/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\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)\n\n // Calculate penalty\n var penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n","var BufferUtil = require('../utils/buffer')\nvar Polynomial = require('./polynomial')\nvar Buffer = require('buffer').Buffer\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\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 */\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/**\n * Encodes a chunk of data\n *\n * @param {Buffer} data Buffer containing input data\n * @return {Buffer} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n var pad = BufferUtil.alloc(this.degree)\n var paddedData = Buffer.concat([data, pad], data.length + this.degree)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n var remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // 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 var start = this.degree - remainder.length\n if (start > 0) {\n var buff = BufferUtil.alloc(this.degree)\n remainder.copy(buff, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n","var BufferUtil = require('../utils/buffer')\nvar GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Buffer} p1 Polynomial\n * @param {Buffer} p2 Polynomial\n * @return {Buffer} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n var coeff = BufferUtil.alloc(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/**\n * Calculate the remainder of polynomials division\n *\n * @param {Buffer} divident Polynomial\n * @param {Buffer} divisor Polynomial\n * @return {Buffer} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n var result = BufferUtil.from(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 }\n\n // remove all zeros from buffer head\n var offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\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 {Buffer} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n var poly = BufferUtil.from([1])\n for (var i = 0; i < degree; i++) {\n poly = exports.mul(poly, [1, GF.exp(i)])\n }\n\n return poly\n}\n","var BufferUtil = require('../utils/buffer')\n\nvar EXP_TABLE = BufferUtil.alloc(512)\nvar LOG_TABLE = BufferUtil.alloc(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;(function initTables () {\n var x = 1\n for (var i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\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 if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\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 for (i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","var Utils = require('./utils')\nvar ECCode = require('./error-correction-code')\nvar ECLevel = require('./error-correction-level')\nvar Mode = require('./mode')\nvar VersionCheck = require('./version-check')\nvar isArray = require('isarray')\n\n// Generator polynomial used to encode version information\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\n segments.forEach(function (data) {\n var reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\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 if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\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 */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\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 */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n var usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\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/**\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 */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n var seg\n\n var ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (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/**\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 */\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}\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/**\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 */\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 }\n\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 return ((data << 10) | d) ^ G15_MASK\n}\n","var Mode = require('./mode')\nvar NumericData = require('./numeric-data')\nvar AlphanumericData = require('./alphanumeric-data')\nvar ByteData = require('./byte-data')\nvar KanjiData = require('./kanji-data')\nvar Regex = require('./regex')\nvar Utils = require('./utils')\nvar dijkstra = require('dijkstrajs')\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\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 */\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/**\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 */\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\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\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 */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\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 */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n var prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\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/**\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 */\nfunction buildNodes (segs) {\n var nodes = []\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, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\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 */\nfunction buildGraph (nodes, version) {\n var table = {}\n var graph = {'start': {}}\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\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\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] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]]['end'] = 0\n }\n\n return { map: graph, 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 */\nfunction buildSingleSegment (data, modesHint) {\n var mode\n var bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\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/**\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 */\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/**\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 */\nexports.fromString = function fromString (data, version) {\n var segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n var nodes = buildNodes(segs)\n var graph = buildGraph(nodes, version)\n var path = dijkstra.find_path(graph.map, 'start', 'end')\n\n var optimizedSegs = []\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/**\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 */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\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\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\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 var remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n","var Mode = require('./mode')\n\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 */\nvar ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\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\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\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\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\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 if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n","var BufferUtil = require('../utils/buffer')\nvar Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n this.data = BufferUtil.from(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\n","var Mode = require('./mode')\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\n\n // 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 for (i = 0; i < this.data.length; i++) {\n var value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // 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(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n","'use strict';\n\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 *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // 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 var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\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;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...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 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];\n\n // 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 cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // 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 cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\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\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (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 (value, cost) {\n var item = {value: value, cost: cost};\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 () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","var Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\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\n var ctx = canvasEl.getContext('2d')\n var image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\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\n var canvasEl = exports.render(qrData, canvas, opts)\n\n var type = opts.type || 'image/png'\n var rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n","var Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n var alpha = color.a / 255\n var str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n var str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\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\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\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\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\n var bg = !opts.color.light.a\n ? ''\n : ''\n\n var path =\n ''\n\n var viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n var width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n var svgTag = '' + bg + path + '\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\n\nmodule.exports.encode = require('./encode');\nmodule.exports.decode = require('./decode');\nmodule.exports.format = require('./format');\nmodule.exports.parse = require('./parse');\n","\n'use strict';\n\n\nvar encodeCache = {};\n\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache(exclude) {\n var i, ch, cache = encodeCache[exclude];\n if (cache) { return cache; }\n\n cache = encodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch);\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n }\n }\n\n for (i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i];\n }\n\n return cache;\n}\n\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode(string, exclude, keepEscaped) {\n var i, l, code, nextCode, cache,\n result = '';\n\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude;\n exclude = encode.defaultChars;\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true;\n }\n\n cache = getEncodeCache(exclude);\n\n for (i = 0, l = string.length; i < l; i++) {\n code = string.charCodeAt(i);\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3);\n i += 2;\n continue;\n }\n }\n\n if (code < 128) {\n result += cache[code];\n continue;\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n nextCode = string.charCodeAt(i + 1);\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1]);\n i++;\n continue;\n }\n }\n result += '%EF%BF%BD';\n continue;\n }\n\n result += encodeURIComponent(string[i]);\n }\n\n return result;\n}\n\nencode.defaultChars = \";/?:@&=+$,-_.!~*'()#\";\nencode.componentChars = \"-_.!~*'()\";\n\n\nmodule.exports = encode;\n","\n'use strict';\n\n\n/* eslint-disable no-bitwise */\n\nvar decodeCache = {};\n\nfunction getDecodeCache(exclude) {\n var i, ch, cache = decodeCache[exclude];\n if (cache) { return cache; }\n\n cache = decodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n cache.push(ch);\n }\n\n for (i = 0; i < exclude.length; i++) {\n ch = exclude.charCodeAt(i);\n cache[ch] = '%' + ('0' + ch.toString(16).toUpperCase()).slice(-2);\n }\n\n return cache;\n}\n\n\n// Decode percent-encoded string.\n//\nfunction decode(string, exclude) {\n var cache;\n\n if (typeof exclude !== 'string') {\n exclude = decode.defaultChars;\n }\n\n cache = getDecodeCache(exclude);\n\n return string.replace(/(%[a-f0-9]{2})+/gi, function(seq) {\n var i, l, b1, b2, b3, b4, chr,\n result = '';\n\n for (i = 0, l = seq.length; i < l; i += 3) {\n b1 = parseInt(seq.slice(i + 1, i + 3), 16);\n\n if (b1 < 0x80) {\n result += cache[b1];\n continue;\n }\n\n if ((b1 & 0xE0) === 0xC0 && (i + 3 < l)) {\n // 110xxxxx 10xxxxxx\n b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n\n if ((b2 & 0xC0) === 0x80) {\n chr = ((b1 << 6) & 0x7C0) | (b2 & 0x3F);\n\n if (chr < 0x80) {\n result += '\\ufffd\\ufffd';\n } else {\n result += String.fromCharCode(chr);\n }\n\n i += 3;\n continue;\n }\n }\n\n if ((b1 & 0xF0) === 0xE0 && (i + 6 < l)) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n b3 = parseInt(seq.slice(i + 7, i + 9), 16);\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {\n chr = ((b1 << 12) & 0xF000) | ((b2 << 6) & 0xFC0) | (b3 & 0x3F);\n\n if (chr < 0x800 || (chr >= 0xD800 && chr <= 0xDFFF)) {\n result += '\\ufffd\\ufffd\\ufffd';\n } else {\n result += String.fromCharCode(chr);\n }\n\n i += 6;\n continue;\n }\n }\n\n if ((b1 & 0xF8) === 0xF0 && (i + 9 < l)) {\n // 111110xx 10xxxxxx 10xxxxxx 10xxxxxx\n b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n b3 = parseInt(seq.slice(i + 7, i + 9), 16);\n b4 = parseInt(seq.slice(i + 10, i + 12), 16);\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80 && (b4 & 0xC0) === 0x80) {\n chr = ((b1 << 18) & 0x1C0000) | ((b2 << 12) & 0x3F000) | ((b3 << 6) & 0xFC0) | (b4 & 0x3F);\n\n if (chr < 0x10000 || chr > 0x10FFFF) {\n result += '\\ufffd\\ufffd\\ufffd\\ufffd';\n } else {\n chr -= 0x10000;\n result += String.fromCharCode(0xD800 + (chr >> 10), 0xDC00 + (chr & 0x3FF));\n }\n\n i += 9;\n continue;\n }\n }\n\n result += '\\ufffd';\n }\n\n return result;\n });\n}\n\n\ndecode.defaultChars = ';/?:@&=+$,#';\ndecode.componentChars = '';\n\n\nmodule.exports = decode;\n","\n'use strict';\n\n\nmodule.exports = function format(url) {\n var result = '';\n\n result += url.protocol || '';\n result += url.slashes ? '//' : '';\n result += url.auth ? url.auth + '@' : '';\n\n if (url.hostname && url.hostname.indexOf(':') !== -1) {\n // ipv6 address\n result += '[' + url.hostname + ']';\n } else {\n result += url.hostname || '';\n }\n\n result += url.port ? ':' + url.port : '';\n result += url.pathname || '';\n result += url.search || '';\n result += url.hash || '';\n\n return result;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n//\n// Changes from joyent/node:\n//\n// 1. No leading slash in paths,\n// e.g. in `url.parse('http://foo?bar')` pathname is ``, not `/`\n//\n// 2. Backslashes are not replaced with slashes,\n// so `http:\\\\example.org\\` is treated like a relative path\n//\n// 3. Trailing colon is treated like a part of the path,\n// i.e. in `http://example.org:foo` pathname is `:foo`\n//\n// 4. Nothing is URL-encoded in the resulting object,\n// (in joyent/node some chars in auth and paths are encoded)\n//\n// 5. `url.parse()` does not have `parseQueryString` argument\n//\n// 6. Removed extraneous result properties: `host`, `path`, `query`, etc.,\n// which can be constructed using other parts of the url.\n//\n\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.pathname = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = [ '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t' ],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = [ '{', '}', '|', '\\\\', '^', '`' ].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = [ '\\'' ].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = [ '%', '/', '?', ';', '#' ].concat(autoEscape),\n hostEndingChars = [ '/', '?', '#' ],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n /* eslint-disable no-script-url */\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n };\n /* eslint-enable no-script-url */\n\nfunction urlParse(url, slashesDenoteHost) {\n if (url && url instanceof Url) { return url; }\n\n var u = new Url();\n u.parse(url, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, slashesDenoteHost) {\n var i, l, lowerProto, hec, slashes,\n rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n lowerProto = proto.toLowerCase();\n this.protocol = proto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (i = 0; i < hostEndingChars.length; i++) {\n hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec;\n }\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = auth;\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (i = 0; i < nonHostChars.length; i++) {\n hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec;\n }\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1) {\n hostEnd = rest.length;\n }\n\n if (rest[hostEnd - 1] === ':') { hostEnd--; }\n var host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost(host);\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) { continue; }\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n }\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n }\n }\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n rest = rest.slice(0, qm);\n }\n if (rest) { this.pathname = rest; }\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '';\n }\n\n return this;\n};\n\nUrl.prototype.parseHost = function(host) {\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) { this.hostname = host; }\n};\n\nmodule.exports = urlParse;\n","'use strict';\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Helpers\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n sources.forEach(function (source) {\n if (!source) { return; }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n\n return obj;\n}\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\nfunction isString(obj) { return _class(obj) === '[object String]'; }\nfunction isObject(obj) { return _class(obj) === '[object Object]'; }\nfunction isRegExp(obj) { return _class(obj) === '[object RegExp]'; }\nfunction isFunction(obj) { return _class(obj) === '[object Function]'; }\n\n\nfunction escapeRE(str) { return str.replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&'); }\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nvar defaultOptions = {\n fuzzyLink: true,\n fuzzyEmail: true,\n fuzzyIP: false\n};\n\n\nfunction isOptionsObj(obj) {\n return Object.keys(obj || {}).reduce(function (acc, k) {\n return acc || defaultOptions.hasOwnProperty(k);\n }, false);\n}\n\n\nvar defaultSchemas = {\n 'http:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.http = new RegExp(\n '^\\\\/\\\\/' + self.re.src_auth + self.re.src_host_port_strict + self.re.src_path, 'i'\n );\n }\n if (self.re.http.test(tail)) {\n return tail.match(self.re.http)[0].length;\n }\n return 0;\n }\n },\n 'https:': 'http:',\n 'ftp:': 'http:',\n '//': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.no_http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.no_http = new RegExp(\n '^' +\n self.re.src_auth +\n // Don't allow single-level domains, because of false positives like '//test'\n // with code comments\n '(?:localhost|(?:(?:' + self.re.src_domain + ')\\\\.)+' + self.re.src_domain_root + ')' +\n self.re.src_port +\n self.re.src_host_terminator +\n self.re.src_path,\n\n 'i'\n );\n }\n\n if (self.re.no_http.test(tail)) {\n // should not be `://` & `///`, that protects from errors in protocol name\n if (pos >= 3 && text[pos - 3] === ':') { return 0; }\n if (pos >= 3 && text[pos - 3] === '/') { return 0; }\n return tail.match(self.re.no_http)[0].length;\n }\n return 0;\n }\n },\n 'mailto:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.mailto) {\n self.re.mailto = new RegExp(\n '^' + self.re.src_email_name + '@' + self.re.src_host_strict, 'i'\n );\n }\n if (self.re.mailto.test(tail)) {\n return tail.match(self.re.mailto)[0].length;\n }\n return 0;\n }\n }\n};\n\n/*eslint-disable max-len*/\n\n// RE pattern for 2-character tlds (autogenerated by ./support/tlds_2char_gen.js)\nvar tlds_2ch_src_re = 'a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]';\n\n// DON'T try to make PRs with changes. Extend TLDs with LinkifyIt.tlds() instead\nvar tlds_default = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'.split('|');\n\n/*eslint-enable max-len*/\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction resetScanCache(self) {\n self.__index__ = -1;\n self.__text_cache__ = '';\n}\n\nfunction createValidator(re) {\n return function (text, pos) {\n var tail = text.slice(pos);\n\n if (re.test(tail)) {\n return tail.match(re)[0].length;\n }\n return 0;\n };\n}\n\nfunction createNormalizer() {\n return function (match, self) {\n self.normalize(match);\n };\n}\n\n// Schemas compiler. Build regexps.\n//\nfunction compile(self) {\n\n // Load & clone RE patterns.\n var re = self.re = require('./lib/re')(self.__opts__);\n\n // Define dynamic patterns\n var tlds = self.__tlds__.slice();\n\n self.onCompile();\n\n if (!self.__tlds_replaced__) {\n tlds.push(tlds_2ch_src_re);\n }\n tlds.push(re.src_xn);\n\n re.src_tlds = tlds.join('|');\n\n function untpl(tpl) { return tpl.replace('%TLDS%', re.src_tlds); }\n\n re.email_fuzzy = RegExp(untpl(re.tpl_email_fuzzy), 'i');\n re.link_fuzzy = RegExp(untpl(re.tpl_link_fuzzy), 'i');\n re.link_no_ip_fuzzy = RegExp(untpl(re.tpl_link_no_ip_fuzzy), 'i');\n re.host_fuzzy_test = RegExp(untpl(re.tpl_host_fuzzy_test), 'i');\n\n //\n // Compile each schema\n //\n\n var aliases = [];\n\n self.__compiled__ = {}; // Reset compiled data\n\n function schemaError(name, val) {\n throw new Error('(LinkifyIt) Invalid schema \"' + name + '\": ' + val);\n }\n\n Object.keys(self.__schemas__).forEach(function (name) {\n var val = self.__schemas__[name];\n\n // skip disabled methods\n if (val === null) { return; }\n\n var compiled = { validate: null, link: null };\n\n self.__compiled__[name] = compiled;\n\n if (isObject(val)) {\n if (isRegExp(val.validate)) {\n compiled.validate = createValidator(val.validate);\n } else if (isFunction(val.validate)) {\n compiled.validate = val.validate;\n } else {\n schemaError(name, val);\n }\n\n if (isFunction(val.normalize)) {\n compiled.normalize = val.normalize;\n } else if (!val.normalize) {\n compiled.normalize = createNormalizer();\n } else {\n schemaError(name, val);\n }\n\n return;\n }\n\n if (isString(val)) {\n aliases.push(name);\n return;\n }\n\n schemaError(name, val);\n });\n\n //\n // Compile postponed aliases\n //\n\n aliases.forEach(function (alias) {\n if (!self.__compiled__[self.__schemas__[alias]]) {\n // Silently fail on missed schemas to avoid errons on disable.\n // schemaError(alias, self.__schemas__[alias]);\n return;\n }\n\n self.__compiled__[alias].validate =\n self.__compiled__[self.__schemas__[alias]].validate;\n self.__compiled__[alias].normalize =\n self.__compiled__[self.__schemas__[alias]].normalize;\n });\n\n //\n // Fake record for guessed links\n //\n self.__compiled__[''] = { validate: null, normalize: createNormalizer() };\n\n //\n // Build schema condition\n //\n var slist = Object.keys(self.__compiled__)\n .filter(function (name) {\n // Filter disabled & fake schemas\n return name.length > 0 && self.__compiled__[name];\n })\n .map(escapeRE)\n .join('|');\n // (?!_) cause 1.5x slowdown\n self.re.schema_test = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'i');\n self.re.schema_search = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'ig');\n\n self.re.pretest = RegExp(\n '(' + self.re.schema_test.source + ')|(' + self.re.host_fuzzy_test.source + ')|@',\n 'i'\n );\n\n //\n // Cleanup\n //\n\n resetScanCache(self);\n}\n\n/**\n * class Match\n *\n * Match result. Single element of array, returned by [[LinkifyIt#match]]\n **/\nfunction Match(self, shift) {\n var start = self.__index__,\n end = self.__last_index__,\n text = self.__text_cache__.slice(start, end);\n\n /**\n * Match#schema -> String\n *\n * Prefix (protocol) for matched string.\n **/\n this.schema = self.__schema__.toLowerCase();\n /**\n * Match#index -> Number\n *\n * First position of matched string.\n **/\n this.index = start + shift;\n /**\n * Match#lastIndex -> Number\n *\n * Next position after matched string.\n **/\n this.lastIndex = end + shift;\n /**\n * Match#raw -> String\n *\n * Matched string.\n **/\n this.raw = text;\n /**\n * Match#text -> String\n *\n * Notmalized text of matched string.\n **/\n this.text = text;\n /**\n * Match#url -> String\n *\n * Normalized url of matched string.\n **/\n this.url = text;\n}\n\nfunction createMatch(self, shift) {\n var match = new Match(self, shift);\n\n self.__compiled__[match.schema].normalize(match, self);\n\n return match;\n}\n\n\n/**\n * class LinkifyIt\n **/\n\n/**\n * new LinkifyIt(schemas, options)\n * - schemas (Object): Optional. Additional schemas to validate (prefix/validator)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Creates new linkifier instance with optional additional schemas.\n * Can be called without `new` keyword for convenience.\n *\n * By default understands:\n *\n * - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links\n * - \"fuzzy\" links and emails (example.com, foo@bar.com).\n *\n * `schemas` is an object, where each key/value describes protocol/rule:\n *\n * - __key__ - link prefix (usually, protocol name with `:` at the end, `skype:`\n * for example). `linkify-it` makes shure that prefix is not preceeded with\n * alphanumeric char and symbols. Only whitespaces and punctuation allowed.\n * - __value__ - rule to check tail after link prefix\n * - _String_ - just alias to existing rule\n * - _Object_\n * - _validate_ - validator function (should return matched length on success),\n * or `RegExp`.\n * - _normalize_ - optional function to normalize text & url of matched result\n * (for example, for @twitter mentions).\n *\n * `options`:\n *\n * - __fuzzyLink__ - recognige URL-s without `http(s):` prefix. Default `true`.\n * - __fuzzyIP__ - allow IPs in fuzzy links above. Can conflict with some texts\n * like version numbers. Default `false`.\n * - __fuzzyEmail__ - recognize emails without `mailto:` prefix.\n *\n **/\nfunction LinkifyIt(schemas, options) {\n if (!(this instanceof LinkifyIt)) {\n return new LinkifyIt(schemas, options);\n }\n\n if (!options) {\n if (isOptionsObj(schemas)) {\n options = schemas;\n schemas = {};\n }\n }\n\n this.__opts__ = assign({}, defaultOptions, options);\n\n // Cache last tested result. Used to skip repeating steps on next `match` call.\n this.__index__ = -1;\n this.__last_index__ = -1; // Next scan position\n this.__schema__ = '';\n this.__text_cache__ = '';\n\n this.__schemas__ = assign({}, defaultSchemas, schemas);\n this.__compiled__ = {};\n\n this.__tlds__ = tlds_default;\n this.__tlds_replaced__ = false;\n\n this.re = {};\n\n compile(this);\n}\n\n\n/** chainable\n * LinkifyIt#add(schema, definition)\n * - schema (String): rule name (fixed pattern prefix)\n * - definition (String|RegExp|Object): schema definition\n *\n * Add new rule definition. See constructor description for details.\n **/\nLinkifyIt.prototype.add = function add(schema, definition) {\n this.__schemas__[schema] = definition;\n compile(this);\n return this;\n};\n\n\n/** chainable\n * LinkifyIt#set(options)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Set recognition options for links without schema.\n **/\nLinkifyIt.prototype.set = function set(options) {\n this.__opts__ = assign(this.__opts__, options);\n return this;\n};\n\n\n/**\n * LinkifyIt#test(text) -> Boolean\n *\n * Searches linkifiable pattern and returns `true` on success or `false` on fail.\n **/\nLinkifyIt.prototype.test = function test(text) {\n // Reset scan cache\n this.__text_cache__ = text;\n this.__index__ = -1;\n\n if (!text.length) { return false; }\n\n var m, ml, me, len, shift, next, re, tld_pos, at_pos;\n\n // try to scan for link with schema - that's the most simple rule\n if (this.re.schema_test.test(text)) {\n re = this.re.schema_search;\n re.lastIndex = 0;\n while ((m = re.exec(text)) !== null) {\n len = this.testSchemaAt(text, m[2], re.lastIndex);\n if (len) {\n this.__schema__ = m[2];\n this.__index__ = m.index + m[1].length;\n this.__last_index__ = m.index + m[0].length + len;\n break;\n }\n }\n }\n\n if (this.__opts__.fuzzyLink && this.__compiled__['http:']) {\n // guess schemaless links\n tld_pos = text.search(this.re.host_fuzzy_test);\n if (tld_pos >= 0) {\n // if tld is located after found link - no need to check fuzzy pattern\n if (this.__index__ < 0 || tld_pos < this.__index__) {\n if ((ml = text.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) !== null) {\n\n shift = ml.index + ml[1].length;\n\n if (this.__index__ < 0 || shift < this.__index__) {\n this.__schema__ = '';\n this.__index__ = shift;\n this.__last_index__ = ml.index + ml[0].length;\n }\n }\n }\n }\n }\n\n if (this.__opts__.fuzzyEmail && this.__compiled__['mailto:']) {\n // guess schemaless emails\n at_pos = text.indexOf('@');\n if (at_pos >= 0) {\n // We can't skip this check, because this cases are possible:\n // 192.168.1.1@gmail.com, my.in@example.com\n if ((me = text.match(this.re.email_fuzzy)) !== null) {\n\n shift = me.index + me[1].length;\n next = me.index + me[0].length;\n\n if (this.__index__ < 0 || shift < this.__index__ ||\n (shift === this.__index__ && next > this.__last_index__)) {\n this.__schema__ = 'mailto:';\n this.__index__ = shift;\n this.__last_index__ = next;\n }\n }\n }\n }\n\n return this.__index__ >= 0;\n};\n\n\n/**\n * LinkifyIt#pretest(text) -> Boolean\n *\n * Very quick check, that can give false positives. Returns true if link MAY BE\n * can exists. Can be used for speed optimization, when you need to check that\n * link NOT exists.\n **/\nLinkifyIt.prototype.pretest = function pretest(text) {\n return this.re.pretest.test(text);\n};\n\n\n/**\n * LinkifyIt#testSchemaAt(text, name, position) -> Number\n * - text (String): text to scan\n * - name (String): rule (schema) name\n * - position (Number): text offset to check from\n *\n * Similar to [[LinkifyIt#test]] but checks only specific protocol tail exactly\n * at given position. Returns length of found pattern (0 on fail).\n **/\nLinkifyIt.prototype.testSchemaAt = function testSchemaAt(text, schema, pos) {\n // If not supported schema check requested - terminate\n if (!this.__compiled__[schema.toLowerCase()]) {\n return 0;\n }\n return this.__compiled__[schema.toLowerCase()].validate(text, pos, this);\n};\n\n\n/**\n * LinkifyIt#match(text) -> Array|null\n *\n * Returns array of found link descriptions or `null` on fail. We strongly\n * recommend to use [[LinkifyIt#test]] first, for best speed.\n *\n * ##### Result match description\n *\n * - __schema__ - link schema, can be empty for fuzzy links, or `//` for\n * protocol-neutral links.\n * - __index__ - offset of matched text\n * - __lastIndex__ - index of next char after mathch end\n * - __raw__ - matched text\n * - __text__ - normalized text\n * - __url__ - link, generated from matched text\n **/\nLinkifyIt.prototype.match = function match(text) {\n var shift = 0, result = [];\n\n // Try to take previous element from cache, if .test() called before\n if (this.__index__ >= 0 && this.__text_cache__ === text) {\n result.push(createMatch(this, shift));\n shift = this.__last_index__;\n }\n\n // Cut head if cache was used\n var tail = shift ? text.slice(shift) : text;\n\n // Scan string until end reached\n while (this.test(tail)) {\n result.push(createMatch(this, shift));\n\n tail = tail.slice(this.__last_index__);\n shift += this.__last_index__;\n }\n\n if (result.length) {\n return result;\n }\n\n return null;\n};\n\n\n/** chainable\n * LinkifyIt#tlds(list [, keepOld]) -> this\n * - list (Array): list of tlds\n * - keepOld (Boolean): merge with current list if `true` (`false` by default)\n *\n * Load (or merge) new tlds list. Those are user for fuzzy links (without prefix)\n * to avoid false positives. By default this algorythm used:\n *\n * - hostname with any 2-letter root zones are ok.\n * - biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф\n * are ok.\n * - encoded (`xn--...`) root zones are ok.\n *\n * If list is replaced, then exact match for 2-chars root zones will be checked.\n **/\nLinkifyIt.prototype.tlds = function tlds(list, keepOld) {\n list = Array.isArray(list) ? list : [ list ];\n\n if (!keepOld) {\n this.__tlds__ = list.slice();\n this.__tlds_replaced__ = true;\n compile(this);\n return this;\n }\n\n this.__tlds__ = this.__tlds__.concat(list)\n .sort()\n .filter(function (el, idx, arr) {\n return el !== arr[idx - 1];\n })\n .reverse();\n\n compile(this);\n return this;\n};\n\n/**\n * LinkifyIt#normalize(match)\n *\n * Default normalizer (if schema does not define it's own).\n **/\nLinkifyIt.prototype.normalize = function normalize(match) {\n\n // Do minimal possible changes by default. Need to collect feedback prior\n // to move forward https://github.com/markdown-it/linkify-it/issues/1\n\n if (!match.schema) { match.url = 'http://' + match.url; }\n\n if (match.schema === 'mailto:' && !/^mailto:/i.test(match.url)) {\n match.url = 'mailto:' + match.url;\n }\n};\n\n\n/**\n * LinkifyIt#onCompile()\n *\n * Override to modify basic RegExp-s.\n **/\nLinkifyIt.prototype.onCompile = function onCompile() {\n};\n\n\nmodule.exports = LinkifyIt;\n","'use strict';\n\n\nmodule.exports = function (opts) {\n var re = {};\n\n // Use direct extract instead of `regenerate` to reduse browserified size\n re.src_Any = require('uc.micro/properties/Any/regex').source;\n re.src_Cc = require('uc.micro/categories/Cc/regex').source;\n re.src_Z = require('uc.micro/categories/Z/regex').source;\n re.src_P = require('uc.micro/categories/P/regex').source;\n\n // \\p{\\Z\\P\\Cc\\CF} (white spaces + control + format + punctuation)\n re.src_ZPCc = [ re.src_Z, re.src_P, re.src_Cc ].join('|');\n\n // \\p{\\Z\\Cc} (white spaces + control)\n re.src_ZCc = [ re.src_Z, re.src_Cc ].join('|');\n\n // Experimental. List of chars, completely prohibited in links\n // because can separate it from other part of text\n var text_separators = '[><\\uff5c]';\n\n // All possible word characters (everything without punctuation, spaces & controls)\n // Defined via punctuation & spaces to save space\n // Should be something like \\p{\\L\\N\\S\\M} (\\w but without `_`)\n re.src_pseudo_letter = '(?:(?!' + text_separators + '|' + re.src_ZPCc + ')' + re.src_Any + ')';\n // The same as abothe but without [0-9]\n // var src_pseudo_letter_non_d = '(?:(?![0-9]|' + src_ZPCc + ')' + src_Any + ')';\n\n ////////////////////////////////////////////////////////////////////////////////\n\n re.src_ip4 =\n\n '(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)';\n\n // Prohibit any of \"@/[]()\" in user/pass to avoid wrong domain fetch.\n re.src_auth = '(?:(?:(?!' + re.src_ZCc + '|[@/\\\\[\\\\]()]).)+@)?';\n\n re.src_port =\n\n '(?::(?:6(?:[0-4]\\\\d{3}|5(?:[0-4]\\\\d{2}|5(?:[0-2]\\\\d|3[0-5])))|[1-5]?\\\\d{1,4}))?';\n\n re.src_host_terminator =\n\n '(?=$|' + text_separators + '|' + re.src_ZPCc + ')(?!-|_|:\\\\d|\\\\.-|\\\\.(?!$|' + re.src_ZPCc + '))';\n\n re.src_path =\n\n '(?:' +\n '[/?#]' +\n '(?:' +\n '(?!' + re.src_ZCc + '|' + text_separators + '|[()[\\\\]{}.,\"\\'?!\\\\-]).|' +\n '\\\\[(?:(?!' + re.src_ZCc + '|\\\\]).)*\\\\]|' +\n '\\\\((?:(?!' + re.src_ZCc + '|[)]).)*\\\\)|' +\n '\\\\{(?:(?!' + re.src_ZCc + '|[}]).)*\\\\}|' +\n '\\\\\"(?:(?!' + re.src_ZCc + '|[\"]).)+\\\\\"|' +\n \"\\\\'(?:(?!\" + re.src_ZCc + \"|[']).)+\\\\'|\" +\n \"\\\\'(?=\" + re.src_pseudo_letter + '|[-]).|' + // allow `I'm_king` if no pair found\n '\\\\.{2,4}[a-zA-Z0-9%/]|' + // github has ... in commit range links,\n // google has .... in links (issue #66)\n // Restrict to\n // - english\n // - percent-encoded\n // - parts of file path\n // until more examples found.\n '\\\\.(?!' + re.src_ZCc + '|[.]).|' +\n (opts && opts['---'] ?\n '\\\\-(?!--(?:[^-]|$))(?:-*)|' // `---` => long dash, terminate\n :\n '\\\\-+|'\n ) +\n '\\\\,(?!' + re.src_ZCc + ').|' + // allow `,,,` in paths\n '\\\\!(?!' + re.src_ZCc + '|[!]).|' +\n '\\\\?(?!' + re.src_ZCc + '|[?]).' +\n ')+' +\n '|\\\\/' +\n ')?';\n\n // Allow anything in markdown spec, forbid quote (\") at the first position\n // because emails enclosed in quotes are far more common\n re.src_email_name =\n\n '[\\\\-;:&=\\\\+\\\\$,\\\\.a-zA-Z0-9_][\\\\-;:&=\\\\+\\\\$,\\\\\"\\\\.a-zA-Z0-9_]*';\n\n re.src_xn =\n\n 'xn--[a-z0-9\\\\-]{1,59}';\n\n // More to read about domain names\n // http://serverfault.com/questions/638260/\n\n re.src_domain_root =\n\n // Allow letters & digits (http://test1)\n '(?:' +\n re.src_xn +\n '|' +\n re.src_pseudo_letter + '{1,63}' +\n ')';\n\n re.src_domain =\n\n '(?:' +\n re.src_xn +\n '|' +\n '(?:' + re.src_pseudo_letter + ')' +\n '|' +\n '(?:' + re.src_pseudo_letter + '(?:-|' + re.src_pseudo_letter + '){0,61}' + re.src_pseudo_letter + ')' +\n ')';\n\n re.src_host =\n\n '(?:' +\n // Don't need IP check, because digits are already allowed in normal domain names\n // src_ip4 +\n // '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)*' + re.src_domain/*_root*/ + ')' +\n ')';\n\n re.tpl_host_fuzzy =\n\n '(?:' +\n re.src_ip4 +\n '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))' +\n ')';\n\n re.tpl_host_no_ip_fuzzy =\n\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))';\n\n re.src_host_strict =\n\n re.src_host + re.src_host_terminator;\n\n re.tpl_host_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_host_terminator;\n\n re.src_host_port_strict =\n\n re.src_host + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_no_ip_fuzzy_strict =\n\n re.tpl_host_no_ip_fuzzy + re.src_port + re.src_host_terminator;\n\n\n ////////////////////////////////////////////////////////////////////////////////\n // Main rules\n\n // Rude test fuzzy links by host, for quick deny\n re.tpl_host_fuzzy_test =\n\n 'localhost|www\\\\.|\\\\.\\\\d{1,3}\\\\.|(?:\\\\.(?:%TLDS%)(?:' + re.src_ZPCc + '|>|$))';\n\n re.tpl_email_fuzzy =\n\n '(^|' + text_separators + '|\"|\\\\(|' + re.src_ZCc + ')' +\n '(' + re.src_email_name + '@' + re.tpl_host_fuzzy_strict + ')';\n\n re.tpl_link_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_fuzzy_strict + re.src_path + ')';\n\n re.tpl_link_no_ip_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_no_ip_fuzzy_strict + re.src_path + ')';\n\n return re;\n};\n","module.exports=/[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/","module.exports=/[\\0-\\x1F\\x7F-\\x9F]/","module.exports=/[ \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/","module.exports=/[!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4E\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD803[\\uDF55-\\uDF59]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDC4B-\\uDC4F\\uDC5B\\uDC5D\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDE60-\\uDE6C\\uDF3C-\\uDF3E]|\\uD806[\\uDC3B\\uDE3F-\\uDE46\\uDE9A-\\uDE9C\\uDE9E-\\uDEA2]|\\uD807[\\uDC41-\\uDC45\\uDC70\\uDC71\\uDEF7\\uDEF8]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD81B[\\uDE97-\\uDE9A]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]|\\uD83A[\\uDD5E\\uDD5F]/","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport endOfDay from \"../endOfDay/index.js\";\nimport endOfMonth from \"../endOfMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * var result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\n\nexport default function isLastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return endOfDay(date).getTime() === endOfMonth(date).getTime();\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarMonths from \"../differenceInCalendarMonths/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport isLastDayOfMonth from \"../isLastDayOfMonth/index.js\";\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates using trunc as a default rounding method.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\n\nexport default function differenceInMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));\n var result; // Check for the difference of less than month\n\n if (difference < 1) {\n result = 0;\n } else {\n if (dateLeft.getMonth() === 1 && dateLeft.getDate() > 27) {\n // This will check if the date is end of Feb and assign a higher end of month date\n // to compare it with Jan\n dateLeft.setDate(30);\n }\n\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference); // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign; // Check for cases of one full calendar month\n\n if (isLastDayOfMonth(toDate(dirtyDateLeft)) && difference === 1 && compareAsc(dirtyDateLeft, dateRight) === 1) {\n isLastMonthNotFull = false;\n }\n\n result = sign * (difference - Number(isLastMonthNotFull));\n } // Prevent negative zero\n\n\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dateLeft, dateRight) {\n requiredArgs(2, arguments);\n return toDate(dateLeft).getTime() - toDate(dateRight).getTime();\n}","var roundingMap = {\n ceil: Math.ceil,\n round: Math.round,\n floor: Math.floor,\n trunc: function (value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n } // Math.trunc is not supported by IE\n\n};\nvar defaultRoundingMethod = 'trunc';\nexport function getRoundingMethod(method) {\n return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];\n}","import differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challange you to try to remove it!\n\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function (dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import assign from \"../assign/index.js\";\nexport default function cloneObject(dirtyObject) {\n return assign({}, dirtyObject);\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import compareAsc from \"../compareAsc/index.js\";\nimport differenceInMonths from \"../differenceInMonths/index.js\";\nimport differenceInSeconds from \"../differenceInSeconds/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_TWO_MONTHS = 86400;\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWords ` to `formatDistance`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWords(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 11, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n *\n * // v2.0.0 onward\n *\n * formatDistance(\n * new Date(1986, 3, 4, 11, 32, 0),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * const result = formatDistance(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistance(dirtyDate, dirtyBaseDate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n requiredArgs(2, arguments);\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var seconds = differenceInSeconds(dateRight, dateLeft);\n var offsetInSeconds = (getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft)) / 1000;\n var minutes = Math.round((seconds - offsetInSeconds) / 60);\n var months; // 0 up to 2 mins\n\n if (minutes < 2) {\n if (options.includeSeconds) {\n if (seconds < 5) {\n return locale.formatDistance('lessThanXSeconds', 5, localizeOptions);\n } else if (seconds < 10) {\n return locale.formatDistance('lessThanXSeconds', 10, localizeOptions);\n } else if (seconds < 20) {\n return locale.formatDistance('lessThanXSeconds', 20, localizeOptions);\n } else if (seconds < 40) {\n return locale.formatDistance('halfAMinute', null, localizeOptions);\n } else if (seconds < 60) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', 1, localizeOptions);\n }\n } else {\n if (minutes === 0) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', minutes, localizeOptions);\n }\n } // 2 mins up to 0.75 hrs\n\n } else if (minutes < 45) {\n return locale.formatDistance('xMinutes', minutes, localizeOptions); // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return locale.formatDistance('aboutXHours', 1, localizeOptions); // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n var hours = Math.round(minutes / 60);\n return locale.formatDistance('aboutXHours', hours, localizeOptions); // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return locale.formatDistance('xDays', 1, localizeOptions); // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n var days = Math.round(minutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n months = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('aboutXMonths', months, localizeOptions);\n }\n\n months = differenceInMonths(dateRight, dateLeft); // 2 months up to 12 months\n\n if (months < 12) {\n var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('xMonths', nearestMonth, localizeOptions); // 1 year up to max Date\n } else {\n var monthsSinceStartOfYear = months % 12;\n var years = Math.floor(months / 12); // N years up to 1 years 3 months\n\n if (monthsSinceStartOfYear < 3) {\n return locale.formatDistance('aboutXYears', years, localizeOptions); // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return locale.formatDistance('overXYears', years, localizeOptions); // N years 9 months up to N year 12 months\n } else {\n return locale.formatDistance('almostXYears', years + 1, localizeOptions);\n }\n }\n}"],"sourceRoot":""}