awf-test-lib 0.0.22 → 0.0.25
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2020/lib/core/core-routing.module.mjs +1 -1
- package/esm2020/lib/core/not-found/not-found.component.mjs +1 -1
- package/esm2020/lib/models/detailedPmJob.model.mjs +1 -1
- package/esm2020/lib/models/emailType.mjs +15 -5
- package/esm2020/lib/pipes/pipes/pipes.module.mjs +1 -1
- package/esm2020/lib/shared/choose-another-date/choose-another-date.component.mjs +107 -0
- package/esm2020/lib/{ge → shared}/confirm-dialog/confirm-dialog.component.mjs +1 -1
- package/esm2020/lib/{ge → shared}/confirm-dialog-validated-to-waiting/confirm-dialog-validated-to-waiting.component.mjs +1 -1
- package/esm2020/lib/{ge → shared}/confirmed-date-information/confirmed-date-information.component.mjs +1 -1
- package/esm2020/lib/shared/contact/contact.component.mjs +76 -0
- package/esm2020/lib/{ge → shared}/contact-support/contact-support.component.mjs +1 -1
- package/esm2020/lib/shared/maintenance-list/maintenance-list.component.mjs +277 -0
- package/esm2020/lib/shared/shared-routing.module.mjs +18 -0
- package/esm2020/lib/shared/shared.module.mjs +141 -0
- package/esm2020/lib/{ge → shared}/show-links/show-links.component.mjs +1 -1
- package/esm2020/lib/shared/system-list/system-list.component.mjs +32 -0
- package/esm2020/public-api.mjs +5 -5
- package/fesm2015/awf-test-lib.mjs +46 -36
- package/fesm2015/awf-test-lib.mjs.map +1 -1
- package/fesm2020/awf-test-lib.mjs +46 -36
- package/fesm2020/awf-test-lib.mjs.map +1 -1
- package/lib/models/detailedPmJob.model.d.ts +3 -0
- package/lib/models/emailType.d.ts +10 -4
- package/lib/{ge → shared}/choose-another-date/choose-another-date.component.d.ts +0 -0
- package/lib/{ge → shared}/confirm-dialog/confirm-dialog.component.d.ts +0 -0
- package/lib/{ge → shared}/confirm-dialog-validated-to-waiting/confirm-dialog-validated-to-waiting.component.d.ts +0 -0
- package/lib/{ge → shared}/confirmed-date-information/confirmed-date-information.component.d.ts +0 -0
- package/lib/{ge → shared}/contact/contact.component.d.ts +0 -0
- package/lib/{ge → shared}/contact-support/contact-support.component.d.ts +0 -0
- package/lib/{ge → shared}/maintenance-list/maintenance-list.component.d.ts +1 -1
- package/lib/shared/shared-routing.module.d.ts +7 -0
- package/lib/{ge/ge.module.d.ts → shared/shared.module.d.ts} +5 -5
- package/lib/{ge → shared}/show-links/show-links.component.d.ts +0 -0
- package/lib/{ge → shared}/system-list/system-list.component.d.ts +0 -0
- package/package.json +1 -1
- package/public-api.d.ts +4 -4
- package/esm2020/lib/ge/choose-another-date/choose-another-date.component.mjs +0 -107
- package/esm2020/lib/ge/contact/contact.component.mjs +0 -76
- package/esm2020/lib/ge/ge-routing.module.mjs +0 -18
- package/esm2020/lib/ge/ge.module.mjs +0 -141
- package/esm2020/lib/ge/maintenance-list/maintenance-list.component.mjs +0 -277
- package/esm2020/lib/ge/system-list/system-list.component.mjs +0 -32
- package/lib/ge/ge-routing.module.d.ts +0 -7
@@ -0,0 +1,277 @@
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
2
|
+
import { ConfirmationService, MessageService } from 'primeng/api';
|
3
|
+
import { EmailType } from '../../models/emailType';
|
4
|
+
import { EventStatus } from '../../models/eventStatus';
|
5
|
+
import { PmJobStatus } from '../../models/pmJobStatus';
|
6
|
+
import * as i0 from "@angular/core";
|
7
|
+
import * as i1 from "primeng/api";
|
8
|
+
import * as i2 from "@angular/common";
|
9
|
+
import * as i3 from "primeng/table";
|
10
|
+
import * as i4 from "primeng/inputtext";
|
11
|
+
import * as i5 from "primeng/toast";
|
12
|
+
import * as i6 from "primeng/tooltip";
|
13
|
+
import * as i7 from "primeng/overlaypanel";
|
14
|
+
import * as i8 from "primeng/button";
|
15
|
+
import * as i9 from "../choose-another-date/choose-another-date.component";
|
16
|
+
import * as i10 from "../confirm-dialog/confirm-dialog.component";
|
17
|
+
import * as i11 from "../confirm-dialog-validated-to-waiting/confirm-dialog-validated-to-waiting.component";
|
18
|
+
import * as i12 from "../confirmed-date-information/confirmed-date-information.component";
|
19
|
+
import * as i13 from "../contact-support/contact-support.component";
|
20
|
+
import * as i14 from "../show-links/show-links.component";
|
21
|
+
import * as i15 from "../../pipes/substring.pipe";
|
22
|
+
export class MaintenanceListComponent {
|
23
|
+
constructor(messageService) {
|
24
|
+
this.messageService = messageService;
|
25
|
+
this.maintenanceList = [];
|
26
|
+
this.pmJobList = [];
|
27
|
+
this.displayConfirmedDateInfo = false;
|
28
|
+
//@Output() refreshMaintenanceList = new EventEmitter<boolean>();
|
29
|
+
this.emitForUpdate = new EventEmitter();
|
30
|
+
this.emitForAlternativeDates = new EventEmitter();
|
31
|
+
this.pmJobLinkedList = [];
|
32
|
+
this.detailedPmJobLinkedList = [];
|
33
|
+
this.alternativeDatesSelected = [];
|
34
|
+
this.displaycontactSupport = false;
|
35
|
+
this.displayConfirmValidatedToWaiting = false;
|
36
|
+
this.displayConfirmDialog = false;
|
37
|
+
this.displayShowLinks = false;
|
38
|
+
this.displayAnotherDate = false;
|
39
|
+
this.isLinks = false;
|
40
|
+
this.isProposedDate = true;
|
41
|
+
}
|
42
|
+
ngOnChanges(changes) {
|
43
|
+
}
|
44
|
+
ngOnDestroy() {
|
45
|
+
if (this.updatePmSubscription) {
|
46
|
+
this.updatePmSubscription.unsubscribe();
|
47
|
+
}
|
48
|
+
if (this.alternativeDatesSubscription) {
|
49
|
+
this.alternativeDatesSubscription.unsubscribe();
|
50
|
+
}
|
51
|
+
}
|
52
|
+
applyFilterGlobal($event, stringVal) {
|
53
|
+
this.dt?.filterGlobal($event.target.value, stringVal);
|
54
|
+
}
|
55
|
+
selectElement(element) {
|
56
|
+
this.alternativeDatesList = [];
|
57
|
+
if (element) {
|
58
|
+
this.pmSelectedStatus = element.status;
|
59
|
+
}
|
60
|
+
if (element.pmJob.groupList) {
|
61
|
+
this.isLinks = element.pmJob.groupList?.length > 0 ? true : false;
|
62
|
+
}
|
63
|
+
this.selectedWorkorderId = element.pmJob.workorderId;
|
64
|
+
this.maintenanceSelected = element;
|
65
|
+
if (!this.isAlreadyScheduled) {
|
66
|
+
this.getAlternativeDates(element.pmJob);
|
67
|
+
this.startDateTime = this.maintenanceSelected.pmJob.startDateTime;
|
68
|
+
this.endDateTime = this.maintenanceSelected.pmJob.endDateTime;
|
69
|
+
}
|
70
|
+
this.getLinkedPmJob();
|
71
|
+
}
|
72
|
+
confirmDialog() {
|
73
|
+
this.isProposedDate = true;
|
74
|
+
this.op.hide();
|
75
|
+
this.displayConfirmDialog = true;
|
76
|
+
}
|
77
|
+
closeConfirmDialog(confirm) {
|
78
|
+
this.displayConfirmDialog = false;
|
79
|
+
if (confirm) {
|
80
|
+
if (!this.isProposedDate) {
|
81
|
+
this.updateAlternativeDate();
|
82
|
+
}
|
83
|
+
else {
|
84
|
+
this.updateProposedDate();
|
85
|
+
}
|
86
|
+
this.emailTypes.push(EmailType.Accepted_CSC);
|
87
|
+
this.emailTypes.push(EmailType.Accepted_Clients);
|
88
|
+
this.updatePmJob();
|
89
|
+
}
|
90
|
+
}
|
91
|
+
proposeAnotherDate() {
|
92
|
+
this.isProposedDate = false;
|
93
|
+
this.op.hide();
|
94
|
+
this.displayAnotherDate = true;
|
95
|
+
}
|
96
|
+
contactSupport() {
|
97
|
+
this.op.hide();
|
98
|
+
this.displaycontactSupport = true;
|
99
|
+
}
|
100
|
+
closeContactSupport() {
|
101
|
+
this.displaycontactSupport = false;
|
102
|
+
this.showDate = false;
|
103
|
+
}
|
104
|
+
showLinks() {
|
105
|
+
this.op.hide();
|
106
|
+
this.displayShowLinks = true;
|
107
|
+
}
|
108
|
+
closeShowLinks() {
|
109
|
+
this.displayShowLinks = false;
|
110
|
+
}
|
111
|
+
closeConfirmedDateInfo() {
|
112
|
+
this.displayConfirmedDateInfo = false;
|
113
|
+
}
|
114
|
+
acceptDate(alternativeDates) {
|
115
|
+
this.displayConfirmDialog = true;
|
116
|
+
this.alternativeDatesSelected = alternativeDates;
|
117
|
+
this.findDatesSelected();
|
118
|
+
}
|
119
|
+
findDatesSelected() {
|
120
|
+
this.alternativeDatesSelected.forEach((alternativeDate) => {
|
121
|
+
if (alternativeDate.selected === "Yes") {
|
122
|
+
this.startDateTime = alternativeDate.startDateTime;
|
123
|
+
this.endDateTime = alternativeDate.endDateTime;
|
124
|
+
return;
|
125
|
+
}
|
126
|
+
});
|
127
|
+
}
|
128
|
+
closeAnotherDate(event) {
|
129
|
+
this.displayAnotherDate = false;
|
130
|
+
if (event === false) {
|
131
|
+
this.alreadyScheduledMsg = false;
|
132
|
+
this.op.hide();
|
133
|
+
this.displayConfirmValidatedToWaiting = true;
|
134
|
+
}
|
135
|
+
}
|
136
|
+
updatePmJob() {
|
137
|
+
this.pmJobList = [];
|
138
|
+
this.pmJobList.push(this.maintenanceSelected);
|
139
|
+
if (this.pmJobLinkedList.length > 0) {
|
140
|
+
this.pmJobLinkedList.forEach((pMJob) => {
|
141
|
+
this.pmJobList.push(pMJob);
|
142
|
+
});
|
143
|
+
}
|
144
|
+
this.callApiToUpdate();
|
145
|
+
}
|
146
|
+
editPm() {
|
147
|
+
this.alreadyScheduledMsg = true;
|
148
|
+
this.op.hide();
|
149
|
+
this.displayConfirmValidatedToWaiting = true;
|
150
|
+
if (this.maintenanceSelected.pmJob.customerAccepted === "Yes") {
|
151
|
+
this.startDateTime = this.maintenanceSelected.pmJob.startDateTime;
|
152
|
+
this.endDateTime = this.maintenanceSelected.pmJob.endDateTime;
|
153
|
+
}
|
154
|
+
else {
|
155
|
+
this.alternativeDatesSelected = this.maintenanceSelected.pmJob.alternativeDates;
|
156
|
+
this.findDatesSelected();
|
157
|
+
}
|
158
|
+
}
|
159
|
+
closeConfirmDialogValidatedToWaiting(confirm) {
|
160
|
+
this.displayConfirmValidatedToWaiting = false;
|
161
|
+
if (confirm) {
|
162
|
+
this.validatedToWaitingUpdate();
|
163
|
+
}
|
164
|
+
}
|
165
|
+
validatedToWaitingUpdate() {
|
166
|
+
this.maintenanceSelected.pmJob.customObject = {};
|
167
|
+
this.maintenanceSelected.pmJob.customObject.customerWaiting = 'Yes';
|
168
|
+
this.pmJobLinkedList.forEach((item) => {
|
169
|
+
item.pmJob.customObject.customerWaiting = 'Yes';
|
170
|
+
});
|
171
|
+
this.emailTypes.push(this.alreadyScheduledMsg ? EmailType.ReportDate_CSC : EmailType.SendNewDates_CSC);
|
172
|
+
this.emailTypes.push(this.alreadyScheduledMsg ? EmailType.ReportDate_Clients : EmailType.SendNewDates_Clients);
|
173
|
+
this.updatePmJob();
|
174
|
+
}
|
175
|
+
updateProposedDate() {
|
176
|
+
this.maintenanceSelected.pmJob.customerAccepted = 'Yes';
|
177
|
+
this.maintenanceSelected.pmJob.eventStatus = EventStatus.ASSIGNEDANC;
|
178
|
+
this.pmJobLinkedList.forEach((item) => {
|
179
|
+
item.pmJob.customerAccepted = 'Yes';
|
180
|
+
item.pmJob.eventStatus = EventStatus.ASSIGNEDANC;
|
181
|
+
});
|
182
|
+
}
|
183
|
+
updateAlternativeDate() {
|
184
|
+
this.findDatesSelected();
|
185
|
+
this.maintenanceSelected.pmJob.alternativeDates = this.alternativeDatesSelected;
|
186
|
+
this.pmJobLinkedList.forEach((item) => {
|
187
|
+
item.pmJob.alternativeDates = this.alternativeDatesSelected;
|
188
|
+
item.pmJob.eventStatus = EventStatus.ASSIGNEDANC;
|
189
|
+
});
|
190
|
+
this.displayAnotherDate = false;
|
191
|
+
}
|
192
|
+
getAlternativeDates(pmJob) {
|
193
|
+
let pmJobReques = {};
|
194
|
+
pmJobReques.countrymodule = "France";
|
195
|
+
pmJobReques.pmJob = pmJob;
|
196
|
+
this.emitForAlternativeDates.emit(pmJob);
|
197
|
+
}
|
198
|
+
getLinkedPmJob() {
|
199
|
+
this.pmJobLinkedList = [];
|
200
|
+
this.detailedPmJobLinkedList = [];
|
201
|
+
if (this.maintenanceSelected.pmJob.groupList) {
|
202
|
+
this.maintenanceSelected.pmJob.groupList.forEach((linked) => {
|
203
|
+
this.maintenanceList.forEach((item) => {
|
204
|
+
if (linked.workorderId == item.pmJob.workorderId) {
|
205
|
+
this.pmJobLinkedList.push(item);
|
206
|
+
this.detailedPmJobLinkedList.push(item);
|
207
|
+
}
|
208
|
+
});
|
209
|
+
});
|
210
|
+
}
|
211
|
+
}
|
212
|
+
callApiToUpdate() {
|
213
|
+
let PmJobListForUpdate = {};
|
214
|
+
PmJobListForUpdate.pmJobList = this.pmJobList;
|
215
|
+
PmJobListForUpdate.emailTypes = this.emailTypes;
|
216
|
+
this.emitForUpdate.emit(PmJobListForUpdate);
|
217
|
+
}
|
218
|
+
transformStatus(status) {
|
219
|
+
switch (status) {
|
220
|
+
case PmJobStatus.NEW: return this.status.new;
|
221
|
+
case PmJobStatus.ACCEPTED: return this.status.accepted;
|
222
|
+
case PmJobStatus.CLOSED: return this.status.closed;
|
223
|
+
case PmJobStatus.Late: return this.status.late;
|
224
|
+
case PmJobStatus.OPEN: return this.status.open;
|
225
|
+
case PmJobStatus.WAITING: return this.status.waiting;
|
226
|
+
case PmJobStatus.DONE: return this.status.done;
|
227
|
+
case PmJobStatus.VALIDATED: return this.status.validated;
|
228
|
+
default: return "Erreur";
|
229
|
+
}
|
230
|
+
}
|
231
|
+
getStatusTooltip(status) {
|
232
|
+
switch (status) {
|
233
|
+
case PmJobStatus.ACCEPTED: return this.status.acceptedTooltip;
|
234
|
+
case PmJobStatus.NEW: return this.status.newTooltip;
|
235
|
+
case PmJobStatus.CLOSED: return this.status.closedTooltip;
|
236
|
+
case PmJobStatus.Late: return this.status.lateTooltip;
|
237
|
+
case PmJobStatus.OPEN: return this.status.openTooltip;
|
238
|
+
case PmJobStatus.WAITING: return this.status.waitingTooltip;
|
239
|
+
case PmJobStatus.DONE: return this.status.doneTooltip;
|
240
|
+
case PmJobStatus.VALIDATED: return this.status.validatedTooltip;
|
241
|
+
default: return "Erreur";
|
242
|
+
}
|
243
|
+
}
|
244
|
+
}
|
245
|
+
MaintenanceListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MaintenanceListComponent, deps: [{ token: i1.MessageService }], target: i0.ɵɵFactoryTarget.Component });
|
246
|
+
MaintenanceListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: MaintenanceListComponent, selector: "awf-maintenance-list", inputs: { translate: "translate", globaltranslate: "globaltranslate", maintenanceList: "maintenanceList", pmJobList: "pmJobList", isAlreadyScheduled: "isAlreadyScheduled", displayConfirmedDateInfo: "displayConfirmedDateInfo", alternativeDatesList: "alternativeDatesList", status: "status" }, outputs: { emitForUpdate: "emitForUpdate", emitForAlternativeDates: "emitForAlternativeDates" }, providers: [MessageService, ConfirmationService], viewQueries: [{ propertyName: "dt", first: true, predicate: ["dt"], descendants: true }, { propertyName: "op", first: true, predicate: ["op"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<p-table #dt [value]=\"maintenanceList\" responsiveLayout=\"stack\" [rows]=\"10\" [showCurrentPageReport]=\"true\" [rowsPerPageOptions]=\"[5,10,25,50]\" [paginator]=\"true\" [globalFilterFields]=\"['systemId','pmJob.caseId','systemName','pmJob.workorderId','pmJob.startDateTime','pmJob.endDateTime','pmJob.case_type','pmJob.case_category','status']\"\r\n [rowHover]=\"true\" dataKey=\"id\" [currentPageReportTemplate]=\"globaltranslate.countPages\">\r\n <ng-template pTemplate=\"caption\">\r\n <div>\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" (input)=\"applyFilterGlobal($event, 'contains')\"\r\n [placeholder]=\"globaltranslate.search\" />\r\n </span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <!-- <th pSortableColumn=\"caseId\">Case Id <p-sortIcon field=\"caseId\"></p-sortIcon> -->\r\n <th pSortableColumn=\"systemName\">{{translate.maintenanceList.system}}\r\n <p-sortIcon field=\"systemId\"></p-sortIcon>\r\n <th pSortableColumn=\"systemId\">System Id\r\n <p-sortIcon field=\"systemName\"></p-sortIcon>\r\n <th pSortableColumn=\"workorderId\">{{translate.maintenanceList.workOrder}}\r\n <p-sortIcon field=\"workorderId\"></p-sortIcon>\r\n <th pSortableColumn=\"startDateTime\">{{translate.maintenanceList.startDate}}\r\n <p-sortIcon field=\"startDateTime\"></p-sortIcon>\r\n <th pSortableColumn=\"endDateTime\">{{translate.maintenanceList.endDate}}\r\n <p-sortIcon field=\"endDateTime\"></p-sortIcon>\r\n <th pSortableColumn=\"case_type\">{{translate.maintenanceList.type}}\r\n <p-sortIcon field=\"case_type\"></p-sortIcon>\r\n <th pSortableColumn=\"case_category\">{{translate.maintenanceList.category}}\r\n <p-sortIcon field=\"case_category\"></p-sortIcon>\r\n <th pSortableColumn=\"status\">{{translate.maintenanceList.status}}\r\n <p-sortIcon field=\"status\"></p-sortIcon>\r\n <th pSortableColumn=\"status\" >{{translate.maintenanceList.NbrLinks}}\r\n <p-sortIcon field=\"status\"></p-sortIcon>\r\n <th> Action</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-product let-columns=\"columns\">\r\n <tr> \r\n <td>{{product.systemName }}</td>\r\n <td>{{product.systemId }}</td>\r\n <td>{{product.pmJob.workorderId }}</td>\r\n <td>{{product.pmJob.startDateTime | substring :0:10 }}</td>\r\n <td>{{product.pmJob.endDateTime | substring :0:10}}</td>\r\n <td>{{product.pmJob.caseType }}</td>\r\n <td>{{product.pmJob.caseCategory }}</td>\r\n <td><span [class]=\"'product-status status-' + product.status\" [pTooltip]=\"getStatusTooltip(product.status)\">{{transformStatus(product.status) }}</span>\r\n </td>\r\n <td *ngIf=\"product.pmJob.groupList.length>0 \"> <span class=\"circle\">{{product.pmJob.groupList.length }}</span> <i class=\"pi pi-link\" style=\"font-size: 1rem\"></i> </td>\r\n <td *ngIf=\"product.pmJob.groupList.length===0 \"> <span class=\"circlelinked\">{{product.pmJob.groupList.length }}</span> <i class=\"pi pi-link\" style=\"font-size: 1rem\"></i> </td>\r\n <td>\r\n <button pButton pRipple type=\"button\" label=\"\" icon=\"pi pi-calendar\" class=\"p-button-rounded\" #actualTarget (click)=\"selectElement(product)\" (click)=\"op.toggle($event)\" [disabled]=\"((product.status ==='late' || product.status ==='accepted') && !isAlreadyScheduled) || product.status ==='waiting'\"></button>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"summary\">\r\n <div class=\"p-d-flex p-ai-center p-jc-between\">\r\n {{globaltranslate.count}} {{maintenanceList ? maintenanceList.length : 0 }} {{globaltranslate.elements}}.\r\n </div>\r\n </ng-template>\r\n</p-table>\r\n\r\n<p-toast position=\"top-center\"></p-toast>\r\n<p-overlayPanel #op [dismissable]=\"true\" [showCloseIcon]=\"false\" [showTransitionOptions]=\"'0ms'\" [hideTransitionOptions]=\"'0ms'\">\r\n <ng-template pTemplate>\r\n\r\n <button style=\"width: 100%;\" *ngIf=\"!isAlreadyScheduled\" icon=\"pi pi-thumbs-up\" (click)=\"confirmDialog()\" [label]=\"translate.maintenanceList.confirmDate\" class=\"p-button-text p-button-raised\" pButton pRipple type=\"button\">\r\n </button>\r\n <hr *ngIf=\"!isAlreadyScheduled\">\r\n <button style=\"width: 100%;\" *ngIf=\"!isAlreadyScheduled && (alternativeDatesList.length>0) \" icon=\"pi pi-calendar-plus\" (click)=\"proposeAnotherDate()\" [label]=\"translate.maintenanceList.chooseAnotherDate\" class=\"p-button-text p-button-raised\" pButton pRipple type=\"button\"></button>\r\n <hr *ngIf=\"!isAlreadyScheduled && (alternativeDatesList.length>0) \">\r\n <button style=\"width: 100%;\" icon=\"pi pi-phone\" (click)=\"contactSupport()\" [label]=\"translate.maintenanceList.contactSuppor\" class=\"p-button-text p-button-raised\" pButton pRipple type=\"button\"></button>\r\n <hr *ngIf=\" isLinks\">\r\n <button style=\"width: 100%;\" icon=\"pi pi-link\" *ngIf=\" isLinks\" (click)=\"showLinks()\" [label]=\"translate.maintenanceList.showLinks\" class=\"p-button-text p-button-raised\" pButton pRipple type=\"button\"></button>\r\n <hr *ngIf=\"isAlreadyScheduled && pmSelectedStatus ==='validated'\">\r\n <button style=\"width: 100%;\" *ngIf=\"isAlreadyScheduled && pmSelectedStatus ==='validated'\" icon=\"pi pi-pencil\" (click)=\"editPm()\" [label]=\"translate.maintenanceList.cancel\" class=\"p-button-text p-button-raised\" pButton pRipple type=\"button\">\r\n </button>\r\n </ng-template>\r\n</p-overlayPanel>\r\n\r\n<div *ngIf=\"displaycontactSupport\">\r\n <app-contact-support [detailedPmJob] =\"maintenanceSelected\" [globaltranslate]=\"globaltranslate\" [translate]=\"translate.contactSupport\" [displaycontactSupport]=\"displaycontactSupport\" [showDate]=\"showDate\" (closeContactSupportPopup)=\"closeContactSupport()\"></app-contact-support>\r\n</div>\r\n<div *ngIf=\"displayConfirmDialog\">\r\n <app-confirm-dialog [detailedPmJobLinkedList]=\"detailedPmJobLinkedList\" [isProposedDate]=\"isProposedDate\" [globaltranslate]=\"globaltranslate\" [translate]=\"translate.confirmDialog\"\r\n [startDateTime]=\"startDateTime\" [endDateTime]=\"endDateTime\" [displayConfirmDialog]=\"displayConfirmDialog\" (closeConfirmDialog)=\"closeConfirmDialog($event)\">\r\n </app-confirm-dialog>\r\n</div>\r\n<div *ngIf=\"displayConfirmValidatedToWaiting\">\r\n <app-confirm-dialog-validated-to-waiting [detailedPmJobLinkedList]=\"detailedPmJobLinkedList\" [alreadyScheduledMsg]=\"alreadyScheduledMsg\" [globaltranslate]=\"globaltranslate\" [translate]=\"translate.confirmValidatedToWaitingDialog\"\r\n [startDateTime]=\"startDateTime\" [endDateTime]=\"endDateTime\" [displayConfirmValidatedToWaiting]=\"displayConfirmValidatedToWaiting\" (closeConfirmDialogValidatedToWaiting)=\"closeConfirmDialogValidatedToWaiting($event)\">\r\n </app-confirm-dialog-validated-to-waiting>\r\n</div>\r\n<div *ngIf=\"displayConfirmedDateInfo\">\r\n <app-confirmed-date-information [globaltranslate]=\"globaltranslate\" [translate]=\"translate.confirmDateInformation\" [startDateTime]=\"startDateTime\" [endDateTime]=\"endDateTime\" [displayConfirmedDateInfo]=\"displayConfirmedDateInfo\" (closeConfirmedDateInfo)=\"closeConfirmedDateInfo()\"></app-confirmed-date-information>\r\n</div>\r\n<div *ngIf=\"displayAnotherDate && alternativeDatesList\">\r\n <app-choose-another-date [globaltranslate]=\"globaltranslate\" [translate]=\"translate.chooseAnotherDate\" [alternativeDatesList]=\"alternativeDatesList\" [displayAnotherDate]=\"displayAnotherDate\" (closeAnotherDate)=\"closeAnotherDate($event)\" (acceptDate)=\"acceptDate($event)\">\r\n </app-choose-another-date>\r\n</div>\r\n<div *ngIf=\"displayShowLinks && selectedWorkorderId\">\r\n <app-show-links [status]=\"status\" [selectedWorkorderId]=\"selectedWorkorderId\" [translate]=\"translate\" [globaltranslate]=\"globaltranslate\" [displayShowLinks]=\"displayShowLinks\" (closeShowLinks)=\"closeShowLinks()\" [detailedPmJobLinkedList]=\"detailedPmJobLinkedList\"></app-show-links>\r\n</div>\r\n\r\n\r\n", styles: ["span.circle{background:#f86359;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%;color:#f8f8f8;display:inline-block;font-weight:700;line-height:20px;margin-right:5px;text-align:center;width:20px}span.circlelinked{background:#80a161;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%;color:#fff;display:inline-block;font-weight:700;line-height:20px;margin-right:5px;text-align:center;width:20px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i3.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i3.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "directive", type: i4.InputText, selector: "[pInputText]" }, { kind: "component", type: i5.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i6.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i7.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "directive", type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i9.ChooseAnotherDateComponent, selector: "app-choose-another-date", inputs: ["displayAnotherDate", "globaltranslate", "translate", "alternativeDatesList"], outputs: ["closeAnotherDate", "acceptDate"] }, { kind: "component", type: i10.ConfirmDialogComponent, selector: "app-confirm-dialog", inputs: ["displayConfirmDialog", "startDateTime", "endDateTime", "globaltranslate", "translate", "isProposedDate", "detailedPmJobLinkedList"], outputs: ["closeConfirmDialog"] }, { kind: "component", type: i11.ConfirmDialogValidatedToWaitingComponent, selector: "app-confirm-dialog-validated-to-waiting", inputs: ["displayConfirmValidatedToWaiting", "startDateTime", "endDateTime", "globaltranslate", "translate", "alreadyScheduledMsg", "detailedPmJobLinkedList"], outputs: ["closeConfirmDialogValidatedToWaiting"] }, { kind: "component", type: i12.ConfirmedDateInformationComponent, selector: "app-confirmed-date-information", inputs: ["displayConfirmedDateInfo", "startDateTime", "endDateTime", "globaltranslate", "translate"], outputs: ["closeConfirmedDateInfo"] }, { kind: "component", type: i13.ContactSupportComponent, selector: "app-contact-support", inputs: ["displaycontactSupport", "globaltranslate", "translate", "showDate", "detailedPmJob"], outputs: ["closeContactSupportPopup", "sendContactMeEmail"] }, { kind: "component", type: i14.ShowLinksComponent, selector: "app-show-links", inputs: ["displayShowLinks", "detailedPmJobLinkedList", "selectedWorkorderId", "globaltranslate", "translate", "status"], outputs: ["closeShowLinks"] }, { kind: "pipe", type: i15.SubstringPipe, name: "substring" }] });
|
247
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MaintenanceListComponent, decorators: [{
|
248
|
+
type: Component,
|
249
|
+
args: [{ selector: 'awf-maintenance-list', providers: [MessageService, ConfirmationService], template: "<p-table #dt [value]=\"maintenanceList\" responsiveLayout=\"stack\" [rows]=\"10\" [showCurrentPageReport]=\"true\" [rowsPerPageOptions]=\"[5,10,25,50]\" [paginator]=\"true\" [globalFilterFields]=\"['systemId','pmJob.caseId','systemName','pmJob.workorderId','pmJob.startDateTime','pmJob.endDateTime','pmJob.case_type','pmJob.case_category','status']\"\r\n [rowHover]=\"true\" dataKey=\"id\" [currentPageReportTemplate]=\"globaltranslate.countPages\">\r\n <ng-template pTemplate=\"caption\">\r\n <div>\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" (input)=\"applyFilterGlobal($event, 'contains')\"\r\n [placeholder]=\"globaltranslate.search\" />\r\n </span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <!-- <th pSortableColumn=\"caseId\">Case Id <p-sortIcon field=\"caseId\"></p-sortIcon> -->\r\n <th pSortableColumn=\"systemName\">{{translate.maintenanceList.system}}\r\n <p-sortIcon field=\"systemId\"></p-sortIcon>\r\n <th pSortableColumn=\"systemId\">System Id\r\n <p-sortIcon field=\"systemName\"></p-sortIcon>\r\n <th pSortableColumn=\"workorderId\">{{translate.maintenanceList.workOrder}}\r\n <p-sortIcon field=\"workorderId\"></p-sortIcon>\r\n <th pSortableColumn=\"startDateTime\">{{translate.maintenanceList.startDate}}\r\n <p-sortIcon field=\"startDateTime\"></p-sortIcon>\r\n <th pSortableColumn=\"endDateTime\">{{translate.maintenanceList.endDate}}\r\n <p-sortIcon field=\"endDateTime\"></p-sortIcon>\r\n <th pSortableColumn=\"case_type\">{{translate.maintenanceList.type}}\r\n <p-sortIcon field=\"case_type\"></p-sortIcon>\r\n <th pSortableColumn=\"case_category\">{{translate.maintenanceList.category}}\r\n <p-sortIcon field=\"case_category\"></p-sortIcon>\r\n <th pSortableColumn=\"status\">{{translate.maintenanceList.status}}\r\n <p-sortIcon field=\"status\"></p-sortIcon>\r\n <th pSortableColumn=\"status\" >{{translate.maintenanceList.NbrLinks}}\r\n <p-sortIcon field=\"status\"></p-sortIcon>\r\n <th> Action</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-product let-columns=\"columns\">\r\n <tr> \r\n <td>{{product.systemName }}</td>\r\n <td>{{product.systemId }}</td>\r\n <td>{{product.pmJob.workorderId }}</td>\r\n <td>{{product.pmJob.startDateTime | substring :0:10 }}</td>\r\n <td>{{product.pmJob.endDateTime | substring :0:10}}</td>\r\n <td>{{product.pmJob.caseType }}</td>\r\n <td>{{product.pmJob.caseCategory }}</td>\r\n <td><span [class]=\"'product-status status-' + product.status\" [pTooltip]=\"getStatusTooltip(product.status)\">{{transformStatus(product.status) }}</span>\r\n </td>\r\n <td *ngIf=\"product.pmJob.groupList.length>0 \"> <span class=\"circle\">{{product.pmJob.groupList.length }}</span> <i class=\"pi pi-link\" style=\"font-size: 1rem\"></i> </td>\r\n <td *ngIf=\"product.pmJob.groupList.length===0 \"> <span class=\"circlelinked\">{{product.pmJob.groupList.length }}</span> <i class=\"pi pi-link\" style=\"font-size: 1rem\"></i> </td>\r\n <td>\r\n <button pButton pRipple type=\"button\" label=\"\" icon=\"pi pi-calendar\" class=\"p-button-rounded\" #actualTarget (click)=\"selectElement(product)\" (click)=\"op.toggle($event)\" [disabled]=\"((product.status ==='late' || product.status ==='accepted') && !isAlreadyScheduled) || product.status ==='waiting'\"></button>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"summary\">\r\n <div class=\"p-d-flex p-ai-center p-jc-between\">\r\n {{globaltranslate.count}} {{maintenanceList ? maintenanceList.length : 0 }} {{globaltranslate.elements}}.\r\n </div>\r\n </ng-template>\r\n</p-table>\r\n\r\n<p-toast position=\"top-center\"></p-toast>\r\n<p-overlayPanel #op [dismissable]=\"true\" [showCloseIcon]=\"false\" [showTransitionOptions]=\"'0ms'\" [hideTransitionOptions]=\"'0ms'\">\r\n <ng-template pTemplate>\r\n\r\n <button style=\"width: 100%;\" *ngIf=\"!isAlreadyScheduled\" icon=\"pi pi-thumbs-up\" (click)=\"confirmDialog()\" [label]=\"translate.maintenanceList.confirmDate\" class=\"p-button-text p-button-raised\" pButton pRipple type=\"button\">\r\n </button>\r\n <hr *ngIf=\"!isAlreadyScheduled\">\r\n <button style=\"width: 100%;\" *ngIf=\"!isAlreadyScheduled && (alternativeDatesList.length>0) \" icon=\"pi pi-calendar-plus\" (click)=\"proposeAnotherDate()\" [label]=\"translate.maintenanceList.chooseAnotherDate\" class=\"p-button-text p-button-raised\" pButton pRipple type=\"button\"></button>\r\n <hr *ngIf=\"!isAlreadyScheduled && (alternativeDatesList.length>0) \">\r\n <button style=\"width: 100%;\" icon=\"pi pi-phone\" (click)=\"contactSupport()\" [label]=\"translate.maintenanceList.contactSuppor\" class=\"p-button-text p-button-raised\" pButton pRipple type=\"button\"></button>\r\n <hr *ngIf=\" isLinks\">\r\n <button style=\"width: 100%;\" icon=\"pi pi-link\" *ngIf=\" isLinks\" (click)=\"showLinks()\" [label]=\"translate.maintenanceList.showLinks\" class=\"p-button-text p-button-raised\" pButton pRipple type=\"button\"></button>\r\n <hr *ngIf=\"isAlreadyScheduled && pmSelectedStatus ==='validated'\">\r\n <button style=\"width: 100%;\" *ngIf=\"isAlreadyScheduled && pmSelectedStatus ==='validated'\" icon=\"pi pi-pencil\" (click)=\"editPm()\" [label]=\"translate.maintenanceList.cancel\" class=\"p-button-text p-button-raised\" pButton pRipple type=\"button\">\r\n </button>\r\n </ng-template>\r\n</p-overlayPanel>\r\n\r\n<div *ngIf=\"displaycontactSupport\">\r\n <app-contact-support [detailedPmJob] =\"maintenanceSelected\" [globaltranslate]=\"globaltranslate\" [translate]=\"translate.contactSupport\" [displaycontactSupport]=\"displaycontactSupport\" [showDate]=\"showDate\" (closeContactSupportPopup)=\"closeContactSupport()\"></app-contact-support>\r\n</div>\r\n<div *ngIf=\"displayConfirmDialog\">\r\n <app-confirm-dialog [detailedPmJobLinkedList]=\"detailedPmJobLinkedList\" [isProposedDate]=\"isProposedDate\" [globaltranslate]=\"globaltranslate\" [translate]=\"translate.confirmDialog\"\r\n [startDateTime]=\"startDateTime\" [endDateTime]=\"endDateTime\" [displayConfirmDialog]=\"displayConfirmDialog\" (closeConfirmDialog)=\"closeConfirmDialog($event)\">\r\n </app-confirm-dialog>\r\n</div>\r\n<div *ngIf=\"displayConfirmValidatedToWaiting\">\r\n <app-confirm-dialog-validated-to-waiting [detailedPmJobLinkedList]=\"detailedPmJobLinkedList\" [alreadyScheduledMsg]=\"alreadyScheduledMsg\" [globaltranslate]=\"globaltranslate\" [translate]=\"translate.confirmValidatedToWaitingDialog\"\r\n [startDateTime]=\"startDateTime\" [endDateTime]=\"endDateTime\" [displayConfirmValidatedToWaiting]=\"displayConfirmValidatedToWaiting\" (closeConfirmDialogValidatedToWaiting)=\"closeConfirmDialogValidatedToWaiting($event)\">\r\n </app-confirm-dialog-validated-to-waiting>\r\n</div>\r\n<div *ngIf=\"displayConfirmedDateInfo\">\r\n <app-confirmed-date-information [globaltranslate]=\"globaltranslate\" [translate]=\"translate.confirmDateInformation\" [startDateTime]=\"startDateTime\" [endDateTime]=\"endDateTime\" [displayConfirmedDateInfo]=\"displayConfirmedDateInfo\" (closeConfirmedDateInfo)=\"closeConfirmedDateInfo()\"></app-confirmed-date-information>\r\n</div>\r\n<div *ngIf=\"displayAnotherDate && alternativeDatesList\">\r\n <app-choose-another-date [globaltranslate]=\"globaltranslate\" [translate]=\"translate.chooseAnotherDate\" [alternativeDatesList]=\"alternativeDatesList\" [displayAnotherDate]=\"displayAnotherDate\" (closeAnotherDate)=\"closeAnotherDate($event)\" (acceptDate)=\"acceptDate($event)\">\r\n </app-choose-another-date>\r\n</div>\r\n<div *ngIf=\"displayShowLinks && selectedWorkorderId\">\r\n <app-show-links [status]=\"status\" [selectedWorkorderId]=\"selectedWorkorderId\" [translate]=\"translate\" [globaltranslate]=\"globaltranslate\" [displayShowLinks]=\"displayShowLinks\" (closeShowLinks)=\"closeShowLinks()\" [detailedPmJobLinkedList]=\"detailedPmJobLinkedList\"></app-show-links>\r\n</div>\r\n\r\n\r\n", styles: ["span.circle{background:#f86359;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%;color:#f8f8f8;display:inline-block;font-weight:700;line-height:20px;margin-right:5px;text-align:center;width:20px}span.circlelinked{background:#80a161;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%;color:#fff;display:inline-block;font-weight:700;line-height:20px;margin-right:5px;text-align:center;width:20px}\n"] }]
|
250
|
+
}], ctorParameters: function () { return [{ type: i1.MessageService }]; }, propDecorators: { dt: [{
|
251
|
+
type: ViewChild,
|
252
|
+
args: ['dt']
|
253
|
+
}], op: [{
|
254
|
+
type: ViewChild,
|
255
|
+
args: ['op']
|
256
|
+
}], translate: [{
|
257
|
+
type: Input
|
258
|
+
}], globaltranslate: [{
|
259
|
+
type: Input
|
260
|
+
}], maintenanceList: [{
|
261
|
+
type: Input
|
262
|
+
}], pmJobList: [{
|
263
|
+
type: Input
|
264
|
+
}], isAlreadyScheduled: [{
|
265
|
+
type: Input
|
266
|
+
}], displayConfirmedDateInfo: [{
|
267
|
+
type: Input
|
268
|
+
}], alternativeDatesList: [{
|
269
|
+
type: Input
|
270
|
+
}], emitForUpdate: [{
|
271
|
+
type: Output
|
272
|
+
}], emitForAlternativeDates: [{
|
273
|
+
type: Output
|
274
|
+
}], status: [{
|
275
|
+
type: Input
|
276
|
+
}] } });
|
277
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbnRlbmFuY2UtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hd2YtdGVzdC1saWIvc3JjL2xpYi9zaGFyZWQvbWFpbnRlbmFuY2UtbGlzdC9tYWludGVuYW5jZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F3Zi10ZXN0LWxpYi9zcmMvbGliL3NoYXJlZC9tYWludGVuYW5jZS1saXN0L21haW50ZW5hbmNlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBR1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUtsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSXZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTdkQsTUFBTSxPQUFPLHdCQUF3QjtJQXdDakMsWUFDWSxjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFwQ2pDLG9CQUFlLEdBQW9CLEVBQUUsQ0FBQztRQUN0QyxjQUFTLEdBQW9CLEVBQUUsQ0FBQztRQUVoQyw2QkFBd0IsR0FBQyxLQUFLLENBQUM7UUFFeEMsaUVBQWlFO1FBQ3ZELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN4Qyw0QkFBdUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBSzVELG9CQUFlLEdBQW9CLEVBQUUsQ0FBQztRQUN0Qyw0QkFBdUIsR0FBcUIsRUFBRSxDQUFDO1FBVS9DLDZCQUF3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QUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztZQUNqRSxPQUFRLENBQUMsQ0FBQyxPQUFPLFFBQVEsQ0FBQztTQUM3QjtJQUNMLENBQUM7O3FIQWhVUSx3QkFBd0I7eUdBQXhCLHdCQUF3QixvYkFGdEIsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsb05DNUJwRCwrdlJBdUdBOzJGRHpFYSx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0ksc0JBQXNCLGFBR3JCLENBQUMsY0FBYyxFQUFFLG1CQUFtQixDQUFDO3FHQUcvQixFQUFFO3NCQUFsQixTQUFTO3VCQUFDLElBQUk7Z0JBQ0UsRUFBRTtzQkFBbEIsU0FBUzt1QkFBQyxJQUFJO2dCQUNOLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBQ0UsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEZXRhaWxlZFBtSm9iIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2RldGFpbGVkUG1Kb2IubW9kZWwnO1xyXG5pbXBvcnQgeyBBbHRlcm5hdGl2ZURhdGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWx0ZXJuYXRpdmVEYXRlLm1vZGVsJztcclxuaW1wb3J0IHsgRW1haWxUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VtYWlsVHlwZSc7XHJcbmltcG9ydCB7IEV2ZW50U3RhdHVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V2ZW50U3RhdHVzJztcclxuaW1wb3J0IHsgUG1Kb2IgfSBmcm9tICcuLi8uLi9tb2RlbHMvcG1Kb2IubW9kZWwnO1xyXG5pbXBvcnQgeyBQbUpvYlJlcXVlc3QgfSBmcm9tICcuLi8uLi9tb2RlbHMvcG1Kb2JSZXF1ZXN0Lm1vZGVsJztcclxuaW1wb3J0IHsgUE1Hcm91cGVkSm9iIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3BNR3JvdXBlZEpvYi5tb2RlbCc7XHJcbmltcG9ydCB7IFBtSm9iU3RhdHVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3BtSm9iU3RhdHVzJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXdmLW1haW50ZW5hbmNlLWxpc3QnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL21haW50ZW5hbmNlLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbWFpbnRlbmFuY2UtbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2UsIENvbmZpcm1hdGlvblNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFpbnRlbmFuY2VMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gICAgQFZpZXdDaGlsZCgnZHQnKSBkdDogVGFibGUgfCB1bmRlZmluZWQ7XHJcbiAgICBAVmlld0NoaWxkKCdvcCcpIG9wOiBhbnkgfCB1bmRlZmluZWQ7XHJcbiAgICBASW5wdXQoKSB0cmFuc2xhdGU6IGFueTtcclxuICAgIEBJbnB1dCgpIGdsb2JhbHRyYW5zbGF0ZTogYW55O1xyXG4gICAgQElucHV0KCkgbWFpbnRlbmFuY2VMaXN0OiBEZXRhaWxlZFBtSm9iW10gPSBbXTtcclxuICAgIEBJbnB1dCgpIHBtSm9iTGlzdDogRGV0YWlsZWRQbUpvYltdID0gW107XHJcbiAgICBASW5wdXQoKSBpc0FscmVhZHlTY2hlZHVsZWQhOiBCb29sZWFuO1xyXG4gICAgQElucHV0KCkgZGlzcGxheUNvbmZpcm1lZERhdGVJbmZvPWZhbHNlO1xyXG4gICAgQElucHV0KCkgYWx0ZXJuYXRpdmVEYXRlc0xpc3QhOiBBbHRlcm5hdGl2ZURhdGVbXSA7XHJcbiAgICAvL0BPdXRwdXQoKSByZWZyZXNoTWFpbnRlbmFuY2VMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gICAgQE91dHB1dCgpIGVtaXRGb3JVcGRhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBlbWl0Rm9yQWx0ZXJuYXRpdmVEYXRlcyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgQElucHV0KCkgc3RhdHVzOiBhbnk7XHJcblxyXG4gICAgXHJcblxyXG4gICAgcG1Kb2JMaW5rZWRMaXN0OiBEZXRhaWxlZFBtSm9iW10gPSBbXTtcclxuICAgIGRldGFpbGVkUG1Kb2JMaW5rZWRMaXN0IDogRGV0YWlsZWRQbUpvYltdID0gW107XHJcbiAgICB1cGRhdGVQbVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuICAgIGFsdGVybmF0aXZlRGF0ZXNTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcbiAgICBzaG93RGF0ZSE6IGJvb2xlYW47XHJcbiAgICBtYWludGVuYW5jZVNlbGVjdGVkITogRGV0YWlsZWRQbUpvYjtcclxuICAgIHN0YXJ0RGF0ZVRpbWUhOiBhbnk7XHJcbiAgICBlbmREYXRlVGltZSE6IGFueTtcclxuICAgIHNlbGVjdGVkV29ya29yZGVySWQhOiBhbnk7XHJcbiAgICBhbHRlcm5hdGl2ZURhdGUhOiBBbHRlcm5hdGl2ZURhdGUgO1xyXG4gICBcclxuICAgIGFsdGVybmF0aXZlRGF0ZXNTZWxlY3RlZDogQWx0ZXJuYXRpdmVEYXRlW10gPSBbXTtcclxuICAgIGRpc3BsYXljb250YWN0U3VwcG9ydCA9IGZhbHNlO1xyXG4gICAgZGlzcGxheUNvbmZpcm1WYWxpZGF0ZWRUb1dhaXRpbmcgPSBmYWxzZTtcclxuICAgIGRpc3BsYXlDb25maXJtRGlhbG9nID0gZmFsc2U7XHJcbiAgICBkaXNwbGF5U2hvd0xpbmtzICA9IGZhbHNlO1xyXG4gICAgZGlzcGxheUFub3RoZXJEYXRlID0gZmFsc2U7XHJcbiAgICBpc0xpbmtzID0gZmFsc2U7XHJcbiAgICBpc1Byb3Bvc2VkRGF0ZSA9IHRydWU7XHJcbiAgICBwbVNlbGVjdGVkU3RhdHVzITpzdHJpbmcgO1xyXG4gICAgZW1haWxUeXBlcyE6c3RyaW5nW107IFxyXG4gICAgYWxyZWFkeVNjaGVkdWxlZE1zZyAhOmJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2VcclxuICAgICkge31cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy51cGRhdGVQbVN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBtU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmFsdGVybmF0aXZlRGF0ZXNTdWJzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5hbHRlcm5hdGl2ZURhdGVzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFwcGx5RmlsdGVyR2xvYmFsKCRldmVudDogYW55LCBzdHJpbmdWYWw6IGFueSkge1xyXG4gICAgICAgIHRoaXMuZHQ/LmZpbHRlckdsb2JhbChcclxuICAgICAgICAgICAgKCRldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUsXHJcbiAgICAgICAgICAgIHN0cmluZ1ZhbFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0RWxlbWVudChlbGVtZW50OiBEZXRhaWxlZFBtSm9iKSB7XHJcbiAgICAgICAgdGhpcy5hbHRlcm5hdGl2ZURhdGVzTGlzdCA9IFtdO1xyXG4gICAgICAgIGlmKGVsZW1lbnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnBtU2VsZWN0ZWRTdGF0dXMgPSBlbGVtZW50LnN0YXR1cyA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgXHJcblxyXG5cclxuICAgICAgICBpZihlbGVtZW50LnBtSm9iLmdyb3VwTGlzdClcclxuICAgICAgICB7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmlzTGlua3MgPSBlbGVtZW50LnBtSm9iLmdyb3VwTGlzdD8ubGVuZ3RoID4gMCA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFdvcmtvcmRlcklkID0gZWxlbWVudC5wbUpvYi53b3Jrb3JkZXJJZDtcclxuXHJcbiAgICAgICAgdGhpcy5tYWludGVuYW5jZVNlbGVjdGVkID0gZWxlbWVudDtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmlzQWxyZWFkeVNjaGVkdWxlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmdldEFsdGVybmF0aXZlRGF0ZXMoZWxlbWVudC5wbUpvYik7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlVGltZSA9IHRoaXMubWFpbnRlbmFuY2VTZWxlY3RlZC5wbUpvYi5zdGFydERhdGVUaW1lO1xyXG4gICAgICAgICAgICB0aGlzLmVuZERhdGVUaW1lID0gdGhpcy5tYWludGVuYW5jZVNlbGVjdGVkLnBtSm9iLmVuZERhdGVUaW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmdldExpbmtlZFBtSm9iKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uZmlybURpYWxvZygpIHtcclxuICAgICAgICB0aGlzLmlzUHJvcG9zZWREYXRlID0gdHJ1ZSA7XHJcbiAgICAgICAgdGhpcy5vcC5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5Q29uZmlybURpYWxvZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBcclxuXHJcbiAgICBjbG9zZUNvbmZpcm1EaWFsb2coY29uZmlybTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5Q29uZmlybURpYWxvZyA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChjb25maXJtKSB7XHJcbiAgICAgICAgICAgIGlmKCF0aGlzLmlzUHJvcG9zZWREYXRlKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUFsdGVybmF0aXZlRGF0ZSgpO1xyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUHJvcG9zZWREYXRlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5lbWFpbFR5cGVzLnB1c2goRW1haWxUeXBlLkFjY2VwdGVkX0NTQykgO1xyXG4gICAgICAgICAgICB0aGlzLmVtYWlsVHlwZXMucHVzaChFbWFpbFR5cGUuQWNjZXB0ZWRfQ2xpZW50cykgO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBtSm9iKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3Bvc2VBbm90aGVyRGF0ZSgpIHtcclxuICAgICAgICB0aGlzLmlzUHJvcG9zZWREYXRlID0gZmFsc2UgO1xyXG4gICAgICAgIHRoaXMub3AuaGlkZSgpO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheUFub3RoZXJEYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb250YWN0U3VwcG9ydCgpIHtcclxuICAgICAgXHJcbiAgICAgICAgdGhpcy5vcC5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5Y29udGFjdFN1cHBvcnQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlQ29udGFjdFN1cHBvcnQoKSB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5Y29udGFjdFN1cHBvcnQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3dEYXRlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd0xpbmtzKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLm9wLmhpZGUoKTtcclxuICAgICAgICB0aGlzLmRpc3BsYXlTaG93TGlua3MgPSB0cnVlIDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY2xvc2VTaG93TGlua3MoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheVNob3dMaW5rcyA9IGZhbHNlIDtcclxuICAgIH1cclxuXHJcbiAgICBjbG9zZUNvbmZpcm1lZERhdGVJbmZvKCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheUNvbmZpcm1lZERhdGVJbmZvID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgYWNjZXB0RGF0ZShhbHRlcm5hdGl2ZURhdGVzOiBBbHRlcm5hdGl2ZURhdGVbXSlcclxuICAgIHtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLmRpc3BsYXlDb25maXJtRGlhbG9nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmFsdGVybmF0aXZlRGF0ZXNTZWxlY3RlZCA9IGFsdGVybmF0aXZlRGF0ZXM7XHJcbiAgICAgICAgdGhpcy5maW5kRGF0ZXNTZWxlY3RlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZpbmREYXRlc1NlbGVjdGVkKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmFsdGVybmF0aXZlRGF0ZXNTZWxlY3RlZC5mb3JFYWNoKChhbHRlcm5hdGl2ZURhdGU6IEFsdGVybmF0aXZlRGF0ZSkgPT4ge1xyXG4gICAgICAgICAgICBpZihhbHRlcm5hdGl2ZURhdGUuc2VsZWN0ZWQ9PT1cIlllc1wiKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0RGF0ZVRpbWUgPSBhbHRlcm5hdGl2ZURhdGUuc3RhcnREYXRlVGltZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZW5kRGF0ZVRpbWUgPSBhbHRlcm5hdGl2ZURhdGUuZW5kRGF0ZVRpbWU7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjbG9zZUFub3RoZXJEYXRlKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXlBbm90aGVyRGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgIGlmKGV2ZW50PT09ZmFsc2UpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmFscmVhZHlTY2hlZHVsZWRNc2cgPSBmYWxzZSA7XHJcbiAgICAgICAgdGhpcy5vcC5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5Q29uZmlybVZhbGlkYXRlZFRvV2FpdGluZyA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVBtSm9iKCkge1xyXG4gICAgICAgIHRoaXMucG1Kb2JMaXN0ID1bXTtcclxuICAgICAgICB0aGlzLnBtSm9iTGlzdC5wdXNoKHRoaXMubWFpbnRlbmFuY2VTZWxlY3RlZCk7XHJcbiAgICAgICAgaWYodGhpcy5wbUpvYkxpbmtlZExpc3QubGVuZ3RoID4wKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5wbUpvYkxpbmtlZExpc3QuZm9yRWFjaCgocE1Kb2I6RGV0YWlsZWRQbUpvYikgID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnBtSm9iTGlzdC5wdXNoKHBNSm9iKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNhbGxBcGlUb1VwZGF0ZSgpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBlZGl0UG0oKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuYWxyZWFkeVNjaGVkdWxlZE1zZyA9IHRydWUgO1xyXG4gICAgICAgIHRoaXMub3AuaGlkZSgpO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheUNvbmZpcm1WYWxpZGF0ZWRUb1dhaXRpbmcgPSB0cnVlO1xyXG4gICAgICAgIGlmKHRoaXMubWFpbnRlbmFuY2VTZWxlY3RlZC5wbUpvYi5jdXN0b21lckFjY2VwdGVkID09PVwiWWVzXCIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0RGF0ZVRpbWUgPSB0aGlzLm1haW50ZW5hbmNlU2VsZWN0ZWQucG1Kb2Iuc3RhcnREYXRlVGltZTtcclxuICAgICAgICAgICAgdGhpcy5lbmREYXRlVGltZSA9IHRoaXMubWFpbnRlbmFuY2VTZWxlY3RlZC5wbUpvYi5lbmREYXRlVGltZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5hbHRlcm5hdGl2ZURhdGVzU2VsZWN0ZWQgPSB0aGlzLm1haW50ZW5hbmNlU2VsZWN0ZWQucG1Kb2IuYWx0ZXJuYXRpdmVEYXRlcztcclxuICAgICAgICAgICAgdGhpcy5maW5kRGF0ZXNTZWxlY3RlZCgpO1xyXG4gICAgICAgIH0gXHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VDb25maXJtRGlhbG9nVmFsaWRhdGVkVG9XYWl0aW5nKGNvbmZpcm06IGFueSkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheUNvbmZpcm1WYWxpZGF0ZWRUb1dhaXRpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAoY29uZmlybSkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlZFRvV2FpdGluZ1VwZGF0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB2YWxpZGF0ZWRUb1dhaXRpbmdVcGRhdGUoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMubWFpbnRlbmFuY2VTZWxlY3RlZC5wbUpvYi5jdXN0b21PYmplY3Q9IHt9O1xyXG4gICAgICAgIHRoaXMubWFpbnRlbmFuY2VTZWxlY3RlZC5wbUpvYi5jdXN0b21PYmplY3QuY3VzdG9tZXJXYWl0aW5nID0gJ1llcyc7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5wbUpvYkxpbmtlZExpc3QuZm9yRWFjaCgoaXRlbSA6RGV0YWlsZWRQbUpvYiAgKSAgPT4ge1xyXG4gICAgICAgICAgICBpdGVtLnBtSm9iLmN1c3RvbU9iamVjdC5jdXN0b21lcldhaXRpbmcgPSAnWWVzJztcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5lbWFpbFR5cGVzLnB1c2godGhpcy5hbHJlYWR5U2NoZWR1bGVkTXNnID8gRW1haWxUeXBlLlJlcG9ydERhdGVfQ1NDIDogRW1haWxUeXBlLlNlbmROZXdEYXRlc19DU0MpICA7XHJcbiAgICAgICAgdGhpcy5lbWFpbFR5cGVzLnB1c2godGhpcy5hbHJlYWR5U2NoZWR1bGVkTXNnID8gRW1haWxUeXBlLlJlcG9ydERhdGVfQ2xpZW50cyA6IEVtYWlsVHlwZS5TZW5kTmV3RGF0ZXNfQ2xpZW50cykgIDtcclxuICAgICAgICB0aGlzLnVwZGF0ZVBtSm9iKCk7XHJcbiAgICB9XHJcblxyXG4gIFxyXG5cclxuICAgIHVwZGF0ZVByb3Bvc2VkRGF0ZSgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5tYWludGVuYW5jZVNlbGVjdGVkLnBtSm9iLmN1c3RvbWVyQWNjZXB0ZWQgPSAnWWVzJztcclxuICAgICAgICB0aGlzLm1haW50ZW5hbmNlU2VsZWN0ZWQucG1Kb2IuZXZlbnRTdGF0dXMgPSBFdmVudFN0YXR1cy5BU1NJR05FREFOQztcclxuICAgICAgICB0aGlzLnBtSm9iTGlua2VkTGlzdC5mb3JFYWNoKChpdGVtIDpEZXRhaWxlZFBtSm9iICApICA9PiB7XHJcbiAgICAgICAgICAgIGl0ZW0ucG1Kb2IuY3VzdG9tZXJBY2NlcHRlZCA9ICdZZXMnO1xyXG4gICAgICAgICAgICBpdGVtLnBtSm9iLmV2ZW50U3RhdHVzID0gRXZlbnRTdGF0dXMuQVNTSUdORURBTkM7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUFsdGVybmF0aXZlRGF0ZSgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5maW5kRGF0ZXNTZWxlY3RlZCgpO1xyXG4gICAgICAgIHRoaXMubWFpbnRlbmFuY2VTZWxlY3RlZC5wbUpvYi5hbHRlcm5hdGl2ZURhdGVzID0gIHRoaXMuYWx0ZXJuYXRpdmVEYXRlc1NlbGVjdGVkIDtcclxuICAgICAgICB0aGlzLnBtSm9iTGlua2VkTGlzdC5mb3JFYWNoKChpdGVtIDpEZXRhaWxlZFBtSm9iICApICA9PiB7XHJcbiAgICAgICAgICAgIGl0ZW0ucG1Kb2IuYWx0ZXJuYXRpdmVEYXRlcyA9ICB0aGlzLmFsdGVybmF0aXZlRGF0ZXNTZWxlY3RlZCA7XHJcbiAgICAgICAgICAgIGl0ZW0ucG1Kb2IuZXZlbnRTdGF0dXMgPSBFdmVudFN0YXR1cy5BU1NJR05FREFOQztcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmRpc3BsYXlBbm90aGVyRGF0ZSA9IGZhbHNlO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBnZXRBbHRlcm5hdGl2ZURhdGVzKHBtSm9iIDogUG1Kb2IgKSAge1xyXG4gICAgICAgIGxldCBwbUpvYlJlcXVlcyA9IHt9IGFzIFBtSm9iUmVxdWVzdCA7XHJcbiAgICAgICAgcG1Kb2JSZXF1ZXMuY291bnRyeW1vZHVsZSA9IFwiRnJhbmNlXCI7XHJcbiAgICAgICAgcG1Kb2JSZXF1ZXMucG1Kb2IgPSBwbUpvYjtcclxuICAgICAgICB0aGlzLmVtaXRGb3JBbHRlcm5hdGl2ZURhdGVzLmVtaXQocG1Kb2IpO1xyXG5cclxuICAgIFxyXG4gICAgfVxyXG5cclxuICAgIGdldExpbmtlZFBtSm9iKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLnBtSm9iTGlua2VkTGlzdCA9W107XHJcbiAgICAgICAgdGhpcy5kZXRhaWxlZFBtSm9iTGlua2VkTGlzdCA9W107XHJcbiAgICAgICAgaWYodGhpcy5tYWludGVuYW5jZVNlbGVjdGVkLnBtSm9iLmdyb3VwTGlzdClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubWFpbnRlbmFuY2VTZWxlY3RlZC5wbUpvYi5ncm91cExpc3QuZm9yRWFjaCgobGlua2VkIDogUE1Hcm91cGVkSm9iICApICA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5tYWludGVuYW5jZUxpc3QuZm9yRWFjaCgoaXRlbSA6RGV0YWlsZWRQbUpvYiAgKSAgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGxpbmtlZC53b3Jrb3JkZXJJZCA9PWl0ZW0ucG1Kb2Iud29ya29yZGVySWQpXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBtSm9iTGlua2VkTGlzdC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRldGFpbGVkUG1Kb2JMaW5rZWRMaXN0LnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2FsbEFwaVRvVXBkYXRlKClcclxuICAgIHtcclxuICAgICAgICBsZXQgUG1Kb2JMaXN0Rm9yVXBkYXRlID0ge30gYXMgYW55O1xyXG4gICAgICAgIFBtSm9iTGlzdEZvclVwZGF0ZS5wbUpvYkxpc3QgPSB0aGlzLnBtSm9iTGlzdDtcclxuICAgICAgICBQbUpvYkxpc3RGb3JVcGRhdGUuZW1haWxUeXBlcyA9IHRoaXMuZW1haWxUeXBlcztcclxuICAgICAgICB0aGlzLmVtaXRGb3JVcGRhdGUuZW1pdChQbUpvYkxpc3RGb3JVcGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYW5zZm9ybVN0YXR1cyhzdGF0dXM6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgc3dpdGNoIChzdGF0dXMpIHtcclxuICBcclxuICAgICAgICAgICAgY2FzZSBQbUpvYlN0YXR1cy5ORVcgOiByZXR1cm4gdGhpcy5zdGF0dXMubmV3O1xyXG4gICAgICAgICAgICBjYXNlIFBtSm9iU3RhdHVzLkFDQ0VQVEVEIDogcmV0dXJuIHRoaXMuc3RhdHVzLmFjY2VwdGVkO1xyXG4gICAgICAgICAgICBjYXNlIFBtSm9iU3RhdHVzLkNMT1NFRCA6IHJldHVybiB0aGlzLnN0YXR1cy5jbG9zZWQ7XHJcbiAgICAgICAgICAgIGNhc2UgUG1Kb2JTdGF0dXMuTGF0ZSA6IHJldHVybiB0aGlzLnN0YXR1cy5sYXRlO1xyXG4gICAgICAgICAgICBjYXNlIFBtSm9iU3RhdHVzLk9QRU4gOiByZXR1cm4gdGhpcy5zdGF0dXMub3BlbjtcclxuICAgICAgICAgICAgY2FzZSBQbUpvYlN0YXR1cy5XQUlUSU5HIDogcmV0dXJuIHRoaXMuc3RhdHVzLndhaXRpbmc7XHJcbiAgICAgICAgICAgIGNhc2UgUG1Kb2JTdGF0dXMuRE9ORSA6IHJldHVybiB0aGlzLnN0YXR1cy5kb25lO1xyXG4gICAgICAgICAgICBjYXNlIFBtSm9iU3RhdHVzLlZBTElEQVRFRCA6IHJldHVybiB0aGlzLnN0YXR1cy52YWxpZGF0ZWQ7XHJcbiAgICAgICAgICAgIGRlZmF1bHQgOiByZXR1cm4gXCJFcnJldXJcIjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U3RhdHVzVG9vbHRpcChzdGF0dXM6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgc3dpdGNoIChzdGF0dXMpIHtcclxuICAgICAgICAgICAgY2FzZSBQbUpvYlN0YXR1cy5BQ0NFUFRFRCA6IHJldHVybiB0aGlzLnN0YXR1cy5hY2NlcHRlZFRvb2x0aXA7XHJcbiAgICAgICAgICAgIGNhc2UgUG1Kb2JTdGF0dXMuTkVXIDogcmV0dXJuIHRoaXMuc3RhdHVzLm5ld1Rvb2x0aXA7XHJcbiAgICAgICAgICAgIGNhc2UgUG1Kb2JTdGF0dXMuQ0xPU0VEIDogcmV0dXJuIHRoaXMuc3RhdHVzLmNsb3NlZFRvb2x0aXA7XHJcbiAgICAgICAgICAgIGNhc2UgUG1Kb2JTdGF0dXMuTGF0ZSA6IHJldHVybiB0aGlzLnN0YXR1cy5sYXRlVG9vbHRpcDtcclxuXHJcbiAgICAgICAgICAgIGNhc2UgUG1Kb2JTdGF0dXMuT1BFTiA6IHJldHVybiB0aGlzLnN0YXR1cy5vcGVuVG9vbHRpcDtcclxuICAgICAgICAgICAgY2FzZSBQbUpvYlN0YXR1cy5XQUlUSU5HIDogcmV0dXJuIHRoaXMuc3RhdHVzLndhaXRpbmdUb29sdGlwO1xyXG4gICAgICAgICAgICBjYXNlIFBtSm9iU3RhdHVzLkRPTkUgOiByZXR1cm4gdGhpcy5zdGF0dXMuZG9uZVRvb2x0aXA7XHJcbiAgICAgICAgICAgIGNhc2UgUG1Kb2JTdGF0dXMuVkFMSURBVEVEIDogcmV0dXJuIHRoaXMuc3RhdHVzLnZhbGlkYXRlZFRvb2x0aXA7XHJcbiAgICAgICAgICAgIGRlZmF1bHQgOiByZXR1cm4gXCJFcnJldXJcIjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59XHJcbiIsIjxwLXRhYmxlICNkdCBbdmFsdWVdPVwibWFpbnRlbmFuY2VMaXN0XCIgcmVzcG9uc2l2ZUxheW91dD1cInN0YWNrXCIgW3Jvd3NdPVwiMTBcIiBbc2hvd0N1cnJlbnRQYWdlUmVwb3J0XT1cInRydWVcIiBbcm93c1BlclBhZ2VPcHRpb25zXT1cIls1LDEwLDI1LDUwXVwiIFtwYWdpbmF0b3JdPVwidHJ1ZVwiIFtnbG9iYWxGaWx0ZXJGaWVsZHNdPVwiWydzeXN0ZW1JZCcsJ3BtSm9iLmNhc2VJZCcsJ3N5c3RlbU5hbWUnLCdwbUpvYi53b3Jrb3JkZXJJZCcsJ3BtSm9iLnN0YXJ0RGF0ZVRpbWUnLCdwbUpvYi5lbmREYXRlVGltZScsJ3BtSm9iLmNhc2VfdHlwZScsJ3BtSm9iLmNhc2VfY2F0ZWdvcnknLCdzdGF0dXMnXVwiXHJcbiAgICBbcm93SG92ZXJdPVwidHJ1ZVwiIGRhdGFLZXk9XCJpZFwiIFtjdXJyZW50UGFnZVJlcG9ydFRlbXBsYXRlXT1cImdsb2JhbHRyYW5zbGF0ZS5jb3VudFBhZ2VzXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY2FwdGlvblwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1pbnB1dC1pY29uLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktc2VhcmNoXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHBJbnB1dFRleHQgdHlwZT1cInRleHRcIiAoaW5wdXQpPVwiYXBwbHlGaWx0ZXJHbG9iYWwoJGV2ZW50LCAnY29udGFpbnMnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImdsb2JhbHRyYW5zbGF0ZS5zZWFyY2hcIiAvPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgICAgIDx0cj5cclxuICAgICAgICAgICAgPCEtLSA8dGggcFNvcnRhYmxlQ29sdW1uPVwiY2FzZUlkXCI+Q2FzZSBJZCA8cC1zb3J0SWNvbiBmaWVsZD1cImNhc2VJZFwiPjwvcC1zb3J0SWNvbj4gLS0+XHJcbiAgICAgICAgICAgIDx0aCBwU29ydGFibGVDb2x1bW49XCJzeXN0ZW1OYW1lXCI+e3t0cmFuc2xhdGUubWFpbnRlbmFuY2VMaXN0LnN5c3RlbX19XHJcbiAgICAgICAgICAgICAgICA8cC1zb3J0SWNvbiBmaWVsZD1cInN5c3RlbUlkXCI+PC9wLXNvcnRJY29uPlxyXG4gICAgICAgICAgICAgICAgPHRoIHBTb3J0YWJsZUNvbHVtbj1cInN5c3RlbUlkXCI+U3lzdGVtIElkXHJcbiAgICAgICAgICAgICAgICAgICAgPHAtc29ydEljb24gZmllbGQ9XCJzeXN0ZW1OYW1lXCI+PC9wLXNvcnRJY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aCBwU29ydGFibGVDb2x1bW49XCJ3b3Jrb3JkZXJJZFwiPnt7dHJhbnNsYXRlLm1haW50ZW5hbmNlTGlzdC53b3JrT3JkZXJ9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1zb3J0SWNvbiBmaWVsZD1cIndvcmtvcmRlcklkXCI+PC9wLXNvcnRJY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggcFNvcnRhYmxlQ29sdW1uPVwic3RhcnREYXRlVGltZVwiPnt7dHJhbnNsYXRlLm1haW50ZW5hbmNlTGlzdC5zdGFydERhdGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtc29ydEljb24gZmllbGQ9XCJzdGFydERhdGVUaW1lXCI+PC9wLXNvcnRJY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHBTb3J0YWJsZUNvbHVtbj1cImVuZERhdGVUaW1lXCI+e3t0cmFuc2xhdGUubWFpbnRlbmFuY2VMaXN0LmVuZERhdGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXNvcnRJY29uIGZpZWxkPVwiZW5kRGF0ZVRpbWVcIj48L3Atc29ydEljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHBTb3J0YWJsZUNvbHVtbj1cImNhc2VfdHlwZVwiPnt7dHJhbnNsYXRlLm1haW50ZW5hbmNlTGlzdC50eXBlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtc29ydEljb24gZmllbGQ9XCJjYXNlX3R5cGVcIj48L3Atc29ydEljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBwU29ydGFibGVDb2x1bW49XCJjYXNlX2NhdGVnb3J5XCI+e3t0cmFuc2xhdGUubWFpbnRlbmFuY2VMaXN0LmNhdGVnb3J5fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXNvcnRJY29uIGZpZWxkPVwiY2FzZV9jYXRlZ29yeVwiPjwvcC1zb3J0SWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBwU29ydGFibGVDb2x1bW49XCJzdGF0dXNcIj57e3RyYW5zbGF0ZS5tYWludGVuYW5jZUxpc3Quc3RhdHVzfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1zb3J0SWNvbiBmaWVsZD1cInN0YXR1c1wiPjwvcC1zb3J0SWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggcFNvcnRhYmxlQ29sdW1uPVwic3RhdHVzXCIgPnt7dHJhbnNsYXRlLm1haW50ZW5hbmNlTGlzdC5OYnJMaW5rc319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXNvcnRJY29uIGZpZWxkPVwic3RhdHVzXCI+PC9wLXNvcnRJY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+IEFjdGlvbjwvdGg+XHJcbiAgICAgICAgPC90cj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1wcm9kdWN0IGxldC1jb2x1bW5zPVwiY29sdW1uc1wiPlxyXG4gICAgICAgIDx0cj4gICBcclxuICAgICAgICAgICAgPHRkPnt7cHJvZHVjdC5zeXN0ZW1OYW1lIH19PC90ZD5cclxuICAgICAgICAgICAgPHRkPnt7cHJvZHVjdC5zeXN0ZW1JZCB9fTwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZD57e3Byb2R1Y3QucG1Kb2Iud29ya29yZGVySWQgfX08L3RkPlxyXG4gICAgICAgICAgICA8dGQ+e3twcm9kdWN0LnBtSm9iLnN0YXJ0RGF0ZVRpbWUgfCBzdWJzdHJpbmcgOjA6MTAgfX08L3RkPlxyXG4gICAgICAgICAgICA8dGQ+e3twcm9kdWN0LnBtSm9iLmVuZERhdGVUaW1lIHwgc3Vic3RyaW5nIDowOjEwfX08L3RkPlxyXG4gICAgICAgICAgICA8dGQ+e3twcm9kdWN0LnBtSm9iLmNhc2VUeXBlIH19PC90ZD5cclxuICAgICAgICAgICAgPHRkPnt7cHJvZHVjdC5wbUpvYi5jYXNlQ2F0ZWdvcnkgfX08L3RkPlxyXG4gICAgICAgICAgICA8dGQ+PHNwYW4gW2NsYXNzXT1cIidwcm9kdWN0LXN0YXR1cyBzdGF0dXMtJyArIHByb2R1Y3Quc3RhdHVzXCIgW3BUb29sdGlwXT1cImdldFN0YXR1c1Rvb2x0aXAocHJvZHVjdC5zdGF0dXMpXCI+e3t0cmFuc2Zvcm1TdGF0dXMocHJvZHVjdC5zdGF0dXMpICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwicHJvZHVjdC5wbUpvYi5ncm91cExpc3QubGVuZ3RoPjAgXCI+IDxzcGFuIGNsYXNzPVwiY2lyY2xlXCI+e3twcm9kdWN0LnBtSm9iLmdyb3VwTGlzdC5sZW5ndGggfX08L3NwYW4+IDxpIGNsYXNzPVwicGkgcGktbGlua1wiIHN0eWxlPVwiZm9udC1zaXplOiAxcmVtXCI+PC9pPiA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJwcm9kdWN0LnBtSm9iLmdyb3VwTGlzdC5sZW5ndGg9PT0wIFwiPiA8c3BhbiBjbGFzcz1cImNpcmNsZWxpbmtlZFwiPnt7cHJvZHVjdC5wbUpvYi5ncm91cExpc3QubGVuZ3RoIH19PC9zcGFuPiA8aSBjbGFzcz1cInBpIHBpLWxpbmtcIiBzdHlsZT1cImZvbnQtc2l6ZTogMXJlbVwiPjwvaT4gPC90ZD5cclxuICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgdHlwZT1cImJ1dHRvblwiIGxhYmVsPVwiXCIgaWNvbj1cInBpIHBpLWNhbGVuZGFyXCIgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkXCIgI2FjdHVhbFRhcmdldCAoY2xpY2spPVwic2VsZWN0RWxlbWVudChwcm9kdWN0KVwiIChjbGljayk9XCJvcC50b2dnbGUoJGV2ZW50KVwiIFtkaXNhYmxlZF09XCIoKHByb2R1Y3Quc3RhdHVzID09PSdsYXRlJyAgfHwgcHJvZHVjdC5zdGF0dXMgPT09J2FjY2VwdGVkJykgJiYgIWlzQWxyZWFkeVNjaGVkdWxlZCkgfHwgcHJvZHVjdC5zdGF0dXMgPT09J3dhaXRpbmcnXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwic3VtbWFyeVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLWQtZmxleCBwLWFpLWNlbnRlciBwLWpjLWJldHdlZW5cIj5cclxuICAgICAgICAgICAge3tnbG9iYWx0cmFuc2xhdGUuY291bnR9fSB7e21haW50ZW5hbmNlTGlzdCA/IG1haW50ZW5hbmNlTGlzdC5sZW5ndGggOiAwIH19IHt7Z2xvYmFsdHJhbnNsYXRlLmVsZW1lbnRzfX0uXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L3AtdGFibGU+XHJcblxyXG48cC10b2FzdCBwb3NpdGlvbj1cInRvcC1jZW50ZXJcIj48L3AtdG9hc3Q+XHJcbjxwLW92ZXJsYXlQYW5lbCAjb3AgW2Rpc21pc3NhYmxlXT1cInRydWVcIiBbc2hvd0Nsb3NlSWNvbl09XCJmYWxzZVwiIFtzaG93VHJhbnNpdGlvbk9wdGlvbnNdPVwiJzBtcydcIiBbaGlkZVRyYW5zaXRpb25PcHRpb25zXT1cIicwbXMnXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8YnV0dG9uIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgKm5nSWY9XCIhaXNBbHJlYWR5U2NoZWR1bGVkXCIgaWNvbj1cInBpIHBpLXRodW1icy11cFwiIChjbGljayk9XCJjb25maXJtRGlhbG9nKClcIiBbbGFiZWxdPVwidHJhbnNsYXRlLm1haW50ZW5hbmNlTGlzdC5jb25maXJtRGF0ZVwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yYWlzZWRcIiBwQnV0dG9uIHBSaXBwbGUgdHlwZT1cImJ1dHRvblwiPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxociAqbmdJZj1cIiFpc0FscmVhZHlTY2hlZHVsZWRcIj5cclxuICAgICAgICA8YnV0dG9uIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgKm5nSWY9XCIhaXNBbHJlYWR5U2NoZWR1bGVkICYmIChhbHRlcm5hdGl2ZURhdGVzTGlzdC5sZW5ndGg+MCkgXCIgaWNvbj1cInBpIHBpLWNhbGVuZGFyLXBsdXNcIiAoY2xpY2spPVwicHJvcG9zZUFub3RoZXJEYXRlKClcIiBbbGFiZWxdPVwidHJhbnNsYXRlLm1haW50ZW5hbmNlTGlzdC5jaG9vc2VBbm90aGVyRGF0ZVwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yYWlzZWRcIiBwQnV0dG9uIHBSaXBwbGUgdHlwZT1cImJ1dHRvblwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDxociAqbmdJZj1cIiFpc0FscmVhZHlTY2hlZHVsZWQgJiYgKGFsdGVybmF0aXZlRGF0ZXNMaXN0Lmxlbmd0aD4wKSBcIj5cclxuICAgICAgICA8YnV0dG9uIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgaWNvbj1cInBpIHBpLXBob25lXCIgKGNsaWNrKT1cImNvbnRhY3RTdXBwb3J0KClcIiBbbGFiZWxdPVwidHJhbnNsYXRlLm1haW50ZW5hbmNlTGlzdC5jb250YWN0U3VwcG9yXCIgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJhaXNlZFwiIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCI+PC9idXR0b24+XHJcbiAgICAgICAgPGhyICpuZ0lmPVwiIGlzTGlua3NcIj5cclxuICAgICAgICA8YnV0dG9uIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgaWNvbj1cInBpIHBpLWxpbmtcIiAqbmdJZj1cIiBpc0xpbmtzXCIgKGNsaWNrKT1cInNob3dMaW5rcygpXCIgW2xhYmVsXT1cInRyYW5zbGF0ZS5tYWludGVuYW5jZUxpc3Quc2hvd0xpbmtzXCIgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJhaXNlZFwiIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCI+PC9idXR0b24+XHJcbiAgICAgICAgPGhyICpuZ0lmPVwiaXNBbHJlYWR5U2NoZWR1bGVkICYmIHBtU2VsZWN0ZWRTdGF0dXMgPT09J3ZhbGlkYXRlZCdcIj5cclxuICAgICAgICA8YnV0dG9uIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgKm5nSWY9XCJpc0FscmVhZHlTY2hlZHVsZWQgJiYgcG1TZWxlY3RlZFN0YXR1cyA9PT0ndmFsaWRhdGVkJ1wiIGljb249XCJwaSBwaS1wZW5jaWxcIiAoY2xpY2spPVwiZWRpdFBtKClcIiBbbGFiZWxdPVwidHJhbnNsYXRlLm1haW50ZW5hbmNlTGlzdC5jYW5jZWxcIiBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcmFpc2VkXCIgcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJidXR0b25cIj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvcC1vdmVybGF5UGFuZWw+XHJcblxyXG48ZGl2ICpuZ0lmPVwiZGlzcGxheWNvbnRhY3RTdXBwb3J0XCI+XHJcbiAgICA8YXBwLWNvbnRhY3Qtc3VwcG9ydCBbZGV0YWlsZWRQbUpvYl0gPVwibWFpbnRlbmFuY2VTZWxlY3RlZFwiIFtnbG9iYWx0cmFuc2xhdGVdPVwiZ2xvYmFsdHJhbnNsYXRlXCIgW3RyYW5zbGF0ZV09XCJ0cmFuc2xhdGUuY29udGFjdFN1cHBvcnRcIiBbZGlzcGxheWNvbnRhY3RTdXBwb3J0XT1cImRpc3BsYXljb250YWN0U3VwcG9ydFwiIFtzaG93RGF0ZV09XCJzaG93RGF0ZVwiIChjbG9zZUNvbnRhY3RTdXBwb3J0UG9wdXApPVwiY2xvc2VDb250YWN0U3VwcG9ydCgpXCI+PC9hcHAtY29udGFjdC1zdXBwb3J0PlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cImRpc3BsYXlDb25maXJtRGlhbG9nXCI+XHJcbiAgICA8YXBwLWNvbmZpcm0tZGlhbG9nIFtkZXRhaWxlZFBtSm9iTGlua2VkTGlzdF09XCJkZXRhaWxlZFBtSm9iTGlua2VkTGlzdFwiICAgW2lzUHJvcG9zZWREYXRlXT1cImlzUHJvcG9zZWREYXRlXCIgW2dsb2JhbHRyYW5zbGF0ZV09XCJnbG9iYWx0cmFuc2xhdGVcIiBbdHJhbnNsYXRlXT1cInRyYW5zbGF0ZS5jb25maXJtRGlhbG9nXCJcclxuICAgICAgICBbc3RhcnREYXRlVGltZV09XCJzdGFydERhdGVUaW1lXCIgW2VuZERhdGVUaW1lXT1cImVuZERhdGVUaW1lXCIgW2Rpc3BsYXlDb25maXJtRGlhbG9nXT1cImRpc3BsYXlDb25maXJtRGlhbG9nXCIgKGNsb3NlQ29uZmlybURpYWxvZyk9XCJjbG9zZUNvbmZpcm1EaWFsb2coJGV2ZW50KVwiPlxyXG4gICAgPC9hcHAtY29uZmlybS1kaWFsb2c+XHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiZGlzcGxheUNvbmZpcm1WYWxpZGF0ZWRUb1dhaXRpbmdcIj5cclxuICAgIDxhcHAtY29uZmlybS1kaWFsb2ctdmFsaWRhdGVkLXRvLXdhaXRpbmcgW2RldGFpbGVkUG1Kb2JMaW5rZWRMaXN0XT1cImRldGFpbGVkUG1Kb2JMaW5rZWRMaXN0XCIgICBbYWxyZWFkeVNjaGVkdWxlZE1zZ109XCJhbHJlYWR5U2NoZWR1bGVkTXNnXCIgW2dsb2JhbHRyYW5zbGF0ZV09XCJnbG9iYWx0cmFuc2xhdGVcIiBbdHJhbnNsYXRlXT1cInRyYW5zbGF0ZS5jb25maXJtVmFsaWRhdGVkVG9XYWl0aW5nRGlhbG9nXCJcclxuICAgICAgICBbc3RhcnREYXRlVGltZV09XCJzdGFydERhdGVUaW1lXCIgW2VuZERhdGVUaW1lXT1cImVuZERhdGVUaW1lXCIgW2Rpc3BsYXlDb25maXJtVmFsaWRhdGVkVG9XYWl0aW5nXT1cImRpc3BsYXlDb25maXJtVmFsaWRhdGVkVG9XYWl0aW5nXCIgKGNsb3NlQ29uZmlybURpYWxvZ1ZhbGlkYXRlZFRvV2FpdGluZyk9XCJjbG9zZUNvbmZpcm1EaWFsb2dWYWxpZGF0ZWRUb1dhaXRpbmcoJGV2ZW50KVwiPlxyXG4gICAgPC9hcHAtY29uZmlybS1kaWFsb2ctdmFsaWRhdGVkLXRvLXdhaXRpbmc+XHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiZGlzcGxheUNvbmZpcm1lZERhdGVJbmZvXCI+XHJcbiAgICA8YXBwLWNvbmZpcm1lZC1kYXRlLWluZm9ybWF0aW9uIFtnbG9iYWx0cmFuc2xhdGVdPVwiZ2xvYmFsdHJhbnNsYXRlXCIgW3RyYW5zbGF0ZV09XCJ0cmFuc2xhdGUuY29uZmlybURhdGVJbmZvcm1hdGlvblwiIFtzdGFydERhdGVUaW1lXT1cInN0YXJ0RGF0ZVRpbWVcIiBbZW5kRGF0ZVRpbWVdPVwiZW5kRGF0ZVRpbWVcIiBbZGlzcGxheUNvbmZpcm1lZERhdGVJbmZvXT1cImRpc3BsYXlDb25maXJtZWREYXRlSW5mb1wiIChjbG9zZUNvbmZpcm1lZERhdGVJbmZvKT1cImNsb3NlQ29uZmlybWVkRGF0ZUluZm8oKVwiPjwvYXBwLWNvbmZpcm1lZC1kYXRlLWluZm9ybWF0aW9uPlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cImRpc3BsYXlBbm90aGVyRGF0ZSAmJiBhbHRlcm5hdGl2ZURhdGVzTGlzdFwiPlxyXG4gICAgPGFwcC1jaG9vc2UtYW5vdGhlci1kYXRlIFtnbG9iYWx0cmFuc2xhdGVdPVwiZ2xvYmFsdHJhbnNsYXRlXCIgW3RyYW5zbGF0ZV09XCJ0cmFuc2xhdGUuY2hvb3NlQW5vdGhlckRhdGVcIiBbYWx0ZXJuYXRpdmVEYXRlc0xpc3RdPVwiYWx0ZXJuYXRpdmVEYXRlc0xpc3RcIiBbZGlzcGxheUFub3RoZXJEYXRlXT1cImRpc3BsYXlBbm90aGVyRGF0ZVwiIChjbG9zZUFub3RoZXJEYXRlKT1cImNsb3NlQW5vdGhlckRhdGUoJGV2ZW50KVwiIChhY2NlcHREYXRlKT1cImFjY2VwdERhdGUoJGV2ZW50KVwiPlxyXG4gICAgPC9hcHAtY2hvb3NlLWFub3RoZXItZGF0ZT5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCJkaXNwbGF5U2hvd0xpbmtzICYmIHNlbGVjdGVkV29ya29yZGVySWRcIj5cclxuICAgIDxhcHAtc2hvdy1saW5rcyBbc3RhdHVzXT1cInN0YXR1c1wiIFtzZWxlY3RlZFdvcmtvcmRlcklkXT1cInNlbGVjdGVkV29ya29yZGVySWRcIiBbdHJhbnNsYXRlXT1cInRyYW5zbGF0ZVwiIFtnbG9iYWx0cmFuc2xhdGVdPVwiZ2xvYmFsdHJhbnNsYXRlXCIgW2Rpc3BsYXlTaG93TGlua3NdPVwiZGlzcGxheVNob3dMaW5rc1wiIChjbG9zZVNob3dMaW5rcyk9XCJjbG9zZVNob3dMaW5rcygpXCIgW2RldGFpbGVkUG1Kb2JMaW5rZWRMaXN0XT1cImRldGFpbGVkUG1Kb2JMaW5rZWRMaXN0XCI+PC9hcHAtc2hvdy1saW5rcz5cclxuPC9kaXY+XHJcblxyXG5cclxuIl19
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { NgModule } from '@angular/core';
|
2
|
+
import { RouterModule } from '@angular/router';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "@angular/router";
|
5
|
+
const routes = [];
|
6
|
+
export class SharedRoutingModule {
|
7
|
+
}
|
8
|
+
SharedRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SharedRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
9
|
+
SharedRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: SharedRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
|
10
|
+
SharedRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SharedRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SharedRoutingModule, decorators: [{
|
12
|
+
type: NgModule,
|
13
|
+
args: [{
|
14
|
+
imports: [RouterModule.forChild(routes)],
|
15
|
+
exports: [RouterModule]
|
16
|
+
}]
|
17
|
+
}] });
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXdmLXRlc3QtbGliL3NyYy9saWIvc2hhcmVkL3NoYXJlZC1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRXZELE1BQU0sTUFBTSxHQUFXLEVBQUUsQ0FBQztBQU0xQixNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUIsd0NBRnBCLFlBQVk7aUhBRVgsbUJBQW1CLFlBSHBCLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7MkZBRVgsbUJBQW1CO2tCQUovQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtdO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxyXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaGFyZWRSb3V0aW5nTW9kdWxlIHsgfVxyXG4iXX0=
|
@@ -0,0 +1,141 @@
|
|
1
|
+
import { NgModule } from '@angular/core';
|
2
|
+
import { CommonModule } from '@angular/common';
|
3
|
+
import { SystemListComponent } from './system-list/system-list.component';
|
4
|
+
import { TableModule } from 'primeng/table';
|
5
|
+
import { InputTextModule } from 'primeng/inputtext';
|
6
|
+
import { PipesModule } from '../pipes/pipes/pipes.module';
|
7
|
+
import { ContactComponent } from './contact/contact.component';
|
8
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
9
|
+
import { ToastModule } from 'primeng/toast';
|
10
|
+
import { InputTextareaModule } from 'primeng/inputtextarea';
|
11
|
+
import { MultiSelectModule } from 'primeng/multiselect';
|
12
|
+
import { ChooseAnotherDateComponent } from './choose-another-date/choose-another-date.component';
|
13
|
+
import { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';
|
14
|
+
import { ConfirmDialogValidatedToWaitingComponent } from './confirm-dialog-validated-to-waiting/confirm-dialog-validated-to-waiting.component';
|
15
|
+
import { ConfirmedDateInformationComponent } from './confirmed-date-information/confirmed-date-information.component';
|
16
|
+
import { ContactSupportComponent } from './contact-support/contact-support.component';
|
17
|
+
import { MaintenanceListComponent } from './maintenance-list/maintenance-list.component';
|
18
|
+
import { ShowLinksComponent } from './show-links/show-links.component';
|
19
|
+
import { CalendarModule } from 'primeng/calendar';
|
20
|
+
import { SliderModule } from 'primeng/slider';
|
21
|
+
import { ContextMenuModule } from 'primeng/contextmenu';
|
22
|
+
import { DialogModule } from 'primeng/dialog';
|
23
|
+
import { ButtonModule } from 'primeng/button';
|
24
|
+
import { DropdownModule } from 'primeng/dropdown';
|
25
|
+
import { ToolbarModule } from 'primeng/toolbar';
|
26
|
+
import { OverlayPanelModule } from 'primeng/overlaypanel';
|
27
|
+
import { TooltipModule } from 'primeng/tooltip';
|
28
|
+
import { ProgressSpinnerModule } from 'primeng/progressspinner';
|
29
|
+
import { ConfirmDialogModule } from 'primeng/confirmdialog';
|
30
|
+
import { ConfirmPopupModule } from 'primeng/confirmpopup';
|
31
|
+
import { SelectButtonModule } from 'primeng/selectbutton';
|
32
|
+
import { RadioButtonModule } from 'primeng/radiobutton';
|
33
|
+
import { CheckboxModule } from 'primeng/checkbox';
|
34
|
+
import { SharedRoutingModule } from './shared-routing.module';
|
35
|
+
import * as i0 from "@angular/core";
|
36
|
+
export class SharedModule {
|
37
|
+
}
|
38
|
+
SharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
39
|
+
SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: SharedModule, declarations: [SystemListComponent,
|
40
|
+
ContactComponent,
|
41
|
+
ChooseAnotherDateComponent,
|
42
|
+
ConfirmDialogComponent,
|
43
|
+
ConfirmDialogValidatedToWaitingComponent,
|
44
|
+
ConfirmedDateInformationComponent,
|
45
|
+
ContactSupportComponent,
|
46
|
+
MaintenanceListComponent,
|
47
|
+
ShowLinksComponent], imports: [CommonModule,
|
48
|
+
SharedRoutingModule,
|
49
|
+
TableModule,
|
50
|
+
InputTextModule,
|
51
|
+
PipesModule,
|
52
|
+
ToastModule,
|
53
|
+
InputTextareaModule,
|
54
|
+
MultiSelectModule,
|
55
|
+
FormsModule,
|
56
|
+
ReactiveFormsModule,
|
57
|
+
ProgressSpinnerModule,
|
58
|
+
RadioButtonModule,
|
59
|
+
CheckboxModule,
|
60
|
+
SelectButtonModule,
|
61
|
+
TooltipModule,
|
62
|
+
OverlayPanelModule,
|
63
|
+
CalendarModule,
|
64
|
+
SliderModule,
|
65
|
+
DialogModule,
|
66
|
+
ConfirmPopupModule,
|
67
|
+
ConfirmDialogModule,
|
68
|
+
ContextMenuModule,
|
69
|
+
DropdownModule,
|
70
|
+
ButtonModule,
|
71
|
+
ToolbarModule], exports: [SystemListComponent, ContactComponent, MaintenanceListComponent] });
|
72
|
+
SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SharedModule, imports: [CommonModule,
|
73
|
+
SharedRoutingModule,
|
74
|
+
TableModule,
|
75
|
+
InputTextModule,
|
76
|
+
PipesModule,
|
77
|
+
ToastModule,
|
78
|
+
InputTextareaModule,
|
79
|
+
MultiSelectModule,
|
80
|
+
FormsModule,
|
81
|
+
ReactiveFormsModule,
|
82
|
+
ProgressSpinnerModule,
|
83
|
+
RadioButtonModule,
|
84
|
+
CheckboxModule,
|
85
|
+
SelectButtonModule,
|
86
|
+
TooltipModule,
|
87
|
+
OverlayPanelModule,
|
88
|
+
CalendarModule,
|
89
|
+
SliderModule,
|
90
|
+
DialogModule,
|
91
|
+
ConfirmPopupModule,
|
92
|
+
ConfirmDialogModule,
|
93
|
+
ContextMenuModule,
|
94
|
+
DropdownModule,
|
95
|
+
ButtonModule,
|
96
|
+
ToolbarModule] });
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SharedModule, decorators: [{
|
98
|
+
type: NgModule,
|
99
|
+
args: [{
|
100
|
+
declarations: [
|
101
|
+
SystemListComponent,
|
102
|
+
ContactComponent,
|
103
|
+
ChooseAnotherDateComponent,
|
104
|
+
ConfirmDialogComponent,
|
105
|
+
ConfirmDialogValidatedToWaitingComponent,
|
106
|
+
ConfirmedDateInformationComponent,
|
107
|
+
ContactSupportComponent,
|
108
|
+
MaintenanceListComponent,
|
109
|
+
ShowLinksComponent
|
110
|
+
],
|
111
|
+
imports: [
|
112
|
+
CommonModule,
|
113
|
+
SharedRoutingModule,
|
114
|
+
TableModule,
|
115
|
+
InputTextModule,
|
116
|
+
PipesModule,
|
117
|
+
ToastModule,
|
118
|
+
InputTextareaModule,
|
119
|
+
MultiSelectModule,
|
120
|
+
FormsModule,
|
121
|
+
ReactiveFormsModule,
|
122
|
+
ProgressSpinnerModule,
|
123
|
+
RadioButtonModule,
|
124
|
+
CheckboxModule,
|
125
|
+
SelectButtonModule,
|
126
|
+
TooltipModule,
|
127
|
+
OverlayPanelModule,
|
128
|
+
CalendarModule,
|
129
|
+
SliderModule,
|
130
|
+
DialogModule,
|
131
|
+
ConfirmPopupModule,
|
132
|
+
ConfirmDialogModule,
|
133
|
+
ContextMenuModule,
|
134
|
+
DropdownModule,
|
135
|
+
ButtonModule,
|
136
|
+
ToolbarModule,
|
137
|
+
],
|
138
|
+
exports: [SystemListComponent, ContactComponent, MaintenanceListComponent]
|
139
|
+
}]
|
140
|
+
}] });
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F3Zi10ZXN0LWxpYi9zcmMvbGliL3NoYXJlZC9zaGFyZWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxxRkFBcUYsQ0FBQztBQUMvSSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUs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d0JBQ1gsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixhQUFhO3FCQUNkO29CQUNELE9BQU8sRUFBQyxDQUFDLG1CQUFtQixFQUFDLGdCQUFnQixFQUFDLHdCQUF3QixDQUFDO2lCQUN4RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFN5c3RlbUxpc3RDb21wb25lbnQgfSBmcm9tICcuL3N5c3RlbS1saXN0L3N5c3RlbS1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VGFibGVNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5pbXBvcnQge0lucHV0VGV4dE1vZHVsZX0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xyXG5pbXBvcnQgeyBQaXBlc01vZHVsZSB9IGZyb20gJy4uL3BpcGVzL3BpcGVzL3BpcGVzLm1vZHVsZSc7XHJcbmltcG9ydCB7IENvbnRhY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbnRhY3QvY29udGFjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtUb2FzdE1vZHVsZX0gZnJvbSAncHJpbWVuZy90b2FzdCc7XHJcbmltcG9ydCB7SW5wdXRUZXh0YXJlYU1vZHVsZX0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHRhcmVhJztcclxuaW1wb3J0IHtNdWx0aVNlbGVjdE1vZHVsZX0gZnJvbSAncHJpbWVuZy9tdWx0aXNlbGVjdCc7XHJcbmltcG9ydCB7IENob29zZUFub3RoZXJEYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jaG9vc2UtYW5vdGhlci1kYXRlL2Nob29zZS1hbm90aGVyLWRhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uZmlybURpYWxvZ1ZhbGlkYXRlZFRvV2FpdGluZ0NvbXBvbmVudCB9IGZyb20gJy4vY29uZmlybS1kaWFsb2ctdmFsaWRhdGVkLXRvLXdhaXRpbmcvY29uZmlybS1kaWFsb2ctdmFsaWRhdGVkLXRvLXdhaXRpbmcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uZmlybWVkRGF0ZUluZm9ybWF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb25maXJtZWQtZGF0ZS1pbmZvcm1hdGlvbi9jb25maXJtZWQtZGF0ZS1pbmZvcm1hdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb250YWN0U3VwcG9ydENvbXBvbmVudCB9IGZyb20gJy4vY29udGFjdC1zdXBwb3J0L2NvbnRhY3Qtc3VwcG9ydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYWludGVuYW5jZUxpc3RDb21wb25lbnQgfSBmcm9tICcuL21haW50ZW5hbmNlLWxpc3QvbWFpbnRlbmFuY2UtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTaG93TGlua3NDb21wb25lbnQgfSBmcm9tICcuL3Nob3ctbGlua3Mvc2hvdy1saW5rcy5jb21wb25lbnQnO1xyXG5pbXBvcnQge0NhbGVuZGFyTW9kdWxlfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcclxuaW1wb3J0IHtTbGlkZXJNb2R1bGV9IGZyb20gJ3ByaW1lbmcvc2xpZGVyJztcclxuaW1wb3J0IHtDb250ZXh0TWVudU1vZHVsZX0gZnJvbSAncHJpbWVuZy9jb250ZXh0bWVudSc7XHJcbmltcG9ydCB7RGlhbG9nTW9kdWxlfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XHJcbmltcG9ydCB7QnV0dG9uTW9kdWxlfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7RHJvcGRvd25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvZHJvcGRvd24nO1xyXG5pbXBvcnQgeyBUb29sYmFyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sYmFyJztcclxuaW1wb3J0IHtPdmVybGF5UGFuZWxNb2R1bGV9IGZyb20gJ3ByaW1lbmcvb3ZlcmxheXBhbmVsJztcclxuaW1wb3J0IHtUb29sdGlwTW9kdWxlfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xyXG5pbXBvcnQge1Byb2dyZXNzU3Bpbm5lck1vZHVsZX0gZnJvbSAncHJpbWVuZy9wcm9ncmVzc3NwaW5uZXInO1xyXG5pbXBvcnQgeyBDb25maXJtRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jb25maXJtZGlhbG9nJztcclxuaW1wb3J0IHsgQ29uZmlybVBvcHVwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jb25maXJtcG9wdXAnO1xyXG5pbXBvcnQge1NlbGVjdEJ1dHRvbk1vZHVsZX0gZnJvbSAncHJpbWVuZy9zZWxlY3RidXR0b24nO1xyXG5pbXBvcnQge1JhZGlvQnV0dG9uTW9kdWxlfSBmcm9tICdwcmltZW5nL3JhZGlvYnV0dG9uJztcclxuaW1wb3J0IHtDaGVja2JveE1vZHVsZX0gZnJvbSAncHJpbWVuZy9jaGVja2JveCc7XHJcbmltcG9ydCB7IFNoYXJlZFJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL3NoYXJlZC1yb3V0aW5nLm1vZHVsZSc7XHJcblxyXG5cclxuXHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFN5c3RlbUxpc3RDb21wb25lbnQsXHJcbiAgICBDb250YWN0Q29tcG9uZW50LFxyXG4gICAgQ2hvb3NlQW5vdGhlckRhdGVDb21wb25lbnQsXHJcbiAgICBDb25maXJtRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgQ29uZmlybURpYWxvZ1ZhbGlkYXRlZFRvV2FpdGluZ0NvbXBvbmVudCxcclxuICAgIENvbmZpcm1lZERhdGVJbmZvcm1hdGlvbkNvbXBvbmVudCxcclxuICAgIENvbnRhY3RTdXBwb3J0Q29tcG9uZW50LFxyXG4gICAgTWFpbnRlbmFuY2VMaXN0Q29tcG9uZW50LFxyXG4gICAgU2hvd0xpbmtzQ29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBTaGFyZWRSb3V0aW5nTW9kdWxlLFxyXG4gICAgVGFibGVNb2R1bGUsXHJcbiAgICBJbnB1dFRleHRNb2R1bGUsXHJcbiAgICBQaXBlc01vZHVsZSxcclxuICAgIFRvYXN0TW9kdWxlLFxyXG4gICAgSW5wdXRUZXh0YXJlYU1vZHVsZSxcclxuICAgIE11bHRpU2VsZWN0TW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgUHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxyXG4gICAgUmFkaW9CdXR0b25Nb2R1bGUsXHJcbiAgICBDaGVja2JveE1vZHVsZSxcclxuICAgIFNlbGVjdEJ1dHRvbk1vZHVsZSxcclxuICAgIFRvb2x0aXBNb2R1bGUsXHJcbiAgICBPdmVybGF5UGFuZWxNb2R1bGUsXHJcbiAgICBDYWxlbmRhck1vZHVsZSxcclxuICAgIFNsaWRlck1vZHVsZSxcclxuICAgIERpYWxvZ01vZHVsZSxcclxuICAgIENvbmZpcm1Qb3B1cE1vZHVsZSxcclxuICAgIENvbmZpcm1EaWFsb2dNb2R1bGUsXHJcbiAgICBDb250ZXh0TWVudU1vZHVsZSxcclxuICAgIERyb3Bkb3duTW9kdWxlLFxyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgVG9vbGJhck1vZHVsZSxcclxuICBdLFxyXG4gIGV4cG9ydHM6W1N5c3RlbUxpc3RDb21wb25lbnQsQ29udGFjdENvbXBvbmVudCxNYWludGVuYW5jZUxpc3RDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaGFyZWRNb2R1bGUgeyB9XHJcbiJdfQ==
|