UNPKG

amis

Version:

一种MIS页面生成工具

52 lines (51 loc) 1.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tpl_1 = require("./tpl"); var helper_1 = require("./helper"); /** * 处理 Props 数据,所有带 On 结束的做一次 * * xxxOn * xxxExpr * * * @param schema * @param data */ function getExprProperties(schema, data, blackList, props) { if (data === void 0) { data = {}; } if (blackList === void 0) { blackList = ['addOn']; } var exprProps = {}; var ctx = null; Object.getOwnPropertyNames(schema).forEach(function (key) { if (blackList && ~blackList.indexOf(key)) { return; } var parts = /^(.*)(On|Expr)$/.exec(key); var value = schema[key]; if (value && typeof value === 'string' && parts && (parts[2] === 'On' || parts[2] === 'Expr')) { key = parts[1]; if (parts[2] === 'On' || parts[2] === 'Expr') { if (!ctx && props && typeof value === 'string' && ~value.indexOf('__props')) { ctx = helper_1.injectPropsToObject(data, { __props: props }); } value = parts[2] === 'On' ? tpl_1.evalExpression(value, ctx || data) : tpl_1.filter(value, ctx || data); } exprProps[key] = value; } }); return exprProps; } exports.default = getExprProperties; //# sourceMappingURL=./utils/filter-schema.js.map