adb-shared 2.0.32 → 2.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,19 +1,25 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component } from '@angular/core';
2
+ import { ToastType } from './adb-toast.service';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "./adb-toast.service";
4
5
  import * as i2 from "@angular/common";
5
6
  import * as i3 from "@ngx-translate/core";
6
7
  export class AdbToast {
7
- constructor(toastRef) {
8
- this.toastRef = toastRef;
8
+ constructor(toastService) {
9
+ this.toastService = toastService;
10
+ this.toastType = ToastType;
11
+ this.toastService.$toasts.subscribe(toasts => {
12
+ this.toasts = toasts;
13
+ });
14
+ }
15
+ onRemoveToast(toast) {
16
+ this.toastService.remove(toast);
9
17
  }
10
18
  }
11
19
  /** @nocollapse */ AdbToast.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbToast, deps: [{ token: i1.AdbToastService }], target: i0.ɵɵFactoryTarget.Component });
12
- /** @nocollapse */ AdbToast.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: AdbToast, selector: "ng-component", inputs: { model: "model" }, ngImport: i0, template: " <div #toast (click)=\"toast.remove()\" adb-toast class=\"text-white px-3 pb-3 pt-2 mb-2\" style=\"z-index: 50000;min-width: 15rem;\" [class]=\"'bg-' + model.state\">\r\n <div *ngIf=\"model.header\" class=\"d-flex align-items-center justify-content-between pb-1\">\r\n <div class=\"fw-bold\">{{model.header|translate}}</div>\r\n <button class=\"btn p-0 ms-2 text-white\" (click)=\"toast.remove()\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n <div class=\"d-flex align-items-center justify-content-between mt-1\">\r\n <div> {{model.body|translate}}</div>\r\n <button *ngIf=\"!model.header\" class=\"btn p-0 ms-2 text-white\" (click)=\"toast.remove()\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n </div>", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i3.TranslatePipe } });
20
+ /** @nocollapse */ AdbToast.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: AdbToast, selector: "ng-component", ngImport: i0, template: "<div class=\"position-fixed bottom-0 end-0\" style=\"z-index: 50000;min-width: 15rem;\">\r\n <div class=\"text-white px-3 pb-3 pt-2 mb-2\" *ngFor=\"let toast of toasts\"\r\n [class.bg-success]=\"toast.type===toastType.Success\" [class.bg-info]=\"toast.type===toastType.Info\" [class.bg-danger]=\"toast.type===toastType.Warn\">\r\n <div class=\"d-flex align-items-center justify-content-between pb-1\" *ngIf=\"toast.header\">\r\n <div class=\"fw-bold pb-1\">{{toast.header|translate}}</div>\r\n <button class=\"btn top-0 end-0 btn p-0 ms-2 text-white\" (click)=\"onRemoveToast(toast)\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n <div class=\"d-flex align-items-center justify-content-between mt-1\">\r\n <div>{{toast.message|translate}}</div>\r\n <button *ngIf=\"!toast.header\" class=\"btn p-0 ms-2 text-white\" (click)=\"onRemoveToast(toast)\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n </div>\r\n</div>", directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i3.TranslatePipe } });
13
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbToast, decorators: [{
14
22
  type: Component,
15
- args: [{ template: " <div #toast (click)=\"toast.remove()\" adb-toast class=\"text-white px-3 pb-3 pt-2 mb-2\" style=\"z-index: 50000;min-width: 15rem;\" [class]=\"'bg-' + model.state\">\r\n <div *ngIf=\"model.header\" class=\"d-flex align-items-center justify-content-between pb-1\">\r\n <div class=\"fw-bold\">{{model.header|translate}}</div>\r\n <button class=\"btn p-0 ms-2 text-white\" (click)=\"toast.remove()\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n <div class=\"d-flex align-items-center justify-content-between mt-1\">\r\n <div> {{model.body|translate}}</div>\r\n <button *ngIf=\"!model.header\" class=\"btn p-0 ms-2 text-white\" (click)=\"toast.remove()\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n </div>" }]
16
- }], ctorParameters: function () { return [{ type: i1.AdbToastService }]; }, propDecorators: { model: [{
17
- type: Input
18
- }] } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLXRvYXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJ0ZGF0YS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL2FkYi10b2FzdC9hZGItdG9hc3QudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnRkYXRhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvYWRiLXRvYXN0L2FkYi10b2FzdC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQUtqRCxNQUFNLE9BQU8sUUFBUTtJQUVqQixZQUFtQixRQUF5QjtRQUF6QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtJQUFHLENBQUM7O3dIQUZ2QyxRQUFROzRHQUFSLFFBQVEsZ0ZDTHJCLG15QkFTVTsyRkRKRyxRQUFRO2tCQUhwQixTQUFTOztzR0FJVSxLQUFLO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBZGJUb2FzdFNlcnZpY2UgfSBmcm9tICcuL2FkYi10b2FzdC5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgICB0ZW1wbGF0ZVVybDogJ2FkYi10b2FzdC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRiVG9hc3Qge1xyXG4gICAgQElucHV0KCkgcHVibGljIG1vZGVsOiBUb2FzdE1vZGVsO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIHRvYXN0UmVmOiBBZGJUb2FzdFNlcnZpY2UpIHt9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVG9hc3RNb2RlbCB7XHJcbiAgICBib2R5OiBzdHJpbmc7XHJcbiAgICBoZWFkZXI/OiBzdHJpbmc7XHJcbiAgICBzdGF0ZT86ICdpbmZvJyB8ICdzdWNjZXNzJyB8ICdkYW5nZXInO1xyXG4gICAgdGltZUluTXM/OiBudW1iZXI7XHJcbn1cclxuIiwiICAgIDxkaXYgI3RvYXN0IChjbGljayk9XCJ0b2FzdC5yZW1vdmUoKVwiIGFkYi10b2FzdCBjbGFzcz1cInRleHQtd2hpdGUgcHgtMyBwYi0zIHB0LTIgbWItMlwiIHN0eWxlPVwiei1pbmRleDogNTAwMDA7bWluLXdpZHRoOiAxNXJlbTtcIiBbY2xhc3NdPVwiJ2JnLScgKyBtb2RlbC5zdGF0ZVwiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJtb2RlbC5oZWFkZXJcIiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gcGItMVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctYm9sZFwiPnt7bW9kZWwuaGVhZGVyfHRyYW5zbGF0ZX19PC9kaXY+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gcC0wIG1zLTIgdGV4dC13aGl0ZVwiIChjbGljayk9XCJ0b2FzdC5yZW1vdmUoKVwiPjxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTFcIj5cclxuICAgICAgICAgICAgPGRpdj4ge3ttb2RlbC5ib2R5fHRyYW5zbGF0ZX19PC9kaXY+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhbW9kZWwuaGVhZGVyXCIgY2xhc3M9XCJidG4gcC0wIG1zLTIgdGV4dC13aGl0ZVwiIChjbGljayk9XCJ0b2FzdC5yZW1vdmUoKVwiPjxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+Il19
23
+ args: [{ template: "<div class=\"position-fixed bottom-0 end-0\" style=\"z-index: 50000;min-width: 15rem;\">\r\n <div class=\"text-white px-3 pb-3 pt-2 mb-2\" *ngFor=\"let toast of toasts\"\r\n [class.bg-success]=\"toast.type===toastType.Success\" [class.bg-info]=\"toast.type===toastType.Info\" [class.bg-danger]=\"toast.type===toastType.Warn\">\r\n <div class=\"d-flex align-items-center justify-content-between pb-1\" *ngIf=\"toast.header\">\r\n <div class=\"fw-bold pb-1\">{{toast.header|translate}}</div>\r\n <button class=\"btn top-0 end-0 btn p-0 ms-2 text-white\" (click)=\"onRemoveToast(toast)\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n <div class=\"d-flex align-items-center justify-content-between mt-1\">\r\n <div>{{toast.message|translate}}</div>\r\n <button *ngIf=\"!toast.header\" class=\"btn p-0 ms-2 text-white\" (click)=\"onRemoveToast(toast)\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n </div>\r\n</div>" }]
24
+ }], ctorParameters: function () { return [{ type: i1.AdbToastService }]; } });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLXRvYXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJ0ZGF0YS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL2FkYi10b2FzdC9hZGItdG9hc3QudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnRkYXRhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvYWRiLXRvYXN0L2FkYi10b2FzdC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFpQyxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFJL0UsTUFBTSxPQUFPLFFBQVE7SUFHakIsWUFBbUIsWUFBNkI7UUFBN0IsaUJBQVksR0FBWixZQUFZLENBQWlCO1FBRGhELGNBQVMsR0FBRyxTQUFTLENBQUM7UUFFbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELGFBQWEsQ0FBQyxLQUFtQjtRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDOzt3SEFWUSxRQUFROzRHQUFSLFFBQVEsb0RDTnJCLHcvQkFZTTsyRkROTyxRQUFRO2tCQUhwQixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBZGJUb2FzdFNlcnZpY2UsIFRvYXN0TWVzc2FnZSwgVG9hc3RUeXBlIH0gZnJvbSAnLi9hZGItdG9hc3Quc2VydmljZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gICAgdGVtcGxhdGVVcmw6ICdhZGItdG9hc3QuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkYlRvYXN0IHtcclxuICAgIHRvYXN0czogVG9hc3RNZXNzYWdlW107XHJcbiAgICB0b2FzdFR5cGUgPSBUb2FzdFR5cGU7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdG9hc3RTZXJ2aWNlOiBBZGJUb2FzdFNlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS4kdG9hc3RzLnN1YnNjcmliZSh0b2FzdHMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0cyA9IHRvYXN0cztcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIG9uUmVtb3ZlVG9hc3QodG9hc3Q6IFRvYXN0TWVzc2FnZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnJlbW92ZSh0b2FzdCk7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwicG9zaXRpb24tZml4ZWQgYm90dG9tLTAgZW5kLTBcIiBzdHlsZT1cInotaW5kZXg6IDUwMDAwO21pbi13aWR0aDogMTVyZW07XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC13aGl0ZSBweC0zIHBiLTMgcHQtMiBtYi0yXCIgKm5nRm9yPVwibGV0IHRvYXN0IG9mIHRvYXN0c1wiXHJcbiAgICAgICAgW2NsYXNzLmJnLXN1Y2Nlc3NdPVwidG9hc3QudHlwZT09PXRvYXN0VHlwZS5TdWNjZXNzXCIgW2NsYXNzLmJnLWluZm9dPVwidG9hc3QudHlwZT09PXRvYXN0VHlwZS5JbmZvXCIgW2NsYXNzLmJnLWRhbmdlcl09XCJ0b2FzdC50eXBlPT09dG9hc3RUeXBlLldhcm5cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBwYi0xXCIgKm5nSWY9XCJ0b2FzdC5oZWFkZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LWJvbGQgcGItMVwiPnt7dG9hc3QuaGVhZGVyfHRyYW5zbGF0ZX19PC9kaXY+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gdG9wLTAgZW5kLTAgYnRuIHAtMCBtcy0yIHRleHQtd2hpdGVcIiAoY2xpY2spPVwib25SZW1vdmVUb2FzdCh0b2FzdClcIj48aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT48L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0xXCI+XHJcbiAgICAgICAgICAgIDxkaXY+e3t0b2FzdC5tZXNzYWdlfHRyYW5zbGF0ZX19PC9kaXY+XHJcbiAgICAgICAgICAgIDxidXR0b24gICpuZ0lmPVwiIXRvYXN0LmhlYWRlclwiIGNsYXNzPVwiYnRuIHAtMCBtcy0yIHRleHQtd2hpdGVcIiAoY2xpY2spPVwib25SZW1vdmVUb2FzdCh0b2FzdClcIj48aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT48L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -1,35 +1,43 @@
1
1
  import { Injectable } from "@angular/core";
