@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
JavaScript
/**
* @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=