tango-app-ui-analyse-trax 3.0.0-dev → 3.3.1-alpha-task.63

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 (92) hide show
  1. package/esm2022/lib/components/action-centre/action-centre.component.mjs +303 -0
  2. package/esm2022/lib/components/activity-log/activity-log.component.mjs +94 -0
  3. package/esm2022/lib/components/add-checklist/add-checklist.component.mjs +1439 -0
  4. package/esm2022/lib/components/add-task/add-task.component.mjs +85 -0
  5. package/esm2022/lib/components/checklist/checklist.component.mjs +252 -0
  6. package/esm2022/lib/components/checklist-configure/checklist-configure.component.mjs +1954 -0
  7. package/esm2022/lib/components/checklistlayout/checklistlayout.component.mjs +12 -0
  8. package/esm2022/lib/components/chip-dropdown/chip-dropdown.component.mjs +84 -0
  9. package/esm2022/lib/components/create-task/create-task.component.mjs +367 -0
  10. package/esm2022/lib/components/create-task/create-task.data.mjs +306 -0
  11. package/esm2022/lib/components/create-task/create-task.interface.mjs +2 -0
  12. package/esm2022/lib/components/custom-select/custom-select.component.mjs +236 -0
  13. package/esm2022/lib/components/dashboard/dashboard.component.mjs +600 -0
  14. package/esm2022/lib/components/dashboard-info/dashboard-info.component.mjs +635 -0
  15. package/esm2022/lib/components/dashboard-info/monthlyperformance-datepicker/monthlyperformance-datepicker.component.mjs +172 -0
  16. package/esm2022/lib/components/dashboard-layout/dashboard-layout.component.mjs +12 -0
  17. package/esm2022/lib/components/export-gallery/export-gallery.component.mjs +119 -0
  18. package/esm2022/lib/components/flag-layout/flag-layout.component.mjs +12 -0
  19. package/esm2022/lib/components/flags/flags.component.mjs +257 -0
  20. package/esm2022/lib/components/flags/flags.interface.mjs +2 -0
  21. package/esm2022/lib/components/flags-info/flags-info.component.mjs +388 -0
  22. package/esm2022/lib/components/flags-info/flags-info.interface.mjs +2 -0
  23. package/esm2022/lib/components/flags-info/unattended-pie-chart/unattended-pie-chart.component.mjs +71 -0
  24. package/esm2022/lib/components/gallery/gallery.component.mjs +1202 -0
  25. package/esm2022/lib/components/group-select/group-select.component.mjs +155 -0
  26. package/esm2022/lib/components/managechecklist/managechecklist.component.mjs +172 -0
  27. package/esm2022/lib/components/multi-date-datepicker/multi-date-datepicker.component.mjs +117 -0
  28. package/esm2022/lib/components/orders/orders.component.mjs +171 -0
  29. package/esm2022/lib/components/pagination/pagination.component.mjs +62 -0
  30. package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +105 -0
  31. package/esm2022/lib/components/reports/date-picker/date-picker.component.mjs +60 -0
  32. package/esm2022/lib/components/reports/reports.component.mjs +299 -0
  33. package/esm2022/lib/components/reports/reports.interface.mjs +2 -0
  34. package/esm2022/lib/components/tango-analyse-trax/tango-analyse-trax.component.mjs +27 -6
  35. package/esm2022/lib/components/task/task.component.mjs +271 -0
  36. package/esm2022/lib/components/task-configure/task-configure.component.mjs +504 -0
  37. package/esm2022/lib/components/task-configure/task-configure.interface.mjs +2 -0
  38. package/esm2022/lib/components/task-info/task-info.component.mjs +300 -0
  39. package/esm2022/lib/components/task-info/taskinfo-edit/taskinfo-edit.component.mjs +203 -0
  40. package/esm2022/lib/components/task-layout/task-layout.component.mjs +12 -0
  41. package/esm2022/lib/components/trax-store/trax-store.component.mjs +153 -0
  42. package/esm2022/lib/components/traxpopup/traxpopup.component.mjs +67 -0
  43. package/esm2022/lib/services/trax.service.mjs +334 -0
  44. package/esm2022/lib/tango-analyse-trax-routing.module.mjs +124 -6
  45. package/esm2022/lib/tango-analyse-trax.module.mjs +147 -9
  46. package/fesm2022/tango-app-ui-analyse-trax.mjs +11512 -21
  47. package/fesm2022/tango-app-ui-analyse-trax.mjs.map +1 -1
  48. package/lib/components/action-centre/action-centre.component.d.ts +56 -0
  49. package/lib/components/activity-log/activity-log.component.d.ts +30 -0
  50. package/lib/components/add-checklist/add-checklist.component.d.ts +99 -0
  51. package/lib/components/add-task/add-task.component.d.ts +38 -0
  52. package/lib/components/checklist/checklist.component.d.ts +39 -0
  53. package/lib/components/checklist-configure/checklist-configure.component.d.ts +160 -0
  54. package/lib/components/checklistlayout/checklistlayout.component.d.ts +5 -0
  55. package/lib/components/chip-dropdown/chip-dropdown.component.d.ts +24 -0
  56. package/lib/components/create-task/create-task.component.d.ts +58 -0
  57. package/lib/components/create-task/create-task.data.d.ts +244 -0
  58. package/lib/components/create-task/create-task.interface.d.ts +147 -0
  59. package/lib/components/custom-select/custom-select.component.d.ts +35 -0
  60. package/lib/components/dashboard/dashboard.component.d.ts +77 -0
  61. package/lib/components/dashboard-info/dashboard-info.component.d.ts +102 -0
  62. package/lib/components/dashboard-info/monthlyperformance-datepicker/monthlyperformance-datepicker.component.d.ts +40 -0
  63. package/lib/components/dashboard-layout/dashboard-layout.component.d.ts +5 -0
  64. package/lib/components/export-gallery/export-gallery.component.d.ts +33 -0
  65. package/lib/components/flag-layout/flag-layout.component.d.ts +5 -0
  66. package/lib/components/flags/flags.component.d.ts +51 -0
  67. package/lib/components/flags/flags.interface.d.ts +64 -0
  68. package/lib/components/flags-info/flags-info.component.d.ts +62 -0
  69. package/lib/components/flags-info/flags-info.interface.d.ts +212 -0
  70. package/lib/components/flags-info/unattended-pie-chart/unattended-pie-chart.component.d.ts +13 -0
  71. package/lib/components/gallery/gallery.component.d.ts +126 -0
  72. package/lib/components/group-select/group-select.component.d.ts +33 -0
  73. package/lib/components/managechecklist/managechecklist.component.d.ts +32 -0
  74. package/lib/components/multi-date-datepicker/multi-date-datepicker.component.d.ts +27 -0
  75. package/lib/components/orders/orders.component.d.ts +38 -0
  76. package/lib/components/pagination/pagination.component.d.ts +16 -0
  77. package/lib/components/reactive-select/reactive-select.component.d.ts +32 -0
  78. package/lib/components/reports/date-picker/date-picker.component.d.ts +23 -0
  79. package/lib/components/reports/reports.component.d.ts +55 -0
  80. package/lib/components/reports/reports.interface.d.ts +46 -0
  81. package/lib/components/tango-analyse-trax/tango-analyse-trax.component.d.ts +10 -1
  82. package/lib/components/task/task.component.d.ts +59 -0
  83. package/lib/components/task-configure/task-configure.component.d.ts +69 -0
  84. package/lib/components/task-configure/task-configure.interface.d.ts +124 -0
  85. package/lib/components/task-info/task-info.component.d.ts +68 -0
  86. package/lib/components/task-info/taskinfo-edit/taskinfo-edit.component.d.ts +60 -0
  87. package/lib/components/task-layout/task-layout.component.d.ts +5 -0
  88. package/lib/components/trax-store/trax-store.component.d.ts +44 -0
  89. package/lib/components/traxpopup/traxpopup.component.d.ts +23 -0
  90. package/lib/services/trax.service.d.ts +107 -0
  91. package/lib/tango-analyse-trax.module.d.ts +43 -3
  92. package/package.json +1 -1