2
+ import { of, Subject } from "rxjs";
3
+ import { delay } from "rxjs/operators";
2
4
  import { AdbToast } from "./adb-toast";
3
5
  import * as i0 from "@angular/core";
4
6
  export class AdbToastService {
5
7
  constructor(componentFactoryResolver, rendererFactory, appRef, injector) {
6
8
  this.componentFactoryResolver = componentFactoryResolver;
9
+ this.rendererFactory = rendererFactory;
7
10
  this.appRef = appRef;
8
11
  this.injector = injector;
9
- this.renderer = rendererFactory.createRenderer(null, null);
12
+ this.toasts = new Array();
13
+ this.toastsSubject = new Subject();
14
+ this.$toasts = this.toastsSubject.asObservable();
10
15
  }
11
- show(model) {
16
+ add(toastMessage, time = 4000) {
17
+ this.addContainer();
18
+ toastMessage.type = toastMessage.type ? toastMessage.type : ToastType.Success;
19
+ toastMessage.index = this.toasts.length;
20
+ toastMessage.delay = of(toastMessage).pipe(delay(time)).subscribe(toast => {
21
+ this.remove(toast);
22
+ });
23
+ this.toasts.push(toastMessage);
24
+ this.toastsSubject.next(this.toasts);
25
+ }
26
+ remove(toast) {
27
+ this.toasts = this.toasts?.filter(x => x.index !== toast.index);
28
+ this.toastsSubject.next(this.toasts);
29
+ }
30
+ addContainer() {
12
31
  if (!this.container) {
32
+ this.renderer = this.rendererFactory.createRenderer(null, null);
33
+ //create container i top
13
34
  this.container = this.renderer.createElement('div');
14
- this.container.setAttribute('adb-toast-container', '');
15
- this.container.classList.add('position-fixed', 'bottom-0', 'end-0');
16
35
  this.renderer.appendChild(document.body, this.container);
36
+ let componentRef = this.componentFactoryResolver.resolveComponentFactory(AdbToast).create(this.injector);
37
+ this.appRef.attachView(componentRef.hostView);
38
+ const element = componentRef.hostView.rootNodes[0];
39
+ this.container.prepend(element);
17
40
  }
18
- this.createToast(model);
19
- }
20
- createToast(model) {
21
- if (!model.state)
22
- model.state = 'info';
23
- if (!model.timeInMs)
24
- model.timeInMs = 4000;
25
- let componentRef = this.componentFactoryResolver.resolveComponentFactory(AdbToast).create(this.injector);
26
- componentRef.instance.model = model;
27
- this.appRef.attachView(componentRef.hostView);
28
- const element = componentRef.hostView.rootNodes[0];
29
- this.container.prepend(element);
30
- setTimeout(() => {
31
- // element.remove();
32
- }, model.timeInMs);
33
41
  }
34
42
  }
35
43
  /** @nocollapse */ AdbToastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbToastService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.RendererFactory2 }, { token: i0.ApplicationRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -37,4 +45,10 @@ export class AdbToastService {
37
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbToastService, decorators: [{
38
46
  type: Injectable
39
47
  }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.RendererFactory2 }, { type: i0.ApplicationRef }, { type: i0.Injector }]; } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLXRvYXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnRkYXRhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvYWRiLXRvYXN0L2FkYi10b2FzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNkQsVUFBVSxFQUF5QyxNQUFNLGVBQWUsQ0FBQztBQUM3SSxPQUFPLEVBQUUsUUFBUSxFQUFjLE1BQU0sYUFBYSxDQUFDOztBQUduRCxNQUFNLE9BQU8sZUFBZTtJQUt4QixZQUNZLHdCQUFrRCxFQUMxRCxlQUFpQyxFQUN6QixNQUFzQixFQUN0QixRQUFrQjtRQUhsQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBRWxELFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQWlCO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFDO1lBQ2hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM1RDtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFpQjtRQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7WUFDWixLQUFLLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7WUFDZixLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUUxQixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sT0FBTyxHQUFJLFlBQVksQ0FBQyxRQUFpQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFDNUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFaEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLG9CQUFvQjtRQUN4QixDQUFDLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7OytIQXZDUSxlQUFlO21JQUFmLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEVtYmVkZGVkVmlld1JlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIFJlbmRlcmVyMiwgUmVuZGVyZXJGYWN0b3J5MiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFkYlRvYXN0LCBUb2FzdE1vZGVsIH0gZnJvbSBcIi4vYWRiLXRvYXN0XCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBZGJUb2FzdFNlcnZpY2Uge1xyXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMjtcclxuICAgIGRvbUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xyXG4gICAgY29udGFpbmVyOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgICAgICByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIsXHJcbiAgICAgICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcclxuICAgIH1cclxuXHJcbiAgICBzaG93KG1vZGVsOiBUb2FzdE1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRhaW5lcil7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuc2V0QXR0cmlidXRlKCdhZGItdG9hc3QtY29udGFpbmVyJywgJycpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdwb3NpdGlvbi1maXhlZCcsICdib3R0b20tMCcsICdlbmQtMCcpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMuY29udGFpbmVyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY3JlYXRlVG9hc3QobW9kZWwpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlVG9hc3QobW9kZWw6IFRvYXN0TW9kZWwpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIW1vZGVsLnN0YXRlKVxyXG4gICAgICAgICAgICBtb2RlbC5zdGF0ZSA9ICdpbmZvJztcclxuICAgICAgICBpZiAoIW1vZGVsLnRpbWVJbk1zKVxyXG4gICAgICAgICAgICBtb2RlbC50aW1lSW5NcyA9IDQwMDA7XHJcblxyXG4gICAgICAgIGxldCBjb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShBZGJUb2FzdCkuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xyXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5tb2RlbCA9IG1vZGVsO1xyXG4gICAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuICAgICAgICBjb25zdCBlbGVtZW50ID0gKGNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIHRoaXMuY29udGFpbmVyLnByZXBlbmQoZWxlbWVudCk7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAvLyBlbGVtZW50LnJlbW92ZSgpO1xyXG4gICAgICAgIH0sIG1vZGVsLnRpbWVJbk1zKTtcclxuICAgIH1cclxufSJdfQ==
