@bizdoc/core 1.8.16 → 1.8.20
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/assets/bizdoc-schema.json +1 -1
- package/assets/themes/brown.min.css +1 -1
- package/assets/themes/dark.min.css +1 -1
- package/assets/themes/default.min.css +1 -1
- package/assets/themes/green.min.css +1 -1
- package/assets/themes/indigo.min.css +1 -1
- package/bundles/bizdoc-core.umd.js +787 -613
- package/bundles/bizdoc-core.umd.js.map +1 -1
- package/esm2015/lib/admin/document-trace/document-trace.component.js +2 -3
- package/esm2015/lib/admin/form/workflow/workflow.component.js +35 -26
- package/esm2015/lib/app.component.js +2 -9
- package/esm2015/lib/browse/browse-items.component.js +13 -8
- package/esm2015/lib/browse/expanded-item/expanded-item.component.js +2 -2
- package/esm2015/lib/chat/chat-info.js +4 -2
- package/esm2015/lib/compose/trace/flow.component.js +23 -14
- package/esm2015/lib/compose/trace/trace.base.js +4 -7
- package/esm2015/lib/compose/trace/trace.component.js +178 -130
- package/esm2015/lib/compose/trace/trace.pane.component.js +5 -1
- package/esm2015/lib/core/layout/layout.component.js +25 -11
- package/esm2015/lib/core/models.js +3 -1
- package/esm2015/lib/core/slots/pane-ref.js +10 -7
- package/esm2015/lib/core/slots/router.service.js +1 -1
- package/esm2015/lib/core/slots/slots.component.js +29 -25
- package/esm2015/lib/core/tagging/edit-input.component.js +3 -3
- package/esm2015/lib/core/tagging/tagging.pipe.js +2 -2
- package/esm2015/lib/core/translate.service.js +13 -7
- package/esm2015/lib/cube/explore/explore-items.component.js +2 -2
- package/esm2015/lib/cube/pivot/pivot.component.js +7 -2
- package/esm2015/lib/dashboard/recents/recents.widget.js +20 -11
- package/esm2015/lib/home/home-base.component.js +6 -1
- package/esm2015/lib/modules/chart.module.js +35 -0
- package/esm2015/lib/{circular-gauge.module.js → modules/circular-gauge.module.js} +1 -1
- package/esm2015/lib/modules/diagram.module.js +34 -0
- package/esm2015/lib/modules/grid.module.js +23 -0
- package/esm2015/lib/modules/pivot.module.js +23 -0
- package/esm2015/lib/{schedule.module.js → modules/schedule.module.js} +1 -1
- package/esm2015/lib/modules/spreadsheet.module.js +28 -0
- package/esm2015/lib/options/options.component.js +6 -6
- package/esm2015/lib/shared.module.js +8 -12
- package/esm2015/lib/system.module.js +3 -3
- package/fesm2015/bizdoc-core.js +513 -421
- package/fesm2015/bizdoc-core.js.map +1 -1
- package/lib/admin/form/workflow/workflow.component.d.ts +2 -2
- package/lib/browse/browse-items.component.d.ts +1 -1
- package/lib/chat/chat-info.d.ts +1 -0
- package/lib/compose/trace/trace.component.d.ts +0 -9
- package/lib/core/models.d.ts +3 -1
- package/lib/core/slots/pane-ref.d.ts +5 -3
- package/lib/core/slots/router.service.d.ts +1 -0
- package/lib/core/slots/slots.component.d.ts +3 -1
- package/lib/core/tagging/edit-input.component.d.ts +1 -1
- package/lib/core/tagging/tagging.pipe.d.ts +1 -1
- package/lib/dashboard/recents/recents.widget.d.ts +1 -0
- package/lib/{chart.module.d.ts → modules/chart.module.d.ts} +0 -0
- package/lib/{circular-gauge.module.d.ts → modules/circular-gauge.module.d.ts} +0 -0
- package/lib/{diagram.module.d.ts → modules/diagram.module.d.ts} +0 -0
- package/lib/{grid.module.d.ts → modules/grid.module.d.ts} +0 -0
- package/lib/{pivot.module.d.ts → modules/pivot.module.d.ts} +0 -0
- package/lib/{schedule.module.d.ts → modules/schedule.module.d.ts} +0 -0
- package/lib/{spreadsheet.module.d.ts → modules/spreadsheet.module.d.ts} +0 -0
- package/lib/options/options.component.d.ts +1 -2
- package/lib/shared.module.d.ts +12 -13
- package/lib/system.module.d.ts +2 -2
- package/package.json +1 -3
- package/esm2015/lib/chart.module.js +0 -35
- package/esm2015/lib/diagram.module.js +0 -34
- package/esm2015/lib/grid.module.js +0 -23
- package/esm2015/lib/linear-gauge.module.js +0 -17
- package/esm2015/lib/pivot.module.js +0 -24
- package/esm2015/lib/spreadsheet.module.js +0 -28
- package/lib/linear-gauge.module.d.ts +0 -7
@@ -1,7 +1,5 @@
|
|
1
1
|
import { __awaiter } from "tslib";
|
2
2
|
import { Component, Input, Output, EventEmitter } from "@angular/core";
|
3
|
-
import { forkJoin, of } from "rxjs";
|
4
|
-
import { tap, map } from "rxjs/operators";
|
5
3
|
import { TraceBase } from "./trace.base";
|
6
4
|
import * as i0 from "@angular/core";
|
7
5
|
import * as i1 from "../../core/session.service";
|
@@ -15,8 +13,9 @@ import * as i8 from "@angular/common";
|
|
15
13
|
import * as i9 from "../../core/popup/tooltip.directive";
|
16
14
|
import * as i10 from "../../core/pipes/sanitize-html.pipe";
|
17
15
|
import * as i11 from "../../core/pipes/translate.pipe";
|
18
|
-
import * as i12 from "../../core/pipes/
|
19
|
-
import * as i13 from "
|
16
|
+
import * as i12 from "../../core/pipes/action.pipe";
|
17
|
+
import * as i13 from "../../core/pipes/duration.pipe";
|
18
|
+
import * as i14 from "ngx-moment";
|
20
19
|
const moment = require('moment');
|
21
20
|
const You = 'you';
|
22
21
|
/** component showing trace table */
|
@@ -45,76 +44,135 @@ export class TraceViewComponent extends TraceBase {
|
|
45
44
|
});
|
46
45
|
return __awaiter(this, void 0, void 0, function* () {
|
47
46
|
const { ownerId, ownerById, issued, log, recipients } = this.model;
|
48
|
-
const
|
49
|
-
|
50
|
-
|
51
|
-
time: issued
|
52
|
-
}, trace = [node];
|
53
|
-
const profiles = [this._userOf(ownerId)];
|
54
|
-
ownerById &&
|
55
|
-
profiles.push(this._userOf(ownerById));
|
56
|
-
const observe = forkJoin(profiles).pipe(tap(ns => {
|
57
|
-
const [who, by] = ns;
|
58
|
-
if (by) {
|
59
|
-
node.name = by === You ?
|
60
|
-
this._translate.get('ByYou', this._nameOf(who))
|
61
|
-
: this._translate.get('By', this._nameOf(who), this._nameOf(by));
|
62
|
-
if (by !== You && by.role)
|
63
|
-
node.role = by.role;
|
64
|
-
}
|
65
|
-
else {
|
66
|
-
node.name = this._nameOf(who);
|
67
|
-
if (who !== You && who.role)
|
68
|
-
node.role = who.role;
|
69
|
-
}
|
70
|
-
}));
|
71
|
-
observables.push(observe);
|
72
|
-
log.forEach(l => {
|
47
|
+
const trace = [];
|
48
|
+
for (let i = 0; i < log.length; i++) {
|
49
|
+
let l = log[i];
|
73
50
|
let action;
|
74
51
|
switch (l.type) {
|
75
52
|
case 'ActionTaken':
|
76
53
|
{
|
77
54
|
action = this._session.profile.actions.find(a => a.name === l.action);
|
78
55
|
if (action && action.loggable === false)
|
79
|
-
|
56
|
+
continue;
|
80
57
|
break;
|
81
58
|
}
|
82
59
|
case 'ModelChange':
|
83
60
|
break;
|
61
|
+
case 'Submit':
|
62
|
+
if (l.estimate)
|
63
|
+
continue;
|
64
|
+
const node = {
|
65
|
+
type: 'Owner',
|
66
|
+
time: l.time
|
67
|
+
};
|
68
|
+
if (ownerById) {
|
69
|
+
const owner = yield this._userOf(ownerId).toPromise();
|
70
|
+
if (ownerById === this._session.userId)
|
71
|
+
node.name = this._translate.get('ByYou', this._nameOf(owner));
|
72
|
+
else {
|
73
|
+
const by = yield this._userOf(ownerById).toPromise();
|
74
|
+
node.name = this._translate.get('By', this._nameOf(owner), this._nameOf(by));
|
75
|
+
if (by.role)
|
76
|
+
node.role = by.role;
|
77
|
+
}
|
78
|
+
}
|
79
|
+
else {
|
80
|
+
if (ownerId === this._session.userId)
|
81
|
+
node.name = this._translate.get('You');
|
82
|
+
else {
|
83
|
+
const owner = yield this._userOf(ownerId).toPromise();
|
84
|
+
node.name = this._nameOf(owner);
|
85
|
+
if (owner.role)
|
86
|
+
node.role = owner.role;
|
87
|
+
}
|
88
|
+
}
|
89
|
+
trace.push(node);
|
90
|
+
continue;
|
84
91
|
default:
|
85
|
-
|
92
|
+
continue;
|
86
93
|
}
|
87
94
|
const step = Object.assign({}, l);
|
88
|
-
const
|
89
|
-
profiles.push(l.byId ? this._userOf(l.byId) : of(null));
|
95
|
+
const who = yield this._userOf(l.userId).toPromise();
|
90
96
|
if (l.recipientId) {
|
91
97
|
const recipient = recipients.find(r => r.id === l.recipientId);
|
92
98
|
if (recipient.role)
|
93
99
|
step.role = this._roleName(recipient.role);
|
94
|
-
recipient.substitutingId &&
|
95
|
-
profiles.push(this._userOf(recipient.substitutingId));
|
96
100
|
if (recipient.nodeId) {
|
97
101
|
const node = this.model.workflow.nodes.find(n => n.id === recipient.nodeId);
|
98
102
|
step.fyi = node && node.fyi;
|
99
103
|
}
|
104
|
+
if (recipient.substitutingId) {
|
105
|
+
let substituting = yield this._userOf(recipient.substitutingId).toPromise();
|
106
|
+
if (l.byId) {
|
107
|
+
if (l.byId === this._session.userId) {
|
108
|
+
if (recipient.substitutingId === this._session.userId)
|
109
|
+
step.name = this._translate.get('ByYou', this._nameOf(who));
|
110
|
+
else
|
111
|
+
step.name = this._translate.personalize('SubstitutingByYou', who.gender, this._nameOf(who), this._nameOf(substituting));
|
112
|
+
if (action)
|
113
|
+
step.action = action ? this._actionName(action, You) : l.action;
|
114
|
+
}
|
115
|
+
else {
|
116
|
+
let by = yield this._userOf(l.byId).toPromise();
|
117
|
+
step.name = this._translate.get('SubstitutingBy', this._nameOf(who), this._nameOf(substituting), this._nameOf(by));
|
118
|
+
if (by.role)
|
119
|
+
step.role = by.role;
|
120
|
+
if (action)
|
121
|
+
step.action = action ? this._actionName(action, by) : l.action;
|
122
|
+
}
|
123
|
+
}
|
124
|
+
else {
|
125
|
+
if (recipient.substitutingId === this._session.userId)
|
126
|
+
step.name = this._translate.personalize('SubstitutingForYou', who.gender, this._nameOf(who));
|
127
|
+
else if (l.userId === this._session.userId)
|
128
|
+
step.name = this._translate.personalize('YouSubstitute', this._session.profile.byGender, this._nameOf(who));
|
129
|
+
else {
|
130
|
+
step.name = this._translate.personalize('Substituting', who.gender, this._nameOf(who), this._nameOf(substituting));
|
131
|
+
if (who.role)
|
132
|
+
step.role = who.role;
|
133
|
+
}
|
134
|
+
if (action)
|
135
|
+
step.action = action ? this._actionName(action, who) : l.action;
|
136
|
+
}
|
137
|
+
}
|
138
|
+
else if (l.byId) {
|
139
|
+
if (l.byId === this._session.userId) {
|
140
|
+
step.name = this._translate.get('ByYou', this._nameOf(who));
|
141
|
+
if (action)
|
142
|
+
step.action = action ? this._actionName(action, You) : l.action;
|
143
|
+
}
|
144
|
+
else {
|
145
|
+
let by = yield this._userOf(l.byId).toPromise();
|
146
|
+
step.name = this._translate.get('By', this._nameOf(who), this._nameOf(by));
|
147
|
+
if (by.role)
|
148
|
+
step.role = by.role;
|
149
|
+
if (action)
|
150
|
+
step.action = action ? this._actionName(action, by) : l.action;
|
151
|
+
}
|
152
|
+
}
|
100
153
|
}
|
101
|
-
|
102
|
-
|
103
|
-
|
154
|
+
else {
|
155
|
+
if (l.userId === this._session.userId)
|
156
|
+
step.name = this._translate.get('You');
|
157
|
+
else {
|
158
|
+
step.name = this._nameOf(who);
|
159
|
+
if (who.role)
|
160
|
+
step.role = who.role;
|
161
|
+
}
|
104
162
|
if (action)
|
105
|
-
step.action = action ? this._actionName(action,
|
106
|
-
}
|
107
|
-
observables.push(observe);
|
163
|
+
step.action = action ? this._actionName(action, who) : l.action;
|
164
|
+
}
|
108
165
|
trace.push(step);
|
109
|
-
}
|
110
|
-
recipients.
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
166
|
+
}
|
167
|
+
for (var r = 0; r < recipients.length; r++) {
|
168
|
+
let recipient = recipients[r];
|
169
|
+
if (!recipient.pending && !recipient.estimate)
|
170
|
+
continue;
|
171
|
+
const step = Object.assign(Object.assign({}, recipient), { type: recipient.estimate ? 'Estimate' : 'Pending', time: recipient.received, duration: recipient.pending ? moment().diff(recipient.received, 's') : null, role: recipient.role ? this._roleName(recipient.role) : null });
|
172
|
+
if (recipient.nodeId) {
|
173
|
+
const node = this.model.workflow.nodes.find(n => n.id === recipient.nodeId);
|
116
174
|
if (node) {
|
117
|
-
if (
|
175
|
+
if (recipient.estimate) {
|
118
176
|
const { min, max } = _super._estimateTime.call(this, node);
|
119
177
|
if (max)
|
120
178
|
step.durationMin = min,
|
@@ -123,102 +181,92 @@ export class TraceViewComponent extends TraceBase {
|
|
123
181
|
step.fyi = node.fyi;
|
124
182
|
}
|
125
183
|
}
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
184
|
+
let who = yield this._userOf(recipient.userId).toPromise();
|
185
|
+
if (recipient.substitutingId) {
|
186
|
+
if (recipient.byId) {
|
187
|
+
if (recipient.byId === this._session.userId) {
|
188
|
+
if (recipient.substitutingId === this._session.userId)
|
189
|
+
step.name = this._translate.get('ByYou', this._nameOf(who));
|
190
|
+
else {
|
191
|
+
let substituting = yield this._userOf(recipient.substitutingId).toPromise();
|
192
|
+
step.name = this._translate.personalize('SubstitutingByYou', who.gender, this._nameOf(who), this._nameOf(substituting));
|
193
|
+
}
|
194
|
+
}
|
195
|
+
else {
|
196
|
+
let substituting = yield this._userOf(recipient.substitutingId).toPromise();
|
197
|
+
let by = yield this._userOf(recipient.byId).toPromise();
|
198
|
+
step.name = this._translate.get('SubstitutingBy', this._nameOf(who), this._nameOf(substituting), this._nameOf(by));
|
199
|
+
if (by.role)
|
200
|
+
step.role = by.role;
|
201
|
+
}
|
202
|
+
}
|
203
|
+
else {
|
204
|
+
if (recipient.substitutingId === this._session.userId)
|
205
|
+
step.name = this._translate.personalize('SubstitutingForYou', who.gender, this._nameOf(who));
|
206
|
+
else if (recipient.userId === this._session.userId)
|
207
|
+
step.name = this._translate.personalize('YouSubstitute', this._session.profile.byGender, this._nameOf(who));
|
208
|
+
else {
|
209
|
+
let substituting = yield this._userOf(recipient.substitutingId).toPromise();
|
210
|
+
step.name = this._translate.personalize('Substituting', who.gender, this._nameOf(who), this._nameOf(substituting));
|
211
|
+
if (who.role)
|
212
|
+
step.role = who.role;
|
213
|
+
}
|
214
|
+
}
|
215
|
+
}
|
216
|
+
else if (recipient.byId) {
|
217
|
+
if (recipient.byId === this._session.userId)
|
218
|
+
step.name = this._translate.get('ByYou', this._nameOf(who));
|
219
|
+
else {
|
220
|
+
let by = yield this._userOf(recipient.byId).toPromise();
|
221
|
+
step.name = this._translate.get('By', this._nameOf(who), this._nameOf(by));
|
222
|
+
if (by.role)
|
223
|
+
step.role = by.role;
|
224
|
+
}
|
225
|
+
}
|
226
|
+
else {
|
227
|
+
const escalations = this.model.log.filter(l => l.time > this.model.issued && l.type === 'Escalation' && l.recipientId === recipient.id);
|
228
|
+
if (escalations.length) {
|
229
|
+
let escalate = [];
|
230
|
+
for (let j = 0; j < escalations.length; j++) {
|
231
|
+
let who = yield this._userOf(escalations[j].userId);
|
232
|
+
escalate.push(who);
|
233
|
+
}
|
234
|
+
if (escalations.length === 1 && escalate[0] === this._session.userId)
|
235
|
+
step.name = this._translate.get('EscalatedByYou', this._nameOf(who));
|
236
|
+
else
|
237
|
+
step.name = this._translate.get('EscalatedBy', this._nameOf(who), this._translate.join(escalate.map(e => this._nameOf(e))));
|
238
|
+
}
|
239
|
+
else {
|
240
|
+
if (recipient.userId === this._session.userId)
|
241
|
+
step.name = this._translate.get('You');
|
242
|
+
else {
|
243
|
+
step.name = this._nameOf(who);
|
244
|
+
if (who.role)
|
245
|
+
step.role = who.role;
|
246
|
+
}
|
247
|
+
}
|
248
|
+
}
|
139
249
|
trace.push(step);
|
140
|
-
}
|
141
|
-
|
250
|
+
}
|
251
|
+
this.data = trace.sort((a, b) => a.time > b.time ? 1 : a.time === b.time ? 0 : -1);
|
142
252
|
});
|
143
253
|
}
|
144
254
|
refresh() {
|
145
255
|
this.ngOnChanges(null);
|
146
256
|
}
|
147
|
-
/**
|
148
|
-
*
|
149
|
-
* @param who
|
150
|
-
* @param by
|
151
|
-
* @param substituting
|
152
|
-
* @param escalations
|
153
|
-
* @param node
|
154
|
-
*/
|
155
|
-
_decorate(who, by, substituting, escalations, node) {
|
156
|
-
if (substituting) {
|
157
|
-
if (by) {
|
158
|
-
if (by === You) {
|
159
|
-
if (substituting === You)
|
160
|
-
node.name = this._translate.get('ByYou', this._nameOf(who));
|
161
|
-
else
|
162
|
-
node.name = this._translate.personalize('SubstitutingByYou', who.gender, this._nameOf(who), this._nameOf(substituting));
|
163
|
-
}
|
164
|
-
else
|
165
|
-
node.name = this._translate.get('SubstitutingBy', this._nameOf(who), this._nameOf(substituting), this._nameOf(by));
|
166
|
-
if (by !== You && by.role)
|
167
|
-
node.role = by.role;
|
168
|
-
}
|
169
|
-
else {
|
170
|
-
if (substituting === You)
|
171
|
-
node.name = this._translate.personalize('SubstitutingForYou', who.gender, this._nameOf(who));
|
172
|
-
else if (who === You)
|
173
|
-
node.name = this._translate.personalize('YouSubstitute', this._session.profile.byGender, this._nameOf(who));
|
174
|
-
else
|
175
|
-
node.name = this._translate.personalize('Substituting', who.gender, this._nameOf(who), this._nameOf(substituting));
|
176
|
-
if (who !== You && who.role)
|
177
|
-
node.role = who.role;
|
178
|
-
}
|
179
|
-
}
|
180
|
-
else if (by) {
|
181
|
-
if (by === You)
|
182
|
-
node.name = this._translate.get('ByYou', this._nameOf(who));
|
183
|
-
else
|
184
|
-
node.name = this._translate.get('By', this._nameOf(who), this._nameOf(by));
|
185
|
-
if (by !== You && by.role)
|
186
|
-
node.role = by.role;
|
187
|
-
}
|
188
|
-
else if (escalations.length) {
|
189
|
-
if (escalations.length === 1 && escalations[0] === You)
|
190
|
-
node.name = this._translate.get('EscalatedByYou', this._nameOf(who));
|
191
|
-
else
|
192
|
-
node.name = this._translate.get('EscalatedBy', this._nameOf(who), this._translate.join(escalations.map(e => this._nameOf(e))));
|
193
|
-
}
|
194
|
-
else {
|
195
|
-
if (who === You)
|
196
|
-
node.name =
|
197
|
-
this._translate.get('You');
|
198
|
-
else {
|
199
|
-
node.name = this._nameOf(who);
|
200
|
-
if (who.role)
|
201
|
-
node.role = who.role;
|
202
|
-
}
|
203
|
-
}
|
204
|
-
}
|
205
257
|
/**
|
206
258
|
* user name, chat anchor tag or You
|
207
259
|
* @param user
|
208
260
|
*/
|
209
261
|
_nameOf(user) {
|
210
|
-
|
211
|
-
return this._translate.get('You');
|
212
|
-
else
|
213
|
-
return this._chat.format(user);
|
262
|
+
return this._chat.format(user);
|
214
263
|
}
|
215
264
|
/**
|
216
265
|
*
|
217
266
|
* @param userId
|
218
267
|
*/
|
219
268
|
_userOf(userId) {
|
220
|
-
return
|
221
|
-
of(You) : this._accounts.get(userId);
|
269
|
+
return this._accounts.get(userId);
|
222
270
|
}
|
223
271
|
_roleName(name) {
|
224
272
|
const role = this._session.profile.roles.find(r => r.name === name);
|
@@ -260,7 +308,7 @@ export class TraceViewComponent extends TraceBase {
|
|
260
308
|
}
|
261
309
|
}
|
262
310
|
TraceViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: TraceViewComponent, deps: [{ token: i1.SessionService }, { token: i2.TranslateService }, { token: i3.AccountService }, { token: i4.ChatInfo }, { token: i5.HubService }], target: i0.ɵɵFactoryTarget.Component });
|
263
|
-
TraceViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: TraceViewComponent, selector: "bizdoc-trace", inputs: { model: "model" }, outputs: { versionSelected: "versionSelected" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table class=\"mat-table\">\r\n <thead role=\"rowgroup\">\r\n <tr class=\"mat-header-row\">\r\n <th class=\"mat-header-cell\"></th>\r\n <th class=\"mat-header-cell\"></th>\r\n <th class=\"mat-header-cell\"></th>\r\n <th class=\"mat-header-cell\"></th>\r\n </tr>\r\n </thead>\r\n <tbody role=\"rowgroup\">\r\n <tr class=\"mat-row\" *ngFor=\"let l of data\">\r\n <td class=\"mat-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span *ngIf=l.role>{{'JoinComma'|translate}}{{l.role}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <ng-container [ngSwitch]=\"l.type\">\r\n <span *ngSwitchCase=\"'ActionTaken'\">{{ l.action }}</span>\r\n <span *ngSwitchCase=\"'Owner'\">{{'
|
311
|
+
TraceViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: TraceViewComponent, selector: "bizdoc-trace", inputs: { model: "model" }, outputs: { versionSelected: "versionSelected" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table class=\"mat-table\">\r\n <thead role=\"rowgroup\">\r\n <tr class=\"mat-header-row\">\r\n <th class=\"mat-header-cell\"></th>\r\n <th class=\"mat-header-cell\"></th>\r\n <th class=\"mat-header-cell\"></th>\r\n <th class=\"mat-header-cell\"></th>\r\n </tr>\r\n </thead>\r\n <tbody role=\"rowgroup\">\r\n <tr class=\"mat-row\" *ngFor=\"let l of data\">\r\n <td class=\"mat-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span *ngIf=l.role>{{'JoinComma'|translate}}{{l.role}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <ng-container [ngSwitch]=\"l.type\">\r\n <span *ngSwitchCase=\"'ActionTaken'\">{{ l.action | action : 'past' }}</span>\r\n <span *ngSwitchCase=\"'Owner'\">{{'Issued' | translate}}</span>\r\n <span *ngSwitchCase=\"'Pending'\">{{'IsPending' | translate}}</span>\r\n <span *ngSwitchCase=\"'Estimate'\">{{'Estimate' | translate}}</span>\r\n <span *ngSwitchCase=\"'ModelChange'\">{{'Changed' | translate}}</span>\r\n </ng-container>\r\n <span *ngIf=\"l.fyi\"> {{'FYI'|translate}}</span>\r\n </td>\r\n <td class=\"mat-cell\" [ngSwitch]=\"l.estimate\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n <span *ngIf=\"l.durationMax && l.durationMax === l.durationMin\" [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n <span *ngIf=\"l.durationMax && l.durationMax !== l.durationMin\"\r\n [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n <span *ngIf=\"l.duration\" [bizdocTooltip]=\"l.duration|amDurationFormat\"> ({{l.duration | amDuration:'s'}})</span>\r\n </ng-container>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"l.note\">{{l.note}}</span>\r\n <button mat-icon-button *ngIf=\"l.model\" (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}td{padding:0 4px}:host ::ng-deep .mat-icon{vertical-align:sub}\n"], components: [{ type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i8.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i9.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i8.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "sanitizeHtml": i10.SanitizeHtmlPipe, "translate": i11.TranslatePipe, "action": i12.ActionPipe, "amDurationFormat": i13.DurationFormatPipe, "amDuration": i14.DurationPipe, "amCalendar": i14.CalendarPipe } });
|
264
312
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: TraceViewComponent, decorators: [{
|
265
313
|
type: Component,
|
266
314
|
args: [{
|
@@ -273,4 +321,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImpo
|
|
273
321
|
}], versionSelected: [{
|
274
322
|
type: Output
|
275
323
|
}] } });
|
276
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL3RyYWNlL3RyYWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29tcG9zZS90cmFjZS90cmFjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFjLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU8xQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFOekMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBVWpDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQztBQUlsQixvQ0FBb0M7QUFNcEMsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFNBQVM7SUFVL0MsWUFBb0IsUUFBd0IsRUFDbEMsVUFBNEIsRUFDNUIsU0FBeUIsRUFDekIsS0FBZSxFQUN2QixHQUFlO1FBQ2YsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBTE8sYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDbEMsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFDekIsVUFBSyxHQUFMLEtBQUssQ0FBVTtRQVhOLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUM5RCxTQUFJLEdBQVksRUFBRSxDQUFDO1FBQ1Ysa0JBQWEsR0FBaUI7WUFDckMsT0FBTyxFQUFFLElBQUks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IE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmb3JrSm9pbiwgb2YgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YXAsIG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5jb25zdCBtb21lbnQgPSByZXF1aXJlKCdtb21lbnQnKTtcclxuaW1wb3J0IHsgQ2FsZW5kYXJTcGVjIH0gZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgeyBMb2csIFVzZXJJbmZvLCBMb2dUeXBlLCBEb2N1bWVudE1vZGVsLCBBY3Rpb24gfSBmcm9tIFwiLi4vLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvYWNjb3VudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyYWNlQmFzZSB9IGZyb20gXCIuL3RyYWNlLmJhc2VcIjtcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2h1Yi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENoYXRJbmZvIH0gZnJvbSBcIi4uLy4uL2NoYXQvY2hhdC1pbmZvXCI7XHJcblxyXG5jb25zdCBZb3UgPSAneW91JztcclxuXHJcbnR5cGUgVXNlckluZm9Zb3UgPSBVc2VySW5mbyB8ICd5b3UnO1xyXG5cclxuLyoqIGNvbXBvbmVudCBzaG93aW5nIHRyYWNlIHRhYmxlICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLXRyYWNlJyxcclxuICB0ZW1wbGF0ZVVybDogJ3RyYWNlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsndHJhY2UuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhY2VWaWV3Q29tcG9uZW50IGV4dGVuZHMgVHJhY2VCYXNlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBtb2RlbDogRG9jdW1lbnRNb2RlbDxhbnk+O1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSB2ZXJzaW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgZGF0YTogVHJhY2VbXSA9IFtdO1xyXG4gIHJlYWRvbmx5IENBTEVOREFSX1NQRUM6IENhbGVuZGFyU3BlYyA9IHtcclxuICAgIGxhc3REYXk6IGBbJHt0aGlzLl90cmFuc2xhdGUuZ2V0KCdZZXN0ZXJkYXknKX1dIEhIOm1tYCxcclxuICAgIGxhc3RXZWVrOiAnZGRkZCBISDptbScsXHJcbiAgICBzYW1lRGF5OiBgWyR7dGhpcy5fdHJhbnNsYXRlLmdldCgnVG9kYXknKX1dIEhIOm1tYCxcclxuICAgIHNhbWVFbHNlOiAnTU1NIERvIEhIOm1tJ1xyXG4gIH07XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9hY2NvdW50czogQWNjb3VudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jaGF0OiBDaGF0SW5mbyxcclxuICAgIGh1YjogSHViU2VydmljZSkge1xyXG4gICAgc3VwZXIoaHViKTtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoX2NoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMuX2luaXRpYWxpc2UoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBhc3luYyBfaW5pdGlhbGlzZSgpIHtcclxuICAgIGNvbnN0IHsgb3duZXJJZCwgb3duZXJCeUlkLCBpc3N1ZWQsIGxvZywgcmVjaXBpZW50cyB9ID0gdGhpcy5tb2RlbDtcclxuICAgIGNvbnN0IG9ic2VydmFibGVzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0IG5vZGUgPSB7XHJcbiAgICAgIHR5cGU6ICdPd25lcicsXHJcbiAgICAgIHRpbWU6IGlzc3VlZFxyXG4gICAgfSBhcyBUcmFjZSxcclxuICAgICAgdHJhY2U6IFRyYWNlW10gPSBbbm9kZV07XHJcblxyXG4gICAgY29uc3QgcHJvZmlsZXMgPSBbdGhpcy5fdXNlck9mKG93bmVySWQpXTtcclxuXHJcbiAgICBvd25lckJ5SWQgJiZcclxuICAgICAgcHJvZmlsZXMucHVzaCh0aGlzLl91c2VyT2Yob3duZXJCeUlkKSk7XHJcblxyXG4gICAgY29uc3Qgb2JzZXJ2ZSA9IGZvcmtKb2luKHByb2ZpbGVzKS5waXBlKHRhcChucyA9PiB7XHJcbiAgICAgIGNvbnN0IFt3aG8sIGJ5XSA9IG5zO1xyXG5cclxuICAgICAgaWYgKGJ5KSB7XHJcbiAgICAgICAgbm9kZS5uYW1lID0gYnkgPT09IFlvdSA/XHJcbiAgICAgICAgICB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeVlvdScsIHRoaXMuX25hbWVPZih3aG8pKVxyXG4gICAgICAgICAgOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeScsIHRoaXMuX25hbWVPZih3aG8pLCB0aGlzLl9uYW1lT2YoYnkpKTtcclxuICAgICAgICBpZiAoYnkgIT09IFlvdSAmJiBieS5yb2xlKSBub2RlLnJvbGUgPSBieS5yb2xlO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIG5vZGUubmFtZSA9IHRoaXMuX25hbWVPZih3aG8pO1xyXG5cclxuICAgICAgICBpZiAod2hvICE9PSBZb3UgJiYgd2hvLnJvbGUpIG5vZGUucm9sZSA9IHdoby5yb2xlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICApKTtcclxuICAgIG9ic2VydmFibGVzLnB1c2gob2JzZXJ2ZSk7XHJcblxyXG4gICAgbG9nLmZvckVhY2gobCA9PiB7XHJcbiAgICAgIGxldCBhY3Rpb246IEFjdGlvbjtcclxuICAgICAgc3dpdGNoIChsLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdBY3Rpb25UYWtlbic6XHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFjdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5hY3Rpb25zLmZpbmQoYSA9PiBhLm5hbWUgPT09IGwuYWN0aW9uKTtcclxuICAgICAgICAgICAgaWYgKGFjdGlvbiAmJiBhY3Rpb24ubG9nZ2FibGUgPT09IGZhbHNlKVxyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnTW9kZWxDaGFuZ2UnOlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBzdGVwID0geyAuLi5sIH0gYXMgVHJhY2U7XHJcblxyXG4gICAgICBjb25zdCBwcm9maWxlcyA9IFt0aGlzLl91c2VyT2YobC51c2VySWQpXTtcclxuXHJcbiAgICAgIHByb2ZpbGVzLnB1c2gobC5ieUlkID8gdGhpcy5fdXNlck9mKGwuYnlJZCkgOiBvZihudWxsKSk7XHJcblxyXG4gICAgICBpZiAobC5yZWNpcGllbnRJZCkge1xyXG4gICAgICAgIGNvbnN0IHJlY2lwaWVudCA9IHJlY2lwaWVudHMuZmluZChyID0+IHIuaWQgPT09IGwucmVjaXBpZW50SWQpO1xyXG4gICAgICAgIGlmIChyZWNpcGllbnQucm9sZSkgc3RlcC5yb2xlID0gdGhpcy5fcm9sZU5hbWUocmVjaXBpZW50LnJvbGUpO1xyXG4gICAgICAgIHJlY2lwaWVudC5zdWJzdGl0dXRpbmdJZCAmJlxyXG4gICAgICAgICAgcHJvZmlsZXMucHVzaCh0aGlzLl91c2VyT2YocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkKSk7XHJcbiAgICAgICAgaWYgKHJlY2lwaWVudC5ub2RlSWQpIHtcclxuICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLm1vZGVsLndvcmtmbG93Lm5vZGVzLmZpbmQobiA9PiBuLmlkID09PSByZWNpcGllbnQubm9kZUlkKTtcclxuICAgICAgICAgIHN0ZXAuZnlpID0gbm9kZSAmJiBub2RlLmZ5aTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IG9ic2VydmUgPSBmb3JrSm9pbihwcm9maWxlcykucGlwZSh0YXAobnMgPT4ge1xyXG4gICAgICAgIGNvbnN0IFt3aG8sIGJ5LCBzdWJzdGl0dXRpbmddID0gbnM7XHJcblxyXG4gICAgICAgIHRoaXMuX2RlY29yYXRlKHdobywgYnksIHN1YnN0aXR1dGluZywgW10sIHN0ZXApO1xyXG4gICAgICAgIGlmIChhY3Rpb24pXHJcbiAgICAgICAgICBzdGVwLmFjdGlvbiA9IGFjdGlvbiA/IHRoaXMuX2FjdGlvbk5hbWUoYWN0aW9uLCBieSB8fCB3aG8pIDogbC5hY3Rpb247XHJcbiAgICAgIH0pKTtcclxuICAgICAgb2JzZXJ2YWJsZXMucHVzaChvYnNlcnZlKTtcclxuICAgICAgdHJhY2UucHVzaChzdGVwKTtcclxuICAgIH0pO1xyXG4gICAgcmVjaXBpZW50cy5mb3JFYWNoKHIgPT4ge1xyXG4gICAgICBpZiAoIXIucGVuZGluZyAmJiAhci5lc3RpbWF0ZSkgcmV0dXJuO1xyXG4gICAgICBjb25zdCBzdGVwID0ge1xyXG4gICAgICAgIC4uLnIsXHJcbiAgICAgICAgdHlwZTogci5lc3RpbWF0ZSA/ICdFc3RpbWF0ZScgOiAnUGVuZGluZycsXHJcbiAgICAgICAgdGltZTogci5yZWNlaXZlZCxcclxuICAgICAgICBkdXJhdGlvbjogci5wZW5kaW5nID8gbW9tZW50KCkuZGlmZihyLnJlY2VpdmVkLCAncycpIDogbnVsbCxcclxuICAgICAgICByb2xlOiByLnJvbGUgPyB0aGlzLl9yb2xlTmFtZShyLnJvbGUpIDogbnVsbFxyXG4gICAgICB9IGFzIFRyYWNlO1xyXG5cclxuICAgICAgaWYgKHIubm9kZUlkKSB7XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMubW9kZWwud29ya2Zsb3cubm9kZXMuZmluZChuID0+IG4uaWQgPT09IHIubm9kZUlkKTtcclxuICAgICAgICBpZiAobm9kZSkge1xyXG4gICAgICAgICAgaWYgKHIuZXN0aW1hdGUpIHtcclxuICAgICAgICAgICAgY29uc3QgeyBtaW4sIG1heCB9ID0gc3VwZXIuX2VzdGltYXRlVGltZShub2RlKTtcclxuICAgICAgICAgICAgaWYgKG1heClcclxuICAgICAgICAgICAgICBzdGVwLmR1cmF0aW9uTWluID0gbWluLFxyXG4gICAgICAgICAgICAgICAgc3RlcC5kdXJhdGlvbk1heCA9IG1heDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHN0ZXAuZnlpID0gbm9kZS5meWk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBlc2NhbGF0aW9ucyA9IHRoaXMubW9kZWwubG9nLmZpbHRlcihsID0+IGwudGltZSA+IHRoaXMubW9kZWwuaXNzdWVkICYmIGwudHlwZSA9PT0gJ0VzY2FsYXRpb24nICYmIGwucmVjaXBpZW50SWQgPT09IHIuaWQpO1xyXG5cclxuICAgICAgY29uc3QgcHJvZmlsZXMgPSBbdGhpcy5fdXNlck9mKHIudXNlcklkKV07XHJcbiAgICAgIHByb2ZpbGVzLnB1c2goci5ieUlkID8gdGhpcy5fdXNlck9mKHIuYnlJZCkgOiBvZihudWxsKSk7XHJcbiAgICAgIHByb2ZpbGVzLnB1c2goci5zdWJzdGl0dXRpbmdJZCA/IHRoaXMuX3VzZXJPZihyLnN1YnN0aXR1dGluZ0lkKSA6IG9mKG51bGwpKTtcclxuICAgICAgZXNjYWxhdGlvbnMubGVuZ3RoICYmXHJcbiAgICAgICAgdGhpcy5tb2RlbC5yZWNpcGllbnRzLlxyXG4gICAgICAgICAgZmlsdGVyKHIgPT4gci5vcmlnaW5JZCA9PT0gZXNjYWxhdGlvbnNbMF0ucmVjaXBpZW50SWQpLlxyXG4gICAgICAgICAgZm9yRWFjaChlID0+IHByb2ZpbGVzLnB1c2godGhpcy5fdXNlck9mKGUudXNlcklkKSkpO1xyXG4gICAgICBjb25zdCBvYnNlcnZlID0gZm9ya0pvaW4ocHJvZmlsZXMpLnBpcGUobWFwKG5zID0+IHtcclxuICAgICAgICBjb25zdCBbd2hvLCBieSwgc3Vic3RpdHV0aW5nLCAuLi5lc2NhbGF0aW9uc10gPSBucztcclxuICAgICAgICB0aGlzLl9kZWNvcmF0ZSh3aG8sIGJ5LCBzdWJzdGl0dXRpbmcsIGVzY2FsYXRpb25zLCBzdGVwKTtcclxuICAgICAgfSkpO1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKG9ic2VydmUpO1xyXG4gICAgICB0cmFjZS5wdXNoKHN0ZXApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgKG9ic2VydmFibGVzLmxlbmd0aCA/IGZvcmtKb2luKG9ic2VydmFibGVzKSA6IG9mKG51bGwpKS5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgdGhpcy5kYXRhID0gdHJhY2Uuc29ydCgoYSwgYikgPT4gYS50aW1lID4gYi50aW1lID8gMSA6IC0xKVxyXG4gICAgKTtcclxuICB9XHJcbiAgcHVibGljIHJlZnJlc2goKSB7XHJcbiAgICB0aGlzLm5nT25DaGFuZ2VzKG51bGwpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gd2hvXHJcbiAgICogQHBhcmFtIGJ5XHJcbiAgICogQHBhcmFtIHN1YnN0aXR1dGluZ1xyXG4gICAqIEBwYXJhbSBlc2NhbGF0aW9uc1xyXG4gICAqIEBwYXJhbSBub2RlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfZGVjb3JhdGUod2hvOiBVc2VySW5mb1lvdSwgYnk6IFVzZXJJbmZvWW91LCBzdWJzdGl0dXRpbmc6IFVzZXJJbmZvWW91LCBlc2NhbGF0aW9uczogVXNlckluZm9Zb3VbXSwgbm9kZTogVHJhY2UpIHtcclxuICAgIGlmIChzdWJzdGl0dXRpbmcpIHtcclxuICAgICAgaWYgKGJ5KSB7XHJcbiAgICAgICAgaWYgKGJ5ID09PSBZb3UpIHtcclxuICAgICAgICAgIGlmIChzdWJzdGl0dXRpbmcgPT09IFlvdSlcclxuICAgICAgICAgICAgbm9kZS5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnlZb3UnLCB0aGlzLl9uYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIG5vZGUubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nQnlZb3UnLCAod2hvIGFzIFVzZXJJbmZvKS5nZW5kZXIsIHRoaXMuX25hbWVPZih3aG8pLCB0aGlzLl9uYW1lT2Yoc3Vic3RpdHV0aW5nKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIG5vZGUubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1N1YnN0aXR1dGluZ0J5JywgdGhpcy5fbmFtZU9mKHdobyksIHRoaXMuX25hbWVPZihzdWJzdGl0dXRpbmcpLCB0aGlzLl9uYW1lT2YoYnkpKTtcclxuICAgICAgICBpZiAoYnkgIT09IFlvdSAmJiBieS5yb2xlKVxyXG4gICAgICAgICAgbm9kZS5yb2xlID0gYnkucm9sZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBpZiAoc3Vic3RpdHV0aW5nID09PSBZb3UpXHJcbiAgICAgICAgICBub2RlLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZ0ZvcllvdScsICh3aG8gYXMgVXNlckluZm8pLmdlbmRlciwgdGhpcy5fbmFtZU9mKHdobykpO1xyXG4gICAgICAgIGVsc2UgaWYgKHdobyA9PT0gWW91KVxyXG4gICAgICAgICAgbm9kZS5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdZb3VTdWJzdGl0dXRlJywgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmJ5R2VuZGVyLCB0aGlzLl9uYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgbm9kZS5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdTdWJzdGl0dXRpbmcnLCAod2hvIGFzIFVzZXJJbmZvKS5nZW5kZXIsIHRoaXMuX25hbWVPZih3aG8pLCB0aGlzLl9uYW1lT2Yoc3Vic3RpdHV0aW5nKSk7XHJcbiAgICAgICAgaWYgKHdobyAhPT0gWW91ICYmIHdoby5yb2xlKVxyXG4gICAgICAgICAgbm9kZS5yb2xlID0gd2hvLnJvbGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGJ5KSB7XHJcbiAgICAgIGlmIChieSA9PT0gWW91KVxyXG4gICAgICAgIG5vZGUubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0J5WW91JywgdGhpcy5fbmFtZU9mKHdobykpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgbm9kZS5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnknLCB0aGlzLl9uYW1lT2Yod2hvKSwgdGhpcy5fbmFtZU9mKGJ5KSk7XHJcbiAgICAgIGlmIChieSAhPT0gWW91ICYmIGJ5LnJvbGUpXHJcbiAgICAgICAgbm9kZS5yb2xlID0gYnkucm9sZTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGVzY2FsYXRpb25zLmxlbmd0aCkge1xyXG4gICAgICBpZiAoZXNjYWxhdGlvbnMubGVuZ3RoID09PSAxICYmIGVzY2FsYXRpb25zWzBdID09PSBZb3UpXHJcbiAgICAgICAgbm9kZS5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnRXNjYWxhdGVkQnlZb3UnLCB0aGlzLl9uYW1lT2Yod2hvKSk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBub2RlLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdFc2NhbGF0ZWRCeScsIHRoaXMuX25hbWVPZih3aG8pLCB0aGlzLl90cmFuc2xhdGUuam9pbihlc2NhbGF0aW9ucy5tYXAoZSA9PiB0aGlzLl9uYW1lT2YoZSkpKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKHdobyA9PT0gWW91KVxyXG4gICAgICAgIG5vZGUubmFtZSA9XHJcbiAgICAgICAgICB0aGlzLl90cmFuc2xhdGUuZ2V0KCdZb3UnKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbm9kZS5uYW1lID0gdGhpcy5fbmFtZU9mKHdobyk7XHJcbiAgICAgICAgaWYgKHdoby5yb2xlKVxyXG4gICAgICAgICAgbm9kZS5yb2xlID0gd2hvLnJvbGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogdXNlciBuYW1lLCBjaGF0IGFuY2hvciB0YWcgb3IgWW91XHJcbiAgICogQHBhcmFtIHVzZXJcclxuICAgKi9cclxuICBwcml2YXRlIF9uYW1lT2YodXNlcjogVXNlckluZm9Zb3UpOiBzdHJpbmcge1xyXG4gICAgaWYgKHVzZXIgPT09IFlvdSlcclxuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdScpO1xyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gdGhpcy5fY2hhdC5mb3JtYXQodXNlcik7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB1c2VySWRcclxuICAgKi9cclxuICBwcml2YXRlIF91c2VyT2YodXNlcklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXJJbmZvWW91PiB7XHJcbiAgICByZXR1cm4gKHVzZXJJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpID9cclxuICAgICAgb2YoWW91KSA6IHRoaXMuX2FjY291bnRzLmdldCh1c2VySWQpO1xyXG4gIH1cclxuICBwcml2YXRlIF9yb2xlTmFtZShuYW1lKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHJvbGUgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUucm9sZXMuZmluZChyID0+IHIubmFtZSA9PT0gbmFtZSk7XHJcbiAgICByZXR1cm4gcm9sZSA/IHJvbGUudGl0bGUgOiBuYW1lO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gYWN0aW9uXHJcbiAgICogQHBhcmFtIHVzZXJcclxuICAgKi9cclxuICBwcml2YXRlIF9hY3Rpb25OYW1lKGFjdGlvbjogQWN0aW9uLCB1c2VyOiBVc2VySW5mb1lvdSk6IHN0cmluZyB7XHJcbiAgICBpZiAodXNlciA9PT0gWW91KSB7XHJcbiAgICAgIGNvbnN0IGdlbmRlciA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5ieUdlbmRlciB8fCB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZ2VuZGVyO1xyXG4gICAgICByZXR1cm4gKGdlbmRlciA9PT0gJ01hbGUnID8gKGFjdGlvbi55b3VNYWxlIHx8IGFjdGlvbi55b3UpIDpcclxuICAgICAgICBnZW5kZXIgPT09ICdGZW1hbGUnID8gKGFjdGlvbi55b3VGZW1hbGUgfHwgYWN0aW9uLnlvdSkgOlxyXG4gICAgICAgICAgYWN0aW9uLnlvdSkgfHxcclxuICAgICAgICBhY3Rpb24ucGFzdCB8fFxyXG4gICAgICAgIGFjdGlvbi50aXRsZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCB7IGdlbmRlciB9ID0gdXNlcjtcclxuICAgICAgcmV0dXJuIChnZW5kZXIgPT09ICdNYWxlJyA/IChhY3Rpb24ucGFzdE1hbGUgfHwgYWN0aW9uLnBhc3QpIDpcclxuICAgICAgICBnZW5kZXIgPT09ICdGZW1hbGUnID8gKGFjdGlvbi5wYXN0RmVtYWxlIHx8IGFjdGlvbi5wYXN0KSA6XHJcbiAgICAgICAgICBhY3Rpb24ucGFzdClcclxuICAgICAgICB8fCBhY3Rpb24udGl0bGU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoYXQoZTogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3QgdXNlcklkID0gKGUuc3JjRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZ2V0QXR0cmlidXRlKCdkYXRhLWluZm8nKTtcclxuICAgIHVzZXJJZCAmJlxyXG4gICAgICB0aGlzLl9jaGF0Lm9wZW4odXNlcklkKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogbW9kZWwgdmVyc2lvbiBjb21wYXJlLCBmb3JtIGNvbXBvbmVudCBpbiAnY29tcGFyZScgdmlldyBtb2RlXHJcbiAgICogQHBhcmFtIGxvZ1xyXG4gICAqL1xyXG4gIGNvbXBhcmUobG9nOiBUcmFjZSkge1xyXG4gICAgdGhpcy52ZXJzaW9uU2VsZWN0ZWQuZW1pdChsb2cudGltZSk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBUcmFjZSB7XHJcbiAgZnlpPzogYm9vbGVhbjtcclxuICB0eXBlOiBMb2dUeXBlIHwgJ093bmVyJyB8ICdQZW5kaW5nJyB8ICdFc3RpbWF0ZSc7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICBlc3RpbWF0ZT86IGJvb2xlYW47XHJcbiAgcGVuZGluZz86IGJvb2xlYW47XHJcbiAgYWN0aW9uPzogc3RyaW5nO1xyXG4gIHJvbGU/OiBzdHJpbmc7XHJcbiAgbm90ZT86IHN0cmluZztcclxuICBkdXJhdGlvbj86IG51bWJlcjtcclxuICBkdXJhdGlvbk1pbj86IG51bWJlcjtcclxuICBkdXJhdGlvbk1heD86IG51bWJlcjtcclxuICB0aW1lPzogRGF0ZTtcclxuICBtb2RlbD86IHt9O1xyXG59XHJcbiIsIjx0YWJsZSBjbGFzcz1cIm1hdC10YWJsZVwiPlxyXG4gIDx0aGVhZCByb2xlPVwicm93Z3JvdXBcIj5cclxuICAgIDx0ciBjbGFzcz1cIm1hdC1oZWFkZXItcm93XCI+XHJcbiAgICAgIDx0aCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPjwvdGg+XHJcbiAgICAgIDx0aCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPjwvdGg+XHJcbiAgICAgIDx0aCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPjwvdGg+XHJcbiAgICAgIDx0aCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPjwvdGg+XHJcbiAgICA8L3RyPlxyXG4gIDwvdGhlYWQ+XHJcbiAgPHRib2R5IHJvbGU9XCJyb3dncm91cFwiPlxyXG4gICAgPHRyIGNsYXNzPVwibWF0LXJvd1wiICpuZ0Zvcj1cImxldCBsIG9mIGRhdGFcIj5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIj5cclxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImwubmFtZSB8IHNhbml0aXplSHRtbFwiIChjbGljayk9XCJjaGF0KCRldmVudClcIj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9bC5yb2xlPnt7J0pvaW5Db21tYSd8dHJhbnNsYXRlfX17e2wucm9sZX19PC9zcGFuPlxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImwudHlwZVwiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidBY3Rpb25UYWtlbidcIj57eyBsLmFjdGlvbiB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInT3duZXInXCI+e3snT3duZXInIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ1BlbmRpbmcnXCI+e3snSXNQZW5kaW5nJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidFc3RpbWF0ZSdcIj57eydFc3RpbWF0ZScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInTW9kZWxDaGFuZ2UnXCI+e3snQ2hhbmdlZCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImwuZnlpXCI+Jm5ic3A7e3snRllJJ3x0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIiBbbmdTd2l0Y2hdPVwibC5lc3RpbWF0ZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInRydWVcIj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwibC5kdXJhdGlvbk1heCAmJiBsLmR1cmF0aW9uTWF4ID09PSBsLmR1cmF0aW9uTWluXCIgW2JpemRvY1Rvb2x0aXBdPVwibC5kdXJhdGlvbk1heHxhbUR1cmF0aW9uRm9ybWF0XCI+e3snRXN0aW1hdGVUaW1lJ3wgdHJhbnNsYXRlIDogKGwuZHVyYXRpb25NYXggfCBhbUR1cmF0aW9uOidzJyl9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwibC5kdXJhdGlvbk1heCAmJiBsLmR1cmF0aW9uTWF4ICE9PSBsLmR1cmF0aW9uTWluXCJcclxuICAgICAgICAgICAgICAgIFtiaXpkb2NUb29sdGlwXT1cImwuZHVyYXRpb25NYXh8YW1EdXJhdGlvbkZvcm1hdFwiPnt7J0VzdGltYXRlVGltZVJhbmdlJ3wgdHJhbnNsYXRlIDogKGwuZHVyYXRpb25NaW4gfCBhbUR1cmF0aW9uOidzJykgOiAobC5kdXJhdGlvbk1heCB8IGFtRHVyYXRpb246J3MnKX19PC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgIDxzcGFuPnt7bC50aW1lIHwgYW1DYWxlbmRhciA6IG51bGwgOiBDQUxFTkRBUl9TUEVDIH19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJsLmR1cmF0aW9uXCIgW2JpemRvY1Rvb2x0aXBdPVwibC5kdXJhdGlvbnxhbUR1cmF0aW9uRm9ybWF0XCI+Jm5ic3A7KHt7bC5kdXJhdGlvbiB8IGFtRHVyYXRpb246J3MnfX0pPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwibC5ub3RlXCI+e3tsLm5vdGV9fTwvc3Bhbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAqbmdJZj1cImwubW9kZWxcIiAoY2xpY2spPVwiY29tcGFyZShsKVwiIFtiaXpkb2NUb29sdGlwXT1cIidDb21wYXJlJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+bW9yZV9ob3JpejwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICA8L3RyPlxyXG4gIDwvdGJvZHk+XHJcbjwvdGFibGU+XHJcbiJdfQ==
|
324
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL3RyYWNlL3RyYWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29tcG9zZS90cmFjZS90cmFjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFRakcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQU56QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFVakMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDO0FBSWxCLG9DQUFvQztBQU1wQyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsU0FBUztJQVUvQyxZQUFvQixRQUF3QixFQUNsQyxVQUE0QixFQUM1QixTQUF5QixFQUN6QixLQUFlLEVBQ3ZCLEdBQWU7UUFDZixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFMTyxhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUNsQyxlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUN6QixVQUFLLEdBQUwsS0FBSyxDQUFVO1FBWE4sb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzlELFNBQUksR0FBWSxFQUFFLENBQUM7UUFDVixrQkFBYSxHQUFpQjtZQUNyQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsU0FBUztZQUN0RCxRQUFRLEVBQUUsWUFBWTtZQUN0QixPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsVUFBVSxD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TSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDeEQsTUFBTSxDQUFDLElBQUksQ0FBQzttQkFDWCxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUNELElBQUksQ0FBQyxDQUFhO1FBQ2hCLE1BQU0sTUFBTSxHQUFJLENBQUMsQ0FBQyxVQUEwQixDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2RSxNQUFNO1lBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNEOzs7T0FHRztJQUNILE9BQU8sQ0FBQyxHQUFVO1FBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDOztnSEF0U1Usa0JBQWtCO29HQUFsQixrQkFBa0IsNktDdEIvQiwwM0VBMkNBOzRGRHJCYSxrQkFBa0I7a0JBTDlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFdBQVcsRUFBRSxzQkFBc0I7b0JBQ25DLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQztpTkFFVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ2EsZUFBZTtzQkFBakMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuY29uc3QgbW9tZW50ID0gcmVxdWlyZSgnbW9tZW50Jyk7XHJcbmltcG9ydCB7IENhbGVuZGFyU3BlYyB9IGZyb20gXCJtb21lbnRcIjtcclxuaW1wb3J0IHsgVXNlckluZm8sIExvZ1R5cGUsIERvY3VtZW50TW9kZWwsIEFjdGlvbiB9IGZyb20gXCIuLi8uLi9jb3JlL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9hY2NvdW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhY2VCYXNlIH0gZnJvbSBcIi4vdHJhY2UuYmFzZVwiO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvaHViLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ2hhdEluZm8gfSBmcm9tIFwiLi4vLi4vY2hhdC9jaGF0LWluZm9cIjtcclxuXHJcbmNvbnN0IFlvdSA9ICd5b3UnO1xyXG5cclxudHlwZSBVc2VySW5mb1lvdSA9IFVzZXJJbmZvIHwgJ3lvdSc7XHJcblxyXG4vKiogY29tcG9uZW50IHNob3dpbmcgdHJhY2UgdGFibGUgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtdHJhY2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAndHJhY2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWyd0cmFjZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFjZVZpZXdDb21wb25lbnQgZXh0ZW5kcyBUcmFjZUJhc2UgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIG1vZGVsOiBEb2N1bWVudE1vZGVsPGFueT47XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZlcnNpb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuICBkYXRhOiBUcmFjZVtdID0gW107XHJcbiAgcmVhZG9ubHkgQ0FMRU5EQVJfU1BFQzogQ2FsZW5kYXJTcGVjID0ge1xyXG4gICAgbGFzdERheTogYFske3RoaXMuX3RyYW5zbGF0ZS5nZXQoJ1llc3RlcmRheScpfV0gSEg6bW1gLFxyXG4gICAgbGFzdFdlZWs6ICdkZGRkIEhIOm1tJyxcclxuICAgIHNhbWVEYXk6IGBbJHt0aGlzLl90cmFuc2xhdGUuZ2V0KCdUb2RheScpfV0gSEg6bW1gLFxyXG4gICAgc2FtZUVsc2U6ICdNTU0gRG8gSEg6bW0nXHJcbiAgfTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX2NoYXQ6IENoYXRJbmZvLFxyXG4gICAgaHViOiBIdWJTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihodWIpO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhfY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgdGhpcy5faW5pdGlhbGlzZSgpO1xyXG4gIH1cclxuICBwcml2YXRlIGFzeW5jIF9pbml0aWFsaXNlKCkge1xyXG4gICAgY29uc3QgeyBvd25lcklkLCBvd25lckJ5SWQsIGlzc3VlZCwgbG9nLCByZWNpcGllbnRzIH0gPSB0aGlzLm1vZGVsO1xyXG5cclxuICAgIGNvbnN0IHRyYWNlOiBUcmFjZVtdID0gW107XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsb2cubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGwgPSBsb2dbaV07XHJcbiAgICAgIGxldCBhY3Rpb246IEFjdGlvbjtcclxuICAgICAgc3dpdGNoIChsLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdBY3Rpb25UYWtlbic6XHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFjdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5hY3Rpb25zLmZpbmQoYSA9PiBhLm5hbWUgPT09IGwuYWN0aW9uKTtcclxuICAgICAgICAgICAgaWYgKGFjdGlvbiAmJiBhY3Rpb24ubG9nZ2FibGUgPT09IGZhbHNlKVxyXG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICBjYXNlICdNb2RlbENoYW5nZSc6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdTdWJtaXQnOlxyXG4gICAgICAgICAgaWYgKGwuZXN0aW1hdGUpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgY29uc3Qgbm9kZSA9IHtcclxuICAgICAgICAgICAgdHlwZTogJ093bmVyJyxcclxuICAgICAgICAgICAgdGltZTogbC50aW1lXHJcbiAgICAgICAgICB9IGFzIFRyYWNlO1xyXG4gICAgICAgICAgaWYgKG93bmVyQnlJZCkge1xyXG4gICAgICAgICAgICBjb25zdCBvd25lciA9IGF3YWl0IHRoaXMuX3VzZXJPZihvd25lcklkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgaWYgKG93bmVyQnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICAgICAgbm9kZS5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnlZb3UnLCB0aGlzLl9uYW1lT2Yob3duZXIpKTtcclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgYnkgPSBhd2FpdCB0aGlzLl91c2VyT2Yob3duZXJCeUlkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgICBub2RlLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeScsIHRoaXMuX25hbWVPZihvd25lciksIHRoaXMuX25hbWVPZihieSkpO1xyXG4gICAgICAgICAgICAgIGlmIChieS5yb2xlKSBub2RlLnJvbGUgPSBieS5yb2xlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKG93bmVySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICAgIG5vZGUubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdScpO1xyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBjb25zdCBvd25lciA9IGF3YWl0IHRoaXMuX3VzZXJPZihvd25lcklkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgICBub2RlLm5hbWUgPSB0aGlzLl9uYW1lT2Yob3duZXIpO1xyXG5cclxuICAgICAgICAgICAgICBpZiAob3duZXIucm9sZSkgbm9kZS5yb2xlID0gb3duZXIucm9sZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdHJhY2UucHVzaChub2RlKTtcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3Qgc3RlcCA9IHsgLi4ubCB9IGFzIFRyYWNlO1xyXG5cclxuICAgICAgY29uc3Qgd2hvID0gYXdhaXQgdGhpcy5fdXNlck9mKGwudXNlcklkKS50b1Byb21pc2UoKTtcclxuXHJcbiAgICAgIGlmIChsLnJlY2lwaWVudElkKSB7XHJcbiAgICAgICAgY29uc3QgcmVjaXBpZW50ID0gcmVjaXBpZW50cy5maW5kKHIgPT4gci5pZCA9PT0gbC5yZWNpcGllbnRJZCk7XHJcbiAgICAgICAgaWYgKHJlY2lwaWVudC5yb2xlKSBzdGVwLnJvbGUgPSB0aGlzLl9yb2xlTmFtZShyZWNpcGllbnQucm9sZSk7XHJcbiAgICAgICAgaWYgKHJlY2lwaWVudC5ub2RlSWQpIHtcclxuICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLm1vZGVsLndvcmtmbG93Lm5vZGVzLmZpbmQobiA9PiBuLmlkID09PSByZWNpcGllbnQubm9kZUlkKTtcclxuICAgICAgICAgIHN0ZXAuZnlpID0gbm9kZSAmJiBub2RlLmZ5aTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZWNpcGllbnQuc3Vic3RpdHV0aW5nSWQpIHtcclxuICAgICAgICAgIGxldCBzdWJzdGl0dXRpbmcgPSBhd2FpdCB0aGlzLl91c2VyT2YocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgIGlmIChsLmJ5SWQpIHtcclxuICAgICAgICAgICAgaWYgKGwuYnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpIHtcclxuICAgICAgICAgICAgICBpZiAocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0J5WW91JywgdGhpcy5fbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nQnlZb3UnLCB3aG8uZ2VuZGVyLCB0aGlzLl9uYW1lT2Yod2hvKSwgdGhpcy5fbmFtZU9mKHN1YnN0aXR1dGluZykpO1xyXG4gICAgICAgICAgICAgIGlmIChhY3Rpb24pXHJcbiAgICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGFjdGlvbiA/IHRoaXMuX2FjdGlvbk5hbWUoYWN0aW9uLCBZb3UpIDogbC5hY3Rpb247XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgbGV0IGJ5ID0gYXdhaXQgdGhpcy5fdXNlck9mKGwuYnlJZCkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnU3Vic3RpdHV0aW5nQnknLCB0aGlzLl9uYW1lT2Yod2hvKSwgdGhpcy5fbmFtZU9mKHN1YnN0aXR1dGluZyksIHRoaXMuX25hbWVPZihieSkpO1xyXG4gICAgICAgICAgICAgIGlmIChieS5yb2xlKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5yb2xlID0gYnkucm9sZTtcclxuICAgICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5hY3Rpb24gPSBhY3Rpb24gPyB0aGlzLl9hY3Rpb25OYW1lKGFjdGlvbiwgYnkpIDogbC5hY3Rpb247XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZ0ZvcllvdScsIHdoby5nZW5kZXIsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICAgICAgZWxzZSBpZiAobC51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnWW91U3Vic3RpdHV0ZScsIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5ieUdlbmRlciwgdGhpcy5fbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZycsIHdoby5nZW5kZXIsIHRoaXMuX25hbWVPZih3aG8pLCB0aGlzLl9uYW1lT2Yoc3Vic3RpdHV0aW5nKSk7XHJcbiAgICAgICAgICAgICAgaWYgKHdoby5yb2xlKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5yb2xlID0gd2hvLnJvbGU7XHJcbiAgICAgICAgICAgIH0gaWYgKGFjdGlvbilcclxuICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGFjdGlvbiA/IHRoaXMuX2FjdGlvbk5hbWUoYWN0aW9uLCB3aG8pIDogbC5hY3Rpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGwuYnlJZCkge1xyXG4gICAgICAgICAgaWYgKGwuYnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpIHtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnlZb3UnLCB0aGlzLl9uYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgICAgIGlmIChhY3Rpb24pXHJcbiAgICAgICAgICAgICAgc3RlcC5hY3Rpb24gPSBhY3Rpb24gPyB0aGlzLl9hY3Rpb25OYW1lKGFjdGlvbiwgWW91KSA6IGwuYWN0aW9uO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBieSA9IGF3YWl0IHRoaXMuX3VzZXJPZihsLmJ5SWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeScsIHRoaXMuX25hbWVPZih3aG8pLCB0aGlzLl9uYW1lT2YoYnkpKTtcclxuICAgICAgICAgICAgaWYgKGJ5LnJvbGUpXHJcbiAgICAgICAgICAgICAgc3RlcC5yb2xlID0gYnkucm9sZTtcclxuICAgICAgICAgICAgaWYgKGFjdGlvbilcclxuICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGFjdGlvbiA/IHRoaXMuX2FjdGlvbk5hbWUoYWN0aW9uLCBieSkgOiBsLmFjdGlvbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKGwudXNlcklkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdScpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fbmFtZU9mKHdobyk7XHJcbiAgICAgICAgICBpZiAod2hvLnJvbGUpXHJcbiAgICAgICAgICAgIHN0ZXAucm9sZSA9IHdoby5yb2xlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgc3RlcC5hY3Rpb24gPSBhY3Rpb24gPyB0aGlzLl9hY3Rpb25OYW1lKGFjdGlvbiwgd2hvKSA6IGwuYWN0aW9uO1xyXG4gICAgICB9XHJcbiAgICAgIHRyYWNlLnB1c2goc3RlcCk7XHJcbiAgICB9XHJcbiAgICBmb3IgKHZhciByID0gMDsgciA8IHJlY2lwaWVudHMubGVuZ3RoOyByKyspIHtcclxuICAgICAgbGV0IHJlY2lwaWVudCA9IHJlY2lwaWVudHNbcl07XHJcbiAgICAgIGlmICghcmVjaXBpZW50LnBlbmRpbmcgJiYgIXJlY2lwaWVudC5lc3RpbWF0ZSkgY29udGludWU7XHJcbiAgICAgIGNvbnN0IHN0ZXAgPSB7XHJcbiAgICAgICAgLi4ucmVjaXBpZW50LFxyXG4gICAgICAgIHR5cGU6IHJlY2lwaWVudC5lc3RpbWF0ZSA/ICdFc3RpbWF0ZScgOiAnUGVuZGluZycsXHJcbiAgICAgICAgdGltZTogcmVjaXBpZW50LnJlY2VpdmVkLFxyXG4gICAgICAgIGR1cmF0aW9uOiByZWNpcGllbnQucGVuZGluZyA/IG1vbWVudCgpLmRpZmYocmVjaXBpZW50LnJlY2VpdmVkLCAncycpIDogbnVsbCxcclxuICAgICAgICByb2xlOiByZWNpcGllbnQucm9sZSA/IHRoaXMuX3JvbGVOYW1lKHJlY2lwaWVudC5yb2xlKSA6IG51bGxcclxuICAgICAgfSBhcyBUcmFjZTtcclxuXHJcbiAgICAgIGlmIChyZWNpcGllbnQubm9kZUlkKSB7XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMubW9kZWwud29ya2Zsb3cubm9kZXMuZmluZChuID0+IG4uaWQgPT09IHJlY2lwaWVudC5ub2RlSWQpO1xyXG4gICAgICAgIGlmIChub2RlKSB7XHJcbiAgICAgICAgICBpZiAocmVjaXBpZW50LmVzdGltYXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgbWluLCBtYXggfSA9IHN1cGVyLl9lc3RpbWF0ZVRpbWUobm9kZSk7XHJcbiAgICAgICAgICAgIGlmIChtYXgpXHJcbiAgICAgICAgICAgICAgc3RlcC5kdXJhdGlvbk1pbiA9IG1pbixcclxuICAgICAgICAgICAgICAgIHN0ZXAuZHVyYXRpb25NYXggPSBtYXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBzdGVwLmZ5aSA9IG5vZGUuZnlpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IHdobyA9IGF3YWl0IHRoaXMuX3VzZXJPZihyZWNpcGllbnQudXNlcklkKS50b1Byb21pc2UoKTtcclxuXHJcbiAgICAgIGlmIChyZWNpcGllbnQuc3Vic3RpdHV0aW5nSWQpIHtcclxuICAgICAgICBpZiAocmVjaXBpZW50LmJ5SWQpIHtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQuYnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpIHtcclxuICAgICAgICAgICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRpbmdJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnlZb3UnLCB0aGlzLl9uYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGxldCBzdWJzdGl0dXRpbmcgPSBhd2FpdCB0aGlzLl91c2VyT2YocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZ0J5WW91Jywgd2hvLmdlbmRlciwgdGhpcy5fbmFtZU9mKHdobyksIHRoaXMuX25hbWVPZihzdWJzdGl0dXRpbmcpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBzdWJzdGl0dXRpbmcgPSBhd2FpdCB0aGlzLl91c2VyT2YocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgbGV0IGJ5ID0gYXdhaXQgdGhpcy5fdXNlck9mKHJlY2lwaWVudC5ieUlkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnU3Vic3RpdHV0aW5nQnknLCB0aGlzLl9uYW1lT2Yod2hvKSwgdGhpcy5fbmFtZU9mKHN1YnN0aXR1dGluZyksIHRoaXMuX25hbWVPZihieSkpO1xyXG4gICAgICAgICAgICBpZiAoYnkucm9sZSlcclxuICAgICAgICAgICAgICBzdGVwLnJvbGUgPSBieS5yb2xlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQuc3Vic3RpdHV0aW5nSWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZ0ZvcllvdScsIHdoby5nZW5kZXIsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICAgIGVsc2UgaWYgKHJlY2lwaWVudC51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1lvdVN1YnN0aXR1dGUnLCB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuYnlHZW5kZXIsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgc3Vic3RpdHV0aW5nID0gYXdhaXQgdGhpcy5fdXNlck9mKHJlY2lwaWVudC5zdWJzdGl0dXRpbmdJZCkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nJywgd2hvLmdlbmRlciwgdGhpcy5fbmFtZU9mKHdobyksIHRoaXMuX25hbWVPZihzdWJzdGl0dXRpbmcpKTtcclxuICAgICAgICAgICAgaWYgKHdoby5yb2xlKVxyXG4gICAgICAgICAgICAgIHN0ZXAucm9sZSA9IHdoby5yb2xlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChyZWNpcGllbnQuYnlJZCkge1xyXG4gICAgICAgIGlmIChyZWNpcGllbnQuYnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeVlvdScsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGxldCBieSA9IGF3YWl0IHRoaXMuX3VzZXJPZihyZWNpcGllbnQuYnlJZCkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeScsIHRoaXMuX25hbWVPZih3aG8pLCB0aGlzLl9uYW1lT2YoYnkpKTtcclxuICAgICAgICAgIGlmIChieS5yb2xlKVxyXG4gICAgICAgICAgICBzdGVwLnJvbGUgPSBieS5yb2xlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCBlc2NhbGF0aW9ucyA9IHRoaXMubW9kZWwubG9nLmZpbHRlcihsID0+IGwudGltZSA+IHRoaXMubW9kZWwuaXNzdWVkICYmIGwudHlwZSA9PT0gJ0VzY2FsYXRpb24nICYmIGwucmVjaXBpZW50SWQgPT09IHJlY2lwaWVudC5pZCk7XHJcblxyXG4gICAgICAgIGlmIChlc2NhbGF0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgICAgIGxldCBlc2NhbGF0ZSA9IFtdO1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBlc2NhbGF0aW9ucy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgd2hvID0gYXdhaXQgdGhpcy5fdXNlck9mKGVzY2FsYXRpb25zW2pdLnVzZXJJZCk7XHJcbiAgICAgICAgICAgIGVzY2FsYXRlLnB1c2god2hvKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChlc2NhbGF0aW9ucy5sZW5ndGggPT09IDEgJiYgZXNjYWxhdGVbMF0gPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdFc2NhbGF0ZWRCeVlvdScsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnRXNjYWxhdGVkQnknLCB0aGlzLl9uYW1lT2Yod2hvKSwgdGhpcy5fdHJhbnNsYXRlLmpvaW4oZXNjYWxhdGUubWFwKGUgPT4gdGhpcy5fbmFtZU9mKGUpKSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQudXNlcklkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnWW91Jyk7XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fbmFtZU9mKHdobyk7XHJcbiAgICAgICAgICAgIGlmICh3aG8ucm9sZSlcclxuICAgICAgICAgICAgICBzdGVwLnJvbGUgPSB3aG8ucm9sZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdHJhY2UucHVzaChzdGVwKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGEgPSB0cmFjZS5zb3J0KChhLCBiKSA9PiBhLnRpbWUgPiBiLnRpbWUgPyAxIDogYS50aW1lID09PSBiLnRpbWUgPyAwIDogLTEpXHJcbiAgfVxyXG4gIHB1YmxpYyByZWZyZXNoKCkge1xyXG4gICAgdGhpcy5uZ09uQ2hhbmdlcyhudWxsKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogdXNlciBuYW1lLCBjaGF0IGFuY2hvciB0YWcgb3IgWW91XHJcbiAgICogQHBhcmFtIHVzZXJcclxuICAgKi9cclxuICBwcml2YXRlIF9uYW1lT2YodXNlcjogVXNlckluZm8pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NoYXQuZm9ybWF0KHVzZXIpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gdXNlcklkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfdXNlck9mKHVzZXJJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxVc2VySW5mbz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjY291bnRzLmdldCh1c2VySWQpO1xyXG4gIH1cclxuICBwcml2YXRlIF9yb2xlTmFtZShuYW1lKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHJvbGUgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUucm9sZXMuZmluZChyID0+IHIubmFtZSA9PT0gbmFtZSk7XHJcbiAgICByZXR1cm4gcm9sZSA/IHJvbGUudGl0bGUgOiBuYW1lO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gYWN0aW9uXHJcbiAgICogQHBhcmFtIHVzZXJcclxuICAgKi9cclxuICBwcml2YXRlIF9hY3Rpb25OYW1lKGFjdGlvbjogQWN0aW9uLCB1c2VyOiBVc2VySW5mb1lvdSk6IHN0cmluZyB7XHJcbiAgICBpZiAodXNlciA9PT0gWW91KSB7XHJcbiAgICAgIGNvbnN0IGdlbmRlciA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5ieUdlbmRlciB8fCB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZ2VuZGVyO1xyXG4gICAgICByZXR1cm4gKGdlbmRlciA9PT0gJ01hbGUnID8gKGFjdGlvbi55b3VNYWxlIHx8IGFjdGlvbi55b3UpIDpcclxuICAgICAgICBnZW5kZXIgPT09ICdGZW1hbGUnID8gKGFjdGlvbi55b3VGZW1hbGUgfHwgYWN0aW9uLnlvdSkgOlxyXG4gICAgICAgICAgYWN0aW9uLnlvdSkgfHxcclxuICAgICAgICBhY3Rpb24ucGFzdCB8fFxyXG4gICAgICAgIGFjdGlvbi50aXRsZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCB7IGdlbmRlciB9ID0gdXNlcjtcclxuICAgICAgcmV0dXJuIChnZW5kZXIgPT09ICdNYWxlJyA/IChhY3Rpb24ucGFzdE1hbGUgfHwgYWN0aW9uLnBhc3QpIDpcclxuICAgICAgICBnZW5kZXIgPT09ICdGZW1hbGUnID8gKGFjdGlvbi5wYXN0RmVtYWxlIHx8IGFjdGlvbi5wYXN0KSA6XHJcbiAgICAgICAgICBhY3Rpb24ucGFzdClcclxuICAgICAgICB8fCBhY3Rpb24udGl0bGU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoYXQoZTogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3QgdXNlcklkID0gKGUuc3JjRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZ2V0QXR0cmlidXRlKCdkYXRhLWluZm8nKTtcclxuICAgIHVzZXJJZCAmJlxyXG4gICAgICB0aGlzLl9jaGF0Lm9wZW4odXNlcklkKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogbW9kZWwgdmVyc2lvbiBjb21wYXJlLCBmb3JtIGNvbXBvbmVudCBpbiAnY29tcGFyZScgdmlldyBtb2RlXHJcbiAgICogQHBhcmFtIGxvZ1xyXG4gICAqL1xyXG4gIGNvbXBhcmUobG9nOiBUcmFjZSkge1xyXG4gICAgdGhpcy52ZXJzaW9uU2VsZWN0ZWQuZW1pdChsb2cudGltZSk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBUcmFjZSB7XHJcbiAgZnlpPzogYm9vbGVhbjtcclxuICB0eXBlOiBMb2dUeXBlIHwgJ093bmVyJyB8ICdQZW5kaW5nJyB8ICdFc3RpbWF0ZSc7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICBlc3RpbWF0ZT86IGJvb2xlYW47XHJcbiAgcGVuZGluZz86IGJvb2xlYW47XHJcbiAgYWN0aW9uPzogc3RyaW5nO1xyXG4gIHJvbGU/OiBzdHJpbmc7XHJcbiAgbm90ZT86IHN0cmluZztcclxuICBkdXJhdGlvbj86IG51bWJlcjtcclxuICBkdXJhdGlvbk1pbj86IG51bWJlcjtcclxuICBkdXJhdGlvbk1heD86IG51bWJlcjtcclxuICB0aW1lPzogRGF0ZTtcclxuICBtb2RlbD86IHt9O1xyXG59XHJcbiIsIjx0YWJsZSBjbGFzcz1cIm1hdC10YWJsZVwiPlxyXG4gIDx0aGVhZCByb2xlPVwicm93Z3JvdXBcIj5cclxuICAgIDx0ciBjbGFzcz1cIm1hdC1oZWFkZXItcm93XCI+XHJcbiAgICAgIDx0aCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPjwvdGg+XHJcbiAgICAgIDx0aCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPjwvdGg+XHJcbiAgICAgIDx0aCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPjwvdGg+XHJcbiAgICAgIDx0aCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPjwvdGg+XHJcbiAgICA8L3RyPlxyXG4gIDwvdGhlYWQ+XHJcbiAgPHRib2R5IHJvbGU9XCJyb3dncm91cFwiPlxyXG4gICAgPHRyIGNsYXNzPVwibWF0LXJvd1wiICpuZ0Zvcj1cImxldCBsIG9mIGRhdGFcIj5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIj5cclxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImwubmFtZSB8IHNhbml0aXplSHRtbFwiIChjbGljayk9XCJjaGF0KCRldmVudClcIj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9bC5yb2xlPnt7J0pvaW5Db21tYSd8dHJhbnNsYXRlfX17e2wucm9sZX19PC9zcGFuPlxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImwudHlwZVwiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidBY3Rpb25UYWtlbidcIj57eyBsLmFjdGlvbiB8IGFjdGlvbiA6ICdwYXN0JyB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInT3duZXInXCI+e3snSXNzdWVkJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidQZW5kaW5nJ1wiPnt7J0lzUGVuZGluZycgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInRXN0aW1hdGUnXCI+e3snRXN0aW1hdGUnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ01vZGVsQ2hhbmdlJ1wiPnt7J0NoYW5nZWQnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJsLmZ5aVwiPiZuYnNwO3t7J0ZZSSd8dHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCIgW25nU3dpdGNoXT1cImwuZXN0aW1hdGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImwuZHVyYXRpb25NYXggJiYgbC5kdXJhdGlvbk1heCA9PT0gbC5kdXJhdGlvbk1pblwiIFtiaXpkb2NUb29sdGlwXT1cImwuZHVyYXRpb25NYXh8YW1EdXJhdGlvbkZvcm1hdFwiPnt7J0VzdGltYXRlVGltZSd8IHRyYW5zbGF0ZSA6IChsLmR1cmF0aW9uTWF4IHwgYW1EdXJhdGlvbjoncycpfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImwuZHVyYXRpb25NYXggJiYgbC5kdXJhdGlvbk1heCAhPT0gbC5kdXJhdGlvbk1pblwiXHJcbiAgICAgICAgICAgICAgICBbYml6ZG9jVG9vbHRpcF09XCJsLmR1cmF0aW9uTWF4fGFtRHVyYXRpb25Gb3JtYXRcIj57eydFc3RpbWF0ZVRpbWVSYW5nZSd8IHRyYW5zbGF0ZSA6IChsLmR1cmF0aW9uTWluIHwgYW1EdXJhdGlvbjoncycpIDogKGwuZHVyYXRpb25NYXggfCBhbUR1cmF0aW9uOidzJyl9fTwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgICAgICA8c3Bhbj57e2wudGltZSB8IGFtQ2FsZW5kYXIgOiBudWxsIDogQ0FMRU5EQVJfU1BFQyB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwibC5kdXJhdGlvblwiIFtiaXpkb2NUb29sdGlwXT1cImwuZHVyYXRpb258YW1EdXJhdGlvbkZvcm1hdFwiPiZuYnNwOyh7e2wuZHVyYXRpb24gfCBhbUR1cmF0aW9uOidzJ319KTwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImwubm90ZVwiPnt7bC5ub3RlfX08L3NwYW4+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJsLm1vZGVsXCIgKGNsaWNrKT1cImNvbXBhcmUobClcIiBbYml6ZG9jVG9vbHRpcF09XCInQ29tcGFyZSd8dHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwic3RhcnRcIj48bWF0LWljb24+bW9yZV9ob3JpejwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICA8L3RyPlxyXG4gIDwvdGJvZHk+XHJcbjwvdGFibGU+XHJcbiJdfQ==
|
@@ -15,6 +15,10 @@ export class TracePaneComponent {
|
|
15
15
|
}
|
16
16
|
ngOnInit() {
|
17
17
|
this._pane.dataChange.subscribe(d => {
|
18
|
+
if (this.model == d['item']) {
|
19
|
+
this.trace.refresh();
|
20
|
+
this.flow.refresh();
|
21
|
+
}
|
18
22
|
this.model = d['item'];
|
19
23
|
this._pane.group = `#${this.model.number}`;
|
20
24
|
});
|
@@ -49,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImpo
|
|
49
53
|
type: ViewChild,
|
50
54
|
args: [FlowViewComponent, { static: true }]
|
51
55
|
}] } });
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UucGFuZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvdHJhY2UvdHJhY2UucGFuZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvdHJhY2UvdHJhY2UucGFuZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7OztBQVN2RCxNQUFNLE9BQU8sa0JBQWtCO0lBSTdCLFlBQVksU0FBMkIsRUFDN0IsS0FBa0MsRUFDbEMsT0FBb0I7UUFEcEIsVUFBSyxHQUFMLEtBQUssQ0FBNkI7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUU1QixLQUFLLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNyQjtZQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLENBQUMsSUFBVTtRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRTtZQUM1RSxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDdEIsS0FBSyxFQUFFO2dCQUNMLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSzthQUNqQjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O2dIQTlCVSxrQkFBa0I7b0dBQWxCLGtCQUFrQiw2SEFFbEIsa0JBQWtCLHFGQUNsQixpQkFBaUIsOERDbEI5QixnSkFHQTs0RkRZYSxrQkFBa0I7a0JBUDlCLFNBQVM7bUJBQUM7b0JBQ1QsV0FBVyxFQUFFLDZCQUE2QjtvQkFDMUMsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7b0JBQzFDLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsTUFBTTtxQkFDZDtpQkFDRjt1SkFHa0QsS0FBSztzQkFBckQsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0MsSUFBSTtzQkFBbkQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERvY3VtZW50TW9kZWwgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tICcuLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGbG93Vmlld0NvbXBvbmVudCB9IGZyb20gJy4vZmxvdy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFjZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL3RyYWNlLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJhY2UucGFuZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJhY2UucGFuZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAncGFuZSdcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFjZVBhbmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIG1vZGVsOiBEb2N1bWVudE1vZGVsPGFueT47XHJcbiAgQFZpZXdDaGlsZChUcmFjZVZpZXdDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIHRyYWNlOiBUcmFjZVZpZXdDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChGbG93Vmlld0NvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgZmxvdzogRmxvd1ZpZXdDb21wb25lbnQ7XHJcbiAgY29uc3RydWN0b3IodHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcGFuZTogUGFuZVJlZjxUcmFjZVBhbmVDb21wb25lbnQ+LFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBQYW5lc1JvdXRlclxyXG4gICkge1xyXG4gICAgX3BhbmUudGl0bGUgPSB0cmFuc2xhdGUuZ2V0KCdUcmFjZScpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3BhbmUuZGF0YUNoYW5nZS5zdWJzY3JpYmUoZCA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm1vZGVsID09IGRbJ2l0ZW0nXSkge1xyXG4gICAgICAgIHRoaXMudHJhY2UucmVmcmVzaCgpO1xyXG4gICAgICAgIHRoaXMuZmxvdy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5tb2RlbCA9IGRbJ2l0ZW0nXTtcclxuICAgICAgdGhpcy5fcGFuZS5ncm91cCA9IGAjJHt0aGlzLm1vZGVsLm51bWJlcn1gO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9wYW5lLnJlc2l6ZS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmZsb3cucmVzaXplKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgdmVyc2lvbih0aW1lOiBEYXRlKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWycuLicsICd2ZXJzaW9uJywgbmV3IERhdGUodGltZSkudmFsdWVPZigpLmVuY29kZUlkKCldLCB7XHJcbiAgICAgIHJlbGF0aXZlVG86IHRoaXMuX3BhbmUsXHJcbiAgICAgIHN0YXRlOiB7XHJcbiAgICAgICAgaXRlbTogdGhpcy5tb2RlbFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGJpemRvYy10cmFjZSBbbW9kZWxdPVwibW9kZWxcIiAodmVyc2lvblNlbGVjdGVkKT1cInZlcnNpb24oJGV2ZW50KVwiPjwvYml6ZG9jLXRyYWNlPlxyXG5cclxuPGJpemRvYy1mbG93IFttb2RlbF09XCJtb2RlbFwiPjwvYml6ZG9jLWZsb3c+XHJcbiJdfQ==
|