@true-directive/grid
Version:
Angular Data Grid from Yopsilon.
131 lines (130 loc) • 14 kB
JavaScript
import * as tslib_1 from "tslib";
var DatepickerComponent_1;
/**
* Copyright (c) 2018-2019 Aleksey Melnikov, True Directive Company.
* @link https://truedirective.com/
* @license MIT
*/
import { Component, Input, Renderer2, ElementRef, ViewChild, forwardRef } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { CalendarComponent } from './calendar.component';
import { DropdownBaseComponent } from './dropdown-base.component';
import { MaskDateDirective } from '../mask/mask-date.directive';
import { InternationalizationService } from '../internationalization/internationalization.service';
import { Mask } from '@true-directive/base';
import { Keys } from '@true-directive/base';
/**
* Datepicker component
*/
let DatepickerComponent = DatepickerComponent_1 = class DatepickerComponent extends DropdownBaseComponent {
constructor(intl, _elementRef, _renderer) {
super(_elementRef, _renderer);
this.intl = intl;
this._elementRef = _elementRef;
this._renderer = _renderer;
this._pattern = '';
this.showError = true;
this.inputClass = '';
}
get pattern() {
return this._pattern;
}
set pattern(s) {
this._pattern = s;
this.checkPattern();
}
checkPattern() {
let hasDateComponents = false;
const mask = Mask.maskWithPattern(this.intl, this._pattern);
mask.sections.forEach(section => {
if (section.sectionType.datePart === 'd' ||
section.sectionType.datePart === 'm' ||
section.sectionType.datePart === 'y' ||
section.sectionType.datePart === 'yy' ||
section.sectionType.datePart === 'yyyy') {
hasDateComponents = true;
}
});
this.usePopup = hasDateComponents;
}
getIcon() {
if (!this.usePopup) {
return '';
}
return 'true-icon-calendar-empty';
}
dateClick(e) {
this.popup.closePopup();
}
escape(e) {
this.popup.closePopup();
}
// Overriding this method to send focus in the calendar
focusPopup() {
this.calendar.setFocus();
}
acceptKey(e) {
this.maskDateDirective.keyDown(Keys.generateEvent(this.input.nativeElement, -1, Keys.keyChar(e), e.shiftKey, e.ctrlKey));
}
};
tslib_1.__decorate([
Input('pattern'),
tslib_1.__metadata("design:type", String),
tslib_1.__metadata("design:paramtypes", [String])
], DatepickerComponent.prototype, "pattern", null);
tslib_1.__decorate([
Input('error'),
tslib_1.__metadata("design:type", String)
], DatepickerComponent.prototype, "error", void 0);
tslib_1.__decorate([
Input('showError'),
tslib_1.__metadata("design:type", Boolean)
], DatepickerComponent.prototype, "showError", void 0);
tslib_1.__decorate([
Input('inputClass'),
tslib_1.__metadata("design:type", String)
], DatepickerComponent.prototype, "inputClass", void 0);
tslib_1.__decorate([
ViewChild('calendar', { static: false }),
tslib_1.__metadata("design:type", CalendarComponent)
], DatepickerComponent.prototype, "calendar", void 0);
tslib_1.__decorate([
ViewChild('input', { static: true }),
tslib_1.__metadata("design:type", Object)
], DatepickerComponent.prototype, "input", void 0);
tslib_1.__decorate([
ViewChild('input', { static: true, read: MaskDateDirective }),
tslib_1.__metadata("design:type", MaskDateDirective)
], DatepickerComponent.prototype, "maskDateDirective", void 0);
DatepickerComponent = DatepickerComponent_1 = tslib_1.__decorate([
Component({
selector: 'true-datepicker',
template: "<true-input-wrapper\r\n (btnClick)=\"btnClick($event)\"\r\n class=\"true-datepicker__input\"\r\n [class.true-input_popup-visible]=\"popupVisible\"\r\n [disabled]=\"disabled\"\r\n [error]=\"error\"\r\n [showError]=\"showError\"\r\n [icon]=\"getIcon()\"><input #input\r\n [ngClass]=\"inputClass\"\r\n [true-mask-date]=\"pattern\"\r\n [readonly]=\"disableTextEditor\"\r\n [attr.disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n (blur)=\"inputBlur($event)\"\r\n (focus)=\"inputFocus($event)\"\r\n (mousedown)=\"$event.stopPropagation()\"\r\n (keydown)=\"inputKeyDown($event)\" />\r\n</true-input-wrapper><true-popup #popup (close)=\"popupClose($event)\">\r\n <true-calendar #calendar\r\n *ngIf=\"popupVisible\"\r\n [(ngModel)]=\"value\"\r\n (escape)=\"escape($event)\"\r\n (dateClick)=\"dateClick($event)\">\r\n </true-calendar>\r\n</true-popup>\r\n",
providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => DatepickerComponent_1),
multi: true
}],
styles: [`
:host {
padding: 0;
}
.true-datepicker__input {
width: 100%;
height: 100%;
padding: 0;
margin: 0;
}
input {
box-sizing: border-box;
width: 100%;
margin: 0;
}
`]
}),
tslib_1.__metadata("design:paramtypes", [InternationalizationService,
ElementRef,
Renderer2])
], DatepickerComponent);
export { DatepickerComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdHJ1ZS1kaXJlY3RpdmUvZ3JpZC8iLCJzb3VyY2VzIjpbInNyYy9jb250cm9scy9kYXRlcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7O0VBSUU7QUFDRixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUMsU0FBUyxFQUFFLFVBQVUsRUFFMUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFbkcsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU1Qzs7R0FFRztBQTJCSCxJQUFhLG1CQUFtQiwyQkFBaEMsTUFBYSxtQkFBb0IsU0FBUSxxQkFBcUI7SUE0RTVELFlBQ1ksSUFBaUMsRUFDakMsV0FBdUIsRUFDdkIsU0FBb0I7UUFDNUIsS0FBSyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUh0QixTQUFJLEdBQUosSUFBSSxDQUE2QjtRQUNqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBN0VoQyxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBZ0JkLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFHMUIsZUFBVSxHQUFXLEVBQUUsQ0FBQztJQTREeEIsQ0FBQztJQTVF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QUFDLENBQUM7aUJBcEJSOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JSO0tBS0EsQ0FBQzs2Q0E4RWdCLDJCQUEyQjtRQUNwQixVQUFVO1FBQ1osU0FBUztHQS9FckIsbUJBQW1CLENBa0YvQjtTQWxGWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgQWxla3NleSBNZWxuaWtvdiwgVHJ1ZSBEaXJlY3RpdmUgQ29tcGFueS5cclxuICogQGxpbmsgaHR0cHM6Ly90cnVlZGlyZWN0aXZlLmNvbS9cclxuICogQGxpY2Vuc2UgTUlUXHJcbiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgSG9zdEJpbmRpbmcsIEV2ZW50RW1pdHRlciwgUmVuZGVyZXIyLCBFbGVtZW50UmVmLFxyXG4gICAgICAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgVmlld0NoaWxkLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IFBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi9wb3B1cC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJvcGRvd25CYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9kcm9wZG93bi1iYXNlLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBNYXNrRGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4uL21hc2svbWFzay1kYXRlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEludGVybmF0aW9uYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4uL2ludGVybmF0aW9uYWxpemF0aW9uL2ludGVybmF0aW9uYWxpemF0aW9uLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgTWFzayB9IGZyb20gJ0B0cnVlLWRpcmVjdGl2ZS9iYXNlJztcclxuaW1wb3J0IHsgS2V5cyB9IGZyb20gJ0B0cnVlLWRpcmVjdGl2ZS9iYXNlJztcclxuXHJcbi8qKlxyXG4gKiBEYXRlcGlja2VyIGNvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cnVlLWRhdGVwaWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICAvKiByZW1vdmVkOiAgOmhvc3QgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gLSBpbnZhbGlkIGlPUyByZW5kZXIgKi9cclxuICBzdHlsZXM6IFtgXHJcbiAgICA6aG9zdCB7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICB9XHJcbiAgICAudHJ1ZS1kYXRlcGlja2VyX19pbnB1dCB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dCB7XHJcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcbiAgYF0sXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZXBpY2tlckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlfV1cclxuICB9KVxyXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbXBvbmVudCBleHRlbmRzIERyb3Bkb3duQmFzZUNvbXBvbmVudCB7XHJcblxyXG4gIF9wYXR0ZXJuID0gJyc7XHJcblxyXG4gIEBJbnB1dCgncGF0dGVybicpXHJcbiAgZ2V0IHBhdHRlcm4oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9wYXR0ZXJuO1xyXG4gIH1cclxuXHJcbiAgc2V0IHBhdHRlcm4oczogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9wYXR0ZXJuID0gcztcclxuICAgIHRoaXMuY2hlY2tQYXR0ZXJuKCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoJ2Vycm9yJylcclxuICBlcnJvcjogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoJ3Nob3dFcnJvcicpXHJcbiAgc2hvd0Vycm9yOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCdpbnB1dENsYXNzJylcclxuICBpbnB1dENsYXNzOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQFZpZXdDaGlsZCgnY2FsZW5kYXInLCB7c3RhdGljOiBmYWxzZX0pXHJcbiAgY2FsZW5kYXI6IENhbGVuZGFyQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHtzdGF0aWM6IHRydWV9KVxyXG4gIGlucHV0OiBhbnk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IE1hc2tEYXRlRGlyZWN0aXZlIH0pXHJcbiAgbWFza0RhdGVEaXJlY3RpdmU6IE1hc2tEYXRlRGlyZWN0aXZlO1xyXG5cclxuICBjaGVja1BhdHRlcm4oKSB7XHJcblxyXG4gICAgbGV0IGhhc0RhdGVDb21wb25lbnRzID0gZmFsc2U7XHJcbiAgICBjb25zdCBtYXNrOiBNYXNrID0gTWFzay5tYXNrV2l0aFBhdHRlcm4odGhpcy5pbnRsLCB0aGlzLl9wYXR0ZXJuKTtcclxuXHJcbiAgICBtYXNrLnNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XHJcbiAgICAgIGlmIChzZWN0aW9uLnNlY3Rpb25UeXBlLmRhdGVQYXJ0ID09PSAnZCcgfHxcclxuICAgICAgICAgIHNlY3Rpb24uc2VjdGlvblR5cGUuZGF0ZVBhcnQgPT09ICdtJyB8fFxyXG4gICAgICAgICAgc2VjdGlvbi5zZWN0aW9uVHlwZS5kYXRlUGFydCA9PT0gJ3knIHx8XHJcbiAgICAgICAgICBzZWN0aW9uLnNlY3Rpb25UeXBlLmRhdGVQYXJ0ID09PSAneXknIHx8XHJcbiAgICAgICAgICBzZWN0aW9uLnNlY3Rpb25UeXBlLmRhdGVQYXJ0ID09PSAneXl5eSdcclxuICAgICAgICApIHtcclxuICAgICAgICBoYXNEYXRlQ29tcG9uZW50cyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy51c2VQb3B1cCA9IGhhc0RhdGVDb21wb25lbnRzO1xyXG4gIH1cclxuXHJcbiAgZ2V0SWNvbigpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLnVzZVBvcHVwKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIHJldHVybiAndHJ1ZS1pY29uLWNhbGVuZGFyLWVtcHR5JztcclxuICB9XHJcblxyXG4gIGRhdGVDbGljayhlOiBhbnkpIHtcclxuICAgIHRoaXMucG9wdXAuY2xvc2VQb3B1cCgpO1xyXG4gIH1cclxuXHJcbiAgZXNjYXBlKGU6IGFueSkge1xyXG4gICAgdGhpcy5wb3B1cC5jbG9zZVBvcHVwKCk7XHJcbiAgfVxyXG5cclxuICAvLyBPdmVycmlkaW5nIHRoaXMgbWV0aG9kIHRvIHNlbmQgZm9jdXMgaW4gdGhlIGNhbGVuZGFyXHJcbiAgZm9jdXNQb3B1cCgpIHtcclxuICAgIHRoaXMuY2FsZW5kYXIuc2V0Rm9jdXMoKTtcclxuICB9XHJcblxyXG4gIGFjY2VwdEtleShlOiBhbnkpIHtcclxuICAgIHRoaXMubWFza0RhdGVEaXJlY3RpdmUua2V5RG93bihcclxuICAgICAgS2V5cy5nZW5lcmF0ZUV2ZW50KHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgLTEsIEtleXMua2V5Q2hhcihlKSwgZS5zaGlmdEtleSwgZS5jdHJsS2V5KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIGludGw6IEludGVybmF0aW9uYWxpemF0aW9uU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByb3RlY3RlZCBfcmVuZGVyZXI6IFJlbmRlcmVyMikge1xyXG4gICAgICBzdXBlcihfZWxlbWVudFJlZiwgX3JlbmRlcmVyKTtcclxuICB9XHJcbn1cclxuIl19