@antdv/pro-field
Version:
原子信息组件,统一 ProForm、ProTable、ProList、Filter 等组件里面的字段定义。
88 lines (87 loc) • 2.41 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
import {
anyType,
boolType,
funcType,
objectType,
oneOfType,
stringType,
vNodeType
} from "@antdv/pro-utils";
const proFieldLightProps = {
labelRef: objectType(),
clearRef: objectType(),
labelTrigger: boolType()
};
const baseProFieldProps = {
/** 值的类型 */
text: anyType(),
/** 放置到组件上 props */
fieldProps: anyType(),
/**
* 组件的渲染模式类型
* @option read 渲染只读模式
* @option edit 渲染编辑模式
* */
mode: stringType(),
/**
* 简约模式
*/
plain: boolType(),
/** 轻量模式 */
light: boolType(),
/** Label */
label: vNodeType(),
/** 映射值的类型 */
valueEnum: objectType(),
/** 唯一的key,用于网络请求 */
proFieldKey: oneOfType([String, Number])
};
const proRenderFieldProps = {
/**
* 自定义只读模式的渲染器
* @params props 关于dom的配置
* @params dom 默认的 dom
* @return 返回一个用于读的 dom
*/
render: funcType(),
/**
* 一个自定义的编辑渲染器。
* @params text 默认的值类型
* @params props 关于dom的配置
* @params dom 默认的 dom
* @return 返回一个用于编辑的dom
*/
renderFormItem: funcType()
};
function buildProFieldProp(extraProps) {
return __spreadValues(__spreadValues(__spreadValues({}, baseProFieldProps), proRenderFieldProps), extraProps);
}
const proFieldFCRenderProps = __spreadValues({
readonly: boolType(),
placeholder: oneOfType([String, Array]),
// value: anyType(), 暂时去掉,用text 代替
onChange: funcType()
}, baseProFieldProps);
export {
baseProFieldProps,
buildProFieldProp,
proFieldFCRenderProps,
proFieldLightProps,
proRenderFieldProps
};