From f15a3b2f01d678ec9713022cabf5ddf746ed5f67 Mon Sep 17 00:00:00 2001 From: karthicktam Date: Mon, 7 Jan 2019 11:42:06 +0530 Subject: [PATCH] new files added and Butoon Image ListView are modified --- src/ReactNative/Components/Button.purs | 14 +- .../Components/DrawerLayoutAndroid.purs | 76 ++ src/ReactNative/Components/FlatList.purs | 57 ++ src/ReactNative/Components/Image.purs | 14 +- .../Components/ImageBackground.purs | 24 + .../Components/InputAccessoryView.purs | 24 + .../Components/KeyboardAvoidingView.purs | 41 + src/ReactNative/Components/ListView.purs | 15 +- src/ReactNative/Components/MaskedViewIOS.purs | 17 + src/ReactNative/Components/PickerIOS.purs | 24 + .../Components/ProgressBarAndroid.purs | 50 + .../Components/ProgressViewIOS.purs | 39 + src/ReactNative/Components/SectionList.purs | 53 ++ .../Components/SegmentedControlIOS.purs | 30 + .../Components/SnapshotViewIOS.purs | 24 + src/ReactNative/Components/StatusBar.purs | 59 ++ .../Components/TabBarIOS.Item.purs | 69 ++ src/ReactNative/Components/TabBarIOS.purs | 56 ++ .../Components/ToolbarAndroid.purs | 39 + .../Components/ViewPagerAndroid.purs | 49 + .../Components/VirtualizedList.purs | 67 ++ src/ReactNative/Components/WebView.purs | 60 ++ src/ReactNative/PropTypes.purs | 2 + src/ReactNative/Unsafe/Components.js | 7 + src/ReactNative/Unsafe/Components.purs | 46 +- yarn.lock | 854 ++++++++++++++++++ 26 files changed, 1792 insertions(+), 18 deletions(-) create mode 100644 src/ReactNative/Components/DrawerLayoutAndroid.purs create mode 100644 src/ReactNative/Components/FlatList.purs create mode 100644 src/ReactNative/Components/ImageBackground.purs create mode 100644 src/ReactNative/Components/InputAccessoryView.purs create mode 100644 src/ReactNative/Components/KeyboardAvoidingView.purs create mode 100644 src/ReactNative/Components/MaskedViewIOS.purs create mode 100644 src/ReactNative/Components/PickerIOS.purs create mode 100644 src/ReactNative/Components/ProgressBarAndroid.purs create mode 100644 src/ReactNative/Components/ProgressViewIOS.purs create mode 100644 src/ReactNative/Components/SectionList.purs create mode 100644 src/ReactNative/Components/SegmentedControlIOS.purs create mode 100644 src/ReactNative/Components/SnapshotViewIOS.purs create mode 100644 src/ReactNative/Components/StatusBar.purs create mode 100644 src/ReactNative/Components/TabBarIOS.Item.purs create mode 100644 src/ReactNative/Components/TabBarIOS.purs create mode 100644 src/ReactNative/Components/ToolbarAndroid.purs create mode 100644 src/ReactNative/Components/ViewPagerAndroid.purs create mode 100644 src/ReactNative/Components/VirtualizedList.purs create mode 100644 src/ReactNative/Components/WebView.purs create mode 100644 yarn.lock diff --git a/src/ReactNative/Components/Button.purs b/src/ReactNative/Components/Button.purs index be0af7a..024ec9d 100644 --- a/src/ReactNative/Components/Button.purs +++ b/src/ReactNative/Components/Button.purs @@ -11,12 +11,20 @@ import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) import ReactNative.Unsafe.Components (buttonU) import Prelude +type ButtonProps r = { + onPress :: EventHandler TouchEvent + , title :: String --TODO: check this + | r +} + type ButtonPropsO = ( accessibilityLabel :: String , color :: Color , disabled :: Boolean - , onPress :: EventHandler TouchEvent - , title :: String + , testID :: String + , ios :: { + hasTVPreferredFocus :: Boolean --TODO: Apple Tv only + } ) -- | Create a button with the given `title` and `onPress` handler @@ -28,5 +36,5 @@ button_ :: String -> ReactElement button_ title = buttonU {title} -- | Create a button with the given props and `title` -button' :: forall o. Optional o ButtonPropsO => {|o} -> ReactElement +button' :: forall o. Optional o ButtonPropsO => ButtonProps o -> ReactElement button' = buttonU <<< unsafeApplyProps diff --git a/src/ReactNative/Components/DrawerLayoutAndroid.purs b/src/ReactNative/Components/DrawerLayoutAndroid.purs new file mode 100644 index 0000000..ae2b42a --- /dev/null +++ b/src/ReactNative/Components/DrawerLayoutAndroid.purs @@ -0,0 +1,76 @@ +module ReactNative.Components.DrawerLayoutAndroid ( + DrawerPosition, + KeyboardDismissMode, + DrawerLockMode, + drawerPosition, + keyboardDismissMode, + drawerLockMode +) +where + +import Prelude +import ReactNative.Optional (class Optional) +import React (ReactElement) +import ReactNative.Components.View (ViewPropsEx) +import ReactNative.Events (UnitEventHandler) +import ReactNative.PropTypes.Color (Color) +import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) +import ReactNative.Unsafe.Components (drawerLayoutAndroidU) + + +type DrawerLayoutAndroid r = { + renderNavigationView :: UnitEventHandler + | r +} + +type DrawerLayoutAndroidO = ViewPropsEx ( + onDrawerClose :: UnitEventHandler + , drawerPosition :: DrawerPosition + , drawerWidth :: Number + , keyboardDismissMode :: KeyboardDismissMode + , drawerLockMode :: DrawerLockMode + , onDrawerOpen :: UnitEventHandler + , onDrawerSlide :: UnitEventHandler +-- , onDrawerStateChanged :: Function --TODO: need to do this + , drawerBackgroundColor :: Color + , statusBarBackgroundColor :: Color +) () () + + +drawerLayoutAndroid :: forall o + . Optional o DrawerLayoutAndroidO + => DrawerLayoutAndroid o -> Array ReactElement -> ReactElement +drawerLayoutAndroid = drawerLayoutAndroidU <<< unsafeApplyProps + +newtype DrawerPosition = DrawerPosition String +drawerPosition :: { + "DrawerConsts.DrawerPosition.Left" :: DrawerPosition + , "DrawerConsts.DrawerPosition.Right" :: DrawerPosition +} +drawerPosition = { + "DrawerConsts.DrawerPosition.Left": DrawerPosition "DrawerConsts.DrawerPosition.Left" + , "DrawerConsts.DrawerPosition.Right": DrawerPosition "DrawerConsts.DrawerPosition.Right" +} + +newtype KeyboardDismissMode = KeyboardDismissMode String +keyboardDismissMode :: { + none :: KeyboardDismissMode + , onDrag :: KeyboardDismissMode +} +keyboardDismissMode = { + none: KeyboardDismissMode "none" + , onDrag: KeyboardDismissMode "onDrag" +} + +newtype DrawerLockMode = DrawerLockMode String +drawerLockMode :: { + unlocked :: DrawerLockMode + , lockedClosed :: DrawerLockMode + , lockedOpen :: DrawerLockMode +} +drawerLockMode = { + unlocked: DrawerLockMode "unlocked" + , lockedClosed: DrawerLockMode "lockedClosed" + , lockedOpen: DrawerLockMode "lockedCpen" +} + diff --git a/src/ReactNative/Components/FlatList.purs b/src/ReactNative/Components/FlatList.purs new file mode 100644 index 0000000..613e7bb --- /dev/null +++ b/src/ReactNative/Components/FlatList.purs @@ -0,0 +1,57 @@ +module ReactNative.Components.FlatList ( + flatList +) +where + +import Prelude + +import React (ReactElement) +import ReactNative.Components.ScrollView (ScrollViewPropsEx) +import ReactNative.Optional (class Optional) +import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) +import ReactNative.Unsafe.Components (flatListU) +import Type.Data.Boolean (kind Boolean) + + +type FlatListProps r = { + -- renderItem :: Function + "data" :: Array String --TODO: check this + | r + } + +type FlatListPropsO = ScrollViewPropsEx ( + -- props :: VirtualizedList --TODO: change that + -- , ItemSeparatorComponent :: Component + -- , ListEmptyComponent :: component, function, element + -- , ListFooterComponent :: component, function, element + -- , ListHeaderComponent :: component, function, element + -- , columnWrapperStyle :: style object + -- , extraData :: any + -- getItemLayout :: Function + horizontal :: Boolean + , initialNumToRender :: Number + , initialScrollIndex :: Number + , inverted :: Boolean + -- , keyExtractor :: Function + , numColumns :: Number + -- , onEndReached :: Function + , onEndReachedThreshold :: Number + -- , onRefresh :: Function + -- , onViewableItemsChanged :: Function + , legacyImplementation :: Boolean + , refreshing :: Boolean + , removeClippedSubviews :: Boolean + -- , viewabilityConfig :: ViewabilityConfig + -- , viewabilityConfigCallbackPairs :: array of ViewabilityConfigCallbackPair + , android :: { + progressViewOffset :: Number + } + ) + -- ( + -- progressViewOffset :: Number + -- ) () + +flatList :: forall o + . Optional o FlatListPropsO + => FlatListProps o -> Array ReactElement -> ReactElement +flatList = flatListU <<< unsafeApplyProps diff --git a/src/ReactNative/Components/Image.purs b/src/ReactNative/Components/Image.purs index 4248469..8a4a79a 100644 --- a/src/ReactNative/Components/Image.purs +++ b/src/ReactNative/Components/Image.purs @@ -14,11 +14,6 @@ import ReactNative.Styles (ResizeMode, Styles) import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) import ReactNative.Unsafe.Components (imageU) -type ImageProps r = { - source :: ImageSource - | r -} - type ImagePropsO = BaseProps ( style :: Styles , onError :: UnitEventHandler @@ -27,15 +22,18 @@ type ImagePropsO = BaseProps ( , onLoadEnd :: UnitEventHandler , onLoadStart :: UnitEventHandler , resizeMode :: ResizeMode + , loadingIndicatorSource :: Array ImageSource --TODO: Number + , source :: ImageSource --TODO: check this , android :: { resizeMethod :: ResizeMethod + , fadeDuration :: Number } , ios :: { accessibilityLabel :: String , accessible :: Boolean , blurRadius :: Number , capInsets :: {top::Number, left::Number, bottom::Number, right::Number} - , defaultSource :: ImageSource + , defaultSource :: ImageSource --TODO: check this , onPartialLoad :: UnitEventHandler , onProgress :: EventHandler ImageProgressEvent } @@ -52,7 +50,7 @@ backgroundImage style source = imageU {style, source} -- | Background images are simply normal images with children overalayed ontop backgroundImage' :: forall o . Optional o ImagePropsO - => ImageProps o -> Array ReactElement -> ReactElement + => {|o} -> Array ReactElement -> ReactElement backgroundImage' = imageU <<< unsafeApplyProps -- | Create an Image from source only @@ -66,7 +64,7 @@ image style source = imageU {style, source} [] -- | Create an Image with props and source image' :: forall o . Optional o ImagePropsO - => ImageProps o -> ReactElement + => {|o} -> ReactElement image' p = imageU (unsafeApplyProps p) [] newtype ResizeMethod = ResizeMethod String diff --git a/src/ReactNative/Components/ImageBackground.purs b/src/ReactNative/Components/ImageBackground.purs new file mode 100644 index 0000000..db38aca --- /dev/null +++ b/src/ReactNative/Components/ImageBackground.purs @@ -0,0 +1,24 @@ +module ReactNative.Components.ImageBackground ( + imageBackground +) where + +import Prelude + +import React (ReactElement) +import ReactNative.Optional (class Optional) +import ReactNative.Styles (Styles) +import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) +import ReactNative.Unsafe.Components (imageBackgroundU) + + +type ImageBackgroundO = ( style :: Styles ) + -- , style :: view styles + -- , imageStyle :: image styles + -- , imageRef :: Ref + -- ) () () + + +imageBackground :: forall o + . Optional o ImageBackgroundO + => {|o} -> Array ReactElement -> ReactElement +imageBackground = imageBackgroundU <<< unsafeApplyProps diff --git a/src/ReactNative/Components/InputAccessoryView.purs b/src/ReactNative/Components/InputAccessoryView.purs new file mode 100644 index 0000000..9f6bf2a --- /dev/null +++ b/src/ReactNative/Components/InputAccessoryView.purs @@ -0,0 +1,24 @@ +module ReactNative.Components.InputAccessoryView ( + inputAccessoryView +) +where + +import Prelude + +import React (ReactElement) +import ReactNative.Optional (class Optional) +import ReactNative.PropTypes.Color (Color) +import ReactNative.Styles (Styles) +import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) +import ReactNative.Unsafe.Components (inputAccessoryViewU) + +type InputAccessoryViewO = + ( backgroundColor :: Color + , nativeID :: String + , style :: Styles + ) + +inputAccessoryView :: forall o + . Optional o InputAccessoryViewO + => {|o} -> Array ReactElement -> ReactElement +inputAccessoryView = inputAccessoryViewU <<< unsafeApplyProps diff --git a/src/ReactNative/Components/KeyboardAvoidingView.purs b/src/ReactNative/Components/KeyboardAvoidingView.purs new file mode 100644 index 0000000..93bd8a8 --- /dev/null +++ b/src/ReactNative/Components/KeyboardAvoidingView.purs @@ -0,0 +1,41 @@ +module ReactNative.Components.KeyboardAvoidingView ( + BehaviorType, behaviorType, keyboardAvoidingView +) +where + +import Prelude + +import React (ReactElement) +import ReactNative.Components.View (ViewPropsEx) +import ReactNative.Optional (class Optional) +import ReactNative.Styles (Styles) +import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) +import ReactNative.Unsafe.Components (keyboardAvoidingViewU) +import Type.Data.Boolean (kind Boolean) + +type KeyboardAvoidingViewPropsO = ViewPropsEx ( + keyboardVerticalOffset :: Number + , behavior :: BehaviorType +-- , contentContainerStyle :: View.style + , enabled :: Boolean +) () () + + +keyboardAvoidingView :: forall o + . Optional o KeyboardAvoidingViewPropsO + => {|o} -> Array ReactElement -> ReactElement +keyboardAvoidingView = keyboardAvoidingViewU <<< unsafeApplyProps + + +newtype BehaviorType = BehaviorType String +behaviorType :: { + height :: BehaviorType + , position :: BehaviorType + , padding :: BehaviorType +} +behaviorType = { + height: BehaviorType "height" + , position: BehaviorType "position" + , padding: BehaviorType "padding" +} + diff --git a/src/ReactNative/Components/ListView.purs b/src/ReactNative/Components/ListView.purs index b4b80d2..235957c 100644 --- a/src/ReactNative/Components/ListView.purs +++ b/src/ReactNative/Components/ListView.purs @@ -31,25 +31,28 @@ foreign import unsafeMerge :: forall a b c. a -> b -> c type SectionId = String type RowId = String -type ListViewProps a section blob r = { +type ListViewProps a section blob r = { --TODO: Fully check this component dataSource :: ListViewDataSource' blob a section + , initialListSize :: Int + , onEndReachedThreshold :: Int + , pageSize :: Int , renderRow :: RowRenderer a + , renderScrollComponent :: forall props. props -> ReactElement + , scrollRenderAheadDistance :: Int + , stickyHeaderIndices :: Array Number | r } type ListViewPropsO section = ScrollViewPropsEx ( enableEmptySections :: Boolean - , initialListSize :: Int , onChangeVisibleRows :: EventHandler2 RowMap RowMap , onEndReached :: EventHandler (Nullable ScrollEvent) - , onEndReachedThreshold :: Int - , pageSize :: Int , renderFooter :: Unit -> ReactElement , renderHeader :: Unit -> ReactElement - , renderScrollComponent :: forall props. props -> ReactElement , renderSectionHeader :: SectionRenderer section , renderSeparator :: Fn3 SectionId RowId Boolean ReactElement - , scrollRenderAheadDistance :: Int + , removeClippedSubviews :: Boolean + , stickySectionHeadersEnabled :: Boolean ) -- | Create a list view with a data source and a simple row rendering function diff --git a/src/ReactNative/Components/MaskedViewIOS.purs b/src/ReactNative/Components/MaskedViewIOS.purs new file mode 100644 index 0000000..ffd6de8 --- /dev/null +++ b/src/ReactNative/Components/MaskedViewIOS.purs @@ -0,0 +1,17 @@ +module ReactNative.Components.MaskedViewIOS ( + maskedViewIOS' +) +where + +import Prelude + +import React (ReactElement) +import ReactNative.Components.View (ViewPropsEx) +import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) +import ReactNative.Unsafe.Components (maskedViewIOSU) + +type MaskedViewIOS = ViewPropsEx () () () --(-- maskElement :: element + --) () () + +maskedViewIOS' :: {|MaskedViewIOS} -> Array ReactElement -> ReactElement +maskedViewIOS' = maskedViewIOSU <<< unsafeApplyProps diff --git a/src/ReactNative/Components/PickerIOS.purs b/src/ReactNative/Components/PickerIOS.purs new file mode 100644 index 0000000..3ff0471 --- /dev/null +++ b/src/ReactNative/Components/PickerIOS.purs @@ -0,0 +1,24 @@ +module ReactNative.Components.PickerIOS ( + pickerIOS +) +where + +import Prelude + +import React (ReactElement) +import ReactNative.Optional (class Optional) +import ReactNative.Components.View (ViewPropsEx) +import ReactNative.Events (UnitEventHandler) +import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) +import ReactNative.Unsafe.Components (pickerIOSU) + +type PickerIOSO = ViewPropsEx ( + -- itemStyle :: text styles + onValueChange :: UnitEventHandler +-- , selectedValue :: any +) () () + +pickerIOS :: forall o + . Optional o PickerIOSO + => {|o} -> Array ReactElement -> ReactElement +pickerIOS = pickerIOSU <<< unsafeApplyProps \ No newline at end of file diff --git a/src/ReactNative/Components/ProgressBarAndroid.purs b/src/ReactNative/Components/ProgressBarAndroid.purs new file mode 100644 index 0000000..7ab8ab3 --- /dev/null +++ b/src/ReactNative/Components/ProgressBarAndroid.purs @@ -0,0 +1,50 @@ +module ReactNative.Components.ProgressBarAndroid ( + StyleAttrType, + styleAttrType, + progressBarAndroid +) +where + +import Prelude + +import Ansi.Codes (Color) +import ReactNative.Optional (class Optional) +import React (ReactElement) +import ReactNative.Components.View (ViewPropsEx) +import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) +import ReactNative.Unsafe.Components (progressBarAndroidU) +import Type.Data.Boolean (kind Boolean) + +type ProgressBarAndroidO = ViewPropsEx ( + animating :: Boolean + , color :: Color +-- , indeterminate :: indeterminateType + , progress :: Number + , styleAttr :: StyleAttrType + , testID :: String +) () () + +progressBarAndroid :: forall o + . Optional o ProgressBarAndroidO + => {|o} -> ReactElement +progressBarAndroid = progressBarAndroidU <<< unsafeApplyProps + +newtype StyleAttrType = StyleAttrType String +styleAttrType :: { + horizontal :: StyleAttrType + , normal :: StyleAttrType + , small :: StyleAttrType + , large :: StyleAttrType + , inverse :: StyleAttrType + , smallInverse :: StyleAttrType + , largeInverse :: StyleAttrType +} +styleAttrType = { + horizontal: StyleAttrType "horizontal" + , normal: StyleAttrType "normal" + , small: StyleAttrType "small" + , large: StyleAttrType "large" + , inverse: StyleAttrType "inverse" + , smallInverse: StyleAttrType "smallInverse" + , largeInverse: StyleAttrType "largeInverse" +} \ No newline at end of file diff --git a/src/ReactNative/Components/ProgressViewIOS.purs b/src/ReactNative/Components/ProgressViewIOS.purs new file mode 100644 index 0000000..2f3ead1 --- /dev/null +++ b/src/ReactNative/Components/ProgressViewIOS.purs @@ -0,0 +1,39 @@ +module ReactNative.Components.ProgressViewIOS ( + progressViewIOS, + ProgressViewStyle, + progressViewStyle +) +where + +import Prelude + +import React (ReactElement) +import ReactNative.Components.View (ViewPropsEx) +import ReactNative.Optional (class Optional) +import ReactNative.PropTypes (ImageSource) +import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) +import ReactNative.Unsafe.Components (progressViewIOSU) + +type ProgressViewIOSPropsO = ViewPropsEx ( + progress :: Number + , progressImage :: ImageSource --TODO: check ImageSource is fit or not here + , progressTintColor :: String + , progressViewStyle :: ProgressViewStyle + , trackImage :: ImageSource + , trackTintColor :: String +) () () + +progressViewIOS :: forall o + . Optional o ProgressViewIOSPropsO + => {|o} -> ReactElement +progressViewIOS = progressViewIOSU <<< unsafeApplyProps + +newtype ProgressViewStyle = ProgressViewStyle String +progressViewStyle :: { + default :: ProgressViewStyle + , bar :: ProgressViewStyle +} +progressViewStyle = { + default: ProgressViewStyle "default" + , bar: ProgressViewStyle "bar" +} \ No newline at end of file diff --git a/src/ReactNative/Components/SectionList.purs b/src/ReactNative/Components/SectionList.purs new file mode 100644 index 0000000..ff637ea --- /dev/null +++ b/src/ReactNative/Components/SectionList.purs @@ -0,0 +1,53 @@ +module ReactNative.Components.SectionList ( + sectionList +) +where + +import Prelude + +import Data.Foldable (any) +import React (ReactElement) +import ReactNative.Components.ScrollView (ScrollViewPropsEx) +import ReactNative.Events (UnitEventHandler) +import ReactNative.Optional (class Optional) +import ReactNative.PropTypes.Color (Color) +import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) +import ReactNative.Unsafe.Components (sectionListU) +import Type.Data.Boolean (kind Boolean) +import Unsafe.Coerce (unsafeCoerce) + + +type SectionListProps r = { + -- sections :: array of Sections --TODO: check this + initialNumToRender :: Number +-- , keyExtractor :: (item: Item, index: number) => string + -- , renderItem :: Function + | r +} + +type SectionListPropsO = ScrollViewPropsEx ( + -- onEndReached :: [(info: {distanceFromEnd: number}) => void] --TODO: change that + -- extraData :: any +-- , ItemSeparatorComponent :: component, function, element + inverted :: Boolean +-- , ListFooterComponent :: component, function, element + , legacyImplementation :: Boolean +-- , extraData :: component, function +-- , ListEmptyComponent :: component, function, element + , onEndReachedThreshold :: Number + -- , onRefresh :: [() => void] + -- , onViewableItemsChanged :: Function --TODO: check this + , refreshing :: Boolean + , removeClippedSubviews :: Boolean +-- , ListHeaderComponent :: component, function, element +-- , renderSectionFooter :: [(info: {section: SectionT}) => ?React.Element] +-- , renderSectionHeader :: [(info: {section: SectionT}) => ?React.Element] +-- , SectionSeparatorComponent :: [ReactClass] + , stickySectionHeadersEnabled :: Boolean +) --() () + +-- | Create an ActivityIndicator with props and the `animating` flag +sectionList :: forall o + . Optional o SectionListPropsO + => SectionListProps o -> Array ReactElement -> ReactElement +sectionList = sectionListU <<< unsafeApplyProps diff --git a/src/ReactNative/Components/SegmentedControlIOS.purs b/src/ReactNative/Components/SegmentedControlIOS.purs new file mode 100644 index 0000000..6e06f91 --- /dev/null +++ b/src/ReactNative/Components/SegmentedControlIOS.purs @@ -0,0 +1,30 @@ +module ReactNative.Components.SegmentedControlIOS ( + segmentedControlIOS +) +where + +import Prelude + +import ReactNative.Optional (class Optional) +import ReactNative.Events (UnitEventHandler) +import React (ReactElement) +import ReactNative.Components.View (ViewPropsEx) +import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) +import ReactNative.Unsafe.Components (segmentedControlIOSU) +import Type.Data.Boolean (kind Boolean) + +type SegmentedControlIOSO = ViewPropsEx ( + enabled :: Boolean + , momentary :: Boolean + , onChange :: UnitEventHandler + , onValueChange :: UnitEventHandler + , selectedIndex :: Number + , tintColor :: String + , values :: Array String +) () () + +segmentedControlIOS :: forall o + . Optional o SegmentedControlIOSO + => {|o} -> ReactElement +segmentedControlIOS = segmentedControlIOSU <<< unsafeApplyProps + diff --git a/src/ReactNative/Components/SnapshotViewIOS.purs b/src/ReactNative/Components/SnapshotViewIOS.purs new file mode 100644 index 0000000..dfc9105 --- /dev/null +++ b/src/ReactNative/Components/SnapshotViewIOS.purs @@ -0,0 +1,24 @@ +module ReactNative.Components.SnapshotViewIOS ( + snapshotViewIOS +) +where + +import Prelude + +import React (ReactElement) +import ReactNative.Components.View (ViewPropsEx) +import ReactNative.Events (UnitEventHandler) +import ReactNative.Optional (class Optional) +import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) +import ReactNative.Unsafe.Components (snapshotViewIOSU) + +type SnapshotViewIOSO = ViewPropsEx ( + onSnapshotReady :: UnitEventHandler + , testIdentifier :: String +) () () + +snapshotViewIOS :: forall o + . Optional o SnapshotViewIOSO + => {|o} -> ReactElement +snapshotViewIOS = snapshotViewIOSU <<< unsafeApplyProps + diff --git a/src/ReactNative/Components/StatusBar.purs b/src/ReactNative/Components/StatusBar.purs new file mode 100644 index 0000000..6d6cd23 --- /dev/null +++ b/src/ReactNative/Components/StatusBar.purs @@ -0,0 +1,59 @@ +module ReactNative.Components.StatusBar ( + statusBar, + BarStyleType, + ShowHideTransition, + barStyleType, + showHideTransition +) +where + +import Prelude + +import Ansi.Codes (Color) +import React (ReactElement) +import ReactNative.Optional (class Optional) +import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) +import ReactNative.Unsafe.Components (statusBarU) +import Type.Data.Boolean (kind Boolean) + +type StatusBarO = + ( + animated :: Boolean + , barStyle :: BarStyleType + , hidden :: Boolean + , android :: { + backgroundColor :: Color + , translucent :: Boolean + } + , ios :: { + networkActivityIndicatorVisible :: Boolean + , showHideTransition :: ShowHideTransition + } +) + +statusBar :: forall o + . Optional o StatusBarO + => {|o} -> ReactElement +statusBar = statusBarU <<< unsafeApplyProps + +newtype BarStyleType = BarStyleType String +barStyleType :: { + default :: BarStyleType + , lightContent :: BarStyleType + , darkContent :: BarStyleType +} +barStyleType = { + default: BarStyleType "default" + , lightContent: BarStyleType "light-content" + , darkContent: BarStyleType "dark-content" +} + +newtype ShowHideTransition = ShowHideTransition String +showHideTransition :: { + fade :: ShowHideTransition + , slide :: ShowHideTransition +} +showHideTransition = { + fade: ShowHideTransition "fade" + , slide: ShowHideTransition "slide" +} \ No newline at end of file diff --git a/src/ReactNative/Components/TabBarIOS.Item.purs b/src/ReactNative/Components/TabBarIOS.Item.purs new file mode 100644 index 0000000..fa21c0c --- /dev/null +++ b/src/ReactNative/Components/TabBarIOS.Item.purs @@ -0,0 +1,69 @@ +module ReactNative.Components.TabBarIOSItem ( + tabBarIOSItem, + SystemIcon, + systemIcon +) +where + +import Prelude + +import Ansi.Codes (Color) +import React (ReactElement) +import ReactNative.Events (UnitEventHandler) +import ReactNative.Components.View (ViewPropsEx) +import ReactNative.Optional (class Optional) +import ReactNative.PropTypes (ImageSource) --TODO: check this +import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) +import ReactNative.Unsafe.Components (tabBarIOSItemU) +import Type.Data.Boolean (kind Boolean) + +type TabBarIOSItemO = ViewPropsEx ( + selected :: Boolean + , badge :: String --TODO: check this(string, ,number) + , icon :: ImageSource + , onPress :: UnitEventHandler --TODO: check this + , renderAsOriginal :: Boolean + , badgeColor :: Color + , selectedIcon :: ImageSource +-- , style :: View.style + , systemIcon :: SystemIcon + , title :: String +) () ( + isTVSelectable :: Boolean +) --TODO: Apple Tv only + +tabBarIOSItem :: forall o + . Optional o TabBarIOSItemO + => {|o} -> Array ReactElement -> ReactElement +tabBarIOSItem = tabBarIOSItemU <<< unsafeApplyProps + + +newtype SystemIcon = SystemIcon String +systemIcon :: { + bookmarks :: SystemIcon + , contacts :: SystemIcon + , downloads :: SystemIcon + , favorites :: SystemIcon + , featured :: SystemIcon + , history :: SystemIcon + , more :: SystemIcon + , "most-recent" :: SystemIcon + , "most-viewed" :: SystemIcon + , recents :: SystemIcon + , search :: SystemIcon + , "top-rated" :: SystemIcon +} +systemIcon = { + bookmarks: SystemIcon "bookmarks" + , contacts: SystemIcon "contacts" + , downloads: SystemIcon "downloads" + , favorites: SystemIcon "favorites" + , featured: SystemIcon "featured" + , history: SystemIcon "history" + , more: SystemIcon "more" + , "most-recent": SystemIcon "most-recent" + , "most-viewed": SystemIcon "most-viewed" + , recents: SystemIcon "recents" + , search: SystemIcon "search" + , "top-rated": SystemIcon "top-rated" +} \ No newline at end of file diff --git a/src/ReactNative/Components/TabBarIOS.purs b/src/ReactNative/Components/TabBarIOS.purs new file mode 100644 index 0000000..234e04f --- /dev/null +++ b/src/ReactNative/Components/TabBarIOS.purs @@ -0,0 +1,56 @@ +module ReactNative.Components.TabBarIOS ( + tabBarIOS, + BarStyleType, + ItemPositioning, + barStyleType, + itemPositioning +) +where + +import Prelude + +import Ansi.Codes (Color) +import React (ReactElement) +import ReactNative.Components.View (ViewPropsEx) +import ReactNative.Optional (class Optional) +import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) +import ReactNative.Unsafe.Components (tabBarIOSU) +import Type.Data.Boolean (kind Boolean) + +type TabBarIOSO = ViewPropsEx ( + barStyle :: BarStyleType + , barTintColor :: Color + , itemPositioning :: ItemPositioning +-- , style :: View.style + , tintColor :: Color + , translucent :: Boolean + , unselectedItemTintColor :: Color + , unselectedTintColor :: Color +) () () + +tabBarIOS :: forall o + . Optional o TabBarIOSO + => {|o} -> Array ReactElement -> ReactElement +tabBarIOS = tabBarIOSU <<< unsafeApplyProps + +newtype BarStyleType = BarStyleType String +barStyleType :: { + default :: BarStyleType + , black :: BarStyleType +} +barStyleType = { + default: BarStyleType "default" + , black: BarStyleType "black" +} + +newtype ItemPositioning = ItemPositioning String +itemPositioning :: { + fill :: ItemPositioning + , center :: ItemPositioning + , auto :: ItemPositioning +} +itemPositioning = { + fill: ItemPositioning "fill" + , center: ItemPositioning "center" + , auto: ItemPositioning "auto" +} \ No newline at end of file diff --git a/src/ReactNative/Components/ToolbarAndroid.purs b/src/ReactNative/Components/ToolbarAndroid.purs new file mode 100644 index 0000000..592354e --- /dev/null +++ b/src/ReactNative/Components/ToolbarAndroid.purs @@ -0,0 +1,39 @@ +module ReactNative.Components.ToolbarAndroid ( + toolbarAndroid +) +where + +import Prelude + +import Ansi.Codes (Color) +import React (ReactElement) +import ReactNative.Events (UnitEventHandler) +import ReactNative.Components.View (ViewPropsEx) +import ReactNative.Optional (class Optional) +import ReactNative.PropTypes (ImageSource) +import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) +import ReactNative.Unsafe.Components (toolbarAndroidU) +import Type.Data.Boolean (kind Boolean) + +type ToolbarAndroidO = ViewPropsEx ( + overflowIcon :: ImageSource --TODO: (optionalImageSource) +-- actions :: Array --TODO: check this(array of object: {title: string,icon: optionalImageSource,show: enum('always', 'ifRoom', 'never'),showWithText: bool}) + , contentInsetStart :: Number + , logo :: ImageSource --TODO: (optionalImageSource) + , navIcon :: ImageSource --TODO: (optionalImageSource) + , onActionSelected :: UnitEventHandler + , onIconClicked :: UnitEventHandler + , contentInsetEnd :: Number + , rtl :: Boolean + , subtitle :: String + , subtitleColor :: Color + , testID :: String + , title :: String + , titleColor :: Color +) () () + +toolbarAndroid :: forall o + . Optional o ToolbarAndroidO + => {|o} -> Array ReactElement -> ReactElement +toolbarAndroid = toolbarAndroidU <<< unsafeApplyProps + diff --git a/src/ReactNative/Components/ViewPagerAndroid.purs b/src/ReactNative/Components/ViewPagerAndroid.purs new file mode 100644 index 0000000..b75d2a7 --- /dev/null +++ b/src/ReactNative/Components/ViewPagerAndroid.purs @@ -0,0 +1,49 @@ +module ReactNative.Components.ViewPagerAndroid ( + viewPagerAndroid, + KeyboardDismissMode, + keyboardDismissMode +) +where + +import Prelude + +import React (ReactElement) +import ReactNative.Components.View (ViewPropsEx) +import ReactNative.Optional (class Optional) +import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) +import ReactNative.Unsafe.Components (viewPagerAndroidU) +import Type.Data.Boolean (kind Boolean) + + +type ViewPagerAndroid r = { + setPage :: Number + , setPageWithoutAnimation :: Number + | r +} + +type ViewPagerAndroidO = ViewPropsEx ( + initialPage :: Number + , keyboardDismissMode :: KeyboardDismissMode + -- , onPageScroll :: Function + -- , onPageScrollStateChanged :: Function + -- , onPageSelected :: Function + , pageMargin :: Number + , peekEnabled :: Boolean + , scrollEnabled :: Boolean +) () () + +viewPagerAndroid :: forall o + . Optional o ViewPagerAndroidO + => ViewPagerAndroid o -> Array ReactElement -> ReactElement +viewPagerAndroid = viewPagerAndroidU <<< unsafeApplyProps + +newtype KeyboardDismissMode = KeyboardDismissMode String +keyboardDismissMode :: { + none :: KeyboardDismissMode + , onDrag :: KeyboardDismissMode +} +keyboardDismissMode = { + none: KeyboardDismissMode "none" + , onDrag: KeyboardDismissMode "on-drag" +} + diff --git a/src/ReactNative/Components/VirtualizedList.purs b/src/ReactNative/Components/VirtualizedList.purs new file mode 100644 index 0000000..bc6c54f --- /dev/null +++ b/src/ReactNative/Components/VirtualizedList.purs @@ -0,0 +1,67 @@ +module ReactNative.Components.VirtualizedList ( + virtualizedList +) +where + +import Prelude + +import Data.Foldable (any) +import React (ReactElement) +import ReactNative.Components.ScrollView (ScrollViewPropsEx) +import ReactNative.Events (UnitEventHandler) +import ReactNative.Optional (class Optional) +import ReactNative.PropTypes.Color (Color) +import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) +import ReactNative.Unsafe.Components (virtualizedListU) +import Type.Data.Boolean (kind Boolean) +import Unsafe.Coerce (unsafeCoerce) + + +type VirtualizedListProps r = { + -- renderItem :: Function + -- , "data" :: any + -- , getItem :: Function + -- , getItemCount :: Function --TODO: check this + | r +} + +type VirtualizedListPropsO = ScrollViewPropsEx ( + debug :: Boolean + -- , extraData :: any + -- , getItemLayout :: Function + , initialScrollIndex :: Number + , inverted :: Boolean +-- , CellRendererComponent :: component, function +-- , ListEmptyComponent :: component, function, element +-- , ListFooterComponent :: component, function, element +-- , ListHeaderComponent :: component, function, element + , onLayout :: UnitEventHandler +-- , onRefresh :: Function +-- , onScrollToIndexFailed :: Function +-- , onViewableItemsChanged :: Function + , refreshing :: Boolean + , removeClippedSubviews :: Boolean +-- , renderScrollComponent :: Function +-- , viewabilityConfig :: ViewabilityConfig + -- , viewabilityConfigCallbackPairs :: array of ViewabilityConfigCallbackPair + , horizontal :: Boolean + , initialNumToRender :: Number +-- , keyExtractor :: Function + , maxToRenderPerBatch :: Number +-- , onEndReached :: Function + , onEndReachedThreshold :: Number + , updateCellsBatchingPeriod :: Number + , windowSize :: Number +-- , disableVirtualization :: DEPRECATED + , android :: { + progressViewOffset :: Number + } +) --( +-- progressViewOffset :: Number +-- ) () + +-- | Create an ActivityIndicator with props and the `animating` flag +virtualizedList :: forall o + . Optional o VirtualizedListPropsO + => VirtualizedListProps o -> Array ReactElement -> ReactElement +virtualizedList = virtualizedListU <<< unsafeApplyProps diff --git a/src/ReactNative/Components/WebView.purs b/src/ReactNative/Components/WebView.purs new file mode 100644 index 0000000..b43179b --- /dev/null +++ b/src/ReactNative/Components/WebView.purs @@ -0,0 +1,60 @@ +module ReactNative.Components.WebView ( + webView +) +where + +import Prelude + +import React (ReactElement) +import ReactNative.Components.View (ViewPropsEx) +import ReactNative.Events (UnitEventHandler) +import ReactNative.Optional (class Optional) +import ReactNative.Unsafe.ApplyProps (unsafeApplyProps) +import ReactNative.Unsafe.Components (webViewU) +import Type.Data.Boolean (kind Boolean) + + +type WebViewPropsO = ViewPropsEx ( + -- source :: Object + automaticallyAdjustContentInsets :: Boolean + , injectJavaScript :: UnitEventHandler --TODO: check thhis + , injectedJavaScript :: String + , mediaPlaybackRequiresUserAction :: Boolean + -- , nativeConfig :: Object + , onError :: UnitEventHandler + , onLoad :: UnitEventHandler + , onLoadEnd :: UnitEventHandler + , onLoadStart :: UnitEventHandler + -- , onMessage :: Function --TODO: check this + , onNavigationStateChange :: UnitEventHandler --TODO: check this + , originWhitelist :: Array String -- TODO: check this it is array of strings + , renderError :: UnitEventHandler --TODO: check this + , renderLoading :: UnitEventHandler --TODO: check this + , scalesPageToFit :: Boolean + , startInLoadingState :: Boolean + , url :: String + , html :: String +) ( + progressViewOffset :: Number + , domStorageEnabled :: Boolean + , javaScriptEnabled :: Boolean + , mixedContentMode :: String + , thirdPartyCookiesEnabled :: Boolean + , userAgent :: String + , geolocationEnabled :: Boolean + , allowUniversalAccessFromFileURLs :: Boolean +) ( + -- onShouldStartLoadWithRequest :: Function --TODO: check this + decelerationRate :: Number + , allowsInlineMediaPlayback :: Boolean + , bounces :: Boolean + , contentInset :: {top :: Number, left :: Number, bottom :: Number, right :: Number} +-- , dataDetectorTypes :: string, or array + , scrollEnabled :: Boolean + , useWebKit :: Boolean +) + +webView :: forall o + . Optional o WebViewPropsO + => {|o} -> ReactElement +webView = webViewU <<< unsafeApplyProps diff --git a/src/ReactNative/PropTypes.purs b/src/ReactNative/PropTypes.purs index 2a91366..fbeb5b4 100644 --- a/src/ReactNative/PropTypes.purs +++ b/src/ReactNative/PropTypes.purs @@ -49,6 +49,8 @@ refFunc = identity type Insets = {top:: Number, left:: Number, bottom:: Number, right:: Number} +-- type Actions = {title: string,icon: optionalImageSource,show: enum('always', 'ifRoom', 'never'),showWithText: bool} TODO: we need to do + foreign import nativeImageSource :: {android::String, width::Int, height::Int } -> ImageSource class AutoEnum a where diff --git a/src/ReactNative/Unsafe/Components.js b/src/ReactNative/Unsafe/Components.js index 6029bbe..35f110c 100644 --- a/src/ReactNative/Unsafe/Components.js +++ b/src/ReactNative/Unsafe/Components.js @@ -6,19 +6,25 @@ exports.activityIndicatorClass = RN.ActivityIndicator; exports.buttonClass = RN.Button; exports.datePickerIOSClass = RN.DatePickerIOS; exports.drawerLayoutAndroidClass = RN.DrawerLayoutAndroid; +exports.flatListClass = RN.FlatList; exports.imageClass = RN.Image; +exports.inputAccessoryViewClass = RN.InputAccessoryView +exports.imageBackgroundClass = RN.ImageBackground exports.keyboardAvoidingViewClass = RN.KeyboardAvoidingView; exports.listViewClass = RN.ListView; exports.mapViewClass = RN.MapView; +exports.maskedViewIOSClass = RN.MaskedViewIOS; exports.modalClass = RN.Modal; exports.navigatorIOSClass = RN.NavigatorIOS; exports.pickerClass = RN.Picker; +exports.pickerIOSClass = RN.PickerIOS; exports.pickerItemClass = RN.Picker.Item; exports.progressBarAndroidClass = RN.ProgressBarAndroid; exports.progressViewIOSClass = RN.ProgressViewIOS; exports.refreshControlClass = RN.RefreshControl; exports.safeAreaViewClass = RN.SafeAreaView; exports.scrollViewClass = RN.ScrollView; +exports.sectionListClass = RN.ScrollView; exports.segmentedControlIOSClass = RN.SegmentedControlIOS; exports.sliderClass = RN.Slider; exports.statusBarClass = RN.StatusBar; @@ -35,4 +41,5 @@ exports.touchableOpacityClass = RN.TouchableOpacity; exports.touchableWithoutFeedbackClass = RN.TouchableWithoutFeedback; exports.viewClass = RN.View; exports.viewPagerAndroidClass = RN.ViewPagerAndroid; +exports.virtualizedListClass = RN.VirtualizedList; exports.webViewClass = RN.WebView; diff --git a/src/ReactNative/Unsafe/Components.purs b/src/ReactNative/Unsafe/Components.purs index 7172a24..de0baa1 100644 --- a/src/ReactNative/Unsafe/Components.purs +++ b/src/ReactNative/Unsafe/Components.purs @@ -1,8 +1,13 @@ module ReactNative.Unsafe.Components ( textU , viewU +, flatListU , safeAreaViewU , imageU +, inputAccessoryViewU --TODO: check this +, imageBackgroundU --TODO: check this +, maskedViewIOSU --TODO: check this +, pickerIOSU --TODO: check this , listViewU , toolbarAndroidU , activityIndicatorU @@ -11,6 +16,7 @@ module ReactNative.Unsafe.Components ( , touchableHighlightU , touchableOpacityU , scrollViewU +, sectionListU , refreshControlU , switchU , drawerLayoutAndroidU @@ -26,12 +32,13 @@ module ReactNative.Unsafe.Components ( , modalU , progressBarAndroidU , progressViewIOSU -, segmentedControlIOSU +, segmentedControlIOSU --TODO: check this , statusBarU , snapshotViewIOSU , tabBarIOSU , tabBarIOSItemU , viewPagerAndroidU +, virtualizedListU , webViewU ) where @@ -41,19 +48,25 @@ foreign import activityIndicatorClass :: forall props. ReactClass {|props foreign import buttonClass :: forall props. ReactClass {|props} foreign import datePickerIOSClass :: forall props. ReactClass {|props} foreign import drawerLayoutAndroidClass :: forall props. ReactClass {|props} +foreign import flatListClass :: forall props. ReactClass {|props} foreign import imageClass :: forall props. ReactClass {|props} +foreign import inputAccessoryViewClass :: forall props. ReactClass {|props} +foreign import imageBackgroundClass :: forall props. ReactClass {|props} foreign import keyboardAvoidingViewClass :: forall props. ReactClass {|props} foreign import listViewClass :: forall props. ReactClass {|props} foreign import mapViewClass :: forall props. ReactClass {|props} +foreign import maskedViewIOSClass :: forall props. ReactClass {|props} foreign import modalClass :: forall props. ReactClass {|props} foreign import navigatorIOSClass :: forall props. ReactClass {|props} foreign import pickerClass :: forall props. ReactClass {|props} +foreign import pickerIOSClass :: forall props. ReactClass {|props} foreign import pickerItemClass :: forall props. ReactClass {|props} foreign import progressBarAndroidClass :: forall props. ReactClass {|props} foreign import progressViewIOSClass :: forall props. ReactClass {|props} foreign import refreshControlClass :: forall props. ReactClass {|props} foreign import safeAreaViewClass :: forall props. ReactClass {|props} foreign import scrollViewClass :: forall props. ReactClass {|props} +foreign import sectionListClass :: forall props. ReactClass {|props} foreign import segmentedControlIOSClass :: forall props. ReactClass {|props} foreign import sliderClass :: forall props. ReactClass {|props} foreign import statusBarClass :: forall props. ReactClass {|props} @@ -70,6 +83,7 @@ foreign import touchableOpacityClass :: forall props. ReactClass {|props foreign import touchableWithoutFeedbackClass :: forall props. ReactClass {|props} foreign import viewClass :: forall props. ReactClass {|props} foreign import viewPagerAndroidClass :: forall props. ReactClass {|props} +foreign import virtualizedListClass :: forall props. ReactClass {|props} foreign import webViewClass :: forall props. ReactClass {|props} -- | Create a [Text](https://facebook.github.io/react-native/docs/text.html) component unsafely @@ -80,6 +94,11 @@ textU = unsafeCreateElement textClass viewU :: forall props. {|props} -> Array ReactElement -> ReactElement viewU = unsafeCreateElement viewClass +-- | Create a [FlatList](https://facebook.github.io/react-native/docs/flatlist.html) component unsafely +flatListU :: forall props. {|props} -> Array ReactElement -> ReactElement +flatListU = unsafeCreateElement flatListClass --TODO: check thiis + + -- | Create a [SafeAreaView](https://facebook.github.io/react-native/docs/safeareaview.html) component unsafely safeAreaViewU :: forall props. {|props} -> Array ReactElement -> ReactElement safeAreaViewU = unsafeCreateElement safeAreaViewClass @@ -88,6 +107,23 @@ safeAreaViewU = unsafeCreateElement safeAreaViewClass imageU :: forall props. {|props} -> Array ReactElement -> ReactElement imageU = unsafeCreateElement imageClass +-- | Create an [InputAccessoryView](https://facebook.github.io/react-native/docs/inputaccessoryview.html) component unsafely +inputAccessoryViewU :: forall props. {|props} -> Array ReactElement -> ReactElement +inputAccessoryViewU = unsafeCreateElement inputAccessoryViewClass --TODO: check this + +-- | Create an [ImageBackground](https://facebook.github.io/react-native/docs/imagebackground.html) component unsafely +imageBackgroundU :: forall props. {|props} -> Array ReactElement -> ReactElement +imageBackgroundU = unsafeCreateElement imageBackgroundClass --TODO: check this + + +-- | Create an [ImageBackground](https://facebook.github.io/react-native/docs/imagebackground.html) component unsafely +maskedViewIOSU :: forall props. {|props} -> Array ReactElement -> ReactElement +maskedViewIOSU = unsafeCreateElement maskedViewIOSClass --TODO: check this + +-- | Create an [PickerIOS](https://facebook.github.io/react-native/docs/pickerIOS.html) component unsafely +pickerIOSU :: forall props. {|props} -> Array ReactElement -> ReactElement +pickerIOSU = unsafeCreateElement pickerIOSClass --TODO: check this + -- | Create a [ListView](https://facebook.github.io/react-native/docs/listview.html) component unsafely listViewU :: forall props. {|props} -> ReactElement listViewU = unsafeCreateLeafElement listViewClass @@ -120,6 +156,10 @@ touchableOpacityU p c = unsafeCreateElement touchableOpacityClass p [c] scrollViewU :: forall props. {|props} -> Array ReactElement -> ReactElement scrollViewU = unsafeCreateElement scrollViewClass +-- | Create a [SectionList](https://facebook.github.io/react-native/docs/sectionlist.html) component unsafely +sectionListU :: forall props. {|props} -> Array ReactElement -> ReactElement +sectionListU = unsafeCreateElement sectionListClass + -- | Create an [RefreshControl](https://facebook.github.io/react-native/docs/refreshcontrol.html) component unsafely refreshControlU :: forall props. {|props} -> ReactElement refreshControlU = unsafeCreateLeafElement refreshControlClass @@ -204,6 +244,10 @@ tabBarIOSItemU = unsafeCreateElement tabBarIOSItemClass viewPagerAndroidU :: forall props. {|props} -> Array ReactElement -> ReactElement viewPagerAndroidU = unsafeCreateElement viewPagerAndroidClass +-- | Create a [VirtualizedList](https://facebook.github.io/react-native/docs/virtualizedlist.html) component unsafely +virtualizedListU :: forall props. {|props} -> Array ReactElement -> ReactElement +virtualizedListU = unsafeCreateElement virtualizedListClass --TODO: check this + -- | Create a [WebView](https://facebook.github.io/react-native/docs/webview.html) component unsafely webViewU :: forall props. {|props} -> ReactElement webViewU = unsafeCreateLeafElement webViewClass diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..8c3aa77 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,854 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +ansi-escapes@^3.0.0: + version "3.1.0" + resolved "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-regex@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz#70de791edf021404c3fd615aa89118ae0432e5a9" + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + dependencies: + color-convert "^1.9.0" + +app-cache-dir@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/app-cache-dir/-/app-cache-dir-0.3.1.tgz#ce36a8aa966e26516adcdf3356ea47f4720805f1" + dependencies: + inspect-with-kind "^1.0.2" + +append-type@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/append-type/-/append-type-1.0.1.tgz#e29a6eb22cec0c0b9b93063b3cf6b10d9e0c60f4" + +arch@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e" + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +bl@^1.0.0: + version "1.2.2" + resolved "http://registry.npmjs.org/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + +build-purescript@^0.2.0: + version "0.2.3" + resolved "https://registry.yarnpkg.com/build-purescript/-/build-purescript-0.2.3.tgz#49dffd5917384d55b8b22d0100a74e11baf69513" + dependencies: + download-purescript-source "^0.4.0" + feint "^1.0.2" + graceful-fs "^4.1.11" + inspect-with-kind "^1.0.4" + is-plain-obj "^1.1.0" + minimist "^1.2.0" + mkdirp "^0.5.1" + once "^1.4.0" + rimraf "^2.6.2" + spawn-stack "^0.5.0" + zen-observable "^0.6.1" + +byline@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" + +cancelable-pump@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/cancelable-pump/-/cancelable-pump-0.2.0.tgz#865665d4c23a69788d4bcdf498db740f1b230d57" + dependencies: + pump "^1.0.2" + +cancelable-pump@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cancelable-pump/-/cancelable-pump-0.4.0.tgz#9d02b16a30fe81835238fc6582670b660bf511cf" + dependencies: + pump "^3.0.0" + +chalk@^2.0.1, chalk@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chownr@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" + +clean-stack@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.0.0.tgz#301bfa9e8dd2d3d984c0e542f7aa67b996f63e0a" + +cli-cursor@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + dependencies: + restore-cursor "^2.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +dl-tar@^0.6.0: + version "0.6.0" + resolved "http://registry.npmjs.org/dl-tar/-/dl-tar-0.6.0.tgz#a3b829bb504dafea523d0ee23e187c0d95c93167" + dependencies: + cancelable-pump "^0.2.0" + graceful-fs "^4.1.11" + inspect-with-kind "^1.0.4" + is-plain-obj "^1.1.0" + is-stream "^1.1.0" + load-request-from-cwd-or-npm "^2.0.1" + tar-fs "^1.16.0" + tar-stream "^1.5.5" + zen-observable "^0.6.1" + +dl-tgz@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/dl-tgz/-/dl-tgz-0.6.0.tgz#5dc2dd7fa93c33e6e10e9e3d4b1f3785f021a845" + dependencies: + dl-tar "^0.6.0" + is-plain-obj "^1.1.0" + zen-observable "^0.6.1" + +download-or-build-purescript@^0.0.9: + version "0.0.9" + resolved "https://registry.yarnpkg.com/download-or-build-purescript/-/download-or-build-purescript-0.0.9.tgz#c9cd1c6d65f34fca51f9e1a3947d88ccbe2bc73a" + dependencies: + build-purescript "^0.2.0" + download-purescript "0.5.0-0" + execa "^0.10.0" + feint "^1.0.2" + graceful-fs "^4.1.11" + inspect-with-kind "^1.0.4" + is-plain-obj "^1.1.0" + once "^1.4.0" + prepare-write "^0.3.1" + spawn-stack "^0.5.0" + which "^1.3.0" + zen-observable "^0.6.0" + +download-purescript-source@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/download-purescript-source/-/download-purescript-source-0.4.0.tgz#0bcd29cc67959db7a4fcc5def2452d880721013f" + dependencies: + dl-tgz "^0.6.0" + inspect-with-kind "^1.0.4" + is-plain-obj "^1.1.0" + zen-observable "^0.6.1" + +download-purescript@0.5.0-0: + version "0.5.0-0" + resolved "https://registry.yarnpkg.com/download-purescript/-/download-purescript-0.5.0-0.tgz#b1d8e5fab6aafe5304d3005daf828b9a6f8101e7" + dependencies: + dl-tgz "^0.6.0" + inspect-with-kind "^1.0.4" + is-plain-obj "^1.1.0" + zen-observable "^0.6.1" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + dependencies: + once "^1.4.0" + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +execa@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" + dependencies: + cross-spawn "^6.0.0" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +executing-npm-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/executing-npm-path/-/executing-npm-path-0.1.0.tgz#37199c565eb1f703533beca5eebb7f14ed082d2c" + +feint@1.0.2, feint@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/feint/-/feint-1.0.2.tgz#f4ac51d6ed7db2cc5a0ba6913f84d43f72dd680b" + dependencies: + append-type "^1.0.1" + +file-to-tar@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/file-to-tar/-/file-to-tar-0.3.1.tgz#d5ccb4753c53f23245f7226a54cd85723d626c31" + dependencies: + cancelable-pump "^0.4.0" + graceful-fs "^4.1.11" + inspect-with-kind "^1.0.4" + is-plain-obj "^1.1.0" + is-stream "^1.1.0" + mkdirp "^0.5.1" + tar-fs "^1.16.2" + zen-observable "^0.6.1" + +filesize@^3.5.10: + version "3.6.1" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +get-stream@^3.0.0: + version "3.0.0" + resolved "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +glob@^7.0.5: + version "7.1.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +graceful-fs@^4.1.11: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inspect-with-kind@^1.0.2, inspect-with-kind@^1.0.3, inspect-with-kind@^1.0.4, inspect-with-kind@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/inspect-with-kind/-/inspect-with-kind-1.0.5.tgz#fce151d4ce89722c82ca8e9860bb96f9167c316c" + dependencies: + kind-of "^6.0.2" + +"install-purescript-cli@^0.4.0 || ^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/install-purescript-cli/-/install-purescript-cli-0.3.0.tgz#0281c3962809481eece66c59c4bd4be8de968cf2" + dependencies: + chalk "^2.4.1" + install-purescript "^0.4.0" + log-symbols "^2.2.0" + log-update "^2.3.0" + minimist "^1.2.0" + ms "^2.1.1" + neat-frame "^1.0.1" + neat-stack "^1.0.0" + once "^1.4.0" + platform-name "^1.0.0" + size-rate "^0.1.0" + tilde-path "^2.0.0" + tty-truncate "^1.0.0" + vertical-meter "^1.0.0" + +install-purescript@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/install-purescript/-/install-purescript-0.4.0.tgz#4e07ebc8bb5ffa512720f5df54c0a9beaa04eb7b" + dependencies: + app-cache-dir "^0.3.0" + arch "^2.1.0" + download-or-build-purescript "^0.0.9" + execa "^0.10.0" + feint "1.0.2" + file-to-tar "^0.3.1" + graceful-fs "^4.1.11" + inspect-with-kind "^1.0.4" + is-plain-obj "^1.1.0" + once "^1.4.0" + prepare-write "^1.0.0" + readdir-clean "^1.0.0" + rimraf "^2.6.2" + tar-to-file "^0.4.0" + tilde-path "^2.0.0" + truncated-list "^1.0.1" + zen-observable "^0.6.1" + +is-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-dir/-/is-dir-1.0.0.tgz#41d37f495fccacc05a4778d66e83024c292ba3ff" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +junk@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/junk/-/junk-2.1.0.tgz#f431b4b7f072dc500a5f10ce7f4ec71930e70134" + +kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + +load-from-cwd-or-npm@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/load-from-cwd-or-npm/-/load-from-cwd-or-npm-2.2.2.tgz#86d21082f13c7cb4969ddeb90d0261c18b671e42" + dependencies: + inspect-with-kind "^1.0.4" + npm-cli-dir "^2.0.1" + optional "^0.1.4" + resolve-from-npm "^2.0.4" + +load-request-from-cwd-or-npm@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/load-request-from-cwd-or-npm/-/load-request-from-cwd-or-npm-2.0.1.tgz#27a87ec70e56f20708280c8f42bc3b4ca3793a6e" + dependencies: + load-from-cwd-or-npm "^2.2.1" + +log-symbols@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + dependencies: + chalk "^2.0.1" + +log-update@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" + dependencies: + ansi-escapes "^3.0.0" + cli-cursor "^2.0.0" + wrap-ansi "^3.0.1" + +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.2.0: + version "1.2.0" + resolved "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +mkdirp@^0.5.1: + version "0.5.1" + resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +ms@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + +neat-frame@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/neat-frame/-/neat-frame-1.0.2.tgz#7b3029d7dfa38cf41e44c9ac13d92a2f3ae8a7a1" + dependencies: + inspect-with-kind "^1.0.5" + string-width "^2.1.1" + term-size "^1.2.0" + wrap-ansi "^4.0.0" + +neat-stack@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/neat-stack/-/neat-stack-1.0.1.tgz#6dc506acdcdb9f536def80c4fe3ba39324481be6" + dependencies: + chalk "^2.4.1" + clean-stack "^2.0.0" + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + +npm-cli-dir@^2.0.1, npm-cli-dir@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-cli-dir/-/npm-cli-dir-2.0.2.tgz#291fec5eb6eb722868011aee5f5ac028c184a573" + dependencies: + npm-cli-path "^2.0.1" + +npm-cli-path@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/npm-cli-path/-/npm-cli-path-2.0.5.tgz#a7853c21ef77ffb71abff94d48ea07301e35e600" + dependencies: + executing-npm-path "^0.1.0" + real-executable-path "^2.0.2" + win-user-installed-npm-cli-path "^2.0.2" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + dependencies: + mimic-fn "^1.0.0" + +optional@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/optional/-/optional-0.1.4.tgz#cdb1a9bedc737d2025f690ceeb50e049444fd5b3" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +platform-name@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/platform-name/-/platform-name-1.0.0.tgz#3396ea7bfea3a68aedd13483e055100f9e609755" + dependencies: + inspect-with-kind "^1.0.4" + +prepare-write@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/prepare-write/-/prepare-write-0.3.1.tgz#7a2fe52f269f5bedc27bae253be434f330743b67" + dependencies: + graceful-fs "^4.1.11" + inspect-with-kind "^1.0.2" + is-dir "^1.0.0" + mkdirp "^0.5.1" + +prepare-write@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/prepare-write/-/prepare-write-1.0.2.tgz#e99e9b2d6ea7697dac5039148c0a988892294916" + dependencies: + inspect-with-kind "^1.0.5" + mkdirp "^0.5.1" + +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +pump@^1.0.0, pump@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +purescript@^0.12.0: + version "0.12.1" + resolved "https://registry.yarnpkg.com/purescript/-/purescript-0.12.1.tgz#4f1d8e73a4f438216f156db29ca8fd010907540c" + dependencies: + install-purescript-cli "^0.4.0 || ^0.3.0" + +rate-map@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/rate-map/-/rate-map-1.0.2.tgz#c2a3f8060c783b460fe645e20c491925cad36fca" + dependencies: + append-type "^1.0.1" + +readable-stream@^2.3.0, readable-stream@^2.3.5: + version "2.3.6" + resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readdir-clean@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/readdir-clean/-/readdir-clean-1.0.0.tgz#2c578af9edcd45a13229585a0d211cf22e54c256" + dependencies: + graceful-fs "^4.1.11" + junk "^2.1.0" + +real-executable-path-callback@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/real-executable-path-callback/-/real-executable-path-callback-2.1.2.tgz#fa3afe80f19344628c0f74575655dbdaf1a67133" + dependencies: + inspect-with-kind "^1.0.4" + is-plain-obj "^1.1.0" + which "^1.3.0" + +real-executable-path@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/real-executable-path/-/real-executable-path-2.0.2.tgz#121ee5bb7d09e55c2ddd5f2bd38b9f0d9c6b5f24" + dependencies: + real-executable-path-callback "^2.1.2" + +resolve-from-npm@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/resolve-from-npm/-/resolve-from-npm-2.0.4.tgz#d331f8b7fc40a710281fdf8ff7daeaf223717495" + dependencies: + inspect-with-kind "^1.0.3" + npm-cli-dir "^2.0.2" + resolve-from "^4.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +rimraf@^2.4.1, rimraf@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + +safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + +semver@^5.5.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +size-rate@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/size-rate/-/size-rate-0.1.0.tgz#58fd22013cf02d18acf5397430d5b16c5d0b84d5" + dependencies: + filesize "^3.5.10" + inspect-with-kind "^1.0.2" + +slice-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.0.0.tgz#5373bdb8559b45676e8541c66916cdd6251612e7" + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +spawn-stack@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/spawn-stack/-/spawn-stack-0.5.0.tgz#67c2fea37d33405a934ef1c7bca3bf86b9f2d3d4" + dependencies: + byline "^5.0.0" + execa "^0.10.0" + inspect-with-kind "^1.0.4" + zen-observable "^0.6.1" + +string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.0.0.tgz#5a1690a57cc78211fffd9bf24bbe24d090604eb1" + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.0.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz#f78f68b5d0866c20b2c9b8c61b5298508dc8756f" + dependencies: + ansi-regex "^4.0.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + dependencies: + has-flag "^3.0.0" + +tar-fs@^1.16.0, tar-fs@^1.16.2: + version "1.16.3" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" + dependencies: + chownr "^1.0.1" + mkdirp "^0.5.1" + pump "^1.0.0" + tar-stream "^1.1.2" + +tar-stream@^1.1.2, tar-stream@^1.5.5, tar-stream@^1.6.1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + dependencies: + bl "^1.0.0" + buffer-alloc "^1.2.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" + xtend "^4.0.0" + +tar-to-file@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/tar-to-file/-/tar-to-file-0.4.0.tgz#b998bec435ac72cd6edd0718e184beae6461070e" + dependencies: + cancelable-pump "^0.4.0" + graceful-fs "^4.1.11" + inspect-with-kind "^1.0.4" + is-plain-obj "^1.1.0" + is-stream "^1.1.0" + tar-fs "^1.16.2" + tar-stream "^1.6.1" + zen-observable "^0.6.1" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + dependencies: + execa "^0.7.0" + +tilde-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tilde-path/-/tilde-path-2.0.0.tgz#ded931f9d3c522e38118a068d007e5b7523fec25" + +to-buffer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + +truncated-list@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/truncated-list/-/truncated-list-1.0.1.tgz#08f751c7c044111ece2c7868f5ef736412f2ead4" + dependencies: + inspect-with-kind "^1.0.4" + +tty-truncate@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tty-truncate/-/tty-truncate-1.0.3.tgz#8fde6aee4b68daa07741d206559669f77c8f16d1" + dependencies: + ansi-regex "^4.0.0" + inspect-with-kind "^1.0.5" + slice-ansi "^2.0.0" + string-width "^3.0.0" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +vertical-meter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/vertical-meter/-/vertical-meter-1.0.0.tgz#b910bfc107294346b612618bc8bbfc3da62259cd" + dependencies: + rate-map "^1.0.1" + +which@^1.2.9, which@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + dependencies: + isexe "^2.0.0" + +win-user-installed-npm-cli-path@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/win-user-installed-npm-cli-path/-/win-user-installed-npm-cli-path-2.0.4.tgz#698282e619f21e672cdbf674ee7b85c2082a7e73" + +wrap-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + +wrap-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-4.0.0.tgz#b3570d7c70156159a2d42be5cc942e957f7b1131" + dependencies: + ansi-styles "^3.2.0" + string-width "^2.1.1" + strip-ansi "^4.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +xtend@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +zen-observable@^0.6.0, zen-observable@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.6.1.tgz#01dbed3bc8d02cbe9ee1112c83e04c807f647244"