48
+ export var ToastType;
49
+ (function (ToastType) {
50
+ ToastType[ToastType["Info"] = 1] = "Info";
51
+ ToastType[ToastType["Success"] = 2] = "Success";
52
+ ToastType[ToastType["Warn"] = 3] = "Warn";
53
+ })(ToastType || (ToastType = {}));
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLXRvYXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnRkYXRhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvYWRiLXRvYXN0L2FkYi10b2FzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNkQsVUFBVSxFQUF5QyxNQUFNLGVBQWUsQ0FBQztBQUM3SSxPQUFPLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFdkMsTUFBTSxPQUFPLGVBQWU7SUFReEIsWUFDWSx3QkFBa0QsRUFDbEQsZUFBaUMsRUFDakMsTUFBc0IsRUFDdEIsUUFBa0I7UUFIbEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVh0QixXQUFNLEdBQUcsSUFBSSxLQUFLLEVBQWdCLENBQUM7UUFDbkMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBa0IsQ0FBQztRQUN0RCxZQUFPLEdBQStCLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFXeEUsQ0FBQztJQUVELEdBQUcsQ0FBQyxZQUEwQixFQUFFLElBQUksR0FBRyxJQUFJO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixZQUFZLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDOUUsWUFBWSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUN4QyxZQUFZLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFtQjtRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTyxZQUFZO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2hFLHdCQUF3QjtZQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3pELElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QyxNQUFNLE9BQU8sR0FBSSxZQUFZLENBQUMsUUFBaUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFnQixDQUFDO1lBQzVGLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ25DO0lBQ0wsQ0FBQzs7K0hBM0NRLGVBQWU7bUlBQWYsZUFBZTsyRkFBZixlQUFlO2tCQUQzQixVQUFVOztBQXFEWCxNQUFNLENBQU4sSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ2pCLHlDQUFRLENBQUE7SUFDUiwrQ0FBVyxDQUFBO0lBQ1gseUNBQVEsQ0FBQTtBQUNaLENBQUMsRUFKVyxTQUFTLEtBQVQsU0FBUyxRQUlwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEVtYmVkZGVkVmlld1JlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIFJlbmRlcmVyMiwgUmVuZGVyZXJGYWN0b3J5MiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZGVsYXkgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgQWRiVG9hc3QgfSBmcm9tIFwiLi9hZGItdG9hc3RcIjtcclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQWRiVG9hc3RTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgdG9hc3RzID0gbmV3IEFycmF5PFRvYXN0TWVzc2FnZT4oKTtcclxuICAgIHByaXZhdGUgdG9hc3RzU3ViamVjdCA9IG5ldyBTdWJqZWN0PFRvYXN0TWVzc2FnZVtdPigpO1xyXG4gICAgJHRvYXN0czogT2JzZXJ2YWJsZTxUb2FzdE1lc3NhZ2VbXT4gPSB0aGlzLnRvYXN0c1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyO1xyXG4gICAgZG9tRWxlbWVudDogSFRNTEVsZW1lbnQ7XHJcbiAgICBjb250YWluZXI6IGFueTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyLFxyXG4gICAgICAgIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcclxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBhZGQodG9hc3RNZXNzYWdlOiBUb2FzdE1lc3NhZ2UsIHRpbWUgPSA0MDAwKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hZGRDb250YWluZXIoKTtcclxuICAgICAgICB0b2FzdE1lc3NhZ2UudHlwZSA9IHRvYXN0TWVzc2FnZS50eXBlID8gdG9hc3RNZXNzYWdlLnR5cGUgOiBUb2FzdFR5cGUuU3VjY2VzcztcclxuICAgICAgICB0b2FzdE1lc3NhZ2UuaW5kZXggPSB0aGlzLnRvYXN0cy5sZW5ndGg7XHJcbiAgICAgICAgdG9hc3RNZXNzYWdlLmRlbGF5ID0gb2YodG9hc3RNZXNzYWdlKS5waXBlKGRlbGF5KHRpbWUpKS5zdWJzY3JpYmUodG9hc3QgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZSh0b2FzdCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy50b2FzdHMucHVzaCh0b2FzdE1lc3NhZ2UpO1xyXG4gICAgICAgIHRoaXMudG9hc3RzU3ViamVjdC5uZXh0KHRoaXMudG9hc3RzKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmUodG9hc3Q6IFRvYXN0TWVzc2FnZSkge1xyXG4gICAgICAgIHRoaXMudG9hc3RzID0gdGhpcy50b2FzdHM/LmZpbHRlcih4ID0+IHguaW5kZXggIT09IHRvYXN0LmluZGV4KTtcclxuICAgICAgICB0aGlzLnRvYXN0c1N1YmplY3QubmV4dCh0aGlzLnRvYXN0cyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhZGRDb250YWluZXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRhaW5lcikge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyID0gdGhpcy5yZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XHJcbiAgICAgICAgICAgIC8vY3JlYXRlIGNvbnRhaW5lciBpIHRvcFxyXG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuYm9keSwgdGhpcy5jb250YWluZXIpO1xyXG4gICAgICAgICAgICBsZXQgY29tcG9uZW50UmVmID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoQWRiVG9hc3QpLmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcclxuICAgICAgICAgICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gKGNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5wcmVwZW5kKGVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFRvYXN0TWVzc2FnZSB7XHJcbiAgICBoZWFkZXI/OiBzdHJpbmcsXHJcbiAgICBtZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB0eXBlPzogVG9hc3RUeXBlLFxyXG4gICAgaW5kZXg/OiBudW1iZXI7XHJcbiAgICBkZWxheT86IGFueTtcclxufVxyXG5leHBvcnQgZW51bSBUb2FzdFR5cGUge1xyXG4gICAgSW5mbyA9IDEsXHJcbiAgICBTdWNjZXNzID0gMixcclxuICAgIFdhcm4gPSAzXHJcbn0iXX0=
@@ -18,6 +18,7 @@ export class AdbDatePickerDirective {
18
18
  this.subscriptions = new Subscription();
19
19
  this.format = 'yyyy-MM-dd';
20
20
  this.settings = null;
21
+ this.pickOnly = true;
21
22
  //ControlValueAccessor
22
23
  this.onChange = () => { };
23
24
  this.onTouched = () => { };
@@ -35,6 +36,7 @@ export class AdbDatePickerDirective {
35
36
  this.id = this.getId();
36
37
  viewRef.instance.id = this.id;
37
38
  viewRef.instance.selectDate.subscribe((date) => {
39
+ this.elementRef.nativeElement.classList.remove('ng-invalid');
38
40
  this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatDate(date, this.format, this.translate.currentLang));
39
41
  this.onChange(date);
40
42
  this.initialDate = date;
@@ -45,22 +47,32 @@ export class AdbDatePickerDirective {
45
47
  });
46
48
  this.adbDatePickerService.viewRef = viewRef;
47
49
  }
50
+ onKeyup(event) {
51
+ const date = AdbDatePickerDirective.tryParse(event.target.value, this.format);
52
+ if (date) {
53
+ this.onChange(date);
54
+ this.initialDate = date;
55
+ }
56
+ }
48
57
  onHide() {
49
58
  this.adbDatePickerService.viewRef = null;
50
59
  this.viewContainerRef.detach();
51
60
  this.viewContainerRef.clear();
52
61
  }
62
+ onBlur() {
63
+ const date = AdbDatePickerDirective.tryParse(this.elementRef.nativeElement.value, this.format);
64
+ if (!date) {
65
+ this.elementRef.nativeElement.classList.add('ng-invalid');
66
+ }
67
+ else {
68
+ this.elementRef.nativeElement.classList.remove('ng-invalid');
69
+ }
70
+ }
53
71
  handleKeyboardEvent(event) {
54
72
  if (event.key === 'Tab') {
55
73
  this.onHide();
56
74
  }
57
- else if (event.key === 'Backspace') {
58
- this.initialDate = null;
59
- this.renderer.setProperty(this.elementRef.nativeElement, 'value', null);
60
- this.onChange();
61
- this.onHide();
62
- }
63
- else {
75
+ else if (this.pickOnly) {
64
76
  event.preventDefault();
65
77
  }
66
78
  }
@@ -117,12 +129,16 @@ export class AdbDatePickerDirective {
117
129
  return null;
118
130
  }
119
131
  }
132
+ static tryParse(dateString, format) {
133
+ const parsed = parseISO(dateString);
134
+ return isValid(parsed) && dateString?.length === 10 ? parsed : null;
135
+ }
120
136
  getId() {
121
137
  return '' + Math.floor(Math.random() * Date.now());
122
138
  }
123
139
  }
