tntd
Version:
tntd是基于 TNT Design 设计体系的 React UI 组件库,主要用于研发企业级中后台产品。
44 lines (43 loc) • 1.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.mapReadonlyComponent = exports["default"] = exports.connectReadonlyComponent = exports.connect = void 0;
var _react = require("react");
var __rest = void 0 && (void 0).__rest || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
}
return t;
};
var mapReadonlyComponent = exports.mapReadonlyComponent = function mapReadonlyComponent(component) {
return function (target) {
return (0, _react.forwardRef)(function (_a, ref) {
var readonly = _a.readonly,
props = __rest(_a, ["readonly"]);
return (0, _react.createElement)(readonly ? component : target, Object.assign(Object.assign({}, props), {
ref: ref
}));
});
};
};
var connect = exports.connect = function connect(target) {
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
var Target = args.reduce(function (acc, mapper) {
acc = mapper(target);
return acc;
}, target);
return (0, _react.forwardRef)(function (props, ref) {
return (0, _react.createElement)(Target, Object.assign(Object.assign({}, props), {
ref: ref
}));
});
};
var connectReadonlyComponent = exports.connectReadonlyComponent = function connectReadonlyComponent(target, preview) {
return connect(target, mapReadonlyComponent(preview));
};
var _default = exports["default"] = connect;