nm-form-datepicker
src/app/shared/widgets/form/datepicker.component.ts
selector | nm-form-datepicker |
templateUrl | ./datepicker.component.html |
Widget inputs |
Widget outputs |
Properties |
Methods |
|
constructor()
|
Protected configureWidget | ||||||||||||
configureWidget(configuration: WidgetConfig, _form: FormGroup, action: ActionForm)
|
||||||||||||
Decorators : WidgetConfigure
|
||||||||||||
Parameters :
Returns :
void
|
ngOnInit |
ngOnInit()
|
Returns :
void
|
Public group |
group:
|
Type : FormGroup
|
Public hidden |
hidden:
|
Type : boolean
|
Public name |
name:
|
Type : string
|
Public placeholder |
placeholder:
|
Type : string
|
Public required |
required:
|
Type : boolean
|
Public type |
type:
|
Type : boolean
|
import { Component } from "@angular/core";
import { FormControl, FormGroup, Validators } from "@angular/forms";
import { WidgetConfig } from "../widget.configuration";
import {
WidgetComponent,
WidgetId,
WidgetConfiguration,
WidgetConfigure,
WidgetInput,
WidgetOutput,
} from "../widget.metadata";
import { ActionForm } from "../../components/hal/actionForm";
import { formProperty } from "../../components/hal/hal";
@WidgetComponent("nm-form-datepicker")
@Component({
selector: "nm-form-datepicker",
templateUrl: "./datepicker.component.html",
})
export class FormDatepickerComponent {
public name: string;
public placeholder: string;
public hidden: boolean;
public required: boolean;
public group: FormGroup;
public type: boolean;
constructor() {}
@WidgetConfigure()
protected configureWidget(
configuration: WidgetConfig,
_form: FormGroup,
action: ActionForm
) {
let name = configuration.configuration["name"];
let prop = formProperty(action, name);
this.name = prop.name;
this.hidden = prop.hidden || configuration.configuration["hidden"];
this.placeholder =
prop.description || configuration.configuration["placeholder"];
this.required = prop.required || configuration.configuration["required"];
this.type = prop.type || configuration.configuration["type"];
this.group = _form;
let control = this.required
? new FormControl(prop.value, Validators.required)
: new FormControl(prop.value);
this.group.addControl(this.name, control);
}
ngOnInit() {}
}
<div [formGroup]="group">
<div *ngIf="required; then isRequired; else notRequired"></div>
<ng-template #isRequired>
<mat-form-field [class.hidden]="hidden == true">
<input
matInput
required
[placeholder]="placeholder | translate"
type="{{ type }}"
[formControlName]="name"
[id]="name"
style="width: 100%"
[hidden]="hidden"
required
/>
</mat-form-field>
</ng-template>
<ng-template #notRequired>
<mat-form-field [class.hidden]="hidden == true">
<input
matInput
[placeholder]="placeholder | translate"
type="{{ type }}"
[formControlName]="name"
[id]="name"
[hidden]="hidden"
/>
</mat-form-field>
</ng-template>
</div>