UNPKG

ngx-mat-dynamic-form-builder

Version:

Build dynamic forms in Angular Material using Reactive forms.

25 lines 5.49 kB
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=