GT2/Ejectable/node_modules/react-native-web/dist/exports/StyleSheet/StyleSheet.js

63 lines
1.8 KiB
JavaScript
Raw Normal View History

2021-08-16 00:14:59 +00:00
/**
* Copyright (c) Nicolas Gallagher.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*
*/
import ReactNativePropRegistry from './ReactNativePropRegistry';
import flattenStyle from './flattenStyle';
var absoluteFillObject = {
position: 'absolute',
left: 0,
right: 0,
top: 0,
bottom: 0
};
var absoluteFill = ReactNativePropRegistry.register(absoluteFillObject);
var StyleSheet = {
absoluteFill: absoluteFill,
absoluteFillObject: absoluteFillObject,
compose: function compose(style1, style2) {
if (process.env.NODE_ENV !== 'production') {
/* eslint-disable prefer-rest-params */
var len = arguments.length;
if (len > 2) {
var readableStyles = Array.prototype.slice.call(arguments).map(function (a) {
return flattenStyle(a);
});
throw new Error("StyleSheet.compose() only accepts 2 arguments, received " + len + ": " + JSON.stringify(readableStyles));
}
/* eslint-enable prefer-rest-params */
}
if (style1 && style2) {
return [style1, style2];
} else {
return style1 || style2;
}
},
create: function create(styles) {
var result = {};
Object.keys(styles).forEach(function (key) {
if (process.env.NODE_ENV !== 'production') {
var validate = require('./validate');
var interopValidate = validate.default ? validate.default : validate;
interopValidate(key, styles);
}
var id = styles[key] && ReactNativePropRegistry.register(styles[key]);
result[key] = id;
});
return result;
},
flatten: flattenStyle,
// `hairlineWidth` is not implemented using screen density as browsers may
// round sub-pixel values down to `0`, causing the line not to be rendered.
hairlineWidth: 1
};
export default StyleSheet;