@styli/react
Version:
137 lines (113 loc) • 3.65 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var core = require('@styli/core');
var styled = require('@styli/styled');
var presetWeb = _interopDefault(require('@styli/preset-web'));
var react = require('react');
var store = require('@styli/store');
var parser = require('@styli/parser');
function _extends() {
_extends = Object.assign || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
return _extends.apply(this, arguments);
}
function _objectWithoutPropertiesLoose(source, excluded) {
if (source == null) return {};
var target = {};
var sourceKeys = Object.keys(source);
var key, i;
for (i = 0; i < sourceKeys.length; i++) {
key = sourceKeys[i];
if (excluded.indexOf(key) >= 0) continue;
target[key] = source[key];
}
return target;
}
/**
* JSX Pragma
* TODO: this is minimal version
* @param element element type
* @param props element props
* @param children element children
*/
function jsx(element, props) {
if (props === void 0) {
props = {};
}
for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
children[_key - 2] = arguments[_key];
}
// Do'not handle third-party Component and empty props
if (typeof element !== 'string' || !props || !Object.keys(props).length) {
return react.createElement.apply(null, arguments);
}
var parser$1 = new parser.Parser(props);
var parsedProps = parser$1.getParsedProps();
var inline = store.store.config.inline;
if (inline) {
if (Array.isArray(props.style)) {
parsedProps.style = [parser$1.toStyle(), props.style];
} else {
parsedProps.style = _extends({}, parser$1.toStyle(), props.style);
}
} else {
parser$1.insertRule();
var finalClassName = parser$1.getClassNames().join(' ').trim();
if (finalClassName) parsedProps.className = finalClassName;
}
return react.createElement.apply(null, [element, parsedProps].concat(children));
}
var Box = /*#__PURE__*/react.forwardRef(function (props, ref) {
var _props$as = props.as,
as = _props$as === void 0 ? 'div' : _props$as,
rest = _objectWithoutPropertiesLoose(props, ["as"]);
var parser$1 = new parser.Parser(rest);
var parsedProps = parser$1.getParsedProps();
var inline = store.store.config.inline;
if (inline) {
if (Array.isArray(rest.style)) {
parsedProps.style = [parser$1.toStyle(), rest.style];
} else {
parsedProps.style = _extends({}, parser$1.toStyle(), rest.style);
}
} else {
parser$1.insertRule();
var finalClassName = parser$1.getClassNames().join(' ');
parsedProps.className = finalClassName;
}
return react.createElement(as, _extends({
ref: ref
}, parsedProps));
});
var View = /*#__PURE__*/styled.styled('div');
var Text = /*#__PURE__*/styled.styled('span');
var Image = /*#__PURE__*/styled.styled('img');
core.injectGlobalStyle({
'*': {
border: '0 solid #ccc',
boxSizing: 'border-box'
},
'*::before': {
boxSizing: 'border-box'
},
'*::after': {
boxSizing: 'border-box'
}
});
core.setConfig(presetWeb);
exports.Box = Box;
exports.Image = Image;
exports.Text = Text;
exports.View = View;
exports.jsx = jsx;
//# sourceMappingURL=react.cjs.development.js.map