ngx-mat-dynamic-form-builder
Version:
Build dynamic forms in Angular Material using Reactive forms.
25 lines • 5.49 kB
JavaScript
import { FormControl, Validators } from '@angular/forms';
import { DateQuestion } from './question-date';
export class DateTimeQuestion extends DateQuestion {
constructor(options = {}) {
super(options);
this.controlType = 'date-time';
this.hourControl = new FormControl({ value: undefined, disabled: options['disabled'] != undefined ? options['disabled'] : false }, [Validators.min(0), Validators.max(23)]);
this.minuteControl = new FormControl({ value: undefined, disabled: options['disabled'] != undefined ? options['disabled'] : false }, [Validators.min(0), Validators.max(59)]);
if (this.dateControl.value) {
this.hourControl.setValue(this.dateControl.value.getHours());
this.minuteControl.setValue(this.dateControl.value.getMinutes());
}
this.hourControl.valueChanges.subscribe(hour => {
if (hour !== undefined || hour !== null && this.dateControl.value) {
this.dateControl.value.setHours(hour);
}
});
this.minuteControl.valueChanges.subscribe(min => {
if (min !== undefined || min !== null && this.dateControl.value) {
this.dateControl.value.setMinutes(min);
}
});
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tZGF0ZS10aW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdC1keW5hbWljLWZvcm0tYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvaGVscGVyLWNsYXNzZXMvcXVlc3Rpb24tZGF0ZS10aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxZQUFZO0lBTTlDLFlBQVksVUFBYyxFQUFFO1FBQ3hCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQU5uQixnQkFBVyxHQUFHLFdBQVcsQ0FBQztRQU90QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUssSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlLLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1NBQ3BFO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzNDLElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFO2dCQUMvRCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDekM7UUFDTCxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM1QyxJQUFJLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRTtnQkFDN0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzFDO1FBQ0wsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVzdGlvbkJhc2UgfSBmcm9tICcuL3F1ZXN0aW9uLWJhc2UnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEYXRlUXVlc3Rpb24gfSBmcm9tICcuL3F1ZXN0aW9uLWRhdGUnO1xyXG5cclxuZXhwb3J0IGNsYXNzIERhdGVUaW1lUXVlc3Rpb24gZXh0ZW5kcyBEYXRlUXVlc3Rpb24ge1xyXG4gICAgY29udHJvbFR5cGUgPSAnZGF0ZS10aW1lJztcclxuXHJcbiAgICBob3VyQ29udHJvbDogRm9ybUNvbnRyb2w7XHJcbiAgICBtaW51dGVDb250cm9sOiBGb3JtQ29udHJvbDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiB7fSA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICAgICAgdGhpcy5ob3VyQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB1bmRlZmluZWQsIGRpc2FibGVkOiBvcHRpb25zWydkaXNhYmxlZCddICE9IHVuZGVmaW5lZCA/IG9wdGlvbnNbJ2Rpc2FibGVkJ10gOiBmYWxzZSB9LCBbVmFsaWRhdG9ycy5taW4oMCksIFZhbGlkYXRvcnMubWF4KDIzKV0pO1xyXG4gICAgICAgIHRoaXMubWludXRlQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB1bmRlZmluZWQsIGRpc2FibGVkOiBvcHRpb25zWydkaXNhYmxlZCddICE9IHVuZGVmaW5lZCA/IG9wdGlvbnNbJ2Rpc2FibGVkJ10gOiBmYWxzZSB9LCBbVmFsaWRhdG9ycy5taW4oMCksIFZhbGlkYXRvcnMubWF4KDU5KV0pO1xyXG4gICAgICAgIGlmICh0aGlzLmRhdGVDb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaG91ckNvbnRyb2wuc2V0VmFsdWUodGhpcy5kYXRlQ29udHJvbC52YWx1ZS5nZXRIb3VycygpKTtcclxuICAgICAgICAgICAgdGhpcy5taW51dGVDb250cm9sLnNldFZhbHVlKHRoaXMuZGF0ZUNvbnRyb2wudmFsdWUuZ2V0TWludXRlcygpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5ob3VyQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGhvdXIgPT4ge1xyXG4gICAgICAgICAgICBpZiAoaG91ciAhPT0gdW5kZWZpbmVkIHx8IGhvdXIgIT09IG51bGwgJiYgdGhpcy5kYXRlQ29udHJvbC52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlQ29udHJvbC52YWx1ZS5zZXRIb3Vycyhob3VyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy5taW51dGVDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUobWluID0+IHtcclxuICAgICAgICAgICAgaWYgKG1pbiAhPT0gdW5kZWZpbmVkIHx8IG1pbiAhPT0gbnVsbCAmJiB0aGlzLmRhdGVDb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVDb250cm9sLnZhbHVlLnNldE1pbnV0ZXMobWluKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcbn0iXX0=