react-admin-kit
Version:
A react based UI components for admin system
92 lines (90 loc) • 3.42 kB
JavaScript
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import { renderValueType } from '@ant-design/pro-form/es/components/SchemaForm/valueType/index';
import { LabelIconTip, omitUndefined, runFunction } from '@ant-design/pro-utils';
/**
* 生成 formItems
* 代码摘自 @ant-design/pro-form
*
*/
import { jsx as _jsx } from "react/jsx-runtime";
var _genItems = function _genItems(items) {
var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'form';
var formInstance = arguments.length > 2 ? arguments[2] : undefined;
var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
var _options$labelCol = options.labelCol,
labelCol = _options$labelCol === void 0 ? {} : _options$labelCol,
valueBaseName = options.valueBaseName,
_options$colProps = options.colProps,
colProps = _options$colProps === void 0 ? {} : _options$colProps,
_options$readonly = options.readonly,
readonly = _options$readonly === void 0 ? false : _options$readonly;
return items.filter(function (originItem) {
return !(originItem.hideInForm && type === 'form');
}).sort(function (a, b) {
if (b.order || a.order) {
return (b.order || 0) - (a.order || 0);
}
return (b.index || 0) - (a.index || 0);
}).map(function (originItem, index) {
var _item$dataIndex;
var title = runFunction(originItem.title, originItem, 'form', /*#__PURE__*/_jsx(LabelIconTip, {
label: originItem.title,
tooltip: originItem.tooltip || originItem.tip
}));
var genDataIndex = function genDataIndex(key, base) {
if (base) {
if (typeof key === 'string') {
return [base, key];
}
if (Array.isArray(key)) {
return [base].concat(key);
}
}
return key;
};
var item = omitUndefined(_objectSpread(_objectSpread({}, originItem), {}, {
title: title,
label: title,
valueType: runFunction(originItem.valueType, {}),
dataIndex: genDataIndex(originItem.key || originItem.dataIndex, valueBaseName),
readonly: originItem.readonly || readonly,
tooltip: originItem.tooltip || originItem.tip,
getFieldProps: originItem.fieldProps ? function () {
return runFunction(originItem.fieldProps, formInstance, originItem);
} : undefined,
getFormItemProps: originItem.formItemProps ? function () {
return runFunction(_objectSpread({
labelCol: labelCol
}, originItem.formItemProps), formInstance, originItem);
} : function () {
return {
labelCol: labelCol
};
}
}));
var key = item.key || ((_item$dataIndex = item.dataIndex) === null || _item$dataIndex === void 0 ? void 0 : _item$dataIndex.toString()) || index;
item.key = key;
item.name = item.name || item.dataIndex;
// @ts-ignore
var dom = renderValueType(item, {
action: undefined,
type: 'form',
originItem: originItem,
formRef: {
current: formInstance
},
genItems: function genItems(items) {
return _genItems(items, type, formInstance, {
labelCol: labelCol,
valueBaseName: valueBaseName,
colProps: colProps,
readonly: readonly
});
}
});
return dom;
}).filter(function (field) {
return Boolean(field);
});
};
export { _genItems as genItems };