UNPKG

@asi-ngtools/lib

Version:

This project is a little components library, simple to use, which will help you to simplify your project.

197 lines (196 loc) 14.9 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { AsiCalendarComponent } from './../asi-calendar/asi-calendar.component'; import { DefaultControlValueAccessor } from './../common/default-control-value-accessor'; import { NG_VALUE_ACCESSOR, FormControl } from '@angular/forms'; import { Component, forwardRef, Input, ElementRef, ViewChild, Renderer2 } from '@angular/core'; import moment from 'moment'; export class AsiDatePickerComponent extends DefaultControlValueAccessor { /** * @param {?} renderer * @param {?} elementRef */ constructor(renderer, elementRef) { super(); this.renderer = renderer; this.elementRef = elementRef; /** * Label position */ this.labelPosition = 'top'; /** * placeholder if not null else will be the date display pattern */ this.placeholder = null; /** * date display pattern */ this.pattern = 'DD/MM/YYYY'; /** * open automatically when the input is focused */ this.autoOpen = true; this.inputControl = new FormControl(); } /** * @return {?} */ ngOnInit() { this.renderer.addClass(this.elementRef.nativeElement, 'label-' + this.labelPosition); if (this.placeholder == null) { this.placeholder = this.pattern.toLowerCase(); } } /** * @return {?} */ ngAfterViewInit() { this.inputControl.valueChanges.subscribe((val) => { if (val === '' || val == null) { this.value = null; } else { /** @type {?} */ let momentTest = moment.utc(val, this.pattern); if (momentTest.isValid()) { if (val.length === this.pattern.length) { this.value = momentTest.toDate(); } else { this.value = { error: 'Invalid_Date', value: val }; } } else { this.value = { error: 'Invalid_Date', value: val }; } } }); } /** * @return {?} */ openCalendar() { if (this.autoOpen) { this.calendarElement.openCalendar(); } } /** * @param {?} date * @return {?} */ onDatePicked(date) { /** @type {?} */ let formattedValue = moment(date).format(this.pattern); this.inputControl.setValue(formattedValue); } /** * @param {?} value * @return {?} */ writeValue(value) { if (value != null) { /** @type {?} */ let momentValue = moment.utc(value); this._value = momentValue.toDate(); /** @type {?} */ let formattedValue = momentValue.format(this.pattern); this.inputControl.setValue(formattedValue, { emitEvent: false }); } else { this._value = value; this.inputControl.setValue(null, { emitEvent: false }); } } } AsiDatePickerComponent.decorators = [ { type: Component, args: [{ selector: 'asi-datepicker', host: { 'class': 'asi-component asi-datepicker' }, template: "<label class=\"input-label\" *ngIf=\"label != null\">{{label | translate}}</label>\n<div class=\"asi-datepicker-container\">\n <input #input [attr.disabled]=\"disabled ? '' : null\" class=\"asi-focus-error\" [placeholder]=\"placeholder\"\n (click)=\"openCalendar()\" [formControl]=\"inputControl\" />\n <asi-calendar #calendar [relativeTo]=\"inputElement\" [disableDayOfWeek]=\"disableDayOfWeek\" [disabled]=\"disabled\"\n [(ngModel)]=\"value\" [minDate]=\"minDate\" [maxDate]=\"maxDate\" (onDatePicked)=\"onDatePicked($event)\"></asi-calendar>\n</div>\n", providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => AsiDatePickerComponent), multi: true } ] }] } ]; /** @nocollapse */ AsiDatePickerComponent.ctorParameters = () => [ { type: Renderer2 }, { type: ElementRef } ]; AsiDatePickerComponent.propDecorators = { label: [{ type: Input }], labelPosition: [{ type: Input }], placeholder: [{ type: Input }], pattern: [{ type: Input }], minDate: [{ type: Input }], maxDate: [{ type: Input }], autoOpen: [{ type: Input }], disableDayOfWeek: [{ type: Input }], inputElement: [{ type: ViewChild, args: ['input',] }], calendarElement: [{ type: ViewChild, args: ['calendar',] }] }; if (false) { /** * Label to display (is translated) * @type {?} */ AsiDatePickerComponent.prototype.label; /** * Label position * @type {?} */ AsiDatePickerComponent.prototype.labelPosition; /** * placeholder if not null else will be the date display pattern * @type {?} */ AsiDatePickerComponent.prototype.placeholder; /** * date display pattern * @type {?} */ AsiDatePickerComponent.prototype.pattern; /** * min date available * @type {?} */ AsiDatePickerComponent.prototype.minDate; /** * max date available * @type {?} */ AsiDatePickerComponent.prototype.maxDate; /** * open automatically when the input is focused * @type {?} */ AsiDatePickerComponent.prototype.autoOpen; /** * allow you to disable day of week exemple [disableDayOfWeek]="[1, 2]"" while disabled monday and tusday * @type {?} */ AsiDatePickerComponent.prototype.disableDayOfWeek; /** @type {?} */ AsiDatePickerComponent.prototype.inputControl; /** @type {?} */ AsiDatePickerComponent.prototype.inputElement; /** @type {?} */ AsiDatePickerComponent.prototype.calendarElement; /** @type {?} */ AsiDatePickerComponent.prototype.renderer; /** @type {?} */ AsiDatePickerComponent.prototype.elementRef; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFzaS1uZ3Rvb2xzL2xpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FzaS1kYXRlcGlja2VyL2FzaS1kYXRlcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDekYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQXlCLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEgsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBYzVCLE1BQU0sNkJBQThCLFNBQVEsMkJBQTJCOzs7OztJQTRCckUsWUFBb0IsUUFBbUIsRUFBVSxVQUFzQjtRQUNyRSxLQUFLLEVBQUUsQ0FBQztRQURVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFZOzs7OzZCQXZCd0IsS0FBSzs7OzsyQkFFN0UsSUFBSTs7Ozt1QkFHUixZQUFZOzs7O3dCQVFYLElBQUk7NEJBS1QsSUFBSSxXQUFXLEVBQUU7S0FPL0I7Ozs7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcs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S0FBSzswQkFFTCxLQUFLO3NCQUdMLEtBQUs7c0JBR0wsS0FBSztzQkFFTCxLQUFLO3VCQUdMLEtBQUs7K0JBR0wsS0FBSzsyQkFJTCxTQUFTLFNBQUMsT0FBTzs4QkFDakIsU0FBUyxTQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc2lDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vLi4vYXNpLWNhbGVuZGFyL2FzaS1jYWxlbmRhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZWZhdWx0Q29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICcuLy4uL2NvbW1vbi9kZWZhdWx0LWNvbnRyb2wtdmFsdWUtYWNjZXNzb3InO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgVmlld0NoaWxkLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXNpLWRhdGVwaWNrZXInLFxyXG4gIGhvc3Q6IHsgJ2NsYXNzJzogJ2FzaS1jb21wb25lbnQgYXNpLWRhdGVwaWNrZXInIH0sXHJcbiAgdGVtcGxhdGVVcmw6ICdhc2ktZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBc2lEYXRlUGlja2VyQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc2lEYXRlUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgRGVmYXVsdENvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgLyoqIExhYmVsIHRvIGRpc3BsYXkgKGlzIHRyYW5zbGF0ZWQpICovXHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcclxuICAvKiogTGFiZWwgcG9zaXRpb24gKi9cclxuICBASW5wdXQoKSBsYWJlbFBvc2l0aW9uOiAndG9wJyB8ICdsZWZ0JyB8ICdyaWdodCcgfCAnYm90dG9tJyB8ICdib3R0b20tY2VudGVyJyB8ICd0b3AtY2VudGVyJyA9ICd0b3AnO1xyXG4gIC8qKiBwbGFjZWhvbGRlciBpZiBub3QgbnVsbCBlbHNlIHdpbGwgYmUgdGhlIGRhdGUgZGlzcGxheSBwYXR0ZXJuICovXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSBudWxsO1xyXG5cclxuICAvKiogZGF0ZSBkaXNwbGF5IHBhdHRlcm4gKi9cclxuICBASW5wdXQoKSBwYXR0ZXJuID0gJ0REL01NL1lZWVknO1xyXG5cclxuICAvKiogbWluIGRhdGUgYXZhaWxhYmxlICovXHJcbiAgQElucHV0KCkgbWluRGF0ZTogRGF0ZTtcclxuICAvKiogbWF4IGRhdGUgYXZhaWxhYmxlICovXHJcbiAgQElucHV0KCkgbWF4RGF0ZTogRGF0ZTtcclxuXHJcbiAgLyoqIG9wZW4gYXV0b21hdGljYWxseSB3aGVuIHRoZSBpbnB1dCBpcyBmb2N1c2VkKi9cclxuICBASW5wdXQoKSBhdXRvT3BlbiA9IHRydWU7XHJcblxyXG4gIC8qKiBhbGxvdyB5b3UgdG8gZGlzYWJsZSBkYXkgb2Ygd2VlayBleGVtcGxlIFtkaXNhYmxlRGF5T2ZXZWVrXT1cIlsxLCAyXVwiXCIgd2hpbGUgZGlzYWJsZWQgbW9uZGF5IGFuZCB0dXNkYXkgKi9cclxuICBASW5wdXQoKSBkaXNhYmxlRGF5T2ZXZWVrOiBudW1iZXIgfCBBcnJheTxudW1iZXI+O1xyXG5cclxuICBpbnB1dENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnY2FsZW5kYXInKSBjYWxlbmRhckVsZW1lbnQ6IEFzaUNhbGVuZGFyQ29tcG9uZW50O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2xhYmVsLScgKyB0aGlzLmxhYmVsUG9zaXRpb24pO1xyXG4gICAgaWYgKHRoaXMucGxhY2Vob2xkZXIgPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy5wYXR0ZXJuLnRvTG93ZXJDYXNlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWwpID0+IHtcclxuICAgICAgaWYgKHZhbCA9PT0gJycgfHwgdmFsID09IG51bGwpIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsZXQgbW9tZW50VGVzdCA9IG1vbWVudC51dGModmFsLCB0aGlzLnBhdHRlcm4pO1xyXG4gICAgICAgIGlmIChtb21lbnRUZXN0LmlzVmFsaWQoKSkge1xyXG4gICAgICAgICAgaWYgKHZhbC5sZW5ndGggPT09IHRoaXMucGF0dGVybi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG1vbWVudFRlc3QudG9EYXRlKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0ge1xyXG4gICAgICAgICAgICAgIGVycm9yOiAnSW52YWxpZF9EYXRlJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogdmFsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudmFsdWUgPSB7XHJcbiAgICAgICAgICAgIGVycm9yOiAnSW52YWxpZF9EYXRlJyxcclxuICAgICAgICAgICAgdmFsdWU6IHZhbFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3BlbkNhbGVuZGFyKCkge1xyXG4gICAgaWYgKHRoaXMuYXV0b09wZW4pIHtcclxuICAgICAgdGhpcy5jYWxlbmRhckVsZW1lbnQub3BlbkNhbGVuZGFyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkRhdGVQaWNrZWQoZGF0ZTogRGF0ZSkge1xyXG4gICAgbGV0IGZvcm1hdHRlZFZhbHVlID0gbW9tZW50KGRhdGUpLmZvcm1hdCh0aGlzLnBhdHRlcm4pO1xyXG4gICAgdGhpcy5pbnB1dENvbnRyb2wuc2V0VmFsdWUoZm9ybWF0dGVkVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSkge1xyXG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcclxuICAgICAgbGV0IG1vbWVudFZhbHVlID0gbW9tZW50LnV0Yyh2YWx1ZSk7XHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gbW9tZW50VmFsdWUudG9EYXRlKCk7XHJcbiAgICAgIGxldCBmb3JtYXR0ZWRWYWx1ZSA9IG1vbWVudFZhbHVlLmZvcm1hdCh0aGlzLnBhdHRlcm4pO1xyXG4gICAgICB0aGlzLmlucHV0Q29udHJvbC5zZXRWYWx1ZShmb3JtYXR0ZWRWYWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5pbnB1dENvbnRyb2wuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=