UNPKG

reactors

Version:

View components and APIs that work web, mobile and desktop!

134 lines (90 loc) 3.85 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray'); var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _compact = require('lodash/compact'); var _compact2 = _interopRequireDefault(_compact); var _border = require('./transforms/border'); var _border2 = _interopRequireDefault(_border); var _borderWidth = require('./transforms/borderWidth'); var _borderWidth2 = _interopRequireDefault(_borderWidth); var _boxShadow = require('./transforms/boxShadow'); var _boxShadow2 = _interopRequireDefault(_boxShadow); var _boxSizing = require('./transforms/boxSizing'); var _boxSizing2 = _interopRequireDefault(_boxSizing); var _cursor = require('./transforms/cursor'); var _cursor2 = _interopRequireDefault(_cursor); var _display = require('./transforms/display'); var _display2 = _interopRequireDefault(_display); var _flexDirection = require('./transforms/flexDirection'); var _flexDirection2 = _interopRequireDefault(_flexDirection); var _marginHorizontal = require('./transforms/marginHorizontal'); var _marginHorizontal2 = _interopRequireDefault(_marginHorizontal); var _marginVertical = require('./transforms/marginVertical'); var _marginVertical2 = _interopRequireDefault(_marginVertical); var _Core = require('../Core'); var _Core2 = _interopRequireDefault(_Core); var _resizeMode = require('./transforms/resizeMode'); var _resizeMode2 = _interopRequireDefault(_resizeMode); var _transform = require('./transforms/transform'); var _transform2 = _interopRequireDefault(_transform); var _transition = require('./transforms/transition'); var _transition2 = _interopRequireDefault(_transition); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var StyleSheet = function () { (0, _createClass3.default)(StyleSheet, null, [{ key: 'create', value: function create(styles) { if (_Core2.default.isMobile()) { var RNSS = require('react-native').StyleSheet; var sheet = RNSS.create(styles); for (var selector in sheet) { var number = sheet[selector]; StyleSheet.sheets[number.toString()] = styles[selector]; } return sheet; } return new this(styles); } }]); function StyleSheet(rules) { (0, _classCallCheck3.default)(this, StyleSheet); for (var selector in rules) { this[selector] = rules[selector]; } } return StyleSheet; }(); StyleSheet.sheets = {}; StyleSheet.merge = function (styles) { var array = []; if (Array.isArray(styles)) { array.push.apply(array, (0, _toConsumableArray3.default)((0, _compact2.default)(styles))); } else { array.push(styles); } var transformed = {}; array.forEach(function (style) { if (typeof style === 'number') { Object.assign(transformed, StyleSheet.sheets[style.toString()]); } else { Object.assign(transformed, style); } }); return transformed; }; StyleSheet.transform = function (styles) { var transformers = [_border2.default, _borderWidth2.default, _boxShadow2.default, _boxSizing2.default, _cursor2.default, _display2.default, _flexDirection2.default, _marginHorizontal2.default, _marginVertical2.default, _resizeMode2.default, _transform2.default, _transition2.default]; var transformed = StyleSheet.merge(styles); transformers.forEach(function (transformer) { transformed = transformer(transformed); }); return transformed; }; exports.default = StyleSheet;