@hmcts/media-viewer 2.7.21 → 2.7.23
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/bundles/hmcts-media-viewer.umd.js +4890 -4755
- package/bundles/hmcts-media-viewer.umd.js.map +1 -1
- package/bundles/hmcts-media-viewer.umd.min.js +1 -1
- package/bundles/hmcts-media-viewer.umd.min.js.map +1 -1
- package/esm2015/hmcts-media-viewer.js +20 -20
- package/esm2015/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.js +8 -2
- package/esm2015/lib/icp/icp-update.service.js +22 -40
- package/esm2015/lib/icp/icp.events.js +20 -0
- package/esm2015/lib/icp/icp.interfaces.js +3 -1
- package/esm2015/lib/icp/socket.service.js +133 -43
- package/esm2015/lib/media-viewer.component.js +2 -2
- package/esm2015/lib/viewers/image-viewer/image-viewer.component.js +33 -6
- package/esm2015/lib/viewers/pdf-viewer/pdf-viewer.component.js +11 -2
- package/esm5/hmcts-media-viewer.js +20 -20
- package/esm5/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.js +8 -2
- package/esm5/lib/icp/icp-update.service.js +23 -40
- package/esm5/lib/icp/icp.events.js +20 -0
- package/esm5/lib/icp/icp.interfaces.js +3 -1
- package/esm5/lib/icp/socket.service.js +143 -45
- package/esm5/lib/media-viewer.component.js +2 -2
- package/esm5/lib/viewers/image-viewer/image-viewer.component.js +36 -6
- package/esm5/lib/viewers/pdf-viewer/pdf-viewer.component.js +10 -2
- package/fesm2015/hmcts-media-viewer.js +4198 -4074
- package/fesm2015/hmcts-media-viewer.js.map +1 -1
- package/fesm5/hmcts-media-viewer.js +4873 -4738
- package/fesm5/hmcts-media-viewer.js.map +1 -1
- package/hmcts-media-viewer-v2.7.23.tgz +0 -0
- package/hmcts-media-viewer.d.ts +19 -19
- package/hmcts-media-viewer.metadata.json +1 -1
- package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +4 -3
- package/lib/icp/icp-update.service.d.ts +0 -9
- package/lib/icp/icp.events.d.ts +13 -0
- package/lib/icp/icp.interfaces.d.ts +1 -0
- package/lib/icp/socket.service.d.ts +13 -4
- package/lib/viewers/image-viewer/image-viewer.component.d.ts +4 -1
- package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +3 -1
- package/package.json +1 -1
- package/hmcts-media-viewer-v2.7.21.tgz +0 -0
|
@@ -3,11 +3,17 @@
|
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
5
|
import { Injectable } from '@angular/core';
|
|
6
|
-
import { BehaviorSubject,
|
|
7
|
-
import
|
|
6
|
+
import { BehaviorSubject, of, Subject } from 'rxjs';
|
|
7
|
+
import { IcpEvents } from './icp.events';
|
|
8
8
|
export class SocketService {
|
|
9
9
|
constructor() {
|
|
10
10
|
this.connected$ = new BehaviorSubject(false);
|
|
11
|
+
this.sessionJoined$ = new Subject();
|
|
12
|
+
this.presenterUpdated$ = new Subject();
|
|
13
|
+
this.clientDisconnected$ = new Subject();
|
|
14
|
+
this.participantUpdated$ = new Subject();
|
|
15
|
+
this.newParticipantJoined$ = new Subject();
|
|
16
|
+
this.screenUpdated$ = new Subject();
|
|
11
17
|
}
|
|
12
18
|
/**
|
|
13
19
|
* @return {?}
|
|
@@ -16,40 +22,69 @@ export class SocketService {
|
|
|
16
22
|
this.subscription.unsubscribe();
|
|
17
23
|
}
|
|
18
24
|
/**
|
|
25
|
+
* @param {?} url
|
|
19
26
|
* @return {?}
|
|
20
27
|
*/
|
|
21
|
-
connect() {
|
|
22
|
-
|
|
23
|
-
|
|
28
|
+
connect(url) {
|
|
29
|
+
return this.getSocketClient(url).subscribe((/**
|
|
30
|
+
* @param {?} socket
|
|
24
31
|
* @return {?}
|
|
25
32
|
*/
|
|
26
|
-
() =>
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
33
|
+
(socket) => {
|
|
34
|
+
socket.onopen = (/**
|
|
35
|
+
* @param {?} event
|
|
36
|
+
* @return {?}
|
|
37
|
+
*/
|
|
38
|
+
(event) => {
|
|
39
|
+
this.connected$.next(true);
|
|
40
|
+
});
|
|
41
|
+
socket.onmessage = (/**
|
|
42
|
+
* @param {?} event
|
|
43
|
+
* @return {?}
|
|
44
|
+
*/
|
|
45
|
+
(event) => {
|
|
46
|
+
console.log('onmessage');
|
|
47
|
+
/** @type {?} */
|
|
48
|
+
const eventData = JSON.parse(event.data);
|
|
49
|
+
if (eventData.data && eventData.data.eventName) {
|
|
50
|
+
this.messageEventHandller(eventData.data.eventName, eventData.data.data);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
socket.onerror = (/**
|
|
54
|
+
* @param {?} event
|
|
55
|
+
* @return {?}
|
|
56
|
+
*/
|
|
57
|
+
(event) => {
|
|
58
|
+
console.log('onerror');
|
|
59
|
+
});
|
|
60
|
+
socket.onclose = (/**
|
|
61
|
+
* @param {?} event
|
|
62
|
+
* @return {?}
|
|
63
|
+
*/
|
|
64
|
+
(event) => {
|
|
65
|
+
console.log('onclose');
|
|
66
|
+
});
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* @return {?}
|
|
71
|
+
*/
|
|
72
|
+
connected() {
|
|
73
|
+
return this.connected$.asObservable();
|
|
31
74
|
}
|
|
32
75
|
/**
|
|
33
76
|
* @param {?} session
|
|
34
77
|
* @return {?}
|
|
35
78
|
*/
|
|
36
79
|
join(session) {
|
|
37
|
-
this.
|
|
38
|
-
* @param {?} connected
|
|
39
|
-
* @return {?}
|
|
40
|
-
*/
|
|
41
|
-
connected => {
|
|
42
|
-
if (connected) {
|
|
43
|
-
this.socket.emit('join', session);
|
|
44
|
-
}
|
|
45
|
-
}));
|
|
80
|
+
this.emit(IcpEvents.SESSION_JOIN, session);
|
|
46
81
|
}
|
|
47
82
|
/**
|
|
48
83
|
* @param {?} session
|
|
49
84
|
* @return {?}
|
|
50
85
|
*/
|
|
51
86
|
leave(session) {
|
|
52
|
-
this.
|
|
87
|
+
this.emit(IcpEvents.SESSION_LEAVE, session);
|
|
53
88
|
this.subscription.unsubscribe();
|
|
54
89
|
}
|
|
55
90
|
/**
|
|
@@ -58,38 +93,81 @@ export class SocketService {
|
|
|
58
93
|
* @return {?}
|
|
59
94
|
*/
|
|
60
95
|
emit(event, data) {
|
|
61
|
-
this.socket.
|
|
96
|
+
this.socket.send(JSON.stringify({
|
|
97
|
+
type: 'event',
|
|
98
|
+
event,
|
|
99
|
+
data
|
|
100
|
+
}));
|
|
62
101
|
}
|
|
63
102
|
/**
|
|
64
103
|
* @param {?} event
|
|
65
104
|
* @return {?}
|
|
66
105
|
*/
|
|
67
106
|
listen(event) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
107
|
+
switch (event) {
|
|
108
|
+
case IcpEvents.SESSION_JOINED: {
|
|
109
|
+
return this.sessionJoined$.asObservable();
|
|
110
|
+
}
|
|
111
|
+
case IcpEvents.PRESENTER_UPDATED: {
|
|
112
|
+
return this.presenterUpdated$.asObservable();
|
|
113
|
+
}
|
|
114
|
+
case IcpEvents.CLIENT_DISCONNECTED: {
|
|
115
|
+
return this.clientDisconnected$.asObservable();
|
|
116
|
+
}
|
|
117
|
+
case IcpEvents.PARTICIPANTS_UPDATED: {
|
|
118
|
+
return this.participantUpdated$.asObservable();
|
|
119
|
+
}
|
|
120
|
+
case IcpEvents.NEW_PARTICIPANT_JOINED: {
|
|
121
|
+
return this.newParticipantJoined$.asObservable();
|
|
122
|
+
}
|
|
123
|
+
case IcpEvents.SCREEN_UPDATED: {
|
|
124
|
+
return this.screenUpdated$.asObservable();
|
|
125
|
+
}
|
|
126
|
+
default: {
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
85
130
|
}
|
|
86
131
|
/**
|
|
132
|
+
* @param {?} eventName
|
|
133
|
+
* @param {?} data
|
|
87
134
|
* @return {?}
|
|
88
135
|
*/
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
136
|
+
messageEventHandller(eventName, data) {
|
|
137
|
+
switch (eventName) {
|
|
138
|
+
case IcpEvents.SESSION_JOINED: {
|
|
139
|
+
this.sessionJoined$.next(data);
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
case IcpEvents.PRESENTER_UPDATED: {
|
|
143
|
+
this.presenterUpdated$.next(data);
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
case IcpEvents.CLIENT_DISCONNECTED: {
|
|
147
|
+
this.clientDisconnected$.next();
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
case IcpEvents.PARTICIPANTS_UPDATED: {
|
|
151
|
+
this.participantUpdated$.next(data);
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
case IcpEvents.NEW_PARTICIPANT_JOINED: {
|
|
155
|
+
this.newParticipantJoined$.next();
|
|
156
|
+
break;
|
|
157
|
+
}
|
|
158
|
+
case IcpEvents.SCREEN_UPDATED: {
|
|
159
|
+
this.screenUpdated$.next(data);
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* @param {?} url
|
|
166
|
+
* @return {?}
|
|
167
|
+
*/
|
|
168
|
+
getSocketClient(url) {
|
|
169
|
+
this.socket = new WebSocket(url, 'json.webpubsub.azure.v1');
|
|
170
|
+
return of(this.socket);
|
|
93
171
|
}
|
|
94
172
|
}
|
|
95
173
|
SocketService.decorators = [
|
|
@@ -107,5 +185,17 @@ if (false) {
|
|
|
107
185
|
SocketService.prototype.subscription;
|
|
108
186
|
/** @type {?} */
|
|
109
187
|
SocketService.prototype.connected$;
|
|
188
|
+
/** @type {?} */
|
|
189
|
+
SocketService.prototype.sessionJoined$;
|
|
190
|
+
/** @type {?} */
|
|
191
|
+
SocketService.prototype.presenterUpdated$;
|
|
192
|
+
/** @type {?} */
|
|
193
|
+
SocketService.prototype.clientDisconnected$;
|
|
194
|
+
/** @type {?} */
|
|
195
|
+
SocketService.prototype.participantUpdated$;
|
|
196
|
+
/** @type {?} */
|
|
197
|
+
SocketService.prototype.newParticipantJoined$;
|
|
198
|
+
/** @type {?} */
|
|
199
|
+
SocketService.prototype.screenUpdated$;
|
|
110
200
|
}
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvbWVkaWEtdmlld2VyLyIsInNvdXJjZXMiOlsibGliL2ljcC9zb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFvQixFQUFFLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSXpDLE1BQU0sT0FBTyxhQUFhO0lBWXhCO1FBUkEsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2pELG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMvQixzQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ2xDLHdCQUFtQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDcEMsd0JBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNwQywwQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3RDLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUVmLENBQUM7Ozs7SUFFakIsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQzs7Ozs7SUFFRCxPQUFPLENBQUMsR0FBVztRQUNqQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUzs7OztRQUFDLENBQUMsTUFBaUIsRUFBRSxFQUFFO1lBRS9ELE1BQU0sQ0FBQyxNQUFNOzs7O1lBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0IsQ0FBQyxDQUFBLENBQUM7WUFFRixNQUFN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ZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb20sIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEljcEV2ZW50cyB9IGZyb20gJy4vaWNwLmV2ZW50cyc7XG5pbXBvcnQgeyBJY3BQYXJ0aWNpcGFudCB9IGZyb20gJy4vaWNwLmludGVyZmFjZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU29ja2V0U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBzb2NrZXQ6IFdlYlNvY2tldDtcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIGNvbm5lY3RlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgc2Vzc2lvbkpvaW5lZCQgPSBuZXcgU3ViamVjdCgpO1xuICBwcmVzZW50ZXJVcGRhdGVkJCA9IG5ldyBTdWJqZWN0KCk7XG4gIGNsaWVudERpc2Nvbm5lY3RlZCQgPSBuZXcgU3ViamVjdCgpO1xuICBwYXJ0aWNpcGFudFVwZGF0ZWQkID0gbmV3IFN1YmplY3QoKTtcbiAgbmV3UGFydGljaXBhbnRKb2luZWQkID0gbmV3IFN1YmplY3QoKTtcbiAgc2NyZWVuVXBkYXRlZCQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGNvbm5lY3QodXJsOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTb2NrZXRDbGllbnQodXJsKS5zdWJzY3JpYmUoKHNvY2tldDogV2ViU29ja2V0KSA9PiB7XG5cbiAgICAgIHNvY2tldC5vbm9wZW4gPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuY29ubmVjdGVkJC5uZXh0KHRydWUpO1xuICAgICAgfTtcblxuICAgICAgc29ja2V0Lm9ubWVzc2FnZSA9IChldmVudDogTWVzc2FnZUV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdvbm1lc3NhZ2UnKTtcbiAgICAgICAgY29uc3QgZXZlbnREYXRhID0gSlNPTi5wYXJzZShldmVudC5kYXRhKTtcbiAgICAgICAgaWYgKGV2ZW50RGF0YS5kYXRhICYmIGV2ZW50RGF0YS5kYXRhLmV2ZW50TmFtZSkge1xuICAgICAgICAgIHRoaXMubWVzc2FnZUV2ZW50SGFuZGxsZXIoZXZlbnREYXRhLmRhdGEuZXZlbnROYW1lLCBldmVudERhdGEuZGF0YS5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgc29ja2V0Lm9uZXJyb3IgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdvbmVycm9yJyk7XG4gICAgICB9O1xuXG4gICAgICBzb2NrZXQub25jbG9zZSA9IChldmVudDogQ2xvc2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnb25jbG9zZScpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbm5lY3RlZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5jb25uZWN0ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgam9pbihzZXNzaW9uKSB7XG4gICAgdGhpcy5lbWl0KEljcEV2ZW50cy5TRVNTSU9OX0pPSU4sIHNlc3Npb24pO1xuICB9XG5cbiAgbGVhdmUoc2Vzc2lvbikge1xuICAgIHRoaXMuZW1pdChJY3BFdmVudHMuU0VTU0lPTl9MRUFWRSwgc2Vzc2lvbik7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGVtaXQoZXZlbnQ6IHN0cmluZywgZGF0YTogYW55KSB7XG4gICAgdGhpcy5zb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeSh7XG4gICAgICB0eXBlOiAnZXZlbnQnLFxuICAgICAgZXZlbnQsXG4gICAgICBkYXRhXG4gICAgfSkpO1xuICB9XG5cbiAgbGlzdGVuKGV2ZW50OiBJY3BFdmVudHMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHN3aXRjaCAoZXZlbnQpIHtcbiAgICAgIGNhc2UgSWNwRXZlbnRzLlNFU1NJT05fSk9JTkVEOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlc3Npb25Kb2luZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgfVxuICAgICAgY2FzZSBJY3BFdmVudHMuUFJFU0VOVEVSX1VQREFURUQ6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlc2VudGVyVXBkYXRlZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgICB9XG4gICAgICBjYXNlIEljcEV2ZW50cy5DTElFTlRfRElTQ09OTkVDVEVEOiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsaWVudERpc2Nvbm5lY3RlZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgICB9XG4gICAgICBjYXNlIEljcEV2ZW50cy5QQVJUSUNJUEFOVFNfVVBEQVRFRDoge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJ0aWNpcGFudFVwZGF0ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgfVxuICAgICAgY2FzZSBJY3BFdmVudHMuTkVXX1BBUlRJQ0lQQU5UX0pPSU5FRDoge1xuICAgICAgICByZXR1cm4gdGhpcy5uZXdQYXJ0aWNpcGFudEpvaW5lZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgICB9XG4gICAgICBjYXNlIEljcEV2ZW50cy5TQ1JFRU5fVVBEQVRFRDoge1xuICAgICAgICByZXR1cm4gdGhpcy5zY3JlZW5VcGRhdGVkJC5hc09ic2VydmFibGUoKTtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbWVzc2FnZUV2ZW50SGFuZGxsZXIoZXZlbnROYW1lOiBzdHJpbmcsIGRhdGE6IGFueSkge1xuICAgIHN3aXRjaCAoZXZlbnROYW1lKSB7XG4gICAgICBjYXNlIEljcEV2ZW50cy5TRVNTSU9OX0pPSU5FRDoge1xuICAgICAgICB0aGlzLnNlc3Npb25Kb2luZWQkLm5leHQoZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBJY3BFdmVudHMuUFJFU0VOVEVSX1VQREFURUQ6IHtcbiAgICAgICAgdGhpcy5wcmVzZW50ZXJVcGRhdGVkJC5uZXh0KGRhdGEpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgSWNwRXZlbnRzLkNMSUVOVF9ESVNDT05ORUNURUQ6IHtcbiAgICAgICAgdGhpcy5jbGllbnREaXNjb25uZWN0ZWQkLm5leHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIEljcEV2ZW50cy5QQVJUSUNJUEFOVFNfVVBEQVRFRDoge1xuICAgICAgICB0aGlzLnBhcnRpY2lwYW50VXBkYXRlZCQubmV4dChkYXRhKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIEljcEV2ZW50cy5ORVdfUEFSVElDSVBBTlRfSk9JTkVEOiB7XG4gICAgICAgIHRoaXMubmV3UGFydGljaXBhbnRKb2luZWQkLm5leHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIEljcEV2ZW50cy5TQ1JFRU5fVVBEQVRFRDoge1xuICAgICAgICB0aGlzLnNjcmVlblVwZGF0ZWQkLm5leHQoZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldFNvY2tldENsaWVudCh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8V2ViU29ja2V0PiB7XG4gICAgdGhpcy5zb2NrZXQgPSBuZXcgV2ViU29ja2V0KHVybCwgJ2pzb24ud2VicHVic3ViLmF6dXJlLnYxJyk7XG4gICAgcmV0dXJuIG9mKHRoaXMuc29ja2V0KTtcbiAgfVxufVxuIl19
|
|
@@ -129,7 +129,7 @@ export class MediaViewerComponent {
|
|
|
129
129
|
if (this.enableAnnotations && !(this.multimediaContent || this.unsupportedContent)) {
|
|
130
130
|
this.store.dispatch(new fromAnnoActions.LoadAnnotationSet(this.documentId));
|
|
131
131
|
}
|
|
132
|
-
if (this.enableRedactions && !(this.multimediaContent || this.unsupportedContent)) {
|
|
132
|
+
if (this.enableRedactions && !(this.multimediaContent || this.unsupportedContent) && this.documentId) {
|
|
133
133
|
this.store.dispatch(new fromRedactActions.LoadRedactions(this.documentId));
|
|
134
134
|
}
|
|
135
135
|
if (this.contentType === 'image') {
|
|
@@ -378,4 +378,4 @@ if (false) {
|
|
|
378
378
|
*/
|
|
379
379
|
MediaViewerComponent.prototype.cdr;
|
|
380
380
|
}
|
|
381
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9tZWRpYS12aWV3ZXIvIiwic291cmNlcyI6WyJsaWIvbWVkaWEtdmlld2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLG1CQUFtQixFQUFFLHdCQUF3QixFQUM3QyxpQkFBaUIsRUFDakIseUJBQXlCLEVBQ3pCLDhCQUE4QixFQUMvQixNQUFNLDZDQUE2QyxDQUFDO0FBRXJELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBRXBHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuRixPQUFPLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEtBQUssaUJBQWlCLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxLQUFLLHFCQUFxQixNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sS0FBSyxlQUFlLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxLQUFLLGlCQUFpQixNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxtQkFBbUIsTUFBTSxrQ0FBa0MsQ0FBQzs7O0lBR3RFLEtBQU0sS0FBSztJQUNYLE9BQVEsT0FBTzs7OztJQUlmLEtBQU0sS0FBSztJQUNYLEtBQU0sS0FBSzs7OztJQUlYLE9BQVEsT0FBTztJQUNmLE1BQU8sTUFBTTtJQUNiLFlBQWEsWUFBWTtJQUN6QixLQUFN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Qzs7Ozs7SUFDckMsMENBQTJCOzs7OztJQUd6QixxQ0FBa0Q7O0lBQ2xELDhDQUE4RDs7SUFDOUQsNkNBQWtEOzs7OztJQUNsRCxtQ0FBMEM7Ozs7O0lBQzFDLDhDQUErQzs7Ozs7SUFDL0MscUNBQXlCOzs7OztJQUN6QixtQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkZWZhdWx0SW1hZ2VPcHRpb25zLCBkZWZhdWx0TXVsdGltZWRpYU9wdGlvbnMsXG4gIGRlZmF1bHRQZGZPcHRpb25zLFxuICBkZWZhdWx0VW5zdXBwb3J0ZWRPcHRpb25zLFxuICBUb29sYmFyQnV0dG9uVmlzaWJpbGl0eVNlcnZpY2Vcbn0gZnJvbSAnLi90b29sYmFyL3Rvb2xiYXItYnV0dG9uLXZpc2liaWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uU2V0IH0gZnJvbSAnLi9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLXNldC5tb2RlbCc7XG5pbXBvcnQgeyBUb29sYmFyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi90b29sYmFyL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uQXBpU2VydmljZSB9IGZyb20gJy4vYW5ub3RhdGlvbnMvc2VydmljZXMvYW5ub3RhdGlvbi1hcGkvYW5ub3RhdGlvbi1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBSZXNwb25zZVR5cGUsIFZpZXdlckV4Y2VwdGlvbiB9IGZyb20gJy4vdmlld2Vycy92aWV3ZXItZXhjZXB0aW9uLm1vZGVsJztcbmltcG9ydCB7IENvbW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9hbm5vdGF0aW9ucy9jb21tZW50LXNldC9jb21tZW50L2NvbW1lbnQuc2VydmljZSc7XG5pbXBvcnQgJ2hhbW1lcmpzJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgKiBhcyBmcm9tU3RvcmUgZnJvbSAnLi9zdG9yZS9yZWR1Y2Vycy9yZWR1Y2Vycyc7XG5pbXBvcnQgKiBhcyBmcm9tQW5ub1NlbGVjdG9ycyBmcm9tICcuL3N0b3JlL3NlbGVjdG9ycy9hbm5vdGF0aW9uLnNlbGVjdG9ycyc7XG5pbXBvcnQgKiBhcyBmcm9tRG9jdW1lbnRzU2VsZWN0b3IgZnJvbSAnLi9zdG9yZS9zZWxlY3RvcnMvZG9jdW1lbnQuc2VsZWN0b3JzJztcbmltcG9ydCAqIGFzIGZyb21Bbm5vQWN0aW9ucyBmcm9tICcuL3N0b3JlL2FjdGlvbnMvYW5ub3RhdGlvbi5hY3Rpb25zJztcbmltcG9ydCAqIGFzIGZyb21SZWRhY3RBY3Rpb25zIGZyb20gJy4vc3RvcmUvYWN0aW9ucy9yZWRhY3Rpb24uYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBmcm9tRG9jdW1lbnRBY3Rpb25zIGZyb20gJy4vc3RvcmUvYWN0aW9ucy9kb2N1bWVudC5hY3Rpb25zJztcblxuZW51bSBDb3JlQ29udGVudFR5cGVzIHtcbiAgUERGID0gJ3BkZicsXG4gIElNQUdFID0gJ2ltYWdlJ1xufVxuXG5lbnVtIE11bHRpbWVkaWFDb250ZW50VHlwZXMge1xuICBNUDQgPSAnbXA0JyxcbiAgTVAzID0gJ21wMycsXG59XG5cbmVudW0gQ29udmVydGlibGVDb250ZW50VHlwZXMge1xuICBFWENFTCA9ICdleGNlbCcsXG4gIFdPUkQgPSAnd29yZCcsXG4gIFBPV0VSUE9JTlQgPSAncG93ZXJwb2ludCcsXG4gIFRYVCA9ICd0eHQnLFxuICBSVEYgPSAncnRmJ1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1tZWRpYS12aWV3ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVkaWEtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBNZWRpYVZpZXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkIHtcblxuICBAVmlld0NoaWxkKCd2aWV3ZXJSZWYnKSB2aWV3ZXJSZWY6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgdXJsO1xuICBASW5wdXQoKSBkb3dubG9hZEZpbGVOYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNvbnRlbnRUeXBlOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgc2hvd1Rvb2xiYXIgPSB0cnVlO1xuICBASW5wdXQoKSB0b29sYmFyQnV0dG9uT3ZlcnJpZGVzOiBhbnkgPSB7fTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaGVpZ2h0OiBzdHJpbmc7XG4gIHB1YmxpYyB2aWV3ZXJIZWlnaHQ6IHN0cmluZztcblxuICBASW5wdXQoKSB3aWR0aCA9ICcxMDAlJztcblxuICBAT3V0cHV0KCkgbWVkaWFMb2FkU3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxSZXNwb25zZVR5cGU+KCk7XG4gIEBPdXRwdXQoKSB2aWV3ZXJFeGNlcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPFZpZXdlckV4Y2VwdGlvbj4oKTtcbiAgQE91dHB1dCgpIHRvb2xiYXJFdmVudHNPdXRwdXQgPSBuZXcgRXZlbnRFbWl0dGVyPFRvb2xiYXJFdmVudFNlcnZpY2U+KCk7XG4gIEBPdXRwdXQoKSB1bnNhdmVkQ2hhbmdlcyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBASW5wdXQoKSBlbmFibGVBbm5vdGF0aW9ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBhbm5vdGF0aW9uQXBpVXJsO1xuXG4gIEBJbnB1dCgpIGVuYWJsZVJlZGFjdGlvbnMgPSBmYWxzZTtcbiAgQElucHV0KCkgZW5hYmxlSUNQID0gZmFsc2U7XG4gIEBJbnB1dCgpIG11bHRpbWVkaWFQbGF5ZXJFbmFibGVkID0gZmFsc2U7XG5cblxuICBASW5wdXQoKSBjYXNlSWQ6IHN0cmluZztcblxuICBtdWx0aW1lZGlhQ29udGVudCA9IGZhbHNlO1xuICBjb252ZXJ0aWJsZUNvbnRlbnQgPSBmYWxzZTtcbiAgdW5zdXBwb3J0ZWRDb250ZW50ID0gZmFsc2U7XG5cbiAgZG9jdW1lbnRUaXRsZTogc3RyaW5nO1xuICBzaG93Q29tbWVudFN1bW1hcnk6IGJvb2xlYW47XG4gIGFubm90YXRpb25TZXQkOiBPYnNlcnZhYmxlPEFubm90YXRpb25TZXQgfCB7fT47XG4gIGhhc1Njcm9sbEJhcjogYm9vbGVhbjtcbiAgdHlwZUV4Y2VwdGlvbiA9IGZhbHNlO1xuICBoYXNEaWZmZXJlbnRQYWdlU2l6ZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGRvY3VtZW50SWQ6IHN0cmluZztcblxuICBwcml2YXRlICRzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgcHJldk9mZnNldDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGZyb21TdG9yZS5Bbm5vdGF0aW9uU2V0U3RhdGU+LFxuICAgIHB1YmxpYyByZWFkb25seSB0b29sYmFyQnV0dG9uczogVG9vbGJhckJ1dHRvblZpc2liaWxpdHlTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWFkb25seSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBpOiBBbm5vdGF0aW9uQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1lbnRTZXJ2aWNlOiBDb21tZW50U2VydmljZSxcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBpZiAodGhpcy5hbm5vdGF0aW9uQXBpVXJsKSB7XG4gICAgICBhcGkuYW5ub3RhdGlvbkFwaVVybCA9IHRoaXMuYW5ub3RhdGlvbkFwaVVybDtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5hbm5vdGF0aW9uU2V0JCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbUFubm9TZWxlY3RvcnMuZ2V0QW5ub3RhdGlvblNldCkpO1xuICAgIHRoaXMuaGFzRGlmZmVyZW50UGFnZVNpemUkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tRG9jdW1lbnRzU2VsZWN0b3IuZ2V0UGFnZURpZmZlcmVuY2UpKTtcbiAgICB0aGlzLnNldFRvb2xiYXJCdXR0b25zKCk7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzT3V0cHV0LmVtaXQodGhpcy50b29sYmFyRXZlbnRzKTtcbiAgICB0aGlzLiRzdWJzY3JpcHRpb25zID0gdGhpcy5jb21tZW50U2VydmljZS5nZXRVbnNhdmVkQ2hhbmdlcygpXG4gICAgICAuc3Vic2NyaWJlKGNoYW5nZXMgPT4gdGhpcy5vbkNvbW1lbnRDaGFuZ2UoY2hhbmdlcykpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbnMuYWRkKHRoaXMudG9vbGJhckV2ZW50cy5nZXRTaG93Q29tbWVudFN1bW1hcnkoKVxuICAgICAgLnN1YnNjcmliZShjaGFuZ2VzID0+IHRoaXMuc2hvd0NvbW1lbnRTdW1tYXJ5ID0gY2hhbmdlcykpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhlaWdodCAmJiB0aGlzLnZpZXdlckhlaWdodCAhPT0gdGhpcy5oZWlnaHQpIHtcbiAgICAgIHRoaXMudmlld2VySGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmhlaWdodCkge1xuICAgICAgY29uc3QgY29tcE9mZnNldFRvcCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XG4gICAgICBjb25zdCB2aWV3ZXJPZmZzZXRUb3AgPSB0aGlzLnZpZXdlclJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgIGNvbnN0IG9mZnNldCA9IGNvbXBPZmZzZXRUb3AgKyB2aWV3ZXJPZmZzZXRUb3A7XG5cbiAgICAgIGlmICh0aGlzLnByZXZPZmZzZXQgIT09IG9mZnNldCkge1xuICAgICAgICB0aGlzLnZpZXdlckhlaWdodCA9IGBjYWxjKDEwMHZoIC0gJHtvZmZzZXR9cHgpYDtcbiAgICAgICAgdGhpcy5wcmV2T2Zmc2V0ID0gb2Zmc2V0O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLmFubm90YXRpb25BcGlVcmwpIHtcbiAgICAgIHRoaXMuYXBpLmFubm90YXRpb25BcGlVcmwgPSB0aGlzLmFubm90YXRpb25BcGlVcmw7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMudXJsKSB7XG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMucmVzZXQoKTtcbiAgICAgIHRoaXMuY29tbWVudFNlcnZpY2UucmVzZXRDb21tZW50U2V0KCk7XG4gICAgICB0aGlzLmRvY3VtZW50SWQgPSB0aGlzLmV4dHJhY3RETVN0b3JlRG9jSWQodGhpcy51cmwpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbURvY3VtZW50QWN0aW9ucy5TZXREb2N1bWVudElkKHRoaXMuZG9jdW1lbnRJZCkpO1xuICAgICAgaWYgKHRoaXMuZW5hYmxlQW5ub3RhdGlvbnMgJiYgISh0aGlzLm11bHRpbWVkaWFDb250ZW50IHx8IHRoaXMudW5zdXBwb3J0ZWRDb250ZW50KSkge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tQW5ub0FjdGlvbnMuTG9hZEFubm90YXRpb25TZXQodGhpcy5kb2N1bWVudElkKSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5lbmFibGVSZWRhY3Rpb25zICYmICEodGhpcy5tdWx0aW1lZGlhQ29udGVudCB8fCB0aGlzLnVuc3VwcG9ydGVkQ29udGVudCkpIHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbVJlZGFjdEFjdGlvbnMuTG9hZFJlZGFjdGlvbnModGhpcy5kb2N1bWVudElkKSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5jb250ZW50VHlwZSA9PT0gJ2ltYWdlJykge1xuICAgICAgICB0aGlzLmRvY3VtZW50VGl0bGUgPSBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLmNvbnRlbnRUeXBlKSB7XG4gICAgICB0aGlzLmNvbnZlcnRpYmxlQ29udGVudCA9IHRoaXMubmVlZHNDb252ZXJ0aW5nKCk7XG4gICAgICB0aGlzLm11bHRpbWVkaWFDb250ZW50ID0gdGhpcy5pc011bHRpbWVkaWEoKTtcbiAgICAgIHRoaXMudW5zdXBwb3J0ZWRDb250ZW50ID0gIXRoaXMuaXNTdXBwb3J0ZWQoKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldFRvb2xiYXJCdXR0b25zKCk7XG4gICAgdGhpcy5kZXRlY3RPcygpO1xuICAgIHRoaXMudHlwZUV4Y2VwdGlvbiA9IGZhbHNlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmVlZHNDb252ZXJ0aW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnRUeXBlICE9PSBudWxsICYmIE9iamVjdC5rZXlzKENvbnZlcnRpYmxlQ29udGVudFR5cGVzKS5pbmNsdWRlcyh0aGlzLmNvbnRlbnRUeXBlLnRvVXBwZXJDYXNlKCkpO1xuICB9XG5cbiAgaXNNdWx0aW1lZGlhKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnRUeXBlICE9PSBudWxsICYmIE9iamVjdC5rZXlzKE11bHRpbWVkaWFDb250ZW50VHlwZXMpLmluY2x1ZGVzKHRoaXMuY29udGVudFR5cGUudG9VcHBlckNhc2UoKSk7XG4gIH1cblxuICBpc1N1cHBvcnRlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBzdXBwb3J0ZWRUeXBlcyA9IE9iamVjdC5hc3NpZ24oe30sIE11bHRpbWVkaWFDb250ZW50VHlwZXMsIENvbnZlcnRpYmxlQ29udGVudFR5cGVzLCBDb3JlQ29udGVudFR5cGVzKTtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50VHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyhzdXBwb3J0ZWRUeXBlcykuaW5jbHVkZXModGhpcy5jb250ZW50VHlwZS50b1VwcGVyQ2FzZSgpKTtcbiAgfVxuXG4gIG9uTWVkaWFMb2FkKHN0YXR1czogUmVzcG9uc2VUeXBlKSB7XG4gICAgdGhpcy5tZWRpYUxvYWRTdGF0dXMuZW1pdChzdGF0dXMpO1xuICB9XG5cbiAgc2V0VG9vbGJhckJ1dHRvbnMoKSB7XG4gICAgaWYgKHRoaXMuY29udGVudFR5cGUgPT09IENvcmVDb250ZW50VHlwZXMuUERGIHx8IHRoaXMubmVlZHNDb252ZXJ0aW5nKCkpIHtcbiAgICAgIHRoaXMudG9vbGJhckJ1dHRvbnMuc2V0dXAoe1xuICAgICAgICAuLi5kZWZhdWx0UGRmT3B0aW9ucywgc2hvd0hpZ2hsaWdodEJ1dHRvbjogdGhpcy5lbmFibGVBbm5vdGF0aW9ucywgc2hvd0RyYXdCdXR0b246IHRoaXMuZW5hYmxlQW5ub3RhdGlvbnMsXG4gICAgICAgIC4uLnRoaXMudG9vbGJhckJ1dHRvbk92ZXJyaWRlc1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnRlbnRUeXBlID09PSBDb3JlQ29udGVudFR5cGVzLklNQUdFKSB7XG4gICAgICB0aGlzLnRvb2xiYXJCdXR0b25zLnNldHVwKHtcbiAgICAgICAgLi4uZGVmYXVsdEltYWdlT3B0aW9ucywgc2hvd0RyYXdCdXR0b246IHRoaXMuZW5hYmxlQW5ub3RhdGlvbnMsXG4gICAgICAgIC4uLnRoaXMudG9vbGJhckJ1dHRvbk92ZXJyaWRlc1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzTXVsdGltZWRpYSgpKSB7XG4gICAgICB0aGlzLnRvb2xiYXJCdXR0b25zLnNldHVwKHtcbiAgICAgICAgLi4uZGVmYXVsdE11bHRpbWVkaWFPcHRpb25zLFxuICAgICAgICAuLi50aGlzLnRvb2xiYXJCdXR0b25PdmVycmlkZXNcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRvb2xiYXJCdXR0b25zLnNldHVwKHtcbiAgICAgICAgLi4uZGVmYXVsdFVuc3VwcG9ydGVkT3B0aW9ucyxcbiAgICAgICAgLi4udGhpcy50b29sYmFyQnV0dG9uT3ZlcnJpZGVzXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvbkxvYWRFeGNlcHRpb24oZXhjZXB0aW9uOiBWaWV3ZXJFeGNlcHRpb24pIHtcbiAgICB0aGlzLnZpZXdlckV4Y2VwdGlvbi5lbWl0KGV4Y2VwdGlvbik7XG4gICAgaWYgKCF0aGlzLmlzU3VwcG9ydGVkKCkpIHtcbiAgICAgIHRoaXMudHlwZUV4Y2VwdGlvbiA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnR5cGVFeGNlcHRpb24gPSB0cnVlO1xuICAgICAgdGhpcy5jb250ZW50VHlwZSA9IG51bGw7XG4gICAgICB0aGlzLnNldFRvb2xiYXJCdXR0b25zKCk7XG4gICAgfVxuICB9XG5cbiAgb25Db21tZW50Q2hhbmdlKGNoYW5nZXM6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnVuc2F2ZWRDaGFuZ2VzLmVtaXQoY2hhbmdlcyk7XG4gIH1cblxuICBvbkRvY3VtZW50VGl0bGVDaGFuZ2UodGl0bGU6IHN0cmluZykge1xuICAgIHRoaXMuZG9jdW1lbnRUaXRsZSA9IHRpdGxlO1xuICB9XG5cbiAgLy8gSWYgc2VjdXJlIG1vZGUgaXMgZW5hYmxlZCAod2hpY2ggYWRkcyBcImRvY3VtZW50c3YyXCIgdG8gdGhlIGRvY3VtZW50SWQpLCBnZXQgcmlkIG9mIGl0XG4gIHByaXZhdGUgZXh0cmFjdERNU3RvcmVEb2NJZCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdXJsID0gdXJsLmluY2x1ZGVzKCcvZG9jdW1lbnRzLycpID8gdXJsLnNwbGl0KCcvZG9jdW1lbnRzLycpWzFdIDogdXJsO1xuICAgIHVybCA9IHVybC5pbmNsdWRlcygnL2RvY3VtZW50c3YyLycpID8gdXJsLnNwbGl0KCcvZG9jdW1lbnRzdjIvJylbMV0gOiB1cmw7XG4gICAgcmV0dXJuIHVybC5yZXBsYWNlKCcvYmluYXJ5JywgJycpO1xuICB9XG5cbiAgZGV0ZWN0T3MoKSB7XG4gICAgdGhpcy5oYXNTY3JvbGxCYXIgPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdXaW4nKSAhPT0gLTE7XG4gIH1cbn1cbiJdfQ==
|
|
381
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9tZWRpYS12aWV3ZXIvIiwic291cmNlcyI6WyJsaWIvbWVkaWEtdmlld2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLG1CQUFtQixFQUFFLHdCQUF3QixFQUM3QyxpQkFBaUIsRUFDakIseUJBQXlCLEVBQ3pCLDhCQUE4QixFQUMvQixNQUFNLDZDQUE2QyxDQUFDO0FBRXJELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBRXBHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuRixPQUFPLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEtBQUssaUJBQWlCLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxLQUFLLHFCQUFxQixNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sS0FBSyxlQUFlLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxLQUFLLGlCQUFpQixNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxtQkFBbUIsTUFBTSxrQ0FBa0MsQ0FBQzs7O0lBR3RFLEtBQU0sS0FBSztJQUNYLE9BQVEsT0FBTzs7OztJQUlmLEtBQU0sS0FBSztJQUNYLEtBQU0sS0FBSzs7OztJQUlYLE9BQVEsT0FBTztJQUNmLE1BQU8sTUFBTTtJQUNiLFlBQWEsWUFBWTtJQUN6QixLQUFN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QUFtQjs7Ozs7SUFFbkIsOENBQXFDOzs7OztJQUNyQywwQ0FBMkI7Ozs7O0lBR3pCLHFDQUFrRDs7SUFDbEQsOENBQThEOztJQUM5RCw2Q0FBa0Q7Ozs7O0lBQ2xELG1DQUEwQzs7Ozs7SUFDMUMsOENBQStDOzs7OztJQUMvQyxxQ0FBeUI7Ozs7O0lBQ3pCLG1DQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0NoZWNrZWQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGRlZmF1bHRJbWFnZU9wdGlvbnMsIGRlZmF1bHRNdWx0aW1lZGlhT3B0aW9ucyxcbiAgZGVmYXVsdFBkZk9wdGlvbnMsXG4gIGRlZmF1bHRVbnN1cHBvcnRlZE9wdGlvbnMsXG4gIFRvb2xiYXJCdXR0b25WaXNpYmlsaXR5U2VydmljZVxufSBmcm9tICcuL3Rvb2xiYXIvdG9vbGJhci1idXR0b24tdmlzaWJpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IEFubm90YXRpb25TZXQgfSBmcm9tICcuL2Fubm90YXRpb25zL2Fubm90YXRpb24tc2V0L2Fubm90YXRpb24tc2V0Lm1vZGVsJztcbmltcG9ydCB7IFRvb2xiYXJFdmVudFNlcnZpY2UgfSBmcm9tICcuL3Rvb2xiYXIvdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEFubm90YXRpb25BcGlTZXJ2aWNlIH0gZnJvbSAnLi9hbm5vdGF0aW9ucy9zZXJ2aWNlcy9hbm5vdGF0aW9uLWFwaS9hbm5vdGF0aW9uLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlc3BvbnNlVHlwZSwgVmlld2VyRXhjZXB0aW9uIH0gZnJvbSAnLi92aWV3ZXJzL3ZpZXdlci1leGNlcHRpb24ubW9kZWwnO1xuaW1wb3J0IHsgQ29tbWVudFNlcnZpY2UgfSBmcm9tICcuL2Fubm90YXRpb25zL2NvbW1lbnQtc2V0L2NvbW1lbnQvY29tbWVudC5zZXJ2aWNlJztcbmltcG9ydCAnaGFtbWVyanMnO1xuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCAqIGFzIGZyb21TdG9yZSBmcm9tICcuL3N0b3JlL3JlZHVjZXJzL3JlZHVjZXJzJztcbmltcG9ydCAqIGFzIGZyb21Bbm5vU2VsZWN0b3JzIGZyb20gJy4vc3RvcmUvc2VsZWN0b3JzL2Fubm90YXRpb24uc2VsZWN0b3JzJztcbmltcG9ydCAqIGFzIGZyb21Eb2N1bWVudHNTZWxlY3RvciBmcm9tICcuL3N0b3JlL3NlbGVjdG9ycy9kb2N1bWVudC5zZWxlY3RvcnMnO1xuaW1wb3J0ICogYXMgZnJvbUFubm9BY3Rpb25zIGZyb20gJy4vc3RvcmUvYWN0aW9ucy9hbm5vdGF0aW9uLmFjdGlvbnMnO1xuaW1wb3J0ICogYXMgZnJvbVJlZGFjdEFjdGlvbnMgZnJvbSAnLi9zdG9yZS9hY3Rpb25zL3JlZGFjdGlvbi5hY3Rpb25zJztcbmltcG9ydCAqIGFzIGZyb21Eb2N1bWVudEFjdGlvbnMgZnJvbSAnLi9zdG9yZS9hY3Rpb25zL2RvY3VtZW50LmFjdGlvbnMnO1xuXG5lbnVtIENvcmVDb250ZW50VHlwZXMge1xuICBQREYgPSAncGRmJyxcbiAgSU1BR0UgPSAnaW1hZ2UnXG59XG5cbmVudW0gTXVsdGltZWRpYUNvbnRlbnRUeXBlcyB7XG4gIE1QNCA9ICdtcDQnLFxuICBNUDMgPSAnbXAzJyxcbn1cblxuZW51bSBDb252ZXJ0aWJsZUNvbnRlbnRUeXBlcyB7XG4gIEVYQ0VMID0gJ2V4Y2VsJyxcbiAgV09SRCA9ICd3b3JkJyxcbiAgUE9XRVJQT0lOVCA9ICdwb3dlcnBvaW50JyxcbiAgVFhUID0gJ3R4dCcsXG4gIFJURiA9ICdydGYnXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ212LW1lZGlhLXZpZXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZWRpYS12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIE1lZGlhVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0NoZWNrZWQge1xuXG4gIEBWaWV3Q2hpbGQoJ3ZpZXdlclJlZicpIHZpZXdlclJlZjogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKSB1cmw7XG4gIEBJbnB1dCgpIGRvd25sb2FkRmlsZU5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgY29udGVudFR5cGU6IHN0cmluZztcblxuICBASW5wdXQoKSBzaG93VG9vbGJhciA9IHRydWU7XG4gIEBJbnB1dCgpIHRvb2xiYXJCdXR0b25PdmVycmlkZXM6IGFueSA9IHt9O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWlnaHQ6IHN0cmluZztcbiAgcHVibGljIHZpZXdlckhlaWdodDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHdpZHRoID0gJzEwMCUnO1xuXG4gIEBPdXRwdXQoKSBtZWRpYUxvYWRTdGF0dXMgPSBuZXcgRXZlbnRFbWl0dGVyPFJlc3BvbnNlVHlwZT4oKTtcbiAgQE91dHB1dCgpIHZpZXdlckV4Y2VwdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8Vmlld2VyRXhjZXB0aW9uPigpO1xuICBAT3V0cHV0KCkgdG9vbGJhckV2ZW50c091dHB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8VG9vbGJhckV2ZW50U2VydmljZT4oKTtcbiAgQE91dHB1dCgpIHVuc2F2ZWRDaGFuZ2VzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBJbnB1dCgpIGVuYWJsZUFubm90YXRpb25zID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFubm90YXRpb25BcGlVcmw7XG5cbiAgQElucHV0KCkgZW5hYmxlUmVkYWN0aW9ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBlbmFibGVJQ1AgPSBmYWxzZTtcbiAgQElucHV0KCkgbXVsdGltZWRpYVBsYXllckVuYWJsZWQgPSBmYWxzZTtcblxuXG4gIEBJbnB1dCgpIGNhc2VJZDogc3RyaW5nO1xuXG4gIG11bHRpbWVkaWFDb250ZW50ID0gZmFsc2U7XG4gIGNvbnZlcnRpYmxlQ29udGVudCA9IGZhbHNlO1xuICB1bnN1cHBvcnRlZENvbnRlbnQgPSBmYWxzZTtcblxuICBkb2N1bWVudFRpdGxlOiBzdHJpbmc7XG4gIHNob3dDb21tZW50U3VtbWFyeTogYm9vbGVhbjtcbiAgYW5ub3RhdGlvblNldCQ6IE9ic2VydmFibGU8QW5ub3RhdGlvblNldCB8IHt9PjtcbiAgaGFzU2Nyb2xsQmFyOiBib29sZWFuO1xuICB0eXBlRXhjZXB0aW9uID0gZmFsc2U7XG4gIGhhc0RpZmZlcmVudFBhZ2VTaXplJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgZG9jdW1lbnRJZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgJHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBwcmV2T2Zmc2V0OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8ZnJvbVN0b3JlLkFubm90YXRpb25TZXRTdGF0ZT4sXG4gICAgcHVibGljIHJlYWRvbmx5IHRvb2xiYXJCdXR0b25zOiBUb29sYmFyQnV0dG9uVmlzaWJpbGl0eVNlcnZpY2UsXG4gICAgcHVibGljIHJlYWRvbmx5IHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcGk6IEFubm90YXRpb25BcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tbWVudFNlcnZpY2U6IENvbW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIGlmICh0aGlzLmFubm90YXRpb25BcGlVcmwpIHtcbiAgICAgIGFwaS5hbm5vdGF0aW9uQXBpVXJsID0gdGhpcy5hbm5vdGF0aW9uQXBpVXJsO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLmFubm90YXRpb25TZXQkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tQW5ub1NlbGVjdG9ycy5nZXRBbm5vdGF0aW9uU2V0KSk7XG4gICAgdGhpcy5oYXNEaWZmZXJlbnRQYWdlU2l6ZSQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21Eb2N1bWVudHNTZWxlY3Rvci5nZXRQYWdlRGlmZmVyZW5jZSkpO1xuICAgIHRoaXMuc2V0VG9vbGJhckJ1dHRvbnMoKTtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHNPdXRwdXQuZW1pdCh0aGlzLnRvb2xiYXJFdmVudHMpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbnMgPSB0aGlzLmNvbW1lbnRTZXJ2aWNlLmdldFVuc2F2ZWRDaGFuZ2VzKClcbiAgICAgIC5zdWJzY3JpYmUoY2hhbmdlcyA9PiB0aGlzLm9uQ29tbWVudENoYW5nZShjaGFuZ2VzKSk7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9ucy5hZGQodGhpcy50b29sYmFyRXZlbnRzLmdldFNob3dDb21tZW50U3VtbWFyeSgpXG4gICAgICAuc3Vic2NyaWJlKGNoYW5nZXMgPT4gdGhpcy5zaG93Q29tbWVudFN1bW1hcnkgPSBjaGFuZ2VzKSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGVpZ2h0ICYmIHRoaXMudmlld2VySGVpZ2h0ICE9PSB0aGlzLmhlaWdodCkge1xuICAgICAgdGhpcy52aWV3ZXJIZWlnaHQgPSB0aGlzLmhlaWdodDtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaGVpZ2h0KSB7XG4gICAgICBjb25zdCBjb21wT2Zmc2V0VG9wID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcbiAgICAgIGNvbnN0IHZpZXdlck9mZnNldFRvcCA9IHRoaXMudmlld2VyUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0VG9wO1xuICAgICAgY29uc3Qgb2Zmc2V0ID0gY29tcE9mZnNldFRvcCArIHZpZXdlck9mZnNldFRvcDtcblxuICAgICAgaWYgKHRoaXMucHJldk9mZnNldCAhPT0gb2Zmc2V0KSB7XG4gICAgICAgIHRoaXMudmlld2VySGVpZ2h0ID0gYGNhbGMoMTAwdmggLSAke29mZnNldH1weClgO1xuICAgICAgICB0aGlzLnByZXZPZmZzZXQgPSBvZmZzZXQ7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMuYW5ub3RhdGlvbkFwaVVybCkge1xuICAgICAgdGhpcy5hcGkuYW5ub3RhdGlvbkFwaVVybCA9IHRoaXMuYW5ub3RhdGlvbkFwaVVybDtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy51cmwpIHtcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5yZXNldCgpO1xuICAgICAgdGhpcy5jb21tZW50U2VydmljZS5yZXNldENvbW1lbnRTZXQoKTtcbiAgICAgIHRoaXMuZG9jdW1lbnRJZCA9IHRoaXMuZXh0cmFjdERNU3RvcmVEb2NJZCh0aGlzLnVybCk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tRG9jdW1lbnRBY3Rpb25zLlNldERvY3VtZW50SWQodGhpcy5kb2N1bWVudElkKSk7XG4gICAgICBpZiAodGhpcy5lbmFibGVBbm5vdGF0aW9ucyAmJiAhKHRoaXMubXVsdGltZWRpYUNvbnRlbnQgfHwgdGhpcy51bnN1cHBvcnRlZENvbnRlbnQpKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21Bbm5vQWN0aW9ucy5Mb2FkQW5ub3RhdGlvblNldCh0aGlzLmRvY3VtZW50SWQpKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmVuYWJsZVJlZGFjdGlvbnMgJiYgISh0aGlzLm11bHRpbWVkaWFDb250ZW50IHx8IHRoaXMudW5zdXBwb3J0ZWRDb250ZW50KSAmJiB0aGlzLmRvY3VtZW50SWQpIHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbVJlZGFjdEFjdGlvbnMuTG9hZFJlZGFjdGlvbnModGhpcy5kb2N1bWVudElkKSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5jb250ZW50VHlwZSA9PT0gJ2ltYWdlJykge1xuICAgICAgICB0aGlzLmRvY3VtZW50VGl0bGUgPSBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLmNvbnRlbnRUeXBlKSB7XG4gICAgICB0aGlzLmNvbnZlcnRpYmxlQ29udGVudCA9IHRoaXMubmVlZHNDb252ZXJ0aW5nKCk7XG4gICAgICB0aGlzLm11bHRpbWVkaWFDb250ZW50ID0gdGhpcy5pc011bHRpbWVkaWEoKTtcbiAgICAgIHRoaXMudW5zdXBwb3J0ZWRDb250ZW50ID0gIXRoaXMuaXNTdXBwb3J0ZWQoKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldFRvb2xiYXJCdXR0b25zKCk7XG4gICAgdGhpcy5kZXRlY3RPcygpO1xuICAgIHRoaXMudHlwZUV4Y2VwdGlvbiA9IGZhbHNlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmVlZHNDb252ZXJ0aW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnRUeXBlICE9PSBudWxsICYmIE9iamVjdC5rZXlzKENvbnZlcnRpYmxlQ29udGVudFR5cGVzKS5pbmNsdWRlcyh0aGlzLmNvbnRlbnRUeXBlLnRvVXBwZXJDYXNlKCkpO1xuICB9XG5cbiAgaXNNdWx0aW1lZGlhKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnRUeXBlICE9PSBudWxsICYmIE9iamVjdC5rZXlzKE11bHRpbWVkaWFDb250ZW50VHlwZXMpLmluY2x1ZGVzKHRoaXMuY29udGVudFR5cGUudG9VcHBlckNhc2UoKSk7XG4gIH1cblxuICBpc1N1cHBvcnRlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBzdXBwb3J0ZWRUeXBlcyA9IE9iamVjdC5hc3NpZ24oe30sIE11bHRpbWVkaWFDb250ZW50VHlwZXMsIENvbnZlcnRpYmxlQ29udGVudFR5cGVzLCBDb3JlQ29udGVudFR5cGVzKTtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50VHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyhzdXBwb3J0ZWRUeXBlcykuaW5jbHVkZXModGhpcy5jb250ZW50VHlwZS50b1VwcGVyQ2FzZSgpKTtcbiAgfVxuXG4gIG9uTWVkaWFMb2FkKHN0YXR1czogUmVzcG9uc2VUeXBlKSB7XG4gICAgdGhpcy5tZWRpYUxvYWRTdGF0dXMuZW1pdChzdGF0dXMpO1xuICB9XG5cbiAgc2V0VG9vbGJhckJ1dHRvbnMoKSB7XG4gICAgaWYgKHRoaXMuY29udGVudFR5cGUgPT09IENvcmVDb250ZW50VHlwZXMuUERGIHx8IHRoaXMubmVlZHNDb252ZXJ0aW5nKCkpIHtcbiAgICAgIHRoaXMudG9vbGJhckJ1dHRvbnMuc2V0dXAoe1xuICAgICAgICAuLi5kZWZhdWx0UGRmT3B0aW9ucywgc2hvd0hpZ2hsaWdodEJ1dHRvbjogdGhpcy5lbmFibGVBbm5vdGF0aW9ucywgc2hvd0RyYXdCdXR0b246IHRoaXMuZW5hYmxlQW5ub3RhdGlvbnMsXG4gICAgICAgIC4uLnRoaXMudG9vbGJhckJ1dHRvbk92ZXJyaWRlc1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnRlbnRUeXBlID09PSBDb3JlQ29udGVudFR5cGVzLklNQUdFKSB7XG4gICAgICB0aGlzLnRvb2xiYXJCdXR0b25zLnNldHVwKHtcbiAgICAgICAgLi4uZGVmYXVsdEltYWdlT3B0aW9ucywgc2hvd0RyYXdCdXR0b246IHRoaXMuZW5hYmxlQW5ub3RhdGlvbnMsXG4gICAgICAgIC4uLnRoaXMudG9vbGJhckJ1dHRvbk92ZXJyaWRlc1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzTXVsdGltZWRpYSgpKSB7XG4gICAgICB0aGlzLnRvb2xiYXJCdXR0b25zLnNldHVwKHtcbiAgICAgICAgLi4uZGVmYXVsdE11bHRpbWVkaWFPcHRpb25zLFxuICAgICAgICAuLi50aGlzLnRvb2xiYXJCdXR0b25PdmVycmlkZXNcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRvb2xiYXJCdXR0b25zLnNldHVwKHtcbiAgICAgICAgLi4uZGVmYXVsdFVuc3VwcG9ydGVkT3B0aW9ucyxcbiAgICAgICAgLi4udGhpcy50b29sYmFyQnV0dG9uT3ZlcnJpZGVzXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvbkxvYWRFeGNlcHRpb24oZXhjZXB0aW9uOiBWaWV3ZXJFeGNlcHRpb24pIHtcbiAgICB0aGlzLnZpZXdlckV4Y2VwdGlvbi5lbWl0KGV4Y2VwdGlvbik7XG4gICAgaWYgKCF0aGlzLmlzU3VwcG9ydGVkKCkpIHtcbiAgICAgIHRoaXMudHlwZUV4Y2VwdGlvbiA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnR5cGVFeGNlcHRpb24gPSB0cnVlO1xuICAgICAgdGhpcy5jb250ZW50VHlwZSA9IG51bGw7XG4gICAgICB0aGlzLnNldFRvb2xiYXJCdXR0b25zKCk7XG4gICAgfVxuICB9XG5cbiAgb25Db21tZW50Q2hhbmdlKGNoYW5nZXM6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnVuc2F2ZWRDaGFuZ2VzLmVtaXQoY2hhbmdlcyk7XG4gIH1cblxuICBvbkRvY3VtZW50VGl0bGVDaGFuZ2UodGl0bGU6IHN0cmluZykge1xuICAgIHRoaXMuZG9jdW1lbnRUaXRsZSA9IHRpdGxlO1xuICB9XG5cbiAgLy8gSWYgc2VjdXJlIG1vZGUgaXMgZW5hYmxlZCAod2hpY2ggYWRkcyBcImRvY3VtZW50c3YyXCIgdG8gdGhlIGRvY3VtZW50SWQpLCBnZXQgcmlkIG9mIGl0XG4gIHByaXZhdGUgZXh0cmFjdERNU3RvcmVEb2NJZCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdXJsID0gdXJsLmluY2x1ZGVzKCcvZG9jdW1lbnRzLycpID8gdXJsLnNwbGl0KCcvZG9jdW1lbnRzLycpWzFdIDogdXJsO1xuICAgIHVybCA9IHVybC5pbmNsdWRlcygnL2RvY3VtZW50c3YyLycpID8gdXJsLnNwbGl0KCcvZG9jdW1lbnRzdjIvJylbMV0gOiB1cmw7XG4gICAgcmV0dXJuIHVybC5yZXBsYWNlKCcvYmluYXJ5JywgJycpO1xuICB9XG5cbiAgZGV0ZWN0T3MoKSB7XG4gICAgdGhpcy5oYXNTY3JvbGxCYXIgPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdXaW4nKSAhPT0gLTE7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
|
-
import { Component, ElementRef, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
6
|
+
import { Component, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild, } from '@angular/core';
|
|
7
7
|
import { PrintService } from '../../print.service';
|
|
8
8
|
import { ToolbarEventService } from '../../toolbar/toolbar-event.service';
|
|
9
9
|
import { ResponseType, ViewerException } from '../viewer-exception.model';
|
|
@@ -11,6 +11,8 @@ import { ViewerUtilService } from '../viewer-util.service';
|
|
|
11
11
|
import { ToolbarButtonVisibilityService } from '../../toolbar/toolbar-button-visibility.service';
|
|
12
12
|
import { Store } from '@ngrx/store';
|
|
13
13
|
import * as fromDocument from '../../store/actions/document.actions';
|
|
14
|
+
import * as fromAnnotationActions from '../../store/actions/annotation.actions';
|
|
15
|
+
import { ViewerEventService } from '../viewer-event.service';
|
|
14
16
|
export class ImageViewerComponent {
|
|
15
17
|
/**
|
|
16
18
|
* @param {?} store
|
|
@@ -18,13 +20,15 @@ export class ImageViewerComponent {
|
|
|
18
20
|
* @param {?} viewerUtilService
|
|
19
21
|
* @param {?} toolbarEvents
|
|
20
22
|
* @param {?} toolbarButtons
|
|
23
|
+
* @param {?} viewerEvents
|
|
21
24
|
*/
|
|
22
|
-
constructor(store, printService, viewerUtilService, toolbarEvents, toolbarButtons) {
|
|
25
|
+
constructor(store, printService, viewerUtilService, toolbarEvents, toolbarButtons, viewerEvents) {
|
|
23
26
|
this.store = store;
|
|
24
27
|
this.printService = printService;
|
|
25
28
|
this.viewerUtilService = viewerUtilService;
|
|
26
29
|
this.toolbarEvents = toolbarEvents;
|
|
27
30
|
this.toolbarButtons = toolbarButtons;
|
|
31
|
+
this.viewerEvents = viewerEvents;
|
|
28
32
|
this.mediaLoadStatus = new EventEmitter();
|
|
29
33
|
this.imageViewerException = new EventEmitter();
|
|
30
34
|
this.rotation = 0;
|
|
@@ -64,6 +68,22 @@ export class ImageViewerComponent {
|
|
|
64
68
|
*/
|
|
65
69
|
toggle => this.showCommentsPanel = toggle)));
|
|
66
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* @param {?} event
|
|
73
|
+
* @return {?}
|
|
74
|
+
*/
|
|
75
|
+
onImageViewerClick(event) {
|
|
76
|
+
/** @type {?} */
|
|
77
|
+
const classNme = ((/** @type {?} */ (event.target))).className;
|
|
78
|
+
if (classNme.startsWith('pageContainer')) {
|
|
79
|
+
this.store.dispatch(new fromAnnotationActions.SelectedAnnotation({
|
|
80
|
+
annotationId: '',
|
|
81
|
+
selected: false,
|
|
82
|
+
editable: false,
|
|
83
|
+
}));
|
|
84
|
+
this.viewerEvents.clearCtxToolbar();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
67
87
|
/**
|
|
68
88
|
* @return {?}
|
|
69
89
|
*/
|
|
@@ -237,7 +257,7 @@ export class ImageViewerComponent {
|
|
|
237
257
|
ImageViewerComponent.decorators = [
|
|
238
258
|
{ type: Component, args: [{
|
|
239
259
|
selector: 'mv-image-viewer',
|
|
240
|
-
template: "<mv-comment-set-header [ngClass]=\"{'show-comments-panel': showCommentsPanel}\"\n [showCommentSummary]=\"toolbarButtons.showCommentSummary\"\n (showCommentSummaryDialog)=\"toggleCommentsSummary()\">\n</mv-comment-set-header>\n<div mvGrabNDrag [dragX]=\"imageContainer\" [dragEnabled]=\"enableGrabNDrag\"\n id=\"viewer-wrapper\"\n [ngStyle]=\"{ height: height }\"\n [ngClass]=\"{ 'grabNDrag': enableGrabNDrag }\"\n *ngIf=\"url && !errorMessage\">\n <div #imageContainer
|
|
260
|
+
template: "<mv-comment-set-header [ngClass]=\"{'show-comments-panel': showCommentsPanel}\"\n [showCommentSummary]=\"toolbarButtons.showCommentSummary\"\n (showCommentSummaryDialog)=\"toggleCommentsSummary()\">\n</mv-comment-set-header>\n<div mvGrabNDrag [dragX]=\"imageContainer\" [dragEnabled]=\"enableGrabNDrag\"\n id=\"viewer-wrapper\"\n [ngStyle]=\"{ height: height }\"\n [ngClass]=\"{ 'grabNDrag': enableGrabNDrag }\"\n *ngIf=\"url && !errorMessage\">\n <div #imageContainer id=\"image-container\"\n [ngClass]=\"{ 'image-container': true, 'annotations': enableAnnotations, 'show-comments-panel': showCommentsPanel }\"\n [style.height.px]=\"imageHeight\">\n <img #img\n [src]=\"url\"\n [ngClass]=\"'rot' + rotation\"\n (error)=\"onLoadError(url)\"\n (load)=\"onLoad(img)\"/>\n <mv-redactions *ngIf=\"(toolbarEvents.redactionMode | async);else annotationTemplate\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n ></mv-redactions>\n <ng-template #annotationTemplate>\n <mv-metadata-layer *ngIf=\"enableAnnotations && annotationSet\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\">\n </mv-metadata-layer>\n </ng-template>\n </div>\n\n <div class=\"comments\" [style.height.px]=\"imageHeight\">\n <mv-comment-set *ngIf=\"enableAnnotations && annotationSet && !(toolbarEvents.redactionMode | async)\"\n [annotationSet]=\"annotationSet\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n [height]=\"imageHeight\">\n </mv-comment-set>\n </div>\n</div>\n"
|
|
241
261
|
}] }
|
|
242
262
|
];
|
|
243
263
|
/** @nocollapse */
|
|
@@ -246,7 +266,8 @@ ImageViewerComponent.ctorParameters = () => [
|
|
|
246
266
|
{ type: PrintService },
|
|
247
267
|
{ type: ViewerUtilService },
|
|
248
268
|
{ type: ToolbarEventService },
|
|
249
|
-
{ type: ToolbarButtonVisibilityService }
|
|
269
|
+
{ type: ToolbarButtonVisibilityService },
|
|
270
|
+
{ type: ViewerEventService }
|
|
250
271
|
];
|
|
251
272
|
ImageViewerComponent.propDecorators = {
|
|
252
273
|
url: [{ type: Input }],
|
|
@@ -256,7 +277,8 @@ ImageViewerComponent.propDecorators = {
|
|
|
256
277
|
height: [{ type: Input }],
|
|
257
278
|
mediaLoadStatus: [{ type: Output }],
|
|
258
279
|
imageViewerException: [{ type: Output }],
|
|
259
|
-
img: [{ type: ViewChild, args: ['img',] }]
|
|
280
|
+
img: [{ type: ViewChild, args: ['img',] }],
|
|
281
|
+
onImageViewerClick: [{ type: HostListener, args: ['mousedown', ['$event'],] }]
|
|
260
282
|
};
|
|
261
283
|
if (false) {
|
|
262
284
|
/** @type {?} */
|
|
@@ -327,5 +349,10 @@ if (false) {
|
|
|
327
349
|
ImageViewerComponent.prototype.toolbarEvents;
|
|
328
350
|
/** @type {?} */
|
|
329
351
|
ImageViewerComponent.prototype.toolbarButtons;
|
|
352
|
+
/**
|
|
353
|
+
* @type {?}
|
|
354
|
+
* @private
|
|
355
|
+
*/
|
|
356
|
+
ImageViewerComponent.prototype.viewerEvents;
|
|
330
357
|
}
|
|
331
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Utdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9tZWRpYS12aWV3ZXIvIiwic291cmNlcyI6WyJsaWIvdmlld2Vycy9pbWFnZS12aWV3ZXIvaW1hZ2Utdmlld2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBDLE9BQU8sS0FBSyxZQUFZLE1BQU0sc0NBQXNDLENBQUM7QUFNckUsTUFBTSxPQUFPLG9CQUFvQjs7Ozs7Ozs7SUE4Qi9CLFlBQ1UsS0FBMEMsRUFDakMsWUFBMEIsRUFDMUIsaUJBQW9DLEVBQ3JDLGFBQWtDLEVBQ2xDLGNBQThDO1FBSnRELFVBQUssR0FBTCxLQUFLLENBQXFDO1FBQ2pDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDckMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQztRQXpCdEQsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUNuRCx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztR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QUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLENBQUM7OztZQTdKRixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsOHREQUE0QzthQUMvQzs7OztZQVBRLEtBQUs7WUFOTCxZQUFZO1lBSVosaUJBQWlCO1lBRmpCLG1CQUFtQjtZQUduQiw4QkFBOEI7OztrQkFXcEMsS0FBSzsrQkFDTCxLQUFLO2dDQUVMLEtBQUs7NEJBQ0wsS0FBSztxQkFFTCxLQUFLOzhCQUVMLE1BQU07bUNBQ04sTUFBTTtrQkFJTixTQUFTLFNBQUMsS0FBSzs7OztJQWJoQixtQ0FBcUI7O0lBQ3JCLGdEQUFrQzs7SUFFbEMsaURBQW9DOztJQUNwQyw2Q0FBNkM7O0lBRTdDLHNDQUF3Qjs7SUFFeEIsK0NBQTZEOztJQUM3RCxvREFBcUU7O0lBRXJFLDRDQUFxQjs7SUFFckIsbUNBQWtDOztJQUNsQyx3Q0FBYTs7SUFDYixvQ0FBUzs7Ozs7SUFFVCw2Q0FBMkM7Ozs7O0lBQzNDLCtDQUF5Qzs7Ozs7SUFDekMsd0NBQStCOztJQUUvQixpREFBMkI7O0lBQzNCLCtDQUF3Qjs7SUFDeEIsMkNBQW9COztJQUNwQiwwQ0FBbUI7O0lBQ25CLHlDQUFrQjs7SUFDbEIsd0NBQWlCOzs7OztJQUdmLHFDQUFrRDs7Ozs7SUFDbEQsNENBQTJDOzs7OztJQUMzQyxpREFBcUQ7O0lBQ3JELDZDQUFrRDs7SUFDbEQsOENBQThEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByaW50U2VydmljZSB9IGZyb20gJy4uLy4uL3ByaW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQW5ub3RhdGlvblNldCB9IGZyb20gJy4uLy4uL2Fubm90YXRpb25zL2Fubm90YXRpb24tc2V0L2Fubm90YXRpb24tc2V0Lm1vZGVsJztcbmltcG9ydCB7IFRvb2xiYXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi90b29sYmFyL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBSZXNwb25zZVR5cGUsIFZpZXdlckV4Y2VwdGlvbiB9IGZyb20gJy4uL3ZpZXdlci1leGNlcHRpb24ubW9kZWwnO1xuaW1wb3J0IHsgVmlld2VyVXRpbFNlcnZpY2UgfSBmcm9tICcuLi92aWV3ZXItdXRpbC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvb2xiYXJCdXR0b25WaXNpYmlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uL3Rvb2xiYXIvdG9vbGJhci1idXR0b24tdmlzaWJpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0ICogYXMgZnJvbVN0b3JlIGZyb20gJy4uLy4uL3N0b3JlL3JlZHVjZXJzL3JlZHVjZXJzJztcbmltcG9ydCAqIGFzIGZyb21Eb2N1bWVudCBmcm9tICcuLi8uLi9zdG9yZS9hY3Rpb25zL2RvY3VtZW50LmFjdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ212LWltYWdlLXZpZXdlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLXZpZXdlci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VWaWV3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSB1cmw6IHN0cmluZztcbiAgQElucHV0KCkgZG93bmxvYWRGaWxlTmFtZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGVuYWJsZUFubm90YXRpb25zOiBib29sZWFuO1xuICBASW5wdXQoKSBhbm5vdGF0aW9uU2V0OiBBbm5vdGF0aW9uU2V0IHwgbnVsbDtcblxuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZztcblxuICBAT3V0cHV0KCkgbWVkaWFMb2FkU3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxSZXNwb25zZVR5cGU+KCk7XG4gIEBPdXRwdXQoKSBpbWFnZVZpZXdlckV4Y2VwdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8Vmlld2VyRXhjZXB0aW9uPigpO1xuXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoJ2ltZycpIGltZzogRWxlbWVudFJlZjtcbiAgcm90YXRpb24gPSAwO1xuICB6b29tID0gMTtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIHByaXZhdGUgdmlld2VyRXhjZXB0aW9uOiBWaWV3ZXJFeGNlcHRpb247XG4gIHByaXZhdGUgcmVzcG9uc2U6IFN1YnNjcmlwdGlvbjtcblxuICBzaG93Q29tbWVudHNQYW5lbDogYm9vbGVhbjtcbiAgZW5hYmxlR3JhYk5EcmFnID0gZmFsc2U7XG4gIGltYWdlSGVpZ2h0OiBudW1iZXI7XG4gIGltYWdlV2lkdGg6IG51bWJlcjtcbiAgaW1hZ2VMZWZ0OiBudW1iZXI7XG4gIGltYWdlVG9wOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8ZnJvbVN0b3JlLkFubm90YXRpb25TZXRTdGF0ZT4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmludFNlcnZpY2U6IFByaW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdlclV0aWxTZXJ2aWNlOiBWaWV3ZXJVdGlsU2VydmljZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbGJhckV2ZW50czogVG9vbGJhckV2ZW50U2VydmljZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbGJhckJ1dHRvbnM6IFRvb2xiYXJCdXR0b25WaXNpYmlsaXR5U2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnJvdGF0ZVN1YmplY3Quc3Vic2NyaWJlKHJvdGF0aW9uID0+IHRoaXMucm90YXRlSW1hZ2Uocm90YXRpb24pKSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy56b29tU3ViamVjdC5zdWJzY3JpYmUoem9vbSA9PiB0aGlzLnNldFpvb20oem9vbSkpLFxuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnN0ZXBab29tU3ViamVjdC5zdWJzY3JpYmUoem9vbSA9PiB0aGlzLnN0ZXBab29tKHpvb20pKSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5wcmludFN1YmplY3Quc3Vic2NyaWJlKCgpID0+IHRoaXMucHJpbnRTZXJ2aWNlLnByaW50RG9jdW1lbnROYXRpdmVseSh0aGlzLnVybCkpLFxuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLmRvd25sb2FkU3ViamVjdC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5kb3dubG9hZCgpKSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5ncmFiTkRyYWcuc3Vic2NyaWJlKGdyYWJORHJhZyA9PiB0aGlzLmVuYWJsZUdyYWJORHJhZyA9IGdyYWJORHJhZyksXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuY29tbWVudHNQYW5lbFZpc2libGUuc3Vic2NyaWJlKHRvZ2dsZSA9PiB0aGlzLnNob3dDb21tZW50c1BhbmVsID0gdG9nZ2xlKVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZmlsdGVyKHN1YnNjcmlwdGlvbiA9PiAhc3Vic2NyaXB0aW9uLmNsb3NlZClcbiAgICAgIC5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgaWYgKHRoaXMucmVzcG9uc2UpIHtcbiAgICAgIHRoaXMucmVzcG9uc2UudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMudXJsKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMucmVzZXQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJvdGF0ZUltYWdlKHJvdGF0aW9uOiBudW1iZXIpIHtcbiAgICB0aGlzLnJvdGF0aW9uID0gKHRoaXMucm90YXRpb24gKyByb3RhdGlvbikgJSAzNjA7XG4gICAgdGhpcy5pbml0QW5ub1BhZ2UodGhpcy5pbWcubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldFpvb20oem9vbUZhY3RvcjogbnVtYmVyKSB7XG4gICAgaWYgKCFpc05hTih6b29tRmFjdG9yKSkge1xuICAgICAgYXdhaXQgdGhpcy5zZXRab29tVmFsdWUodGhpcy5jYWxjdWxhdGVab29tVmFsdWUoem9vbUZhY3RvcikpO1xuICAgICAgdGhpcy5pbWcubmF0aXZlRWxlbWVudC53aWR0aCA9IHRoaXMuaW1nLm5hdGl2ZUVsZW1lbnQubmF0dXJhbFdpZHRoICogdGhpcy56b29tO1xuICAgICAgdGhpcy5pbml0QW5ub1BhZ2UodGhpcy5pbWcubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzdGVwWm9vbSh6b29tRmFjdG9yOiBudW1iZXIpIHtcbiAgICBpZiAoIWlzTmFOKHpvb21GYWN0b3IpKSB7XG4gICAgICBhd2FpdCB0aGlzLnNldFpvb21WYWx1ZSh0aGlzLmNhbGN1bGF0ZVpvb21WYWx1ZSh0aGlzLnpvb20sIHpvb21GYWN0b3IpKTtcbiAgICAgIHRoaXMuaW1nLm5hdGl2ZUVsZW1lbnQud2lkdGggPSB0aGlzLmltZy5uYXRpdmVFbGVtZW50Lm5hdHVyYWxXaWR0aCAqIHRoaXMuem9vbTtcbiAgICAgIHRoaXMuaW5pdEFubm9QYWdlKHRoaXMuaW1nLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZG93bmxvYWQoKSB7XG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuICAgIGEuc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5OiBub25lJyk7XG4gICAgYS5ocmVmID0gdGhpcy51cmw7XG4gICAgYS5kb3dubG9hZCA9IHRoaXMuZG93bmxvYWRGaWxlTmFtZTtcbiAgICBhLmNsaWNrKCk7XG4gICAgYS5yZW1vdmUoKTtcbiAgfVxuXG4gIC8vIHRoZSByZXR1cm5lZCBwcm9taXNlIGlzIGEgd29yay1hcm91bmRcbiAgc2V0Wm9vbVZhbHVlKHpvb21WYWx1ZSkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgdGhpcy56b29tID0gem9vbVZhbHVlO1xuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnpvb21WYWx1ZVN1YmplY3QubmV4dCh6b29tVmFsdWUpO1xuICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNhbGN1bGF0ZVpvb21WYWx1ZSh6b29tVmFsdWUsIGluY3JlbWVudCA9IDApIHtcbiAgICBjb25zdCBuZXdab29tVmFsdWUgPSB6b29tVmFsdWUgKyBpbmNyZW1lbnQ7XG4gICAgaWYgKG5ld1pvb21WYWx1ZSA+IDUpIHsgcmV0dXJuIDU7IH1cbiAgICBpZiAobmV3Wm9vbVZhbHVlIDwgMC4xKSB7IHJldHVybiAwLjE7IH1cbiAgICByZXR1cm4gK25ld1pvb21WYWx1ZS50b0ZpeGVkKDIpO1xuICB9XG5cbiAgb25Mb2FkRXJyb3IodXJsKSB7XG4gICAgdGhpcy5yZXNwb25zZSA9IHRoaXMudmlld2VyVXRpbFNlcnZpY2UudmFsaWRhdGVGaWxlKHVybClcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICBuZXh0ID0+IG5leHQsXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMudmlld2VyRXhjZXB0aW9uID0gbmV3IFZpZXdlckV4Y2VwdGlvbihlcnJvci5uYW1lLFxuICAgICAgICAgIHtodHRwUmVzcG9uc2VDb2RlOiBlcnJvci5zdGF0dXMsIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2V9KTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBgQ291bGQgbm90IGxvYWQgdGhlIGltYWdlIFwiJHt0aGlzLnVybH1cImA7XG4gICAgdGhpcy5tZWRpYUxvYWRTdGF0dXMuZW1pdChSZXNwb25zZVR5cGUuRkFJTFVSRSk7XG4gICAgdGhpcy5pbWFnZVZpZXdlckV4Y2VwdGlvbi5lbWl0KHRoaXMudmlld2VyRXhjZXB0aW9uKTtcbiAgfVxuXG4gIG9uTG9hZChpbWc6IGFueSkge1xuICAgIHRoaXMubWVkaWFMb2FkU3RhdHVzLmVtaXQoUmVzcG9uc2VUeXBlLlNVQ0NFU1MpO1xuICAgIHRoaXMuaW5pdEFubm9QYWdlKGltZyk7XG4gIH1cblxuICBpbml0QW5ub1BhZ2UoaW1nOiBhbnkpIHtcbiAgICB0aGlzLmltYWdlSGVpZ2h0ID0gdGhpcy5yb3RhdGlvbiAlIDE4MCAhPT0gMCA/IGltZy5vZmZzZXRXaWR0aCA6IGltZy5vZmZzZXRIZWlnaHQ7XG4gICAgdGhpcy5pbWFnZVdpZHRoID0gdGhpcy5yb3RhdGlvbiAlIDE4MCAhPT0gMCA/IGltZy5vZmZzZXRIZWlnaHQgOiBpbWcub2Zmc2V0V2lkdGg7XG4gICAgdGhpcy5pbWFnZUxlZnQgPSB0aGlzLnJvdGF0aW9uICUgMTgwICE9PSAwID8gaW1nLm9mZnNldFRvcCA6IGltZy5vZmZzZXRMZWZ0O1xuICAgIHRoaXMuaW1hZ2VUb3AgPSB0aGlzLnJvdGF0aW9uICUgMTgwICE9PSAwID8gaW1nLm9mZnNldExlZnQgOiBpbWcub2Zmc2V0VG9wO1xuICAgIGNvbnN0IHBheWxvYWQ6IGFueSA9IFt7XG4gICAgICBkaXY6IHtcbiAgICAgICAgc2Nyb2xsSGVpZ2h0OiB0aGlzLmltYWdlSGVpZ2h0LFxuICAgICAgICBzY3JvbGxXaWR0aDogdGhpcy5pbWFnZVdpZHRoLFxuICAgICAgICBvZmZzZXRMZWZ0OiB0aGlzLmltYWdlTGVmdCxcbiAgICAgIH0sXG4gICAgICBwYWdlTnVtYmVyOiAxLFxuICAgICAgc2NhbGU6IHRoaXMuem9vbSxcbiAgICAgIHJvdGF0aW9uOiB0aGlzLnJvdGF0aW9uLFxuICAgICAgaWQ6IDFcbiAgICB9XTtcblxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21Eb2N1bWVudC5BZGRQYWdlcyhwYXlsb2FkKSk7XG4gIH1cblxuICB0b2dnbGVDb21tZW50c1N1bW1hcnkoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnRvZ2dsZUNvbW1lbnRzU3VtbWFyeSghdGhpcy50b29sYmFyRXZlbnRzLnNob3dDb21tZW50U3VtbWFyeS5nZXRWYWx1ZSgpKTtcbiAgfVxufVxuIl19
|
|
358
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Utdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9tZWRpYS12aWV3ZXIvIiwic291cmNlcyI6WyJsaWIvdmlld2Vycy9pbWFnZS12aWV3ZXIvaW1hZ2Utdmlld2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDakcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwQyxPQUFPLEtBQUssWUFBWSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JFLE9BQU8sS0FBSyxxQkFBcUIsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU03RCxNQUFNLE9BQU8sb0JBQW9COzs7Ozs7Ozs7SUE4Qi9CLFlBQ1UsS0FBMEMsRUFDakMsWUFBMEIsRUFDMUIsaUJBQW9DLEVBQ3JDLGFBQWtDLEVBQ2xDLGNBQThDLEVBQ3RELFlBQWdDO1FBTGhDLFVBQUssR0FBTCxLQUFLLENBQXFDO1FBQ2pDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDckMsa0JBQWEsR0FBYixhQUFhLENBQXFC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Z0RBQWtDOztJQUVsQyxpREFBb0M7O0lBQ3BDLDZDQUE2Qzs7SUFFN0Msc0NBQXdCOztJQUV4QiwrQ0FBNkQ7O0lBQzdELG9EQUFxRTs7SUFFckUsNENBQXFCOztJQUVyQixtQ0FBa0M7O0lBQ2xDLHdDQUFhOztJQUNiLG9DQUFTOzs7OztJQUVULDZDQUEyQzs7Ozs7SUFDM0MsK0NBQXlDOzs7OztJQUN6Qyx3Q0FBK0I7O0lBRS9CLGlEQUEyQjs7SUFDM0IsK0NBQXdCOztJQUN4QiwyQ0FBb0I7O0lBQ3BCLDBDQUFtQjs7SUFDbkIseUNBQWtCOztJQUNsQix3Q0FBaUI7Ozs7O0lBR2YscUNBQWtEOzs7OztJQUNsRCw0Q0FBMkM7Ozs7O0lBQzNDLGlEQUFxRDs7SUFDckQsNkNBQWtEOztJQUNsRCw4Q0FBOEQ7Ozs7O0lBQzlELDRDQUF3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByaW50U2VydmljZSB9IGZyb20gJy4uLy4uL3ByaW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQW5ub3RhdGlvblNldCB9IGZyb20gJy4uLy4uL2Fubm90YXRpb25zL2Fubm90YXRpb24tc2V0L2Fubm90YXRpb24tc2V0Lm1vZGVsJztcbmltcG9ydCB7IFRvb2xiYXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi90b29sYmFyL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBSZXNwb25zZVR5cGUsIFZpZXdlckV4Y2VwdGlvbiB9IGZyb20gJy4uL3ZpZXdlci1leGNlcHRpb24ubW9kZWwnO1xuaW1wb3J0IHsgVmlld2VyVXRpbFNlcnZpY2UgfSBmcm9tICcuLi92aWV3ZXItdXRpbC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvb2xiYXJCdXR0b25WaXNpYmlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uL3Rvb2xiYXIvdG9vbGJhci1idXR0b24tdmlzaWJpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0ICogYXMgZnJvbVN0b3JlIGZyb20gJy4uLy4uL3N0b3JlL3JlZHVjZXJzL3JlZHVjZXJzJztcbmltcG9ydCAqIGFzIGZyb21Eb2N1bWVudCBmcm9tICcuLi8uLi9zdG9yZS9hY3Rpb25zL2RvY3VtZW50LmFjdGlvbnMnO1xuaW1wb3J0ICogYXMgZnJvbUFubm90YXRpb25BY3Rpb25zIGZyb20gJy4uLy4uL3N0b3JlL2FjdGlvbnMvYW5ub3RhdGlvbi5hY3Rpb25zJztcbmltcG9ydCB7IFZpZXdlckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3ZpZXdlci1ldmVudC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXYtaW1hZ2Utdmlld2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLXZpZXdlci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VWaWV3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSB1cmw6IHN0cmluZztcbiAgQElucHV0KCkgZG93bmxvYWRGaWxlTmFtZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGVuYWJsZUFubm90YXRpb25zOiBib29sZWFuO1xuICBASW5wdXQoKSBhbm5vdGF0aW9uU2V0OiBBbm5vdGF0aW9uU2V0IHwgbnVsbDtcblxuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZztcblxuICBAT3V0cHV0KCkgbWVkaWFMb2FkU3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxSZXNwb25zZVR5cGU+KCk7XG4gIEBPdXRwdXQoKSBpbWFnZVZpZXdlckV4Y2VwdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8Vmlld2VyRXhjZXB0aW9uPigpO1xuXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoJ2ltZycpIGltZzogRWxlbWVudFJlZjtcbiAgcm90YXRpb24gPSAwO1xuICB6b29tID0gMTtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIHByaXZhdGUgdmlld2VyRXhjZXB0aW9uOiBWaWV3ZXJFeGNlcHRpb247XG4gIHByaXZhdGUgcmVzcG9uc2U6IFN1YnNjcmlwdGlvbjtcblxuICBzaG93Q29tbWVudHNQYW5lbDogYm9vbGVhbjtcbiAgZW5hYmxlR3JhYk5EcmFnID0gZmFsc2U7XG4gIGltYWdlSGVpZ2h0OiBudW1iZXI7XG4gIGltYWdlV2lkdGg6IG51bWJlcjtcbiAgaW1hZ2VMZWZ0OiBudW1iZXI7XG4gIGltYWdlVG9wOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8ZnJvbVN0b3JlLkFubm90YXRpb25TZXRTdGF0ZT4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmludFNlcnZpY2U6IFByaW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdlclV0aWxTZXJ2aWNlOiBWaWV3ZXJVdGlsU2VydmljZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbGJhckV2ZW50czogVG9vbGJhckV2ZW50U2VydmljZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbGJhckJ1dHRvbnM6IFRvb2xiYXJCdXR0b25WaXNpYmlsaXR5U2VydmljZSxcbiAgICBwcml2YXRlIHZpZXdlckV2ZW50czogVmlld2VyRXZlbnRTZXJ2aWNlLFxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnJvdGF0ZVN1YmplY3Quc3Vic2NyaWJlKHJvdGF0aW9uID0+IHRoaXMucm90YXRlSW1hZ2Uocm90YXRpb24pKSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy56b29tU3ViamVjdC5zdWJzY3JpYmUoem9vbSA9PiB0aGlzLnNldFpvb20oem9vbSkpLFxuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnN0ZXBab29tU3ViamVjdC5zdWJzY3JpYmUoem9vbSA9PiB0aGlzLnN0ZXBab29tKHpvb20pKSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5wcmludFN1YmplY3Quc3Vic2NyaWJlKCgpID0+IHRoaXMucHJpbnRTZXJ2aWNlLnByaW50RG9jdW1lbnROYXRpdmVseSh0aGlzLnVybCkpLFxuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLmRvd25sb2FkU3ViamVjdC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5kb3dubG9hZCgpKSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5ncmFiTkRyYWcuc3Vic2NyaWJlKGdyYWJORHJhZyA9PiB0aGlzLmVuYWJsZUdyYWJORHJhZyA9IGdyYWJORHJhZyksXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuY29tbWVudHNQYW5lbFZpc2libGUuc3Vic2NyaWJlKHRvZ2dsZSA9PiB0aGlzLnNob3dDb21tZW50c1BhbmVsID0gdG9nZ2xlKVxuICAgICk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICBvbkltYWdlVmlld2VyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBjb25zdCBjbGFzc05tZSA9IChldmVudC50YXJnZXQgYXMgRWxlbWVudCkuY2xhc3NOYW1lO1xuICAgIGlmIChjbGFzc05tZS5zdGFydHNXaXRoKCdwYWdlQ29udGFpbmVyJykpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIG5ldyBmcm9tQW5ub3RhdGlvbkFjdGlvbnMuU2VsZWN0ZWRBbm5vdGF0aW9uKHtcbiAgICAgICAgICBhbm5vdGF0aW9uSWQ6ICcnLFxuICAgICAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICBlZGl0YWJsZTogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy52aWV3ZXJFdmVudHMuY2xlYXJDdHhUb29sYmFyKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZpbHRlcihzdWJzY3JpcHRpb24gPT4gIXN1YnNjcmlwdGlvbi5jbG9zZWQpXG4gICAgICAuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgIGlmICh0aGlzLnJlc3BvbnNlKSB7XG4gICAgICB0aGlzLnJlc3BvbnNlLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLnVybCkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnJlc2V0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByb3RhdGVJbWFnZShyb3RhdGlvbjogbnVtYmVyKSB7XG4gICAgdGhpcy5yb3RhdGlvbiA9ICh0aGlzLnJvdGF0aW9uICsgcm90YXRpb24pICUgMzYwO1xuICAgIHRoaXMuaW5pdEFubm9QYWdlKHRoaXMuaW1nLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXRab29tKHpvb21GYWN0b3I6IG51bWJlcikge1xuICAgIGlmICghaXNOYU4oem9vbUZhY3RvcikpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2V0Wm9vbVZhbHVlKHRoaXMuY2FsY3VsYXRlWm9vbVZhbHVlKHpvb21GYWN0b3IpKTtcbiAgICAgIHRoaXMuaW1nLm5hdGl2ZUVsZW1lbnQud2lkdGggPSB0aGlzLmltZy5uYXRpdmVFbGVtZW50Lm5hdHVyYWxXaWR0aCAqIHRoaXMuem9vbTtcbiAgICAgIHRoaXMuaW5pdEFubm9QYWdlKHRoaXMuaW1nLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc3RlcFpvb20oem9vbUZhY3RvcjogbnVtYmVyKSB7XG4gICAgaWYgKCFpc05hTih6b29tRmFjdG9yKSkge1xuICAgICAgYXdhaXQgdGhpcy5zZXRab29tVmFsdWUodGhpcy5jYWxjdWxhdGVab29tVmFsdWUodGhpcy56b29tLCB6b29tRmFjdG9yKSk7XG4gICAgICB0aGlzLmltZy5uYXRpdmVFbGVtZW50LndpZHRoID0gdGhpcy5pbWcubmF0aXZlRWxlbWVudC5uYXR1cmFsV2lkdGggKiB0aGlzLnpvb207XG4gICAgICB0aGlzLmluaXRBbm5vUGFnZSh0aGlzLmltZy5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRvd25sb2FkKCkge1xuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcbiAgICBhLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTogbm9uZScpO1xuICAgIGEuaHJlZiA9IHRoaXMudXJsO1xuICAgIGEuZG93bmxvYWQgPSB0aGlzLmRvd25sb2FkRmlsZU5hbWU7XG4gICAgYS5jbGljaygpO1xuICAgIGEucmVtb3ZlKCk7XG4gIH1cblxuICAvLyB0aGUgcmV0dXJuZWQgcHJvbWlzZSBpcyBhIHdvcmstYXJvdW5kXG4gIHNldFpvb21WYWx1ZSh6b29tVmFsdWUpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMuem9vbSA9IHpvb21WYWx1ZTtcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy56b29tVmFsdWVTdWJqZWN0Lm5leHQoem9vbVZhbHVlKTtcbiAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBjYWxjdWxhdGVab29tVmFsdWUoem9vbVZhbHVlLCBpbmNyZW1lbnQgPSAwKSB7XG4gICAgY29uc3QgbmV3Wm9vbVZhbHVlID0gem9vbVZhbHVlICsgaW5jcmVtZW50O1xuICAgIGlmIChuZXdab29tVmFsdWUgPiA1KSB7IHJldHVybiA1OyB9XG4gICAgaWYgKG5ld1pvb21WYWx1ZSA8IDAuMSkgeyByZXR1cm4gMC4xOyB9XG4gICAgcmV0dXJuICtuZXdab29tVmFsdWUudG9GaXhlZCgyKTtcbiAgfVxuXG4gIG9uTG9hZEVycm9yKHVybCkge1xuICAgIHRoaXMucmVzcG9uc2UgPSB0aGlzLnZpZXdlclV0aWxTZXJ2aWNlLnZhbGlkYXRlRmlsZSh1cmwpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICBuZXh0ID0+IG5leHQsXG4gICAgICAgIGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLnZpZXdlckV4Y2VwdGlvbiA9IG5ldyBWaWV3ZXJFeGNlcHRpb24oZXJyb3IubmFtZSxcbiAgICAgICAgICAgIHsgaHR0cFJlc3BvbnNlQ29kZTogZXJyb3Iuc3RhdHVzLCBtZXNzYWdlOiBlcnJvci5tZXNzYWdlIH0pO1xuICAgICAgICB9KTtcblxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gYENvdWxkIG5vdCBsb2FkIHRoZSBpbWFnZSBcIiR7dGhpcy51cmx9XCJgO1xuICAgIHRoaXMubWVkaWFMb2FkU3RhdHVzLmVtaXQoUmVzcG9uc2VUeXBlLkZBSUxVUkUpO1xuICAgIHRoaXMuaW1hZ2VWaWV3ZXJFeGNlcHRpb24uZW1pdCh0aGlzLnZpZXdlckV4Y2VwdGlvbik7XG4gIH1cblxuICBvbkxvYWQoaW1nOiBhbnkpIHtcbiAgICB0aGlzLm1lZGlhTG9hZFN0YXR1cy5lbWl0KFJlc3BvbnNlVHlwZS5TVUNDRVNTKTtcbiAgICB0aGlzLmluaXRBbm5vUGFnZShpbWcpO1xuICB9XG5cbiAgaW5pdEFubm9QYWdlKGltZzogYW55KSB7XG4gICAgdGhpcy5pbWFnZUhlaWdodCA9IHRoaXMucm90YXRpb24gJSAxODAgIT09IDAgPyBpbWcub2Zmc2V0V2lkdGggOiBpbWcub2Zmc2V0SGVpZ2h0O1xuICAgIHRoaXMuaW1hZ2VXaWR0aCA9IHRoaXMucm90YXRpb24gJSAxODAgIT09IDAgPyBpbWcub2Zmc2V0SGVpZ2h0IDogaW1nLm9mZnNldFdpZHRoO1xuICAgIHRoaXMuaW1hZ2VMZWZ0ID0gdGhpcy5yb3RhdGlvbiAlIDE4MCAhPT0gMCA/IGltZy5vZmZzZXRUb3AgOiBpbWcub2Zmc2V0TGVmdDtcbiAgICB0aGlzLmltYWdlVG9wID0gdGhpcy5yb3RhdGlvbiAlIDE4MCAhPT0gMCA/IGltZy5vZmZzZXRMZWZ0IDogaW1nLm9mZnNldFRvcDtcbiAgICBjb25zdCBwYXlsb2FkOiBhbnkgPSBbe1xuICAgICAgZGl2OiB7XG4gICAgICAgIHNjcm9sbEhlaWdodDogdGhpcy5pbWFnZUhlaWdodCxcbiAgICAgICAgc2Nyb2xsV2lkdGg6IHRoaXMuaW1hZ2VXaWR0aCxcbiAgICAgICAgb2Zmc2V0TGVmdDogdGhpcy5pbWFnZUxlZnQsXG4gICAgICB9LFxuICAgICAgcGFnZU51bWJlcjogMSxcbiAgICAgIHNjYWxlOiB0aGlzLnpvb20sXG4gICAgICByb3RhdGlvbjogdGhpcy5yb3RhdGlvbixcbiAgICAgIGlkOiAxXG4gICAgfV07XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tRG9jdW1lbnQuQWRkUGFnZXMocGF5bG9hZCkpO1xuICB9XG5cbiAgdG9nZ2xlQ29tbWVudHNTdW1tYXJ5KCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy50b2dnbGVDb21tZW50c1N1bW1hcnkoIXRoaXMudG9vbGJhckV2ZW50cy5zaG93Q29tbWVudFN1bW1hcnkuZ2V0VmFsdWUoKSk7XG4gIH1cbn1cbiJdfQ==
|