diff --git a/.gitignore b/.gitignore index 805701da..4e71fb15 100644 --- a/.gitignore +++ b/.gitignore @@ -52,4 +52,5 @@ fastlane/report.xml fastlane/Preview.html fastlane/screenshots -third-party/ \ No newline at end of file +third-party/ +container/ diff --git a/README.md b/README.md index 474100d6..d2f34b96 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ # ernnavigation-api-impl-native Native implementation for the [`ernnavigation-api`](https://github.com/electrode-io/ern-navigation-api#electrode-native-navigation-api) - +Please run `yarn createiOSContainer` to get the iOS Container, and open `/ios/moviesreloadedMiniApp/ErnRunner.xcodeproj` from Xcode to try Electrode Native Navigation on iOS side. diff --git a/ios/container/.gitignore b/ios/container/.gitignore deleted file mode 100644 index 8d434a10..00000000 --- a/ios/container/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -## Build generated -build/ -DerivedData/ - -## Various settings -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -xcuserdata/ - -## Other -*.moved-aside -*.xccheckout -*.xcscmblueprint \ No newline at end of file diff --git a/ios/container/Config/ElectrodeContainer-Debug.xcconfig b/ios/container/Config/ElectrodeContainer-Debug.xcconfig deleted file mode 100644 index fb384489..00000000 --- a/ios/container/Config/ElectrodeContainer-Debug.xcconfig +++ /dev/null @@ -1,29 +0,0 @@ -// -// ElectrodeContainer-Debug.xcconfig -// -// Generated by BuildSettingExtractor on 6/7/18 -// https://github.com/dempseyatgithub/BuildSettingExtractor -// - -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES -CLANG_ENABLE_MODULES = YES -CLANG_WARN_DOCUMENTATION_COMMENTS = NO -CODE_SIGN_IDENTITY = -DEFINES_MODULE = YES -DYLIB_COMPATIBILITY_VERSION = 1 -DYLIB_CURRENT_VERSION = 1 -DYLIB_INSTALL_NAME_BASE = @rpath -FRAMEWORK_SEARCH_PATHS = $(inherited) $(SRCROOT)/ElectrodeContainer/Frameworks -HEADER_SEARCH_PATHS = -INFOPLIST_FILE = ElectrodeContainer/Info.plist -INSTALL_PATH = $(LOCAL_LIBRARY_DIR)/Frameworks -IPHONEOS_DEPLOYMENT_TARGET = 9.0 -LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks -OTHER_LDFLAGS = -ObjC -lc++ -lz -PRODUCT_BUNDLE_IDENTIFIER = com.walmartlabs.ern.ElectrodeContainer -PRODUCT_NAME = $(TARGET_NAME) -SKIP_INSTALL = YES -SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG -SWIFT_OPTIMIZATION_LEVEL = -Onone -SWIFT_VERSION = 4.0 \ No newline at end of file diff --git a/ios/container/Config/ElectrodeContainer-QADeployment.xcconfig b/ios/container/Config/ElectrodeContainer-QADeployment.xcconfig deleted file mode 100644 index f3b7929c..00000000 --- a/ios/container/Config/ElectrodeContainer-QADeployment.xcconfig +++ /dev/null @@ -1,32 +0,0 @@ -// -// ElectrodeContainer-QADeployment.xcconfig -// -// Generated by BuildSettingExtractor on 6/7/18 -// https://github.com/dempseyatgithub/BuildSettingExtractor -// - -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES -CLANG_ENABLE_MODULES = YES -CLANG_WARN_DOCUMENTATION_COMMENTS = NO -CODE_SIGN_IDENTITY = -DEFINES_MODULE = YES -DYLIB_COMPATIBILITY_VERSION = 1 -DYLIB_CURRENT_VERSION = 1 -DYLIB_INSTALL_NAME_BASE = @rpath -ENABLE_ON_DEMAND_RESOURCES = NO -ENABLE_TESTABILITY = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) $(SRCROOT)/ElectrodeContainer/Frameworks -HEADER_SEARCH_PATHS = -INFOPLIST_FILE = ElectrodeContainer/Info.plist -INSTALL_PATH = $(LOCAL_LIBRARY_DIR)/Frameworks -LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks -ONLY_ACTIVE_ARCH = NO -OTHER_LDFLAGS = -ObjC -lc++ -lz -PRODUCT_BUNDLE_IDENTIFIER = com.walmartlabs.ern.ElectrodeContainer -PRODUCT_NAME = $(TARGET_NAME) -SKIP_INSTALL = YES -STRIP_STYLE = debugging -SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG -SWIFT_OPTIMIZATION_LEVEL = -Owholemodule -SWIFT_VERSION = 4.0 \ No newline at end of file diff --git a/ios/container/Config/ElectrodeContainer-Release.xcconfig b/ios/container/Config/ElectrodeContainer-Release.xcconfig deleted file mode 100644 index 07fd8667..00000000 --- a/ios/container/Config/ElectrodeContainer-Release.xcconfig +++ /dev/null @@ -1,24 +0,0 @@ -// -// ElectrodeContainer-Release.xcconfig -// -// Generated by BuildSettingExtractor on 6/7/18 -// https://github.com/dempseyatgithub/BuildSettingExtractor -// - -CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES -CODE_SIGN_IDENTITY = -DEFINES_MODULE = YES -DYLIB_COMPATIBILITY_VERSION = 1 -DYLIB_CURRENT_VERSION = 1 -DYLIB_INSTALL_NAME_BASE = @rpath -FRAMEWORK_SEARCH_PATHS = $(inherited) $(SRCROOT)/ElectrodeContainer/Frameworks -HEADER_SEARCH_PATHS = -INFOPLIST_FILE = ElectrodeContainer/Info.plist -INSTALL_PATH = $(LOCAL_LIBRARY_DIR)/Frameworks -IPHONEOS_DEPLOYMENT_TARGET = 9.0 -LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks -OTHER_LDFLAGS = -ObjC -lc++ -lz -PRODUCT_BUNDLE_IDENTIFIER = com.walmartlabs.ern.ElectrodeContainer -PRODUCT_NAME = $(TARGET_NAME) -SKIP_INSTALL = YES -SWIFT_VERSION = 4.0 \ No newline at end of file diff --git a/ios/container/Config/ElectrodeContainerTests-Debug.xcconfig b/ios/container/Config/ElectrodeContainerTests-Debug.xcconfig deleted file mode 100644 index 07eb22bd..00000000 --- a/ios/container/Config/ElectrodeContainerTests-Debug.xcconfig +++ /dev/null @@ -1,13 +0,0 @@ -// -// ElectrodeContainerTests-Debug.xcconfig -// -// Generated by BuildSettingExtractor on 6/7/18 -// https://github.com/dempseyatgithub/BuildSettingExtractor -// - -HEADER_SEARCH_PATHS = $(inherited) $(SRCROOT)/ElectrodeContainer/Libraries/ReactNative/** -INFOPLIST_FILE = ElectrodeContainerTests/Info.plist -LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks -PRODUCT_BUNDLE_IDENTIFIER = com.walmartlabs.ern.ElectrodeContainerTests -PRODUCT_NAME = $(TARGET_NAME) -TEST_HOST = \ No newline at end of file diff --git a/ios/container/Config/ElectrodeContainerTests-QADeployment.xcconfig b/ios/container/Config/ElectrodeContainerTests-QADeployment.xcconfig deleted file mode 100644 index a8f9a6e5..00000000 --- a/ios/container/Config/ElectrodeContainerTests-QADeployment.xcconfig +++ /dev/null @@ -1,14 +0,0 @@ -// -// ElectrodeContainerTests-QADeployment.xcconfig -// -// Generated by BuildSettingExtractor on 6/7/18 -// https://github.com/dempseyatgithub/BuildSettingExtractor -// - -HEADER_SEARCH_PATHS = $(inherited) $(SRCROOT)/ElectrodeContainer/Libraries/ReactNative/** -FRAMEWORK_SEARCH_PATHS = $(inherited) -INFOPLIST_FILE = ElectrodeContainerTests/Info.plist -LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks -PRODUCT_BUNDLE_IDENTIFIER = com.walmartlabs.ern.ElectrodeContainerTests -PRODUCT_NAME = $(TARGET_NAME) -TEST_HOST = \ No newline at end of file diff --git a/ios/container/Config/ElectrodeContainerTests-Release.xcconfig b/ios/container/Config/ElectrodeContainerTests-Release.xcconfig deleted file mode 100644 index fcdc7fc3..00000000 --- a/ios/container/Config/ElectrodeContainerTests-Release.xcconfig +++ /dev/null @@ -1,15 +0,0 @@ -// -// ElectrodeContainerTests-Release.xcconfig -// -// Generated by BuildSettingExtractor on 6/7/18 -// https://github.com/dempseyatgithub/BuildSettingExtractor -// - -DEVELOPMENT_TEAM = DXZ5VF8836 -FRAMEWORK_SEARCH_PATHS = $(inherited) -HEADER_SEARCH_PATHS = $(inherited) $(SRCROOT)/ElectrodeContainer/Libraries/ReactNative/** -INFOPLIST_FILE = ElectrodeContainerTests/Info.plist -LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks -PRODUCT_BUNDLE_IDENTIFIER = com.walmartlabs.ern.ElectrodeContainerTests -PRODUCT_NAME = $(TARGET_NAME) -TEST_HOST = \ No newline at end of file diff --git a/ios/container/Config/Project-Debug.xcconfig b/ios/container/Config/Project-Debug.xcconfig deleted file mode 100644 index b5faba51..00000000 --- a/ios/container/Config/Project-Debug.xcconfig +++ /dev/null @@ -1,55 +0,0 @@ -// -// Project-Debug.xcconfig -// -// Generated by BuildSettingExtractor on 6/7/18 -// https://github.com/dempseyatgithub/BuildSettingExtractor -// - -ALWAYS_SEARCH_USER_PATHS = NO -CLANG_ANALYZER_NONNULL = YES -CLANG_CXX_LANGUAGE_STANDARD = gnu++0x -CLANG_CXX_LIBRARY = libc++ -CLANG_ENABLE_MODULES = YES -CLANG_ENABLE_OBJC_ARC = YES -CLANG_WARN__DUPLICATE_METHOD_MATCH = YES -CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES -CLANG_WARN_BOOL_CONVERSION = YES -CLANG_WARN_COMMA = YES -CLANG_WARN_CONSTANT_CONVERSION = YES -CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR -CLANG_WARN_DOCUMENTATION_COMMENTS = YES -CLANG_WARN_EMPTY_BODY = YES -CLANG_WARN_ENUM_CONVERSION = YES -CLANG_WARN_INFINITE_RECURSION = YES -CLANG_WARN_INT_CONVERSION = YES -CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES -CLANG_WARN_OBJC_LITERAL_CONVERSION = YES -CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR -CLANG_WARN_RANGE_LOOP_ANALYSIS = YES -CLANG_WARN_STRICT_PROTOTYPES = YES -CLANG_WARN_SUSPICIOUS_MOVE = YES -CLANG_WARN_UNREACHABLE_CODE = YES -CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer -COPY_PHASE_STRIP = NO -CURRENT_PROJECT_VERSION = 1 -DEBUG_INFORMATION_FORMAT = dwarf -ENABLE_STRICT_OBJC_MSGSEND = YES -ENABLE_TESTABILITY = YES -GCC_C_LANGUAGE_STANDARD = gnu99 -GCC_DYNAMIC_NO_PIC = NO -GCC_NO_COMMON_BLOCKS = YES -GCC_OPTIMIZATION_LEVEL = 0 -GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 $(inherited) -GCC_WARN_64_TO_32_BIT_CONVERSION = YES -GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR -GCC_WARN_UNDECLARED_SELECTOR = YES -GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE -GCC_WARN_UNUSED_FUNCTION = YES -GCC_WARN_UNUSED_VARIABLE = YES -IPHONEOS_DEPLOYMENT_TARGET = 9.0 -MTL_ENABLE_DEBUG_INFO = YES -ONLY_ACTIVE_ARCH = YES -SDKROOT = iphoneos -TARGETED_DEVICE_FAMILY = 1,2 -VERSION_INFO_PREFIX = -VERSIONING_SYSTEM = apple-generic \ No newline at end of file diff --git a/ios/container/Config/Project-QADeployment.xcconfig b/ios/container/Config/Project-QADeployment.xcconfig deleted file mode 100644 index e1d8ebc2..00000000 --- a/ios/container/Config/Project-QADeployment.xcconfig +++ /dev/null @@ -1,55 +0,0 @@ -// -// Project-QADeployment.xcconfig -// -// Generated by BuildSettingExtractor on 6/7/18 -// https://github.com/dempseyatgithub/BuildSettingExtractor -// - -ALWAYS_SEARCH_USER_PATHS = NO -CLANG_ANALYZER_NONNULL = YES -CLANG_CXX_LANGUAGE_STANDARD = gnu++0x -CLANG_CXX_LIBRARY = libc++ -CLANG_ENABLE_MODULES = YES -CLANG_ENABLE_OBJC_ARC = YES -CLANG_WARN__DUPLICATE_METHOD_MATCH = YES -CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES -CLANG_WARN_BOOL_CONVERSION = YES -CLANG_WARN_COMMA = YES -CLANG_WARN_CONSTANT_CONVERSION = YES -CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR -CLANG_WARN_DOCUMENTATION_COMMENTS = YES -CLANG_WARN_EMPTY_BODY = YES -CLANG_WARN_ENUM_CONVERSION = YES -CLANG_WARN_INFINITE_RECURSION = YES -CLANG_WARN_INT_CONVERSION = YES -CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES -CLANG_WARN_OBJC_LITERAL_CONVERSION = YES -CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR -CLANG_WARN_RANGE_LOOP_ANALYSIS = YES -CLANG_WARN_STRICT_PROTOTYPES = YES -CLANG_WARN_SUSPICIOUS_MOVE = YES -CLANG_WARN_UNREACHABLE_CODE = YES -CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer -COPY_PHASE_STRIP = NO -CURRENT_PROJECT_VERSION = 1 -DEBUG_INFORMATION_FORMAT = dwarf-with-dsym -ENABLE_STRICT_OBJC_MSGSEND = YES -ENABLE_TESTABILITY = YES -GCC_C_LANGUAGE_STANDARD = gnu99 -GCC_DYNAMIC_NO_PIC = NO -GCC_NO_COMMON_BLOCKS = YES -GCC_OPTIMIZATION_LEVEL = 0 -GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 $(inherited) -GCC_WARN_64_TO_32_BIT_CONVERSION = YES -GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR -GCC_WARN_UNDECLARED_SELECTOR = YES -GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE -GCC_WARN_UNUSED_FUNCTION = YES -GCC_WARN_UNUSED_VARIABLE = YES -IPHONEOS_DEPLOYMENT_TARGET = 9.0 -MTL_ENABLE_DEBUG_INFO = YES -ONLY_ACTIVE_ARCH = YES -SDKROOT = iphoneos -TARGETED_DEVICE_FAMILY = 1,2 -VERSION_INFO_PREFIX = -VERSIONING_SYSTEM = apple-generic \ No newline at end of file diff --git a/ios/container/Config/Project-Release.xcconfig b/ios/container/Config/Project-Release.xcconfig deleted file mode 100644 index 48c3d6b6..00000000 --- a/ios/container/Config/Project-Release.xcconfig +++ /dev/null @@ -1,52 +0,0 @@ -// -// Project-Release.xcconfig -// -// Generated by BuildSettingExtractor on 6/7/18 -// https://github.com/dempseyatgithub/BuildSettingExtractor -// - -ALWAYS_SEARCH_USER_PATHS = NO -CLANG_ANALYZER_NONNULL = YES -CLANG_CXX_LANGUAGE_STANDARD = gnu++0x -CLANG_CXX_LIBRARY = libc++ -CLANG_ENABLE_MODULES = YES -CLANG_ENABLE_OBJC_ARC = YES -CLANG_WARN__DUPLICATE_METHOD_MATCH = YES -CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES -CLANG_WARN_BOOL_CONVERSION = YES -CLANG_WARN_COMMA = YES -CLANG_WARN_CONSTANT_CONVERSION = YES -CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR -CLANG_WARN_DOCUMENTATION_COMMENTS = YES -CLANG_WARN_EMPTY_BODY = YES -CLANG_WARN_ENUM_CONVERSION = YES -CLANG_WARN_INFINITE_RECURSION = YES -CLANG_WARN_INT_CONVERSION = YES -CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES -CLANG_WARN_OBJC_LITERAL_CONVERSION = YES -CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR -CLANG_WARN_RANGE_LOOP_ANALYSIS = YES -CLANG_WARN_STRICT_PROTOTYPES = YES -CLANG_WARN_SUSPICIOUS_MOVE = YES -CLANG_WARN_UNREACHABLE_CODE = YES -CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer -COPY_PHASE_STRIP = NO -CURRENT_PROJECT_VERSION = 1 -DEBUG_INFORMATION_FORMAT = dwarf-with-dsym -ENABLE_NS_ASSERTIONS = NO -ENABLE_STRICT_OBJC_MSGSEND = YES -GCC_C_LANGUAGE_STANDARD = gnu99 -GCC_NO_COMMON_BLOCKS = YES -GCC_WARN_64_TO_32_BIT_CONVERSION = YES -GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR -GCC_WARN_UNDECLARED_SELECTOR = YES -GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE -GCC_WARN_UNUSED_FUNCTION = YES -GCC_WARN_UNUSED_VARIABLE = YES -IPHONEOS_DEPLOYMENT_TARGET = 9.0 -MTL_ENABLE_DEBUG_INFO = NO -SDKROOT = iphoneos -TARGETED_DEVICE_FAMILY = 1,2 -VALIDATE_PRODUCT = YES -VERSION_INFO_PREFIX = -VERSIONING_SYSTEM = apple-generic \ No newline at end of file diff --git a/ios/container/ElectrodeContainer.xcodeproj/project.pbxproj b/ios/container/ElectrodeContainer.xcodeproj/project.pbxproj deleted file mode 100644 index e15d3289..00000000 --- a/ios/container/ElectrodeContainer.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1629 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 0232350A6E4F449DAF3F6599 /* ElectrodeBridgeMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC10A3721094951ABA05D5F /* ElectrodeBridgeMessage.m */; }; - 03085EA4034047DCB1580CB3 /* Bridgeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDC9519B0746427984E5FE01 /* Bridgeable.swift */; }; - 031F10E4B4BE4F3EB834D0BF /* ElectrodeLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A4E2D42B8BD4258B09E2BFD /* ElectrodeLogger.m */; }; - 08ABCC485E5943E582051E84 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AEFEDA9AD4CC4D4686114346 /* libRCTGeolocation.a */; }; - 0A404DBA727244A89E392E06 /* EnNavigationRequests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B04E28251C524394823B0500 /* EnNavigationRequests.swift */; }; - 0C50E9B4E8D645D49A3BB19E /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 833D2DFD640C411F911E41A4 /* JavaScriptCore.framework */; }; - 165D7B74389D4ACFB2331C41 /* ElectrodeRequestDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = BD67CC2987FF4E298998377A /* ElectrodeRequestDispatcher.h */; }; - 1BA737C95F9840EE98251736 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FEBA5FE709A4216AC7AB22D /* libReact.a */; }; - 1CA73DA603A64335A5078C31 /* EnNavigationEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFF6ADCA7FEC4748ACE29FDF /* EnNavigationEvents.swift */; }; - 1D7AA91C4BC745BF90E71043 /* EnNavigationAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5304CDF5DB384C32BA2EA69C /* EnNavigationAPI.swift */; }; - 223A89461E89CDC70092741E /* MiniApp.jsbundle in Resources */ = {isa = PBXBuildFile; fileRef = 223A89451E89CDC70092741E /* MiniApp.jsbundle */; }; - 22BF1FEB1E8DAAF800E7F500 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 22BF1FEA1E8DAAF800E7F500 /* assets */; }; - 2527DB8565FB4016AFCDE12D /* ElectrodeBridgeTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = B01D49AD4AB44F97A5C8B443 /* ElectrodeBridgeTransaction.h */; }; - 282F7CCA04F34EBFA3A658F8 /* ErnNavRoute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87985A16D462416387C8AA93 /* ErnNavRoute.swift */; }; - 301CB9021F33F3450048C58B /* NSBundle+frameworkBundle.m in Sources */ = {isa = PBXBuildFile; fileRef = 301CB9001F33F3450048C58B /* NSBundle+frameworkBundle.m */; }; - 301CB9031F33F3450048C58B /* NSBundle+frameworkBundle.h in Headers */ = {isa = PBXBuildFile; fileRef = 301CB9011F33F3450048C58B /* NSBundle+frameworkBundle.h */; }; - 304000E82098E1F000BF751C /* ElectrodePluginConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 304000E72098E1F000BF751C /* ElectrodePluginConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 30F8CDEE1E67946E00413247 /* ElectrodeReactNative_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 30F8CDED1E67946E00413247 /* ElectrodeReactNative_Internal.h */; }; - 3DC42950BF4D421092CE64FC /* ElectrodeUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C7967B7BE9D4661954FC19D /* ElectrodeUtilities.swift */; }; - 420CB77345654F5292936638 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CC218C08DD284B16A0634B22 /* libRCTVibration.a */; }; - 485009ED1E2FF23C009B6610 /* ElectrodeContainer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 485009E31E2FF23B009B6610 /* ElectrodeContainer.framework */; }; - 485009F41E2FF23C009B6610 /* ElectrodeContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 485009E61E2FF23B009B6610 /* ElectrodeContainer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 48500A981E2FF55B009B6610 /* ElectrodeReactNative.h in Headers */ = {isa = PBXBuildFile; fileRef = 48500A961E2FF55B009B6610 /* ElectrodeReactNative.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 48500A991E2FF55B009B6610 /* ElectrodeReactNative.m in Sources */ = {isa = PBXBuildFile; fileRef = 48500A971E2FF55B009B6610 /* ElectrodeReactNative.m */; }; - 4E1CEE9B44EC4C668224E0A1 /* ElectrodeBridgeHolder.m in Sources */ = {isa = PBXBuildFile; fileRef = DA4B4C50B92C49A087965F2F /* ElectrodeBridgeHolder.m */; }; - 516C8CEA60D340AE83F76421 /* ElectrodeRequestRegistrar.m in Sources */ = {isa = PBXBuildFile; fileRef = 32F3D67938B04E3996517A50 /* ElectrodeRequestRegistrar.m */; }; - 55B0220FFD26498AB8DA1AEB /* ElectrodeReactNativeBridge.h in Headers */ = {isa = PBXBuildFile; fileRef = 0ABBCC53B9884ED5810694E3 /* ElectrodeReactNativeBridge.h */; }; - 5882599949AC402189490031 /* ElectrodeBridgeMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 713138729A2F4BE48ED2BAD6 /* ElectrodeBridgeMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5AF66CFF64264972AB288DB9 /* EnNavigationAPI.swift in Headers */ = {isa = PBXBuildFile; fileRef = 5304CDF5DB384C32BA2EA69C /* EnNavigationAPI.swift */; settings = {ATTRIBUTES = (Public, ); }; }; - 5B3622C577854DFC96D6FB32 /* ElectrodeBridgeProtocols.m in Sources */ = {isa = PBXBuildFile; fileRef = B35CD5F4052D4516A258FE13 /* ElectrodeBridgeProtocols.m */; }; - 5E8FB809616943F6995A2E9C /* ElectrodeEventDispatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 350D8DA851494F83B994749C /* ElectrodeEventDispatcher.m */; }; - 62225122FB2146B2B2EA5E30 /* ErnNavRoute.swift in Headers */ = {isa = PBXBuildFile; fileRef = 87985A16D462416387C8AA93 /* ErnNavRoute.swift */; settings = {ATTRIBUTES = (Public, ); }; }; - 6241522B86FF4863AE35E201 /* EventProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7ECB51FD985493A87D30F1A /* EventProcessor.swift */; }; - 62714413D86E4DA2827C257B /* ElectrodeBridgeRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 591BA844CEB3431FB6829D14 /* ElectrodeBridgeRequest.m */; }; - 68AEE31B006E4602986E24D5 /* ElectrodeBridgeTransceiver_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F1BC9B3731C2431C9FDACC04 /* ElectrodeBridgeTransceiver_Internal.h */; }; - 6B4636901EAD42EBB56948E7 /* ElectrodeBridgeTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = F70137B9E2C14C479F837A27 /* ElectrodeBridgeTransaction.m */; }; - 6BAAE9F2763B4402ADE1AC54 /* ElectrodeBridgeRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A47D9F6369F44C7187AC8102 /* ElectrodeBridgeRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6D5F2404ADCD45AF9B646391 /* ElectrodeRequestRegistrar.h in Headers */ = {isa = PBXBuildFile; fileRef = 731067E22B774202A23C4FD6 /* ElectrodeRequestRegistrar.h */; }; - 6FBC04E42C6B41B89D6D1DAA /* ElectrodeBridgeHolder.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EE02355CF304DAEA4541079 /* ElectrodeBridgeHolder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 71DBED305EB74B2BA08E4053 /* Processor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5F971FAC41D44E78FD31AD5 /* Processor.swift */; }; - 79740AC54C6C44DCA7869429 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B20A40FFEA154059BC3FB982 /* libRCTNetwork.a */; }; - 7A3D9CB3303645F3B84F279D /* ElectrodeBridgeFailureMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A7129D0314E4CB8AA310134 /* ElectrodeBridgeFailureMessage.m */; }; - 81438F617C744250A9721674 /* ElectrodeBridgeEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 55094A210FE24B108B096F5B /* ElectrodeBridgeEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8214F8C438B44E2FBB938C2A /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2CC35B65B4CE42D8B881C27B /* libRCTLinking.a */; }; - 875A41954E834F21BCF5DFBA /* ElectrodeEventRegistrar.m in Sources */ = {isa = PBXBuildFile; fileRef = 786EBCBF098744879C123F6E /* ElectrodeEventRegistrar.m */; }; - 8D0AC6B260F1464DBBFC56A4 /* ElectrodeRequestHandlerProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 362B0E9889B24193BC81E6D0 /* ElectrodeRequestHandlerProcessor.swift */; }; - 902D53A491DD4BB59CA6807B /* NavigationBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = B51E26151E9C4DBD8BC20329 /* NavigationBar.swift */; }; - 9479EC8BD76249F589897A91 /* ElectrodeBridgeTransceiver.h in Headers */ = {isa = PBXBuildFile; fileRef = 54EF96D11FE5479EB1044525 /* ElectrodeBridgeTransceiver.h */; }; - 968333D71E54E3470031C565 /* ElectrodeBridgeDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 968333D51E54E3470031C565 /* ElectrodeBridgeDelegate.h */; }; - 968333D81E54E3470031C565 /* ElectrodeBridgeDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 968333D61E54E3470031C565 /* ElectrodeBridgeDelegate.m */; }; - 9A35A244639742C280F3B263 /* libRCTImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D4078273AF944FABC57F244 /* libRCTImage.a */; }; - 9CED26D822FCD25E00063FD9 /* ENMiniAppDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CED268B22FCD25E00063FD9 /* ENMiniAppDataProvider.swift */; }; - 9CED26D922FCD25E00063FD9 /* ENCoreDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CED26D722FCD25E00063FD9 /* ENCoreDelegate.swift */; }; - 9CED26E022FCD28300063FD9 /* ENNavigationProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CED26DA22FCD28200063FD9 /* ENNavigationProtocol.swift */; }; - 9CED26E122FCD28300063FD9 /* ENNavigationDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CED26DB22FCD28200063FD9 /* ENNavigationDelegate.swift */; }; - 9CED26E222FCD28300063FD9 /* ENNavigationAPIImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CED26DC22FCD28200063FD9 /* ENNavigationAPIImpl.swift */; }; - 9CED26E322FCD28300063FD9 /* MiniAppNavViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CED26DD22FCD28200063FD9 /* MiniAppNavViewController.swift */; }; - 9CED26E422FCD28300063FD9 /* ENBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CED26DE22FCD28200063FD9 /* ENBarButtonItem.swift */; }; - 9CED26E522FCD28300063FD9 /* ENMiniAppNavDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CED26DF22FCD28200063FD9 /* ENMiniAppNavDataProvider.swift */; }; - A14DAA10A8824DBFB20466D9 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A65665B17F24C368B32010D /* libRCTWebSocket.a */; }; - A16A900D32FC4F258E6CCC33 /* ElectrodeEventRegistrar.h in Headers */ = {isa = PBXBuildFile; fileRef = 14046E0EE9E047EFA2DB009F /* ElectrodeEventRegistrar.h */; }; - A4314A6A55AB409AA4019134 /* ElectrodeBridgeResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C047C4A90791495198E6C5ED /* ElectrodeBridgeResponse.h */; }; - A9AF96291FA141CFB7B6B83F /* NavigationBarButton.swift in Headers */ = {isa = PBXBuildFile; fileRef = 32865ABE6DF8405CB004B21B /* NavigationBarButton.swift */; settings = {ATTRIBUTES = (Public, ); }; }; - ABF3DEC107D94230B5FF5AB6 /* ElectrodeLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = E9F48C69AF12414DAA214C69 /* ElectrodeLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AE0109D0912349FC94AEC4D2 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2262E385FEDA4C97B4983A90 /* libRCTActionSheet.a */; }; - B174A767202B49818EDA1075 /* ElectrodeRequestProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A057CF694EC548B394E2CF10 /* ElectrodeRequestProcessor.swift */; }; - B3741C8FC2054CC5949244D9 /* NavigationBar.swift in Headers */ = {isa = PBXBuildFile; fileRef = B51E26151E9C4DBD8BC20329 /* NavigationBar.swift */; settings = {ATTRIBUTES = (Public, ); }; }; - BCADDB31D88B472B8F4AF756 /* ElectrodeObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 851E4F8EF4514B7BB3E71AF1 /* ElectrodeObject.swift */; }; - BFC5B2EEED9646F990AA7A1D /* libRCTCameraRoll.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A5CC8AC9E1BD45D6A5F1E6A1 /* libRCTCameraRoll.a */; }; - C13F5720EF034540A7935828 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D395975A278748ED92D49BD6 /* libRCTText.a */; }; - C165E2EDBE6C453E80C7884D /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8D3E7C0BF4DB4FC9AB175054 /* libRCTSettings.a */; }; - C73B3D516283488FA1565909 /* ElectrodeBridgeEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = A216D8D25DCE41E383A0F606 /* ElectrodeBridgeEvent.m */; }; - C743AC8759A9491E80BE2F9F /* ElectrodeBridgeTransceiver.m in Sources */ = {isa = PBXBuildFile; fileRef = 3530623ECDCD42898E81AFBC /* ElectrodeBridgeTransceiver.m */; }; - CC350ACB8AF446F3B1B858A3 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9EF4A3CF42BC43D093634C94 /* libRCTAnimation.a */; }; - CE2794B871F6499DB9649642 /* NavigationBarButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32865ABE6DF8405CB004B21B /* NavigationBarButton.swift */; }; - D69EB99835364A5F9C0595FB /* None.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DFDE37198F448E87BA96F8 /* None.swift */; }; - E736A41CF63F427896B3B129 /* libART.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 94FFE1F7CD86481D94F99F43 /* libART.a */; }; - E9D787A6DE994EC1B6E84C67 /* ElectrodeBridgeResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 299EF5217BDB4ACF8E21EE74 /* ElectrodeBridgeResponse.m */; }; - EB85CF22929045C5BC428994 /* ElectrodeEventDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = F71AD34EAC6241C09CC2574F /* ElectrodeEventDispatcher.h */; }; - EC032DC01C08477F8A7767ED /* ElectrodeBridgeFailureMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = E0114A89F7FA4E098F6082B1 /* ElectrodeBridgeFailureMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F097CB733B5A4A0CAB99DAE8 /* ElectrodeBridgeProtocols.h in Headers */ = {isa = PBXBuildFile; fileRef = 27AEE9FED66443E1A7297E5A /* ElectrodeBridgeProtocols.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F9324805D5FD45CD9410FE6F /* EnNavigationRequests.swift in Headers */ = {isa = PBXBuildFile; fileRef = B04E28251C524394823B0500 /* EnNavigationRequests.swift */; settings = {ATTRIBUTES = (Public, ); }; }; - F940558DA2C6479FAA77C7C1 /* EnNavigationEvents.swift in Headers */ = {isa = PBXBuildFile; fileRef = EFF6ADCA7FEC4748ACE29FDF /* EnNavigationEvents.swift */; settings = {ATTRIBUTES = (Public, ); }; }; - FA10283518114DC091B0C4EE /* ElectrodeRequestDispatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A1881D5BD284F419786030D /* ElectrodeRequestDispatcher.m */; }; - FED46BC5232444FC8D100D89 /* EventListenerProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04C555EFA6184FD2875AF612 /* EventListenerProcessor.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 0FEF08FC8F93406CA3C755B4 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6C1954F3B1E249AE87A69516 /* RCTWebSocket.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3C86DF461ADF2C930047B81A; - remoteInfo = RCTWebSocket; - }; - 1D962BA5FB794481BDF87F7E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = CDD495FB6F9846AD8C417A15 /* RCTNetwork.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 58B511DA1A9E6C8500147676; - remoteInfo = RCTNetwork; - }; - 2F52B7E571084FEC871A7558 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 9084D6D22FC04BB8BCC42CFF /* RCTVibration.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 832C817F1AAF6DEF007FA2F7; - remoteInfo = RCTVibration; - }; - 41BB5C8DCA9446E8851E9A6D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D13F3CDBBB8541189EF527DA /* RCTActionSheet.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTActionSheet; - }; - 45D00E5A8DAE479682009011 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 65E50A07F277474DBE6A856B /* RCTSettings.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 58B511DA1A9E6C8500147676; - remoteInfo = RCTSettings; - }; - 485009EE1E2FF23C009B6610 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 485009DA1E2FF23B009B6610 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 485009E21E2FF23B009B6610; - remoteInfo = ElectrodeContainer; - }; - 4C0333DCD8CC4267995E3F45 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 8763789FADD94548959D4893 /* RCTGeolocation.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 58B511DA1A9E6C8500147676; - remoteInfo = RCTGeolocation; - }; - 53D593800AEB490EB3AFB79C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F75EE847804B47D9B8BF479E /* RCTLinking.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTLinking; - }; - 5B186EAF254E4D12B72613CA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 77638343E21D4BB5B87A37DE /* React.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 83CBBA2D1A601D0E00E9B192; - remoteInfo = React; - }; - 5B1FBA865E234EF0865367CC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = E339A442BDBA4CB18F48DF41 /* RCTCameraRoll.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 58B5115D1A9E6B3D00147676; - remoteInfo = RCTCameraRoll; - }; - 61BE059DADDD4980B6383683 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F75EE847804B47D9B8BF479E /* RCTLinking.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 58B511DA1A9E6C8500147676; - remoteInfo = RCTLinking; - }; - 653C1ED590E84C108D0DDED4 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 8E28B8DA2EC747438624CFF3 /* RCTAnimation.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 58B511DA1A9E6C8500147676; - remoteInfo = RCTAnimation; - }; - 72499D8C5EB441019F2852C4 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = B8564D04E3A2420FA2F9DDEC /* ART.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 0CF68AC11AF0540F00FF9E5C; - remoteInfo = ART; - }; - 73582E19E7B643C391E8A697 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 77638343E21D4BB5B87A37DE /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192; - remoteInfo = React; - }; - 77F130CA95EB4737A982E03E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 65E50A07F277474DBE6A856B /* RCTSettings.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTSettings; - }; - 9533670FC1804F11A9B4F34F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = B443619B9FF94ECA9A111692 /* RCTImage.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 58B5115D1A9E6B3D00147676; - remoteInfo = RCTImage; - }; - 9CED268D22FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = B8564D04E3A2420FA2F9DDEC /* ART.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 323A12871E5F266B004975B8; - remoteInfo = "ART-tvOS"; - }; - 9CED269022FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 8E28B8DA2EC747438624CFF3 /* RCTAnimation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28201D9B03D100D4039D; - remoteInfo = "RCTAnimation-tvOS"; - }; - 9CED269322FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = B443619B9FF94ECA9A111692 /* RCTImage.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A283A1D9B042B00D4039D; - remoteInfo = "RCTImage-tvOS"; - }; - 9CED269622FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F75EE847804B47D9B8BF479E /* RCTLinking.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28471D9B043800D4039D; - remoteInfo = "RCTLinking-tvOS"; - }; - 9CED269922FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = CDD495FB6F9846AD8C417A15 /* RCTNetwork.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28541D9B044C00D4039D; - remoteInfo = "RCTNetwork-tvOS"; - }; - 9CED269C22FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 65E50A07F277474DBE6A856B /* RCTSettings.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28611D9B046600D4039D; - remoteInfo = "RCTSettings-tvOS"; - }; - 9CED269F22FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6C3A05F248D1452096FFD970 /* RCTText.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A287B1D9B048500D4039D; - remoteInfo = "RCTText-tvOS"; - }; - 9CED26A422FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6C1954F3B1E249AE87A69516 /* RCTWebSocket.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28881D9B049200D4039D; - remoteInfo = "RCTWebSocket-tvOS"; - }; - 9CED26A622FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6C1954F3B1E249AE87A69516 /* RCTWebSocket.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3DBE0D001F3B181A0099AA32; - remoteInfo = fishhook; - }; - 9CED26A822FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6C1954F3B1E249AE87A69516 /* RCTWebSocket.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3DBE0D0D1F3B181C0099AA32; - remoteInfo = "fishhook-tvOS"; - }; - 9CED26B922FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 77638343E21D4BB5B87A37DE /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28131D9B038B00D4039D; - remoteInfo = "React-tvOS"; - }; - 9CED26BB22FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 77638343E21D4BB5B87A37DE /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3C059A1DE3340900C268FA; - remoteInfo = yoga; - }; - 9CED26BD22FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 77638343E21D4BB5B87A37DE /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3C06751DE3340C00C268FA; - remoteInfo = "yoga-tvOS"; - }; - 9CED26BF22FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 77638343E21D4BB5B87A37DE /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD9251DE5FBEC00167DC4; - remoteInfo = cxxreact; - }; - 9CED26C122FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 77638343E21D4BB5B87A37DE /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD9321DE5FBEE00167DC4; - remoteInfo = "cxxreact-tvOS"; - }; - 9CED26C322FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 77638343E21D4BB5B87A37DE /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = EBF21BDC1FC498900052F4D5; - remoteInfo = jsinspector; - }; - 9CED26C522FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 77638343E21D4BB5B87A37DE /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = EBF21BFA1FC4989A0052F4D5; - remoteInfo = "jsinspector-tvOS"; - }; - 9CED26C722FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 77638343E21D4BB5B87A37DE /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 139D7ECE1E25DB7D00323FB7; - remoteInfo = "third-party"; - }; - 9CED26C922FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 77638343E21D4BB5B87A37DE /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D383D3C1EBD27B6005632C8; - remoteInfo = "third-party-tvOS"; - }; - 9CED26CB22FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 77638343E21D4BB5B87A37DE /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 139D7E881E25C6D100323FB7; - remoteInfo = "double-conversion"; - }; - 9CED26CD22FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 77638343E21D4BB5B87A37DE /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D383D621EBD27B9005632C8; - remoteInfo = "double-conversion-tvOS"; - }; - 9CED26CF22FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 77638343E21D4BB5B87A37DE /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = EDEBC6D6214B3E7000DD5AC8; - remoteInfo = jsi; - }; - 9CED26D122FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 77638343E21D4BB5B87A37DE /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = EDEBC73B214B45A300DD5AC8; - remoteInfo = jsiexecutor; - }; - 9CED26D322FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 77638343E21D4BB5B87A37DE /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = ED296FB6214C9A0900B7C4FE; - remoteInfo = "jsi-tvOS"; - }; - 9CED26D522FCD25E00063FD9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 77638343E21D4BB5B87A37DE /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = ED296FEE214C9CF800B7C4FE; - remoteInfo = "jsiexecutor-tvOS"; - }; - 9FEC5ED3CAB84F5D9305EF75 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 8763789FADD94548959D4893 /* RCTGeolocation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTGeolocation; - }; - A92C2D226F2C467890EF6CEA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = E339A442BDBA4CB18F48DF41 /* RCTCameraRoll.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 58B5115C1A9E6B3D00147676; - remoteInfo = RCTCameraRoll; - }; - AA346B9E39DE440688A7EC81 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 8E28B8DA2EC747438624CFF3 /* RCTAnimation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTAnimation; - }; - BFE1AAF337D94502999D79BD /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = B8564D04E3A2420FA2F9DDEC /* ART.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 0CF68AC01AF0540F00FF9E5C; - remoteInfo = ART; - }; - C0B0DC3C28D94E059C82A051 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D13F3CDBBB8541189EF527DA /* RCTActionSheet.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 58B511DA1A9E6C8500147676; - remoteInfo = RCTActionSheet; - }; - C46344640D474B1685AC899A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = B443619B9FF94ECA9A111692 /* RCTImage.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 58B5115C1A9E6B3D00147676; - remoteInfo = RCTImage; - }; - C5DD734843CC4A5FBEDA2EDC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 9084D6D22FC04BB8BCC42CFF /* RCTVibration.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 832C81801AAF6DEF007FA2F7; - remoteInfo = RCTVibration; - }; - D0301DB1E6B6422AAF8D2F5F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6C3A05F248D1452096FFD970 /* RCTText.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 58B5119A1A9E6C1200147676; - remoteInfo = RCTText; - }; - E9BD6FE2FF634C2BB1BC3644 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6C3A05F248D1452096FFD970 /* RCTText.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 58B5119B1A9E6C1200147676; - remoteInfo = RCTText; - }; - F3863AC4ADCB4E4DBA1FE3B1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = CDD495FB6F9846AD8C417A15 /* RCTNetwork.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 58B511DB1A9E6C8500147676; - remoteInfo = RCTNetwork; - }; - F6FB38D381624430B9E266F3 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6C1954F3B1E249AE87A69516 /* RCTWebSocket.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 3C86DF451ADF2C930047B81A; - remoteInfo = RCTWebSocket; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 04C555EFA6184FD2875AF612 /* EventListenerProcessor.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = EventListenerProcessor.swift; path = ElectrodeReactNativeBridge/EventListenerProcessor.swift; sourceTree = ""; }; - 09DFDE37198F448E87BA96F8 /* None.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = None.swift; path = ElectrodeReactNativeBridge/None.swift; sourceTree = ""; }; - 0ABBCC53B9884ED5810694E3 /* ElectrodeReactNativeBridge.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = ElectrodeReactNativeBridge.h; path = ElectrodeReactNativeBridge/ElectrodeReactNativeBridge.h; sourceTree = ""; }; - 14046E0EE9E047EFA2DB009F /* ElectrodeEventRegistrar.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = ElectrodeEventRegistrar.h; path = ElectrodeReactNativeBridge/ElectrodeEventRegistrar.h; sourceTree = ""; }; - 223A89451E89CDC70092741E /* MiniApp.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MiniApp.jsbundle; sourceTree = ""; }; - 2265A4A11EB26943007D6C3D /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 22BF1FEA1E8DAAF800E7F500 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; path = assets; sourceTree = ""; }; - 22CB683D20C9C46A0031A349 /* Project-QADeployment.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Project-QADeployment.xcconfig"; sourceTree = ""; }; - 22CB683E20C9C46A0031A349 /* Project-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Project-Release.xcconfig"; sourceTree = ""; }; - 22CB684020C9C46A0031A349 /* ElectrodeContainer-QADeployment.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "ElectrodeContainer-QADeployment.xcconfig"; sourceTree = ""; }; - 22CB684120C9C46A0031A349 /* ElectrodeContainer-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "ElectrodeContainer-Debug.xcconfig"; sourceTree = ""; }; - 22CB684220C9C46A0031A349 /* ElectrodeContainer-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "ElectrodeContainer-Release.xcconfig"; sourceTree = ""; }; - 22CB684420C9C46A0031A349 /* ElectrodeContainerTests-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "ElectrodeContainerTests-Release.xcconfig"; sourceTree = ""; }; - 22CB684620C9C46A0031A349 /* ElectrodeContainerTests-QADeployment.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "ElectrodeContainerTests-QADeployment.xcconfig"; sourceTree = ""; }; - 22CB684720C9C46A0031A349 /* Project-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Project-Debug.xcconfig"; sourceTree = ""; }; - 22CB684820C9C46B0031A349 /* ElectrodeContainerTests-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "ElectrodeContainerTests-Debug.xcconfig"; sourceTree = ""; }; - 27AEE9FED66443E1A7297E5A /* ElectrodeBridgeProtocols.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = ElectrodeBridgeProtocols.h; path = ElectrodeReactNativeBridge/ElectrodeBridgeProtocols.h; sourceTree = ""; }; - 299EF5217BDB4ACF8E21EE74 /* ElectrodeBridgeResponse.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = ElectrodeBridgeResponse.m; path = ElectrodeReactNativeBridge/ElectrodeBridgeResponse.m; sourceTree = ""; }; - 2A7129D0314E4CB8AA310134 /* ElectrodeBridgeFailureMessage.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = ElectrodeBridgeFailureMessage.m; path = ElectrodeReactNativeBridge/ElectrodeBridgeFailureMessage.m; sourceTree = ""; }; - 301CB9001F33F3450048C58B /* NSBundle+frameworkBundle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSBundle+frameworkBundle.m"; sourceTree = ""; }; - 301CB9011F33F3450048C58B /* NSBundle+frameworkBundle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSBundle+frameworkBundle.h"; sourceTree = ""; }; - 304000E72098E1F000BF751C /* ElectrodePluginConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ElectrodePluginConfig.h; sourceTree = ""; }; - 30F8CDED1E67946E00413247 /* ElectrodeReactNative_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElectrodeReactNative_Internal.h; sourceTree = ""; }; - 32865ABE6DF8405CB004B21B /* NavigationBarButton.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = NavigationBarButton.swift; path = APIs/NavigationBarButton.swift; sourceTree = ""; }; - 32F3D67938B04E3996517A50 /* ElectrodeRequestRegistrar.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = ElectrodeRequestRegistrar.m; path = ElectrodeReactNativeBridge/ElectrodeRequestRegistrar.m; sourceTree = ""; }; - 350D8DA851494F83B994749C /* ElectrodeEventDispatcher.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = ElectrodeEventDispatcher.m; path = ElectrodeReactNativeBridge/ElectrodeEventDispatcher.m; sourceTree = ""; }; - 3530623ECDCD42898E81AFBC /* ElectrodeBridgeTransceiver.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = ElectrodeBridgeTransceiver.m; path = ElectrodeReactNativeBridge/ElectrodeBridgeTransceiver.m; sourceTree = ""; }; - 362B0E9889B24193BC81E6D0 /* ElectrodeRequestHandlerProcessor.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = ElectrodeRequestHandlerProcessor.swift; path = ElectrodeReactNativeBridge/ElectrodeRequestHandlerProcessor.swift; sourceTree = ""; }; - 3A1881D5BD284F419786030D /* ElectrodeRequestDispatcher.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = ElectrodeRequestDispatcher.m; path = ElectrodeReactNativeBridge/ElectrodeRequestDispatcher.m; sourceTree = ""; }; - 485009E31E2FF23B009B6610 /* ElectrodeContainer.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ElectrodeContainer.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 485009E61E2FF23B009B6610 /* ElectrodeContainer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ElectrodeContainer.h; sourceTree = ""; }; - 485009EC1E2FF23C009B6610 /* ElectrodeContainerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ElectrodeContainerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 485009F31E2FF23C009B6610 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 48500A961E2FF55B009B6610 /* ElectrodeReactNative.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElectrodeReactNative.h; sourceTree = ""; }; - 48500A971E2FF55B009B6610 /* ElectrodeReactNative.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElectrodeReactNative.m; sourceTree = ""; wrapsLines = 0; }; - 4CC10A3721094951ABA05D5F /* ElectrodeBridgeMessage.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = ElectrodeBridgeMessage.m; path = ElectrodeReactNativeBridge/ElectrodeBridgeMessage.m; sourceTree = ""; }; - 5304CDF5DB384C32BA2EA69C /* EnNavigationAPI.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = EnNavigationAPI.swift; path = APIs/EnNavigationAPI.swift; sourceTree = ""; }; - 54EF96D11FE5479EB1044525 /* ElectrodeBridgeTransceiver.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = ElectrodeBridgeTransceiver.h; path = ElectrodeReactNativeBridge/ElectrodeBridgeTransceiver.h; sourceTree = ""; }; - 55094A210FE24B108B096F5B /* ElectrodeBridgeEvent.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = ElectrodeBridgeEvent.h; path = ElectrodeReactNativeBridge/ElectrodeBridgeEvent.h; sourceTree = ""; }; - 591BA844CEB3431FB6829D14 /* ElectrodeBridgeRequest.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = ElectrodeBridgeRequest.m; path = ElectrodeReactNativeBridge/ElectrodeBridgeRequest.m; sourceTree = ""; }; - 5C7967B7BE9D4661954FC19D /* ElectrodeUtilities.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = ElectrodeUtilities.swift; path = ElectrodeReactNativeBridge/ElectrodeUtilities.swift; sourceTree = ""; }; - 5EE02355CF304DAEA4541079 /* ElectrodeBridgeHolder.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = ElectrodeBridgeHolder.h; path = ElectrodeReactNativeBridge/ElectrodeBridgeHolder.h; sourceTree = ""; }; - 65E50A07F277474DBE6A856B /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = ReactNative/Settings/RCTSettings.xcodeproj; sourceTree = ""; }; - 6C1954F3B1E249AE87A69516 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = ReactNative/WebSocket/RCTWebSocket.xcodeproj; sourceTree = ""; }; - 6C3A05F248D1452096FFD970 /* RCTText.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = ReactNative/Text/RCTText.xcodeproj; sourceTree = ""; }; - 713138729A2F4BE48ED2BAD6 /* ElectrodeBridgeMessage.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = ElectrodeBridgeMessage.h; path = ElectrodeReactNativeBridge/ElectrodeBridgeMessage.h; sourceTree = ""; }; - 731067E22B774202A23C4FD6 /* ElectrodeRequestRegistrar.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = ElectrodeRequestRegistrar.h; path = ElectrodeReactNativeBridge/ElectrodeRequestRegistrar.h; sourceTree = ""; }; - 77638343E21D4BB5B87A37DE /* React.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = ReactNative/React/React.xcodeproj; sourceTree = ""; }; - 786EBCBF098744879C123F6E /* ElectrodeEventRegistrar.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = ElectrodeEventRegistrar.m; path = ElectrodeReactNativeBridge/ElectrodeEventRegistrar.m; sourceTree = ""; }; - 7A4E2D42B8BD4258B09E2BFD /* ElectrodeLogger.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = ElectrodeLogger.m; path = ElectrodeReactNativeBridge/ElectrodeLogger.m; sourceTree = ""; }; - 833D2DFD640C411F911E41A4 /* JavaScriptCore.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = /System/Library/Frameworks/JavaScriptCore.framework; sourceTree = ""; }; - 851E4F8EF4514B7BB3E71AF1 /* ElectrodeObject.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = ElectrodeObject.swift; path = ElectrodeReactNativeBridge/ElectrodeObject.swift; sourceTree = ""; }; - 8763789FADD94548959D4893 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = ReactNative/Geolocation/RCTGeolocation.xcodeproj; sourceTree = ""; }; - 87985A16D462416387C8AA93 /* ErnNavRoute.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = ErnNavRoute.swift; path = APIs/ErnNavRoute.swift; sourceTree = ""; }; - 8E28B8DA2EC747438624CFF3 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = ReactNative/NativeAnimation/RCTAnimation.xcodeproj; sourceTree = ""; }; - 9084D6D22FC04BB8BCC42CFF /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = ReactNative/Vibration/RCTVibration.xcodeproj; sourceTree = ""; }; - 968333D51E54E3470031C565 /* ElectrodeBridgeDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElectrodeBridgeDelegate.h; sourceTree = ""; }; - 968333D61E54E3470031C565 /* ElectrodeBridgeDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElectrodeBridgeDelegate.m; sourceTree = ""; }; - 9CED268B22FCD25E00063FD9 /* ENMiniAppDataProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ENMiniAppDataProvider.swift; path = ../../ElectrodeApiImpl/APIImpls/Core/ENMiniAppDataProvider.swift; sourceTree = ""; }; - 9CED26D722FCD25E00063FD9 /* ENCoreDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ENCoreDelegate.swift; path = ../../ElectrodeApiImpl/APIImpls/Core/ENCoreDelegate.swift; sourceTree = ""; }; - 9CED26DA22FCD28200063FD9 /* ENNavigationProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ENNavigationProtocol.swift; path = ../../ElectrodeApiImpl/APIImpls/Navigation/ENNavigationProtocol.swift; sourceTree = ""; }; - 9CED26DB22FCD28200063FD9 /* ENNavigationDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ENNavigationDelegate.swift; path = ../../ElectrodeApiImpl/APIImpls/Navigation/ENNavigationDelegate.swift; sourceTree = ""; }; - 9CED26DC22FCD28200063FD9 /* ENNavigationAPIImpl.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ENNavigationAPIImpl.swift; path = ../../ElectrodeApiImpl/APIImpls/Navigation/ENNavigationAPIImpl.swift; sourceTree = ""; }; - 9CED26DD22FCD28200063FD9 /* MiniAppNavViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MiniAppNavViewController.swift; path = ../../ElectrodeApiImpl/APIImpls/Navigation/MiniAppNavViewController.swift; sourceTree = ""; }; - 9CED26DE22FCD28200063FD9 /* ENBarButtonItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ENBarButtonItem.swift; path = ../../ElectrodeApiImpl/APIImpls/Navigation/ENBarButtonItem.swift; sourceTree = ""; }; - 9CED26DF22FCD28200063FD9 /* ENMiniAppNavDataProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ENMiniAppNavDataProvider.swift; path = ../../ElectrodeApiImpl/APIImpls/Navigation/ENMiniAppNavDataProvider.swift; sourceTree = ""; }; - A057CF694EC548B394E2CF10 /* ElectrodeRequestProcessor.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = ElectrodeRequestProcessor.swift; path = ElectrodeReactNativeBridge/ElectrodeRequestProcessor.swift; sourceTree = ""; }; - A216D8D25DCE41E383A0F606 /* ElectrodeBridgeEvent.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = ElectrodeBridgeEvent.m; path = ElectrodeReactNativeBridge/ElectrodeBridgeEvent.m; sourceTree = ""; }; - A47D9F6369F44C7187AC8102 /* ElectrodeBridgeRequest.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = ElectrodeBridgeRequest.h; path = ElectrodeReactNativeBridge/ElectrodeBridgeRequest.h; sourceTree = ""; }; - A5F971FAC41D44E78FD31AD5 /* Processor.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = Processor.swift; path = ElectrodeReactNativeBridge/Processor.swift; sourceTree = ""; }; - A7ECB51FD985493A87D30F1A /* EventProcessor.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = EventProcessor.swift; path = ElectrodeReactNativeBridge/EventProcessor.swift; sourceTree = ""; }; - B01D49AD4AB44F97A5C8B443 /* ElectrodeBridgeTransaction.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = ElectrodeBridgeTransaction.h; path = ElectrodeReactNativeBridge/ElectrodeBridgeTransaction.h; sourceTree = ""; }; - B04E28251C524394823B0500 /* EnNavigationRequests.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = EnNavigationRequests.swift; path = APIs/EnNavigationRequests.swift; sourceTree = ""; }; - B35CD5F4052D4516A258FE13 /* ElectrodeBridgeProtocols.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = ElectrodeBridgeProtocols.m; path = ElectrodeReactNativeBridge/ElectrodeBridgeProtocols.m; sourceTree = ""; }; - B443619B9FF94ECA9A111692 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = ReactNative/Image/RCTImage.xcodeproj; sourceTree = ""; }; - B51E26151E9C4DBD8BC20329 /* NavigationBar.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = NavigationBar.swift; path = APIs/NavigationBar.swift; sourceTree = ""; }; - B8564D04E3A2420FA2F9DDEC /* ART.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = ART.xcodeproj; path = ReactNative/ART/ART.xcodeproj; sourceTree = ""; }; - BD67CC2987FF4E298998377A /* ElectrodeRequestDispatcher.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = ElectrodeRequestDispatcher.h; path = ElectrodeReactNativeBridge/ElectrodeRequestDispatcher.h; sourceTree = ""; }; - BDC9519B0746427984E5FE01 /* Bridgeable.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = Bridgeable.swift; path = ElectrodeReactNativeBridge/Bridgeable.swift; sourceTree = ""; }; - C047C4A90791495198E6C5ED /* ElectrodeBridgeResponse.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = ElectrodeBridgeResponse.h; path = ElectrodeReactNativeBridge/ElectrodeBridgeResponse.h; sourceTree = ""; }; - CDD495FB6F9846AD8C417A15 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = ReactNative/Network/RCTNetwork.xcodeproj; sourceTree = ""; }; - D13F3CDBBB8541189EF527DA /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = ReactNative/ActionSheetIOS/RCTActionSheet.xcodeproj; sourceTree = ""; }; - DA4B4C50B92C49A087965F2F /* ElectrodeBridgeHolder.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = ElectrodeBridgeHolder.m; path = ElectrodeReactNativeBridge/ElectrodeBridgeHolder.m; sourceTree = ""; }; - E0114A89F7FA4E098F6082B1 /* ElectrodeBridgeFailureMessage.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = ElectrodeBridgeFailureMessage.h; path = ElectrodeReactNativeBridge/ElectrodeBridgeFailureMessage.h; sourceTree = ""; }; - E339A442BDBA4CB18F48DF41 /* RCTCameraRoll.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTCameraRoll.xcodeproj; path = ReactNative/CameraRoll/RCTCameraRoll.xcodeproj; sourceTree = ""; }; - E9F48C69AF12414DAA214C69 /* ElectrodeLogger.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = ElectrodeLogger.h; path = ElectrodeReactNativeBridge/ElectrodeLogger.h; sourceTree = ""; }; - EFF6ADCA7FEC4748ACE29FDF /* EnNavigationEvents.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = EnNavigationEvents.swift; path = APIs/EnNavigationEvents.swift; sourceTree = ""; }; - F1BC9B3731C2431C9FDACC04 /* ElectrodeBridgeTransceiver_Internal.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = ElectrodeBridgeTransceiver_Internal.h; path = ElectrodeReactNativeBridge/ElectrodeBridgeTransceiver_Internal.h; sourceTree = ""; }; - F70137B9E2C14C479F837A27 /* ElectrodeBridgeTransaction.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = ElectrodeBridgeTransaction.m; path = ElectrodeReactNativeBridge/ElectrodeBridgeTransaction.m; sourceTree = ""; }; - F71AD34EAC6241C09CC2574F /* ElectrodeEventDispatcher.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = ElectrodeEventDispatcher.h; path = ElectrodeReactNativeBridge/ElectrodeEventDispatcher.h; sourceTree = ""; }; - F75EE847804B47D9B8BF479E /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = ReactNative/LinkingIOS/RCTLinking.xcodeproj; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 485009DF1E2FF23B009B6610 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 1BA737C95F9840EE98251736 /* libReact.a in Frameworks */, - AE0109D0912349FC94AEC4D2 /* libRCTActionSheet.a in Frameworks */, - 9A35A244639742C280F3B263 /* libRCTImage.a in Frameworks */, - CC350ACB8AF446F3B1B858A3 /* libRCTAnimation.a in Frameworks */, - C13F5720EF034540A7935828 /* libRCTText.a in Frameworks */, - A14DAA10A8824DBFB20466D9 /* libRCTWebSocket.a in Frameworks */, - 08ABCC485E5943E582051E84 /* libRCTGeolocation.a in Frameworks */, - 8214F8C438B44E2FBB938C2A /* libRCTLinking.a in Frameworks */, - 79740AC54C6C44DCA7869429 /* libRCTNetwork.a in Frameworks */, - C165E2EDBE6C453E80C7884D /* libRCTSettings.a in Frameworks */, - 420CB77345654F5292936638 /* libRCTVibration.a in Frameworks */, - BFC5B2EEED9646F990AA7A1D /* libRCTCameraRoll.a in Frameworks */, - E736A41CF63F427896B3B129 /* libART.a in Frameworks */, - 0C50E9B4E8D645D49A3BB19E /* JavaScriptCore.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 485009E91E2FF23C009B6610 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 485009ED1E2FF23C009B6610 /* ElectrodeContainer.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 17E3EB4479A049CEABAE35AA /* Products */ = { - isa = PBXGroup; - children = ( - 94FFE1F7CD86481D94F99F43 /* libART.a */, - 9CED268E22FCD25E00063FD9 /* libART-tvOS.a */, - ); - name = Products; - path = undefined; - sourceTree = ""; - }; - 226325CE1E80594F00CD0B10 /* ReactNative */ = { - isa = PBXGroup; - children = ( - 77638343E21D4BB5B87A37DE /* React.xcodeproj */, - D13F3CDBBB8541189EF527DA /* RCTActionSheet.xcodeproj */, - B443619B9FF94ECA9A111692 /* RCTImage.xcodeproj */, - 8E28B8DA2EC747438624CFF3 /* RCTAnimation.xcodeproj */, - 6C3A05F248D1452096FFD970 /* RCTText.xcodeproj */, - 6C1954F3B1E249AE87A69516 /* RCTWebSocket.xcodeproj */, - 8763789FADD94548959D4893 /* RCTGeolocation.xcodeproj */, - F75EE847804B47D9B8BF479E /* RCTLinking.xcodeproj */, - CDD495FB6F9846AD8C417A15 /* RCTNetwork.xcodeproj */, - 65E50A07F277474DBE6A856B /* RCTSettings.xcodeproj */, - 9084D6D22FC04BB8BCC42CFF /* RCTVibration.xcodeproj */, - E339A442BDBA4CB18F48DF41 /* RCTCameraRoll.xcodeproj */, - B8564D04E3A2420FA2F9DDEC /* ART.xcodeproj */, - ); - name = ReactNative; - sourceTree = ""; - }; - 22C096A91EA0893F00E1486A /* APIs */ = { - isa = PBXGroup; - children = ( - 5304CDF5DB384C32BA2EA69C /* EnNavigationAPI.swift */, - EFF6ADCA7FEC4748ACE29FDF /* EnNavigationEvents.swift */, - B04E28251C524394823B0500 /* EnNavigationRequests.swift */, - 87985A16D462416387C8AA93 /* ErnNavRoute.swift */, - B51E26151E9C4DBD8BC20329 /* NavigationBar.swift */, - 32865ABE6DF8405CB004B21B /* NavigationBarButton.swift */, - ); - name = APIs; - sourceTree = ""; - }; - 22CB67F120C9C44C0031A349 /* Config */ = { - isa = PBXGroup; - children = ( - 22CB684120C9C46A0031A349 /* ElectrodeContainer-Debug.xcconfig */, - 22CB684020C9C46A0031A349 /* ElectrodeContainer-QADeployment.xcconfig */, - 22CB684220C9C46A0031A349 /* ElectrodeContainer-Release.xcconfig */, - 22CB684820C9C46B0031A349 /* ElectrodeContainerTests-Debug.xcconfig */, - 22CB684620C9C46A0031A349 /* ElectrodeContainerTests-QADeployment.xcconfig */, - 22CB684420C9C46A0031A349 /* ElectrodeContainerTests-Release.xcconfig */, - 22CB684720C9C46A0031A349 /* Project-Debug.xcconfig */, - 22CB683D20C9C46A0031A349 /* Project-QADeployment.xcconfig */, - 22CB683E20C9C46A0031A349 /* Project-Release.xcconfig */, - ); - path = Config; - sourceTree = ""; - }; - 22FD4D1E1E96ECBB00FC81DB /* ElectrodeReactNativeBridge */ = { - isa = PBXGroup; - children = ( - 851E4F8EF4514B7BB3E71AF1 /* ElectrodeObject.swift */, - BDC9519B0746427984E5FE01 /* Bridgeable.swift */, - 362B0E9889B24193BC81E6D0 /* ElectrodeRequestHandlerProcessor.swift */, - A057CF694EC548B394E2CF10 /* ElectrodeRequestProcessor.swift */, - 5C7967B7BE9D4661954FC19D /* ElectrodeUtilities.swift */, - 04C555EFA6184FD2875AF612 /* EventListenerProcessor.swift */, - A7ECB51FD985493A87D30F1A /* EventProcessor.swift */, - A5F971FAC41D44E78FD31AD5 /* Processor.swift */, - 09DFDE37198F448E87BA96F8 /* None.swift */, - A216D8D25DCE41E383A0F606 /* ElectrodeBridgeEvent.m */, - 2A7129D0314E4CB8AA310134 /* ElectrodeBridgeFailureMessage.m */, - DA4B4C50B92C49A087965F2F /* ElectrodeBridgeHolder.m */, - 4CC10A3721094951ABA05D5F /* ElectrodeBridgeMessage.m */, - B35CD5F4052D4516A258FE13 /* ElectrodeBridgeProtocols.m */, - 591BA844CEB3431FB6829D14 /* ElectrodeBridgeRequest.m */, - 299EF5217BDB4ACF8E21EE74 /* ElectrodeBridgeResponse.m */, - F70137B9E2C14C479F837A27 /* ElectrodeBridgeTransaction.m */, - 3530623ECDCD42898E81AFBC /* ElectrodeBridgeTransceiver.m */, - 350D8DA851494F83B994749C /* ElectrodeEventDispatcher.m */, - 786EBCBF098744879C123F6E /* ElectrodeEventRegistrar.m */, - 3A1881D5BD284F419786030D /* ElectrodeRequestDispatcher.m */, - 32F3D67938B04E3996517A50 /* ElectrodeRequestRegistrar.m */, - 7A4E2D42B8BD4258B09E2BFD /* ElectrodeLogger.m */, - 55094A210FE24B108B096F5B /* ElectrodeBridgeEvent.h */, - E0114A89F7FA4E098F6082B1 /* ElectrodeBridgeFailureMessage.h */, - 5EE02355CF304DAEA4541079 /* ElectrodeBridgeHolder.h */, - 713138729A2F4BE48ED2BAD6 /* ElectrodeBridgeMessage.h */, - 27AEE9FED66443E1A7297E5A /* ElectrodeBridgeProtocols.h */, - A47D9F6369F44C7187AC8102 /* ElectrodeBridgeRequest.h */, - B01D49AD4AB44F97A5C8B443 /* ElectrodeBridgeTransaction.h */, - 54EF96D11FE5479EB1044525 /* ElectrodeBridgeTransceiver.h */, - F1BC9B3731C2431C9FDACC04 /* ElectrodeBridgeTransceiver_Internal.h */, - F71AD34EAC6241C09CC2574F /* ElectrodeEventDispatcher.h */, - 14046E0EE9E047EFA2DB009F /* ElectrodeEventRegistrar.h */, - BD67CC2987FF4E298998377A /* ElectrodeRequestDispatcher.h */, - 731067E22B774202A23C4FD6 /* ElectrodeRequestRegistrar.h */, - 0ABBCC53B9884ED5810694E3 /* ElectrodeReactNativeBridge.h */, - C047C4A90791495198E6C5ED /* ElectrodeBridgeResponse.h */, - E9F48C69AF12414DAA214C69 /* ElectrodeLogger.h */, - ); - name = ElectrodeReactNativeBridge; - sourceTree = ""; - }; - 301CBA4B1F342FB00048C58B /* Resources */ = { - isa = PBXGroup; - children = ( - ); - name = Resources; - sourceTree = ""; - }; - 36F9C3EE5E4F47D685F835E5 /* Products */ = { - isa = PBXGroup; - children = ( - 2CC35B65B4CE42D8B881C27B /* libRCTLinking.a */, - 9CED269722FCD25E00063FD9 /* libRCTLinking-tvOS.a */, - ); - name = Products; - path = undefined; - sourceTree = ""; - }; - 3C86C4A0C4A24DE984A92BCF /* Products */ = { - isa = PBXGroup; - children = ( - 8FEBA5FE709A4216AC7AB22D /* libReact.a */, - 9CED26BA22FCD25E00063FD9 /* libReact.a */, - 9CED26BC22FCD25E00063FD9 /* libyoga.a */, - 9CED26BE22FCD25E00063FD9 /* libyoga.a */, - 9CED26C022FCD25E00063FD9 /* libcxxreact.a */, - 9CED26C222FCD25E00063FD9 /* libcxxreact.a */, - 9CED26C422FCD25E00063FD9 /* libjsinspector.a */, - 9CED26C622FCD25E00063FD9 /* libjsinspector-tvOS.a */, - 9CED26C822FCD25E00063FD9 /* libthird-party.a */, - 9CED26CA22FCD25E00063FD9 /* libthird-party.a */, - 9CED26CC22FCD25E00063FD9 /* libdouble-conversion.a */, - 9CED26CE22FCD25E00063FD9 /* libdouble-conversion.a */, - 9CED26D022FCD25E00063FD9 /* libjsi.a */, - 9CED26D222FCD25E00063FD9 /* libjsiexecutor.a */, - 9CED26D422FCD25E00063FD9 /* libjsi-tvOS.a */, - 9CED26D622FCD25E00063FD9 /* libjsiexecutor-tvOS.a */, - ); - name = Products; - path = undefined; - sourceTree = ""; - }; - 3CBD5E7B111045CFAF8E1E2B /* Products */ = { - isa = PBXGroup; - children = ( - 3A65665B17F24C368B32010D /* libRCTWebSocket.a */, - 9CED26A522FCD25E00063FD9 /* libRCTWebSocket-tvOS.a */, - 9CED26A722FCD25E00063FD9 /* libfishhook.a */, - 9CED26A922FCD25E00063FD9 /* libfishhook-tvOS.a */, - ); - name = Products; - path = undefined; - sourceTree = ""; - }; - 485009D91E2FF23B009B6610 = { - isa = PBXGroup; - children = ( - 22CB67F120C9C44C0031A349 /* Config */, - 485009E51E2FF23B009B6610 /* ElectrodeContainer */, - 485009F01E2FF23C009B6610 /* ElectrodeContainerTests */, - 485009E41E2FF23B009B6610 /* Products */, - 485009FD1E2FF25D009B6610 /* Libraries */, - 48500AA71E2FFA14009B6610 /* Frameworks */, - ); - sourceTree = ""; - }; - 485009E41E2FF23B009B6610 /* Products */ = { - isa = PBXGroup; - children = ( - 485009E31E2FF23B009B6610 /* ElectrodeContainer.framework */, - 485009EC1E2FF23C009B6610 /* ElectrodeContainerTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 485009E51E2FF23B009B6610 /* ElectrodeContainer */ = { - isa = PBXGroup; - children = ( - 7F9A82FD1FB117530026F523 /* APIImpls */, - 301CBA4B1F342FB00048C58B /* Resources */, - 2265A4A11EB26943007D6C3D /* Info.plist */, - 22C096A91EA0893F00E1486A /* APIs */, - 22FD4D1E1E96ECBB00FC81DB /* ElectrodeReactNativeBridge */, - 968333D51E54E3470031C565 /* ElectrodeBridgeDelegate.h */, - 968333D61E54E3470031C565 /* ElectrodeBridgeDelegate.m */, - 485009E61E2FF23B009B6610 /* ElectrodeContainer.h */, - 48500A961E2FF55B009B6610 /* ElectrodeReactNative.h */, - 30F8CDED1E67946E00413247 /* ElectrodeReactNative_Internal.h */, - 48500A971E2FF55B009B6610 /* ElectrodeReactNative.m */, - 301CB9011F33F3450048C58B /* NSBundle+frameworkBundle.h */, - 301CB9001F33F3450048C58B /* NSBundle+frameworkBundle.m */, - 304000E72098E1F000BF751C /* ElectrodePluginConfig.h */, - ); - path = ElectrodeContainer; - sourceTree = ""; - }; - 485009F01E2FF23C009B6610 /* ElectrodeContainerTests */ = { - isa = PBXGroup; - children = ( - 485009F31E2FF23C009B6610 /* Info.plist */, - ); - path = ElectrodeContainerTests; - sourceTree = ""; - }; - 485009FD1E2FF25D009B6610 /* Libraries */ = { - isa = PBXGroup; - children = ( - 226325CE1E80594F00CD0B10 /* ReactNative */, - 9654B8921E5CCA1D00AFF607 /* MiniApp */, - ); - name = Libraries; - path = ElectrodeContainer/Libraries; - sourceTree = ""; - }; - 48500AA71E2FFA14009B6610 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 833D2DFD640C411F911E41A4 /* JavaScriptCore.framework */, - ); - name = Frameworks; - path = ElectrodeContainer/Frameworks; - sourceTree = ""; - }; - 605B3A2727E24D988E568BD6 /* Products */ = { - isa = PBXGroup; - children = ( - D395975A278748ED92D49BD6 /* libRCTText.a */, - 9CED26A022FCD25E00063FD9 /* libRCTText-tvOS.a */, - ); - name = Products; - path = undefined; - sourceTree = ""; - }; - 7E68CADD61AA42C88831A7B6 /* Products */ = { - isa = PBXGroup; - children = ( - AEFEDA9AD4CC4D4686114346 /* libRCTGeolocation.a */, - ); - name = Products; - path = undefined; - sourceTree = ""; - }; - 7F9A82FD1FB117530026F523 /* APIImpls */ = { - isa = PBXGroup; - children = ( - 9CED26DE22FCD28200063FD9 /* ENBarButtonItem.swift */, - 9CED26DF22FCD28200063FD9 /* ENMiniAppNavDataProvider.swift */, - 9CED26DC22FCD28200063FD9 /* ENNavigationAPIImpl.swift */, - 9CED26DB22FCD28200063FD9 /* ENNavigationDelegate.swift */, - 9CED26DA22FCD28200063FD9 /* ENNavigationProtocol.swift */, - 9CED26DD22FCD28200063FD9 /* MiniAppNavViewController.swift */, - 9CED26D722FCD25E00063FD9 /* ENCoreDelegate.swift */, - 9CED268B22FCD25E00063FD9 /* ENMiniAppDataProvider.swift */, - ); - name = APIImpls; - sourceTree = ""; - }; - 83159BF5981147D7BDE24950 /* Products */ = { - isa = PBXGroup; - children = ( - B20A40FFEA154059BC3FB982 /* libRCTNetwork.a */, - 9CED269A22FCD25E00063FD9 /* libRCTNetwork-tvOS.a */, - ); - name = Products; - path = undefined; - sourceTree = ""; - }; - 8AC04689078A4944851C7F2E /* Products */ = { - isa = PBXGroup; - children = ( - 3D4078273AF944FABC57F244 /* libRCTImage.a */, - 9CED269422FCD25E00063FD9 /* libRCTImage-tvOS.a */, - ); - name = Products; - path = undefined; - sourceTree = ""; - }; - 9654B8921E5CCA1D00AFF607 /* MiniApp */ = { - isa = PBXGroup; - children = ( - 22BF1FEA1E8DAAF800E7F500 /* assets */, - 223A89451E89CDC70092741E /* MiniApp.jsbundle */, - ); - path = MiniApp; - sourceTree = ""; - }; - 9BC572BC79564FE1B1C7A4FA /* Products */ = { - isa = PBXGroup; - children = ( - 9EF4A3CF42BC43D093634C94 /* libRCTAnimation.a */, - 9CED269122FCD25E00063FD9 /* libRCTAnimation.a */, - ); - name = Products; - path = undefined; - sourceTree = ""; - }; - A692B9A4C4FE4226876F70B8 /* Products */ = { - isa = PBXGroup; - children = ( - 8D3E7C0BF4DB4FC9AB175054 /* libRCTSettings.a */, - 9CED269D22FCD25E00063FD9 /* libRCTSettings-tvOS.a */, - ); - name = Products; - path = undefined; - sourceTree = ""; - }; - B2D38771CB464404A92A427D /* Products */ = { - isa = PBXGroup; - children = ( - A5CC8AC9E1BD45D6A5F1E6A1 /* libRCTCameraRoll.a */, - ); - name = Products; - path = undefined; - sourceTree = ""; - }; - B62BF81EDF3A4A39A79ABAAB /* Products */ = { - isa = PBXGroup; - children = ( - 2262E385FEDA4C97B4983A90 /* libRCTActionSheet.a */, - ); - name = Products; - path = undefined; - sourceTree = ""; - }; - C41FEA25A4324F1198A81FF3 /* Products */ = { - isa = PBXGroup; - children = ( - CC218C08DD284B16A0634B22 /* libRCTVibration.a */, - ); - name = Products; - path = undefined; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 485009E01E2FF23B009B6610 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 485009F41E2FF23C009B6610 /* ElectrodeContainer.h in Headers */, - 968333D71E54E3470031C565 /* ElectrodeBridgeDelegate.h in Headers */, - 301CB9031F33F3450048C58B /* NSBundle+frameworkBundle.h in Headers */, - 304000E82098E1F000BF751C /* ElectrodePluginConfig.h in Headers */, - 30F8CDEE1E67946E00413247 /* ElectrodeReactNative_Internal.h in Headers */, - 48500A981E2FF55B009B6610 /* ElectrodeReactNative.h in Headers */, - 5AF66CFF64264972AB288DB9 /* EnNavigationAPI.swift in Headers */, - F940558DA2C6479FAA77C7C1 /* EnNavigationEvents.swift in Headers */, - F9324805D5FD45CD9410FE6F /* EnNavigationRequests.swift in Headers */, - 62225122FB2146B2B2EA5E30 /* ErnNavRoute.swift in Headers */, - B3741C8FC2054CC5949244D9 /* NavigationBar.swift in Headers */, - A9AF96291FA141CFB7B6B83F /* NavigationBarButton.swift in Headers */, - 81438F617C744250A9721674 /* ElectrodeBridgeEvent.h in Headers */, - EC032DC01C08477F8A7767ED /* ElectrodeBridgeFailureMessage.h in Headers */, - 6FBC04E42C6B41B89D6D1DAA /* ElectrodeBridgeHolder.h in Headers */, - 5882599949AC402189490031 /* ElectrodeBridgeMessage.h in Headers */, - F097CB733B5A4A0CAB99DAE8 /* ElectrodeBridgeProtocols.h in Headers */, - 6BAAE9F2763B4402ADE1AC54 /* ElectrodeBridgeRequest.h in Headers */, - 2527DB8565FB4016AFCDE12D /* ElectrodeBridgeTransaction.h in Headers */, - 9479EC8BD76249F589897A91 /* ElectrodeBridgeTransceiver.h in Headers */, - 68AEE31B006E4602986E24D5 /* ElectrodeBridgeTransceiver_Internal.h in Headers */, - EB85CF22929045C5BC428994 /* ElectrodeEventDispatcher.h in Headers */, - A16A900D32FC4F258E6CCC33 /* ElectrodeEventRegistrar.h in Headers */, - 165D7B74389D4ACFB2331C41 /* ElectrodeRequestDispatcher.h in Headers */, - 6D5F2404ADCD45AF9B646391 /* ElectrodeRequestRegistrar.h in Headers */, - 55B0220FFD26498AB8DA1AEB /* ElectrodeReactNativeBridge.h in Headers */, - A4314A6A55AB409AA4019134 /* ElectrodeBridgeResponse.h in Headers */, - ABF3DEC107D94230B5FF5AB6 /* ElectrodeLogger.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 485009E21E2FF23B009B6610 /* ElectrodeContainer */ = { - isa = PBXNativeTarget; - buildConfigurationList = 485009F71E2FF23C009B6610 /* Build configuration list for PBXNativeTarget "ElectrodeContainer" */; - buildPhases = ( - 485009DE1E2FF23B009B6610 /* Sources */, - 485009DF1E2FF23B009B6610 /* Frameworks */, - 485009E01E2FF23B009B6610 /* Headers */, - 485009E11E2FF23B009B6610 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 95E754F82E9142BEB2D81F1E /* PBXTargetDependency */, - FEC1FF7E08D0458BB4A61E58 /* PBXTargetDependency */, - BBD1E8CB5A0F472893E5A0A0 /* PBXTargetDependency */, - 6872DA402A8A4A71B22C0A7C /* PBXTargetDependency */, - 9800AD3B482A4C74B6CD5D93 /* PBXTargetDependency */, - 17973A4D12BF46828F4BDE71 /* PBXTargetDependency */, - FC675074567D40149DA9EDBA /* PBXTargetDependency */, - 8B3CD473174F468497D66CA5 /* PBXTargetDependency */, - BA680B96F78C42F58C8ADC24 /* PBXTargetDependency */, - BA164F96C4E44D30BCC0BBAD /* PBXTargetDependency */, - 3E76B9B6254F41E6A4BC1305 /* PBXTargetDependency */, - C1AFAF56E4CF43E39B9B1A5E /* PBXTargetDependency */, - 70EA4499BB284827B209CE72 /* PBXTargetDependency */, - ); - name = ElectrodeContainer; - productName = ElectrodeContainer; - productReference = 485009E31E2FF23B009B6610 /* ElectrodeContainer.framework */; - productType = "com.apple.product-type.framework"; - }; - 485009EB1E2FF23C009B6610 /* ElectrodeContainerTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 485009FA1E2FF23C009B6610 /* Build configuration list for PBXNativeTarget "ElectrodeContainerTests" */; - buildPhases = ( - 485009E81E2FF23C009B6610 /* Sources */, - 485009E91E2FF23C009B6610 /* Frameworks */, - 485009EA1E2FF23C009B6610 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 485009EF1E2FF23C009B6610 /* PBXTargetDependency */, - ); - name = ElectrodeContainerTests; - productName = ElectrodeContainerTests; - productReference = 485009EC1E2FF23C009B6610 /* ElectrodeContainerTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 485009DA1E2FF23B009B6610 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 920; - ORGANIZATIONNAME = Walmart; - TargetAttributes = { - 485009E21E2FF23B009B6610 = { - CreatedOnToolsVersion = 8.2.1; - ProvisioningStyle = Automatic; - }; - 485009EB1E2FF23C009B6610 = { - CreatedOnToolsVersion = 8.2.1; - DevelopmentTeam = DXZ5VF8836; - ProvisioningStyle = Automatic; - }; - }; - }; - buildConfigurationList = 485009DD1E2FF23B009B6610 /* Build configuration list for PBXProject "ElectrodeContainer" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - en, - ); - mainGroup = 485009D91E2FF23B009B6610; - productRefGroup = 485009E41E2FF23B009B6610 /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = 17E3EB4479A049CEABAE35AA /* Products */; - ProjectRef = B8564D04E3A2420FA2F9DDEC /* ART.xcodeproj */; - }, - { - ProductGroup = B62BF81EDF3A4A39A79ABAAB /* Products */; - ProjectRef = D13F3CDBBB8541189EF527DA /* RCTActionSheet.xcodeproj */; - }, - { - ProductGroup = 9BC572BC79564FE1B1C7A4FA /* Products */; - ProjectRef = 8E28B8DA2EC747438624CFF3 /* RCTAnimation.xcodeproj */; - }, - { - ProductGroup = B2D38771CB464404A92A427D /* Products */; - ProjectRef = E339A442BDBA4CB18F48DF41 /* RCTCameraRoll.xcodeproj */; - }, - { - ProductGroup = 7E68CADD61AA42C88831A7B6 /* Products */; - ProjectRef = 8763789FADD94548959D4893 /* RCTGeolocation.xcodeproj */; - }, - { - ProductGroup = 8AC04689078A4944851C7F2E /* Products */; - ProjectRef = B443619B9FF94ECA9A111692 /* RCTImage.xcodeproj */; - }, - { - ProductGroup = 36F9C3EE5E4F47D685F835E5 /* Products */; - ProjectRef = F75EE847804B47D9B8BF479E /* RCTLinking.xcodeproj */; - }, - { - ProductGroup = 83159BF5981147D7BDE24950 /* Products */; - ProjectRef = CDD495FB6F9846AD8C417A15 /* RCTNetwork.xcodeproj */; - }, - { - ProductGroup = A692B9A4C4FE4226876F70B8 /* Products */; - ProjectRef = 65E50A07F277474DBE6A856B /* RCTSettings.xcodeproj */; - }, - { - ProductGroup = 605B3A2727E24D988E568BD6 /* Products */; - ProjectRef = 6C3A05F248D1452096FFD970 /* RCTText.xcodeproj */; - }, - { - ProductGroup = C41FEA25A4324F1198A81FF3 /* Products */; - ProjectRef = 9084D6D22FC04BB8BCC42CFF /* RCTVibration.xcodeproj */; - }, - { - ProductGroup = 3CBD5E7B111045CFAF8E1E2B /* Products */; - ProjectRef = 6C1954F3B1E249AE87A69516 /* RCTWebSocket.xcodeproj */; - }, - { - ProductGroup = 3C86C4A0C4A24DE984A92BCF /* Products */; - ProjectRef = 77638343E21D4BB5B87A37DE /* React.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 485009E21E2FF23B009B6610 /* ElectrodeContainer */, - 485009EB1E2FF23C009B6610 /* ElectrodeContainerTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - 2262E385FEDA4C97B4983A90 /* libRCTActionSheet.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTActionSheet.a; - remoteRef = 41BB5C8DCA9446E8851E9A6D /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 2CC35B65B4CE42D8B881C27B /* libRCTLinking.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTLinking.a; - remoteRef = 53D593800AEB490EB3AFB79C /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3A65665B17F24C368B32010D /* libRCTWebSocket.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTWebSocket.a; - remoteRef = 0FEF08FC8F93406CA3C755B4 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3D4078273AF944FABC57F244 /* libRCTImage.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTImage.a; - remoteRef = 9533670FC1804F11A9B4F34F /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 8D3E7C0BF4DB4FC9AB175054 /* libRCTSettings.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTSettings.a; - remoteRef = 77F130CA95EB4737A982E03E /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 8FEBA5FE709A4216AC7AB22D /* libReact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libReact.a; - remoteRef = 73582E19E7B643C391E8A697 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 94FFE1F7CD86481D94F99F43 /* libART.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libART.a; - remoteRef = 72499D8C5EB441019F2852C4 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED268E22FCD25E00063FD9 /* libART-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libART-tvOS.a"; - remoteRef = 9CED268D22FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED269122FCD25E00063FD9 /* libRCTAnimation.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTAnimation.a; - remoteRef = 9CED269022FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED269422FCD25E00063FD9 /* libRCTImage-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTImage-tvOS.a"; - remoteRef = 9CED269322FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED269722FCD25E00063FD9 /* libRCTLinking-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTLinking-tvOS.a"; - remoteRef = 9CED269622FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED269A22FCD25E00063FD9 /* libRCTNetwork-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTNetwork-tvOS.a"; - remoteRef = 9CED269922FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED269D22FCD25E00063FD9 /* libRCTSettings-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTSettings-tvOS.a"; - remoteRef = 9CED269C22FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED26A022FCD25E00063FD9 /* libRCTText-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTText-tvOS.a"; - remoteRef = 9CED269F22FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED26A522FCD25E00063FD9 /* libRCTWebSocket-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTWebSocket-tvOS.a"; - remoteRef = 9CED26A422FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED26A722FCD25E00063FD9 /* libfishhook.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libfishhook.a; - remoteRef = 9CED26A622FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED26A922FCD25E00063FD9 /* libfishhook-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libfishhook-tvOS.a"; - remoteRef = 9CED26A822FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED26BA22FCD25E00063FD9 /* libReact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libReact.a; - remoteRef = 9CED26B922FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED26BC22FCD25E00063FD9 /* libyoga.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libyoga.a; - remoteRef = 9CED26BB22FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED26BE22FCD25E00063FD9 /* libyoga.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libyoga.a; - remoteRef = 9CED26BD22FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED26C022FCD25E00063FD9 /* libcxxreact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libcxxreact.a; - remoteRef = 9CED26BF22FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED26C222FCD25E00063FD9 /* libcxxreact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libcxxreact.a; - remoteRef = 9CED26C122FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED26C422FCD25E00063FD9 /* libjsinspector.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libjsinspector.a; - remoteRef = 9CED26C322FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED26C622FCD25E00063FD9 /* libjsinspector-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libjsinspector-tvOS.a"; - remoteRef = 9CED26C522FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED26C822FCD25E00063FD9 /* libthird-party.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libthird-party.a"; - remoteRef = 9CED26C722FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED26CA22FCD25E00063FD9 /* libthird-party.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libthird-party.a"; - remoteRef = 9CED26C922FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED26CC22FCD25E00063FD9 /* libdouble-conversion.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libdouble-conversion.a"; - remoteRef = 9CED26CB22FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED26CE22FCD25E00063FD9 /* libdouble-conversion.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libdouble-conversion.a"; - remoteRef = 9CED26CD22FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED26D022FCD25E00063FD9 /* libjsi.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libjsi.a; - remoteRef = 9CED26CF22FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED26D222FCD25E00063FD9 /* libjsiexecutor.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libjsiexecutor.a; - remoteRef = 9CED26D122FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED26D422FCD25E00063FD9 /* libjsi-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libjsi-tvOS.a"; - remoteRef = 9CED26D322FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9CED26D622FCD25E00063FD9 /* libjsiexecutor-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libjsiexecutor-tvOS.a"; - remoteRef = 9CED26D522FCD25E00063FD9 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 9EF4A3CF42BC43D093634C94 /* libRCTAnimation.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTAnimation.a; - remoteRef = AA346B9E39DE440688A7EC81 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - A5CC8AC9E1BD45D6A5F1E6A1 /* libRCTCameraRoll.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTCameraRoll.a; - remoteRef = 5B1FBA865E234EF0865367CC /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - AEFEDA9AD4CC4D4686114346 /* libRCTGeolocation.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTGeolocation.a; - remoteRef = 9FEC5ED3CAB84F5D9305EF75 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - B20A40FFEA154059BC3FB982 /* libRCTNetwork.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTNetwork.a; - remoteRef = F3863AC4ADCB4E4DBA1FE3B1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - CC218C08DD284B16A0634B22 /* libRCTVibration.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTVibration.a; - remoteRef = C5DD734843CC4A5FBEDA2EDC /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - D395975A278748ED92D49BD6 /* libRCTText.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTText.a; - remoteRef = E9BD6FE2FF634C2BB1BC3644 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 485009E11E2FF23B009B6610 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 22BF1FEB1E8DAAF800E7F500 /* assets in Resources */, - 223A89461E89CDC70092741E /* MiniApp.jsbundle in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 485009EA1E2FF23C009B6610 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 485009DE1E2FF23B009B6610 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9CED26E422FCD28300063FD9 /* ENBarButtonItem.swift in Sources */, - 48500A991E2FF55B009B6610 /* ElectrodeReactNative.m in Sources */, - 301CB9021F33F3450048C58B /* NSBundle+frameworkBundle.m in Sources */, - 968333D81E54E3470031C565 /* ElectrodeBridgeDelegate.m in Sources */, - 1D7AA91C4BC745BF90E71043 /* EnNavigationAPI.swift in Sources */, - 1CA73DA603A64335A5078C31 /* EnNavigationEvents.swift in Sources */, - 0A404DBA727244A89E392E06 /* EnNavigationRequests.swift in Sources */, - 282F7CCA04F34EBFA3A658F8 /* ErnNavRoute.swift in Sources */, - 902D53A491DD4BB59CA6807B /* NavigationBar.swift in Sources */, - CE2794B871F6499DB9649642 /* NavigationBarButton.swift in Sources */, - 9CED26E022FCD28300063FD9 /* ENNavigationProtocol.swift in Sources */, - BCADDB31D88B472B8F4AF756 /* ElectrodeObject.swift in Sources */, - 03085EA4034047DCB1580CB3 /* Bridgeable.swift in Sources */, - 8D0AC6B260F1464DBBFC56A4 /* ElectrodeRequestHandlerProcessor.swift in Sources */, - B174A767202B49818EDA1075 /* ElectrodeRequestProcessor.swift in Sources */, - 3DC42950BF4D421092CE64FC /* ElectrodeUtilities.swift in Sources */, - FED46BC5232444FC8D100D89 /* EventListenerProcessor.swift in Sources */, - 6241522B86FF4863AE35E201 /* EventProcessor.swift in Sources */, - 71DBED305EB74B2BA08E4053 /* Processor.swift in Sources */, - D69EB99835364A5F9C0595FB /* None.swift in Sources */, - C73B3D516283488FA1565909 /* ElectrodeBridgeEvent.m in Sources */, - 7A3D9CB3303645F3B84F279D /* ElectrodeBridgeFailureMessage.m in Sources */, - 9CED26D922FCD25E00063FD9 /* ENCoreDelegate.swift in Sources */, - 9CED26E222FCD28300063FD9 /* ENNavigationAPIImpl.swift in Sources */, - 4E1CEE9B44EC4C668224E0A1 /* ElectrodeBridgeHolder.m in Sources */, - 0232350A6E4F449DAF3F6599 /* ElectrodeBridgeMessage.m in Sources */, - 5B3622C577854DFC96D6FB32 /* ElectrodeBridgeProtocols.m in Sources */, - 62714413D86E4DA2827C257B /* ElectrodeBridgeRequest.m in Sources */, - 9CED26D822FCD25E00063FD9 /* ENMiniAppDataProvider.swift in Sources */, - E9D787A6DE994EC1B6E84C67 /* ElectrodeBridgeResponse.m in Sources */, - 6B4636901EAD42EBB56948E7 /* ElectrodeBridgeTransaction.m in Sources */, - C743AC8759A9491E80BE2F9F /* ElectrodeBridgeTransceiver.m in Sources */, - 5E8FB809616943F6995A2E9C /* ElectrodeEventDispatcher.m in Sources */, - 9CED26E122FCD28300063FD9 /* ENNavigationDelegate.swift in Sources */, - 9CED26E322FCD28300063FD9 /* MiniAppNavViewController.swift in Sources */, - 875A41954E834F21BCF5DFBA /* ElectrodeEventRegistrar.m in Sources */, - 9CED26E522FCD28300063FD9 /* ENMiniAppNavDataProvider.swift in Sources */, - FA10283518114DC091B0C4EE /* ElectrodeRequestDispatcher.m in Sources */, - 516C8CEA60D340AE83F76421 /* ElectrodeRequestRegistrar.m in Sources */, - 031F10E4B4BE4F3EB834D0BF /* ElectrodeLogger.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 485009E81E2FF23C009B6610 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 17973A4D12BF46828F4BDE71 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = RCTWebSocket; - targetProxy = F6FB38D381624430B9E266F3 /* PBXContainerItemProxy */; - }; - 3E76B9B6254F41E6A4BC1305 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = RCTVibration; - targetProxy = 2F52B7E571084FEC871A7558 /* PBXContainerItemProxy */; - }; - 485009EF1E2FF23C009B6610 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 485009E21E2FF23B009B6610 /* ElectrodeContainer */; - targetProxy = 485009EE1E2FF23C009B6610 /* PBXContainerItemProxy */; - }; - 6872DA402A8A4A71B22C0A7C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = RCTAnimation; - targetProxy = 653C1ED590E84C108D0DDED4 /* PBXContainerItemProxy */; - }; - 70EA4499BB284827B209CE72 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = ART; - targetProxy = BFE1AAF337D94502999D79BD /* PBXContainerItemProxy */; - }; - 8B3CD473174F468497D66CA5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = RCTLinking; - targetProxy = 61BE059DADDD4980B6383683 /* PBXContainerItemProxy */; - }; - 95E754F82E9142BEB2D81F1E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = React; - targetProxy = 5B186EAF254E4D12B72613CA /* PBXContainerItemProxy */; - }; - 9800AD3B482A4C74B6CD5D93 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = RCTText; - targetProxy = D0301DB1E6B6422AAF8D2F5F /* PBXContainerItemProxy */; - }; - BA164F96C4E44D30BCC0BBAD /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = RCTSettings; - targetProxy = 45D00E5A8DAE479682009011 /* PBXContainerItemProxy */; - }; - BA680B96F78C42F58C8ADC24 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = RCTNetwork; - targetProxy = 1D962BA5FB794481BDF87F7E /* PBXContainerItemProxy */; - }; - BBD1E8CB5A0F472893E5A0A0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = RCTImage; - targetProxy = C46344640D474B1685AC899A /* PBXContainerItemProxy */; - }; - C1AFAF56E4CF43E39B9B1A5E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = RCTCameraRoll; - targetProxy = A92C2D226F2C467890EF6CEA /* PBXContainerItemProxy */; - }; - FC675074567D40149DA9EDBA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = RCTGeolocation; - targetProxy = 4C0333DCD8CC4267995E3F45 /* PBXContainerItemProxy */; - }; - FEC1FF7E08D0458BB4A61E58 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = RCTActionSheet; - targetProxy = C0B0DC3C28D94E059C82A051 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 303268E41EA8139700A41A8F /* QADeployment */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 22CB683D20C9C46A0031A349 /* Project-QADeployment.xcconfig */; - buildSettings = { - }; - name = QADeployment; - }; - 303268E51EA8139700A41A8F /* QADeployment */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 22CB684020C9C46A0031A349 /* ElectrodeContainer-QADeployment.xcconfig */; - buildSettings = { - }; - name = QADeployment; - }; - 303268E61EA8139700A41A8F /* QADeployment */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 22CB684620C9C46A0031A349 /* ElectrodeContainerTests-QADeployment.xcconfig */; - buildSettings = { - }; - name = QADeployment; - }; - 485009F51E2FF23C009B6610 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 22CB684720C9C46A0031A349 /* Project-Debug.xcconfig */; - buildSettings = { - }; - name = Debug; - }; - 485009F61E2FF23C009B6610 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 22CB683E20C9C46A0031A349 /* Project-Release.xcconfig */; - buildSettings = { - }; - name = Release; - }; - 485009F81E2FF23C009B6610 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 22CB684120C9C46A0031A349 /* ElectrodeContainer-Debug.xcconfig */; - buildSettings = { - }; - name = Debug; - }; - 485009F91E2FF23C009B6610 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 22CB684220C9C46A0031A349 /* ElectrodeContainer-Release.xcconfig */; - buildSettings = { - }; - name = Release; - }; - 485009FB1E2FF23C009B6610 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 22CB684820C9C46B0031A349 /* ElectrodeContainerTests-Debug.xcconfig */; - buildSettings = { - }; - name = Debug; - }; - 485009FC1E2FF23C009B6610 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 22CB684420C9C46A0031A349 /* ElectrodeContainerTests-Release.xcconfig */; - buildSettings = { - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 485009DD1E2FF23B009B6610 /* Build configuration list for PBXProject "ElectrodeContainer" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 485009F51E2FF23C009B6610 /* Debug */, - 303268E41EA8139700A41A8F /* QADeployment */, - 485009F61E2FF23C009B6610 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 485009F71E2FF23C009B6610 /* Build configuration list for PBXNativeTarget "ElectrodeContainer" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 485009F81E2FF23C009B6610 /* Debug */, - 303268E51EA8139700A41A8F /* QADeployment */, - 485009F91E2FF23C009B6610 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 485009FA1E2FF23C009B6610 /* Build configuration list for PBXNativeTarget "ElectrodeContainerTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 485009FB1E2FF23C009B6610 /* Debug */, - 303268E61EA8139700A41A8F /* QADeployment */, - 485009FC1E2FF23C009B6610 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 485009DA1E2FF23B009B6610 /* Project object */; -} diff --git a/ios/container/ElectrodeContainer.xcodeproj/xcshareddata/xcschemes/ECDevice.xcscheme b/ios/container/ElectrodeContainer.xcodeproj/xcshareddata/xcschemes/ECDevice.xcscheme deleted file mode 100644 index 84db7964..00000000 --- a/ios/container/ElectrodeContainer.xcodeproj/xcshareddata/xcschemes/ECDevice.xcscheme +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ios/container/ElectrodeContainer.xcodeproj/xcshareddata/xcschemes/ElectrodeContainer.xcscheme b/ios/container/ElectrodeContainer.xcodeproj/xcshareddata/xcschemes/ElectrodeContainer.xcscheme deleted file mode 100644 index caa09637..00000000 --- a/ios/container/ElectrodeContainer.xcodeproj/xcshareddata/xcschemes/ElectrodeContainer.xcscheme +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ios/container/ElectrodeContainer/APIs/EnNavigationAPI.swift b/ios/container/ElectrodeContainer/APIs/EnNavigationAPI.swift deleted file mode 100644 index 5336afc2..00000000 --- a/ios/container/ElectrodeContainer/APIs/EnNavigationAPI.swift +++ /dev/null @@ -1,202 +0,0 @@ -#if swift(>=4.0) -@objcMembers public class EnNavigationAPI: NSObject { - - static let kRequestBack = "com.ernnavigationApi.ern.api.request.back"; - - static let kRequestFinish = "com.ernnavigationApi.ern.api.request.finish"; - - static let kRequestNavigate = "com.ernnavigationApi.ern.api.request.navigate"; - static let kEventOnNavButtonClick = "com.ernnavigationApi.ern.api.event.onNavButtonClick"; - - - static let kRequestUpdate = "com.ernnavigationApi.ern.api.request.update"; - - public lazy var events: EnNavigationAPIEvents = { - return EnNavigationEvents() - }() - - - public lazy var requests: EnNavigationAPIRequests = { - return EnNavigationRequests() - }() -} - -@objcMembers public class EnNavigationAPIEvents: NSObject { - public func addOnNavButtonClickEventListener(eventListener: @escaping ElectrodeBridgeEventListener) -> UUID?{ - assertionFailure("should override") - return UUID() - } - - public func removeOnNavButtonClickEventListener(uuid: UUID) -> ElectrodeBridgeEventListener? { - assertionFailure("should override") - return nil - } - - public func emitEventOnNavButtonClick(buttonId: String) { - assertionFailure("should override") - - } -} - -@objcMembers public class EnNavigationAPIRequests: NSObject { - public func registerBackRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{ - assertionFailure("should override") - return UUID() - } - - public func registerFinishRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{ - assertionFailure("should override") - return UUID() - } - - public func registerNavigateRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{ - assertionFailure("should override") - return UUID() - } - - public func registerUpdateRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{ - assertionFailure("should override") - return UUID() - } - - - public func unregisterBackRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - assertionFailure("should override") - return nil - } - - public func unregisterFinishRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - assertionFailure("should override") - return nil - } - - public func unregisterNavigateRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - assertionFailure("should override") - return nil - } - - public func unregisterUpdateRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - assertionFailure("should override") - return nil - } - - - public func back(route: ErnNavRoute, responseCompletionHandler: @escaping ElectrodeBridgeResponseCompletionHandler) { - assertionFailure("should override") - } - - public func finish(finalPayload: String, responseCompletionHandler: @escaping ElectrodeBridgeResponseCompletionHandler) { - assertionFailure("should override") - } - - public func navigate(route: ErnNavRoute, responseCompletionHandler: @escaping ElectrodeBridgeResponseCompletionHandler) { - assertionFailure("should override") - } - - public func update(updatedRoute: ErnNavRoute, responseCompletionHandler: @escaping ElectrodeBridgeResponseCompletionHandler) { - assertionFailure("should override") - } - -} -#else -public class EnNavigationAPI: NSObject { - - static let kRequestBack = "com.ernnavigationApi.ern.api.request.back"; - - static let kRequestFinish = "com.ernnavigationApi.ern.api.request.finish"; - - static let kRequestNavigate = "com.ernnavigationApi.ern.api.request.navigate"; - static let kEventOnNavButtonClick = "com.ernnavigationApi.ern.api.event.onNavButtonClick"; - - - static let kRequestUpdate = "com.ernnavigationApi.ern.api.request.update"; - - public lazy var events: EnNavigationAPIEvents = { - return EnNavigationEvents() - }() - - - public lazy var requests: EnNavigationAPIRequests = { - return EnNavigationRequests() - }() -} - -public class EnNavigationAPIEvents: NSObject { - public func addOnNavButtonClickEventListener(eventListener: @escaping ElectrodeBridgeEventListener) -> UUID?{ - assertionFailure("should override") - return UUID() - } - - public func removeOnNavButtonClickEventListener(uuid: UUID) -> ElectrodeBridgeEventListener? { - assertionFailure("should override") - return nil - } - - public func emitEventOnNavButtonClick(buttonId: String) { - assertionFailure("should override") - - } -} - -public class EnNavigationAPIRequests: NSObject { - public func registerBackRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{ - assertionFailure("should override") - return UUID() - } - - public func registerFinishRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{ - assertionFailure("should override") - return UUID() - } - - public func registerNavigateRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{ - assertionFailure("should override") - return UUID() - } - - public func registerUpdateRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{ - assertionFailure("should override") - return UUID() - } - - - public func unregisterBackRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - assertionFailure("should override") - return nil - } - - public func unregisterFinishRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - assertionFailure("should override") - return nil - } - - public func unregisterNavigateRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - assertionFailure("should override") - return nil - } - - public func unregisterUpdateRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - assertionFailure("should override") - return nil - } - - - public func back(route: ErnNavRoute, responseCompletionHandler: @escaping ElectrodeBridgeResponseCompletionHandler) { - assertionFailure("should override") - } - - public func finish(finalPayload: String, responseCompletionHandler: @escaping ElectrodeBridgeResponseCompletionHandler) { - assertionFailure("should override") - } - - public func navigate(route: ErnNavRoute, responseCompletionHandler: @escaping ElectrodeBridgeResponseCompletionHandler) { - assertionFailure("should override") - } - - public func update(updatedRoute: ErnNavRoute, responseCompletionHandler: @escaping ElectrodeBridgeResponseCompletionHandler) { - assertionFailure("should override") - } - -} - -#endif diff --git a/ios/container/ElectrodeContainer/APIs/EnNavigationEvents.swift b/ios/container/ElectrodeContainer/APIs/EnNavigationEvents.swift deleted file mode 100644 index d2a52930..00000000 --- a/ios/container/ElectrodeContainer/APIs/EnNavigationEvents.swift +++ /dev/null @@ -1,50 +0,0 @@ -#if swift(>=4.0) -@objcMembers public class EnNavigationEvents: EnNavigationAPIEvents { - public override func addOnNavButtonClickEventListener(eventListener: @escaping ElectrodeBridgeEventListener) -> UUID?{ - let listenerProcessor = EventListenerProcessor( - eventName: EnNavigationAPI.kEventOnNavButtonClick, - eventPayloadClass: String.self, - eventListener: eventListener) - - return listenerProcessor.execute() - } - - - public override func removeOnNavButtonClickEventListener(uuid: UUID) -> ElectrodeBridgeEventListener? { - return ElectrodeBridgeHolder.removeEventListener(uuid) - } - - - public override func emitEventOnNavButtonClick(buttonId: String) { - let eventProcessor = EventProcessor( - eventName: EnNavigationAPI.kEventOnNavButtonClick, - eventPayload: buttonId) - - eventProcessor.execute() - } - -} -#else -public class EnNavigationEvents: EnNavigationAPIEvents { - public override func addOnNavButtonClickEventListener(eventListener: @escaping ElectrodeBridgeEventListener) -> UUID?{ - let listenerProcessor = EventListenerProcessor( - eventName: EnNavigationAPI.kEventOnNavButtonClick, - eventPayloadClass: String.self, - eventListener: eventListener) - - return listenerProcessor.execute() - } - - public override func removeOnNavButtonClickEventListener(uuid: UUID) -> ElectrodeBridgeEventListener? { - return ElectrodeBridgeHolder.removeEventListener(uuid) - } - - public override func emitEventOnNavButtonClick(buttonId: String) { - let eventProcessor = EventProcessor( - eventName: EnNavigationAPI.kEventOnNavButtonClick, - eventPayload: buttonId) - - eventProcessor.execute() - } -} -#endif diff --git a/ios/container/ElectrodeContainer/APIs/EnNavigationRequests.swift b/ios/container/ElectrodeContainer/APIs/EnNavigationRequests.swift deleted file mode 100644 index 35084f8d..00000000 --- a/ios/container/ElectrodeContainer/APIs/EnNavigationRequests.swift +++ /dev/null @@ -1,250 +0,0 @@ -#if swift(>=4.0) -@objcMembers public class EnNavigationRequests: EnNavigationAPIRequests { - - public override func registerBackRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{ - let requestHandlerProcessor = ElectrodeRequestHandlerProcessor(requestName: EnNavigationAPI.kRequestBack, - reqClass: ErnNavRoute.self, - respClass: None.self, - requestCompletionHandler: handler) - return requestHandlerProcessor.execute() - } - - public override func registerFinishRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{ - let requestHandlerProcessor = ElectrodeRequestHandlerProcessor(requestName: EnNavigationAPI.kRequestFinish, - reqClass: String.self, - respClass: None.self, - requestCompletionHandler: handler) - return requestHandlerProcessor.execute() - } - - public override func registerNavigateRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{ - let requestHandlerProcessor = ElectrodeRequestHandlerProcessor(requestName: EnNavigationAPI.kRequestNavigate, - reqClass: ErnNavRoute.self, - respClass: None.self, - requestCompletionHandler: handler) - return requestHandlerProcessor.execute() - } - - public override func registerUpdateRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{ - let requestHandlerProcessor = ElectrodeRequestHandlerProcessor(requestName: EnNavigationAPI.kRequestUpdate, - reqClass: ErnNavRoute.self, - respClass: None.self, - requestCompletionHandler: handler) - return requestHandlerProcessor.execute() - } - - - public override func unregisterBackRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - public override func unregisterFinishRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - public override func unregisterNavigateRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - public override func unregisterUpdateRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - //------------------------------------------------------------------------------------------------------------------------------------ - - - public override func back(route: ErnNavRoute, responseCompletionHandler: @escaping ElectrodeBridgeResponseCompletionHandler) { - let requestProcessor = ElectrodeRequestProcessor( - requestName: EnNavigationAPI.kRequestBack, - requestPayload: route, - respClass: None.self, - responseItemType: nil, - responseCompletionHandler: responseCompletionHandler) - - requestProcessor.execute() - } - - public override func finish(finalPayload: String, responseCompletionHandler: @escaping ElectrodeBridgeResponseCompletionHandler) { - let requestProcessor = ElectrodeRequestProcessor( - requestName: EnNavigationAPI.kRequestFinish, - requestPayload: finalPayload, - respClass: None.self, - responseItemType: nil, - responseCompletionHandler: responseCompletionHandler) - - requestProcessor.execute() - } - - public override func navigate(route: ErnNavRoute, responseCompletionHandler: @escaping ElectrodeBridgeResponseCompletionHandler) { - let requestProcessor = ElectrodeRequestProcessor( - requestName: EnNavigationAPI.kRequestNavigate, - requestPayload: route, - respClass: None.self, - responseItemType: nil, - responseCompletionHandler: responseCompletionHandler) - - requestProcessor.execute() - } - - public override func update(updatedRoute: ErnNavRoute, responseCompletionHandler: @escaping ElectrodeBridgeResponseCompletionHandler) { - let requestProcessor = ElectrodeRequestProcessor( - requestName: EnNavigationAPI.kRequestUpdate, - requestPayload: updatedRoute, - respClass: None.self, - responseItemType: nil, - responseCompletionHandler: responseCompletionHandler) - - requestProcessor.execute() - } -} -#else -public class EnNavigationRequests: EnNavigationAPIRequests { - - public override func registerBackRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{ - let requestHandlerProcessor = ElectrodeRequestHandlerProcessor(requestName: EnNavigationAPI.kRequestBack, - reqClass: ErnNavRoute.self, - respClass: None.self, - requestCompletionHandler: handler) - return requestHandlerProcessor.execute() - } - - public override func registerFinishRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{ - let requestHandlerProcessor = ElectrodeRequestHandlerProcessor(requestName: EnNavigationAPI.kRequestFinish, - reqClass: String.self, - respClass: None.self, - requestCompletionHandler: handler) - return requestHandlerProcessor.execute() - } - - public override func registerNavigateRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{ - let requestHandlerProcessor = ElectrodeRequestHandlerProcessor(requestName: EnNavigationAPI.kRequestNavigate, - reqClass: ErnNavRoute.self, - respClass: None.self, - requestCompletionHandler: handler) - return requestHandlerProcessor.execute() - } - - public override func registerUpdateRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{ - let requestHandlerProcessor = ElectrodeRequestHandlerProcessor(requestName: EnNavigationAPI.kRequestUpdate, - reqClass: ErnNavRoute.self, - respClass: None.self, - requestCompletionHandler: handler) - return requestHandlerProcessor.execute() - } - - //------------------------------------------------------------------------------------------------------------------------------------ - - - - public override func unregisterBackRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - public override func unregisterFinishRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - public override func unregisterNavigateRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - public override func unregisterUpdateRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - public override func back(route: ErnNavRoute, responseCompletionHandler: @escaping ElectrodeBridgeResponseCompletionHandler) { - let requestProcessor = ElectrodeRequestProcessor( - requestName: EnNavigationAPI.kRequestBack, - requestPayload: route, - respClass: None.self, - responseItemType: nil, - responseCompletionHandler: responseCompletionHandler) - - requestProcessor.execute() - } - - - public override func unregisterBackRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - public override func unregisterFinishRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - public override func unregisterNavigateRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - public override func unregisterUpdateRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - public override func finish(finalPayload: String, responseCompletionHandler: @escaping ElectrodeBridgeResponseCompletionHandler) { - let requestProcessor = ElectrodeRequestProcessor( - requestName: EnNavigationAPI.kRequestFinish, - requestPayload: finalPayload, - respClass: None.self, - responseItemType: nil, - responseCompletionHandler: responseCompletionHandler) - - requestProcessor.execute() - } - - - public override func unregisterBackRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - public override func unregisterFinishRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - public override func unregisterNavigateRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - public override func unregisterUpdateRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - public override func navigate(route: ErnNavRoute, responseCompletionHandler: @escaping ElectrodeBridgeResponseCompletionHandler) { - let requestProcessor = ElectrodeRequestProcessor( - requestName: EnNavigationAPI.kRequestNavigate, - requestPayload: route, - respClass: None.self, - responseItemType: nil, - responseCompletionHandler: responseCompletionHandler) - - requestProcessor.execute() - } - - - public override func unregisterBackRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - public override func unregisterFinishRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - public override func unregisterNavigateRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - public override func unregisterUpdateRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? { - return ElectrodeBridgeHolder.unregisterRequestHandler(with: uuid) - } - - public override func update(updatedRoute: ErnNavRoute, responseCompletionHandler: @escaping ElectrodeBridgeResponseCompletionHandler) { - let requestProcessor = ElectrodeRequestProcessor( - requestName: EnNavigationAPI.kRequestUpdate, - requestPayload: updatedRoute, - respClass: None.self, - responseItemType: nil, - responseCompletionHandler: responseCompletionHandler) - - requestProcessor.execute() - } -} -#endif diff --git a/ios/container/ElectrodeContainer/APIs/ErnNavRoute.swift b/ios/container/ElectrodeContainer/APIs/ErnNavRoute.swift deleted file mode 100644 index f1526fe0..00000000 --- a/ios/container/ElectrodeContainer/APIs/ErnNavRoute.swift +++ /dev/null @@ -1,148 +0,0 @@ -#if swift(>=4.0) -@objcMembers public class ErnNavRoute: ElectrodeObject, Bridgeable { - - private static let tag = String(describing: type(of: self)) - - /** - Path of the Route. Mostly the name of the container(defined by the native app) or the miniapp name. The content of the path is mainly determined by the native implemenation of the API - */ - public let path: String - /** - Optional Payload (respresented as JSON String) needed by the screen you are trying to navigate to. - */ - public let jsonPayload: String? - public let navigationBar: NavigationBar? - - public init(path: String, jsonPayload: String?, navigationBar: NavigationBar?) { - self.path = path - self.jsonPayload = jsonPayload - self.navigationBar = navigationBar - super.init() - } - - public override init() { - self.path = String() - self.jsonPayload = nil - self.navigationBar = nil - super.init() - } - - required public init(dictionary:[AnyHashable:Any]) { - - - if let path = dictionary["path"] as? String { - self.path = path - } else { - assertionFailure("\(ErnNavRoute.tag) missing one or more required properties [path] ") - self.path = dictionary["path"] as! String - } - - - - - if let jsonPayload = dictionary["jsonPayload"] as? String { - self.jsonPayload = jsonPayload - } else { - self.jsonPayload = nil - } - - - if let navigationBarDict = dictionary["navigationBar"] as? [AnyHashable: Any] { - self.navigationBar = NavigationBar(dictionary: navigationBarDict) - } else { - self.navigationBar = nil - } - - super.init(dictionary: dictionary) - } - - public func toDictionary() -> NSDictionary { - - var dict = [:] as [AnyHashable : Any] - - dict["path"] = self.path - - if let nonNullJsonPayload = self.jsonPayload { - dict["jsonPayload"] = nonNullJsonPayload - } - if let nonNullNavigationBar = self.navigationBar { - dict["navigationBar"] = nonNullNavigationBar.toDictionary() - } - return dict as NSDictionary - } -} -#else - -public class ErnNavRoute: ElectrodeObject, Bridgeable { - - private static let tag = String(describing: type(of: self)) - - /** - Path of the Route. Mostly the name of the container(defined by the native app) or the miniapp name. The content of the path is mainly determined by the native implemenation of the API - */ - public let path: String - /** - Optional Payload (respresented as JSON String) needed by the screen you are trying to navigate to. - */ - public let jsonPayload: String? - public let navigationBar: NavigationBar? - - public init(path: String, jsonPayload: String?, navigationBar: NavigationBar?) { - self.path = path - self.jsonPayload = jsonPayload - self.navigationBar = navigationBar - super.init() - } - - public override init() { - self.path = String() - self.jsonPayload = nil - self.navigationBar = nil - super.init() - } - - required public init(dictionary:[AnyHashable:Any]) { - - - if let path = dictionary["path"] as? String { - self.path = path - } else { - assertionFailure("\(ErnNavRoute.tag) missing one or more required properties [path] ") - self.path = dictionary["path"] as! String - } - - - - - if let jsonPayload = dictionary["jsonPayload"] as? String { - self.jsonPayload = jsonPayload - } else { - self.jsonPayload = nil - } - - - if let navigationBarDict = dictionary["navigationBar"] as? [AnyHashable: Any] { - self.navigationBar = NavigationBar(dictionary: navigationBarDict) - } else { - self.navigationBar = nil - } - - super.init(dictionary: dictionary) - } - - public func toDictionary() -> NSDictionary { - - var dict = [:] as [AnyHashable : Any] - - dict["path"] = self.path - - if let nonNullJsonPayload = self.jsonPayload { - dict["jsonPayload"] = nonNullJsonPayload - } - if let nonNullNavigationBar = self.navigationBar { - dict["navigationBar"] = nonNullNavigationBar.toDictionary() - } - return dict as NSDictionary - } -} -#endif diff --git a/ios/container/ElectrodeContainer/APIs/NavigationBar.swift b/ios/container/ElectrodeContainer/APIs/NavigationBar.swift deleted file mode 100644 index c4375887..00000000 --- a/ios/container/ElectrodeContainer/APIs/NavigationBar.swift +++ /dev/null @@ -1,154 +0,0 @@ -#if swift(>=4.0) -@objcMembers public class NavigationBar: ElectrodeObject, Bridgeable { - - private static let tag = String(describing: type(of: self)) - - /** - Title of Nav Bar - */ - public let title: String - /** - Use to hide the navigation bar. - */ - public let hide: Bool? - /** - Right button properties - */ - public let buttons: [NavigationBarButton]? - - public init(title: String, hide: Bool?, buttons: [NavigationBarButton]?) { - self.title = title - self.hide = hide - self.buttons = buttons - super.init() - } - - public override init() { - self.title = String() - self.hide = nil - self.buttons = nil - super.init() - } - - required public init(dictionary:[AnyHashable:Any]) { - - - if let title = dictionary["title"] as? String { - self.title = title - } else { - assertionFailure("\(NavigationBar.tag) missing one or more required properties [title] ") - self.title = dictionary["title"] as! String - } - - - - - if let hide = dictionary["hide"] as? Bool { - self.hide = hide - } else { - self.hide = nil - } - - if let validButtons = try? NSObject.generateObject(data: dictionary["buttons"], classType: Array.self, itemType: NavigationBarButton.self), - let buttonsList = validButtons as? [NavigationBarButton] { - self.buttons = buttonsList - } else { - self.buttons = nil - } - - super.init(dictionary: dictionary) - } - - public func toDictionary() -> NSDictionary { - - var dict = [:] as [AnyHashable : Any] - - dict["title"] = self.title - - if let nonNullHide = self.hide { - dict["hide"] = nonNullHide - } - if let nonNullButtons = self.buttons { - dict["buttons"] = nonNullButtons.map{$0.toDictionary()} - } - return dict as NSDictionary - } -} -#else - -public class NavigationBar: ElectrodeObject, Bridgeable { - - private static let tag = String(describing: type(of: self)) - - /** - Title of Nav Bar - */ - public let title: String - /** - Use to hide the navigation bar. - */ - public let hide: Bool? - /** - Right button properties - */ - public let buttons: [NavigationBarButton]? - - public init(title: String, hide: Bool?, buttons: [NavigationBarButton]?) { - self.title = title - self.hide = hide - self.buttons = buttons - super.init() - } - - public override init() { - self.title = String() - self.hide = nil - self.buttons = nil - super.init() - } - - required public init(dictionary:[AnyHashable:Any]) { - - - if let title = dictionary["title"] as? String { - self.title = title - } else { - assertionFailure("\(NavigationBar.tag) missing one or more required properties [title] ") - self.title = dictionary["title"] as! String - } - - - - - if let hide = dictionary["hide"] as? Bool { - self.hide = hide - } else { - self.hide = nil - } - - if let validButtons = try? NSObject.generateObject(data: dictionary["buttons"], classType: Array.self, itemType: NavigationBarButton.self), - let buttonsList = validButtons as? [NavigationBarButton] { - self.buttons = buttonsList - } else { - self.buttons = nil - } - - super.init(dictionary: dictionary) - } - - public func toDictionary() -> NSDictionary { - - var dict = [:] as [AnyHashable : Any] - - dict["title"] = self.title - - if let nonNullHide = self.hide { - dict["hide"] = nonNullHide - } - if let nonNullButtons = self.buttons { - dict["buttons"] = nonNullButtons.map{$0.toDictionary()} - } - return dict as NSDictionary - } -} -#endif diff --git a/ios/container/ElectrodeContainer/APIs/NavigationBarButton.swift b/ios/container/ElectrodeContainer/APIs/NavigationBarButton.swift deleted file mode 100644 index 74f3115e..00000000 --- a/ios/container/ElectrodeContainer/APIs/NavigationBarButton.swift +++ /dev/null @@ -1,250 +0,0 @@ -#if swift(>=4.0) -@objcMembers public class NavigationBarButton: ElectrodeObject, Bridgeable { - - private static let tag = String(describing: type(of: self)) - - /** - Button title if any. - */ - public let title: String? - /** - Icon resource identifier that can be used find the icon - */ - public let icon: String? - /** - Id of the button, this namespace will be used as an identifier when a button click event is emitted. - */ - public let id: String - /** - Allowed enums: left, right - */ - public let location: String - /** - Default to false. If set to true the button will be disabled(non-clickable) - */ - public let disabled: Bool? - /** - Accessibility label - */ - public let adaLabel: String? - - public init(title: String?, icon: String?, id: String, location: String, disabled: Bool?, adaLabel: String?) { - self.title = title - self.icon = icon - self.id = id - self.location = location - self.disabled = disabled - self.adaLabel = adaLabel - super.init() - } - - public override init() { - self.id = String() - self.location = String() - self.title = nil - self.icon = nil - self.disabled = nil - self.adaLabel = nil - super.init() - } - - required public init(dictionary:[AnyHashable:Any]) { - - - if let id = dictionary["id"] as? String { - self.id = id - } else { - assertionFailure("\(NavigationBarButton.tag) missing one or more required properties [id] ") - self.id = dictionary["id"] as! String - } - - - - if let location = dictionary["location"] as? String { - self.location = location - } else { - assertionFailure("\(NavigationBarButton.tag) missing one or more required properties [location] ") - self.location = dictionary["location"] as! String - } - - - - - if let title = dictionary["title"] as? String { - self.title = title - } else { - self.title = nil - } - - - if let icon = dictionary["icon"] as? String { - self.icon = icon - } else { - self.icon = nil - } - - - if let disabled = dictionary["disabled"] as? Bool { - self.disabled = disabled - } else { - self.disabled = nil - } - - - if let adaLabel = dictionary["adaLabel"] as? String { - self.adaLabel = adaLabel - } else { - self.adaLabel = nil - } - - super.init(dictionary: dictionary) - } - - public func toDictionary() -> NSDictionary { - - var dict = [:] as [AnyHashable : Any] - - dict["id"] = self.id -dict["location"] = self.location - - if let nonNullTitle = self.title { - dict["title"] = nonNullTitle - } - if let nonNullIcon = self.icon { - dict["icon"] = nonNullIcon - } - if let nonNullDisabled = self.disabled { - dict["disabled"] = nonNullDisabled - } - if let nonNullAdaLabel = self.adaLabel { - dict["adaLabel"] = nonNullAdaLabel - } - return dict as NSDictionary - } -} -#else - -public class NavigationBarButton: ElectrodeObject, Bridgeable { - - private static let tag = String(describing: type(of: self)) - - /** - Button title if any. - */ - public let title: String? - /** - Icon resource identifier that can be used find the icon - */ - public let icon: String? - /** - Id of the button, this namespace will be used as an identifier when a button click event is emitted. - */ - public let id: String - /** - Allowed enums: left, right - */ - public let location: String - /** - Default to false. If set to true the button will be disabled(non-clickable) - */ - public let disabled: Bool? - /** - Accessibility label - */ - public let adaLabel: String? - - public init(title: String?, icon: String?, id: String, location: String, disabled: Bool?, adaLabel: String?) { - self.title = title - self.icon = icon - self.id = id - self.location = location - self.disabled = disabled - self.adaLabel = adaLabel - super.init() - } - - public override init() { - self.id = String() - self.location = String() - self.title = nil - self.icon = nil - self.disabled = nil - self.adaLabel = nil - super.init() - } - - required public init(dictionary:[AnyHashable:Any]) { - - - if let id = dictionary["id"] as? String { - self.id = id - } else { - assertionFailure("\(NavigationBarButton.tag) missing one or more required properties [id] ") - self.id = dictionary["id"] as! String - } - - - - if let location = dictionary["location"] as? String { - self.location = location - } else { - assertionFailure("\(NavigationBarButton.tag) missing one or more required properties [location] ") - self.location = dictionary["location"] as! String - } - - - - - if let title = dictionary["title"] as? String { - self.title = title - } else { - self.title = nil - } - - - if let icon = dictionary["icon"] as? String { - self.icon = icon - } else { - self.icon = nil - } - - - if let disabled = dictionary["disabled"] as? Bool { - self.disabled = disabled - } else { - self.disabled = nil - } - - - if let adaLabel = dictionary["adaLabel"] as? String { - self.adaLabel = adaLabel - } else { - self.adaLabel = nil - } - - super.init(dictionary: dictionary) - } - - public func toDictionary() -> NSDictionary { - - var dict = [:] as [AnyHashable : Any] - - dict["id"] = self.id -dict["location"] = self.location - - if let nonNullTitle = self.title { - dict["title"] = nonNullTitle - } - if let nonNullIcon = self.icon { - dict["icon"] = nonNullIcon - } - if let nonNullDisabled = self.disabled { - dict["disabled"] = nonNullDisabled - } - if let nonNullAdaLabel = self.adaLabel { - dict["adaLabel"] = nonNullAdaLabel - } - return dict as NSDictionary - } -} -#endif diff --git a/ios/container/ElectrodeContainer/ElectrodeBridgeDelegate.h b/ios/container/ElectrodeContainer/ElectrodeBridgeDelegate.h deleted file mode 100644 index 25ded4b6..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeBridgeDelegate.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import - -#if __has_include() -#import -#elif __has_include("RCTBridgeDelegate.h") -#import "RCTBridgeDelegate.h" -#else -#import "React/RCTBridgeDelegate.h" // Required when used as a Pod in a Swift project -#endif -#import "ElectrodePluginConfig.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface ElectrodeBridgeDelegate : NSObject -@property (nonatomic, strong) NSURL *jsBundleURL; - -- (instancetype)initWithModuleURL:(NSURL *)url extraModules:(NSArray *)modules; - -- (instancetype)initWithContainerConfig: (id) containerConfig - codePushConfig: (id) codePushConfig; - -- (void) setUp; -NS_ASSUME_NONNULL_END -@end - - diff --git a/ios/container/ElectrodeContainer/ElectrodeBridgeDelegate.m b/ios/container/ElectrodeContainer/ElectrodeBridgeDelegate.m deleted file mode 100644 index b2284231..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeBridgeDelegate.m +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeBridgeDelegate.h" - -@interface ElectrodeBridgeDelegate () -@property (nonatomic, copy) NSURL *sourceURL; -@property (nonatomic, strong) NSArray *extraModules; -@property(nonatomic, strong) id containerConfig; -@property(nonatomic, strong) id codePushConfig; -@end - -@implementation ElectrodeBridgeDelegate - -- (instancetype)initWithModuleURL:(NSURL *)url extraModules:(NSArray *)modules -{ - self = [super init]; - if (self) - { - self.sourceURL = url; - self.extraModules = modules; - } - - return self; -} - -- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge -{ - return self.jsBundleURL; -} - -- (NSArray> *)extraModulesForBridge:(RCTBridge *)bridge -{ - return _extraModules; -} - -- (instancetype)initWithContainerConfig: (id) containerConfig - codePushConfig: (id) codePushConfig { - if (self = [super init]) { - _codePushConfig = codePushConfig; - _containerConfig = containerConfig; - - } - - return self; -} - -- (void) setUp { - -} -@end diff --git a/ios/container/ElectrodeContainer/ElectrodeContainer.h b/ios/container/ElectrodeContainer/ElectrodeContainer.h deleted file mode 100644 index be37758f..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeContainer.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import - -//! Project version number for ElectrodeContainer. -FOUNDATION_EXPORT double ElectrodeContainerVersionNumber; - -//! Project version string for ElectrodeContainer. -FOUNDATION_EXPORT const unsigned char ElectrodeContainerVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import -#import - -#import -#import -#import -#import -#import diff --git a/ios/container/ElectrodeContainer/ElectrodePluginConfig.h b/ios/container/ElectrodeContainer/ElectrodePluginConfig.h deleted file mode 100644 index 4f687928..00000000 --- a/ios/container/ElectrodeContainer/ElectrodePluginConfig.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -@protocol RCTBridgeDelegate; - -#pragma mark - ElectrodePluginConfigurator -/** - Used as configuration for the start up of the ElectrodeReactNative system. Build - a class that adheres to this - */ -@protocol ElectrodePluginConfig -- (void)setupConfigWithDelegate:(id)delegate; - -@optional -// Optional Instance Methods - -/** - Builds an instance of the configurator based off of a plist of configuration. - @return instancetype of the class that adheres to the protocol. - */ -- (instancetype)initWithIsDebugEnabled:(BOOL)enabled; -- (instancetype)initWithPlist:(NSString *)plist; -- (instancetype)initWithDeploymentKey:(NSString *)deploymentKey; - -// Optional Properties -@property (nonatomic, copy, readonly) NSString *codePushWithServerURLString; -@property (nonatomic, copy, readonly) NSString *codePushWithIDString; - -@end diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNative.h b/ios/container/ElectrodeContainer/ElectrodeReactNative.h deleted file mode 100644 index 581df82e..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNative.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import -#import -#import "ElectrodePluginConfig.h" - - - - -NS_ASSUME_NONNULL_BEGIN - -@interface ElectrodeContainerConfig: NSObject -@property (nonatomic, assign) BOOL debugEnabled; -@property (nonatomic, copy) NSString *packagerHost; -@property (nonatomic, copy) NSString *packagerPort; -@end - -//////////////////////////////////////////////////////////////////////////////// -#pragma mark - ElectrodeReactNative -/** - Container for Electrode plugins and React Native bundles that isolates - logic, files and set up from Native engineers. - */ -@interface ElectrodeReactNative : NSObject - -/** - Create a singleton instance of ElectrodeReactNative with the ability to set - configurations for the plugins associated with the container. - - @return A singleton instance of ElectrodeReactNative. - */ -+ (instancetype)sharedInstance; - -/** - Start an instance of ElectrodeReactNative with the ability to set - configurations for the plugins associated with the container. Only needed to be - called once. - - @param reactContainerConfig NSDictionary that uses ERN keys such as ERNCodePushConfig - to store NSDictionary of configurations. The main key signifies which plugin - the configuration is for, the subsequent NSDictionary is the actual - configuration. This allows the ability to pass in multiple configurations for - multiple plugins. - */ - -+ (void)startWithConfigurations:(id)reactContainerConfig -; - - -/** - Returns a react native miniapp (from a JSBundle) inside a view controller. - - @param name The name of the mini app, preferably the same name as the jsbundle - without the extension. - @param properties Any configuration to set up the mini app with. - @return A UIViewController containing the view of the miniapp. - */ -- (UIViewController *)miniAppWithName:(NSString *)name - properties:(NSDictionary * _Nullable)properties; - -/** - Returns a react native miniapp (from a JSBundle) inside a view controller. - - @param name The name of the mini app, preferably the same name as the jsbundle - without the extension. - @param properties Any configuration to set up the mini app with. - @return A UIViewController containing the view of the miniapp. - */ -- (UIView *)miniAppViewWithName:(NSString *)name - properties:(NSDictionary *_Nullable)properties; - -/** - Call this to update an RCTRootView with new props. Calling this with new props will cause the view to be rerendered. - Request will be ignored if the returned view is not an RCTRootView instance. - */ -- (void)updateView:(UIView *)view withProps:(NSDictionary *)newProps; - -@end -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNative.m b/ios/container/ElectrodeContainer/ElectrodeReactNative.m deleted file mode 100644 index a98f7675..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNative.m +++ /dev/null @@ -1,225 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeReactNative_Internal.h" - -#if __has_include() -#import -#elif __has_include("RCTBundleURLProvider.h") -#import "RCTBundleURLProvider.h" -#else -#import "React/RCTBundleURLProvider.h" // Required when used as a Pod in a Swift project -#endif - -#if __has_include() -#import -#elif __has_include("RCTRootView.h") -#import "RCTRootView.h" -#else -#import "React/RCTRootView.h" // Required when used as a Pod in a Swift project -#endif - - - -#import "ElectrodeBridgeDelegate.h" -#import "NSBundle+frameworkBundle.h" -#import - -NSString * const ERNCodePushConfig = @"CodePush"; -NSString * const ERNCodePushConfigServerUrl = @"CodePushConfigServerUrl"; -NSString * const ERNCodePushConfigDeploymentKey = @"CodePushConfigDeploymentKey"; -NSString * const ERNDebugEnabledConfig = @"DebugEnabledConfig"; -NSString * const kElectrodeContainerFrameworkIdentifier = @"com.walmartlabs.ern.ElectrodeContainer"; -static dispatch_semaphore_t semaphore; - -@implementation ElectrodeContainerConfig - -- (instancetype)init { - self = [super init]; - if (self) { - //default values - self.packagerHost= @"localhost"; - self.packagerPort = @"8081"; - } - return self; -} - -- (void) setupConfigWithDelegate:(id)delegate { - if ([delegate respondsToSelector:@selector(setJsBundleURL:)]) { - NSURL *url; - if (self.debugEnabled) { - // iOS device and Macbook must be on the same Wi-fi & metro packager (bundler) by default runs on 8081 port. - NSString *urlString = [NSString stringWithFormat:@"http://%@:%@/index.bundle?platform=ios&dev=true",self.packagerHost,self.packagerPort]; - url = [NSURL URLWithString:urlString]; - } else { - url = [self allJSBundleFiles][0]; - } - - ElectrodeBridgeDelegate *bridgeDelegate = (ElectrodeBridgeDelegate *)delegate; - [bridgeDelegate setJsBundleURL:url]; - } - -} - -- (NSArray *)allJSBundleFiles -{ - NSArray *returnFiles = nil; - NSURL *bundle = [[NSBundle bundleForClass:self.class] bundleURL]; - NSError *error = nil; - - NSArray *files = - [[NSFileManager defaultManager] contentsOfDirectoryAtURL:bundle - includingPropertiesForKeys:nil - options:NSDirectoryEnumerationSkipsHiddenFiles - error:&error]; - if (!error) - { - NSPredicate *jsBundlePredicate = [NSPredicate predicateWithFormat:@"pathExtension='jsbundle'"]; - returnFiles = [files filteredArrayUsingPredicate:jsBundlePredicate]; - } - return returnFiles; -} - -@end - -@interface ElectrodeReactNative () -@property (nonatomic, strong) RCTBridge *bridge; -@property (nonatomic, strong) ElectrodeBridgeDelegate *bridgeDelegate; -@end - -@implementation ElectrodeReactNative - -//////////////////////////////////////////////////////////////////////////////// -#pragma mark - Public Methods - -+ (void)startWithConfigurations:(id)reactContainerConfig - -{ - id sharedInstance = [ElectrodeReactNative sharedInstance]; - static dispatch_once_t startOnceToken; - semaphore = dispatch_semaphore_create(0); - dispatch_once(&startOnceToken, ^{ - [sharedInstance startContainerWithConfiguration:reactContainerConfig -]; - }); -} - -+ (instancetype)sharedInstance -{ - static dispatch_once_t onceToken; - static id sharedInstance; - dispatch_once(&onceToken, ^{ - sharedInstance = [[self alloc] init]; - }); - - return sharedInstance; -} - -- (UIViewController *)miniAppWithName:(NSString *)name - properties:(NSDictionary *)properties -{ - UIViewController *miniAppViewController = [UIViewController new]; - miniAppViewController.view = [self miniAppViewWithName:name properties:properties];; - - return miniAppViewController; -} - -- (UIView *)miniAppViewWithName:(NSString *)name properties:(NSDictionary *)properties { - // Use the bridge to generate the view - RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:self.bridge moduleName:name initialProperties:properties]; - rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; - return rootView; -} - -- (void)updateView:(UIView *)view withProps:(NSDictionary *)newProps { - if([view isKindOfClass:[RCTRootView class]]) { - [((RCTRootView *) view) setAppProperties:newProps]; - } -} - -//////////////////////////////////////////////////////////////////////////////// -#pragma mark - Convenience Methods - -- (void)startContainerWithConfiguration:(id)reactContainerConfig -{ - ElectrodeBridgeDelegate *delegate = [[ElectrodeBridgeDelegate alloc] init]; - - [reactContainerConfig setupConfigWithDelegate:delegate]; - - RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:delegate launchOptions:nil]; - self.bridge = bridge; - - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(notifyElectrodeReactNativeOnInitialized:) - name:RCTDidInitializeModuleNotification object:nil]; - - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(signalElectrodeOnReactNativeInitializedSemaphore:) - name:RCTJavaScriptDidLoadNotification object:nil]; - [self loadCustomFonts]; - - -} - -- (void)loadCustomFonts { - NSArray *fontPaths = [[NSBundle frameworkBundle] pathsForResourcesOfType:nil inDirectory:nil]; - for (NSString *fontPath in fontPaths) { - if ([[fontPath pathExtension] isEqualToString:@"ttf"] || [[fontPath pathExtension] isEqualToString:@"otf"]) { - NSData *inData = [NSData dataWithContentsOfFile:fontPath]; - CFErrorRef error; - CGDataProviderRef provider = CGDataProviderCreateWithCFData((__bridge CFDataRef)inData); - CGFontRef font = CGFontCreateWithDataProvider(provider); - if (! CTFontManagerRegisterGraphicsFont(font, &error)) { - CFStringRef errorDescription = CFErrorCopyDescription(error); - NSLog(@"Failed to load font: %@", errorDescription); - CFRelease(errorDescription); - } - CFRelease(font); - CFRelease(provider); - } - } -} - - -- (void)dealloc { - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -- (void) notifyElectrodeReactNativeOnInitialized: (NSNotification *) notification { - if (notification) { - if ([notification.object isKindOfClass:[RCTBridge class]] ) { - id localModuleInstance = notification.userInfo[@"module"]; - SEL selector = NSSelectorFromString(@"onReactNativeInitialized"); - SEL transceiverReadySelector = NSSelectorFromString(@"onTransceiverModuleInitialized"); - if ([localModuleInstance respondsToSelector:selector]) { - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ - dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); - NSLog(@"RCTJavaScriptDidLoadNotification received"); - ((void (*)(id, SEL))[localModuleInstance methodForSelector:selector])(localModuleInstance, selector); - }); - } - if ([localModuleInstance respondsToSelector:transceiverReadySelector]) { - ((void (*)(id, SEL))[localModuleInstance methodForSelector:transceiverReadySelector])(localModuleInstance, transceiverReadySelector); - } - } - } -} - -- (void) signalElectrodeOnReactNativeInitializedSemaphore: (NSNotification *) notification { - dispatch_semaphore_signal(semaphore); -} - -@end diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/Bridgeable.swift b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/Bridgeable.swift deleted file mode 100644 index 93ece07c..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/Bridgeable.swift +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import Foundation - -// @objc requires this protocol to be a class protocol -// mark public because ElectrodeBridgeMessage is public -@objc public protocol Bridgeable { - func toDictionary() -> NSDictionary -} diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeEvent.h b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeEvent.h deleted file mode 100644 index a1769705..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeEvent.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeBridgeMessage.h" -#import - -NS_ASSUME_NONNULL_BEGIN -@interface ElectrodeBridgeEvent : ElectrodeBridgeMessage - -+ (nullable instancetype)createEventWithData:(NSDictionary *)data; -- (instancetype)initWithName:(NSString *)name data:(id)data; -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeEvent.m b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeEvent.m deleted file mode 100644 index 7744608e..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeEvent.m +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeBridgeEvent.h" -#import "ElectrodeBridgeMessage.h" -#import "ElectrodeLogger.h" - -@implementation ElectrodeBridgeEvent -+ (nullable instancetype)createEventWithData:(NSDictionary *)data { - if ([ElectrodeBridgeMessage isValidFromData:data - withType:ElectrodeMessageTypeEvent]) { - return [[super alloc] initWithData:data]; - } - - ERNDebug(@"%@ : unable to create with data %@", - [ElectrodeBridgeEvent className], data); - return nil; -} - -- (instancetype)initWithName:(NSString *)name data:(id)data { - if (self = - [super initWithName:name type:ElectrodeMessageTypeEvent data:data]) { - return self; - } - ERNDebug(@"%@ : unable to create with data %@", - [ElectrodeBridgeEvent className], data); - return nil; -} - -+ (NSString *)className { - return NSStringFromClass(self.class); -} - -@end diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeFailureMessage.h b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeFailureMessage.h deleted file mode 100644 index c4e948fb..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeFailureMessage.h +++ /dev/null @@ -1,53 +0,0 @@ -// -// ElectrodeBridgeFailureMessage.h -// ElectrodeReactNativeBridge -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import - -NS_ASSUME_NONNULL_BEGIN - -@protocol ElectrodeFailureMessage - -@property(readonly, copy, nonatomic) NSString *code; -@property(readonly, copy, nonatomic) NSString *message; - -@optional -@property(readonly, copy, nonatomic, nullable) NSString *debugMessage; -@property(readonly, copy, nonatomic, nullable) NSException *exception; - -@end - -@interface ElectrodeBridgeFailureMessage : NSObject - -@property(readonly, copy, nonatomic) NSString *code; -@property(readonly, copy, nonatomic) NSString *message; -@property(readonly, copy, nonatomic, nullable) NSString *debugMessage; -@property(readonly, copy, nonatomic, nullable) NSException *exception; - -+ (instancetype)createFailureMessageWithCode:(NSString *)code - message:(NSString *)message; -+ (instancetype)createFailureMessageWithCode:(NSString *)code - message:(NSString *)message - exception:(nullable NSException *)exception; -+ (instancetype)createFailureMessageWithCode:(NSString *)code - message:(NSString *)message - debugMessage:(nullable NSString *)debugMessage; - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeFailureMessage.m b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeFailureMessage.m deleted file mode 100644 index 0d12dabd..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeFailureMessage.m +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeBridgeFailureMessage.h" -#import - -@interface ElectrodeBridgeFailureMessage () -@property(copy, nonatomic) NSString *code; -@property(copy, nonatomic) NSString *message; -@property(copy, nonatomic, nullable) NSString *debugMessage; -@property(copy, nonatomic, nullable) NSException *exception; -@end - -@implementation ElectrodeBridgeFailureMessage - -+ (instancetype)createFailureMessageWithCode:(NSString *)code - message:(NSString *)message { - return [[ElectrodeBridgeFailureMessage alloc] initWithCode:code - message:message - exception:nil - debugMessage:nil]; -} - -+ (instancetype)createFailureMessageWithCode:(NSString *)code - message:(NSString *)message - exception:(nullable NSException *)exception { - return [[ElectrodeBridgeFailureMessage alloc] initWithCode:code - message:message - exception:exception - debugMessage:nil]; -} - -+ (instancetype)createFailureMessageWithCode:(NSString *)code - message:(NSString *)message - debugMessage:(nullable NSString *)debugMessage { - return [[ElectrodeBridgeFailureMessage alloc] initWithCode:code - message:message - exception:nil - debugMessage:debugMessage]; -} - -- (instancetype)initWithCode:(NSString *)code - message:(NSString *)message - exception:(nullable NSException *)exception - debugMessage:(nullable NSString *)debugMessage { - - if (self = [super init]) { - _code = code; - _message = message; - _exception = exception; - _debugMessage = (debugMessage == nil) ? exception.reason : nil; - return self; - } - - return nil; -} - -- (NSString *)description { - return [NSString - stringWithFormat: - @"%@ -> code: %@, message: %@, exception %@, debugMessage %@", - NSStringFromClass([self class]), self.code, self.message, - self.exception.name, self.debugMessage]; -} - -@end diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeHolder.h b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeHolder.h deleted file mode 100644 index 331221d4..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeHolder.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import -#import "ElectrodeBridgeEvent.h" -#import "ElectrodeBridgeRequest.h" - -#import "ElectrodeBridgeProtocols.h" - -@class ElectrodeBridgeTransceiver; -@protocol ElectrodeBridgeRequestHandler -, ElectrodeBridgeEventListener; - -NS_ASSUME_NONNULL_BEGIN - -/** - * Client facing class. - * Facade to ElectrodeBridgeTransceiver. - * Handles queuing every method calls until react native is ready. - */ - -@interface ElectrodeBridgeHolder : NSObject - -+ (void)sendEvent:(ElectrodeBridgeEvent *)event; - -+ (void)sendRequest:(ElectrodeBridgeRequest *)request - completionHandler:(ElectrodeBridgeResponseCompletionHandler)completion; - -+ (NSUUID *)registerRequestHandlerWithName:(NSString *)name - requestCompletionHandler: - (ElectrodeBridgeRequestCompletionHandler)completion; - -+ (nullable ElectrodeBridgeRequestCompletionHandler)unregisterRequestHandlerWithUUID: (NSUUID *)uuid; - - -+ (NSUUID *)addEventListenerWithName:(NSString *)name - eventListner:(ElectrodeBridgeEventListener)eventListner; - -+ (nullable ElectrodeBridgeEventListener)removeEventListener: (NSUUID *)UUID; - -+ (void)setBridge:(ElectrodeBridgeTransceiver *)bridge; -+ (void)addConstantsProvider:(id)constantsProvider; -@end -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeHolder.m b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeHolder.m deleted file mode 100644 index fd7d26fc..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeHolder.m +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeBridgeProtocols.h" -#import "ElectrodeBridgeHolder.h" -#import "ElectrodeBridgeTransceiver.h" -#import "ElectrodeLogger.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface ElectrodeQueuedEventListener: NSObject -@property (nonatomic, strong) NSUUID *uuid; -@property (copy) ElectrodeBridgeEventListener listener; -- (instancetype) initWithUUID: (NSUUID *) uuid - listener: (ElectrodeBridgeEventListener) listener; -@end - -@implementation ElectrodeQueuedEventListener -- (instancetype) initWithUUID: (NSUUID *) uuid - listener: (ElectrodeBridgeEventListener) listener { - if (self = [super init]) { - _uuid = uuid; - _listener = listener; - } - - return self; -} -@end - -@interface ElectrodeQueuedRequestHandler: NSObject -@property (nonatomic, strong) NSUUID *uuid; -@property (copy) ElectrodeBridgeRequestCompletionHandler handler; -- (instancetype) initWithUUID: (NSUUID *) uuid - handler: (ElectrodeBridgeRequestCompletionHandler) handler; -@end - -@implementation ElectrodeQueuedRequestHandler -- (instancetype) initWithUUID: (NSUUID *) uuid - handler: (ElectrodeBridgeRequestCompletionHandler) handler { - if (self = [super init]) { - _uuid = uuid; - _handler = handler; - } - - return self; -} -@end -@implementation ElectrodeBridgeHolder -static ElectrodeBridgeTransceiver *electrodeNativeBridge; -static BOOL isReactNativeReady = NO; -static BOOL isTransceiverReady = NO; -static NSMutableDictionary *queuedRequestHandlerRegistration; -static NSMutableDictionary *queuedEventListenerRegistration; -static NSMutableDictionary *queuedRequests; -static NSMutableArray *queuedEvent; -static NSMutableArray> *queuedConstantsProvider; - -+ (void)initialize { - ERNDebug(@"in bridge holder initialization"); - queuedRequestHandlerRegistration = [[NSMutableDictionary alloc] init]; - queuedEventListenerRegistration = [[NSMutableDictionary alloc] init]; - queuedRequests = [[NSMutableDictionary alloc] init]; - queuedEvent = [[NSMutableArray alloc] init]; - queuedConstantsProvider = [[NSMutableArray alloc] init]; - [ElectrodeBridgeHolder registerReactReadyListenr]; - [ElectrodeBridgeHolder registerReactTransceiverReadyListner]; -} - -+ (void)registerReactReadyListenr { - [ElectrodeBridgeTransceiver - registerReactNativeReadyListener:^( - ElectrodeBridgeTransceiver *_Nonnull transceiver) { - isReactNativeReady = YES; - electrodeNativeBridge = transceiver; - [ElectrodeBridgeHolder registerQueuedEventListeners]; - [ElectrodeBridgeHolder registerQueuedRequestHandlers]; - [ElectrodeBridgeHolder sendQueuedEvents]; - [ElectrodeBridgeHolder sendQueuedRequests]; - [ElectrodeBridgeHolder addQueuedConstantsProvider]; - }]; -} - -+ (void)registerReactTransceiverReadyListner { - [ElectrodeBridgeTransceiver - registerReactTransceiverReadyListner:^( - ElectrodeBridgeTransceiver *_Nonnull transceiver) { - isTransceiverReady = YES; - electrodeNativeBridge = transceiver; - [ElectrodeBridgeHolder addQueuedConstantsProvider]; - }]; -} - -+ (void)addQueuedConstantsProvider { - for (id provider in queuedConstantsProvider) { - [ElectrodeBridgeHolder addConstantsProvider:provider]; - } -} - -+ (void)addConstantsProvider:(id)constantsProvider { - if (!isTransceiverReady) { - [queuedConstantsProvider addObject:constantsProvider]; - } else { - [electrodeNativeBridge addConstantsProvider:constantsProvider]; - } -} - -+ (void)sendEvent:(ElectrodeBridgeEvent *)event { - if (!isReactNativeReady) { - [queuedEvent addObject:event]; - } else { - [electrodeNativeBridge sendEvent:event]; - } -} - -+ (nullable ElectrodeBridgeEventListener)removeEventListener: (NSUUID *)UUID { - return [electrodeNativeBridge removeEventListnerWithUUID: UUID]; -} - -+ (void)sendRequest:(ElectrodeBridgeRequest *)request - completionHandler:(ElectrodeBridgeResponseCompletionHandler)completion { - if (!isReactNativeReady) { - [queuedRequests setObject:completion forKey:request]; - } else { - [electrodeNativeBridge sendRequest:request completionHandler:completion]; - } -} - -+ (NSUUID *)registerRequestHandlerWithName:(NSString *)name - requestCompletionHandler: -(ElectrodeBridgeRequestCompletionHandler)completion { - NSUUID *uuid = [NSUUID UUID]; - if (!isReactNativeReady) { - ElectrodeQueuedRequestHandler *handler = [[ElectrodeQueuedRequestHandler alloc] initWithUUID:uuid handler:completion]; - [queuedRequestHandlerRegistration setObject:handler forKey:name]; - ERNDebug(@"queuedRequestHandlerRegistration when react is not ready %@", - queuedRequestHandlerRegistration); - } else { - ERNDebug(@"BridgeHolderNew: registering request handler with name %@", - name); - [electrodeNativeBridge registerRequestCompletionHandlerWithName:name - uuid:uuid - completion:completion]; - } - return uuid; -} - -+ (nullable ElectrodeBridgeRequestCompletionHandler)unregisterRequestHandlerWithUUID: (NSUUID *)uuid { - return [electrodeNativeBridge unregisterRequestHandlerWithUUID:uuid]; -} - -+ (NSUUID *)addEventListenerWithName:(NSString *)name - eventListner:(ElectrodeBridgeEventListener)eventListner { - NSUUID *eventListenerUUID = [NSUUID UUID]; - if (!isReactNativeReady) { - ElectrodeQueuedEventListener *listener = [[ElectrodeQueuedEventListener alloc] initWithUUID:eventListenerUUID - listener:eventListner]; - [queuedEventListenerRegistration setObject:listener forKey:name]; - } else { - [electrodeNativeBridge registerEventListenerWithName:name uuid:eventListenerUUID listener:eventListner]; - } - - return eventListenerUUID; -} - -+ (BOOL)isReactNativeReady { - return isReactNativeReady; -} - -+ (void)registerQueuedRequestHandlers { - ERNDebug(@"registering Queued requesters"); - ERNDebug(@"queuedRequestHandlerRegistration %@", - queuedRequestHandlerRegistration); - - for (NSString *handlerName in queuedRequestHandlerRegistration) { - ERNDebug(@"Registering queued request handler %@", handlerName); - - ElectrodeQueuedRequestHandler *handleObj = queuedRequestHandlerRegistration[handlerName]; - NSUUID *uuid = [handleObj uuid]; - ElectrodeBridgeRequestCompletionHandler completion = [handleObj handler]; - [electrodeNativeBridge registerRequestCompletionHandlerWithName:handlerName - uuid:uuid - completion:completion]; - } - - [queuedRequestHandlerRegistration removeAllObjects]; -} - -+ (void)registerQueuedEventListeners { - for (NSString *eventListnerName in queuedEventListenerRegistration) { - ElectrodeQueuedEventListener *handleObj = queuedEventListenerRegistration[eventListnerName]; - NSUUID *uuid = [handleObj uuid]; - [electrodeNativeBridge registerEventListenerWithName:eventListnerName uuid:uuid listener:[handleObj listener]]; - } - - [queuedEventListenerRegistration removeAllObjects]; -} - -+ (void)sendQueuedRequests { - ERNDebug(@"Start sending queued request: %@", queuedRequests); - for (ElectrodeBridgeRequest *request in queuedRequests) { - ElectrodeBridgeResponseCompletionHandler completion = - queuedRequests[request]; - [ElectrodeBridgeHolder sendRequest:request completionHandler:completion]; - } - - [queuedRequests removeAllObjects]; -} - -+ (void)sendQueuedEvents { - for (ElectrodeBridgeEvent *event in queuedEvent) { - [ElectrodeBridgeHolder sendEvent:event]; - } - - [queuedEvent removeAllObjects]; -} - -+ (void)setBridge:(ElectrodeBridgeTransceiver *)bridge { - isReactNativeReady = YES; - electrodeNativeBridge = bridge; -} - -@end -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeMessage.h b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeMessage.h deleted file mode 100644 index c81073d2..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeMessage.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import -NS_ASSUME_NONNULL_BEGIN - -extern NSString *const kElectrodeBridgeMessageName; -extern NSString *const kElectrodeBridgeMessageId; -extern NSString *const kElectrodeBridgeMessageType; -extern NSString *const kElectrodeBridgeMessageData; - -extern NSString *const kElectrodeBridgeMessageRequest; -extern NSString *const kElectrodeBridgeMessageResponse; -extern NSString *const kElectordeBridgeMessageEvent; - -typedef NS_ENUM(NSUInteger, ElectrodeMessageType) { - ElectrodeMessageTypeRequest, - ElectrodeMessageTypeResponse, - ElectrodeMessageTypeEvent, - ElectrodeMessageTypeUnknown -}; - -@interface ElectrodeBridgeMessage : NSObject - -@property(nonatomic, copy, readonly) NSString *name; -@property(nonatomic, copy, readonly) NSString *messageId; -@property(nonatomic, assign, readonly) ElectrodeMessageType type; -// this could be NSDictionary, primitives, or NSArray -@property(nonatomic, strong, readonly, nullable) id data; - -+ (BOOL)isValidFromData:(NSDictionary *)data; -+ (BOOL)isValidFromData:(NSDictionary *)data - withType:(ElectrodeMessageType)type; -+ (NSString *)UUID; - -- (instancetype)initWithName:(NSString *)name - messageId:(NSString *)messageId - type:(ElectrodeMessageType)type - data:(id _Nullable)data; - -/* - * @param data could be NSDictionary, primitives, or NSArray - */ -- (instancetype)initWithName:(NSString *)name - type:(ElectrodeMessageType)type - data:(id _Nullable)data; -/* - * return an instance of bridge message from a NSDictionary representation of - * it. - * @param data NSDictionary representation of BridgeMessage. Has keys of - * 'id','name','type','data' - */ -- (nullable instancetype)initWithData:(NSDictionary *)data; -+ (ElectrodeMessageType)typeFromString:(NSString *)string; -+ (NSString *)convertEnumTypeToString: - (ElectrodeMessageType)electrodeMessageType; -- (NSDictionary *)toDictionary; - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeMessage.m b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeMessage.m deleted file mode 100644 index bd56eedb..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeMessage.m +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeBridgeMessage.h" -#import -#import "ElectrodeLogger.h" - -NS_ASSUME_NONNULL_BEGIN - -NSString *const kElectrodeBridgeMessageName = @"name"; -NSString *const kElectrodeBridgeMessageId = @"id"; -NSString *const kElectrodeBridgeMessageType = @"type"; -NSString *const kElectrodeBridgeMessageData = @"data"; - -NSString *const kElectrodeBridgeMessageRequest = @"req"; -NSString *const kElectrodeBridgeMessageResponse = @"rsp"; -NSString *const kElectordeBridgeMessageEvent = @"event"; -NSString *const kElectordeBridgeMessageUnknown = @"unknown"; - -@interface ElectrodeBridgeMessage () -@property(nonatomic, copy) NSString *name; -@property(nonatomic, copy) NSString *messageId; -@property(nonatomic, assign) ElectrodeMessageType type; -@property(nonatomic, strong, nullable) id data; -@end - -@implementation ElectrodeBridgeMessage - -+ (NSString *)UUID { - return [[[NSUUID alloc] init] UUIDString]; -} - -+ (BOOL)isValidFromData:(NSDictionary *)data { - return [data objectForKey:kElectrodeBridgeMessageName] && - [data objectForKey:kElectrodeBridgeMessageId] && - [data objectForKey:kElectrodeBridgeMessageType]; -} - -+ (BOOL)isValidFromData:(NSDictionary *)data - withType:(ElectrodeMessageType)type { - return [ElectrodeBridgeMessage isValidFromData:data] && - ([ElectrodeBridgeMessage - typeFromString:(NSString *)[data - objectForKey:kElectrodeBridgeMessageType]] == - type); -} - -- (instancetype)initWithName:(NSString *)name - messageId:(NSString *)messageId - type:(ElectrodeMessageType)type - data:(id _Nullable)data { - if (self = [super init]) { - _name = name; - _messageId = messageId; - _type = type; - _data = data; - } - - return self; -} - -- (instancetype)initWithName:(NSString *)name - type:(ElectrodeMessageType)type - data:(id _Nullable)data { - if (self = [super init]) { - _name = name; - _messageId = [ElectrodeBridgeMessage UUID]; - _type = type; - _data = data; - } - return self; -} - -- (nullable instancetype)initWithData:(NSDictionary *)data { - if ([ElectrodeBridgeMessage isValidFromData:data]) { - NSString *name = [data objectForKey:kElectrodeBridgeMessageName]; - NSString *messageId = [data objectForKey:kElectrodeBridgeMessageId]; - ElectrodeMessageType type = [ElectrodeBridgeMessage - typeFromString:(NSString *)[data - objectForKey:kElectrodeBridgeMessageType]]; - // BridgeMessage can be sent from either Native or React Native side. When - // it's from RN side, it can be - // NSDictionary, primitives, NSArray etc; when it's from Native side, it - // will be a complex object. - id bridgeMessageData = [data objectForKey:kElectrodeBridgeMessageData]; - return [self initWithName:name - messageId:messageId - type:type - data:bridgeMessageData]; - } - return nil; -} -- (NSDictionary *)toDictionary { - NSMutableDictionary *messageDict = [[NSMutableDictionary alloc] init]; - [messageDict setObject:self.name forKey:kElectrodeBridgeMessageName]; - [messageDict setObject:self.messageId forKey:kElectrodeBridgeMessageId]; - NSString *typeString = - [ElectrodeBridgeMessage convertEnumTypeToString:self.type]; - [messageDict setObject:typeString forKey:kElectrodeBridgeMessageType]; - id simpleObj = [self convertPayloadToSimpleFormat]; - - if (simpleObj) { - [messageDict setObject:simpleObj forKey:kElectrodeBridgeMessageData]; - } else { - ERNDebug(@"data is null, data won't be set in toDictionary"); - } - - return [messageDict copy]; -} - -- (id _Nullable)convertPayloadToSimpleFormat { - id simpleObj = nil; - if (self.data != nil) { - if ([self.data conformsToProtocol:@protocol(Bridgeable)]) { - simpleObj = [self.data toDictionary]; - } else if ([self.data isKindOfClass:[NSArray class]]) { - id element = [self.data firstObject]; - if (element) { // assume the array has the same type of object - if ([element conformsToProtocol:@protocol(Bridgeable)]) { - NSArray *convertedArray = [self convertToArrayOfBridgeable:self.data]; - simpleObj = convertedArray; - } - } else { - ERNDebug(@"ElectrodeBridgeMessage: empty array"); - } - } - } - if (simpleObj == nil) { - simpleObj = self.data; - } - return simpleObj; -} - -- (NSArray *)convertToArrayOfBridgeable: - (NSArray *)data { - NSMutableArray *res = [[NSMutableArray alloc] init]; - for (id element in data) { - if ([element conformsToProtocol:@protocol(Bridgeable)]) { - NSDictionary *serialized = [element toDictionary]; - [res addObject:serialized]; - } else { - ERNDebug(@"ElectrodeBridgeMessage: element does not conform to protocol " - @"in toDictionary"); - } - } - return [res copy]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"name:%@, id:%@, type:%lu, data:%@", - self.name, self.messageId, - (unsigned long)self.type, self.data]; -} - -+ (NSString *)convertEnumTypeToString: - (ElectrodeMessageType)electrodeMessageType { - NSString *result = nil; - switch (electrodeMessageType) { - case ElectrodeMessageTypeRequest: - result = kElectrodeBridgeMessageRequest; - break; - case ElectrodeMessageTypeResponse: - result = kElectrodeBridgeMessageResponse; - break; - case ElectrodeMessageTypeEvent: - result = kElectordeBridgeMessageEvent; - break; - case ElectrodeMessageTypeUnknown: - result = kElectordeBridgeMessageUnknown; - break; - default: - [NSException raise:NSGenericException format:@"Unexpected FormatType."]; - } - return result; -} - -+ (ElectrodeMessageType)typeFromString:(NSString *)string { - if ([string isEqualToString:kElectrodeBridgeMessageRequest]) { - return ElectrodeMessageTypeRequest; - } else if ([string isEqualToString:kElectrodeBridgeMessageResponse]) { - return ElectrodeMessageTypeResponse; - } else if ([string isEqualToString:kElectordeBridgeMessageEvent]) { - return ElectrodeMessageTypeEvent; - } else { - return ElectrodeMessageTypeUnknown; - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeProtocols.h b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeProtocols.h deleted file mode 100644 index 9b25a9cc..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeProtocols.h +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import -#import "ElectrodeBridgeFailureMessage.h" -#import "ElectrodeBridgeRequest.h" -#import "ElectrodeBridgeEvent.h" - -@class ElectrodeBridgeTransceiver; -NS_ASSUME_NONNULL_BEGIN -typedef void (^ElectrodeBridgeReactNativeReadyListner)( - ElectrodeBridgeTransceiver *transceiver); - -#pragma ElectrodeBridgeResponseListener protocol - -/** - - */ -typedef void (^ElectrodeBridgeResponseCompletionHandler)( - id _Nullable data, id _Nullable message); -/** - ElectrodeBridgeResponseCompletionHandler execute when a given request comes - through. The - completioners execute once the request has fully been handled. - */ -typedef void (^ElectrodeBridgeRequestCompletionHandler)( - id _Nullable data, ElectrodeBridgeResponseCompletionHandler block); -/* - * ElectrodeBridgeEventListener execute when an event is dispatched. - */ -typedef void (^ElectrodeBridgeEventListener)(id _Nullable eventPayload); - -@interface ElectrodeBridgeProtocols : NSObject - -@end - -@protocol ConstantsProvider -/** - * Returns constant values exposed to JavaScript. - * Its implementation is not required but is very useful to key pre-defined - * values that need to be propagated from JavaScript to NativeiOS in sync - * @return Dictionary containing a constant values - */ -- (NSDictionary *)constantsToExport; -@end - -//////////////////////////////////////////////// -#pragma ElectrodeNativeBridge protocol -/* - * Native client facing bridge API. Define all the actions a native client can - * perform over the bridge. - */ -@protocol ElectrodeNativeBridge - -/** - * Send a request from iOS native side to either native or React Native side - * depending on where the request handler is registered. - * @param request The ElectrodeBridgeRequest that contains request name, - * data, destination mode and timeout - * @param completion The response call back listener to issue success/failure of - * the request. - */ -- (void)sendRequest:(ElectrodeBridgeRequest *)request - completionHandler:(ElectrodeBridgeResponseCompletionHandler)completion; - -/** - * Register the request handler - * @param name name of the request - * @param uuid uuid of the request handler - * @param completion call back to be issued for a given request. - */ -- (void) registerRequestCompletionHandlerWithName:(NSString *)name - uuid: (NSUUID *) uuid - completion: (ElectrodeBridgeRequestCompletionHandler) completion; - -/** - * Unregister a request handler - * @param uuid returned when register a request handler - */ - -- (nullable ElectrodeBridgeRequestCompletionHandler)unregisterRequestHandlerWithUUID: (NSUUID *)uuid; - -/** - * Sends an event with payload to all the event listeners - * @param event The event to emit - */ -- (void)sendEvent:(ElectrodeBridgeEvent *)event; - -/** - * Add an event listener for the passed event - * @param name The event name this listener is interested in - * @param eventListener The event listener - * @param uuid of the event listener. - */ - -- (void) registerEventListenerWithName: (NSString *_Nonnull)name - uuid: (NSUUID * _Nonnull)uuid - listener: (ElectrodeBridgeEventListener _Nonnull)eventListener; - -/** - * Remove an event listener - * @param uuid returned when listner is added. - */ -- (nullable ElectrodeBridgeEventListener)removeEventListnerWithUUID: (NSUUID *) uuid; - -- (void)addConstantsProvider:(id)constantsProvider; - -@end - -//////////////////////////////////////////////// -#pragma ElectrodeReactBridge protocol - -/** - * React facing bridge API. React Native side calls to talk to bridge - */ -@protocol ElectrodeReactBridge -/** - * Invoked by React side to communicate the bridge - * @params bridgeMessage The NSDictionary representation of BridgeMessage - */ - -- (void)sendMessage:(NSDictionary *)bridgeMessage; - -@end - -NS_ASSUME_NONNULL_END - diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeProtocols.m b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeProtocols.m deleted file mode 100644 index e9f9d8cb..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeProtocols.m +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeBridgeProtocols.h" - -@implementation ElectrodeBridgeProtocols - -@end diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeRequest.h b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeRequest.h deleted file mode 100644 index 9bbc852e..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeRequest.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeBridgeMessage.h" -#import -@class ElectrodeBridgeMessage; -NS_ASSUME_NONNULL_BEGIN -extern const int kElectrodeBridgeRequestDefaultTimeOut; -extern const int kElectrodeBridgeRequestNoTimeOut; - -@interface ElectrodeBridgeRequest : ElectrodeBridgeMessage -/** - * return timeout of the request in ms. - */ -@property(nonatomic, assign, readonly) int timeoutMs; - -/** - * return if a request was initiated by JS. - */ -@property(nonatomic, assign, readonly) BOOL isJsInitiated; - -+ (nullable instancetype)createRequestWithData:(NSDictionary *)data; - -- (instancetype)initWithName:(NSString *)name data:(nullable id)data; - -@end -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeRequest.m b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeRequest.m deleted file mode 100644 index 0655a8eb..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeRequest.m +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeBridgeRequest.h" -#import "ElectrodeLogger.h" - -const int kElectrodeBridgeRequestDefaultTimeOut = 5000; -const int kElectrodeBridgeRequestNoTimeOut = -1; - -@interface ElectrodeBridgeRequest () - -@property(nonatomic, assign) int timeoutMs; -@property(nonatomic, assign) BOOL isJsInitiated; - -@end - -@implementation ElectrodeBridgeRequest - -+ (nullable instancetype)createRequestWithData:(NSDictionary *)data { - if ([super isValidFromData:data withType:ElectrodeMessageTypeRequest]) { - return [[self alloc] initWithData:data]; - } - - ERNDebug(@"cannot create class ElectrodeBridgeRequest with data"); - return nil; -} - -- (instancetype)initWithData:(NSDictionary *)data { - if (self = [super initWithData:data]) { - _timeoutMs = kElectrodeBridgeRequestNoTimeOut; - _isJsInitiated = YES; - } - return self; -} - -- (instancetype)initWithName:(NSString *)name data:(id)data { - if (self = [super initWithName:name - type:ElectrodeMessageTypeRequest - data:data]) { - _timeoutMs = kElectrodeBridgeRequestDefaultTimeOut; - _isJsInitiated = NO; - } - return self; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"%@, timeOut:%d, isJsInitiated:%d", - [super description], self.timeoutMs, - self.isJsInitiated]; -} - -- (id)copyWithZone:(nullable NSZone *)zone { - return self; -} - -@end diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeResponse.h b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeResponse.h deleted file mode 100644 index ece711d9..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeResponse.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeBridgeFailureMessage.h" -#import "ElectrodeBridgeRequest.h" - -NS_ASSUME_NONNULL_BEGIN - -extern NSString *const kElectrodeBridgeResponseError; -extern NSString *const kElectrodeBridgeResponseErrorCode; -extern NSString *const kElectrodeBridgeResponseErrorMessage; -extern NSString *const kElectrodeBridgeResponseUnknownErrorCode; - -@interface ElectrodeBridgeResponse : ElectrodeBridgeMessage - -@property(readonly, nonatomic, strong, nullable) id - failureMessage; - -+ (nullable instancetype)createResponseWithData:(NSDictionary *)data; -+ (nullable instancetype) -createResponseForRequest:(ElectrodeBridgeRequest *)request - withResponseData:(nullable NSDictionary *)data - withFailureMessage:(nullable id)failureMessage; -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeResponse.m b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeResponse.m deleted file mode 100644 index 1f04b6ed..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeResponse.m +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeBridgeResponse.h" -#import "ElectrodeBridgeFailureMessage.h" - -NSString *const kElectrodeBridgeResponseError = @"error"; -NSString *const kElectrodeBridgeResponseErrorCode = @"code"; -NSString *const kElectrodeBridgeResponseErrorMessage = @"message"; -NSString *const kElectrodeBridgeResponseUnknownErrorCode = @"EUNKNOWN"; - -@interface ElectrodeBridgeResponse () - -@property(nonatomic, strong, nullable) id - failureMessage; - -@end - -@implementation ElectrodeBridgeResponse - -+ (nullable instancetype)createResponseWithData:(NSDictionary *)data { - if ([super isValidFromData:data withType:ElectrodeMessageTypeResponse]) { - return [[ElectrodeBridgeResponse alloc] initWithData:data]; - } - - return nil; -} - -+ (nullable instancetype) -createResponseForRequest:(ElectrodeBridgeRequest *)request - withResponseData:(nullable id)data - withFailureMessage:(nullable id)failureMessage { - return - [[ElectrodeBridgeResponse alloc] initWithName:request.name - messageId:request.messageId - type:ElectrodeMessageTypeResponse - data:data - failureMessage:failureMessage]; -} - -- (nullable instancetype)initWithData:(NSDictionary *)data { - if (self = [super initWithData:data]) { - NSDictionary *error = [data objectForKey:kElectrodeBridgeResponseError]; - if (error != nil && - [error isKindOfClass:[NSDictionary class]]) { // check the - // arguemntsEx.toBundle - // thingy - NSString *code = - (NSString *)[error objectForKey:kElectrodeBridgeResponseErrorCode]; - NSString *message = - (NSString *)[error objectForKey:kElectrodeBridgeResponseErrorMessage]; - _failureMessage = [ElectrodeBridgeFailureMessage - createFailureMessageWithCode: - (code != nil ? code : kElectrodeBridgeResponseUnknownErrorCode) - message:(message != nil ? message - : @"unknown error")]; - } - } - - return self; -} - -- (nullable instancetype)initWithName:(NSString *)name - messageId:(NSString *)messageId - type:(ElectrodeMessageType)type - data:(id)data - failureMessage: - (id)failureMessage { - if (self = - [super initWithName:name messageId:messageId type:type data:data]) { - _failureMessage = failureMessage; - } - - return self; -} - -- (NSDictionary *)toDictionary { - if (_failureMessage) { - NSMutableDictionary *messageDict = - [[NSMutableDictionary alloc] initWithDictionary:[super toDictionary]]; - NSMutableDictionary *errorDict = [[NSMutableDictionary alloc] init]; - [errorDict setObject:_failureMessage.message - forKey:kElectrodeBridgeResponseErrorMessage]; - [errorDict setObject:_failureMessage.code - forKey:kElectrodeBridgeResponseErrorCode]; - [messageDict setObject:errorDict forKey:kElectrodeBridgeResponseError]; - return messageDict; - } - return [super toDictionary]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"%@, failureMessage:%@", - [super description], self.failureMessage]; -} - -@end diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeTransaction.h b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeTransaction.h deleted file mode 100644 index b750cc4d..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeTransaction.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import -#import "ElectrodeBridgeProtocols.h" -#import "ElectrodeBridgeRequest.h" -#import "ElectrodeBridgeResponse.h" -NS_ASSUME_NONNULL_BEGIN -@interface ElectrodeBridgeTransaction : NSObject - -@property(nonatomic, readonly, strong) ElectrodeBridgeRequest *request; -@property(nonatomic, readonly, strong, nullable) ElectrodeBridgeResponseCompletionHandler completion; -// Note: response can be set -@property(nonatomic, readwrite, strong, nullable) - ElectrodeBridgeResponse *response; - -- (instancetype)initWithRequest:(ElectrodeBridgeRequest *)request - completionHandler:(ElectrodeBridgeResponseCompletionHandler _Nullable)completion; -- (NSString *)transactionId; -- (BOOL)isJsInitiated; - -@end -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeTransaction.m b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeTransaction.m deleted file mode 100644 index 237e2068..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeTransaction.m +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeBridgeTransaction.h" -#import "ElectrodeBridgeMessage.h" -NS_ASSUME_NONNULL_BEGIN -@interface ElectrodeBridgeTransaction () - -@property(nonatomic, strong, nonnull) ElectrodeBridgeRequest *request; -@property(nonatomic, strong, nullable) - ElectrodeBridgeResponseCompletionHandler completion; - -@end - -@implementation ElectrodeBridgeTransaction - -- (nonnull instancetype)initWithRequest:(ElectrodeBridgeRequest *)request - completionHandler: - (ElectrodeBridgeResponseCompletionHandler _Nullable) - completion; -{ - if (request.type != ElectrodeMessageTypeRequest) { - [NSException raise:@"Invalid type" - format:@"BridgeTransaction constrictor expects a request type, " - @"did you accidentally pass in a different type"]; - } - - if (self = [super init]) { - _request = request; - _completion = completion; - } - - return self; -} - -- (nonnull NSString *)transactionId { - return self.request.messageId; -} -- (BOOL)isJsInitiated { - return self.request.isJsInitiated; -} - -@end -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeTransceiver.h b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeTransceiver.h deleted file mode 100644 index f2e5fb4a..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeTransceiver.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import - -#if __has_include() -#import -#elif __has_include("RCTBridgeModule.h") -#import "RCTBridgeModule.h" -#else -#import "React/RCTBridgeModule.h" // Required when used as a Pod in a Swift project -#endif - -#if __has_include() -#import -#elif __has_include("RCTEventEmitter.h") -#import "RCTEventEmitter.h" -#else -#import "React/RCTEventEmitter.h" // Required when used as a Pod in a Swift project -#endif - -#import "ElectrodeBridgeProtocols.h" -/** - * A class that is responsible for transmitting messages between native side and - * react native side. - */ -NS_ASSUME_NONNULL_BEGIN -@interface ElectrodeBridgeTransceiver : RCTEventEmitter - -@property(nonatomic, copy, readonly, nonnull) NSString *name; -+ (instancetype)sharedInstance; -+ (void)registerReactNativeReadyListener:(ElectrodeBridgeReactNativeReadyListner _Nonnull)reactNativeReadyListner; -+ (void)registerReactTransceiverReadyListner:(ElectrodeBridgeReactNativeReadyListner _Nonnull)reactNativeReadyListner; -- (void)onReactNativeInitialized; -- (void)onTransceiverModuleInitialized; -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeTransceiver.m b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeTransceiver.m deleted file mode 100644 index 981f1a98..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeTransceiver.m +++ /dev/null @@ -1,442 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeBridgeTransceiver.h" -#import "ElectrodeBridgeTransceiver_Internal.h" -#import "ElectrodeEventDispatcher.h" -#import "ElectrodeRequestDispatcher.h" -#import "ElectrodeBridgeTransaction.h" -#import "ElectrodeEventRegistrar.h" -#import "ElectrodeRequestRegistrar.h" -#import "ElectrodeLogger.h" - -#if __has_include() -#import -#elif __has_include("RCTLog.h") -#import "RCTLog.h" -#else -#import "React/RCTLog.h" // Required when used as a Pod in a Swift project -#endif - -#if __has_include() -#import -#elif __has_include("RCTBridge.h") -#import "RCTBridge.h" -#else -#import "React/RCTBridge.h" // Required when used as a Pod in a Swift project -#endif - -#import "ElectrodeBridgeMessage.h" -#import "ElectrodeBridgeEvent.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface ElectrodeBridgeTransceiver () - -@property(nonatomic, copy) NSString *name; -@property(nonatomic, strong) ElectrodeEventDispatcher *eventDispatcher; -@property(nonatomic, strong) ElectrodeRequestDispatcher *requestDispatcher; -@property(nonatomic, copy) NSMutableDictionary *pendingTransaction; -@property(nonatomic, assign) dispatch_queue_t syncQueue; // this is used to make sure access to - // pendingTransaction is thread safe. - -@end - -static dispatch_once_t onceToken; -static ElectrodeRequestRegistrar *requestRegistrar; -static ElectrodeEventRegistrar *eventRegistrar; -static ElectrodeRequestDispatcher *requestDispatcher; -static ElectrodeEventDispatcher *eventDispatcher; -static NSMutableDictionary *pendingTransaction; -static NSMutableArray> *constantsProviders; - -@implementation ElectrodeBridgeTransceiver - -+ (instancetype)sharedInstance { - return sharedInstance; -} - -- (instancetype)init { - if (self = [super init]) { - dispatch_once(&onceToken, ^{ - requestRegistrar = [[ElectrodeRequestRegistrar alloc] init]; - eventRegistrar = [[ElectrodeEventRegistrar alloc] init]; - requestDispatcher = [[ElectrodeRequestDispatcher alloc] - initWithRequestRegistrar:requestRegistrar]; - eventDispatcher = [[ElectrodeEventDispatcher alloc] - initWithEventRegistrar:eventRegistrar]; - pendingTransaction = [[NSMutableDictionary alloc] init]; - constantsProviders = [[NSMutableArray alloc] init]; - }); - - _requestDispatcher = requestDispatcher; - _eventDispatcher = eventDispatcher; - _pendingTransaction = pendingTransaction; - } - return self; -} -RCT_EXPORT_MODULE(ElectrodeBridge); -+ (NSArray *)electrodeModules { - return @[ [[ElectrodeBridgeTransceiver alloc] init] ]; -} - -- (NSArray *)supportedEvents { - return @[ @"electrode.bridge.message" ]; -} - -#pragma ConstantsProvider implementation - -- (NSDictionary *)constantsToExport { - NSMutableDictionary *constants = [NSMutableDictionary new]; - if (constantsProviders != nil && [constantsProviders count] > 0) { - for (id constant in constantsProviders) { - [constants addEntriesFromDictionary:[constant constantsToExport]]; - } - return constants; - } - ERNDebug(@"Constants provider is empty %@", constantsProviders); - return nil; -} - -- (void)addConstantsProvider:(id)constantsProvider { - @synchronized(self) { - [constantsProviders addObject:constantsProvider]; - } -} - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma ElectrodeNativeBridge implementation -- (void)sendRequest:(ElectrodeBridgeRequest *)request - completionHandler:(ElectrodeBridgeResponseCompletionHandler)completion { - [self handleRequest:request completionHandler:completion]; -} - -- (void) registerRequestCompletionHandlerWithName:(NSString *)name - uuid: (NSUUID *) uuid - completion: (ElectrodeBridgeRequestCompletionHandler) completion { - [self.requestDispatcher.requestRegistrar registerRequestCompletionHandlerWithName:name - uuid:uuid completion:completion]; -} - - -- (nullable ElectrodeBridgeRequestCompletionHandler) unregisterRequestHandlerWithUUID:(NSUUID *)uuid { - return [requestRegistrar unregisterRequestHandler:uuid]; -} - -- (void)resetRegistrar { - [self.requestDispatcher.requestRegistrar reset]; -} - -- (void)sendEvent:(ElectrodeBridgeEvent *)event { - ERNDebug(@"ElectrodeBridgeTransceiver: emit event named: %@, id: %@", - event.name, event.messageId); - [self notifyNativeEventListenerWithEvent:event]; - [self notifyReactNativeEventListenerWithEvent:event]; -} - -- (void) registerEventListenerWithName: (NSString *_Nonnull)name - uuid: (NSUUID * _Nonnull)uuid - listener: (ElectrodeBridgeEventListener _Nonnull)eventListener { - ERNDebug(@"%@, Adding eventListener %@ for event %@", - NSStringFromClass([self class]), eventListener, name); - [self.eventDispatcher.eventRegistrar registerEventListener:eventListener - name:name uuid:uuid]; -} -- (nullable ElectrodeBridgeEventListener)removeEventListnerWithUUID: (NSUUID *) uuid { - ERNDebug(@"Removing event listener with NNUUID with string %@", uuid.UUIDString); - return [eventRegistrar unregisterEventListener:uuid]; -} -#pragma ElectrodeReactBridge - -RCT_EXPORT_METHOD(sendMessage : (NSDictionary *)bridgeMessage) { - ERNDebug(@"Received message from JS(data=%@)", bridgeMessage); - NSString *typeString = - (NSString *)[bridgeMessage objectForKey:kElectrodeBridgeMessageType]; - ElectrodeMessageType type = - [ElectrodeBridgeMessage typeFromString:typeString]; - switch (type) { - case ElectrodeMessageTypeRequest: { - ElectrodeBridgeRequest *request = - [ElectrodeBridgeRequest createRequestWithData:bridgeMessage]; - [self handleRequest:request completionHandler:nil]; - break; - } - - case ElectrodeMessageTypeResponse: { - ElectrodeBridgeResponse *response = - [ElectrodeBridgeResponse createResponseWithData:bridgeMessage]; - if (response != nil) { - [self handleResponse:response]; - } else { - [NSException raise:@"invalue resonse" - format:@"cannot construct a response from data"]; - } - break; - } - case ElectrodeMessageTypeEvent: { - ElectrodeBridgeEvent *event = - [ElectrodeBridgeEvent createEventWithData:bridgeMessage]; - if (event != nil) { - [self notifyNativeEventListenerWithEvent:event]; - } else { - [NSException raise:@"invalue event" - format:@"cannot construct an event from data"]; - } - break; - } - case ElectrodeMessageTypeUnknown: - default: - [NSException raise:@"invalue message" - format:@"cannot construct any message from data"]; - break; - } -} - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma private methods - -- (void)emitMessage:(ElectrodeBridgeMessage *_Nonnull)bridgeMessage { - ERNDebug(@"Sending bridgeMessage(%@) to JS", bridgeMessage); - [self sendEventWithName:@"electrode.bridge.message" - body:[bridgeMessage toDictionary]]; -} - -- (void)notifyReactNativeEventListenerWithEvent:(ElectrodeBridgeEvent *)event { - [self emitMessage:event]; -} - -- (void)notifyNativeEventListenerWithEvent:(ElectrodeBridgeEvent *)event { - [self.eventDispatcher dispatchEvent:event]; -} - -- (void)handleRequest:(ElectrodeBridgeRequest *)request - completionHandler: - (ElectrodeBridgeResponseCompletionHandler _Nullable)completion { - [self logRequest:request]; - - if (completion == nil && !request.isJsInitiated) { - [NSException - raise:@"invalid operation" - format:@"A response lister is required for a native initiated request"]; - } - - ElectrodeBridgeTransaction *transaction = - [self createTransactionWithRequest:request completionHandler:completion]; - if ([self.requestDispatcher canHandlerRequestWithName:request.name]) { - [self dispatchRequestToNativeHandlerForTransaction:transaction]; - } else if (!request.isJsInitiated) { // GOTCHA: Make sure not send a request - // back to JS if it's initiated on JS - // side - [self dispatchRequestToReactHandlerForTransaction:transaction]; - } else { - ERNDebug(@"No handler available to handle request(%@)", request); - id failureMessage = [ElectrodeBridgeFailureMessage - createFailureMessageWithCode:@"ENOHANDLER" - message:@"No registered request handler found"]; - ElectrodeBridgeResponse *response = - [ElectrodeBridgeResponse createResponseForRequest:request - withResponseData:nil - withFailureMessage:failureMessage]; - [self handleResponse:response]; - } -} - -- (ElectrodeBridgeTransaction *) -createTransactionWithRequest:(ElectrodeBridgeRequest *)request - completionHandler: - (ElectrodeBridgeResponseCompletionHandler)completion { - ElectrodeBridgeTransaction *transaction = - [[ElectrodeBridgeTransaction alloc] initWithRequest:request - completionHandler:completion]; - - @synchronized(self) { - [self.pendingTransaction setObject:transaction forKey:request.messageId]; - if ([request timeoutMs] != kElectrodeBridgeRequestNoTimeOut) { - [self startTimeOutCheckForTransaction:transaction]; - } - } - - return transaction; -} - -- (void)startTimeOutCheckForTransaction: - (ElectrodeBridgeTransaction *)transaction { - // Add the timeout handler - __weak ElectrodeBridgeTransceiver *weakSelf = self; - dispatch_after( - dispatch_time(DISPATCH_TIME_NOW, - (int64_t)(transaction.request.timeoutMs * NSEC_PER_MSEC)), - dispatch_get_main_queue(), ^{ - ElectrodeBridgeResponseCompletionHandler completionBlock = - transaction.completion; - if (completionBlock) { - id failureMessage = - [ElectrodeBridgeFailureMessage - createFailureMessageWithCode:@"TIMEOUT" - message:@"transaction timed out for " - @"request"]; - ElectrodeBridgeResponse *response = [ElectrodeBridgeResponse - createResponseForRequest:transaction.request - withResponseData:nil - withFailureMessage:failureMessage]; - [weakSelf handleResponse:response]; - } else { - ERNDebug( - @"Empty failure block. Time out may not be handled property"); - } - }); -} - -- (void)dispatchRequestToNativeHandlerForTransaction: - (ElectrodeBridgeTransaction *)transaction { - ERNDebug(@"Sending request(%@) to native handler", transaction.request); - ElectrodeBridgeRequest *request = transaction.request; - __weak ElectrodeBridgeTransceiver *weakSelf = self; - - [self.requestDispatcher - dispatchRequest:request - completionHandler:^( - id _Nullable data, - id _Nullable failureMessage) { - if (failureMessage != nil) { - ElectrodeBridgeResponse *response = - [ElectrodeBridgeResponse createResponseForRequest:request - withResponseData:nil - withFailureMessage:failureMessage]; - [weakSelf handleResponse:response]; - } else { - ElectrodeBridgeResponse *response = - [ElectrodeBridgeResponse createResponseForRequest:request - withResponseData:data - withFailureMessage:nil]; - [weakSelf handleResponse:response]; - } - }]; -} - -- (void)dispatchRequestToReactHandlerForTransaction: - (ElectrodeBridgeTransaction *)transaction { - ERNDebug(@"Sending request(%@) over to JS handler because there is no local " - @"request handler available", - transaction.request); - [self emitMessage:transaction.request]; -} - -- (void)handleResponse:(ElectrodeBridgeResponse *)response { - ERNDebug(@"hanlding bridge response: %@", response); - ElectrodeBridgeTransaction *transaction; - @synchronized(self) { - transaction = (ElectrodeBridgeTransaction *)[self.pendingTransaction - objectForKey:response.messageId]; - } - if (transaction != nil) { - transaction.response = response; - [self completeTransaction:transaction]; - } else { - ERNDebug(@"Response(%@) will be ignored because the transcation for this " - @"request has been removed from the queue. Perhaps it's already " - @"timed-out or completed.", - response); - } -} - -- (void)completeTransaction:(ElectrodeBridgeTransaction *)transaction { - if (transaction.response == nil) { - [NSException raise:@"invalid transaction" - format:@"Cannot complete transaction, a transaction can only " - @"be completed with a valid response"]; - } - ERNDebug(@"completing transaction(id=%@", transaction.transactionId); - - [self.pendingTransaction removeObjectForKey:transaction.transactionId]; - - ElectrodeBridgeResponse *response = transaction.response; - [self logResponse:response]; - - if (transaction.isJsInitiated) { - ERNDebug(@"Completing transaction by emitting event back to JS since the " - @"request is initiated from JS side"); - [self emitMessage:response]; - } else { - if (transaction.completion == nil) { - [NSException raise:@"invalid transaction" - format:@"Should never reach here. A response listener should " - @"always be set for a local transaction"]; - } else { - if (response.failureMessage != nil) { - - ERNDebug(@"Completing transaction by issuing a failure call back to " - @"local response listener"); - dispatch_async(dispatch_get_main_queue(), ^{ - transaction.completion(nil, response.failureMessage); - }); - } else { - ERNDebug(@"Completing transaction by issuing a success call back to " - @"local response listener"); - dispatch_async(dispatch_get_main_queue(), ^{ - transaction.completion(response.data, nil); - }); - } - } - } -} - -- (void)logRequest:(ElectrodeBridgeRequest *)request { - ERNDebug(@"--> --> --> --> --> Request(%@)", request); -} - -- (void)logResponse:(ElectrodeBridgeResponse *)response { - ERNDebug(@"<-- <-- <-- <-- <-- Response(%@)", response); -} - -+ (void)registerReactNativeReadyListener: - (ElectrodeBridgeReactNativeReadyListner)listner { - if (isReactNativeReady) { - if (listner) { - listner(sharedInstance); - } - } - - reactNativeReadyListener = [listner copy]; -} - -- (void)onReactNativeInitialized { - isReactNativeReady = YES; - sharedInstance = self; - if (reactNativeReadyListener) { - reactNativeReadyListener(self); - } -} -+ (void)registerReactTransceiverReadyListner: - (ElectrodeBridgeReactNativeReadyListner)listener { - if (isTransceiverReady) { - if (listener) { - listener(sharedInstance); - } - } - reactNativeTransceiver = listener; -} - -- (void)onTransceiverModuleInitialized { - isTransceiverReady = YES; - sharedInstance = self; - if (reactNativeTransceiver) { - reactNativeTransceiver(self); - } -} - -@end -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeTransceiver_Internal.h b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeTransceiver_Internal.h deleted file mode 100644 index 083079ac..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeBridgeTransceiver_Internal.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeBridgeTransceiver.h" -NS_ASSUME_NONNULL_BEGIN -static ElectrodeBridgeReactNativeReadyListner reactNativeReadyListener = nil; -static ElectrodeBridgeReactNativeReadyListner reactNativeTransceiver = nil; -static BOOL isReactNativeReady = NO; -static BOOL isTransceiverReady = NO; -static ElectrodeBridgeTransceiver *sharedInstance; - -@interface ElectrodeBridgeTransceiver () -- (void)emitMessage:(ElectrodeBridgeMessage *_Nonnull)bridgeMessage; -- (void)resetRegistrar; -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeEventDispatcher.h b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeEventDispatcher.h deleted file mode 100644 index 6290e04f..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeEventDispatcher.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import -#import "ElectrodeEventRegistrar.h" -#import "ElectrodeBridgeEvent.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface ElectrodeEventDispatcher : NSObject - -@property(nonatomic, strong, readonly) ElectrodeEventRegistrar *eventRegistrar; - -- (instancetype)initWithEventRegistrar:(ElectrodeEventRegistrar *)eventRegistrar; -- (void)dispatchEvent:(ElectrodeBridgeEvent *)bridgeEvent; - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeEventDispatcher.m b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeEventDispatcher.m deleted file mode 100644 index b9800bb4..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeEventDispatcher.m +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeEventDispatcher.h" -#import "ElectrodeBridgeProtocols.h" -#import "ElectrodeLogger.h" - -@interface ElectrodeEventRegistrar () - -@property(nonatomic, strong) ElectrodeEventRegistrar *eventRegistrar; - -@end - -@implementation ElectrodeEventDispatcher - -- (instancetype)initWithEventRegistrar: - (ElectrodeEventRegistrar *)eventRegistrar { - if (self = [super init]) { - _eventRegistrar = eventRegistrar; - } - - return self; -} - -- (void)dispatchEvent:(ElectrodeBridgeEvent *)bridgeEvent { - NSArray *eventListeners = - [self.eventRegistrar getEventListnersForName:bridgeEvent.name]; - - for (ElectrodeBridgeEventListener eventListener in eventListeners) { - ERNDebug(@"ElectrodeEventDispatcher is dispatching events %@, id(%@) to " - @"listener %@", - bridgeEvent.name, bridgeEvent.messageId, eventListener); - dispatch_async(dispatch_get_main_queue(), ^{ - if (eventListener) { - eventListener(bridgeEvent.data); - } - }); - } -} - -@end diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeEventRegistrar.h b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeEventRegistrar.h deleted file mode 100644 index 07c9c466..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeEventRegistrar.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import -#import "ElectrodeBridgeProtocols.h" - -@interface ElectrodeEventRegistrar : NSObject - -/** - Add a specific event listener that will respond to a given event name. - - @param name The name of the event in reverse url format. - @param eventListener The event listener that will respond to a given event. - @param uuid The uuid of the listener - */ -- (void) registerEventListener:(ElectrodeBridgeEventListener _Nonnull)eventListener - name: (NSString *_Nonnull)name - uuid: (NSUUID * _Nonnull)uuid; - -/** - Remove an event listener by a given UUID. It is possible to have multiple event - listeners for a given name. They are grouped by the name and separated by UUID. - - @param eventListenerUUID The UUID of the event listener. - */ -- (nullable ElectrodeBridgeEventListener)unregisterEventListener:(NSUUID *_Nonnull)eventListenerUUID; - -/** - Grabs all of the event listeners of a given name. - - @param name The name that the event listeners will respond to. - @return An array of all of the event listeners, will return nil if none are - found. - */ -- (NSArray *_Nullable)getEventListnersForName: - (NSString *_Nonnull)name; - -@end diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeEventRegistrar.m b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeEventRegistrar.m deleted file mode 100644 index 755c5f2b..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeEventRegistrar.m +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeEventRegistrar.h" - -@interface ElectrodeEventRegistrar () - -@property(nonatomic, strong) NSMutableDictionary *eventListenerByUUID; -@property(nonatomic, strong) NSMutableDictionary *eventListenersByEventName; - -@end - -@implementation ElectrodeEventRegistrar -- (void) registerEventListener:(ElectrodeBridgeEventListener _Nonnull)eventListener - name: (NSString *_Nonnull)name - uuid: (NSUUID * _Nonnull)uuid { - @synchronized(self) { - if ([self.eventListenersByEventName objectForKey:name]) { - NSMutableArray *eventListenerArray = - [self.eventListenersByEventName objectForKey:name]; - [eventListenerArray addObject:eventListener]; - [self.eventListenersByEventName setValue:eventListenerArray forKey:name]; - } else { - NSMutableArray *eventListenerArray = [[NSMutableArray alloc] init]; - [eventListenerArray addObject:eventListener]; - [self.eventListenersByEventName setObject:eventListenerArray forKey:name]; - } - - [self.eventListenerByUUID setObject:eventListener forKey:uuid]; - } -} - -- (nullable ElectrodeBridgeEventListener) unregisterEventListener:(NSUUID *_Nonnull)eventListenerUUID { - ElectrodeBridgeEventListener eventListener; - @synchronized(self) { - eventListener = - [self.eventListenerByUUID objectForKey:eventListenerUUID]; - [self.eventListenerByUUID removeObjectForKey:eventListenerUUID]; - - if (eventListener) { - NSArray *keys = [self.eventListenersByEventName allKeys]; - for (NSString *key in keys) { - NSMutableArray *eventListeners = - [self.eventListenersByEventName objectForKey:key]; - if ([eventListeners containsObject:eventListener]) { - [eventListeners removeObject:eventListener]; - } - [self.eventListenersByEventName setObject:eventListeners forKey:key]; - } - } - } - return eventListener; -} - -- (NSArray *_Nullable)getEventListnersForName: - (NSString *_Nonnull)name { - @synchronized(self) { - NSArray *eventListeners = nil; - - if ([self.eventListenersByEventName objectForKey:name]) { - id tempListeners = [self.eventListenersByEventName objectForKey:name]; - if ([tempListeners isKindOfClass:[NSArray class]]) { - eventListeners = (NSArray *)[NSArray - arrayWithArray:tempListeners]; - } - } - return eventListeners; - } -} - -- (NSMutableDictionary *)eventListenersByEventName { - // Lazy instantiation - if (!_eventListenersByEventName) { - _eventListenersByEventName = [[NSMutableDictionary alloc] init]; - } - - return _eventListenersByEventName; -} - -- (NSMutableDictionary *)eventListenerByUUID { - // Lazy instantiation - if (!_eventListenerByUUID) { - _eventListenerByUUID = [[NSMutableDictionary alloc] init]; - } - - return _eventListenerByUUID; -} - -@end diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeLogger.h b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeLogger.h deleted file mode 100644 index 060c2f2b..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeLogger.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import -NS_ASSUME_NONNULL_BEGIN -typedef NS_ENUM(NSInteger, ElectrodeLogLevel) { - ElectrodeLogLevelNone = 1 << 0, - ElectrodeLogLevelError = 1 << 1, - ElectrodeLogLevelInfo = 1 << 2, - ElectrodeLogLevelDebug = 1 << 3, - ElectrodeLogLevelVerbose = 1 << 4 -}; - -@interface ElectrodeLoggerObjc : NSObject -+ (void)loglevel:(ElectrodeLogLevel)level format:(NSString *)format, ...; -@end - -#define ERNLog(lvl, frmt, ...) \ - [ElectrodeLoggerObjc loglevel:lvl format:frmt, ##__VA_ARGS__] - -#define ERNDebug(frmt, ...) ERNLog(ElectrodeLogLevelDebug, frmt, ##__VA_ARGS__) - -@protocol ElectrodeLogger - -@property(nonatomic, assign) ElectrodeLogLevel logLevel; -+ (instancetype)sharedInstance; -- (void)log:(ElectrodeLogLevel)level message:(NSString *)message; -- (void)debug:(NSString *)message; - -@end - -/* - * ElectrodeConsoleLogger sets the log level for ERN framework - * an example usage could be like below - * ElectrodeConsoleLogger.sharedInstance.logLevel = ElectrodeLogLevelDebug - */ -@interface ElectrodeConsoleLogger : NSObject - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeLogger.m b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeLogger.m deleted file mode 100644 index 24ce8b4b..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeLogger.m +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#import "ElectrodeLogger.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface ElectrodeConsoleLogger () -@end - -@implementation ElectrodeConsoleLogger -@synthesize logLevel = _logLevel; -- (instancetype)init { - if (self = [super init]) { - _logLevel = ElectrodeLogLevelNone; - } - - return self; -} -+ (instancetype)sharedInstance { - static dispatch_once_t onceToken; - static ElectrodeConsoleLogger *sharedInstance; - dispatch_once(&onceToken, ^{ - sharedInstance = [[ElectrodeConsoleLogger alloc] init]; - }); - - return sharedInstance; -} -- (void)log:(ElectrodeLogLevel)level message:(NSString *)message { - if (self.logLevel >= level) { - switch (level) { - case ElectrodeLogLevelNone: - // log nothing - break; - case ElectrodeLogLevelError: - NSLog(@"[ERN Error] %@", message); - break; - case ElectrodeLogLevelInfo: - NSLog(@"[ERN Info] %@", message); - break; - case ElectrodeLogLevelDebug: - NSLog(@"[ERN Debug] %@", message); - break; - case ElectrodeLogLevelVerbose: - NSLog(@"[ERN Verbose] %@", message); - break; - default: - break; - } - } -} - -- (void)debug:(NSString *)message { - [self log:ElectrodeLogLevelDebug message:message]; -} -@end - -@implementation ElectrodeLoggerObjc - -+ (void)loglevel:(ElectrodeLogLevel)level format:(NSString *)format, ... { - va_list argp; - va_start(argp, format); - NSString *message = [[NSString alloc] initWithFormat:format arguments:argp]; - va_end(argp); - - [[ElectrodeConsoleLogger sharedInstance] log:level message:message]; -} - -@end -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeObject.swift b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeObject.swift deleted file mode 100644 index 9518b60d..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeObject.swift +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import UIKit - -open class ElectrodeObject: NSObject { - public required init(dictionary _: [AnyHashable: Any]) { - super.init() - } - - public override init() { - super.init() - } -} diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeReactNativeBridge.h b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeReactNativeBridge.h deleted file mode 100644 index e1e75a14..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeReactNativeBridge.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import - -//! Project version number for ElectrodeReactNativeBridge. -FOUNDATION_EXPORT double ElectrodeReactNativeBridgeVersionNumber; - -//! Project version string for ElectrodeReactNativeBridge. -FOUNDATION_EXPORT const unsigned char ElectrodeReactNativeBridgeVersionString[]; - -// In this header, you should import all the public headers of your framework -// using statements like #import - -#import -#import -#import -#import -#import diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeRequestDispatcher.h b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeRequestDispatcher.h deleted file mode 100644 index a4471af8..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeRequestDispatcher.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import -#import "ElectrodeRequestRegistrar.h" -#import "ElectrodeBridgeRequest.h" -#import "ElectrodeBridgeProtocols.h" - -NS_ASSUME_NONNULL_BEGIN -@interface ElectrodeRequestDispatcher : NSObject - -@property(nonatomic, strong, readonly) ElectrodeRequestRegistrar *requestRegistrar; - -- (instancetype)initWithRequestRegistrar:(ElectrodeRequestRegistrar *)requestRegistrar; -- (void)dispatchRequest:(ElectrodeBridgeRequest *)bridgeRequest - completionHandler:(ElectrodeBridgeResponseCompletionHandler)completion; -- (BOOL)canHandlerRequestWithName:(NSString *)name; -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeRequestDispatcher.m b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeRequestDispatcher.m deleted file mode 100644 index 2c6d1627..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeRequestDispatcher.m +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeRequestDispatcher.h" -#import "ElectrodeBridgeFailureMessage.h" -#import "ElectrodeLogger.h" - -NS_ASSUME_NONNULL_BEGIN -@interface ElectrodeRequestRegistrar () -@property(nonatomic, strong) ElectrodeRequestRegistrar *requestRegistrar; - -@end - -@implementation ElectrodeRequestDispatcher -- (instancetype)initWithRequestRegistrar: - (ElectrodeRequestRegistrar *)requestRegistrar { - if (self = [super init]) { - _requestRegistrar = [[ElectrodeRequestRegistrar alloc] init]; - } - return self; -} - -- (void)dispatchRequest:(ElectrodeBridgeRequest *)bridgeRequest - completionHandler:(ElectrodeBridgeResponseCompletionHandler)completion - -{ - NSString *requestId = bridgeRequest.messageId; - NSString *requestName = bridgeRequest.name; - - ERNDebug(@"ElectrodeRequestDispatcher dispatching request(id=%@) locally", - requestId); - - ElectrodeBridgeRequestCompletionHandler requestCompletionHandler = - [self.requestRegistrar getRequestHandler:requestName]; - if (requestCompletionHandler == nil) { - NSString *errorMessage = [NSString - stringWithFormat:@"No registered request handler for request name %@", - requestName]; - id failureMessage = [ElectrodeBridgeFailureMessage - createFailureMessageWithCode:@"ENOHANDLER" - message:errorMessage]; - if (completion) { - completion(nil, failureMessage); - } - return; - } - - dispatch_async(dispatch_get_main_queue(), ^{ - requestCompletionHandler(bridgeRequest.data, completion); - }); -} -- (BOOL)canHandlerRequestWithName:(NSString *)name { - return ([self.requestRegistrar getRequestHandler:name] != nil); -} -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeRequestHandlerProcessor.swift b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeRequestHandlerProcessor.swift deleted file mode 100644 index 180f1035..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeRequestHandlerProcessor.swift +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import UIKit - -public class ElectrodeRequestHandlerProcessor: NSObject, Processor { - let tag: String - let requestName: String - let reqClass: TReq.Type - let reqItemType: Any.Type? - let respClass: TResp.Type - let requestCompletionHandler: ElectrodeBridgeRequestCompletionHandler - - public init(requestName: String, - reqClass: TReq.Type, - reqItemType: Any.Type? = nil, - respClass: TResp.Type, - requestCompletionHandler: @escaping ElectrodeBridgeRequestCompletionHandler) { - tag = String(describing: type(of: self)) - self.requestName = requestName - self.reqClass = reqClass - self.reqItemType = reqItemType - self.respClass = respClass - self.requestCompletionHandler = requestCompletionHandler - super.init() - } - - public func execute() -> UUID? { - let uuid = ElectrodeBridgeHolder.registerRequestHandler(withName: requestName) { (data: Any?, responseCompletion: @escaping ElectrodeBridgeResponseCompletionHandler) in - let request: Any? - if self.reqClass == None.self { - request = nil - } else { - if let nonnilData = data { - request = try? ElectrodeUtilities.generateObject(data: nonnilData, classType: self.reqClass, itemType: self.reqItemType) - } else { - request = nil - } - } - //this is passed back to Native side. - self.requestCompletionHandler(request, responseCompletion) - } - return uuid - } -} diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeRequestProcessor.swift b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeRequestProcessor.swift deleted file mode 100644 index f01fabaa..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeRequestProcessor.swift +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import UIKit - -typealias ElectrodeRequestProcessorSuccessClosure = (Any?) -> Void -typealias ElectrodeRequestProcessorFailureClosure = (ElectrodeFailureMessage) -> Void - -public class ElectrodeRequestProcessor: NSObject { - private let tag: String - private let requestName: String - private let requestPayload: Any? - private let responseClass: TResp.Type - private let responseItemType: Any.Type? - private let responseCompletionHandler: ElectrodeBridgeResponseCompletionHandler - - public init(requestName: String, - requestPayload: Any?, - respClass: TResp.Type, - responseItemType: Any.Type?, - responseCompletionHandler: @escaping ElectrodeBridgeResponseCompletionHandler) { - tag = String(describing: type(of: self)) - self.requestName = requestName - self.requestPayload = requestPayload - responseClass = respClass - self.responseItemType = responseItemType - self.responseCompletionHandler = responseCompletionHandler - super.init() - } - - public func execute() -> UUID? { - ElectrodeConsoleLogger.sharedInstance().debug("RequestProcessor started processing request (\(requestName)) with payload (\(String(describing: requestPayload)))") - let bridgeMessageData = ElectrodeUtilities.convertObjectToBridgeMessageData(object: requestPayload) - - let validRequest = ElectrodeBridgeRequest(name: requestName, data: bridgeMessageData) - - ElectrodeBridgeHolder.send(validRequest) { (responseData: Any?, failureMessage: ElectrodeFailureMessage?) in - if let failureMessage = failureMessage { - self.responseCompletionHandler(nil, failureMessage) - } else { - let processedResp: Any? - if self.responseClass != None.self { - processedResp = self.processSuccessResponse(responseData: responseData) - } else { - processedResp = nil - } - self.responseCompletionHandler(processedResp, nil) - } - } - return nil - } - - private func processSuccessResponse(responseData: Any?) -> Any? { - guard let anyData = responseData else { - return nil - } - - let generatedRes: Any? - do { - generatedRes = try NSObject.generateObject(data: anyData, classType: responseClass, itemType: responseItemType) - - } catch { - assertionFailure("Failed to convert responseData to valid obj") - generatedRes = nil - } - - return generatedRes - } -} diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeRequestRegistrar.h b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeRequestRegistrar.h deleted file mode 100644 index 75663791..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeRequestRegistrar.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import -#import "ElectrodeBridgeProtocols.h" - -NS_ASSUME_NONNULL_BEGIN -@interface ElectrodeRequestRegistrar : NSObject - -/** - Register a request handler with a given name. An error is returned if a handler - already exists for the given name. Only one request is allowed per name. - - @param name The name of the event in reverse url format. - @param completion The request handler that will parse and process a request. - */ -- (void) registerRequestCompletionHandlerWithName:(NSString *)name - uuid: (NSUUID *) uuid - completion: (ElectrodeBridgeRequestCompletionHandler) completion; - -/** - * Unregisters a request handler - * - * @param uuid - The UUID that was obtained through initial - * registerRequestHandler - * call - */ -- (nullable ElectrodeBridgeRequestCompletionHandler)unregisterRequestHandler:(NSUUID *)uuid; - -/** - Grabs a given request handler for a request name. - - @param name The name of the request, in reverse url format. - @return Returns a request handler for a specific name. - */ -- (nullable ElectrodeBridgeRequestCompletionHandler)getRequestHandler: - (NSString *)name; -- (void)reset; - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeRequestRegistrar.m b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeRequestRegistrar.m deleted file mode 100644 index 7b18242a..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeRequestRegistrar.m +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeRequestRegistrar.h" -#import "ElectrodeLogger.h" -NS_ASSUME_NONNULL_BEGIN -@interface ElectrodeRequestRegistrar () - -@property(nonatomic, strong) NSMutableDictionary *requestNameByUUID; -@property(nonatomic, strong) NSMutableDictionary *requestHandlerByRequestName; - -@end - -@implementation ElectrodeRequestRegistrar - -- (void) registerRequestCompletionHandlerWithName:(NSString *)name - uuid: (NSUUID *) uuid - completion: (ElectrodeBridgeRequestCompletionHandler) completion { - @synchronized(self) { - ERNDebug(@"***Logging registering requestHandler with Name %@", name); - [self.requestHandlerByRequestName setObject:completion forKey:name]; - [self.requestNameByUUID setObject:name forKey:uuid]; - ERNDebug(@"***Logging registered requestHandlerDictionary:%@", - self.requestHandlerByRequestName); - } -} - -- (nullable ElectrodeBridgeRequestCompletionHandler)unregisterRequestHandler:(NSUUID *)uuid { - ElectrodeBridgeRequestCompletionHandler handler; - @synchronized(self) { - NSString *requestName = [self.requestNameByUUID objectForKey:uuid]; - - if (requestName) { - [self.requestNameByUUID removeObjectForKey:uuid]; - handler = [self.requestHandlerByRequestName objectForKey:requestName]; - [self.requestHandlerByRequestName removeObjectForKey:requestName]; - } - } - return handler; -} - -- (nullable ElectrodeBridgeRequestCompletionHandler)getRequestHandler: - (NSString *)name; -{ - ERNDebug(@"***Logging getting request handler requestHandlerDictionary:%@", - self.requestHandlerByRequestName); - ERNDebug(@"%@", self); - - @synchronized(self) { - return [self.requestHandlerByRequestName objectForKey:name]; - } -} - -- (void)reset { - self.requestNameByUUID = [[NSMutableDictionary alloc] init]; - self.requestHandlerByRequestName = [[NSMutableDictionary alloc] init]; -} -//////////////////////////////////////////////////////////////////////////////// -#pragma mark - Lazy Loading - -- (NSMutableDictionary *)requestNameByUUID { - // Lazy instatiation - if (!_requestNameByUUID) { - _requestNameByUUID = [[NSMutableDictionary alloc] init]; - } - - return _requestNameByUUID; -} - -- (NSMutableDictionary *)requestHandlerByRequestName { - // Lazy instatiation - if (!_requestHandlerByRequestName) { - _requestHandlerByRequestName = [[NSMutableDictionary alloc] init]; - } - - return _requestHandlerByRequestName; -} - -@end -NS_ASSUME_NONNULL_END diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeUtilities.swift b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeUtilities.swift deleted file mode 100644 index aa5f1383..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/ElectrodeUtilities.swift +++ /dev/null @@ -1,199 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import UIKit - -let kElectrodeBridgeRequestTimeoutTime = 10 - -let objectiveCPrimitives = [ - String.self, - String?.self, - Double.self, - Float.self, - Bool.self, - Int.self, - Int?.self, - Int8.self, - Int16.self, - Int32.self, - Int64.self, -] as [Any.Type] - -enum Property { - case Class(AnyClass) - case Struct -} - -public enum GenerateObjectError: Error { - case arrayTypeMissmatch - case emptyArrayItemType - case unsupportedType - case unBridgeable - case deserializationError -} - -extension NSObject { - - // Returns the property type - func getTypeOfProperty(_ name: String) -> Property? { - - var type: Mirror = Mirror(reflecting: self) - - for child in type.children { - if child.label! == name { - #if swift(>=4.0) - let res = Swift.type(of: child.value) - #else - let res = type(of: child.value) - #endif - let tmp = ElectrodeUtilities.isObjectiveCPrimitives(type: res) - return (!tmp) ? .Class(res) : .Struct - } - } - while let parent = type.superclassMirror { - for child in parent.children { - if child.label! == name { - #if swift(>=4.0) - let res = Swift.type(of: child.value) - #else - let res = type(of: child.value) - #endif - let tmp = ElectrodeUtilities.isObjectiveCPrimitives(type: res) - return (tmp) ? .Class(res) : .Struct - } - } - type = parent - } - return nil - } - - func toNSDictionary() -> NSDictionary { - let type: Mirror = Mirror(reflecting: self) - var res = [AnyHashable: Any]() - for case let (label, value) in type.children { - res[label!] = value - } - return res as NSDictionary - } - - static func generateObjectFromDict(data: [AnyHashable: Any], passedClass: AnyClass) throws -> AnyObject { - let stringForClass = String(reflecting: passedClass) - guard let obj = NSClassFromString(stringForClass) as? ElectrodeObject.Type else { - assertionFailure("Cannot proceed to convert dictionary to object type \(passedClass)") - return NSObject() - } - - let res = obj.init(dictionary: data) - return res - } - - public static func generateObject(data: Any, classType: Any.Type, itemType: Any.Type? = nil) throws -> Any { - var res: Any - // check to see if the type already matches. so no need to serialize or deserialize - if type(of: data) == classType && !(data is Array) { - return data - } - - if ElectrodeUtilities.isObjectiveCPrimitives(type: classType) { - res = data - } else if data is NSDictionary { - if let convertableData = data as? [AnyHashable: AnyObject] { - let obj = try NSObject.generateObjectFromDict(data: convertableData, passedClass: classType as! AnyClass) - res = obj - } else { - assertionFailure("failed here") - return NSString() - } - } else if data is Array { - if let arrayData = data as? Array { - var tmpRes = Array() - guard let validItemType = itemType else { throw GenerateObjectError.emptyArrayItemType } - for item in arrayData { - var obj: AnyObject - if ElectrodeUtilities.isObjectiveCPrimitives(type: validItemType) { - obj = item as AnyObject - } else { - obj = try NSObject.generateObject(data: item as AnyObject, classType: validItemType) as AnyObject - } - tmpRes.append(obj) - } - res = tmpRes as AnyObject - } else { - throw GenerateObjectError.unsupportedType - } - } else { - throw GenerateObjectError.unsupportedType - } - return res - } -} - -@objc class ElectrodeUtilities: NSObject { - - static func isObjectiveCPrimitives(type: Any.Type) -> Bool { - return (objectiveCPrimitives.contains(where: { (aClass) -> Bool in - aClass == type - })) - } - - static func convertObjectToBridgeMessageData(object: Any?) -> Any? { - - if let objectArray = object as? NSArray { - let converted = ElectrodeUtilities.convertArrayToDictionary(object: objectArray) - return converted - } - - let convertedData = ElectrodeUtilities.convertSingleItemToBridgeReadyData(object: object) - return convertedData - } - - private static func convertArrayToDictionary(object: NSArray) -> Array { - var res = [Any?]() - for item in object { - if let itemArray = item as? NSArray { - let convertedArray = ElectrodeUtilities.convertArrayToDictionary(object: itemArray) - res.append(convertedArray) - } else { - let convertedItem = ElectrodeUtilities.convertSingleItemToBridgeReadyData(object: item) - res.append(convertedItem) - } - } - return res - } - - private static func convertSingleItemToBridgeReadyData(object: Any?) -> Any? { - let bridgeMessageReadyDictionary: Any? - guard let validObject = object else { - bridgeMessageReadyDictionary = nil - return bridgeMessageReadyDictionary - } - #if swift(>=4.0) - let type = Swift.type(of: validObject) - #else - let type = type(of: validObject) - #endif - if ElectrodeUtilities.isObjectiveCPrimitives(type: type) { - return validObject - } - - if let bridgeableObject = validObject as? Bridgeable { - bridgeMessageReadyDictionary = bridgeableObject.toDictionary() - return bridgeMessageReadyDictionary - } - - return nil - } -} diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/EventListenerProcessor.swift b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/EventListenerProcessor.swift deleted file mode 100644 index be4b515b..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/EventListenerProcessor.swift +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import UIKit - -public class EventListenerProcessor: NSObject, Processor { - private let tag: String - private let eventName: String - private let eventPayloadClass: T.Type - private let appEventListener: ElectrodeBridgeEventListener - private let logger = ElectrodeConsoleLogger.sharedInstance() - - public init(eventName: String, eventPayloadClass: T.Type, eventListener: @escaping ElectrodeBridgeEventListener) { - tag = String(describing: type(of: self)) - self.eventName = eventName - self.eventPayloadClass = eventPayloadClass - appEventListener = eventListener - super.init() - } - - public func execute() -> UUID? { - let uuid = ElectrodeBridgeHolder.addEventListener(withName: eventName, eventListner: { (eventPayload: Any?) in - self.logger.debug("Processing final result for the event with payload bundle (\(String(describing: eventPayload)))") - let result = try? NSObject.generateObject(data: eventPayload as AnyObject, classType: self.eventPayloadClass) - self.appEventListener(result) - }) - return uuid - } -} diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/EventProcessor.swift b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/EventProcessor.swift deleted file mode 100644 index d5888bce..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/EventProcessor.swift +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import UIKit - -public class EventProcessor: NSObject, Processor { - private let tag: String - private let eventPayload: T? - private let eventName: String - private let logger = ElectrodeConsoleLogger.sharedInstance() - - public init(eventName: String, eventPayload: T?) { - tag = String(describing: type(of: self)) - self.eventName = eventName - self.eventPayload = eventPayload - super.init() - } - - public func execute() -> UUID? { - logger.debug("\(tag) EventProcessor is emitting event (\(eventName)) with payload (\(String(describing: eventPayload)))") - let event = ElectrodeBridgeEvent(name: eventName, type: .event, data: eventPayload) - ElectrodeBridgeHolder.send(event) - return nil - } -} diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/Info.plist b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/Info.plist deleted file mode 100644 index 239bb348..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/Info.plist +++ /dev/null @@ -1,29 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - - NSPrincipalClass - - - diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/None.swift b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/None.swift deleted file mode 100644 index 7cf0e863..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/None.swift +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import UIKit - -public class None: NSObject, Bridgeable { - public func toDictionary() -> NSDictionary { - return NSDictionary() - } - - public init(emptyData _: Data?) { - } -} diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/Processor.swift b/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/Processor.swift deleted file mode 100644 index cb56de3e..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNativeBridge/Processor.swift +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import Foundation - -@objc public protocol Processor { - func execute() -> UUID? -} diff --git a/ios/container/ElectrodeContainer/ElectrodeReactNative_Internal.h b/ios/container/ElectrodeContainer/ElectrodeReactNative_Internal.h deleted file mode 100644 index 0a274aa9..00000000 --- a/ios/container/ElectrodeContainer/ElectrodeReactNative_Internal.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright 2017 WalmartLabs - - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - - * http://www.apache.org/licenses/LICENSE-2.0 - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "ElectrodeContainer.h" -#import "ElectrodeBridgeDelegate.h" - diff --git a/ios/container/ElectrodeContainer/Frameworks/README.md b/ios/container/ElectrodeContainer/Frameworks/README.md deleted file mode 100644 index 0ee629fb..00000000 --- a/ios/container/ElectrodeContainer/Frameworks/README.md +++ /dev/null @@ -1 +0,0 @@ -Any third party Frameworks required by native modules will be stored in this directory \ No newline at end of file diff --git a/ios/container/ElectrodeContainer/Info.plist b/ios/container/ElectrodeContainer/Info.plist deleted file mode 100644 index d3de8eef..00000000 --- a/ios/container/ElectrodeContainer/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/ios/container/ElectrodeContainer/Libraries/MiniApp/MiniApp.jsbundle b/ios/container/ElectrodeContainer/Libraries/MiniApp/MiniApp.jsbundle deleted file mode 100644 index e951e08c..00000000 --- a/ios/container/ElectrodeContainer/Libraries/MiniApp/MiniApp.jsbundle +++ /dev/null @@ -1,445 +0,0 @@ -var __DEV__=false,__BUNDLE_START_TIME__=this.nativePerformanceNow?nativePerformanceNow():Date.now(),process=this.process||{};process.env=process.env||{};process.env.NODE_ENV="production"; -!(function(r){"use strict";r.__r=o,r.__d=function(r,n,i){if(null!=e[n])return;e[n]={dependencyMap:i,factory:r,hasError:!1,importedAll:t,importedDefault:t,isInitialized:!1,publicModule:{exports:{}}}},r.__c=i,r.__registerSegment=function(r,e){v[r]=e};var e=i(),t={},n={}.hasOwnProperty;function i(){return e=Object.create(null)}function o(r){var t=r,n=e[t];return n&&n.isInitialized?n.publicModule.exports:d(t,n)}function l(r){var n=r;if(e[n]&&e[n].importedDefault!==t)return e[n].importedDefault;var i=o(n),l=i&&i.__esModule?i.default:i;return e[n].importedDefault=l}function u(r){var i=r;if(e[i]&&e[i].importedAll!==t)return e[i].importedAll;var l,u=o(i);if(u&&u.__esModule)l=u;else{if(l={},u)for(var a in u)n.call(u,a)&&(l[a]=u[a]);l.default=u}return e[i].importedAll=l}o.importDefault=l,o.importAll=u;var a=!1;function d(e,t){if(!a&&r.ErrorUtils){var n;a=!0;try{n=h(e,t)}catch(e){r.ErrorUtils.reportFatalError(e)}return a=!1,n}return h(e,t)}var c=16,f=65535;function p(r){return{segmentId:r>>>c,localId:r&f}}o.unpackModuleId=p,o.packModuleId=function(r){return(r.segmentId<0){var i=p(t),a=i.segmentId,d=i.localId,c=v[a];null!=c&&(c(d),n=e[t])}var f=r.nativeRequire;if(!n&&f){var h=p(t),g=h.segmentId;f(h.localId,g),n=e[t]}if(!n)throw Error('Requiring unknown module "'+t+'".');if(n.hasError)throw m(t,n.error);n.isInitialized=!0;var I=n,_=I.factory,w=I.dependencyMap;try{var y=n.publicModule;if(y.id=t,s.length>0)for(var M=0;M=0||f.indexOf('description')>=0))return o(e);if(0===f.length){if(h(e)){var s=e.name?': '+e.name:'';return n.stylize('[Function'+s+']','special')}if(p(e))return n.stylize(RegExp.prototype.toString.call(e),'regexp');if(y(e))return n.stylize(Date.prototype.toString.call(e),'date');if(v(e))return o(e)}var d,b,j='',m=!1,z=['{','}'];(d=e,Array.isArray(d)&&(m=!0,z=['[',']']),h(e))&&(j=' [Function'+(e.name?': '+e.name:'')+']');return p(e)&&(j=' '+RegExp.prototype.toString.call(e)),y(e)&&(j=' '+Date.prototype.toUTCString.call(e)),v(e)&&(j=' '+o(e)),0!==f.length||m&&0!=e.length?l<0?p(e)?n.stylize(RegExp.prototype.toString.call(e),'regexp'):n.stylize('[Object]','special'):(n.seen.push(e),b=m?i(n,e,l,g,f):f.map(function(r){return u(n,e,l,g,r,m)}),n.seen.pop(),a(b,j,z)):z[0]+j+z[1]}function t(n,r){if(g(r))return n.stylize('undefined','undefined');if('string'==typeof r){var e="'"+JSON.stringify(r).replace(/^"|"$/g,'').replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return n.stylize(e,'string')}return f(r)?n.stylize(''+r,'number'):l(r)?n.stylize(''+r,'boolean'):c(r)?n.stylize('null','null'):void 0}function o(n){return'['+Error.prototype.toString.call(n)+']'}function i(n,r,e,t,o){for(var i=[],a=0,l=r.length;a-1&&(l=u?l.split('\n').map(function(n){return' '+n}).join('\n').substr(2):'\n'+l.split('\n').map(function(n){return' '+n}).join('\n')):l=n.stylize('[Circular]','special')),g(a)){if(u&&i.match(/^\d+$/))return l;(a=JSON.stringify(''+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=n.stylize(a,'name')):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=n.stylize(a,'string'))}return a+': '+l}function a(n,r,e){return n.reduce(function(n,r){return 0,r.indexOf('\n')>=0&&0,n+r.replace(/\u001b\[\d\d?m/g,'').length+1},0)>60?e[0]+(''===r?'':r+'\n ')+' '+n.join(',\n ')+' '+e[1]:e[0]+r+' '+n.join(', ')+' '+e[1]}function l(n){return'boolean'==typeof n}function c(n){return null===n}function f(n){return'number'==typeof n}function g(n){return void 0===n}function p(n){return s(n)&&'[object RegExp]'===d(n)}function s(n){return'object'==typeof n&&null!==n}function y(n){return s(n)&&'[object Date]'===d(n)}function v(n){return s(n)&&('[object Error]'===d(n)||n instanceof Error)}function h(n){return'function'==typeof n}function d(n){return Object.prototype.toString.call(n)}function b(n,r){return Object.prototype.hasOwnProperty.call(n,r)}return function(r,t){return e({seen:[],stylize:n},r,t.depth)}})(),e='(index)',t={trace:0,info:1,warn:2,error:3},o=[];o[t.trace]='debug',o[t.info]='log',o[t.warn]='warning',o[t.error]='error';var i=1;function u(e){return function(){var u;u=1===arguments.length&&'string'==typeof arguments[0]?arguments[0]:Array.prototype.map.call(arguments,function(n){return r(n,{depth:10})}).join(', ');var a=e;'Warning: '===u.slice(0,9)&&a>=t.error&&(a=t.warn),n.__inspectorLog&&n.__inspectorLog(o[a],u,[].slice.call(arguments),i),g.length&&(u=p('',u)),n.nativeLoggingHook(u,a)}}function a(n,r){return Array.apply(null,Array(r)).map(function(){return n})}var l="\u2502",c="\u2510",f="\u2518",g=[];function p(n,r){return g.join('')+n+' '+(r||'')}if(n.nativeLoggingHook){n.console;n.console={error:u(t.error),info:u(t.info),log:u(t.info),warn:u(t.warn),trace:u(t.trace),debug:u(t.trace),table:function(r){if(!Array.isArray(r)){var o=r;for(var i in r=[],o)if(o.hasOwnProperty(i)){var u=o[i];u[e]=i,r.push(u)}}if(0!==r.length){var l=Object.keys(r[0]).sort(),c=[],f=[];l.forEach(function(n,e){f[e]=n.length;for(var t=0;t',function(){return u.applyWithGuard(n,t||this,arguments,null,r)}}};n.ErrorUtils=u})('undefined'!=typeof global?global:'undefined'!=typeof window?window:this); -!(function(e){if(void 0===Number.EPSILON&&Object.defineProperty(Number,'EPSILON',{value:Math.pow(2,-52)}),void 0===Number.MAX_SAFE_INTEGER&&Object.defineProperty(Number,'MAX_SAFE_INTEGER',{value:Math.pow(2,53)-1}),void 0===Number.MIN_SAFE_INTEGER&&Object.defineProperty(Number,'MIN_SAFE_INTEGER',{value:-(Math.pow(2,53)-1)}),!Number.isNaN){var r=e.isNaN;Object.defineProperty(Number,'isNaN',{configurable:!0,enumerable:!1,value:function(e){return'number'==typeof e&&r(e)},writable:!0})}})('undefined'!=typeof global?global:'undefined'!=typeof window?window:this); -'undefined'!=typeof global?global:'undefined'!=typeof window&&window,String.prototype.startsWith||(String.prototype.startsWith=function(t){'use strict';if(null==this)throw TypeError();var r=String(this),n=arguments.length>1&&Number(arguments[1])||0,i=Math.min(Math.max(n,0),r.length);return r.indexOf(String(t),n)===i}),String.prototype.endsWith||(String.prototype.endsWith=function(t){'use strict';if(null==this)throw TypeError();var r=String(this),n=r.length,i=String(t),e=arguments.length>1?Number(arguments[1])||0:n,o=Math.min(Math.max(e,0),n)-i.length;return!(o<0)&&r.lastIndexOf(i,o)===o}),String.prototype.repeat||(String.prototype.repeat=function(t){'use strict';if(null==this)throw TypeError();var r=String(this);if((t=Number(t)||0)<0||t===1/0)throw RangeError();if(1===t)return r;for(var n='';t;)1&t&&(n+=r),(t>>=1)&&(r+=r);return n}),String.prototype.includes||(String.prototype.includes=function(t,r){'use strict';return'number'!=typeof r&&(r=0),!(r+t.length>this.length)&&-1!==this.indexOf(t,r)}),String.prototype.codePointAt||(String.prototype.codePointAt=function(t){if(null==this)throw TypeError();var r=String(this),n=r.length,i=t?Number(t):0;if(Number.isNaN(i)&&(i=0),!(i<0||i>=n)){var e,o=r.charCodeAt(i);return o>=55296&&o<=56319&&n>i+1&&(e=r.charCodeAt(i+1))>=56320&&e<=57343?1024*(o-55296)+e-56320+65536:o}}),String.prototype.padEnd||(String.prototype.padEnd=function(t,r){return t>>=0,r=String(void 0!==r?r:' '),this.length>t?String(this):((t-=this.length)>r.length&&(r+=r.repeat(t/r.length)),String(this)+r.slice(0,t))}),String.prototype.padStart||(String.prototype.padStart=function(t,r){return t>>=0,r=String(void 0!==r?r:' '),this.length>t?String(this):((t-=this.length)>r.length&&(r+=r.repeat(t/r.length)),r.slice(0,t)+String(this))}); -!(function(e){function r(e,r){if(null==this)throw new TypeError('Array.prototype.findIndex called on null or undefined');if('function'!=typeof e)throw new TypeError('predicate must be a function');for(var n=Object(this),t=n.length>>>0,o=0;o=0?t=i:(t=n+i)<0&&(t=0);t1&&void 0!==arguments[1]?arguments[1]:{}).data,n=this._buildMessage("event",t,{data:s});c.NativeModules.ElectrodeBridge.sendMessage(n),this.emit(t,s)}},{key:"sendRequest",value:function(t){var s,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},u=n.data,o=n.timeout,l=void 0===o?5e3:o;if(this.requestHandlerByRequestName.has(t))s=this.requestHandlerByRequestName.get(t)(u);else{var v=this._buildMessage("req",t,{data:u});s=this._waitForResponse(v.id),c.NativeModules.ElectrodeBridge.sendMessage(v)}var h=new Promise(function(t,s){setTimeout(s,l,f)});return Promise.race([s,h])}},{key:"registerRequestHandler",value:function(t,s){if(this.requestHandlerByRequestName.has(t))throw new Error("A handler is already registered for request name "+t);this.requestHandlerByRequestName.set(t,s)}},{key:"registerEventListener",value:function(t,s){this.addListener(t,s);var n={name:t,handler:s},u=h.default.v4();return this.eventListenerUUIDRef.set(u,n),u}},{key:"removeEventListener",value:function(t){var s=this.eventListenerUUIDRef.get(t);if(s)return this.eventListenerUUIDRef.delete(t),this.removeListener(s.name,s.handler)}},{key:"_buildMessage",value:function(t,s){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},u=n.data,o=n.error,l=n.id,v={type:t,name:s,id:void 0===l?h.default.v4():l};return void 0!==u&&null!==u?v.data=u:o&&(v.error=o),v}},{key:"_waitForResponse",value:function(t){var s=this;return new Promise(function(n,u){s.pendingResponseCallbackById.set(t,function(t,s){s?u(s):n(t)})})}},{key:"_onMessageFromNative",value:function(t){var s=this;switch(t.type){case"req":if(!this.requestHandlerByRequestName.has(t.name)){var n=this._buildMessage("rsp",t.name,{id:t.id,error:R});return c.NativeModules.ElectrodeBridge.sendMessage(n)}this.requestHandlerByRequestName.get(t.name)(t.data).then(function(n){var u=s._buildMessage("rsp",t.name,{id:t.id,data:n});return c.NativeModules.ElectrodeBridge.sendMessage(u)}).catch(function(n){var u=s._buildMessage("rsp",t.name,{id:t.id,error:n});return c.NativeModules.ElectrodeBridge.sendMessage(u)});break;case"rsp":this.pendingResponseCallbackById.has(t.id)&&(this.pendingResponseCallbackById.get(t.id)(t.data,t.error),this.pendingResponseCallbackById.delete(t.id));break;case"event":this.emitEvent(t.name,t.data?{data:t.data}:{})}}},{key:"_dispatchJsOriginatingRequest",value:function(t,s,n){if(!this.requestHandlerByRequestName.has(t))throw R;return this.requestHandlerByRequestName.get(t)(n)}},{key:"_sendSuccessResponseToNative",value:function(t,s){c.NativeModules.ElectrodeBridge.dispatchEvent(ELECTRODE_BRIDGE_RESPONSE_EVENT_NAME,h.default.v4(),{requestId:t,data:s})}},{key:"_sendErrorResponseToNative",value:function(t,s){c.NativeModules.ElectrodeBridge.dispatchEvent(ELECTRODE_BRIDGE_RESPONSE_EVENT_NAME,h.default.v4(),{requestId:t,error:s})}}]),N})(r(d[9]));e.DispatchMode={NATIVE:0,JS:1,GLOBAL:2};var M=new N;e.electrodeBridge=M},7,[3,8,9,10,13,12,14,16,358,363]); -__d(function(g,r,i,a,m,e,d){m.exports=function(n,o){if(!(n instanceof o))throw new TypeError("Cannot call a class as a function")}},8,[]); -__d(function(g,r,i,a,m,e,d){function n(n,t){for(var o=0;o0?f[f.length-1]:null,v=f.length>1?f[f.length-2]:null,h='function'==typeof c,y='function'==typeof v;y&&l(h,'Cannot have a non-function arg after a function arg.');var C=h?c:null,p=y?v:null,M=h+y;f=f.slice(0,f.length-M),u.enqueueNativeCall(n,t,f,p,C)}).type=o,f}function v(n,t){return-1!==n.indexOf(t)}function h(o){var u=o||{},l=u.message,f=n(u,["message"]),s=new Error(l);return s.framesToPop=1,t(s,f)}g.__fbGenNativeModule=f;var y={};if(g.nativeModuleProxy)y=g.nativeModuleProxy;else if(!g.nativeExtensions){var C=g.__fbBatchedBridgeConfig;l(C,'__fbBatchedBridgeConfig is not set, cannot invoke native modules');var p=r(d[5]);(C.remoteModuleConfig||[]).forEach(function(n,t){var o=f(n,t);o&&(o.module?y[o.name]=o.module:p(y,o.name,{get:function(){return s(o.name,t)}}))})}m.exports=y},22,[23,25,26,30,17,40]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);m.exports=function(n,o){if(null==n)return{};var l,p,b=t(n,o);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(n);for(p=0;p=0||Object.prototype.propertyIsEnumerable.call(n,l)&&(b[l]=n[l])}return b}},23,[24]); -__d(function(g,r,i,a,m,e,d){m.exports=function(n,t){if(null==n)return{};var f,u,o={},c=Object.keys(n);for(u=0;u=0||(o[f]=n[f]);return o}},24,[]); -__d(function(g,r,i,a,m,e,d){function t(){return m.exports=t=Object.assign||function(t){for(var n=1;n=5){var c=this._queue;this._queue=[[],[],[],this._callID],this._lastFlush=o,g.nativeFlushQueueImmediate(c)}n.counterEvent('pending_js_to_native_queue',this._queue[0].length),this.__spy&&this.__spy({type:1,module:t+'',method:u,args:l})}},{key:"createDebugLookup",value:function(t,u,l){}},{key:"setImmediatesCallback",value:function(t){this._immediatesCallback=t}},{key:"__guard",value:function(t){if(this.__shouldPauseOnThrow())t();else try{t()}catch(t){s.reportFatalError(t)}}},{key:"__shouldPauseOnThrow",value:function(){return'undefined'!=typeof DebuggerInternal&&!0===DebuggerInternal.shouldPauseOnThrow}},{key:"__callImmediates",value:function(){n.beginEvent('JSTimers.callImmediates()'),null!=this._immediatesCallback&&this._immediatesCallback(),n.endEvent()}},{key:"__callFunction",value:function(t,u,l){this._lastFlush=Date.now(),this._eventLoopStartTime=this._lastFlush,this.__spy?n.beginEvent(t+"."+u+"("+o(l)+")"):n.beginEvent(t+"."+u+"(...)"),this.__spy&&this.__spy({type:0,module:t,method:u,args:l});var s=this.getCallableModule(t);h(!!s,'Module %s is not a registered callable module (calling %s)',t,u),h(!!s[u],'Method %s does not exist on module %s',u,t);var c=s[u].apply(s,l);return n.endEvent(),c}},{key:"__invokeCallback",value:function(u,l){this._lastFlush=Date.now(),this._eventLoopStartTime=this._lastFlush;var s=u>>>1,n=1&u?this._successCallbacks[s]:this._failureCallbacks[s];n&&(delete this._successCallbacks[s],delete this._failureCallbacks[s],n.apply(void 0,t(l)))}}],[{key:"spy",value:function(t){c.prototype.__spy=!0===t?function(t){console.log((0===t.type?'N->JS':'JS->N')+" : "+(t.module?t.module+'.':'')+t.method+"("+JSON.stringify(t.args)+")")}:!1===t?null:t}}]),c})();m.exports=c},31,[32,8,9,36,37,38,17,39]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]);m.exports=function(u){return n(u)||t(u)||o()}},32,[33,34,35]); -__d(function(g,r,i,a,m,e,d){m.exports=function(n){if(Array.isArray(n)){for(var t=0,f=new Array(n.length);tV.length&&V.push(t)}function N(t,n,f,l){var c=typeof t;"undefined"!==c&&"boolean"!==c||(t=null);var p=!1;if(null===t)p=!0;else switch(c){case"string":case"number":p=!0;break;case"object":switch(t.$$typeof){case o:case u:p=!0}}if(p)return f(l,t,""===n?"."+B(t,0):n),1;if(p=0,n=""===n?".":n+":",Array.isArray(t))for(var y=0;y1&&(t-=1),t<.16666666666666666?l+6*(n-l)*t:t<.5?n:t<.6666666666666666?l+(n-l)*(.6666666666666666-t)*6:l}function n(n,t,o){var u=o<.5?o*(1+t):o+t-o*t,s=2*o-u,h=l(s,u,n+.3333333333333333),c=l(s,u,n),b=l(s,u,n-.3333333333333333);return Math.round(255*h)<<24|Math.round(255*c)<<16|Math.round(255*b)<<8}var t,o='[-+]?\\d*\\.?\\d+',u="[-+]?\\d*\\.?\\d+%";function s(){for(var l=arguments.length,n=new Array(l),t=0;t255?255:n}function c(l){return(parseFloat(l)%360+360)%360/360}function b(l){var n=parseFloat(l);return n<0?0:n>1?255:Math.round(255*n)}function p(l){var n=parseFloat(l);return n<0?0:n>100?1:n/100}var y={transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199};m.exports=function(l){var k,f=(void 0===t&&(t={rgb:new RegExp('rgb'+s(o,o,o)),rgba:new RegExp('rgba'+s(o,o,o,o)),hsl:new RegExp('hsl'+s(o,u,u)),hsla:new RegExp('hsla'+s(o,u,u,o)),hex3:/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex4:/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#([0-9a-fA-F]{6})$/,hex8:/^#([0-9a-fA-F]{8})$/}),t);return'number'==typeof l?l>>>0===l&&l>=0&&l<=4294967295?l:null:(k=f.hex6.exec(l))?parseInt(k[1]+'ff',16)>>>0:y.hasOwnProperty(l)?y[l]:(k=f.rgb.exec(l))?(h(k[1])<<24|h(k[2])<<16|h(k[3])<<8|255)>>>0:(k=f.rgba.exec(l))?(h(k[1])<<24|h(k[2])<<16|h(k[3])<<8|b(k[4]))>>>0:(k=f.hex3.exec(l))?parseInt(k[1]+k[1]+k[2]+k[2]+k[3]+k[3]+'ff',16)>>>0:(k=f.hex8.exec(l))?parseInt(k[1],16)>>>0:(k=f.hex4.exec(l))?parseInt(k[1]+k[1]+k[2]+k[2]+k[3]+k[3]+k[4]+k[4],16)>>>0:(k=f.hsl.exec(l))?(255|n(c(k[1]),p(k[2]),p(k[3])))>>>0:(k=f.hsla.exec(l))?(n(c(k[1]),p(k[2]),p(k[3]))|b(k[4]))>>>0:null}},66,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t={display:n.oneOf(['none','flex']),width:n.oneOfType([n.number,n.string]),height:n.oneOfType([n.number,n.string]),start:n.oneOfType([n.number,n.string]),end:n.oneOfType([n.number,n.string]),top:n.oneOfType([n.number,n.string]),left:n.oneOfType([n.number,n.string]),right:n.oneOfType([n.number,n.string]),bottom:n.oneOfType([n.number,n.string]),minWidth:n.oneOfType([n.number,n.string]),maxWidth:n.oneOfType([n.number,n.string]),minHeight:n.oneOfType([n.number,n.string]),maxHeight:n.oneOfType([n.number,n.string]),margin:n.oneOfType([n.number,n.string]),marginVertical:n.oneOfType([n.number,n.string]),marginHorizontal:n.oneOfType([n.number,n.string]),marginTop:n.oneOfType([n.number,n.string]),marginBottom:n.oneOfType([n.number,n.string]),marginLeft:n.oneOfType([n.number,n.string]),marginRight:n.oneOfType([n.number,n.string]),marginStart:n.oneOfType([n.number,n.string]),marginEnd:n.oneOfType([n.number,n.string]),padding:n.oneOfType([n.number,n.string]),paddingVertical:n.oneOfType([n.number,n.string]),paddingHorizontal:n.oneOfType([n.number,n.string]),paddingTop:n.oneOfType([n.number,n.string]),paddingBottom:n.oneOfType([n.number,n.string]),paddingLeft:n.oneOfType([n.number,n.string]),paddingRight:n.oneOfType([n.number,n.string]),paddingStart:n.oneOfType([n.number,n.string]),paddingEnd:n.oneOfType([n.number,n.string]),borderWidth:n.number,borderTopWidth:n.number,borderStartWidth:n.number,borderEndWidth:n.number,borderRightWidth:n.number,borderBottomWidth:n.number,borderLeftWidth:n.number,position:n.oneOf(['absolute','relative']),flexDirection:n.oneOf(['row','row-reverse','column','column-reverse']),flexWrap:n.oneOf(['wrap','nowrap','wrap-reverse']),justifyContent:n.oneOf(['flex-start','flex-end','center','space-between','space-around','space-evenly']),alignItems:n.oneOf(['flex-start','flex-end','center','stretch','baseline']),alignSelf:n.oneOf(['auto','flex-start','flex-end','center','stretch','baseline']),alignContent:n.oneOf(['flex-start','flex-end','center','stretch','space-between','space-around']),overflow:n.oneOf(['visible','hidden','scroll']),flex:n.number,flexGrow:n.number,flexShrink:n.number,flexBasis:n.oneOfType([n.number,n.string]),aspectRatio:n.number,zIndex:n.number,direction:n.oneOf(['inherit','ltr','rtl'])};m.exports=t},67,[68]); -__d(function(g,r,i,a,m,e,d){m.exports=r(d[0])()},68,[69]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);function t(){}function o(){}o.resetWarningCache=t,m.exports=function(){function p(t,o,p,c,s,y){if(y!==n){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw f.name='Invariant Violation',f}}function c(){return p}p.isRequired=p;var s={array:p,bool:p,func:p,number:p,object:p,string:p,symbol:p,any:p,arrayOf:c,element:p,elementType:p,instanceOf:c,node:p,objectOf:c,oneOf:c,oneOfType:c,shape:c,exact:c,checkPropTypes:o,resetWarningCache:t};return s.PropTypes=s,s}},69,[70]); -__d(function(g,r,i,a,m,e,d){'use strict';m.exports='SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'},70,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var s=r(d[0]),h=r(d[1]),o={shadowColor:s,shadowOffset:h.shape({width:h.number,height:h.number}),shadowOpacity:h.number,shadowRadius:h.number};m.exports=o},71,[65,68]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),n={transform:t.arrayOf(t.oneOfType([t.shape({perspective:t.number}),t.shape({rotate:t.string}),t.shape({rotateX:t.string}),t.shape({rotateY:t.string}),t.shape({rotateZ:t.string}),t.shape({scale:t.number}),t.shape({scaleX:t.number}),t.shape({scaleY:t.number}),t.shape({translateX:t.number}),t.shape({translateY:t.number}),t.shape({skewX:t.string}),t.shape({skewY:t.string})])),transformMatrix:function(t,s,n){if(t[s])return new Error("The transformMatrix style property is deprecated. Use `transform: [{ matrix: ... }]` instead.")},decomposedMatrix:function(t,s,n){if(t[s])return new Error("The decomposedMatrix style property is deprecated. Use `transform: [...]` instead.")},scaleX:s(t.number,'Use the transform prop instead.'),scaleY:s(t.number,'Use the transform prop instead.'),rotation:s(t.number,'Use the transform prop instead.'),translateX:s(t.number,'Use the transform prop instead.'),translateY:s(t.number,'Use the transform prop instead.')};m.exports=n},72,[68,73]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);m.exports=function(t,o){return function(c,u,p){n.getViewManagerConfig(p)||void 0===c[u]||console.warn("`"+u+"` supplied to `"+p+"` has been deprecated. "+o);for(var s=arguments.length,f=new Array(s>3?s-3:0),l=3;l>>8)>>>0:void 0}},78,[54,66]); -__d(function(g,r,i,a,m,e,d){'use strict';r(d[0]),r(d[1]),r(d[2]),r(d[3]);m.exports=function(t){return t}},79,[80,54,17,39]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o={createIdentityMatrix:function(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},createCopy:function(t){return[t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]]},createOrthographic:function(t,n,o,u,s,c){return[2/(n-t),0,0,0,0,2/(u-o),0,0,0,0,-2/(c-s),0,-(n+t)/(n-t),-(u+o)/(u-o),-(c+s)/(c-s),1]},createFrustum:function(t,n,o,u,s,c){var v=1/(n-t),f=1/(u-o),h=1/(s-c);return[s*v*2,0,0,0,0,s*f*2,0,0,(n+t)*v,(u+o)*f,(c+s)*h,-1,0,0,c*s*h*2,0]},createPerspective:function(t,n,o,u){var s=1/Math.tan(t/2),c=1/(o-u);return[s/n,0,0,0,0,s,0,0,0,0,(u+o)*c,-1,0,0,u*o*c*2,0]},createTranslate2d:function(t,n){var u=o.createIdentityMatrix();return o.reuseTranslate2dCommand(u,t,n),u},reuseTranslate2dCommand:function(t,n,o){t[12]=n,t[13]=o},reuseTranslate3dCommand:function(t,n,o,u){t[12]=n,t[13]=o,t[14]=u},createScale:function(t){var n=o.createIdentityMatrix();return o.reuseScaleCommand(n,t),n},reuseScaleCommand:function(t,n){t[0]=n,t[5]=n},reuseScale3dCommand:function(t,n,o,u){t[0]=n,t[5]=o,t[10]=u},reusePerspectiveCommand:function(t,n){t[11]=-1/n},reuseScaleXCommand:function(t,n){t[0]=n},reuseScaleYCommand:function(t,n){t[5]=n},reuseScaleZCommand:function(t,n){t[10]=n},reuseRotateXCommand:function(t,n){t[5]=Math.cos(n),t[6]=Math.sin(n),t[9]=-Math.sin(n),t[10]=Math.cos(n)},reuseRotateYCommand:function(t,n){t[0]=Math.cos(n),t[2]=-Math.sin(n),t[8]=Math.sin(n),t[10]=Math.cos(n)},reuseRotateZCommand:function(t,n){t[0]=Math.cos(n),t[1]=Math.sin(n),t[4]=-Math.sin(n),t[5]=Math.cos(n)},createRotateZ:function(t){var n=o.createIdentityMatrix();return o.reuseRotateZCommand(n,t),n},reuseSkewXCommand:function(t,n){t[4]=Math.tan(n)},reuseSkewYCommand:function(t,n){t[1]=Math.tan(n)},multiplyInto:function(t,n,o){var u=n[0],s=n[1],c=n[2],v=n[3],f=n[4],h=n[5],M=n[6],l=n[7],C=n[8],p=n[9],x=n[10],T=n[11],y=n[12],S=n[13],D=n[14],P=n[15],q=o[0],X=o[1],Y=o[2],I=o[3];t[0]=q*u+X*f+Y*C+I*y,t[1]=q*s+X*h+Y*p+I*S,t[2]=q*c+X*M+Y*x+I*D,t[3]=q*v+X*l+Y*T+I*P,q=o[4],X=o[5],Y=o[6],I=o[7],t[4]=q*u+X*f+Y*C+I*y,t[5]=q*s+X*h+Y*p+I*S,t[6]=q*c+X*M+Y*x+I*D,t[7]=q*v+X*l+Y*T+I*P,q=o[8],X=o[9],Y=o[10],I=o[11],t[8]=q*u+X*f+Y*C+I*y,t[9]=q*s+X*h+Y*p+I*S,t[10]=q*c+X*M+Y*x+I*D,t[11]=q*v+X*l+Y*T+I*P,q=o[12],X=o[13],Y=o[14],I=o[15],t[12]=q*u+X*f+Y*C+I*y,t[13]=q*s+X*h+Y*p+I*S,t[14]=q*c+X*M+Y*x+I*D,t[15]=q*v+X*l+Y*T+I*P},determinant:function(n){var o=t(n,16),u=o[0],s=o[1],c=o[2],v=o[3],f=o[4],h=o[5],M=o[6],l=o[7],C=o[8],p=o[9],x=o[10],T=o[11],y=o[12],S=o[13],D=o[14],P=o[15];return v*M*p*y-c*l*p*y-v*h*x*y+s*l*x*y+c*h*T*y-s*M*T*y-v*M*C*S+c*l*C*S+v*f*x*S-u*l*x*S-c*f*T*S+u*M*T*S+v*h*C*D-s*l*C*D-v*f*p*D+u*l*p*D+s*f*T*D-u*h*T*D-c*h*C*P+s*M*C*P+c*f*p*P-u*M*p*P-s*f*x*P+u*h*x*P},inverse:function(n){var u=o.determinant(n);if(!u)return n;var s=t(n,16),c=s[0],v=s[1],f=s[2],h=s[3],M=s[4],l=s[5],C=s[6],p=s[7],x=s[8],T=s[9],y=s[10],S=s[11],D=s[12],P=s[13],q=s[14],X=s[15];return[(C*S*P-p*y*P+p*T*q-l*S*q-C*T*X+l*y*X)/u,(h*y*P-f*S*P-h*T*q+v*S*q+f*T*X-v*y*X)/u,(f*p*P-h*C*P+h*l*q-v*p*q-f*l*X+v*C*X)/u,(h*C*T-f*p*T-h*l*y+v*p*y+f*l*S-v*C*S)/u,(p*y*D-C*S*D-p*x*q+M*S*q+C*x*X-M*y*X)/u,(f*S*D-h*y*D+h*x*q-c*S*q-f*x*X+c*y*X)/u,(h*C*D-f*p*D-h*M*q+c*p*q+f*M*X-c*C*X)/u,(f*p*x-h*C*x+h*M*y-c*p*y-f*M*S+c*C*S)/u,(l*S*D-p*T*D+p*x*P-M*S*P-l*x*X+M*T*X)/u,(h*T*D-v*S*D-h*x*P+c*S*P+v*x*X-c*T*X)/u,(v*p*D-h*l*D+h*M*P-c*p*P-v*M*X+c*l*X)/u,(h*l*x-v*p*x-h*M*T+c*p*T+v*M*S-c*l*S)/u,(C*T*D-l*y*D-C*x*P+M*y*P+l*x*q-M*T*q)/u,(v*y*D-f*T*D+f*x*P-c*y*P-v*x*q+c*T*q)/u,(f*l*D-v*C*D-f*M*P+c*C*P+v*M*q-c*l*q)/u,(v*C*x-f*l*x+f*M*T-c*C*T-v*M*y+c*l*y)/u]},transpose:function(t){return[t[0],t[4],t[8],t[12],t[1],t[5],t[9],t[13],t[2],t[6],t[10],t[14],t[3],t[7],t[11],t[15]]},multiplyVectorByMatrix:function(n,o){var u=t(n,4),s=u[0],c=u[1],v=u[2],f=u[3];return[s*o[0]+c*o[4]+v*o[8]+f*o[12],s*o[1]+c*o[5]+v*o[9]+f*o[13],s*o[2]+c*o[6]+v*o[10]+f*o[14],s*o[3]+c*o[7]+v*o[11]+f*o[15]]},v3Length:function(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])},v3Normalize:function(t,n){var u=1/(n||o.v3Length(t));return[t[0]*u,t[1]*u,t[2]*u]},v3Dot:function(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]},v3Combine:function(t,n,o,u){return[o*t[0]+u*n[0],o*t[1]+u*n[1],o*t[2]+u*n[2]]},v3Cross:function(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]},quaternionToDegreesXYZ:function(n,u,s){var c=t(n,4),v=c[0],f=c[1],h=c[2],M=c[3],l=v*v,C=f*f,p=h*h,x=v*f+h*M,T=M*M+l+C+p,y=180/Math.PI;return x>.49999*T?[0,2*Math.atan2(v,M)*y,90]:x<-.49999*T?[0,-2*Math.atan2(v,M)*y,-90]:[o.roundTo3Places(Math.atan2(2*v*M-2*f*h,1-2*l-2*p)*y),o.roundTo3Places(Math.atan2(2*f*M-2*v*h,1-2*C-2*p)*y),o.roundTo3Places(Math.asin(2*v*f+2*h*M)*y)]},roundTo3Places:function(t){var n=t.toString().split('e');return.001*Math.round(n[0]+'e'+(n[1]?+n[1]-3:3))},decomposeMatrix:function(t){n(16===t.length,'Matrix decomposition needs a list of 3d matrix values, received %s',t);var u=[],s=[],c=[],v=[],f=[];if(t[15]){for(var h=[],M=[],l=0;l<4;l++){h.push([]);for(var C=0;C<4;C++){var p=t[4*l+C]/t[15];h[l].push(p),M.push(3===C?0:p)}}if(M[15]=1,o.determinant(M)){if(0!==h[0][3]||0!==h[1][3]||0!==h[2][3]){var x=[h[0][3],h[1][3],h[2][3],h[3][3]],T=o.inverse(M),y=o.transpose(T);u=o.multiplyVectorByMatrix(x,y)}else u[0]=u[1]=u[2]=0,u[3]=1;for(var S=0;S<3;S++)f[S]=h[3][S];for(var D=[],P=0;P<3;P++)D[P]=[h[P][0],h[P][1],h[P][2]];c[0]=o.v3Length(D[0]),D[0]=o.v3Normalize(D[0],c[0]),v[0]=o.v3Dot(D[0],D[1]),D[1]=o.v3Combine(D[1],D[0],1,-v[0]),v[0]=o.v3Dot(D[0],D[1]),D[1]=o.v3Combine(D[1],D[0],1,-v[0]),c[1]=o.v3Length(D[1]),D[1]=o.v3Normalize(D[1],c[1]),v[0]/=c[1],v[1]=o.v3Dot(D[0],D[2]),D[2]=o.v3Combine(D[2],D[0],1,-v[1]),v[2]=o.v3Dot(D[1],D[2]),D[2]=o.v3Combine(D[2],D[1],1,-v[2]),c[2]=o.v3Length(D[2]),D[2]=o.v3Normalize(D[2],c[2]),v[1]/=c[2],v[2]/=c[2];var q,X=o.v3Cross(D[1],D[2]);if(o.v3Dot(D[0],X)<0)for(var Y=0;Y<3;Y++)c[Y]*=-1,D[Y][0]*=-1,D[Y][1]*=-1,D[Y][2]*=-1;return s[0]=.5*Math.sqrt(Math.max(1+D[0][0]-D[1][1]-D[2][2],0)),s[1]=.5*Math.sqrt(Math.max(1-D[0][0]+D[1][1]-D[2][2],0)),s[2]=.5*Math.sqrt(Math.max(1-D[0][0]-D[1][1]+D[2][2],0)),s[3]=.5*Math.sqrt(Math.max(1+D[0][0]+D[1][1]+D[2][2],0)),D[2][1]>D[1][2]&&(s[0]=-s[0]),D[0][2]>D[2][0]&&(s[1]=-s[1]),D[1][0]>D[0][1]&&(s[2]=-s[2]),{rotationDegrees:q=s[0]<.001&&s[0]>=0&&s[1]<.001&&s[1]>=0?[0,0,o.roundTo3Places(180*Math.atan2(D[0][1],D[0][0])/Math.PI)]:o.quaternionToDegreesXYZ(s,h,D),perspective:u,quaternion:s,scale:c,skew:v,translation:f,rotate:q[2],rotateX:q[0],rotateY:q[1],scaleX:c[0],scaleY:c[1],translateX:f[0],translateY:f[1]}}}}};m.exports=o},80,[26,17]); -__d(function(g,r,i,a,m,e,d){'use strict';var t={width:void 0,height:void 0};m.exports=function(h,n){return(h=h||t)!==(n=n||t)&&(h.width!==n.width||h.height!==n.height)}},81,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),u=(r(d[2]),r(d[3]),r(d[4]),r(d[5]),(function(){function u(){t(this,u)}return n(u,null,[{key:"validateStyleProp",value:function(t,n,u){}},{key:"validateStyle",value:function(t,n){}},{key:"addValidStylePropTypes",value:function(t){}}]),u})());m.exports=u},82,[8,9,64,76,77,17]); -__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function t(n){if(null!==n&&'object'==typeof n){if(!Array.isArray(n))return n;for(var f={},o=0,u=n.length;othis.eventPool.length&&this.eventPool.push(e)}function ne(e){e.eventPool=[],e.getPooled=ee,e.release=te}o(Z.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=J)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=J)},persist:function(){this.isPersistent=J},isPersistent:K,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=K,this._dispatchInstances=this._dispatchListeners=null}}),Z.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},Z.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var i=new t;return o(i,n.prototype),n.prototype=i,n.prototype.constructor=n,n.Interface=o({},r.Interface,e),n.extend=r.extend,ne(n),n},ne(Z);var re=Z.extend({touchHistory:function(){return null}});function ie(e){return"topTouchStart"===e}function ae(e){return"topTouchMove"===e}var le=["topTouchStart"],oe=["topTouchMove"],ue=["topTouchCancel","topTouchEnd"],se=[],ce={touchBank:se,numberActiveTouches:0,indexOfSingleActiveTouch:-1,mostRecentTimeStamp:0};function fe(e){return e.timeStamp||e.timestamp}function de(e){return v(null!=(e=e.identifier),"Touch object is missing identifier."),e}function pe(e){var t=de(e),n=se[t];n?(n.touchActive=!0,n.startPageX=e.pageX,n.startPageY=e.pageY,n.startTimeStamp=fe(e),n.currentPageX=e.pageX,n.currentPageY=e.pageY,n.currentTimeStamp=fe(e),n.previousPageX=e.pageX,n.previousPageY=e.pageY,n.previousTimeStamp=fe(e)):(n={touchActive:!0,startPageX:e.pageX,startPageY:e.pageY,startTimeStamp:fe(e),currentPageX:e.pageX,currentPageY:e.pageY,currentTimeStamp:fe(e),previousPageX:e.pageX,previousPageY:e.pageY,previousTimeStamp:fe(e)},se[t]=n),ce.mostRecentTimeStamp=fe(e)}function me(e){var t=se[de(e)];t?(t.touchActive=!0,t.previousPageX=t.currentPageX,t.previousPageY=t.currentPageY,t.previousTimeStamp=t.currentTimeStamp,t.currentPageX=e.pageX,t.currentPageY=e.pageY,t.currentTimeStamp=fe(e),ce.mostRecentTimeStamp=fe(e)):console.error("Cannot record touch move without a touch start.\nTouch Move: %s\n","Touch Bank: %s",ge(e),ve())}function he(e){var t=se[de(e)];t?(t.touchActive=!1,t.previousPageX=t.currentPageX,t.previousPageY=t.currentPageY,t.previousTimeStamp=t.currentTimeStamp,t.currentPageX=e.pageX,t.currentPageY=e.pageY,t.currentTimeStamp=fe(e),ce.mostRecentTimeStamp=fe(e)):console.error("Cannot record touch end without a touch start.\nTouch End: %s\n","Touch Bank: %s",ge(e),ve())}function ge(e){return JSON.stringify({identifier:e.identifier,pageX:e.pageX,pageY:e.pageY,timestamp:fe(e)})}function ve(){var e=JSON.stringify(se.slice(0,20));return 20l||(a=l),We(a,e,i)}}}),I=function(e){return Ce[e._nativeTag]||null},A=Re,D=function(e){var t=e.stateNode._nativeTag;return void 0===t&&(t=e.stateNode.canonical._nativeTag),v(t,"All native instances should have a tag."),t},Pe.injection.injectGlobalResponderHandler({onChange:function(e,t,n){null!==t?s.setJSResponder(t.stateNode._nativeTag,n):s.clearJSResponder()}});var Oe=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Oe.hasOwnProperty("ReactCurrentDispatcher")||(Oe.ReactCurrentDispatcher={current:null});var je="function"==typeof Symbol&&("function"==typeof Symbol?Symbol.for:"@@for"),Fe=je?("function"==typeof Symbol?Symbol.for:"@@for")("react.element"):60103,He=je?("function"==typeof Symbol?Symbol.for:"@@for")("react.portal"):60106,Be=je?("function"==typeof Symbol?Symbol.for:"@@for")("react.fragment"):60107,Qe=je?("function"==typeof Symbol?Symbol.for:"@@for")("react.strict_mode"):60108,Ve=je?("function"==typeof Symbol?Symbol.for:"@@for")("react.profiler"):60114,Le=je?("function"==typeof Symbol?Symbol.for:"@@for")("react.provider"):60109,Ye=je?("function"==typeof Symbol?Symbol.for:"@@for")("react.context"):60110,Xe=je?("function"==typeof Symbol?Symbol.for:"@@for")("react.concurrent_mode"):60111,$e=je?("function"==typeof Symbol?Symbol.for:"@@for")("react.forward_ref"):60112,qe=je?("function"==typeof Symbol?Symbol.for:"@@for")("react.suspense"):60113,Ge=je?("function"==typeof Symbol?Symbol.for:"@@for")("react.memo"):60115,Je=je?("function"==typeof Symbol?Symbol.for:"@@for")("react.lazy"):60116,Ke="function"==typeof Symbol&&("function"==typeof Symbol?Symbol.iterator:"@@iterator");function Ze(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=Ke&&e[Ke]||e["@@iterator"])?e:null}function et(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case Xe:return"ConcurrentMode";case Be:return"Fragment";case He:return"Portal";case Ve:return"Profiler";case Qe:return"StrictMode";case qe:return"Suspense"}if("object"==typeof e)switch(e.$$typeof){case Ye:return"Context.Consumer";case Le:return"Context.Provider";case $e:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case Ge:return et(e.type);case Je:if(e=1===e._status?e._result:null)return et(e)}return null}function tt(e){var t=e;if(e.alternate)for(;t.return;)t=t.return;else{if(0!=(2&t.effectTag))return 1;for(;t.return;)if(0!=(2&(t=t.return).effectTag))return 1}return 3===t.tag?2:3}function nt(e){v(2===tt(e),"Unable to find node on an unmounted component.")}function rt(e){var t=e.alternate;if(!t)return v(3!==(t=tt(e)),"Unable to find node on an unmounted component."),1===t?null:e;for(var n=e,r=t;;){var i=n.return,a=i?i.alternate:null;if(!i||!a)break;if(i.child===a.child){for(var l=i.child;l;){if(l===n)return nt(i),e;if(l===r)return nt(i),t;l=l.sibling}v(!1,"Unable to find node on an unmounted component.")}if(n.return!==r.return)n=i,r=a;else{l=!1;for(var o=i.child;o;){if(o===n){l=!0,n=i,r=a;break}if(o===r){l=!0,r=i,n=a;break}o=o.sibling}if(!l){for(o=a.child;o;){if(o===n){l=!0,n=a,r=i;break}if(o===r){l=!0,r=a,n=i;break}o=o.sibling}v(l,"Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.")}}v(n.alternate===r,"Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.")}return v(3===n.tag,"Unable to find node on an unmounted component."),n.stateNode.current===n?e:t}function it(e){if(!(e=rt(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}var at={},lt=null,ot=0;function ut(e,t,n){if(Array.isArray(t))for(var r=t.length;r--&&0Ut||(e.current=zt[Ut],zt[Ut]=null,Ut--)}function At(e,t){zt[++Ut]=e.current,e.current=t}var Dt={},Mt={current:Dt},Wt={current:!1},Ot=Dt;function jt(e,t){var n=e.type.contextTypes;if(!n)return Dt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,a={};for(i in n)a[i]=t[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Ft(e){return null!==(e=e.childContextTypes)&&void 0!==e}function Ht(e){It(Wt),It(Mt)}function Bt(e){It(Wt),It(Mt)}function Qt(e,t,n){v(Mt.current===Dt,"Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue."),At(Mt,t),At(Wt,n)}function Vt(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var i in r=r.getChildContext())v(i in e,'%s.getChildContext(): key "%s" is not defined in childContextTypes.',et(t)||"Unknown",i);return o({},n,r)}function Lt(e){var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||Dt,Ot=Mt.current,At(Mt,t),At(Wt,Wt.current),!0}function Yt(e,t,n){var r=e.stateNode;v(r,"Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue."),n?(t=Vt(e,t,Ot),r.__reactInternalMemoizedMergedChildContext=t,It(Wt),It(Mt),At(Mt,t)):It(Wt),At(Wt,n)}var Xt=null,$t=null;function qt(e){return function(t){try{return e(t)}catch(e){}}}function Gt(e){if("undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var n=t.inject(e);Xt=qt(function(e){return t.onCommitFiberRoot(n,e)}),$t=qt(function(e){return t.onCommitFiberUnmount(n,e)})}catch(e){}return!0}function Jt(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.contextDependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Kt(e,t,n,r){return new Jt(e,t,n,r)}function Zt(e){return!(!(e=e.prototype)||!e.isReactComponent)}function en(e){if("function"==typeof e)return Zt(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===$e)return 11;if(e===Ge)return 14}return 2}function tn(e,t){var n=e.alternate;return null===n?((n=Kt(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.effectTag=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childExpirationTime=e.childExpirationTime,n.expirationTime=e.expirationTime,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,n.contextDependencies=e.contextDependencies,n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function nn(e,t,n,r,i,a){var l=2;if(r=e,"function"==typeof e)Zt(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case Be:return rn(n.children,i,a,t);case Xe:return an(n,3|i,a,t);case Qe:return an(n,2|i,a,t);case Ve:return(e=Kt(12,n,t,4|i)).elementType=Ve,e.type=Ve,e.expirationTime=a,e;case qe:return(e=Kt(13,n,t,i)).elementType=qe,e.type=qe,e.expirationTime=a,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case Le:l=10;break e;case Ye:l=9;break e;case $e:l=11;break e;case Ge:l=14;break e;case Je:l=16,r=null;break e}v(!1,"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",null==e?e:typeof e,"")}return(t=Kt(l,n,t,i)).elementType=e,t.type=r,t.expirationTime=a,t}function rn(e,t,n,r){return(e=Kt(7,e,r,t)).expirationTime=n,e}function an(e,t,n,r){return e=Kt(8,e,r,t),t=0==(1&t)?Qe:Xe,e.elementType=t,e.type=t,e.expirationTime=n,e}function ln(e,t,n){return(e=Kt(6,e,null,t)).expirationTime=n,e}function on(e,t,n){return(t=Kt(4,null!==e.children?e.children:[],e.key,t)).expirationTime=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function un(e,t){e.didError=!1;var n=e.earliestPendingTime;0===n?e.earliestPendingTime=e.latestPendingTime=t:nt&&(e.latestPendingTime=t),dn(t,e)}function sn(e,t){if(e.didError=!1,0===t)e.earliestPendingTime=0,e.latestPendingTime=0,e.earliestSuspendedTime=0,e.latestSuspendedTime=0,e.latestPingedTime=0;else{tt?e.earliestPendingTime=e.latestPendingTime=0:e.earliestPendingTime>t&&(e.earliestPendingTime=e.latestPendingTime)),0===(n=e.earliestSuspendedTime)?un(e,t):tn&&un(e,t)}dn(0,e)}function cn(e,t){e.didError=!1,e.latestPingedTime>=t&&(e.latestPingedTime=0);var n=e.earliestPendingTime,r=e.latestPendingTime;n===t?e.earliestPendingTime=r===t?e.latestPendingTime=0:r:r===t&&(e.latestPendingTime=n),n=e.earliestSuspendedTime,r=e.latestSuspendedTime,0===n?e.earliestSuspendedTime=e.latestSuspendedTime=t:nt&&(e.latestSuspendedTime=t),dn(t,e)}function fn(e,t){var n=e.earliestPendingTime;return e=e.earliestSuspendedTime,n>t&&(t=n),e>t&&(t=e),t}function dn(e,t){var n=t.earliestSuspendedTime,r=t.latestSuspendedTime,i=t.earliestPendingTime,a=t.latestPingedTime;0===(i=0!==i?i:a)&&(0===e||re&&(e=n),t.nextExpirationTimeToWorkOn=i,t.expirationTime=e}function pn(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t}var mn=Object.prototype.hasOwnProperty;function hn(e,t){if(pn(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;rh?(g=m,m=null):g=m.sibling;var v=d(i,m,o[h],u);if(null===v){null===m&&(m=g);break}e&&m&&null===v.alternate&&t(i,m),l=a(v,l,h),null===c?s=v:c.sibling=v,c=v,m=g}if(h===o.length)return n(i,m),s;if(null===m){for(;hh?(g=m,m=null):g=m.sibling;var b=d(i,m,y.value,u);if(null===b){m||(m=g);break}e&&m&&null===b.alternate&&t(i,m),l=a(b,l,h),null===c?s=b:c.sibling=b,c=b,m=g}if(y.done)return n(i,m),s;if(null===m){for(;!y.done;h++,y=o.next())null!==(y=f(i,y.value,u))&&(l=a(y,l,h),null===c?s=y:c.sibling=y,c=y);return s}for(m=r(i,m);!y.done;h++,y=o.next())null!==(y=p(m,i,h,y.value,u))&&(e&&null!==y.alternate&&m.delete(null===y.key?h:y.key),l=a(y,l,h),null===c?s=y:c.sibling=y,c=y);return e&&m.forEach(function(e){return t(i,e)}),s}return function(e,r,a,o){var u="object"==typeof a&&null!==a&&a.type===Be&&null===a.key;u&&(a=a.props.children);var s="object"==typeof a&&null!==a;if(s)switch(a.$$typeof){case Fe:e:{for(s=a.key,u=r;null!==u;){if(u.key===s){if(7===u.tag?a.type===Be:u.elementType===a.type){n(e,u.sibling),(r=i(u,a.type===Be?a.props.children:a.props)).ref=_n(e,u,a),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}a.type===Be?((r=rn(a.props.children,e.mode,o,a.key)).return=e,e=r):((o=nn(a.type,a.key,a.props,null,e.mode,o)).ref=_n(e,r,a),o.return=e,e=o)}return l(e);case He:e:{for(u=a.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),(r=i(r,a.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=on(a,e.mode,o)).return=e,e=r}return l(e)}if("string"==typeof a||"number"==typeof a)return a=""+a,null!==r&&6===r.tag?(n(e,r.sibling),(r=i(r,a)).return=e,e=r):(n(e,r),(r=ln(a,e.mode,o)).return=e,e=r),l(e);if(En(a))return m(e,r,a,o);if(Ze(a))return h(e,r,a,o);if(s&&Cn(e,a),void 0===a&&!u)switch(e.tag){case 1:case 0:v(!1,"%s(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.",(o=e.type).displayName||o.name||"Component")}return n(e,r)}}var wn=Rn(!0),Nn=Rn(!1),zn={},Un={current:zn},In={current:zn},An={current:zn};function Dn(e){return v(e!==zn,"Expected host context to exist. This error is likely caused by a bug in React. Please file an issue."),e}function Mn(e,t){At(An,t),At(In,e),At(Un,zn),It(Un),At(Un,{isInAParentText:!1})}function Wn(e){It(Un),It(In),It(An)}function On(e){Dn(An.current);var t=Dn(Un.current),n=e.type;n="AndroidTextInput"===n||"RCTMultilineTextInputView"===n||"RCTSinglelineTextInputView"===n||"RCTText"===n||"RCTVirtualText"===n,t!==(n=t.isInAParentText!==n?{isInAParentText:n}:t)&&(At(In,e),At(Un,n))}function jn(e){In.current===e&&(It(Un),It(In))}var Fn=0,Hn=2,Bn=4,Qn=8,Vn=16,Ln=32,Yn=64,Xn=128,$n=Oe.ReactCurrentDispatcher,qn=0,Gn=null,Jn=null,Kn=null,Zn=null,er=null,tr=null,nr=0,rr=null,ir=0,ar=!1,lr=null,or=0;function ur(){v(!1,"Hooks can only be called inside the body of a function component. (https://fb.me/react-invalid-hook-call)")}function sr(e,t){if(null===t)return!1;for(var n=0;nnr&&(nr=c)):a=u.eagerReducer===e?u.eagerState:e(a,u.action),l=u,u=u.next}while(null!==u&&u!==r);s||(o=l,i=a),pn(a,t.memoizedState)||(zr=!0),t.memoizedState=a,t.baseUpdate=o,t.baseState=i,n.eagerReducer=e,n.eagerState=a}return[t.memoizedState,n.dispatch]}function gr(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===rr?(rr={lastEffect:null}).lastEffect=e.next=e:null===(t=rr.lastEffect)?rr.lastEffect=e.next=e:(n=t.next,t.next=e,e.next=n,rr.lastEffect=e),e}function vr(e,t,n,r){var i=dr();ir|=e,i.memoizedState=gr(t,n,void 0,void 0===r?null:r)}function yr(e,t,n,r){var i=pr();r=void 0===r?null:r;var a=void 0;if(null!==Jn){var l=Jn.memoizedState;if(a=l.destroy,null!==r&&sr(r,l.deps))return void gr(Fn,n,a,r)}ir|=e,i.memoizedState=gr(t,n,a,r)}function br(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!==t&&void 0!==t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Tr(){}function xr(e,t,n){v(25>or,"Too many re-renders. React limits the number of renders to prevent an infinite loop.");var r=e.alternate;if(e===Gn||null!==r&&r===Gn)if(ar=!0,e={expirationTime:qn,action:n,eagerReducer:null,eagerState:null,next:null},null===lr&&(lr=new Map),void 0===(n=lr.get(t)))lr.set(t,e);else{for(t=n;null!==t.next;)t=t.next;t.next=e}else{Zi();var i=Ia(),a={expirationTime:i=aa(i,e),action:n,eagerReducer:null,eagerState:null,next:null},l=t.last;if(null===l)a.next=a;else{var o=l.next;null!==o&&(a.next=o),l.next=a}if(t.last=a,0===e.expirationTime&&(null===r||0===r.expirationTime)&&null!==(r=t.eagerReducer))try{var u=t.eagerState,s=r(u,n);if(a.eagerReducer=r,a.eagerState=s,pn(s,u))return}catch(e){}sa(e,i)}}var Sr={readContext:Jr,useCallback:ur,useContext:ur,useEffect:ur,useImperativeHandle:ur,useLayoutEffect:ur,useMemo:ur,useReducer:ur,useRef:ur,useState:ur,useDebugValue:ur},kr={readContext:Jr,useCallback:function(e,t){return dr().memoizedState=[e,void 0===t?null:t],e},useContext:Jr,useEffect:function(e,t){return vr(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,vr(4,36,br.bind(null,t,e),n)},useLayoutEffect:function(e,t){return vr(4,36,e,t)},useMemo:function(e,t){var n=dr();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=dr();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={last:null,dispatch:null,eagerReducer:e,eagerState:t}).dispatch=xr.bind(null,Gn,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},dr().memoizedState=e},useState:function(e){var t=dr();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={last:null,dispatch:null,eagerReducer:mr,eagerState:e}).dispatch=xr.bind(null,Gn,e),[t.memoizedState,e]},useDebugValue:Tr},Pr={readContext:Jr,useCallback:function(e,t){var n=pr();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&sr(t,r[1])?r[0]:(n.memoizedState=[e,t],e)},useContext:Jr,useEffect:function(e,t){return yr(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,yr(4,36,br.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yr(4,36,e,t)},useMemo:function(e,t){var n=pr();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&sr(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)},useReducer:hr,useRef:function(){return pr().memoizedState},useState:function(e){return hr(mr)},useDebugValue:Tr},Er=null,_r=null,Cr=!1;function Rr(e,t){switch(e.tag){case 5:return null!==(t=Tt(e.type,e.pendingProps))&&(e.stateNode=t,!0);case 6:return null!==(t=Tt(e.pendingProps))&&(e.stateNode=t,!0);case 13:default:return!1}}function wr(e){if(Cr){var t=_r;if(t){var n=t;if(!Rr(e,t)){if(!(t=Tt())||!Rr(e,t))return e.effectTag|=2,Cr=!1,void(Er=e);var r=Er,i=Kt(5,null,null,0);i.elementType="DELETED",i.type="DELETED",i.stateNode=n,i.return=r,i.effectTag=8,null!==r.lastEffect?(r.lastEffect.nextEffect=i,r.lastEffect=i):r.firstEffect=r.lastEffect=i}Er=e,_r=Tt()}else e.effectTag|=2,Cr=!1,Er=e}}var Nr=Oe.ReactCurrentOwner,zr=!1;function Ur(e,t,n,r){t.child=null===e?Nn(t,null,n,r):wn(t,e.child,n,r)}function Ir(e,t,n,r,i){n=n.render;var a=t.ref;return Gr(t,i),r=cr(e,t,n,r,a,i),null===e||zr?(t.effectTag|=1,Ur(e,t,r,i),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=i&&(e.expirationTime=0),Br(e,t,i))}function Ar(e,t,n,r,i,a){if(null===e){var l=n.type;return"function"!=typeof l||Zt(l)||void 0!==l.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=nn(n.type,null,r,null,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=l,Dr(e,t,l,r,i,a))}return l=e.child,i=n?Hr(e,t,n):null!==(t=Br(e,t,n))?t.sibling:null}return Br(e,t,n)}}else zr=!1;switch(t.expirationTime=0,t.tag){case 2:r=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps;var i=jt(t,Mt.current);if(Gr(t,n),i=cr(null,t,r,e,i,n),t.effectTag|=1,"object"==typeof i&&null!==i&&"function"==typeof i.render&&void 0===i.$$typeof){if(t.tag=1,fr(),Ft(r)){var a=!0;Lt(t)}else a=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null;var l=r.getDerivedStateFromProps;"function"==typeof l&&bn(t,r,l,e),i.updater=Tn,t.stateNode=i,i._reactInternalFiber=t,Pn(t,r,e,n),t=jr(null,t,r,!0,a,n)}else t.tag=0,Ur(null,t,i,n),t=t.child;return t;case 16:switch(i=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),a=t.pendingProps,e=vn(i),t.type=e,i=t.tag=en(e),a=gn(e,a),l=void 0,i){case 0:l=Wr(null,t,e,a,n);break;case 1:l=Or(null,t,e,a,n);break;case 11:l=Ir(null,t,e,a,n);break;case 14:l=Ar(null,t,e,gn(e.type,a),r,n);break;default:v(!1,"Element type is invalid. Received a promise that resolves to: %s. Lazy element type must resolve to a class or function.%s",e,"")}return l;case 0:return r=t.type,i=t.pendingProps,Wr(e,t,r,i=t.elementType===r?i:gn(r,i),n);case 1:return r=t.type,i=t.pendingProps,Or(e,t,r,i=t.elementType===r?i:gn(r,i),n);case 3:return Fr(t),v(null!==(r=t.updateQueue),"If the root does not have an updateQueue, we should have already bailed out. This error is likely caused by a bug in React. Please file an issue."),i=null!==(i=t.memoizedState)?i.element:null,fi(t,r,t.pendingProps,null,n),(r=t.memoizedState.element)===i?t=Br(e,t,n):(Ur(e,t,r,n),t=t.child),t;case 5:return On(t),null===e&&wr(t),r=t.pendingProps.children,Mr(e,t),Ur(e,t,r,n),t=t.child;case 6:return null===e&&wr(t),null;case 13:return Hr(e,t,n);case 4:return Mn(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=wn(t,null,r,n):Ur(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,Ir(e,t,r,i=t.elementType===r?i:gn(r,i),n);case 7:return Ur(e,t,t.pendingProps,n),t.child;case 8:case 12:return Ur(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,l=t.memoizedProps,$r(t,a=i.value),null!==l){var o=l.value;if(0===(a=pn(o,a)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(o,a):1073741823))){if(l.children===i.children&&!Wt.current){t=Br(e,t,n);break e}}else for(null!==(o=t.child)&&(o.return=t);null!==o;){var u=o.contextDependencies;if(null!==u){l=o.child;for(var s=u.first;null!==s;){if(s.context===r&&0!=(s.observedBits&a)){1===o.tag&&((s=ai(n)).tag=ei,oi(o,s)),o.expirationTime=t&&(zr=!0),e.contextDependencies=null}function Jr(e,t){return Xr!==e&&!1!==t&&0!==t&&("number"==typeof t&&1073741823!==t||(Xr=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Yr?(v(null!==Lr,"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."),Yr=t,Lr.contextDependencies={first:t,expirationTime:0}):Yr=Yr.next=t),e._currentValue}var Kr=0,Zr=1,ei=2,ti=3,ni=!1;function ri(e){return{baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function ii(e){return{baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function ai(e){return{expirationTime:e,tag:Kr,payload:null,callback:null,next:null,nextEffect:null}}function li(e,t){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=t:(e.lastUpdate.next=t,e.lastUpdate=t)}function oi(e,t){var n=e.alternate;if(null===n){var r=e.updateQueue,i=null;null===r&&(r=e.updateQueue=ri(e.memoizedState))}else r=e.updateQueue,i=n.updateQueue,null===r?null===i?(r=e.updateQueue=ri(e.memoizedState),i=n.updateQueue=ri(n.memoizedState)):r=e.updateQueue=ii(i):null===i&&(i=n.updateQueue=ii(r));null===i||r===i?li(r,t):null===r.lastUpdate||null===i.lastUpdate?(li(r,t),li(i,t)):(li(r,t),i.lastUpdate=t)}function ui(e,t){var n=e.updateQueue;null===(n=null===n?e.updateQueue=ri(e.memoizedState):si(e,n)).lastCapturedUpdate?n.firstCapturedUpdate=n.lastCapturedUpdate=t:(n.lastCapturedUpdate.next=t,n.lastCapturedUpdate=t)}function si(e,t){var n=e.alternate;return null!==n&&t===n.updateQueue&&(t=e.updateQueue=ii(t)),t}function ci(e,t,n,r,i,a){switch(n.tag){case Zr:return"function"==typeof(e=n.payload)?e.call(a,r,i):e;case ti:e.effectTag=-2049&e.effectTag|64;case Kr:if(null===(i="function"==typeof(e=n.payload)?e.call(a,r,i):e)||void 0===i)break;return o({},r,i);case ei:ni=!0}return r}function fi(e,t,n,r,i){ni=!1;for(var a=(t=si(e,t)).baseState,l=null,o=0,u=t.firstUpdate,s=a;null!==u;){var c=u.expirationTime;cr?i:r),Di.current=null,r=void 0,1n?t:n)&&(Xi=null),Ua(e,t)}function ta(e){for(;;){var t=e.alternate,n=e.return,r=e.sibling;if(0==(1024&e.effectTag)){Wi=e;e:{var i=t,a=ji,l=(t=e).pendingProps;switch(t.tag){case 2:case 16:break;case 15:case 0:break;case 1:Ft(t.type)&&Ht();break;case 3:Wn(),Bt(),(l=t.stateNode).pendingContext&&(l.context=l.pendingContext,l.pendingContext=null),null!==i&&null!==i.child||(t.effectTag&=-3),gi(t);break;case 5:jn(t),a=Dn(An.current);var o=t.type;if(null!==i&&null!=t.stateNode)vi(i,t,o,l,a),i.ref!==t.ref&&(t.effectTag|=128);else if(l){i=Dn(Un.current);var c=t,f=kt(),d=u.get(o);v("RCTView"!==o||!i.isInAParentText,"Nesting of within is not currently supported.");var p=dt(null,at,l,d.validAttributes);s.createView(f,d.uiViewClassName,a,p),d=new mt(f,d),_e[f]=c,Ce[f]=l,hi(d,t,!1,!1),Et(d)&&(t.effectTag|=4),t.stateNode=d,null!==t.ref&&(t.effectTag|=128)}else v(null!==t.stateNode,"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.");break;case 6:i&&null!=t.stateNode?yi(i,t,i.memoizedProps,l):("string"!=typeof l&&v(null!==t.stateNode,"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue."),i=Dn(An.current),a=t,v((o=Dn(Un.current)).isInAParentText,"Text strings must be rendered within a component."),o=kt(),s.createView(o,"RCTRawText",i,{text:l}),_e[o]=t,a.stateNode=o);break;case 11:break;case 13:if(l=t.memoizedState,0!=(64&t.effectTag)){t.expirationTime=a,Wi=t;break e}l=null!==l,a=null!==i&&null!==i.memoizedState,null!==i&&!l&&a&&(null!==(o=i.child.sibling)&&(null!==(i=t.firstEffect)?(t.firstEffect=o,o.nextEffect=i):(t.firstEffect=t.lastEffect=o,o.nextEffect=null),o.effectTag=8)),(l||a)&&(t.effectTag|=4);break;case 7:case 8:case 12:break;case 4:Wn(),gi(t);break;case 10:qr(t);break;case 9:case 14:break;case 17:Ft(t.type)&&Ht();break;case 18:break;default:v(!1,"Unknown unit of work tag. This error is likely caused by a bug in React. Please file an issue.")}Wi=null}if(t=e,1===ji||1!==t.childExpirationTime){for(l=0,a=t.child;null!==a;)o=a.expirationTime,i=a.childExpirationTime,o>l&&(l=o),i>l&&(l=i),a=a.sibling;t.childExpirationTime=l}if(null!==Wi)return Wi;null!==n&&0==(1024&n.effectTag)&&(null===n.firstEffect&&(n.firstEffect=e.firstEffect),null!==e.lastEffect&&(null!==n.lastEffect&&(n.lastEffect.nextEffect=e.firstEffect),n.lastEffect=e.lastEffect),1=m?d=0:(-1===d||m component higher in the tree to provide a loading indicator or placeholder to display."+Nt(s))}Hi=!0,c=mi(c,s),o=u;do{switch(o.tag){case 3:o.effectTag|=2048,o.expirationTime=l,ui(o,l=zi(o,c,l));break e;case 1:if(d=c,p=o.type,s=o.stateNode,0==(64&o.effectTag)&&("function"==typeof p.getDerivedStateFromError||null!==s&&"function"==typeof s.componentDidCatch&&(null===Xi||!Xi.has(s)))){o.effectTag|=2048,o.expirationTime=l,ui(o,l=Ui(o,d,l));break e}}o=o.return}while(null!==o)}Wi=ta(a);continue}i=!0,Fa(t)}}break}if(Mi=!1,Ai.current=n,Xr=Yr=Lr=null,fr(),i)Oi=null,e.finishedWork=null;else if(null!==Wi)e.finishedWork=null;else{if(v(null!==(n=e.current.alternate),"Finished root should have a work-in-progress. This error is likely caused by a bug in React. Please file an issue."),Oi=null,Hi){if(i=e.latestPendingTime,a=e.latestSuspendedTime,l=e.latestPingedTime,0!==i&&it?0:t)):(e.pendingCommitExpirationTime=r,e.finishedWork=n)}}function ia(e,t){for(var n=e.return;null!==n;){switch(n.tag){case 1:var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Xi||!Xi.has(r)))return oi(n,e=Ui(n,e=mi(t,e),1073741823)),void sa(n,1073741823);break;case 3:return oi(n,e=zi(n,e=mi(t,e),1073741823)),void sa(n,1073741823)}n=n.return}3===e.tag&&(oi(e,n=zi(e,n=mi(t,e),1073741823)),sa(e,1073741823))}function aa(e,t){var n=h.unstable_getCurrentPriorityLevel(),r=void 0;if(0==(1&t.mode))r=1073741823;else if(Mi&&!Qi)r=ji;else{switch(n){case h.unstable_ImmediatePriority:r=1073741823;break;case h.unstable_UserBlockingPriority:r=1073741822-10*(1+((1073741822-e+15)/10|0));break;case h.unstable_NormalPriority:r=1073741822-25*(1+((1073741822-e+500)/25|0));break;case h.unstable_LowPriority:case h.unstable_IdlePriority:r=1;break;default:v(!1,"Unknown priority level. This error is likely caused by a bug in React. Please file an issue.")}null!==Oi&&r===ji&&--r}return n===h.unstable_UserBlockingPriority&&(0===va||r=r&&(e.didError=!1,(0===(t=e.latestPingedTime)||t>n)&&(e.latestPingedTime=n),dn(n,e),0!==(n=e.expirationTime)&&Aa(e,n)))}function oa(e,t){var n=e.stateNode;null!==n&&n.delete(t),null!==(e=ua(e,t=aa(t=Ia(),e)))&&(un(e,t),0!==(t=e.expirationTime)&&Aa(e,t))}function ua(e,t){e.expirationTimeji&&$i(),un(e,t),Mi&&!Qi&&Oi===e||Aa(e,e.expirationTime),_a>Ea&&(_a=0,v(!1,"Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.")))}var ca=null,fa=null,da=0,pa=void 0,ma=!1,ha=null,ga=0,va=0,ya=!1,ba=null,Ta=!1,xa=null,Sa=ht(),ka=1073741822-(Sa/10|0),Pa=ka,Ea=50,_a=0,Ca=null;function Ra(){ka=1073741822-((ht()-Sa)/10|0)}function wa(e,t){if(0!==da){if(te.expirationTime&&(e.expirationTime=t),ma||Ta||(1073741823===t?Wa(1073741823,!1):wa(e,t))}function Da(){var e=0,t=null;if(null!==fa)for(var n=fa,r=ca;null!==r;){var i=r.expirationTime;if(0===i){if(v(null!==n&&null!==fa,"Should have a previous and last root. This error is likely caused by a bug in React. Please file an issue."),r===r.nextScheduledRoot){ca=fa=r.nextScheduledRoot=null;break}if(r===ca)ca=i=r.nextScheduledRoot,fa.nextScheduledRoot=i,r.nextScheduledRoot=null;else{if(r===fa){(fa=n).nextScheduledRoot=ca,r.nextScheduledRoot=null;break}n.nextScheduledRoot=r.nextScheduledRoot,r.nextScheduledRoot=null}r=n.nextScheduledRoot}else{if(i>e&&(e=i,t=r),r===fa)break;if(1073741823===e)break;n=r,r=r.nextScheduledRoot}}ha=t,ga=e}function Ma(e){if(e&&null!==ca){Ra(),e=ca;do{var t=e.expirationTime;0!==t&&ka<=t&&(e.nextExpirationTimeToWorkOn=ka),e=e.nextScheduledRoot}while(e!==ca)}Wa(0,!0)}function Wa(e,t){if(Da(),t)for(Ra(),Pa=ka;null!==ha&&0!==ga&&e<=ga&&!(vt<=ht()&&ka>ga);)Oa(ha,ga,ka>ga),Da(),Ra(),Pa=ka;else for(;null!==ha&&0!==ga&&e<=ga;)Oa(ha,ga,!1),Da();if(t&&(da=0,pa=null),0!==ga&&wa(ha,ga),_a=0,Ca=null,null!==xa)for(e=xa,xa=null,t=0;t=n&&(null===xa?xa=[r]:xa.push(r),r._defer))return e.finishedWork=t,void(e.expirationTime=0);e.finishedWork=null,e===Ca?_a++:(Ca=e,_a=0),h.unstable_runWithPriority(h.unstable_ImmediatePriority,function(){ea(e,t)})}function Fa(e){v(null!==ha,"Should be working on a root. This error is likely caused by a bug in React. Please file an issue."),ha.expirationTime=0,ya||(ya=!0,ba=e)}function Ha(e){var t=e._reactInternalFiber;return void 0===t&&("function"==typeof e.render?v(!1,"Unable to find node on an unmounted component."):v(!1,"Argument appears to not be a ReactComponent. Keys: %s",Object.keys(e))),null===(e=it(t))?null:e.stateNode}function Ba(e,t,n,r){var i=t.current,a=Ia();i=aa(a,i),a=t.current;e:if(n){n=n._reactInternalFiber;t:{v(2===tt(n)&&1===n.tag,"Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.");var l=n;do{switch(l.tag){case 3:l=l.stateNode.context;break t;case 1:if(Ft(l.type)){l=l.stateNode.__reactInternalMemoizedMergedChildContext;break t}}l=l.return}while(null!==l);v(!1,"Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue."),l=void 0}if(1===n.tag){var o=n.type;if(Ft(o)){n=Vt(n,o,l);break e}}n=l}else n=Dt;return null===t.context?t.context=n:t.pendingContext=n,t=r,(r=ai(i)).payload={element:e},null!==(t=void 0===t?null:t)&&(r.callback=t),Zi(),oi(a,r),sa(a,i),i}function Qa(e,t,n){var r=3=o?(this._iteratedObject=void 0,h(void 0,!0)):(this._nextIndex=u+1,"key"===s?h(u,!1):"value"===s?h(n[u],!1):"key+value"===s?h([u,n[u]],!1):void 0)}},{key:'@@iterator',value:function(){return this}}]),t})(),s=(function(){function t(o){if(n(this,t),'string'!=typeof o)throw new TypeError('Object is not a string');this._iteratedString=o,this._nextIndex=0}return o(t,[{key:"next",value:function(){if(!this instanceof t)throw new TypeError('Object is not a StringIterator');if(null==this._iteratedString)return h(void 0,!0);var n,o=this._nextIndex,u=this._iteratedString,s=u.length;if(o>=s)return this._iteratedString=void 0,h(void 0,!0);var c=u.charCodeAt(o);if(c<55296||c>56319||o+1===s)n=u[o];else{var f=u.charCodeAt(o+1);n=f<56320||f>57343?u[o]:u[o]+u[o+1]}return this._nextIndex=o+n.length,h(n,!1)}},{key:'@@iterator',value:function(){return this}}]),t})();function h(t,n){return{value:t,done:n}}return function(n,o){return'string'==typeof n?new s(n):Array.isArray(n)?new t(n,o||"value"):n[u]()}})();t(s,{KIND_KEY:"key",KIND_VALUE:"value",KIND_KEY_VAL:"key+value",ITERATOR_SYMBOL:u}),m.exports=s},97,[25,8,9]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),u=r(d[3]),o=r(d[4]);m.exports=(function(h){if(!u('Set'))return h.Set;var l=(function(){function s(n){if(t(this,s),null==this||'object'!=typeof this&&'function'!=typeof this)throw new TypeError('Wrong set object type.');if(p(this),null!=n)for(var u,h=o(n);!(u=h.next()).done;)this.add(u.value)}return n(s,[{key:"add",value:function(t){return this._map.set(t,t),this.size=this._map.size,this}},{key:"clear",value:function(){p(this)}},{key:"delete",value:function(t){var n=this._map.delete(t);return this.size=this._map.size,n}},{key:"entries",value:function(){return this._map.entries()}},{key:"forEach",value:function(t){for(var n,s=arguments[1],u=this._map.keys();!(n=u.next()).done;)t.call(s,n.value,n.value,this)}},{key:"has",value:function(t){return this._map.has(t)}},{key:"values",value:function(){return this._map.values()}}]),s})();function p(t){t._map=new s,t.size=t._map.size}return l.prototype[o.ITERATOR_SYMBOL]=l.prototype.values,l.prototype.keys=l.prototype.values,l})(Function('return this')())},98,[8,9,95,93,97]); -__d(function(g,r,i,a,m,e,d){'use strict';if(g.__RCTProfileIsProfiling){var t=r(d[0]);t.installReactHook(),t.setEnabled(!0)}},99,[37]); -__d(function(g,r,i,a,m,e,d){'use strict';var o=r(d[0]);if(o.installConsoleErrorReporter(),!g.__fbDisableExceptionsManager){r(d[1]).setGlobalHandler(function(t,n){try{o.handleException(t,n)}catch(o){throw console.log('Failed to print error: ',o.message),t}})}},100,[101,36]); -__d(function(g,r,i,a,m,e,d){'use strict';var o=0;function n(n,s){var l=r(d[0]).ExceptionsManager;if(l){var c=r(d[1])(n),t=++o,p=null==n.jsEngine?n.message:n.message+", js engine: "+n.jsEngine;s?l.reportFatalException(p,c,t):l.reportSoftException(p,c,t)}}function s(){if(console._errorOriginal.apply(console,arguments),console.reportErrorsAsExceptions)if(arguments[0]&&arguments[0].stack)n(arguments[0],!1);else{var o=r(d[2]),s=Array.prototype.map.call(arguments,o).join(', ');if('"Warning: '===s.slice(0,10))return;var l=new Error('console.error: '+s);l.framesToPop=1,n(l,!1)}}m.exports={handleException:function(o,s){o.message||(o=new Error(o)),console._errorOriginal?console._errorOriginal(o.message):console.error(o.message),n(o,s)},installConsoleErrorReporter:function(){console._errorOriginal||(console._errorOriginal=console.error.bind(console),console.error=s,void 0===console.reportErrorsAsExceptions&&(console.reportErrorsAsExceptions=!0))}}},101,[22,102,39]); -__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(t){if(!t||!t.stack)return[];for(var s=r(d[0]),o=Array.isArray(t.stack)?t.stack:s.parse(t.stack),f='number'==typeof t.framesToPop?t.framesToPop:0;f--;)o.shift();return o}},102,[103]); -__d(function(g,r,i,a,m,e,d){var n,l;n=this,l=function(n){'use strict';var l='';var u=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,t=/\((\S*)(?::(\d+))(?::(\d+))\)/;function o(n){var o=u.exec(n);if(!o)return null;var c=o[2]&&0===o[2].indexOf('native'),s=o[2]&&0===o[2].indexOf('eval'),f=t.exec(o[2]);return s&&null!=f&&(o[2]=f[1],o[3]=f[2],o[4]=f[3]),{file:c?null:o[2],methodName:o[1]||l,arguments:c?[o[2]]:[],lineNumber:o[3]?+o[3]:null,column:o[4]?+o[4]:null}}var c=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;function s(n){var u=c.exec(n);return u?{file:u[2],methodName:u[1]||l,arguments:[],lineNumber:+u[3],column:u[4]?+u[4]:null}:null}var f=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,v=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i;function b(n){var u=f.exec(n);if(!u)return null;var t=u[3]&&u[3].indexOf(' > eval')>-1,o=v.exec(u[3]);return t&&null!=o&&(u[3]=o[1],u[4]=o[2],u[5]=null),{file:u[3],methodName:u[1]||l,arguments:u[2]?u[2].split(','):[],lineNumber:u[4]?+u[4]:null,column:u[5]?+u[5]:null}}var p=/^(?:\s*([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i;function x(n){var u=p.exec(n);return u?{file:u[3],methodName:u[1]||l,arguments:[],lineNumber:+u[4],column:u[5]?+u[5]:null}:null}var h=/^\s*at (?:((?:\[object object\])?\S+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i;function N(n){var u=h.exec(n);return u?{file:u[2],methodName:u[1]||l,arguments:[],lineNumber:+u[3],column:u[4]?+u[4]:null}:null}n.parse=function(n){return n.split('\n').reduce(function(n,l){var u=o(l)||s(l)||b(l)||x(l)||N(l);return u&&n.push(u),n},[])},Object.defineProperty(n,'__esModule',{value:!0})},'object'==typeof e&&void 0!==m?l(e):'function'==typeof define&&define.amd?define(['exports'],l):l((n=n||self).stackTraceParser={})},103,[]); -__d(function(g,r,i,a,m,e,d){'use strict';r(d[0]).checkVersions()},104,[105]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]).PlatformConstants,n=r(d[1]);function o(t){return t.major+"."+t.minor+"."+t.patch+(null!==t.prerelease?"-"+t.prerelease:'')}e.checkVersions=function(){if(t){var s=t.reactNativeVersion;n.version.major===s.major&&n.version.minor===s.minor||console.error("React Native version mismatch.\n\nJavaScript version: "+o(n.version)+"\nNative version: "+o(s)+"\n\nMake sure that you have rebuilt the native code. If the problem persists try clearing the Watchman and packager caches with `watchman watch-del-all && react-native start --reset-cache`.")}}},105,[22,106]); -__d(function(g,r,i,a,m,e,d){e.version={major:0,minor:59,patch:4,prerelease:null}},106,[]); -__d(function(g,r,i,a,m,e,d){'use strict';(0,r(d[0]).polyfillGlobal)('Promise',function(){return r(d[1])})},107,[92,41]); -__d(function(g,r,i,a,m,e,d){'use strict';(0,r(d[0]).polyfillGlobal)('regeneratorRuntime',function(){return delete g.regeneratorRuntime,r(d[1])})},108,[92,109]); -__d(function(g,r,i,a,m,e,d){!(function(t){"use strict";var n,o=Object.prototype,c=o.hasOwnProperty,u="function"==typeof Symbol?Symbol:{},h=u.iterator||"@@iterator",f=u.asyncIterator||"@@asyncIterator",s=u.toStringTag||"@@toStringTag",l="object"==typeof m,p=t.regeneratorRuntime;if(p)l&&(m.exports=p);else{(p=t.regeneratorRuntime=l?m.exports:{}).wrap=O;var y="suspendedStart",v="suspendedYield",w="executing",L="completed",x={},E={};E[h]=function(){return this};var b=Object.getPrototypeOf,_=b&&b(b(q([])));_&&_!==o&&c.call(_,h)&&(E=_);var j=P.prototype=G.prototype=Object.create(E);N.prototype=j.constructor=P,P.constructor=N,P[s]=N.displayName="GeneratorFunction",p.isGeneratorFunction=function(t){var n="function"==typeof t&&t.constructor;return!!n&&(n===N||"GeneratorFunction"===(n.displayName||n.name))},p.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,P):(t.__proto__=P,s in t||(t[s]="GeneratorFunction")),t.prototype=Object.create(j),t},p.awrap=function(t){return{__await:t}},F(S.prototype),S.prototype[f]=function(){return this},p.AsyncIterator=S,p.async=function(t,n,o,c){var u=new S(O(t,n,o,c));return p.isGeneratorFunction(n)?u:u.next().then(function(t){return t.done?t.value:u.next()})},F(j),j[s]="Generator",j[h]=function(){return this},j.toString=function(){return"[object Generator]"},p.keys=function(t){var n=[];for(var o in t)n.push(o);return n.reverse(),function o(){for(;n.length;){var c=n.pop();if(c in t)return o.value=c,o.done=!1,o}return o.done=!0,o}},p.values=q,Y.prototype={constructor:Y,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(R),!t)for(var o in this)"t"===o.charAt(0)&&c.call(this,o)&&!isNaN(+o.slice(1))&&(this[o]=n)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var o=this;function u(c,u){return s.type="throw",s.arg=t,o.next=c,u&&(o.method="next",o.arg=n),!!u}for(var h=this.tryEntries.length-1;h>=0;--h){var f=this.tryEntries[h],s=f.completion;if("root"===f.tryLoc)return u("end");if(f.tryLoc<=this.prev){var l=c.call(f,"catchLoc"),p=c.call(f,"finallyLoc");if(l&&p){if(this.prev=0;--o){var u=this.tryEntries[o];if(u.tryLoc<=this.prev&&c.call(u,"finallyLoc")&&this.prev=0;--n){var o=this.tryEntries[n];if(o.finallyLoc===t)return this.complete(o.completion,o.afterLoc),R(o),x}},catch:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc===t){var c=o.completion;if("throw"===c.type){var u=c.arg;R(o)}return u}}throw new Error("illegal catch attempt")},delegateYield:function(t,o,c){return this.delegate={iterator:q(t),resultName:o,nextLoc:c},"next"===this.method&&(this.arg=n),x}}}function O(t,n,o,c){var u=n&&n.prototype instanceof G?n:G,h=Object.create(u.prototype),f=new Y(c||[]);return h._invoke=T(t,o,f),h}function k(t,n,o){try{return{type:"normal",arg:t.call(n,o)}}catch(t){return{type:"throw",arg:t}}}function G(){}function N(){}function P(){}function F(t){["next","throw","return"].forEach(function(n){t[n]=function(t){return this._invoke(n,t)}})}function S(t){function n(o,u,h,f){var s=k(t[o],t,u);if("throw"!==s.type){var l=s.arg,p=l.value;return p&&"object"==typeof p&&c.call(p,"__await")?Promise.resolve(p.__await).then(function(t){n("next",t,h,f)},function(t){n("throw",t,h,f)}):Promise.resolve(p).then(function(t){l.value=t,h(l)},f)}f(s.arg)}var o;this._invoke=function(t,c){function u(){return new Promise(function(o,u){n(t,c,o,u)})}return o=o?o.then(u,u):u()}}function T(t,n,o){var c=y;return function(u,h){if(c===w)throw new Error("Generator is already running");if(c===L){if("throw"===u)throw h;return z()}for(o.method=u,o.arg=h;;){var f=o.delegate;if(f){var s=I(f,o);if(s){if(s===x)continue;return s}}if("next"===o.method)o.sent=o._sent=o.arg;else if("throw"===o.method){if(c===y)throw c=L,o.arg;o.dispatchException(o.arg)}else"return"===o.method&&o.abrupt("return",o.arg);c=w;var l=k(t,n,o);if("normal"===l.type){if(c=o.done?L:v,l.arg===x)continue;return{value:l.arg,done:o.done}}"throw"===l.type&&(c=L,o.method="throw",o.arg=l.arg)}}}function I(t,o){var c=t.iterator[o.method];if(c===n){if(o.delegate=null,"throw"===o.method){if(t.iterator.return&&(o.method="return",o.arg=n,I(t,o),"throw"===o.method))return x;o.method="throw",o.arg=new TypeError("The iterator does not provide a 'throw' method")}return x}var u=k(c,t.iterator,o.arg);if("throw"===u.type)return o.method="throw",o.arg=u.arg,o.delegate=null,x;var h=u.arg;return h?h.done?(o[t.resultName]=h.value,o.next=t.nextLoc,"return"!==o.method&&(o.method="next",o.arg=n),o.delegate=null,x):h:(o.method="throw",o.arg=new TypeError("iterator result is not an object"),o.delegate=null,x)}function A(t){var n={tryLoc:t[0]};1 in t&&(n.catchLoc=t[1]),2 in t&&(n.finallyLoc=t[2],n.afterLoc=t[3]),this.tryEntries.push(n)}function R(t){var n=t.completion||{};n.type="normal",delete n.arg,t.completion=n}function Y(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(A,this),this.reset(!0)}function q(t){if(t){var o=t[h];if(o)return o.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var u=-1,f=function o(){for(;++u0){var t=h.slice();h=[];for(var n=0;n0}function A(t){v[t]=null,s[t]=null,f[t]=null,p[t]=null}function D(t){if(null!=t){var l=v.indexOf(t);if(-1!==l){A(l);var u=f[l];'setImmediate'!==u&&'requestIdleCallback'!==u&&n.deleteTimer(t)}}}var E,O={setTimeout:function(t,l){for(var u=arguments.length,o=new Array(u>2?u-2:0),c=2;c2?u-2:0),c=2;c1?n-1:0),u=1;u-1&&(I.splice(t,1),y(c,o(),!0)),delete T[c],0===I.length&&n.setSendIdleEvents(!1)},u);T[c]=s}return c},cancelIdleCallback:function(t){D(t);var l=I.indexOf(t);-1!==l&&I.splice(l,1);var u=T[t];u&&(O.clearTimeout(u),delete T[t]),0===I.length&&n.setSendIdleEvents(!1)},clearTimeout:function(t){D(t)},clearInterval:function(t){D(t)},clearImmediate:function(t){D(t);var n=h.indexOf(t);-1!==n&&h.splice(n,1)},cancelAnimationFrame:function(t){D(t)},callTimers:function(n){t(0!==n.length,'Cannot call `callTimers` with an empty list of IDs.'),b=null;for(var l=0;l1)for(var o=1;o0){var l=I.slice();I=[];for(var u=0;u=0,loaded:s,total:n})}},{key:"__didCompleteResponse",value:function(t,s,n){t===this._requestId&&(s&&(''!==this._responseType&&'text'!==this._responseType||(this._response=s),this._hasError=!0,n&&(this._timedOut=!0)),this._clearSubscriptions(),this._requestId=null,this.setReadyState(this.DONE),s?S._interceptor&&S._interceptor.loadingFailed(t,s):S._interceptor&&S._interceptor.loadingFinished(t,this._response.length))}},{key:"_clearSubscriptions",value:function(){(this._subscriptions||[]).forEach(function(t){t&&t.remove()}),this._subscriptions=[]}},{key:"getAllResponseHeaders",value:function(){if(!this.responseHeaders)return null;var t=this.responseHeaders||{};return Object.keys(t).map(function(s){return s+': '+t[s]}).join('\r\n')}},{key:"getResponseHeader",value:function(t){var s=this._lowerCaseResponseHeaders[t.toLowerCase()];return void 0!==s?s:null}},{key:"setRequestHeader",value:function(t,s){if(this.readyState!==this.OPENED)throw new Error('Request has not been opened');this._headers[t.toLowerCase()]=String(s)}},{key:"setTrackingName",value:function(t){return this._trackingName=t,this}},{key:"open",value:function(t,s,n){if(this.readyState!==this.UNSENT)throw new Error('Cannot open, already sending');if(void 0!==n&&!n)throw new Error('Synchronous http requests are not supported');if(!s)throw new Error('Cannot load an empty url');this._method=t.toUpperCase(),this._url=s,this._aborted=!1,this.setReadyState(this.OPENED)}},{key:"send",value:function(s){var n=this;if(this.readyState!==this.OPENED)throw new Error('Request has not been opened');if(this._sent)throw new Error('Request has already been sent');this._sent=!0;var o=this._incrementalEvents||!!this.onreadystatechange||!!this.onprogress;this._subscriptions.push(c.addListener('didSendNetworkData',function(s){return n.__didUploadProgress.apply(n,t(s))})),this._subscriptions.push(c.addListener('didReceiveNetworkResponse',function(s){return n.__didReceiveResponse.apply(n,t(s))})),this._subscriptions.push(c.addListener('didReceiveNetworkData',function(s){return n.__didReceiveData.apply(n,t(s))})),this._subscriptions.push(c.addListener('didReceiveNetworkIncrementalData',function(s){return n.__didReceiveIncrementalData.apply(n,t(s))})),this._subscriptions.push(c.addListener('didReceiveNetworkDataProgress',function(s){return n.__didReceiveDataProgress.apply(n,t(s))})),this._subscriptions.push(c.addListener('didCompleteNetworkResponse',function(s){return n.__didCompleteResponse.apply(n,t(s))}));var h='text';'arraybuffer'===this._responseType&&(h='base64'),'blob'===this._responseType&&(h='blob'),y(this._method,'Request method needs to be defined.'),y(this._url,'Request URL needs to be defined.'),c.sendRequest(this._method,this._trackingName,this._url,this._headers,s,h,o,this.timeout,this.__didCreateRequest.bind(this),this.withCredentials)}},{key:"abort",value:function(){this._aborted=!0,this._requestId&&c.abortRequest(this._requestId),this.readyState===this.UNSENT||this.readyState===this.OPENED&&!this._sent||this.readyState===this.DONE||(this._reset(),this.setReadyState(this.DONE)),this._reset()}},{key:"setResponseHeaders",value:function(t){this.responseHeaders=t||null;var s=t||{};this._lowerCaseResponseHeaders=Object.keys(s).reduce(function(t,n){return t[n.toLowerCase()]=s[n],t},{})}},{key:"setReadyState",value:function(t){this.readyState=t,this.dispatchEvent({type:'readystatechange'}),t===this.DONE&&(this._aborted?this.dispatchEvent({type:'abort'}):this._hasError?this._timedOut?this.dispatchEvent({type:'timeout'}):this.dispatchEvent({type:'error'}):this.dispatchEvent({type:'load'}),this.dispatchEvent({type:'loadend'}))}},{key:"addEventListener",value:function(t,n){'readystatechange'!==t&&'progress'!==t||(this._incrementalEvents=!0),s(p(S.prototype),"addEventListener",this).call(this,t,n)}},{key:"responseType",get:function(){return this._responseType},set:function(t){if(this._sent)throw new Error("Failed to set the 'responseType' property on 'XMLHttpRequest': The response type cannot be set after the request has been sent.");w.hasOwnProperty(t)?(y(w[t]||'document'===t,"The provided value '"+t+"' is unsupported in this environment."),'blob'===t&&y(f.isAvailable,'Native module BlobModule is required for blob support'),this._responseType=t):v(!1,"The provided value '"+t+"' is not a valid 'responseType'.")}},{key:"responseText",get:function(){if(''!==this._responseType&&'text'!==this._responseType)throw new Error("The 'responseText' property is only available if 'responseType' is set to '' or 'text', but it is '"+this._responseType+"'.");return this.readyState0){for(var n=Array(arguments.length),l=0;l0?C-4:C;for(u=0;u>16&255,s[v++]=h>>8&255,s[v++]=255&h;2===y&&(h=n[t.charCodeAt(u)]<<2|n[t.charCodeAt(u+1)]>>4,s[v++]=255&h);1===y&&(h=n[t.charCodeAt(u)]<<10|n[t.charCodeAt(u+1)]<<4|n[t.charCodeAt(u+2)]>>2,s[v++]=h>>8&255,s[v++]=255&h);return s},e.fromByteArray=function(n){for(var o,h=n.length,u=h%3,c=[],f=0,A=h-u;fA?A:f+16383));1===u?(o=n[h-1],c.push(t[o>>2]+t[o<<4&63]+'==')):2===u&&(o=(n[h-2]<<8)+n[h-1],c.push(t[o>>10]+t[o>>4&63]+t[o<<2&63]+'='));return c.join('')};for(var t=[],n=[],o='undefined'!=typeof Uint8Array?Uint8Array:Array,h='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',u=0,c=h.length;u0)throw new Error('Invalid string. Length must be a multiple of 4');var o=t.indexOf('=');return-1===o&&(o=n),[o,o===n?0:4-o%4]}function A(t,n,o){return 3*(n+o)/4-o}function C(n,o,h){for(var u,c,f=[],A=o;A>18&63]+t[c>>12&63]+t[c>>6&63]+t[63&c]);return f.join('')}n['-'.charCodeAt(0)]=62,n['_'.charCodeAt(0)]=63},126,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=(function(){function s(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],o=arguments.length>1?arguments[1]:void 0;t(this,s);var u=r(d[2]);this.data=u.createFromParts(n,o).data}return n(s,[{key:"slice",value:function(t,n){var s=r(d[2]),o=this.data,u=o.offset,l=o.size;return'number'==typeof t&&(t>l&&(t=l),u+=t,l-=t,'number'==typeof n&&(n<0&&(n=this.size+n),l=n-t)),s.createFromOptions({blobId:this.data.blobId,offset:u,size:l})}},{key:"close",value:function(){r(d[2]).release(this.data.blobId),this.data=null}},{key:"data",set:function(t){this._data=t},get:function(){if(!this._data)throw new Error('Blob has been closed and is no longer available');return this._data}},{key:"size",get:function(){return this.data.size}},{key:"type",get:function(){return this.data.type||''}}]),s})();m.exports=s},127,[8,9,128]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),u=r(d[3]),c=r(d[4]),x=r(d[5]).BlobModule;var f=(function(){function f(){n(this,f)}return o(f,null,[{key:"createFromParts",value:function(t,n){var o='xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,function(t){var n=16*Math.random()|0;return('x'==t?n:3&n|8).toString(16)}),c=t.map(function(t){if(t instanceof ArrayBuffer||g.ArrayBufferView&&t instanceof g.ArrayBufferView)throw new Error("Creating blobs from 'ArrayBuffer' and 'ArrayBufferView' are not supported");return t instanceof u?{data:t.data,type:'blob'}:{data:String(t),type:'string'}}),l=c.reduce(function(t,n){return'string'===n.type?t+g.unescape(encodeURI(n.data)).length:t+n.data.size},0);return x.createFromParts(c,o),f.createFromOptions({blobId:o,offset:0,size:l,type:n?n.type:'',lastModified:n?n.lastModified:Date.now()})}},{key:"createFromOptions",value:function(n){return c.register(n.blobId),t(Object.create(u.prototype),{data:n})}},{key:"release",value:function(t){c.unregister(t),c.has(t)||x.release(t)}},{key:"addNetworkingHandler",value:function(){x.addNetworkingHandler()}},{key:"addWebSocketHandler",value:function(t){x.addWebSocketHandler(t)}},{key:"removeWebSocketHandler",value:function(t){x.removeWebSocketHandler(t)}},{key:"sendOverSocket",value:function(t,n){x.sendOverSocket(t.data,n)}}]),f})();f.isAvailable=!!x,m.exports=f},128,[25,8,9,127,129,22]); -__d(function(g,r,i,a,m,e,d){var n={};m.exports={register:function(t){n[t]?n[t]++:n[t]=1},unregister:function(t){n[t]&&(n[t]--,n[t]<=0&&delete n[t])},has:function(t){return n[t]&&n[t]>0}}},129,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]);function c(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);n&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,s)}return o}function p(n){for(var o=1;o-1};c.prototype.append=function(t,o){t=y(t),o=l(o);var n=this.map[t];this.map[t]=n?n+','+o:o},c.prototype.delete=function(t){delete this.map[y(t)]},c.prototype.get=function(t){return t=y(t),this.has(t)?this.map[t]:null},c.prototype.has=function(t){return this.map.hasOwnProperty(y(t))},c.prototype.set=function(t,o){this.map[y(t)]=l(o)},c.prototype.forEach=function(t,o){for(var n in this.map)this.map.hasOwnProperty(n)&&t.call(o,this.map[n],n,this)},c.prototype.keys=function(){var t=[];return this.forEach(function(o,n){t.push(n)}),p(t)},c.prototype.values=function(){var t=[];return this.forEach(function(o){t.push(o)}),p(t)},c.prototype.entries=function(){var t=[];return this.forEach(function(o,n){t.push([n,o])}),p(t)},o.iterable&&(c.prototype["function"==typeof Symbol?Symbol.iterator:"@@iterator"]=c.prototype.entries);var f=['DELETE','GET','HEAD','OPTIONS','POST','PUT'];T.prototype.clone=function(){return new T(this,{body:this._bodyInit})},A.call(T.prototype),A.call(P.prototype),P.prototype.clone=function(){return new P(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new c(this.headers),url:this.url})},P.error=function(){var t=new P(null,{status:0,statusText:''});return t.type='error',t};var u=[301,302,303,307,308];P.redirect=function(t,o){if(-1===u.indexOf(o))throw new RangeError('Invalid status code');return new P(null,{status:o,headers:{location:t}})},t.Headers=c,t.Request=T,t.Response=P,t.fetch=function(t,n){return new Promise(function(s,h){var f=new T(t,n),u=new XMLHttpRequest;u.onload=function(){var t,o,n={status:u.status,statusText:u.statusText,headers:(t=u.getAllResponseHeaders()||'',o=new c,t.replace(/\r?\n[\t ]+/g,' ').split(/\r?\n/).forEach(function(t){var n=t.split(':'),s=n.shift().trim();if(s){var h=n.join(':').trim();o.append(s,h)}}),o)};n.url='responseURL'in u?u.responseURL:n.headers.get('X-Request-URL');var h='response'in u?u.response:u.responseText;s(new P(h,n))},u.onerror=function(){h(new TypeError('Network request failed'))},u.ontimeout=function(){h(new TypeError('Network request failed'))},u.open(f.method,f.url,!0),'include'===f.credentials?u.withCredentials=!0:'omit'===f.credentials&&(u.withCredentials=!1),'responseType'in u&&o.blob&&(u.responseType='blob'),f.headers.forEach(function(t,o){u.setRequestHeader(o,t)}),u.send(void 0===f._bodyInit?null:f._bodyInit)})},t.fetch.polyfill=!0}function y(t){if('string'!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(t))throw new TypeError('Invalid character in header field name');return t.toLowerCase()}function l(t){return'string'!=typeof t&&(t=String(t)),t}function p(t){var n={next:function(){var o=t.shift();return{done:void 0===o,value:o}}};return o.iterable&&(n["function"==typeof Symbol?Symbol.iterator:"@@iterator"]=function(){return n}),n}function c(t){this.map={},t instanceof c?t.forEach(function(t,o){this.append(o,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(o){this.append(o,t[o])},this)}function b(t){if(t.bodyUsed)return Promise.reject(new TypeError('Already read'));t.bodyUsed=!0}function w(t){return new Promise(function(o,n){t.onload=function(){o(t.result)},t.onerror=function(){n(t.error)}})}function _(t){var o=new FileReader,n=w(o);return o.readAsArrayBuffer(t),n}function v(t){for(var o=new Uint8Array(t),n=new Array(o.length),s=0;s-1?s:n),this.mode=o.mode||this.mode||null,this.referrer=null,('GET'===this.method||'HEAD'===this.method)&&h)throw new TypeError('Body not allowed for GET or HEAD requests');this._initBody(h)}function E(t){var o=new FormData;return t.trim().split('&').forEach(function(t){if(t){var n=t.split('='),s=n.shift().replace(/\+/g,' '),h=n.join('=').replace(/\+/g,' ');o.append(decodeURIComponent(s),decodeURIComponent(h))}}),o}function P(t,o){o||(o={}),this.type='default',this.status=void 0===o.status?200:o.status,this.ok=this.status>=200&&this.status<300,this.statusText='statusText'in o?o.statusText:'OK',this.headers=new c(o.headers),this.url=o.url||'',this._initBody(t)}})('undefined'!=typeof self?self:this)},132,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),n=r(d[2]),o=r(d[3]),c=r(d[4]),l=r(d[5]),u=r(d[6]),b=r(d[7]),h=r(d[8]),y=r(d[9]),f=r(d[10]),v=(r(d[11]),r(d[12])),p=r(d[13]),_=r(d[14]),k=r(d[15]),E=f.WebSocketModule,S=0,I=1,w=2,N=3,O=0,C=(function(b){function f(n,l,u){var b;s(this,f),(b=o(this,c(f).call(this))).CONNECTING=S,b.OPEN=I,b.CLOSING=w,b.CLOSED=N,b.readyState=S,'string'==typeof l&&(l=[l]);var y=u||{},v=y.headers,p=void 0===v?{}:v,_=t(y,["headers"]);if(_&&'string'==typeof _.origin&&(console.warn('Specifying `origin` as a WebSocket connection option is deprecated. Include it under `headers` instead.'),p.origin=_.origin,delete _.origin),Object.keys(_).length>0&&console.warn('Unrecognized WebSocket connection option(s) `'+Object.keys(_).join('`, `')+"`. Did you mean to put these under `headers`?"),Array.isArray(l)||(l=null),!f.isAvailable)throw new Error("Cannot initialize WebSocket module. Native module WebSocketModule is missing.");return b._eventEmitter=new h(E),b._socketId=O++,b._registerEvents(),E.connect(n,l,{headers:p},b._socketId),b}return l(f,b),n(f,[{key:"close",value:function(t,s){this.readyState!==this.CLOSING&&this.readyState!==this.CLOSED&&(this.readyState=this.CLOSING,this._close(t,s))}},{key:"send",value:function(t){if(this.readyState===this.CONNECTING)throw new Error('INVALID_STATE_ERR');if(t instanceof u)return k(y.isAvailable,'Native module BlobModule is required for blob support'),void y.sendOverSocket(t,this._socketId);if('string'!=typeof t){if(!(t instanceof ArrayBuffer||ArrayBuffer.isView(t)))throw new Error('Unsupported data type');E.sendBinary(_(t),this._socketId)}else E.send(t,this._socketId)}},{key:"ping",value:function(){if(this.readyState===this.CONNECTING)throw new Error('INVALID_STATE_ERR');E.ping(this._socketId)}},{key:"_close",value:function(t,s){E.close(this._socketId),y.isAvailable&&'blob'===this._binaryType&&y.removeWebSocketHandler(this._socketId)}},{key:"_unregisterEvents",value:function(){this._subscriptions.forEach(function(t){return t.remove()}),this._subscriptions=[]}},{key:"_registerEvents",value:function(){var t=this;this._subscriptions=[this._eventEmitter.addListener('websocketMessage',function(s){if(s.id===t._socketId){var n=s.data;switch(s.type){case'binary':n=p.toByteArray(s.data).buffer;break;case'blob':n=y.createFromOptions(s.data)}t.dispatchEvent(new v('message',{data:n}))}}),this._eventEmitter.addListener('websocketOpen',function(s){s.id===t._socketId&&(t.readyState=t.OPEN,t.dispatchEvent(new v('open')))}),this._eventEmitter.addListener('websocketClosed',function(s){s.id===t._socketId&&(t.readyState=t.CLOSED,t.dispatchEvent(new v('close',{code:s.code,reason:s.reason})),t._unregisterEvents(),t.close())}),this._eventEmitter.addListener('websocketFailed',function(s){s.id===t._socketId&&(t.readyState=t.CLOSED,t.dispatchEvent(new v('error',{message:s.message})),t.dispatchEvent(new v('close',{message:s.message})),t._unregisterEvents(),t.close())})]}},{key:"binaryType",get:function(){return this._binaryType},set:function(t){if('blob'!==t&&'arraybuffer'!==t)throw new Error("binaryType must be either 'blob' or 'arraybuffer'");'blob'!==this._binaryType&&'blob'!==t||(k(y.isAvailable,'Native module BlobModule is required for blob support'),'blob'===t?y.addWebSocketHandler(this._socketId):y.removeWebSocketHandler(this._socketId)),this._binaryType=t}}]),f})(b.apply(void 0,['close','error','message','open']));C.CONNECTING=S,C.OPEN=I,C.CLOSING=w,C.CLOSED=N,C.isAvailable=!!E,m.exports=C},133,[23,8,9,10,13,14,127,117,123,128,22,54,134,126,125,17]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]);m.exports=function n(o,c){s(this,n),this.type=o.toString(),t(this,c)}},134,[25,8]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),u=r(d[3]),l=r(d[4]),o=r(d[5]),c=r(d[6]),h=(function(h){function f(n,l,o){var h;return t(this,f),c(null!=n&&null!=l,'Failed to construct `File`: Must pass both `parts` and `name` arguments.'),(h=s(this,u(f).call(this,n,o))).data.name=l,h}return l(f,o),n(f,[{key:"name",get:function(){return c(null!=this.data.name,'Files must have a name set.'),this.data.name}},{key:"lastModified",get:function(){return this.data.lastModified||0}}]),f})();m.exports=h},135,[8,9,10,13,14,127,17]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),n=r(d[2]),o=r(d[3]),u=r(d[4]),h=r(d[5]),_=(r(d[6]),r(d[7]).FileReaderModule),c=0,y=1,l=2,f=(function(h){function f(){var s;return t(this,f),(s=n(this,o(f).call(this))).EMPTY=c,s.LOADING=y,s.DONE=l,s._aborted=!1,s._subscriptions=[],s._reset(),s}return u(f,h),s(f,[{key:"_reset",value:function(){this._readyState=c,this._error=null,this._result=null}},{key:"_clearSubscriptions",value:function(){this._subscriptions.forEach(function(t){return t.remove()}),this._subscriptions=[]}},{key:"_setReadyState",value:function(t){this._readyState=t,this.dispatchEvent({type:'readystatechange'}),t===l&&(this._aborted?this.dispatchEvent({type:'abort'}):this._error?this.dispatchEvent({type:'error'}):this.dispatchEvent({type:'load'}),this.dispatchEvent({type:'loadend'}))}},{key:"readAsArrayBuffer",value:function(){throw new Error('FileReader.readAsArrayBuffer is not implemented')}},{key:"readAsDataURL",value:function(t){var s=this;this._aborted=!1,_.readAsDataURL(t.data).then(function(t){s._aborted||(s._result=t,s._setReadyState(l))},function(t){s._aborted||(s._error=t,s._setReadyState(l))})}},{key:"readAsText",value:function(t){var s=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'UTF-8';this._aborted=!1,_.readAsText(t.data,n).then(function(t){s._aborted||(s._result=t,s._setReadyState(l))},function(t){s._aborted||(s._error=t,s._setReadyState(l))})}},{key:"abort",value:function(){this._aborted=!0,this._readyState!==c&&this._readyState!==l&&(this._reset(),this._setReadyState(l)),this._reset()}},{key:"readyState",get:function(){return this._readyState}},{key:"error",get:function(){return this._error}},{key:"result",get:function(){return this._result}}]),f})(h.apply(void 0,['abort','error','load','loadstart','loadend','progress']));f.EMPTY=c,f.LOADING=y,f.DONE=l,m.exports=f},136,[8,9,10,13,14,117,127,22]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.URL=e.URLSearchParams=void 0;var n,o=t(r(d[1])),u=t(r(d[2])),s=(r(d[3]),r(d[4]).BlobModule),f=null;s&&'string'==typeof s.BLOB_URI_SCHEME&&(f=s.BLOB_URI_SCHEME+':','string'==typeof s.BLOB_URI_HOST&&(f+="//"+s.BLOB_URI_HOST+"/")),n=Symbol.iterator;var h=(function(){function t(n){var u=this;(0,o.default)(this,t),this._searchParams=[],'object'==typeof n&&Object.keys(n).forEach(function(t){return u.append(t,n[t])})}return(0,u.default)(t,[{key:"append",value:function(t,n){this._searchParams.push([t,n])}},{key:"delete",value:function(t){throw new Error('not implemented')}},{key:"get",value:function(t){throw new Error('not implemented')}},{key:"getAll",value:function(t){throw new Error('not implemented')}},{key:"has",value:function(t){throw new Error('not implemented')}},{key:"set",value:function(t,n){throw new Error('not implemented')}},{key:"sort",value:function(){throw new Error('not implemented')}},{key:n,value:function(){return this._searchParams["function"==typeof Symbol?Symbol.iterator:"@@iterator"]()}},{key:"toString",value:function(){if(0===this._searchParams.length)return'';var t=this._searchParams.length-1;return this._searchParams.reduce(function(n,o,u){return n+o.join('=')+(u===t?'':'&')},'')}}]),t})();function l(t){return/^(?:(?:(?:https?|ftp):)?\/\/)(?:(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(t)}e.URLSearchParams=h;var c=(function(){function t(n,u){(0,o.default)(this,t),this._searchParamsInstance=null;var s=null;if(u){if('string'==typeof u){if(!l(s=u))throw new TypeError("Invalid base URL: "+s)}else'object'==typeof u&&(s=u.toString());s.endsWith('/')&&n.startsWith('/')&&(s=s.slice(0,s.length-1)),s.endsWith(n)&&(n=''),this._url=""+s+n}else this._url=n,this._url.endsWith('/')||(this._url+='/')}return(0,u.default)(t,null,[{key:"createObjectURL",value:function(t){if(null===f)throw new Error('Cannot create URL for blob!');return""+f+t.data.blobId+"?offset="+t.data.offset+"&size="+t.size}},{key:"revokeObjectURL",value:function(t){}}]),(0,u.default)(t,[{key:"toJSON",value:function(){return this.toString()}},{key:"toString",value:function(){if(null===this._searchParamsInstance)return this._url;var t=this._url.indexOf('?')>-1?'&':'?';return this._url+t+this._searchParamsInstance.toString()}},{key:"hash",get:function(){throw new Error('not implemented')}},{key:"host",get:function(){throw new Error('not implemented')}},{key:"hostname",get:function(){throw new Error('not implemented')}},{key:"href",get:function(){return this.toString()}},{key:"origin",get:function(){throw new Error('not implemented')}},{key:"password",get:function(){throw new Error('not implemented')}},{key:"pathname",get:function(){throw new Error('not implemented')}},{key:"port",get:function(){throw new Error('not implemented')}},{key:"protocol",get:function(){throw new Error('not implemented')}},{key:"search",get:function(){throw new Error('not implemented')}},{key:"searchParams",get:function(){return null==this._searchParamsInstance&&(this._searchParamsInstance=new h),this._searchParamsInstance}},{key:"username",get:function(){throw new Error('not implemented')}}]),t})();e.URL=c},137,[3,8,9,127,22]); -__d(function(g,r,i,a,m,e,d){'use strict';g.alert||(g.alert=function(t){r(d[0]).alert('Alert',''+t)})},138,[139]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]);function l(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);n&&(l=l.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,l)}return o}function u(n){for(var o=1;o3&&void 0!==arguments[3]?arguments[3]:'plain-text',u=arguments.length>4?arguments[4]:void 0,s=arguments.length>5?arguments[5]:void 0;f.prompt(t,n,o,l,u,s)}}]),t})()),f=(function(){function t(){n(this,t)}return o(t,null,[{key:"alert",value:function(t,n,o){this.prompt(t,n,o,'default')}},{key:"prompt",value:function(t,n,o){var l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:'plain-text',u=arguments.length>4?arguments[4]:void 0,s=arguments.length>5?arguments[5]:void 0;if('function'!=typeof l){var p,f,v=[],y=[];'function'==typeof o?v=[o]:Array.isArray(o)&&o.forEach(function(t,n){if(v[n]=t.onPress,'cancel'===t.style?p=String(n):'destructive'===t.style&&(f=String(n)),t.text||n<(o||[]).length-1){var l={};l[n]=t.text||'',y.push(l)}}),c.alertWithArgs({title:t||'',message:n||void 0,buttons:y,type:l||void 0,defaultValue:u,cancelButtonKey:p,destructiveButtonKey:f,keyboardType:s},function(t,n){var o=v[t];o&&o(n)})}else{console.warn("You passed a callback function as the \"type\" argument to Alert.prompt(). React Native is assuming you want to use the deprecated Alert.prompt(title, defaultValue, buttons, callback) signature. The current signature is Alert.prompt(title, message, callbackOrButtons, type, defaultValue, keyboardType) and the old syntax will be removed in a future version.");var b=l;c.alertWithArgs({title:t||'',type:'plain-text',defaultValue:n},function(t,n){b(n)})}}}]),t})();!(function(){function t(){n(this,t)}o(t,null,[{key:"alert",value:function(t,n,o,l){var c={title:t||'',message:n||''};l&&(c=u({},c,{cancelable:l.cancelable}));var p=o?o.slice(0,3):[{text:'OK'}],f=p.pop(),v=p.pop(),y=p.pop();y&&(c=u({},c,{buttonNeutral:y.text||''})),v&&(c=u({},c,{buttonNegative:v.text||''})),f&&(c=u({},c,{buttonPositive:f.text||''})),s.DialogManagerAndroid.showAlert(c,function(t){return console.warn(t)},function(t,n){t===s.DialogManagerAndroid.buttonClicked?n===s.DialogManagerAndroid.buttonNeutral?y.onPress&&y.onPress():n===s.DialogManagerAndroid.buttonNegative?v.onPress&&v.onPress():n===s.DialogManagerAndroid.buttonPositive&&f.onPress&&f.onPress():t===s.DialogManagerAndroid.dismissed&&l&&l.onDismiss&&l.onDismiss()})}}])})();m.exports=p},139,[53,8,9,22,54]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]).polyfillObjectProperty,o=g.navigator;void 0===o&&(g.navigator=o={}),t(o,'product',function(){return'ReactNative'}),t(o,'geolocation',function(){return r(d[1])})},140,[92,141]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]).LocationObserver,s=r(d[3]),c=r(d[4]),u=r(d[5]),v=new n(o),f=(r(d[6]),r(d[7])),l=[],p=!1,h={setRNConfiguration:function(t){o.setConfiguration&&o.setConfiguration(t)},requestAuthorization:function(){o.requestAuthorization()},getCurrentPosition:function(n,u,v){var l,p;return t.async(function(h){for(;;)switch(h.prev=h.next){case 0:s('function'==typeof n,'Must provide a valid geo_success callback.'),l=!0,h.next=11;break;case 5:if(l=h.sent){h.next=11;break}return h.next=9,t.awrap(f.request(f.PERMISSIONS.ACCESS_FINE_LOCATION));case 9:p=h.sent,l=p===f.RESULTS.GRANTED;case 11:l&&o.getCurrentPosition(v||{},n,u||c);case 12:case"end":return h.stop()}})},watchPosition:function(t,n,s){p||(o.startObserving(s||{}),p=!0);var c=l.length;return l.push([v.addListener('geolocationDidChange',t),n?v.addListener('geolocationError',n):null]),c},clearWatch:function(t){var n=l[t];if(n){n[0].remove();var o=n[1];o&&o.remove(),l[t]=void 0;for(var s=!0,c=0;c=0;--h){var f=this.tryEntries[h],s=f.completion;if("root"===f.tryLoc)return u("end");if(f.tryLoc<=this.prev){var l=c.call(f,"catchLoc"),p=c.call(f,"finallyLoc");if(l&&p){if(this.prev=0;--o){var u=this.tryEntries[o];if(u.tryLoc<=this.prev&&c.call(u,"finallyLoc")&&this.prev=0;--n){var o=this.tryEntries[n];if(o.finallyLoc===t)return this.complete(o.completion,o.afterLoc),I(o),x}},catch:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc===t){var c=o.completion;if("throw"===c.type){var u=c.arg;I(o)}return u}}throw new Error("illegal catch attempt")},delegateYield:function(t,o,c){return this.delegate={iterator:R(t),resultName:o,nextLoc:c},"next"===this.method&&(this.arg=n),x}},t})("object"==typeof m?m.exports:{});try{regeneratorRuntime=t}catch(n){Function("r","regeneratorRuntime = r")(t)}},143,[]); -__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(){for(var o=arguments.length,n=new Array(o),s=0;s1?n-1:0),c=1;c1?c-1:0),s=1;s2&&void 0!==arguments[2]?arguments[2]:-1;if(0===o)return!0;if(n===f)return!1;if('function'==typeof n&&'function'==typeof f)return!1;if('object'!=typeof n||null===n)return n!==f;if('object'!=typeof f||null===f)return!0;if(n.constructor!==f.constructor)return!0;if(Array.isArray(n)){var u=n.length;if(f.length!==u)return!0;for(var c=0;c=o){s=t;break}t=t.next}while(t!==n);null===s?s=n:s===n&&(n=v,c()),(o=s.previous).next=s.previous=v,v.next=s,v.previous=o}}function v(){if(-1===o&&null!==n&&1===n.priorityLevel){s=!0;try{do{p()}while(null!==n&&1===n.priorityLevel)}finally{s=!1,null!==n?c():f=!1}}}function b(l){s=!0;var o=t;t=l;try{if(l)for(;null!==n;){var u=e.unstable_now();if(!(n.expirationTime<=u))break;do{p()}while(null!==n&&n.expirationTime<=u)}else if(null!==n)do{p()}while(null!==n&&!L())}finally{s=!1,t=o,null!==n?c():f=!1,v()}}var y,w,_=Date,x="function"==typeof setTimeout?setTimeout:void 0,h="function"==typeof clearTimeout?clearTimeout:void 0,k="function"==typeof requestAnimationFrame?requestAnimationFrame:void 0,T="function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0;function M(n){y=k(function(t){h(w),n(t)}),w=x(function(){T(y),n(e.unstable_now())},100)}if("object"==typeof performance&&"function"==typeof performance.now){var P=performance;e.unstable_now=function(){return P.now()}}else e.unstable_now=function(){return _.now()};var C,F,L,A=null;if("undefined"!=typeof window?A=window:void 0!==g&&(A=g),A&&A._schedMock){var j=A._schedMock;C=j[0],F=j[1],L=j[2],e.unstable_now=j[3]}else if("undefined"==typeof window||"function"!=typeof MessageChannel){var q=null,E=function(n){if(null!==q)try{q(n)}finally{q=null}};C=function(n){null!==q?setTimeout(C,0,n):(q=n,setTimeout(E,0,!1))},F=function(){q=null},L=function(){return!1}}else{"undefined"!=typeof console&&("function"!=typeof k&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof T&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"));var I=null,N=!1,B=-1,D=!1,O=!1,U=0,W=33,Y=33;L=function(){return U<=e.unstable_now()};var z=new MessageChannel,G=z.port2;z.port1.onmessage=function(){N=!1;var n=I,t=B;I=null,B=-1;var l=e.unstable_now(),o=!1;if(0>=U-l){if(!(-1!==t&&t<=l))return D||(D=!0,M(H)),I=n,void(B=t);o=!0}if(null!==n){O=!0;try{n(o)}finally{O=!1}}};var H=function n(t){if(null!==I){M(n);var l=t-U+Y;ll&&(l=8),Y=lt?G.postMessage(void 0):D||(D=!0,M(H))},F=function(){I=null,N=!1,B=-1}}e.unstable_ImmediatePriority=1,e.unstable_UserBlockingPriority=2,e.unstable_NormalPriority=3,e.unstable_IdlePriority=5,e.unstable_LowPriority=4,e.unstable_runWithPriority=function(n,t){switch(n){case 1:case 2:case 3:case 4:case 5:break;default:n=3}var u=l,s=o;l=n,o=e.unstable_now();try{return t()}finally{l=u,o=s,v()}},e.unstable_next=function(n){switch(l){case 1:case 2:case 3:var t=3;break;default:t=l}var u=l,s=o;l=t,o=e.unstable_now();try{return n()}finally{l=u,o=s,v()}},e.unstable_scheduleCallback=function(t,u){var s=-1!==o?o:e.unstable_now();if("object"==typeof u&&null!==u&&"number"==typeof u.timeout)u=s+u.timeout;else switch(l){case 1:u=s+-1;break;case 2:u=s+250;break;case 5:u=s+1073741823;break;case 4:u=s+1e4;break;default:u=s+5e3}if(t={callback:t,priorityLevel:l,expirationTime:u,next:null,previous:null},null===n)n=t.next=t.previous=t,c();else{s=null;var f=n;do{if(f.expirationTime>u){s=f;break}f=f.next}while(f!==n);null===s?s=n:s===n&&(n=t,c()),(u=s.previous).next=s.previous=t,t.next=s,t.previous=u}return t},e.unstable_cancelCallback=function(t){var l=t.next;if(null!==l){if(l===t)n=null;else{t===n&&(n=l);var o=t.previous;o.next=l,l.previous=o}t.next=t.previous=null}},e.unstable_wrapCallback=function(n){var t=l;return function(){var u=l,s=o;l=t,o=e.unstable_now();try{return n.apply(this,arguments)}finally{l=u,o=s,v()}}},e.unstable_getCurrentPriorityLevel=function(){return l},e.unstable_shouldYield=function(){return!t&&(null!==n&&n.expirationTime=s)return t[n];return t[t.length-1]||1}}]),h})();m.exports=h},169,[8,9,60,54,170,17]); -__d(function(g,r,i,a,m,e,d){'use strict';var t={.75:'ldpi',1:'mdpi',1.5:'hdpi',2:'xhdpi',3:'xxhdpi',4:'xxxhdpi'};function n(n){if(n.toString()in t)return t[n.toString()];throw new Error('no such scale '+n.toString())}var o=new Set(['gif','jpeg','jpg','png','svg','webp','xml']);function s(t){var n=t.httpServerLocation;return'/'===n[0]&&(n=n.substr(1)),n}m.exports={getAndroidAssetSuffix:n,getAndroidResourceFolderName:function(s,u){if(!o.has(s.type))return'raw';var c=n(u);if(!c)throw new Error("Don't know which android drawable suffix to use for scale: "+u+'\nAsset: '+JSON.stringify(s,null,'\t')+'\nPossible scales are:'+JSON.stringify(t,null,'\t'));return'drawable-'+c},getAndroidResourceIdentifier:function(t){return(s(t)+'/'+t.name).toLowerCase().replace(/\//g,'_').replace(/([^a-z0-9_])/g,'').replace(/^assets_/,'')},getBasePath:s}},170,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);m.exports=t('RCTActivityIndicatorView')},171,[161]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),l=r(d[3]),u=r(d[4]),s=r(d[5]),f=r(d[6]),c=r(d[7]),h=r(d[8]),p=r(d[9]),v=r(d[10]),y=r(d[11]),b=r(d[12]),k=r(d[13]);function S(t,n){if(null==t||null==n)return!0;if(t.length!==n.length)return!0;for(var o=0;o must be a child of a '),h.createElement(W,{opacity:E(t),transform:D(t)},this.props.children)}}]),f})(h.Component);F.contextTypes={isInSurface:p.bool.isRequired};var M=(function(s){function f(){return t(this,f),o(this,l(f).apply(this,arguments))}return u(f,s),n(f,[{key:"render",value:function(){var t=this.props,n=[N(t.x,0),N(t.y,0),N(t.width,0),N(t.height,0)],o=b(t);return delete o.x,delete o.y,h.createElement(W,{clipping:n,opacity:E(t),transform:D(o)},this.props.children)}}]),f})(h.Component),P=0,X=1,Y=2,O=3;function q(t,n,o){var l=new s(t);n[o+0]=l.red/255,n[o+1]=l.green/255,n[o+2]=l.blue/255,n[o+3]=l.alpha}function j(t,n,o){var l=0;if('length'in t)for(;lT?(X-=M,Y-=b):f>0&&0!=T&&(X-=f/T*M,Y-=f/T*b),l=X*X+Y*Y,(f=(X=o-t)*M+(Y=u-n)*b)>T?(X-=M,Y-=b):f>0&&0!=T&&(X-=f/T*M,Y-=f/T*b),v=X*X+Y*Y,l<.01&&v<.01)this.onLine(t,n,p,c);else{if(isNaN(l)||isNaN(v))throw new Error('Bad input');var k=.5*(s+o),w=.5*(h+u),_=.5*(s+t),D=.5*(h+n),z=.5*(_+k),C=.5*(D+w),B=.5*(p+o),A=.5*(c+u),L=.5*(B+k),I=.5*(A+w),P=.5*(z+L),N=.5*(C+I);this.onBezierCurve(t,n,_,D,z,C,P,N),this.onBezierCurve(P,N,L,I,B,A,p,c)}},onArc:function(t,n,s,h,o,u,p,c,l,v,X,Y){var f=Y?Y*Math.PI/180:0,M=Math.cos(f),b=Math.sin(f),T=M*p,k=-b*c,w=b*p,_=M*c,D=v-l;D<0&&!X?D+=2*Math.PI:D>0&&X&&(D-=2*Math.PI);for(var z=Math.ceil(Math.abs(D/(Math.PI/2))),C=D/z,B=1.3333333333333333*Math.tan(C/4),A=Math.cos(l),L=Math.sin(l),I=0;Ithis.yy/this.xy?-1:1;return(this.xx<0?this.xy>=0:this.xy<0)&&(x=-x),this.rotate(t-180*Math.atan2(x*this.yx,x*this.xx)/Math.PI,s,h)},scaleTo:function(t,s){var h=Math.sqrt(this.xx*this.xx+this.yx*this.yx);return this.xx/=h,this.yx/=h,h=Math.sqrt(this.yy*this.yy+this.xy*this.xy),this.yy/=h,this.xy/=h,this.scale(t,s)},resizeTo:function(t,s){var h=this.width,x=this.height;return h&&x?this.scaleTo(t/h,s/x):this},inversePoint:function(t,s){var h=this.xx,x=this.yx,y=this.xy,n=this.yy,o=this.x,u=this.y,f=x*y-h*n;return 0==f?null:{x:(n*(o-t)+y*(s-u))/f,y:(h*(u-s)+x*(t-o))/f}},point:function(t,s){return{x:this.xx*t+this.xy*s+this.x,y:this.yx*t+this.yy*s+this.y}}})},177,[175]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);function c(t,c){var s=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);c&&(n=n.filter(function(c){return Object.getOwnPropertyDescriptor(t,c).enumerable})),s.push.apply(s,n)}return s}var s=r(d[1]),n={};n.UIView={pointerEvents:!0,accessible:!0,accessibilityActions:!0,accessibilityLabel:!0,accessibilityComponentType:!0,accessibilityLiveRegion:!0,accessibilityRole:!0,accessibilityStates:!0,accessibilityTraits:!0,accessibilityHint:!0,importantForAccessibility:!0,nativeID:!0,testID:!0,renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,onLayout:!0,onAccessibilityAction:!0,onAccessibilityTap:!0,onMagicTap:!0,onAccessibilityEscape:!0,collapsable:!0,needsOffscreenAlphaCompositing:!0,style:s},n.RCTView=(function(s){for(var n=1;n4?p-4:0),l=4;l5?b-5:0),k=5;k4?s-4:0),p=4;p0,s=R&&R.length>0;return!o&&s?R[0]:o?E[0]:t}),P=N({NOT_RESPONDER:null,RESPONDER_INACTIVE_PRESS_IN:null,RESPONDER_INACTIVE_PRESS_OUT:null,RESPONDER_ACTIVE_PRESS_IN:null,RESPONDER_ACTIVE_PRESS_OUT:null,RESPONDER_ACTIVE_LONG_PRESS_IN:null,RESPONDER_ACTIVE_LONG_PRESS_OUT:null,ERROR:null}),T={NOT_RESPONDER:!1,RESPONDER_INACTIVE_PRESS_IN:!1,RESPONDER_INACTIVE_PRESS_OUT:!1,RESPONDER_ACTIVE_PRESS_IN:!1,RESPONDER_ACTIVE_PRESS_OUT:!1,RESPONDER_ACTIVE_LONG_PRESS_IN:!1,RESPONDER_ACTIVE_LONG_PRESS_OUT:!1,ERROR:!1},c=o({},T,{RESPONDER_ACTIVE_PRESS_OUT:!0,RESPONDER_ACTIVE_PRESS_IN:!0}),D=o({},T,{RESPONDER_INACTIVE_PRESS_IN:!0,RESPONDER_ACTIVE_PRESS_IN:!0,RESPONDER_ACTIVE_LONG_PRESS_IN:!0}),A=o({},T,{RESPONDER_ACTIVE_LONG_PRESS_IN:!0}),I=N({DELAY:null,RESPONDER_GRANT:null,RESPONDER_RELEASE:null,RESPONDER_TERMINATED:null,ENTER_PRESS_RECT:null,LEAVE_PRESS_RECT:null,LONG_PRESS_DETECTED:null}),b={NOT_RESPONDER:{DELAY:P.ERROR,RESPONDER_GRANT:P.RESPONDER_INACTIVE_PRESS_IN,RESPONDER_RELEASE:P.ERROR,RESPONDER_TERMINATED:P.ERROR,ENTER_PRESS_RECT:P.ERROR,LEAVE_PRESS_RECT:P.ERROR,LONG_PRESS_DETECTED:P.ERROR},RESPONDER_INACTIVE_PRESS_IN:{DELAY:P.RESPONDER_ACTIVE_PRESS_IN,RESPONDER_GRANT:P.ERROR,RESPONDER_RELEASE:P.NOT_RESPONDER,RESPONDER_TERMINATED:P.NOT_RESPONDER,ENTER_PRESS_RECT:P.RESPONDER_INACTIVE_PRESS_IN,LEAVE_PRESS_RECT:P.RESPONDER_INACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:P.ERROR},RESPONDER_INACTIVE_PRESS_OUT:{DELAY:P.RESPONDER_ACTIVE_PRESS_OUT,RESPONDER_GRANT:P.ERROR,RESPONDER_RELEASE:P.NOT_RESPONDER,RESPONDER_TERMINATED:P.NOT_RESPONDER,ENTER_PRESS_RECT:P.RESPONDER_INACTIVE_PRESS_IN,LEAVE_PRESS_RECT:P.RESPONDER_INACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:P.ERROR},RESPONDER_ACTIVE_PRESS_IN:{DELAY:P.ERROR,RESPONDER_GRANT:P.ERROR,RESPONDER_RELEASE:P.NOT_RESPONDER,RESPONDER_TERMINATED:P.NOT_RESPONDER,ENTER_PRESS_RECT:P.RESPONDER_ACTIVE_PRESS_IN,LEAVE_PRESS_RECT:P.RESPONDER_ACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:P.RESPONDER_ACTIVE_LONG_PRESS_IN},RESPONDER_ACTIVE_PRESS_OUT:{DELAY:P.ERROR,RESPONDER_GRANT:P.ERROR,RESPONDER_RELEASE:P.NOT_RESPONDER,RESPONDER_TERMINATED:P.NOT_RESPONDER,ENTER_PRESS_RECT:P.RESPONDER_ACTIVE_PRESS_IN,LEAVE_PRESS_RECT:P.RESPONDER_ACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:P.ERROR},RESPONDER_ACTIVE_LONG_PRESS_IN:{DELAY:P.ERROR,RESPONDER_GRANT:P.ERROR,RESPONDER_RELEASE:P.NOT_RESPONDER,RESPONDER_TERMINATED:P.NOT_RESPONDER,ENTER_PRESS_RECT:P.RESPONDER_ACTIVE_LONG_PRESS_IN,LEAVE_PRESS_RECT:P.RESPONDER_ACTIVE_LONG_PRESS_OUT,LONG_PRESS_DETECTED:P.RESPONDER_ACTIVE_LONG_PRESS_IN},RESPONDER_ACTIVE_LONG_PRESS_OUT:{DELAY:P.ERROR,RESPONDER_GRANT:P.ERROR,RESPONDER_RELEASE:P.NOT_RESPONDER,RESPONDER_TERMINATED:P.NOT_RESPONDER,ENTER_PRESS_RECT:P.RESPONDER_ACTIVE_LONG_PRESS_IN,LEAVE_PRESS_RECT:P.RESPONDER_ACTIVE_LONG_PRESS_OUT,LONG_PRESS_DETECTED:P.ERROR},error:{DELAY:P.NOT_RESPONDER,RESPONDER_GRANT:P.RESPONDER_INACTIVE_PRESS_IN,RESPONDER_RELEASE:P.NOT_RESPONDER,RESPONDER_TERMINATED:P.NOT_RESPONDER,ENTER_PRESS_RECT:P.NOT_RESPONDER,LEAVE_PRESS_RECT:P.NOT_RESPONDER,LONG_PRESS_DETECTED:P.NOT_RESPONDER}},p={componentDidMount:function(){_.isTV&&(this._tvEventHandler=new u,this._tvEventHandler.enable(this,function(t,E){var R=S.findNodeHandle(t);E.dispatchConfig={},R===E.tag&&('focus'===E.eventType?t.touchableHandleFocus(E):'blur'===E.eventType?t.touchableHandleBlur(E):'select'===E.eventType&&t.touchableHandlePress&&!t.props.disabled&&t.touchableHandlePress(E))}))},componentWillUnmount:function(){this._tvEventHandler&&(this._tvEventHandler.disable(),delete this._tvEventHandler),this.touchableDelayTimeout&&clearTimeout(this.touchableDelayTimeout),this.longPressDelayTimeout&&clearTimeout(this.longPressDelayTimeout),this.pressOutDelayTimeout&&clearTimeout(this.pressOutDelayTimeout)},touchableGetInitialState:function(){return{touchable:{touchState:void 0,responderID:null}}},touchableHandleResponderTerminationRequest:function(){return!this.props.rejectResponderTermination},touchableHandleStartShouldSetResponder:function(){return!this.props.disabled},touchableLongPressCancelsPress:function(){return!0},touchableHandleResponderGrant:function(t){var E=t.currentTarget;t.persist(),this.pressOutDelayTimeout&&clearTimeout(this.pressOutDelayTimeout),this.pressOutDelayTimeout=null,this.state.touchable.touchState=P.NOT_RESPONDER,this.state.touchable.responderID=E,this._receiveSignal(I.RESPONDER_GRANT,t);var R=void 0!==this.touchableGetHighlightDelayMS?Math.max(this.touchableGetHighlightDelayMS(),0):130;0!==(R=isNaN(R)?130:R)?this.touchableDelayTimeout=setTimeout(this._handleDelay.bind(this,t),R):this._handleDelay(t);var o=void 0!==this.touchableGetLongPressDelayMS?Math.max(this.touchableGetLongPressDelayMS(),10):370;o=isNaN(o)?370:o,this.longPressDelayTimeout=setTimeout(this._handleLongDelay.bind(this,t),o+R)},touchableHandleResponderRelease:function(t){this.pressInLocation=null,this._receiveSignal(I.RESPONDER_RELEASE,t)},touchableHandleResponderTerminate:function(t){this.pressInLocation=null,this._receiveSignal(I.RESPONDER_TERMINATED,t)},touchableHandleResponderMove:function(t){if(this.state.touchable.positionOnActivate){var E=this.state.touchable.positionOnActivate,R=this.state.touchable.dimensionsOnActivate,o=this.touchableGetPressRectOffset?this.touchableGetPressRectOffset():{left:20,right:20,top:20,bottom:20},s=o.left,_=o.top,n=o.right,S=o.bottom,l=this.touchableGetHitSlop?this.touchableGetHitSlop():null;l&&(s+=l.left||0,_+=l.top||0,n+=l.right||0,S+=l.bottom||0);var u=O(t.nativeEvent),h=u&&u.pageX,N=u&&u.pageY;if(this.pressInLocation)this._getDistanceBetweenPoints(h,N,this.pressInLocation.pageX,this.pressInLocation.pageY)>10&&this._cancelLongPressDelayTimeout();if(h>E.left-s&&N>E.top-_&&h2?f-2:0),u=2;u1&&void 0!==arguments[1]?arguments[1]:{}).iterations;return E},event:function(t,n){return null},createAnimatedComponent:p,attachNativeEvent:o,forkEvent:u.forkEvent,unforkEvent:u.unforkEvent,Event:n,__PropsOnlyForTests:l}},199,[200,208,202,203,214,201,219,227]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),v=r(d[3]),o=r(d[4]),c=r(d[5]),_=r(d[3]).shouldUseNativeDriver;function l(t,n,_){var l=[];c(_[0]&&_[0].nativeEvent,'Native driven events only support animated values contained inside `nativeEvent`.'),(function t(n,v){if(n instanceof s)n.__makeNative(),l.push({nativeEventPath:v,animatedValueTag:n.__getNativeTag()});else if('object'==typeof n)for(var o in n)t(n[o],v.concat(o))})(_[0].nativeEvent,[]);var h=o.findNodeHandle(t);return l.forEach(function(t){v.API.addAnimatedEventToView(h,n,t)}),{detach:function(){l.forEach(function(t){v.API.removeAnimatedEventFromView(h,n,t.animatedValueTag)})}}}var h=(function(){function v(n){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t(this,v),this._listeners=[],this._argMapping=n,s.listener&&this.__addListener(s.listener),this._callListeners=this._callListeners.bind(this),this._attachedEvent=null,this.__isNative=_(s)}return n(v,[{key:"__addListener",value:function(t){this._listeners.push(t)}},{key:"__removeListener",value:function(t){this._listeners=this._listeners.filter(function(n){return n!==t})}},{key:"__attach",value:function(t,n){c(this.__isNative,'Only native driven events need to be attached.'),this._attachedEvent=l(t,n,this._argMapping)}},{key:"__detach",value:function(t,n){c(this.__isNative,'Only native driven events need to be detached.'),this._attachedEvent&&this._attachedEvent.detach()}},{key:"__getHandler",value:function(){var t=this;return this.__isNative?this._callListeners:function(){for(var n=arguments.length,v=new Array(n),o=0;oo){if('identity'===f)return h;'clamp'===f&&(h=o)}return u===p?u:n===o?t<=n?u:p:(n===-1/0?h=-h:o===1/0?h-=n:h=(h-n)/(o-n),h=c(h),u===-1/0?h=-h:p===1/0?h+=u:h=h*(p-u)+u,h)}function O(t){var n=y(t);return null===n?t:"rgba("+((4278190080&(n=n||0))>>>24)+", "+((16711680&n)>>>16)+", "+((65280&n)>>>8)+", "+(255&n)/255+")"}var k=/[0-9\.-]+/g;function j(t){var n=t.outputRange;_(n.length>=2,'Bad output range'),w(n=n.map(O));var o=n[0].match(k).map(function(){return[]});n.forEach(function(t){t.match(k).forEach(function(t,n){o[n].push(+t)})});var u,p=n[0].match(k).map(function(n,u){return R(h({},t,{outputRange:o[u]}))}),c='string'==typeof(u=n[0])&&u.startsWith('rgb');return function(t){var o=0;return n[0].replace(k,function(){var n=+p[o++](t),u=c&&o<4?Math.round(n):Math.round(1e3*n)/1e3;return String(u)})}}function w(t){for(var n=t[0].replace(k,''),o=1;o=t);++o);return o-1}function D(t){_(t.length>=2,'inputRange must have at least 2 elements');for(var n=1;n=t[n-1],'inputRange must be monotonically non-decreasing '+t)}function C(t,n){_(n.length>=2,t+' must have at least 2 elements'),_(2!==n.length||n[0]!==-1/0||n[1]!==1/0,t+'cannot be ]-infinity;+infinity[ '+n)}var E=(function(l){function f(n,p){var c;return t(this,f),(c=o(this,u(f).call(this)))._parent=n,c._config=p,c._interpolation=R(p),c}return c(f,s),n(f,[{key:"__makeNative",value:function(){this._parent.__makeNative(),p(u(f.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){var t=this._parent.__getValue();return _('number'==typeof t,'Cannot interpolate an input which is not a number.'),this._interpolation(t)}},{key:"interpolate",value:function(t){return new f(this,t)}},{key:"__attach",value:function(){this._parent.__addChild(this)}},{key:"__detach",value:function(){this._parent.__removeChild(this),p(u(f.prototype),"__detach",this).call(this)}},{key:"__transformDataType",value:function(t){return t.map(v.transformDataType)}},{key:"__getNativeConfig",value:function(){return{inputRange:this._config.inputRange,outputRange:this.__transformDataType(this._config.outputRange),extrapolateLeft:this._config.extrapolateLeft||this._config.extrapolate||'extend',extrapolateRight:this._config.extrapolateRight||this._config.extrapolate||'extend',type:'interpolation'}}}]),f})();E.__createInterpolation=R,m.exports=E},202,[8,9,10,13,46,14,53,203,205,204,17,66]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),_=r(d[2]),o=r(d[3]),u=(function(){function u(){t(this,u)}return n(u,[{key:"__attach",value:function(){}},{key:"__detach",value:function(){this.__isNative&&null!=this.__nativeTag&&(_.API.dropAnimatedNode(this.__nativeTag),this.__nativeTag=void 0)}},{key:"__getValue",value:function(){}},{key:"__getAnimatedValue",value:function(){return this.__getValue()}},{key:"__addChild",value:function(t){}},{key:"__removeChild",value:function(t){}},{key:"__getChildren",value:function(){return[]}},{key:"__makeNative",value:function(){if(!this.__isNative)throw new Error('This node cannot be made a "native" animated node')}},{key:"__getNativeTag",value:function(){if(_.assertNativeAnimatedModule(),o(this.__isNative,'Attempt to get native tag from node not marked as "native"'),null==this.__nativeTag){var t=_.generateNewNodeTag();_.API.createAnimatedNode(t,this.__getNativeConfig()),this.__nativeTag=t}return this.__nativeTag}},{key:"__getNativeConfig",value:function(){throw new Error('This JS animated node type cannot be used as native animated node')}},{key:"toJSON",value:function(){return this.__getValue()}}]),u})();m.exports=u},203,[8,9,204,17]); -__d(function(g,r,i,a,m,e,d){'use strict';var t,n=r(d[0]).NativeAnimatedModule,o=r(d[1]),s=r(d[2]),u=1,c=1,f={createAnimatedNode:function(t,o){A(),n.createAnimatedNode(t,o)},startListeningToAnimatedNodeValue:function(t){A(),n.startListeningToAnimatedNodeValue(t)},stopListeningToAnimatedNodeValue:function(t){A(),n.stopListeningToAnimatedNodeValue(t)},connectAnimatedNodes:function(t,o){A(),n.connectAnimatedNodes(t,o)},disconnectAnimatedNodes:function(t,o){A(),n.disconnectAnimatedNodes(t,o)},startAnimatingNode:function(t,o,s,u){A(),n.startAnimatingNode(t,o,s,u)},stopAnimation:function(t){A(),n.stopAnimation(t)},setAnimatedNodeValue:function(t,o){A(),n.setAnimatedNodeValue(t,o)},setAnimatedNodeOffset:function(t,o){A(),n.setAnimatedNodeOffset(t,o)},flattenAnimatedNodeOffset:function(t){A(),n.flattenAnimatedNodeOffset(t)},extractAnimatedNodeOffset:function(t){A(),n.extractAnimatedNodeOffset(t)},connectAnimatedNodeToView:function(t,o){A(),n.connectAnimatedNodeToView(t,o)},disconnectAnimatedNodeFromView:function(t,o){A(),n.disconnectAnimatedNodeFromView(t,o)},dropAnimatedNode:function(t){A(),n.dropAnimatedNode(t)},addAnimatedEventToView:function(t,o,s){A(),n.addAnimatedEventToView(t,o,s)},removeAnimatedEventFromView:function(t,o,s){A(),n.removeAnimatedEventFromView(t,o,s)}},p={opacity:!0,transform:!0,borderRadius:!0,borderBottomEndRadius:!0,borderBottomLeftRadius:!0,borderBottomRightRadius:!0,borderBottomStartRadius:!0,borderTopEndRadius:!0,borderTopLeftRadius:!0,borderTopRightRadius:!0,borderTopStartRadius:!0,elevation:!0,shadowOpacity:!0,shadowRadius:!0,scaleX:!0,scaleY:!0,translateX:!0,translateY:!0},l={translateX:!0,translateY:!0,scale:!0,scaleX:!0,scaleY:!0,rotate:!0,rotateX:!0,rotateY:!0,perspective:!0},v={inputRange:!0,outputRange:!0,extrapolate:!0,extrapolateRight:!0,extrapolateLeft:!0};function A(){s(n,'Native animated module is not available')}var N=!1;m.exports={API:f,addWhitelistedStyleProp:function(t){p[t]=!0},addWhitelistedTransformProp:function(t){l[t]=!0},addWhitelistedInterpolationParam:function(t){v[t]=!0},validateStyles:function(t){for(var n in t)if(!p.hasOwnProperty(n))throw new Error("Style property '"+n+"' is not supported by native animated module")},validateTransform:function(t){t.forEach(function(t){if(!l.hasOwnProperty(t.property))throw new Error("Property '"+t.property+"' is not supported by native animated module")})},validateInterpolation:function(t){for(var n in t)if(!v.hasOwnProperty(n))throw new Error("Interpolation property '"+n+"' is not supported by native animated module")},generateNewNodeTag:function(){return u++},generateNewAnimationId:function(){return c++},assertNativeAnimatedModule:A,shouldUseNativeDriver:function(t){return t.useNativeDriver&&!n?(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`. More info: https://github.com/facebook/react-native/issues/11094#issuecomment-263240420"),N=!0),!1):t.useNativeDriver||!1},transformDataType:function(t){return'string'!=typeof t?t:/deg$/.test(t)?(parseFloat(t)||0)*Math.PI/180:parseFloat(t)||0},get nativeEventEmitter(){return t||(t=new o(n)),t}}},204,[22,123,17]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),_=r(d[1]),n=r(d[2]),h=r(d[3]),s=r(d[4]),c=r(d[5]),o=r(d[6]),l=(function(l){function v(){var _;return t(this,v),(_=n(this,h(v).call(this)))._children=[],_}return s(v,c),_(v,[{key:"__makeNative",value:function(){if(!this.__isNative){this.__isNative=!0;var t=this._children,_=Array.isArray(t),n=0;for(t=_?t:t["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var h;if(_){if(n>=t.length)break;h=t[n++]}else{if((n=t.next()).done)break;h=n.value}var s=h;s.__makeNative(),o.API.connectAnimatedNodes(this.__getNativeTag(),s.__getNativeTag())}}}},{key:"__addChild",value:function(t){0===this._children.length&&this.__attach(),this._children.push(t),this.__isNative&&(t.__makeNative(),o.API.connectAnimatedNodes(this.__getNativeTag(),t.__getNativeTag()))}},{key:"__removeChild",value:function(t){var _=this._children.indexOf(t);-1!==_?(this.__isNative&&t.__isNative&&o.API.disconnectAnimatedNodes(this.__getNativeTag(),t.__getNativeTag()),this._children.splice(_,1),0===this._children.length&&this.__detach()):console.warn("Trying to remove a child that doesn't exist")}},{key:"__getChildren",value:function(){return this._children}}]),v})();m.exports=l},205,[8,9,10,13,14,203,204]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]),o=r(d[2]),c=(r(d[3]),r(d[4])),s=r(d[5]),u=new t,l={Events:s({interactionStart:!0,interactionComplete:!0}),runAfterInteractions:function(n){var t=[],o=new Promise(function(o){k(),n&&t.push(n),t.push({run:o,name:'resolve '+(n&&n.name||'?')}),h.enqueueTasks(t)});return{then:o.then.bind(o),done:function(){if(o.done)return o.done.apply(o,arguments);console.warn('Tried to call done when not supported by current Promise implementation.')},cancel:function(){h.cancelTasks(t)}}},createInteractionHandle:function(){k();var n=++T;return p.add(n),n},clearInteractionHandle:function(n){c(!!n,'Must provide a handle to clear.'),k(),p.delete(n),v.add(n)},addListener:u.addListener.bind(u),setDeadline:function(n){E=n}},f=new Set,p=new Set,v=new Set,h=new o({onMoreTasks:k}),w=0,T=0,E=-1;function k(){w||(w=E>0?setTimeout(S,0):setImmediate(S))}function S(){w=0;var t=f.size;p.forEach(function(n){return f.add(n)}),v.forEach(function(n){return f.delete(n)});var o=f.size;if(0!==t&&0===o?u.emit(l.Events.interactionComplete):0===t&&0!==o&&u.emit(l.Events.interactionStart),0===o)for(;h.hasTasksToProcess();)if(h.processNext(),E>0&&n.getEventLoopRunningTime()>=E){k();break}p.clear(),v.clear()}m.exports=l},206,[30,48,207,152,17,193]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),u=r(d[2]);function s(t,n){var u=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);n&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),u.push.apply(u,s)}return u}function o(n){for(var u=1;u0||0===n})}},{key:"hasTasksToProcess",value:function(){return this._getCurrentQueue().length>0}},{key:"processNext",value:function(){var t=this._getCurrentQueue();if(t.length){var n=t.shift();try{n.gen?this._genPromise(n):n.run?n.run():(c('function'==typeof n,'Expected Function, SimpleTask, or PromiseTask, but got:\n'+JSON.stringify(n,null,2)),n())}catch(t){throw t.message='TaskQueue: Error with task '+(n.name||'')+': '+t.message,t}}}},{key:"_getCurrentQueue",value:function(){var t=this._queueStack.length-1,n=this._queueStack[t];return n.popable&&0===n.tasks.length&&this._queueStack.length>1?(this._queueStack.pop(),this._getCurrentQueue()):n.tasks}},{key:"_genPromise",value:function(t){var n=this;this._queueStack.push({tasks:[],popable:!1});var u=this._queueStack.length-1;t.gen().then(function(){n._queueStack[u].popable=!0,n.hasTasksToProcess()&&n._onMoreTasks()}).catch(function(n){throw n.message="TaskQueue: Error resolving Promise in task "+t.name+": "+n.message,n}).done()}}]),t})();m.exports=h},207,[53,8,9,152,17]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);function t(n,t){var o=Object.keys(n);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(n);t&&(u=u.filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable})),o.push.apply(o,u)}return o}function o(o){for(var u=1;u1&&void 0!==arguments[1]?arguments[1]:{}).iterations,o=void 0===t?-1:t,u=!1,s=0;return{start:function(t){n&&0!==o?n._isUsingNativeDriver()?n._startNativeLoop(o):(function c(){var f=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{finished:!0};u||s===o||!1===f.finished?t&&t(f):(s++,n.reset(),n.start(c))})():t&&t({finished:!0})},stop:function(){u=!0,n.stop()},reset:function(){s=0,u=!1,n.reset()},_startNativeLoop:function(){throw new Error('Loops run using the native driver cannot contain Animated.loop animations')},_isUsingNativeDriver:function(){return n._isUsingNativeDriver()}}},event:function(n,t){var o=new s(n,t);return o.__isNative?o:o.__getHandler()},createAnimatedComponent:j,attachNativeEvent:c,forkEvent:function(n,t){return n?n instanceof s?(n.__addListener(t),n):function(){'function'==typeof n&&n.apply(void 0,arguments),t.apply(void 0,arguments)}:t},unforkEvent:function(n,t){n&&n instanceof s&&n.__removeListener(t)},Event:s,__PropsOnlyForTests:y}},208,[53,200,209,210,211,202,212,213,203,214,217,218,201,219,220,222,224,227]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),_=r(d[1]),n=r(d[2]),h=r(d[3]),u=r(d[4]),s=r(d[5]),o=r(d[6]),l=(r(d[7]),r(d[8])),v=r(d[9]),c=(function(c){function f(_,u){var s;return t(this,f),(s=n(this,h(f).call(this)))._a='number'==typeof _?new l(_):_,s._b='number'==typeof u?new l(u):u,s}return s(f,v),_(f,[{key:"__makeNative",value:function(){this._a.__makeNative(),this._b.__makeNative(),u(h(f.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){return this._a.__getValue()+this._b.__getValue()}},{key:"interpolate",value:function(t){return new o(this,t)}},{key:"__attach",value:function(){this._a.__addChild(this),this._b.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),this._b.__removeChild(this),u(h(f.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'addition',input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}]),f})();m.exports=c},209,[8,9,10,13,46,14,202,203,201,205]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),_=r(d[1]),n=r(d[2]),u=r(d[3]),h=r(d[4]),s=r(d[5]),l=r(d[6]),v=(r(d[7]),r(d[8])),c=(function(c){function o(_,h,s){var l;return t(this,o),(l=n(this,u(o).call(this)))._a=_,l._min=h,l._max=s,l._value=l._lastValue=l._a.__getValue(),l}return s(o,v),_(o,[{key:"__makeNative",value:function(){this._a.__makeNative(),h(u(o.prototype),"__makeNative",this).call(this)}},{key:"interpolate",value:function(t){return new l(this,t)}},{key:"__getValue",value:function(){var t=this._a.__getValue(),_=t-this._lastValue;return this._lastValue=t,this._value=Math.min(Math.max(this._value+_,this._min),this._max),this._value}},{key:"__attach",value:function(){this._a.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),h(u(o.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'diffclamp',input:this._a.__getNativeTag(),min:this._min,max:this._max}}}]),o})();m.exports=c},210,[8,9,10,13,46,14,202,203,205]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),_=r(d[1]),n=r(d[2]),h=r(d[3]),s=r(d[4]),o=r(d[5]),u=r(d[6]),l=(r(d[7]),r(d[8])),v=r(d[9]),c=(function(c){function f(_,s){var o;return t(this,f),(o=n(this,h(f).call(this)))._a='number'==typeof _?new l(_):_,o._b='number'==typeof s?new l(s):s,o}return o(f,v),_(f,[{key:"__makeNative",value:function(){this._a.__makeNative(),this._b.__makeNative(),s(h(f.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){var t=this._a.__getValue(),_=this._b.__getValue();return 0===_&&console.error('Detected division by zero in AnimatedDivision'),t/_}},{key:"interpolate",value:function(t){return new u(this,t)}},{key:"__attach",value:function(){this._a.__addChild(this),this._b.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),this._b.__removeChild(this),s(h(f.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'division',input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}]),f})();m.exports=c},211,[8,9,10,13,46,14,202,203,201,205]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),u=r(d[1]),_=r(d[2]),s=r(d[3]),n=r(d[4]),h=r(d[5]),l=r(d[6]),o=(r(d[7]),r(d[8])),c=(function(c){function v(u,n){var h;return t(this,v),(h=_(this,s(v).call(this)))._a=u,h._modulus=n,h}return h(v,o),u(v,[{key:"__makeNative",value:function(){this._a.__makeNative(),n(s(v.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){return(this._a.__getValue()%this._modulus+this._modulus)%this._modulus}},{key:"interpolate",value:function(t){return new l(this,t)}},{key:"__attach",value:function(){this._a.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),n(s(v.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'modulus',input:this._a.__getNativeTag(),modulus:this._modulus}}}]),v})();m.exports=c},212,[8,9,10,13,46,14,202,203,205]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),_=r(d[1]),n=r(d[2]),h=r(d[3]),u=r(d[4]),s=r(d[5]),l=r(d[6]),o=(r(d[7]),r(d[8])),c=r(d[9]),v=(function(v){function f(_,u){var s;return t(this,f),(s=n(this,h(f).call(this)))._a='number'==typeof _?new o(_):_,s._b='number'==typeof u?new o(u):u,s}return s(f,c),_(f,[{key:"__makeNative",value:function(){this._a.__makeNative(),this._b.__makeNative(),u(h(f.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){return this._a.__getValue()*this._b.__getValue()}},{key:"interpolate",value:function(t){return new l(this,t)}},{key:"__attach",value:function(){this._a.__addChild(this),this._b.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),this._b.__removeChild(this),u(h(f.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'multiplication',input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}]),f})();m.exports=v},213,[8,9,10,13,46,14,202,203,201,205]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),_=r(d[4]),c=r(d[5]),v=r(d[6]);function p(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);n&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,s)}return o}function h(n){for(var o=1;o0,'Stiffness value must be greater than 0'),c(h._damping>0,'Damping value must be greater than 0'),c(h._mass>0,'Mass value must be greater than 0'),h}return _(y,l),s(y,[{key:"__getNativeAnimationConfig",value:function(){return{type:'spring',overshootClamping:this._overshootClamping,restDisplacementThreshold:this._restDisplacementThreshold,restSpeedThreshold:this._restSpeedThreshold,stiffness:this._stiffness,damping:this._damping,mass:this._mass,initialVelocity:v(this._initialVelocity,this._lastVelocity),toValue:this._toValue,iterations:this.__iterations}}},{key:"start",value:function(t,s,n,o,h){var _=this;if(this.__active=!0,this._startPosition=t,this._lastPosition=this._startPosition,this._onUpdate=s,this.__onEnd=n,this._lastTime=Date.now(),this._frameTime=0,o instanceof y){var l=o.getInternalState();this._lastPosition=l.lastPosition,this._lastVelocity=l.lastVelocity,this._initialVelocity=this._lastVelocity,this._lastTime=l.lastTime}var f=function(){_._useNativeDriver?_.__startNativeAnimation(h):_.onUpdate()};this._delay?this._timeout=setTimeout(f,this._delay):f()}},{key:"getInternalState",value:function(){return{lastPosition:this._lastPosition,lastVelocity:this._lastVelocity,lastTime:this._lastTime}}},{key:"onUpdate",value:function(){var t=Date.now();t>this._lastTime+64&&(t=this._lastTime+64);var s=(t-this._lastTime)/1e3;this._frameTime+=s;var n=this._damping,o=this._mass,h=this._stiffness,_=-this._initialVelocity,l=n/(2*Math.sqrt(h*o)),f=Math.sqrt(h/o),c=f*Math.sqrt(1-l*l),u=this._toValue-this._startPosition,v=0,p=0,y=this._frameTime;if(l<1){var V=Math.exp(-l*f*y);v=this._toValue-V*((_+l*f*u)/c*Math.sin(c*y)+u*Math.cos(c*y)),p=l*f*V*(Math.sin(c*y)*(_+l*f*u)/c+u*Math.cos(c*y))-V*(Math.cos(c*y)*(_+l*f*u)-c*u*Math.sin(c*y))}else{var T=Math.exp(-f*y);v=this._toValue-T*(u+(_+f*u)*y),p=T*(_*(y*f-1)+y*u*(f*f))}if(this._lastTime=t,this._lastPosition=v,this._lastVelocity=p,this._onUpdate(v),this.__active){var b=!1;this._overshootClamping&&0!==this._stiffness&&(b=this._startPositionthis._toValue:v18&&A<=44?p(A):h(A),s(2*M-M*M,v,.01));return{stiffness:n(x),damping:t(B)}}}},223,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t,n=r(d[0]),s=r(d[1]),o=r(d[2]),_=r(d[3]),u=r(d[4]),h=r(d[5]),v=(r(d[6]),r(d[7]),r(d[8])),l=r(d[9]).shouldUseNativeDriver;function c(){if(!t){var n=r(d[10]);t=n.inOut(n.ease)}return t}var f=(function(t){function f(t){var s;return n(this,f),(s=o(this,_(f).call(this)))._toValue=t.toValue,s._easing=void 0!==t.easing?t.easing:c(),s._duration=void 0!==t.duration?t.duration:500,s._delay=void 0!==t.delay?t.delay:0,s.__iterations=void 0!==t.iterations?t.iterations:1,s.__isInteraction=void 0===t.isInteraction||t.isInteraction,s._useNativeDriver=l(t),s}return h(f,v),s(f,[{key:"__getNativeAnimationConfig",value:function(){for(var t=[],n=0;n=this._startTime+this._duration)return 0===this._duration?this._onUpdate(this._toValue):this._onUpdate(this._fromValue+this._easing(1)*(this._toValue-this._fromValue)),void this.__debouncedOnEnd({finished:!0});this._onUpdate(this._fromValue+this._easing((t-this._startTime)/this._duration)*(this._toValue-this._fromValue)),this.__active&&(this._animationFrame=requestAnimationFrame(this.onUpdate.bind(this)))}},{key:"stop",value:function(){u(_(f.prototype),"stop",this).call(this),this.__active=!1,clearTimeout(this._timeout),g.cancelAnimationFrame(this._animationFrame),this.__debouncedOnEnd({finished:!1})}}]),f})();m.exports=f},224,[8,9,10,13,46,14,201,219,221,204,225]); -__d(function(g,r,i,a,m,e,d){'use strict';var n,u=r(d[0]),t=r(d[1]),o=(function(){function o(){u(this,o)}return t(o,null,[{key:"step0",value:function(n){return n>0?1:0}},{key:"step1",value:function(n){return n>=1?1:0}},{key:"linear",value:function(n){return n}},{key:"ease",value:function(u){return n||(n=o.bezier(.42,0,1,1)),n(u)}},{key:"quad",value:function(n){return n*n}},{key:"cubic",value:function(n){return n*n*n}},{key:"poly",value:function(n){return function(u){return Math.pow(u,n)}}},{key:"sin",value:function(n){return 1-Math.cos(n*Math.PI/2)}},{key:"circle",value:function(n){return 1-Math.sqrt(1-n*n)}},{key:"exp",value:function(n){return Math.pow(2,10*(n-1))}},{key:"elastic",value:function(){var n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:1)*Math.PI;return function(u){return 1-Math.pow(Math.cos(u*Math.PI/2),3)*Math.cos(u*n)}}},{key:"back",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1.70158;return function(u){return u*u*((n+1)*u-n)}}},{key:"bounce",value:function(n){if(n<.36363636363636365)return 7.5625*n*n;if(n<.7272727272727273){var u=n-.5454545454545454;return 7.5625*u*u+.75}if(n<.9090909090909091){var t=n-.8181818181818182;return 7.5625*t*t+.9375}var o=n-.9545454545454546;return 7.5625*o*o+.984375}},{key:"bezier",value:function(n,u,t,o){return r(d[2])(n,u,t,o)}},{key:"in",value:function(n){return n}},{key:"out",value:function(n){return function(u){return 1-n(1-u)}}},{key:"inOut",value:function(n){return function(u){return u<.5?n(2*u)/2:1-n(2*(1-u))/2}}}]),o})();m.exports=o},225,[8,9,226]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=4,t=.001,u=1e-7,o=10,f=.1,c='function'==typeof Float32Array;function v(n,t){return 1-3*t+3*n}function s(n,t){return 3*t-6*n}function w(n){return 3*n}function l(n,t,u){return((v(t,u)*n+s(t,u))*n+w(t))*n}function y(n,t,u){return 3*v(t,u)*n*n+2*s(t,u)*n+w(t)}function b(n,t,f,c,v){var s,w,y=0,b=t,h=f;do{(s=l(w=b+(h-b)/2,c,v)-n)>0?h=w:b=w}while(Math.abs(s)>u&&++y=0&&n<=1&&o>=0&&o<=1))throw new Error('bezier x values must be in [0, 1] range');var s=c?new Float32Array(11):new Array(11);if(n!==u||o!==v)for(var w=0;w<11;++w)s[w]=l(w*f,n,o);function A(u){for(var c=0,v=1;10!==v&&s[v]<=u;++v)c+=f;var w=c+(u-s[--v])/(s[v+1]-s[v])*f,l=y(w,n,o);return l>=t?h(u,w,n,o):0===l?w:b(u,c,c+f,n,o)}return function(t){return n===u&&o===v?t:0===t?0:1===t?1:l(A(t),u,v)}}},226,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),p=r(d[4]),c=r(d[5]),_=r(d[6]).AnimatedEvent,h=r(d[7]),v=r(d[8]),l=r(d[9]),u=r(d[10]);m.exports=function(f){u('function'!=typeof f||f.prototype&&f.prototype.isReactComponent,"`createAnimatedComponent` does not support stateless functional components; use a class component instead.");var N=(function(l){function u(t){var o;return n(this,u),(o=s(this,p(u).call(this,t)))._invokeAnimatedPropsCallbackOnMount=!1,o._eventDetachers=[],o._animatedPropsCallback=function(){if(null==o._component)o._invokeAnimatedPropsCallbackOnMount=!0;else if(u.__skipSetNativeProps_FOR_TESTS_ONLY||'function'!=typeof o._component.setNativeProps)o.forceUpdate();else{if(o._propsAnimated.__isNative)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`");o._component.setNativeProps(o._propsAnimated.__getAnimatedValue())}},o._setComponentRef=function(t){o._prevComponent=o._component,o._component=t},o}return c(u,l),o(u,[{key:"componentWillUnmount",value:function(){this._propsAnimated&&this._propsAnimated.__detach(),this._detachNativeEvents()}},{key:"setNativeProps",value:function(t){this._component.setNativeProps(t)}},{key:"UNSAFE_componentWillMount",value:function(){this._attachProps(this.props)}},{key:"componentDidMount",value:function(){this._invokeAnimatedPropsCallbackOnMount&&(this._invokeAnimatedPropsCallbackOnMount=!1,this._animatedPropsCallback()),this._propsAnimated.setNativeView(this._component),this._attachNativeEvents()}},{key:"_attachNativeEvents",value:function(){var t=this,n=this._component.getScrollableNode?this._component.getScrollableNode():this._component,o=function(o){var s=t.props[o];s instanceof _&&s.__isNative&&(s.__attach(n,o),t._eventDetachers.push(function(){return s.__detach(n,o)}))};for(var s in this.props)o(s)}},{key:"_detachNativeEvents",value:function(){this._eventDetachers.forEach(function(t){return t()}),this._eventDetachers=[]}},{key:"_attachProps",value:function(t){var n=this._propsAnimated;this._propsAnimated=new h(t,this._animatedPropsCallback),n&&n.__detach()}},{key:"UNSAFE_componentWillReceiveProps",value:function(t){this._attachProps(t)}},{key:"componentDidUpdate",value:function(t){this._component!==this._prevComponent&&this._propsAnimated.setNativeView(this._component),this._component===this._prevComponent&&t===this.props||(this._detachNativeEvents(),this._attachNativeEvents())}},{key:"render",value:function(){var n=this._propsAnimated.__getValue();return v.createElement(f,t({},n,{ref:this._setComponentRef,collapsable:!this._propsAnimated.__isNative&&n.collapsable}))}},{key:"getNode",value:function(){return this._component}}]),u})(v.Component);N.__skipSetNativeProps_FOR_TESTS_ONLY=!1;var k=f.propTypes;return N.propTypes={style:function(t,n,o){if(k)for(var s in l)k[s]||void 0===t[s]||console.warn('You are setting the style `{ '+s+": ... }` as a prop. You should nest it in a style object. E.g. `{ style: { "+s+': ... } }`')}},N}},227,[25,8,9,10,13,14,200,214,55,77,17]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]);m.exports=s(t)},228,[229,227]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),l=r(d[4]),u=r(d[5]),c=r(d[6]);function f(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);n&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,s)}return o}function p(t){for(var n=1;n1){for(var s=[],u=0;u1?(w(Array.isArray(t),"FlatList: Encountered internal consistency error, expected each item to consist of an array with 1-%s columns; instead, received a single item.",u),t.map(function(t,o){return s(t,n*u+o)}).join(':')):s(t,n)},l._renderItem=function(t){var n=l.props,o=n.renderItem,s=n.numColumns,u=n.columnWrapperStyle;if(s>1){var c=t.item,f=t.index;return w(Array.isArray(c),'Expected array of items with numColumns > 1'),y.createElement(C,{style:b.compose(k.row,u)},c.map(function(n,l){var u=o({item:n,index:f*s+l,separators:t.separators});return u&&y.cloneElement(u,{key:l})}))}return o(t)},l._checkProps(l.props),l.props.viewabilityConfigCallbackPairs?l._virtualizedListPairs=l.props.viewabilityConfigCallbackPairs.map(function(t){return{viewabilityConfig:t.viewabilityConfig,onViewableItemsChanged:l._createOnViewableItemsChanged(t.onViewableItemsChanged)}}):l.props.onViewableItemsChanged&&l._virtualizedListPairs.push({viewabilityConfig:l.props.viewabilityConfig,onViewableItemsChanged:l._createOnViewableItemsChanged(l.props.onViewableItemsChanged)}),l}return u(f,c),l(f,[{key:"scrollToEnd",value:function(t){this._listRef&&this._listRef.scrollToEnd(t)}},{key:"scrollToIndex",value:function(t){this._listRef&&this._listRef.scrollToIndex(t)}},{key:"scrollToItem",value:function(t){this._listRef&&this._listRef.scrollToItem(t)}},{key:"scrollToOffset",value:function(t){this._listRef&&this._listRef.scrollToOffset(t)}},{key:"recordInteraction",value:function(){this._listRef&&this._listRef.recordInteraction()}},{key:"flashScrollIndicators",value:function(){this._listRef&&this._listRef.flashScrollIndicators()}},{key:"getScrollResponder",value:function(){if(this._listRef)return this._listRef.getScrollResponder()}},{key:"getScrollableNode",value:function(){if(this._listRef)return this._listRef.getScrollableNode()}},{key:"setNativeProps",value:function(t){this._listRef&&this._listRef.setNativeProps(t)}}]),l(f,[{key:"componentDidUpdate",value:function(t){w(t.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."),w(t.onViewableItemsChanged===this.props.onViewableItemsChanged,'Changing onViewableItemsChanged on the fly is not supported'),w(!h(t.viewabilityConfig,this.props.viewabilityConfig),'Changing viewabilityConfig on the fly is not supported'),w(t.viewabilityConfigCallbackPairs===this.props.viewabilityConfigCallbackPairs,'Changing viewabilityConfigCallbackPairs on the fly is not supported'),this._checkProps(this.props)}},{key:"_checkProps",value:function(t){var n=t.getItem,o=t.getItemCount,s=t.horizontal,l=t.numColumns,u=t.columnWrapperStyle,c=t.onViewableItemsChanged,f=t.viewabilityConfigCallbackPairs;w(!n&&!o,'FlatList does not support custom data formats.'),l>1?w(!s,'numColumns does not support horizontal.'):w(!u,'columnWrapperStyle not supported for single column lists'),w(!(c&&f),"FlatList does not support setting both onViewableItemsChanged and viewabilityConfigCallbackPairs.")}},{key:"_pushMultiColumnViewable",value:function(t,n){var o=this.props,s=o.numColumns,l=o.keyExtractor;n.item.forEach(function(o,u){w(null!=n.index,'Missing index!');var c=n.index*s+u;t.push(p({},n,{item:o,key:l(o,c),index:c}))})}},{key:"_createOnViewableItemsChanged",value:function(t){var n=this;return function(o){var s=n.props.numColumns;if(t)if(s>1){var l=[],u=[];o.viewableItems.forEach(function(t){return n._pushMultiColumnViewable(u,t)}),o.changed.forEach(function(t){return n._pushMultiColumnViewable(l,t)}),t({viewableItems:u,changed:l})}else t(o)}}},{key:"render",value:function(){return y.createElement(v,t({},this.props,{renderItem:this._renderItem,getItem:this._getItem,getItemCount:this._getItemCount,keyExtractor:this._keyExtractor,ref:this._captureRef,viewabilityConfigCallbackPairs:this._virtualizedListPairs}))}}]),f})(y.PureComponent);I.defaultProps=_;var k=b.create({row:{flexDirection:'row'}});m.exports=I},229,[25,8,10,13,9,14,53,54,157,55,84,230,59,17]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),n=r(d[2]),o=r(d[3]),l=r(d[4]),h=r(d[5]),c=r(d[6]),p=r(d[7]);function u(t,s){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);s&&(o=o.filter(function(s){return Object.getOwnPropertyDescriptor(t,s).enumerable})),n.push.apply(n,o)}return n}function f(t){for(var n=1;n0&&s>0&&null!=p.props.initialScrollIndex&&p.props.initialScrollIndex>0&&!p._hasDoneInitialScroll&&(p.scrollToIndex({animated:!1,index:p.props.initialScrollIndex}),p._hasDoneInitialScroll=!0),p.props.onContentSizeChange&&p.props.onContentSizeChange(t,s),p._scrollMetrics.contentLength=p._selectLength({height:s,width:t}),p._scheduleCellsToRenderUpdate(),p._maybeCallOnEndReached()},p._convertParentScrollMetrics=function(t){var s=t.offset-p._offsetFromParentVirtualizedList,n=t.visibleLength,o=s-p._scrollMetrics.offset;return{visibleLength:n,contentLength:p._scrollMetrics.contentLength,offset:s,dOffset:o}},p._onScroll=function(t){p._nestedChildLists.forEach(function(s){s.ref&&s.ref._onScroll(t)}),p.props.onScroll&&p.props.onScroll(t);var s=t.timeStamp,n=p._selectLength(t.nativeEvent.layoutMeasurement),o=p._selectLength(t.nativeEvent.contentSize),l=p._selectOffset(t.nativeEvent.contentOffset),h=l-p._scrollMetrics.offset;if(p._isNestedWithSameOrientation()){if(0===p._scrollMetrics.contentLength)return;var c=p._convertParentScrollMetrics({visibleLength:n,offset:l});n=c.visibleLength,o=c.contentLength,l=c.offset,h=c.dOffset}var u=p._scrollMetrics.timestamp?Math.max(1,s-p._scrollMetrics.timestamp):1,f=h/u;u>500&&p._scrollMetrics.dt>500&&o>5*n&&!p._hasWarned.perf&&(I("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.",{dt:u,prevDt:p._scrollMetrics.dt,contentLength:o}),p._hasWarned.perf=!0),p._scrollMetrics={contentLength:o,dt:u,dOffset:h,offset:l,timestamp:s,velocity:f,visibleLength:n},p._updateViewableItems(p.props.data),p.props&&(p._maybeCallOnEndReached(),0!==f&&p._fillRateHelper.activate(),p._computeBlankness(),p._scheduleCellsToRenderUpdate())},p._onScrollBeginDrag=function(t){p._nestedChildLists.forEach(function(s){s.ref&&s.ref._onScrollBeginDrag(t)}),p._viewabilityTuples.forEach(function(t){t.viewabilityHelper.recordInteraction()}),p._hasInteracted=!0,p.props.onScrollBeginDrag&&p.props.onScrollBeginDrag(t)},p._onScrollEndDrag=function(t){var s=t.nativeEvent.velocity;s&&(p._scrollMetrics.velocity=p._selectOffset(s)),p._computeBlankness(),p.props.onScrollEndDrag&&p.props.onScrollEndDrag(t)},p._onMomentumScrollEnd=function(t){p._scrollMetrics.velocity=0,p._computeBlankness(),p.props.onMomentumScrollEnd&&p.props.onMomentumScrollEnd(t)},p._updateCellsToRender=function(){var t=p.props,s=t.data,n=t.getItemCount,o=t.onEndReachedThreshold,l=p._isVirtualizationDisabled();p._updateViewableItems(s),s&&p.setState(function(t){var h;if(l){var c=p._scrollMetrics,u=c.contentLength,f=c.offset,_=c.visibleLength,y=u-_-f0)for(var v=h.first,C=h.last,L=v;L<=C;L++){var b=p._indicesToKeys.get(L),S=b&&p._cellKeysToChildListKeys.get(b);if(S){var M=!1,x=S,k=Array.isArray(x),E=0;for(x=k?x:x["function"==typeof Symbol&&"function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var I;if(k){if(E>=x.length)break;I=x[E++]}else{if((E=x.next()).done)break;I=E.value}var w=I,T=p._nestedChildLists.get(w);if(T&&T.ref&&T.ref.hasMore()){M=!0;break}}if(M){h.last=L;break}}}return h})},p._createViewToken=function(t,s){var n=p.props,o=n.data,l=n.getItem,h=n.keyExtractor,c=l(o,t);return{index:t,item:c,key:h(c,t),isViewable:s}},p._getFrameMetricsApprox=function(t){var s=p._getFrameMetrics(t);if(s&&s.index===t)return s;var n=p.props.getItemLayout;return w(!n,'Should not have to estimate frames when a measurement metrics function is provided'),{length:p._averageCellLength,offset:p._averageCellLength*t}},p._getFrameMetrics=function(t){var s=p.props,n=s.data,o=s.getItem,l=s.getItemCount,h=s.getItemLayout,c=s.keyExtractor;w(l(n)>t,'Tried to get frame for out of range index '+t);var u=o(n,t),f=u&&p._frames[c(u,t)];return f&&f.index===t||h&&(f=h(n,t)),f},w(!s.onScroll||!s.onScroll.__isNative,"Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent to support native onScroll events with useNativeDriver"),w(s.windowSize>0,'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.'),p._fillRateHelper=new y(p._getFrameMetrics),p._updateCellsToRenderBatcher=new _(p._updateCellsToRender,p.props.updateCellsBatchingPeriod),p.props.viewabilityConfigCallbackPairs?p._viewabilityTuples=p.props.viewabilityConfigCallbackPairs.map(function(t){return{viewabilityHelper:new E(t.viewabilityConfig),onViewableItemsChanged:t.onViewableItemsChanged}}):p.props.onViewableItemsChanged&&p._viewabilityTuples.push({viewabilityHelper:new E(p.props.viewabilityConfig),onViewableItemsChanged:p.props.onViewableItemsChanged});var u={first:p.props.initialScrollIndex||0,last:Math.min(p.props.getItemCount(p.props.data),(p.props.initialScrollIndex||0)+p.props.initialNumToRender)-1};if(p._isNestedWithSameOrientation()){var L=p.context.virtualizedList.getNestedChildState(p.props.listKey||p._getCellKey());L&&(u=L,p.state=L,p._frames=L.frames)}return p.state=u,p}return p(v,u),c(v,[{key:"scrollToEnd",value:function(t){var s=!t||t.animated,n=this.props.getItemCount(this.props.data)-1,o=this._getFrameMetricsApprox(n),l=Math.max(0,o.offset+o.length+this._footerLength-this._scrollMetrics.visibleLength);this._scrollRef.scrollTo(this.props.horizontal?{x:l,animated:s}:{y:l,animated:s})}},{key:"scrollToIndex",value:function(t){var s=this.props,n=s.data,o=s.horizontal,l=s.getItemCount,h=s.getItemLayout,c=s.onScrollToIndexFailed,p=t.animated,u=t.index,f=t.viewOffset,_=t.viewPosition;if(w(u>=0&&uthis._highestMeasuredFrameIndex)return w(!!c,"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."),void c({averageItemLength:this._averageCellLength,highestMeasuredFrameIndex:this._highestMeasuredFrameIndex,index:u});var y=this._getFrameMetricsApprox(u),v=Math.max(0,y.offset-(_||0)*(this._scrollMetrics.visibleLength-y.length))-(f||0);this._scrollRef.scrollTo(o?{x:v,animated:p}:{y:v,animated:p})}},{key:"scrollToItem",value:function(t){for(var s=t.item,n=this.props,o=n.data,l=n.getItem,h=(0,n.getItemCount)(o),c=0;c0){T=!1,O='';var E=u?'width':'height',I=this.props.initialScrollIndex?-1:this.props.initialNumToRender-1,w=this.state,R=w.first,z=w.last;this._pushCells(v,b,L,0,I,y);var F=Math.max(I+1,R);if(!_&&R>I+1){var N=!1;if(L.size>0)for(var V=h?1:0,A=F-1;A>I;A--)if(L.has(A+V)){var D=this._getFrameMetricsApprox(I),H=this._getFrameMetricsApprox(A),B=H.offset-D.offset-(this.props.initialScrollIndex?0:D.length);v.push(C.createElement(k,{key:"$sticky_lead",style:s({},E,B)})),this._pushCells(v,b,L,A,A,y);var U=this._getFrameMetricsApprox(R).offset-(H.offset+H.length);v.push(C.createElement(k,{key:"$sticky_trail",style:s({},E,U)})),N=!0;break}if(!N){var W=this._getFrameMetricsApprox(I),j=this._getFrameMetricsApprox(R).offset-(W.offset+W.length);v.push(C.createElement(k,{key:"$lead_spacer",style:s({},E,j)}))}}if(this._pushCells(v,b,L,F,z,y),!this._hasWarned.keys&&T&&(console.warn("VirtualizedList: missing keys for items, make sure to specify a key property on each item or provide a custom keyExtractor.",O),this._hasWarned.keys=!0),!_&&z=p.length)break;_=p[f++]}else{if((f=p.next()).done)break;_=f.value}var y=_,v=this._nestedChildLists.get(y);v&&v.ref&&v.ref.measureLayoutRelativeToContainingList()}}this._computeBlankness()}},{key:"measureLayoutRelativeToContainingList",value:function(){var t=this;try{x.measureLayout(L.findNodeHandle(this),L.findNodeHandle(this.context.virtualizedList.getOutermostParentListRef()),function(t){console.warn("VirtualizedList: Encountered an error while measuring a list's offset from its containing VirtualizedList.")},function(s,n,o,l){t._offsetFromParentVirtualizedList=t._selectOffset({x:s,y:n}),t._scrollMetrics.contentLength=t._selectLength({width:o,height:l});var h=t._convertParentScrollMetrics(t.context.virtualizedList.getScrollMetrics());t._scrollMetrics.visibleLength=h.visibleLength,t._scrollMetrics.offset=h.offset})}catch(t){console.warn('measureLayoutRelativeToContainingList threw an error',t.stack)}}},{key:"_renderDebugOverlay",value:function(){for(var t=this._scrollMetrics.visibleLength/(this._scrollMetrics.contentLength||1),s=[],n=this.props.getItemCount(this.props.data),o=0;o0){var _=l-this._getFrameMetricsApprox(s).offset;u=u||_<0||c<-2&&_2&&y0&&void 0!==arguments[0]?arguments[0]:{abort:!1};this._taskHandle&&(this._taskHandle.cancel(),t.abort||this._callback(),this._taskHandle=null)}},{key:"schedule",value:function(){var t=this;if(!this._taskHandle){var n=setTimeout(function(){t._taskHandle=l.runAfterInteractions(function(){t._taskHandle=null,t._callback()})},this._delay);this._taskHandle={cancel:function(){return clearTimeout(n)}}}}}]),s})();m.exports=s},231,[8,9,206]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]);function l(t,n){var s=Object.keys(t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);n&&(l=l.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),s.push.apply(s,l)}return s}function o(n){for(var s=1;sMath.random(),this._resetData()}return n(t,null,[{key:"addListener",value:function(t){return h(null!==y,'Call `FillRateHelper.setSampleRate` before `addListener`.'),f.push(t),{remove:function(){f=f.filter(function(n){return t!==n})}}}},{key:"setSampleRate",value:function(t){y=t}},{key:"setMinSampleCount",value:function(t){c=t}}]),n(t,[{key:"activate",value:function(){this._enabled&&null==this._samplesStartTime&&(this._samplesStartTime=_())}},{key:"deactivateAndFlush",value:function(){if(this._enabled){var t=this._samplesStartTime;if(null!=t)if(this._info.sample_count0&&(y=Math.min(u,Math.max(0,b.offset-o)));for(var k=0,v=n.last,S=this._getFrameMetrics(v);v>=n.first&&(!S||!S.inLayout);)S=this._getFrameMetrics(v),v--;if(S&&v0?(this._anyBlankStartTime=c,this._info.any_blank_speed_sum+=f,this._info.any_blank_count++,this._info.pixels_blank+=T,O>.5&&(this._mostlyBlankStartTime=c,this._info.mostly_blank_count++)):(f<.01||Math.abs(l)<1)&&this.deactivateAndFlush(),O}},{key:"enabled",value:function(){return this._enabled}},{key:"_resetData",value:function(){this._anyBlankStartTime=null,this._info=new u,this._mostlyBlankStartTime=null,this._samplesStartTime=null}}]),t})();m.exports=p},232,[53,9,8,112,19]); -__d(function(g,r,i,a,m,e,d){'use strict';var s,t=r(d[0]),n=r(d[1]),o=r(d[2]),h=r(d[3]),f=r(d[4]),p=r(d[5]),l=r(d[6]),c=(r(d[7]),r(d[8])),u=(r(d[9]).NativeComponent,r(d[10]),r(d[11]));r(d[12]);s={SIZE:{}};var v=(function(s){function v(){var s,t;o(this,v);for(var n=arguments.length,h=new Array(n),l=0;l0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;console.warn('`scrollWithoutAnimationTo` is deprecated. Use `scrollTo` instead'),this.scrollTo({x:n,y:t,animated:!1})}},{key:"flashScrollIndicators",value:function(){this._scrollResponder.scrollResponderFlashScrollIndicators()}},{key:"_getKeyForIndex",value:function(t,n){var o=n[t];return o&&o.key}},{key:"_updateAnimatedNodeAttachment",value:function(){this._scrollAnimatedValueAttachment&&this._scrollAnimatedValueAttachment.detach(),this.props.stickyHeaderIndices&&this.props.stickyHeaderIndices.length>0&&(this._scrollAnimatedValueAttachment=v.attachNativeEvent(this._scrollViewRef,'onScroll',[{nativeEvent:{contentOffset:{y:this._scrollAnimatedValue}}}]))}},{key:"_setStickyHeaderRef",value:function(t,n){n?this._stickyHeaderRefs.set(t,n):this._stickyHeaderRefs.delete(t)}},{key:"_onStickyHeaderLayout",value:function(t,n,o){var l=this.props.stickyHeaderIndices;if(l){var s=S.Children.toArray(this.props.children);if(o===this._getKeyForIndex(t,s)){var c=n.nativeEvent.layout.y;this._headerLayoutYs.set(o,c);var p=l[l.indexOf(t)-1];if(null!=p){var h=this._stickyHeaderRefs.get(this._getKeyForIndex(p,s));h&&h.setNextHeaderY(c)}}}}},{key:"render",value:function(){var n,o,l=this;o=R,T(void 0!==(n=y),'ScrollViewClass must not be undefined'),T(void 0!==o,'ScrollContentContainerViewClass must not be undefined');var s=[this.props.horizontal&&M.contentContainerHorizontal,this.props.contentContainerStyle],c={};this.props.onContentSizeChange&&(c={onLayout:this._handleContentOnLayout});var p=this.props.stickyHeaderIndices,h=this.props.children;if(null!=p&&p.length>0){var u=S.Children.toArray(this.props.children);h=u.map(function(t,n){var o=t?p.indexOf(n):-1;if(o>-1){var s=t.key,c=p[o+1];return S.createElement(V,{key:s,ref:function(t){return l._setStickyHeaderRef(s,t)},nextHeaderLayoutY:l._headerLayoutYs.get(l._getKeyForIndex(c,u)),onLayout:function(t){return l._onStickyHeaderLayout(n,t,s)},scrollAnimatedValue:l._scrollAnimatedValue,inverted:l.props.invertStickyHeaders,scrollViewHeight:l.state.layoutHeight},t)}return t})}var v=p&&p.length>0,w=S.createElement(o,t({},c,{ref:this._setInnerViewRef,style:s,removeClippedSubviews:this.props.removeClippedSubviews,collapsable:!1}),h),H=void 0!==this.props.alwaysBounceHorizontal?this.props.alwaysBounceHorizontal:this.props.horizontal,k=void 0!==this.props.alwaysBounceVertical?this.props.alwaysBounceVertical:!this.props.horizontal,C=!!this.props.DEPRECATED_sendUpdatedChildFrames,b=this.props.horizontal?M.baseHorizontal:M.baseVertical,x=f({},this.props,{alwaysBounceHorizontal:H,alwaysBounceVertical:k,style:[b,this.props.style],onContentSizeChange:null,onLayout:this._handleLayout,onMomentumScrollBegin:this._scrollResponder.scrollResponderHandleMomentumScrollBegin,onMomentumScrollEnd:this._scrollResponder.scrollResponderHandleMomentumScrollEnd,onResponderGrant:this._scrollResponder.scrollResponderHandleResponderGrant,onResponderReject:this._scrollResponder.scrollResponderHandleResponderReject,onResponderRelease:this._scrollResponder.scrollResponderHandleResponderRelease,onResponderTerminate:this._scrollResponder.scrollResponderHandleTerminate,onResponderTerminationRequest:this._scrollResponder.scrollResponderHandleTerminationRequest,onScrollBeginDrag:this._scrollResponder.scrollResponderHandleScrollBeginDrag,onScrollEndDrag:this._scrollResponder.scrollResponderHandleScrollEndDrag,onScrollShouldSetResponder:this._scrollResponder.scrollResponderHandleScrollShouldSetResponder,onStartShouldSetResponder:this._scrollResponder.scrollResponderHandleStartShouldSetResponder,onStartShouldSetResponderCapture:this._scrollResponder.scrollResponderHandleStartShouldSetResponderCapture,onTouchEnd:this._scrollResponder.scrollResponderHandleTouchEnd,onTouchMove:this._scrollResponder.scrollResponderHandleTouchMove,onTouchStart:this._scrollResponder.scrollResponderHandleTouchStart,onTouchCancel:this._scrollResponder.scrollResponderHandleTouchCancel,onScroll:this._handleScroll,scrollBarThumbImage:A(this.props.scrollBarThumbImage),scrollEventThrottle:v?1:this.props.scrollEventThrottle,sendMomentumEvents:!(!this.props.onMomentumScrollBegin&&!this.props.onMomentumScrollEnd),DEPRECATED_sendUpdatedChildFrames:C,snapToStart:!1!==this.props.snapToStart,snapToEnd:!1!==this.props.snapToEnd,pagingEnabled:this.props.pagingEnabled&&null==this.props.snapToInterval&&null==this.props.snapToOffsets}),O=this.props.decelerationRate;null!=O&&(x.decelerationRate=E(O));var I=this.props.refreshControl;return I?S.createElement(n,t({},x,{ref:this._setScrollViewRef}),_.isTV?null:I,w):S.createElement(n,t({},x,{ref:this._setScrollViewRef}),w)}}]),u})(S.Component),M=k.create({baseVertical:{flexGrow:1,flexShrink:1,flexDirection:'column',overflow:'scroll'},baseHorizontal:{flexGrow:1,flexShrink:1,flexDirection:'row',overflow:'scroll'},contentContainerHorizontal:{flexDirection:'row'}});m.exports=x},236,[25,8,9,10,13,12,14,53,208,54,55,87,237,242,59,84,243,241,83,17,244,161,167]); -__d(function(g,r,i,a,m,e,d){'use strict';var o=r(d[0]),s=r(d[1]),n=r(d[2]),l=r(d[3]),t=r(d[4]),c=r(d[5]),p=r(d[6]),h=r(d[7]),u=r(d[8]),S=r(d[9]),b=r(d[10]).ScrollViewManager,R={Mixin:{_subscriptionKeyboardWillShow:null,_subscriptionKeyboardWillHide:null,_subscriptionKeyboardDidShow:null,_subscriptionKeyboardDidHide:null,scrollResponderMixinGetInitialState:function(){return{isTouching:!1,lastMomentumScrollBeginTime:0,lastMomentumScrollEndTime:0,observedScrollSinceBecomingResponder:!1,becameResponderWhileAnimating:!1}},scrollResponderHandleScrollShouldSetResponder:function(){return this.state.isTouching},scrollResponderHandleStartShouldSetResponder:function(o){var s=t.currentlyFocusedField();return'handled'===this.props.keyboardShouldPersistTaps&&null!=s&&o.target!==s},scrollResponderHandleStartShouldSetResponderCapture:function(o){if(this.scrollResponderIsAnimating())return!0;var s=t.currentlyFocusedField(),n=this.props.keyboardShouldPersistTaps;return!(n&&'never'!==n||null==s||!o.target||t.isTextInput(o.target))},scrollResponderHandleResponderReject:function(){},scrollResponderHandleTerminationRequest:function(){return!this.state.observedScrollSinceBecomingResponder},scrollResponderHandleTouchEnd:function(o){var s=o.nativeEvent;this.state.isTouching=0!==s.touches.length,this.props.onTouchEnd&&this.props.onTouchEnd(o)},scrollResponderHandleTouchCancel:function(o){this.state.isTouching=!1,this.props.onTouchCancel&&this.props.onTouchCancel(o)},scrollResponderHandleResponderRelease:function(o){this.props.onResponderRelease&&this.props.onResponderRelease(o);var s=t.currentlyFocusedField();!0===this.props.keyboardShouldPersistTaps||'always'===this.props.keyboardShouldPersistTaps||null==s||o.target===s||this.state.observedScrollSinceBecomingResponder||this.state.becameResponderWhileAnimating||(this.props.onScrollResponderKeyboardDismissed&&this.props.onScrollResponderKeyboardDismissed(o),t.blurTextInput(s))},scrollResponderHandleScroll:function(o){this.state.observedScrollSinceBecomingResponder=!0,this.props.onScroll&&this.props.onScroll(o)},scrollResponderHandleResponderGrant:function(o){this.state.observedScrollSinceBecomingResponder=!1,this.props.onResponderGrant&&this.props.onResponderGrant(o),this.state.becameResponderWhileAnimating=this.scrollResponderIsAnimating()},scrollResponderHandleScrollBeginDrag:function(o){s.beginScroll(),this.props.onScrollBeginDrag&&this.props.onScrollBeginDrag(o)},scrollResponderHandleScrollEndDrag:function(o){var n=o.nativeEvent.velocity;this.scrollResponderIsAnimating()||n&&(0!==n.x||0!==n.y)||s.endScroll(),this.props.onScrollEndDrag&&this.props.onScrollEndDrag(o)},scrollResponderHandleMomentumScrollBegin:function(o){this.state.lastMomentumScrollBeginTime=u(),this.props.onMomentumScrollBegin&&this.props.onMomentumScrollBegin(o)},scrollResponderHandleMomentumScrollEnd:function(o){s.endScroll(),this.state.lastMomentumScrollEndTime=u(),this.props.onMomentumScrollEnd&&this.props.onMomentumScrollEnd(o)},scrollResponderHandleTouchStart:function(o){this.state.isTouching=!0,this.props.onTouchStart&&this.props.onTouchStart(o)},scrollResponderHandleTouchMove:function(o){this.props.onTouchMove&&this.props.onTouchMove(o)},scrollResponderIsAnimating:function(){return u()-this.state.lastMomentumScrollEndTime<16||this.state.lastMomentumScrollEndTime0){v.push(H),L.push(0),v.push(H+1),L.push(1);var Y=(y||0)-l-o;Y>H&&(v.push(Y,Y+1),L.push(Y-H,Y-H))}}}else{v.push(h),L.push(0);var x=(y||0)-l;x>=h?(v.push(x,x+1),L.push(x-h,x-h)):(v.push(h+1),L.push(1))}var C=this.props.scrollAnimatedValue.interpolate({inputRange:v,outputRange:L}),E=p.Children.only(this.props.children);return p.createElement(c,{collapsable:!1,onLayout:this._onLayout,style:[E.props.style,f.header,{transform:[{translateY:C}]}]},p.cloneElement(E,{style:f.fill,onLayout:void 0}))}}]),h})(p.Component),f=h.create({header:{zIndex:10},fill:{flex:1}});m.exports=v},242,[8,9,10,13,14,208,55,59,84]); -__d(function(g,r,i,a,m,e,d){var o=r(d[0]),n=r(d[1]),l=r(d[2]),t=r(d[3]),u=r(d[4]),c=(function(c){"use strict";function s(){return o(this,s),l(this,t(s).apply(this,arguments))}return u(s,c),n(s,[{key:"scrollTo",value:function(o,n,l){}},{key:"flashScrollIndicators",value:function(){}},{key:"scrollToEnd",value:function(o){}},{key:"scrollWithoutAnimationTo",value:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0],arguments.length>1&&void 0!==arguments[1]&&arguments[1]}},{key:"getScrollResponder",value:function(){}},{key:"getScrollableNode",value:function(){}},{key:"getInnerViewNode",value:function(){}},{key:"scrollResponderScrollNativeHandleToKeyboard",value:function(o,n,l){}},{key:"scrollResponderScrollTo",value:function(o,n,l){}}]),s})(r(d[5]).NativeComponent);m.exports=c},243,[8,9,10,13,14,87]); -__d(function(g,r,i,a,m,e,d){'use strict';r(d[0]);m.exports=function(t){return'normal'===t?.998:'fast'===t?.99:t}},244,[54]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]);function c(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);n&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,s)}return o}function l(n){for(var o=1;o0&&void 0!==arguments[0]?arguments[0]:{viewAreaCoveragePercentThreshold:0};o(this,t),this._hasInteracted=!1,this._timers=new Set,this._viewableIndices=[],this._viewableItems=new Map,this._config=n}return s(t,[{key:"dispose",value:function(){this._timers.forEach(clearTimeout)}},{key:"computeViewableItems",value:function(t,n,o,s,c){var l=this._config,f=l.itemVisiblePercentThreshold,v=l.viewAreaCoveragePercentThreshold,b=null!=v,y=b?v:f;u(null!=y&&null!=f!=(null!=v),'Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold');var p=[];if(0===t)return p;var w=-1,_=c||{first:0,last:t-1},I=_.first,O=_.last;if(O>=t)return console.warn('Invalid render range computing viewability '+JSON.stringify({renderRange:c,itemCount:t})),[];for(var k=I;k<=O;k++){var P=s(k);if(P){var S=P.offset-n,j=S+P.length;if(S0)w=k,h(b,y,S,j,o,P.length)&&p.push(k);else if(w>=0)break}}return p}},{key:"onUpdate",value:function(t,n,o,s,c,l,u){var f=this;if((!this._config.waitForInteraction||this._hasInteracted)&&0!==t&&s(0)){var h=[];if(t&&(h=this.computeViewableItems(t,n,o,s,u)),this._viewableIndices.length!==h.length||!this._viewableIndices.every(function(t,n){return t===h[n]}))if(this._viewableIndices=h,this._config.minimumViewTime){var v=setTimeout(function(){f._timers.delete(v),f._onUpdateSync(h,l,c)},this._config.minimumViewTime);this._timers.add(v)}else this._onUpdateSync(h,l,c)}}},{key:"resetViewableIndices",value:function(){this._viewableIndices=[]}},{key:"recordInteraction",value:function(){this._hasInteracted=!0}},{key:"_onUpdateSync",value:function(t,o,s){var c=this;t=t.filter(function(t){return c._viewableIndices.includes(t)});var u=this._viewableItems,f=new Map(t.map(function(t){var n=s(t,!0);return[n.key,n]})),h=[],v=f,b=Array.isArray(v),y=0;for(v=b?v:v["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var p;if(b){if(y>=v.length)break;p=v[y++]}else{if((y=v.next()).done)break;p=y.value}var w=n(p,2),_=w[0],I=w[1];u.has(_)||h.push(I)}var O=u,k=Array.isArray(O),P=0;for(O=k?O:O["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var S;if(k){if(P>=O.length)break;S=O[P++]}else{if((P=O.next()).done)break;S=P.value}var j=n(S,2),T=j[0],A=j[1];f.has(T)||h.push(l({},A,{isViewable:!1}))}h.length>0&&(this._viewableItems=f,o({viewableItems:Array.from(f.values()),changed:h,viewabilityConfig:this._config}))}}]),t})();function h(t,n,o,s,c,l){if(b(o,s,c))return!0;var u=v(o,s,c);return 100*(t?u/c:u/l)>=n}function v(t,n,o){var s=Math.min(n,o)-Math.max(t,0);return Math.max(0,s)}function b(t,n,o){return t>=0&&n<=o&&n>t}m.exports=f},245,[53,26,8,9,17]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]);function s(t,s,f){for(var l=[],o=0,u=0;u=t[c]&&(l[c]=u,o++,c===t.length-1))return n(o===t.length,'bad offsets input, should be in increasing order: %s',JSON.stringify(t)),l;return l}function f(t,n){return n.last-n.first+1-Math.max(0,1+Math.min(n.last,t.last)-Math.max(n.first,t.first))}var l={computeWindowedRenderLimits:function(n,l,o,u){var h=n.data,v=n.getItemCount,c=n.maxToRenderPerBatch,x=n.windowSize,M=v(h);if(0===M)return l;var w=u.offset,b=u.velocity,p=u.visibleLength,C=Math.max(0,w),O=C+p,y=(x-1)*p,L=b>1?'after':b<-1?'before':'none',R=Math.max(0,C-.5*y),S=Math.max(0,O+.5*y);if(o(M-1).offset=_);){var E=z>=c,F=N<=l.first||N>l.last,P=N>J&&(!E||!F),W=T>=l.last||T=N&&N>=0&&T=J&&T<=_&&N<=k.first&&T>=k.last))throw new Error('Bad window calculation '+JSON.stringify({first:N,last:T,itemCount:M,overscanFirst:J,overscanLast:_,visible:k}));return{first:N,last:T}},elementsThatOverlapOffsets:s,newRangeCount:f};m.exports=l},246,[26,17]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]);m.exports=s(t)},247,[248,227]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),c=r(d[4]),u=(r(d[5]),r(d[6])),h=r(d[7]),l=r(d[8]),f=r(d[9]),p=s.ImageViewManager,w=l('RCTImageView');var v=function(n,o){var s,u,l=f(n.source)||{uri:void 0,width:void 0,height:void 0};if(Array.isArray(l))u=h([y.base,n.style])||{},s=l;else{var p=l.width,v=l.height,I=l.uri;u=h([{width:p,height:v},y.base,n.style])||{},s=[l],''===I&&console.warn('source.uri should not be an empty string')}var b=n.resizeMode||u.resizeMode||'cover',z=u.tintColor;if(null!=n.src&&console.warn('The component requires a `source` property rather than `src`.'),null!=n.children)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.');return c.createElement(w,t({},n,{ref:o,style:u,resizeMode:b,tintColor:z,source:s}))};(v=c.forwardRef(v)).displayName='Image',v.getSize=function(t,n,o){p.getSize(t,n,o||function(){console.warn('Failed to get size for image: '+t)})},v.prefetch=function(t){return p.prefetchImage(t)},v.queryCache=function(t){return n.async(function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,n.awrap(p.queryCache(t));case 2:return o.abrupt("return",o.sent);case 3:case"end":return o.stop()}})},v.resolveAssetSource=f,v.propTypes=o;var y=u.create({base:{overflow:'hidden'}});m.exports=v},248,[25,142,249,22,55,87,59,83,161,167]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),o=r(d[1]),t=r(d[2]),s=r(d[3]),c=r(d[4]);m.exports={style:s(t),source:o,defaultSource:c.oneOfType([c.shape({uri:c.string,width:c.number,height:c.number,scale:c.number}),c.number]),accessible:c.bool,accessibilityLabel:c.node,blurRadius:c.number,capInsets:n,resizeMethod:c.oneOf(['auto','resize','scale']),resizeMode:c.oneOf(['cover','contain','stretch','repeat','center']),testID:c.string,onLayout:c.func,onLoadStart:c.func,onProgress:c.func,onError:c.func,onPartialLoad:c.func,onLoad:c.func,onLoadEnd:c.func}},249,[185,250,64,186,68]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=n.shape({uri:n.string,bundle:n.string,method:n.string,headers:n.objectOf(n.string),body:n.string,cache:n.oneOf(['default','reload','force-cache','only-if-cached']),width:n.number,height:n.number,scale:n.number}),c=n.oneOfType([t,n.number,n.arrayOf(t)]);m.exports=c},250,[68]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]);m.exports=s(t)},251,[236,227]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]);m.exports=s(t)},252,[253,227]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),c=r(d[4]),p=r(d[5]),f=r(d[6]);function l(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);n&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,s)}return o}r(d[7]);var u=r(d[8]),h=(r(d[9]),r(d[10])),v=(function(t){for(var n=1;n=p.data.length+1)n-=p.data.length+1;else return-1===n?{section:p,key:l+':header',index:null,header:!0,trailingSection:this.props.sections[s+1]}:n===p.data.length?{section:p,key:l+':footer',index:null,header:!1,trailingSection:this.props.sections[s+1]}:{section:p,key:l+':'+(p.keyExtractor||o)(p.data[n],n),index:n,leadingItem:p.data[n-1],leadingSection:this.props.sections[s-1],trailingItem:p.data[n+1],trailingSection:this.props.sections[s+1]}}}},{key:"_getSeparatorComponent",value:function(t,n){if(!(n=n||this._subExtractor(t)))return null;var o=n.section.ItemSeparatorComponent||this.props.ItemSeparatorComponent,s=this.props.SectionSeparatorComponent,p=t===this.state.childProps.getItemCount()-1,l=n.index===n.section.data.length-1;return s&&l?s:!o||l||p?null:o}}]),h})(S.PureComponent);_.defaultProps=f({},y.defaultProps,{data:[]});var P=(function(t){function n(){var t,l;o(this,n);for(var c=arguments.length,u=new Array(c),h=0;h10?n:10,update:{duration:n>10?n:10,type:f.Types[s]||'keyboard'}}),o.setState({bottom:h}))}else o.setState({bottom:0})},o._onLayout=function(t){o._frame=t.nativeEvent.layout},o.state={bottom:0},o.viewRef=y.createRef(),o}return l(_,p),s(_,[{key:"_relativeKeyboardHeight",value:function(t){var o=this._frame;if(!o||!t)return 0;var n=t.screenY-this.props.keyboardVerticalOffset;return Math.max(o.y+o.height-n,0)}},{key:"UNSAFE_componentWillUpdate",value:function(t,o){o.bottom===this.state.bottom&&'height'===this.props.behavior&&'height'===t.behavior&&(o.bottom=0)}},{key:"componentDidMount",value:function(){this._subscriptions=[c.addListener('keyboardWillChangeFrame',this._onKeyboardChange)]}},{key:"componentWillUnmount",value:function(){this._subscriptions.forEach(function(t){t.remove()})}},{key:"render",value:function(){var n=this.props,s=n.behavior,u=n.children,h=n.contentContainerStyle,l=n.enabled,c=(n.keyboardVerticalOffset,n.style),f=o(n,["behavior","children","contentContainerStyle","enabled","keyboardVerticalOffset","style"]),p=l?this.state.bottom:0;switch(s){case'height':var _;return null!=this._frame&&this.state.bottom>0&&(_={height:this._frame.height-p,flex:0}),y.createElement(v,t({ref:this.viewRef,style:b.compose(c,_),onLayout:this._onLayout},f),u);case'position':return y.createElement(v,t({ref:this.viewRef,style:c,onLayout:this._onLayout},f),y.createElement(v,{style:b.compose(h,{bottom:p})},u));case'padding':return y.createElement(v,t({ref:this.viewRef,style:b.compose(c,{paddingBottom:p}),onLayout:this._onLayout},f),u);default:return y.createElement(v,t({ref:this.viewRef,onLayout:this._onLayout,style:c},f),u)}}}]),_})(y.Component);p.defaultProps={enabled:!0,keyboardVerticalOffset:0},m.exports=p},276,[25,23,8,9,10,13,14,239,240,54,55,59,84]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=r(d[1]),n=(r(d[2]),r(d[3])),s=(r(d[4]),r(d[5])),l=r(d[6]),h=r(d[7]).ScrollViewManager,c=r(d[8]),p=r(d[9]),u=r(d[10]),R=r(d[11]),_=r(d[12]),f=r(d[13]),w=r(d[14]),S=r(d[15]),C=f({displayName:'ListView',_rafIds:[],_childFrames:[],_sentEndForContentLength:null,_scrollComponent:null,_prevRenderedRowsCount:0,_visibleRows:{},scrollProperties:{},mixins:[p.Mixin],statics:{DataSource:n},getMetrics:function(){return{contentLength:this.scrollProperties.contentLength,totalRows:this.props.enableEmptySections?this.props.dataSource.getRowAndSectionCount():this.props.dataSource.getRowCount(),renderedRows:this.state.curRenderedRowsCount,visibleRows:Object.keys(this._visibleRows).length}},getScrollResponder:function(){if(this._scrollComponent&&this._scrollComponent.getScrollResponder)return this._scrollComponent.getScrollResponder()},getScrollableNode:function(){return this._scrollComponent&&this._scrollComponent.getScrollableNode?this._scrollComponent.getScrollableNode():l.findNodeHandle(this._scrollComponent)},scrollTo:function(){var t;this._scrollComponent&&this._scrollComponent.scrollTo&&(t=this._scrollComponent).scrollTo.apply(t,arguments)},scrollToEnd:function(t){this._scrollComponent&&(this._scrollComponent.scrollToEnd?this._scrollComponent.scrollToEnd(t):console.warn("The scroll component used by the ListView does not support scrollToEnd. Check the renderScrollComponent prop of your ListView."))},flashScrollIndicators:function(){this._scrollComponent&&this._scrollComponent.flashScrollIndicators&&this._scrollComponent.flashScrollIndicators()},setNativeProps:function(t){this._scrollComponent&&this._scrollComponent.setNativeProps(t)},getDefaultProps:function(){return{initialListSize:10,pageSize:1,renderScrollComponent:function(t){return s.createElement(c,t)},scrollRenderAheadDistance:1e3,onEndReachedThreshold:1e3,stickySectionHeadersEnabled:!0,stickyHeaderIndices:[]}},getInitialState:function(){return{curRenderedRowsCount:this.props.initialListSize,highlightedRow:{}}},getInnerViewNode:function(){return this._scrollComponent&&this._scrollComponent.getInnerViewNode()},UNSAFE_componentWillMount:function(){this.scrollProperties={visibleLength:null,contentLength:null,offset:0},this._rafIds=[],this._childFrames=[],this._visibleRows={},this._prevRenderedRowsCount=0,this._sentEndForContentLength=null},componentWillUnmount:function(){this._rafIds.forEach(cancelAnimationFrame),this._rafIds=[]},componentDidMount:function(){var t=this;this._requestAnimationFrame(function(){t._measureAndUpdateScrollProps()})},UNSAFE_componentWillReceiveProps:function(t){var o=this;this.props.dataSource===t.dataSource&&this.props.initialListSize===t.initialListSize||this.setState(function(t,n){return o._prevRenderedRowsCount=0,{curRenderedRowsCount:Math.min(Math.max(t.curRenderedRowsCount,n.initialListSize),n.enableEmptySections?n.dataSource.getRowAndSectionCount():n.dataSource.getRowCount())}},function(){return o._renderMoreRowsIfNeeded()})},componentDidUpdate:function(){var t=this;this._requestAnimationFrame(function(){t._measureAndUpdateScrollProps()})},_onRowHighlighted:function(t,o){this.setState({highlightedRow:{sectionID:t,rowID:o}})},render:function(){for(var n=[],l=this.props.dataSource,h=l.rowIdentities,c=0,p=[],f=this.props.renderSectionHeader,w=this.props.renderHeader&&this.props.renderHeader(),S=this.props.renderFooter&&this.props.renderFooter(),C=w?1:0,v=0;v=this._prevRenderedRowsCount&&l.rowShouldUpdate(v,I),D=s.createElement(u,{key:'r_'+P,shouldUpdate:!!F,render:this.props.renderRow.bind(null,l.getRowData(v,I),b,L,this._onRowHighlighted)});if(n.push(D),C++,this.props.renderSeparator&&(I!==E.length-1||v===h.length-1)){var N=this.state.highlightedRow.sectionID===b&&(this.state.highlightedRow.rowID===L||this.state.highlightedRow.rowID===E[I+1]),A=this.props.renderSeparator(b,L,N);A&&(n.push(s.createElement(R,{key:'s_'+P},A)),C++)}if(++c===this.state.curRenderedRowsCount)break}if(c>=this.state.curRenderedRowsCount)break}var H=this.props,z=H.renderScrollComponent,V=o(H,["renderScrollComponent"]);return V.scrollEventThrottle||(V.scrollEventThrottle=50),void 0===V.removeClippedSubviews&&(V.removeClippedSubviews=!0),t(V,{onScroll:this._onScroll,stickyHeaderIndices:this.props.stickyHeaderIndices.concat(p),onKeyboardWillShow:void 0,onKeyboardWillHide:void 0,onKeyboardDidShow:void 0,onKeyboardDidHide:void 0}),_(z(V),{ref:this._setScrollComponentRef,onContentSizeChange:this._onContentSizeChange,onLayout:this._onLayout,DEPRECATED_sendUpdatedChildFrames:void 0!==typeof V.onChangeVisibleRows},w,n,S)},_requestAnimationFrame:function(t){var o=this,n=requestAnimationFrame(function(){o._rafIds=o._rafIds.filter(function(t){return t!==n}),t()});this._rafIds.push(n)},_measureAndUpdateScrollProps:function(){var t=this.getScrollResponder();t&&t.getInnerViewNode&&h&&h.calculateChildFrames&&h.calculateChildFrames(l.findNodeHandle(t),this._updateVisibleRows)},_setScrollComponentRef:function(t){this._scrollComponent=t},_onContentSizeChange:function(t,o){var n=this.props.horizontal?t:o;n!==this.scrollProperties.contentLength&&(this.scrollProperties.contentLength=n,this._updateVisibleRows(),this._renderMoreRowsIfNeeded()),this.props.onContentSizeChange&&this.props.onContentSizeChange(t,o)},_onLayout:function(t){var o=t.nativeEvent.layout,n=o.width,s=o.height,l=this.props.horizontal?n:s;l!==this.scrollProperties.visibleLength&&(this.scrollProperties.visibleLength=l,this._updateVisibleRows(),this._renderMoreRowsIfNeeded()),this.props.onLayout&&this.props.onLayout(t)},_maybeCallOnEndReached:function(t){return!!(this.props.onEndReached&&this.scrollProperties.contentLength!==this._sentEndForContentLength&&this._getDistanceFromEnd(this.scrollProperties)h||Pthis.props.onEndReachedThreshold&&(this._sentEndForContentLength=null),this.props.onScroll&&this.props.onScroll(t)}});m.exports=C},277,[25,23,278,279,54,55,87,22,236,237,281,84,282,259,280,179,19,17]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]),u=r(d[3]),l=r(d[4]),c=r(d[5]),s=r(d[6]),f=(function(c){"use strict";function s(){return n(this,s),o(this,u(s).apply(this,arguments))}return l(s,c),t(s,[{key:"setNativeProps",value:function(n){}},{key:"flashScrollIndicators",value:function(){}},{key:"getScrollResponder",value:function(){}},{key:"getScrollableNode",value:function(){}},{key:"getMetrics",value:function(){}},{key:"scrollTo",value:function(){}},{key:"scrollToEnd",value:function(n){}}]),s})(c.Component);f.DataSource=s,m.exports=f},278,[8,9,10,13,14,55,279]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),o=r(d[3]),h=r(d[4]),c=r(d[5]);function u(t,n,s){return t[n][s]}function l(t,n){return t[n]}var w=(function(){function h(t){n(this,h),o(t&&'function'==typeof t.rowHasChanged,'Must provide a rowHasChanged function.'),this._rowHasChanged=t.rowHasChanged,this._getRowData=t.getRowData||u,this._sectionHeaderHasChanged=t.sectionHeaderHasChanged,this._getSectionHeaderData=t.getSectionHeaderData||l,this._dataBlob=null,this._dirtyRows=[],this._dirtySections=[],this._cachedRowCount=0,this.rowIdentities=[],this.sectionIdentities=[]}return s(h,[{key:"cloneWithRows",value:function(n,s){var o=s?[t(s)]:null;return this._sectionHeaderHasChanged||(this._sectionHeaderHasChanged=function(){return!1}),this.cloneWithRowsAndSections({s1:n},['s1'],o)}},{key:"cloneWithRowsAndSections",value:function(t,n,s){o('function'==typeof this._sectionHeaderHasChanged,'Must provide a sectionHeaderHasChanged function with section data.'),o(!n||!s||n.length===s.length,'row and section ids lengths must be the same');var c=new h({getRowData:this._getRowData,getSectionHeaderData:this._getSectionHeaderData,rowHasChanged:this._rowHasChanged,sectionHeaderHasChanged:this._sectionHeaderHasChanged});return c._dataBlob=t,c.sectionIdentities=n||Object.keys(t),s?c.rowIdentities=s:(c.rowIdentities=[],c.sectionIdentities.forEach(function(n){c.rowIdentities.push(Object.keys(t[n]))})),c._cachedRowCount=_(c.rowIdentities),c._calculateDirtyArrays(this._dataBlob,this.sectionIdentities,this.rowIdentities),c}},{key:"getRowCount",value:function(){return this._cachedRowCount}},{key:"getRowAndSectionCount",value:function(){return this._cachedRowCount+this.sectionIdentities.length}},{key:"rowShouldUpdate",value:function(t,n){var s=this._dirtyRows[t][n];return c(void 0!==s,'missing dirtyBit for section, row: '+t+', '+n),s}},{key:"getRowData",value:function(t,n){var s=this.sectionIdentities[t],o=this.rowIdentities[t][n];return c(void 0!==s&&void 0!==o,'rendering invalid section, row: '+t+', '+n),this._getRowData(this._dataBlob,s,o)}},{key:"getRowIDForFlatIndex",value:function(t){for(var n=t,s=0;s=this.rowIdentities[s].length))return this.rowIdentities[s][n];n-=this.rowIdentities[s].length}return null}},{key:"getSectionIDForFlatIndex",value:function(t){for(var n=t,s=0;s=this.rowIdentities[s].length))return this.sectionIdentities[s];n-=this.rowIdentities[s].length}return null}},{key:"getSectionLengths",value:function(){for(var t=[],n=0;n2?f-2:0),y=2;y0}},{key:"_swipeFullSpeed",value:function(n){this.state.currentLeft.setValue(this._previousLeft+n.dx)}},{key:"_swipeSlowSpeed",value:function(n){this.state.currentLeft.setValue(this._previousLeft+n.dx/4)}},{key:"_isSwipingExcessivelyRightFromClosedPosition",value:function(n){var t=f?-n.dx:n.dx;return this._isSwipingRightFromClosed(n)&&t>120}},{key:"_animateTo",value:function(n){var t=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:300,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:S;p.timing(this.state.currentLeft,{duration:o,toValue:n,useNativeDriver:!0}).start(function(){t._previousLeft=n,s()})}},{key:"_animateToOpenPosition",value:function(){var n,t=null!=(n=this.props.maxSwipeDistance)?n:0,o=f?-t:t;this._animateTo(-o)}},{key:"_animateToOpenPositionWith",value:function(n,t){var o;n=n>.3?n:.3;var s=null!=(o=this.props.maxSwipeDistance)?o:0,u=Math.abs((s-Math.abs(t))/n),p=f?-s:s;this._animateTo(-p,u)}},{key:"_animateToClosedPosition",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:300;this._animateTo(w,n)}},{key:"_animateBounceBack",value:function(n){var t=f?-30:30;this._animateTo(-t,n,this._animateToClosedPositionDuringBounce)}},{key:"_isValidSwipe",value:function(n){var t;return!(null!=(t=this.props.preventSwipeRight)&&t&&this._previousLeft===w&&n.dx>0)&&Math.abs(n.dx)>10}},{key:"_shouldAnimateRemainder",value:function(n){var t,o=null!=(t=this.props.swipeThreshold)?t:30;return Math.abs(n.dx)>o||n.vx>.3}}]),_})(c.Component),y=_.create({slideOutContainer:{bottom:0,left:0,position:'absolute',right:0,top:0}});m.exports=P},308,[8,9,10,13,14,198,287,309,55,59,84]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),o=r(d[1]),t=o.currentCentroidXOfTouchesChangedAfter,u=o.currentCentroidYOfTouchesChangedAfter,s=o.previousCentroidXOfTouchesChangedAfter,c=o.previousCentroidYOfTouchesChangedAfter,p=o.currentCentroidX,v=o.currentCentroidY,h={_initializeGestureState:function(n){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},_updateGestureStateOnMove:function(n,o){n.numberActiveTouches=o.numberActiveTouches,n.moveX=t(o,n._accountsForMovesUpTo),n.moveY=u(o,n._accountsForMovesUpTo);var p=n._accountsForMovesUpTo,v=s(o,p),h=t(o,p),l=c(o,p),S=u(o,p),R=n.dx+(h-v),T=n.dy+(S-l),f=o.mostRecentTimeStamp-n._accountsForMovesUpTo;n.vx=(R-n.dx)/f,n.vy=(T-n.dy)/f,n.dx=R,n.dy=T,n._accountsForMovesUpTo=o.mostRecentTimeStamp},create:function(o){var t={handle:null},u={stateID:Math.random(),moveX:0,moveY:0,x0:0,y0:0,dx:0,dy:0,vx:0,vy:0,numberActiveTouches:0,_accountsForMovesUpTo:0};return{panHandlers:{onStartShouldSetResponder:function(n){return null!=o.onStartShouldSetPanResponder&&o.onStartShouldSetPanResponder(n,u)},onMoveShouldSetResponder:function(n){return null!=o.onMoveShouldSetPanResponder&&o.onMoveShouldSetPanResponder(n,u)},onStartShouldSetResponderCapture:function(n){return 1===n.nativeEvent.touches.length&&h._initializeGestureState(u),u.numberActiveTouches=n.touchHistory.numberActiveTouches,null!=o.onStartShouldSetPanResponderCapture&&o.onStartShouldSetPanResponderCapture(n,u)},onMoveShouldSetResponderCapture:function(n){var t=n.touchHistory;return u._accountsForMovesUpTo!==t.mostRecentTimeStamp&&(h._updateGestureStateOnMove(u,t),!!o.onMoveShouldSetPanResponderCapture&&o.onMoveShouldSetPanResponderCapture(n,u))},onResponderGrant:function(s){return t.handle||(t.handle=n.createInteractionHandle()),u.x0=p(s.touchHistory),u.y0=v(s.touchHistory),u.dx=0,u.dy=0,o.onPanResponderGrant&&o.onPanResponderGrant(s,u),null==o.onShouldBlockNativeResponder||o.onShouldBlockNativeResponder(s,u)},onResponderReject:function(n){l(t,o.onPanResponderReject,n,u)},onResponderRelease:function(n){l(t,o.onPanResponderRelease,n,u),h._initializeGestureState(u)},onResponderStart:function(n){var t=n.touchHistory;u.numberActiveTouches=t.numberActiveTouches,o.onPanResponderStart&&o.onPanResponderStart(n,u)},onResponderMove:function(n){var t=n.touchHistory;u._accountsForMovesUpTo!==t.mostRecentTimeStamp&&(h._updateGestureStateOnMove(u,t),o.onPanResponderMove&&o.onPanResponderMove(n,u))},onResponderEnd:function(n){var s=n.touchHistory;u.numberActiveTouches=s.numberActiveTouches,l(t,o.onPanResponderEnd,n,u)},onResponderTerminate:function(n){l(t,o.onPanResponderTerminate,n,u),h._initializeGestureState(u)},onResponderTerminationRequest:function(n){return null==o.onPanResponderTerminationRequest||o.onPanResponderTerminationRequest(n,u)}},getInteractionHandle:function(){return t.handle}}}};function l(o,t,u,s){o.handle&&(n.clearInteractionHandle(o.handle),o.handle=null),t&&t(u,s)}m.exports=h},309,[206,310]); -__d(function(g,r,i,a,m,e,d){var n={centroidDimension:function(t,o,u,c){var f=t.touchBank,s=0,h=0,v=1===t.numberActiveTouches?t.touchBank[t.indexOfSingleActiveTouch]:null;if(null!==v)v.touchActive&&v.currentTimeStamp>o&&(s+=c&&u?v.currentPageX:c&&!u?v.currentPageY:!c&&u?v.previousPageX:v.previousPageY,h=1);else for(var C=0;C=o){s+=c&&u?l.currentPageX:c&&!u?l.currentPageY:!c&&u?l.previousPageX:l.previousPageY,h++}}return h>0?s/h:n.noCentroid},currentCentroidXOfTouchesChangedAfter:function(t,o){return n.centroidDimension(t,o,!0,!0)},currentCentroidYOfTouchesChangedAfter:function(t,o){return n.centroidDimension(t,o,!1,!0)},previousCentroidXOfTouchesChangedAfter:function(t,o){return n.centroidDimension(t,o,!0,!1)},previousCentroidYOfTouchesChangedAfter:function(t,o){return n.centroidDimension(t,o,!1,!1)},currentCentroidX:function(t){return n.centroidDimension(t,0,!0,!0)},currentCentroidY:function(t){return n.centroidDimension(t,0,!1,!0)},noCentroid:-1};m.exports=n},310,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),u=r(d[4]),c=r(d[5]),l=r(d[6]),p=r(d[7]),S=r(d[8]),f=r(d[9]),w=(function(w){function h(t,u){var c;return n(this,h),(c=o(this,s(h).call(this,t,u)))._listViewRef=null,c._shouldBounceFirstRowOnMount=!1,c._onScroll=function(t){c.props.dataSource.getOpenRowID()&&c.setState({dataSource:c.state.dataSource.setOpenRowID(null)}),c.props.onScroll&&c.props.onScroll(t)},c._renderRow=function(t,n,o){var s=c.props.renderQuickActions(t,n,o);if(!s)return c.props.renderRow(t,n,o);var u=!1;return c._shouldBounceFirstRowOnMount&&(c._shouldBounceFirstRowOnMount=!1,u=o===c.props.dataSource.getFirstRowID()),p.createElement(f,{slideoutView:s,isOpen:t.id===c.props.dataSource.getOpenRowID(),maxSwipeDistance:c._getMaxSwipeDistance(t,n,o),key:o,onOpen:function(){return c._onOpen(t.id)},onClose:function(){return c._onClose(t.id)},onSwipeEnd:function(){return c._setListViewScrollable(!0)},onSwipeStart:function(){return c._setListViewScrollable(!1)},shouldBounceOnMount:u},c.props.renderRow(t,n,o))},c._shouldBounceFirstRowOnMount=c.props.bounceFirstRowOnMount,c.state={dataSource:c.props.dataSource},c}return c(h,w),u(h,null,[{key:"getNewDataSource",value:function(){return new S({getRowData:function(t,n,o){return t[n][o]},getSectionHeaderData:function(t,n){return t[n]},rowHasChanged:function(t,n){return t!==n},sectionHeaderHasChanged:function(t,n){return t!==n}})}}]),u(h,[{key:"UNSAFE_componentWillReceiveProps",value:function(t){this.state.dataSource.getDataSource()!==t.dataSource.getDataSource()&&this.setState({dataSource:t.dataSource})}},{key:"render",value:function(){var n=this;return p.createElement(l,t({},this.props,{ref:function(t){n._listViewRef=t},dataSource:this.state.dataSource.getDataSource(),onScroll:this._onScroll,renderRow:this._renderRow}))}},{key:"_setListViewScrollable",value:function(t){this._listViewRef&&'function'==typeof this._listViewRef.setNativeProps&&this._listViewRef.setNativeProps({scrollEnabled:t})}},{key:"getScrollResponder",value:function(){if(this._listViewRef&&'function'==typeof this._listViewRef.getScrollResponder)return this._listViewRef.getScrollResponder()}},{key:"_getMaxSwipeDistance",value:function(t,n,o){return'function'==typeof this.props.maxSwipeDistance?this.props.maxSwipeDistance(t,n,o):this.props.maxSwipeDistance}},{key:"_onOpen",value:function(t){this.setState({dataSource:this.state.dataSource.setOpenRowID(t)})}},{key:"_onClose",value:function(t){this.setState({dataSource:this.state.dataSource.setOpenRowID(null)})}}]),h})(p.Component);w.defaultProps={bounceFirstRowOnMount:!1,renderQuickActions:function(){return null}},m.exports=w},311,[25,8,10,13,9,14,277,55,312,308]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=(function(){function s(n){var h=this;t(this,s),this._dataSource=new o({getRowData:n.getRowData,getSectionHeaderData:n.getSectionHeaderData,rowHasChanged:function(t,o){return t.id!==h._previousOpenRowID&&o.id===h._openRowID||t.id===h._previousOpenRowID&&o.id!==h._openRowID||n.rowHasChanged(t,o)},sectionHeaderHasChanged:n.sectionHeaderHasChanged})}return n(s,[{key:"cloneWithRowsAndSections",value:function(t,n,o){return this._dataSource=this._dataSource.cloneWithRowsAndSections(t,n,o),this._dataBlob=t,this.rowIdentities=this._dataSource.rowIdentities,this.sectionIdentities=this._dataSource.sectionIdentities,this}},{key:"getDataSource",value:function(){return this._dataSource}},{key:"getOpenRowID",value:function(){return this._openRowID}},{key:"getFirstRowID",value:function(){return this.rowIdentities?this.rowIdentities[0]&&this.rowIdentities[0][0]:Object.keys(this._dataBlob)[0]}},{key:"getLastRowID",value:function(){if(this.rowIdentities&&this.rowIdentities.length){var t=this.rowIdentities[this.rowIdentities.length-1];if(t&&t.length)return t[t.length-1]}return Object.keys(this._dataBlob)[this._dataBlob.length-1]}},{key:"setOpenRowID",value:function(t){return this._previousOpenRowID=this._openRowID,this._openRowID=t,this._dataSource=this._dataSource.cloneWithRowsAndSections(this._dataBlob,this.sectionIdentities,this.rowIdentities),this}}]),s})();m.exports=s},312,[8,9,279]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),l=r(d[4]),c=r(d[5]),u=r(d[6]);function p(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);n&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,s)}return o}var h,f,b=r(d[7]),y=r(d[8]),v=r(d[9]),S=r(d[10]),_=(r(d[11]),r(d[12])),C=r(d[13]),x=r(d[14]),T=r(d[15]),I=r(d[16]),R=r(d[17]),F=r(d[18]),O=r(d[19]),N=r(d[20]),w=r(d[21]),P=r(d[22]),D=r(d[23]);r(d[24]);h=D('RCTMultilineTextInputView'),f=D('RCTSinglelineTextInputView');var E=['phoneNumber','link','address','calendarEvent','none','all'],L=function(){return!0},j=w({displayName:'TextInput',statics:{State:{currentlyFocusedField:F.currentlyFocusedField,focusTextInput:F.focusTextInput,blurTextInput:F.blurTextInput}},propTypes:(function(t){for(var n=1;n=1&&(o=C.createElement(I,{style:n.style,allowFontScaling:n.allowFontScaling,maxFontSizeMultiplier:n.maxFontSizeMultiplier},o)),n.inputView&&(o=[o,n.inputView]),n.style.unshift(A.multilineInput),t=C.createElement(h,c({ref:this._setNativeRef},n,{children:o,onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onContentSizeChange:this.props.onContentSizeChange,onSelectionChange:this._onSelectionChange,onTextInput:this._onTextInput,onSelectionChangeShouldSetResponder:L,text:this._getText(),dataDetectorTypes:this.props.dataDetectorTypes,onScroll:this._onScroll}))}else t=C.createElement(f,c({ref:this._setNativeRef},n,{onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onSelectionChange:this._onSelectionChange,onSelectionChangeShouldSetResponder:L,text:this._getText()}));return C.createElement(O,{onLayout:n.onLayout,onPress:this._onPress,rejectResponderTermination:!0,accessible:n.accessible,accessibilityLabel:n.accessibilityLabel,accessibilityRole:n.accessibilityRole,accessibilityStates:n.accessibilityStates,nativeID:this.props.nativeID,testID:n.testID},t)},_renderIOS:function(){var t=c({},this.props);t.style=[this.props.style],t.selection&&null==t.selection.end&&(t.selection={start:t.selection.start,end:t.selection.start});var n=t.multiline?h:f;t.multiline&&t.style.unshift(A.multilineInput);var o=C.createElement(n,c({ref:this._setNativeRef},t,{onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onContentSizeChange:this.props.onContentSizeChange,onSelectionChange:this._onSelectionChange,onTextInput:this._onTextInput,onSelectionChangeShouldSetResponder:L,text:this._getText(),dataDetectorTypes:this.props.dataDetectorTypes,onScroll:this._onScroll}));return C.createElement(O,{onLayout:t.onLayout,onPress:this._onPress,rejectResponderTermination:t.rejectResponderTermination,accessible:t.accessible,accessibilityLabel:t.accessibilityLabel,accessibilityRole:t.accessibilityRole,accessibilityStates:t.accessibilityStates,nativeID:this.props.nativeID,testID:t.testID},o)},_renderAndroid:function(){var t=c({},this.props);t.style=[this.props.style],t.autoCapitalize=N.getViewManagerConfig('AndroidTextInput').Constants.AutoCapitalizationType[t.autoCapitalize||'sentences'];var n=this.props.children,o=0;C.Children.forEach(n,function(){return++o}),P(!(this.props.value&&o),'Cannot specify both value and children.'),o>1&&(n=C.createElement(I,null,n)),t.selection&&null==t.selection.end&&(t.selection={start:t.selection.start,end:t.selection.start});var s=C.createElement(void 0,c({ref:this._setNativeRef},t,{mostRecentEventCount:0,onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onSelectionChange:this._onSelectionChange,onTextInput:this._onTextInput,text:this._getText(),children:n,disableFullscreenUI:this.props.disableFullscreenUI,textBreakStrategy:this.props.textBreakStrategy,onScroll:this._onScroll}));return C.createElement(O,{onLayout:t.onLayout,onPress:this._onPress,accessible:this.props.accessible,accessibilityLabel:this.props.accessibilityLabel,accessibilityRole:this.props.accessibilityRole,accessibilityStates:this.props.accessibilityStates,nativeID:this.props.nativeID,testID:this.props.testID},s)},_onFocus:function(t){this.props.onFocus&&this.props.onFocus(t),this.props.selectionState&&this.props.selectionState.focus()},_onPress:function(t){(this.props.editable||void 0===this.props.editable)&&this.focus()},_onChange:function(t){this._inputRef&&this._inputRef.setNativeProps&&this._inputRef.setNativeProps({mostRecentEventCount:t.nativeEvent.eventCount});var n=t.nativeEvent.text;this.props.onChange&&this.props.onChange(t),this.props.onChangeText&&this.props.onChangeText(n),this._inputRef&&(this._lastNativeText=n,this.forceUpdate())},_onSelectionChange:function(t){this.props.onSelectionChange&&this.props.onSelectionChange(t),this._inputRef&&(this._lastNativeSelection=t.nativeEvent.selection,(this.props.selection||this.props.selectionState)&&this.forceUpdate())},componentDidUpdate:function(){var t={};this._lastNativeText!==this.props.value&&'string'==typeof this.props.value&&(t.text=this.props.value);var n=this.props.selection;this._lastNativeSelection&&n&&(this._lastNativeSelection.start!==n.start||this._lastNativeSelection.end!==n.end)&&(t.selection=this.props.selection),Object.keys(t).length>0&&this._inputRef&&this._inputRef.setNativeProps&&this._inputRef.setNativeProps(t),this.props.selectionState&&n&&this.props.selectionState.update(n.start,n.end)},_onBlur:function(t){this.blur(),this.props.onBlur&&this.props.onBlur(t),this.props.selectionState&&this.props.selectionState.blur()},_onTextInput:function(t){this.props.onTextInput&&this.props.onTextInput(t)},_onScroll:function(t){this.props.onScroll&&this.props.onScroll(t)}}),B=((function(c){function u(){return t(this,u),o(this,s(u).apply(this,arguments))}l(u,c),n(u,[{key:"clear",value:function(){}},{key:"isFocused",value:function(){}}])})(x.NativeComponent),j),A=T.create({multilineInput:{paddingTop:5}});m.exports=B},313,[8,9,10,13,14,25,53,65,314,316,257,54,68,55,87,59,183,85,158,258,74,259,17,161,19]); -__d(function(g,r,i,a,m,e,d){'use strict';var o=r(d[0]);function n(o,n){var t=Object.keys(o);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(o);n&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(o,n).enumerable})),t.push.apply(t,s)}return t}var t=r(d[1]),s=r(d[2]),c=r(d[3]),l=r(d[4]),p=r(d[5]),b=r(d[6]),f=b.DeprecatedAccessibilityComponentTypes,u=b.DeprecatedAccessibilityTraits,y=b.DeprecatedAccessibilityRoles,O=b.DeprecatedAccessibilityStates,R=l(p);m.exports=(function(t){for(var s=1;sthis._focusOffset}},{key:"getAnchorOffset",value:function(){return this._hasFocus?this._anchorOffset:null}},{key:"getFocusOffset",value:function(){return this._hasFocus?this._focusOffset:null}},{key:"getStartOffset",value:function(){return this._hasFocus?Math.min(this._anchorOffset,this._focusOffset):null}},{key:"getEndOffset",value:function(){return this._hasFocus?Math.max(this._anchorOffset,this._focusOffset):null}},{key:"overlaps",value:function(t,s){return this.hasFocus()&&this.getStartOffset()<=s&&t<=this.getEndOffset()}}]),f})();f(u,{blur:!0,focus:!0,update:!0}),m.exports=u},316,[8,9,317]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),_=r(d[3]),o=r(d[4]),v=r(d[5])({__types:!0});var E={emit:function(t,n,s,_,o,v,E){return this.__getEventEmitter().emit(t,n,s,_,o,v,E)},emitAndHold:function(t,n,s,_,o,v,E){return this.__getEventEmitter().emitAndHold(t,n,s,_,o,v,E)},addListener:function(t,n,s){return this.__getEventEmitter().addListener(t,n,s)},once:function(t,n,s){return this.__getEventEmitter().once(t,n,s)},addRetroactiveListener:function(t,n,s){return this.__getEventEmitter().addRetroactiveListener(t,n,s)},addListenerMap:function(t,n){return this.__getEventEmitter().addListenerMap(t,n)},addRetroactiveListenerMap:function(t,n){return this.__getEventEmitter().addListenerMap(t,n)},removeAllListeners:function(){this.__getEventEmitter().removeAllListeners()},removeCurrentListener:function(){this.__getEventEmitter().removeCurrentListener()},releaseHeldEventType:function(t){this.__getEventEmitter().releaseHeldEventType(t)},__getEventEmitter:function(){if(!this.__eventEmitter){var t=new n,o=new _;this.__eventEmitter=new s(t,o)}return this.__eventEmitter}};m.exports=function(n,s){o(s,'Must supply set of valid event types');var _=n.prototype||n;o(!_.__eventEmitter,'An active emitter is already mixed in');var u=n.constructor;u&&o(u===Object||u===Function,'Mix EventEmitter into a class, not an instance'),_.hasOwnProperty(v)?t(_.__types,s):_.__types?_.__types=t({},_.__types,s):_.__types=s,t(_,E)}},317,[25,48,318,319,17,320]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=(function(){function s(n,l){t(this,s),this._emitter=n,this._eventHolder=l,this._currentEventToken=null,this._emittingHeldEvents=!1}return n(s,[{key:"addListener",value:function(t,n,s){return this._emitter.addListener(t,n,s)}},{key:"once",value:function(t,n,s){return this._emitter.once(t,n,s)}},{key:"addRetroactiveListener",value:function(t,n,s){var l=this._emitter.addListener(t,n,s);return this._emittingHeldEvents=!0,this._eventHolder.emitToListener(t,n,s),this._emittingHeldEvents=!1,l}},{key:"removeAllListeners",value:function(t){this._emitter.removeAllListeners(t)}},{key:"removeCurrentListener",value:function(){this._emitter.removeCurrentListener()}},{key:"listeners",value:function(t){return this._emitter.listeners(t)}},{key:"emit",value:function(t){for(var n,s=arguments.length,l=new Array(s>1?s-1:0),o=1;o1?l-1:0),u=1;u1?v-1:0),u=1;u=n.length)break;f=n[c++]}else{if((c=n.next()).done)break;f=c.value}var x=t(f,2),_=x[0],b=x[1];o[_]=b()}var y={},S=s._fileSources,v=Array.isArray(S),p=0;for(S=v?S:S["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var k;if(v){if(p>=S.length)break;k=S[p++]}else{if((p=S.next()).done)break;k=p.value}var D=t(k,2),E=D[0],h=D[1];y[E]=h()}l('BugReporting extraData:',o);var B=r(d[6]).BugReporting;B&&B.setExtraData&&B.setExtraData(o,y);var R=r(d[6]).RedBox;return R&&R.setExtraData&&R.setExtraData(o,'From BugReporting.js'),{extras:o,files:y}}}]),s})();s._extraSources=new Map,s._fileSources=new Map,s._subscription=null,s._redboxSubscription=null,m.exports=s},330,[26,8,9,45,152,331,22]); -__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(){try{return"React tree dumps have been temporarily disabled while React is upgraded to Fiber."}catch(t){return'Failed to dump react tree: '+t}}},331,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=[],t={name:'default'},c={setActiveScene:function(c){t=c,n.forEach(function(n){return n(t)})},getActiveScene:function(){return t},addActiveSceneChangedListener:function(t){return n.push(t),{remove:function(){n=n.filter(function(n){return t!==n})}}}};m.exports=c},332,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),o=t(r(d[2])),l=r(d[3]),p=r(d[4]),c=r(d[5]),u=r(d[6]);r(d[7]),m.exports=function(t,s,_,f,v,E){u(_,'Expect to have a valid rootTag, instead got ',_);var T=p.createElement(l,{rootTag:_,WrapperComponent:f},p.createElement(t,(0,n.default)({},s,{rootTag:_})),!0===v&&!0===E?p.createElement(c,null):null);if(null!=t.prototype&&!0===t.prototype.unstable_isAsyncReactComponent){var y=p.unstable_ConcurrentMode;T=p.createElement(y,null,T)}o.default.startTimespan('renderApplication_React_render'),v?r(d[8]).render(T,_):r(d[9]).render(T,_),o.default.stopTimespan('renderApplication_React_render')}},333,[3,25,151,286,55,334,17,335,336,87]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),c=r(d[3]);var f=n.create({container:{alignItems:'center',justifyContent:'center',backgroundColor:'rgba(0,0,0, 0.25)',position:'absolute',top:0,right:0,padding:2},text:{fontSize:6,color:'#ffffff'}});m.exports=function(){return t.createElement(c,{style:f.container},t.createElement(o,{style:f.text},"FABRIC"))}},334,[55,59,183,84]); -__d(function(g,r,i,a,m,e,d){'use strict';var n,t=r(d[0]),o=r(d[1]);function v(){}if(t.isTV){var u=new o,f=new Set;u.enable(this,function(t,o){if(o&&'menu'===o.eventType){for(var v=!0,u=Array.from(f.values()).reverse(),s=0;sthis.eventPool.length&&this.eventPool.push(e)}function ne(e){e.eventPool=[],e.getPooled=ee,e.release=te}o(Z.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=J)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=J)},persist:function(){this.isPersistent=J},isPersistent:K,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=K,this._dispatchInstances=this._dispatchListeners=null}}),Z.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},Z.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var i=new t;return o(i,n.prototype),n.prototype=i,n.prototype.constructor=n,n.Interface=o({},r.Interface,e),n.extend=r.extend,ne(n),n},ne(Z);var re=Z.extend({touchHistory:function(){return null}});function ie(e){return"topTouchStart"===e}function ae(e){return"topTouchMove"===e}var le=["topTouchStart"],oe=["topTouchMove"],ue=["topTouchCancel","topTouchEnd"],se=[],ce={touchBank:se,numberActiveTouches:0,indexOfSingleActiveTouch:-1,mostRecentTimeStamp:0};function fe(e){return e.timeStamp||e.timestamp}function de(e){return y(null!=(e=e.identifier),"Touch object is missing identifier."),e}function pe(e){var t=de(e),n=se[t];n?(n.touchActive=!0,n.startPageX=e.pageX,n.startPageY=e.pageY,n.startTimeStamp=fe(e),n.currentPageX=e.pageX,n.currentPageY=e.pageY,n.currentTimeStamp=fe(e),n.previousPageX=e.pageX,n.previousPageY=e.pageY,n.previousTimeStamp=fe(e)):(n={touchActive:!0,startPageX:e.pageX,startPageY:e.pageY,startTimeStamp:fe(e),currentPageX:e.pageX,currentPageY:e.pageY,currentTimeStamp:fe(e),previousPageX:e.pageX,previousPageY:e.pageY,previousTimeStamp:fe(e)},se[t]=n),ce.mostRecentTimeStamp=fe(e)}function me(e){var t=se[de(e)];t?(t.touchActive=!0,t.previousPageX=t.currentPageX,t.previousPageY=t.currentPageY,t.previousTimeStamp=t.currentTimeStamp,t.currentPageX=e.pageX,t.currentPageY=e.pageY,t.currentTimeStamp=fe(e),ce.mostRecentTimeStamp=fe(e)):console.error("Cannot record touch move without a touch start.\nTouch Move: %s\n","Touch Bank: %s",ge(e),ye())}function he(e){var t=se[de(e)];t?(t.touchActive=!1,t.previousPageX=t.currentPageX,t.previousPageY=t.currentPageY,t.previousTimeStamp=t.currentTimeStamp,t.currentPageX=e.pageX,t.currentPageY=e.pageY,t.currentTimeStamp=fe(e),ce.mostRecentTimeStamp=fe(e)):console.error("Cannot record touch end without a touch start.\nTouch End: %s\n","Touch Bank: %s",ge(e),ye())}function ge(e){return JSON.stringify({identifier:e.identifier,pageX:e.pageX,pageY:e.pageY,timestamp:fe(e)})}function ye(){var e=JSON.stringify(se.slice(0,20));return 20 component."),n=gt,gt+=2,{node:m.createNode(n,"RCTRawText",t,{text:e},r)}}var bt=setTimeout,Tt=clearTimeout;function xt(e){var t=e.node,n=nt(null,qe,{style:{display:"none"}},e.canonical.viewConfig.validAttributes);return{node:m.cloneNodeWithNewProps(t,n),canonical:e.canonical}}function St(e,t,n){var r=e.canonical.viewConfig;return t=e.node,n=nt(null,o({},n,{style:[n.style,{display:"none"}]}),n,r.validAttributes),{node:m.cloneNodeWithNewProps(t,n),canonical:e.canonical}}var kt=/^(.*)[\\\/]/;function Pt(e){var t="";do{e:switch(e.tag){case 3:case 4:case 6:case 7:case 10:case 9:var n="";break e;default:var r=e._debugOwner,i=e._debugSource,a=Le(e.type);n=null,r&&(n=Le(r.type)),r=a,a="",i?a=" (at "+i.fileName.replace(kt,"")+":"+i.lineNumber+")":n&&(a=" (created by "+n+")"),n="\n in "+(r||"Unknown")+a}t+=n,e=e.return}while(e);return t}new Set;var Et=[],Ct=-1;function wt(e){0>Ct||(e.current=Et[Ct],Et[Ct]=null,Ct--)}function Rt(e,t){Et[++Ct]=e.current,e.current=t}var _t={},Nt={current:_t},zt={current:!1},Ut=_t;function It(e,t){var n=e.type.contextTypes;if(!n)return _t;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,a={};for(i in n)a[i]=t[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function At(e){return null!==(e=e.childContextTypes)&&void 0!==e}function Dt(e){wt(zt),wt(Nt)}function Mt(e){wt(zt),wt(Nt)}function Wt(e,t,n){y(Nt.current===_t,"Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue."),Rt(Nt,t),Rt(zt,n)}function Ot(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var i in r=r.getChildContext())y(i in e,'%s.getChildContext(): key "%s" is not defined in childContextTypes.',Le(t)||"Unknown",i);return o({},n,r)}function jt(e){var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||_t,Ut=Nt.current,Rt(Nt,t),Rt(zt,zt.current),!0}function Ft(e,t,n){var r=e.stateNode;y(r,"Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue."),n?(t=Ot(e,t,Ut),r.__reactInternalMemoizedMergedChildContext=t,wt(zt),wt(Nt),Rt(Nt,t)):wt(zt),Rt(zt,n)}var Ht=null,Bt=null;function Lt(e){return function(t){try{return e(t)}catch(e){}}}function Qt(e){if("undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var n=t.inject(e);Ht=Lt(function(e){return t.onCommitFiberRoot(n,e)}),Bt=Lt(function(e){return t.onCommitFiberUnmount(n,e)})}catch(e){}return!0}function Vt(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.contextDependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Yt(e,t,n,r){return new Vt(e,t,n,r)}function Xt(e){return!(!(e=e.prototype)||!e.isReactComponent)}function $t(e){if("function"==typeof e)return Xt(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===We)return 11;if(e===je)return 14}return 2}function qt(e,t){var n=e.alternate;return null===n?((n=Yt(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.effectTag=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childExpirationTime=e.childExpirationTime,n.expirationTime=e.expirationTime,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,n.contextDependencies=e.contextDependencies,n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Gt(e,t,n,r,i,a){var l=2;if(r=e,"function"==typeof e)Xt(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case ze:return Jt(n.children,i,a,t);case Me:return Kt(n,3|i,a,t);case Ue:return Kt(n,2|i,a,t);case Ie:return(e=Yt(12,n,t,4|i)).elementType=Ie,e.type=Ie,e.expirationTime=a,e;case Oe:return(e=Yt(13,n,t,i)).elementType=Oe,e.type=Oe,e.expirationTime=a,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case Ae:l=10;break e;case De:l=9;break e;case We:l=11;break e;case je:l=14;break e;case Fe:l=16,r=null;break e}y(!1,"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",null==e?e:typeof e,"")}return(t=Yt(l,n,t,i)).elementType=e,t.type=r,t.expirationTime=a,t}function Jt(e,t,n,r){return(e=Yt(7,e,r,t)).expirationTime=n,e}function Kt(e,t,n,r){return e=Yt(8,e,r,t),t=0==(1&t)?Ue:Me,e.elementType=t,e.type=t,e.expirationTime=n,e}function Zt(e,t,n){return(e=Yt(6,e,null,t)).expirationTime=n,e}function en(e,t,n){return(t=Yt(4,null!==e.children?e.children:[],e.key,t)).expirationTime=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function tn(e,t){e.didError=!1;var n=e.earliestPendingTime;0===n?e.earliestPendingTime=e.latestPendingTime=t:nt&&(e.latestPendingTime=t),ln(t,e)}function nn(e,t){if(e.didError=!1,0===t)e.earliestPendingTime=0,e.latestPendingTime=0,e.earliestSuspendedTime=0,e.latestSuspendedTime=0,e.latestPingedTime=0;else{tt?e.earliestPendingTime=e.latestPendingTime=0:e.earliestPendingTime>t&&(e.earliestPendingTime=e.latestPendingTime)),0===(n=e.earliestSuspendedTime)?tn(e,t):tn&&tn(e,t)}ln(0,e)}function rn(e,t){e.didError=!1,e.latestPingedTime>=t&&(e.latestPingedTime=0);var n=e.earliestPendingTime,r=e.latestPendingTime;n===t?e.earliestPendingTime=r===t?e.latestPendingTime=0:r:r===t&&(e.latestPendingTime=n),n=e.earliestSuspendedTime,r=e.latestSuspendedTime,0===n?e.earliestSuspendedTime=e.latestSuspendedTime=t:nt&&(e.latestSuspendedTime=t),ln(t,e)}function an(e,t){var n=e.earliestPendingTime;return e=e.earliestSuspendedTime,n>t&&(t=n),e>t&&(t=e),t}function ln(e,t){var n=t.earliestSuspendedTime,r=t.latestSuspendedTime,i=t.earliestPendingTime,a=t.latestPingedTime;0===(i=0!==i?i:a)&&(0===e||re&&(e=n),t.nextExpirationTimeToWorkOn=i,t.expirationTime=e}function on(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t}var un=Object.prototype.hasOwnProperty;function sn(e,t){if(on(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;rh?(g=m,m=null):g=m.sibling;var y=d(i,m,o[h],u);if(null===y){null===m&&(m=g);break}e&&m&&null===y.alternate&&t(i,m),l=a(y,l,h),null===c?s=y:c.sibling=y,c=y,m=g}if(h===o.length)return n(i,m),s;if(null===m){for(;hh?(g=m,m=null):g=m.sibling;var b=d(i,m,v.value,u);if(null===b){m||(m=g);break}e&&m&&null===b.alternate&&t(i,m),l=a(b,l,h),null===c?s=b:c.sibling=b,c=b,m=g}if(v.done)return n(i,m),s;if(null===m){for(;!v.done;h++,v=o.next())null!==(v=f(i,v.value,u))&&(l=a(v,l,h),null===c?s=v:c.sibling=v,c=v);return s}for(m=r(i,m);!v.done;h++,v=o.next())null!==(v=p(m,i,h,v.value,u))&&(e&&null!==v.alternate&&m.delete(null===v.key?h:v.key),l=a(v,l,h),null===c?s=v:c.sibling=v,c=v);return e&&m.forEach(function(e){return t(i,e)}),s}return function(e,r,a,o){var u="object"==typeof a&&null!==a&&a.type===ze&&null===a.key;u&&(a=a.props.children);var s="object"==typeof a&&null!==a;if(s)switch(a.$$typeof){case _e:e:{for(s=a.key,u=r;null!==u;){if(u.key===s){if(7===u.tag?a.type===ze:u.elementType===a.type){n(e,u.sibling),(r=i(u,a.type===ze?a.props.children:a.props)).ref=Tn(e,u,a),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}a.type===ze?((r=Jt(a.props.children,e.mode,o,a.key)).return=e,e=r):((o=Gt(a.type,a.key,a.props,null,e.mode,o)).ref=Tn(e,r,a),o.return=e,e=o)}return l(e);case Ne:e:{for(u=a.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),(r=i(r,a.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=en(a,e.mode,o)).return=e,e=r}return l(e)}if("string"==typeof a||"number"==typeof a)return a=""+a,null!==r&&6===r.tag?(n(e,r.sibling),(r=i(r,a)).return=e,e=r):(n(e,r),(r=Zt(a,e.mode,o)).return=e,e=r),l(e);if(bn(a))return m(e,r,a,o);if(Be(a))return h(e,r,a,o);if(s&&xn(e,a),void 0===a&&!u)switch(e.tag){case 1:case 0:y(!1,"%s(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.",(o=e.type).displayName||o.name||"Component")}return n(e,r)}}var kn=Sn(!0),Pn=Sn(!1),En={},Cn={current:En},wn={current:En},Rn={current:En};function _n(e){return y(e!==En,"Expected host context to exist. This error is likely caused by a bug in React. Please file an issue."),e}function Nn(e,t){Rt(Rn,t),Rt(wn,e),Rt(Cn,En),wt(Cn),Rt(Cn,{isInAParentText:!1})}function zn(e){wt(Cn),wt(wn),wt(Rn)}function Un(e){_n(Rn.current);var t=_n(Cn.current),n=e.type;n="AndroidTextInput"===n||"RCTMultilineTextInputView"===n||"RCTSinglelineTextInputView"===n||"RCTText"===n||"RCTVirtualText"===n,t!==(n=t.isInAParentText!==n?{isInAParentText:n}:t)&&(Rt(wn,e),Rt(Cn,n))}function In(e){wn.current===e&&(wt(Cn),wt(wn))}var An=0,Dn=2,Mn=4,Wn=8,On=16,jn=32,Fn=64,Hn=128,Bn=we.ReactCurrentDispatcher,Ln=0,Qn=null,Vn=null,Yn=null,Xn=null,$n=null,qn=null,Gn=0,Jn=null,Kn=0,Zn=!1,er=null,tr=0;function nr(){y(!1,"Hooks can only be called inside the body of a function component. (https://fb.me/react-invalid-hook-call)")}function rr(e,t){if(null===t)return!1;for(var n=0;nGn&&(Gn=c)):a=u.eagerReducer===e?u.eagerState:e(a,u.action),l=u,u=u.next}while(null!==u&&u!==r);s||(o=l,i=a),on(a,t.memoizedState)||(Er=!0),t.memoizedState=a,t.baseUpdate=o,t.baseState=i,n.eagerReducer=e,n.eagerState=a}return[t.memoizedState,n.dispatch]}function cr(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===Jn?(Jn={lastEffect:null}).lastEffect=e.next=e:null===(t=Jn.lastEffect)?Jn.lastEffect=e.next=e:(n=t.next,t.next=e,e.next=n,Jn.lastEffect=e),e}function fr(e,t,n,r){var i=lr();Kn|=e,i.memoizedState=cr(t,n,void 0,void 0===r?null:r)}function dr(e,t,n,r){var i=or();r=void 0===r?null:r;var a=void 0;if(null!==Vn){var l=Vn.memoizedState;if(a=l.destroy,null!==r&&rr(r,l.deps))return void cr(An,n,a,r)}Kn|=e,i.memoizedState=cr(t,n,a,r)}function pr(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!==t&&void 0!==t?(e=e(),t.current=e,function(){t.current=null}):void 0}function mr(){}function hr(e,t,n){y(25>tr,"Too many re-renders. React limits the number of renders to prevent an infinite loop.");var r=e.alternate;if(e===Qn||null!==r&&r===Qn)if(Zn=!0,e={expirationTime:Ln,action:n,eagerReducer:null,eagerState:null,next:null},null===er&&(er=new Map),void 0===(n=er.get(t)))er.set(t,e);else{for(t=n;null!==t.next;)t=t.next;t.next=e}else{Bi();var i=Ta(),a={expirationTime:i=$i(i,e),action:n,eagerReducer:null,eagerState:null,next:null},l=t.last;if(null===l)a.next=a;else{var o=l.next;null!==o&&(a.next=o),l.next=a}if(t.last=a,0===e.expirationTime&&(null===r||0===r.expirationTime)&&null!==(r=t.eagerReducer))try{var u=t.eagerState,s=r(u,n);if(a.eagerReducer=r,a.eagerState=s,on(s,u))return}catch(e){}Gi(e,i)}}var gr={readContext:Vr,useCallback:nr,useContext:nr,useEffect:nr,useImperativeHandle:nr,useLayoutEffect:nr,useMemo:nr,useReducer:nr,useRef:nr,useState:nr,useDebugValue:nr},yr={readContext:Vr,useCallback:function(e,t){return lr().memoizedState=[e,void 0===t?null:t],e},useContext:Vr,useEffect:function(e,t){return fr(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,fr(4,36,pr.bind(null,t,e),n)},useLayoutEffect:function(e,t){return fr(4,36,e,t)},useMemo:function(e,t){var n=lr();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=lr();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={last:null,dispatch:null,eagerReducer:e,eagerState:t}).dispatch=hr.bind(null,Qn,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},lr().memoizedState=e},useState:function(e){var t=lr();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={last:null,dispatch:null,eagerReducer:ur,eagerState:e}).dispatch=hr.bind(null,Qn,e),[t.memoizedState,e]},useDebugValue:mr},vr={readContext:Vr,useCallback:function(e,t){var n=or();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&rr(t,r[1])?r[0]:(n.memoizedState=[e,t],e)},useContext:Vr,useEffect:function(e,t){return dr(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,dr(4,36,pr.bind(null,t,e),n)},useLayoutEffect:function(e,t){return dr(4,36,e,t)},useMemo:function(e,t){var n=or();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&rr(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)},useReducer:sr,useRef:function(){return or().memoizedState},useState:function(e){return sr(ur)},useDebugValue:mr},br=null,Tr=null,xr=!1;function Sr(e,t){switch(e.tag){case 5:return null!==(t=ht(e.type,e.pendingProps))&&(e.stateNode=t,!0);case 6:return null!==(t=ht(e.pendingProps))&&(e.stateNode=t,!0);case 13:default:return!1}}function kr(e){if(xr){var t=Tr;if(t){var n=t;if(!Sr(e,t)){if(!(t=ht())||!Sr(e,t))return e.effectTag|=2,xr=!1,void(br=e);var r=br,i=Yt(5,null,null,0);i.elementType="DELETED",i.type="DELETED",i.stateNode=n,i.return=r,i.effectTag=8,null!==r.lastEffect?(r.lastEffect.nextEffect=i,r.lastEffect=i):r.firstEffect=r.lastEffect=i}br=e,Tr=ht()}else e.effectTag|=2,xr=!1,br=e}}var Pr=we.ReactCurrentOwner,Er=!1;function Cr(e,t,n,r){t.child=null===e?Pn(t,null,n,r):kn(t,e.child,n,r)}function wr(e,t,n,r,i){n=n.render;var a=t.ref;return Qr(t,i),r=ir(e,t,n,r,a,i),null===e||Er?(t.effectTag|=1,Cr(e,t,r,i),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=i&&(e.expirationTime=0),Mr(e,t,i))}function Rr(e,t,n,r,i,a){if(null===e){var l=n.type;return"function"!=typeof l||Xt(l)||void 0!==l.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Gt(n.type,null,r,null,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=l,_r(e,t,l,r,i,a))}return l=e.child,i=n?Dr(e,t,n):null!==(t=Mr(e,t,n))?t.sibling:null}return Mr(e,t,n)}}else Er=!1;switch(t.expirationTime=0,t.tag){case 2:r=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps;var i=It(t,Nt.current);if(Qr(t,n),i=ir(null,t,r,e,i,n),t.effectTag|=1,"object"==typeof i&&null!==i&&"function"==typeof i.render&&void 0===i.$$typeof){if(t.tag=1,ar(),At(r)){var a=!0;jt(t)}else a=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null;var l=r.getDerivedStateFromProps;"function"==typeof l&&pn(t,r,l,e),i.updater=mn,t.stateNode=i,i._reactInternalFiber=t,vn(t,r,e,n),t=Ir(null,t,r,!0,a,n)}else t.tag=0,Cr(null,t,i,n),t=t.child;return t;case 16:switch(i=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),a=t.pendingProps,e=fn(i),t.type=e,i=t.tag=$t(e),a=cn(e,a),l=void 0,i){case 0:l=zr(null,t,e,a,n);break;case 1:l=Ur(null,t,e,a,n);break;case 11:l=wr(null,t,e,a,n);break;case 14:l=Rr(null,t,e,cn(e.type,a),r,n);break;default:y(!1,"Element type is invalid. Received a promise that resolves to: %s. Lazy element type must resolve to a class or function.%s",e,"")}return l;case 0:return r=t.type,i=t.pendingProps,zr(e,t,r,i=t.elementType===r?i:cn(r,i),n);case 1:return r=t.type,i=t.pendingProps,Ur(e,t,r,i=t.elementType===r?i:cn(r,i),n);case 3:return Ar(t),y(null!==(r=t.updateQueue),"If the root does not have an updateQueue, we should have already bailed out. This error is likely caused by a bug in React. Please file an issue."),i=null!==(i=t.memoizedState)?i.element:null,ai(t,r,t.pendingProps,null,n),(r=t.memoizedState.element)===i?t=Mr(e,t,n):(Cr(e,t,r,n),t=t.child),t;case 5:return Un(t),null===e&&kr(t),r=t.pendingProps.children,Nr(e,t),Cr(e,t,r,n),t=t.child;case 6:return null===e&&kr(t),null;case 13:return Dr(e,t,n);case 4:return Nn(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=kn(t,null,r,n):Cr(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,wr(e,t,r,i=t.elementType===r?i:cn(r,i),n);case 7:return Cr(e,t,t.pendingProps,n),t.child;case 8:case 12:return Cr(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,l=t.memoizedProps,Br(t,a=i.value),null!==l){var o=l.value;if(0===(a=on(o,a)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(o,a):1073741823))){if(l.children===i.children&&!zt.current){t=Mr(e,t,n);break e}}else for(null!==(o=t.child)&&(o.return=t);null!==o;){var u=o.contextDependencies;if(null!==u){l=o.child;for(var s=u.first;null!==s;){if(s.context===r&&0!=(s.observedBits&a)){1===o.tag&&((s=Zr(n)).tag=$r,ti(o,s)),o.expirationTime=t&&(Er=!0),e.contextDependencies=null}function Vr(e,t){return Hr!==e&&!1!==t&&0!==t&&("number"==typeof t&&1073741823!==t||(Hr=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Fr?(y(null!==jr,"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."),Fr=t,jr.contextDependencies={first:t,expirationTime:0}):Fr=Fr.next=t),e._currentValue2}var Yr=0,Xr=1,$r=2,qr=3,Gr=!1;function Jr(e){return{baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Kr(e){return{baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Zr(e){return{expirationTime:e,tag:Yr,payload:null,callback:null,next:null,nextEffect:null}}function ei(e,t){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=t:(e.lastUpdate.next=t,e.lastUpdate=t)}function ti(e,t){var n=e.alternate;if(null===n){var r=e.updateQueue,i=null;null===r&&(r=e.updateQueue=Jr(e.memoizedState))}else r=e.updateQueue,i=n.updateQueue,null===r?null===i?(r=e.updateQueue=Jr(e.memoizedState),i=n.updateQueue=Jr(n.memoizedState)):r=e.updateQueue=Kr(i):null===i&&(i=n.updateQueue=Kr(r));null===i||r===i?ei(r,t):null===r.lastUpdate||null===i.lastUpdate?(ei(r,t),ei(i,t)):(ei(r,t),i.lastUpdate=t)}function ni(e,t){var n=e.updateQueue;null===(n=null===n?e.updateQueue=Jr(e.memoizedState):ri(e,n)).lastCapturedUpdate?n.firstCapturedUpdate=n.lastCapturedUpdate=t:(n.lastCapturedUpdate.next=t,n.lastCapturedUpdate=t)}function ri(e,t){var n=e.alternate;return null!==n&&t===n.updateQueue&&(t=e.updateQueue=Kr(t)),t}function ii(e,t,n,r,i,a){switch(n.tag){case Xr:return"function"==typeof(e=n.payload)?e.call(a,r,i):e;case qr:e.effectTag=-2049&e.effectTag|64;case Yr:if(null===(i="function"==typeof(e=n.payload)?e.call(a,r,i):e)||void 0===i)break;return o({},r,i);case $r:Gr=!0}return r}function ai(e,t,n,r,i){Gr=!1;for(var a=(t=ri(e,t)).baseState,l=null,o=0,u=t.firstUpdate,s=a;null!==u;){var c=u.expirationTime;cr?i:r),Pi.current=null,r=void 0,1n?t:n)&&(Mi=null),ba(e,t)}function Qi(e){for(;;){var t=e.alternate,n=e.return,r=e.sibling;if(0==(1024&e.effectTag)){Ci=e;e:{var i=t,a=Ri,l=(t=e).pendingProps;switch(t.tag){case 2:case 16:break;case 15:case 0:break;case 1:At(t.type)&&Dt();break;case 3:zn(),Mt(),(l=t.stateNode).pendingContext&&(l.context=l.pendingContext,l.pendingContext=null),null!==i&&null!==i.child||(t.effectTag&=-3),ci(t);break;case 5:In(t),a=_n(Rn.current);var o=t.type;if(null!==i&&null!=t.stateNode)fi(i,t,o,l,a),i.ref!==t.ref&&(t.effectTag|=128);else if(l){var s=_n(Cn.current),c=t;i=gt,gt+=2;var f=u.get(o);y("RCTView"!==o||!s.isInAParentText,"Nesting of within is not currently supported."),o=nt(null,qe,l,f.validAttributes),a=m.createNode(i,f.uiViewClassName,a,o,c),l=new yt(i,f,l),si(l={node:a,canonical:l},t,!1,!1),t.stateNode=l,null!==t.ref&&(t.effectTag|=128)}else y(null!==t.stateNode,"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.");break;case 6:i&&null!=t.stateNode?di(i,t,i.memoizedProps,l):("string"!=typeof l&&y(null!==t.stateNode,"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue."),i=_n(Rn.current),a=_n(Cn.current),t.stateNode=vt(l,i,a,t));break;case 11:break;case 13:if(l=t.memoizedState,0!=(64&t.effectTag)){t.expirationTime=a,Ci=t;break e}l=null!==l,a=null!==i&&null!==i.memoizedState,null!==i&&!l&&a&&(null!==(i=i.child.sibling)&&(null!==(f=t.firstEffect)?(t.firstEffect=i,i.nextEffect=f):(t.firstEffect=t.lastEffect=i,i.nextEffect=null),i.effectTag=8)),(l||a)&&(t.effectTag|=4);break;case 7:case 8:case 12:break;case 4:zn(),ci(t);break;case 10:Lr(t);break;case 9:case 14:break;case 17:At(t.type)&&Dt();break;case 18:break;default:y(!1,"Unknown unit of work tag. This error is likely caused by a bug in React. Please file an issue.")}Ci=null}if(t=e,1===Ri||1!==t.childExpirationTime){for(l=0,i=t.child;null!==i;)a=i.expirationTime,f=i.childExpirationTime,a>l&&(l=a),f>l&&(l=f),i=i.sibling;t.childExpirationTime=l}if(null!==Ci)return Ci;null!==n&&0==(1024&n.effectTag)&&(null===n.firstEffect&&(n.firstEffect=e.firstEffect),null!==e.lastEffect&&(null!==n.lastEffect&&(n.lastEffect.nextEffect=e.firstEffect),n.lastEffect=e.lastEffect),1=m?d=0:(-1===d||m component higher in the tree to provide a loading indicator or placeholder to display."+Pt(s))}Ni=!0,c=ui(c,s),o=u;do{switch(o.tag){case 3:o.effectTag|=2048,o.expirationTime=l,ni(o,l=Ti(o,c,l));break e;case 1:if(d=c,p=o.type,s=o.stateNode,0==(64&o.effectTag)&&("function"==typeof p.getDerivedStateFromError||null!==s&&"function"==typeof s.componentDidCatch&&(null===Mi||!Mi.has(s)))){o.effectTag|=2048,o.expirationTime=l,ni(o,l=xi(o,d,l));break e}}o=o.return}while(null!==o)}Ci=Qi(a);continue}i=!0,wa(t)}}break}if(Ei=!1,ki.current=n,Hr=Fr=jr=null,ar(),i)wi=null,e.finishedWork=null;else if(null!==Ci)e.finishedWork=null;else{if(y(null!==(n=e.current.alternate),"Finished root should have a work-in-progress. This error is likely caused by a bug in React. Please file an issue."),wi=null,Ni){if(i=e.latestPendingTime,a=e.latestSuspendedTime,l=e.latestPingedTime,0!==i&&it?0:t)):(e.pendingCommitExpirationTime=r,e.finishedWork=n)}}function Xi(e,t){for(var n=e.return;null!==n;){switch(n.tag){case 1:var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Mi||!Mi.has(r)))return ti(n,e=xi(n,e=ui(t,e),1073741823)),void Gi(n,1073741823);break;case 3:return ti(n,e=Ti(n,e=ui(t,e),1073741823)),void Gi(n,1073741823)}n=n.return}3===e.tag&&(ti(e,n=Ti(e,n=ui(t,e),1073741823)),Gi(e,1073741823))}function $i(e,t){var n=h.unstable_getCurrentPriorityLevel(),r=void 0;if(0==(1&t.mode))r=1073741823;else if(Ei&&!Ui)r=Ri;else{switch(n){case h.unstable_ImmediatePriority:r=1073741823;break;case h.unstable_UserBlockingPriority:r=1073741822-10*(1+((1073741822-e+15)/10|0));break;case h.unstable_NormalPriority:r=1073741822-25*(1+((1073741822-e+500)/25|0));break;case h.unstable_LowPriority:case h.unstable_IdlePriority:r=1;break;default:y(!1,"Unknown priority level. This error is likely caused by a bug in React. Please file an issue.")}null!==wi&&r===Ri&&--r}return n===h.unstable_UserBlockingPriority&&(0===ia||r=r&&(e.didError=!1,(0===(t=e.latestPingedTime)||t>n)&&(e.latestPingedTime=n),ln(n,e),0!==(n=e.expirationTime)&&xa(e,n)))}function Gi(e,t){e.expirationTimeRi&&Wi(),tn(e,t),Ei&&!Ui&&wi===e||xa(e,e.expirationTime),pa>da&&(pa=0,y(!1,"Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.")))}var Ji=null,Ki=null,Zi=0,ea=void 0,ta=!1,na=null,ra=0,ia=0,aa=!1,la=null,oa=!1,ua=null,sa=rt(),ca=1073741822-(sa/10|0),fa=ca,da=50,pa=0,ma=null;function ha(){ca=1073741822-((rt()-sa)/10|0)}function ga(e,t){if(0!==Zi){if(te.expirationTime&&(e.expirationTime=t),ta||oa||(1073741823===t?Pa(1073741823,!1):ga(e,t))}function Sa(){var e=0,t=null;if(null!==Ki)for(var n=Ki,r=Ji;null!==r;){var i=r.expirationTime;if(0===i){if(y(null!==n&&null!==Ki,"Should have a previous and last root. This error is likely caused by a bug in React. Please file an issue."),r===r.nextScheduledRoot){Ji=Ki=r.nextScheduledRoot=null;break}if(r===Ji)Ji=i=r.nextScheduledRoot,Ki.nextScheduledRoot=i,r.nextScheduledRoot=null;else{if(r===Ki){(Ki=n).nextScheduledRoot=Ji,r.nextScheduledRoot=null;break}n.nextScheduledRoot=r.nextScheduledRoot,r.nextScheduledRoot=null}r=n.nextScheduledRoot}else{if(i>e&&(e=i,t=r),r===Ki)break;if(1073741823===e)break;n=r,r=r.nextScheduledRoot}}na=t,ra=e}function ka(e){if(e&&null!==Ji){ha(),e=Ji;do{var t=e.expirationTime;0!==t&&ca<=t&&(e.nextExpirationTimeToWorkOn=ca),e=e.nextScheduledRoot}while(e!==Ji)}Pa(0,!0)}function Pa(e,t){if(Sa(),t)for(ha(),fa=ca;null!==na&&0!==ra&&e<=ra&&!(at<=rt()&&ca>ra);)Ea(na,ra,ca>ra),Sa(),ha(),fa=ca;else for(;null!==na&&0!==ra&&e<=ra;)Ea(na,ra,!1),Sa();if(t&&(Zi=0,ea=null),0!==ra&&ga(na,ra),pa=0,ma=null,null!==ua)for(e=ua,ua=null,t=0;t=n&&(null===ua?ua=[r]:ua.push(r),r._defer))return e.finishedWork=t,void(e.expirationTime=0);e.finishedWork=null,e===ma?pa++:(ma=e,pa=0),h.unstable_runWithPriority(h.unstable_ImmediatePriority,function(){Li(e,t)})}function wa(e){y(null!==na,"Should be working on a root. This error is likely caused by a bug in React. Please file an issue."),na.expirationTime=0,aa||(aa=!0,la=e)}function Ra(e){var t=e._reactInternalFiber;return void 0===t&&("function"==typeof e.render?y(!1,"Unable to find node on an unmounted component."):y(!1,"Argument appears to not be a ReactComponent. Keys: %s",Object.keys(e))),null===(e=Xe(t))?null:e.stateNode}function _a(e,t,n,r){var i=t.current,a=Ta();i=$i(a,i),a=t.current;e:if(n){n=n._reactInternalFiber;t:{y(2===Qe(n)&&1===n.tag,"Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.");var l=n;do{switch(l.tag){case 3:l=l.stateNode.context;break t;case 1:if(At(l.type)){l=l.stateNode.__reactInternalMemoizedMergedChildContext;break t}}l=l.return}while(null!==l);y(!1,"Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue."),l=void 0}if(1===n.tag){var o=n.type;if(At(o)){n=Ot(n,o,l);break e}}n=l}else n=_t;return null===t.context?t.context=n:t.pendingContext=n,t=r,(r=Zr(i)).payload={element:e},null!==(t=void 0===t?null:t)&&(r.callback=t),Bi(),ti(a,r),Gi(a,i),i}function Na(e,t,n){var r=3=0&&(s='video'),n.saveToCameraRoll(o,s)}},{key:"getPhotos",value:function(o){if(arguments.length>1){console.warn('CameraRoll.getPhotos(tag, success, error) is deprecated. Use the returned Promise instead');var t=arguments[1],s=arguments[2]||function(){};n.getPhotos(o).then(t,s)}return n.getPhotos(o)}}]),s})());c.GroupTypesOptions=h,c.AssetTypeOptions=p,m.exports=c},341,[8,9,68,22,187,17]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]).Clipboard;m.exports={getString:function(){return t.getString()},setString:function(n){t.setString(n)}}},342,[22]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=(function(){function s(){n(this,s)}return o(s,null,[{key:"open",value:function(n){return t.async(function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error('DatePickerAndroid is not supported on this platform.');case 1:case"end":return t.stop()}})}}]),s})();s.dateSetAction='dateSetAction',s.dismissedAction='dismissedAction',m.exports=s},343,[142,8,9]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);function n(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(t);n&&(c=c.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,c)}return o}function o(o){for(var c=1;c1&&void 0!==arguments[1]?arguments[1]:{};return u('object'==typeof t&&null!==t,'Content to share must be a valid object'),u('string'==typeof t.url||'string'==typeof t.message,'At least one of URL and message is required'),u('object'==typeof n&&null!==n,'Options must be a valid object'),new Promise(function(o,c){p.showShareActionSheetWithOptions(s({},t,{},n,{tintColor:f(n.tintColor)}),function(t){return c(t)},function(t,n){o(t?{action:'sharedAction',activityType:n}:{action:'dismissedAction'})})})}},{key:"sharedAction",get:function(){return'sharedAction'}},{key:"dismissedAction",get:function(){return'dismissedAction'}}]),t})());m.exports=y},348,[53,8,9,54,17,78,22]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),u=r(d[3]),c=r(d[4]),o=r(d[5]).StatusBarManager,f=(function(o){function f(){return t(this,f),n(this,s(f).apply(this,arguments))}return u(f,c),f})();m.exports=new f(o)},349,[8,10,13,14,123,22]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n={open:function(n){return t.async(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",Promise.reject({message:'TimePickerAndroid is not supported on this platform.'}));case 1:case"end":return t.stop()}})}};m.exports=n},350,[142]); -__d(function(g,r,i,a,m,e,d){'use strict';var o=r(d[0]),t={show:function(t,s){o(!1,'ToastAndroid is not supported on this platform.')}};m.exports=t},351,[19]); -__d(function(g,r,i,a,m,e,d){'use strict';var A=r(d[0])({BOM:"\ufeff",BULLET:"\u2022",BULLET_SP:"\xa0\u2022\xa0",MIDDOT:"\xb7",MIDDOT_SP:"\xa0\xb7\xa0",MIDDOT_KATAKANA:"\u30fb",MDASH:"\u2014",MDASH_SP:"\xa0\u2014\xa0",NDASH:"\u2013",NDASH_SP:"\xa0\u2013\xa0",NBSP:"\xa0",PIZZA:"\ud83c\udf55",TRIANGLE_LEFT:"\u25c0",TRIANGLE_RIGHT:"\u25b6"});m.exports=A},352,[38]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]).Vibration,n=(r(d[1]),!1),o=0;function u(u){var v=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n||(n=!0,0===u[0]&&(t.vibrate(),u=u.slice(1)),0!==u.length?setTimeout(function(){return f(++o,u,v,1)},u[0]):n=!1)}function f(u,v,c,b){if(n&&u===o){if(t.vibrate(),b>=v.length){if(!c)return void(n=!1);b=0}setTimeout(function(){return f(u,v,c,b+1)},v[b])}}var v={vibrate:function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:400,f=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!n)if('number'==typeof o)t.vibrate();else{if(!Array.isArray(o))throw new Error('Vibration pattern should be a number or array');u(o,f)}},cancel:function(){n=!1}};m.exports=v},353,[22,54]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]).Vibration,n=r(d[1]),o=r(d[2]),s={vibrate:function(){o(!1,'VibrationIOS is deprecated and will be removed. Please use Vibration instead.'),n(void 0===arguments[0],'Vibration patterns not supported.'),t.vibrate()}};m.exports=s},354,[22,17,19]); -__d(function(g,r,i,a,m,e,d){'use strict';var n,t=r(d[0]),u=r(d[1]),l=r(d[2]),o=r(d[3]),s=r(d[4]);n=(function(n){function c(){return t(this,c),l(this,o(c).apply(this,arguments))}return s(c,n),u(c,[{key:"render",value:function(){return null}}],[{key:"ignoreWarnings",value:function(n){}},{key:"install",value:function(){}},{key:"uninstall",value:function(){}}]),c})(r(d[5]).Component),m.exports=n},355,[8,9,10,13,14,55]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]),o=r(d[1]);m.exports=function(t,f){return'number'!=typeof t&&'window'!==t&&(t=n.findNodeHandle(t)||'window'),o.__takeSnapshot(t,f)}},356,[87,74]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),s=n.shape({x:n.number,y:n.number});m.exports=s},357,[68]); -__d(function(g,r,i,a,m,e,d){var v=r(d[0]),n=r(d[1]),o=n;o.v1=v,o.v4=n,m.exports=o},358,[359,362]); -__d(function(g,r,i,a,m,e,d){var n,o,s=r(d[0]),c=r(d[1]),v=0,l=0;m.exports=function(u,t,f){var k=t&&f||0,q=t||[],w=(u=u||{}).node||n,h=void 0!==u.clockseq?u.clockseq:o;if(null==w||null==h){var _=s();null==w&&(w=n=[1|_[0],_[1],_[2],_[3],_[4],_[5]]),null==h&&(h=o=16383&(_[6]<<8|_[7]))}var p=void 0!==u.msecs?u.msecs:(new Date).getTime(),x=void 0!==u.nsecs?u.nsecs:l+1,C=p-v+(x-l)/1e4;if(C<0&&void 0===u.clockseq&&(h=h+1&16383),(C<0||p>v)&&void 0===u.nsecs&&(x=0),x>=1e4)throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');v=p,l=x,o=h;var D=(1e4*(268435455&(p+=122192928e5))+x)%4294967296;q[k++]=D>>>24&255,q[k++]=D>>>16&255,q[k++]=D>>>8&255,q[k++]=255&D;var E=p/4294967296*1e4&268435455;q[k++]=E>>>8&255,q[k++]=255&E,q[k++]=E>>>24&15|16,q[k++]=E>>>16&255,q[k++]=h>>>8|128,q[k++]=255&h;for(var M=0;M<6;++M)q[k+M]=w[M];return t||c(q)}},359,[360,361]); -__d(function(g,r,i,a,m,e,d){var n='undefined'!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||'undefined'!=typeof msCrypto&&'function'==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(n){var t=new Uint8Array(16);m.exports=function(){return n(t),t}}else{var o=new Array(16);m.exports=function(){for(var n,t=0;t<16;t++)0==(3&t)&&(n=4294967296*Math.random()),o[t]=n>>>((3&t)<<3)&255;return o}}},360,[]); -__d(function(g,r,i,a,m,e,d){for(var n=[],t=0;t<256;++t)n[t]=(t+256).toString(16).substr(1);m.exports=function(t,o){var u=o||0,f=n;return[f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]]].join('')}},361,[]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]),o=r(d[1]);m.exports=function(t,f,u){var l=f&&u||0;'string'==typeof t&&(f='binary'===t?new Array(16):null,t=null);var v=(t=t||{}).random||(t.rng||n)();if(v[6]=15&v[6]|64,v[8]=63&v[8]|128,f)for(var y=0;y<16;++y)f[l+y]=v[y];return f||o(v)}},362,[360,361]); -__d(function(g,r,i,a,m,e,d){function t(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function s(t){return'function'==typeof t}function n(t){return'object'==typeof t&&null!==t}function o(t){return void 0===t}m.exports=t,t.EventEmitter=t,t.prototype._events=void 0,t.prototype._maxListeners=void 0,t.defaultMaxListeners=10,t.prototype.setMaxListeners=function(t){if('number'!=typeof t||t<0||isNaN(t))throw TypeError('n must be a positive number');return this._maxListeners=t,this},t.prototype.emit=function(t){var h,v,l,u,f,_;if(this._events||(this._events={}),'error'===t&&(!this._events.error||n(this._events.error)&&!this._events.error.length)){if((h=arguments[1])instanceof Error)throw h;var p=new Error('Uncaught, unspecified "error" event. ('+h+')');throw p.context=h,p}if(o(v=this._events[t]))return!1;if(s(v))switch(arguments.length){case 1:v.call(this);break;case 2:v.call(this,arguments[1]);break;case 3:v.call(this,arguments[1],arguments[2]);break;default:u=Array.prototype.slice.call(arguments,1),v.apply(this,u)}else if(n(v))for(u=Array.prototype.slice.call(arguments,1),l=(_=v.slice()).length,f=0;f0&&this._events[h].length>l&&(this._events[h].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[h].length),'function'==typeof console.trace&&console.trace()),this},t.prototype.on=t.prototype.addListener,t.prototype.once=function(t,n){if(!s(n))throw TypeError('listener must be a function');var o=!1;function h(){this.removeListener(t,h),o||(o=!0,n.apply(this,arguments))}return h.listener=n,this.on(t,h),this},t.prototype.removeListener=function(t,o){var h,v,l,u;if(!s(o))throw TypeError('listener must be a function');if(!this._events||!this._events[t])return this;if(l=(h=this._events[t]).length,v=-1,h===o||s(h.listener)&&h.listener===o)delete this._events[t],this._events.removeListener&&this.emit('removeListener',t,o);else if(n(h)){for(u=l;u-- >0;)if(h[u]===o||h[u].listener&&h[u].listener===o){v=u;break}if(v<0)return this;1===h.length?(h.length=0,delete this._events[t]):h.splice(v,1),this._events.removeListener&&this.emit('removeListener',t,o)}return this},t.prototype.removeAllListeners=function(t){var n,o;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(n in this._events)'removeListener'!==n&&this.removeAllListeners(n);return this.removeAllListeners('removeListener'),this._events={},this}if(s(o=this._events[t]))this.removeListener(t,o);else if(o)for(;o.length;)this.removeListener(t,o[o.length-1]);return delete this._events[t],this},t.prototype.listeners=function(t){return this._events&&this._events[t]?s(this._events[t])?[this._events[t]]:this._events[t].slice():[]},t.prototype.listenerCount=function(t){if(this._events){var n=this._events[t];if(s(n))return 1;if(n)return n.length}return 0},t.listenerCount=function(t,s){return t.listenerCount(s)}},363,[]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),s=(function(){function t(u){(0,n.default)(this,t),this._bridge=u}return(0,u.default)(t,[{key:"registerBackRequestHandler",value:function(t){this._bridge.registerRequestHandler("com.ernnavigationApi.ern.api.request.back",t)}},{key:"registerFinishRequestHandler",value:function(t){this._bridge.registerRequestHandler("com.ernnavigationApi.ern.api.request.finish",t)}},{key:"registerNavigateRequestHandler",value:function(t){this._bridge.registerRequestHandler("com.ernnavigationApi.ern.api.request.navigate",t)}},{key:"registerUpdateRequestHandler",value:function(t){this._bridge.registerRequestHandler("com.ernnavigationApi.ern.api.request.update",t)}},{key:"back",value:function(t,n){return this._bridge.sendRequest("com.ernnavigationApi.ern.api.request.back",{data:t,timeout:n})}},{key:"finish",value:function(t,n){return this._bridge.sendRequest("com.ernnavigationApi.ern.api.request.finish",{data:t,timeout:n})}},{key:"navigate",value:function(t,n){return this._bridge.sendRequest("com.ernnavigationApi.ern.api.request.navigate",{data:t,timeout:n})}},{key:"update",value:function(t,n){return this._bridge.sendRequest("com.ernnavigationApi.ern.api.request.update",{data:t,timeout:n})}}]),t})();e.default=s},364,[3,8,9]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),v=(function(){function t(u){(0,n.default)(this,t),this._bridge=u}return(0,u.default)(t,[{key:"addOnNavButtonClickEventListener",value:function(t){return this._bridge.registerEventListener("com.ernnavigationApi.ern.api.event.onNavButtonClick",t)}},{key:"removeOnNavButtonClickEventListener",value:function(t){return this._bridge.removeEventListener(t)}},{key:"emitOnNavButtonClick",value:function(t){return this._bridge.emitEvent("com.ernnavigationApi.ern.api.event.onNavButtonClick",{data:t})}}]),t})();e.default=v},365,[3,8,9]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),s=t(r(d[2])),o=r(d[3]),c=(function(){function t(s,o){if((0,n.default)(this,t),!s||Object.keys(s).length<1)throw new Error('screens parameter must be a non-empty object');var c=Object.keys(s)[0];if(Object.keys(s).forEach(function(t){if(!t||!s[t])throw new Error('each screen must be defined')}),this.screens=s,this.options=o||{},this.options.initialScreen||(this.options.initialScreen=c),!(this.options.initialScreen in this.screens))throw new Error('the initial screen must be a valid screen identifier')}return(0,s.default)(t,[{key:"registerAll",value:function(t){var n=this;Object.keys(this.screens).forEach(function(s){var c=s===n.options.initialScreen?t:t+"."+s;n.screens[s].setRegisteredRoute(c),n.screens[s].setAppNavigator(n),o.AppRegistry.registerComponent(c,function(){return n.screens[s]})})}}]),t})();c.screens={},c.options={};var u=c;e.default=u},366,[3,8,9,16]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.errors=void 0;var n=t(r(d[1])),o=t(r(d[2])),s=t(r(d[3])),u=t(r(d[4])),c=t(r(d[5])),v=t(r(d[6])),l=t(r(d[7])),p=t(r(d[8])),h=r(d[9]),f=t(r(d[10]));function N(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);n&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,s)}return o}function y(t){for(var o=1;o-1?t.substring(0,n):'')===this.getRegisteredRoute()}},{key:"_handleNavButtonPress",value:function(t){if(this.constructor._shouldDispatchButtonPressEvent(t)){var n=this.onNavButtonPress||this.constructor.onNavButtonPress;n&&n.bind(this)(this.constructor._unlocalizeButtonId(t))}}},{key:"_localizeNavigationBar",value:function(t,n){return n?y({},n,{buttons:n.buttons?n.buttons.map(function(n){return y({},n,{id:t+"."+n.id})}):void 0}):{}}},{key:"_getNavigationBar",value:function(t){return y({},this.navigationOptions,{title:this.getDynamicTitle(t)||this.navigationOptions.title})}},{key:"_getLocalizedNavigationBar",value:function(t){return this._localizeNavigationBar(this.route,this._getNavigationBar(t))}},{key:"getDynamicTitle",value:function(t){}},{key:"onNavButtonPress",value:function(t){console.warn("`onNavButtonPress(buttonId)` was not overriden in "+this.constructor.name+", but a button press event was fired.",{buttonId:t})}}]),n})(p.default.Component);k.appNavigator=void 0,k.headerListener=void 0,k.displayName='Component',k.route='',k.navigationOptions={title:'Untitled',buttons:[]};var A=k;e.default=A},367,[3,53,8,9,10,13,12,14,56,5,366]); -__d(function(e,d,o,a,i,s,l){i.exports={name:"MoviesReloaded",displayName:"MoviesReloaded"}},368,[]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},369,[3,370]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),s=t(r(d[4])),l=t(r(d[5])),c=t(r(d[6])),f=t(r(d[7])),v=t(r(d[8])),p=t(r(d[9])),h=r(d[10]),y=r(d[11]),b=t(r(d[12])),w=t(r(d[13])),M=r(d[14]),x=t(r(d[15])),I=t(r(d[16])),O=t(r(d[17])),A=t(r(d[18])),V=t(r(d[19])),S=t(r(d[20]));function k(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);n&&(u=u.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,u)}return o}function E(t){for(var n=1;n