tango-app-ui-analyse-trax 3.0.0-dev → 3.3.1-alpha.1
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/esm2022/lib/components/add-checklist/add-checklist.component.mjs +1389 -0
- package/esm2022/lib/components/checklist/checklist.component.mjs +235 -0
- package/esm2022/lib/components/checklist-configure/checklist-configure.component.mjs +1809 -0
- package/esm2022/lib/components/dashboard/dashboard.component.mjs +515 -0
- package/esm2022/lib/components/dashboard-info/dashboard-info.component.mjs +503 -0
- package/esm2022/lib/components/dashboard-info/monthlyperformance-datepicker/monthlyperformance-datepicker.component.mjs +169 -0
- package/esm2022/lib/components/flags/flags.component.mjs +188 -0
- package/esm2022/lib/components/flags/flags.interface.mjs +2 -0
- package/esm2022/lib/components/flags-info/flags-info.component.mjs +257 -0
- package/esm2022/lib/components/flags-info/flags-info.interface.mjs +2 -0
- package/esm2022/lib/components/flags-info/unattended-pie-chart/unattended-pie-chart.component.mjs +71 -0
- package/esm2022/lib/components/gallery/gallery.component.mjs +280 -0
- package/esm2022/lib/components/managechecklist/managechecklist.component.mjs +11 -0
- package/esm2022/lib/components/pagination/pagination.component.mjs +62 -0
- package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +101 -0
- package/esm2022/lib/components/reports/reports.component.mjs +204 -0
- package/esm2022/lib/components/reports/reports.interface.mjs +2 -0
- package/esm2022/lib/components/tango-analyse-trax/tango-analyse-trax.component.mjs +27 -6
- package/esm2022/lib/components/trax-store/trax-store.component.mjs +144 -0
- package/esm2022/lib/components/traxpopup/traxpopup.component.mjs +64 -0
- package/esm2022/lib/services/trax.service.mjs +200 -0
- package/esm2022/lib/tango-analyse-trax-routing.module.mjs +62 -6
- package/esm2022/lib/tango-analyse-trax.module.mjs +82 -9
- package/fesm2022/tango-app-ui-analyse-trax.mjs +6211 -24
- package/fesm2022/tango-app-ui-analyse-trax.mjs.map +1 -1
- package/lib/components/add-checklist/add-checklist.component.d.ts +91 -0
- package/lib/components/checklist/checklist.component.d.ts +38 -0
- package/lib/components/checklist-configure/checklist-configure.component.d.ts +162 -0
- package/lib/components/dashboard/dashboard.component.d.ts +62 -0
- package/lib/components/dashboard-info/dashboard-info.component.d.ts +92 -0
- package/lib/components/dashboard-info/monthlyperformance-datepicker/monthlyperformance-datepicker.component.d.ts +39 -0
- package/lib/components/flags/flags.component.d.ts +40 -0
- package/lib/components/flags/flags.interface.d.ts +61 -0
- package/lib/components/flags-info/flags-info.component.d.ts +50 -0
- package/lib/components/flags-info/flags-info.interface.d.ts +207 -0
- package/lib/components/flags-info/unattended-pie-chart/unattended-pie-chart.component.d.ts +13 -0
- package/lib/components/gallery/gallery.component.d.ts +64 -0
- package/lib/components/managechecklist/managechecklist.component.d.ts +5 -0
- package/lib/components/pagination/pagination.component.d.ts +16 -0
- package/lib/components/reactive-select/reactive-select.component.d.ts +31 -0
- package/lib/components/reports/reports.component.d.ts +43 -0
- package/lib/components/reports/reports.interface.d.ts +44 -0
- package/lib/components/tango-analyse-trax/tango-analyse-trax.component.d.ts +10 -1
- package/lib/components/trax-store/trax-store.component.d.ts +43 -0
- package/lib/components/traxpopup/traxpopup.component.d.ts +22 -0
- package/lib/services/trax.service.d.ts +65 -0
- package/lib/tango-analyse-trax.module.d.ts +23 -3
- package/package.json +1 -1
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { Subject, debounceTime, takeUntil } from "rxjs";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/router";
|
|
5
|
+
import * as i2 from "tango-app-ui-global";
|
|
6
|
+
import * as i3 from "tango-app-ui-shared";
|
|
7
|
+
import * as i4 from "../../../services/trax.service";
|
|
8
|
+
import * as i5 from "@angular/common";
|
|
9
|
+
;
|
|
10
|
+
export class MonthlyperformanceDatepickerComponent {
|
|
11
|
+
route;
|
|
12
|
+
router;
|
|
13
|
+
gs;
|
|
14
|
+
changeDetector;
|
|
15
|
+
toast;
|
|
16
|
+
TraxService;
|
|
17
|
+
currentYear = new Date().getFullYear();
|
|
18
|
+
currentMonth = new Date().getMonth();
|
|
19
|
+
dayNames = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];
|
|
20
|
+
monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
|
|
21
|
+
headerData;
|
|
22
|
+
performanceData = []; // This will store the performance data from the API response
|
|
23
|
+
detach = new Subject();
|
|
24
|
+
destroy$ = new Subject();
|
|
25
|
+
receivedData = "Checklist";
|
|
26
|
+
selectedvalue;
|
|
27
|
+
monthlyPeformanceLoading = true;
|
|
28
|
+
monthlyPeformanceNoData = false;
|
|
29
|
+
monthlyperformce;
|
|
30
|
+
constructor(route, router, gs, changeDetector, toast, TraxService) {
|
|
31
|
+
this.route = route;
|
|
32
|
+
this.router = router;
|
|
33
|
+
this.gs = gs;
|
|
34
|
+
this.changeDetector = changeDetector;
|
|
35
|
+
this.toast = toast;
|
|
36
|
+
this.TraxService = TraxService;
|
|
37
|
+
}
|
|
38
|
+
ngOnDestroy() {
|
|
39
|
+
this.detach.next(true);
|
|
40
|
+
this.detach.complete();
|
|
41
|
+
}
|
|
42
|
+
ngOnChanges(changes) {
|
|
43
|
+
this.getMonthlyPeformanceData();
|
|
44
|
+
}
|
|
45
|
+
ngOnInit() {
|
|
46
|
+
this.route?.queryParams
|
|
47
|
+
?.pipe(takeUntil(this.detach))
|
|
48
|
+
.subscribe((params) => {
|
|
49
|
+
if (params.type === 'Checklist') {
|
|
50
|
+
this.selectedvalue = params.checklist;
|
|
51
|
+
this.receivedData = 'Checklist';
|
|
52
|
+
// this.infoCardsData = params.checklistData ? JSON.parse(params.checklistData) : null;
|
|
53
|
+
}
|
|
54
|
+
else if (params.type === 'store') {
|
|
55
|
+
this.selectedvalue = params.store_id;
|
|
56
|
+
this.receivedData = 'Store';
|
|
57
|
+
}
|
|
58
|
+
else if (params.type === 'user') {
|
|
59
|
+
this.selectedvalue = params.userEmail;
|
|
60
|
+
this.receivedData = 'User';
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
this.gs.dataRangeValue
|
|
64
|
+
.pipe(takeUntil(this.destroy$), debounceTime(300))
|
|
65
|
+
.subscribe((data) => {
|
|
66
|
+
this.headerData = data;
|
|
67
|
+
if (this.receivedData === 'Checklist') {
|
|
68
|
+
this.getMonthlyPeformanceData();
|
|
69
|
+
}
|
|
70
|
+
else if (this.receivedData === 'User') {
|
|
71
|
+
this.getMonthlyPeformanceData();
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
}
|
|
75
|
+
// this.performanceData = [
|
|
76
|
+
// { "date": 1, "colorClass": "primary900" },
|
|
77
|
+
// { "date": 3, "colorClass": "blue33B5FF" },
|
|
78
|
+
// { "date": 6, "colorClass": "redF04438" },
|
|
79
|
+
// { "date": 7, "colorClass": "lightBlue6BCAFF" },
|
|
80
|
+
// { "date": 8, "colorClass": "blue33B5FF" },
|
|
81
|
+
// { "date": 9, "colorClass": "primary900" },
|
|
82
|
+
// { "date": 12, "colorClass": "primary900" },
|
|
83
|
+
// { "date": 14, "colorClass": "orangeF79009" },
|
|
84
|
+
// { "date": 15, "colorClass": "blue33B5FF" },
|
|
85
|
+
// { "date": 18, "colorClass": "redF04438" }
|
|
86
|
+
// ];
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
getMonthlyPeformanceData() {
|
|
90
|
+
this.monthlyPeformanceLoading = true;
|
|
91
|
+
this.monthlyPeformanceNoData = true;
|
|
92
|
+
const requestData = {
|
|
93
|
+
fromDate: this.headerData.date.startDate,
|
|
94
|
+
toDate: this.headerData.date.endDate,
|
|
95
|
+
storeId: [
|
|
96
|
+
"11-1743",
|
|
97
|
+
"11-178",
|
|
98
|
+
"11-1413",
|
|
99
|
+
"11-1833",
|
|
100
|
+
"11-67",
|
|
101
|
+
"11-709"
|
|
102
|
+
],
|
|
103
|
+
clientId: this.headerData.client,
|
|
104
|
+
groupByType: this.receivedData,
|
|
105
|
+
groupByValue: this.monthlyperformce,
|
|
106
|
+
};
|
|
107
|
+
this.TraxService.getMonthlyPeformanceData(requestData).pipe(takeUntil(this.destroy$)).subscribe((response) => {
|
|
108
|
+
if (response?.code === 200 && response?.status === "success") {
|
|
109
|
+
this.performanceData = response.data?.monthlyChartData || [];
|
|
110
|
+
this.monthlyPeformanceLoading = false;
|
|
111
|
+
this.monthlyPeformanceNoData = false;
|
|
112
|
+
this.changeDetector.detectChanges();
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
this.performanceData = [];
|
|
116
|
+
this.monthlyPeformanceLoading = false;
|
|
117
|
+
this.monthlyPeformanceNoData = true;
|
|
118
|
+
}
|
|
119
|
+
}, error => {
|
|
120
|
+
this.performanceData = [];
|
|
121
|
+
this.monthlyPeformanceLoading = false;
|
|
122
|
+
this.monthlyPeformanceNoData = true;
|
|
123
|
+
this.changeDetector.detectChanges();
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
getDaysInMonth() {
|
|
127
|
+
const daysInMonth = new Date(this.currentYear, this.currentMonth + 1, 0).getDate();
|
|
128
|
+
return Array.from({ length: daysInMonth }, (_, i) => i + 1);
|
|
129
|
+
}
|
|
130
|
+
// Get empty days to align the first day of the month with the correct day of the week
|
|
131
|
+
getEmptyDays() {
|
|
132
|
+
const firstDayOfMonth = new Date(this.currentYear, this.currentMonth, 1).getDay();
|
|
133
|
+
return Array(firstDayOfMonth === 0 ? 6 : firstDayOfMonth - 1).fill(0);
|
|
134
|
+
}
|
|
135
|
+
// Get the class name for a given day based on the performance data
|
|
136
|
+
getDayClass(day) {
|
|
137
|
+
const predefinedDay = this.performanceData.find(d => d.date === day);
|
|
138
|
+
return predefinedDay ? predefinedDay.colorClass : '';
|
|
139
|
+
}
|
|
140
|
+
// Navigate to the previous month
|
|
141
|
+
previousMonth() {
|
|
142
|
+
if (this.currentMonth === 0) {
|
|
143
|
+
this.currentMonth = 11;
|
|
144
|
+
this.currentYear--;
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
this.currentMonth--;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
// Navigate to the next month
|
|
151
|
+
nextMonth() {
|
|
152
|
+
if (this.currentMonth === 11) {
|
|
153
|
+
this.currentMonth = 0;
|
|
154
|
+
this.currentYear++;
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
this.currentMonth++;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MonthlyperformanceDatepickerComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.GlobalStateService }, { token: i0.ChangeDetectorRef }, { token: i3.ToastService }, { token: i4.TraxService }], target: i0.ɵɵFactoryTarget.Component });
|
|
161
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MonthlyperformanceDatepickerComponent, selector: "lib-monthlyperformance-datepicker", inputs: { monthlyperformce: "monthlyperformce" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"calendar-container\">\r\n <div class=\"performanceheading\">Monthly Performance</div>\r\n <div *ngIf=\"!monthlyPeformanceLoading && !monthlyPeformanceNoData\" class=\"calendar\">\r\n <div class=\"calendar-header my-3\">\r\n <span class=\"cursor-pointer\" (click)=\"previousMonth()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5 15L7.5 10L12.5 5\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span>{{ monthNames[currentMonth] }} {{ currentYear }}</span>\r\n <span class=\"cursor-pointer\" (click)=\"nextMonth()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M7.5 15L12.5 10L7.5 5\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"calendar-body my-4\">\r\n <div class=\"day-names\">\r\n <div *ngFor=\"let day of dayNames\">{{ day }}</div>\r\n </div>\r\n <div class=\"calendar-days\">\r\n <!-- Empty days to align the start of the month -->\r\n <div *ngFor=\"let _ of getEmptyDays()\" class=\"empty-day\"></div>\r\n <!-- Calendar days with dynamic color assignment via CSS classes -->\r\n <div *ngFor=\"let day of getDaysInMonth()\" [ngClass]=\"getDayClass(day)\" class=\"calendar-day\">\r\n {{ day }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"monthlyPeformanceLoading\">\r\n <div class=\"row loader my-6 d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"monthlyPeformanceNoData && !monthlyPeformanceLoading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 my-6\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for Monthly Performance\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n</div>\r\n", styles: [".calendar-container{display:flex;padding:16px 24px;flex-direction:column;align-items:flex-start;gap:12px;border-radius:8px;background:#fff}.calendar{display:flex;flex-direction:column;align-items:center}.calendar-header{display:flex;justify-content:space-between;width:100%;color:var(--Gray-700, #344054);text-align:center;font-size:16px;font-style:normal;font-weight:500;line-height:24px}.calendar-body{display:flex;flex-direction:column;width:100%}.day-names{display:grid;grid-template-columns:repeat(7,1fr);font-weight:700;margin-bottom:10px;text-align:center}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.empty-day{visibility:hidden}.calendar-days div{padding:10px;text-align:center;border-radius:50%;cursor:not-allowed}.selected-day{background-color:#00a3ff;color:#fff}.disabled-day{cursor:not-allowed}button{background-color:transparent;border:none;cursor:pointer;font-size:16px}.performanceheading{color:var(--Gray-900, #101828);font-size:18px;font-style:normal;font-weight:600;line-height:28px}.primary900{background-color:var(--Primary-900, #0085D2)}.blue33B5FF{background-color:#33b5ff}.lightBlue6BCAFF{background-color:#6bcaff}.orangeF79009{background-color:#f79009}.redF04438{background-color:#f04438}.calendar-day:hover{opacity:.8}.empty-day{width:40px;height:40px;display:inline-block}.nodatamaintext{font-family:Inter;font-size:16px;font-weight:600;line-height:24px;text-align:center;color:#101828}.nodatasubtext{font-family:Inter;font-size:14px;font-weight:400;line-height:20px;text-align:center;color:#667085}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
162
|
+
}
|
|
163
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MonthlyperformanceDatepickerComponent, decorators: [{
|
|
164
|
+
type: Component,
|
|
165
|
+
args: [{ selector: 'lib-monthlyperformance-datepicker', template: "<div class=\"calendar-container\">\r\n <div class=\"performanceheading\">Monthly Performance</div>\r\n <div *ngIf=\"!monthlyPeformanceLoading && !monthlyPeformanceNoData\" class=\"calendar\">\r\n <div class=\"calendar-header my-3\">\r\n <span class=\"cursor-pointer\" (click)=\"previousMonth()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5 15L7.5 10L12.5 5\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span>{{ monthNames[currentMonth] }} {{ currentYear }}</span>\r\n <span class=\"cursor-pointer\" (click)=\"nextMonth()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M7.5 15L12.5 10L7.5 5\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"calendar-body my-4\">\r\n <div class=\"day-names\">\r\n <div *ngFor=\"let day of dayNames\">{{ day }}</div>\r\n </div>\r\n <div class=\"calendar-days\">\r\n <!-- Empty days to align the start of the month -->\r\n <div *ngFor=\"let _ of getEmptyDays()\" class=\"empty-day\"></div>\r\n <!-- Calendar days with dynamic color assignment via CSS classes -->\r\n <div *ngFor=\"let day of getDaysInMonth()\" [ngClass]=\"getDayClass(day)\" class=\"calendar-day\">\r\n {{ day }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"monthlyPeformanceLoading\">\r\n <div class=\"row loader my-6 d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"monthlyPeformanceNoData && !monthlyPeformanceLoading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 my-6\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for Monthly Performance\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n</div>\r\n", styles: [".calendar-container{display:flex;padding:16px 24px;flex-direction:column;align-items:flex-start;gap:12px;border-radius:8px;background:#fff}.calendar{display:flex;flex-direction:column;align-items:center}.calendar-header{display:flex;justify-content:space-between;width:100%;color:var(--Gray-700, #344054);text-align:center;font-size:16px;font-style:normal;font-weight:500;line-height:24px}.calendar-body{display:flex;flex-direction:column;width:100%}.day-names{display:grid;grid-template-columns:repeat(7,1fr);font-weight:700;margin-bottom:10px;text-align:center}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.empty-day{visibility:hidden}.calendar-days div{padding:10px;text-align:center;border-radius:50%;cursor:not-allowed}.selected-day{background-color:#00a3ff;color:#fff}.disabled-day{cursor:not-allowed}button{background-color:transparent;border:none;cursor:pointer;font-size:16px}.performanceheading{color:var(--Gray-900, #101828);font-size:18px;font-style:normal;font-weight:600;line-height:28px}.primary900{background-color:var(--Primary-900, #0085D2)}.blue33B5FF{background-color:#33b5ff}.lightBlue6BCAFF{background-color:#6bcaff}.orangeF79009{background-color:#f79009}.redF04438{background-color:#f04438}.calendar-day:hover{opacity:.8}.empty-day{width:40px;height:40px;display:inline-block}.nodatamaintext{font-family:Inter;font-size:16px;font-weight:600;line-height:24px;text-align:center;color:#101828}.nodatasubtext{font-family:Inter;font-size:14px;font-weight:400;line-height:20px;text-align:center;color:#667085}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"] }]
|
|
166
|
+
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.GlobalStateService }, { type: i0.ChangeDetectorRef }, { type: i3.ToastService }, { type: i4.TraxService }], propDecorators: { monthlyperformce: [{
|
|
167
|
+
type: Input
|
|
168
|
+
}] } });
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGhseXBlcmZvcm1hbmNlLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmF4L3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQtaW5mby9tb250aGx5cGVyZm9ybWFuY2UtZGF0ZXBpY2tlci9tb250aGx5cGVyZm9ybWFuY2UtZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC1pbmZvL21vbnRobHlwZXJmb3JtYW5jZS1kYXRlcGlja2VyL21vbnRobHlwZXJmb3JtYW5jZS1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUM7QUFFakgsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQWdDLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQUl0RixDQUFDO0FBT0QsTUFBTSxPQUFPLHFDQUFxQztJQWlCNUI7SUFBK0I7SUFBc0I7SUFBK0I7SUFBMEM7SUFDeEk7SUFqQlYsV0FBVyxHQUFXLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDL0MsWUFBWSxHQUFXLElBQUksSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0MsUUFBUSxHQUFhLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEUsVUFBVSxHQUFhLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNsSixVQUFVLENBQU07SUFFaEIsZUFBZSxHQUFVLEVBQUUsQ0FBQyxDQUFDLDZEQUE2RDtJQUNsRixNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUN2QixRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUN2QyxZQUFZLEdBQVcsV0FBVyxDQUFDO0lBQ25DLGFBQWEsQ0FBTTtJQUNuQix3QkFBd0IsR0FBWSxJQUFJLENBQUM7SUFDekMsdUJBQXVCLEdBQVksS0FBSyxDQUFDO0lBQ2hDLGdCQUFnQixDQUFTO0lBR2xDLFlBQW9CLEtBQXFCLEVBQVUsTUFBYyxFQUFRLEVBQXNCLEVBQVMsY0FBaUMsRUFBUyxLQUFtQixFQUMzSixXQUF3QjtRQURkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFRLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQVMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQVMsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUMzSixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUM5QixDQUFDO0lBQ0wsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FBVztZQUMzQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzdCLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3BCLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQTtnQkFDdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7Z0JBQ2hDLHVGQUF1RjthQUN4RjtpQkFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO2dCQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUE7Z0JBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDO2FBQzdCO2lCQUFNLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQTtnQkFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7YUFDNUI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVDLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYzthQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDakQsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFdBQVcsRUFBRTtnQkFDckMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7YUFDakM7aUJBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLE1BQU0sRUFBRTtnQkFDdkMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7YUFDakM7aUJBQU07YUFDTjtZQUtELDJCQUEyQjtZQUMzQiwrQ0FBK0M7WUFDL0MsK0NBQStDO1lBQy9DLDhDQUE4QztZQUM5QyxvREFBb0Q7WUFDcEQsK0NBQStDO1lBQy9DLCtDQUErQztZQUMvQyxnREFBZ0Q7WUFDaEQsa0RBQWtEO1lBQ2xELGdEQUFnRDtZQUNoRCw4Q0FBOEM7WUFDOUMsS0FBSztRQUdiLENBQUMsQ0FBQyxDQUFBO0lBSUEsQ0FBQztJQUVELHdCQUF3QjtRQUN0QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDO1FBQ3JDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFDcEMsTUFBTSxXQUFXLEdBQUc7WUFDbEIsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFDeEMsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDcEMsT0FBTyxFQUFFO2dCQUNQLFNBQVM7Z0JBQ1QsUUFBUTtnQkFDUixTQUFTO2dCQUNULFNBQVM7Z0JBQ1QsT0FBTztnQkFDUCxRQUFRO2FBQ1Q7WUFDRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNO1lBQ2hDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWTtZQUM5QixZQUFZLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtTQUNwQyxDQUFDO1FBRUYsSUFBSSxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ2hILElBQUksUUFBUSxFQUFFLElBQUksS0FBSyxHQUFHLElBQUksUUFBUSxFQUFFLE1BQU0sS0FBSyxTQUFTLEVBQUU7Z0JBQzVELElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7Z0JBQzdELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxLQUFLLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDckM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUE7Z0JBQ3pCLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxLQUFLLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7YUFDckM7UUFDSCxDQUFDLEVBQ0QsS0FBSyxDQUFDLEVBQUU7WUFDTixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQTtZQUN6QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsS0FBSyxDQUFDO1lBQ3BDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7WUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuRixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELHNGQUFzRjtJQUN0RixZQUFZO1FBQ1YsTUFBTSxlQUFlLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xGLE9BQU8sS0FBSyxDQUFDLGVBQWUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsbUVBQW1FO0lBQ25FLFdBQVcsQ0FBQyxHQUFXO1FBQ3JCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNyRSxPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxpQ0FBaUM7SUFDakMsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxDQUFDLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBRUQsNkJBQTZCO0lBQzdCLFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssRUFBRSxFQUFFO1lBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQzt3R0ExSlUscUNBQXFDOzRGQUFyQyxxQ0FBcUMsZ0pDYmxELHcvRkE2REE7OzRGRGhEYSxxQ0FBcUM7a0JBTGpELFNBQVM7K0JBQ0UsbUNBQW1DOzhOQWtCcEMsZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFN1YmplY3QsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBUcmF4U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZSc7XHJcbjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW1vbnRobHlwZXJmb3JtYW5jZS1kYXRlcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbW9udGhseXBlcmZvcm1hbmNlLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9tb250aGx5cGVyZm9ybWFuY2UtZGF0ZXBpY2tlci5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vbnRobHlwZXJmb3JtYW5jZURhdGVwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXN7XHJcbiAgY3VycmVudFllYXI6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTtcclxuICBjdXJyZW50TW9udGg6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0TW9udGgoKTtcclxuICBkYXlOYW1lczogc3RyaW5nW10gPSBbJ01vJywgJ1R1JywgJ1dlJywgJ1RoJywgJ0ZyJywgJ1NhJywgJ1N1J107XHJcbiAgbW9udGhOYW1lczogc3RyaW5nW10gPSBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXTtcclxuICBoZWFkZXJEYXRhOiBhbnk7XHJcblxyXG4gIHBlcmZvcm1hbmNlRGF0YTogYW55W10gPSBbXTsgLy8gVGhpcyB3aWxsIHN0b3JlIHRoZSBwZXJmb3JtYW5jZSBkYXRhIGZyb20gdGhlIEFQSSByZXNwb25zZVxyXG4gIHByaXZhdGUgZGV0YWNoID0gbmV3IFN1YmplY3QoKTtcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICByZWNlaXZlZERhdGE6IHN0cmluZyA9IFwiQ2hlY2tsaXN0XCI7XHJcbiAgc2VsZWN0ZWR2YWx1ZTogYW55O1xyXG4gIG1vbnRobHlQZWZvcm1hbmNlTG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgbW9udGhseVBlZm9ybWFuY2VOb0RhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBtb250aGx5cGVyZm9ybWNlOiBzdHJpbmc7XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixwdWJsaWMgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSxwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIHRvYXN0OiBUb2FzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIFRyYXhTZXJ2aWNlOiBUcmF4U2VydmljZSxcclxuICApIHsgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXRhY2gubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGV0YWNoLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldE1vbnRobHlQZWZvcm1hbmNlRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJvdXRlPy5xdWVyeVBhcmFtc1xyXG4/LnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XHJcbiAgaWYgKHBhcmFtcy50eXBlID09PSAnQ2hlY2tsaXN0Jykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkdmFsdWUgPSBwYXJhbXMuY2hlY2tsaXN0XHJcbiAgICB0aGlzLnJlY2VpdmVkRGF0YSA9ICdDaGVja2xpc3QnO1xyXG4gICAgLy8gdGhpcy5pbmZvQ2FyZHNEYXRhID0gcGFyYW1zLmNoZWNrbGlzdERhdGEgPyBKU09OLnBhcnNlKHBhcmFtcy5jaGVja2xpc3REYXRhKSA6IG51bGw7XHJcbiAgfSBlbHNlIGlmIChwYXJhbXMudHlwZSA9PT0gJ3N0b3JlJykge1xyXG4gICAgdGhpcy5zZWxlY3RlZHZhbHVlID0gcGFyYW1zLnN0b3JlX2lkXHJcbiAgICB0aGlzLnJlY2VpdmVkRGF0YSA9ICdTdG9yZSc7XHJcbiAgfSBlbHNlIGlmIChwYXJhbXMudHlwZSA9PT0gJ3VzZXInKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkdmFsdWUgPSBwYXJhbXMudXNlckVtYWlsXHJcbiAgICB0aGlzLnJlY2VpdmVkRGF0YSA9ICdVc2VyJztcclxuICB9XHJcbn0pO1xyXG5cclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWVcclxuICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDMwMCkpXHJcbiAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmhlYWRlckRhdGEgPSBkYXRhO1xyXG4gICAgICAgIGlmICh0aGlzLnJlY2VpdmVkRGF0YSA9PT0gJ0NoZWNrbGlzdCcpIHtcclxuICAgICAgICAgIHRoaXMuZ2V0TW9udGhseVBlZm9ybWFuY2VEYXRhKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnJlY2VpdmVkRGF0YSA9PT0gJ1VzZXInKSB7XHJcbiAgICAgICAgICB0aGlzLmdldE1vbnRobHlQZWZvcm1hbmNlRGF0YSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAgXHJcblxyXG5cclxuICAgICAgICAvLyB0aGlzLnBlcmZvcm1hbmNlRGF0YSA9IFtcclxuICAgICAgICAvLyAgIHsgXCJkYXRlXCI6IDEsIFwiY29sb3JDbGFzc1wiOiBcInByaW1hcnk5MDBcIiB9LFxyXG4gICAgICAgIC8vICAgeyBcImRhdGVcIjogMywgXCJjb2xvckNsYXNzXCI6IFwiYmx1ZTMzQjVGRlwiIH0sXHJcbiAgICAgICAgLy8gICB7IFwiZGF0ZVwiOiA2LCBcImNvbG9yQ2xhc3NcIjogXCJyZWRGMDQ0MzhcIiB9LFxyXG4gICAgICAgIC8vICAgeyBcImRhdGVcIjogNywgXCJjb2xvckNsYXNzXCI6IFwibGlnaHRCbHVlNkJDQUZGXCIgfSxcclxuICAgICAgICAvLyAgIHsgXCJkYXRlXCI6IDgsIFwiY29sb3JDbGFzc1wiOiBcImJsdWUzM0I1RkZcIiB9LFxyXG4gICAgICAgIC8vICAgeyBcImRhdGVcIjogOSwgXCJjb2xvckNsYXNzXCI6IFwicHJpbWFyeTkwMFwiIH0sXHJcbiAgICAgICAgLy8gICB7IFwiZGF0ZVwiOiAxMiwgXCJjb2xvckNsYXNzXCI6IFwicHJpbWFyeTkwMFwiIH0sXHJcbiAgICAgICAgLy8gICB7IFwiZGF0ZVwiOiAxNCwgXCJjb2xvckNsYXNzXCI6IFwib3JhbmdlRjc5MDA5XCIgfSxcclxuICAgICAgICAvLyAgIHsgXCJkYXRlXCI6IDE1LCBcImNvbG9yQ2xhc3NcIjogXCJibHVlMzNCNUZGXCIgfSxcclxuICAgICAgICAvLyAgIHsgXCJkYXRlXCI6IDE4LCBcImNvbG9yQ2xhc3NcIjogXCJyZWRGMDQ0MzhcIiB9XHJcbiAgICAgICAgLy8gXTtcclxuICAgICAgIFxyXG5cclxufSlcclxuICAgXHJcbiAgICBcclxuXHJcbiAgfVxyXG5cclxuICBnZXRNb250aGx5UGVmb3JtYW5jZURhdGEoKTogdm9pZCB7IFxyXG4gICAgdGhpcy5tb250aGx5UGVmb3JtYW5jZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5tb250aGx5UGVmb3JtYW5jZU5vRGF0YSA9IHRydWU7XHJcbiAgICBjb25zdCByZXF1ZXN0RGF0YSA9IHtcclxuICAgICAgZnJvbURhdGU6IHRoaXMuaGVhZGVyRGF0YS5kYXRlLnN0YXJ0RGF0ZSxcclxuICAgICAgdG9EYXRlOiB0aGlzLmhlYWRlckRhdGEuZGF0ZS5lbmREYXRlLFxyXG4gICAgICBzdG9yZUlkOiBbXHJcbiAgICAgICAgXCIxMS0xNzQzXCIsXHJcbiAgICAgICAgXCIxMS0xNzhcIixcclxuICAgICAgICBcIjExLTE0MTNcIixcclxuICAgICAgICBcIjExLTE4MzNcIixcclxuICAgICAgICBcIjExLTY3XCIsXHJcbiAgICAgICAgXCIxMS03MDlcIlxyXG4gICAgICBdLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5oZWFkZXJEYXRhLmNsaWVudCxcclxuICAgICAgZ3JvdXBCeVR5cGU6IHRoaXMucmVjZWl2ZWREYXRhLFxyXG4gICAgICBncm91cEJ5VmFsdWU6IHRoaXMubW9udGhseXBlcmZvcm1jZSxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5UcmF4U2VydmljZS5nZXRNb250aGx5UGVmb3JtYW5jZURhdGEocmVxdWVzdERhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlPy5jb2RlID09PSAyMDAgJiYgcmVzcG9uc2U/LnN0YXR1cyA9PT0gXCJzdWNjZXNzXCIpIHtcclxuICAgICAgICB0aGlzLnBlcmZvcm1hbmNlRGF0YSA9IHJlc3BvbnNlLmRhdGE/Lm1vbnRobHlDaGFydERhdGEgfHwgW107XHJcbiAgICAgICAgdGhpcy5tb250aGx5UGVmb3JtYW5jZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1vbnRobHlQZWZvcm1hbmNlTm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5wZXJmb3JtYW5jZURhdGEgPSBbXVxyXG4gICAgICAgIHRoaXMubW9udGhseVBlZm9ybWFuY2VMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tb250aGx5UGVmb3JtYW5jZU5vRGF0YSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBlcnJvciA9PiB7XHJcbiAgICAgIHRoaXMucGVyZm9ybWFuY2VEYXRhID0gW11cclxuICAgICAgdGhpcy5tb250aGx5UGVmb3JtYW5jZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1vbnRobHlQZWZvcm1hbmNlTm9EYXRhID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldERheXNJbk1vbnRoKCk6IG51bWJlcltdIHtcclxuICAgIGNvbnN0IGRheXNJbk1vbnRoID0gbmV3IERhdGUodGhpcy5jdXJyZW50WWVhciwgdGhpcy5jdXJyZW50TW9udGggKyAxLCAwKS5nZXREYXRlKCk7XHJcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogZGF5c0luTW9udGggfSwgKF8sIGkpID0+IGkgKyAxKTtcclxuICB9XHJcblxyXG4gIC8vIEdldCBlbXB0eSBkYXlzIHRvIGFsaWduIHRoZSBmaXJzdCBkYXkgb2YgdGhlIG1vbnRoIHdpdGggdGhlIGNvcnJlY3QgZGF5IG9mIHRoZSB3ZWVrXHJcbiAgZ2V0RW1wdHlEYXlzKCk6IG51bWJlcltdIHtcclxuICAgIGNvbnN0IGZpcnN0RGF5T2ZNb250aCA9IG5ldyBEYXRlKHRoaXMuY3VycmVudFllYXIsIHRoaXMuY3VycmVudE1vbnRoLCAxKS5nZXREYXkoKTtcclxuICAgIHJldHVybiBBcnJheShmaXJzdERheU9mTW9udGggPT09IDAgPyA2IDogZmlyc3REYXlPZk1vbnRoIC0gMSkuZmlsbCgwKTtcclxuICB9XHJcblxyXG4gIC8vIEdldCB0aGUgY2xhc3MgbmFtZSBmb3IgYSBnaXZlbiBkYXkgYmFzZWQgb24gdGhlIHBlcmZvcm1hbmNlIGRhdGFcclxuICBnZXREYXlDbGFzcyhkYXk6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBjb25zdCBwcmVkZWZpbmVkRGF5ID0gdGhpcy5wZXJmb3JtYW5jZURhdGEuZmluZChkID0+IGQuZGF0ZSA9PT0gZGF5KTtcclxuICAgIHJldHVybiBwcmVkZWZpbmVkRGF5ID8gcHJlZGVmaW5lZERheS5jb2xvckNsYXNzIDogJyc7XHJcbiAgfVxyXG5cclxuICAvLyBOYXZpZ2F0ZSB0byB0aGUgcHJldmlvdXMgbW9udGhcclxuICBwcmV2aW91c01vbnRoKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudE1vbnRoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoID0gMTE7XHJcbiAgICAgIHRoaXMuY3VycmVudFllYXItLTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoLS07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBOYXZpZ2F0ZSB0byB0aGUgbmV4dCBtb250aFxyXG4gIG5leHRNb250aCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRNb250aCA9PT0gMTEpIHtcclxuICAgICAgdGhpcy5jdXJyZW50TW9udGggPSAwO1xyXG4gICAgICB0aGlzLmN1cnJlbnRZZWFyKys7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1cnJlbnRNb250aCsrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhbGVuZGFyLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJwZXJmb3JtYW5jZWhlYWRpbmdcIj5Nb250aGx5IFBlcmZvcm1hbmNlPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cIiFtb250aGx5UGVmb3JtYW5jZUxvYWRpbmcgJiYgIW1vbnRobHlQZWZvcm1hbmNlTm9EYXRhXCIgY2xhc3M9XCJjYWxlbmRhclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWhlYWRlciBteS0zXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicHJldmlvdXNNb250aCgpXCI+XHJcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICA8cGF0aCBkPVwiTTEyLjUgMTVMNy41IDEwTDEyLjUgNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuPnt7IG1vbnRoTmFtZXNbY3VycmVudE1vbnRoXSB9fSB7eyBjdXJyZW50WWVhciB9fTwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJuZXh0TW9udGgoKVwiPlxyXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgPHBhdGggZD1cIk03LjUgMTVMMTIuNSAxMEw3LjUgNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1ib2R5IG15LTRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRheS1uYW1lc1wiPlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRheSBvZiBkYXlOYW1lc1wiPnt7IGRheSB9fTwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWRheXNcIj5cclxuICAgICAgICA8IS0tIEVtcHR5IGRheXMgdG8gYWxpZ24gdGhlIHN0YXJ0IG9mIHRoZSBtb250aCAtLT5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBfIG9mIGdldEVtcHR5RGF5cygpXCIgY2xhc3M9XCJlbXB0eS1kYXlcIj48L2Rpdj5cclxuICAgICAgICA8IS0tIENhbGVuZGFyIGRheXMgd2l0aCBkeW5hbWljIGNvbG9yIGFzc2lnbm1lbnQgdmlhIENTUyBjbGFzc2VzIC0tPlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRheSBvZiBnZXREYXlzSW5Nb250aCgpXCIgW25nQ2xhc3NdPVwiZ2V0RGF5Q2xhc3MoZGF5KVwiIGNsYXNzPVwiY2FsZW5kYXItZGF5XCI+XHJcbiAgICAgICAgICB7eyBkYXkgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9udGhseVBlZm9ybWFuY2VMb2FkaW5nXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGxvYWRlciAgbXktNiBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJtb250aGx5UGVmb3JtYW5jZU5vRGF0YSAmJiAhbW9udGhseVBlZm9ybWFuY2VMb2FkaW5nXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBteS02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyY1wiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhbWFpbnRleHQgbXQtM1wiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGFzdWJ0ZXh0XCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciBNb250aGx5IFBlcmZvcm1hbmNlXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG4iXX0=
|