@recursyve/nice-ui-kit.v2 13.2.0-beta.110 → 13.2.0-beta.112

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.
Files changed (36) hide show
  1. package/esm2020/lib/components/date-range-picker/components/header/header.component.mjs +57 -0
  2. package/esm2020/lib/components/date-range-picker/components/range-preset/range-preset.component.mjs +107 -0
  3. package/esm2020/lib/components/date-range-picker/date-range-picker.component.mjs +74 -0
  4. package/esm2020/lib/components/date-range-picker/date-range-picker.module.mjs +58 -0
  5. package/esm2020/lib/components/date-range-picker/index.mjs +2 -0
  6. package/esm2020/lib/components/date-range-picker/providers/date-range-picker.service.mjs +17 -0
  7. package/esm2020/lib/components/date-range-picker/public-api.mjs +3 -0
  8. package/esm2020/lib/components/navigation/directives/show-hint.directive.mjs +164 -0
  9. package/esm2020/lib/components/navigation/navigation.module.mjs +9 -3
  10. package/esm2020/lib/components/navigation/navigation.types.mjs +1 -1
  11. package/esm2020/lib/components/navigation/pipes/should-show-hint.pipe.mjs +32 -0
  12. package/esm2020/lib/components/navigation/providers/hint.resolver.mjs +3 -0
  13. package/esm2020/lib/components/navigation/vertical/components/basic/basic.component.mjs +6 -4
  14. package/esm2020/lib/components/navigation/vertical/components/collapsable/collapsable.component.mjs +5 -4
  15. package/esm2020/lib/components/public-api.mjs +2 -1
  16. package/fesm2015/recursyve-nice-ui-kit.v2.mjs +4203 -3748
  17. package/fesm2015/recursyve-nice-ui-kit.v2.mjs.map +1 -1
  18. package/fesm2020/recursyve-nice-ui-kit.v2.mjs +4292 -3841
  19. package/fesm2020/recursyve-nice-ui-kit.v2.mjs.map +1 -1
  20. package/lib/components/date-range-picker/components/header/header.component.d.ts +20 -0
  21. package/lib/components/date-range-picker/components/range-preset/range-preset.component.d.ts +23 -0
  22. package/lib/components/date-range-picker/date-range-picker.component.d.ts +26 -0
  23. package/lib/components/date-range-picker/date-range-picker.module.d.ts +18 -0
  24. package/lib/components/date-range-picker/index.d.ts +1 -0
  25. package/lib/components/date-range-picker/providers/date-range-picker.service.d.ts +8 -0
  26. package/lib/components/date-range-picker/public-api.d.ts +2 -0
  27. package/lib/components/navigation/directives/show-hint.directive.d.ts +34 -0
  28. package/lib/components/navigation/navigation.module.d.ts +12 -10
  29. package/lib/components/navigation/navigation.types.d.ts +6 -0
  30. package/lib/components/navigation/pipes/should-show-hint.pipe.d.ts +12 -0
  31. package/lib/components/navigation/providers/hint.resolver.d.ts +4 -0
  32. package/lib/components/public-api.d.ts +1 -0
  33. package/package.json +1 -1
  34. package/src/lib/components/date-range-picker/date-range-picker.theme.scss +47 -0
  35. package/src/lib/components/navigation/vertical/styles/appearances/default.theme.scss +38 -0
  36. package/src/lib/nice.theme.scss +2 -0
