UNPKG

ng-date-value-accessor

Version:

Date value accessor for Angular

54 lines (53 loc) 2.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var forms_1 = require("@angular/forms"); exports.DATE_VALUE_ACCESSOR = { provide: forms_1.NG_VALUE_ACCESSOR, useExisting: core_1.forwardRef(function () { return DateValueAccessor; }), multi: true }; var DateValueAccessor = (function () { function DateValueAccessor(renderer, elementRef) { this.renderer = renderer; this.elementRef = elementRef; this.onChange = function (_) { }; this.onTouched = function () { }; } DateValueAccessor.prototype.writeValue = function (value) { if (!value) { this.renderer.setProperty(this.elementRef.nativeElement, "value", null); return; } this.renderer.setProperty(this.elementRef.nativeElement, "valueAsDate", new Date(Date.UTC(value.getFullYear(), value.getMonth(), value.getDate()))); }; DateValueAccessor.prototype.registerOnChange = function (fn) { this.onChange = function (v) { return fn(v instanceof Date ? new Date(v.getFullYear(), v.getMonth(), v.getDate()) : v); }; }; DateValueAccessor.prototype.registerOnTouched = function (fn) { this.onTouched = fn; }; DateValueAccessor.prototype.setDisabledState = function (isDisabled) { this.renderer.setProperty(this.elementRef.nativeElement, "disabled", isDisabled); }; DateValueAccessor.decorators = [ { type: core_1.Directive, args: [{ selector: "[dateInput]", providers: [exports.DATE_VALUE_ACCESSOR] },] }, ]; DateValueAccessor.ctorParameters = function () { return [ { type: core_1.Renderer2, }, { type: core_1.ElementRef, }, ]; }; DateValueAccessor.propDecorators = { "onChange": [{ type: core_1.HostListener, args: ["input", ["$event.target.valueAsDate"],] },], "onTouched": [{ type: core_1.HostListener, args: ["blur", [],] },], }; return DateValueAccessor; }()); exports.DateValueAccessor = DateValueAccessor;