124
140
  /** @nocollapse */ AdbDatePickerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.AdbDatePickerService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Directive });
125
- /** @nocollapse */ AdbDatePickerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: AdbDatePickerDirective, selector: "input[adbDatepicker]", inputs: { format: "format", toLeft: "toLeft", settings: "settings" }, host: { listeners: { "click": "onClick()", "keyup.esc": "onHide()", "keydown": "handleKeyboardEvent($event)", "document:click": "onCheckOutSideClick($event.target)" }, properties: { "autocomplete": "this.autocomplete" } }, providers: [{
141
+ /** @nocollapse */ AdbDatePickerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: AdbDatePickerDirective, selector: "input[adbDatepicker]", inputs: { format: "format", toLeft: "toLeft", settings: "settings", pickOnly: "pickOnly" }, host: { listeners: { "click": "onClick()", "keyup": "onKeyup($event)", "keyup.esc": "onHide()", "blur": "onBlur()", "keydown": "handleKeyboardEvent($event)", "document:click": "onCheckOutSideClick($event.target)" }, properties: { "autocomplete": "this.autocomplete" } }, providers: [{
126
142
  provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => AdbDatePickerDirective)),
127
143
  multi: true
128
144
  }], ngImport: i0 });
@@ -144,12 +160,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
144
160
  type: Input