@@ -0,0 +1,57 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject } from "@angular/core";
2
+ import { DateAdapter, MAT_DATE_FORMATS } from "@angular/material/core";
3
+ import { MatCalendar } from "@angular/material/datepicker";
4
+ import { Subject } from "rxjs";
5
+ import { takeUntil } from "rxjs/operators";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/material/datepicker";
8
+ import * as i2 from "@angular/material/core";
9
+ import * as i3 from "../range-preset/range-preset.component";
10
+ import * as i4 from "@angular/material/button";
11
+ import * as i5 from "@angular/material/icon";
12
+ import * as i6 from "@angular/common";
13
+ export class HeaderComponent {
14
+ constructor(calendar, dateAdapter, dateFormats, cdr) {
15
+ this.calendar = calendar;
16
+ this.dateAdapter = dateAdapter;
17
+ this.dateFormats = dateFormats;
18
+ this.destroy$ = new Subject();
19
+ this.toggled = false;
20
+ calendar.stateChanges
21
+ .pipe(takeUntil(this.destroy$))
22
+ .subscribe(() => cdr.markForCheck());
23
+ }
24
+ get periodLabel() {
25
+ return this.dateAdapter
26
+ .format(this.calendar.activeDate, this.dateFormats.display.monthYearLabel)
27
+ .toLocaleUpperCase();
28
+ }
29
+ previousClicked(mode) {
30
+ this.changeDate(mode, -1);
31
+ }
32
+ nextClicked(mode) {
33
+ this.changeDate(mode, 1);
34
+ }
35
+ changeDate(mode, amount) {
36
+ this.calendar.activeDate =
37
+ mode === "month"
38
+ ? this.dateAdapter.addCalendarMonths(this.calendar.activeDate, amount)
39
+ : this.dateAdapter.addCalendarYears(this.calendar.activeDate, amount);
40
+ }
41
+ clickOptions() {
42
+ this.toggled = !this.toggled;
43
+ }
44
+ ngOnDestroy() {
45
+ this.destroy$.next();
46
+ }
47
+ }
48
+ HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: HeaderComponent, deps: [{ token: i1.MatCalendar }, { token: i2.DateAdapter }, { token: MAT_DATE_FORMATS }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
49
+ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: HeaderComponent, selector: "ng-component", ngImport: i0, template: "<div class=\"hidden md:block\" fxHide.lt-md>\n <nice-range-preset></nice-range-preset>\n</div>\n<div class=\"block md:hidden\">\n <ng-container *ngIf=\"toggled\">\n <nice-range-preset></nice-range-preset>\n </ng-container>\n</div>\n\n<div class=\"header\">\n <button\n fxHide.gt-md\n mat-icon-button\n (click)=\"clickOptions()\"\n >\n <mat-icon>sort</mat-icon>\n </button>\n <button\n mat-icon-button\n class=\"double-arrow\"\n (click)=\"previousClicked('year')\"\n >\n <mat-icon>keyboard_arrow_left</mat-icon>\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n <button mat-icon-button (click)=\"previousClicked('month')\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n\n <span class=\"header-label\">{{ periodLabel }}</span>\n\n <button mat-icon-button (click)=\"nextClicked('month')\">\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n <button\n mat-icon-button\n class=\"double-arrow\"\n (click)=\"nextClicked('year')\"\n >\n <mat-icon>keyboard_arrow_right</mat-icon>\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n</div>\n", styles: [".header{display:flex;align-items:center;padding:.5em}.header-label{flex:1;height:1em;font-weight:500;text-align:center}.double-arrow .mat-icon{margin:-22%}\n"], components: [{ type: i3.RangePresetComponent, selector: "nice-range-preset" }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: HeaderComponent, decorators: [{
51
+ type: Component,
52
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"hidden md:block\" fxHide.lt-md>\n <nice-range-preset></nice-range-preset>\n</div>\n<div class=\"block md:hidden\">\n <ng-container *ngIf=\"toggled\">\n <nice-range-preset></nice-range-preset>\n </ng-container>\n</div>\n\n<div class=\"header\">\n <button\n fxHide.gt-md\n mat-icon-button\n (click)=\"clickOptions()\"\n >\n <mat-icon>sort</mat-icon>\n </button>\n <button\n mat-icon-button\n class=\"double-arrow\"\n (click)=\"previousClicked('year')\"\n >\n <mat-icon>keyboard_arrow_left</mat-icon>\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n <button mat-icon-button (click)=\"previousClicked('month')\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n\n <span class=\"header-label\">{{ periodLabel }}</span>\n\n <button mat-icon-button (click)=\"nextClicked('month')\">\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n <button\n mat-icon-button\n class=\"double-arrow\"\n (click)=\"nextClicked('year')\"\n >\n <mat-icon>keyboard_arrow_right</mat-icon>\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n</div>\n", styles: [".header{display:flex;align-items:center;padding:.5em}.header-label{flex:1;height:1em;font-weight:500;text-align:center}.double-arrow .mat-icon{margin:-22%}\n"] }]
53
+ }], ctorParameters: function () { return [{ type: i1.MatCalendar }, { type: i2.DateAdapter }, { type: undefined, decorators: [{
54
+ type: Inject,
55
+ args: [MAT_DATE_FORMATS]
56
+ }] }, { type: i0.ChangeDetectorRef }]; } });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXJhbmdlLXBpY2tlci9jb21wb25lbnRzL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS11aS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcmFuZ2UtcGlja2VyL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQWtCLE1BQU0sd0JBQXdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQU8zQyxNQUFNLE9BQU8sZUFBZTtJQUt4QixZQUNZLFFBQXdCLEVBQ3hCLFdBQTJCLEVBQ0QsV0FBMkIsRUFDN0QsR0FBc0I7UUFIZCxhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDRCxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFQaEQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFekMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQVFuQixRQUFRLENBQUMsWUFBWTthQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ2xCLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7YUFDekUsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sZUFBZSxDQUFDLElBQXNCO1FBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFzQjtRQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU8sVUFBVSxDQUFDLElBQXNCLEVBQUUsTUFBYztRQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVU7WUFDcEIsSUFBSSxLQUFLLE9BQU87Z0JBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDO2dCQUN0RSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRU0sWUFBWTtRQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDOzs0R0EzQ1EsZUFBZSx3RUFRWixnQkFBZ0I7Z0dBUm5CLGVBQWUsb0RDWDVCLGl0Q0EyQ0E7MkZEaENhLGVBQWU7a0JBTDNCLFNBQVM7c0NBR1csdUJBQXVCLENBQUMsTUFBTTs7MEJBVTFDLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTLCBNYXREYXRlRm9ybWF0cyB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jb3JlXCI7XG5pbXBvcnQgeyBNYXRDYWxlbmRhciB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogXCJoZWFkZXIudGVtcGxhdGUuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiaGVhZGVyLnN0eWxlLnNjc3NcIl0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29tcG9uZW50PEQ+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHB1YmxpYyB0b2dnbGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjYWxlbmRhcjogTWF0Q2FsZW5kYXI8RD4sXG4gICAgICAgIHByaXZhdGUgZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPEQ+LFxuICAgICAgICBASW5qZWN0KE1BVF9EQVRFX0ZPUk1BVFMpIHByaXZhdGUgZGF0ZUZvcm1hdHM6IE1hdERhdGVGb3JtYXRzLFxuICAgICAgICBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIGNhbGVuZGFyLnN0YXRlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiBjZHIubWFya0ZvckNoZWNrKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGVyaW9kTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZUFkYXB0ZXJcbiAgICAgICAgICAgIC5mb3JtYXQodGhpcy5jYWxlbmRhci5hY3RpdmVEYXRlLCB0aGlzLmRhdGVGb3JtYXRzLmRpc3BsYXkubW9udGhZZWFyTGFiZWwpXG4gICAgICAgICAgICAudG9Mb2NhbGVVcHBlckNhc2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJldmlvdXNDbGlja2VkKG1vZGU6IFwibW9udGhcIiB8IFwieWVhclwiKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlRGF0ZShtb2RlLCAtMSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5leHRDbGlja2VkKG1vZGU6IFwibW9udGhcIiB8IFwieWVhclwiKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlRGF0ZShtb2RlLCAxKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoYW5nZURhdGUobW9kZTogXCJtb250aFwiIHwgXCJ5ZWFyXCIsIGFtb3VudDogLTEgfCAxKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2FsZW5kYXIuYWN0aXZlRGF0ZSA9XG4gICAgICAgICAgICBtb2RlID09PSBcIm1vbnRoXCJcbiAgICAgICAgICAgICAgICA/IHRoaXMuZGF0ZUFkYXB0ZXIuYWRkQ2FsZW5kYXJNb250aHModGhpcy5jYWxlbmRhci5hY3RpdmVEYXRlLCBhbW91bnQpXG4gICAgICAgICAgICAgICAgOiB0aGlzLmRhdGVBZGFwdGVyLmFkZENhbGVuZGFyWWVhcnModGhpcy5jYWxlbmRhci5hY3RpdmVEYXRlLCBhbW91bnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGlja09wdGlvbnMoKSB7XG4gICAgICAgIHRoaXMudG9nZ2xlZCA9ICF0aGlzLnRvZ2dsZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmJsb2NrXCIgZnhIaWRlLmx0LW1kPlxuICAgIDxuaWNlLXJhbmdlLXByZXNldD48L25pY2UtcmFuZ2UtcHJlc2V0PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYmxvY2sgbWQ6aGlkZGVuXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvZ2dsZWRcIj5cbiAgICAgICAgPG5pY2UtcmFuZ2UtcHJlc2V0PjwvbmljZS1yYW5nZS1wcmVzZXQ+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgIDxidXR0b25cbiAgICAgICAgZnhIaWRlLmd0LW1kXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAoY2xpY2spPVwiY2xpY2tPcHRpb25zKClcIlxuICAgID5cbiAgICAgICAgPG1hdC1pY29uPnNvcnQ8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIGNsYXNzPVwiZG91YmxlLWFycm93XCJcbiAgICAgICAgKGNsaWNrKT1cInByZXZpb3VzQ2xpY2tlZCgneWVhcicpXCJcbiAgICA+XG4gICAgICAgIDxtYXQtaWNvbj5rZXlib2FyZF9hcnJvd19sZWZ0PC9tYXQtaWNvbj5cbiAgICAgICAgPG1hdC1pY29uPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJwcmV2aW91c0NsaWNrZWQoJ21vbnRoJylcIj5cbiAgICAgICAgPG1hdC1pY29uPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPHNwYW4gY2xhc3M9XCJoZWFkZXItbGFiZWxcIj57eyBwZXJpb2RMYWJlbCB9fTwvc3Bhbj5cblxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJuZXh0Q2xpY2tlZCgnbW9udGgnKVwiPlxuICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIGNsYXNzPVwiZG91YmxlLWFycm93XCJcbiAgICAgICAgKGNsaWNrKT1cIm5leHRDbGlja2VkKCd5ZWFyJylcIlxuICAgID5cbiAgICAgICAgPG1hdC1pY29uPmtleWJvYXJkX2Fycm93X3JpZ2h0PC9tYXQtaWNvbj5cbiAgICAgICAgPG1hdC1pY29uPmtleWJvYXJkX2Fycm93X3JpZ2h0PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,107 @@
1
+ import { ChangeDetectionStrategy, Component } from "@angular/core";
2
+ import { DateAdapter } from "@angular/material/core";
3
+ import { MatDateRangePicker } from "@angular/material/datepicker";
4
+ import { NiceDateRangePickerServiceService } from "../../providers/date-range-picker.service";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/core";
7
+ import * as i2 from "@angular/material/datepicker";
8
+ import * as i3 from "../../providers/date-range-picker.service";
9
+ import * as i4 from "@angular/material/card";
10
+ import * as i5 from "@angular/material/button";
11
+ import * as i6 from "@angular/common";
12
+ import * as i7 from "@ngx-translate/core";
13
+ const customPresets = [
14
+ "today",
15
+ "last_7_days",
16
+ "this_week",
17
+ "this_month",
18
+ "this_year",
19
+ "last_week",
20
+ "last_month",
21
+ "last_year",
22
+ ];
23
+ export class RangePresetComponent {
24
+ constructor(dateAdapter, picker, service) {
25
+ this.dateAdapter = dateAdapter;
26
+ this.picker = picker;
27
+ this.service = service;
28
+ this.customPresets = customPresets;
29
+ this.allowClear$ = this.service.allowClear$;
30
+ }
31
+ clearRange() {
32
+ this.picker.select(null);
33
+ this.picker.select(null);
34
+ this.picker.close();
35
+ }
36
+ selectRange(rangeName) {
37
+ const [start, end] = this.calculateDateRange(rangeName);
38
+ this.picker.select(start);
39
+ this.picker.select(end);
40
+ this.picker.close();
41
+ }
42
+ calculateDateRange(rangeName) {
43
+ const today = this.today;
44
+ const year = this.dateAdapter.getYear(today);
45
+ switch (rangeName) {
46
+ case "today":
47
+ return [today, today];
48
+ case "last_7_days": {
49
+ const start = this.dateAdapter.addCalendarDays(today, -6);
50
+ return [start, today];
51
+ }
52
+ case "this_week": {
53
+ return this.calculateWeek(today);
54
+ }
55
+ case "this_month": {
56
+ return this.calculateMonth(today);
57
+ }
58
+ case "this_year": {
59
+ const start = this.dateAdapter.createDate(year, 0, 1);
60
+ const end = this.dateAdapter.createDate(year, 11, 31);
61
+ return [start, end];
62
+ }
63
+ case "last_week": {
64
+ const thisDayLastWeek = this.dateAdapter.addCalendarDays(today, -7);
65
+ return this.calculateWeek(thisDayLastWeek);
66
+ }
67
+ case "last_month": {
68
+ const thisDayLastMonth = this.dateAdapter.addCalendarMonths(today, -1);
69
+ return this.calculateMonth(thisDayLastMonth);
70
+ }
71
+ case "last_year": {
72
+ const start = this.dateAdapter.createDate(year - 1, 0, 1);
73
+ const end = this.dateAdapter.createDate(year - 1, 11, 31);
74
+ return [start, end];
75
+ }
76
+ default:
77
+ return null;
78
+ }
79
+ }
80
+ calculateMonth(forDay) {
81
+ const year = this.dateAdapter.getYear(forDay);
82
+ const month = this.dateAdapter.getMonth(forDay);
83
+ const start = this.dateAdapter.createDate(year, month, 1);
84
+ const end = this.dateAdapter.addCalendarDays(start, this.dateAdapter.getNumDaysInMonth(forDay) - 1);
85
+ return [start, end];
86
+ }
87
+ calculateWeek(forDay) {
88
+ const deltaStart = this.dateAdapter.getFirstDayOfWeek() - this.dateAdapter.getDayOfWeek(forDay);
89
+ const start = this.dateAdapter.addCalendarDays(forDay, deltaStart);
90
+ const end = this.dateAdapter.addCalendarDays(start, 6);
91
+ return [start, end];
92
+ }
93
+ get today() {
94
+ const today = this.dateAdapter.getValidDateOrNull(new Date());
95
+ if (today === null) {
96
+ throw new Error("date creation failed");
97
+ }
98
+ return today;
99
+ }
100
+ }
101
+ RangePresetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: RangePresetComponent, deps: [{ token: i1.DateAdapter }, { token: i2.MatDateRangePicker }, { token: i3.NiceDateRangePickerServiceService }], target: i0.ɵɵFactoryTarget.Component });
102
+ RangePresetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: RangePresetComponent, selector: "nice-range-preset", ngImport: i0, template: "<mat-card class=\"mat-elevation-z3\">\n <button\n *ngIf=\"allowClear$ | async\"\n mat-button\n (click)=\"clearRange()\"\n >\n {{ \"nice_ui_kit.date_range_picker.clear\" | translate }}\n </button>\n\n <button\n *ngFor=\"let item of customPresets\"\n mat-button\n (click)=\"selectRange(item)\"\n >\n {{ \"nice_ui_kit.date_range_picker.presets.\" + item | translate }}\n </button>\n</mat-card>\n", styles: [":host{position:absolute;width:200px;left:-200px}@media screen and (max-width: 959px){:host{z-index:1000;left:50px!important}}button{width:100%;text-align:left;text-transform:unset!important}\n"], components: [{ type: i4.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i6.AsyncPipe, "translate": i7.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: RangePresetComponent, decorators: [{
104
+ type: Component,
105
+ args: [{ selector: "nice-range-preset", changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-card class=\"mat-elevation-z3\">\n <button\n *ngIf=\"allowClear$ | async\"\n mat-button\n (click)=\"clearRange()\"\n >\n {{ \"nice_ui_kit.date_range_picker.clear\" | translate }}\n </button>\n\n <button\n *ngFor=\"let item of customPresets\"\n mat-button\n (click)=\"selectRange(item)\"\n >\n {{ \"nice_ui_kit.date_range_picker.presets.\" + item | translate }}\n </button>\n</mat-card>\n", styles: [":host{position:absolute;width:200px;left:-200px}@media screen and (max-width: 959px){:host{z-index:1000;left:50px!important}}button{width:100%;text-align:left;text-transform:unset!important}\n"] }]
106
+ }], ctorParameters: function () { return [{ type: i1.DateAdapter }, { type: i2.MatDateRangePicker }, { type: i3.NiceDateRangePickerServiceService }]; } });
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtcHJlc2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXJhbmdlLXBpY2tlci9jb21wb25lbnRzL3JhbmdlLXByZXNldC9yYW5nZS1wcmVzZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS11aS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcmFuZ2UtcGlja2VyL2NvbXBvbmVudHMvcmFuZ2UtcHJlc2V0L3JhbmdlLXByZXNldC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7Ozs7QUFFOUYsTUFBTSxhQUFhLEdBQUc7SUFDbEIsT0FBTztJQUNQLGFBQWE7SUFDYixXQUFXO0lBQ1gsWUFBWTtJQUNaLFdBQVc7SUFDWCxXQUFXO0lBQ1gsWUFBWTtJQUNaLFdBQVc7Q0FDZCxDQUFDO0FBVUYsTUFBTSxPQUFPLG9CQUFvQjtJQUk3QixZQUNZLFdBQTJCLEVBQzNCLE1BQTZCLEVBQzdCLE9BQTBDO1FBRjFDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUM3QixZQUFPLEdBQVAsT0FBTyxDQUFtQztRQU50QyxrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUM5QixnQkFBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO0lB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S0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7U0FDM0M7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOztpSEF2RlEsb0JBQW9CO3FHQUFwQixvQkFBb0IseURDeEJqQyxnZUFpQkE7MkZET2Esb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNJLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jb3JlXCI7XG5pbXBvcnQgeyBNYXREYXRlUmFuZ2VQaWNrZXIgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlclwiO1xuaW1wb3J0IHsgTmljZURhdGVSYW5nZVBpY2tlclNlcnZpY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3Byb3ZpZGVycy9kYXRlLXJhbmdlLXBpY2tlci5zZXJ2aWNlXCI7XG5cbmNvbnN0IGN1c3RvbVByZXNldHMgPSBbXG4gICAgXCJ0b2RheVwiLFxuICAgIFwibGFzdF83X2RheXNcIixcbiAgICBcInRoaXNfd2Vla1wiLFxuICAgIFwidGhpc19tb250aFwiLFxuICAgIFwidGhpc195ZWFyXCIsXG4gICAgXCJsYXN0X3dlZWtcIixcbiAgICBcImxhc3RfbW9udGhcIixcbiAgICBcImxhc3RfeWVhclwiLFxuXTtcblxudHlwZSBDdXN0b21QcmVzZXQgPSB0eXBlb2YgY3VzdG9tUHJlc2V0c1tudW1iZXJdO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJuaWNlLXJhbmdlLXByZXNldFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcInJhbmdlLXByZXNldC50ZW1wbGF0ZS5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCJyYW5nZS1wcmVzZXQuc3R5bGUuc2Nzc1wiXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUmFuZ2VQcmVzZXRDb21wb25lbnQ8RD4ge1xuICAgIHB1YmxpYyByZWFkb25seSBjdXN0b21QcmVzZXRzID0gY3VzdG9tUHJlc2V0cztcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWxsb3dDbGVhciQgPSB0aGlzLnNlcnZpY2UuYWxsb3dDbGVhciQ7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8RD4sXG4gICAgICAgIHByaXZhdGUgcGlja2VyOiBNYXREYXRlUmFuZ2VQaWNrZXI8RD4sXG4gICAgICAgIHByaXZhdGUgc2VydmljZTogTmljZURhdGVSYW5nZVBpY2tlclNlcnZpY2VTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGNsZWFyUmFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGlja2VyLnNlbGVjdChudWxsKTtcbiAgICAgICAgdGhpcy5waWNrZXIuc2VsZWN0KG51bGwpO1xuICAgICAgICB0aGlzLnBpY2tlci5jbG9zZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWxlY3RSYW5nZShyYW5nZU5hbWU6IEN1c3RvbVByZXNldCk6IHZvaWQge1xuICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB0aGlzLmNhbGN1bGF0ZURhdGVSYW5nZShyYW5nZU5hbWUpO1xuICAgICAgICB0aGlzLnBpY2tlci5zZWxlY3Qoc3RhcnQpO1xuICAgICAgICB0aGlzLnBpY2tlci5zZWxlY3QoZW5kKTtcbiAgICAgICAgdGhpcy5waWNrZXIuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGN1bGF0ZURhdGVSYW5nZShyYW5nZU5hbWU6IEN1c3RvbVByZXNldCk6IFtzdGFydDogRCwgZW5kOiBEXSB7XG4gICAgICAgIGNvbnN0IHRvZGF5ID0gdGhpcy50b2RheTtcbiAgICAgICAgY29uc3QgeWVhciA9IHRoaXMuZGF0ZUFkYXB0ZXIuZ2V0WWVhcih0b2RheSk7XG5cbiAgICAgICAgc3dpdGNoIChyYW5nZU5hbWUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJ0b2RheVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBbdG9kYXksIHRvZGF5XTtcbiAgICAgICAgICAgIGNhc2UgXCJsYXN0XzdfZGF5c1wiOiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLmRhdGVBZGFwdGVyLmFkZENhbGVuZGFyRGF5cyh0b2RheSwgLTYpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbc3RhcnQsIHRvZGF5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJ0aGlzX3dlZWtcIjoge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZVdlZWsodG9kYXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcInRoaXNfbW9udGhcIjoge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZU1vbnRoKHRvZGF5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJ0aGlzX3llYXJcIjoge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5kYXRlQWRhcHRlci5jcmVhdGVEYXRlKHllYXIsIDAsIDEpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IHRoaXMuZGF0ZUFkYXB0ZXIuY3JlYXRlRGF0ZSh5ZWFyLCAxMSwgMzEpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbc3RhcnQsIGVuZF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwibGFzdF93ZWVrXCI6IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGlzRGF5TGFzdFdlZWsgPSB0aGlzLmRhdGVBZGFwdGVyLmFkZENhbGVuZGFyRGF5cyh0b2RheSwgLTcpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZVdlZWsodGhpc0RheUxhc3RXZWVrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJsYXN0X21vbnRoXCI6IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGlzRGF5TGFzdE1vbnRoID0gdGhpcy5kYXRlQWRhcHRlci5hZGRDYWxlbmRhck1vbnRocyh0b2RheSwgLTEpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZU1vbnRoKHRoaXNEYXlMYXN0TW9udGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcImxhc3RfeWVhclwiOiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLmRhdGVBZGFwdGVyLmNyZWF0ZURhdGUoeWVhciAtIDEsIDAsIDEpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IHRoaXMuZGF0ZUFkYXB0ZXIuY3JlYXRlRGF0ZSh5ZWFyIC0gMSwgMTEsIDMxKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gW3N0YXJ0LCBlbmRdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlTW9udGgoZm9yRGF5OiBEKTogW3N0YXJ0OiBELCBlbmQ6IERdIHtcbiAgICAgICAgY29uc3QgeWVhciA9IHRoaXMuZGF0ZUFkYXB0ZXIuZ2V0WWVhcihmb3JEYXkpO1xuICAgICAgICBjb25zdCBtb250aCA9IHRoaXMuZGF0ZUFkYXB0ZXIuZ2V0TW9udGgoZm9yRGF5KTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLmRhdGVBZGFwdGVyLmNyZWF0ZURhdGUoeWVhciwgbW9udGgsIDEpO1xuICAgICAgICBjb25zdCBlbmQgPSB0aGlzLmRhdGVBZGFwdGVyLmFkZENhbGVuZGFyRGF5cyhcbiAgICAgICAgICAgIHN0YXJ0LFxuICAgICAgICAgICAgdGhpcy5kYXRlQWRhcHRlci5nZXROdW1EYXlzSW5Nb250aChmb3JEYXkpIC0gMVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gW3N0YXJ0LCBlbmRdO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlV2Vlayhmb3JEYXk6IEQpOiBbc3RhcnQ6IEQsIGVuZDogRF0ge1xuICAgICAgICBjb25zdCBkZWx0YVN0YXJ0ID0gdGhpcy5kYXRlQWRhcHRlci5nZXRGaXJzdERheU9mV2VlaygpIC0gdGhpcy5kYXRlQWRhcHRlci5nZXREYXlPZldlZWsoZm9yRGF5KTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLmRhdGVBZGFwdGVyLmFkZENhbGVuZGFyRGF5cyhmb3JEYXksIGRlbHRhU3RhcnQpO1xuICAgICAgICBjb25zdCBlbmQgPSB0aGlzLmRhdGVBZGFwdGVyLmFkZENhbGVuZGFyRGF5cyhzdGFydCwgNik7XG4gICAgICAgIHJldHVybiBbc3RhcnQsIGVuZF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgdG9kYXkoKTogRCB7XG4gICAgICAgIGNvbnN0IHRvZGF5ID0gdGhpcy5kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwobmV3IERhdGUoKSk7XG4gICAgICAgIGlmICh0b2RheSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZGF0ZSBjcmVhdGlvbiBmYWlsZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRvZGF5O1xuICAgIH1cbn1cbiIsIjxtYXQtY2FyZCBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejNcIj5cbiAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cImFsbG93Q2xlYXIkIHwgYXN5bmNcIlxuICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyUmFuZ2UoKVwiXG4gICAgPlxuICAgICAgICB7eyBcIm5pY2VfdWlfa2l0LmRhdGVfcmFuZ2VfcGlja2VyLmNsZWFyXCIgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY3VzdG9tUHJlc2V0c1wiXG4gICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdFJhbmdlKGl0ZW0pXCJcbiAgICA+XG4gICAgICAgIHt7IFwibmljZV91aV9raXQuZGF0ZV9yYW5nZV9waWNrZXIucHJlc2V0cy5cIiArIGl0ZW0gfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbjwvbWF0LWNhcmQ+XG4iXX0=
@@ -0,0 +1,74 @@
1
+ import { Component, forwardRef, Input, ViewChild, ViewEncapsulation } from "@angular/core";
2
+ import { FormControl, FormGroup, NG_VALUE_ACCESSOR } from "@angular/forms";
3
+ import { MatDateRangePicker } from "@angular/material/datepicker";
4
+ import subDays from "date-fns/subDays";
5
+ import { HeaderComponent } from "./components/header/header.component";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/material/datepicker";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "@angular/forms";
10
+ import * as i4 from "@angular/material/form-field";
11
+ import * as i5 from "../../pipes/localized-date.pipe";
12
+ export class NiceDateRangePickerComponent {
13
+ constructor() {
14
+ this.HeaderComponent = HeaderComponent;
15
+ this.min = subDays(new Date(), 3);
16
+ this.max = new Date();
17
+ this.nowIsMax = true;
18
+ this.allowClear = true;
19
+ this.formGroup = new FormGroup({
20
+ from: new FormControl(),
21
+ to: new FormControl()
22
+ });
23
+ this.now = new Date();
24
+ }
25
+ ngOnInit() {
26
+ this.value = {
27
+ from: this.min,
28
+ to: this.max
29
+ };
30
+ this.formGroup.patchValue(this.value);
31
+ this.formGroup.valueChanges.subscribe((_) => {
32
+ this.value = this.formGroup.getRawValue();
33
+ this.propage?.(this.value);
34
+ });
35
+ }
36
+ writeValue(value) {
37
+ this.value = value;
38
+ this.formGroup.patchValue(this.value);
39
+ }
40
+ registerOnChange(fn) {
41
+ this.propage = fn;
42
+ }
43
+ registerOnTouched(fn) { }
44
+ }
45
+ NiceDateRangePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceDateRangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
46
+ NiceDateRangePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: NiceDateRangePickerComponent, selector: "nice-date-range-picker", inputs: { min: "min", max: "max", nowIsMax: "nowIsMax", allowClear: "allowClear" }, providers: [
47
+ {
48
+ provide: NG_VALUE_ACCESSOR,
49
+ useExisting: forwardRef(() => NiceDateRangePickerComponent),
50
+ multi: true
51
+ }
52
+ ], viewQueries: [{ propertyName: "picker", first: true, predicate: MatDateRangePicker, descendants: true }], ngImport: i0, template: "<div class=\"nice-date-picker-container\">\n <div class=\"nice-date-picker-header\">\n <div class=\"from-to\">\n <ng-container *ngIf=\"value.from\">\n {{ value.from | localizedDate: \"longDate\" }}\n </ng-container>\n <ng-container *ngIf=\"value.to\">\n <div class=\"separator\">-</div>\n {{ value.to | localizedDate: \"longDate\" }}\n </ng-container>\n </div>\n </div>\n\n <mat-date-range-input [formGroup]=\"formGroup\" [max]=\"nowIsMax ? now : null\" [rangePicker]=\"picker\">\n <input formControlName=\"from\" class=\"hidden-input\" matStartDate placeholder=\"Start date\">\n <input formControlName=\"to\" class=\"hidden-input\" matEndDate placeholder=\"End date\">\n </mat-date-range-input>\n\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n\n <mat-date-range-picker\n [calendarHeaderComponent]=\"HeaderComponent\"\n #picker\n ></mat-date-range-picker>\n</div>\n", styles: ["nice-date-range-picker .mat-date-range-input{width:0;height:0;padding:0;margin:0;border:none;visibility:hidden}\n"], components: [{ type: i1.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { type: i1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i1.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i1.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { type: i4.MatSuffix, selector: "[matSuffix]" }], pipes: { "localizedDate": i5.LocalizedDatePipe }, encapsulation: i0.ViewEncapsulation.None });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceDateRangePickerComponent, decorators: [{
54
+ type: Component,
55
+ args: [{ selector: "nice-date-range-picker", encapsulation: ViewEncapsulation.None, providers: [
56
+ {
57
+ provide: NG_VALUE_ACCESSOR,
58
+ useExisting: forwardRef(() => NiceDateRangePickerComponent),
59
+ multi: true
60
+ }
61
+ ], template: "<div class=\"nice-date-picker-container\">\n <div class=\"nice-date-picker-header\">\n <div class=\"from-to\">\n <ng-container *ngIf=\"value.from\">\n {{ value.from | localizedDate: \"longDate\" }}\n </ng-container>\n <ng-container *ngIf=\"value.to\">\n <div class=\"separator\">-</div>\n {{ value.to | localizedDate: \"longDate\" }}\n </ng-container>\n </div>\n </div>\n\n <mat-date-range-input [formGroup]=\"formGroup\" [max]=\"nowIsMax ? now : null\" [rangePicker]=\"picker\">\n <input formControlName=\"from\" class=\"hidden-input\" matStartDate placeholder=\"Start date\">\n <input formControlName=\"to\" class=\"hidden-input\" matEndDate placeholder=\"End date\">\n </mat-date-range-input>\n\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n\n <mat-date-range-picker\n [calendarHeaderComponent]=\"HeaderComponent\"\n #picker\n ></mat-date-range-picker>\n</div>\n", styles: ["nice-date-range-picker .mat-date-range-input{width:0;height:0;padding:0;margin:0;border:none;visibility:hidden}\n"] }]
62
+ }], propDecorators: { picker: [{
63
+ type: ViewChild,
64
+ args: [MatDateRangePicker]
65
+ }], min: [{
66
+ type: Input
67
+ }], max: [{
68
+ type: Input
69
+ }], nowIsMax: [{
70
+ type: Input
71
+ }], allowClear: [{
72
+ type: Input
73
+ }] } });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS11aS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUF3QixXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7O0FBb0J2RSxNQUFNLE9BQU8sNEJBQTRCO0lBYnpDO1FBY29CLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBTTNDLFFBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUc3QixRQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUdqQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBR2hCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFbEIsY0FBUyxHQUFHLElBQUksU0FBUyxDQUFDO1lBQzdCLElBQUksRUFBRSxJQUFJLFdBQVcsRUFBRTtZQUN2QixFQUFFLEVBQUUsSUFBSSxXQUFXLEVBQUU7U0FDeEIsQ0FBQyxDQUFDO1FBQ0ksUUFBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7S0E0QjNCO0lBdkJVLFFBQVE7UUFDWCxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1QsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2QsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQ2YsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0QyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN4QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBK0I7UUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxFQUE2QztRQUNqRSxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU0saUJBQWlCLENBQUMsRUFBTyxJQUFTLENBQUM7O3lIQWpEakMsNEJBQTRCOzZHQUE1Qiw0QkFBNEIscUlBUjFCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7WUFDM0QsS0FBSyxFQUFFLElBQUk7U0FDZDtLQUNKLGtFQUtVLGtCQUFrQixnREMzQmpDLG1pQ0F5QkE7MkZERGEsNEJBQTRCO2tCQWJ4QyxTQUFTOytCQUNJLHdCQUF3QixpQkFHbkIsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw2QkFBNkIsQ0FBQzs0QkFDM0QsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7OEJBTU8sTUFBTTtzQkFEYixTQUFTO3VCQUFDLGtCQUFrQjtnQkFJdEIsR0FBRztzQkFEVCxLQUFLO2dCQUlDLEdBQUc7c0JBRFQsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE1hdERhdGVSYW5nZVBpY2tlciB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyXCI7XG5pbXBvcnQgc3ViRGF5cyBmcm9tIFwiZGF0ZS1mbnMvc3ViRGF5c1wiO1xuaW1wb3J0IHsgSGVhZGVyQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5pY2VEYXRlUmFuZ2VQaWNrZXJWYWx1ZSB7XG4gICAgZnJvbTogRGF0ZTtcbiAgICB0bzogRGF0ZTtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibmljZS1kYXRlLXJhbmdlLXBpY2tlclwiLFxuICAgIHRlbXBsYXRlVXJsOiBcImRhdGUtcmFuZ2UtcGlja2VyLnRlbXBsYXRlLmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcImRhdGUtcmFuZ2UtcGlja2VyLnN0eWxlLnNjc3NcIl0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOaWNlRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5pY2VEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgSGVhZGVyQ29tcG9uZW50ID0gSGVhZGVyQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChNYXREYXRlUmFuZ2VQaWNrZXIpXG4gICAgcHJpdmF0ZSBwaWNrZXI6IE1hdERhdGVSYW5nZVBpY2tlcjxhbnk+O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluID0gc3ViRGF5cyhuZXcgRGF0ZSgpLCAzKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heCA9IG5ldyBEYXRlKCk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBub3dJc01heCA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhbGxvd0NsZWFyID0gdHJ1ZTtcblxuICAgIHB1YmxpYyBmb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgZnJvbTogbmV3IEZvcm1Db250cm9sKCksXG4gICAgICAgIHRvOiBuZXcgRm9ybUNvbnRyb2woKVxuICAgIH0pO1xuICAgIHB1YmxpYyBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIHB1YmxpYyB2YWx1ZTogTmljZURhdGVSYW5nZVBpY2tlclZhbHVlO1xuXG4gICAgcHJpdmF0ZSBwcm9wYWdlOiAodmFsdWU6IE5pY2VEYXRlUmFuZ2VQaWNrZXJWYWx1ZSkgPT4gdm9pZDtcblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHtcbiAgICAgICAgICAgIGZyb206IHRoaXMubWluLFxuICAgICAgICAgICAgdG86IHRoaXMubWF4XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUodGhpcy52YWx1ZSk7XG5cbiAgICAgICAgdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XG4gICAgICAgICAgICB0aGlzLnByb3BhZ2U/Lih0aGlzLnZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IE5pY2VEYXRlUmFuZ2VQaWNrZXJWYWx1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogTmljZURhdGVSYW5nZVBpY2tlclZhbHVlKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGFnZSA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7fVxufVxuIiwiPGRpdiBjbGFzcz1cIm5pY2UtZGF0ZS1waWNrZXItY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm5pY2UtZGF0ZS1waWNrZXItaGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmcm9tLXRvXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFsdWUuZnJvbVwiPlxuICAgICAgICAgICAgICAgIHt7IHZhbHVlLmZyb20gfCBsb2NhbGl6ZWREYXRlOiBcImxvbmdEYXRlXCIgfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZhbHVlLnRvXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiPi08L2Rpdj5cbiAgICAgICAgICAgICAgICB7eyB2YWx1ZS50byB8IGxvY2FsaXplZERhdGU6IFwibG9uZ0RhdGVcIiB9fVxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPG1hdC1kYXRlLXJhbmdlLWlucHV0IFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgW21heF09XCJub3dJc01heCA/IG5vdyA6IG51bGxcIiBbcmFuZ2VQaWNrZXJdPVwicGlja2VyXCI+XG4gICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJmcm9tXCIgY2xhc3M9XCJoaWRkZW4taW5wdXRcIiBtYXRTdGFydERhdGUgcGxhY2Vob2xkZXI9XCJTdGFydCBkYXRlXCI+XG4gICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0b1wiIGNsYXNzPVwiaGlkZGVuLWlucHV0XCIgbWF0RW5kRGF0ZSBwbGFjZWhvbGRlcj1cIkVuZCBkYXRlXCI+XG4gICAgPC9tYXQtZGF0ZS1yYW5nZS1pbnB1dD5cblxuICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwicGlja2VyXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG5cbiAgICA8bWF0LWRhdGUtcmFuZ2UtcGlja2VyXG4gICAgICAgICAgICBbY2FsZW5kYXJIZWFkZXJDb21wb25lbnRdPVwiSGVhZGVyQ29tcG9uZW50XCJcbiAgICAgICAgICAgICNwaWNrZXJcbiAgICA+PC9tYXQtZGF0ZS1yYW5nZS1waWNrZXI+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,58 @@
1
+ import { CommonModule } from "@angular/common";
2
+ import { NgModule } from "@angular/core";
3
+ import { ReactiveFormsModule } from "@angular/forms";
4
+ import { MatButtonModule } from "@angular/material/button";
5
+ import { MatCardModule } from "@angular/material/card";
6
+ import { MatDatepickerModule } from "@angular/material/datepicker";
7
+ import { MatFormFieldModule } from "@angular/material/form-field";
8
+ import { MatIconModule } from "@angular/material/icon";
9
+ import { TranslateModule } from "@ngx-translate/core";
10
+ import { NicePipesModule } from "../../pipes";
11
+ import { HeaderComponent } from "./components/header/header.component";
12
+ import { RangePresetComponent } from "./components/range-preset/range-preset.component";
13
+ import { NiceDateRangePickerComponent } from "./date-range-picker.component";
14
+ import { NiceDateRangePickerServiceService } from "./providers/date-range-picker.service";
15
+ import * as i0 from "@angular/core";
16
+ export class NiceDateRangePickerModule {
17
+ }
18
+ NiceDateRangePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceDateRangePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
+ NiceDateRangePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceDateRangePickerModule, declarations: [NiceDateRangePickerComponent, RangePresetComponent, HeaderComponent], imports: [CommonModule,
20
+ MatDatepickerModule,
21
+ MatFormFieldModule,
22
+ MatCardModule,
23
+ MatButtonModule,
24
+ MatIconModule,
25
+ TranslateModule,
26
+ ReactiveFormsModule,
27
+ NicePipesModule], exports: [NiceDateRangePickerComponent] });
28
+ NiceDateRangePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceDateRangePickerModule, providers: [NiceDateRangePickerServiceService], imports: [[
29
+ CommonModule,
30
+ MatDatepickerModule,
31
+ MatFormFieldModule,
32
+ MatCardModule,
33
+ MatButtonModule,
34
+ MatIconModule,
35
+ TranslateModule,
36
+ ReactiveFormsModule,
37
+ NicePipesModule
38
+ ]] });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceDateRangePickerModule, decorators: [{
40
+ type: NgModule,
41
+ args: [{
42
+ imports: [
43
+ CommonModule,
44
+ MatDatepickerModule,
45
+ MatFormFieldModule,
46
+ MatCardModule,
47
+ MatButtonModule,
48
+ MatIconModule,
49
+ TranslateModule,
50
+ ReactiveFormsModule,
51
+ NicePipesModule
52
+ ],
53
+ declarations: [NiceDateRangePickerComponent, RangePresetComponent, HeaderComponent],
54
+ providers: [NiceDateRangePickerServiceService],
55
+ exports: [NiceDateRangePickerComponent]
56
+ }]
57
+ }] });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS11aS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7O0FBa0IxRixNQUFNLE9BQU8seUJBQXlCOztzSEFBekIseUJBQXlCO3VIQUF6Qix5QkFBeUIsaUJBSm5CLDRCQUE0QixFQUFFLG9CQUFvQixFQUFFLGVBQWUsYUFWOUUsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQixrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLGVBQWU7UUFDZixhQUFhO1FBQ2IsZUFBZTtRQUNmLG1CQUFtQjtRQUNuQixlQUFlLGFBSVQsNEJBQTRCO3VIQUU3Qix5QkFBeUIsYUFIdkIsQ0FBQyxpQ0FBaUMsQ0FBQyxZQVpyQztZQUNMLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLGFBQWE7WUFDYixlQUFlO1lBQ2YsYUFBYTtZQUNiLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsZUFBZTtTQUNsQjsyRkFLUSx5QkFBeUI7a0JBaEJyQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsZUFBZTtxQkFDbEI7b0JBQ0QsWUFBWSxFQUFFLENBQUMsNEJBQTRCLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxDQUFDO29CQUNuRixTQUFTLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztvQkFDOUMsT0FBTyxFQUFFLENBQUMsNEJBQTRCLENBQUM7aUJBQzFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jYXJkXCI7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXJcIjtcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBOaWNlUGlwZXNNb2R1bGUgfSBmcm9tIFwiLi4vLi4vcGlwZXNcIjtcbmltcG9ydCB7IEhlYWRlckNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5jb21wb25lbnRcIjtcbmltcG9ydCB7IFJhbmdlUHJlc2V0Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9yYW5nZS1wcmVzZXQvcmFuZ2UtcHJlc2V0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTmljZURhdGVSYW5nZVBpY2tlckNvbXBvbmVudCB9IGZyb20gXCIuL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTmljZURhdGVSYW5nZVBpY2tlclNlcnZpY2VTZXJ2aWNlIH0gZnJvbSBcIi4vcHJvdmlkZXJzL2RhdGUtcmFuZ2UtcGlja2VyLnNlcnZpY2VcIjtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRDYXJkTW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTmljZVBpcGVzTW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtOaWNlRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50LCBSYW5nZVByZXNldENvbXBvbmVudCwgSGVhZGVyQ29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtOaWNlRGF0ZVJhbmdlUGlja2VyU2VydmljZVNlcnZpY2VdLFxuICAgIGV4cG9ydHM6IFtOaWNlRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBOaWNlRGF0ZVJhbmdlUGlja2VyTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from "./public-api";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXVpLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZS1yYW5nZS1waWNrZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9wdWJsaWMtYXBpXCI7XG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { BehaviorSubject } from "rxjs";
3
+ import * as i0 from "@angular/core";
4
+ export class NiceDateRangePickerServiceService {
5
+ constructor() {
6
+ this.allowClear$ = new BehaviorSubject(true);
7
+ }
8
+ setAllowClear(allowClear) {
9
+ this.allowClear$.next(allowClear);
10
+ }
11
+ }
12
+ NiceDateRangePickerServiceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceDateRangePickerServiceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
13
+ NiceDateRangePickerServiceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceDateRangePickerServiceService });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceDateRangePickerServiceService, decorators: [{
15
+ type: Injectable
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXJhbmdlLXBpY2tlci9wcm92aWRlcnMvZGF0ZS1yYW5nZS1waWNrZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBR3ZDLE1BQU0sT0FBTyxpQ0FBaUM7SUFEOUM7UUFFVyxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBS2xEO0lBSFUsYUFBYSxDQUFDLFVBQW1CO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7OzhIQUxRLGlDQUFpQztrSUFBakMsaUNBQWlDOzJGQUFqQyxpQ0FBaUM7a0JBRDdDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOaWNlRGF0ZVJhbmdlUGlja2VyU2VydmljZVNlcnZpY2Uge1xuICAgIHB1YmxpYyBhbGxvd0NsZWFyJCA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG5cbiAgICBwdWJsaWMgc2V0QWxsb3dDbGVhcihhbGxvd0NsZWFyOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWxsb3dDbGVhciQubmV4dChhbGxvd0NsZWFyKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from "./date-range-picker.component";
2
+ export * from "./date-range-picker.module";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXJhbmdlLXBpY2tlci9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGF0ZS1yYW5nZS1waWNrZXIubW9kdWxlXCI7XG4iXX0=
@@ -0,0 +1,164 @@
1
+ import { Overlay } from "@angular/cdk/overlay";
2
+ import { Platform } from "@angular/cdk/platform";
3
+ import { ComponentPortal } from "@angular/cdk/portal";
4
+ import { Directive, ElementRef, Input, NgZone, ViewContainerRef } from "@angular/core";
5
+ import { Subject } from "rxjs";
6
+ import { takeUntil } from "rxjs/operators";
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/cdk/overlay";
9
+ import * as i2 from "@angular/cdk/platform";
10
+ export class NiceShowHintDirective {
11
+ constructor(_overlay, _elementRef, _viewContainerRef, _ngZone, _platform) {
12
+ this._overlay = _overlay;
13
+ this._elementRef = _elementRef;
14
+ this._viewContainerRef = _viewContainerRef;
15
+ this._ngZone = _ngZone;
16
+ this._platform = _platform;
17
+ this.shouldShow = false;
18
+ this._pointerExitEventsInitialized = false;
19
+ this._passiveListeners = [];
20
+ this.unsubscribeAll$ = new Subject();
21
+ }
22
+ ngAfterViewInit() {
23
+ this._setupPointerEnterEventsIfNeeded();
24
+ if (this.item.hint) {
25
+ this._portal = new ComponentPortal(this.item.hint.component, this._viewContainerRef);
26
+ }
27
+ }
28
+ ngOnDestroy() {
29
+ this.unsubscribeAll$.next();
30
+ this.unsubscribeAll$.complete();
31
+ }
32
+ show() {
33
+ if (!this.shouldShow || !this.item.hint || this._isHintVisible()) {
34
+ return;
35
+ }
36
+ const overlayRef = this._createOverlay();
37
+ this._detach();
38
+ const instance = (this._hintInstance = overlayRef.attach(this._portal).instance);
39
+ instance._triggerElement = this._elementRef.nativeElement;
40
+ instance
41
+ .afterHidden()
42
+ .pipe(takeUntil(this.unsubscribeAll$))
43
+ .subscribe(() => this._detach());
44
+ instance.show();
45
+ }
46
+ hide() {
47
+ const instance = this._hintInstance;
48
+ if (instance) {
49
+ this._detach();
50
+ }
51
+ }
52
+ _createOverlay() {
53
+ if (this._overlayRef) {
54
+ const existingStrategy = this._overlayRef.getConfig()
55
+ .positionStrategy;
56
+ // @ts-ignore
57
+ if (!origin && existingStrategy._origin instanceof ElementRef) {
58
+ return this._overlayRef;
59
+ }
60
+ this._detach();
61
+ }
62
+ // Create connected position strategy that listens for scroll events to reposition.
63
+ const strategy = this._overlay
64
+ .position()
65
+ .flexibleConnectedTo(this._elementRef)
66
+ .withPositions([
67
+ {
68
+ originX: "center",
69
+ originY: "bottom",
70
+ overlayX: "start",
71
+ overlayY: "top",
72
+ offsetY: 8
73
+ }
74
+ ])
75
+ .withFlexibleDimensions(false);
76
+ strategy.positionChanges.pipe(takeUntil(this.unsubscribeAll$)).subscribe(change => {
77
+ if (this._hintInstance) {
78
+ if (change.scrollableViewProperties.isOverlayClipped && this._hintInstance.isVisible()) {
79
+ // After position changes occur and the overlay is clipped by
80
+ // a parent scrollable then close the tooltip.
81
+ this._ngZone.run(() => this.hide());
82
+ }
83
+ }
84
+ });
85
+ this._overlayRef = this._overlay.create({
86
+ positionStrategy: strategy
87
+ });
88
+ this._overlayRef
89
+ .detachments()
90
+ .pipe(takeUntil(this.unsubscribeAll$))
91
+ .subscribe(() => this._detach());
92
+ this._overlayRef
93
+ .outsidePointerEvents()
94
+ .pipe(takeUntil(this.unsubscribeAll$))
95
+ .subscribe(() => this._hintInstance?._handleBodyInteraction());
96
+ return this._overlayRef;
97
+ }
98
+ _detach() {
99
+ if (this._overlayRef && this._overlayRef.hasAttached()) {
100
+ this._overlayRef.detach();
101
+ }
102
+ this._hintInstance = null;
103
+ }
104
+ _isHintVisible() {
105
+ return !!this._hintInstance && this._hintInstance.isVisible();
106
+ }
107
+ _setupPointerEnterEventsIfNeeded() {
108
+ // Optimization: Defer hooking up events if there's no message or the tooltip is disabled.
109
+ if (this._passiveListeners.length) {
110
+ return;
111
+ }
112
+ // The mouse events shouldn't be bound on mobile devices, because they can prevent the
113
+ // first tap from firing its click event or can cause the tooltip to open for clicks.
114
+ if (this._platformSupportsMouseEvents()) {
115
+ this._passiveListeners.push([
116
+ "mouseenter",
117
+ () => {
118
+ this._setupPointerExitEventsIfNeeded();
119
+ this.show();
120
+ },
121
+ ]);
122
+ }
123
+ this._addListeners(this._passiveListeners);
124
+ }
125
+ _setupPointerExitEventsIfNeeded() {
126
+ if (this._pointerExitEventsInitialized) {
127
+ return;
128
+ }
129
+ this._pointerExitEventsInitialized = true;
130
+ const exitListeners = [];
131
+ if (this._platformSupportsMouseEvents()) {
132
+ exitListeners.push([
133
+ "mouseleave",
134
+ event => {
135
+ const newTarget = event.relatedTarget;
136
+ if (!newTarget || !this._overlayRef?.overlayElement.contains(newTarget)) {
137
+ this.hide();
138
+ }
139
+ },
140
+ ]);
141
+ }
142
+ this._addListeners(exitListeners);
143
+ this._passiveListeners.push(...exitListeners);
144
+ }
145
+ _platformSupportsMouseEvents() {
146
+ return !this._platform.IOS && !this._platform.ANDROID;
147
+ }
148
+ _addListeners(listeners) {
149
+ listeners.forEach(([event, listener]) => {
150
+ this._elementRef.nativeElement.addEventListener(event, listener);
151
+ });
152
+ }
153
+ }
154
+ NiceShowHintDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceShowHintDirective, deps: [{ token: i1.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.NgZone }, { token: i2.Platform }], target: i0.ɵɵFactoryTarget.Directive });
155
+ NiceShowHintDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: NiceShowHintDirective, selector: "[niceShowHint]", inputs: { shouldShow: "shouldShow", item: "item" }, ngImport: i0 });
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceShowHintDirective, decorators: [{
157
+ type: Directive,
158
+ args: [{ selector: "[niceShowHint]" }]
159
+ }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.NgZone }, { type: i2.Platform }]; }, propDecorators: { shouldShow: [{
160
+ type: Input
161
+ }], item: [{
162
+ type: Input
163
+ }] } });
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1oaW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy9uYXZpZ2F0aW9uL2RpcmVjdGl2ZXMvc2hvdy1oaW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFDLE9BQU8sRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFJM0MsTUFBTSxPQUFPLHFCQUFxQjtJQWU5QixZQUNZLFFBQWlCLEVBQ2pCLFdBQW9DLEVBQ3BDLGlCQUFtQyxFQUNuQyxPQUFlLEVBQ2YsU0FBbUI7UUFKbkIsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQWxCeEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUtsQixrQ0FBNkIsR0FBRyxLQUFLLENBQUM7UUFLN0Isc0JBQWlCLEdBQThELEVBQUUsQ0FBQztRQUNsRixvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFRcEQsQ0FBQztJQUVHLGVBQWU7UUFDbEIsSUFBSSxDQUFDLGdDQUFnQyxFQUFF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LFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7a0hBdExRLHFCQUFxQjtzR0FBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUU7a01BRzlCLFVBQVU7c0JBRGhCLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LCBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gXCJAYW5ndWxhci9jZGsvcGxhdGZvcm1cIjtcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgTmljZU5hdmlnYXRpb25JdGVtIH0gZnJvbSBcIi4uL25hdmlnYXRpb24udHlwZXNcIjtcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiBcIltuaWNlU2hvd0hpbnRdXCIgfSlcbmV4cG9ydCBjbGFzcyBOaWNlU2hvd0hpbnREaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3VsZFNob3cgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGl0ZW06IE5pY2VOYXZpZ2F0aW9uSXRlbTtcblxuICAgIHByaXZhdGUgX3BvaW50ZXJFeGl0RXZlbnRzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9wb3J0YWw6IENvbXBvbmVudFBvcnRhbDxhbnk+O1xuICAgIHByaXZhdGUgX2hpbnRJbnN0YW5jZTogYW55O1xuICAgIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wYXNzaXZlTGlzdGVuZXJzOiAocmVhZG9ubHkgW3N0cmluZywgRXZlbnRMaXN0ZW5lck9yRXZlbnRMaXN0ZW5lck9iamVjdF0pW10gPSBbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVuc3Vic2NyaWJlQWxsJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIF9wbGF0Zm9ybTogUGxhdGZvcm1cbiAgICApIHt9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXR1cFBvaW50ZXJFbnRlckV2ZW50c0lmTmVlZGVkKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXRlbS5oaW50KSB7XG4gICAgICAgICAgICB0aGlzLl9wb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsPGFueT4odGhpcy5pdGVtLmhpbnQuY29tcG9uZW50LCB0aGlzLl92aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZUFsbCQubmV4dCgpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlQWxsJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuc2hvdWxkU2hvdyB8fCAhdGhpcy5pdGVtLmhpbnQgfHwgdGhpcy5faXNIaW50VmlzaWJsZSgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvdmVybGF5UmVmID0gdGhpcy5fY3JlYXRlT3ZlcmxheSgpO1xuICAgICAgICB0aGlzLl9kZXRhY2goKTtcbiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSAodGhpcy5faGludEluc3RhbmNlID0gb3ZlcmxheVJlZi5hdHRhY2godGhpcy5fcG9ydGFsKS5pbnN0YW5jZSk7XG4gICAgICAgIGluc3RhbmNlLl90cmlnZ2VyRWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaW5zdGFuY2VcbiAgICAgICAgICAgIC5hZnRlckhpZGRlbigpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZUFsbCQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9kZXRhY2goKSk7XG5cbiAgICAgICAgaW5zdGFuY2Uuc2hvdygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuX2hpbnRJbnN0YW5jZTtcblxuICAgICAgICBpZiAoaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2RldGFjaCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlT3ZlcmxheSgpOiBPdmVybGF5UmVmIHtcbiAgICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nU3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5UmVmLmdldENvbmZpZygpXG4gICAgICAgICAgICAgICAgLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5O1xuXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBpZiAoIW9yaWdpbiAmJiBleGlzdGluZ1N0cmF0ZWd5Ll9vcmlnaW4gaW5zdGFuY2VvZiBFbGVtZW50UmVmKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX292ZXJsYXlSZWY7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2RldGFjaCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ3JlYXRlIGNvbm5lY3RlZCBwb3NpdGlvbiBzdHJhdGVneSB0aGF0IGxpc3RlbnMgZm9yIHNjcm9sbCBldmVudHMgdG8gcmVwb3NpdGlvbi5cbiAgICAgICAgY29uc3Qgc3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5XG4gICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5fZWxlbWVudFJlZilcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpblg6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICAgICAgICAgIG9yaWdpblk6IFwiYm90dG9tXCIsXG4gICAgICAgICAgICAgICAgICAgIG92ZXJsYXlYOiBcInN0YXJ0XCIsXG4gICAgICAgICAgICAgICAgICAgIG92ZXJsYXlZOiBcInRvcFwiLFxuICAgICAgICAgICAgICAgICAgICBvZmZzZXRZOiA4XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSlcbiAgICAgICAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKGZhbHNlKTtcblxuICAgICAgICBzdHJhdGVneS5wb3NpdGlvbkNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZUFsbCQpKS5zdWJzY3JpYmUoY2hhbmdlID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9oaW50SW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2hhbmdlLnNjcm9sbGFibGVWaWV3UHJvcGVydGllcy5pc092ZXJsYXlDbGlwcGVkICYmIHRoaXMuX2hpbnRJbnN0YW5jZS5pc1Zpc2libGUoKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBBZnRlciBwb3NpdGlvbiBjaGFuZ2VzIG9jY3VyIGFuZCB0aGUgb3ZlcmxheSBpcyBjbGlwcGVkIGJ5XG4gICAgICAgICAgICAgICAgICAgIC8vIGEgcGFyZW50IHNjcm9sbGFibGUgdGhlbiBjbG9zZSB0aGUgdG9vbHRpcC5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiB0aGlzLmhpZGUoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUoe1xuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneTogc3RyYXRlZ3lcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZlxuICAgICAgICAgICAgLmRldGFjaG1lbnRzKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlQWxsJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2RldGFjaCgpKTtcblxuICAgICAgICB0aGlzLl9vdmVybGF5UmVmXG4gICAgICAgICAgICAub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVBbGwkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5faGludEluc3RhbmNlPy5faGFuZGxlQm9keUludGVyYWN0aW9uKCkpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9vdmVybGF5UmVmO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2RldGFjaCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYgJiYgdGhpcy5fb3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faGludEluc3RhbmNlID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9pc0hpbnRWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9oaW50SW5zdGFuY2UgJiYgdGhpcy5faGludEluc3RhbmNlLmlzVmlzaWJsZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldHVwUG9pbnRlckVudGVyRXZlbnRzSWZOZWVkZWQoKSB7XG4gICAgICAgIC8vIE9wdGltaXphdGlvbjogRGVmZXIgaG9va2luZyB1cCBldmVudHMgaWYgdGhlcmUncyBubyBtZXNzYWdlIG9yIHRoZSB0b29sdGlwIGlzIGRpc2FibGVkLlxuICAgICAgICBpZiAodGhpcy5fcGFzc2l2ZUxpc3RlbmVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZSBtb3VzZSBldmVudHMgc2hvdWxkbid0IGJlIGJvdW5kIG9uIG1vYmlsZSBkZXZpY2VzLCBiZWNhdXNlIHRoZXkgY2FuIHByZXZlbnQgdGhlXG4gICAgICAgIC8vIGZpcnN0IHRhcCBmcm9tIGZpcmluZyBpdHMgY2xpY2sgZXZlbnQgb3IgY2FuIGNhdXNlIHRoZSB0b29sdGlwIHRvIG9wZW4gZm9yIGNsaWNrcy5cbiAgICAgICAgaWYgKHRoaXMuX3BsYXRmb3JtU3VwcG9ydHNNb3VzZUV2ZW50cygpKSB7XG4gICAgICAgICAgICB0aGlzLl9wYXNzaXZlTGlzdGVuZXJzLnB1c2goW1xuICAgICAgICAgICAgICAgIFwibW91c2VlbnRlclwiLFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0dXBQb2ludGVyRXhpdEV2ZW50c0lmTmVlZGVkKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvdygpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2FkZExpc3RlbmVycyh0aGlzLl9wYXNzaXZlTGlzdGVuZXJzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXR1cFBvaW50ZXJFeGl0RXZlbnRzSWZOZWVkZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLl9wb2ludGVyRXhpdEV2ZW50c0luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcG9pbnRlckV4aXRFdmVudHNJbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICAgICAgY29uc3QgZXhpdExpc3RlbmVyczogKHJlYWRvbmx5IFtzdHJpbmcsIEV2ZW50TGlzdGVuZXJPckV2ZW50TGlzdGVuZXJPYmplY3RdKVtdID0gW107XG4gICAgICAgIGlmICh0aGlzLl9wbGF0Zm9ybVN1cHBvcnRzTW91c2VFdmVudHMoKSkge1xuICAgICAgICAgICAgZXhpdExpc3RlbmVycy5wdXNoKFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgXCJtb3VzZWxlYXZlXCIsXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1RhcmdldCA9IChldmVudCBhcyBNb3VzZUV2ZW50KS5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUgfCBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFuZXdUYXJnZXQgfHwgIXRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50LmNvbnRhaW5zKG5ld1RhcmdldCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fYWRkTGlzdGVuZXJzKGV4aXRMaXN0ZW5lcnMpO1xuICAgICAgICB0aGlzLl9wYXNzaXZlTGlzdGVuZXJzLnB1c2goLi4uZXhpdExpc3RlbmVycyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcGxhdGZvcm1TdXBwb3J0c01vdXNlRXZlbnRzKCkge1xuICAgICAgICByZXR1cm4gIXRoaXMuX3BsYXRmb3JtLklPUyAmJiAhdGhpcy5fcGxhdGZvcm0uQU5EUk9JRDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9hZGRMaXN0ZW5lcnMobGlzdGVuZXJzOiAocmVhZG9ubHkgW3N0cmluZywgRXZlbnRMaXN0ZW5lck9yRXZlbnRMaXN0ZW5lck9iamVjdF0pW10pIHtcbiAgICAgICAgbGlzdGVuZXJzLmZvckVhY2goKFtldmVudCwgbGlzdGVuZXJdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgbGlzdGVuZXIpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=