@@ -0,0 +1,172 @@
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
+ import * as i6 from "@ng-bootstrap/ng-bootstrap";
10
+ ;
11
+ export class MonthlyperformanceDatepickerComponent {
12
+ route;
13
+ router;
14
+ gs;
15
+ changeDetector;
16
+ toast;
17
+ TraxService;
18
+ currentYear = new Date().getFullYear();
19
+ currentMonth = new Date().getMonth();
20
+ dayNames = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];
21
+ monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
22
+ headerData;
23
+ performanceData = []; // This will store the performance data from the API response
24
+ detach = new Subject();
25
+ destroy$ = new Subject();
26
+ receivedData = "Checklist";
27
+ selectedvalue;
28
+ monthlyPeformanceLoading = true;
29
+ monthlyPeformanceNoData = false;
30
+ monthlyperformce;
31
+ monthlyToDate;
32
+ constructor(route, router, gs, changeDetector, toast, TraxService) {
33
+ this.route = route;
34
+ this.router = router;
35
+ this.gs = gs;
36
+ this.changeDetector = changeDetector;
37
+ this.toast = toast;
38
+ this.TraxService = TraxService;
39
+ }
40
+ ngOnDestroy() {
41
+ this.detach.next(true);
42
+ this.detach.complete();
43
+ }
44
+ ngOnChanges(changes) {
45
+ if (this.headerData) {
46
+ this.headerData;
47
+ this.getMonthlyPeformanceData();
48
+ }
49
+ }
50
+ ngOnInit() {
51
+ this.route?.queryParams
52
+ ?.pipe(takeUntil(this.detach))
53
+ .subscribe((params) => {
54
+ if (params.type === 'Checklist') {
55
+ this.selectedvalue = params.checklist;
56
+ this.receivedData = 'Checklist';
57
+ // this.infoCardsData = params.checklistData ? JSON.parse(params.checklistData) : null;
58
+ }
59
+ else if (params.type === 'store') {
60
+ this.selectedvalue = params.store_id;
61
+ this.receivedData = 'Store';
62
+ }
63
+ else if (params.type === 'user') {
64
+ this.selectedvalue = params.userEmail;
65
+ this.receivedData = 'User';
66
+ }
67
+ });
68
+ this.gs.dataRangeValue
69
+ .pipe(takeUntil(this.destroy$), debounceTime(300))
70
+ .subscribe((data) => {
71
+ if (data) {
72
+ this.headerData = data;
73
+ // if (this.receivedData === 'Checklist') {
74
+ // this.getMonthlyPeformanceData();
75
+ // } else if (this.receivedData === 'User') {
76
+ // this.getMonthlyPeformanceData();
77
+ // } else {
78
+ // }
79
+ }
80
+ });
81
+ }
82
+ getMonthlyPeformanceData() {
83
+ this.monthlyPeformanceLoading = true;
84
+ this.monthlyPeformanceNoData = true;
85
+ const requestData = {
86
+ fromDate: this.headerData.date.startDate,
87
+ toDate: this.headerData.date.endDate,
88
+ storeId: this.headerData.stores.filter((store) => store.checked).map((store) => store.storeId),
89
+ // storeId: [
90
+ // "11-1743",
91
+ // "11-178",
92
+ // "11-1413",
93
+ // "11-1833",
94
+ // "11-67",
95
+ // "11-709"
96
+ // ],
97
+ clientId: this.headerData.client,
98
+ groupByType: this.receivedData,
99
+ groupByValue: this.monthlyperformce,
100
+ monthDate: this.monthlyToDate,
101
+ };
102
+ this.TraxService.getMonthlyPeformanceData(requestData).pipe(takeUntil(this.destroy$)).subscribe((response) => {
103
+ if (response?.code === 200 && response?.status === "success") {
104
+ this.performanceData = response.data?.monthlyChartData || [];
105
+ this.monthlyPeformanceLoading = false;
106
+ this.monthlyPeformanceNoData = false;
107
+ this.changeDetector.detectChanges();
108
+ }
109
+ else {
110
+ this.performanceData = [];
111
+ this.monthlyPeformanceLoading = false;
112
+ this.monthlyPeformanceNoData = true;
113
+ }
114
+ }, error => {
115
+ this.performanceData = [];
116
+ this.monthlyPeformanceLoading = false;
117
+ this.monthlyPeformanceNoData = true;
118
+ this.changeDetector.detectChanges();
119
+ });
120
+ }
121
+ getDaysInMonth() {
122
+ const daysInMonth = new Date(this.currentYear, this.currentMonth + 1, 0).getDate();
123
+ return Array.from({ length: daysInMonth }, (_, i) => i + 1);
124
+ }
125
+ // Get empty days to align the first day of the month with the correct day of the week
126
+ getEmptyDays() {
127
+ const firstDayOfMonth = new Date(this.currentYear, this.currentMonth, 1).getDay();
128
+ return Array(firstDayOfMonth === 0 ? 6 : firstDayOfMonth - 1).fill(0);
129
+ }
130
+ // Get the class name for a given day based on the performance data
131
+ getDayClass(day) {
132
+ const predefinedDay = this.performanceData.find(d => d.date === day);
133
+ return predefinedDay ? predefinedDay.colorClass : '';
134
+ }
135
+ // Navigate to the previous month
136
+ previousMonth() {
137
+ if (this.currentMonth === 0) {
138
+ this.currentMonth = 11;
139
+ this.currentYear--;
140
+ }
141
+ else {
142
+ this.currentMonth--;
143
+ }
144
+ let formattedMonth = (this.currentMonth + 1).toString().padStart(2, '0');
145
+ this.monthlyToDate = `${this.currentYear}-${formattedMonth}-25`;
146
+ // let monthlyToDate = this.currentYear+"-"+(this.currentMonth - 1) +"-"+"25"
147
+ this.getMonthlyPeformanceData();
148
+ }
149
+ // Navigate to the next month
150
+ nextMonth() {
151
+ if (this.currentMonth === 11) {
152
+ this.currentMonth = 0;
153
+ this.currentYear++;
154
+ }
155
+ else {
156
+ this.currentMonth++;
157
+ }
158
+ let formattedMonth = (this.currentMonth + 1).toString().padStart(2, '0');
159
+ this.monthlyToDate = `${this.currentYear}-${formattedMonth}-25`;
160
+ // let monthlyToDate = this.currentYear+"-"+(this.currentMonth + 1) +"-"+"25"
161
+ this.getMonthlyPeformanceData();
162
+ }
163
+ 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 });
164
+ 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 p-5\">\r\n <!-- triggers=\"mouseenter:mouseleave\" -->\r\n <div class=\"performanceheading\">Monthly Performance <span class=\"cursor-pointer\"\r\n [ngbTooltip]=\"tooltipContent\"\r\n placement=\"bottom\"\r\n triggers=\"mouseenter:mouseleave\"\r\n tooltipClass=\"custom-tooltip\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3701_29180)\">\r\n <path d=\"M7.9987 11.1666V8.49992M7.9987 5.83325H8.00536M14.6654 8.49992C14.6654 12.1818 11.6806 15.1666 7.9987 15.1666C4.3168 15.1666 1.33203 12.1818 1.33203 8.49992C1.33203 4.81802 4.3168 1.83325 7.9987 1.83325C11.6806 1.83325 14.6654 4.81802 14.6654 8.49992Z\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3701_29180\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0 0.5)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n \r\n <ng-template #tooltipContent>\r\n <div class=\"tooltip-container\">\r\n <div class=\"performance-box\">\r\n <div class=\"performance-item\">\r\n <span class=\"number primary900\">1</span>\r\n <span class=\"performancetext\">Overall performance 86 to 100%</span>\r\n </div>\r\n <div class=\"performance-item\">\r\n <span class=\"number blue33B5FF\">2</span>\r\n <span class=\"performancetext\">Overall performance 71 to 85%</span>\r\n </div>\r\n <div class=\"performance-item\">\r\n <span class=\"number lightBlue6BCAFF\">3</span>\r\n <span class=\"performancetext\">Overall performance 56 to 70%</span>\r\n </div>\r\n <div class=\"performance-item\">\r\n <span class=\"number orangeF79009\">4</span>\r\n <span class=\"performancetext\">Overall performance 41 to 55%</span>\r\n </div>\r\n <div class=\"performance-item\">\r\n <span class=\"number redF04438\">5</span>\r\n <span class=\"performancetext\">Overall performance below 40%</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n </div>\r\n \r\n <div 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 <!-- add nodata -->\r\n <div class=\"calendar-body my-5\">\r\n <ng-container *ngIf=\"monthlyPeformanceLoading\">\r\n <div class=\"row loader no-scrollbar 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 no-scrollbar\">\r\n <div class=\"col-lg-12 my-7\">\r\n <div class=\"card-body mb-6 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 \r\n <div *ngIf=\"!monthlyPeformanceLoading && !monthlyPeformanceNoData\">\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()\" class=\"symbol symbol-35px symbol-circle\">\r\n <span [ngClass]=\"getDayClass(day)\" class=\"symbol-label\">\r\n {{ day }}\r\n </span>\r\n </div>\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 \r\n </div>\r\n \r\n \r\n</div>\r\n\r\n", styles: [".calendar-container{display:flex;flex-direction:column;gap:12px;border-radius:8px;background:#fff}.calendar{display:flex;flex-direction:column;align-items:center;max-height:315px;overflow-y:scroll;scrollbar-width:none}.calendar::-webkit-scrollbar{display:none}.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;position:sticky!important;top:0!important;background-color:#fff;z-index:2}.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:2px}.empty-day{visibility:hidden}.calendar-days div{text-align:center;border-radius:50%;cursor:not-allowed;margin-top:10%;margin-left:19%}.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);color:#fff}.blue33B5FF{background-color:#33b5ff;color:#fff}.lightBlue6BCAFF{background-color:#6bcaff;color:#fff}.orangeF79009{background-color:#f79009;color:#fff}.redF04438{background-color:#f04438;color:#fff}.calendar-day{width:85%;height:90%}.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}}.custom-tooltip .tooltip-container{display:flex;flex-direction:column;padding:10px;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 0 10px #0000001a;width:130%!important}.tooltip{display:flex;align-items:center}.tooltip-icon{font-weight:700;margin-right:5px}.tooltip-text{font-size:14px;color:#333}.performance-box{margin-top:10px}.performance-item{display:flex;align-items:center;margin-bottom:5px}.number{display:inline-block;width:25px;height:20px;text-align:center;border-radius:50%;margin-right:10px;margin-bottom:10px}.performancetext{color:#000;text-align:center;font-size:12px;font-weight:600;line-height:20px}.no-scrollbar{overflow:hidden;padding:0;margin: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"] }, { kind: "directive", type: i6.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }] });
165
+ }
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MonthlyperformanceDatepickerComponent, decorators: [{
167
+ type: Component,
168
+ args: [{ selector: 'lib-monthlyperformance-datepicker', template: "<div class=\"calendar-container p-5\">\r\n <!-- triggers=\"mouseenter:mouseleave\" -->\r\n <div class=\"performanceheading\">Monthly Performance <span class=\"cursor-pointer\"\r\n [ngbTooltip]=\"tooltipContent\"\r\n placement=\"bottom\"\r\n triggers=\"mouseenter:mouseleave\"\r\n tooltipClass=\"custom-tooltip\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3701_29180)\">\r\n <path d=\"M7.9987 11.1666V8.49992M7.9987 5.83325H8.00536M14.6654 8.49992C14.6654 12.1818 11.6806 15.1666 7.9987 15.1666C4.3168 15.1666 1.33203 12.1818 1.33203 8.49992C1.33203 4.81802 4.3168 1.83325 7.9987 1.83325C11.6806 1.83325 14.6654 4.81802 14.6654 8.49992Z\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3701_29180\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0 0.5)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n \r\n <ng-template #tooltipContent>\r\n <div class=\"tooltip-container\">\r\n <div class=\"performance-box\">\r\n <div class=\"performance-item\">\r\n <span class=\"number primary900\">1</span>\r\n <span class=\"performancetext\">Overall performance 86 to 100%</span>\r\n </div>\r\n <div class=\"performance-item\">\r\n <span class=\"number blue33B5FF\">2</span>\r\n <span class=\"performancetext\">Overall performance 71 to 85%</span>\r\n </div>\r\n <div class=\"performance-item\">\r\n <span class=\"number lightBlue6BCAFF\">3</span>\r\n <span class=\"performancetext\">Overall performance 56 to 70%</span>\r\n </div>\r\n <div class=\"performance-item\">\r\n <span class=\"number orangeF79009\">4</span>\r\n <span class=\"performancetext\">Overall performance 41 to 55%</span>\r\n </div>\r\n <div class=\"performance-item\">\r\n <span class=\"number redF04438\">5</span>\r\n <span class=\"performancetext\">Overall performance below 40%</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n </div>\r\n \r\n <div 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 <!-- add nodata -->\r\n <div class=\"calendar-body my-5\">\r\n <ng-container *ngIf=\"monthlyPeformanceLoading\">\r\n <div class=\"row loader no-scrollbar 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 no-scrollbar\">\r\n <div class=\"col-lg-12 my-7\">\r\n <div class=\"card-body mb-6 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 \r\n <div *ngIf=\"!monthlyPeformanceLoading && !monthlyPeformanceNoData\">\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()\" class=\"symbol symbol-35px symbol-circle\">\r\n <span [ngClass]=\"getDayClass(day)\" class=\"symbol-label\">\r\n {{ day }}\r\n </span>\r\n </div>\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 \r\n </div>\r\n \r\n \r\n</div>\r\n\r\n", styles: [".calendar-container{display:flex;flex-direction:column;gap:12px;border-radius:8px;background:#fff}.calendar{display:flex;flex-direction:column;align-items:center;max-height:315px;overflow-y:scroll;scrollbar-width:none}.calendar::-webkit-scrollbar{display:none}.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;position:sticky!important;top:0!important;background-color:#fff;z-index:2}.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:2px}.empty-day{visibility:hidden}.calendar-days div{text-align:center;border-radius:50%;cursor:not-allowed;margin-top:10%;margin-left:19%}.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);color:#fff}.blue33B5FF{background-color:#33b5ff;color:#fff}.lightBlue6BCAFF{background-color:#6bcaff;color:#fff}.orangeF79009{background-color:#f79009;color:#fff}.redF04438{background-color:#f04438;color:#fff}.calendar-day{width:85%;height:90%}.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}}.custom-tooltip .tooltip-container{display:flex;flex-direction:column;padding:10px;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 0 10px #0000001a;width:130%!important}.tooltip{display:flex;align-items:center}.tooltip-icon{font-weight:700;margin-right:5px}.tooltip-text{font-size:14px;color:#333}.performance-box{margin-top:10px}.performance-item{display:flex;align-items:center;margin-bottom:5px}.number{display:inline-block;width:25px;height:20px;text-align:center;border-radius:50%;margin-right:10px;margin-bottom:10px}.performancetext{color:#000;text-align:center;font-size:12px;font-weight:600;line-height:20px}.no-scrollbar{overflow:hidden;padding:0;margin:0}\n"] }]
169
+ }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.GlobalStateService }, { type: i0.ChangeDetectorRef }, { type: i3.ToastService }, { type: i4.TraxService }], propDecorators: { monthlyperformce: [{
170
+ type: Input
171
+ }] } });
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGhseXBlcmZvcm1hbmNlLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmF4L3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQtaW5mby9tb250aGx5cGVyZm9ybWFuY2UtZGF0ZXBpY2tlci9tb250aGx5cGVyZm9ybWFuY2UtZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC1pbmZvL21vbnRobHlwZXJmb3JtYW5jZS1kYXRlcGlja2VyL21vbnRobHlwZXJmb3JtYW5jZS1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUM7QUFFakgsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQWdDLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFJdEYsQ0FBQztBQU9ELE1BQU0sT0FBTyxxQ0FBcUM7SUFrQjVCO0lBQStCO0lBQXVCO0lBQWdDO0lBQTJDO0lBQzNJO0lBbEJWLFdBQVcsR0FBVyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQy9DLFlBQVksR0FBVyxJQUFJLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdDLFFBQVEsR0FBYSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hFLFVBQVUsR0FBYSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxF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Y0FBYyxLQUFLLENBQUM7UUFDNUQsNkVBQTZFO1FBQ2pGLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7d0dBeEpVLHFDQUFxQzs0RkFBckMscUNBQXFDLGdKQ2JsRCx5bExBd0hBOzs0RkQzR2EscUNBQXFDO2tCQUxqRCxTQUFTOytCQUNFLG1DQUFtQzs4TkFrQnBDLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgVHJheFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90cmF4LnNlcnZpY2UnO1xyXG47XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1tb250aGx5cGVyZm9ybWFuY2UtZGF0ZXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21vbnRobHlwZXJmb3JtYW5jZS1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbW9udGhseXBlcmZvcm1hbmNlLWRhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb250aGx5cGVyZm9ybWFuY2VEYXRlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCB7XHJcbiAgY3VycmVudFllYXI6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTtcclxuICBjdXJyZW50TW9udGg6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0TW9udGgoKTtcclxuICBkYXlOYW1lczogc3RyaW5nW10gPSBbJ01vJywgJ1R1JywgJ1dlJywgJ1RoJywgJ0ZyJywgJ1NhJywgJ1N1J107XHJcbiAgbW9udGhOYW1lczogc3RyaW5nW10gPSBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXTtcclxuICBoZWFkZXJEYXRhOiBhbnk7XHJcblxyXG4gIHBlcmZvcm1hbmNlRGF0YTogYW55W10gPSBbXTsgLy8gVGhpcyB3aWxsIHN0b3JlIHRoZSBwZXJmb3JtYW5jZSBkYXRhIGZyb20gdGhlIEFQSSByZXNwb25zZVxyXG4gIHByaXZhdGUgZGV0YWNoID0gbmV3IFN1YmplY3QoKTtcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICByZWNlaXZlZERhdGE6IHN0cmluZyA9IFwiQ2hlY2tsaXN0XCI7XHJcbiAgc2VsZWN0ZWR2YWx1ZTogYW55O1xyXG4gIG1vbnRobHlQZWZvcm1hbmNlTG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgbW9udGhseVBlZm9ybWFuY2VOb0RhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBtb250aGx5cGVyZm9ybWNlOiBzdHJpbmc7XHJcbiAgbW9udGhseVRvRGF0ZTogYW55O1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLCBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSB0b2FzdDogVG9hc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBUcmF4U2VydmljZTogVHJheFNlcnZpY2UsXHJcbiAgKSB7IH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGV0YWNoLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRldGFjaC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcywpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmhlYWRlckRhdGEpIHtcclxuICAgICAgdGhpcy5oZWFkZXJEYXRhO1xyXG4gICAgICB0aGlzLmdldE1vbnRobHlQZWZvcm1hbmNlRGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJvdXRlPy5xdWVyeVBhcmFtc1xyXG4gICAgICA/LnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XHJcbiAgICAgICAgaWYgKHBhcmFtcy50eXBlID09PSAnQ2hlY2tsaXN0Jykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZHZhbHVlID0gcGFyYW1zLmNoZWNrbGlzdFxyXG4gICAgICAgICAgdGhpcy5yZWNlaXZlZERhdGEgPSAnQ2hlY2tsaXN0JztcclxuICAgICAgICAgIC8vIHRoaXMuaW5mb0NhcmRzRGF0YSA9IHBhcmFtcy5jaGVja2xpc3REYXRhID8gSlNPTi5wYXJzZShwYXJhbXMuY2hlY2tsaXN0RGF0YSkgOiBudWxsO1xyXG4gICAgICAgIH0gZWxzZSBpZiAocGFyYW1zLnR5cGUgPT09ICdzdG9yZScpIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWR2YWx1ZSA9IHBhcmFtcy5zdG9yZV9pZFxyXG4gICAgICAgICAgdGhpcy5yZWNlaXZlZERhdGEgPSAnU3RvcmUnO1xyXG4gICAgICAgIH0gZWxzZSBpZiAocGFyYW1zLnR5cGUgPT09ICd1c2VyJykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZHZhbHVlID0gcGFyYW1zLnVzZXJFbWFpbFxyXG4gICAgICAgICAgdGhpcy5yZWNlaXZlZERhdGEgPSAnVXNlcic7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDMwMCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICB0aGlzLmhlYWRlckRhdGEgPSBkYXRhO1xyXG4gICAgICAgICAgLy8gaWYgKHRoaXMucmVjZWl2ZWREYXRhID09PSAnQ2hlY2tsaXN0Jykge1xyXG4gICAgICAgICAgLy8gICB0aGlzLmdldE1vbnRobHlQZWZvcm1hbmNlRGF0YSgpO1xyXG4gICAgICAgICAgLy8gfSBlbHNlIGlmICh0aGlzLnJlY2VpdmVkRGF0YSA9PT0gJ1VzZXInKSB7XHJcbiAgICAgICAgICAvLyAgIHRoaXMuZ2V0TW9udGhseVBlZm9ybWFuY2VEYXRhKCk7XHJcbiAgICAgICAgICAvLyB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGdldE1vbnRobHlQZWZvcm1hbmNlRGF0YSgpOiB2b2lkIHtcclxuICAgIHRoaXMubW9udGhseVBlZm9ybWFuY2VMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMubW9udGhseVBlZm9ybWFuY2VOb0RhdGEgPSB0cnVlO1xyXG4gICAgY29uc3QgcmVxdWVzdERhdGEgPSB7XHJcbiAgICAgIGZyb21EYXRlOiB0aGlzLmhlYWRlckRhdGEuZGF0ZS5zdGFydERhdGUsXHJcbiAgICAgIHRvRGF0ZTogdGhpcy5oZWFkZXJEYXRhLmRhdGUuZW5kRGF0ZSxcclxuICAgICAgc3RvcmVJZDogdGhpcy5oZWFkZXJEYXRhLnN0b3Jlcy5maWx0ZXIoKHN0b3JlOiBhbnkpID0+IHN0b3JlLmNoZWNrZWQpLm1hcCgoc3RvcmU6IGFueSkgPT4gc3RvcmUuc3RvcmVJZCksXHJcbiAgICAgIC8vIHN0b3JlSWQ6IFtcclxuICAgICAgLy8gICBcIjExLTE3NDNcIixcclxuICAgICAgLy8gICBcIjExLTE3OFwiLFxyXG4gICAgICAvLyAgIFwiMTEtMTQxM1wiLFxyXG4gICAgICAvLyAgIFwiMTEtMTgzM1wiLFxyXG4gICAgICAvLyAgIFwiMTEtNjdcIixcclxuICAgICAgLy8gICBcIjExLTcwOVwiXHJcbiAgICAgIC8vIF0sXHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBncm91cEJ5VHlwZTogdGhpcy5yZWNlaXZlZERhdGEsXHJcbiAgICAgIGdyb3VwQnlWYWx1ZTogdGhpcy5tb250aGx5cGVyZm9ybWNlLFxyXG4gICAgICBtb250aERhdGU6IHRoaXMubW9udGhseVRvRGF0ZSxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5UcmF4U2VydmljZS5nZXRNb250aGx5UGVmb3JtYW5jZURhdGEocmVxdWVzdERhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlPy5jb2RlID09PSAyMDAgJiYgcmVzcG9uc2U/LnN0YXR1cyA9PT0gXCJzdWNjZXNzXCIpIHtcclxuICAgICAgICB0aGlzLnBlcmZvcm1hbmNlRGF0YSA9IHJlc3BvbnNlLmRhdGE/Lm1vbnRobHlDaGFydERhdGEgfHwgW107XHJcbiAgICAgICAgdGhpcy5tb250aGx5UGVmb3JtYW5jZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1vbnRobHlQZWZvcm1hbmNlTm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5wZXJmb3JtYW5jZURhdGEgPSBbXVxyXG4gICAgICAgIHRoaXMubW9udGhseVBlZm9ybWFuY2VMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tb250aGx5UGVmb3JtYW5jZU5vRGF0YSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAgIGVycm9yID0+IHtcclxuICAgICAgICB0aGlzLnBlcmZvcm1hbmNlRGF0YSA9IFtdXHJcbiAgICAgICAgdGhpcy5tb250aGx5UGVmb3JtYW5jZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1vbnRobHlQZWZvcm1hbmNlTm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXREYXlzSW5Nb250aCgpOiBudW1iZXJbXSB7XHJcbiAgICBjb25zdCBkYXlzSW5Nb250aCA9IG5ldyBEYXRlKHRoaXMuY3VycmVudFllYXIsIHRoaXMuY3VycmVudE1vbnRoICsgMSwgMCkuZ2V0RGF0ZSgpO1xyXG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IGRheXNJbk1vbnRoIH0sIChfLCBpKSA9PiBpICsgMSk7XHJcbiAgfVxyXG5cclxuICAvLyBHZXQgZW1wdHkgZGF5cyB0byBhbGlnbiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCB3aXRoIHRoZSBjb3JyZWN0IGRheSBvZiB0aGUgd2Vla1xyXG4gIGdldEVtcHR5RGF5cygpOiBudW1iZXJbXSB7XHJcbiAgICBjb25zdCBmaXJzdERheU9mTW9udGggPSBuZXcgRGF0ZSh0aGlzLmN1cnJlbnRZZWFyLCB0aGlzLmN1cnJlbnRNb250aCwgMSkuZ2V0RGF5KCk7XHJcbiAgICByZXR1cm4gQXJyYXkoZmlyc3REYXlPZk1vbnRoID09PSAwID8gNiA6IGZpcnN0RGF5T2ZNb250aCAtIDEpLmZpbGwoMCk7XHJcbiAgfVxyXG5cclxuICAvLyBHZXQgdGhlIGNsYXNzIG5hbWUgZm9yIGEgZ2l2ZW4gZGF5IGJhc2VkIG9uIHRoZSBwZXJmb3JtYW5jZSBkYXRhXHJcbiAgZ2V0RGF5Q2xhc3MoZGF5OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgcHJlZGVmaW5lZERheSA9IHRoaXMucGVyZm9ybWFuY2VEYXRhLmZpbmQoZCA9PiBkLmRhdGUgPT09IGRheSk7XHJcbiAgICByZXR1cm4gcHJlZGVmaW5lZERheSA/IHByZWRlZmluZWREYXkuY29sb3JDbGFzcyA6ICcnO1xyXG4gIH1cclxuXHJcbiAgLy8gTmF2aWdhdGUgdG8gdGhlIHByZXZpb3VzIG1vbnRoXHJcbiAgcHJldmlvdXNNb250aCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRNb250aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRNb250aCA9IDExO1xyXG4gICAgICB0aGlzLmN1cnJlbnRZZWFyLS07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1cnJlbnRNb250aC0tO1xyXG4gICAgfVxyXG4gICAgbGV0IGZvcm1hdHRlZE1vbnRoID0gKHRoaXMuY3VycmVudE1vbnRoICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgdGhpcy5tb250aGx5VG9EYXRlID0gYCR7dGhpcy5jdXJyZW50WWVhcn0tJHtmb3JtYXR0ZWRNb250aH0tMjVgO1xyXG4gICAgLy8gbGV0IG1vbnRobHlUb0RhdGUgPSB0aGlzLmN1cnJlbnRZZWFyK1wiLVwiKyh0aGlzLmN1cnJlbnRNb250aCAtIDEpICtcIi1cIitcIjI1XCJcclxuICAgIHRoaXMuZ2V0TW9udGhseVBlZm9ybWFuY2VEYXRhKCk7XHJcbiAgfVxyXG5cclxuICAvLyBOYXZpZ2F0ZSB0byB0aGUgbmV4dCBtb250aFxyXG4gIG5leHRNb250aCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRNb250aCA9PT0gMTEpIHtcclxuICAgICAgdGhpcy5jdXJyZW50TW9udGggPSAwO1xyXG4gICAgICB0aGlzLmN1cnJlbnRZZWFyKys7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1cnJlbnRNb250aCsrO1xyXG4gICAgfVxyXG4gICAgbGV0IGZvcm1hdHRlZE1vbnRoID0gKHRoaXMuY3VycmVudE1vbnRoICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgdGhpcy5tb250aGx5VG9EYXRlID0gYCR7dGhpcy5jdXJyZW50WWVhcn0tJHtmb3JtYXR0ZWRNb250aH0tMjVgO1xyXG4gICAgICAgIC8vIGxldCBtb250aGx5VG9EYXRlID0gdGhpcy5jdXJyZW50WWVhcitcIi1cIisodGhpcy5jdXJyZW50TW9udGggKyAxKSArXCItXCIrXCIyNVwiXHJcbiAgICB0aGlzLmdldE1vbnRobHlQZWZvcm1hbmNlRGF0YSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhbGVuZGFyLWNvbnRhaW5lciBwLTVcIj5cclxuICA8IS0tIHRyaWdnZXJzPVwibW91c2VlbnRlcjptb3VzZWxlYXZlXCIgLS0+XHJcbiAgPGRpdiBjbGFzcz1cInBlcmZvcm1hbmNlaGVhZGluZ1wiPk1vbnRobHkgUGVyZm9ybWFuY2UgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICBbbmdiVG9vbHRpcF09XCJ0b29sdGlwQ29udGVudFwiXHJcbiAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgdHJpZ2dlcnM9XCJtb3VzZWVudGVyOm1vdXNlbGVhdmVcIlxyXG4gICAgdG9vbHRpcENsYXNzPVwiY3VzdG9tLXRvb2x0aXBcIj5cclxuICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxN1wiIHZpZXdCb3g9XCIwIDAgMTYgMTdcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzM3MDFfMjkxODApXCI+XHJcbiAgICAgIDxwYXRoIGQ9XCJNNy45OTg3IDExLjE2NjZWOC40OTk5Mk03Ljk5ODcgNS44MzMyNUg4LjAwNTM2TTE0LjY2NTQgOC40OTk5MkMxNC42NjU0IDEyLjE4MTggMTEuNjgwNiAxNS4xNjY2IDcuOTk4NyAxNS4xNjY2QzQuMzE2OCAxNS4xNjY2IDEuMzMyMDMgMTIuMTgxOCAxLjMzMjAzIDguNDk5OTJDMS4zMzIwMyA0LjgxODAyIDQuMzE2OCAxLjgzMzI1IDcuOTk4NyAxLjgzMzI1QzExLjY4MDYgMS44MzMyNSAxNC42NjU0IDQuODE4MDIgMTQuNjY1NCA4LjQ5OTkyWlwiIHN0cm9rZT1cIiMxMDE4MjhcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICA8L2c+XHJcbiAgICAgIDxkZWZzPlxyXG4gICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8zNzAxXzI5MTgwXCI+XHJcbiAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwIDAuNSlcIi8+XHJcbiAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgIDwvZGVmcz5cclxuICAgICAgPC9zdmc+XHJcbiAgPC9zcGFuPlxyXG4gIFxyXG4gIDxuZy10ZW1wbGF0ZSAjdG9vbHRpcENvbnRlbnQ+XHJcbiAgICA8ZGl2IGNsYXNzPVwidG9vbHRpcC1jb250YWluZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBlcmZvcm1hbmNlLWJveFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwZXJmb3JtYW5jZS1pdGVtXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm51bWJlciBwcmltYXJ5OTAwXCI+MTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGVyZm9ybWFuY2V0ZXh0XCI+T3ZlcmFsbCBwZXJmb3JtYW5jZSA4NiB0byAxMDAlPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwZXJmb3JtYW5jZS1pdGVtXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm51bWJlciBibHVlMzNCNUZGXCI+Mjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGVyZm9ybWFuY2V0ZXh0XCI+T3ZlcmFsbCBwZXJmb3JtYW5jZSA3MSB0byA4NSU8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBlcmZvcm1hbmNlLWl0ZW1cIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibnVtYmVyIGxpZ2h0Qmx1ZTZCQ0FGRlwiPjM8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInBlcmZvcm1hbmNldGV4dFwiPk92ZXJhbGwgcGVyZm9ybWFuY2UgNTYgdG8gNzAlPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwZXJmb3JtYW5jZS1pdGVtXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm51bWJlciBvcmFuZ2VGNzkwMDlcIj40PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJwZXJmb3JtYW5jZXRleHRcIj5PdmVyYWxsIHBlcmZvcm1hbmNlIDQxIHRvIDU1JTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGVyZm9ybWFuY2UtaXRlbVwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJudW1iZXIgcmVkRjA0NDM4XCI+NTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGVyZm9ybWFuY2V0ZXh0XCI+T3ZlcmFsbCBwZXJmb3JtYW5jZSBiZWxvdyA0MCU8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPC9kaXY+XHJcbiBcclxuICA8ZGl2ICBjbGFzcz1cImNhbGVuZGFyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItaGVhZGVyIG15LTNcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJwcmV2aW91c01vbnRoKClcIj5cclxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuNSAxNUw3LjUgMTBMMTIuNSA1XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPHNwYW4+e3sgbW9udGhOYW1lc1tjdXJyZW50TW9udGhdIH19IHt7IGN1cnJlbnRZZWFyIH19PC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm5leHRNb250aCgpXCI+XHJcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICA8cGF0aCBkPVwiTTcuNSAxNUwxMi41IDEwTDcuNSA1XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBhZGQgbm9kYXRhIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJvZHkgbXktNVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9udGhseVBlZm9ybWFuY2VMb2FkaW5nXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgbm8tc2Nyb2xsYmFyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9udGhseVBlZm9ybWFuY2VOb0RhdGEgJiYgIW1vbnRobHlQZWZvcm1hbmNlTG9hZGluZ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbm8tc2Nyb2xsYmFyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbXktN1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBtYi02IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhMS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhbWFpbnRleHQgbXQtM1wiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhc3VidGV4dFwiPlRoZXJlIGlzIG5vIHJlc3VsdCBmb3IgTW9udGhseSBQZXJmb3JtYW5jZVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgXHJcbiAgICAgIDxkaXYgKm5nSWY9XCIhbW9udGhseVBlZm9ybWFuY2VMb2FkaW5nICYmICFtb250aGx5UGVmb3JtYW5jZU5vRGF0YVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGF5LW5hbWVzXCI+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGF5IG9mIGRheU5hbWVzXCI+e3sgZGF5IH19PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItZGF5c1wiPlxyXG4gICAgICAgIDwhLS0gRW1wdHkgZGF5cyB0byBhbGlnbiB0aGUgc3RhcnQgb2YgdGhlIG1vbnRoIC0tPlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IF8gb2YgZ2V0RW1wdHlEYXlzKClcIiBjbGFzcz1cImVtcHR5LWRheVwiPjwvZGl2PlxyXG4gICAgICAgIDwhLS0gQ2FsZW5kYXIgZGF5cyB3aXRoIGR5bmFtaWMgY29sb3IgYXNzaWdubWVudCB2aWEgQ1NTIGNsYXNzZXMgLS0+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGF5IG9mIGdldERheXNJbk1vbnRoKClcIiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtMzVweCBzeW1ib2wtY2lyY2xlXCI+XHJcbiAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJnZXREYXlDbGFzcyhkYXkpXCIgIGNsYXNzPVwic3ltYm9sLWxhYmVsXCI+XHJcbiAgICAgICAgICAgIHt7IGRheSB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIDxkaXYgKm5nRm9yPVwibGV0IGRheSBvZiBnZXREYXlzSW5Nb250aCgpXCIgW25nQ2xhc3NdPVwiZ2V0RGF5Q2xhc3MoZGF5KVwiIGNsYXNzPVwiY2FsZW5kYXItZGF5XCI+XHJcbiAgICAgICAgICB7eyBkYXkgfX1cclxuICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPC9kaXY+XHJcbiBcclxuIFxyXG48L2Rpdj5cclxuXHJcbiJdfQ==
@@ -0,0 +1,12 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/router";
4
+ export class DashboardLayoutComponent {
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DashboardLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DashboardLayoutComponent, selector: "lib-dashboard-layout", ngImport: i0, template: "<router-outlet></router-outlet>", styles: [""], dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DashboardLayoutComponent, decorators: [{
9
+ type: Component,
10
+ args: [{ selector: 'lib-dashboard-layout', template: "<router-outlet></router-outlet>" }]
11
+ }] });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC1sYXlvdXQvZGFzaGJvYXJkLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC1sYXlvdXQvZGFzaGJvYXJkLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPMUMsTUFBTSxPQUFPLHdCQUF3Qjt3R0FBeEIsd0JBQXdCOzRGQUF4Qix3QkFBd0IsNERDUHJDLGlDQUErQjs7NEZET2xCLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWRhc2hib2FyZC1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQtbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZGFzaGJvYXJkLWxheW91dC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIERhc2hib2FyZExheW91dENvbXBvbmVudCB7XHJcblxyXG59XHJcbiIsIjxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD4iXX0=
@@ -0,0 +1,119 @@
1
+ import { Component, ElementRef, Input, ViewChild } from '@angular/core';
2
+ import { Subject, takeUntil } from "rxjs";
3
+ import dayjs from "dayjs";
4
+ import utc from 'dayjs/plugin/utc';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ng-bootstrap/ng-bootstrap";
7
+ import * as i2 from "../../services/trax.service";
8
+ import * as i3 from "@angular/common";
9
+ import * as i4 from "@angular/forms";
10
+ import * as i5 from "ngx-daterangepicker-material";
11
+ dayjs.extend(utc);
12
+ export class ExportGalleryComponent {
13
+ activeModal;
14
+ cd;
15
+ traxService;
16
+ type;
17
+ payload;
18
+ clientName;
19
+ selectedDateRange = {};
20
+ destroy$ = new Subject();
21
+ maxdaysReached = false;
22
+ previewType = 'image';
23
+ constructor(activeModal, cd, traxService) {
24
+ this.activeModal = activeModal;
25
+ this.cd = cd;
26
+ this.traxService = traxService;
27
+ }
28
+ dateRangePickerInput;
29
+ ngOnInit() {
30
+ this.selectedDateRange = {
31
+ startDate: dayjs(this.payload?.fromDate).format('DD-MM-YYYY'),
32
+ endDate: dayjs(this.payload?.toDate).format('DD-MM-YYYY'),
33
+ };
34
+ this.payload.previewType = this.previewType;
35
+ }
36
+ ngAfterViewInit() {
37
+ this.dateRangePickerInput?.nativeElement?.addEventListener('focus', () => {
38
+ setTimeout(() => {
39
+ const datePicker = document.querySelector('.daterangepicker');
40
+ if (datePicker) {
41
+ document.body.appendChild(datePicker);
42
+ datePicker.style.position = 'absolute';
43
+ datePicker.style.zIndex = '1050';
44
+ }
45
+ }, 0);
46
+ });
47
+ }
48
+ datechange(event) {
49
+ if (!event.endDate || !event.startDate) {
50
+ return;
51
+ }
52
+ this.payload.fromDate = event.startDate;
53
+ this.payload.toDate = event.endDate;
54
+ const start = dayjs(this.payload.fromDate);
55
+ const end = dayjs(this.payload.toDate);
56
+ // Calculate the difference in the specified unit
57
+ const difference = end.diff(start, 'days');
58
+ if (difference > 30) {
59
+ this.maxdaysReached = true;
60
+ }
61
+ else {
62
+ this.maxdaysReached = false;
63
+ }
64
+ this.csvheight = '';
65
+ }
66
+ dayjs = dayjs;
67
+ isCustomDate = (m) => {
68
+ const isValidDate = m > this.dayjs();
69
+ return isValidDate ? 'invalid-date' : false;
70
+ };
71
+ onStartDateChange(event) {
72
+ if (this.dayjs(event.startDate).isValid()) {
73
+ this.isCustomDate = (m) => {
74
+ const isValidDate = m > this.dayjs() || m > this.dayjs(event.startDate.add(90, "days"));
75
+ return isValidDate ? "invalid-date" : false;
76
+ };
77
+ }
78
+ // this.getAllCheckLists(false)
79
+ }
80
+ onSelect(value) {
81
+ this.previewType = value;
82
+ this.payload.previewType = value;
83
+ }
84
+ cancel() {
85
+ this.activeModal.close('close');
86
+ }
87
+ onSubmit() {
88
+ this.traxService.reportTableExport(this.payload)?.pipe(takeUntil(this.destroy$))?.subscribe({
89
+ next: (res) => {
90
+ if (res && res.code === 200) {
91
+ this.activeModal.close('success');
92
+ }
93
+ else {
94
+ this.activeModal.close('error');
95
+ }
96
+ }
97
+ });
98
+ }
99
+ csvheight = '';
100
+ dateheight() {
101
+ this.csvheight = "300px";
102
+ }
103
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExportGalleryComponent, deps: [{ token: i1.NgbActiveModal }, { token: i0.ChangeDetectorRef }, { token: i2.TraxService }], target: i0.ɵɵFactoryTarget.Component });
104
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ExportGalleryComponent, selector: "lib-export-gallery", inputs: { type: "type", payload: "payload", clientName: "clientName" }, viewQueries: [{ propertyName: "dateRangePickerInput", first: true, predicate: ["dateRangePickerInput"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"card group-delete py-0 scroll\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\"/>\r\n <path d=\"M37 31V35C37 35.5304 36.7893 36.0391 36.4142 36.4142C36.0391 36.7893 35.5304 37 35 37H21C20.4696 37 19.9609 36.7893 19.5858 36.4142C19.2107 36.0391 19 35.5304 19 35V31M23 26L28 31M28 31L33 26M28 31V19\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">{{type}}</a>\r\n\r\n <span *ngIf=\"type ==='Export as CSV'\" class=\"fw-normal mt-2\"><span class=\"dark-line1\">One of your team has requested edit access to your project</span> <span class=\"dark-line ms-1\">Website Design.</span></span> \r\n <div *ngIf=\"type ==='Export as CSV'\" class=\"col-md-12 position-relative mt-3 h-350px\">\r\n <span style=\"top: 2%;\" class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14 \" #dateRangePickerInput style=\"min-width: 260px !important; z-index: 1050 !important;\"\r\n type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\" \r\n [opens]=\"'right'\" [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\"\r\n [showCancel]=\"false\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (click)=\"dateheight()\"\r\n [ngModelOptions]=\"{standalone: true}\" (datesUpdated)=\"datechange($event)\"\r\n [autoApply]=\"true\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n name=\"daterange\" [readonly]=\"true\" />\r\n </div>\r\n\r\n <span *ngIf=\"type ==='Export as CSV'\" [ngClass]=\"maxdaysReached ? 'flagclour':''\" class=\"dark-line1 fw-normal mt-2\">Data downloads are limited to one month at a time.</span>\r\n <span *ngIf=\"type ==='Export as PDF'\" class=\"dark-line1 fw-normal mt-2\">This blog post has been published. Team members will be able to edit this post and republish changes.</span>\r\n <div *ngIf=\"type==='Export as PDF'\" class=\"col-md-12 mt-3\">\r\n <label class=\"label\">Select checklist</label>\r\n <select class=\"form-control\">\r\n <option><span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M11.6654 1.66602H4.9987C4.55667 1.66602 4.13275 1.84161 3.82019 2.15417C3.50763 2.46673 3.33203 2.89065 3.33203 3.33268V16.666C3.33203 17.108 3.50763 17.532 3.82019 17.8445C4.13275 18.1571 4.55667 18.3327 4.9987 18.3327H14.9987C15.4407 18.3327 15.8646 18.1571 16.1772 17.8445C16.4898 17.532 16.6654 17.108 16.6654 16.666V6.66602M11.6654 1.66602L16.6654 6.66602M11.6654 1.66602V6.66602H16.6654M13.332 10.8327H6.66536M13.332 14.166H6.66536M8.33203 7.49935H6.66536\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>Store Operation checklist</option>\r\n </select>\r\n </div>\r\n <div *ngIf=\"type==='Export as PDF'\" class=\"col-md-12 mt-3\">\r\n <label class=\"label\">Select Store</label>\r\n <select class=\"form-control\">\r\n <option></option>\r\n </select>\r\n </div>\r\n\r\n <div *ngIf=\"type==='Export as PDF'\" class=\"col-md-12 position-relative mt-5\">\r\n <span style=\"top: 20%;\" class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" #dateRangePickerInput style=\"min-width: 260px !important; z-index: 1050 !important;\"\r\n type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\" [singleDatePicker]=\"true\"\r\n [opens]=\"'right'\" [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\"\r\n [showCancel]=\"false\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\"\r\n [ngModelOptions]=\"{standalone: true}\" (datesUpdated)=\"datechange($event)\"\r\n [autoApply]=\"true\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n name=\"daterange\" [readonly]=\"true\" />\r\n <span class=\"sub-title fw-normal mt-2\">Only 1 day data can be downloaded</span>\r\n </div>\r\n <div *ngIf=\"type==='Export as PPT'||type==='Export as ZIP'\">\r\n\r\n <div class=\"d-flex flex-wrap mt-5\">\r\n <div class=\"border rounded min-w-200px cursor-pointer py-3 px-4 me-6 mb-3\" [ngClass]=\"previewType === 'image' ? 'nav-line-tabs1' : 'border-gray-300'\" (click)=\"onSelect('image')\">\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <svg *ngIf=\"previewType === 'image'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M5 21H19C20.1046 21 21 20.1046 21 19V5C21 3.89543 20.1046 3 19 3H5C3.89543 3 3 3.89543 3 5V19C3 20.1046 3.89543 21 5 21ZM5 21L16 10L21 15M10 8.5C10 9.32843 9.32843 10 8.5 10C7.67157 10 7 9.32843 7 8.5C7 7.67157 7.67157 7 8.5 7C9.32843 7 10 7.67157 10 8.5Z\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"previewType === 'video'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M5 21H19C20.1046 21 21 20.1046 21 19V5C21 3.89543 20.1046 3 19 3H5C3.89543 3 3 3.89543 3 5V19C3 20.1046 3.89543 21 5 21ZM5 21L16 10L21 15M10 8.5C10 9.32843 9.32843 10 8.5 10C7.67157 10 7 9.32843 7 8.5C7 7.67157 7.67157 7 8.5 7C9.32843 7 10 7.67157 10 8.5Z\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n <div [ngClass]=\"previewType === 'image' ? 'text-border-priamry' : 'textvalue'\">Image</div>\r\n </div>\r\n <div class=\"border rounded min-w-200px cursor-pointer py-3 px-4 mb-3\" [ngClass]=\"previewType === 'video' ? 'nav-line-tabs1' : 'border-gray-300'\" (click)=\"onSelect('video')\">\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <svg *ngIf=\"previewType === 'image'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M10 8L16 12L10 16V8Z\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"previewType === 'video'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M10 8L16 12L10 16V8Z\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n <div [ngClass]=\"previewType === 'video' ? 'text-border-priamry' : 'textvalue'\" >Video</div>\r\n </div>\r\n \r\n </div>\r\n <!-- <label for=\"dropdown\" class=\"m-4 fs-4\">Choose an option: </label> -->\r\n <!-- <select id=\"dropdown\" class=\"form-control\" [(ngModel)]=\"previewType\" (change)=\"onSelect($event)\">\r\n <option [value]=\"'image'\">Image</option>\r\n <option [value]=\"'video'\">Video</option>\r\n </select> -->\r\n </div>\r\n <div *ngIf=\"type ==='Export as CSV'\" class=\"row w-100\">\r\n <div class=\"col-md-8\"></div>\r\n <div class=\"col-md-4 mt-2 text-end\">\r\n <div role=\"group\" class=\"d-flex mt-3 mb-15\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button id=\"alert-toast\" class=\"btn btn-primary w-100 ms-2\" [disabled]=\"maxdaysReached\" (click)=\"onSubmit()\">Confirm</button>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div *ngIf=\"type !=='Export as CSV'\" class=\"mt-2 w-100 text-end\">\r\n \r\n <div role=\"group\" class=\"d-flex mt-3 mb-15\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button id=\"alert-toast\" class=\"btn btn-primary w-100 ms-2\" [disabled]=\"maxdaysReached\" (click)=\"onSubmit()\">Confirm</button>\r\n </div>\r\n \r\n </div>\r\n\r\n </div>\r\n</div>\r\n", styles: [":host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .md-drppicker.shown.drops-down-right{transform-origin:0 0;width:600px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.show-ranges.shown{top:65px!important}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;right:-475px!important;left:unset!important;height:400px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}:host::ng-deep .daterangepicker{position:fixed!important;top:30%!important;left:50%!important;transform:translate(-50%);z-index:1050!important}.label{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500;line-height:20px!important}.flagclour{color:red!important}.nav-line-tabs1{border-radius:8px!important;border:1px solid var(--Primary-700, #009BF3)!important;border-color:#009bf3!important;padding:16px!important;background:var(--Primary-25, #F6FCFF)!important}.border-gray-300{border-color:#101828!important;padding:16px!important}.textvalue{color:var(--Gray-900, #101828);font-size:16px!important;font-style:normal;font-weight:600!important;line-height:24px!important}.text-border-priamry{color:var(--Primary-700, #009BF3);font-size:16px!important;font-style:normal;font-weight:600!important;line-height:24px!important}.dark-line{color:var(--Gray-500, #667085)!important;font-size:14px;font-style:normal;font-weight:500!important;line-height:20px}.dark-line1{color:var(--Gray-500, #667085)!important;font-size:14px;font-style:normal;font-weight:400!important;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.DaterangepickerDirective, selector: "input[ngxDaterangepickerMd]", inputs: ["minDate", "maxDate", "autoApply", "alwaysShowCalendars", "showCustomRangeLabel", "linkedCalendars", "dateLimit", "singleDatePicker", "showWeekNumbers", "showISOWeekNumbers", "showDropdowns", "isInvalidDate", "isCustomDate", "isTooltipDate", "showClearButton", "customRangeDirection", "ranges", "opens", "drops", "firstMonthDayClass", "lastMonthDayClass", "emptyWeekRowClass", "emptyWeekColumnClass", "firstDayOfNextMonthClass", "lastDayOfPreviousMonthClass", "keepCalendarOpeningWithRange", "showRangeLabelOnInput", "showCancel", "lockStartDate", "timePicker", "timePicker24Hour", "timePickerIncrement", "timePickerSeconds", "closeOnAutoApply", "endKeyHolder", "startKey", "locale", "endKey"], outputs: ["change", "rangeClicked", "datesUpdated", "startDateChanged", "endDateChanged", "clearClicked"] }] });
105
+ }
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExportGalleryComponent, decorators: [{
107
+ type: Component,
108
+ args: [{ selector: 'lib-export-gallery', template: "<div class=\"card group-delete py-0 scroll\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\"/>\r\n <path d=\"M37 31V35C37 35.5304 36.7893 36.0391 36.4142 36.4142C36.0391 36.7893 35.5304 37 35 37H21C20.4696 37 19.9609 36.7893 19.5858 36.4142C19.2107 36.0391 19 35.5304 19 35V31M23 26L28 31M28 31L33 26M28 31V19\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">{{type}}</a>\r\n\r\n <span *ngIf=\"type ==='Export as CSV'\" class=\"fw-normal mt-2\"><span class=\"dark-line1\">One of your team has requested edit access to your project</span> <span class=\"dark-line ms-1\">Website Design.</span></span> \r\n <div *ngIf=\"type ==='Export as CSV'\" class=\"col-md-12 position-relative mt-3 h-350px\">\r\n <span style=\"top: 2%;\" class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14 \" #dateRangePickerInput style=\"min-width: 260px !important; z-index: 1050 !important;\"\r\n type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\" \r\n [opens]=\"'right'\" [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\"\r\n [showCancel]=\"false\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (click)=\"dateheight()\"\r\n [ngModelOptions]=\"{standalone: true}\" (datesUpdated)=\"datechange($event)\"\r\n [autoApply]=\"true\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n name=\"daterange\" [readonly]=\"true\" />\r\n </div>\r\n\r\n <span *ngIf=\"type ==='Export as CSV'\" [ngClass]=\"maxdaysReached ? 'flagclour':''\" class=\"dark-line1 fw-normal mt-2\">Data downloads are limited to one month at a time.</span>\r\n <span *ngIf=\"type ==='Export as PDF'\" class=\"dark-line1 fw-normal mt-2\">This blog post has been published. Team members will be able to edit this post and republish changes.</span>\r\n <div *ngIf=\"type==='Export as PDF'\" class=\"col-md-12 mt-3\">\r\n <label class=\"label\">Select checklist</label>\r\n <select class=\"form-control\">\r\n <option><span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M11.6654 1.66602H4.9987C4.55667 1.66602 4.13275 1.84161 3.82019 2.15417C3.50763 2.46673 3.33203 2.89065 3.33203 3.33268V16.666C3.33203 17.108 3.50763 17.532 3.82019 17.8445C4.13275 18.1571 4.55667 18.3327 4.9987 18.3327H14.9987C15.4407 18.3327 15.8646 18.1571 16.1772 17.8445C16.4898 17.532 16.6654 17.108 16.6654 16.666V6.66602M11.6654 1.66602L16.6654 6.66602M11.6654 1.66602V6.66602H16.6654M13.332 10.8327H6.66536M13.332 14.166H6.66536M8.33203 7.49935H6.66536\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>Store Operation checklist</option>\r\n </select>\r\n </div>\r\n <div *ngIf=\"type==='Export as PDF'\" class=\"col-md-12 mt-3\">\r\n <label class=\"label\">Select Store</label>\r\n <select class=\"form-control\">\r\n <option></option>\r\n </select>\r\n </div>\r\n\r\n <div *ngIf=\"type==='Export as PDF'\" class=\"col-md-12 position-relative mt-5\">\r\n <span style=\"top: 20%;\" class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" #dateRangePickerInput style=\"min-width: 260px !important; z-index: 1050 !important;\"\r\n type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\" [singleDatePicker]=\"true\"\r\n [opens]=\"'right'\" [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\"\r\n [showCancel]=\"false\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\"\r\n [ngModelOptions]=\"{standalone: true}\" (datesUpdated)=\"datechange($event)\"\r\n [autoApply]=\"true\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n name=\"daterange\" [readonly]=\"true\" />\r\n <span class=\"sub-title fw-normal mt-2\">Only 1 day data can be downloaded</span>\r\n </div>\r\n <div *ngIf=\"type==='Export as PPT'||type==='Export as ZIP'\">\r\n\r\n <div class=\"d-flex flex-wrap mt-5\">\r\n <div class=\"border rounded min-w-200px cursor-pointer py-3 px-4 me-6 mb-3\" [ngClass]=\"previewType === 'image' ? 'nav-line-tabs1' : 'border-gray-300'\" (click)=\"onSelect('image')\">\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <svg *ngIf=\"previewType === 'image'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M5 21H19C20.1046 21 21 20.1046 21 19V5C21 3.89543 20.1046 3 19 3H5C3.89543 3 3 3.89543 3 5V19C3 20.1046 3.89543 21 5 21ZM5 21L16 10L21 15M10 8.5C10 9.32843 9.32843 10 8.5 10C7.67157 10 7 9.32843 7 8.5C7 7.67157 7.67157 7 8.5 7C9.32843 7 10 7.67157 10 8.5Z\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"previewType === 'video'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M5 21H19C20.1046 21 21 20.1046 21 19V5C21 3.89543 20.1046 3 19 3H5C3.89543 3 3 3.89543 3 5V19C3 20.1046 3.89543 21 5 21ZM5 21L16 10L21 15M10 8.5C10 9.32843 9.32843 10 8.5 10C7.67157 10 7 9.32843 7 8.5C7 7.67157 7.67157 7 8.5 7C9.32843 7 10 7.67157 10 8.5Z\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n <div [ngClass]=\"previewType === 'image' ? 'text-border-priamry' : 'textvalue'\">Image</div>\r\n </div>\r\n <div class=\"border rounded min-w-200px cursor-pointer py-3 px-4 mb-3\" [ngClass]=\"previewType === 'video' ? 'nav-line-tabs1' : 'border-gray-300'\" (click)=\"onSelect('video')\">\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <svg *ngIf=\"previewType === 'image'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M10 8L16 12L10 16V8Z\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"previewType === 'video'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M10 8L16 12L10 16V8Z\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n <div [ngClass]=\"previewType === 'video' ? 'text-border-priamry' : 'textvalue'\" >Video</div>\r\n </div>\r\n \r\n </div>\r\n <!-- <label for=\"dropdown\" class=\"m-4 fs-4\">Choose an option: </label> -->\r\n <!-- <select id=\"dropdown\" class=\"form-control\" [(ngModel)]=\"previewType\" (change)=\"onSelect($event)\">\r\n <option [value]=\"'image'\">Image</option>\r\n <option [value]=\"'video'\">Video</option>\r\n </select> -->\r\n </div>\r\n <div *ngIf=\"type ==='Export as CSV'\" class=\"row w-100\">\r\n <div class=\"col-md-8\"></div>\r\n <div class=\"col-md-4 mt-2 text-end\">\r\n <div role=\"group\" class=\"d-flex mt-3 mb-15\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button id=\"alert-toast\" class=\"btn btn-primary w-100 ms-2\" [disabled]=\"maxdaysReached\" (click)=\"onSubmit()\">Confirm</button>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div *ngIf=\"type !=='Export as CSV'\" class=\"mt-2 w-100 text-end\">\r\n \r\n <div role=\"group\" class=\"d-flex mt-3 mb-15\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button id=\"alert-toast\" class=\"btn btn-primary w-100 ms-2\" [disabled]=\"maxdaysReached\" (click)=\"onSubmit()\">Confirm</button>\r\n </div>\r\n \r\n </div>\r\n\r\n </div>\r\n</div>\r\n", styles: [":host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .md-drppicker.shown.drops-down-right{transform-origin:0 0;width:600px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.show-ranges.shown{top:65px!important}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;right:-475px!important;left:unset!important;height:400px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}:host::ng-deep .daterangepicker{position:fixed!important;top:30%!important;left:50%!important;transform:translate(-50%);z-index:1050!important}.label{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500;line-height:20px!important}.flagclour{color:red!important}.nav-line-tabs1{border-radius:8px!important;border:1px solid var(--Primary-700, #009BF3)!important;border-color:#009bf3!important;padding:16px!important;background:var(--Primary-25, #F6FCFF)!important}.border-gray-300{border-color:#101828!important;padding:16px!important}.textvalue{color:var(--Gray-900, #101828);font-size:16px!important;font-style:normal;font-weight:600!important;line-height:24px!important}.text-border-priamry{color:var(--Primary-700, #009BF3);font-size:16px!important;font-style:normal;font-weight:600!important;line-height:24px!important}.dark-line{color:var(--Gray-500, #667085)!important;font-size:14px;font-style:normal;font-weight:500!important;line-height:20px}.dark-line1{color:var(--Gray-500, #667085)!important;font-size:14px;font-style:normal;font-weight:400!important;line-height:20px}\n"] }]
109
+ }], ctorParameters: () => [{ type: i1.NgbActiveModal }, { type: i0.ChangeDetectorRef }, { type: i2.TraxService }], propDecorators: { type: [{
110
+ type: Input
111
+ }], payload: [{
112
+ type: Input
113
+ }], clientName: [{
114
+ type: Input
115
+ }], dateRangePickerInput: [{
116
+ type: ViewChild,
117
+ args: ['dateRangePickerInput', { read: ElementRef }]
118
+ }] } });
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWdhbGxlcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmF4L3NyYy9saWIvY29tcG9uZW50cy9leHBvcnQtZ2FsbGVyeS9leHBvcnQtZ2FsbGVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2V4cG9ydC1nYWxsZXJ5L2V4cG9ydC1nYWxsZXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWxILE9BQU8sRUFBRSxPQUFPLEVBQThDLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RixPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0FBQ25DLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFNbEIsTUFBTSxPQUFPLHNCQUFzQjtJQVN2QjtJQUNBO0lBQ0E7SUFWRCxJQUFJLENBQU07SUFDVixPQUFPLENBQU07SUFDYixVQUFVLENBQUs7SUFDeEIsaUJBQWlCLEdBQVEsRUFBRSxDQUFDO0lBQ3BCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ2pDLGNBQWMsR0FBVSxLQUFLLENBQUM7SUFDOUIsV0FBVyxHQUFLLE9BQU8sQ0FBQztJQUN4QixZQUNVLFdBQTJCLEVBQzNCLEVBQXFCLEVBQ3JCLFdBQXVCO1FBRnZCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtJQUtqQyxDQUFDO0lBQ3dELG9C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RUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFRpbWVQZXJpb2QgfSBmcm9tICduZ3gtZGF0ZXJhbmdlcGlja2VyLW1hdGVyaWFsL2RhdGVyYW5nZXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmF4U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IGRheWpzLCB7IERheWpzIH0gZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XHJcbmRheWpzLmV4dGVuZCh1dGMpO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1leHBvcnQtZ2FsbGVyeScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2V4cG9ydC1nYWxsZXJ5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZXhwb3J0LWdhbGxlcnkuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFeHBvcnRHYWxsZXJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSB0eXBlOiBhbnk7XHJcbiAgQElucHV0KCkgcGF5bG9hZDogYW55O1xyXG4gIEBJbnB1dCgpIGNsaWVudE5hbWU6YW55O1xyXG4gIHNlbGVjdGVkRGF0ZVJhbmdlOiBhbnkgPSB7fTtcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBtYXhkYXlzUmVhY2hlZDogYm9vbGVhbj1mYWxzZTtcclxuICBwcmV2aWV3VHlwZTphbnk9J2ltYWdlJztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYWN0aXZlTW9kYWw6IE5nYkFjdGl2ZU1vZGFsLFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHRyYXhTZXJ2aWNlOlRyYXhTZXJ2aWNlXHJcbiAgKSB7XHJcblxyXG5cclxuXHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ2RhdGVSYW5nZVBpY2tlcklucHV0JywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGRhdGVSYW5nZVBpY2tlcklucHV0OiBFbGVtZW50UmVmO1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9IHtcclxuICAgICAgc3RhcnREYXRlOiBkYXlqcyh0aGlzLnBheWxvYWQ/LmZyb21EYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSwgXHJcbiAgICAgIGVuZERhdGU6ZGF5anModGhpcy5wYXlsb2FkPy50b0RhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpLFxyXG4gICAgfVxyXG4gICAgdGhpcy5wYXlsb2FkLnByZXZpZXdUeXBlID0gdGhpcy5wcmV2aWV3VHlwZVxyXG5cclxuXHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZGF0ZVJhbmdlUGlja2VySW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBjb25zdCBkYXRlUGlja2VyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmRhdGVyYW5nZXBpY2tlcicpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIGlmIChkYXRlUGlja2VyKSB7XHJcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRhdGVQaWNrZXIpO1xyXG4gICAgICAgICAgZGF0ZVBpY2tlci5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XHJcbiAgICAgICAgICBkYXRlUGlja2VyLnN0eWxlLnpJbmRleCA9ICcxMDUwJztcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkYXRlY2hhbmdlKGV2ZW50OiBUaW1lUGVyaW9kKSB7XHJcbiAgICBpZiAoIWV2ZW50LmVuZERhdGUgfHwgIWV2ZW50LnN0YXJ0RGF0ZSkge1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuICAgIHRoaXMucGF5bG9hZC5mcm9tRGF0ZSA9IGV2ZW50LnN0YXJ0RGF0ZVxyXG4gICAgdGhpcy5wYXlsb2FkLnRvRGF0ZSA9IGV2ZW50LmVuZERhdGVcclxuICAgIGNvbnN0IHN0YXJ0ID0gZGF5anModGhpcy5wYXlsb2FkLmZyb21EYXRlKTtcclxuICAgIGNvbnN0IGVuZCA9IGRheWpzKHRoaXMucGF5bG9hZC50b0RhdGUpO1xyXG5cclxuICAgIC8vIENhbGN1bGF0ZSB0aGUgZGlmZmVyZW5jZSBpbiB0aGUgc3BlY2lmaWVkIHVuaXRcclxuICAgIGNvbnN0IGRpZmZlcmVuY2UgPSBlbmQuZGlmZihzdGFydCwgJ2RheXMnKTtcclxuICAgIGlmKGRpZmZlcmVuY2U+MzApe1xyXG4gICAgICB0aGlzLm1heGRheXNSZWFjaGVkPXRydWU7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5tYXhkYXlzUmVhY2hlZD1mYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuY3N2aGVpZ2h0ID0nJztcclxuICB9XHJcbiAgZGF5anMgPWRheWpzO1xyXG4gIGlzQ3VzdG9tRGF0ZSA9IChtOiBkYXlqcy5EYXlqcykgPT4ge1xyXG4gICAgY29uc3QgaXNWYWxpZERhdGUgPSBtID4gdGhpcy5kYXlqcygpO1xyXG4gICAgcmV0dXJuIGlzVmFsaWREYXRlID8gJ2ludmFsaWQtZGF0ZScgOiBmYWxzZTtcclxuICB9XHJcbiAgb25TdGFydERhdGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlKS5pc1ZhbGlkKCkpIHtcclxuICAgICAgdGhpcy5pc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHtcclxuICAgICAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9XHJcbiAgICAgICAgICBtID4gdGhpcy5kYXlqcygpIHx8IG0gPiB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZS5hZGQoOTAsIFwiZGF5c1wiKSk7XHJcbiAgICAgICAgcmV0dXJuIGlzVmFsaWREYXRlID8gXCJpbnZhbGlkLWRhdGVcIiA6IGZhbHNlO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgLy8gdGhpcy5nZXRBbGxDaGVja0xpc3RzKGZhbHNlKVxyXG4gIH1cclxuICBvblNlbGVjdCh2YWx1ZTphbnkpe1xyXG4gICAgdGhpcy5wcmV2aWV3VHlwZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5wYXlsb2FkLnByZXZpZXdUeXBlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKXtcclxuICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoJ2Nsb3NlJyk7XHJcbiAgfVxyXG4gIG9uU3VibWl0KCl7XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLnJlcG9ydFRhYmxlRXhwb3J0KHRoaXMucGF5bG9hZCk/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdzdWNjZXNzJyk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdlcnJvcicpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgfSlcclxuXHJcblxyXG5cclxuICB9XHJcbiAgY3N2aGVpZ2h0ID0nJztcclxuICBkYXRlaGVpZ2h0KCl7XHJcbiAgICB0aGlzLmNzdmhlaWdodCA9XCIzMDBweFwiXHJcbiAgfVxyXG59XHJcblxyXG5cclxuIiwiPGRpdiBjbGFzcz1cImNhcmQgZ3JvdXAtZGVsZXRlIHB5LTAgc2Nyb2xsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB5LTAgZC1mbGV4IGZsZXgtc3RhcnQgZmxleC1jb2x1bW4gcC05IFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzeW1ib2wgc3ltYm9sLTc1cHggc3ltYm9sLWNpcmNsZVwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0RBRjFGRlwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNFQUY4RkZcIiBzdHJva2Utd2lkdGg9XCI4XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMzcgMzFWMzVDMzcgMzUuNTMwNCAzNi43ODkzIDM2LjAzOTEgMzYuNDE0MiAzNi40MTQyQzM2LjAzOTEgMzYuNzg5MyAzNS41MzA0IDM3IDM1IDM3SDIxQzIwLjQ2OTYgMzcgMTkuOTYwOSAzNi43ODkzIDE5LjU4NTggMzYuNDE0MkMxOS4yMTA3IDM2LjAzOTEgMTkgMzUuNTMwNCAxOSAzNVYzMU0yMyAyNkwyOCAzMU0yOCAzMUwzMyAyNk0yOCAzMVYxOVwiIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPiBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGEgY2xhc3M9XCJmcy00IHRleHQtZ3JheS04MDAgdGV4dC1ob3Zlci1wcmltYXJ5IGZ3LWJvbGQgbWItMCB0aXRsZSBjdXJzb3ItcG9pbnRlclwiPnt7dHlwZX19PC9hPlxyXG5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInR5cGUgPT09J0V4cG9ydCBhcyBDU1YnXCIgIGNsYXNzPVwiZnctbm9ybWFsIG10LTJcIj48c3BhbiBjbGFzcz1cImRhcmstbGluZTFcIj5PbmUgb2YgeW91ciB0ZWFtIGhhcyByZXF1ZXN0ZWQgZWRpdCBhY2Nlc3MgdG8geW91ciBwcm9qZWN0PC9zcGFuPiA8c3BhbiBjbGFzcz1cImRhcmstbGluZSBtcy0xXCI+V2Vic2l0ZSBEZXNpZ24uPC9zcGFuPjwvc3Bhbj4gXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInR5cGUgPT09J0V4cG9ydCBhcyBDU1YnXCIgY2xhc3M9XCJjb2wtbWQtMTIgcG9zaXRpb24tcmVsYXRpdmUgbXQtMyBoLTM1MHB4XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwidG9wOiAyJTtcIiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTQgXCIgI2RhdGVSYW5nZVBpY2tlcklucHV0IHN0eWxlPVwibWluLXdpZHRoOiAyNjBweCAhaW1wb3J0YW50OyB6LWluZGV4OiAxMDUwICFpbXBvcnRhbnQ7XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgIFtkcm9wc109XCInZG93bidcIiBcclxuICAgICAgICAgICAgICAgIFtvcGVuc109XCIncmlnaHQnXCIgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIiBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtzaG93Q2FuY2VsXT1cImZhbHNlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVSYW5nZVwiIChjbGljayk9XCJkYXRlaGVpZ2h0KClcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVjaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbYXV0b0FwcGx5XT1cInRydWVcIiAoc3RhcnREYXRlQ2hhbmdlZCk9XCJvblN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCIgW2lzQ3VzdG9tRGF0ZV09XCJpc0N1c3RvbURhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgICAgICAgICAgbmFtZT1cImRhdGVyYW5nZVwiIFtyZWFkb25seV09XCJ0cnVlXCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJ0eXBlID09PSdFeHBvcnQgYXMgQ1NWJ1wiIFtuZ0NsYXNzXT1cIm1heGRheXNSZWFjaGVkID8gJ2ZsYWdjbG91cic6JydcIiBjbGFzcz1cImRhcmstbGluZTEgZnctbm9ybWFsIG10LTJcIj5EYXRhIGRvd25sb2FkcyBhcmUgbGltaXRlZCB0byBvbmUgbW9udGggYXQgYSB0aW1lLjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInR5cGUgPT09J0V4cG9ydCBhcyBQREYnXCIgIGNsYXNzPVwiZGFyay1saW5lMSBmdy1ub3JtYWwgbXQtMlwiPlRoaXMgYmxvZyBwb3N0IGhhcyBiZWVuIHB1Ymxpc2hlZC4gVGVhbSBtZW1iZXJzIHdpbGwgYmUgYWJsZSB0byBlZGl0IHRoaXMgcG9zdCBhbmQgcmVwdWJsaXNoIGNoYW5nZXMuPC9zcGFuPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlPT09J0V4cG9ydCBhcyBQREYnXCIgY2xhc3M9XCJjb2wtbWQtMTIgIG10LTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIj5TZWxlY3QgY2hlY2tsaXN0PC9sYWJlbD5cclxuICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbj48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTExLjY2NTQgMS42NjYwMkg0Ljk5ODdDNC41NTY2NyAxLjY2NjAyIDQuMTMyNzUgMS44NDE2MSAzLjgyMDE5IDIuMTU0MTdDMy41MDc2MyAyLjQ2NjczIDMuMzMyMDMgMi44OTA2NSAzLjMzMjAzIDMuMzMyNjhWMTYuNjY2QzMuMzMyMDMgMTcuMTA4IDMuNTA3NjMgMTcuNTMyIDMuODIwMTkgMTcuODQ0NUM0LjEzMjc1IDE4LjE1NzEgNC41NTY2NyAxOC4zMzI3IDQuOTk4NyAxOC4zMzI3SDE0Ljk5ODdDMTUuNDQwNyAxOC4zMzI3IDE1Ljg2NDYgMTguMTU3MSAxNi4xNzcyIDE3Ljg0NDVDMTYuNDg5OCAxNy41MzIgMTYuNjY1NCAxNy4xMDggMTYuNjY1NCAxNi42NjZWNi42NjYwMk0xMS42NjU0IDEuNjY2MDJMMTYuNjY1NCA2LjY2NjAyTTExLjY2NTQgMS42NjYwMlY2LjY2NjAySDE2LjY2NTRNMTMuMzMyIDEwLjgzMjdINi42NjUzNk0xMy4zMzIgMTQuMTY2SDYuNjY1MzZNOC4zMzIwMyA3LjQ5OTM1SDYuNjY1MzZcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+U3RvcmUgT3BlcmF0aW9uIGNoZWNrbGlzdDwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlPT09J0V4cG9ydCBhcyBQREYnXCIgY2xhc3M9XCJjb2wtbWQtMTIgIG10LTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCI+U2VsZWN0IFN0b3JlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInR5cGU9PT0nRXhwb3J0IGFzIFBERidcIiBjbGFzcz1cImNvbC1tZC0xMiBwb3NpdGlvbi1yZWxhdGl2ZSBtdC01XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwidG9wOiAyMCU7XCIgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZ4LWRhdGUtcmFuZ2UgZm9ybS1jb250cm9sIHBzLTE0XCIgI2RhdGVSYW5nZVBpY2tlcklucHV0IHN0eWxlPVwibWluLXdpZHRoOiAyNjBweCAhaW1wb3J0YW50OyB6LWluZGV4OiAxMDUwICFpbXBvcnRhbnQ7XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgIFtkcm9wc109XCInZG93bidcIiBbc2luZ2xlRGF0ZVBpY2tlcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtvcGVuc109XCIncmlnaHQnXCIgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIiBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtzaG93Q2FuY2VsXT1cImZhbHNlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVSYW5nZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCIgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZWNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFthdXRvQXBwbHldPVwidHJ1ZVwiICAoc3RhcnREYXRlQ2hhbmdlZCk9XCJvblN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCIgW2lzQ3VzdG9tRGF0ZV09XCJpc0N1c3RvbURhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgICAgICAgICAgbmFtZT1cImRhdGVyYW5nZVwiIFtyZWFkb25seV09XCJ0cnVlXCIgLz5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZSBmdy1ub3JtYWwgbXQtMlwiPk9ubHkgMSBkYXkgZGF0YSBjYW4gYmUgZG93bmxvYWRlZDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZT09PSdFeHBvcnQgYXMgUFBUJ3x8dHlwZT09PSdFeHBvcnQgYXMgWklQJ1wiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXdyYXAgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciByb3VuZGVkIG1pbi13LTIwMHB4IGN1cnNvci1wb2ludGVyIHB5LTMgcHgtNCBtZS02IG1iLTNcIiBbbmdDbGFzc109XCJwcmV2aWV3VHlwZSA9PT0gJ2ltYWdlJyA/ICduYXYtbGluZS10YWJzMScgOiAnYm9yZGVyLWdyYXktMzAwJ1wiIChjbGljayk9XCJvblNlbGVjdCgnaW1hZ2UnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInByZXZpZXdUeXBlID09PSAnaW1hZ2UnXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgMjFIMTlDMjAuMTA0NiAyMSAyMSAyMC4xMDQ2IDIxIDE5VjVDMjEgMy44OTU0MyAyMC4xMDQ2IDMgMTkgM0g1QzMuODk1NDMgMyAzIDMuODk1NDMgMyA1VjE5QzMgMjAuMTA0NiAzLjg5NTQzIDIxIDUgMjFaTTUgMjFMMTYgMTBMMjEgMTVNMTAgOC41QzEwIDkuMzI4NDMgOS4zMjg0MyAxMCA4LjUgMTBDNy42NzE1NyAxMCA3IDkuMzI4NDMgNyA4LjVDNyA3LjY3MTU3IDcuNjcxNTcgNyA4LjUgN0M5LjMyODQzIDcgMTAgNy42NzE1NyAxMCA4LjVaXCIgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwicHJldmlld1R5cGUgPT09ICd2aWRlbydcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgMjFIMTlDMjAuMTA0NiAyMSAyMSAyMC4xMDQ2IDIxIDE5VjVDMjEgMy44OTU0MyAyMC4xMDQ2IDMgMTkgM0g1QzMuODk1NDMgMyAzIDMuODk1NDMgMyA1VjE5QzMgMjAuMTA0NiAzLjg5NTQzIDIxIDUgMjFaTTUgMjFMMTYgMTBMMjEgMTVNMTAgOC41QzEwIDkuMzI4NDMgOS4zMjg0MyAxMCA4LjUgMTBDNy42NzE1NyAxMCA3IDkuMzI4NDMgNyA4LjVDNyA3LjY3MTU3IDcuNjcxNTcgNyA4LjUgN0M5LjMyODQzIDcgMTAgNy42NzE1NyAxMCA4LjVaXCIgc3Ryb2tlPVwiIzEwMTgyOFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInByZXZpZXdUeXBlID09PSAnaW1hZ2UnID8gJ3RleHQtYm9yZGVyLXByaWFtcnknIDogJ3RleHR2YWx1ZSdcIj5JbWFnZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIHJvdW5kZWQgbWluLXctMjAwcHggY3Vyc29yLXBvaW50ZXIgcHktMyBweC00ICBtYi0zXCIgW25nQ2xhc3NdPVwicHJldmlld1R5cGUgPT09ICd2aWRlbycgPyAnbmF2LWxpbmUtdGFiczEnIDogJ2JvcmRlci1ncmF5LTMwMCdcIiAoY2xpY2spPVwib25TZWxlY3QoJ3ZpZGVvJylcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJwcmV2aWV3VHlwZSA9PT0gJ2ltYWdlJ1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMiAyMkMxNy41MjI4IDIyIDIyIDE3LjUyMjggMjIgMTJDMjIgNi40NzcxNSAxNy41MjI4IDIgMTIgMkM2LjQ3NzE1IDIgMiA2LjQ3NzE1IDIgMTJDMiAxNy41MjI4IDYuNDc3MTUgMjIgMTIgMjJaXCIgc3Ryb2tlPVwiIzEwMTgyOFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgOEwxNiAxMkwxMCAxNlY4WlwiIHN0cm9rZT1cIiMxMDE4MjhcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInByZXZpZXdUeXBlID09PSAndmlkZW8nXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMiAyMkMxNy41MjI4IDIyIDIyIDE3LjUyMjggMjIgMTJDMjIgNi40NzcxNSAxNy41MjI4IDIgMTIgMkM2LjQ3NzE1IDIgMiA2LjQ3NzE1IDIgMTJDMiAxNy41MjI4IDYuNDc3MTUgMjIgMTIgMjJaXCIgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwIDhMMTYgMTJMMTAgMTZWOFpcIiBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwicHJldmlld1R5cGUgPT09ICd2aWRlbycgPyAndGV4dC1ib3JkZXItcHJpYW1yeScgOiAndGV4dHZhbHVlJ1wiID5WaWRlbzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSA8bGFiZWwgZm9yPVwiZHJvcGRvd25cIiBjbGFzcz1cIm0tNCBmcy00XCI+Q2hvb3NlIGFuIG9wdGlvbjogPC9sYWJlbD4gLS0+XHJcbiAgICAgICAgICAgIDwhLS0gPHNlbGVjdCBpZD1cImRyb3Bkb3duXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInByZXZpZXdUeXBlXCIgKGNoYW5nZSk9XCJvblNlbGVjdCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiJ2ltYWdlJ1wiPkltYWdlPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiJ3ZpZGVvJ1wiPlZpZGVvPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PiAtLT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cInR5cGUgPT09J0V4cG9ydCBhcyBDU1YnXCIgY2xhc3M9XCJyb3cgdy0xMDBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC04XCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgbXQtMiB0ZXh0LWVuZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IHJvbGU9XCJncm91cFwiIGNsYXNzPVwiZC1mbGV4IG10LTMgbWItMTVcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy0xMDAgbWUtMlwiIChjbGljayk9XCJjYW5jZWwoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD1cImFsZXJ0LXRvYXN0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy0xMDAgbXMtMlwiIFtkaXNhYmxlZF09XCJtYXhkYXlzUmVhY2hlZFwiIChjbGljayk9XCJvblN1Ym1pdCgpXCI+Q29uZmlybTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgIFxyXG4gICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSAhPT0nRXhwb3J0IGFzIENTVidcIiBjbGFzcz1cIm10LTIgdy0xMDAgdGV4dC1lbmRcIj5cclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2IHJvbGU9XCJncm91cFwiIGNsYXNzPVwiZC1mbGV4IG10LTMgbWItMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctMTAwIG1lLTJcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPVwiYWxlcnQtdG9hc3RcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMCBtcy0yXCIgW2Rpc2FibGVkXT1cIm1heGRheXNSZWFjaGVkXCIgKGNsaWNrKT1cIm9uU3VibWl0KClcIj5Db25maXJtPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICBcclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,12 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/router";
4
+ export class FlagLayoutComponent {
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FlagLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FlagLayoutComponent, selector: "lib-flag-layout", ngImport: i0, template: "<router-outlet></router-outlet>", styles: [""], dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FlagLayoutComponent, decorators: [{
9
+ type: Component,
10
+ args: [{ selector: 'lib-flag-layout', template: "<router-outlet></router-outlet>" }]
11
+ }] });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhZy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmF4L3NyYy9saWIvY29tcG9uZW50cy9mbGFnLWxheW91dC9mbGFnLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2ZsYWctbGF5b3V0L2ZsYWctbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU8xQyxNQUFNLE9BQU8sbUJBQW1CO3dHQUFuQixtQkFBbUI7NEZBQW5CLG1CQUFtQix1RENQaEMsaUNBQStCOzs0RkRPbEIsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZmxhZy1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mbGFnLWxheW91dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2ZsYWctbGF5b3V0LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmxhZ0xheW91dENvbXBvbmVudCB7XHJcblxyXG59XHJcbiIsIjxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD4iXX0=