145
161
  }], settings: [{
146
162
  type: Input
163
+ }], pickOnly: [{
164
+ type: Input
147
165
  }], onClick: [{
148
166
  type: HostListener,
149
167
  args: ['click']
168
+ }], onKeyup: [{
169
+ type: HostListener,
170
+ args: ['keyup', ['$event']]
150
171
  }], onHide: [{
151
172
  type: HostListener,
152
173
  args: ['keyup.esc']
174
+ }], onBlur: [{
175
+ type: HostListener,
176
+ args: ['blur']
153
177
  }], handleKeyboardEvent: [{
154
178
  type: HostListener,
155
179
  args: ['keydown', ['$event']]
@@ -157,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
157
181
  type: HostListener,
158
182
  args: ['document:click', ['$event.target']]
159
183
  }] } });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLWRhdGUtcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9hZGItZGF0ZS1waWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFjLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBa0QsTUFBTSxlQUFlLENBQUM7QUFDcEosT0FBTyxFQUF3QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXhFLE9BQU8sRUFBRSxPQUFPLEVBQVMsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFVckUsTUFBTSxPQUFPLHNCQUFzQjtJQVMvQixZQUNZLGdCQUFrQyxFQUNsQyxRQUFtQixFQUNuQixVQUFzQixFQUN0QixvQkFBMEMsRUFDM0MsU0FBMkI7UUFKMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMzQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWJULGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxXQUFNLEdBQUcsWUFBWSxDQUFDO1FBRXRCLGFBQVEsR0FBeUQsSUFBSSxDQUFDO1FBaUYvRSxzQkFBc0I7UUFDdEIsYUFBUSxHQUFRLEdBQUcs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QUMsT0FBTztnQkF3QnJCLE1BQU07c0JBREwsWUFBWTt1QkFBQyxXQUFXO2dCQVF6QixtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWlCbkMsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQgeyBpc1ZhbGlkLCBwYXJzZSwgcGFyc2VJU08gfSBmcm9tIFwiZGF0ZS1mbnNcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQWRiRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gXCIuL2FkYi1kYXRlLXBpY2tlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQWRiRGF0ZVBpY2tlclNlcnZpY2UgfSBmcm9tIFwiLi9hZGItZGF0ZS1waWNrZXIuc2VydmljZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogYGlucHV0W2FkYkRhdGVwaWNrZXJdYCxcclxuICAgIHByb3ZpZGVyczogW3tcclxuICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQWRiRGF0ZVBpY2tlckRpcmVjdGl2ZSksXHJcbiAgICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGJEYXRlUGlja2VyRGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBIb3N0QmluZGluZygnYXV0b2NvbXBsZXRlJykgYXV0b2NvbXBsZXRlID0gJ29mZic7XHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgICBASW5wdXQoKSBmb3JtYXQgPSAneXl5eS1NTS1kZCc7XHJcbiAgICBASW5wdXQoKSB0b0xlZnQ6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBzZXR0aW5nczogeyBtYXhEYXRlPzogRGF0ZSB8IHN0cmluZywgbWluRGF0ZT86IERhdGUgfCBzdHJpbmcgfSA9IG51bGw7XHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgaW5pdGlhbERhdGU6IERhdGU7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBhZGJEYXRlUGlja2VyU2VydmljZTogQWRiRGF0ZVBpY2tlclNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXHJcbiAgICBvbkNsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmFkYkRhdGVQaWNrZXJTZXJ2aWNlLnZpZXdSZWYpIHtcclxuICAgICAgICAgICAgdGhpcy5hZGJEYXRlUGlja2VyU2VydmljZS52aWV3UmVmLmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgdmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQ8QWRiRGF0ZVBpY2tlckNvbXBvbmVudD4oQWRiRGF0ZVBpY2tlckNvbXBvbmVudCk7XHJcbiAgICAgICAgdmlld1JlZi5pbnN0YW5jZS5zZXR0aW5ncyA9IHRoaXMuc2V0dGluZ3M7XHJcbiAgICAgICAgdmlld1JlZi5pbnN0YW5jZS50b0xlZnQgPSB0aGlzLnRvTGVmdDtcclxuICAgICAgICB2aWV3UmVmLmluc3RhbmNlLmluaXRpYWxEYXRlID0gdGhpcy5pbml0aWFsRGF0ZTtcclxuICAgICAgICB0aGlzLmlkID0gdGhpcy5nZXRJZCgpO1xyXG4gICAgICAgIHZpZXdSZWYuaW5zdGFuY2UuaWQgPSB0aGlzLmlkO1xyXG4gICAgICAgIHZpZXdSZWYuaW5zdGFuY2Uuc2VsZWN0RGF0ZS5zdWJzY3JpYmUoKGRhdGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgZm9ybWF0RGF0ZShkYXRlLCB0aGlzLmZvcm1hdCwgdGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcpKTtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShkYXRlKTtcclxuICAgICAgICAgICAgdGhpcy5pbml0aWFsRGF0ZSA9IGRhdGU7XHJcbiAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdmlld1JlZi5pbnN0YW5jZS5oaWRlLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hZGJEYXRlUGlja2VyU2VydmljZS52aWV3UmVmID0gdmlld1JlZjtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cC5lc2MnKVxyXG4gICAgb25IaWRlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYWRiRGF0ZVBpY2tlclNlcnZpY2Uudmlld1JlZiA9IG51bGw7XHJcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmRldGFjaCgpO1xyXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxyXG4gICAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdUYWInKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbERhdGUgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCBudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSgpO1xyXG4gICAgICAgICAgICB0aGlzLm9uSGlkZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxyXG4gICAgb25DaGVja091dFNpZGVDbGljayh0YXJnZXQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQgPSB0aGlzLmFkYkRhdGVQaWNrZXJTZXJ2aWNlLnZpZXdSZWY/Lmluc3RhbmNlLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCA/PyBudWxsO1xyXG4gICAgICAgIGlmIChuYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGlmIChuYXRpdmVFbGVtZW50LmlkID09PSB0aGlzLmlkKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRhcmdldC5oYXNBdHRyaWJ1dGUoJ2FkYmRhdGVwaWNrZXInKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSBuYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjbGlja2VkSW5zaWRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vQ29udHJvbFZhbHVlQWNjZXNzb3JcclxuICAgIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7IH07XHJcbiAgICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHsgfTtcclxuXHJcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbERhdGUgPSBBZGJEYXRlUGlja2VyRGlyZWN0aXZlLnBhcnNlRGF0ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmluaXRpYWxEYXRlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCBmb3JtYXREYXRlKHRoaXMuaW5pdGlhbERhdGUsIHRoaXMuZm9ybWF0LCB0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0aWFsRGF0ZSA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsICcnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgcGFyc2VEYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKTogRGF0ZSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgaWYgKGlzVmFsaWQocGFyc2VJU08odmFsdWUpKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlSVNPKHZhbHVlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldElkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICcnICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogRGF0ZS5ub3coKSlcclxuICAgIH1cclxufSJdfQ==
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLWRhdGUtcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9hZGItZGF0ZS1waWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFjLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBNEUsTUFBTSxlQUFlLENBQUM7QUFDOUssT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxPQUFPLEVBQVMsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFVckUsTUFBTSxPQUFPLHNCQUFzQjtJQVUvQixZQUNZLGdCQUFrQyxFQUNsQyxRQUFtQixFQUNuQixVQUFzQixFQUN0QixvQkFBMEMsRUFDM0MsU0FBMkI7UUFKMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMzQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWRULGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxXQUFNLEdBQUcsWUFBWSxDQUFDO1FBRXRCLGFBQVEsR0FBeUQsSUFBSSxDQUFDO1FBQ3RFLGFBQVEsR0FBRyxJQUFJLENBQUM7UUErRnpCLHNC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QWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdERhdGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHsgaXNWYWxpZCwgcGFyc2UsIHBhcnNlSVNPIH0gZnJvbSBcImRhdGUtZm5zXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFkYkRhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tIFwiLi9hZGItZGF0ZS1waWNrZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEFkYkRhdGVQaWNrZXJTZXJ2aWNlIH0gZnJvbSBcIi4vYWRiLWRhdGUtcGlja2VyLnNlcnZpY2VcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IGBpbnB1dFthZGJEYXRlcGlja2VyXWAsXHJcbiAgICBwcm92aWRlcnM6IFt7XHJcbiAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFkYkRhdGVQaWNrZXJEaXJlY3RpdmUpLFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRiRGF0ZVBpY2tlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBASG9zdEJpbmRpbmcoJ2F1dG9jb21wbGV0ZScpIGF1dG9jb21wbGV0ZSA9ICdvZmYnO1xyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gICAgQElucHV0KCkgZm9ybWF0ID0gJ3l5eXktTU0tZGQnO1xyXG4gICAgQElucHV0KCkgdG9MZWZ0OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgc2V0dGluZ3M6IHsgbWF4RGF0ZT86IERhdGUgfCBzdHJpbmcsIG1pbkRhdGU/OiBEYXRlIHwgc3RyaW5nIH0gPSBudWxsO1xyXG4gICAgQElucHV0KCkgcGlja09ubHkgPSB0cnVlO1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIGluaXRpYWxEYXRlOiBEYXRlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgYWRiRGF0ZVBpY2tlclNlcnZpY2U6IEFkYkRhdGVQaWNrZXJTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxyXG4gICAgb25DbGljaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5hZGJEYXRlUGlja2VyU2VydmljZS52aWV3UmVmKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRiRGF0ZVBpY2tlclNlcnZpY2Uudmlld1JlZi5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50PEFkYkRhdGVQaWNrZXJDb21wb25lbnQ+KEFkYkRhdGVQaWNrZXJDb21wb25lbnQpO1xyXG4gICAgICAgIHZpZXdSZWYuaW5zdGFuY2Uuc2V0dGluZ3MgPSB0aGlzLnNldHRpbmdzO1xyXG4gICAgICAgIHZpZXdSZWYuaW5zdGFuY2UudG9MZWZ0ID0gdGhpcy50b0xlZnQ7XHJcbiAgICAgICAgdmlld1JlZi5pbnN0YW5jZS5pbml0aWFsRGF0ZSA9IHRoaXMuaW5pdGlhbERhdGU7XHJcbiAgICAgICAgdGhpcy5pZCA9IHRoaXMuZ2V0SWQoKTtcclxuICAgICAgICB2aWV3UmVmLmluc3RhbmNlLmlkID0gdGhpcy5pZDtcclxuICAgICAgICB2aWV3UmVmLmluc3RhbmNlLnNlbGVjdERhdGUuc3Vic2NyaWJlKChkYXRlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ25nLWludmFsaWQnKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgZm9ybWF0RGF0ZShkYXRlLCB0aGlzLmZvcm1hdCwgdGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcpKTtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShkYXRlKTtcclxuICAgICAgICAgICAgdGhpcy5pbml0aWFsRGF0ZSA9IGRhdGU7XHJcbiAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdmlld1JlZi5pbnN0YW5jZS5oaWRlLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hZGJEYXRlUGlja2VyU2VydmljZS52aWV3UmVmID0gdmlld1JlZjtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pIHB1YmxpYyBvbktleXVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IEFkYkRhdGVQaWNrZXJEaXJlY3RpdmUudHJ5UGFyc2UoKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSwgdGhpcy5mb3JtYXQpO1xyXG4gICAgICAgIGlmIChkYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UoZGF0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbERhdGUgPSBkYXRlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cC5lc2MnKVxyXG4gICAgb25IaWRlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYWRiRGF0ZVBpY2tlclNlcnZpY2Uudmlld1JlZiA9IG51bGw7XHJcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmRldGFjaCgpO1xyXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxyXG4gICAgb25CbHVyKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBBZGJEYXRlUGlja2VyRGlyZWN0aXZlLnRyeVBhcnNlKCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSwgdGhpcy5mb3JtYXQpO1xyXG4gICAgICAgIGlmICghZGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCduZy1pbnZhbGlkJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnbmctaW52YWxpZCcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcclxuICAgIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnVGFiJykge1xyXG4gICAgICAgICAgICB0aGlzLm9uSGlkZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLnBpY2tPbmx5KSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxyXG4gICAgb25DaGVja091dFNpZGVDbGljayh0YXJnZXQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQgPSB0aGlzLmFkYkRhdGVQaWNrZXJTZXJ2aWNlLnZpZXdSZWY/Lmluc3RhbmNlLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCA/PyBudWxsO1xyXG4gICAgICAgIGlmIChuYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGlmIChuYXRpdmVFbGVtZW50LmlkID09PSB0aGlzLmlkKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRhcmdldC5oYXNBdHRyaWJ1dGUoJ2FkYmRhdGVwaWNrZXInKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSBuYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjbGlja2VkSW5zaWRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vQ29udHJvbFZhbHVlQWNjZXNzb3JcclxuICAgIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7IH07XHJcbiAgICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHsgfTtcclxuXHJcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbERhdGUgPSBBZGJEYXRlUGlja2VyRGlyZWN0aXZlLnBhcnNlRGF0ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmluaXRpYWxEYXRlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCBmb3JtYXREYXRlKHRoaXMuaW5pdGlhbERhdGUsIHRoaXMuZm9ybWF0LCB0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0aWFsRGF0ZSA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsICcnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgcGFyc2VEYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKTogRGF0ZSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgaWYgKGlzVmFsaWQocGFyc2VJU08odmFsdWUpKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlSVNPKHZhbHVlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgdHJ5UGFyc2UoZGF0ZVN0cmluZzogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZyk6IERhdGUge1xyXG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlSVNPKGRhdGVTdHJpbmcpO1xyXG4gICAgICAgIHJldHVybiBpc1ZhbGlkKHBhcnNlZCkgJiYgZGF0ZVN0cmluZz8ubGVuZ3RoID09PSAxMCA/IHBhcnNlZCA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRJZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnJyArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpXHJcbiAgICB9XHJcbn0iXX0=
@@ -4,13 +4,14 @@ import * as i0 from '@angular/core';
4
4
  import { Injectable, Inject, EventEmitter, Component, Output, Input, Directive, HostListener, NgModule, HostBinding, Pipe, forwardRef } from '@angular/core';
