<%_ if (field.type === "SchemaString") { %><%_ if (field.editor) { %> [required]="true"<% } if (field.validators) {%> <%-mn%><%-Sn%>Directive<%-Fn%>=""<% } if (typeof field.minlength === 'number') {%> [minlength]="<%-field.minlength%>"<% } if (typeof field.maxlength === 'number') {%> [maxlength]="<%-field.maxlength%>"<% }%> #Edit<%-Fn%>="ngModel"> <% if (field.required || field.validators || typeof field.maxlength === 'number' || typeof field.minlength === 'number') {%>
<%_ if (field.required) {%>
<%-fD%> is required.
<%}%><%_ if (field.validators) {%>
{{Edit<%-Fn%>.errors['<%-mn%><%-Sn%>Directive<%-Fn%>']}}
<%}%><%_ if (typeof field.maxlength === 'number') {%>
<%-field.maxlengthMsg%>.
<%}%><%_ if (typeof field.minlength === 'number') {%>
<%-field.minlengthMsg%>.
<%}%>
<% }%><%_ } else if (field.picture) {%>
[ngClass]="{'ng-valid': detail['<%-fn%>'], 'ng-invalid': !detail['<%-fn%>']}"<% } else { %> [ngClass]="{'ng-valid': true} "<%_ } %> > required<%}%> [(ngModel)]="detail['<%-fn%>']" name="Edit<%-Fn%>" #Edit<%-Fn%>="ngModel">
<%_ if (field.required) {%>
<%-fD%> is required.
<%}%><%_ } else if (field.file) { %>
[ngClass]="{'ng-valid': detail['<%-fn%>'], 'ng-invalid': !detail['<%-fn%>']}"<% } else { %> [ngClass]="{'ng-valid': true} "<%_ } %> > required<%}%> [(ngModel)]="detail['<%-fn%>']" name="Edit<%-Fn%>" #Edit<%-Fn%>="ngModel">
<%_ if (field.required) {%>
<%-fD%> is required.
<%}%><%_ } else { %><%_ if (field.enumValues) { %>
[ngClass]="{'ng-valid': enums['<%-fn%>'].includes(detail['<%-fn%>']), 'ng-invalid': !enums['<%-fn%>'].includes(detail['<%-fn%>'])}"<% } else { %> [ngClass]="{'ng-valid': true} "<%_ } %> ><%_ field.enumValues.forEach( (f) => { %>
required<%}%> id="Edit<%-Fn%><%-f%>" [value]="'<%-f%>'"<% if (field.validators) {%> <%-mn%><%-Sn%>Directive<%-Fn%>=""<%}%> [(ngModel)]="detail['<%-fn%>']" #Edit<%-Fn%>="ngModel">
<%_ }) %><% if (!field.required) {%> <%}%>
<%_ } else if (field.mraType === 'httpurl') { %>
Link Text
Text="ngModel">
Link URL
required<%}%><% if (typeof field.minlength === 'number') {%> minlength="<%-field.minlength%>"<%}%><% if (typeof field.maxlength === 'number') {%> maxlength="<%-field.maxlength%>"<%}%><% if (field.match) {%> pattern="<%-field.match%>"<%}%><% if (field.validators) {%> <%-mn%><%-Sn%>Directive<%-Fn%>=""<%}%> [(ngModel)]="detail['<%-fn%>']['url']" name="Edit<%-Fn%>" #Edit<%-Fn%>="ngModel">
<%_ } else { %>
<%if (field.textarea) {%> <%}%>
<%_ } %><% if (field.required || field.validators || typeof field.maxlength === 'number' || typeof field.minlength === 'number' || typeof field.match || field.mraType === 'email') {%>
<%_ if (field.required) {%>
<%-fD%> is required.
<%}%><%_ if (field.validators) {%>
{{Edit<%-Fn%>.errors['<%-mn%><%-Sn%>Directive<%-Fn%>']}}
<%}%><%_ if (typeof field.maxlength === 'number') {%>
<%-field.maxlengthMsg%>.
<%}%><%_ if (typeof field.minlength === 'number') {%>
<%-field.minlengthMsg%>.
<%}%><%_ if (field.match) {%>
<%-field.matchMsg%>.
<%}%><%_ if (field.mraType === 'email') {%>
<%-fD%> must be a valid email address.
<%}%>
<%}%><%_ if (!field.enumValues && field.hint) {%>
Type in new value or select from available ones:
{{hintEle['_id']}}
<%_ }%><%_ }%><% } else if (field.type === "SchemaBoolean") { %>
[ngClass]="{'ng-valid': detail['<%-fn%>'] == true || detail['<%-fn%>'] == false, 'ng-invalid': detail['<%-fn%>'] != true && detail['<%-fn%>'] != false}"<% } else { %> [ngClass]="{'ng-valid': true} "<%_ } %> >
required<%}%><% if (field.validators) {%> <%-mn%><%-Sn%>Directive<%-Fn%>=""<%}%> [(ngModel)]="detail['<%-fn%>']" #Edit<%-Fn%>="ngModel">
required<%}%><% if (field.validators) {%> <%-mn%><%-Sn%>Directive<%-Fn%>=""<%}%> [(ngModel)]="detail['<%-fn%>']" #Edit<%-Fn%>="ngModel">
<% if (!field.required) {%>
<%}%>
<%_ if (field.required) {%>
<%-fD%> is required.
<%}%><%_if (field.validators) {%>
{{Edit<%-Fn%>.errors['<%-mn%><%-Sn%>Directive<%-Fn%>']}}
<%}%>
<%_ } else if (field.type === "SchemaNumber") { %><% if (field.mraType === 'currency'){%> $<%}%> libMddsMinNumber="<%-field.numberMin%>" min="<%-field.numberMin%>"<%}%><% if (typeof field.numberMax === 'number') {%> libMddsMaxNumber="<%-field.numberMax%>" max="<%-field.numberMax%>"<%}%><% if (field.required) {%> required<%}%><% if (field.validators) {%> <%-mn%><%-Sn%>Directive<%-Fn%>=""<%}%> [(ngModel)]="detail['<%-fn%>']" name="Edit<%-Fn%>" #Edit<%-Fn%>="ngModel"><%_ if (field.required || field.validators || typeof field.numberMax === 'number' || typeof field.numberMin === 'number') {%>
<%_ if (field.required) {%>
<%-fD%> is required.
<%}%><%_ if (field.validators) {%>
{{Edit<%-Fn%>.errors['<%-mn%><%-Sn%>Directive<%-Fn%>']}}
<%}%><%_ if (typeof field.numberMax === 'number') {%>
<%-field.numberMaxMsg%>.
<%}%><%_ if (typeof field.numberMin === 'number') {%>
<%-field.numberMinMsg%>.
<%}%>
<%}%><%_ } else if (field.type === "SchemaDate") { %>
<% let colClassDate = 'col-11'; let colClassTime = ''; if (field.mraDate.includes('time')) { colClassDate = 'col-12 col-md-8'; colClassTime = 'col-11 col-md-3'; } %>
required<%}%><% if (field.validators) {%> <%-mn%><%-Sn%>Directive<%-Fn%>=""<%}%> [(ngModel)]="detail['<%-fn%>']['date']" name="Edit<%-Fn%>" ngbDatepicker [minDate]="minDate" #Edit<%-Fn%>Date="ngbDatepicker" #Edit<%-Fn%>="ngModel">
<%_ if (field.required) {%>
Date is required.
<%}%><%_ if (field.validators) {%>
{{Edit<%-Fn%>.errors['<%-mn%><%-Sn%>Directive<%-Fn%>']}}
<%}%>
Date must not be earlier than {{minDate | json}}.
<%-fD%> must be in {{dateFormat}} format.
<% if (field.mraDate.includes('time')) {%>
required<%}%> [(ngModel)]="detail['<%-fn%>']['t_value']" name="Edit<%-Fn%>Time" #Edit<%-Fn%>Time="ngModel" >
<%_ if (field.required) {%>
Time is required.
<%}%>
<% }%>
<%_ } else if (field.type === "ObjectId") { %>
> required<%}%><% if (field.validators) {%> <%-mn%><%-Sn%>Directive<%-Fn%>=""<%}%> [ngModel]="detail['<%-fn%>']['valueMedium']" name="Edit<%-Fn%>" #Edit<%-Fn%>="ngModel" >
<%_ if (field.required || field.validators) {%>
<%_ if (field.required) {%>
<%-fD%> is required.
<%}%><%_ if (field.validators) {%>
{{Edit<%-Fn%>.errors['<%-mn%><%-Sn%>Directive<%-Fn%>']}}
<%}%>
<%}%><%_ } else if (field.type === "Map") { %><%_ if (field.elementType === "SchemaString" || field.elementType === "SchemaNumber") { %>
libMddsMapRequired<%}%> #Edit<%-Fn%>="ngModelGroup" >
Key <%if (field.keyDescription) {%><%}%>
Value <%if (field.valueDescription) {%><%}%>

<%_ if (field.elementType === "SchemaString") { %><% if (field.mraType === 'email') {%> placeholder="Value for {{key}}" class="form-control form-control-sm" id="<%-Fn%>Element{{idx}}"<% if (typeof field.minlength === 'number') {%> minlength="<%-field.minlength%>"<%}%><% if (typeof field.maxlength === 'number') {%> maxlength="<%-field.maxlength%>"<%}%><% if (field.match) {%> pattern="<%-field.match%>"<%}%><% if (field.validators) {%> <%-mn%><%-Sn%>Directive<%-Fn%>=""<%}%> [(ngModel)]="detail['<%-fn%>']['selection'][key]" name="<%-Fn%>Element{{idx}}" #<%-Fn%>Element{{idx}}="ngModel"> <%_ } else if (field.elementType === "SchemaNumber") { %> libMddsMinNumber="<%-field.numberMin%>" min="<%-field.numberMin%>"<%}%><% if (typeof field.numberMax === 'number') {%> libMddsMaxNumber="<%-field.numberMax%>" max="<%-field.numberMax%>"<%}%><% if (field.validators) {%><%-mn%><%-Sn%>Directive<%-Fn%>=""<%}%> [(ngModel)]="detail['<%-fn%>']['selection'][key]" name="<%-Fn%>Element{{idx}}" #<%-Fn%>Element{{idx}}="ngModel"><%_ }%>
<%_ if (field.elementType === "SchemaString") { %><%_ if (field.validators || field.mraType === 'email' || field.match || typeof field.maxlength === 'number' || typeof field.minlength === 'number') {%>
<%_ if (field.validators) {%>
{{Edit<%-Fn%>.control.controls['<%-Fn%>Element'+idx].errors['<%-mn%><%-Sn%>Directive<%-Fn%>']}}
<%}%><%_ if (typeof field.maxlength === 'number') {%>
<%-field.maxlengthMsg%>.
<%}%><%_ if (typeof field.minlength === 'number') {%>
<%-field.minlengthMsg%>.
<%}%><%_ if (field.match) {%>
<%-field.matchMsg%>.
<%}%><%_ if (field.mraType === 'email') {%>
Value must be a valid email address.
<%}%>
<%}%><%_ } else if (field.elementType === "SchemaNumber") { %><%_ if (field.validators || typeof field.numberMax === 'number' || typeof field.numberMin === 'number') {%>
<%_ if (field.validators) {%>
{{Edit<%-Fn%>.control.controls['<%-Fn%>Element'+idx].errors['<%-mn%><%-Sn%>Directive<%-Fn%>']}}
<%}%><%_ if (typeof field.numberMax === 'number') {%>
<%-field.numberMaxMsg%>.
<%}%><%_ if (typeof field.numberMin === 'number') {%>
<%-field.numberMinMsg%>.
<%}%>
<%}%><%_ }%>
New="ngModel" [(ngModel)]="detail['<%-fn%>']['new']" [ngModelOptions]="{standalone: true}" (keydown.enter)="$any($event.target).blur();onAddMapItem('<%-fn%>');false" >
new key
<%_ } else { %>
Not supported yet.
<%_ } %><%_ if (field.required) {%>
<%-fD%> is required.
<%}%><%_ } else if (field.type === "SchemaArray") { %><%_ if (field.elementType === "SchemaString" && field.elementMultiSelect) { %>
libMddsMultiSelectionRequired<%}%> #Edit<%-Fn%>="ngModelGroup" ><%_ field.enumValues.forEach( (f, index) => { const fd = f.trim().replace(/\s+/g, ''); %>
<%-fd%>="ngModel">
<%_ }) %>
<%_ } else if (field.elementType === 'SchemaString' && field.picture) { %>
libMddsArrayRequired<%}%> #Edit<%-Fn%>="ngModelGroup" >

