@qn-pandora/pandora-visualization
Version:
Pandora 通用可视化库
79 lines (78 loc) • 3.33 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __rest = (this && this.__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;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.wrapper = void 0;
var React = __importStar(require("react"));
var lodash_1 = require("lodash");
/**
* 针对一个form的所有字段, 想要展示的字段子集
* e.g form的所有字段为 ['name', 'password', 'age']
* 如果只想展示name、password字段, 则fields可传['name', 'password'] 或 [{ field: 'name' }, { field: 'password' }]
* @param fields
*/
function wrapper(fields) {
if (fields === void 0) { fields = []; }
return function (Item) {
return function (props) {
var fieldNames = fields.map(function (item) {
return typeof item === 'string' ? item : item.field;
});
if (!fields.length) {
return React.createElement(Item, __assign({}, props));
}
var fieldName = props.field;
if (Item && lodash_1.includes(fieldNames, fieldName)) {
// 成员为对象时, 覆盖原有属性
var currentField = fields.find(function (item) { return typeof item === 'object' && item.field === fieldName; });
if (currentField) {
var field = currentField.field, restProps = __rest(currentField, ["field"]);
return React.createElement(Item, __assign({}, props, restProps));
}
// 成员为字符串时, 返回原Item
return React.createElement(Item, __assign({}, props));
}
return null;
};
};
}
exports.wrapper = wrapper;