@senior-gestao-relacionamento/angular-components 2.0.0-master-961a1e59 → 2.0.0-master-d6f488bf
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/schedule/components/schedule-detail.component.mjs +55 -95
- package/esm2022/lib/components/schedule/index.mjs +1 -4
- package/esm2022/public-api.mjs +2 -3
- package/fesm2022/senior-gestao-relacionamento-angular-components.mjs +53 -160
- package/fesm2022/senior-gestao-relacionamento-angular-components.mjs.map +1 -1
- package/lib/components/schedule/components/schedule-detail.component.d.ts +4 -3
- package/lib/components/schedule/index.d.ts +0 -2
- package/package.json +1 -1
- package/public-api.d.ts +1 -2
- package/esm2022/lib/services/translation/translate.pipe.mjs +0 -23
- package/esm2022/lib/services/translation/translation.service.mjs +0 -49
- package/esm2022/locale/locale.config.mjs +0 -65
- package/lib/services/translation/translate.pipe.d.ts +0 -10
- package/lib/services/translation/translation.service.d.ts +0 -15
- package/locale/locale.config.d.ts +0 -16
|
@@ -8,10 +8,11 @@ import { DividerModule } from 'primeng/divider';
|
|
|
8
8
|
import { TooltipModule } from 'primeng/tooltip';
|
|
9
9
|
import { ConfirmDialogModule } from 'primeng/confirmdialog';
|
|
10
10
|
import { ConfirmationService } from 'primeng/api';
|
|
11
|
-
|
|
11
|
+
// Components AI
|
|
12
|
+
import { TranslatePipe } from '@seniorsistemas/components-ai';
|
|
12
13
|
import { SchedulePriority } from '../models/schedule.enums';
|
|
13
14
|
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "
|
|
15
|
+
import * as i1 from "@seniorsistemas/components-ai";
|
|
15
16
|
import * as i2 from "primeng/api";
|
|
16
17
|
import * as i3 from "@angular/common";
|
|
17
18
|
import * as i4 from "primeng/dialog";
|
|
@@ -20,7 +21,7 @@ import * as i6 from "primeng/tag";
|
|
|
20
21
|
import * as i7 from "primeng/divider";
|
|
21
22
|
import * as i8 from "primeng/confirmdialog";
|
|
22
23
|
export class ScheduleDetailComponent {
|
|
23
|
-
|
|
24
|
+
t;
|
|
24
25
|
confirmationService;
|
|
25
26
|
visible = false;
|
|
26
27
|
schedule = null;
|
|
@@ -32,12 +33,12 @@ export class ScheduleDetailComponent {
|
|
|
32
33
|
visibleChange = new EventEmitter();
|
|
33
34
|
onAction = new EventEmitter();
|
|
34
35
|
onClose = new EventEmitter();
|
|
35
|
-
constructor(
|
|
36
|
-
this.
|
|
36
|
+
constructor(t, confirmationService) {
|
|
37
|
+
this.t = t;
|
|
37
38
|
this.confirmationService = confirmationService;
|
|
38
39
|
}
|
|
39
40
|
get dialogHeader() {
|
|
40
|
-
return this.schedule?.name ?? this.
|
|
41
|
+
return this.schedule?.name ?? this.t.translate('sr.schedule.schedule_details');
|
|
41
42
|
}
|
|
42
43
|
closeDialog() {
|
|
43
44
|
this.visible = false;
|
|
@@ -52,97 +53,64 @@ export class ScheduleDetailComponent {
|
|
|
52
53
|
acceptSchedule() {
|
|
53
54
|
if (!this.schedule)
|
|
54
55
|
return;
|
|
55
|
-
this.
|
|
56
|
-
message: this.translationService.translate('sr.schedule.confirm_accept'),
|
|
57
|
-
header: this.translationService.translate('sr.schedule.confirmation'),
|
|
58
|
-
icon: 'pi pi-question-circle',
|
|
59
|
-
acceptLabel: this.translationService.translate('sr.schedule.yes'),
|
|
60
|
-
rejectLabel: this.translationService.translate('sr.schedule.no'),
|
|
61
|
-
accept: () => {
|
|
62
|
-
if (this.schedule) {
|
|
63
|
-
this.onAction.emit({ type: 'accept', schedule: this.schedule });
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
});
|
|
56
|
+
this.confirmAction('sr.schedule.confirm_accept', 'pi pi-question-circle', 'accept');
|
|
67
57
|
}
|
|
68
58
|
rejectSchedule() {
|
|
69
59
|
if (!this.schedule)
|
|
70
60
|
return;
|
|
71
|
-
this.
|
|
72
|
-
message: this.translationService.translate('sr.schedule.confirm_reject'),
|
|
73
|
-
header: this.translationService.translate('sr.schedule.confirmation'),
|
|
74
|
-
icon: 'pi pi-exclamation-triangle',
|
|
75
|
-
acceptLabel: this.translationService.translate('sr.schedule.yes'),
|
|
76
|
-
rejectLabel: this.translationService.translate('sr.schedule.no'),
|
|
77
|
-
accept: () => {
|
|
78
|
-
if (this.schedule) {
|
|
79
|
-
this.onAction.emit({ type: 'reject', schedule: this.schedule });
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
});
|
|
61
|
+
this.confirmAction('sr.schedule.confirm_reject', 'pi pi-exclamation-triangle', 'reject');
|
|
83
62
|
}
|
|
84
63
|
cancelSchedule() {
|
|
85
64
|
if (!this.schedule)
|
|
86
65
|
return;
|
|
87
|
-
this.
|
|
88
|
-
message: this.translationService.translate('sr.schedule.confirm_cancel'),
|
|
89
|
-
header: this.translationService.translate('sr.schedule.confirmation'),
|
|
90
|
-
icon: 'pi pi-exclamation-triangle',
|
|
91
|
-
acceptLabel: this.translationService.translate('sr.schedule.yes'),
|
|
92
|
-
rejectLabel: this.translationService.translate('sr.schedule.no'),
|
|
93
|
-
accept: () => {
|
|
94
|
-
if (this.schedule) {
|
|
95
|
-
this.onAction.emit({ type: 'cancel', schedule: this.schedule });
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
});
|
|
66
|
+
this.confirmAction('sr.schedule.confirm_cancel', 'pi pi-exclamation-triangle', 'cancel');
|
|
99
67
|
}
|
|
100
68
|
deleteSchedule() {
|
|
101
69
|
if (!this.schedule)
|
|
102
70
|
return;
|
|
71
|
+
this.confirmAction('sr.schedule.confirm_delete', 'pi pi-exclamation-triangle', 'delete');
|
|
72
|
+
}
|
|
73
|
+
confirmAction(messageKey, icon, type) {
|
|
103
74
|
this.confirmationService.confirm({
|
|
104
|
-
message: this.
|
|
105
|
-
header: this.
|
|
106
|
-
icon
|
|
107
|
-
acceptLabel: this.
|
|
108
|
-
rejectLabel: this.
|
|
75
|
+
message: this.t.translate(messageKey),
|
|
76
|
+
header: this.t.translate('sr.schedule.confirmation'),
|
|
77
|
+
icon,
|
|
78
|
+
acceptLabel: this.t.translate('sr.schedule.yes'),
|
|
79
|
+
rejectLabel: this.t.translate('sr.schedule.no'),
|
|
109
80
|
accept: () => {
|
|
110
81
|
if (this.schedule) {
|
|
111
|
-
this.onAction.emit({ type
|
|
82
|
+
this.onAction.emit({ type, schedule: this.schedule });
|
|
112
83
|
}
|
|
113
84
|
}
|
|
114
85
|
});
|
|
115
86
|
}
|
|
116
87
|
formatDate(date) {
|
|
117
88
|
if (!date) {
|
|
118
|
-
return this.
|
|
89
|
+
return this.t.translate('sr.schedule.not_informed');
|
|
119
90
|
}
|
|
120
91
|
try {
|
|
121
92
|
const dateObj = new Date(date);
|
|
122
93
|
if (isNaN(dateObj.getTime())) {
|
|
123
|
-
return this.
|
|
94
|
+
return this.t.translate('sr.schedule.invalid_date');
|
|
124
95
|
}
|
|
125
96
|
return dateObj.toLocaleString('pt-BR', {
|
|
126
|
-
day: '2-digit',
|
|
127
|
-
|
|
128
|
-
year: 'numeric',
|
|
129
|
-
hour: '2-digit',
|
|
130
|
-
minute: '2-digit'
|
|
97
|
+
day: '2-digit', month: '2-digit', year: 'numeric',
|
|
98
|
+
hour: '2-digit', minute: '2-digit'
|
|
131
99
|
});
|
|
132
100
|
}
|
|
133
101
|
catch {
|
|
134
|
-
return this.
|
|
102
|
+
return this.t.translate('sr.schedule.invalid_date');
|
|
135
103
|
}
|
|
136
104
|
}
|
|
137
105
|
getPriorityLabel(priority) {
|
|
138
106
|
if (!priority) {
|
|
139
|
-
return this.
|
|
107
|
+
return this.t.translate('sr.schedule.not_informed');
|
|
140
108
|
}
|
|
141
109
|
const labels = {
|
|
142
|
-
[SchedulePriority.Low]: this.
|
|
143
|
-
[SchedulePriority.Medium]: this.
|
|
144
|
-
[SchedulePriority.High]: this.
|
|
145
|
-
[SchedulePriority.Critical]: this.
|
|
110
|
+
[SchedulePriority.Low]: this.t.translate('sr.schedule.priority_low'),
|
|
111
|
+
[SchedulePriority.Medium]: this.t.translate('sr.schedule.priority_medium'),
|
|
112
|
+
[SchedulePriority.High]: this.t.translate('sr.schedule.priority_high'),
|
|
113
|
+
[SchedulePriority.Critical]: this.t.translate('sr.schedule.priority_critical')
|
|
146
114
|
};
|
|
147
115
|
return labels[priority] ?? priority;
|
|
148
116
|
}
|
|
@@ -160,21 +128,21 @@ export class ScheduleDetailComponent {
|
|
|
160
128
|
}
|
|
161
129
|
getRecurrenceLabel(recurrence) {
|
|
162
130
|
if (!recurrence) {
|
|
163
|
-
return this.
|
|
131
|
+
return this.t.translate('sr.schedule.recurrence_none');
|
|
164
132
|
}
|
|
165
133
|
const labels = {
|
|
166
|
-
'NONE': this.
|
|
167
|
-
'DAILY': this.
|
|
168
|
-
'WEEKLY': this.
|
|
169
|
-
'MONTHLY': this.
|
|
170
|
-
'YEARLY': this.
|
|
171
|
-
'CUSTOM': this.
|
|
134
|
+
'NONE': this.t.translate('sr.schedule.recurrence_none'),
|
|
135
|
+
'DAILY': this.t.translate('sr.schedule.recurrence_daily'),
|
|
136
|
+
'WEEKLY': this.t.translate('sr.schedule.recurrence_weekly'),
|
|
137
|
+
'MONTHLY': this.t.translate('sr.schedule.recurrence_monthly'),
|
|
138
|
+
'YEARLY': this.t.translate('sr.schedule.recurrence_yearly'),
|
|
139
|
+
'CUSTOM': this.t.translate('sr.schedule.recurrence_custom')
|
|
172
140
|
};
|
|
173
141
|
return labels[recurrence] ?? recurrence;
|
|
174
142
|
}
|
|
175
143
|
getOrganizerName() {
|
|
176
144
|
const organizer = this.schedule?.participants?.find((p) => p.organizer);
|
|
177
|
-
return organizer?.collaborator?.name ?? this.
|
|
145
|
+
return organizer?.collaborator?.name ?? this.t.translate('sr.schedule.not_informed');
|
|
178
146
|
}
|
|
179
147
|
getParticipantsCount() {
|
|
180
148
|
return this.schedule?.participants?.filter((p) => !p.organizer).length ?? 0;
|
|
@@ -182,45 +150,37 @@ export class ScheduleDetailComponent {
|
|
|
182
150
|
getParticipantsList() {
|
|
183
151
|
const participants = this.schedule?.participants?.filter((p) => !p.organizer) ?? [];
|
|
184
152
|
if (participants.length === 0) {
|
|
185
|
-
return this.
|
|
153
|
+
return this.t.translate('sr.schedule.no_participants');
|
|
186
154
|
}
|
|
187
|
-
return participants.map((p) => p.collaborator?.name ?? this.
|
|
155
|
+
return participants.map((p) => p.collaborator?.name ?? this.t.translate('sr.schedule.no_name')).join(', ');
|
|
188
156
|
}
|
|
189
157
|
getConfirmationLabel(confirmation) {
|
|
190
158
|
if (!confirmation) {
|
|
191
159
|
return '';
|
|
192
160
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
return this.translationService.translate('sr.schedule.status_pending');
|
|
201
|
-
}
|
|
161
|
+
const labels = {
|
|
162
|
+
'CONFIRMED': this.t.translate('sr.schedule.status_accepted'),
|
|
163
|
+
'DECLINED': this.t.translate('sr.schedule.status_rejected')
|
|
164
|
+
};
|
|
165
|
+
return labels[confirmation] ?? this.t.translate('sr.schedule.status_pending');
|
|
202
166
|
}
|
|
203
167
|
getConfirmationSeverity(confirmation) {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
return 'warn';
|
|
212
|
-
}
|
|
168
|
+
const severities = {
|
|
169
|
+
'CONFIRMED': 'success',
|
|
170
|
+
'DECLINED': 'danger'
|
|
171
|
+
};
|
|
172
|
+
return severities[confirmation ?? ''] ?? 'warn';
|
|
213
173
|
}
|
|
214
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScheduleDetailComponent, deps: [{ token: i1.
|
|
215
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ScheduleDetailComponent, isStandalone: true, selector: "s-schedule-detail", inputs: { visible: "visible", schedule: "schedule", showAcceptButton: "showAcceptButton", showRejectButton: "showRejectButton", showCancelButton: "showCancelButton", showEditButton: "showEditButton", showDeleteButton: "showDeleteButton" }, outputs: { visibleChange: "visibleChange", onAction: "onAction", onClose: "onClose" }, providers: [ConfirmationService], ngImport: i0, template: "<p-dialog\n [(visible)]=\"visible\"\n [modal]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [styleClass]=\"'schedule-detail-dialog'\"\n [header]=\"dialogHeader\"\n (onHide)=\"closeDialog()\">\n \n <ng-template pTemplate=\"header\">\n <div class=\"dialog-header\">\n <h3>{{ dialogHeader }}</h3>\n <p-tag \n *ngIf=\"schedule?.priority\"\n [severity]=\"getPrioritySeverity(schedule?.priority)\"\n [value]=\"getPriorityLabel(schedule?.priority)\">\n </p-tag>\n </div>\n </ng-template>\n\n <div class=\"schedule-detail-content\" *ngIf=\"schedule\">\n \n <!-- Informa\u00E7\u00F5es B\u00E1sicas -->\n <div class=\"detail-section\">\n <h4 class=\"section-title\">{{ 'sr.schedule.basic_info' | scheduleTranslate }}</h4>\n \n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-calendar\"></i>\n {{ 'sr.schedule.type' | scheduleTranslate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.type?.name ?? ('sr.schedule.not_informed' | scheduleTranslate) }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-clock\"></i>\n {{ 'sr.schedule.when_occurs' | scheduleTranslate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.whenOccurs }}</span>\n </div>\n\n <div class=\"detail-row\" *ngIf=\"schedule.duration\">\n <span class=\"detail-label\">\n <i class=\"pi pi-hourglass\"></i>\n {{ 'sr.schedule.duration' | scheduleTranslate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.duration }} {{ 'sr.schedule.minutes' | scheduleTranslate }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-refresh\"></i>\n {{ 'sr.schedule.recurrence' | scheduleTranslate }}:\n </span>\n <span class=\"detail-value\">{{ getRecurrenceLabel(schedule.recurrence) }}</span>\n </div>\n </div>\n\n <p-divider></p-divider>\n\n <!-- Descri\u00E7\u00E3o -->\n <div class=\"detail-section\" *ngIf=\"schedule.description\">\n <h4 class=\"section-title\">{{ 'sr.schedule.description' | scheduleTranslate }}</h4>\n <p class=\"description-text\">{{ schedule.description }}</p>\n </div>\n\n <p-divider *ngIf=\"schedule.description\"></p-divider>\n\n <!-- Participantes -->\n <div class=\"detail-section\">\n <h4 class=\"section-title\">{{ 'sr.schedule.participants' | scheduleTranslate }}</h4>\n \n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-user\"></i>\n {{ 'sr.schedule.organizer' | scheduleTranslate }}:\n </span>\n <span class=\"detail-value\">{{ getOrganizerName() }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-users\"></i>\n {{ 'sr.schedule.participants' | scheduleTranslate }} ({{ getParticipantsCount() }}):\n </span>\n </div>\n \n <div class=\"participants-list\" *ngIf=\"getParticipantsCount() > 0\">\n <div class=\"participant-item\" *ngFor=\"let participant of schedule.participants\">\n <ng-container *ngIf=\"!participant.organizer\">\n <i class=\"pi pi-user\"></i>\n <span>{{ participant.collaborator?.name ?? ('sr.schedule.no_name' | scheduleTranslate) }}</span>\n <p-tag \n *ngIf=\"participant.confirmation\"\n [severity]=\"getConfirmationSeverity(participant.confirmation)\"\n [value]=\"getConfirmationLabel(participant.confirmation)\"\n styleClass=\"participant-status\">\n </p-tag>\n </ng-container>\n </div>\n </div>\n <p class=\"no-participants\" *ngIf=\"getParticipantsCount() === 0\">\n {{ 'sr.schedule.no_participants_besides_organizer' | scheduleTranslate }}\n </p>\n </div>\n\n <p-divider></p-divider>\n\n <!-- Local -->\n <div class=\"detail-section\" *ngIf=\"schedule.location\">\n <h4 class=\"section-title\">{{ 'sr.schedule.location' | scheduleTranslate }}</h4>\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-map-marker\"></i>\n {{ 'sr.schedule.address' | scheduleTranslate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.location }}</span>\n </div>\n </div>\n\n <!-- Observa\u00E7\u00F5es -->\n <div class=\"detail-section\" *ngIf=\"schedule.observations\">\n <h4 class=\"section-title\">{{ 'sr.schedule.notes' | scheduleTranslate }}</h4>\n <p class=\"observations-text\">{{ schedule.observations }}</p>\n </div>\n\n </div>\n\n <ng-template pTemplate=\"footer\">\n <div class=\"dialog-footer\">\n <div class=\"footer-left\">\n <button \n *ngIf=\"showDeleteButton\"\n pButton \n type=\"button\" \n [label]=\"'sr.schedule.delete' | scheduleTranslate\" \n icon=\"pi pi-trash\"\n class=\"p-button-danger p-button-text\"\n (click)=\"deleteSchedule()\">\n </button>\n </div>\n <div class=\"footer-right\">\n <button \n *ngIf=\"showRejectButton\"\n pButton \n type=\"button\" \n [label]=\"'sr.schedule.reject' | scheduleTranslate\" \n icon=\"pi pi-times\"\n class=\"p-button-warning\"\n (click)=\"rejectSchedule()\">\n </button>\n <button \n *ngIf=\"showCancelButton\"\n pButton \n type=\"button\" \n [label]=\"'sr.schedule.cancel' | scheduleTranslate\" \n icon=\"pi pi-ban\"\n class=\"p-button-secondary\"\n (click)=\"cancelSchedule()\">\n </button>\n <button \n *ngIf=\"showAcceptButton\"\n pButton \n type=\"button\" \n [label]=\"'sr.schedule.accept' | scheduleTranslate\" \n icon=\"pi pi-check\"\n class=\"p-button-success\"\n (click)=\"acceptSchedule()\">\n </button>\n <button \n *ngIf=\"showEditButton\"\n pButton \n type=\"button\" \n [label]=\"'sr.schedule.edit_schedule' | scheduleTranslate\" \n icon=\"pi pi-pencil\"\n (click)=\"editSchedule()\">\n </button>\n <button \n pButton \n type=\"button\" \n [label]=\"'sr.schedule.close' | scheduleTranslate\" \n icon=\"pi pi-times\"\n class=\"p-button-text\"\n (click)=\"closeDialog()\">\n </button>\n </div>\n </div>\n </ng-template>\n\n</p-dialog>\n\n<p-confirmDialog></p-confirmDialog>\n", styles: [".dialog-header{display:flex;align-items:center;justify-content:space-between;width:100%;gap:1rem}.dialog-header h3{margin:0;font-size:1.25rem;font-weight:600;flex:1}.schedule-detail-content{padding:.5rem 0}.detail-section{margin-bottom:1rem}.detail-section .section-title{font-size:1rem;font-weight:600;margin:0 0 1rem;color:var(--text-color)}.detail-section .detail-row{display:flex;align-items:flex-start;margin-bottom:.75rem;gap:.5rem}.detail-section .detail-row .detail-label{display:flex;align-items:center;gap:.5rem;font-weight:500;color:var(--text-color-secondary);min-width:140px;flex-shrink:0}.detail-section .detail-row .detail-label i{font-size:.875rem}.detail-section .detail-row .detail-value{color:var(--text-color);flex:1}.detail-section .description-text,.detail-section .observations-text{color:var(--text-color);line-height:1.6;margin:0;white-space:pre-wrap}.detail-section .participants-list{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem}.detail-section .participants-list .participant-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:var(--surface-50);border-radius:4px}.detail-section .participants-list .participant-item i{color:var(--text-color-secondary);font-size:.875rem}.detail-section .participants-list .participant-item span{flex:1;color:var(--text-color)}.detail-section .participants-list .participant-item .participant-status{font-size:.75rem}.detail-section .no-participants{color:var(--text-color-secondary);font-style:italic;margin:.5rem 0 0}.dialog-footer{display:flex;justify-content:flex-end;gap:.5rem}::ng-deep .schedule-detail-dialog{width:600px}::ng-deep .p-dialog .p-dialog-header{padding:1.25rem}::ng-deep .p-dialog .p-dialog-content{padding:0 1.25rem 1.25rem}::ng-deep .p-dialog .p-dialog-footer{padding:1rem 1.25rem;border-top:1px solid var(--surface-border)}.dialog-footer{display:flex;justify-content:space-between;align-items:center;width:100%;gap:.5rem}.dialog-footer .footer-left{display:flex;gap:.5rem}.dialog-footer .footer-right{display:flex;gap:.5rem;margin-left:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i6.Tag, selector: "p-tag", inputs: ["style", "styleClass", "severity", "value", "icon", "rounded"] }, { kind: "ngmodule", type: DividerModule }, { kind: "component", type: i7.Divider, selector: "p-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i8.ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "pipe", type: ScheduleTranslatePipe, name: "scheduleTranslate" }] });
|
|
174
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScheduleDetailComponent, deps: [{ token: i1.TranslationService }, { token: i2.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
175
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ScheduleDetailComponent, isStandalone: true, selector: "s-schedule-detail", inputs: { visible: "visible", schedule: "schedule", showAcceptButton: "showAcceptButton", showRejectButton: "showRejectButton", showCancelButton: "showCancelButton", showEditButton: "showEditButton", showDeleteButton: "showDeleteButton" }, outputs: { visibleChange: "visibleChange", onAction: "onAction", onClose: "onClose" }, providers: [ConfirmationService], ngImport: i0, template: "<p-dialog\n [(visible)]=\"visible\"\n [modal]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [styleClass]=\"'schedule-detail-dialog'\"\n [header]=\"dialogHeader\"\n (onHide)=\"closeDialog()\">\n \n <ng-template pTemplate=\"header\">\n <div class=\"dialog-header\">\n <h3>{{ dialogHeader }}</h3>\n <p-tag \n *ngIf=\"schedule?.priority\"\n [severity]=\"getPrioritySeverity(schedule?.priority)\"\n [value]=\"getPriorityLabel(schedule?.priority)\">\n </p-tag>\n </div>\n </ng-template>\n\n <div class=\"schedule-detail-content\" *ngIf=\"schedule\">\n \n <!-- Informa\u00E7\u00F5es B\u00E1sicas -->\n <div class=\"detail-section\">\n <h4 class=\"section-title\">{{ 'sr.schedule.basic_info' | translate }}</h4>\n \n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-calendar\"></i>\n {{ 'sr.schedule.type' | translate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.type?.name ?? ('sr.schedule.not_informed' | translate) }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-clock\"></i>\n {{ 'sr.schedule.when_occurs' | translate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.whenOccurs }}</span>\n </div>\n\n <div class=\"detail-row\" *ngIf=\"schedule.duration\">\n <span class=\"detail-label\">\n <i class=\"pi pi-hourglass\"></i>\n {{ 'sr.schedule.duration' | translate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.duration }} {{ 'sr.schedule.minutes' | translate }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-refresh\"></i>\n {{ 'sr.schedule.recurrence' | translate }}:\n </span>\n <span class=\"detail-value\">{{ getRecurrenceLabel(schedule.recurrence) }}</span>\n </div>\n </div>\n\n <p-divider></p-divider>\n\n <!-- Descri\u00E7\u00E3o -->\n <div class=\"detail-section\" *ngIf=\"schedule.description\">\n <h4 class=\"section-title\">{{ 'sr.schedule.description' | translate }}</h4>\n <p class=\"description-text\">{{ schedule.description }}</p>\n </div>\n\n <p-divider *ngIf=\"schedule.description\"></p-divider>\n\n <!-- Participantes -->\n <div class=\"detail-section\">\n <h4 class=\"section-title\">{{ 'sr.schedule.participants' | translate }}</h4>\n \n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-user\"></i>\n {{ 'sr.schedule.organizer' | translate }}:\n </span>\n <span class=\"detail-value\">{{ getOrganizerName() }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-users\"></i>\n {{ 'sr.schedule.participants' | translate }} ({{ getParticipantsCount() }}):\n </span>\n </div>\n \n <div class=\"participants-list\" *ngIf=\"getParticipantsCount() > 0\">\n <div class=\"participant-item\" *ngFor=\"let participant of schedule.participants\">\n <ng-container *ngIf=\"!participant.organizer\">\n <i class=\"pi pi-user\"></i>\n <span>{{ participant.collaborator?.name ?? ('sr.schedule.no_name' | translate) }}</span>\n <p-tag \n *ngIf=\"participant.confirmation\"\n [severity]=\"getConfirmationSeverity(participant.confirmation)\"\n [value]=\"getConfirmationLabel(participant.confirmation)\"\n styleClass=\"participant-status\">\n </p-tag>\n </ng-container>\n </div>\n </div>\n <p class=\"no-participants\" *ngIf=\"getParticipantsCount() === 0\">\n {{ 'sr.schedule.no_participants_besides_organizer' | translate }}\n </p>\n </div>\n\n <p-divider></p-divider>\n\n <!-- Local -->\n <div class=\"detail-section\" *ngIf=\"schedule.location\">\n <h4 class=\"section-title\">{{ 'sr.schedule.location' | translate }}</h4>\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-map-marker\"></i>\n {{ 'sr.schedule.address' | translate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.location }}</span>\n </div>\n </div>\n\n <!-- Observa\u00E7\u00F5es -->\n <div class=\"detail-section\" *ngIf=\"schedule.observations\">\n <h4 class=\"section-title\">{{ 'sr.schedule.notes' | translate }}</h4>\n <p class=\"observations-text\">{{ schedule.observations }}</p>\n </div>\n\n </div>\n\n <ng-template pTemplate=\"footer\">\n <div class=\"dialog-footer\">\n <div class=\"footer-left\">\n <button \n *ngIf=\"showDeleteButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.delete' | translate\" \n icon=\"pi pi-trash\"\n class=\"p-button-danger p-button-text\"\n (click)=\"deleteSchedule()\">\n </button>\n </div>\n <div class=\"footer-right\">\n <button \n *ngIf=\"showRejectButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.reject' | translate\" \n icon=\"pi pi-times\"\n class=\"p-button-warning\"\n (click)=\"rejectSchedule()\">\n </button>\n <button \n *ngIf=\"showCancelButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.cancel' | translate\" \n icon=\"pi pi-ban\"\n class=\"p-button-secondary\"\n (click)=\"cancelSchedule()\">\n </button>\n <button \n *ngIf=\"showAcceptButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.accept' | translate\" \n icon=\"pi pi-check\"\n class=\"p-button-success\"\n (click)=\"acceptSchedule()\">\n </button>\n <button \n *ngIf=\"showEditButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.edit_schedule' | translate\" \n icon=\"pi pi-pencil\"\n (click)=\"editSchedule()\">\n </button>\n <button \n pButton type=\"button\" \n [label]=\"'sr.schedule.close' | translate\" \n icon=\"pi pi-times\"\n class=\"p-button-text\"\n (click)=\"closeDialog()\">\n </button>\n </div>\n </div>\n </ng-template>\n\n</p-dialog>\n\n<p-confirmDialog></p-confirmDialog>\n", styles: [".dialog-header{display:flex;align-items:center;justify-content:space-between;width:100%;gap:1rem}.dialog-header h3{margin:0;font-size:1.25rem;font-weight:600;flex:1}.schedule-detail-content{padding:.5rem 0}.detail-section{margin-bottom:1rem}.detail-section .section-title{font-size:1rem;font-weight:600;margin:0 0 1rem;color:var(--text-color)}.detail-section .detail-row{display:flex;align-items:flex-start;margin-bottom:.75rem;gap:.5rem}.detail-section .detail-row .detail-label{display:flex;align-items:center;gap:.5rem;font-weight:500;color:var(--text-color-secondary);min-width:140px;flex-shrink:0}.detail-section .detail-row .detail-label i{font-size:.875rem}.detail-section .detail-row .detail-value{color:var(--text-color);flex:1}.detail-section .description-text,.detail-section .observations-text{color:var(--text-color);line-height:1.6;margin:0;white-space:pre-wrap}.detail-section .participants-list{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem}.detail-section .participants-list .participant-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:var(--surface-50);border-radius:4px}.detail-section .participants-list .participant-item i{color:var(--text-color-secondary);font-size:.875rem}.detail-section .participants-list .participant-item span{flex:1;color:var(--text-color)}.detail-section .participants-list .participant-item .participant-status{font-size:.75rem}.detail-section .no-participants{color:var(--text-color-secondary);font-style:italic;margin:.5rem 0 0}.dialog-footer{display:flex;justify-content:space-between;align-items:center;width:100%;gap:.5rem}.dialog-footer .footer-left{display:flex;gap:.5rem}.dialog-footer .footer-right{display:flex;gap:.5rem;margin-left:auto}:host ::ng-deep .schedule-detail-dialog{width:600px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i6.Tag, selector: "p-tag", inputs: ["style", "styleClass", "severity", "value", "icon", "rounded"] }, { kind: "ngmodule", type: DividerModule }, { kind: "component", type: i7.Divider, selector: "p-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i8.ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
216
176
|
}
|
|
217
177
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScheduleDetailComponent, decorators: [{
|
|
218
178
|
type: Component,
|
|
219
179
|
args: [{ selector: 's-schedule-detail', standalone: true, imports: [
|
|
220
180
|
CommonModule, DialogModule, ButtonModule, TagModule,
|
|
221
|
-
DividerModule, TooltipModule, ConfirmDialogModule,
|
|
222
|
-
], providers: [ConfirmationService], template: "<p-dialog\n [(visible)]=\"visible\"\n [modal]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [styleClass]=\"'schedule-detail-dialog'\"\n [header]=\"dialogHeader\"\n (onHide)=\"closeDialog()\">\n \n <ng-template pTemplate=\"header\">\n <div class=\"dialog-header\">\n <h3>{{ dialogHeader }}</h3>\n <p-tag \n *ngIf=\"schedule?.priority\"\n [severity]=\"getPrioritySeverity(schedule?.priority)\"\n [value]=\"getPriorityLabel(schedule?.priority)\">\n </p-tag>\n </div>\n </ng-template>\n\n <div class=\"schedule-detail-content\" *ngIf=\"schedule\">\n \n <!-- Informa\u00E7\u00F5es B\u00E1sicas -->\n <div class=\"detail-section\">\n <h4 class=\"section-title\">{{ 'sr.schedule.basic_info' |
|
|
223
|
-
}], ctorParameters: () => [{ type: i1.
|
|
181
|
+
DividerModule, TooltipModule, ConfirmDialogModule, TranslatePipe
|
|
182
|
+
], providers: [ConfirmationService], template: "<p-dialog\n [(visible)]=\"visible\"\n [modal]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [styleClass]=\"'schedule-detail-dialog'\"\n [header]=\"dialogHeader\"\n (onHide)=\"closeDialog()\">\n \n <ng-template pTemplate=\"header\">\n <div class=\"dialog-header\">\n <h3>{{ dialogHeader }}</h3>\n <p-tag \n *ngIf=\"schedule?.priority\"\n [severity]=\"getPrioritySeverity(schedule?.priority)\"\n [value]=\"getPriorityLabel(schedule?.priority)\">\n </p-tag>\n </div>\n </ng-template>\n\n <div class=\"schedule-detail-content\" *ngIf=\"schedule\">\n \n <!-- Informa\u00E7\u00F5es B\u00E1sicas -->\n <div class=\"detail-section\">\n <h4 class=\"section-title\">{{ 'sr.schedule.basic_info' | translate }}</h4>\n \n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-calendar\"></i>\n {{ 'sr.schedule.type' | translate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.type?.name ?? ('sr.schedule.not_informed' | translate) }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-clock\"></i>\n {{ 'sr.schedule.when_occurs' | translate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.whenOccurs }}</span>\n </div>\n\n <div class=\"detail-row\" *ngIf=\"schedule.duration\">\n <span class=\"detail-label\">\n <i class=\"pi pi-hourglass\"></i>\n {{ 'sr.schedule.duration' | translate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.duration }} {{ 'sr.schedule.minutes' | translate }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-refresh\"></i>\n {{ 'sr.schedule.recurrence' | translate }}:\n </span>\n <span class=\"detail-value\">{{ getRecurrenceLabel(schedule.recurrence) }}</span>\n </div>\n </div>\n\n <p-divider></p-divider>\n\n <!-- Descri\u00E7\u00E3o -->\n <div class=\"detail-section\" *ngIf=\"schedule.description\">\n <h4 class=\"section-title\">{{ 'sr.schedule.description' | translate }}</h4>\n <p class=\"description-text\">{{ schedule.description }}</p>\n </div>\n\n <p-divider *ngIf=\"schedule.description\"></p-divider>\n\n <!-- Participantes -->\n <div class=\"detail-section\">\n <h4 class=\"section-title\">{{ 'sr.schedule.participants' | translate }}</h4>\n \n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-user\"></i>\n {{ 'sr.schedule.organizer' | translate }}:\n </span>\n <span class=\"detail-value\">{{ getOrganizerName() }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-users\"></i>\n {{ 'sr.schedule.participants' | translate }} ({{ getParticipantsCount() }}):\n </span>\n </div>\n \n <div class=\"participants-list\" *ngIf=\"getParticipantsCount() > 0\">\n <div class=\"participant-item\" *ngFor=\"let participant of schedule.participants\">\n <ng-container *ngIf=\"!participant.organizer\">\n <i class=\"pi pi-user\"></i>\n <span>{{ participant.collaborator?.name ?? ('sr.schedule.no_name' | translate) }}</span>\n <p-tag \n *ngIf=\"participant.confirmation\"\n [severity]=\"getConfirmationSeverity(participant.confirmation)\"\n [value]=\"getConfirmationLabel(participant.confirmation)\"\n styleClass=\"participant-status\">\n </p-tag>\n </ng-container>\n </div>\n </div>\n <p class=\"no-participants\" *ngIf=\"getParticipantsCount() === 0\">\n {{ 'sr.schedule.no_participants_besides_organizer' | translate }}\n </p>\n </div>\n\n <p-divider></p-divider>\n\n <!-- Local -->\n <div class=\"detail-section\" *ngIf=\"schedule.location\">\n <h4 class=\"section-title\">{{ 'sr.schedule.location' | translate }}</h4>\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-map-marker\"></i>\n {{ 'sr.schedule.address' | translate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.location }}</span>\n </div>\n </div>\n\n <!-- Observa\u00E7\u00F5es -->\n <div class=\"detail-section\" *ngIf=\"schedule.observations\">\n <h4 class=\"section-title\">{{ 'sr.schedule.notes' | translate }}</h4>\n <p class=\"observations-text\">{{ schedule.observations }}</p>\n </div>\n\n </div>\n\n <ng-template pTemplate=\"footer\">\n <div class=\"dialog-footer\">\n <div class=\"footer-left\">\n <button \n *ngIf=\"showDeleteButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.delete' | translate\" \n icon=\"pi pi-trash\"\n class=\"p-button-danger p-button-text\"\n (click)=\"deleteSchedule()\">\n </button>\n </div>\n <div class=\"footer-right\">\n <button \n *ngIf=\"showRejectButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.reject' | translate\" \n icon=\"pi pi-times\"\n class=\"p-button-warning\"\n (click)=\"rejectSchedule()\">\n </button>\n <button \n *ngIf=\"showCancelButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.cancel' | translate\" \n icon=\"pi pi-ban\"\n class=\"p-button-secondary\"\n (click)=\"cancelSchedule()\">\n </button>\n <button \n *ngIf=\"showAcceptButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.accept' | translate\" \n icon=\"pi pi-check\"\n class=\"p-button-success\"\n (click)=\"acceptSchedule()\">\n </button>\n <button \n *ngIf=\"showEditButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.edit_schedule' | translate\" \n icon=\"pi pi-pencil\"\n (click)=\"editSchedule()\">\n </button>\n <button \n pButton type=\"button\" \n [label]=\"'sr.schedule.close' | translate\" \n icon=\"pi pi-times\"\n class=\"p-button-text\"\n (click)=\"closeDialog()\">\n </button>\n </div>\n </div>\n </ng-template>\n\n</p-dialog>\n\n<p-confirmDialog></p-confirmDialog>\n", styles: [".dialog-header{display:flex;align-items:center;justify-content:space-between;width:100%;gap:1rem}.dialog-header h3{margin:0;font-size:1.25rem;font-weight:600;flex:1}.schedule-detail-content{padding:.5rem 0}.detail-section{margin-bottom:1rem}.detail-section .section-title{font-size:1rem;font-weight:600;margin:0 0 1rem;color:var(--text-color)}.detail-section .detail-row{display:flex;align-items:flex-start;margin-bottom:.75rem;gap:.5rem}.detail-section .detail-row .detail-label{display:flex;align-items:center;gap:.5rem;font-weight:500;color:var(--text-color-secondary);min-width:140px;flex-shrink:0}.detail-section .detail-row .detail-label i{font-size:.875rem}.detail-section .detail-row .detail-value{color:var(--text-color);flex:1}.detail-section .description-text,.detail-section .observations-text{color:var(--text-color);line-height:1.6;margin:0;white-space:pre-wrap}.detail-section .participants-list{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem}.detail-section .participants-list .participant-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:var(--surface-50);border-radius:4px}.detail-section .participants-list .participant-item i{color:var(--text-color-secondary);font-size:.875rem}.detail-section .participants-list .participant-item span{flex:1;color:var(--text-color)}.detail-section .participants-list .participant-item .participant-status{font-size:.75rem}.detail-section .no-participants{color:var(--text-color-secondary);font-style:italic;margin:.5rem 0 0}.dialog-footer{display:flex;justify-content:space-between;align-items:center;width:100%;gap:.5rem}.dialog-footer .footer-left{display:flex;gap:.5rem}.dialog-footer .footer-right{display:flex;gap:.5rem;margin-left:auto}:host ::ng-deep .schedule-detail-dialog{width:600px}\n"] }]
|
|
183
|
+
}], ctorParameters: () => [{ type: i1.TranslationService }, { type: i2.ConfirmationService }], propDecorators: { visible: [{
|
|
224
184
|
type: Input
|
|
225
185
|
}], schedule: [{
|
|
226
186
|
type: Input
|
|
@@ -241,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
241
201
|
}], onClose: [{
|
|
242
202
|
type: Output
|
|
243
203
|
}] } });
|
|
244
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2NoZWR1bGUvY29tcG9uZW50cy9zY2hlZHVsZS1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zY2hlZHVsZS9jb21wb25lbnRzL3NjaGVkdWxlLWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxVQUFVO0FBQ1YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSWxELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXJGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7O0FBNEI1RCxNQUFNLE9BQU8sdUJBQXVCO0lBY2Y7SUFDQTtJQWRWLE9B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O0lBQ0gsQ0FBQztJQUVELHVCQUF1QixDQUFDLFlBQWdDO1FBQ3RELElBQUksWUFBWSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7YUFBTSxJQUFJLFlBQVksS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUN2QyxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7SUFDSCxDQUFDO3dHQTFNVSx1QkFBdUI7NEZBQXZCLHVCQUF1Qix1WUFKdkIsQ0FBQyxtQkFBbUIsQ0FBQywwQkN4Q2xDLG9yTkFpTUEseWtFRDVKSSxZQUFZLCtQQUFFLFlBQVksMGdDQUFFLFlBQVksb1FBQUUsU0FBUywrSkFDbkQsYUFBYSwwSkFBRSxhQUFhLDhCQUFFLG1CQUFtQixtb0JBQUUscUJBQXFCOzs0RkFNL0QsdUJBQXVCO2tCQVhuQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsU0FBUzt3QkFDbkQsYUFBYSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUI7cUJBQ3pFLGFBQ1UsQ0FBQyxtQkFBbUIsQ0FBQztpSUFLdkIsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLy8gUHJpbWVOR1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgVGFnTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWcnO1xuaW1wb3J0IHsgRGl2aWRlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGl2aWRlcic7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1kaWFsb2cnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcblxuLy8gTG9jYWxcbmltcG9ydCB7IFNjaGVkdWxlVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTY2hlZHVsZVRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBTY2hlZHVsZSwgU2NoZWR1bGVQYXJ0aWNpcGFudCB9IGZyb20gJy4uL21vZGVscy9zY2hlZHVsZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2NoZWR1bGVQcmlvcml0eSB9IGZyb20gJy4uL21vZGVscy9zY2hlZHVsZS5lbnVtcyc7XG5cbnR5cGUgUHJpb3JpdHlTZXZlcml0eSA9ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuJyB8ICdkYW5nZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVkdWxlV2l0aFBhcnRpY2lwYW50cyBleHRlbmRzIFNjaGVkdWxlIHtcbiAgcGFydGljaXBhbnRzPzogU2NoZWR1bGVQYXJ0aWNpcGFudFtdO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgZHVyYXRpb24/OiBudW1iZXI7XG4gIGxvY2F0aW9uPzogc3RyaW5nO1xuICBvYnNlcnZhdGlvbnM/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZWR1bGVEZXRhaWxBY3Rpb24ge1xuICB0eXBlOiAnYWNjZXB0JyB8ICdyZWplY3QnIHwgJ2NhbmNlbCcgfCAnZWRpdCcgfCAnZGVsZXRlJztcbiAgc2NoZWR1bGU6IFNjaGVkdWxlV2l0aFBhcnRpY2lwYW50cztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncy1zY2hlZHVsZS1kZXRhaWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLCBEaWFsb2dNb2R1bGUsIEJ1dHRvbk1vZHVsZSwgVGFnTW9kdWxlLFxuICAgIERpdmlkZXJNb2R1bGUsIFRvb2x0aXBNb2R1bGUsIENvbmZpcm1EaWFsb2dNb2R1bGUsIFNjaGVkdWxlVHJhbnNsYXRlUGlwZVxuICBdLFxuICBwcm92aWRlcnM6IFtDb25maXJtYXRpb25TZXJ2aWNlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NjaGVkdWxlLWRldGFpbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NjaGVkdWxlLWRldGFpbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNjaGVkdWxlRGV0YWlsQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdmlzaWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBzY2hlZHVsZTogU2NoZWR1bGVXaXRoUGFydGljaXBhbnRzIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHNob3dBY2NlcHRCdXR0b24gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd1JlamVjdEJ1dHRvbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93Q2FuY2VsQnV0dG9uID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dFZGl0QnV0dG9uID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd0RlbGV0ZUJ1dHRvbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgb25BY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPFNjaGVkdWxlRGV0YWlsQWN0aW9uPigpO1xuICBAT3V0cHV0KCkgb25DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0aW9uU2VydmljZTogU2NoZWR1bGVUcmFuc2xhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlXG4gICkge31cblxuICBnZXQgZGlhbG9nSGVhZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2NoZWR1bGU/Lm5hbWUgPz8gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5zY2hlZHVsZV9kZXRhaWxzJyk7XG4gIH1cblxuICBjbG9zZURpYWxvZygpOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcbiAgfVxuXG4gIGVkaXRTY2hlZHVsZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zY2hlZHVsZSkge1xuICAgICAgdGhpcy5vbkFjdGlvbi5lbWl0KHsgdHlwZTogJ2VkaXQnLCBzY2hlZHVsZTogdGhpcy5zY2hlZHVsZSB9KTtcbiAgICB9XG4gIH1cblxuICBhY2NlcHRTY2hlZHVsZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2NoZWR1bGUpIHJldHVybjtcbiAgICBcbiAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XG4gICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLmNvbmZpcm1fYWNjZXB0JyksXG4gICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUuY29uZmlybWF0aW9uJyksXG4gICAgICBpY29uOiAncGkgcGktcXVlc3Rpb24tY2lyY2xlJyxcbiAgICAgIGFjY2VwdExhYmVsOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnllcycpLFxuICAgICAgcmVqZWN0TGFiZWw6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUubm8nKSxcbiAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5zY2hlZHVsZSkge1xuICAgICAgICAgIHRoaXMub25BY3Rpb24uZW1pdCh7IHR5cGU6ICdhY2NlcHQnLCBzY2hlZHVsZTogdGhpcy5zY2hlZHVsZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmVqZWN0U2NoZWR1bGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNjaGVkdWxlKSByZXR1cm47XG4gICAgXG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5jb25maXJtX3JlamVjdCcpLFxuICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLmNvbmZpcm1hdGlvbicpLFxuICAgICAgaWNvbjogJ3BpIHBpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJyxcbiAgICAgIGFjY2VwdExhYmVsOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnllcycpLFxuICAgICAgcmVqZWN0TGFiZWw6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUubm8nKSxcbiAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5zY2hlZHVsZSkge1xuICAgICAgICAgIHRoaXMub25BY3Rpb24uZW1pdCh7IHR5cGU6ICdyZWplY3QnLCBzY2hlZHVsZTogdGhpcy5zY2hlZHVsZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY2FuY2VsU2NoZWR1bGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNjaGVkdWxlKSByZXR1cm47XG4gICAgXG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5jb25maXJtX2NhbmNlbCcpLFxuICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLmNvbmZpcm1hdGlvbicpLFxuICAgICAgaWNvbjogJ3BpIHBpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJyxcbiAgICAgIGFjY2VwdExhYmVsOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnllcycpLFxuICAgICAgcmVqZWN0TGFiZWw6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUubm8nKSxcbiAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5zY2hlZHVsZSkge1xuICAgICAgICAgIHRoaXMub25BY3Rpb24uZW1pdCh7IHR5cGU6ICdjYW5jZWwnLCBzY2hlZHVsZTogdGhpcy5zY2hlZHVsZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlU2NoZWR1bGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNjaGVkdWxlKSByZXR1cm47XG4gICAgXG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5jb25maXJtX2RlbGV0ZScpLFxuICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLmNvbmZpcm1hdGlvbicpLFxuICAgICAgaWNvbjogJ3BpIHBpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJyxcbiAgICAgIGFjY2VwdExhYmVsOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnllcycpLFxuICAgICAgcmVqZWN0TGFiZWw6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUubm8nKSxcbiAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5zY2hlZHVsZSkge1xuICAgICAgICAgIHRoaXMub25BY3Rpb24uZW1pdCh7IHR5cGU6ICdkZWxldGUnLCBzY2hlZHVsZTogdGhpcy5zY2hlZHVsZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZm9ybWF0RGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoIWRhdGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLm5vdF9pbmZvcm1lZCcpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgZGF0ZU9iaiA9IG5ldyBEYXRlKGRhdGUpO1xuICAgICAgaWYgKGlzTmFOKGRhdGVPYmouZ2V0VGltZSgpKSkge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5pbnZhbGlkX2RhdGUnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkYXRlT2JqLnRvTG9jYWxlU3RyaW5nKCdwdC1CUicsIHtcbiAgICAgICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgICAgIG1vbnRoOiAnMi1kaWdpdCcsXG4gICAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgICAgaG91cjogJzItZGlnaXQnLFxuICAgICAgICBtaW51dGU6ICcyLWRpZ2l0J1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5pbnZhbGlkX2RhdGUnKTtcbiAgICB9XG4gIH1cblxuICBnZXRQcmlvcml0eUxhYmVsKHByaW9yaXR5OiBzdHJpbmcgfCBTY2hlZHVsZVByaW9yaXR5IHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoIXByaW9yaXR5KSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5ub3RfaW5mb3JtZWQnKTtcbiAgICB9XG4gICAgY29uc3QgbGFiZWxzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgW1NjaGVkdWxlUHJpb3JpdHkuTG93XTogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5wcmlvcml0eV9sb3cnKSxcbiAgICAgIFtTY2hlZHVsZVByaW9yaXR5Lk1lZGl1bV06IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucHJpb3JpdHlfbWVkaXVtJyksXG4gICAgICBbU2NoZWR1bGVQcmlvcml0eS5IaWdoXTogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5wcmlvcml0eV9oaWdoJyksXG4gICAgICBbU2NoZWR1bGVQcmlvcml0eS5Dcml0aWNhbF06IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucHJpb3JpdHlfY3JpdGljYWwnKVxuICAgIH07XG4gICAgcmV0dXJuIGxhYmVsc1twcmlvcml0eV0gPz8gcHJpb3JpdHk7XG4gIH1cblxuICBnZXRQcmlvcml0eVNldmVyaXR5KHByaW9yaXR5OiBzdHJpbmcgfCBTY2hlZHVsZVByaW9yaXR5IHwgdW5kZWZpbmVkKTogUHJpb3JpdHlTZXZlcml0eSB7XG4gICAgaWYgKCFwcmlvcml0eSkge1xuICAgICAgcmV0dXJuICdpbmZvJztcbiAgICB9XG4gICAgY29uc3Qgc2V2ZXJpdGllczogUmVjb3JkPHN0cmluZywgUHJpb3JpdHlTZXZlcml0eT4gPSB7XG4gICAgICBbU2NoZWR1bGVQcmlvcml0eS5Mb3ddOiAnaW5mbycsXG4gICAgICBbU2NoZWR1bGVQcmlvcml0eS5NZWRpdW1dOiAnc3VjY2VzcycsXG4gICAgICBbU2NoZWR1bGVQcmlvcml0eS5IaWdoXTogJ3dhcm4nLFxuICAgICAgW1NjaGVkdWxlUHJpb3JpdHkuQ3JpdGljYWxdOiAnZGFuZ2VyJ1xuICAgIH07XG4gICAgcmV0dXJuIHNldmVyaXRpZXNbcHJpb3JpdHldID8/ICdpbmZvJztcbiAgfVxuXG4gIGdldFJlY3VycmVuY2VMYWJlbChyZWN1cnJlbmNlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGlmICghcmVjdXJyZW5jZSkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZV9ub25lJyk7XG4gICAgfVxuICAgIGNvbnN0IGxhYmVsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICdOT05FJzogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5yZWN1cnJlbmNlX25vbmUnKSxcbiAgICAgICdEQUlMWSc6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZV9kYWlseScpLFxuICAgICAgJ1dFRUtMWSc6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZV93ZWVrbHknKSxcbiAgICAgICdNT05USExZJzogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5yZWN1cnJlbmNlX21vbnRobHknKSxcbiAgICAgICdZRUFSTFknOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnJlY3VycmVuY2VfeWVhcmx5JyksXG4gICAgICAnQ1VTVE9NJzogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5yZWN1cnJlbmNlX2N1c3RvbScpXG4gICAgfTtcbiAgICByZXR1cm4gbGFiZWxzW3JlY3VycmVuY2VdID8/IHJlY3VycmVuY2U7XG4gIH1cblxuICBnZXRPcmdhbml6ZXJOYW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgb3JnYW5pemVyID0gdGhpcy5zY2hlZHVsZT8ucGFydGljaXBhbnRzPy5maW5kKChwOiBTY2hlZHVsZVBhcnRpY2lwYW50KSA9PiBwLm9yZ2FuaXplcik7XG4gICAgcmV0dXJuIG9yZ2FuaXplcj8uY29sbGFib3JhdG9yPy5uYW1lID8/IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUubm90X2luZm9ybWVkJyk7XG4gIH1cblxuICBnZXRQYXJ0aWNpcGFudHNDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnNjaGVkdWxlPy5wYXJ0aWNpcGFudHM/LmZpbHRlcigocDogU2NoZWR1bGVQYXJ0aWNpcGFudCkgPT4gIXAub3JnYW5pemVyKS5sZW5ndGggPz8gMDtcbiAgfVxuXG4gIGdldFBhcnRpY2lwYW50c0xpc3QoKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJ0aWNpcGFudHMgPSB0aGlzLnNjaGVkdWxlPy5wYXJ0aWNpcGFudHM/LmZpbHRlcigocDogU2NoZWR1bGVQYXJ0aWNpcGFudCkgPT4gIXAub3JnYW5pemVyKSA/PyBbXTtcbiAgICBpZiAocGFydGljaXBhbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUubm9fcGFydGljaXBhbnRzJyk7XG4gICAgfVxuICAgIHJldHVybiBwYXJ0aWNpcGFudHMubWFwKChwOiBTY2hlZHVsZVBhcnRpY2lwYW50KSA9PiBwLmNvbGxhYm9yYXRvcj8ubmFtZSA/PyB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLm5vX25hbWUnKSkuam9pbignLCAnKTtcbiAgfVxuXG4gIGdldENvbmZpcm1hdGlvbkxhYmVsKGNvbmZpcm1hdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoIWNvbmZpcm1hdGlvbikge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBpZiAoY29uZmlybWF0aW9uID09PSAnQ09ORklSTUVEJykge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUuc3RhdHVzX2FjY2VwdGVkJyk7XG4gICAgfSBlbHNlIGlmIChjb25maXJtYXRpb24gPT09ICdERUNMSU5FRCcpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnN0YXR1c19yZWplY3RlZCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5zdGF0dXNfcGVuZGluZycpO1xuICAgIH1cbiAgfVxuXG4gIGdldENvbmZpcm1hdGlvblNldmVyaXR5KGNvbmZpcm1hdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkKTogJ3N1Y2Nlc3MnIHwgJ2RhbmdlcicgfCAnd2Fybicge1xuICAgIGlmIChjb25maXJtYXRpb24gPT09ICdDT05GSVJNRUQnKSB7XG4gICAgICByZXR1cm4gJ3N1Y2Nlc3MnO1xuICAgIH0gZWxzZSBpZiAoY29uZmlybWF0aW9uID09PSAnREVDTElORUQnKSB7XG4gICAgICByZXR1cm4gJ2Rhbmdlcic7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnd2Fybic7XG4gICAgfVxuICB9XG59XG4iLCI8cC1kaWFsb2dcbiAgWyh2aXNpYmxlKV09XCJ2aXNpYmxlXCJcbiAgW21vZGFsXT1cInRydWVcIlxuICBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcbiAgW3Jlc2l6YWJsZV09XCJmYWxzZVwiXG4gIFtzdHlsZUNsYXNzXT1cIidzY2hlZHVsZS1kZXRhaWwtZGlhbG9nJ1wiXG4gIFtoZWFkZXJdPVwiZGlhbG9nSGVhZGVyXCJcbiAgKG9uSGlkZSk9XCJjbG9zZURpYWxvZygpXCI+XG4gIFxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXJcIj5cbiAgICAgIDxoMz57eyBkaWFsb2dIZWFkZXIgfX08L2gzPlxuICAgICAgPHAtdGFnIFxuICAgICAgICAqbmdJZj1cInNjaGVkdWxlPy5wcmlvcml0eVwiXG4gICAgICAgIFtzZXZlcml0eV09XCJnZXRQcmlvcml0eVNldmVyaXR5KHNjaGVkdWxlPy5wcmlvcml0eSlcIlxuICAgICAgICBbdmFsdWVdPVwiZ2V0UHJpb3JpdHlMYWJlbChzY2hlZHVsZT8ucHJpb3JpdHkpXCI+XG4gICAgICA8L3AtdGFnPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1kZXRhaWwtY29udGVudFwiICpuZ0lmPVwic2NoZWR1bGVcIj5cbiAgICBcbiAgICA8IS0tIEluZm9ybWHDp8O1ZXMgQsOhc2ljYXMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRldGFpbC1zZWN0aW9uXCI+XG4gICAgICA8aDQgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+e3sgJ3NyLnNjaGVkdWxlLmJhc2ljX2luZm8nIHwgc2NoZWR1bGVUcmFuc2xhdGUgfX08L2g0PlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktY2FsZW5kYXJcIj48L2k+XG4gICAgICAgICAge3sgJ3NyLnNjaGVkdWxlLnR5cGUnIHwgc2NoZWR1bGVUcmFuc2xhdGUgfX06XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtdmFsdWVcIj57eyBzY2hlZHVsZS50eXBlPy5uYW1lID8/ICgnc3Iuc2NoZWR1bGUubm90X2luZm9ybWVkJyB8IHNjaGVkdWxlVHJhbnNsYXRlKSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktY2xvY2tcIj48L2k+XG4gICAgICAgICAge3sgJ3NyLnNjaGVkdWxlLndoZW5fb2NjdXJzJyB8IHNjaGVkdWxlVHJhbnNsYXRlIH19OlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGV0YWlsLXZhbHVlXCI+e3sgc2NoZWR1bGUud2hlbk9jY3VycyB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiICpuZ0lmPVwic2NoZWR1bGUuZHVyYXRpb25cIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtbGFiZWxcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWhvdXJnbGFzc1wiPjwvaT5cbiAgICAgICAgICB7eyAnc3Iuc2NoZWR1bGUuZHVyYXRpb24nIHwgc2NoZWR1bGVUcmFuc2xhdGUgfX06XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtdmFsdWVcIj57eyBzY2hlZHVsZS5kdXJhdGlvbiB9fSB7eyAnc3Iuc2NoZWR1bGUubWludXRlcycgfCBzY2hlZHVsZVRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktcmVmcmVzaFwiPjwvaT5cbiAgICAgICAgICB7eyAnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZScgfCBzY2hlZHVsZVRyYW5zbGF0ZSB9fTpcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC12YWx1ZVwiPnt7IGdldFJlY3VycmVuY2VMYWJlbChzY2hlZHVsZS5yZWN1cnJlbmNlKSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPHAtZGl2aWRlcj48L3AtZGl2aWRlcj5cblxuICAgIDwhLS0gRGVzY3Jpw6fDo28gLS0+XG4gICAgPGRpdiBjbGFzcz1cImRldGFpbC1zZWN0aW9uXCIgKm5nSWY9XCJzY2hlZHVsZS5kZXNjcmlwdGlvblwiPlxuICAgICAgPGg0IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPnt7ICdzci5zY2hlZHVsZS5kZXNjcmlwdGlvbicgfCBzY2hlZHVsZVRyYW5zbGF0ZSB9fTwvaDQ+XG4gICAgICA8cCBjbGFzcz1cImRlc2NyaXB0aW9uLXRleHRcIj57eyBzY2hlZHVsZS5kZXNjcmlwdGlvbiB9fTwvcD5cbiAgICA8L2Rpdj5cblxuICAgIDxwLWRpdmlkZXIgKm5nSWY9XCJzY2hlZHVsZS5kZXNjcmlwdGlvblwiPjwvcC1kaXZpZGVyPlxuXG4gICAgPCEtLSBQYXJ0aWNpcGFudGVzIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtc2VjdGlvblwiPlxuICAgICAgPGg0IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPnt7ICdzci5zY2hlZHVsZS5wYXJ0aWNpcGFudHMnIHwgc2NoZWR1bGVUcmFuc2xhdGUgfX08L2g0PlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktdXNlclwiPjwvaT5cbiAgICAgICAgICB7eyAnc3Iuc2NoZWR1bGUub3JnYW5pemVyJyB8IHNjaGVkdWxlVHJhbnNsYXRlIH19OlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGV0YWlsLXZhbHVlXCI+e3sgZ2V0T3JnYW5pemVyTmFtZSgpIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtcm93XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGV0YWlsLWxhYmVsXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS11c2Vyc1wiPjwvaT5cbiAgICAgICAgICB7eyAnc3Iuc2NoZWR1bGUucGFydGljaXBhbnRzJyB8IHNjaGVkdWxlVHJhbnNsYXRlIH19ICh7eyBnZXRQYXJ0aWNpcGFudHNDb3VudCgpIH19KTpcbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCJwYXJ0aWNpcGFudHMtbGlzdFwiICpuZ0lmPVwiZ2V0UGFydGljaXBhbnRzQ291bnQoKSA+IDBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBhcnRpY2lwYW50LWl0ZW1cIiAqbmdGb3I9XCJsZXQgcGFydGljaXBhbnQgb2Ygc2NoZWR1bGUucGFydGljaXBhbnRzXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFwYXJ0aWNpcGFudC5vcmdhbml6ZXJcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktdXNlclwiPjwvaT5cbiAgICAgICAgICAgIDxzcGFuPnt7IHBhcnRpY2lwYW50LmNvbGxhYm9yYXRvcj8ubmFtZSA/PyAoJ3NyLnNjaGVkdWxlLm5vX25hbWUnIHwgc2NoZWR1bGVUcmFuc2xhdGUpIH19PC9zcGFuPlxuICAgICAgICAgICAgPHAtdGFnIFxuICAgICAgICAgICAgICAqbmdJZj1cInBhcnRpY2lwYW50LmNvbmZpcm1hdGlvblwiXG4gICAgICAgICAgICAgIFtzZXZlcml0eV09XCJnZXRDb25maXJtYXRpb25TZXZlcml0eShwYXJ0aWNpcGFudC5jb25maXJtYXRpb24pXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImdldENvbmZpcm1hdGlvbkxhYmVsKHBhcnRpY2lwYW50LmNvbmZpcm1hdGlvbilcIlxuICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwicGFydGljaXBhbnQtc3RhdHVzXCI+XG4gICAgICAgICAgICA8L3AtdGFnPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHAgY2xhc3M9XCJuby1wYXJ0aWNpcGFudHNcIiAqbmdJZj1cImdldFBhcnRpY2lwYW50c0NvdW50KCkgPT09IDBcIj5cbiAgICAgICAge3sgJ3NyLnNjaGVkdWxlLm5vX3BhcnRpY2lwYW50c19iZXNpZGVzX29yZ2FuaXplcicgfCBzY2hlZHVsZVRyYW5zbGF0ZSB9fVxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuXG4gICAgPHAtZGl2aWRlcj48L3AtZGl2aWRlcj5cblxuICAgIDwhLS0gTG9jYWwgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRldGFpbC1zZWN0aW9uXCIgKm5nSWY9XCJzY2hlZHVsZS5sb2NhdGlvblwiPlxuICAgICAgPGg0IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPnt7ICdzci5zY2hlZHVsZS5sb2NhdGlvbicgfCBzY2hlZHVsZVRyYW5zbGF0ZSB9fTwvaDQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktbWFwLW1hcmtlclwiPjwvaT5cbiAgICAgICAgICB7eyAnc3Iuc2NoZWR1bGUuYWRkcmVzcycgfCBzY2hlZHVsZVRyYW5zbGF0ZSB9fTpcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC12YWx1ZVwiPnt7IHNjaGVkdWxlLmxvY2F0aW9uIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIE9ic2VydmHDp8O1ZXMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRldGFpbC1zZWN0aW9uXCIgKm5nSWY9XCJzY2hlZHVsZS5vYnNlcnZhdGlvbnNcIj5cbiAgICAgIDxoNCBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj57eyAnc3Iuc2NoZWR1bGUubm90ZXMnIHwgc2NoZWR1bGVUcmFuc2xhdGUgfX08L2g0PlxuICAgICAgPHAgY2xhc3M9XCJvYnNlcnZhdGlvbnMtdGV4dFwiPnt7IHNjaGVkdWxlLm9ic2VydmF0aW9ucyB9fTwvcD5cbiAgICA8L2Rpdj5cblxuICA8L2Rpdj5cblxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXItbGVmdFwiPlxuICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgICpuZ0lmPVwic2hvd0RlbGV0ZUJ1dHRvblwiXG4gICAgICAgICAgcEJ1dHRvbiBcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgXG4gICAgICAgICAgW2xhYmVsXT1cIidzci5zY2hlZHVsZS5kZWxldGUnIHwgc2NoZWR1bGVUcmFuc2xhdGVcIiBcbiAgICAgICAgICBpY29uPVwicGkgcGktdHJhc2hcIlxuICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tZGFuZ2VyIHAtYnV0dG9uLXRleHRcIlxuICAgICAgICAgIChjbGljayk9XCJkZWxldGVTY2hlZHVsZSgpXCI+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLXJpZ2h0XCI+XG4gICAgICAgIDxidXR0b24gXG4gICAgICAgICAgKm5nSWY9XCJzaG93UmVqZWN0QnV0dG9uXCJcbiAgICAgICAgICBwQnV0dG9uIFxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIiBcbiAgICAgICAgICBbbGFiZWxdPVwiJ3NyLnNjaGVkdWxlLnJlamVjdCcgfCBzY2hlZHVsZVRyYW5zbGF0ZVwiIFxuICAgICAgICAgIGljb249XCJwaSBwaS10aW1lc1wiXG4gICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi13YXJuaW5nXCJcbiAgICAgICAgICAoY2xpY2spPVwicmVqZWN0U2NoZWR1bGUoKVwiPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAqbmdJZj1cInNob3dDYW5jZWxCdXR0b25cIlxuICAgICAgICAgIHBCdXR0b24gXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiIFxuICAgICAgICAgIFtsYWJlbF09XCInc3Iuc2NoZWR1bGUuY2FuY2VsJyB8IHNjaGVkdWxlVHJhbnNsYXRlXCIgXG4gICAgICAgICAgaWNvbj1cInBpIHBpLWJhblwiXG4gICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1zZWNvbmRhcnlcIlxuICAgICAgICAgIChjbGljayk9XCJjYW5jZWxTY2hlZHVsZSgpXCI+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgICpuZ0lmPVwic2hvd0FjY2VwdEJ1dHRvblwiXG4gICAgICAgICAgcEJ1dHRvbiBcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgXG4gICAgICAgICAgW2xhYmVsXT1cIidzci5zY2hlZHVsZS5hY2NlcHQnIHwgc2NoZWR1bGVUcmFuc2xhdGVcIiBcbiAgICAgICAgICBpY29uPVwicGkgcGktY2hlY2tcIlxuICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tc3VjY2Vzc1wiXG4gICAgICAgICAgKGNsaWNrKT1cImFjY2VwdFNjaGVkdWxlKClcIj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gXG4gICAgICAgICAgKm5nSWY9XCJzaG93RWRpdEJ1dHRvblwiXG4gICAgICAgICAgcEJ1dHRvbiBcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgXG4gICAgICAgICAgW2xhYmVsXT1cIidzci5zY2hlZHVsZS5lZGl0X3NjaGVkdWxlJyB8IHNjaGVkdWxlVHJhbnNsYXRlXCIgXG4gICAgICAgICAgaWNvbj1cInBpIHBpLXBlbmNpbFwiXG4gICAgICAgICAgKGNsaWNrKT1cImVkaXRTY2hlZHVsZSgpXCI+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgIHBCdXR0b24gXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiIFxuICAgICAgICAgIFtsYWJlbF09XCInc3Iuc2NoZWR1bGUuY2xvc2UnIHwgc2NoZWR1bGVUcmFuc2xhdGVcIiBcbiAgICAgICAgICBpY29uPVwicGkgcGktdGltZXNcIlxuICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tdGV4dFwiXG4gICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuPC9wLWRpYWxvZz5cblxuPHAtY29uZmlybURpYWxvZz48L3AtY29uZmlybURpYWxvZz5cbiJdfQ==
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2NoZWR1bGUvY29tcG9uZW50cy9zY2hlZHVsZS1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zY2hlZHVsZS9jb21wb25lbnRzL3NjaGVkdWxlLWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxVQUFVO0FBQ1YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxELGdCQUFnQjtBQUNoQixPQUFPLEVBQXNCLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSWxGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7O0FBNEI1RCxNQUFNLE9BQU8sdUJBQXVCO0lBY2Y7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LFlBQVksRUFBRSxTQUFTO3dCQUNuRCxhQUFhLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLGFBQWE7cUJBQ2pFLGFBQ1UsQ0FBQyxtQkFBbUIsQ0FBQzt5SEFLdkIsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLy8gUHJpbWVOR1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgVGFnTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWcnO1xuaW1wb3J0IHsgRGl2aWRlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGl2aWRlcic7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1kaWFsb2cnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcblxuLy8gQ29tcG9uZW50cyBBSVxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlLCBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2NvbXBvbmVudHMtYWknO1xuXG4vLyBMb2NhbFxuaW1wb3J0IHsgU2NoZWR1bGUsIFNjaGVkdWxlUGFydGljaXBhbnQgfSBmcm9tICcuLi9tb2RlbHMvc2NoZWR1bGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNjaGVkdWxlUHJpb3JpdHkgfSBmcm9tICcuLi9tb2RlbHMvc2NoZWR1bGUuZW51bXMnO1xuXG50eXBlIFByaW9yaXR5U2V2ZXJpdHkgPSAnc3VjY2VzcycgfCAnaW5mbycgfCAnd2FybicgfCAnZGFuZ2VyJztcblxuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZVdpdGhQYXJ0aWNpcGFudHMgZXh0ZW5kcyBTY2hlZHVsZSB7XG4gIHBhcnRpY2lwYW50cz86IFNjaGVkdWxlUGFydGljaXBhbnRbXTtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGR1cmF0aW9uPzogbnVtYmVyO1xuICBsb2NhdGlvbj86IHN0cmluZztcbiAgb2JzZXJ2YXRpb25zPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVkdWxlRGV0YWlsQWN0aW9uIHtcbiAgdHlwZTogJ2FjY2VwdCcgfCAncmVqZWN0JyB8ICdjYW5jZWwnIHwgJ2VkaXQnIHwgJ2RlbGV0ZSc7XG4gIHNjaGVkdWxlOiBTY2hlZHVsZVdpdGhQYXJ0aWNpcGFudHM7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Mtc2NoZWR1bGUtZGV0YWlsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSwgRGlhbG9nTW9kdWxlLCBCdXR0b25Nb2R1bGUsIFRhZ01vZHVsZSxcbiAgICBEaXZpZGVyTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBDb25maXJtRGlhbG9nTW9kdWxlLCBUcmFuc2xhdGVQaXBlXG4gIF0sXG4gIHByb3ZpZGVyczogW0NvbmZpcm1hdGlvblNlcnZpY2VdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2NoZWR1bGUtZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2NoZWR1bGUtZGV0YWlsLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2NoZWR1bGVEZXRhaWxDb21wb25lbnQge1xuICBASW5wdXQoKSB2aXNpYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNjaGVkdWxlOiBTY2hlZHVsZVdpdGhQYXJ0aWNpcGFudHMgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgc2hvd0FjY2VwdEJ1dHRvbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93UmVqZWN0QnV0dG9uID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dDYW5jZWxCdXR0b24gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0VkaXRCdXR0b24gPSB0cnVlO1xuICBASW5wdXQoKSBzaG93RGVsZXRlQnV0dG9uID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBvbkFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8U2NoZWR1bGVEZXRhaWxBY3Rpb24+KCk7XG4gIEBPdXRwdXQoKSBvbkNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdDogVHJhbnNsYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgZ2V0IGRpYWxvZ0hlYWRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNjaGVkdWxlPy5uYW1lID8/IHRoaXMudC50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnNjaGVkdWxlX2RldGFpbHMnKTtcbiAgfVxuXG4gIGNsb3NlRGlhbG9nKCk6IHZvaWQge1xuICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB0aGlzLm9uQ2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgZWRpdFNjaGVkdWxlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNjaGVkdWxlKSB7XG4gICAgICB0aGlzLm9uQWN0aW9uLmVtaXQoeyB0eXBlOiAnZWRpdCcsIHNjaGVkdWxlOiB0aGlzLnNjaGVkdWxlIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFjY2VwdFNjaGVkdWxlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zY2hlZHVsZSkgcmV0dXJuO1xuICAgIHRoaXMuY29uZmlybUFjdGlvbignc3Iuc2NoZWR1bGUuY29uZmlybV9hY2NlcHQnLCAncGkgcGktcXVlc3Rpb24tY2lyY2xlJywgJ2FjY2VwdCcpO1xuICB9XG5cbiAgcmVqZWN0U2NoZWR1bGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNjaGVkdWxlKSByZXR1cm47XG4gICAgdGhpcy5jb25maXJtQWN0aW9uKCdzci5zY2hlZHVsZS5jb25maXJtX3JlamVjdCcsICdwaSBwaS1leGNsYW1hdGlvbi10cmlhbmdsZScsICdyZWplY3QnKTtcbiAgfVxuXG4gIGNhbmNlbFNjaGVkdWxlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zY2hlZHVsZSkgcmV0dXJuO1xuICAgIHRoaXMuY29uZmlybUFjdGlvbignc3Iuc2NoZWR1bGUuY29uZmlybV9jYW5jZWwnLCAncGkgcGktZXhjbGFtYXRpb24tdHJpYW5nbGUnLCAnY2FuY2VsJyk7XG4gIH1cblxuICBkZWxldGVTY2hlZHVsZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2NoZWR1bGUpIHJldHVybjtcbiAgICB0aGlzLmNvbmZpcm1BY3Rpb24oJ3NyLnNjaGVkdWxlLmNvbmZpcm1fZGVsZXRlJywgJ3BpIHBpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJywgJ2RlbGV0ZScpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25maXJtQWN0aW9uKG1lc3NhZ2VLZXk6IHN0cmluZywgaWNvbjogc3RyaW5nLCB0eXBlOiBTY2hlZHVsZURldGFpbEFjdGlvblsndHlwZSddKTogdm9pZCB7XG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgbWVzc2FnZTogdGhpcy50LnRyYW5zbGF0ZShtZXNzYWdlS2V5KSxcbiAgICAgIGhlYWRlcjogdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUuY29uZmlybWF0aW9uJyksXG4gICAgICBpY29uLFxuICAgICAgYWNjZXB0TGFiZWw6IHRoaXMudC50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnllcycpLFxuICAgICAgcmVqZWN0TGFiZWw6IHRoaXMudC50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLm5vJyksXG4gICAgICBhY2NlcHQ6ICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuc2NoZWR1bGUpIHtcbiAgICAgICAgICB0aGlzLm9uQWN0aW9uLmVtaXQoeyB0eXBlLCBzY2hlZHVsZTogdGhpcy5zY2hlZHVsZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZm9ybWF0RGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoIWRhdGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnQudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5ub3RfaW5mb3JtZWQnKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGVPYmogPSBuZXcgRGF0ZShkYXRlKTtcbiAgICAgIGlmIChpc05hTihkYXRlT2JqLmdldFRpbWUoKSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudC50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLmludmFsaWRfZGF0ZScpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGRhdGVPYmoudG9Mb2NhbGVTdHJpbmcoJ3B0LUJSJywge1xuICAgICAgICBkYXk6ICcyLWRpZ2l0JywgbW9udGg6ICcyLWRpZ2l0JywgeWVhcjogJ251bWVyaWMnLFxuICAgICAgICBob3VyOiAnMi1kaWdpdCcsIG1pbnV0ZTogJzItZGlnaXQnXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiB0aGlzLnQudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5pbnZhbGlkX2RhdGUnKTtcbiAgICB9XG4gIH1cblxuICBnZXRQcmlvcml0eUxhYmVsKHByaW9yaXR5OiBzdHJpbmcgfCBTY2hlZHVsZVByaW9yaXR5IHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoIXByaW9yaXR5KSB7XG4gICAgICByZXR1cm4gdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUubm90X2luZm9ybWVkJyk7XG4gICAgfVxuICAgIGNvbnN0IGxhYmVsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIFtTY2hlZHVsZVByaW9yaXR5Lkxvd106IHRoaXMudC50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnByaW9yaXR5X2xvdycpLFxuICAgICAgW1NjaGVkdWxlUHJpb3JpdHkuTWVkaXVtXTogdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucHJpb3JpdHlfbWVkaXVtJyksXG4gICAgICBbU2NoZWR1bGVQcmlvcml0eS5IaWdoXTogdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucHJpb3JpdHlfaGlnaCcpLFxuICAgICAgW1NjaGVkdWxlUHJpb3JpdHkuQ3JpdGljYWxdOiB0aGlzLnQudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5wcmlvcml0eV9jcml0aWNhbCcpXG4gICAgfTtcbiAgICByZXR1cm4gbGFiZWxzW3ByaW9yaXR5XSA/PyBwcmlvcml0eTtcbiAgfVxuXG4gIGdldFByaW9yaXR5U2V2ZXJpdHkocHJpb3JpdHk6IHN0cmluZyB8IFNjaGVkdWxlUHJpb3JpdHkgfCB1bmRlZmluZWQpOiBQcmlvcml0eVNldmVyaXR5IHtcbiAgICBpZiAoIXByaW9yaXR5KSB7IHJldHVybiAnaW5mbyc7IH1cbiAgICBjb25zdCBzZXZlcml0aWVzOiBSZWNvcmQ8c3RyaW5nLCBQcmlvcml0eVNldmVyaXR5PiA9IHtcbiAgICAgIFtTY2hlZHVsZVByaW9yaXR5Lkxvd106ICdpbmZvJyxcbiAgICAgIFtTY2hlZHVsZVByaW9yaXR5Lk1lZGl1bV06ICdzdWNjZXNzJyxcbiAgICAgIFtTY2hlZHVsZVByaW9yaXR5LkhpZ2hdOiAnd2FybicsXG4gICAgICBbU2NoZWR1bGVQcmlvcml0eS5Dcml0aWNhbF06ICdkYW5nZXInXG4gICAgfTtcbiAgICByZXR1cm4gc2V2ZXJpdGllc1twcmlvcml0eV0gPz8gJ2luZm8nO1xuICB9XG5cbiAgZ2V0UmVjdXJyZW5jZUxhYmVsKHJlY3VycmVuY2U6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgaWYgKCFyZWN1cnJlbmNlKSB7XG4gICAgICByZXR1cm4gdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZV9ub25lJyk7XG4gICAgfVxuICAgIGNvbnN0IGxhYmVsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICdOT05FJzogdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZV9ub25lJyksXG4gICAgICAnREFJTFknOiB0aGlzLnQudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5yZWN1cnJlbmNlX2RhaWx5JyksXG4gICAgICAnV0VFS0xZJzogdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZV93ZWVrbHknKSxcbiAgICAgICdNT05USExZJzogdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZV9tb250aGx5JyksXG4gICAgICAnWUVBUkxZJzogdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZV95ZWFybHknKSxcbiAgICAgICdDVVNUT00nOiB0aGlzLnQudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5yZWN1cnJlbmNlX2N1c3RvbScpXG4gICAgfTtcbiAgICByZXR1cm4gbGFiZWxzW3JlY3VycmVuY2VdID8/IHJlY3VycmVuY2U7XG4gIH1cblxuICBnZXRPcmdhbml6ZXJOYW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgb3JnYW5pemVyID0gdGhpcy5zY2hlZHVsZT8ucGFydGljaXBhbnRzPy5maW5kKChwOiBTY2hlZHVsZVBhcnRpY2lwYW50KSA9PiBwLm9yZ2FuaXplcik7XG4gICAgcmV0dXJuIG9yZ2FuaXplcj8uY29sbGFib3JhdG9yPy5uYW1lID8/IHRoaXMudC50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLm5vdF9pbmZvcm1lZCcpO1xuICB9XG5cbiAgZ2V0UGFydGljaXBhbnRzQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zY2hlZHVsZT8ucGFydGljaXBhbnRzPy5maWx0ZXIoKHA6IFNjaGVkdWxlUGFydGljaXBhbnQpID0+ICFwLm9yZ2FuaXplcikubGVuZ3RoID8/IDA7XG4gIH1cblxuICBnZXRQYXJ0aWNpcGFudHNMaXN0KCk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFydGljaXBhbnRzID0gdGhpcy5zY2hlZHVsZT8ucGFydGljaXBhbnRzPy5maWx0ZXIoKHA6IFNjaGVkdWxlUGFydGljaXBhbnQpID0+ICFwLm9yZ2FuaXplcikgPz8gW107XG4gICAgaWYgKHBhcnRpY2lwYW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLnQudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5ub19wYXJ0aWNpcGFudHMnKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcnRpY2lwYW50cy5tYXAoKHA6IFNjaGVkdWxlUGFydGljaXBhbnQpID0+IHAuY29sbGFib3JhdG9yPy5uYW1lID8/IHRoaXMudC50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLm5vX25hbWUnKSkuam9pbignLCAnKTtcbiAgfVxuXG4gIGdldENvbmZpcm1hdGlvbkxhYmVsKGNvbmZpcm1hdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoIWNvbmZpcm1hdGlvbikgeyByZXR1cm4gJyc7IH1cbiAgICBjb25zdCBsYWJlbHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAnQ09ORklSTUVEJzogdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUuc3RhdHVzX2FjY2VwdGVkJyksXG4gICAgICAnREVDTElORUQnOiB0aGlzLnQudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5zdGF0dXNfcmVqZWN0ZWQnKVxuICAgIH07XG4gICAgcmV0dXJuIGxhYmVsc1tjb25maXJtYXRpb25dID8/IHRoaXMudC50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnN0YXR1c19wZW5kaW5nJyk7XG4gIH1cblxuICBnZXRDb25maXJtYXRpb25TZXZlcml0eShjb25maXJtYXRpb246IHN0cmluZyB8IHVuZGVmaW5lZCk6ICdzdWNjZXNzJyB8ICdkYW5nZXInIHwgJ3dhcm4nIHtcbiAgICBjb25zdCBzZXZlcml0aWVzOiBSZWNvcmQ8c3RyaW5nLCAnc3VjY2VzcycgfCAnZGFuZ2VyJyB8ICd3YXJuJz4gPSB7XG4gICAgICAnQ09ORklSTUVEJzogJ3N1Y2Nlc3MnLFxuICAgICAgJ0RFQ0xJTkVEJzogJ2RhbmdlcidcbiAgICB9O1xuICAgIHJldHVybiBzZXZlcml0aWVzW2NvbmZpcm1hdGlvbiA/PyAnJ10gPz8gJ3dhcm4nO1xuICB9XG59XG4iLCI8cC1kaWFsb2dcbiAgWyh2aXNpYmxlKV09XCJ2aXNpYmxlXCJcbiAgW21vZGFsXT1cInRydWVcIlxuICBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcbiAgW3Jlc2l6YWJsZV09XCJmYWxzZVwiXG4gIFtzdHlsZUNsYXNzXT1cIidzY2hlZHVsZS1kZXRhaWwtZGlhbG9nJ1wiXG4gIFtoZWFkZXJdPVwiZGlhbG9nSGVhZGVyXCJcbiAgKG9uSGlkZSk9XCJjbG9zZURpYWxvZygpXCI+XG4gIFxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXJcIj5cbiAgICAgIDxoMz57eyBkaWFsb2dIZWFkZXIgfX08L2gzPlxuICAgICAgPHAtdGFnIFxuICAgICAgICAqbmdJZj1cInNjaGVkdWxlPy5wcmlvcml0eVwiXG4gICAgICAgIFtzZXZlcml0eV09XCJnZXRQcmlvcml0eVNldmVyaXR5KHNjaGVkdWxlPy5wcmlvcml0eSlcIlxuICAgICAgICBbdmFsdWVdPVwiZ2V0UHJpb3JpdHlMYWJlbChzY2hlZHVsZT8ucHJpb3JpdHkpXCI+XG4gICAgICA8L3AtdGFnPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1kZXRhaWwtY29udGVudFwiICpuZ0lmPVwic2NoZWR1bGVcIj5cbiAgICBcbiAgICA8IS0tIEluZm9ybWHDp8O1ZXMgQsOhc2ljYXMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRldGFpbC1zZWN0aW9uXCI+XG4gICAgICA8aDQgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+e3sgJ3NyLnNjaGVkdWxlLmJhc2ljX2luZm8nIHwgdHJhbnNsYXRlIH19PC9oND5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1yb3dcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtbGFiZWxcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWNhbGVuZGFyXCI+PC9pPlxuICAgICAgICAgIHt7ICdzci5zY2hlZHVsZS50eXBlJyB8IHRyYW5zbGF0ZSB9fTpcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC12YWx1ZVwiPnt7IHNjaGVkdWxlLnR5cGU/Lm5hbWUgPz8gKCdzci5zY2hlZHVsZS5ub3RfaW5mb3JtZWQnIHwgdHJhbnNsYXRlKSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktY2xvY2tcIj48L2k+XG4gICAgICAgICAge3sgJ3NyLnNjaGVkdWxlLndoZW5fb2NjdXJzJyB8IHRyYW5zbGF0ZSB9fTpcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC12YWx1ZVwiPnt7IHNjaGVkdWxlLndoZW5PY2N1cnMgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1yb3dcIiAqbmdJZj1cInNjaGVkdWxlLmR1cmF0aW9uXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGV0YWlsLWxhYmVsXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1ob3VyZ2xhc3NcIj48L2k+XG4gICAgICAgICAge3sgJ3NyLnNjaGVkdWxlLmR1cmF0aW9uJyB8IHRyYW5zbGF0ZSB9fTpcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC12YWx1ZVwiPnt7IHNjaGVkdWxlLmR1cmF0aW9uIH19IHt7ICdzci5zY2hlZHVsZS5taW51dGVzJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktcmVmcmVzaFwiPjwvaT5cbiAgICAgICAgICB7eyAnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZScgfCB0cmFuc2xhdGUgfX06XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtdmFsdWVcIj57eyBnZXRSZWN1cnJlbmNlTGFiZWwoc2NoZWR1bGUucmVjdXJyZW5jZSkgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxwLWRpdmlkZXI+PC9wLWRpdmlkZXI+XG5cbiAgICA8IS0tIERlc2NyacOnw6NvIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtc2VjdGlvblwiICpuZ0lmPVwic2NoZWR1bGUuZGVzY3JpcHRpb25cIj5cbiAgICAgIDxoNCBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj57eyAnc3Iuc2NoZWR1bGUuZGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlIH19PC9oND5cbiAgICAgIDxwIGNsYXNzPVwiZGVzY3JpcHRpb24tdGV4dFwiPnt7IHNjaGVkdWxlLmRlc2NyaXB0aW9uIH19PC9wPlxuICAgIDwvZGl2PlxuXG4gICAgPHAtZGl2aWRlciAqbmdJZj1cInNjaGVkdWxlLmRlc2NyaXB0aW9uXCI+PC9wLWRpdmlkZXI+XG5cbiAgICA8IS0tIFBhcnRpY2lwYW50ZXMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRldGFpbC1zZWN0aW9uXCI+XG4gICAgICA8aDQgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+e3sgJ3NyLnNjaGVkdWxlLnBhcnRpY2lwYW50cycgfCB0cmFuc2xhdGUgfX08L2g0PlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktdXNlclwiPjwvaT5cbiAgICAgICAgICB7eyAnc3Iuc2NoZWR1bGUub3JnYW5pemVyJyB8IHRyYW5zbGF0ZSB9fTpcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC12YWx1ZVwiPnt7IGdldE9yZ2FuaXplck5hbWUoKSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktdXNlcnNcIj48L2k+XG4gICAgICAgICAge3sgJ3NyLnNjaGVkdWxlLnBhcnRpY2lwYW50cycgfCB0cmFuc2xhdGUgfX0gKHt7IGdldFBhcnRpY2lwYW50c0NvdW50KCkgfX0pOlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cInBhcnRpY2lwYW50cy1saXN0XCIgKm5nSWY9XCJnZXRQYXJ0aWNpcGFudHNDb3VudCgpID4gMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicGFydGljaXBhbnQtaXRlbVwiICpuZ0Zvcj1cImxldCBwYXJ0aWNpcGFudCBvZiBzY2hlZHVsZS5wYXJ0aWNpcGFudHNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXBhcnRpY2lwYW50Lm9yZ2FuaXplclwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS11c2VyXCI+PC9pPlxuICAgICAgICAgICAgPHNwYW4+e3sgcGFydGljaXBhbnQuY29sbGFib3JhdG9yPy5uYW1lID8/ICgnc3Iuc2NoZWR1bGUubm9fbmFtZScgfCB0cmFuc2xhdGUpIH19PC9zcGFuPlxuICAgICAgICAgICAgPHAtdGFnIFxuICAgICAgICAgICAgICAqbmdJZj1cInBhcnRpY2lwYW50LmNvbmZpcm1hdGlvblwiXG4gICAgICAgICAgICAgIFtzZXZlcml0eV09XCJnZXRDb25maXJtYXRpb25TZXZlcml0eShwYXJ0aWNpcGFudC5jb25maXJtYXRpb24pXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImdldENvbmZpcm1hdGlvbkxhYmVsKHBhcnRpY2lwYW50LmNvbmZpcm1hdGlvbilcIlxuICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwicGFydGljaXBhbnQtc3RhdHVzXCI+XG4gICAgICAgICAgICA8L3AtdGFnPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHAgY2xhc3M9XCJuby1wYXJ0aWNpcGFudHNcIiAqbmdJZj1cImdldFBhcnRpY2lwYW50c0NvdW50KCkgPT09IDBcIj5cbiAgICAgICAge3sgJ3NyLnNjaGVkdWxlLm5vX3BhcnRpY2lwYW50c19iZXNpZGVzX29yZ2FuaXplcicgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cblxuICAgIDxwLWRpdmlkZXI+PC9wLWRpdmlkZXI+XG5cbiAgICA8IS0tIExvY2FsIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtc2VjdGlvblwiICpuZ0lmPVwic2NoZWR1bGUubG9jYXRpb25cIj5cbiAgICAgIDxoNCBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj57eyAnc3Iuc2NoZWR1bGUubG9jYXRpb24nIHwgdHJhbnNsYXRlIH19PC9oND5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtcm93XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGV0YWlsLWxhYmVsXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1tYXAtbWFya2VyXCI+PC9pPlxuICAgICAgICAgIHt7ICdzci5zY2hlZHVsZS5hZGRyZXNzJyB8IHRyYW5zbGF0ZSB9fTpcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC12YWx1ZVwiPnt7IHNjaGVkdWxlLmxvY2F0aW9uIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIE9ic2VydmHDp8O1ZXMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRldGFpbC1zZWN0aW9uXCIgKm5nSWY9XCJzY2hlZHVsZS5vYnNlcnZhdGlvbnNcIj5cbiAgICAgIDxoNCBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj57eyAnc3Iuc2NoZWR1bGUubm90ZXMnIHwgdHJhbnNsYXRlIH19PC9oND5cbiAgICAgIDxwIGNsYXNzPVwib2JzZXJ2YXRpb25zLXRleHRcIj57eyBzY2hlZHVsZS5vYnNlcnZhdGlvbnMgfX08L3A+XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctZm9vdGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLWxlZnRcIj5cbiAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAqbmdJZj1cInNob3dEZWxldGVCdXR0b25cIlxuICAgICAgICAgIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIFxuICAgICAgICAgIFtsYWJlbF09XCInc3Iuc2NoZWR1bGUuZGVsZXRlJyB8IHRyYW5zbGF0ZVwiIFxuICAgICAgICAgIGljb249XCJwaSBwaS10cmFzaFwiXG4gICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1kYW5nZXIgcC1idXR0b24tdGV4dFwiXG4gICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVNjaGVkdWxlKClcIj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXItcmlnaHRcIj5cbiAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAqbmdJZj1cInNob3dSZWplY3RCdXR0b25cIlxuICAgICAgICAgIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIFxuICAgICAgICAgIFtsYWJlbF09XCInc3Iuc2NoZWR1bGUucmVqZWN0JyB8IHRyYW5zbGF0ZVwiIFxuICAgICAgICAgIGljb249XCJwaSBwaS10aW1lc1wiXG4gICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi13YXJuaW5nXCJcbiAgICAgICAgICAoY2xpY2spPVwicmVqZWN0U2NoZWR1bGUoKVwiPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAqbmdJZj1cInNob3dDYW5jZWxCdXR0b25cIlxuICAgICAgICAgIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIFxuICAgICAgICAgIFtsYWJlbF09XCInc3Iuc2NoZWR1bGUuY2FuY2VsJyB8IHRyYW5zbGF0ZVwiIFxuICAgICAgICAgIGljb249XCJwaSBwaS1iYW5cIlxuICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tc2Vjb25kYXJ5XCJcbiAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsU2NoZWR1bGUoKVwiPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAqbmdJZj1cInNob3dBY2NlcHRCdXR0b25cIlxuICAgICAgICAgIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIFxuICAgICAgICAgIFtsYWJlbF09XCInc3Iuc2NoZWR1bGUuYWNjZXB0JyB8IHRyYW5zbGF0ZVwiIFxuICAgICAgICAgIGljb249XCJwaSBwaS1jaGVja1wiXG4gICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1zdWNjZXNzXCJcbiAgICAgICAgICAoY2xpY2spPVwiYWNjZXB0U2NoZWR1bGUoKVwiPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAqbmdJZj1cInNob3dFZGl0QnV0dG9uXCJcbiAgICAgICAgICBwQnV0dG9uIHR5cGU9XCJidXR0b25cIiBcbiAgICAgICAgICBbbGFiZWxdPVwiJ3NyLnNjaGVkdWxlLmVkaXRfc2NoZWR1bGUnIHwgdHJhbnNsYXRlXCIgXG4gICAgICAgICAgaWNvbj1cInBpIHBpLXBlbmNpbFwiXG4gICAgICAgICAgKGNsaWNrKT1cImVkaXRTY2hlZHVsZSgpXCI+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIFxuICAgICAgICAgIFtsYWJlbF09XCInc3Iuc2NoZWR1bGUuY2xvc2UnIHwgdHJhbnNsYXRlXCIgXG4gICAgICAgICAgaWNvbj1cInBpIHBpLXRpbWVzXCJcbiAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHRcIlxuICAgICAgICAgIChjbGljayk9XCJjbG9zZURpYWxvZygpXCI+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbjwvcC1kaWFsb2c+XG5cbjxwLWNvbmZpcm1EaWFsb2c+PC9wLWNvbmZpcm1EaWFsb2c+XG4iXX0=
|
|
@@ -2,8 +2,5 @@
|
|
|
2
2
|
export { ScheduleFormComponent, ScheduleDetailComponent } from './components';
|
|
3
3
|
// Services
|
|
4
4
|
export { ScheduleService, ScheduleTypeService } from './services';
|
|
5
|
-
// Translation
|
|
6
|
-
export { ScheduleTranslationService } from '../../services/translation/translation.service';
|
|
7
|
-
export { ScheduleTranslatePipe } from '../../services/translation/translate.pipe';
|
|
8
5
|
export { SchedulePriority, ScheduleRecurrence, WeekDay, Month, RepeatWhen, OrdinalWeekDay, ParticipantConfirmation } from './models';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NjaGVkdWxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGFBQWE7QUFDYixPQUFPLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHOUUsV0FBVztBQUNYLE9BQU8sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFVbEUsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsT0FBTyxFQUNQLEtBQUssRUFDTCxVQUFVLEVBQ1YsY0FBYyxFQUNkLHVCQUF1QixFQUN4QixNQUFNLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvbXBvbmVudHNcbmV4cG9ydCB7IFNjaGVkdWxlRm9ybUNvbXBvbmVudCwgU2NoZWR1bGVEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuZXhwb3J0IHR5cGUgeyBTY2hlZHVsZURldGFpbEFjdGlvbiwgU2NoZWR1bGVXaXRoUGFydGljaXBhbnRzIH0gZnJvbSAnLi9jb21wb25lbnRzL3NjaGVkdWxlLWRldGFpbC5jb21wb25lbnQnO1xuXG4vLyBTZXJ2aWNlc1xuZXhwb3J0IHsgU2NoZWR1bGVTZXJ2aWNlLCBTY2hlZHVsZVR5cGVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcyc7XG5cbi8vIE1vZGVscyAoaW50ZXJmYWNlcywgZW51bXMsIHR5cGVzKVxuZXhwb3J0IHR5cGUgeyBcbiAgU2NoZWR1bGUsIFxuICBTY2hlZHVsZVR5cGUsIFxuICBTY2hlZHVsZVBhcnRpY2lwYW50LCBcbiAgUGFydGljaXBhbnRMb29rdXAsIFxuICBQYXJ0aWNpcGFudE9yaWdpblxufSBmcm9tICcuL21vZGVscyc7XG5leHBvcnQgeyBcbiAgU2NoZWR1bGVQcmlvcml0eSwgXG4gIFNjaGVkdWxlUmVjdXJyZW5jZSwgXG4gIFdlZWtEYXksIFxuICBNb250aCwgXG4gIFJlcGVhdFdoZW4sIFxuICBPcmRpbmFsV2Vla0RheSwgXG4gIFBhcnRpY2lwYW50Q29uZmlybWF0aW9uIFxufSBmcm9tICcuL21vZGVscyc7XG4iXX0=
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -7,7 +7,6 @@ export { StorageService } from './lib/services/storage/storage.service';
|
|
|
7
7
|
export { CurrentCollaboratorService } from './lib/services/current-collaborator/current-collaborator.service';
|
|
8
8
|
// Schedule Package (componentes + serviços + models + enums)
|
|
9
9
|
export { ScheduleFormComponent, ScheduleDetailComponent } from './lib/components/schedule';
|
|
10
|
-
export { ScheduleService, ScheduleTypeService
|
|
11
|
-
export { ScheduleTranslatePipe } from './lib/components/schedule';
|
|
10
|
+
export { ScheduleService, ScheduleTypeService } from './lib/components/schedule';
|
|
12
11
|
export { SchedulePriority, ScheduleRecurrence, WeekDay, Month, RepeatWhen, OrdinalWeekDay, ParticipantConfirmation } from './lib/components/schedule';
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTFFLFdBQVc7QUFDWCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFZOUcsNkRBQTZEO0FBQzdELE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3hCLE1BQU0sMkJBQTJCLENBQUM7QUFPbkMsT0FBTyxFQUNMLGVBQWUsRUFDZixtQkFBbUIsRUFDcEIsTUFBTSwyQkFBMkIsQ0FBQztBQVVuQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixPQUFPLEVBQ1AsS0FBSyxFQUNMLFVBQVUsRUFDVixjQUFjLEVBQ2QsdUJBQXVCLEVBQ3hCLE1BQU0sMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIEBzZW5pb3ItZ2VzdGFvLXJlbGFjaW9uYW1lbnRvL2FuZ3VsYXItY29tcG9uZW50c1xuICovXG5cbmV4cG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlIH0gZnJvbSAnLi9saWIvYW5ndWxhci1jb21wb25lbnRzLm1vZHVsZSc7XG5cbi8vIFNlcnZpY2VzXG5leHBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vbGliL3NlcnZpY2VzL3N0b3JhZ2Uvc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCB7IEN1cnJlbnRDb2xsYWJvcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi9saWIvc2VydmljZXMvY3VycmVudC1jb2xsYWJvcmF0b3IvY3VycmVudC1jb2xsYWJvcmF0b3Iuc2VydmljZSc7XG5cbi8vIE1vZGVsc1xuZXhwb3J0IHR5cGUge1xuICBDb2xsYWJvcmF0b3IsXG4gIENvbGxhYm9yYXRvckxlYWRlcixcbiAgQ29sbGFib3JhdG9yQnJhbmNoLFxuICBCcmFuY2gsXG4gIENvbXBhbnksXG4gIEpvYlRpdGxlXG59IGZyb20gJy4vbGliL3NlcnZpY2VzL2N1cnJlbnQtY29sbGFib3JhdG9yL21vZGVscy9jb2xsYWJvcmF0b3IubW9kZWwnO1xuXG4vLyBTY2hlZHVsZSBQYWNrYWdlIChjb21wb25lbnRlcyArIHNlcnZpw6dvcyArIG1vZGVscyArIGVudW1zKVxuZXhwb3J0IHsgXG4gIFNjaGVkdWxlRm9ybUNvbXBvbmVudCxcbiAgU2NoZWR1bGVEZXRhaWxDb21wb25lbnRcbn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zY2hlZHVsZSc7XG5cbmV4cG9ydCB0eXBlIHtcbiAgU2NoZWR1bGVEZXRhaWxBY3Rpb24sXG4gIFNjaGVkdWxlV2l0aFBhcnRpY2lwYW50c1xufSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NjaGVkdWxlJztcblxuZXhwb3J0IHsgXG4gIFNjaGVkdWxlU2VydmljZSxcbiAgU2NoZWR1bGVUeXBlU2VydmljZVxufSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NjaGVkdWxlJztcblxuZXhwb3J0IHR5cGUge1xuICBTY2hlZHVsZSxcbiAgU2NoZWR1bGVUeXBlLFxuICBTY2hlZHVsZVBhcnRpY2lwYW50LFxuICBQYXJ0aWNpcGFudExvb2t1cCxcbiAgUGFydGljaXBhbnRPcmlnaW5cbn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zY2hlZHVsZSc7XG5cbmV4cG9ydCB7XG4gIFNjaGVkdWxlUHJpb3JpdHksXG4gIFNjaGVkdWxlUmVjdXJyZW5jZSxcbiAgV2Vla0RheSxcbiAgTW9udGgsXG4gIFJlcGVhdFdoZW4sXG4gIE9yZGluYWxXZWVrRGF5LFxuICBQYXJ0aWNpcGFudENvbmZpcm1hdGlvblxufSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NjaGVkdWxlJztcbiJdfQ==
|