%_{
let pictureFields = viewFields.filter(x => x.picture && x.type !== 'SchemaArray');
let pictureFieldsName = pictureFields.map(x=>x.fieldName);
let indexedFields = viewFields.filter(x => !x.picture && x.isIndexField);
let indexedFieldsName = indexedFields.map(x=>x.fieldName);
let otherFields = viewFields.filter(x => !pictureFieldsName.includes(x.fieldName) && !indexedFieldsName.includes(x.fieldName));
let otherFieldsName = otherFields.map(x=>x.fieldName);
if (pictureFields.length > 0 || indexedFields.length > 0){%>
<%
for (let field of pictureFields){
if (field.hidden) continue;
let fn = field.fieldName; let ft = field.type;
let fieldObj = {field, fn, ft, ref_link: true,};
%>
<%
for (let [index, field] of indexedFields.entries()){
if (field.hidden) continue;
let fn = field.fieldName; let ft = field.type;
let fieldObj = {field, fn, ft, ref_link: true,};
%>
<%
for (let fieldGrp of viewGrp) {
let fieldGrpProcessed = fieldGrp.filter(x=>otherFieldsName.includes(x.fieldName) && !x.hidden);
if (fieldGrpProcessed.length < 1) {
continue;
}
let grpClass = `class="d-inline-flex flex-wrap mx-2"`;
if (fieldGrpProcessed.length == 1) {
grpClass = `class="d-flex flex-wrap mx-2"`;
}
%>
<%for (let field of fieldGrpProcessed) {
let fn = field.fieldName; let ft = field.type;
let fieldObj = {field, fn, ft, ref_link: true,};
let fieldHasValue = `fieldHasValue(detail['${fn}'])`;
if (field.exclusiveRequired) {
let values = [];
for (let fld of field.formGroup) {
values.push(`fieldHasValue(detail['${fld.fieldName}'])`);
}
fieldHasValue = values.join(' || ');
}
%>
*ngIf="<%-fieldHasValue%>"<%}%>
<% if (field.meta.directive) {
%><%- include(`/ui/${uiFramework}/schema-display.field.directive.html`, fieldObj); %><%
}%>
<%-grpClass%> style="min-width: 160px;"><%_ if (field.showDisplayName) {%>
<%}%>