UNPKG

@true-directive/grid

Version:

Angular Data Grid from Yopsilon.

131 lines (130 loc) 14 kB
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