@smarterplan/ngx-smarterplan-core 1.2.50 → 1.2.52
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.
- package/esm2020/lib/components/menu-bar/menu-bar.component.mjs +167 -30
- package/esm2020/lib/components/menu-bar/navigation-bar/navigation-bar.component.mjs +15 -10
- package/esm2020/lib/ngx-smarterplan-core.module.mjs +1 -4
- package/esm2020/lib/services/filter.service.mjs +5 -1
- package/esm2020/lib/services/models/measurement.service.mjs +11 -2
- package/fesm2015/smarterplan-ngx-smarterplan-core.mjs +277 -263
- package/fesm2015/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/fesm2020/smarterplan-ngx-smarterplan-core.mjs +268 -256
- package/fesm2020/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/lib/components/menu-bar/menu-bar.component.d.ts +33 -2
- package/lib/components/menu-bar/navigation-bar/navigation-bar.component.d.ts +4 -1
- package/lib/ngx-smarterplan-core.module.d.ts +9 -10
- package/package.json +1 -1
- package/esm2020/lib/components/menu-bar/range-date-picker/range-date-picker.component.mjs +0 -147
- package/lib/components/menu-bar/range-date-picker/range-date-picker.component.d.ts +0 -35
|
@@ -7,6 +7,9 @@ import { SupportService } from '../../services/support.service';
|
|
|
7
7
|
import { BaseUserService } from '../../services/user.service';
|
|
8
8
|
import { ProfileEntity, Mission } from '../../types.service';
|
|
9
9
|
import { BaseVisibilityService } from '../../services/baseVisibility.service';
|
|
10
|
+
import { NgbDate, NgbCalendar, NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';
|
|
11
|
+
import { AmplifyCacheService } from '../../services/amplify-cache.service';
|
|
12
|
+
import { FilterService } from '../../services/filter.service';
|
|
10
13
|
import * as i0 from "@angular/core";
|
|
11
14
|
export declare class MenuBarComponent implements OnInit {
|
|
12
15
|
private router;
|
|
@@ -15,6 +18,10 @@ export declare class MenuBarComponent implements OnInit {
|
|
|
15
18
|
private navigatorService;
|
|
16
19
|
private supportService;
|
|
17
20
|
private baseVisibilityService;
|
|
21
|
+
calendar: NgbCalendar;
|
|
22
|
+
formatter: NgbDateParserFormatter;
|
|
23
|
+
private filterService;
|
|
24
|
+
private cacheService;
|
|
18
25
|
user: ProfileEntity;
|
|
19
26
|
mission: Mission;
|
|
20
27
|
isCollapsed: boolean;
|
|
@@ -24,8 +31,22 @@ export declare class MenuBarComponent implements OnInit {
|
|
|
24
31
|
isManager: boolean;
|
|
25
32
|
userSubscription: Subscription;
|
|
26
33
|
navSubscription: Subscription;
|
|
27
|
-
|
|
34
|
+
hoveredDate: NgbDate | null;
|
|
35
|
+
fromDate: NgbDate | null;
|
|
36
|
+
toDate: NgbDate | null;
|
|
37
|
+
cacheName: string | null;
|
|
38
|
+
cache: {
|
|
39
|
+
from: number;
|
|
40
|
+
to: number;
|
|
41
|
+
} | null;
|
|
42
|
+
isDateFilterApplied: boolean;
|
|
43
|
+
dateChanged: boolean;
|
|
44
|
+
changePositionSubscription?: Subscription;
|
|
45
|
+
private searchInput?;
|
|
46
|
+
filterSubscription: any;
|
|
47
|
+
constructor(router: Router, localeService: LocaleService, userService: BaseUserService, navigatorService: NavigatorService, supportService: SupportService, baseVisibilityService: BaseVisibilityService, calendar: NgbCalendar, formatter: NgbDateParserFormatter, filterService: FilterService, cacheService: AmplifyCacheService);
|
|
28
48
|
ngOnInit(): void;
|
|
49
|
+
private onSearchKeydown;
|
|
29
50
|
ngAfterViewInit(): void;
|
|
30
51
|
ngOnDestroy(): void;
|
|
31
52
|
signOut(): Promise<void>;
|
|
@@ -34,6 +55,16 @@ export declare class MenuBarComponent implements OnInit {
|
|
|
34
55
|
onToggleVisible(): void;
|
|
35
56
|
openSupportForm(): void;
|
|
36
57
|
onChangePositionClick(): void;
|
|
58
|
+
getNgbDate(date: number): NgbDate;
|
|
59
|
+
onDateSelection(date: NgbDate): void;
|
|
60
|
+
isDateChanged(): void;
|
|
61
|
+
isHovered(date: NgbDate): boolean;
|
|
62
|
+
isInside(date: NgbDate): boolean;
|
|
63
|
+
isRange(date: NgbDate): boolean;
|
|
64
|
+
validateInput(currentValue: NgbDate | null, input: string): NgbDate | null;
|
|
65
|
+
emitRange(): void;
|
|
66
|
+
onClearDates(): void;
|
|
67
|
+
onApply(): void;
|
|
37
68
|
static ɵfac: i0.ɵɵFactoryDeclaration<MenuBarComponent, never>;
|
|
38
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MenuBarComponent, "lib-menu-bar", never, {}, {}, never, never>;
|
|
69
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MenuBarComponent, "lib-menu-bar", never, { "cacheName": "cacheName"; }, {}, never, never>;
|
|
39
70
|
}
|
|
@@ -9,6 +9,7 @@ import { ViewerService } from '../../../services/viewer.service';
|
|
|
9
9
|
import { Space, Visit, Zone } from '../../../types.service';
|
|
10
10
|
import { BaseUserService } from '../../../services/user.service';
|
|
11
11
|
import { ZoneChangeService } from "../../../services/zoneChange.service";
|
|
12
|
+
import { BaseVisibilityService } from '../../../services/baseVisibility.service';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
14
|
export declare class NavigationBarComponent implements OnInit {
|
|
14
15
|
private router;
|
|
@@ -19,6 +20,7 @@ export declare class NavigationBarComponent implements OnInit {
|
|
|
19
20
|
private viewerService;
|
|
20
21
|
private navigatorService;
|
|
21
22
|
private zoneChangeService;
|
|
23
|
+
private baseVisibilityService;
|
|
22
24
|
awsKinesisAnalytics: any;
|
|
23
25
|
navbarSelectMenu: any;
|
|
24
26
|
locations: Space[];
|
|
@@ -38,7 +40,7 @@ export declare class NavigationBarComponent implements OnInit {
|
|
|
38
40
|
floorToGo: Zone;
|
|
39
41
|
destroy$: Subject<unknown>;
|
|
40
42
|
navEvents: Observable<NavigationEnd>;
|
|
41
|
-
constructor(awsKinesisAnalyticsInjected: any, router: Router, spaceService: SpaceService, userService: BaseUserService, zoneService: ZoneService, visitService: VisitService, viewerService: ViewerService, navigatorService: NavigatorService, zoneChangeService: ZoneChangeService);
|
|
43
|
+
constructor(awsKinesisAnalyticsInjected: any, router: Router, spaceService: SpaceService, userService: BaseUserService, zoneService: ZoneService, visitService: VisitService, viewerService: ViewerService, navigatorService: NavigatorService, zoneChangeService: ZoneChangeService, baseVisibilityService: BaseVisibilityService);
|
|
42
44
|
ngOnInit(): Promise<void>;
|
|
43
45
|
ngOnDestroy(): void;
|
|
44
46
|
handleStartUrl(): void;
|
|
@@ -68,6 +70,7 @@ export declare class NavigationBarComponent implements OnInit {
|
|
|
68
70
|
goToSweepOrFloor(): void;
|
|
69
71
|
canGo(): boolean;
|
|
70
72
|
showLocation(): string;
|
|
73
|
+
onHideClick(): void;
|
|
71
74
|
static ɵfac: i0.ɵɵFactoryDeclaration<NavigationBarComponent, never>;
|
|
72
75
|
static ɵcmp: i0.ɵɵComponentDeclaration<NavigationBarComponent, "lib-navigation-bar", never, {}, {}, never, never>;
|
|
73
76
|
}
|
|
@@ -12,18 +12,17 @@ import * as i8 from "./components/modal-switch-visit/modal-switch-visit.componen
|
|
|
12
12
|
import * as i9 from "./components/menu-bar/menu-bar.component";
|
|
13
13
|
import * as i10 from "./components/menu-bar/avatar/avatar.component";
|
|
14
14
|
import * as i11 from "./components/menu-bar/navigation-bar/navigation-bar.component";
|
|
15
|
-
import * as i12 from "./components/
|
|
16
|
-
import * as i13 from "./components/
|
|
17
|
-
import * as i14 from "./
|
|
18
|
-
import * as i15 from "
|
|
19
|
-
import * as i16 from "@angular/
|
|
20
|
-
import * as i17 from "@angular/
|
|
21
|
-
import * as i18 from "@
|
|
22
|
-
import * as i19 from "@
|
|
23
|
-
import * as i20 from "@ngx-translate/core";
|
|
15
|
+
import * as i12 from "./components/loader/loader.component";
|
|
16
|
+
import * as i13 from "./components/support-modal/support-modal.component";
|
|
17
|
+
import * as i14 from "./pipes/format-date-number-to-digits.pipe";
|
|
18
|
+
import * as i15 from "@angular/forms";
|
|
19
|
+
import * as i16 from "@angular/common";
|
|
20
|
+
import * as i17 from "@angular/router";
|
|
21
|
+
import * as i18 from "@ng-bootstrap/ng-bootstrap";
|
|
22
|
+
import * as i19 from "@ngx-translate/core";
|
|
24
23
|
export declare class NgxSmarterplanCoreModule {
|
|
25
24
|
static forRoot(config: Config): ModuleWithProviders<NgxSmarterplanCoreModule>;
|
|
26
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgxSmarterplanCoreModule, never>;
|
|
27
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxSmarterplanCoreModule, [typeof i1.TimeDateToLocalStringPipe, typeof i2.SafeUrlPipe, typeof i3.HashtagFromIdPipe, typeof i4.DurationToStringPipe, typeof i5.CsvExportComponent, typeof i6.SearchBarComponent, typeof i7.UsernameFromIdPipe, typeof i8.ModalSwitchVisitComponent, typeof i9.MenuBarComponent, typeof i10.AvatarComponent, typeof i11.NavigationBarComponent, typeof i12.
|
|
26
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxSmarterplanCoreModule, [typeof i1.TimeDateToLocalStringPipe, typeof i2.SafeUrlPipe, typeof i3.HashtagFromIdPipe, typeof i4.DurationToStringPipe, typeof i5.CsvExportComponent, typeof i6.SearchBarComponent, typeof i7.UsernameFromIdPipe, typeof i8.ModalSwitchVisitComponent, typeof i9.MenuBarComponent, typeof i10.AvatarComponent, typeof i11.NavigationBarComponent, typeof i12.LoaderComponent, typeof i13.SupportModalComponent, typeof i14.FormatDateNumberToDigitsPipe], [typeof i15.FormsModule, typeof i15.ReactiveFormsModule, typeof i16.CommonModule, typeof i17.RouterModule, typeof i18.NgbModule, typeof i19.TranslateModule], [typeof i5.CsvExportComponent, typeof i6.SearchBarComponent, typeof i1.TimeDateToLocalStringPipe, typeof i2.SafeUrlPipe, typeof i3.HashtagFromIdPipe, typeof i4.DurationToStringPipe, typeof i7.UsernameFromIdPipe, typeof i9.MenuBarComponent, typeof i12.LoaderComponent, typeof i13.SupportModalComponent, typeof i10.AvatarComponent]>;
|
|
28
27
|
static ɵinj: i0.ɵɵInjectorDeclaration<NgxSmarterplanCoreModule>;
|
|
29
28
|
}
|
package/package.json
CHANGED
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { NgbDate, } from '@ng-bootstrap/ng-bootstrap';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
5
|
-
import * as i2 from "../../../services/filter.service";
|
|
6
|
-
import * as i3 from "../../../services/amplify-cache.service";
|
|
7
|
-
import * as i4 from "@angular/forms";
|
|
8
|
-
import * as i5 from "@angular/common";
|
|
9
|
-
import * as i6 from "../../../pipes/format-date-number-to-digits.pipe";
|
|
10
|
-
import * as i7 from "@ngx-translate/core";
|
|
11
|
-
export class RangeDatePickerComponent {
|
|
12
|
-
constructor(calendar, formatter, filterService, cacheService) {
|
|
13
|
-
this.calendar = calendar;
|
|
14
|
-
this.formatter = formatter;
|
|
15
|
-
this.filterService = filterService;
|
|
16
|
-
this.cacheService = cacheService;
|
|
17
|
-
this.hoveredDate = null;
|
|
18
|
-
this.isDateFilterApplied = false;
|
|
19
|
-
this.dateChanged = false;
|
|
20
|
-
// this.fromDate = calendar.getPrev(calendar.getToday(), "d", 30);
|
|
21
|
-
// this.toDate = calendar.getToday();
|
|
22
|
-
}
|
|
23
|
-
ngOnInit() {
|
|
24
|
-
if (this.cacheName) {
|
|
25
|
-
this.cache = this.cacheService.getFromCache(this.cacheName);
|
|
26
|
-
}
|
|
27
|
-
if (this.cache) {
|
|
28
|
-
this.isDateFilterApplied = true;
|
|
29
|
-
let { from, to } = this.cache;
|
|
30
|
-
this.toDate = this.getNgbDate(to);
|
|
31
|
-
this.fromDate = this.getNgbDate(from);
|
|
32
|
-
localStorage.setItem('startDate', from.toString());
|
|
33
|
-
localStorage.setItem('endDate', to.toString());
|
|
34
|
-
this.filterService.dateFilterUpdated([new Date(from), new Date(to)]);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
const currentDate = new Date().getTime(); //get current timestamp
|
|
38
|
-
const thirtyDaysAgoDate = currentDate - 30 * 24 * 60 * 60 * 1000; //substract 30 days in miliseconds from the current timestamp
|
|
39
|
-
// add dates to localstorage for retool urlsParams
|
|
40
|
-
localStorage.setItem('startDate', thirtyDaysAgoDate.toString());
|
|
41
|
-
localStorage.setItem('endDate', currentDate.toString());
|
|
42
|
-
// updates date range dates to last 30 days ranges from today
|
|
43
|
-
this.fromDate = this.getNgbDate(thirtyDaysAgoDate);
|
|
44
|
-
this.toDate = this.getNgbDate(currentDate);
|
|
45
|
-
this.filterService.dateFilterUpdated([
|
|
46
|
-
new Date(thirtyDaysAgoDate.toString()),
|
|
47
|
-
new Date(currentDate.toString()),
|
|
48
|
-
]);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
getNgbDate(date) {
|
|
52
|
-
let dt = new Date(date);
|
|
53
|
-
dt.setMinutes(dt.getMinutes() - dt.getTimezoneOffset()); // convert to UTC
|
|
54
|
-
return new NgbDate(dt.getUTCFullYear(), dt.getUTCMonth() + 1, dt.getUTCDate());
|
|
55
|
-
}
|
|
56
|
-
onDateSelection(date) {
|
|
57
|
-
if (!this.fromDate && !this.toDate) {
|
|
58
|
-
this.fromDate = date;
|
|
59
|
-
}
|
|
60
|
-
else if (this.fromDate &&
|
|
61
|
-
!this.toDate &&
|
|
62
|
-
date &&
|
|
63
|
-
date.after(this.fromDate)) {
|
|
64
|
-
this.toDate = date;
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
this.toDate = null;
|
|
68
|
-
this.fromDate = date;
|
|
69
|
-
}
|
|
70
|
-
this.isDateChanged();
|
|
71
|
-
}
|
|
72
|
-
isDateChanged() {
|
|
73
|
-
if (this.fromDate && this.toDate) {
|
|
74
|
-
if (this.cache) {
|
|
75
|
-
this.dateChanged =
|
|
76
|
-
!this.fromDate.equals(this.getNgbDate(this.cache.from)) ||
|
|
77
|
-
!this.toDate.equals(this.getNgbDate(this.cache.to));
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
isHovered(date) {
|
|
82
|
-
return (this.fromDate &&
|
|
83
|
-
!this.toDate &&
|
|
84
|
-
this.hoveredDate &&
|
|
85
|
-
date.after(this.fromDate) &&
|
|
86
|
-
date.before(this.hoveredDate));
|
|
87
|
-
}
|
|
88
|
-
isInside(date) {
|
|
89
|
-
return this.toDate && date.after(this.fromDate) && date.before(this.toDate);
|
|
90
|
-
}
|
|
91
|
-
isRange(date) {
|
|
92
|
-
return (date.equals(this.fromDate) ||
|
|
93
|
-
(this.toDate && date.equals(this.toDate)) ||
|
|
94
|
-
this.isInside(date) ||
|
|
95
|
-
this.isHovered(date));
|
|
96
|
-
}
|
|
97
|
-
validateInput(currentValue, input) {
|
|
98
|
-
const parsed = this.formatter.parse(input);
|
|
99
|
-
return parsed && this.calendar.isValid(NgbDate.from(parsed))
|
|
100
|
-
? NgbDate.from(parsed)
|
|
101
|
-
: currentValue;
|
|
102
|
-
}
|
|
103
|
-
emitRange() {
|
|
104
|
-
if (this.fromDate && this.toDate) {
|
|
105
|
-
const from = new Date(this.fromDate.year, this.fromDate.month - 1, this.fromDate.day);
|
|
106
|
-
const to = new Date(this.toDate.year, this.toDate.month - 1, this.toDate.day, 23, 59);
|
|
107
|
-
this.cacheService.putInCache(this.cacheName, {
|
|
108
|
-
from: from.getTime(),
|
|
109
|
-
to: to.getTime(),
|
|
110
|
-
});
|
|
111
|
-
this.filterService.dateFilterUpdated([from, to]);
|
|
112
|
-
this.isDateFilterApplied = true;
|
|
113
|
-
this.dateChanged = false;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
onClearDates() {
|
|
117
|
-
this.fromDate = null;
|
|
118
|
-
this.toDate = null;
|
|
119
|
-
this.isDateFilterApplied = false;
|
|
120
|
-
this.cacheService.removeFromCache(this.cacheName);
|
|
121
|
-
this.filterService.dateFilterUpdated(null);
|
|
122
|
-
}
|
|
123
|
-
onApply() {
|
|
124
|
-
if (this.fromDate && this.toDate) {
|
|
125
|
-
this.emitRange();
|
|
126
|
-
}
|
|
127
|
-
//transform ngbDate to date objet then put dates in timestamp in localStorage to share it with Retool
|
|
128
|
-
if (this.fromDate) {
|
|
129
|
-
const startDate = new Date(this.fromDate.year, this.fromDate.month - 1, this.fromDate.day);
|
|
130
|
-
localStorage.setItem('startDate', startDate.getTime().toString());
|
|
131
|
-
console.log('test setItem from : ' + startDate.getTime().toString());
|
|
132
|
-
}
|
|
133
|
-
if (this.toDate) {
|
|
134
|
-
const endDate = new Date(this.toDate.year, this.toDate.month - 1, this.toDate.day);
|
|
135
|
-
localStorage.setItem('endDate', endDate.getTime().toString());
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
RangeDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: RangeDatePickerComponent, deps: [{ token: i1.NgbCalendar }, { token: i1.NgbDateParserFormatter }, { token: i2.FilterService }, { token: i3.AmplifyCacheService }], target: i0.ɵɵFactoryTarget.Component });
|
|
140
|
-
RangeDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: RangeDatePickerComponent, selector: "lib-range-date-picker", inputs: { cacheName: "cacheName" }, ngImport: i0, template: "<form class=\"form-inline p-0 m-0 flex-nowrap flex-column flex-sm-row\">\r\n <div class=\"m-1\">\r\n <div class=\"input-group date-selector\">\r\n <input #dpFromDate class=\"form-control\" placeholder=\"dd/MM/yyyy\" name=\"dpFromDate\"\r\n [value]=\"fromDate | formatDateNumberToDigits\"\r\n (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"datepicker.toggle()\" type=\"button\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"m-1\">\r\n <div class=\"input-group date-selector\">\r\n <input #dpToDate class=\"form-control\" placeholder=\"dd/MM/yyyy\" name=\"dpToDate\"\r\n [value]=\"toDate | formatDateNumberToDigits\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"datepicker.toggle()\" type=\"button\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"confirmation-button\">\r\n <div class=\"input-group\">\r\n <input name=\"datepicker\" class=\"form-control d-none\" ngbDatepicker #datepicker=\"ngbDatepicker\"\r\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\" [dayTemplate]=\"t\"\r\n outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\">\r\n <ng-template #t let-date let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.focused]=\"focused\" [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n </ng-template>\r\n </div>\r\n <button class=\"btn btn-outline-primary rounded-pill ms-1\" (click)=\"onApply()\"\r\n *ngIf=\"!isDateFilterApplied || dateChanged\">\r\n {{'Apply' | translate}}\r\n </button>\r\n <span class=\"appliedText ms-1\" *ngIf=\"isDateFilterApplied && !dateChanged\">\r\n <span class=\"iconify\" data-icon=\"ion:checkmark\" data-width=\"15\" data-height=\"15\"></span>\r\n {{\"Applied\" | translate}}\r\n </span>\r\n <button class=\"btn btn-outline-primary rounded-pill ms-1\" (click)=\"onClearDates()\">{{'Clear' |\r\n translate}}</button>\r\n </div>\r\n</form>", styles: [".hidden{width:0;margin:0;border:none;padding:0}.custom-day{text-align:center;padding:.185rem .25rem;display:inline-block;height:2rem;width:2rem}.custom-day.focused{background-color:#e6e6e6}.custom-day.range,.custom-day:hover{background-color:var(--smarterplan-primary-lighter);color:#fff}.custom-day.faded{background-color:var(--smarterplan-primary-transparent)}.calendar{height:100%}.appliedText,.appliedText span{color:var(--smarterplan-primary)}@media (max-width: 767px){.form-inline{flex-direction:column}}.hidden{opacity:0}.confirmation-button{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:.5rem}.date-selector{max-width:160px}\n"], directives: [{ type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "formatDateNumberToDigits": i6.FormatDateNumberToDigitsPipe, "translate": i7.TranslatePipe } });
|
|
141
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: RangeDatePickerComponent, decorators: [{
|
|
142
|
-
type: Component,
|
|
143
|
-
args: [{ selector: 'lib-range-date-picker', template: "<form class=\"form-inline p-0 m-0 flex-nowrap flex-column flex-sm-row\">\r\n <div class=\"m-1\">\r\n <div class=\"input-group date-selector\">\r\n <input #dpFromDate class=\"form-control\" placeholder=\"dd/MM/yyyy\" name=\"dpFromDate\"\r\n [value]=\"fromDate | formatDateNumberToDigits\"\r\n (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"datepicker.toggle()\" type=\"button\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"m-1\">\r\n <div class=\"input-group date-selector\">\r\n <input #dpToDate class=\"form-control\" placeholder=\"dd/MM/yyyy\" name=\"dpToDate\"\r\n [value]=\"toDate | formatDateNumberToDigits\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"datepicker.toggle()\" type=\"button\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"confirmation-button\">\r\n <div class=\"input-group\">\r\n <input name=\"datepicker\" class=\"form-control d-none\" ngbDatepicker #datepicker=\"ngbDatepicker\"\r\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\" [dayTemplate]=\"t\"\r\n outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\">\r\n <ng-template #t let-date let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.focused]=\"focused\" [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n </ng-template>\r\n </div>\r\n <button class=\"btn btn-outline-primary rounded-pill ms-1\" (click)=\"onApply()\"\r\n *ngIf=\"!isDateFilterApplied || dateChanged\">\r\n {{'Apply' | translate}}\r\n </button>\r\n <span class=\"appliedText ms-1\" *ngIf=\"isDateFilterApplied && !dateChanged\">\r\n <span class=\"iconify\" data-icon=\"ion:checkmark\" data-width=\"15\" data-height=\"15\"></span>\r\n {{\"Applied\" | translate}}\r\n </span>\r\n <button class=\"btn btn-outline-primary rounded-pill ms-1\" (click)=\"onClearDates()\">{{'Clear' |\r\n translate}}</button>\r\n </div>\r\n</form>", styles: [".hidden{width:0;margin:0;border:none;padding:0}.custom-day{text-align:center;padding:.185rem .25rem;display:inline-block;height:2rem;width:2rem}.custom-day.focused{background-color:#e6e6e6}.custom-day.range,.custom-day:hover{background-color:var(--smarterplan-primary-lighter);color:#fff}.custom-day.faded{background-color:var(--smarterplan-primary-transparent)}.calendar{height:100%}.appliedText,.appliedText span{color:var(--smarterplan-primary)}@media (max-width: 767px){.form-inline{flex-direction:column}}.hidden{opacity:0}.confirmation-button{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:.5rem}.date-selector{max-width:160px}\n"] }]
|
|
144
|
-
}], ctorParameters: function () { return [{ type: i1.NgbCalendar }, { type: i1.NgbDateParserFormatter }, { type: i2.FilterService }, { type: i3.AmplifyCacheService }]; }, propDecorators: { cacheName: [{
|
|
145
|
-
type: Input
|
|
146
|
-
}] } });
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL21lbnUtYmFyL3JhbmdlLWRhdGUtcGlja2VyL3JhbmdlLWRhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9tZW51LWJhci9yYW5nZS1kYXRlLXBpY2tlci9yYW5nZS1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsT0FBTyxHQUdSLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7OztBQVNwQyxNQUFNLE9BQU8sd0JBQXdCO0lBZW5DLFlBQ1UsUUFBcUIsRUFDdEIsU0FBaUMsRUFDaEMsYUFBNEIsRUFDNUIsWUFBaUM7UUFIakMsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUF3QjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFsQjNDLGdCQUFXLEdBQW1CLElBQUksQ0FBQztRQVVuQyx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFFckMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFRM0Isa0VBQWtFO1FBQ2xFLHFDQUFxQztJQUN2QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM3RDtRQUNELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7WUFDaEMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFdEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDbkQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0RTthQUFNO1lBQ0wsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLHVCQUF1QjtZQUNqRSxNQUFNLGlCQUFpQixHQUFHLFdBQVcsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsNkRBQTZEO1lBRS9ILGtEQUFrRDtZQUNsRCxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ2hFLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBRXhELDZEQUE2RDtZQUM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFM0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDbkMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNqQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsSUFBWTtRQUNyQixJQUFJLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCO1FBQzFFLE9BQU8sSUFBSSxPQUFPLENBQ2hCLEVBQUUsQ0FBQyxjQUFjLEVBQUUsRUFDbkIsRUFBRSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsRUFDcEIsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFhO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN0QjthQUFNLElBQ0wsSUFBSSxDQUFDLFFBQVE7WUFDYixDQUFDLElBQUksQ0FBQyxNQUFNO1lBQ1osSUFBSTtZQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUN6QjtZQUNBLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3BCO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN0QjtRQUNELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDZCxJQUFJLENBQUMsV0FBVztvQkFDZCxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDdkQsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN2RDtTQUNGO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFhO1FBQ3JCLE9BQU8sQ0FDTCxJQUFJLENBQUMsUUFBUTtZQUNiLENBQUMsSUFBSSxDQUFDLE1BQU07WUFDWixJQUFJLENBQUMsV0FBVztZQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQzlCLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBYTtRQUNuQixPQUFPLENBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzFCLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FBQyxZQUE0QixFQUFFLEtBQWE7UUFDdkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsT0FBTyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxRCxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDdEIsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUNuQixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hDLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FDbEIsQ0FBQztZQUNGLE1BQU0sRUFBRSxHQUFHLElBQUksSUFBSSxDQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFDZixFQUFFLEVBQ0YsRUFBRSxDQUNILENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUMzQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDcEIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUU7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7WUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDbEI7UUFFRCxxR0FBcUc7UUFDckcsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxDQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FDbEIsQ0FBQztZQUNGLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ2xFLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDdEU7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsRUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQ2hCLENBQUM7WUFDRixZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUMvRDtJQUNILENBQUM7O3NIQW5MVSx3QkFBd0I7MEdBQXhCLHdCQUF3QixpR0NkckMsNG9GQTRDTzs0RkQ5Qk0sd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHVCQUF1QjtxTUFXeEIsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIE5nYkRhdGUsXHJcbiAgTmdiQ2FsZW5kYXIsXHJcbiAgTmdiRGF0ZVBhcnNlckZvcm1hdHRlcixcclxufSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IEFtcGxpZnlDYWNoZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hbXBsaWZ5LWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmlsdGVyLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcmFuZ2UtZGF0ZS1waWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yYW5nZS1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmFuZ2UtZGF0ZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJhbmdlRGF0ZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgaG92ZXJlZERhdGU6IE5nYkRhdGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgZnJvbURhdGU6IE5nYkRhdGUgfCBudWxsO1xyXG5cclxuICB0b0RhdGU6IE5nYkRhdGUgfCBudWxsO1xyXG5cclxuICBASW5wdXQoKSBjYWNoZU5hbWU6IHN0cmluZyB8IG51bGw7XHJcblxyXG4gIGNhY2hlOiB7IGZyb206IG51bWJlcjsgdG86IG51bWJlciB9IHwgbnVsbDtcclxuXHJcbiAgaXNEYXRlRmlsdGVyQXBwbGllZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBkYXRlQ2hhbmdlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2FsZW5kYXI6IE5nYkNhbGVuZGFyLFxyXG4gICAgcHVibGljIGZvcm1hdHRlcjogTmdiRGF0ZVBhcnNlckZvcm1hdHRlcixcclxuICAgIHByaXZhdGUgZmlsdGVyU2VydmljZTogRmlsdGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgY2FjaGVTZXJ2aWNlOiBBbXBsaWZ5Q2FjaGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICAvLyB0aGlzLmZyb21EYXRlID0gY2FsZW5kYXIuZ2V0UHJldihjYWxlbmRhci5nZXRUb2RheSgpLCBcImRcIiwgMzApO1xyXG4gICAgLy8gdGhpcy50b0RhdGUgPSBjYWxlbmRhci5nZXRUb2RheSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jYWNoZU5hbWUpIHtcclxuICAgICAgdGhpcy5jYWNoZSA9IHRoaXMuY2FjaGVTZXJ2aWNlLmdldEZyb21DYWNoZSh0aGlzLmNhY2hlTmFtZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jYWNoZSkge1xyXG4gICAgICB0aGlzLmlzRGF0ZUZpbHRlckFwcGxpZWQgPSB0cnVlO1xyXG4gICAgICBsZXQgeyBmcm9tLCB0byB9ID0gdGhpcy5jYWNoZTtcclxuICAgICAgdGhpcy50b0RhdGUgPSB0aGlzLmdldE5nYkRhdGUodG8pO1xyXG4gICAgICB0aGlzLmZyb21EYXRlID0gdGhpcy5nZXROZ2JEYXRlKGZyb20pO1xyXG5cclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3N0YXJ0RGF0ZScsIGZyb20udG9TdHJpbmcoKSk7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdlbmREYXRlJywgdG8udG9TdHJpbmcoKSk7XHJcbiAgICAgIHRoaXMuZmlsdGVyU2VydmljZS5kYXRlRmlsdGVyVXBkYXRlZChbbmV3IERhdGUoZnJvbSksIG5ldyBEYXRlKHRvKV0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsgLy9nZXQgY3VycmVudCB0aW1lc3RhbXBcclxuICAgICAgY29uc3QgdGhpcnR5RGF5c0Fnb0RhdGUgPSBjdXJyZW50RGF0ZSAtIDMwICogMjQgKiA2MCAqIDYwICogMTAwMDsgLy9zdWJzdHJhY3QgMzAgZGF5cyBpbiBtaWxpc2Vjb25kcyBmcm9tIHRoZSBjdXJyZW50IHRpbWVzdGFtcFxyXG5cclxuICAgICAgLy8gYWRkIGRhdGVzIHRvIGxvY2Fsc3RvcmFnZSBmb3IgcmV0b29sIHVybHNQYXJhbXNcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3N0YXJ0RGF0ZScsIHRoaXJ0eURheXNBZ29EYXRlLnRvU3RyaW5nKCkpO1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZW5kRGF0ZScsIGN1cnJlbnREYXRlLnRvU3RyaW5nKCkpO1xyXG5cclxuICAgICAgLy8gdXBkYXRlcyBkYXRlIHJhbmdlIGRhdGVzIHRvIGxhc3QgMzAgZGF5cyByYW5nZXMgZnJvbSB0b2RheVxyXG4gICAgICB0aGlzLmZyb21EYXRlID0gdGhpcy5nZXROZ2JEYXRlKHRoaXJ0eURheXNBZ29EYXRlKTtcclxuICAgICAgdGhpcy50b0RhdGUgPSB0aGlzLmdldE5nYkRhdGUoY3VycmVudERhdGUpO1xyXG5cclxuICAgICAgdGhpcy5maWx0ZXJTZXJ2aWNlLmRhdGVGaWx0ZXJVcGRhdGVkKFtcclxuICAgICAgICBuZXcgRGF0ZSh0aGlydHlEYXlzQWdvRGF0ZS50b1N0cmluZygpKSxcclxuICAgICAgICBuZXcgRGF0ZShjdXJyZW50RGF0ZS50b1N0cmluZygpKSxcclxuICAgICAgXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXROZ2JEYXRlKGRhdGU6IG51bWJlcik6IE5nYkRhdGUge1xyXG4gICAgbGV0IGR0ID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICBkdC5zZXRNaW51dGVzKGR0LmdldE1pbnV0ZXMoKSAtIGR0LmdldFRpbWV6b25lT2Zmc2V0KCkpOyAvLyBjb252ZXJ0IHRvIFVUQ1xyXG4gICAgcmV0dXJuIG5ldyBOZ2JEYXRlKFxyXG4gICAgICBkdC5nZXRVVENGdWxsWWVhcigpLFxyXG4gICAgICBkdC5nZXRVVENNb250aCgpICsgMSxcclxuICAgICAgZHQuZ2V0VVRDRGF0ZSgpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgb25EYXRlU2VsZWN0aW9uKGRhdGU6IE5nYkRhdGUpIHtcclxuICAgIGlmICghdGhpcy5mcm9tRGF0ZSAmJiAhdGhpcy50b0RhdGUpIHtcclxuICAgICAgdGhpcy5mcm9tRGF0ZSA9IGRhdGU7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICB0aGlzLmZyb21EYXRlICYmXHJcbiAgICAgICF0aGlzLnRvRGF0ZSAmJlxyXG4gICAgICBkYXRlICYmXHJcbiAgICAgIGRhdGUuYWZ0ZXIodGhpcy5mcm9tRGF0ZSlcclxuICAgICkge1xyXG4gICAgICB0aGlzLnRvRGF0ZSA9IGRhdGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRvRGF0ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuZnJvbURhdGUgPSBkYXRlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc0RhdGVDaGFuZ2VkKCk7XHJcbiAgfVxyXG5cclxuICBpc0RhdGVDaGFuZ2VkKCkge1xyXG4gICAgaWYgKHRoaXMuZnJvbURhdGUgJiYgdGhpcy50b0RhdGUpIHtcclxuICAgICAgaWYgKHRoaXMuY2FjaGUpIHtcclxuICAgICAgICB0aGlzLmRhdGVDaGFuZ2VkID1cclxuICAgICAgICAgICF0aGlzLmZyb21EYXRlLmVxdWFscyh0aGlzLmdldE5nYkRhdGUodGhpcy5jYWNoZS5mcm9tKSkgfHxcclxuICAgICAgICAgICF0aGlzLnRvRGF0ZS5lcXVhbHModGhpcy5nZXROZ2JEYXRlKHRoaXMuY2FjaGUudG8pKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNIb3ZlcmVkKGRhdGU6IE5nYkRhdGUpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuZnJvbURhdGUgJiZcclxuICAgICAgIXRoaXMudG9EYXRlICYmXHJcbiAgICAgIHRoaXMuaG92ZXJlZERhdGUgJiZcclxuICAgICAgZGF0ZS5hZnRlcih0aGlzLmZyb21EYXRlKSAmJlxyXG4gICAgICBkYXRlLmJlZm9yZSh0aGlzLmhvdmVyZWREYXRlKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGlzSW5zaWRlKGRhdGU6IE5nYkRhdGUpIHtcclxuICAgIHJldHVybiB0aGlzLnRvRGF0ZSAmJiBkYXRlLmFmdGVyKHRoaXMuZnJvbURhdGUpICYmIGRhdGUuYmVmb3JlKHRoaXMudG9EYXRlKTtcclxuICB9XHJcblxyXG4gIGlzUmFuZ2UoZGF0ZTogTmdiRGF0ZSkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgZGF0ZS5lcXVhbHModGhpcy5mcm9tRGF0ZSkgfHxcclxuICAgICAgKHRoaXMudG9EYXRlICYmIGRhdGUuZXF1YWxzKHRoaXMudG9EYXRlKSkgfHxcclxuICAgICAgdGhpcy5pc0luc2lkZShkYXRlKSB8fFxyXG4gICAgICB0aGlzLmlzSG92ZXJlZChkYXRlKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlSW5wdXQoY3VycmVudFZhbHVlOiBOZ2JEYXRlIHwgbnVsbCwgaW5wdXQ6IHN0cmluZyk6IE5nYkRhdGUgfCBudWxsIHtcclxuICAgIGNvbnN0IHBhcnNlZCA9IHRoaXMuZm9ybWF0dGVyLnBhcnNlKGlucHV0KTtcclxuICAgIHJldHVybiBwYXJzZWQgJiYgdGhpcy5jYWxlbmRhci5pc1ZhbGlkKE5nYkRhdGUuZnJvbShwYXJzZWQpKVxyXG4gICAgICA/IE5nYkRhdGUuZnJvbShwYXJzZWQpXHJcbiAgICAgIDogY3VycmVudFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZW1pdFJhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMuZnJvbURhdGUgJiYgdGhpcy50b0RhdGUpIHtcclxuICAgICAgY29uc3QgZnJvbSA9IG5ldyBEYXRlKFxyXG4gICAgICAgIHRoaXMuZnJvbURhdGUueWVhcixcclxuICAgICAgICB0aGlzLmZyb21EYXRlLm1vbnRoIC0gMSxcclxuICAgICAgICB0aGlzLmZyb21EYXRlLmRheVxyXG4gICAgICApO1xyXG4gICAgICBjb25zdCB0byA9IG5ldyBEYXRlKFxyXG4gICAgICAgIHRoaXMudG9EYXRlLnllYXIsXHJcbiAgICAgICAgdGhpcy50b0RhdGUubW9udGggLSAxLFxyXG4gICAgICAgIHRoaXMudG9EYXRlLmRheSxcclxuICAgICAgICAyMyxcclxuICAgICAgICA1OVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmNhY2hlU2VydmljZS5wdXRJbkNhY2hlKHRoaXMuY2FjaGVOYW1lLCB7XHJcbiAgICAgICAgZnJvbTogZnJvbS5nZXRUaW1lKCksXHJcbiAgICAgICAgdG86IHRvLmdldFRpbWUoKSxcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZmlsdGVyU2VydmljZS5kYXRlRmlsdGVyVXBkYXRlZChbZnJvbSwgdG9dKTtcclxuICAgICAgdGhpcy5pc0RhdGVGaWx0ZXJBcHBsaWVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kYXRlQ2hhbmdlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbGVhckRhdGVzKCkge1xyXG4gICAgdGhpcy5mcm9tRGF0ZSA9IG51bGw7XHJcbiAgICB0aGlzLnRvRGF0ZSA9IG51bGw7XHJcbiAgICB0aGlzLmlzRGF0ZUZpbHRlckFwcGxpZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuY2FjaGVTZXJ2aWNlLnJlbW92ZUZyb21DYWNoZSh0aGlzLmNhY2hlTmFtZSk7XHJcbiAgICB0aGlzLmZpbHRlclNlcnZpY2UuZGF0ZUZpbHRlclVwZGF0ZWQobnVsbCk7XHJcbiAgfVxyXG5cclxuICBvbkFwcGx5KCkge1xyXG4gICAgaWYgKHRoaXMuZnJvbURhdGUgJiYgdGhpcy50b0RhdGUpIHtcclxuICAgICAgdGhpcy5lbWl0UmFuZ2UoKTtcclxuICAgIH1cclxuXHJcbiAgICAvL3RyYW5zZm9ybSBuZ2JEYXRlIHRvIGRhdGUgb2JqZXQgdGhlbiBwdXQgZGF0ZXMgaW4gdGltZXN0YW1wIGluIGxvY2FsU3RvcmFnZSB0byBzaGFyZSBpdCB3aXRoIFJldG9vbFxyXG4gICAgaWYgKHRoaXMuZnJvbURhdGUpIHtcclxuICAgICAgY29uc3Qgc3RhcnREYXRlID0gbmV3IERhdGUoXHJcbiAgICAgICAgdGhpcy5mcm9tRGF0ZS55ZWFyLFxyXG4gICAgICAgIHRoaXMuZnJvbURhdGUubW9udGggLSAxLFxyXG4gICAgICAgIHRoaXMuZnJvbURhdGUuZGF5XHJcbiAgICAgICk7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzdGFydERhdGUnLCBzdGFydERhdGUuZ2V0VGltZSgpLnRvU3RyaW5nKCkpO1xyXG4gICAgICBjb25zb2xlLmxvZygndGVzdCBzZXRJdGVtIGZyb20gOiAnICsgc3RhcnREYXRlLmdldFRpbWUoKS50b1N0cmluZygpKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnRvRGF0ZSkge1xyXG4gICAgICBjb25zdCBlbmREYXRlID0gbmV3IERhdGUoXHJcbiAgICAgICAgdGhpcy50b0RhdGUueWVhcixcclxuICAgICAgICB0aGlzLnRvRGF0ZS5tb250aCAtIDEsXHJcbiAgICAgICAgdGhpcy50b0RhdGUuZGF5XHJcbiAgICAgICk7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdlbmREYXRlJywgZW5kRGF0ZS5nZXRUaW1lKCkudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIGNsYXNzPVwiZm9ybS1pbmxpbmUgcC0wIG0tMCBmbGV4LW5vd3JhcCBmbGV4LWNvbHVtbiBmbGV4LXNtLXJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm0tMVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBkYXRlLXNlbGVjdG9yXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCAjZHBGcm9tRGF0ZSBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiZGQvTU0veXl5eVwiIG5hbWU9XCJkcEZyb21EYXRlXCJcclxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmcm9tRGF0ZSB8IGZvcm1hdERhdGVOdW1iZXJUb0RpZ2l0c1wiXHJcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwiZnJvbURhdGUgPSB2YWxpZGF0ZUlucHV0KGZyb21EYXRlLCBkcEZyb21EYXRlLnZhbHVlKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBjYWxlbmRhclwiIChjbGljayk9XCJkYXRlcGlja2VyLnRvZ2dsZSgpXCIgdHlwZT1cImJ1dHRvblwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm0tMVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBkYXRlLXNlbGVjdG9yXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCAjZHBUb0RhdGUgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cImRkL01NL3l5eXlcIiBuYW1lPVwiZHBUb0RhdGVcIlxyXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInRvRGF0ZSB8IGZvcm1hdERhdGVOdW1iZXJUb0RpZ2l0c1wiIChpbnB1dCk9XCJ0b0RhdGUgPSB2YWxpZGF0ZUlucHV0KHRvRGF0ZSwgZHBUb0RhdGUudmFsdWUpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGNhbGVuZGFyXCIgKGNsaWNrKT1cImRhdGVwaWNrZXIudG9nZ2xlKClcIiB0eXBlPVwiYnV0dG9uXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29uZmlybWF0aW9uLWJ1dHRvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgbmFtZT1cImRhdGVwaWNrZXJcIiBjbGFzcz1cImZvcm0tY29udHJvbCBkLW5vbmVcIiBuZ2JEYXRlcGlja2VyICNkYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiIChkYXRlU2VsZWN0KT1cIm9uRGF0ZVNlbGVjdGlvbigkZXZlbnQpXCIgW2Rpc3BsYXlNb250aHNdPVwiMlwiIFtkYXlUZW1wbGF0ZV09XCJ0XCJcclxuICAgICAgICAgICAgICAgIG91dHNpZGVEYXlzPVwiaGlkZGVuXCIgW3N0YXJ0RGF0ZV09XCJmcm9tRGF0ZSFcIiB0YWJpbmRleD1cIi0xXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdCBsZXQtZGF0ZSBsZXQtZm9jdXNlZD1cImZvY3VzZWRcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3VzdG9tLWRheVwiIFtjbGFzcy5mb2N1c2VkXT1cImZvY3VzZWRcIiBbY2xhc3MucmFuZ2VdPVwiaXNSYW5nZShkYXRlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmZhZGVkXT1cImlzSG92ZXJlZChkYXRlKSB8fCBpc0luc2lkZShkYXRlKVwiIChtb3VzZWVudGVyKT1cImhvdmVyZWREYXRlID0gZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwiaG92ZXJlZERhdGUgPSBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgZGF0ZS5kYXkgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgcm91bmRlZC1waWxsIG1zLTFcIiAoY2xpY2spPVwib25BcHBseSgpXCJcclxuICAgICAgICAgICAgKm5nSWY9XCIhaXNEYXRlRmlsdGVyQXBwbGllZCB8fCBkYXRlQ2hhbmdlZFwiPlxyXG4gICAgICAgICAgICB7eydBcHBseScgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYXBwbGllZFRleHQgbXMtMVwiICpuZ0lmPVwiaXNEYXRlRmlsdGVyQXBwbGllZCAmJiAhZGF0ZUNoYW5nZWRcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uaWZ5XCIgZGF0YS1pY29uPVwiaW9uOmNoZWNrbWFya1wiIGRhdGEtd2lkdGg9XCIxNVwiIGRhdGEtaGVpZ2h0PVwiMTVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIHt7XCJBcHBsaWVkXCIgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgcm91bmRlZC1waWxsIG1zLTFcIiAoY2xpY2spPVwib25DbGVhckRhdGVzKClcIj57eydDbGVhcicgfFxyXG4gICAgICAgICAgICB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvZm9ybT4iXX0=
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import { NgbDate, NgbCalendar, NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';
|
|
3
|
-
import { AmplifyCacheService } from '../../../services/amplify-cache.service';
|
|
4
|
-
import { FilterService } from '../../../services/filter.service';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class RangeDatePickerComponent implements OnInit {
|
|
7
|
-
private calendar;
|
|
8
|
-
formatter: NgbDateParserFormatter;
|
|
9
|
-
private filterService;
|
|
10
|
-
private cacheService;
|
|
11
|
-
hoveredDate: NgbDate | null;
|
|
12
|
-
fromDate: NgbDate | null;
|
|
13
|
-
toDate: NgbDate | null;
|
|
14
|
-
cacheName: string | null;
|
|
15
|
-
cache: {
|
|
16
|
-
from: number;
|
|
17
|
-
to: number;
|
|
18
|
-
} | null;
|
|
19
|
-
isDateFilterApplied: boolean;
|
|
20
|
-
dateChanged: boolean;
|
|
21
|
-
constructor(calendar: NgbCalendar, formatter: NgbDateParserFormatter, filterService: FilterService, cacheService: AmplifyCacheService);
|
|
22
|
-
ngOnInit(): void;
|
|
23
|
-
getNgbDate(date: number): NgbDate;
|
|
24
|
-
onDateSelection(date: NgbDate): void;
|
|
25
|
-
isDateChanged(): void;
|
|
26
|
-
isHovered(date: NgbDate): boolean;
|
|
27
|
-
isInside(date: NgbDate): boolean;
|
|
28
|
-
isRange(date: NgbDate): boolean;
|
|
29
|
-
validateInput(currentValue: NgbDate | null, input: string): NgbDate | null;
|
|
30
|
-
emitRange(): void;
|
|
31
|
-
onClearDates(): void;
|
|
32
|
-
onApply(): void;
|
|
33
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RangeDatePickerComponent, never>;
|
|
34
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RangeDatePickerComponent, "lib-range-date-picker", never, { "cacheName": "cacheName"; }, {}, never, never>;
|
|
35
|
-
}
|