UNPKG

@asi-ngtools/lib

Version:

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

216 lines (215 loc) 15.9 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; 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'; var AsiDatePickerComponent = /** @class */ (function (_super) { tslib_1.__extends(AsiDatePickerComponent, _super); function AsiDatePickerComponent(renderer, elementRef) { var _this = _super.call(this) || this; _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 _this; } /** * @return {?} */ AsiDatePickerComponent.prototype.ngOnInit = /** * @return {?} */ function () { this.renderer.addClass(this.elementRef.nativeElement, 'label-' + this.labelPosition); if (this.placeholder == null) { this.placeholder = this.pattern.toLowerCase(); } }; /** * @return {?} */ AsiDatePickerComponent.prototype.ngAfterViewInit = /** * @return {?} */ function () { var _this = this; this.inputControl.valueChanges.subscribe(function (val) { if (val === '' || val == null) { _this.value = null; } else { /** @type {?} */ var 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 {?} */ AsiDatePickerComponent.prototype.openCalendar = /** * @return {?} */ function () { if (this.autoOpen) { this.calendarElement.openCalendar(); } }; /** * @param {?} date * @return {?} */ AsiDatePickerComponent.prototype.onDatePicked = /** * @param {?} date * @return {?} */ function (date) { /** @type {?} */ var formattedValue = moment(date).format(this.pattern); this.inputControl.setValue(formattedValue); }; /** * @param {?} value * @return {?} */ AsiDatePickerComponent.prototype.writeValue = /** * @param {?} value * @return {?} */ function (value) { if (value != null) { /** @type {?} */ var momentValue = moment.utc(value); this._value = momentValue.toDate(); /** @type {?} */ var 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(function () { return AsiDatePickerComponent; }), multi: true } ] }] } ]; /** @nocollapse */ AsiDatePickerComponent.ctorParameters = function () { return [ { 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',] }] }; return AsiDatePickerComponent; }(DefaultControlValueAccessor)); export { AsiDatePickerComponent }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFzaS1uZ3Rvb2xzL2xpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FzaS1kYXRlcGlja2VyL2FzaS1kYXRlcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUF5QixTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRILE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7SUFjZ0Isa0RBQTJCO0lBNEJyRSxnQ0FBb0IsUUFBbUIsRUFBVSxVQUFzQjtRQUF2RSxZQUNFLGlCQUFPLFNBQ1I7UUFGbUIsY0FBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLGdCQUFVLEdBQVYsVUFBVSxDQUFZOzs7OzhCQXZCd0IsS0FBSzs7Ozs0QkFFN0UsSUFBSTs7Ozt3QkFHUixZQUFZOzs7O3lCQVFYLElBQUk7NkJBS1QsSUFBSSxXQUFXLEVBQUU7O0tBTy9COzs7O0lBRUQseUNBQVE7OztJQUFSO1FBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxD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b0YsU0FBUztnQkFBdkQsVUFBVTs7O3dCQW1COUMsS0FBSztnQ0FFTCxLQUFLOzhCQUVMLEtBQUs7MEJBR0wsS0FBSzswQkFHTCxLQUFLOzBCQUVMLEtBQUs7MkJBR0wsS0FBSzttQ0FHTCxLQUFLOytCQUlMLFNBQVMsU0FBQyxPQUFPO2tDQUNqQixTQUFTLFNBQUMsVUFBVTs7aUNBN0N2QjtFQW1CNEMsMkJBQTJCO1NBQTFELHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzaUNhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi8uLi9hc2ktY2FsZW5kYXIvYXNpLWNhbGVuZGFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERlZmF1bHRDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4vLi4vY29tbW9uL2RlZmF1bHQtY29udHJvbC12YWx1ZS1hY2Nlc3Nvcic7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgRWxlbWVudFJlZiwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBWaWV3Q2hpbGQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhc2ktZGF0ZXBpY2tlcicsXHJcbiAgaG9zdDogeyAnY2xhc3MnOiAnYXNpLWNvbXBvbmVudCBhc2ktZGF0ZXBpY2tlcicgfSxcclxuICB0ZW1wbGF0ZVVybDogJ2FzaS1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFzaURhdGVQaWNrZXJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFzaURhdGVQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBEZWZhdWx0Q29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICAvKiogTGFiZWwgdG8gZGlzcGxheSAoaXMgdHJhbnNsYXRlZCkgKi9cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gIC8qKiBMYWJlbCBwb3NpdGlvbiAqL1xyXG4gIEBJbnB1dCgpIGxhYmVsUG9zaXRpb246ICd0b3AnIHwgJ2xlZnQnIHwgJ3JpZ2h0JyB8ICdib3R0b20nIHwgJ2JvdHRvbS1jZW50ZXInIHwgJ3RvcC1jZW50ZXInID0gJ3RvcCc7XHJcbiAgLyoqIHBsYWNlaG9sZGVyIGlmIG5vdCBudWxsIGVsc2Ugd2lsbCBiZSB0aGUgZGF0ZSBkaXNwbGF5IHBhdHRlcm4gKi9cclxuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9IG51bGw7XHJcblxyXG4gIC8qKiBkYXRlIGRpc3BsYXkgcGF0dGVybiAqL1xyXG4gIEBJbnB1dCgpIHBhdHRlcm4gPSAnREQvTU0vWVlZWSc7XHJcblxyXG4gIC8qKiBtaW4gZGF0ZSBhdmFpbGFibGUgKi9cclxuICBASW5wdXQoKSBtaW5EYXRlOiBEYXRlO1xyXG4gIC8qKiBtYXggZGF0ZSBhdmFpbGFibGUgKi9cclxuICBASW5wdXQoKSBtYXhEYXRlOiBEYXRlO1xyXG5cclxuICAvKiogb3BlbiBhdXRvbWF0aWNhbGx5IHdoZW4gdGhlIGlucHV0IGlzIGZvY3VzZWQqL1xyXG4gIEBJbnB1dCgpIGF1dG9PcGVuID0gdHJ1ZTtcclxuXHJcbiAgLyoqIGFsbG93IHlvdSB0byBkaXNhYmxlIGRheSBvZiB3ZWVrIGV4ZW1wbGUgW2Rpc2FibGVEYXlPZldlZWtdPVwiWzEsIDJdXCJcIiB3aGlsZSBkaXNhYmxlZCBtb25kYXkgYW5kIHR1c2RheSAqL1xyXG4gIEBJbnB1dCgpIGRpc2FibGVEYXlPZldlZWs6IG51bWJlciB8IEFycmF5PG51bWJlcj47XHJcblxyXG4gIGlucHV0Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG5cclxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0RWxlbWVudDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdjYWxlbmRhcicpIGNhbGVuZGFyRWxlbWVudDogQXNpQ2FsZW5kYXJDb21wb25lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbGFiZWwtJyArIHRoaXMubGFiZWxQb3NpdGlvbik7XHJcbiAgICBpZiAodGhpcy5wbGFjZWhvbGRlciA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnBhdHRlcm4udG9Mb3dlckNhc2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuaW5wdXRDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbCkgPT4ge1xyXG4gICAgICBpZiAodmFsID09PSAnJyB8fCB2YWwgPT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBtb21lbnRUZXN0ID0gbW9tZW50LnV0Yyh2YWwsIHRoaXMucGF0dGVybik7XHJcbiAgICAgICAgaWYgKG1vbWVudFRlc3QuaXNWYWxpZCgpKSB7XHJcbiAgICAgICAgICBpZiAodmFsLmxlbmd0aCA9PT0gdGhpcy5wYXR0ZXJuLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbW9tZW50VGVzdC50b0RhdGUoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB7XHJcbiAgICAgICAgICAgICAgZXJyb3I6ICdJbnZhbGlkX0RhdGUnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiB2YWxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy52YWx1ZSA9IHtcclxuICAgICAgICAgICAgZXJyb3I6ICdJbnZhbGlkX0RhdGUnLFxyXG4gICAgICAgICAgICB2YWx1ZTogdmFsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuQ2FsZW5kYXIoKSB7XHJcbiAgICBpZiAodGhpcy5hdXRvT3Blbikge1xyXG4gICAgICB0aGlzLmNhbGVuZGFyRWxlbWVudC5vcGVuQ2FsZW5kYXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRGF0ZVBpY2tlZChkYXRlOiBEYXRlKSB7XHJcbiAgICBsZXQgZm9ybWF0dGVkVmFsdWUgPSBtb21lbnQoZGF0ZSkuZm9ybWF0KHRoaXMucGF0dGVybik7XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbC5zZXRWYWx1ZShmb3JtYXR0ZWRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlKSB7XHJcbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICBsZXQgbW9tZW50VmFsdWUgPSBtb21lbnQudXRjKHZhbHVlKTtcclxuICAgICAgdGhpcy5fdmFsdWUgPSBtb21lbnRWYWx1ZS50b0RhdGUoKTtcclxuICAgICAgbGV0IGZvcm1hdHRlZFZhbHVlID0gbW9tZW50VmFsdWUuZm9ybWF0KHRoaXMucGF0dGVybik7XHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLnNldFZhbHVlKGZvcm1hdHRlZFZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgICB0aGlzLmlucHV0Q29udHJvbC5zZXRWYWx1ZShudWxsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==