5
5
  import * as i1$1 from '@ngx-translate/core';
6
6
  import { TranslateModule } from '@ngx-translate/core';
7
- import { Subscription, Subject } from 'rxjs';
7
+ import { Subscription, Subject, of } from 'rxjs';
8
8
  import * as i1 from '@angular/common/http';
9
9
  import { HttpClientModule } from '@angular/common/http';
10
10
  import * as i1$2 from '@angular/router';
11
11
  import { RouterModule } from '@angular/router';
12
12
  import { isValid, parseISO, startOfDay, subYears, endOfDay, addYears, getMonth, subMonths, addMonths, isSameYear, startOfMonth, endOfMonth, eachWeekOfInterval, getISOWeek, addDays, eachDayOfInterval, getHours, getMinutes, isSameDay, isSameMonth, isWithinInterval } from 'date-fns';
13
13
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
14
+ import { delay } from 'rxjs/operators';
14
15
 
15
16
  class EnvironmentService {
16
17
  constructor(environment) {
@@ -501,6 +502,7 @@ class AdbDatePickerDirective {
501
502
  this.subscriptions = new Subscription();
502
503
  this.format = 'yyyy-MM-dd';
503
504
  this.settings = null;
505
+ this.pickOnly = true;
504
506
  //ControlValueAccessor
505
507
  this.onChange = () => { };
506
508
  this.onTouched = () => { };
@@ -518,6 +520,7 @@ class AdbDatePickerDirective {
518
520
  this.id = this.getId();
519
521
  viewRef.instance.id = this.id;
520
522
  viewRef.instance.selectDate.subscribe((date) => {
523
+ this.elementRef.nativeElement.classList.remove('ng-invalid');
521
524
  this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatDate(date, this.format, this.translate.currentLang));
522
525
  this.onChange(date);
523
526
  this.initialDate = date;
@@ -528,22 +531,32 @@ class AdbDatePickerDirective {
528
531
  });
529
532
  this.adbDatePickerService.viewRef = viewRef;
530
533
  }
534
+ onKeyup(event) {
535
+ const date = AdbDatePickerDirective.tryParse(event.target.value, this.format);
536
+ if (date) {
537
+ this.onChange(date);
538
+ this.initialDate = date;
539
+ }
540
+ }
531
541
  onHide() {
532
542
  this.adbDatePickerService.viewRef = null;
533
543
  this.viewContainerRef.detach();
534
544
  this.viewContainerRef.clear();
535
545
  }
546
+ onBlur() {
547
+ const date = AdbDatePickerDirective.tryParse(this.elementRef.nativeElement.value, this.format);
548
+ if (!date) {
549
+ this.elementRef.nativeElement.classList.add('ng-invalid');
550
+ }
551
+ else {
552
+ this.elementRef.nativeElement.classList.remove('ng-invalid');
553
+ }
554
+ }
536
555
  handleKeyboardEvent(event) {
537
556
  if (event.key === 'Tab') {
538
557
  this.onHide();
539
558
  }
540
- else if (event.key === 'Backspace') {
541
- this.initialDate = null;
542
- this.renderer.setProperty(this.elementRef.nativeElement, 'value', null);
543
- this.onChange();
544
- this.onHide();
545
- }
546
- else {
559
+ else if (this.pickOnly) {
547
560
  event.preventDefault();
548
561
  }
549
562
  }
@@ -601,12 +614,16 @@ class AdbDatePickerDirective {
601
614
  return null;
602
615
  }
603
616
  }
617
+ static tryParse(dateString, format) {
618
+ const parsed = parseISO(dateString);
619
+ return isValid(parsed) && (dateString === null || dateString === void 0 ? void 0 : dateString.length) === 10 ? parsed : null;
620
+ }
604
621
  getId() {
605
622
  return '' + Math.floor(Math.random() * Date.now());
606
623
  }
607
624
  }
608
625
  /** @nocollapse */ AdbDatePickerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: AdbDatePickerService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Directive });
