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,203 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { FormControl } from '@angular/forms';
3
+ import dayjs from 'dayjs';
4
+ import { Subject, takeUntil } from "rxjs";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/forms";
7
+ import * as i2 from "../../../services/trax.service";
8
+ import * as i3 from "tango-app-ui-global";
9
+ import * as i4 from "@angular/router";
10
+ import * as i5 from "tango-app-ui-shared";
11
+ import * as i6 from "@ng-bootstrap/ng-bootstrap";
12
+ import * as i7 from "@angular/common";
13
+ import * as i8 from "ngx-daterangepicker-material";
14
+ import * as i9 from "../../chip-dropdown/chip-dropdown.component";
15
+ export class TaskinfoEditComponent {
16
+ fb;
17
+ traxService;
18
+ pageInfo;
19
+ route;
20
+ gs;
21
+ toastService;
22
+ activeModal;
23
+ destroy$ = new Subject();
24
+ openTime = '';
25
+ form;
26
+ checklistselectControl;
27
+ checklistDropdown = [
28
+ { _id: 'High', checkListName: 'High' },
29
+ { _id: 'Medium', checkListName: 'Medium' },
30
+ { _id: 'Low', checkListName: 'Low' },
31
+ ];
32
+ headerData;
33
+ currentTaskId;
34
+ dayjs = dayjs;
35
+ scheduleDate;
36
+ minDate = this.dayjs().format();
37
+ scheduleEndTime = new FormControl(this.getCurrentTime());
38
+ taskDetails;
39
+ selectAllInput = new FormControl(false);
40
+ // removedUsers = new Set()
41
+ approversList;
42
+ approver = new FormControl();
43
+ priorityType = new FormControl('high');
44
+ allowedStoreLocation = new FormControl(false);
45
+ restrictAttendance = new FormControl(false);
46
+ removedUsers = new Set();
47
+ editRequestData;
48
+ constructor(fb, traxService, pageInfo, route, gs, toastService, activeModal) {
49
+ this.fb = fb;
50
+ this.traxService = traxService;
51
+ this.pageInfo = pageInfo;
52
+ this.route = route;
53
+ this.gs = gs;
54
+ this.toastService = toastService;
55
+ this.activeModal = activeModal;
56
+ this.selectAllInput.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((val) => {
57
+ if (val === null || val === undefined) {
58
+ return;
59
+ }
60
+ if (val) {
61
+ this.removedUsers.clear();
62
+ }
63
+ else {
64
+ this.removedUsers.forEach((id) => {
65
+ this.onUserAssignChange(false, id);
66
+ });
67
+ }
68
+ });
69
+ }
70
+ ngOnDestroy() {
71
+ this.destroy$.next(true);
72
+ this.destroy$.complete();
73
+ }
74
+ ngOnInit() {
75
+ this.scheduleDate = { startDate: this.dayjs().format('DD-MM-YYYY'), endDate: this.dayjs().format('DD-MM-YYYY') };
76
+ this.setPageData();
77
+ this.currentTaskId = this.editRequestData.taskId;
78
+ this.gs.dataRangeValue
79
+ .pipe(takeUntil(this.destroy$))
80
+ .subscribe((data) => {
81
+ if (data?.client) {
82
+ this.headerData = data;
83
+ if (this.currentTaskId) {
84
+ this.getClientUser();
85
+ this.getTask(this.currentTaskId);
86
+ }
87
+ }
88
+ });
89
+ }
90
+ setPageData() {
91
+ this.pageInfo.setTitle("Tasks");
92
+ this.pageInfo.setDescription("");
93
+ this.pageInfo.setBreadcrumbs([
94
+ { title: "Tango Trax", path: "/manage/trax/dashboard", isActive: false, isSeparator: false },
95
+ { title: "Tango Trax", path: "/manage/trax/dashboard", isActive: false, isSeparator: true }
96
+ ]);
97
+ }
98
+ getTask(id) {
99
+ this.traxService.getTaskconfig(id, this.headerData?.client).pipe(takeUntil(this.destroy$)).subscribe({
100
+ next: (res) => {
101
+ if (res?.code === 200) {
102
+ this.taskDetails = res.data.checkListDetails;
103
+ if (this.taskDetails?.scheduleDate) {
104
+ this.scheduleDate = { startDate: this.dayjs(this.taskDetails.scheduleDate).format('DD-MM-YYYY'), endDate: this.dayjs(this.taskDetails.scheduleDate).format('DD-MM-YYYY') };
105
+ }
106
+ if (!this.taskDetails?.removedUsers?.length) {
107
+ this.selectAllInput.setValue(true, { emitEvent: false });
108
+ }
109
+ if (this.taskDetails?.scheduleEndTime) {
110
+ this.scheduleEndTime.setValue(dayjs(this.taskDetails?.scheduleEndTime, 'hh:mm A').format('HH:mm'));
111
+ }
112
+ if (this.taskDetails?.approver?.length) {
113
+ this.approver.setValue(this.taskDetails?.approver);
114
+ }
115
+ if (this.taskDetails?.priorityType) {
116
+ this.priorityType.setValue(this.taskDetails?.priorityType);
117
+ }
118
+ if (this.taskDetails?.allowedStoreLocation === true || this.taskDetails?.allowedStoreLocation === false) {
119
+ this.allowedStoreLocation.setValue(this.taskDetails?.allowedStoreLocation);
120
+ }
121
+ if (this.taskDetails?.restrictAttendance === true || this.taskDetails?.restrictAttendance === false) {
122
+ this.restrictAttendance.setValue(this.taskDetails?.restrictAttendance);
123
+ }
124
+ }
125
+ }
126
+ });
127
+ }
128
+ getCurrentTime() {
129
+ const now = new Date();
130
+ const hours = now.getHours().toString().padStart(2, '0');
131
+ const minutes = now.getMinutes().toString().padStart(2, '0');
132
+ return `${hours}:${minutes}`;
133
+ }
134
+ get dueDateFormatted() {
135
+ return this.dayjs(this.scheduleDate.startDate, 'DD-MM-YYYY')?.format('DD MMM YYYY');
136
+ }
137
+ get dueTimeFormatted() {
138
+ return dayjs(this.scheduleEndTime.value, 'HH:mm').format('h:mm A');
139
+ }
140
+ onUserAssignChange(event, id) {
141
+ if (!event) {
142
+ this.removedUsers.add(id);
143
+ }
144
+ else {
145
+ this.removedUsers.delete(id);
146
+ }
147
+ }
148
+ onApproveAdded(event) {
149
+ this.approver.setValue(event);
150
+ }
151
+ getClientUser() {
152
+ this.traxService.getClientUser(this.headerData.client).pipe(takeUntil(this.destroy$)).subscribe((res) => {
153
+ if (res && res.code == 200) {
154
+ this.approversList = res.data.map((item) => { return { name: item.userName, value: item.email }; });
155
+ }
156
+ else {
157
+ this.approversList = [];
158
+ }
159
+ });
160
+ }
161
+ onSubmit() {
162
+ const payload = {
163
+ scheduleDate: this.dayjs(this.scheduleDate.startDate.toDate()).format('YYYY-MM-DD'),
164
+ scheduleEndTime: this.dayjs(this.scheduleEndTime.value, 'HH:mm').format('hh:mm A'),
165
+ approver: this.approver.value ?? [],
166
+ priorityType: this.priorityType.value,
167
+ allowedStoreLocation: this.allowedStoreLocation.value,
168
+ restrictAttendance: this.restrictAttendance.value,
169
+ taskId: this.currentTaskId,
170
+ userEmail: this.editRequestData.userEmail,
171
+ storeName: this.editRequestData.storeName,
172
+ };
173
+ this.traxService.getTaskUpdate(payload).pipe(takeUntil(this.destroy$)).subscribe({
174
+ next: (res) => {
175
+ if (res) {
176
+ if (res.code === 200) {
177
+ this.toastService.getSuccessToast(res?.data?.message || 'Task Reiniated successfully');
178
+ this.activeModal.close();
179
+ }
180
+ }
181
+ else {
182
+ this.toastService.getErrorToast('Invalid TaskId');
183
+ }
184
+ },
185
+ error: (err) => {
186
+ console.error('Error:', err);
187
+ this.toastService.getErrorToast('Failed to update the task. Please try again.');
188
+ }
189
+ });
190
+ }
191
+ closePopupAndReloadData() {
192
+ this.activeModal.close();
193
+ }
194
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskinfoEditComponent, deps: [{ token: i1.FormBuilder }, { token: i2.TraxService }, { token: i3.PageInfoService }, { token: i4.ActivatedRoute }, { token: i3.GlobalStateService }, { token: i5.ToastService }, { token: i6.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
195
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TaskinfoEditComponent, selector: "lib-taskinfo-edit", inputs: { editRequestData: "editRequestData" }, ngImport: i0, template: "<div class=\"p-6 editscroll\">\r\n <span class=\"my-2\"><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\r\n d=\"M33 19.0001C33.2626 18.7374 33.5744 18.5291 33.9176 18.3869C34.2608 18.2448 34.6286 18.1716 35 18.1716C35.3714 18.1716 35.7392 18.2448 36.0824 18.3869C36.4256 18.5291 36.7374 18.7374 37 19.0001C37.2626 19.2627 37.471 19.5745 37.6131 19.9177C37.7553 20.2608 37.8284 20.6286 37.8284 21.0001C37.8284 21.3715 37.7553 21.7393 37.6131 22.0825C37.471 22.4256 37.2626 22.7374 37 23.0001L23.5 36.5001L18 38.0001L19.5 32.5001L33 19.0001Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <div class=\"col-md-12 \">\r\n <div class=\"row my-5\">\r\n <div class=\"col-md-4\">\r\n <div class=\"tasktitle mb-4\">\r\n Task Title :\r\n </div>\r\n <div class=\"tasktitle\">\r\n Description :\r\n </div>\r\n </div>\r\n <div class=\"col-md-8\">\r\n <div class=\"tasksub mb-4\">\r\n {{taskDetails?.checkListName || \"--\"}}\r\n </div>\r\n <div class=\"tasksub\">\r\n {{taskDetails?.checkListDescription || \"--\"}}\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"storetext my-4\">\r\n {{editRequestData?.storeName || \"--\"}} Configuration\r\n </div>\r\n \r\n <div class=\"row\">\r\n <div class=\"col-6 mb-5\">\r\n <div class=\"date-picker\">\r\n <label for=\"datepick\" class=\"form-label\">Due date</label>\r\n <div style=\"position: relative;\" >\r\n <svg style=\"position: absolute; top: 12px; left:12px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" 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\" stroke-linejoin=\"round\">\r\n </path>\r\n </svg>\r\n <input id=\"datepick\" class=\"fx-date-range form-control ps-14\" type=\"text\"\r\n ngxDaterangepickerMd [singleDatePicker]=\"true\" [minDate]=\"minDate\" [drops]=\"'down'\"\r\n [opens]=\"'right'\" [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\"\r\n [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"scheduleDate\" [autoApply]=\"false\"\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 </div>\r\n\r\n </div>\r\n <div class=\"col-6 mb-5\">\r\n <label for=\"timePick\" class=\"form-label\">Due time</label>\r\n <input [formControl]=\"scheduleEndTime\" type=\"time\" class=\"form-control\" id=\"timePick\" placeholder=\"name@example.com\">\r\n </div>\r\n <div class=\"col-6 mb-5\">\r\n <label class=\"form-label\">Approver</label>\r\n <lib-chip-dropdown [data]=\"approversList\" [selectedData]=\"approver.value\" (selectedList)=\"onApproveAdded($event)\"></lib-chip-dropdown>\r\n </div>\r\n <div class=\"col-6 mb-5\">\r\n <label for=\"priority\" class=\"form-label\">Priority</label>\r\n <select [formControl]=\"priorityType\" id=\"priority\" class=\"form-select mb-5\">\r\n <option value=\"high\">High</option>\r\n <option value=\"medium\">Medium</option>\r\n <option value=\"medium\">Low</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <div class=\"toggle-card\" [ngClass]=\"allowedStoreLocation.value ? 'selected' : ''\">\r\n <div class=\"form-check form-switch me-4\">\r\n <input [formControl]=\"allowedStoreLocation\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" >\r\n </div>\r\n <div>\r\n <div class=\"header\">Geo fencing</div>\r\n <div class=\"desc\">By enabling, the checklist can be filled by the user only when inside the\r\n store.</div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"col-12 mb-5\">\r\n <div class=\"toggle-card \" [ngClass]=\"restrictAttendance.value ? 'selected' : ''\">\r\n <div class=\"form-check form-switch me-4\">\r\n <input [formControl]=\"restrictAttendance\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" >\r\n </div>\r\n <div>\r\n <div class=\"header\">Restrict attendance</div>\r\n <div class=\"desc\">By enabling, user can't be able to clockout without completing the task.\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"row mt-8\">\r\n <div class=\"col-md-6\">\r\n <button (click)=\"closePopupAndReloadData()\" type=\"button\" class=\"btn-outline btn align-items-end text-nowrap invheader w-100\"><span></span>\r\n Cancel </button>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <a (click)=\"onSubmit()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary ms-2 rounded-3 text-nowrap w-100 ng-star-inserted\"\r\n ><span class=\"ms-2 text-white\">Update</span></a>\r\n <!-- <div type=\"button\"\r\n class=\"btn btn-primary btn-outline btn-outline-default w-100 rounded-3 text-nowrap border-val\">\r\n <span>Update</span></div> -->\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n</div>", styles: [".tasktitle{color:var(--Gray-500, #667085);font-size:18px;font-style:normal;font-weight:600;line-height:28px}.tasksub{color:var(--Gray-700, #344054);font-size:16px;font-style:normal;font-weight:500;line-height:24px}.storetext{color:var(--Gray-900, #101828);font-size:18px;font-style:normal;font-weight:600;line-height:28px}.btn-primary{line-height:18px!important}.editscroll{max-height:800px;overflow-y:scroll}:host::ng-deep .date-picker .md-drppicker .btn{line-height:10px!important}:host::ng-deep .date-picker .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .date-picker .md-drppicker.drops-down-right.ltr.show-ranges.shown{top:65px!important}:host::ng-deep .date-picker .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 .date-picker .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 .date-picker .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 .date-picker .md-drppicker td.active,:host::ng-deep .date-picker .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 .date-picker .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .date-picker .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .date-picker .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 .date-picker table th,:host::ng-deep .date-picker table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .date-picker .md-drppicker td.available.prev,:host::ng-deep .date-picker .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 .date-picker .md-drppicker td.available.next,:host::ng-deep .date-picker .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 .date-picker 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 .date-picker .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 .date-picker .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .date-picker .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}.outer-container{position:relative}.outer-container .form-control{padding-top:0;padding-bottom:0}.outer-container .input-container{border:1px solid black;height:100%;width:100%;display:flex;flex-wrap:wrap;border:1px solid #D0D5DD}.outer-container .input-container input{all:unset;flex:1;min-width:50px}.outer-container .input-container .chip{margin:10px 0 10px 10px;padding:3px 10px;border-radius:16px;background:var(--Gray-100, #F2F4F7);color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .chip .initials{color:var(--Primary-600, #00A3FF);font-size:12px;font-weight:500;line-height:18px}.outer-container .input-container .chip:nth-child(1){margin-left:0}.toggle-card{padding:16px;display:flex;align-items:center;border-radius:8px;border:1px solid #EAECF0;background:#fff}.toggle-card .header{color:#344054;font-size:16px;font-weight:500;line-height:24px}.toggle-card .desc{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.toggle-card.selected{border:1px solid #6BCAFF}.toggle-card.selected .header{color:#008edf}.toggle-card.selected .desc{color:#00a3ff}.cstm-blu-btn{padding:8px 14px;border-radius:8px;border:1px solid #EAF8FF;background:#eaf8ff;box-shadow:0 1px 2px #1018280d;color:#009bf3;font-size:14px;font-weight:600;line-height:20px;cursor:pointer;display:flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.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: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.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"] }, { kind: "component", type: i9.ChipDropdownComponent, selector: "lib-chip-dropdown", inputs: ["data", "selectedData"], outputs: ["selectedList"] }] });
196
+ }
197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskinfoEditComponent, decorators: [{
198
+ type: Component,
199
+ args: [{ selector: 'lib-taskinfo-edit', template: "<div class=\"p-6 editscroll\">\r\n <span class=\"my-2\"><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\r\n d=\"M33 19.0001C33.2626 18.7374 33.5744 18.5291 33.9176 18.3869C34.2608 18.2448 34.6286 18.1716 35 18.1716C35.3714 18.1716 35.7392 18.2448 36.0824 18.3869C36.4256 18.5291 36.7374 18.7374 37 19.0001C37.2626 19.2627 37.471 19.5745 37.6131 19.9177C37.7553 20.2608 37.8284 20.6286 37.8284 21.0001C37.8284 21.3715 37.7553 21.7393 37.6131 22.0825C37.471 22.4256 37.2626 22.7374 37 23.0001L23.5 36.5001L18 38.0001L19.5 32.5001L33 19.0001Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <div class=\"col-md-12 \">\r\n <div class=\"row my-5\">\r\n <div class=\"col-md-4\">\r\n <div class=\"tasktitle mb-4\">\r\n Task Title :\r\n </div>\r\n <div class=\"tasktitle\">\r\n Description :\r\n </div>\r\n </div>\r\n <div class=\"col-md-8\">\r\n <div class=\"tasksub mb-4\">\r\n {{taskDetails?.checkListName || \"--\"}}\r\n </div>\r\n <div class=\"tasksub\">\r\n {{taskDetails?.checkListDescription || \"--\"}}\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"storetext my-4\">\r\n {{editRequestData?.storeName || \"--\"}} Configuration\r\n </div>\r\n \r\n <div class=\"row\">\r\n <div class=\"col-6 mb-5\">\r\n <div class=\"date-picker\">\r\n <label for=\"datepick\" class=\"form-label\">Due date</label>\r\n <div style=\"position: relative;\" >\r\n <svg style=\"position: absolute; top: 12px; left:12px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" 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\" stroke-linejoin=\"round\">\r\n </path>\r\n </svg>\r\n <input id=\"datepick\" class=\"fx-date-range form-control ps-14\" type=\"text\"\r\n ngxDaterangepickerMd [singleDatePicker]=\"true\" [minDate]=\"minDate\" [drops]=\"'down'\"\r\n [opens]=\"'right'\" [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\"\r\n [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"scheduleDate\" [autoApply]=\"false\"\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 </div>\r\n\r\n </div>\r\n <div class=\"col-6 mb-5\">\r\n <label for=\"timePick\" class=\"form-label\">Due time</label>\r\n <input [formControl]=\"scheduleEndTime\" type=\"time\" class=\"form-control\" id=\"timePick\" placeholder=\"name@example.com\">\r\n </div>\r\n <div class=\"col-6 mb-5\">\r\n <label class=\"form-label\">Approver</label>\r\n <lib-chip-dropdown [data]=\"approversList\" [selectedData]=\"approver.value\" (selectedList)=\"onApproveAdded($event)\"></lib-chip-dropdown>\r\n </div>\r\n <div class=\"col-6 mb-5\">\r\n <label for=\"priority\" class=\"form-label\">Priority</label>\r\n <select [formControl]=\"priorityType\" id=\"priority\" class=\"form-select mb-5\">\r\n <option value=\"high\">High</option>\r\n <option value=\"medium\">Medium</option>\r\n <option value=\"medium\">Low</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <div class=\"toggle-card\" [ngClass]=\"allowedStoreLocation.value ? 'selected' : ''\">\r\n <div class=\"form-check form-switch me-4\">\r\n <input [formControl]=\"allowedStoreLocation\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" >\r\n </div>\r\n <div>\r\n <div class=\"header\">Geo fencing</div>\r\n <div class=\"desc\">By enabling, the checklist can be filled by the user only when inside the\r\n store.</div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"col-12 mb-5\">\r\n <div class=\"toggle-card \" [ngClass]=\"restrictAttendance.value ? 'selected' : ''\">\r\n <div class=\"form-check form-switch me-4\">\r\n <input [formControl]=\"restrictAttendance\" class=\"form-check-input\" type=\"checkbox\" role=\"switch\" >\r\n </div>\r\n <div>\r\n <div class=\"header\">Restrict attendance</div>\r\n <div class=\"desc\">By enabling, user can't be able to clockout without completing the task.\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"row mt-8\">\r\n <div class=\"col-md-6\">\r\n <button (click)=\"closePopupAndReloadData()\" type=\"button\" class=\"btn-outline btn align-items-end text-nowrap invheader w-100\"><span></span>\r\n Cancel </button>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <a (click)=\"onSubmit()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary ms-2 rounded-3 text-nowrap w-100 ng-star-inserted\"\r\n ><span class=\"ms-2 text-white\">Update</span></a>\r\n <!-- <div type=\"button\"\r\n class=\"btn btn-primary btn-outline btn-outline-default w-100 rounded-3 text-nowrap border-val\">\r\n <span>Update</span></div> -->\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n</div>", styles: [".tasktitle{color:var(--Gray-500, #667085);font-size:18px;font-style:normal;font-weight:600;line-height:28px}.tasksub{color:var(--Gray-700, #344054);font-size:16px;font-style:normal;font-weight:500;line-height:24px}.storetext{color:var(--Gray-900, #101828);font-size:18px;font-style:normal;font-weight:600;line-height:28px}.btn-primary{line-height:18px!important}.editscroll{max-height:800px;overflow-y:scroll}:host::ng-deep .date-picker .md-drppicker .btn{line-height:10px!important}:host::ng-deep .date-picker .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .date-picker .md-drppicker.drops-down-right.ltr.show-ranges.shown{top:65px!important}:host::ng-deep .date-picker .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 .date-picker .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 .date-picker .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 .date-picker .md-drppicker td.active,:host::ng-deep .date-picker .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 .date-picker .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .date-picker .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .date-picker .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 .date-picker table th,:host::ng-deep .date-picker table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .date-picker .md-drppicker td.available.prev,:host::ng-deep .date-picker .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 .date-picker .md-drppicker td.available.next,:host::ng-deep .date-picker .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 .date-picker 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 .date-picker .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 .date-picker .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .date-picker .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}.outer-container{position:relative}.outer-container .form-control{padding-top:0;padding-bottom:0}.outer-container .input-container{border:1px solid black;height:100%;width:100%;display:flex;flex-wrap:wrap;border:1px solid #D0D5DD}.outer-container .input-container input{all:unset;flex:1;min-width:50px}.outer-container .input-container .chip{margin:10px 0 10px 10px;padding:3px 10px;border-radius:16px;background:var(--Gray-100, #F2F4F7);color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .chip .initials{color:var(--Primary-600, #00A3FF);font-size:12px;font-weight:500;line-height:18px}.outer-container .input-container .chip:nth-child(1){margin-left:0}.toggle-card{padding:16px;display:flex;align-items:center;border-radius:8px;border:1px solid #EAECF0;background:#fff}.toggle-card .header{color:#344054;font-size:16px;font-weight:500;line-height:24px}.toggle-card .desc{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.toggle-card.selected{border:1px solid #6BCAFF}.toggle-card.selected .header{color:#008edf}.toggle-card.selected .desc{color:#00a3ff}.cstm-blu-btn{padding:8px 14px;border-radius:8px;border:1px solid #EAF8FF;background:#eaf8ff;box-shadow:0 1px 2px #1018280d;color:#009bf3;font-size:14px;font-weight:600;line-height:20px;cursor:pointer;display:flex;align-items:center}\n"] }]
200
+ }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.TraxService }, { type: i3.PageInfoService }, { type: i4.ActivatedRoute }, { type: i3.GlobalStateService }, { type: i5.ToastService }, { type: i6.NgbActiveModal }], propDecorators: { editRequestData: [{
201
+ type: Input
202
+ }] } });
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2luZm8tZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL3Rhc2staW5mby90YXNraW5mby1lZGl0L3Rhc2tpbmZvLWVkaXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmF4L3NyYy9saWIvY29tcG9uZW50cy90YXNrLWluZm8vdGFza2luZm8tZWRpdC90YXNraW5mby1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBZSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBSXJDLE9BQU8sRUFBbUIsT0FBTyxFQUFzQyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0FBVS9GLE1BQU0sT0FBTyxxQkFBcUI7SUEwQlo7SUFBd0I7SUFBa0M7SUFDcEU7SUFBOEI7SUFBZ0M7SUFBb0M7SUExQjVHLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ3pCLFFBQVEsR0FBVyxFQUFFLENBQUM7SUFDdEIsSUFBSSxDQUFZO0lBQ2hCLHNCQUFzQixDQUFjO0lBQ3BDLGlCQUFpQixHQUFHO1FBQ2xCLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFO1FBQ3RDLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFO1FBQzFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFO0tBQ3JDLENBQUM7SUFDRixVQUFVLENBQWM7SUFDeEIsYUFB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NE5BcUhNOzs0RkRyR08scUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQjs4UEE2QnBCLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgZGF5anMsIHsgRGF5anMgfSBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCB7IFRyYXhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJheC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFRpbWVQZXJpb2QgfSBmcm9tICduZ3gtZGF0ZXJhbmdlcGlja2VyLW1hdGVyaWFsL2RhdGVyYW5nZXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIZWFkZXJGaWx0ZXIsIElUYXNrIH0gZnJvbSAnLi4vLi4vdGFzay1jb25maWd1cmUvdGFzay1jb25maWd1cmUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsLCBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdGFza2luZm8tZWRpdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Rhc2tpbmZvLWVkaXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi90YXNraW5mby1lZGl0LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFza2luZm9FZGl0Q29tcG9uZW50IHtcclxuICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgb3BlblRpbWU6IHN0cmluZyA9ICcnO1xyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuICBjaGVja2xpc3RzZWxlY3RDb250cm9sOiBGb3JtQ29udHJvbDtcclxuICBjaGVja2xpc3REcm9wZG93biA9IFtcclxuICAgIHsgX2lkOiAnSGlnaCcsIGNoZWNrTGlzdE5hbWU6ICdIaWdoJyB9LFxyXG4gICAgeyBfaWQ6ICdNZWRpdW0nLCBjaGVja0xpc3ROYW1lOiAnTWVkaXVtJyB9LFxyXG4gICAgeyBfaWQ6ICdMb3cnLCBjaGVja0xpc3ROYW1lOiAnTG93JyB9LFxyXG4gIF07XHJcbiAgaGVhZGVyRGF0YTogSGVhZGVyRmlsdGVyXHJcbiAgY3VycmVudFRhc2tJZDogc3RyaW5nXHJcbiAgZGF5anMgPSBkYXlqc1xyXG4gIHNjaGVkdWxlRGF0ZTogYW55O1xyXG4gIG1pbkRhdGU6IGFueSA9IHRoaXMuZGF5anMoKS5mb3JtYXQoKTtcclxuICBzY2hlZHVsZUVuZFRpbWUgPSBuZXcgRm9ybUNvbnRyb2wodGhpcy5nZXRDdXJyZW50VGltZSgpKVxyXG4gIHRhc2tEZXRhaWxzOiBJVGFzayB8IHVuZGVmaW5lZFxyXG4gIHNlbGVjdEFsbElucHV0ID0gbmV3IEZvcm1Db250cm9sKGZhbHNlKVxyXG4gIC8vIHJlbW92ZWRVc2VycyA9IG5ldyBTZXQoKVxyXG4gIGFwcHJvdmVyc0xpc3Q6IHsgbmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIH1bXVxyXG4gIGFwcHJvdmVyID0gbmV3IEZvcm1Db250cm9sKClcclxuICBwcmlvcml0eVR5cGUgPSBuZXcgRm9ybUNvbnRyb2woJ2hpZ2gnKVxyXG4gIGFsbG93ZWRTdG9yZUxvY2F0aW9uID0gbmV3IEZvcm1Db250cm9sKGZhbHNlKVxyXG4gIHJlc3RyaWN0QXR0ZW5kYW5jZSA9IG5ldyBGb3JtQ29udHJvbChmYWxzZSlcclxuICByZW1vdmVkVXNlcnM6IFNldDxzdHJpbmc+ID0gbmV3IFNldDxzdHJpbmc+KCk7XHJcbiAgQElucHV0KCkgZWRpdFJlcXVlc3REYXRhOiBhbnk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIscHJpdmF0ZSB0cmF4U2VydmljZTogVHJheFNlcnZpY2UsIHByaXZhdGUgcGFnZUluZm86IFBhZ2VJbmZvU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLHByaXZhdGUgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSwgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSwgIHB1YmxpYyBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsXHJcbiAgKSB7XHJcbiAgICB0aGlzLnNlbGVjdEFsbElucHV0LnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCh2YWwpID0+IHtcclxuICAgICAgaWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIGlmICh2YWwpIHtcclxuICAgICAgICB0aGlzLnJlbW92ZWRVc2Vycy5jbGVhcigpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVkVXNlcnMuZm9yRWFjaCgoaWQpID0+IHtcclxuICAgICAgICAgIHRoaXMub25Vc2VyQXNzaWduQ2hhbmdlKGZhbHNlLCBpZCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIFxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNjaGVkdWxlRGF0ZSA9IHtzdGFydERhdGU6dGhpcy5kYXlqcygpLmZvcm1hdCgnREQtTU0tWVlZWScpLGVuZERhdGU6dGhpcy5kYXlqcygpLmZvcm1hdCgnREQtTU0tWVlZWScpfTtcclxuICAgIHRoaXMuc2V0UGFnZURhdGEoKVxyXG4gICAgdGhpcy5jdXJyZW50VGFza0lkID0gdGhpcy5lZGl0UmVxdWVzdERhdGEudGFza0lkXHJcbiAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGE/LmNsaWVudCkge1xyXG4gICAgICAgICAgdGhpcy5oZWFkZXJEYXRhID0gZGF0YTtcclxuICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRUYXNrSWQpIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRDbGllbnRVc2VyKClcclxuICAgICAgICAgICAgdGhpcy5nZXRUYXNrKHRoaXMuY3VycmVudFRhc2tJZClcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBzZXRQYWdlRGF0YSgpIHtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0VGl0bGUoXCJUYXNrc1wiKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0RGVzY3JpcHRpb24oXCJcIik7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldEJyZWFkY3J1bWJzKFtcclxuICAgICAgeyB0aXRsZTogXCJUYW5nbyBUcmF4XCIsIHBhdGg6IFwiL21hbmFnZS90cmF4L2Rhc2hib2FyZFwiLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiBcIlRhbmdvIFRyYXhcIiwgcGF0aDogXCIvbWFuYWdlL3RyYXgvZGFzaGJvYXJkXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IHRydWUgfVxyXG4gICAgXSk7XHJcbiAgfVxyXG5cclxuICBnZXRUYXNrKGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0VGFza2NvbmZpZyhpZCwgdGhpcy5oZWFkZXJEYXRhPy5jbGllbnQhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcz8uY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLnRhc2tEZXRhaWxzID0gcmVzLmRhdGEuY2hlY2tMaXN0RGV0YWlsc1xyXG4gICAgICAgICAgaWYgKHRoaXMudGFza0RldGFpbHM/LnNjaGVkdWxlRGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNjaGVkdWxlRGF0ZSA9IHtzdGFydERhdGU6dGhpcy5kYXlqcyh0aGlzLnRhc2tEZXRhaWxzLnNjaGVkdWxlRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyksZW5kRGF0ZTp0aGlzLmRheWpzKHRoaXMudGFza0RldGFpbHMuc2NoZWR1bGVEYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKX07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoIXRoaXMudGFza0RldGFpbHM/LnJlbW92ZWRVc2Vycz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0QWxsSW5wdXQuc2V0VmFsdWUodHJ1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy50YXNrRGV0YWlscz8uc2NoZWR1bGVFbmRUaW1lKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVFbmRUaW1lLnNldFZhbHVlKGRheWpzKHRoaXMudGFza0RldGFpbHM/LnNjaGVkdWxlRW5kVGltZSwgJ2hoOm1tICBBJykuZm9ybWF0KCdISDptbScpKVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICh0aGlzLnRhc2tEZXRhaWxzPy5hcHByb3Zlcj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwcm92ZXIuc2V0VmFsdWUodGhpcy50YXNrRGV0YWlscz8uYXBwcm92ZXIpXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMudGFza0RldGFpbHM/LnByaW9yaXR5VHlwZSkge1xyXG4gICAgICAgICAgICB0aGlzLnByaW9yaXR5VHlwZS5zZXRWYWx1ZSh0aGlzLnRhc2tEZXRhaWxzPy5wcmlvcml0eVR5cGUpXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMudGFza0RldGFpbHM/LmFsbG93ZWRTdG9yZUxvY2F0aW9uID09PSB0cnVlIHx8IHRoaXMudGFza0RldGFpbHM/LmFsbG93ZWRTdG9yZUxvY2F0aW9uID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgICB0aGlzLmFsbG93ZWRTdG9yZUxvY2F0aW9uLnNldFZhbHVlKHRoaXMudGFza0RldGFpbHM/LmFsbG93ZWRTdG9yZUxvY2F0aW9uKVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICh0aGlzLnRhc2tEZXRhaWxzPy5yZXN0cmljdEF0dGVuZGFuY2UgPT09IHRydWUgfHwgdGhpcy50YXNrRGV0YWlscz8ucmVzdHJpY3RBdHRlbmRhbmNlID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlc3RyaWN0QXR0ZW5kYW5jZS5zZXRWYWx1ZSh0aGlzLnRhc2tEZXRhaWxzPy5yZXN0cmljdEF0dGVuZGFuY2UpXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgZ2V0Q3VycmVudFRpbWUoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zdCBob3VycyA9IG5vdy5nZXRIb3VycygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIGNvbnN0IG1pbnV0ZXMgPSBub3cuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIHJldHVybiBgJHtob3Vyc306JHttaW51dGVzfWA7XHJcbiAgfVxyXG5cclxuICBnZXQgZHVlRGF0ZUZvcm1hdHRlZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF5anModGhpcy5zY2hlZHVsZURhdGUuc3RhcnREYXRlLCdERC1NTS1ZWVlZJyk/LmZvcm1hdCgnREQgTU1NIFlZWVknKTtcclxuICB9XHJcblxyXG4gIGdldCBkdWVUaW1lRm9ybWF0dGVkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZGF5anModGhpcy5zY2hlZHVsZUVuZFRpbWUudmFsdWUsICdISDptbScpLmZvcm1hdCgnaDptbSBBJyk7XHJcbiAgfVxyXG4gIG9uVXNlckFzc2lnbkNoYW5nZShldmVudDogYm9vbGVhbiwgaWQ6IHN0cmluZykge1xyXG4gICAgaWYgKCFldmVudCkge1xyXG4gICAgICB0aGlzLnJlbW92ZWRVc2Vycy5hZGQoaWQpXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5yZW1vdmVkVXNlcnMuZGVsZXRlKGlkKVxyXG4gICAgfVxyXG4gIH1cclxuICBvbkFwcHJvdmVBZGRlZChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmFwcHJvdmVyLnNldFZhbHVlKGV2ZW50KVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2xpZW50VXNlcigpIHtcclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0Q2xpZW50VXNlcih0aGlzLmhlYWRlckRhdGEuY2xpZW50KS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIHRoaXMuYXBwcm92ZXJzTGlzdCA9IHJlcy5kYXRhLm1hcCgoaXRlbTogYW55KSA9PiB7IHJldHVybiB7IG5hbWU6IGl0ZW0udXNlck5hbWUsIHZhbHVlOiBpdGVtLmVtYWlsIH0gfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hcHByb3ZlcnNMaXN0ID0gW107XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGNvbnN0IHBheWxvYWQ6YW55ID0ge1xyXG4gICAgICBzY2hlZHVsZURhdGU6IHRoaXMuZGF5anModGhpcy5zY2hlZHVsZURhdGUuc3RhcnREYXRlLnRvRGF0ZSgpKS5mb3JtYXQoJ1lZWVktTU0tREQnKSxcclxuICAgICAgc2NoZWR1bGVFbmRUaW1lOiB0aGlzLmRheWpzKHRoaXMuc2NoZWR1bGVFbmRUaW1lLnZhbHVlLCAnSEg6bW0nKS5mb3JtYXQoJ2hoOm1tICBBJyksXHJcbiAgICAgIGFwcHJvdmVyOiB0aGlzLmFwcHJvdmVyLnZhbHVlID8/IFtdLFxyXG4gICAgICBwcmlvcml0eVR5cGU6IHRoaXMucHJpb3JpdHlUeXBlLnZhbHVlLFxyXG4gICAgICBhbGxvd2VkU3RvcmVMb2NhdGlvbjogdGhpcy5hbGxvd2VkU3RvcmVMb2NhdGlvbi52YWx1ZSxcclxuICAgICAgcmVzdHJpY3RBdHRlbmRhbmNlOiB0aGlzLnJlc3RyaWN0QXR0ZW5kYW5jZS52YWx1ZSxcclxuICAgICAgdGFza0lkOnRoaXMuY3VycmVudFRhc2tJZCxcclxuICAgICAgdXNlckVtYWlsOiB0aGlzLmVkaXRSZXF1ZXN0RGF0YS51c2VyRW1haWwsXHJcbiAgICAgIHN0b3JlTmFtZTp0aGlzLmVkaXRSZXF1ZXN0RGF0YS5zdG9yZU5hbWUsXHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldFRhc2tVcGRhdGUocGF5bG9hZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmKHJlcyl7XHJcbiAgICAgICAgICBpZiAocmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRTdWNjZXNzVG9hc3QocmVzPy5kYXRhPy5tZXNzYWdlIHx8ICdUYXNrIFJlaW5pYXRlZCBzdWNjZXNzZnVsbHknKSBcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoJ0ludmFsaWQgVGFza0lkJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjphbnkpPT57XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyKTtcclxuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KCdGYWlsZWQgdG8gdXBkYXRlIHRoZSB0YXNrLiBQbGVhc2UgdHJ5IGFnYWluLicpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBjbG9zZVBvcHVwQW5kUmVsb2FkRGF0YSgpIHtcclxuICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwLTYgZWRpdHNjcm9sbFwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJteS0yXCI+PHN2ZyB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNEQUYxRkZcIiAvPlxyXG4gICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNFQUY4RkZcIiBzdHJva2Utd2lkdGg9XCI4XCIgLz5cclxuICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9XCJNMzMgMTkuMDAwMUMzMy4yNjI2IDE4LjczNzQgMzMuNTc0NCAxOC41MjkxIDMzLjkxNzYgMTguMzg2OUMzNC4yNjA4IDE4LjI0NDggMzQuNjI4NiAxOC4xNzE2IDM1IDE4LjE3MTZDMzUuMzcxNCAxOC4xNzE2IDM1LjczOTIgMTguMjQ0OCAzNi4wODI0IDE4LjM4NjlDMzYuNDI1NiAxOC41MjkxIDM2LjczNzQgMTguNzM3NCAzNyAxOS4wMDAxQzM3LjI2MjYgMTkuMjYyNyAzNy40NzEgMTkuNTc0NSAzNy42MTMxIDE5LjkxNzdDMzcuNzU1MyAyMC4yNjA4IDM3LjgyODQgMjAuNjI4NiAzNy44Mjg0IDIxLjAwMDFDMzcuODI4NCAyMS4zNzE1IDM3Ljc1NTMgMjEuNzM5MyAzNy42MTMxIDIyLjA4MjVDMzcuNDcxIDIyLjQyNTYgMzcuMjYyNiAyMi43Mzc0IDM3IDIzLjAwMDFMMjMuNSAzNi41MDAxTDE4IDM4LjAwMDFMMTkuNSAzMi41MDAxTDMzIDE5LjAwMDFaXCJcclxuICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICA8L3N2Zz5cclxuICAgIDwvc3Bhbj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBteS01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhc2t0aXRsZSBtYi00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgVGFzayBUaXRsZSA6XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YXNrdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiA6XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhc2tzdWIgbWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAge3t0YXNrRGV0YWlscz8uY2hlY2tMaXN0TmFtZSB8fCBcIi0tXCJ9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFza3N1YlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7dGFza0RldGFpbHM/LmNoZWNrTGlzdERlc2NyaXB0aW9uIHx8IFwiLS1cIn19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdG9yZXRleHQgbXktNFwiPlxyXG4gICAgICAgICAgICB7e2VkaXRSZXF1ZXN0RGF0YT8uc3RvcmVOYW1lIHx8IFwiLS1cIn19IENvbmZpZ3VyYXRpb25cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgIFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkYXRlcGlja1wiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkR1ZSBkYXRlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMnB4OyBsZWZ0OjEycHg7XCIgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJkYXRlcGlja1wiIGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ3hEYXRlcmFuZ2VwaWNrZXJNZCBbc2luZ2xlRGF0ZVBpY2tlcl09XCJ0cnVlXCIgW21pbkRhdGVdPVwibWluRGF0ZVwiIFtkcm9wc109XCInZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wZW5zXT1cIidyaWdodCdcIiBbYWx3YXlzU2hvd0NhbGVuZGFyc109XCJmYWxzZVwiIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2NoZWR1bGVEYXRlXCIgW2F1dG9BcHBseV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJkYXRlcmFuZ2VcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ0aW1lUGlja1wiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkR1ZSB0aW1lPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xdPVwic2NoZWR1bGVFbmRUaW1lXCIgdHlwZT1cInRpbWVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwidGltZVBpY2tcIiBwbGFjZWhvbGRlcj1cIm5hbWVAZXhhbXBsZS5jb21cIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkFwcHJvdmVyPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxsaWItY2hpcC1kcm9wZG93biBbZGF0YV09XCJhcHByb3ZlcnNMaXN0XCIgW3NlbGVjdGVkRGF0YV09XCJhcHByb3Zlci52YWx1ZVwiIChzZWxlY3RlZExpc3QpPVwib25BcHByb3ZlQWRkZWQoJGV2ZW50KVwiPjwvbGliLWNoaXAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInByaW9yaXR5XCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+UHJpb3JpdHk8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPHNlbGVjdCBbZm9ybUNvbnRyb2xdPVwicHJpb3JpdHlUeXBlXCIgaWQ9XCJwcmlvcml0eVwiIGNsYXNzPVwiZm9ybS1zZWxlY3QgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJoaWdoXCI+SGlnaDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJtZWRpdW1cIj5NZWRpdW08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibWVkaXVtXCI+TG93PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtYi01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b2dnbGUtY2FyZFwiIFtuZ0NsYXNzXT1cImFsbG93ZWRTdG9yZUxvY2F0aW9uLnZhbHVlID8gJ3NlbGVjdGVkJyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtZS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtmb3JtQ29udHJvbF09XCJhbGxvd2VkU3RvcmVMb2NhdGlvblwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiA+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPkdlbyBmZW5jaW5nPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NcIj5CeSBlbmFibGluZywgdGhlIGNoZWNrbGlzdCBjYW4gYmUgZmlsbGVkIGJ5IHRoZSB1c2VyIG9ubHkgd2hlbiBpbnNpZGUgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtYi01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b2dnbGUtY2FyZCBcIiBbbmdDbGFzc109XCJyZXN0cmljdEF0dGVuZGFuY2UudmFsdWUgPyAnc2VsZWN0ZWQnIDogJydcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1lLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW2Zvcm1Db250cm9sXT1cInJlc3RyaWN0QXR0ZW5kYW5jZVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiA+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlJlc3RyaWN0IGF0dGVuZGFuY2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY1wiPkJ5IGVuYWJsaW5nLCB1c2VyIGNhbid0IGJlIGFibGUgdG8gY2xvY2tvdXQgd2l0aG91dCBjb21wbGV0aW5nIHRoZSB0YXNrLlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LThcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjbG9zZVBvcHVwQW5kUmVsb2FkRGF0YSgpXCIgIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0bi1vdXRsaW5lIGJ0biBhbGlnbi1pdGVtcy1lbmQgdGV4dC1ub3dyYXAgaW52aGVhZGVyIHctMTAwXCI+PHNwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIENhbmNlbCA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgPGEgIChjbGljayk9XCJvblN1Ym1pdCgpXCIgdHlwZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXMtMiByb3VuZGVkLTMgdGV4dC1ub3dyYXAgdy0xMDAgbmctc3Rhci1pbnNlcnRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICA+PHNwYW4gIGNsYXNzPVwibXMtMiB0ZXh0LXdoaXRlXCI+VXBkYXRlPC9zcGFuPjwvYT5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHctMTAwIHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+VXBkYXRlPC9zcGFuPjwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Rpdj4iXX0=
@@ -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 TaskLayoutComponent {
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TaskLayoutComponent, selector: "lib-task-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: TaskLayoutComponent, decorators: [{
9
+ type: Component,
10
+ args: [{ selector: 'lib-task-layout', template: "<router-outlet></router-outlet>" }]
11
+ }] });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmF4L3NyYy9saWIvY29tcG9uZW50cy90YXNrLWxheW91dC90YXNrLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL3Rhc2stbGF5b3V0L3Rhc2stbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU8xQyxNQUFNLE9BQU8sbUJBQW1CO3dHQUFuQixtQkFBbUI7NEZBQW5CLG1CQUFtQix1RENQaEMsaUNBQStCOzs0RkRPbEIsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdGFzay1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YXNrLWxheW91dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3Rhc2stbGF5b3V0LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFza0xheW91dENvbXBvbmVudCB7XHJcblxyXG59XHJcbiIsIjxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD4iXX0=
@@ -0,0 +1,153 @@
1
+ import { Component, HostListener, Input } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/trax.service";
5
+ import * as i2 from "@ng-bootstrap/ng-bootstrap";
6
+ import * as i3 from "tango-app-ui-shared";
7
+ import * as i4 from "tango-app-ui-global";
8
+ import * as i5 from "@angular/common";
9
+ import * as i6 from "@angular/forms";
10
+ export class TraxStoreComponent {
11
+ changedetector;
12
+ SopService;
13
+ dialogRef;
14
+ toast;
15
+ gs;
16
+ data;
17
+ client;
18
+ storeList = [];
19
+ store;
20
+ selectedStore = {};
21
+ showDropDown = false;
22
+ searchStore;
23
+ multiSelectSettings = {
24
+ idField: 'id',
25
+ textField: 'name',
26
+ itemsShowLimit: 1,
27
+ allowSearchFilter: true,
28
+ singleSelection: true
29
+ };
30
+ userName = '';
31
+ userEmail = '';
32
+ city = '';
33
+ detach = new Subject();
34
+ destroy$ = new Subject();
35
+ clickOutside(event) {
36
+ const clickedInside = event.target.closest(".dropdown-close");
37
+ if (!clickedInside) {
38
+ this.closeDropDown();
39
+ }
40
+ }
41
+ constructor(changedetector, SopService, dialogRef, toast, gs) {
42
+ this.changedetector = changedetector;
43
+ this.SopService = SopService;
44
+ this.dialogRef = dialogRef;
45
+ this.toast = toast;
46
+ this.gs = gs;
47
+ }
48
+ ngAfterViewInit() {
49
+ let data = {
50
+ "clientId": [this.client],
51
+ "offset": 1,
52
+ "limit": 10000,
53
+ "sortColumName": "storeId",
54
+ "sortBy": -1,
55
+ "searchValue": "",
56
+ "export": false,
57
+ "status": [
58
+ "Live",
59
+ "onboarded",
60
+ "deployed",
61
+ "paired",
62
+ "installationfailed",
63
+ "Infra Issue"
64
+ ]
65
+ };
66
+ this.SopService.getStoreList(data).subscribe((res) => {
67
+ console.log(res.data.result);
68
+ if (res && res.code == 200 && res.data.result.length) {
69
+ let stores = [];
70
+ res.data.result.forEach((item) => {
71
+ stores.push({
72
+ name: item.storeName
73
+ });
74
+ });
75
+ this.storeList = this.store = stores;
76
+ }
77
+ else {
78
+ this.storeList = [];
79
+ }
80
+ });
81
+ }
82
+ ngOnInit() {
83
+ let storageDetails = JSON.parse(localStorage.getItem('header-filters') || '{}');
84
+ if (!storageDetails?.client) {
85
+ storageDetails = JSON.parse(localStorage.getItem('client-details') || '{}');
86
+ storageDetails.client = storageDetails.clientId;
87
+ }
88
+ if (storageDetails?.client) {
89
+ this.client = storageDetails.client;
90
+ }
91
+ }
92
+ toggleDropDown() {
93
+ this.showDropDown = true;
94
+ }
95
+ selectStore(event) {
96
+ }
97
+ filterSearch() {
98
+ if (this.searchStore.trim().length) {
99
+ this.storeList = this.store.filter((item) => item.name.toLowerCase().includes(this.searchStore.toLowerCase()));
100
+ }
101
+ else {
102
+ this.storeList = [...this.store];
103
+ }
104
+ }
105
+ updateSelectedStore(index) {
106
+ this.selectedStore = this.storeList[index];
107
+ this.closeDropDown();
108
+ }
109
+ closeDropDown() {
110
+ this.showDropDown = false;
111
+ }
112
+ updatedStore() {
113
+ if (!this.selectedStore.name) {
114
+ this.toast.getErrorToast('Please Select a Store');
115
+ return false;
116
+ }
117
+ if (!this.userName.trim()) {
118
+ this.toast.getErrorToast('User Name is Required');
119
+ return false;
120
+ }
121
+ if (!this.userEmail.trim()) {
122
+ this.toast.getErrorToast('User Email is Required');
123
+ return false;
124
+ }
125
+ if (!this.userEmail.match(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/)) {
126
+ this.toast.getErrorToast('Invalid Email Format');
127
+ return false;
128
+ }
129
+ let userData = [{
130
+ storeName: this.selectedStore?.name,
131
+ userName: this?.userName?.trim(),
132
+ userEmail: this?.userEmail?.toLowerCase()?.trim(),
133
+ userPhone: '',
134
+ checkFlag: true,
135
+ city: this.city
136
+ }];
137
+ this.dialogRef.close(userData);
138
+ }
139
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraxStoreComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TraxService }, { token: i2.NgbActiveModal }, { token: i3.ToastService }, { token: i4.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
140
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TraxStoreComponent, selector: "lib-trax-store", inputs: { data: "data", client: "client" }, host: { listeners: { "document:click": "clickOutside($event)" } }, ngImport: i0, template: "<div class=\"storePopupcontent p-5\">\r\n <div class=\"mb-4\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\">\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=\"M28 21V35M21 28H35\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <span class=\"popuptitle\">Add Stores</span>\r\n <p class=\"popupsubtitle mt-3\">Finish configuring your store by providing the details below.</p>\r\n <div class=\"pt-3 position-relative\" (clickOutside)=\"closeDropDown()\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Select Store</label>\r\n <div class=\"dropdown-close\">\r\n <div class=\"w-100\">\r\n <div class=\"d-flex align-items-center position-relative w-100\">\r\n <span 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\" fill=\"none\">\r\n <path\r\n d=\"M2.68015 5.8038L2.6269 5.88697C2.06886 6.87402 2.66469 8.12144 3.7363 8.26454C3.83339 8.27641 3.92373 8.28269 4.012 8.28269C4.59015 8.28269 5.10132 8.03467 5.45759 7.64794L6.01093 7.04732L6.56238 7.64967C6.91432 8.03409 7.42433 8.28269 8.00639 8.28269C8.58583 8.28269 9.09877 8.03374 9.45039 7.64967L10.0036 7.04543L10.5568 7.64967C10.9084 8.03374 11.4213 8.28269 12.0008 8.28269C12.5802 8.28269 13.0932 8.03374 13.4448 7.64967L13.998 7.04543L14.5511 7.64967C14.9028 8.03374 15.4157 8.28269 15.9952 8.28269C16.0805 8.28269 16.1736 8.2764 16.27 8.26464C17.3652 8.11532 17.963 6.80105 17.3243 5.8043C17.3242 5.80425 17.3242 5.80419 17.3242 5.80413L15.566 3.06272L15.566 3.06272L15.5651 3.06125C15.5499 3.03742 15.5124 3.01186 15.4652 3.01186H4.53581C4.48866 3.01186 4.45117 3.03742 4.43597 3.06125L4.43535 3.06222L2.68015 5.8038ZM15.6516 10.7371V13.869V14.619H14.9016H5.09943H4.34943V13.869V10.7375C4.2392 10.7457 4.12768 10.75 4.01507 10.75C3.97276 10.75 3.93074 10.7493 3.889 10.7481V13.869V15.8035C3.889 16.4469 4.4229 16.9881 5.09943 16.9881H14.9016C15.5781 16.9881 16.112 16.4469 16.112 15.8035V13.869V10.7483C16.0722 10.7494 16.0322 10.75 15.9921 10.75C15.8777 10.75 15.7641 10.7456 15.6516 10.7371Z\"\r\n stroke=\"#667085\" stroke-width=\"1.5\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control dropdown-input ps-14\" [ngModel]=\"selectedStore?.name\"\r\n (click)=\"toggleDropDown()\" readonly placeholder=\"Select Store...\" />\r\n </div>\r\n </div>\r\n <div class=\"dropdown-menu custom-dropdown-menu w-100\" *ngIf=\"showDropDown\">\r\n <input type=\"text\" class=\"form-control mb-2 dropdown-search mx-3 formSeach\"\r\n placeholder=\"Search Store...\" [(ngModel)]=\"searchStore\" (ngModelChange)=\"filterSearch()\" />\r\n <div [class]=\"storeList?.length > 5 ? 'h-200px overflow-auto' : 'h-auto'\">\r\n <div class=\"dropdown-item form-check custom-dropdown-item\"\r\n *ngFor=\"let store of storeList;let i= index\" (click)=\"updateSelectedStore(i)\">\r\n <label class=\"form-check-label\" [for]=\"store.name\">\r\n {{ store.name }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"storetext mt-2\">Store that I\u2019m looking for isn\u2019t available,<a class=\"text-primary\"\r\n href=\"/manage/stores/addition-method\"><u>Onboard Stores</u></a></div>\r\n\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Assign To</label>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px fw-bold inputname\" placeholder=\"User Name\"\r\n [(ngModel)]=\"userName\">\r\n </div>\r\n\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Assignee Mail ID</label>\r\n <div class=\"d-flex align-items-center position-relatives w-100\">\r\n <span 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\" fill=\"none\">\r\n <path\r\n d=\"M18.3334 4.99999C18.3334 4.08333 17.5834 3.33333 16.6667 3.33333H3.33341C2.41675 3.33333 1.66675 4.08333 1.66675 4.99999M18.3334 4.99999V15C18.3334 15.9167 17.5834 16.6667 16.6667 16.6667H3.33341C2.41675 16.6667 1.66675 15.9167 1.66675 15V4.99999M18.3334 4.99999L10.0001 10.8333L1.66675 4.99999\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px ps-14 fw-bold inputname\"\r\n placeholder=\"User Email\" [(ngModel)]=\"userEmail\">\r\n </div>\r\n </div>\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">City</label>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px fw-bold inputname\" placeholder=\"City\"\r\n [(ngModel)]=\"city\">\r\n </div>\r\n <div class=\"mt-6\">\r\n <button class=\"btn btn-primary w-100\" (click)=\"updatedStore()\">\r\n Add Store\r\n </button>\r\n </div>\r\n</div>", styles: [".storePopupcontent{font-family:Inter;align-items:left}.storePopupcontent .popuptitle{color:var(--gray-900, #101828);font-size:18px;font-weight:600;line-height:20px}.storePopupcontent .popupsubtitle{color:var(--gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.storePopupcontent .btn-outline{border:1px solid lightgrey}.storePopupcontent button{width:45%}.storePopupcontent .inputname{width:100%;border:none;color:#000000de;height:45px;font-size:14px!important;padding:10px 16px;border-radius:4px;outline:1px solid #D0D5DD}.label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}::ng-deep .storePopupcontent input{display:flex!important;align-items:center!important;gap:8px!important;align-self:stretch!important;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important}.btn-primary{line-height:18px!important}.position-relative{position:relative}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;width:100%;box-sizing:border-box}.dropdown-menu{position:absolute;top:100%;left:0;right:0;border:1px solid #ccc;background-color:#fff;z-index:1000;display:block;box-sizing:border-box}.dropdown-item{padding:8px 12px}.dropdown-item:hover{background-color:#f1f1f1}.dropdown-item input[type=checkbox]{margin-right:10px}.custom-dropdown-menu{border-radius:4px;box-shadow:0 1px 2px #1018280d}.custom-dropdown-item{display:flex;align-items:center}.custom-dropdown-item input{margin-left:10px}.btn-resize{font-size:13px!important;height:29px!important;line-height:11px!important;padding:3px!important}.formSeach{width:95%}.storetext{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}\n"], dependencies: [{ 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.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
141
+ }
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraxStoreComponent, decorators: [{
143
+ type: Component,
144
+ args: [{ selector: 'lib-trax-store', template: "<div class=\"storePopupcontent p-5\">\r\n <div class=\"mb-4\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\">\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=\"M28 21V35M21 28H35\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <span class=\"popuptitle\">Add Stores</span>\r\n <p class=\"popupsubtitle mt-3\">Finish configuring your store by providing the details below.</p>\r\n <div class=\"pt-3 position-relative\" (clickOutside)=\"closeDropDown()\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Select Store</label>\r\n <div class=\"dropdown-close\">\r\n <div class=\"w-100\">\r\n <div class=\"d-flex align-items-center position-relative w-100\">\r\n <span 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\" fill=\"none\">\r\n <path\r\n d=\"M2.68015 5.8038L2.6269 5.88697C2.06886 6.87402 2.66469 8.12144 3.7363 8.26454C3.83339 8.27641 3.92373 8.28269 4.012 8.28269C4.59015 8.28269 5.10132 8.03467 5.45759 7.64794L6.01093 7.04732L6.56238 7.64967C6.91432 8.03409 7.42433 8.28269 8.00639 8.28269C8.58583 8.28269 9.09877 8.03374 9.45039 7.64967L10.0036 7.04543L10.5568 7.64967C10.9084 8.03374 11.4213 8.28269 12.0008 8.28269C12.5802 8.28269 13.0932 8.03374 13.4448 7.64967L13.998 7.04543L14.5511 7.64967C14.9028 8.03374 15.4157 8.28269 15.9952 8.28269C16.0805 8.28269 16.1736 8.2764 16.27 8.26464C17.3652 8.11532 17.963 6.80105 17.3243 5.8043C17.3242 5.80425 17.3242 5.80419 17.3242 5.80413L15.566 3.06272L15.566 3.06272L15.5651 3.06125C15.5499 3.03742 15.5124 3.01186 15.4652 3.01186H4.53581C4.48866 3.01186 4.45117 3.03742 4.43597 3.06125L4.43535 3.06222L2.68015 5.8038ZM15.6516 10.7371V13.869V14.619H14.9016H5.09943H4.34943V13.869V10.7375C4.2392 10.7457 4.12768 10.75 4.01507 10.75C3.97276 10.75 3.93074 10.7493 3.889 10.7481V13.869V15.8035C3.889 16.4469 4.4229 16.9881 5.09943 16.9881H14.9016C15.5781 16.9881 16.112 16.4469 16.112 15.8035V13.869V10.7483C16.0722 10.7494 16.0322 10.75 15.9921 10.75C15.8777 10.75 15.7641 10.7456 15.6516 10.7371Z\"\r\n stroke=\"#667085\" stroke-width=\"1.5\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control dropdown-input ps-14\" [ngModel]=\"selectedStore?.name\"\r\n (click)=\"toggleDropDown()\" readonly placeholder=\"Select Store...\" />\r\n </div>\r\n </div>\r\n <div class=\"dropdown-menu custom-dropdown-menu w-100\" *ngIf=\"showDropDown\">\r\n <input type=\"text\" class=\"form-control mb-2 dropdown-search mx-3 formSeach\"\r\n placeholder=\"Search Store...\" [(ngModel)]=\"searchStore\" (ngModelChange)=\"filterSearch()\" />\r\n <div [class]=\"storeList?.length > 5 ? 'h-200px overflow-auto' : 'h-auto'\">\r\n <div class=\"dropdown-item form-check custom-dropdown-item\"\r\n *ngFor=\"let store of storeList;let i= index\" (click)=\"updateSelectedStore(i)\">\r\n <label class=\"form-check-label\" [for]=\"store.name\">\r\n {{ store.name }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"storetext mt-2\">Store that I\u2019m looking for isn\u2019t available,<a class=\"text-primary\"\r\n href=\"/manage/stores/addition-method\"><u>Onboard Stores</u></a></div>\r\n\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Assign To</label>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px fw-bold inputname\" placeholder=\"User Name\"\r\n [(ngModel)]=\"userName\">\r\n </div>\r\n\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Assignee Mail ID</label>\r\n <div class=\"d-flex align-items-center position-relatives w-100\">\r\n <span 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\" fill=\"none\">\r\n <path\r\n d=\"M18.3334 4.99999C18.3334 4.08333 17.5834 3.33333 16.6667 3.33333H3.33341C2.41675 3.33333 1.66675 4.08333 1.66675 4.99999M18.3334 4.99999V15C18.3334 15.9167 17.5834 16.6667 16.6667 16.6667H3.33341C2.41675 16.6667 1.66675 15.9167 1.66675 15V4.99999M18.3334 4.99999L10.0001 10.8333L1.66675 4.99999\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px ps-14 fw-bold inputname\"\r\n placeholder=\"User Email\" [(ngModel)]=\"userEmail\">\r\n </div>\r\n </div>\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">City</label>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px fw-bold inputname\" placeholder=\"City\"\r\n [(ngModel)]=\"city\">\r\n </div>\r\n <div class=\"mt-6\">\r\n <button class=\"btn btn-primary w-100\" (click)=\"updatedStore()\">\r\n Add Store\r\n </button>\r\n </div>\r\n</div>", styles: [".storePopupcontent{font-family:Inter;align-items:left}.storePopupcontent .popuptitle{color:var(--gray-900, #101828);font-size:18px;font-weight:600;line-height:20px}.storePopupcontent .popupsubtitle{color:var(--gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.storePopupcontent .btn-outline{border:1px solid lightgrey}.storePopupcontent button{width:45%}.storePopupcontent .inputname{width:100%;border:none;color:#000000de;height:45px;font-size:14px!important;padding:10px 16px;border-radius:4px;outline:1px solid #D0D5DD}.label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}::ng-deep .storePopupcontent input{display:flex!important;align-items:center!important;gap:8px!important;align-self:stretch!important;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important}.btn-primary{line-height:18px!important}.position-relative{position:relative}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;width:100%;box-sizing:border-box}.dropdown-menu{position:absolute;top:100%;left:0;right:0;border:1px solid #ccc;background-color:#fff;z-index:1000;display:block;box-sizing:border-box}.dropdown-item{padding:8px 12px}.dropdown-item:hover{background-color:#f1f1f1}.dropdown-item input[type=checkbox]{margin-right:10px}.custom-dropdown-menu{border-radius:4px;box-shadow:0 1px 2px #1018280d}.custom-dropdown-item{display:flex;align-items:center}.custom-dropdown-item input{margin-left:10px}.btn-resize{font-size:13px!important;height:29px!important;line-height:11px!important;padding:3px!important}.formSeach{width:95%}.storetext{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}\n"] }]
145
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.TraxService }, { type: i2.NgbActiveModal }, { type: i3.ToastService }, { type: i4.GlobalStateService }], propDecorators: { data: [{
146
+ type: Input
147
+ }], client: [{
148
+ type: Input
149
+ }], clickOutside: [{
150
+ type: HostListener,
151
+ args: ["document:click", ["$event"]]
152
+ }] } });
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJheC1zdG9yZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL3RyYXgtc3RvcmUvdHJheC1zdG9yZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL3RyYXgtc3RvcmUvdHJheC1zdG9yZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSXpHLE9BQU8sRUFBQyxPQUFPLEVBQVksTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBUXhDLE1BQU0sT0FBTyxrQkFBa0I7SUFnQ1Q7SUFBeUM7SUFBK0I7SUFBaUM7SUFBMkI7SUEvQi9JLElBQUksQ0FBSztJQUNULE1BQU0sQ0FBSztJQUNwQixTQUFTLEdBQU8sRUFBRSxDQUFDO0lBQ25CLEtBQUssQ0FBSTtJQUNULGFBQWEsR0FBTyxFQUFFLENBQUM7SUFDdkIsWUFBWSxHQUFVLEtBQUssQ0FBQztJQUM1QixXQUFXLENBQUs7SUFDaEIsbUJBQW1CLEdBQUc7UUFDbEIsT0FBTyxFQUFFLElBQUk7UUFDYixTQUFTLEVBQUUsTUFBTTtRQUNqQixjQUFjLEVBQUUsQ0FBQztRQUNqQixpQkFBaUIsRUFBRSxJQUFJO1FBQ3ZCLGVBQWUsRUFBRSxJQUFJO0tBQ3hCLENBQUM7SUFDRixRQUFRLEdBQVUsRUFBRSxDQUFBO0lBQ3BCLFNBQVMsR0FBVSxFQUFFLENBQUE7SUFDckIsSUFBSSxHQUFRLEVBQUUsQ0FBQTtJQUNOLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ2QsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFJMUMsWUFBWSxD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QUssQ0FBQztTQUNmO1FBRUQsSUFBSSxRQUFRLEdBQUcsQ0FBQztnQkFDZCxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJO2dCQUNuQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hDLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRTtnQkFDakQsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsSUFBSSxFQUFDLElBQUksQ0FBQyxJQUFJO2FBQ2YsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQzt3R0F4SVUsa0JBQWtCOzRGQUFsQixrQkFBa0IscUtDWi9CLHl5TEEwRU07OzRGRDlETyxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZ0JBQWdCO3lNQUtqQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQXFCTixZQUFZO3NCQURYLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHtTdWJqZWN0LCB0YWtlVW50aWx9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUcmF4U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi10cmF4LXN0b3JlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJheC1zdG9yZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RyYXgtc3RvcmUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmF4U3RvcmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgZGF0YTphbnk7XHJcbiAgQElucHV0KCkgY2xpZW50OmFueTtcclxuICBzdG9yZUxpc3Q6YW55ID0gW107XHJcbiAgc3RvcmU6W107XHJcbiAgc2VsZWN0ZWRTdG9yZTphbnkgPSB7fTtcclxuICBzaG93RHJvcERvd246Ym9vbGVhbj0gZmFsc2U7XHJcbiAgc2VhcmNoU3RvcmU6YW55O1xyXG4gIG11bHRpU2VsZWN0U2V0dGluZ3MgPSB7XHJcbiAgICAgIGlkRmllbGQ6ICdpZCcsXHJcbiAgICAgIHRleHRGaWVsZDogJ25hbWUnLFxyXG4gICAgICBpdGVtc1Nob3dMaW1pdDogMSxcclxuICAgICAgYWxsb3dTZWFyY2hGaWx0ZXI6IHRydWUsXHJcbiAgICAgIHNpbmdsZVNlbGVjdGlvblx0OnRydWVcclxuICB9O1xyXG4gIHVzZXJOYW1lOnN0cmluZyA9ICcnXHJcbiAgdXNlckVtYWlsOnN0cmluZyA9ICcnXHJcbiAgY2l0eTpzdHJpbmc9JydcclxuICBwcml2YXRlIGRldGFjaCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG5cclxuICBASG9zdExpc3RlbmVyKFwiZG9jdW1lbnQ6Y2xpY2tcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIGNsaWNrT3V0c2lkZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgY2xpY2tlZEluc2lkZSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoXHJcbiAgICAgIFwiLmRyb3Bkb3duLWNsb3NlXCJcclxuICAgICk7XHJcbiAgICBpZiAoIWNsaWNrZWRJbnNpZGUpIHtcclxuICAgICAgdGhpcy5jbG9zZURyb3BEb3duKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZWRldGVjdG9yOkNoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgU29wU2VydmljZTpUcmF4U2VydmljZSxwcml2YXRlIGRpYWxvZ1JlZjpOZ2JBY3RpdmVNb2RhbCxwcml2YXRlIHRvYXN0OlRvYXN0U2VydmljZSxwcml2YXRlIGdzOkdsb2JhbFN0YXRlU2VydmljZSkgeyB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGxldCBkYXRhID0ge1xyXG4gICAgXCJjbGllbnRJZFwiOiBbdGhpcy5jbGllbnRdLFxyXG4gICAgXCJvZmZzZXRcIjogMSxcclxuICAgIFwibGltaXRcIjogMTAwMDAsXHJcbiAgICBcInNvcnRDb2x1bU5hbWVcIjogXCJzdG9yZUlkXCIsXHJcbiAgICBcInNvcnRCeVwiOiAtMSxcclxuICAgIFwic2VhcmNoVmFsdWVcIjogXCJcIixcclxuICAgIFwiZXhwb3J0XCI6IGZhbHNlLFxyXG4gICAgXCJzdGF0dXNcIjogW1xyXG4gICAgICAgIFwiTGl2ZVwiLFxyXG4gICAgICAgIFwib25ib2FyZGVkXCIsXHJcbiAgICAgICAgXCJkZXBsb3llZFwiLFxyXG4gICAgICAgIFwicGFpcmVkXCIsXHJcbiAgICAgICAgXCJpbnN0YWxsYXRpb25mYWlsZWRcIixcclxuICAgICAgICBcIkluZnJhIElzc3VlXCJcclxuICAgIF1cclxuICAgfVxyXG4gICB0aGlzLlNvcFNlcnZpY2UuZ2V0U3RvcmVMaXN0KGRhdGEpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgIGNvbnNvbGUubG9nKHJlcy5kYXRhLnJlc3VsdCk7XHJcbiAgICBcclxuICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDAgJiYgcmVzLmRhdGEucmVzdWx0Lmxlbmd0aCkge1xyXG4gICAgICBsZXQgc3RvcmVzOmFueSA9IFtdO1xyXG4gICAgICByZXMuZGF0YS5yZXN1bHQuZm9yRWFjaCgoaXRlbTphbnkpID0+IHtcclxuICAgICAgICBzdG9yZXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOml0ZW0uc3RvcmVOYW1lXHJcbiAgICAgICAgfSlcclxuICAgICAgfSlcclxuICAgICAgdGhpcy5zdG9yZUxpc3QgPSB0aGlzLnN0b3JlID0gIHN0b3JlcztcclxuICAgICAgXHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXTtcclxuICAgIH1cclxuICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGxldCBzdG9yYWdlRGV0YWlscyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2hlYWRlci1maWx0ZXJzJykgfHwgJ3t9Jyk7XHJcbiAgICBpZighc3RvcmFnZURldGFpbHM/LmNsaWVudCkge1xyXG4gICAgICBzdG9yYWdlRGV0YWlscyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2NsaWVudC1kZXRhaWxzJykgfHwgJ3t9Jyk7XHJcbiAgICAgIHN0b3JhZ2VEZXRhaWxzLmNsaWVudCA9IHN0b3JhZ2VEZXRhaWxzLmNsaWVudElkO1xyXG4gICAgfVxyXG4gICAgaWYoc3RvcmFnZURldGFpbHM/LmNsaWVudCkge1xyXG4gICAgICB0aGlzLmNsaWVudD0gc3RvcmFnZURldGFpbHMuY2xpZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlRHJvcERvd24oKSB7XHJcbiAgICB0aGlzLnNob3dEcm9wRG93biA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RTdG9yZShldmVudDphbnkpIHtcclxuXHJcbiAgfVxyXG5cclxuICBmaWx0ZXJTZWFyY2goKSB7XHJcbiAgICBpZih0aGlzLnNlYXJjaFN0b3JlLnRyaW0oKS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5zdG9yZUxpc3QgPSB0aGlzLnN0b3JlLmZpbHRlcigoaXRlbTphbnkpID0+IGl0ZW0ubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoU3RvcmUudG9Mb3dlckNhc2UoKSkpXHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbLi4udGhpcy5zdG9yZV1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVNlbGVjdGVkU3RvcmUoaW5kZXg6bnVtYmVyKXtcclxuICAgIHRoaXMuc2VsZWN0ZWRTdG9yZSA9IHRoaXMuc3RvcmVMaXN0W2luZGV4XTtcclxuICAgIHRoaXMuY2xvc2VEcm9wRG93bigpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VEcm9wRG93bigpIHtcclxuICAgIHRoaXMuc2hvd0Ryb3BEb3duID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVkU3RvcmUoKSB7XHJcbiAgICAgIGlmKCF0aGlzLnNlbGVjdGVkU3RvcmUubmFtZSkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1BsZWFzZSBTZWxlY3QgYSBTdG9yZScpO1xyXG4gICAgICByZXR1cm4gIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYoIXRoaXMudXNlck5hbWUudHJpbSgpKSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnVXNlciBOYW1lIGlzIFJlcXVpcmVkJyk7XHJcbiAgICAgIHJldHVybiAgZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZighdGhpcy51c2VyRW1haWwudHJpbSgpKSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnVXNlciBFbWFpbCBpcyBSZXF1aXJlZCcpO1xyXG4gICAgICByZXR1cm4gIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYoIXRoaXMudXNlckVtYWlsLm1hdGNoKC9eW2EtekEtWjAtOS5fLV0rQFthLXpBLVowLTkuLV0rXFwuW2EtekEtWl17Miw2fSQvKSkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ0ludmFsaWQgRW1haWwgRm9ybWF0Jyk7XHJcbiAgICAgIHJldHVybiAgZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHVzZXJEYXRhID0gW3tcclxuICAgICAgc3RvcmVOYW1lOiB0aGlzLnNlbGVjdGVkU3RvcmU/Lm5hbWUsXHJcbiAgICAgIHVzZXJOYW1lOiB0aGlzPy51c2VyTmFtZT8udHJpbSgpLFxyXG4gICAgICB1c2VyRW1haWw6IHRoaXM/LnVzZXJFbWFpbD8udG9Mb3dlckNhc2UoKT8udHJpbSgpLFxyXG4gICAgICB1c2VyUGhvbmU6ICcnLFxyXG4gICAgICBjaGVja0ZsYWc6IHRydWUsXHJcbiAgICAgIGNpdHk6dGhpcy5jaXR5XHJcbiAgICB9XVxyXG5cclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHVzZXJEYXRhKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzdG9yZVBvcHVwY29udGVudCBwLTVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYi00XCI+XHJcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNEQUYxRkZcIiAvPlxyXG4gICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNFQUY4RkZcIiBzdHJva2Utd2lkdGg9XCI4XCIgLz5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk0yOCAyMVYzNU0yMSAyOEgzNVwiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxzcGFuIGNsYXNzPVwicG9wdXB0aXRsZVwiPkFkZCBTdG9yZXM8L3NwYW4+XHJcbiAgICA8cCBjbGFzcz1cInBvcHVwc3VidGl0bGUgbXQtM1wiPkZpbmlzaCBjb25maWd1cmluZyB5b3VyIHN0b3JlIGJ5IHByb3ZpZGluZyB0aGUgZGV0YWlscyBiZWxvdy48L3A+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHQtMyBwb3NpdGlvbi1yZWxhdGl2ZVwiIChjbGlja091dHNpZGUpPVwiY2xvc2VEcm9wRG93bigpXCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImlucHV0bW9kZWxcIiBjbGFzcz1cImxhYmVsIHBiLTJcIj5TZWxlY3QgU3RvcmU8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1jbG9zZVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMi42ODAxNSA1LjgwMzhMMi42MjY5IDUuODg2OTdDMi4wNjg4NiA2Ljg3NDAyIDIuNjY0NjkgOC4xMjE0NCAzLjczNjMgOC4yNjQ1NEMzLjgzMzM5IDguMjc2NDEgMy45MjM3MyA4LjI4MjY5IDQuMDEyIDguMjgyNjlDNC41OTAxNSA4LjI4MjY5IDUuMTAxMzIgOC4wMzQ2NyA1LjQ1NzU5IDcuNjQ3OTRMNi4wMTA5MyA3LjA0NzMyTDYuNTYyMzggNy42NDk2N0M2LjkxNDMyIDguMDM0MDkgNy40MjQzMyA4LjI4MjY5IDguMDA2MzkgOC4yODI2OUM4LjU4NTgzIDguMjgyNjkgOS4wOTg3NyA4LjAzMzc0IDkuNDUwMzkgNy42NDk2N0wxMC4wMDM2IDcuMDQ1NDNMMTAuNTU2OCA3LjY0OTY3QzEwLjkwODQgOC4wMzM3NCAxMS40MjEzIDguMjgyNjkgMTIuMDAwOCA4LjI4MjY5QzEyLjU4MDIgOC4yODI2OSAxMy4wOTMyIDguMDMzNzQgMTMuNDQ0OCA3LjY0OTY3TDEzLjk5OCA3LjA0NTQzTDE0LjU1MTEgNy42NDk2N0MxNC45MDI4IDguMDMzNzQgMTUuNDE1NyA4LjI4MjY5IDE1Ljk5NTIgOC4yODI2OUMxNi4wODA1IDguMjgyNjkgMTYuMTczNiA4LjI3NjQgMTYuMjcgOC4yNjQ2NEMxNy4zNjUyIDguMTE1MzIgMTcuOTYzIDYuODAxMDUgMTcuMzI0MyA1LjgwNDNDMTcuMzI0MiA1LjgwNDI1IDE3LjMyNDIgNS44MDQxOSAxNy4zMjQyIDUuODA0MTNMMTUuNTY2IDMuMDYyNzJMMTUuNTY2IDMuMDYyNzJMMTUuNTY1MSAzLjA2MTI1QzE1LjU0OTkgMy4wMzc0MiAxNS41MTI0IDMuMDExODYgMTUuNDY1MiAzLjAxMTg2SDQuNTM1ODFDNC40ODg2NiAzLjAxMTg2IDQuNDUxMTcgMy4wMzc0MiA0LjQzNTk3IDMuMDYxMjVMNC40MzUzNSAzLjA2MjIyTDIuNjgwMTUgNS44MDM4Wk0xNS42NTE2IDEwLjczNzFWMTMuODY5VjE0LjYxOUgxNC45MDE2SDUuMDk5NDNINC4zNDk0M1YxMy44NjlWMTAuNzM3NUM0LjIzOTIgMTAuNzQ1NyA0LjEyNzY4IDEwLjc1IDQuMDE1MDcgMTAuNzVDMy45NzI3NiAxMC43NSAzLjkzMDc0IDEwLjc0OTMgMy44ODkgMTAuNzQ4MVYxMy44NjlWMTUuODAzNUMzLjg4OSAxNi40NDY5IDQuNDIyOSAxNi45ODgxIDUuMDk5NDMgMTYuOTg4MUgxNC45MDE2QzE1LjU3ODEgMTYuOTg4MSAxNi4xMTIgMTYuNDQ2OSAxNi4xMTIgMTUuODAzNVYxMy44NjlWMTAuNzQ4M0MxNi4wNzIyIDEwLjc0OTQgMTYuMDMyMiAxMC43NSAxNS45OTIxIDEwLjc1QzE1Ljg3NzcgMTAuNzUgMTUuNzY0MSAxMC43NDU2IDE1LjY1MTYgMTAuNzM3MVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZHJvcGRvd24taW5wdXQgcHMtMTRcIiBbbmdNb2RlbF09XCJzZWxlY3RlZFN0b3JlPy5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURyb3BEb3duKClcIiByZWFkb25seSBwbGFjZWhvbGRlcj1cIlNlbGVjdCBTdG9yZS4uLlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51IGN1c3RvbS1kcm9wZG93bi1tZW51IHctMTAwXCIgKm5nSWY9XCJzaG93RHJvcERvd25cIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIG1iLTIgZHJvcGRvd24tc2VhcmNoIG14LTMgZm9ybVNlYWNoXCJcclxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBTdG9yZS4uLlwiIFsobmdNb2RlbCldPVwic2VhcmNoU3RvcmVcIiAobmdNb2RlbENoYW5nZSk9XCJmaWx0ZXJTZWFyY2goKVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzc109XCJzdG9yZUxpc3Q/Lmxlbmd0aCA+IDUgPyAnaC0yMDBweCBvdmVyZmxvdy1hdXRvJyA6ICdoLWF1dG8nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gZm9ybS1jaGVjayBjdXN0b20tZHJvcGRvd24taXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdG9yZSBvZiBzdG9yZUxpc3Q7bGV0IGk9IGluZGV4XCIgKGNsaWNrKT1cInVwZGF0ZVNlbGVjdGVkU3RvcmUoaSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIFtmb3JdPVwic3RvcmUubmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3RvcmUubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RvcmV0ZXh0IG10LTJcIj5TdG9yZSB0aGF0IEnigJltIGxvb2tpbmcgZm9yIGlzbuKAmXQgYXZhaWxhYmxlLDxhIGNsYXNzPVwidGV4dC1wcmltYXJ5XCJcclxuICAgICAgICAgICAgaHJlZj1cIi9tYW5hZ2Uvc3RvcmVzL2FkZGl0aW9uLW1ldGhvZFwiPjx1Pk9uYm9hcmQgU3RvcmVzPC91PjwvYT48L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicHQtNVwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJpbnB1dG1vZGVsXCIgY2xhc3M9XCJsYWJlbCBwYi0yXCI+QXNzaWduIFRvPC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgdy00MzBweCBmdy1ib2xkIGlucHV0bmFtZVwiIHBsYWNlaG9sZGVyPVwiVXNlciBOYW1lXCJcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ1c2VyTmFtZVwiPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInB0LTVcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiaW5wdXRtb2RlbFwiIGNsYXNzPVwibGFiZWwgcGItMlwiPkFzc2lnbmVlIE1haWwgSUQ8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlcyB3LTEwMFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOC4zMzM0IDQuOTk5OTlDMTguMzMzNCA0LjA4MzMzIDE3LjU4MzQgMy4zMzMzMyAxNi42NjY3IDMuMzMzMzNIMy4zMzM0MUMyLjQxNjc1IDMuMzMzMzMgMS42NjY3NSA0LjA4MzMzIDEuNjY2NzUgNC45OTk5OU0xOC4zMzM0IDQuOTk5OTlWMTVDMTguMzMzNCAxNS45MTY3IDE3LjU4MzQgMTYuNjY2NyAxNi42NjY3IDE2LjY2NjdIMy4zMzM0MUMyLjQxNjc1IDE2LjY2NjcgMS42NjY3NSAxNS45MTY3IDEuNjY2NzUgMTVWNC45OTk5OU0xOC4zMzM0IDQuOTk5OTlMMTAuMDAwMSAxMC44MzMzTDEuNjY2NzUgNC45OTk5OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCB3LTQzMHB4IHBzLTE0IGZ3LWJvbGQgaW5wdXRuYW1lXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVXNlciBFbWFpbFwiIFsobmdNb2RlbCldPVwidXNlckVtYWlsXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJwdC01XCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImlucHV0bW9kZWxcIiBjbGFzcz1cImxhYmVsIHBiLTJcIj5DaXR5PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgdy00MzBweCBmdy1ib2xkIGlucHV0bmFtZVwiIHBsYWNlaG9sZGVyPVwiQ2l0eVwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY2l0eVwiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibXQtNlwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy0xMDBcIiAoY2xpY2spPVwidXBkYXRlZFN0b3JlKClcIj5cclxuICAgICAgICAgICAgQWRkIFN0b3JlXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19