Selection="ngModel">
<%_ } else if (field.elementType === 'SchemaString' && field.file) { %>
libMddsArrayRequired<%}%> #Edit<%-Fn%>="ngModelGroup" >

Selection="ngModel">
<%_ } else if (field.elementType === 'SchemaString' && field.mraType === 'httpurl') { %>
libMddsArrayRequired<%}%> #Edit<%-Fn%>="ngModelGroup" >

Link Text
NewText="ngModel">
Link URL
minlength="<%-field.minlength%>"<%}%><% if (typeof field.maxlength === 'number') {%> maxlength="<%-field.maxlength%>"<%}%><% if (field.match) {%> pattern="<%-field.match%>"<%}%><% if (field.validators) {%> <%-mn%><%-Sn%>Directive<%-Fn%>=""<%}%> [(ngModel)]="detail['<%-fn%>']['new']['url']" name="Edit<%-Fn%>New" #Edit<%-Fn%>New="ngModel">
Value is required.
<%_ if (field.validators) {%>
{{Edit<%-Fn%>New.errors['<%-mn%><%-Sn%>Directive<%-Fn%>']}}
<%}%><%_ if (typeof field.maxlength === 'number') {%>
<%-field.maxlengthMsg%>.
<%}%>
<%_ if (typeof field.minlength === 'number') {%>
<%-field.minlengthMsg%>.
<%}%><%_ if (field.match) {%>
{{field.matchMsg}}.
<%}%>
Selection="ngModel">
<%_ } else if (field.elementType === 'SchemaString') { %>
directive<%-Mn%>ArrayRequired<%}%> #Edit<%-Fn%>="ngModelGroup" >
{{element}}