609
- /** @nocollapse */ AdbDatePickerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: AdbDatePickerDirective, selector: "input[adbDatepicker]", inputs: { format: "format", toLeft: "toLeft", settings: "settings" }, host: { listeners: { "click": "onClick()", "keyup.esc": "onHide()", "keydown": "handleKeyboardEvent($event)", "document:click": "onCheckOutSideClick($event.target)" }, properties: { "autocomplete": "this.autocomplete" } }, providers: [{
626
+ /** @nocollapse */ AdbDatePickerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: AdbDatePickerDirective, selector: "input[adbDatepicker]", inputs: { format: "format", toLeft: "toLeft", settings: "settings", pickOnly: "pickOnly" }, host: { listeners: { "click": "onClick()", "keyup": "onKeyup($event)", "keyup.esc": "onHide()", "blur": "onBlur()", "keydown": "handleKeyboardEvent($event)", "document:click": "onCheckOutSideClick($event.target)" }, properties: { "autocomplete": "this.autocomplete" } }, providers: [{
610
627
  provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => AdbDatePickerDirective)),
611
628
  multi: true
612
629
  }], ngImport: i0 });
@@ -628,12 +645,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
628
645
  type: Input
629
646
  }], settings: [{
630
647
  type: Input
648
+ }], pickOnly: [{
649
+ type: Input
631
650
  }], onClick: [{
632
651
  type: HostListener,
633
652
  args: ['click']
653
+ }], onKeyup: [{
654
+ type: HostListener,
655
+ args: ['keyup', ['$event']]
634
656
  }], onHide: [{
635
657
  type: HostListener,
636
658
  args: ['keyup.esc']
659
+ }], onBlur: [{
660
+ type: HostListener,
661
+ args: ['blur']
637
662
  }], handleKeyboardEvent: [{
638
663
  type: HostListener,
639
664
  args: ['keydown', ['$event']]
@@ -1002,53 +1027,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
1002
1027
  class AdbToastService {
1003
1028
  constructor(componentFactoryResolver, rendererFactory, appRef, injector) {
1004
1029
  this.componentFactoryResolver = componentFactoryResolver;
1030
+ this.rendererFactory = rendererFactory;
1005
1031
  this.appRef = appRef;
1006
1032
  this.injector = injector;
1007
- this.renderer = rendererFactory.createRenderer(null, null);
1033
+ this.toasts = new Array();
1034
+ this.toastsSubject = new Subject();
1035
+ this.$toasts = this.toastsSubject.asObservable();
1036
+ }
1037
+ add(toastMessage, time = 4000) {
1038
+ this.addContainer();
1039
+ toastMessage.type = toastMessage.type ? toastMessage.type : ToastType.Success;
1040
+ toastMessage.index = this.toasts.length;
1041
+ toastMessage.delay = of(toastMessage).pipe(delay(time)).subscribe(toast => {
1042
+ this.remove(toast);
1043
+ });
1044
+ this.toasts.push(toastMessage);
1045
+ this.toastsSubject.next(this.toasts);
1008
1046
  }
1009
- show(model) {
1047
+ remove(toast) {
1048
+ var _a;
1049
+ this.toasts = (_a = this.toasts) === null || _a === void 0 ? void 0 : _a.filter(x => x.index !== toast.index);
1050
+ this.toastsSubject.next(this.toasts);
1051
+ }
1052
+ addContainer() {
1010
1053
  if (!this.container) {
1054
+ this.renderer = this.rendererFactory.createRenderer(null, null);
1055
+ //create container i top
1011
1056
  this.container = this.renderer.createElement('div');
1012
- this.container.setAttribute('adb-toast-container', '');
1013
- this.container.classList.add('position-fixed', 'bottom-0', 'end-0');
1014
1057
  this.renderer.appendChild(document.body, this.container);
1058
+ let componentRef = this.componentFactoryResolver.resolveComponentFactory(AdbToast).create(this.injector);
1059
+ this.appRef.attachView(componentRef.hostView);
1060
+ const element = componentRef.hostView.rootNodes[0];
1061
+ this.container.prepend(element);
1015
1062
  }
1016
- this.createToast(model);
1017
- }
1018
- createToast(model) {
1019
- if (!model.state)
1020
- model.state = 'info';
1021
- if (!model.timeInMs)
1022
- model.timeInMs = 4000;
1023
- let componentRef = this.componentFactoryResolver.resolveComponentFactory(AdbToast).create(this.injector);
1024
- componentRef.instance.model = model;
1025
- this.appRef.attachView(componentRef.hostView);
1026
- const element = componentRef.hostView.rootNodes[0];
1027
- this.container.prepend(element);
1028
- setTimeout(() => {
1029
- // element.remove();
1030
- }, model.timeInMs);
1031
1063
  }
1032
1064
  }
1033
1065
  /** @nocollapse */ AdbToastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbToastService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.RendererFactory2 }, { token: i0.ApplicationRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
1034
1066
  /** @nocollapse */ AdbToastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbToastService });
1035
1067
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbToastService, decorators: [{
1036
1068
  type: Injectable
1037
- }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.RendererFactory2 }, { type: i0.ApplicationRef }, { type: i0.Injector }]; } });
1069
+ }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.RendererFactory2 }, { type: i0.ApplicationRef }, { type: i0.Injector }]; } });
1070
+ var ToastType;
1071
+ (function (ToastType) {
1072
+ ToastType[ToastType["Info"] = 1] = "Info";
1073
+ ToastType[ToastType["Success"] = 2] = "Success";
1074
+ ToastType[ToastType["Warn"] = 3] = "Warn";
1075
+ })(ToastType || (ToastType = {}));
1038
1076
 
