using JNPF.Common.Const;
namespace JNPF.VisualDev.Engine;
///
/// 模板解析.
///
public static class TemplateAnalysis
{
///
/// 解析模板数据
/// 移除模板内的布局类型控件.
///
public static List AnalysisTemplateData(List fieldsModelList)
{
var template = new List();
// 将模板内的无限children解析出来
// 不包含子表children
foreach (var item in fieldsModelList)
{
var config = item.__config__;
switch (config.jnpfKey)
{
case JnpfKeyConst.TABLE:
item.__config__.defaultCurrent = item.__config__.children.Any(it => it.__config__.defaultCurrent);
template.Add(item);
break;
case JnpfKeyConst.ROW:
case JnpfKeyConst.CARD:
template.AddRange(AnalysisTemplateData(config.children));
break;
case JnpfKeyConst.COLLAPSE:
case JnpfKeyConst.TAB:
foreach (FieldsModel? collapse in config.children)
{
template.AddRange(AnalysisTemplateData(collapse.__config__.children));
}
break;
case JnpfKeyConst.JNPFTEXT:
case JnpfKeyConst.DIVIDER:
case JnpfKeyConst.GROUPTITLE:
case JnpfKeyConst.BUTTON:
case JnpfKeyConst.ALERT:
case JnpfKeyConst.LINK:
break;
default:
template.Add(item);
break;
}
}
return template;
}
}