<% if (field.hint) {%>
Select from Available <%-fD%>:
{{hintEle['_id']}}
<%_ }%>
<%if (field.mraType === 'email') {%> class="form-control border" id="Edit<%-Fn%>New" #Edit<%-Fn%>New="ngModel" [(ngModel)]="detail['<%-fn%>']['new']" [ngModelOptions]="{standalone: true}"<% if (typeof field.minlength === 'number') {%> minlength="<%-field.minlength%>"<%}%><% if (typeof field.maxlength === 'number') {%> maxlength="<%-field.maxlength%>"<%}%><% if (typeof field.match) {%> pattern="<%-field.match%>"<%}%><% if (field.validators) {%> <%-mn%><%-Sn%>Directive<%-Fn%>=""<%}%> (keydown.enter)="$any($event.target).blur();onAddArrayItem('<%-fn%>');false"><% if (field.validators || typeof field.maxlength === 'number' || typeof field.minlength === 'number' || field.match || field.mraType === 'email') {%>
<%_ if (field.validators) {%>
{{Edit<%-Fn%>New.errors['<%-mn%><%-Sn%>Directive<%-Fn%>']}}
<%}%><%_ if (typeof field.maxlength === 'number') {%>
<%-field.maxlengthMsg%>.
<%}%><%_ if (typeof field.minlength === 'number') {%>
<%-field.minlengthMsg%>.
<%}%><%_ if (field.match) {%>
<%-field.matchMsg%>.
<%}%><%_ if (field.mraType === 'email') {%>
Value must be a valid email address.
<%}%>
<%}%>
Selection="ngModel">
<%_ } else if (field.elementType === 'ObjectId') { %>
directive<%-Mn%>ArrayRequired<%}%> #Edit<%-Fn%>="ngModelGroup" #field<%-Fn%> >
{{element.valueMedium}}
Selection="ngModel">
<%_ } else { %>
Not supported yet.
<%_ } %><% if (field.required) {%>
<%-fD%> is required.
<%}%><%_ } else if (ft === 'AngularSelector') { let sel = field.selector;%> ="ngModel"> <<%-sel.selector%><% for(let input of sel.inputs) {%> [<%-input.key%>]="<%-input.value%>"<%}%><%for(let output of sel.outputs) {%> (<%-output.key%>)="<%-output.value%>"<%}%> > ><% } else { %>
Not supported yet.
<%_ } %>