@xmagic/nz-formly
Version:
基于ng-zorro-antd UI 扩展的ngx-formly组件库
76 lines • 11.2 kB
JavaScript
/**
* 处理属性为模板类型, 根据模板名称处理成模板对象
* @param value 数据对象
* @param fieldTemplates 模板容器
* @param propName 属性名
* @param propTemplateName 模板属性名称
*/
export function resolveTplName(value, fieldTemplates, propName, propTemplateName) {
if (value[propName]) {
return value[propName];
}
if (!fieldTemplates) {
return undefined;
}
const tplName = propTemplateName || getTplName(propName);
return fieldTemplates.get(value[tplName]);
}
/**
* 处理属性为模板类型, 根据模板名称处理成模板对象列表
* @param value 数据对象
* @param fieldTemplates 模板容器
* @param propName 属性名
* @param propTemplateName 模板属性名称
*/
export function resolveTplNameArray(value, fieldTemplates, propName, propTemplateName) {
if (value[propName] != null) {
return value[propName];
}
if (!fieldTemplates) {
return [];
}
const tplName = propTemplateName || getTplName(propName);
const tplValue = value[tplName];
if (Array.isArray(tplValue)) {
return tplValue.map(key => fieldTemplates.get(key)).filter(tpl => tpl);
}
return [];
}
/**
* 根据属性名获取模板名称
* @param propName 属性名
*/
export function getTplName(propName) {
return `${propName}Name`;
}
/**
* 获取模板名称
* @param value
* @param propName
* @param propTemplateName 模板属性名称
*/
export function hasTplNameValue(value, propName, propTemplateName) {
const tplName = propTemplateName || getTplName(propName);
return value[propName] || value[tplName];
}
/**
* 获取根节点的FieldConfig
* @param field 当前节点配置
*/
export function getRootFiled(field) {
let p = field.parent;
while (p && p.parent) {
p = p.parent;
}
return p || field;
}
/**
* 根据key获取指定FieldConfig
* @param field 当前节点配置
* @param key 配置的key
*/
export function findField(field, key) {
const rootField = getRootFiled(field);
return rootField.get(key);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2NvbW1vbi9mb3JtbHktdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaURBOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQzVCLEtBQWdCLEVBQ2hCLGNBQWtDLEVBQ2xDLFFBQWdCLEVBQ2hCLGdCQUF5QjtJQUV6QixJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNuQixPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUN4QjtJQUNELElBQUksQ0FBQyxjQUFjLEVBQUU7UUFDbkIsT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFDRCxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekQsT0FBTyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLEtBQWdCLEVBQ2hCLGNBQWtDLEVBQ2xDLFFBQWdCLEVBQ2hCLGdCQUF5QjtJQUV6QixJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUU7UUFDM0IsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDeEI7SUFDRCxJQUFJLENBQUMsY0FBYyxFQUFFO1FBQ25CLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFDRCxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUMzQixPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFxQixDQUFDO0tBQzVGO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxRQUFnQjtJQUN6QyxPQUFPLEdBQUcsUUFBUSxNQUFNLENBQUM7QUFDM0IsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxLQUFnQixFQUFFLFFBQWdCLEVBQUUsZ0JBQXlCO0lBQzNGLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6RCxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBd0I7SUFDbkQsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFO1FBQ3BCLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0tBQ2Q7SUFDRCxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUM7QUFDcEIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQXdCLEVBQUUsR0FBVztJQUM3RCxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsT0FBTyxTQUFTLENBQUMsR0FBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xyXG5pbXBvcnQgeyBOekRyb3BEb3duRGlyZWN0aXZlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9kcm9wZG93bic7XHJcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlGaWVsZFByb3BzIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXN5bmNPcHRpb24gfSBmcm9tICdAeG1hZ2ljL256eC1hbnRkL3BpcGUnO1xyXG5pbXBvcnQgeyBGb3JtbHlCb3hUZW1wbGF0ZXMgfSBmcm9tICcuL2Zvcm1seS1ib3gtdGVtcGxhdGVzLmRpcmVjdGl2ZSc7XHJcblxyXG4vKipcclxuICog5LiL5ouJ6I+c5Y2V6YWN572uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duV3JhcHBlck9wdGlvbnMge1xyXG4gIG56RHJvcGRvd24/OiB7XHJcbiAgICByZWY6IHN0cmluZztcclxuICAgIC8qKlxyXG4gICAgICog6I+c5Y2V5piv5ZCm56aB55SoXHJcbiAgICAgKi9cclxuICAgIG56RGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gICAgLyoqXHJcbiAgICAgKiDoj5zljZXlvLnlh7rkvY3nva5cclxuICAgICAqL1xyXG4gICAgbnpQbGFjZW1lbnQ/OiAnYm90dG9tTGVmdCcgfCAnYm90dG9tQ2VudGVyJyB8ICdib3R0b21SaWdodCcgfCAndG9wTGVmdCcgfCAndG9wQ2VudGVyJyB8ICd0b3BSaWdodCc7XHJcbiAgICAvKipcclxuICAgICAqIOinpuWPkeS4i+aLieeahOihjOS4ulxyXG4gICAgICovXHJcbiAgICBuelRyaWdnZXI/OiAnY2xpY2snIHwgJ2hvdmVyJztcclxuICAgIC8qKlxyXG4gICAgICog54K55Ye75ZCO5piv5ZCm6ZqQ6JeP6I+c5Y2VXHJcbiAgICAgKi9cclxuICAgIG56Q2xpY2tIaWRlPzogYm9vbGVhbjtcclxuICAgIC8qKlxyXG4gICAgICog6I+c5Y2V5piv5ZCm5pi+56S677yM5Y+v5Y+M5ZCR57uR5a6aXHJcbiAgICAgKi9cclxuICAgIG56VmlzaWJsZT86IGJvb2xlYW47XHJcbiAgICAvKipcclxuICAgICAqIOS4i+aLieagueWFg+e0oOeahOexu+WQjeensFxyXG4gICAgICovXHJcbiAgICBuek92ZXJsYXlDbGFzc05hbWU/OiBzdHJpbmc7XHJcbiAgICAvKipcclxuICAgICAqIOS4i+aLieagueWFg+e0oOeahOagt+W8j1xyXG4gICAgICovXHJcbiAgICBuek92ZXJsYXlTdHlsZT86IG9iamVjdDtcclxuICAgIC8qKlxyXG4gICAgICog6I+c5Y2V5pi+56S654q25oCB5pS55Y+Y5pe26LCD55So77yM5Y+C5pWw5Li6IG56VmlzaWJsZVxyXG4gICAgICovXHJcbiAgICBuelZpc2libGVDaGFuZ2U/OiAoZXZ0OiBib29sZWFuLCBmaWVsZDogRm9ybWx5RmllbGRDb25maWcsIGluc3RhbmNlOiBOekRyb3BEb3duRGlyZWN0aXZlKSA9PiB2b2lkO1xyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiDlpITnkIblsZ7mgKfkuLrmqKHmnb/nsbvlnossIOagueaNruaooeadv+WQjeensOWkhOeQhuaIkOaooeadv+WvueixoVxyXG4gKiBAcGFyYW0gdmFsdWUg5pWw5o2u5a+56LGhXHJcbiAqIEBwYXJhbSBmaWVsZFRlbXBsYXRlcyDmqKHmnb/lrrnlmahcclxuICogQHBhcmFtIHByb3BOYW1lIOWxnuaAp+WQjVxyXG4gKiBAcGFyYW0gcHJvcFRlbXBsYXRlTmFtZSDmqKHmnb/lsZ7mgKflkI3np7BcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVHBsTmFtZTxUID0gTnpTYWZlQW55PihcclxuICB2YWx1ZTogTnpTYWZlQW55LFxyXG4gIGZpZWxkVGVtcGxhdGVzOiBGb3JtbHlCb3hUZW1wbGF0ZXMsXHJcbiAgcHJvcE5hbWU6IHN0cmluZyxcclxuICBwcm9wVGVtcGxhdGVOYW1lPzogc3RyaW5nXHJcbik6IFRlbXBsYXRlUmVmPFQ+IHwgdW5kZWZpbmVkIHtcclxuICBpZiAodmFsdWVbcHJvcE5hbWVdKSB7XHJcbiAgICByZXR1cm4gdmFsdWVbcHJvcE5hbWVdO1xyXG4gIH1cclxuICBpZiAoIWZpZWxkVGVtcGxhdGVzKSB7XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuICBjb25zdCB0cGxOYW1lID0gcHJvcFRlbXBsYXRlTmFtZSB8fCBnZXRUcGxOYW1lKHByb3BOYW1lKTtcclxuICByZXR1cm4gZmllbGRUZW1wbGF0ZXMuZ2V0KHZhbHVlW3RwbE5hbWVdKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIOWkhOeQhuWxnuaAp+S4uuaooeadv+exu+Weiywg5qC55o2u5qih5p2/5ZCN56ew5aSE55CG5oiQ5qih5p2/5a+56LGh5YiX6KGoXHJcbiAqIEBwYXJhbSB2YWx1ZSDmlbDmja7lr7nosaFcclxuICogQHBhcmFtIGZpZWxkVGVtcGxhdGVzIOaooeadv+WuueWZqFxyXG4gKiBAcGFyYW0gcHJvcE5hbWUg5bGe5oCn5ZCNXHJcbiAqIEBwYXJhbSBwcm9wVGVtcGxhdGVOYW1lIOaooeadv+WxnuaAp+WQjeensFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVUcGxOYW1lQXJyYXk8VCA9IE56U2FmZUFueT4oXHJcbiAgdmFsdWU6IE56U2FmZUFueSxcclxuICBmaWVsZFRlbXBsYXRlczogRm9ybWx5Qm94VGVtcGxhdGVzLFxyXG4gIHByb3BOYW1lOiBzdHJpbmcsXHJcbiAgcHJvcFRlbXBsYXRlTmFtZT86IHN0cmluZ1xyXG4pOiBUZW1wbGF0ZVJlZjxUPltdIHtcclxuICBpZiAodmFsdWVbcHJvcE5hbWVdICE9IG51bGwpIHtcclxuICAgIHJldHVybiB2YWx1ZVtwcm9wTmFtZV07XHJcbiAgfVxyXG4gIGlmICghZmllbGRUZW1wbGF0ZXMpIHtcclxuICAgIHJldHVybiBbXTtcclxuICB9XHJcbiAgY29uc3QgdHBsTmFtZSA9IHByb3BUZW1wbGF0ZU5hbWUgfHwgZ2V0VHBsTmFtZShwcm9wTmFtZSk7XHJcbiAgY29uc3QgdHBsVmFsdWUgPSB2YWx1ZVt0cGxOYW1lXTtcclxuICBpZiAoQXJyYXkuaXNBcnJheSh0cGxWYWx1ZSkpIHtcclxuICAgIHJldHVybiB0cGxWYWx1ZS5tYXAoa2V5ID0+IGZpZWxkVGVtcGxhdGVzLmdldChrZXkpKS5maWx0ZXIodHBsID0+IHRwbCkgYXMgVGVtcGxhdGVSZWY8VD5bXTtcclxuICB9XHJcbiAgcmV0dXJuIFtdO1xyXG59XHJcblxyXG4vKipcclxuICog5qC55o2u5bGe5oCn5ZCN6I635Y+W5qih5p2/5ZCN56ewXHJcbiAqIEBwYXJhbSBwcm9wTmFtZSDlsZ7mgKflkI1cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRUcGxOYW1lKHByb3BOYW1lOiBzdHJpbmcpIHtcclxuICByZXR1cm4gYCR7cHJvcE5hbWV9TmFtZWA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiDojrflj5bmqKHmnb/lkI3np7BcclxuICogQHBhcmFtIHZhbHVlXHJcbiAqIEBwYXJhbSBwcm9wTmFtZVxyXG4gKiBAcGFyYW0gcHJvcFRlbXBsYXRlTmFtZSDmqKHmnb/lsZ7mgKflkI3np7BcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBoYXNUcGxOYW1lVmFsdWUodmFsdWU6IE56U2FmZUFueSwgcHJvcE5hbWU6IHN0cmluZywgcHJvcFRlbXBsYXRlTmFtZT86IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIGNvbnN0IHRwbE5hbWUgPSBwcm9wVGVtcGxhdGVOYW1lIHx8IGdldFRwbE5hbWUocHJvcE5hbWUpO1xyXG4gIHJldHVybiB2YWx1ZVtwcm9wTmFtZV0gfHwgdmFsdWVbdHBsTmFtZV07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiDojrflj5bmoLnoioLngrnnmoRGaWVsZENvbmZpZ1xyXG4gKiBAcGFyYW0gZmllbGQg5b2T5YmN6IqC54K56YWN572uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um9vdEZpbGVkKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykge1xyXG4gIGxldCBwID0gZmllbGQucGFyZW50O1xyXG4gIHdoaWxlIChwICYmIHAucGFyZW50KSB7XHJcbiAgICBwID0gcC5wYXJlbnQ7XHJcbiAgfVxyXG4gIHJldHVybiBwIHx8IGZpZWxkO1xyXG59XHJcblxyXG4vKipcclxuICog5qC55o2ua2V56I635Y+W5oyH5a6aRmllbGRDb25maWdcclxuICogQHBhcmFtIGZpZWxkIOW9k+WJjeiKgueCuemFjee9rlxyXG4gKiBAcGFyYW0ga2V5IOmFjee9rueahGtleVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRGaWVsZChmaWVsZDogRm9ybWx5RmllbGRDb25maWcsIGtleTogc3RyaW5nKTogRm9ybWx5RmllbGRDb25maWcgfCB1bmRlZmluZWQge1xyXG4gIGNvbnN0IHJvb3RGaWVsZCA9IGdldFJvb3RGaWxlZChmaWVsZCk7XHJcbiAgcmV0dXJuIHJvb3RGaWVsZC5nZXQhKGtleSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiDlvILmraXphY3nva7kv6Hmga9cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXN5bmNGb3JtbHlPcHRpb25zPFQgZXh0ZW5kcyBOelNhZmVBbnkgPSBOelNhZmVBbnksIFUgZXh0ZW5kcyBOelNhZmVBbnkgPSBOelNhZmVBbnk+XHJcbiAgZXh0ZW5kcyBBc3luY09wdGlvbiB7XHJcbiAgLyoqXHJcbiAgICog5Y+v6YCJ6aG55pWw5o2u5rqQXHJcbiAgICovXHJcbiAgb3B0aW9ucz86IHN0cmluZyB8IE9ic2VydmFibGU8VVtdPiB8IFByb21pc2U8VVtdPiB8IFVbXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIOaOp+S7tuaooeadv+WPguaVsOmFjee9rumhuVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgQ29udHJvbE9wdGlvbnMgPSBEcm9wZG93bldyYXBwZXJPcHRpb25zICZcclxuICBPbWl0PEZvcm1seUZpZWxkUHJvcHMsICdvcHRpb25zJz4gJiB7XHJcbiAgICB2YWx1ZUNoYW5nZXM/OiAodmFsdWU6IE56U2FmZUFueSwgZmllbGQ6IE56Rm9ybWx5RmllbGRDb25maWcpID0+IHZvaWQ7XHJcbiAgICBhdHRyaWJ1dGVzPzoge1xyXG4gICAgICBzdHlsZTogc3RyaW5nO1xyXG4gICAgICBjbGFzczogc3RyaW5nO1xyXG4gICAgICBpZDogc3RyaW5nO1xyXG4gICAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZyB8IG51bWJlcjtcclxuICAgIH07XHJcbiAgfTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTnpGb3JtbHlGaWVsZENvbmZpZzxUIGV4dGVuZHMgQ29udHJvbE9wdGlvbnMgPSBDb250cm9sT3B0aW9ucz4gZXh0ZW5kcyBGb3JtbHlGaWVsZENvbmZpZyB7XHJcbiAgLyoqXHJcbiAgICog6L+Z5piv5Li65qih5p2/5omp5bGV55qE5bGe5oCn77yM5omA5pyJ5qih5p2/6K6/6Zeu55qE5bGe5oCn6YO95bqU6K+l5LuO6L+Z6YeM6K6/6ZeuXHJcbiAgICovXHJcbiAgcHJvcHM/OiBUO1xyXG4gIC8qKlxyXG4gICAqIEBkZXByZWNhdGVkIOS9v+eUqCBgcHJvcHNgIOS7o+abv1xyXG4gICAqL1xyXG4gIHRlbXBsYXRlT3B0aW9ucz86IFQ7XHJcbn1cclxuIl19