react-native-mock-tmp-build
Version:
A fully mocked and test-friendly version of react native
98 lines (88 loc) • 3.53 kB
JavaScript
/**
* https://github.com/facebook/react-native/blob/master/Libraries/StyleSheet/LayoutPropTypes.js
*/
import PropTypes from 'prop-types';
/**
* React Native's layout system is based on Flexbox and is powered both
* on iOS and Android by an open source project called css-layout:
* https://github.com/facebook/css-layout
*
* The implementation in css-layout is slightly different from what the
* Flexbox spec defines - for example, we chose more sensible default
* values. Please refer to the css-layout README for details.
*
* These properties are a subset of our styles that are consumed by the layout
* algorithm and affect the positioning and sizing of views.
*/
const LayoutPropTypes = {
width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
top: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
left: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
right: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
bottom: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
margin: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
marginVertical: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
marginHorizontal: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
marginTop: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
marginBottom: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
marginLeft: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
marginRight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
padding: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
paddingVertical: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
paddingHorizontal: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
paddingTop: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
paddingBottom: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
paddingLeft: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
paddingRight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
borderWidth: PropTypes.number,
borderTopWidth: PropTypes.number,
borderRightWidth: PropTypes.number,
borderBottomWidth: PropTypes.number,
borderLeftWidth: PropTypes.number,
position: PropTypes.oneOf([
'absolute',
'relative'
]),
// https://developer.mozilla.org/en-US/docs/Web/CSS/flex-direction
flexDirection: PropTypes.oneOf([
'row',
'row-reverse',
'column',
'column-reverse'
]),
// https://developer.mozilla.org/en-US/docs/Web/CSS/flex-wrap
flexWrap: PropTypes.oneOf([
'wrap',
'nowrap'
]),
// How to align children in the main direction
// https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content
justifyContent: PropTypes.oneOf([
'flex-start',
'flex-end',
'center',
'space-between',
'space-around'
]),
// How to align children in the cross direction
// https://developer.mozilla.org/en-US/docs/Web/CSS/align-items
alignItems: PropTypes.oneOf([
'flex-start',
'flex-end',
'center',
'stretch'
]),
// How to align the element in the cross direction
// https://developer.mozilla.org/en-US/docs/Web/CSS/align-items
alignSelf: PropTypes.oneOf([
'auto',
'flex-start',
'flex-end',
'center',
'stretch'
]),
// https://developer.mozilla.org/en-US/docs/Web/CSS/flex
flex: PropTypes.number,
};
module.exports = LayoutPropTypes;