diff --git a/README.md b/README.md index 8299c7fb8..5f906ad0b 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,15 @@ [![Build Status][build-badge]][build] [![Version][version-badge]][package] -![Supports iOS][support-badge] +![Platforms][support-badge] [![MIT License][license-badge]][license] [![Lean Core Badge][lean-core-badge]][lean-core-issue] -ProgressBar Component for iOS (based on UIProgressView) and Windows. +ProgressBar Component for macOS, iOS (based on UIProgressView), and Windows. -| iOS | Windows | -| --- | --- | -| | > +| macOS | iOS | Windows | +| ----- | --- | --- | +| | | > ## Getting started @@ -110,6 +110,12 @@ Add ProgressView like this 2. cd into example/ios and run `pod install` 4. cd back into progress-view and run `yarn ios` +#### macOS +1. Clone branch +2. cd into progress-view and run `yarn install` +2. cd into example/macos/example/macos and run `pod install` +4. Open the newly created example.xcworkspace in Xcode, build, and run + ## Reference ### Props @@ -209,7 +215,7 @@ The library is released under the MIT license. For more information see [`LICENS [build]: https://circleci.com/gh/react-native-community/progress-view [version-badge]: https://img.shields.io/npm/v/@react-native-community/progress-view.svg?style=flat-square [package]: https://www.npmjs.com/package/@react-native-community/progress-view -[support-badge]:https://img.shields.io/badge/platforms-ios-lightgrey.svg?style=flat-square +[support-badge]:https://img.shields.io/badge/platforms-ios%20|%20macos-lightgrey.svg?style=flat-square [license-badge]: https://img.shields.io/npm/l/@react-native-community/progress-view.svg?style=flat-square [license]: https://opensource.org/licenses/MIT [lean-core-badge]: https://img.shields.io/badge/Lean%20Core-Extracted-brightgreen.svg?style=flat-square diff --git a/example/macos/.gitignore b/example/macos/.gitignore new file mode 100644 index 000000000..daba14103 --- /dev/null +++ b/example/macos/.gitignore @@ -0,0 +1,2 @@ +# CocoaPods +Pods/ diff --git a/example/macos/Config/example.debug.xcconfig b/example/macos/Config/example.debug.xcconfig new file mode 100644 index 000000000..d3cc77915 --- /dev/null +++ b/example/macos/Config/example.debug.xcconfig @@ -0,0 +1,9 @@ +#include "example.shared.xcconfig" + +DEAD_CODE_STRIPPING = NO +ENABLE_TESTABILITY = YES +GCC_DYNAMIC_NO_PIC = NO +GCC_OPTIMIZATION_LEVEL = 0 +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) DEBUG=1 +MTL_ENABLE_DEBUG_INFO = YES +ONLY_ACTIVE_ARCH = YES diff --git a/example/macos/Config/example.release.xcconfig b/example/macos/Config/example.release.xcconfig new file mode 100644 index 000000000..f541a902d --- /dev/null +++ b/example/macos/Config/example.release.xcconfig @@ -0,0 +1,6 @@ +#include "example.shared.xcconfig" + +COPY_PHASE_STRIP = YES +ENABLE_NS_ASSERTIONS = NO +MTL_ENABLE_DEBUG_INFO = NO +VALIDATE_PRODUCT = YES diff --git a/example/macos/Config/example.shared.xcconfig b/example/macos/Config/example.shared.xcconfig new file mode 100644 index 000000000..511784157 --- /dev/null +++ b/example/macos/Config/example.shared.xcconfig @@ -0,0 +1,46 @@ +PRODUCT_NAME = example + +ALWAYS_SEARCH_USER_PATHS = NO +ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon +CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES +CLANG_CXX_LANGUAGE_STANDARD = gnu++0x +CLANG_CXX_LIBRARY = libc++ +CLANG_ENABLE_MODULES = YES +CLANG_ENABLE_OBJC_ARC = YES +CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES +CLANG_WARN_BOOL_CONVERSION = YES +CLANG_WARN_COMMA = YES +CLANG_WARN_CONSTANT_CONVERSION = YES +CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES +CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR +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_IMPLICIT_RETAIN_SELF = 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 +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CURRENT_PROJECT_VERSION = 1 +ENABLE_STRICT_OBJC_MSGSEND = YES +GCC_C_LANGUAGE_STANDARD = gnu99 +GCC_NO_COMMON_BLOCKS = YES +GCC_SYMBOLS_PRIVATE_EXTERN = NO +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 +INFOPLIST_FILE = example-macos/Info.plist +LD_RUNPATH_SEARCH_PATHS = /usr/lib/swift $(inherited) @executable_path/Frameworks +LIBRARY_SEARCH_PATHS = $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) $(inherited) +MACOSX_DEPLOYMENT_TARGET = 10.14 +OTHER_LDFLAGS = $(inherited) -ObjC -lc++ +PRODUCT_BUNDLE_IDENTIFIER = org.reactjs.native.$(PRODUCT_NAME:rfc1034identifier) +SDKROOT = macosx diff --git a/example/macos/Podfile b/example/macos/Podfile new file mode 100644 index 000000000..80dfb2464 --- /dev/null +++ b/example/macos/Podfile @@ -0,0 +1,43 @@ +require_relative '../../node_modules/@react-native-community/cli-platform-ios/native_modules' + +abstract_target 'Shared' do + pod 'react-native-progress-view', :path => '../..' + # Pods for example + pod 'FBLazyVector', :path => '../../node_modules/react-native-macos/Libraries/FBLazyVector' + pod 'FBReactNativeSpec', :path => '../../node_modules/react-native-macos/Libraries/FBReactNativeSpec' + pod 'RCTRequired', :path => '../../node_modules/react-native-macos/Libraries/RCTRequired' + pod 'RCTTypeSafety', :path => '../../node_modules/react-native-macos/Libraries/TypeSafety' + pod 'React', :path => '../../node_modules/react-native-macos/' + pod 'React-Core', :path => '../../node_modules/react-native-macos/' + pod 'React-CoreModules', :path => '../../node_modules/react-native-macos/React/CoreModules' + pod 'React-Core/DevSupport', :path => '../../node_modules/react-native-macos/' + pod 'React-RCTActionSheet', :path => '../../node_modules/react-native-macos/Libraries/ActionSheetIOS' + pod 'React-RCTAnimation', :path => '../../node_modules/react-native-macos/Libraries/NativeAnimation' + pod 'React-RCTBlob', :path => '../../node_modules/react-native-macos/Libraries/Blob' + pod 'React-RCTImage', :path => '../../node_modules/react-native-macos/Libraries/Image' + pod 'React-RCTLinking', :path => '../../node_modules/react-native-macos/Libraries/LinkingIOS' + pod 'React-RCTNetwork', :path => '../../node_modules/react-native-macos/Libraries/Network' + pod 'React-RCTSettings', :path => '../../node_modules/react-native-macos/Libraries/Settings' + pod 'React-RCTText', :path => '../../node_modules/react-native-macos/Libraries/Text' + pod 'React-RCTVibration', :path => '../../node_modules/react-native-macos/Libraries/Vibration' + pod 'React-Core/RCTWebSocket', :path => '../../node_modules/react-native-macos/' + + pod 'React-cxxreact', :path => '../../node_modules/react-native-macos/ReactCommon/cxxreact' + pod 'React-jsi', :path => '../../node_modules/react-native-macos/ReactCommon/jsi' + pod 'React-jsiexecutor', :path => '../../node_modules/react-native-macos/ReactCommon/jsiexecutor' + pod 'React-jsinspector', :path => '../../node_modules/react-native-macos/ReactCommon/jsinspector' + pod 'ReactCommon/callinvoker', :path => '../../node_modules/react-native-macos/ReactCommon' + pod 'ReactCommon/turbomodule/core', :path => '../../node_modules/react-native-macos/ReactCommon' + pod 'Yoga', :path => '../../node_modules/react-native-macos/ReactCommon/yoga' + + pod 'boost-for-react-native', :podspec => '../../node_modules/react-native-macos/third-party-podspecs/boost-for-react-native.podspec' + pod 'DoubleConversion', :podspec => '../../node_modules/react-native-macos/third-party-podspecs/DoubleConversion.podspec' + pod 'glog', :podspec => '../../node_modules/react-native-macos/third-party-podspecs/glog.podspec' + pod 'RCT-Folly', :podspec => '../../node_modules/react-native-macos/third-party-podspecs/RCT-Folly.podspec' + + target 'example-macOS' do + platform :macos, '10.14' + use_native_modules! + # Pods specifically for macOS target + end +end diff --git a/example/macos/Podfile.lock b/example/macos/Podfile.lock new file mode 100644 index 000000000..1ef38ddaf --- /dev/null +++ b/example/macos/Podfile.lock @@ -0,0 +1,367 @@ +PODS: + - boost-for-react-native (1.63.0) + - DoubleConversion (1.1.6) + - FBLazyVector (0.62.13) + - FBReactNativeSpec (0.62.13): + - RCT-Folly (= 2018.10.22.00) + - RCTRequired (= 0.62.13) + - RCTTypeSafety (= 0.62.13) + - React-Core (= 0.62.13) + - React-jsi (= 0.62.13) + - ReactCommon/turbomodule/core (= 0.62.13) + - glog (0.3.5) + - RCT-Folly (2018.10.22.00): + - boost-for-react-native + - DoubleConversion + - glog + - RCT-Folly/Default (= 2018.10.22.00) + - RCT-Folly/Default (2018.10.22.00): + - boost-for-react-native + - DoubleConversion + - glog + - RCTRequired (0.62.13) + - RCTTypeSafety (0.62.13): + - FBLazyVector (= 0.62.13) + - RCT-Folly (= 2018.10.22.00) + - RCTRequired (= 0.62.13) + - React-Core (= 0.62.13) + - React (0.62.13): + - React-Core (= 0.62.13) + - React-Core/DevSupport (= 0.62.13) + - React-Core/RCTWebSocket (= 0.62.13) + - React-RCTActionSheet (= 0.62.13) + - React-RCTAnimation (= 0.62.13) + - React-RCTBlob (= 0.62.13) + - React-RCTImage (= 0.62.13) + - React-RCTLinking (= 0.62.13) + - React-RCTNetwork (= 0.62.13) + - React-RCTSettings (= 0.62.13) + - React-RCTText (= 0.62.13) + - React-RCTVibration (= 0.62.13) + - React-Core (0.62.13): + - glog + - RCT-Folly (= 2018.10.22.00) + - React-Core/Default (= 0.62.13) + - React-cxxreact (= 0.62.13) + - React-jsi (= 0.62.13) + - React-jsiexecutor (= 0.62.13) + - Yoga + - React-Core/CoreModulesHeaders (0.62.13): + - glog + - RCT-Folly (= 2018.10.22.00) + - React-Core/Default + - React-cxxreact (= 0.62.13) + - React-jsi (= 0.62.13) + - React-jsiexecutor (= 0.62.13) + - Yoga + - React-Core/Default (0.62.13): + - glog + - RCT-Folly (= 2018.10.22.00) + - React-cxxreact (= 0.62.13) + - React-jsi (= 0.62.13) + - React-jsiexecutor (= 0.62.13) + - Yoga + - React-Core/DevSupport (0.62.13): + - glog + - RCT-Folly (= 2018.10.22.00) + - React-Core/Default (= 0.62.13) + - React-Core/RCTWebSocket (= 0.62.13) + - React-cxxreact (= 0.62.13) + - React-jsi (= 0.62.13) + - React-jsiexecutor (= 0.62.13) + - React-jsinspector (= 0.62.13) + - Yoga + - React-Core/RCTActionSheetHeaders (0.62.13): + - glog + - RCT-Folly (= 2018.10.22.00) + - React-Core/Default + - React-cxxreact (= 0.62.13) + - React-jsi (= 0.62.13) + - React-jsiexecutor (= 0.62.13) + - Yoga + - React-Core/RCTAnimationHeaders (0.62.13): + - glog + - RCT-Folly (= 2018.10.22.00) + - React-Core/Default + - React-cxxreact (= 0.62.13) + - React-jsi (= 0.62.13) + - React-jsiexecutor (= 0.62.13) + - Yoga + - React-Core/RCTBlobHeaders (0.62.13): + - glog + - RCT-Folly (= 2018.10.22.00) + - React-Core/Default + - React-cxxreact (= 0.62.13) + - React-jsi (= 0.62.13) + - React-jsiexecutor (= 0.62.13) + - Yoga + - React-Core/RCTImageHeaders (0.62.13): + - glog + - RCT-Folly (= 2018.10.22.00) + - React-Core/Default + - React-cxxreact (= 0.62.13) + - React-jsi (= 0.62.13) + - React-jsiexecutor (= 0.62.13) + - Yoga + - React-Core/RCTLinkingHeaders (0.62.13): + - glog + - RCT-Folly (= 2018.10.22.00) + - React-Core/Default + - React-cxxreact (= 0.62.13) + - React-jsi (= 0.62.13) + - React-jsiexecutor (= 0.62.13) + - Yoga + - React-Core/RCTNetworkHeaders (0.62.13): + - glog + - RCT-Folly (= 2018.10.22.00) + - React-Core/Default + - React-cxxreact (= 0.62.13) + - React-jsi (= 0.62.13) + - React-jsiexecutor (= 0.62.13) + - Yoga + - React-Core/RCTSettingsHeaders (0.62.13): + - glog + - RCT-Folly (= 2018.10.22.00) + - React-Core/Default + - React-cxxreact (= 0.62.13) + - React-jsi (= 0.62.13) + - React-jsiexecutor (= 0.62.13) + - Yoga + - React-Core/RCTTextHeaders (0.62.13): + - glog + - RCT-Folly (= 2018.10.22.00) + - React-Core/Default + - React-cxxreact (= 0.62.13) + - React-jsi (= 0.62.13) + - React-jsiexecutor (= 0.62.13) + - Yoga + - React-Core/RCTVibrationHeaders (0.62.13): + - glog + - RCT-Folly (= 2018.10.22.00) + - React-Core/Default + - React-cxxreact (= 0.62.13) + - React-jsi (= 0.62.13) + - React-jsiexecutor (= 0.62.13) + - Yoga + - React-Core/RCTWebSocket (0.62.13): + - glog + - RCT-Folly (= 2018.10.22.00) + - React-Core/Default (= 0.62.13) + - React-cxxreact (= 0.62.13) + - React-jsi (= 0.62.13) + - React-jsiexecutor (= 0.62.13) + - Yoga + - React-CoreModules (0.62.13): + - FBReactNativeSpec (= 0.62.13) + - RCT-Folly (= 2018.10.22.00) + - RCTTypeSafety (= 0.62.13) + - React-Core/CoreModulesHeaders (= 0.62.13) + - React-RCTImage (= 0.62.13) + - ReactCommon/turbomodule/core (= 0.62.13) + - React-cxxreact (0.62.13): + - boost-for-react-native (= 1.63.0) + - DoubleConversion + - glog + - RCT-Folly (= 2018.10.22.00) + - React-jsinspector (= 0.62.13) + - React-jsi (0.62.13): + - boost-for-react-native (= 1.63.0) + - DoubleConversion + - glog + - RCT-Folly (= 2018.10.22.00) + - React-jsi/Default (= 0.62.13) + - React-jsi/Default (0.62.13): + - boost-for-react-native (= 1.63.0) + - DoubleConversion + - glog + - RCT-Folly (= 2018.10.22.00) + - React-jsiexecutor (0.62.13): + - DoubleConversion + - glog + - RCT-Folly (= 2018.10.22.00) + - React-cxxreact (= 0.62.13) + - React-jsi (= 0.62.13) + - React-jsinspector (0.62.13) + - react-native-progress-view (1.1.1): + - React + - React-RCTActionSheet (0.62.13): + - React-Core/RCTActionSheetHeaders (= 0.62.13) + - React-RCTAnimation (0.62.13): + - FBReactNativeSpec (= 0.62.13) + - RCT-Folly (= 2018.10.22.00) + - RCTTypeSafety (= 0.62.13) + - React-Core/RCTAnimationHeaders (= 0.62.13) + - ReactCommon/turbomodule/core (= 0.62.13) + - React-RCTBlob (0.62.13): + - FBReactNativeSpec (= 0.62.13) + - RCT-Folly (= 2018.10.22.00) + - React-Core/RCTBlobHeaders (= 0.62.13) + - React-Core/RCTWebSocket (= 0.62.13) + - React-jsi (= 0.62.13) + - React-RCTNetwork (= 0.62.13) + - ReactCommon/turbomodule/core (= 0.62.13) + - React-RCTImage (0.62.13): + - FBReactNativeSpec (= 0.62.13) + - RCT-Folly (= 2018.10.22.00) + - RCTTypeSafety (= 0.62.13) + - React-Core/RCTImageHeaders (= 0.62.13) + - React-RCTNetwork (= 0.62.13) + - ReactCommon/turbomodule/core (= 0.62.13) + - React-RCTLinking (0.62.13): + - FBReactNativeSpec (= 0.62.13) + - React-Core/RCTLinkingHeaders (= 0.62.13) + - ReactCommon/turbomodule/core (= 0.62.13) + - React-RCTNetwork (0.62.13): + - FBReactNativeSpec (= 0.62.13) + - RCT-Folly (= 2018.10.22.00) + - RCTTypeSafety (= 0.62.13) + - React-Core/RCTNetworkHeaders (= 0.62.13) + - ReactCommon/turbomodule/core (= 0.62.13) + - React-RCTSettings (0.62.13): + - FBReactNativeSpec (= 0.62.13) + - RCT-Folly (= 2018.10.22.00) + - RCTTypeSafety (= 0.62.13) + - React-Core/RCTSettingsHeaders (= 0.62.13) + - ReactCommon/turbomodule/core (= 0.62.13) + - React-RCTText (0.62.13): + - React-Core/RCTTextHeaders (= 0.62.13) + - React-RCTVibration (0.62.13): + - FBReactNativeSpec (= 0.62.13) + - RCT-Folly (= 2018.10.22.00) + - React-Core/RCTVibrationHeaders (= 0.62.13) + - ReactCommon/turbomodule/core (= 0.62.13) + - ReactCommon/callinvoker (0.62.13): + - DoubleConversion + - glog + - RCT-Folly (= 2018.10.22.00) + - React-cxxreact (= 0.62.13) + - ReactCommon/turbomodule/core (0.62.13): + - DoubleConversion + - glog + - RCT-Folly (= 2018.10.22.00) + - React-Core (= 0.62.13) + - React-cxxreact (= 0.62.13) + - React-jsi (= 0.62.13) + - ReactCommon/callinvoker (= 0.62.13) + - Yoga (1.14.0) + +DEPENDENCIES: + - boost-for-react-native (from `../../node_modules/react-native-macos/third-party-podspecs/boost-for-react-native.podspec`) + - DoubleConversion (from `../../node_modules/react-native-macos/third-party-podspecs/DoubleConversion.podspec`) + - FBLazyVector (from `../../node_modules/react-native-macos/Libraries/FBLazyVector`) + - FBReactNativeSpec (from `../../node_modules/react-native-macos/Libraries/FBReactNativeSpec`) + - glog (from `../../node_modules/react-native-macos/third-party-podspecs/glog.podspec`) + - RCT-Folly (from `../../node_modules/react-native-macos/third-party-podspecs/RCT-Folly.podspec`) + - RCTRequired (from `../../node_modules/react-native-macos/Libraries/RCTRequired`) + - RCTTypeSafety (from `../../node_modules/react-native-macos/Libraries/TypeSafety`) + - React (from `../../node_modules/react-native-macos/`) + - React-Core (from `../../node_modules/react-native-macos/`) + - React-Core/DevSupport (from `../../node_modules/react-native-macos/`) + - React-Core/RCTWebSocket (from `../../node_modules/react-native-macos/`) + - React-CoreModules (from `../../node_modules/react-native-macos/React/CoreModules`) + - React-cxxreact (from `../../node_modules/react-native-macos/ReactCommon/cxxreact`) + - React-jsi (from `../../node_modules/react-native-macos/ReactCommon/jsi`) + - React-jsiexecutor (from `../../node_modules/react-native-macos/ReactCommon/jsiexecutor`) + - React-jsinspector (from `../../node_modules/react-native-macos/ReactCommon/jsinspector`) + - react-native-progress-view (from `../..`) + - React-RCTActionSheet (from `../../node_modules/react-native-macos/Libraries/ActionSheetIOS`) + - React-RCTAnimation (from `../../node_modules/react-native-macos/Libraries/NativeAnimation`) + - React-RCTBlob (from `../../node_modules/react-native-macos/Libraries/Blob`) + - React-RCTImage (from `../../node_modules/react-native-macos/Libraries/Image`) + - React-RCTLinking (from `../../node_modules/react-native-macos/Libraries/LinkingIOS`) + - React-RCTNetwork (from `../../node_modules/react-native-macos/Libraries/Network`) + - React-RCTSettings (from `../../node_modules/react-native-macos/Libraries/Settings`) + - React-RCTText (from `../../node_modules/react-native-macos/Libraries/Text`) + - React-RCTVibration (from `../../node_modules/react-native-macos/Libraries/Vibration`) + - ReactCommon/callinvoker (from `../../node_modules/react-native-macos/ReactCommon`) + - ReactCommon/turbomodule/core (from `../../node_modules/react-native-macos/ReactCommon`) + - Yoga (from `../../node_modules/react-native-macos/ReactCommon/yoga`) + +EXTERNAL SOURCES: + boost-for-react-native: + :podspec: "../../node_modules/react-native-macos/third-party-podspecs/boost-for-react-native.podspec" + DoubleConversion: + :podspec: "../../node_modules/react-native-macos/third-party-podspecs/DoubleConversion.podspec" + FBLazyVector: + :path: "../../node_modules/react-native-macos/Libraries/FBLazyVector" + FBReactNativeSpec: + :path: "../../node_modules/react-native-macos/Libraries/FBReactNativeSpec" + glog: + :podspec: "../../node_modules/react-native-macos/third-party-podspecs/glog.podspec" + RCT-Folly: + :podspec: "../../node_modules/react-native-macos/third-party-podspecs/RCT-Folly.podspec" + RCTRequired: + :path: "../../node_modules/react-native-macos/Libraries/RCTRequired" + RCTTypeSafety: + :path: "../../node_modules/react-native-macos/Libraries/TypeSafety" + React: + :path: "../../node_modules/react-native-macos/" + React-Core: + :path: "../../node_modules/react-native-macos/" + React-CoreModules: + :path: "../../node_modules/react-native-macos/React/CoreModules" + React-cxxreact: + :path: "../../node_modules/react-native-macos/ReactCommon/cxxreact" + React-jsi: + :path: "../../node_modules/react-native-macos/ReactCommon/jsi" + React-jsiexecutor: + :path: "../../node_modules/react-native-macos/ReactCommon/jsiexecutor" + React-jsinspector: + :path: "../../node_modules/react-native-macos/ReactCommon/jsinspector" + react-native-progress-view: + :path: "../.." + React-RCTActionSheet: + :path: "../../node_modules/react-native-macos/Libraries/ActionSheetIOS" + React-RCTAnimation: + :path: "../../node_modules/react-native-macos/Libraries/NativeAnimation" + React-RCTBlob: + :path: "../../node_modules/react-native-macos/Libraries/Blob" + React-RCTImage: + :path: "../../node_modules/react-native-macos/Libraries/Image" + React-RCTLinking: + :path: "../../node_modules/react-native-macos/Libraries/LinkingIOS" + React-RCTNetwork: + :path: "../../node_modules/react-native-macos/Libraries/Network" + React-RCTSettings: + :path: "../../node_modules/react-native-macos/Libraries/Settings" + React-RCTText: + :path: "../../node_modules/react-native-macos/Libraries/Text" + React-RCTVibration: + :path: "../../node_modules/react-native-macos/Libraries/Vibration" + ReactCommon: + :path: "../../node_modules/react-native-macos/ReactCommon" + Yoga: + :path: "../../node_modules/react-native-macos/ReactCommon/yoga" + +SPEC CHECKSUMS: + boost-for-react-native: dabda8622e76020607c2ae1e65cc0cda8b61479d + DoubleConversion: 681b789128e5512811c81706e9b361209f40d21e + FBLazyVector: adad564ca6f9749138c12e734daefb84f327b01a + FBReactNativeSpec: 5ee223b0e296ca3646d90ae3f5965f223f9d6fd7 + glog: d86cb3634e15ec6d8cd9a1c7c1b9d6fa295beb37 + RCT-Folly: 71ece0166f9c96c1ec9279eeb0317baf533c020f + RCTRequired: a85f94b0020b13f662fe6e91bf64e1a250ceed8e + RCTTypeSafety: af561b56a3573f5ee4ebde599bcd00f11b54da43 + React: 1df518ab8ad0ff08e6e9bd0e7b2feb784d5b98cc + React-Core: f03594c3c0def3535eaa8a69fc00cd0f0f59da91 + React-CoreModules: 32667c2644e5379e4e5c6e9f03ac8e31beae4e94 + React-cxxreact: 33a19428a05f2b5be87d16c2329540b82b17caac + React-jsi: 2201cea7013c8a52f9263f82bae3b51c55f73f37 + React-jsiexecutor: f78e39b801210e77cd829c869249aa013d712697 + React-jsinspector: 35e3dc1668c54859e279cfff02d77ef35052bf08 + react-native-progress-view: 8212b39f246fc95bf75ef89ed56c0cf6bbb5b973 + React-RCTActionSheet: 8c998e9decfb1bac0a51d8e4ab62d794614b4bc4 + React-RCTAnimation: 09b466088a201d9ff918b57f357ac787bcc2690e + React-RCTBlob: 6c3a159339d4b51194324ec9707ab7156d84aaaa + React-RCTImage: 467212a137db1c2e70cef4a27702af079e5c1446 + React-RCTLinking: 5a09264a8d705f82d5e15f7e26175ace873c8ad7 + React-RCTNetwork: b9fef0eee6cff1364e30fc3ae8e702e1d2f9e2a6 + React-RCTSettings: c946e5a4a18ae20b2f2f9be071957fef909fc40e + React-RCTText: 87bd51dbdb9f701760924b535be9e41e1f80aad9 + React-RCTVibration: 5c1a6bf9e28ef049bf4f5abc82bb2d9707def273 + ReactCommon: 658d0557123c61326f5b8769cb88cc6886a30497 + Yoga: e64d2b3528e7b1449411a4e7db07f651f1b1c241 + +PODFILE CHECKSUM: 6145c4346615897a2a1e4b61819859e1b4e2e9cf + +COCOAPODS: 1.9.3 diff --git a/example/macos/example-macOS/AppDelegate.h b/example/macos/example-macOS/AppDelegate.h new file mode 100644 index 000000000..b888376ce --- /dev/null +++ b/example/macos/example-macOS/AppDelegate.h @@ -0,0 +1,9 @@ +#import + +@class RCTBridge; + +@interface AppDelegate : NSObject + +@property (nonatomic, readonly) RCTBridge *bridge; + +@end diff --git a/example/macos/example-macOS/AppDelegate.m b/example/macos/example-macOS/AppDelegate.m new file mode 100644 index 000000000..8386743e5 --- /dev/null +++ b/example/macos/example-macOS/AppDelegate.m @@ -0,0 +1,32 @@ +#import "AppDelegate.h" + +#import +#import + +@interface AppDelegate () + +@end + +@implementation AppDelegate + +- (void)awakeFromNib { + [super awakeFromNib]; + + _bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:nil]; +} + +- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { + // Insert code here to initialize your application +} + +- (void)applicationWillTerminate:(NSNotification *)aNotification { + // Insert code here to tear down your application +} + +#pragma mark - RCTBridgeDelegate Methods + +- (NSURL *)sourceURLForBridge:(__unused RCTBridge *)bridge { + return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:@"main"]; // .jsbundle; +} + +@end diff --git a/example/macos/example-macOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/example/macos/example-macOS/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000..3f00db43e --- /dev/null +++ b/example/macos/example-macOS/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,58 @@ +{ + "images" : [ + { + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/example/macos/example-macOS/Assets.xcassets/Contents.json b/example/macos/example-macOS/Assets.xcassets/Contents.json new file mode 100644 index 000000000..73c00596a --- /dev/null +++ b/example/macos/example-macOS/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/example/macos/example-macOS/Base.lproj/Main.storyboard b/example/macos/example-macOS/Base.lproj/Main.storyboard new file mode 100644 index 000000000..d87cb1926 --- /dev/null +++ b/example/macos/example-macOS/Base.lproj/Main.storyboard @@ -0,0 +1,717 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/example/macos/example-macOS/Info.plist b/example/macos/example-macOS/Info.plist new file mode 100644 index 000000000..5c7ebb780 --- /dev/null +++ b/example/macos/example-macOS/Info.plist @@ -0,0 +1,47 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + NSExceptionDomains + + localhost + + NSExceptionAllowsInsecureHTTPLoads + + + + + NSMainStoryboardFile + Main + NSPrincipalClass + NSApplication + NSSupportsAutomaticTermination + + NSSupportsSuddenTermination + + + diff --git a/example/macos/example-macOS/ViewController.h b/example/macos/example-macOS/ViewController.h new file mode 100644 index 000000000..d70148772 --- /dev/null +++ b/example/macos/example-macOS/ViewController.h @@ -0,0 +1,5 @@ +#import + +@interface ViewController : NSViewController + +@end diff --git a/example/macos/example-macOS/ViewController.m b/example/macos/example-macOS/ViewController.m new file mode 100644 index 000000000..a9386ce9a --- /dev/null +++ b/example/macos/example-macOS/ViewController.m @@ -0,0 +1,22 @@ +#import "ViewController.h" +#import "AppDelegate.h" + +#import + +@implementation ViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + + RCTBridge *bridge = [((AppDelegate *)[NSApp delegate])bridge]; + RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@"ProgressViewExample" initialProperties:nil]; + + NSView *view = [self view]; + + [view addSubview:rootView]; + [rootView setBackgroundColor:[NSColor windowBackgroundColor]]; + [rootView setFrame:[view bounds]]; + [rootView setAutoresizingMask:(NSViewMinXMargin | NSViewMinXMargin | NSViewMinYMargin | NSViewMaxYMargin | NSViewWidthSizable | NSViewHeightSizable)]; +} + +@end diff --git a/example/macos/example-macOS/example.entitlements b/example/macos/example-macOS/example.entitlements new file mode 100644 index 000000000..625af03d9 --- /dev/null +++ b/example/macos/example-macOS/example.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.files.user-selected.read-only + + com.apple.security.network.client + + + diff --git a/example/macos/example-macOS/main.m b/example/macos/example-macOS/main.m new file mode 100644 index 000000000..1f154fcf6 --- /dev/null +++ b/example/macos/example-macOS/main.m @@ -0,0 +1,5 @@ +#import + +int main(int argc, const char *argv[]) { + return NSApplicationMain(argc, argv); +} diff --git a/example/macos/example.xcodeproj/project.pbxproj b/example/macos/example.xcodeproj/project.pbxproj new file mode 100644 index 000000000..15c90a473 --- /dev/null +++ b/example/macos/example.xcodeproj/project.pbxproj @@ -0,0 +1,345 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 0496A360A6F874C295C73D4B /* libPods-Shared-example-macOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C8DBC48FD7C3AEF576C57B21 /* libPods-Shared-example-macOS.a */; }; + 0934EC2324F02A7200151CF8 /* example.release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 0934EC2024F02A7200151CF8 /* example.release.xcconfig */; }; + 0934EC2424F02A7200151CF8 /* example.debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 0934EC2124F02A7200151CF8 /* example.debug.xcconfig */; }; + 0934EC2524F02A7200151CF8 /* example.shared.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 0934EC2224F02A7200151CF8 /* example.shared.xcconfig */; }; + 5142014D2437B4B30078DB4F /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 5142014C2437B4B30078DB4F /* AppDelegate.m */; }; + 514201502437B4B30078DB4F /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5142014F2437B4B30078DB4F /* ViewController.m */; }; + 514201522437B4B40078DB4F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 514201512437B4B40078DB4F /* Assets.xcassets */; }; + 514201552437B4B40078DB4F /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 514201532437B4B40078DB4F /* Main.storyboard */; }; + 514201582437B4B40078DB4F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 514201572437B4B40078DB4F /* main.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 02422F9FB6FF5F34B4E63E6F /* Pods-Shared-example-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Shared-example-macOS.debug.xcconfig"; path = "Target Support Files/Pods-Shared-example-macOS/Pods-Shared-example-macOS.debug.xcconfig"; sourceTree = ""; }; + 0934EC2024F02A7200151CF8 /* example.release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = example.release.xcconfig; sourceTree = ""; }; + 0934EC2124F02A7200151CF8 /* example.debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = example.debug.xcconfig; sourceTree = ""; }; + 0934EC2224F02A7200151CF8 /* example.shared.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = example.shared.xcconfig; sourceTree = ""; }; + 38423A3E24576CBC00BC2EAC /* main.jsbundle */ = {isa = PBXFileReference; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; + 514201492437B4B30078DB4F /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 5142014B2437B4B30078DB4F /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 5142014C2437B4B30078DB4F /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 5142014E2437B4B30078DB4F /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + 5142014F2437B4B30078DB4F /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; + 514201512437B4B40078DB4F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 514201542437B4B40078DB4F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 514201562437B4B40078DB4F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 514201572437B4B40078DB4F /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 514201592437B4B40078DB4F /* example.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = example.entitlements; sourceTree = ""; }; + 9D32DFD059D5DB6DDEF38881 /* Pods-Shared-example-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Shared-example-iOS.debug.xcconfig"; path = "Target Support Files/Pods-Shared-example-iOS/Pods-Shared-example-iOS.debug.xcconfig"; sourceTree = ""; }; + A82DFB63B157C65E5D698CA2 /* Pods-Shared-example-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Shared-example-iOS.release.xcconfig"; path = "Target Support Files/Pods-Shared-example-iOS/Pods-Shared-example-iOS.release.xcconfig"; sourceTree = ""; }; + C8DBC48FD7C3AEF576C57B21 /* libPods-Shared-example-macOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Shared-example-macOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + CE0E74F571E1F48FF00A8324 /* Pods-Shared-example-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Shared-example-macOS.release.xcconfig"; path = "Target Support Files/Pods-Shared-example-macOS/Pods-Shared-example-macOS.release.xcconfig"; sourceTree = ""; }; + ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; + ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; }; + FB6EED1BDEABADF047CC5223 /* libPods-Shared-example-iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Shared-example-iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 514201462437B4B30078DB4F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0496A360A6F874C295C73D4B /* libPods-Shared-example-macOS.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0934EC1F24F02A7200151CF8 /* Config */ = { + isa = PBXGroup; + children = ( + 0934EC2024F02A7200151CF8 /* example.release.xcconfig */, + 0934EC2124F02A7200151CF8 /* example.debug.xcconfig */, + 0934EC2224F02A7200151CF8 /* example.shared.xcconfig */, + ); + path = Config; + sourceTree = ""; + }; + 1986A43FA6A91CFACDF0A798 /* Pods */ = { + isa = PBXGroup; + children = ( + 9D32DFD059D5DB6DDEF38881 /* Pods-Shared-example-iOS.debug.xcconfig */, + A82DFB63B157C65E5D698CA2 /* Pods-Shared-example-iOS.release.xcconfig */, + 02422F9FB6FF5F34B4E63E6F /* Pods-Shared-example-macOS.debug.xcconfig */, + CE0E74F571E1F48FF00A8324 /* Pods-Shared-example-macOS.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { + isa = PBXGroup; + children = ( + ED297162215061F000B7C4FE /* JavaScriptCore.framework */, + ED2971642150620600B7C4FE /* JavaScriptCore.framework */, + FB6EED1BDEABADF047CC5223 /* libPods-Shared-example-iOS.a */, + C8DBC48FD7C3AEF576C57B21 /* libPods-Shared-example-macOS.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + 5142014A2437B4B30078DB4F /* example-macOS */ = { + isa = PBXGroup; + children = ( + 38423A3E24576CBC00BC2EAC /* main.jsbundle */, + 5142014B2437B4B30078DB4F /* AppDelegate.h */, + 5142014C2437B4B30078DB4F /* AppDelegate.m */, + 5142014E2437B4B30078DB4F /* ViewController.h */, + 5142014F2437B4B30078DB4F /* ViewController.m */, + 514201512437B4B40078DB4F /* Assets.xcassets */, + 514201532437B4B40078DB4F /* Main.storyboard */, + 514201562437B4B40078DB4F /* Info.plist */, + 514201572437B4B40078DB4F /* main.m */, + 514201592437B4B40078DB4F /* example.entitlements */, + ); + path = "example-macOS"; + sourceTree = ""; + }; + 832341AE1AAA6A7D00B99B32 /* Libraries */ = { + isa = PBXGroup; + children = ( + ); + name = Libraries; + sourceTree = ""; + }; + 83CBB9F61A601CBA00E9B192 = { + isa = PBXGroup; + children = ( + 5142014A2437B4B30078DB4F /* example-macOS */, + 832341AE1AAA6A7D00B99B32 /* Libraries */, + 83CBBA001A601CBA00E9B192 /* Products */, + 2D16E6871FA4F8E400B85C8A /* Frameworks */, + 0934EC1F24F02A7200151CF8 /* Config */, + 1986A43FA6A91CFACDF0A798 /* Pods */, + ); + indentWidth = 2; + sourceTree = ""; + tabWidth = 2; + usesTabs = 0; + }; + 83CBBA001A601CBA00E9B192 /* Products */ = { + isa = PBXGroup; + children = ( + 514201492437B4B30078DB4F /* example.app */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 514201482437B4B30078DB4F /* example-macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5142015A2437B4B40078DB4F /* Build configuration list for PBXNativeTarget "example-macOS" */; + buildPhases = ( + 1A938104A937498D81B3BD3B /* [CP] Check Pods Manifest.lock */, + 381D8A6F24576A6C00465D17 /* Start Packager */, + 514201452437B4B30078DB4F /* Sources */, + 514201462437B4B30078DB4F /* Frameworks */, + 514201472437B4B30078DB4F /* Resources */, + 381D8A6E24576A4E00465D17 /* Bundle React Native code and images */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "example-macOS"; + productName = example; + productReference = 514201492437B4B30078DB4F /* example.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 83CBB9F71A601CBA00E9B192 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1130; + TargetAttributes = { + 514201482437B4B30078DB4F = { + CreatedOnToolsVersion = 11.4; + ProvisioningStyle = Automatic; + }; + }; + }; + buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "example" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 83CBB9F61A601CBA00E9B192; + productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 514201482437B4B30078DB4F /* example-macOS */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 514201472437B4B30078DB4F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 514201522437B4B40078DB4F /* Assets.xcassets in Resources */, + 0934EC2524F02A7200151CF8 /* example.shared.xcconfig in Resources */, + 514201552437B4B40078DB4F /* Main.storyboard in Resources */, + 0934EC2424F02A7200151CF8 /* example.debug.xcconfig in Resources */, + 0934EC2324F02A7200151CF8 /* example.release.xcconfig in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 1A938104A937498D81B3BD3B /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Shared-example-macOS-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 381D8A6E24576A4E00465D17 /* Bundle React Native code and images */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Bundle React Native code and images"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "export NODE_BINARY=node\n../../node_modules/react-native-macos/scripts/react-native-xcode.sh\n"; + }; + 381D8A6F24576A6C00465D17 /* Start Packager */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Start Packager"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../../node_modules/react-native-macos/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../../node_modules/react-native-macos/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 514201452437B4B30078DB4F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 514201502437B4B30078DB4F /* ViewController.m in Sources */, + 514201582437B4B40078DB4F /* main.m in Sources */, + 5142014D2437B4B30078DB4F /* AppDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 514201532437B4B40078DB4F /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 514201542437B4B40078DB4F /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 5142015B2437B4B40078DB4F /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 02422F9FB6FF5F34B4E63E6F /* Pods-Shared-example-macOS.debug.xcconfig */; + buildSettings = { + }; + name = Debug; + }; + 5142015C2437B4B40078DB4F /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = CE0E74F571E1F48FF00A8324 /* Pods-Shared-example-macOS.release.xcconfig */; + buildSettings = { + }; + name = Release; + }; + 83CBBA201A601CBA00E9B192 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0934EC2124F02A7200151CF8 /* example.debug.xcconfig */; + buildSettings = { + }; + name = Debug; + }; + 83CBBA211A601CBA00E9B192 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0934EC2024F02A7200151CF8 /* example.release.xcconfig */; + buildSettings = { + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 5142015A2437B4B40078DB4F /* Build configuration list for PBXNativeTarget "example-macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5142015B2437B4B40078DB4F /* Debug */, + 5142015C2437B4B40078DB4F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 83CBBA201A601CBA00E9B192 /* Debug */, + 83CBBA211A601CBA00E9B192 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; +} diff --git a/example/macos/example.xcodeproj/xcshareddata/xcschemes/example-macOS.xcscheme b/example/macos/example.xcodeproj/xcshareddata/xcschemes/example-macOS.xcscheme new file mode 100644 index 000000000..113a1fe3f --- /dev/null +++ b/example/macos/example.xcodeproj/xcshareddata/xcschemes/example-macOS.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/example/macos/example.xcworkspace/contents.xcworkspacedata b/example/macos/example.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..7f5c3aab5 --- /dev/null +++ b/example/macos/example.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/example/macos/example.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/example/macos/example.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/example/macos/example.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/js/ProgressView.macos.js b/js/ProgressView.macos.js new file mode 100644 index 000000000..74eee9c80 --- /dev/null +++ b/js/ProgressView.macos.js @@ -0,0 +1,80 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @format + * @flow + */ + +'use strict'; + +const React = require('react'); +import {StyleSheet} from 'react-native'; + +import RNCProgressViewNativeComponent from './RNCProgressViewNativeComponent'; +import type {ImageSource} from 'react-native/Libraries/Image/ImageSource'; +import type {ColorValue} from 'react-native/Libraries/StyleSheet/StyleSheetTypes'; +import type {ViewProps} from 'react-native/Libraries/Components/View/ViewPropTypes'; + +type Props = $ReadOnly<{| + ...ViewProps, + + /** + * The progress bar style. + */ + progressViewStyle?: ?('default' | 'bar'), + + /** + * The progress value (between 0 and 1). + */ + progress?: ?number, + + /** + * The tint color of the progress bar itself. + */ + progressTintColor?: ?ColorValue, + + /** + * The tint color of the progress bar track. + */ + trackTintColor?: ?ColorValue, + + /** + * A stretchable image to display as the progress bar. + */ + progressImage?: ?ImageSource, + + /** + * A stretchable image to display behind the progress bar. + */ + trackImage?: ?ImageSource, +|}>; + +/** + * Use `ProgressViewIOS` to render a UIProgressView on iOS. + */ +const ProgressViewIOS = ( + props: Props, + forwardedRef?: ?React.Ref, +) => ( + +); + +const styles = StyleSheet.create({ + progressView: { + height: 2, + }, +}); + +const ProgressViewIOSWithRef = React.forwardRef(ProgressViewIOS); + +/* $FlowFixMe(>=0.89.0 site=react_native_ios_fb) This comment suppresses an + * error found when Flow v0.89 was deployed. To see the error, delete this + * comment and run Flow. */ +module.exports = (ProgressViewIOSWithRef: typeof RNCProgressViewNativeComponent); diff --git a/macos/RNCProgressView.h b/macos/RNCProgressView.h new file mode 100644 index 000000000..5b83a0f02 --- /dev/null +++ b/macos/RNCProgressView.h @@ -0,0 +1,18 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#import +#import + +@interface RNCProgressView : NSProgressIndicator + +@property (nonatomic, strong, nullable) RCTUIColor *progressTintColor; +@property (nonatomic, strong, nullable) RCTUIColor *trackTintColor; +@property(nonatomic, strong, nullable) UIImage *progressImage; +@property(nonatomic, strong, nullable) UIImage *trackImage; + +@end diff --git a/macos/RNCProgressView.m b/macos/RNCProgressView.m new file mode 100644 index 000000000..91ea4da13 --- /dev/null +++ b/macos/RNCProgressView.m @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#import "RNCProgressView.h" + +@implementation RNCProgressView + +- (instancetype)initWithFrame:(CGRect)frame +{ + if ((self = [super initWithFrame:frame])) { + self.maxValue = 1.0; + self.indeterminate = NO; + + // Default track color from NSProgressIndicator. + self.trackTintColor = [RCTUIColor colorWithRed: 237/255.0 green:237/255.0 blue:237/255.0 alpha:1.0]; + } + return self; +} + +- (void)setProgressImage:(UIImage *)progressImage +{ + progressImage.capInsets = NSEdgeInsetsMake(0, progressImage.size.width-0.5, 0, 0); + progressImage.resizingMode = NSImageResizingModeStretch; + _progressImage = progressImage; +} + +- (void)setTrackImage:(UIImage *)trackImage +{ + trackImage.capInsets = NSEdgeInsetsMake(0, 0, 0, trackImage.size.width-0.5); + trackImage.resizingMode = NSImageResizingModeStretch; + _trackImage = trackImage; +} + +- (void)drawRect:(NSRect)dirtyRect +{ + [super drawRect:dirtyRect]; + + if (self.progressTintColor == nil && self.progressImage == nil) { + return; + } + + // Clear background color + [[NSColor clearColor] set]; + NSRectFill(dirtyRect); + + // Draw progress line + NSRect activeRect = [self bounds]; + activeRect.size.width = floor(activeRect.size.width * (self.doubleValue/self.maxValue)); + if (self.progressTintColor) { + [self.progressTintColor set]; + NSRectFill(activeRect); + } else { + [self.progressImage drawInRect:activeRect]; + } + + // Draw empty line + NSRect passiveRect = [self bounds]; + passiveRect.size.width -= activeRect.size.width; + passiveRect.origin.x = activeRect.size.width; + if (self.trackTintColor) { + [self.trackTintColor set]; + NSRectFill(passiveRect); + } else { + [self.trackImage drawInRect:passiveRect]; + } +} + +@end diff --git a/macos/RNCProgressView.xcodeproj/project.pbxproj b/macos/RNCProgressView.xcodeproj/project.pbxproj new file mode 100644 index 000000000..0fa0b646a --- /dev/null +++ b/macos/RNCProgressView.xcodeproj/project.pbxproj @@ -0,0 +1,197 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 09270F2A24EE04B1009EBB56 /* RNCProgressView.h in Headers */ = {isa = PBXBuildFile; fileRef = 09270F2924EE04B1009EBB56 /* RNCProgressView.h */; }; + 09270F2C24EE04B1009EBB56 /* RNCProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 09270F2B24EE04B1009EBB56 /* RNCProgressView.m */; }; + 09270F3424EE054F009EBB56 /* RNCProgressViewManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 09270F3224EE054F009EBB56 /* RNCProgressViewManager.h */; }; + 09270F3524EE054F009EBB56 /* RNCProgressViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 09270F3324EE054F009EBB56 /* RNCProgressViewManager.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 09270F2624EE04B1009EBB56 /* libRNCProgressView.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRNCProgressView.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 09270F2924EE04B1009EBB56 /* RNCProgressView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNCProgressView.h; sourceTree = ""; }; + 09270F2B24EE04B1009EBB56 /* RNCProgressView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNCProgressView.m; sourceTree = ""; }; + 09270F3224EE054F009EBB56 /* RNCProgressViewManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNCProgressViewManager.h; sourceTree = ""; }; + 09270F3324EE054F009EBB56 /* RNCProgressViewManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNCProgressViewManager.m; sourceTree = ""; }; + 0934EC1B24EF5BDA00151CF8 /* RNCProgressView.shared.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = RNCProgressView.shared.xcconfig; sourceTree = ""; }; + 0934EC1C24EF5BDA00151CF8 /* RNCProgressView.release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = RNCProgressView.release.xcconfig; sourceTree = ""; }; + 0934EC1D24EF5BDA00151CF8 /* RNCProgressView.debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = RNCProgressView.debug.xcconfig; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 09270F2424EE04B0009EBB56 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 09270F1D24EE04B0009EBB56 = { + isa = PBXGroup; + children = ( + 0934EC1E24EF5BDA00151CF8 /* config */, + 09270F2924EE04B1009EBB56 /* RNCProgressView.h */, + 09270F2B24EE04B1009EBB56 /* RNCProgressView.m */, + 09270F3224EE054F009EBB56 /* RNCProgressViewManager.h */, + 09270F3324EE054F009EBB56 /* RNCProgressViewManager.m */, + 09270F2724EE04B1009EBB56 /* Products */, + ); + sourceTree = ""; + }; + 09270F2724EE04B1009EBB56 /* Products */ = { + isa = PBXGroup; + children = ( + 09270F2624EE04B1009EBB56 /* libRNCProgressView.a */, + ); + name = Products; + sourceTree = ""; + }; + 0934EC1E24EF5BDA00151CF8 /* config */ = { + isa = PBXGroup; + children = ( + 0934EC1B24EF5BDA00151CF8 /* RNCProgressView.shared.xcconfig */, + 0934EC1C24EF5BDA00151CF8 /* RNCProgressView.release.xcconfig */, + 0934EC1D24EF5BDA00151CF8 /* RNCProgressView.debug.xcconfig */, + ); + name = config; + path = "/Volumes/Source/react-native-community/progress-view/macos/config"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 09270F2224EE04B0009EBB56 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 09270F3424EE054F009EBB56 /* RNCProgressViewManager.h in Headers */, + 09270F2A24EE04B1009EBB56 /* RNCProgressView.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 09270F2524EE04B0009EBB56 /* RNCProgressView */ = { + isa = PBXNativeTarget; + buildConfigurationList = 09270F2F24EE04B1009EBB56 /* Build configuration list for PBXNativeTarget "RNCProgressView" */; + buildPhases = ( + 09270F2224EE04B0009EBB56 /* Headers */, + 09270F2324EE04B0009EBB56 /* Sources */, + 09270F2424EE04B0009EBB56 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = RNCProgressView; + productName = RNCProgressView; + productReference = 09270F2624EE04B1009EBB56 /* libRNCProgressView.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 09270F1E24EE04B0009EBB56 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1160; + TargetAttributes = { + 09270F2524EE04B0009EBB56 = { + CreatedOnToolsVersion = 11.6; + }; + }; + }; + buildConfigurationList = 09270F2124EE04B0009EBB56 /* Build configuration list for PBXProject "RNCProgressView" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 09270F1D24EE04B0009EBB56; + productRefGroup = 09270F2724EE04B1009EBB56 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 09270F2524EE04B0009EBB56 /* RNCProgressView */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 09270F2324EE04B0009EBB56 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 09270F2C24EE04B1009EBB56 /* RNCProgressView.m in Sources */, + 09270F3524EE054F009EBB56 /* RNCProgressViewManager.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 09270F2D24EE04B1009EBB56 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0934EC1D24EF5BDA00151CF8 /* RNCProgressView.debug.xcconfig */; + buildSettings = { + }; + name = Debug; + }; + 09270F2E24EE04B1009EBB56 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0934EC1C24EF5BDA00151CF8 /* RNCProgressView.release.xcconfig */; + buildSettings = { + }; + name = Release; + }; + 09270F3024EE04B1009EBB56 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0934EC1B24EF5BDA00151CF8 /* RNCProgressView.shared.xcconfig */; + buildSettings = { + }; + name = Debug; + }; + 09270F3124EE04B1009EBB56 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0934EC1B24EF5BDA00151CF8 /* RNCProgressView.shared.xcconfig */; + buildSettings = { + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 09270F2124EE04B0009EBB56 /* Build configuration list for PBXProject "RNCProgressView" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 09270F2D24EE04B1009EBB56 /* Debug */, + 09270F2E24EE04B1009EBB56 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 09270F2F24EE04B1009EBB56 /* Build configuration list for PBXNativeTarget "RNCProgressView" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 09270F3024EE04B1009EBB56 /* Debug */, + 09270F3124EE04B1009EBB56 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 09270F1E24EE04B0009EBB56 /* Project object */; +} diff --git a/macos/RNCProgressViewManager.h b/macos/RNCProgressViewManager.h new file mode 100644 index 000000000..adee3733f --- /dev/null +++ b/macos/RNCProgressViewManager.h @@ -0,0 +1,12 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#import + +@interface RNCProgressViewManager : RCTViewManager + +@end diff --git a/macos/RNCProgressViewManager.m b/macos/RNCProgressViewManager.m new file mode 100644 index 000000000..aff0e2f44 --- /dev/null +++ b/macos/RNCProgressViewManager.m @@ -0,0 +1,39 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#import "RNCProgressViewManager.h" + +#import "RNCProgressView.h" + +#import + +@implementation RCTConvert (RNCProgressViewManager) + +RCT_ENUM_CONVERTER(NSProgressIndicatorStyle, (@{ + @"default": @(NSProgressIndicatorBarStyle), + @"bar": @(NSProgressIndicatorBarStyle), +}), NSProgressIndicatorBarStyle, integerValue) + +@end + +@implementation RNCProgressViewManager + +RCT_EXPORT_MODULE() + +- (RCTPlatformView *)view +{ + return [RNCProgressView new]; +} + +RCT_EXPORT_VIEW_PROPERTY(style, NSProgressIndicatorStyle) +RCT_REMAP_VIEW_PROPERTY(progress, doubleValue, double) +RCT_EXPORT_VIEW_PROPERTY(progressTintColor, UIColor) +RCT_EXPORT_VIEW_PROPERTY(trackTintColor, UIColor) +RCT_EXPORT_VIEW_PROPERTY(progressImage, UIImage) +RCT_EXPORT_VIEW_PROPERTY(trackImage, UIImage) + +@end diff --git a/macos/config/RNCProgressView.debug.xcconfig b/macos/config/RNCProgressView.debug.xcconfig new file mode 100644 index 000000000..4f4c488b6 --- /dev/null +++ b/macos/config/RNCProgressView.debug.xcconfig @@ -0,0 +1,7 @@ +DEBUG_INFORMATION_FORMAT = dwarf +ENABLE_TESTABILITY = YES +GCC_DYNAMIC_NO_PIC = NO +GCC_OPTIMIZATION_LEVEL = 0 +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) DEBUG=1 +MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE +ONLY_ACTIVE_ARCH = YES diff --git a/macos/config/RNCProgressView.release.xcconfig b/macos/config/RNCProgressView.release.xcconfig new file mode 100644 index 000000000..24aaeec66 --- /dev/null +++ b/macos/config/RNCProgressView.release.xcconfig @@ -0,0 +1,3 @@ +DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym" +ENABLE_NS_ASSERTIONS = NO +MTL_ENABLE_DEBUG_INFO = NO diff --git a/macos/config/RNCProgressView.shared.xcconfig b/macos/config/RNCProgressView.shared.xcconfig new file mode 100644 index 000000000..bf307acb4 --- /dev/null +++ b/macos/config/RNCProgressView.shared.xcconfig @@ -0,0 +1,44 @@ +PRODUCT_NAME = $(TARGET_NAME) + +ALWAYS_SEARCH_USER_PATHS = NO +CLANG_ANALYZER_NONNULL = YES +CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE +CLANG_CXX_LANGUAGE_STANDARD = "gnu++14" +CLANG_CXX_LIBRARY = "libc++" +CLANG_ENABLE_MODULES = YES +CLANG_ENABLE_OBJC_ARC = YES +CLANG_ENABLE_OBJC_WEAK = YES +CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES +CLANG_WARN_BOOL_CONVERSION = YES +CLANG_WARN_COMMA = YES +CLANG_WARN_CONSTANT_CONVERSION = YES +CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = 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_IMPLICIT_RETAIN_SELF = 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_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN_UNREACHABLE_CODE = YES +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +COPY_PHASE_STRIP = NO +ENABLE_STRICT_OBJC_MSGSEND = YES +GCC_C_LANGUAGE_STANDARD = gnu11 +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 +MACOSX_DEPLOYMENT_TARGET = 10.15 +MTL_FAST_MATH = YES +SDKROOT = macosx diff --git a/metro.config.macos.js b/metro.config.macos.js new file mode 100644 index 000000000..8c83e16ac --- /dev/null +++ b/metro.config.macos.js @@ -0,0 +1,19 @@ +/** + * This cli config is needed for development purposes, e.g. for running + * integration tests during local development or on CI services. + */ + +const path = require('path'); +const blacklist = require('metro-config/src/defaults/blacklist'); + +const rnmPath = path.resolve(__dirname, 'node_modules/react-native-macos'); + +module.exports = { + resolver: { + extraNodeModules: { + 'react-native': rnmPath, + }, + platforms: ['macos', 'ios', 'android'], + blacklistRE: blacklist([/node_modules\/react-native\/.*/]), + }, +}; diff --git a/package.json b/package.json index ad6ff8038..c3bf26763 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "android", "ios", "js", + "macos", "react-native-progress-view.podspec", "windows" ], @@ -29,6 +30,7 @@ "flow": "flow", "lint": "eslint .", "ios": "react-native run-ios --project-path \"./example/ios\"", + "start:macos": "react-native start --use-react-native-macos", "start:windows": "react-native start --use-react-native-windows", "android": "react-native run-android --root example", "start": "react-native start", @@ -64,6 +66,7 @@ "metro-react-native-babel-preset": "^0.59.0", "react": "16.13.1", "react-native": "^0.63.0-rc.1", + "react-native-macos": "^0.62.0-0", "react-native-windows": "^0.62.0-0", "react-test-renderer": "16.13.1", "selenium-appium": "0.0.15", diff --git a/react-native-progress-view.podspec b/react-native-progress-view.podspec index d39eaacf6..976b92f51 100644 --- a/react-native-progress-view.podspec +++ b/react-native-progress-view.podspec @@ -3,17 +3,18 @@ require 'json' package = JSON.parse(File.read(File.join(__dir__, 'package.json'))) Pod::Spec.new do |s| - s.name = "react-native-progress-view" - s.version = package['version'] - s.summary = package['description'] - s.license = package['license'] + s.name = "react-native-progress-view" + s.version = package['version'] + s.summary = package['description'] + s.license = package['license'] - s.authors = package['author'] - s.homepage = package['homepage'] - s.platform = :ios, "9.0" + s.authors = package['author'] + s.homepage = package['homepage'] + s.platforms = { :ios => "9.0", :osx => "10.14" } - s.source = { :git => "https://github.com/react-native-community/react-native-progress-view.git", :tag => "#{s.version}" } - s.source_files = "ios/**/*.{h,m}" + s.source = { :git => "https://github.com/react-native-community/react-native-progress-view.git", :tag => "#{s.version}" } + s.ios.source_files = "ios/**/*.{h,m}" + s.osx.source_files = "macos/**/*.{h,m}" s.dependency 'React' end \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 926608155..b08153e03 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1614,6 +1614,33 @@ dependencies: serve-static "^1.13.1" +"@react-native-community/cli-hermes@^4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-4.13.0.tgz#6243ed9c709dad5e523f1ccd7d21066b32f2899d" + integrity sha512-oG+w0Uby6rSGsUkJGLvMQctZ5eVRLLfhf84lLyz942OEDxFRa9U19YJxOe9FmgCKtotbYiM3P/XhK+SVCuerPQ== + dependencies: + "@react-native-community/cli-platform-android" "^4.13.0" + "@react-native-community/cli-tools" "^4.13.0" + chalk "^3.0.0" + hermes-profile-transformer "^0.0.6" + ip "^1.1.5" + +"@react-native-community/cli-platform-android@^4.13.0", "@react-native-community/cli-platform-android@^4.5.1": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-4.13.0.tgz#922681ec82ee1aadd993598b814df1152118be02" + integrity sha512-3i8sX8GklEytUZwPnojuoFbCjIRzMugCdzDIdZ9UNmi/OhD4/8mLGO0dgXfT4sMWjZwu3qjy45sFfk2zOAgHbA== + dependencies: + "@react-native-community/cli-tools" "^4.13.0" + chalk "^3.0.0" + execa "^1.0.0" + fs-extra "^8.1.0" + glob "^7.1.3" + jetifier "^1.6.2" + lodash "^4.17.15" + logkitty "^0.7.1" + slash "^3.0.0" + xmldoc "^1.1.2" + "@react-native-community/cli-platform-android@^4.7.0": version "4.10.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-4.10.1.tgz#c326dfcce42acf106cc9c4afb95b360644fa595b" @@ -1630,6 +1657,19 @@ slash "^3.0.0" xmldoc "^1.1.2" +"@react-native-community/cli-platform-ios@^4.5.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-4.13.0.tgz#a738915c68cac86df54e578b59a1311ea62b1aef" + integrity sha512-6THlTu8zp62efkzimfGr3VIuQJ2514o+vScZERJCV1xgEi8XtV7mb/ZKt9o6Y9WGxKKkc0E0b/aVAtgy+L27CA== + dependencies: + "@react-native-community/cli-tools" "^4.13.0" + chalk "^3.0.0" + glob "^7.1.3" + js-yaml "^3.13.1" + lodash "^4.17.15" + plist "^3.0.1" + xcode "^2.0.0" + "@react-native-community/cli-platform-ios@^4.7.0": version "4.10.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-4.10.1.tgz#c73d7b33f22458aa806069df0dfc0ed55973679b" @@ -1657,6 +1697,20 @@ serve-static "^1.13.1" ws "^1.1.0" +"@react-native-community/cli-server-api@^4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-4.13.0.tgz#ef0e53fe0edc7356d62bca725ca47cb368f748a5" + integrity sha512-ER138ChLc1YYX7j9yE6fDm4DdNdsHThr+pla/B6iZoKje1r7TwymDdKaUvOsYalG7sWG9glW3bofcCq+Yh0Dvw== + dependencies: + "@react-native-community/cli-debugger-ui" "^4.9.0" + "@react-native-community/cli-tools" "^4.13.0" + compression "^1.7.1" + connect "^3.6.5" + errorhandler "^1.5.0" + pretty-format "^25.1.0" + serve-static "^1.13.1" + ws "^1.1.0" + "@react-native-community/cli-tools@^4.10.1": version "4.10.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-4.10.1.tgz#11f6833e646fbf53509282912e8d77658a8578b0" @@ -1669,11 +1723,64 @@ open "^6.2.0" shell-quote "1.6.1" +"@react-native-community/cli-tools@^4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-4.13.0.tgz#b406463d33af16cedc4305a9a9257ed32845cf1b" + integrity sha512-s4f489h5+EJksn4CfheLgv5PGOM0CDmK1UEBLw2t/ncWs3cW2VI7vXzndcd/WJHTv3GntJhXDcJMuL+Z2IAOgg== + dependencies: + chalk "^3.0.0" + lodash "^4.17.15" + mime "^2.4.1" + node-fetch "^2.6.0" + open "^6.2.0" + shell-quote "1.6.1" + "@react-native-community/cli-types@^4.10.1": version "4.10.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-4.10.1.tgz#d68a2dcd1649d3b3774823c64e5e9ce55bfbe1c9" integrity sha512-ael2f1onoPF3vF7YqHGWy7NnafzGu+yp88BbFbP0ydoCP2xGSUzmZVw0zakPTC040Id+JQ9WeFczujMkDy6jYQ== +"@react-native-community/cli@^4.5.1": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-4.13.0.tgz#04d5032f9b2b423c61ceef6be83b1bcc8a37db75" + integrity sha512-R+1VehIQ6VTLf+e7YOwzJk0F9tstfeSC4xy7oT6GSgB3FnXbTJGHFUp4siyO68Ae/gzGqt8SiUO145teWkP+ZA== + dependencies: + "@hapi/joi" "^15.0.3" + "@react-native-community/cli-debugger-ui" "^4.9.0" + "@react-native-community/cli-hermes" "^4.13.0" + "@react-native-community/cli-server-api" "^4.13.0" + "@react-native-community/cli-tools" "^4.13.0" + "@react-native-community/cli-types" "^4.10.1" + chalk "^3.0.0" + command-exists "^1.2.8" + commander "^2.19.0" + cosmiconfig "^5.1.0" + deepmerge "^3.2.0" + envinfo "^7.7.2" + execa "^1.0.0" + find-up "^4.1.0" + fs-extra "^8.1.0" + glob "^7.1.3" + graceful-fs "^4.1.3" + inquirer "^3.0.6" + leven "^3.1.0" + lodash "^4.17.15" + metro "^0.58.0" + metro-config "^0.58.0" + metro-core "^0.58.0" + metro-react-native-babel-transformer "^0.58.0" + metro-resolver "^0.58.0" + minimist "^1.2.0" + mkdirp "^0.5.1" + node-stream-zip "^1.9.1" + ora "^3.4.0" + pretty-format "^25.2.0" + semver "^6.3.0" + serve-static "^1.13.1" + strip-ansi "^5.2.0" + sudo-prompt "^9.0.0" + wcwidth "^1.0.1" + "@react-native-community/cli@^4.7.0", "@react-native-community/cli@^4.8.0": version "4.10.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-4.10.1.tgz#3c1e74f55c004936368d3576d4c1da7d02b89904" @@ -4358,6 +4465,11 @@ envinfo@^7.1.0, envinfo@^7.5.0: resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.6.0.tgz#8201bf6162b3afc372278992d0851d47d0567d33" integrity sha512-Q28imaho8jwBach1iGj7qqQeStDV9z7ApPAg7WQKLEyvqHa0HcES++QOL7by+efgAnkXzK51MQPYgj/3I7s/dw== +envinfo@^7.7.2: + version "7.7.3" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.3.tgz#4b2d8622e3e7366afb8091b23ed95569ea0208cc" + integrity sha512-46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA== + error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -4511,6 +4623,13 @@ eslint-plugin-react@^7.20.0: resolve "^1.17.0" string.prototype.matchall "^4.0.2" +eslint-plugin-relay@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-relay/-/eslint-plugin-relay-1.4.1.tgz#5af2ac13e24bd01ad17b6a4014204918d65021cd" + integrity sha512-yb+p+4AxZTi2gXN7cZRfXMBFlRa5j6TtiVeq3yHXyy+tlgYNpxi/dDrP1+tcUTNP9vdaJovnfGZ5jp6kMiH9eg== + dependencies: + graphql "^14.0.0" + eslint-scope@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" @@ -5390,6 +5509,13 @@ grapheme-splitter@^1.0.2: resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== +graphql@^14.0.0: + version "14.7.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.7.0.tgz#7fa79a80a69be4a31c27dda824dc04dac2035a72" + integrity sha512-l0xWZpoPKpppFzMfvVyFmp9vLN7w/ZZJPefUicMCepfJeQ8sMcztloGYY9DfjVPo6tIUDzU5Hw3MUbIjj9AVVA== + dependencies: + iterall "^1.2.2" + growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -5466,11 +5592,23 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" +hermes-engine@~0.4.0: + version "0.4.3" + resolved "https://registry.yarnpkg.com/hermes-engine/-/hermes-engine-0.4.3.tgz#1754932f989daddd149172600f01e69cb8f27298" + integrity sha512-qkk85ezG+w70C3tQ4iDs22B8talvByGeJQ1VIb2KG5+rMZWVizRq6r+NYptOC/HWAFxkdYb6F3OPca7RxvjYew== + hermes-engine@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/hermes-engine/-/hermes-engine-0.5.0.tgz#d914acce72e9657b3c98875ad3f9094d8643f327" integrity sha512-jSuHiOhdh2+IF3bH2gLpQ37eMkdUrEb9GK6PoG3rLRaUDK3Zn2Y9fXM+wyDfoUTA3gz9EET0/IIWk5k21qp4kw== +hermes-profile-transformer@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz#bd0f5ecceda80dd0ddaae443469ab26fb38fc27b" + integrity sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ== + dependencies: + source-map "^0.7.3" + hosted-git-info@^2.1.4: version "2.8.8" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" @@ -5721,6 +5859,11 @@ ip-regex@^2.1.0: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= +ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" @@ -6038,6 +6181,11 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +iterall@^1.2.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" + integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== + jest-changed-files@^26.1.0: version "26.1.0" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.1.0.tgz#de66b0f30453bca2aff98e9400f75905da495305" @@ -7474,6 +7622,17 @@ metro-react-native-babel-preset@^0.56.4: "@babel/template" "^7.0.0" react-refresh "^0.4.0" +metro-react-native-babel-transformer@0.58.0, metro-react-native-babel-transformer@^0.58.0: + version "0.58.0" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.58.0.tgz#5da0e5a1b83c01d11626905fa59f34fda53a21a5" + integrity sha512-3A73+cRq1eUPQ8g+hPNGgMUMCGmtQjwqHfoG1DwinAoJ/kr4WOXWWbGZo0xHJNBe/zdHGl0uHcDCp2knPglTdQ== + dependencies: + "@babel/core" "^7.0.0" + babel-preset-fbjs "^3.3.0" + metro-babel-transformer "0.58.0" + metro-react-native-babel-preset "0.58.0" + metro-source-map "0.58.0" + metro-react-native-babel-transformer@0.59.0: version "0.59.0" resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.59.0.tgz#9b3dfd6ad35c6ef37fc4ce4d20a2eb67fabbb4be" @@ -7485,17 +7644,6 @@ metro-react-native-babel-transformer@0.59.0: metro-react-native-babel-preset "0.59.0" metro-source-map "0.59.0" -metro-react-native-babel-transformer@^0.58.0: - version "0.58.0" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.58.0.tgz#5da0e5a1b83c01d11626905fa59f34fda53a21a5" - integrity sha512-3A73+cRq1eUPQ8g+hPNGgMUMCGmtQjwqHfoG1DwinAoJ/kr4WOXWWbGZo0xHJNBe/zdHGl0uHcDCp2knPglTdQ== - dependencies: - "@babel/core" "^7.0.0" - babel-preset-fbjs "^3.3.0" - metro-babel-transformer "0.58.0" - metro-react-native-babel-preset "0.58.0" - metro-source-map "0.58.0" - metro-resolver@0.58.0, metro-resolver@^0.58.0: version "0.58.0" resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.58.0.tgz#4d03edc52e2e25d45f16688adf3b3f268ea60df9" @@ -8834,7 +8982,7 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -react-devtools-core@^4.6.0: +react-devtools-core@^4.0.6, react-devtools-core@^4.6.0: version "4.8.2" resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.8.2.tgz#4465f2e8de7795564aa20f28b2f3a9737586db23" integrity sha512-3Lv3nI8FPAwKqUco35oOlgf+4j8mgYNnIcDv2QTfxEqg2G69q17ZJ8ScU9aBnymS28YC1OW+kTxLmdIQeTN8yg== @@ -8847,6 +8995,43 @@ react-is@^16.12.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== +react-native-macos@^0.62.0-0: + version "0.62.13" + resolved "https://registry.yarnpkg.com/react-native-macos/-/react-native-macos-0.62.13.tgz#951bf394ff497f496c95cdc0a09d77edfa967a78" + integrity sha512-n3k8efP7Re6aJeorDLdSHpT37Z18UFxmAA5bB0k+dm8/ORtdjJMDrhxu+u70fYd4Nbp4LvZmflJ6qZUEewRb9Q== + dependencies: + "@babel/runtime" "^7.0.0" + "@react-native-community/cli" "^4.5.1" + "@react-native-community/cli-platform-android" "^4.5.1" + "@react-native-community/cli-platform-ios" "^4.5.0" + abort-controller "^3.0.0" + anser "^1.4.9" + base64-js "^1.1.2" + connect "^3.6.5" + create-react-class "^15.6.3" + escape-string-regexp "^1.0.5" + eslint-plugin-relay "1.4.1" + event-target-shim "^5.0.1" + fbjs "^1.0.0" + fbjs-scripts "^1.1.0" + hermes-engine "~0.4.0" + invariant "^2.2.4" + jsc-android "^245459.0.0" + metro-babel-register "0.58.0" + metro-react-native-babel-transformer "0.58.0" + metro-source-map "0.58.0" + nullthrows "^1.1.1" + pretty-format "^24.7.0" + promise "^7.1.1" + prop-types "^15.7.2" + react-devtools-core "^4.0.6" + react-refresh "^0.4.0" + regenerator-runtime "^0.13.2" + scheduler "0.17.0" + stacktrace-parser "^0.1.3" + use-subscription "^1.0.0" + whatwg-fetch "^3.0.0" + react-native-windows@^0.62.0-0: version "0.62.2" resolved "https://registry.yarnpkg.com/react-native-windows/-/react-native-windows-0.62.2.tgz#eae6d9e55116d69c8d8316ec6e52505c760ba1bd" @@ -9401,6 +9586,14 @@ saxes@^5.0.0: dependencies: xmlchars "^2.2.0" +scheduler@0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.17.0.tgz#7c9c673e4ec781fac853927916d1c426b6f3ddfe" + integrity sha512-7rro8Io3tnCPuY4la/NuI5F2yfESpnfZyT6TtkXnSWVkcu0BCDJ+8gk5ozUaFaxpIyNuWAPXrH0yFcSi28fnDA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler@0.19.1, scheduler@^0.19.1: version "0.19.1" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"