1039
1077
  class AdbToast {
1040
- constructor(toastRef) {
1041
- this.toastRef = toastRef;
1078
+ constructor(toastService) {
1079
+ this.toastService = toastService;
1080
+ this.toastType = ToastType;
1081
+ this.toastService.$toasts.subscribe(toasts => {
1082
+ this.toasts = toasts;
1083
+ });
1084
+ }
1085
+ onRemoveToast(toast) {
1086
+ this.toastService.remove(toast);
1042
1087
  }
1043
1088
  }
1044
1089
  /** @nocollapse */ AdbToast.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbToast, deps: [{ token: AdbToastService }], target: i0.ɵɵFactoryTarget.Component });
1045
- /** @nocollapse */ AdbToast.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: AdbToast, selector: "ng-component", inputs: { model: "model" }, ngImport: i0, template: " <div #toast (click)=\"toast.remove()\" adb-toast class=\"text-white px-3 pb-3 pt-2 mb-2\" style=\"z-index: 50000;min-width: 15rem;\" [class]=\"'bg-' + model.state\">\r\n <div *ngIf=\"model.header\" class=\"d-flex align-items-center justify-content-between pb-1\">\r\n <div class=\"fw-bold\">{{model.header|translate}}</div>\r\n <button class=\"btn p-0 ms-2 text-white\" (click)=\"toast.remove()\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n <div class=\"d-flex align-items-center justify-content-between mt-1\">\r\n <div> {{model.body|translate}}</div>\r\n <button *ngIf=\"!model.header\" class=\"btn p-0 ms-2 text-white\" (click)=\"toast.remove()\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n </div>", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1$1.TranslatePipe } });
1090
+ /** @nocollapse */ AdbToast.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: AdbToast, selector: "ng-component", ngImport: i0, template: "<div class=\"position-fixed bottom-0 end-0\" style=\"z-index: 50000;min-width: 15rem;\">\r\n <div class=\"text-white px-3 pb-3 pt-2 mb-2\" *ngFor=\"let toast of toasts\"\r\n [class.bg-success]=\"toast.type===toastType.Success\" [class.bg-info]=\"toast.type===toastType.Info\" [class.bg-danger]=\"toast.type===toastType.Warn\">\r\n <div class=\"d-flex align-items-center justify-content-between pb-1\" *ngIf=\"toast.header\">\r\n <div class=\"fw-bold pb-1\">{{toast.header|translate}}</div>\r\n <button class=\"btn top-0 end-0 btn p-0 ms-2 text-white\" (click)=\"onRemoveToast(toast)\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n <div class=\"d-flex align-items-center justify-content-between mt-1\">\r\n <div>{{toast.message|translate}}</div>\r\n <button *ngIf=\"!toast.header\" class=\"btn p-0 ms-2 text-white\" (click)=\"onRemoveToast(toast)\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n </div>\r\n</div>", directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1$1.TranslatePipe } });
1046
1091
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbToast, decorators: [{
1047
1092
  type: Component,
1048
- args: [{ template: " <div #toast (click)=\"toast.remove()\" adb-toast class=\"text-white px-3 pb-3 pt-2 mb-2\" style=\"z-index: 50000;min-width: 15rem;\" [class]=\"'bg-' + model.state\">\r\n <div *ngIf=\"model.header\" class=\"d-flex align-items-center justify-content-between pb-1\">\r\n <div class=\"fw-bold\">{{model.header|translate}}</div>\r\n <button class=\"btn p-0 ms-2 text-white\" (click)=\"toast.remove()\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n <div class=\"d-flex align-items-center justify-content-between mt-1\">\r\n <div> {{model.body|translate}}</div>\r\n <button *ngIf=\"!model.header\" class=\"btn p-0 ms-2 text-white\" (click)=\"toast.remove()\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n </div>" }]
1049
- }], ctorParameters: function () { return [{ type: AdbToastService }]; }, propDecorators: { model: [{
1050
- type: Input
1051
- }] } });
1093
+ args: [{ template: "<div class=\"position-fixed bottom-0 end-0\" style=\"z-index: 50000;min-width: 15rem;\">\r\n <div class=\"text-white px-3 pb-3 pt-2 mb-2\" *ngFor=\"let toast of toasts\"\r\n [class.bg-success]=\"toast.type===toastType.Success\" [class.bg-info]=\"toast.type===toastType.Info\" [class.bg-danger]=\"toast.type===toastType.Warn\">\r\n <div class=\"d-flex align-items-center justify-content-between pb-1\" *ngIf=\"toast.header\">\r\n <div class=\"fw-bold pb-1\">{{toast.header|translate}}</div>\r\n <button class=\"btn top-0 end-0 btn p-0 ms-2 text-white\" (click)=\"onRemoveToast(toast)\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n <div class=\"d-flex align-items-center justify-content-between mt-1\">\r\n <div>{{toast.message|translate}}</div>\r\n <button *ngIf=\"!toast.header\" class=\"btn p-0 ms-2 text-white\" (click)=\"onRemoveToast(toast)\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n </div>\r\n</div>" }]
1094
+ }], ctorParameters: function () { return [{ type: AdbToastService }]; } });
1052
1095
 
1053
1096
  class AdbToastModule {
1054
1097
  }
@@ -1073,5 +1116,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
1073
1116
  * Generated bundle index. Do not edit.
1074
1117
  */
1075
1118
 
1076
- export { ADBHeaderComponent, ADBHeaderModule, AdbConfirmModal, AdbDatePickerComponent, AdbDatePickerDirective, AdbDatePickerModule, AdbDirectivesModule, AdbDropdownDirective, AdbDropdownModule, AdbModalModule, AdbModalService, AdbPagersModule, AdbPipesModule, AdbToast, AdbToastModule, AdbToastService, ClickOutsideDirective, FileUploadDirective, FocusDirective, HighlightPipe, InfiniteScrollComponent, LocaleDatePipe, NumberSpacingPipe, PagerComponent };
1119
+ export { ADBHeaderComponent, ADBHeaderModule, AdbConfirmModal, AdbDatePickerComponent, AdbDatePickerDirective, AdbDatePickerModule, AdbDirectivesModule, AdbDropdownDirective, AdbDropdownModule, AdbModalModule, AdbModalService, AdbPagersModule, AdbPipesModule, AdbToast, AdbToastModule, AdbToastService, ClickOutsideDirective, FileUploadDirective, FocusDirective, HighlightPipe, InfiniteScrollComponent, LocaleDatePipe, NumberSpacingPipe, PagerComponent, ToastType };
1077
1120
  //# sourceMappingURL=adb-shared.mjs.map