@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.
Files changed (38) hide show
  1. package/bundles/hmcts-media-viewer.umd.js +4890 -4755
  2. package/bundles/hmcts-media-viewer.umd.js.map +1 -1
  3. package/bundles/hmcts-media-viewer.umd.min.js +1 -1
  4. package/bundles/hmcts-media-viewer.umd.min.js.map +1 -1
  5. package/esm2015/hmcts-media-viewer.js +20 -20
  6. package/esm2015/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.js +8 -2
  7. package/esm2015/lib/icp/icp-update.service.js +22 -40
  8. package/esm2015/lib/icp/icp.events.js +20 -0
  9. package/esm2015/lib/icp/icp.interfaces.js +3 -1
  10. package/esm2015/lib/icp/socket.service.js +133 -43
  11. package/esm2015/lib/media-viewer.component.js +2 -2
  12. package/esm2015/lib/viewers/image-viewer/image-viewer.component.js +33 -6
  13. package/esm2015/lib/viewers/pdf-viewer/pdf-viewer.component.js +11 -2
  14. package/esm5/hmcts-media-viewer.js +20 -20
  15. package/esm5/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.js +8 -2
  16. package/esm5/lib/icp/icp-update.service.js +23 -40
  17. package/esm5/lib/icp/icp.events.js +20 -0
  18. package/esm5/lib/icp/icp.interfaces.js +3 -1
  19. package/esm5/lib/icp/socket.service.js +143 -45
  20. package/esm5/lib/media-viewer.component.js +2 -2
  21. package/esm5/lib/viewers/image-viewer/image-viewer.component.js +36 -6
  22. package/esm5/lib/viewers/pdf-viewer/pdf-viewer.component.js +10 -2
  23. package/fesm2015/hmcts-media-viewer.js +4198 -4074
  24. package/fesm2015/hmcts-media-viewer.js.map +1 -1
  25. package/fesm5/hmcts-media-viewer.js +4873 -4738
  26. package/fesm5/hmcts-media-viewer.js.map +1 -1
  27. package/hmcts-media-viewer-v2.7.23.tgz +0 -0
  28. package/hmcts-media-viewer.d.ts +19 -19
  29. package/hmcts-media-viewer.metadata.json +1 -1
  30. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +4 -3
  31. package/lib/icp/icp-update.service.d.ts +0 -9
  32. package/lib/icp/icp.events.d.ts +13 -0
  33. package/lib/icp/icp.interfaces.d.ts +1 -0
  34. package/lib/icp/socket.service.d.ts +13 -4
  35. package/lib/viewers/image-viewer/image-viewer.component.d.ts +4 -1
  36. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +3 -1
  37. package/package.json +1 -1
  38. 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, Observable } from 'rxjs';
7
- import socketio from 'socket.io-client/dist/socket.io.js';
6
+ import { BehaviorSubject, of, Subject } from 'rxjs';
7
+ import { IcpEvents } from './icp.events';
8
8
  var SocketService = /** @class */ (function () {
9
9
  function SocketService() {
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 {?}
@@ -19,22 +25,63 @@ var SocketService = /** @class */ (function () {
19
25
  this.subscription.unsubscribe();
20
26
  };
21
27
  /**
28
+ * @param {?} url
22
29
  * @return {?}
23
30
  */
24
31
  SocketService.prototype.connect = /**
32
+ * @param {?} url
25
33
  * @return {?}
26
34
  */
27
- function () {
35
+ function (url) {
28
36
  var _this = this;
29
- this.socket = this.getSocketClient();
30
- this.socket.on('connect', (/**
31
- * @return {?}
32
- */
33
- function () { return _this.connected$.next(true); }));
34
- this.socket.on('disconnect', (/**
37
+ return this.getSocketClient(url).subscribe((/**
38
+ * @param {?} socket
35
39
  * @return {?}
36
40
  */
37
- function () { return _this.connected$.next(false); }));
41
+ function (socket) {
42
+ socket.onopen = (/**
43
+ * @param {?} event
44
+ * @return {?}
45
+ */
46
+ function (event) {
47
+ _this.connected$.next(true);
48
+ });
49
+ socket.onmessage = (/**
50
+ * @param {?} event
51
+ * @return {?}
52
+ */
53
+ function (event) {
54
+ console.log('onmessage');
55
+ /** @type {?} */
56
+ var eventData = JSON.parse(event.data);
57
+ if (eventData.data && eventData.data.eventName) {
58
+ _this.messageEventHandller(eventData.data.eventName, eventData.data.data);
59
+ }
60
+ });
61
+ socket.onerror = (/**
62
+ * @param {?} event
63
+ * @return {?}
64
+ */
65
+ function (event) {
66
+ console.log('onerror');
67
+ });
68
+ socket.onclose = (/**
69
+ * @param {?} event
70
+ * @return {?}
71
+ */
72
+ function (event) {
73
+ console.log('onclose');
74
+ });
75
+ }));
76
+ };
77
+ /**
78
+ * @return {?}
79
+ */
80
+ SocketService.prototype.connected = /**
81
+ * @return {?}
82
+ */
83
+ function () {
84
+ return this.connected$.asObservable();
38
85
  };
39
86
  /**
40
87
  * @param {?} session
@@ -45,16 +92,7 @@ var SocketService = /** @class */ (function () {
45
92
  * @return {?}
46
93
  */
47
94
  function (session) {
48
- var _this = this;
49
- this.subscription = this.connected$.subscribe((/**
50
- * @param {?} connected
51
- * @return {?}
52
- */
53
- function (connected) {
54
- if (connected) {
55
- _this.socket.emit('join', session);
56
- }
57
- }));
95
+ this.emit(IcpEvents.SESSION_JOIN, session);
58
96
  };
59
97
  /**
60
98
  * @param {?} session
@@ -65,7 +103,7 @@ var SocketService = /** @class */ (function () {
65
103
  * @return {?}
66
104
  */
67
105
  function (session) {
68
- this.socket.emit('leave', session);
106
+ this.emit(IcpEvents.SESSION_LEAVE, session);
69
107
  this.subscription.unsubscribe();
70
108
  };
71
109
  /**
@@ -79,7 +117,11 @@ var SocketService = /** @class */ (function () {
79
117
  * @return {?}
80
118
  */
81
119
  function (event, data) {
82
- this.socket.emit(event, data);
120
+ this.socket.send(JSON.stringify({
121
+ type: 'event',
122
+ event: event,
123
+ data: data
124
+ }));
83
125
  };
84
126
  /**
85
127
  * @param {?} event
@@ -90,35 +132,79 @@ var SocketService = /** @class */ (function () {
90
132
  * @return {?}
91
133
  */
92
134
  function (event) {
93
- var _this = this;
94
- return new Observable((/**
95
- * @param {?} observer
96
- * @return {?}
97
- */
98
- function (observer) {
99
- _this.socket.on(event, (/**
100
- * @param {?} data
101
- * @return {?}
102
- */
103
- function (data) {
104
- observer.next(data);
105
- }));
106
- return (/**
107
- * @return {?}
108
- */
109
- function () { return _this.socket.off(event); });
110
- }));
135
+ switch (event) {
136
+ case IcpEvents.SESSION_JOINED: {
137
+ return this.sessionJoined$.asObservable();
138
+ }
139
+ case IcpEvents.PRESENTER_UPDATED: {
140
+ return this.presenterUpdated$.asObservable();
141
+ }
142
+ case IcpEvents.CLIENT_DISCONNECTED: {
143
+ return this.clientDisconnected$.asObservable();
144
+ }
145
+ case IcpEvents.PARTICIPANTS_UPDATED: {
146
+ return this.participantUpdated$.asObservable();
147
+ }
148
+ case IcpEvents.NEW_PARTICIPANT_JOINED: {
149
+ return this.newParticipantJoined$.asObservable();
150
+ }
151
+ case IcpEvents.SCREEN_UPDATED: {
152
+ return this.screenUpdated$.asObservable();
153
+ }
154
+ default: {
155
+ break;
156
+ }
157
+ }
158
+ };
159
+ /**
160
+ * @param {?} eventName
161
+ * @param {?} data
162
+ * @return {?}
163
+ */
164
+ SocketService.prototype.messageEventHandller = /**
165
+ * @param {?} eventName
166
+ * @param {?} data
167
+ * @return {?}
168
+ */
169
+ function (eventName, data) {
170
+ switch (eventName) {
171
+ case IcpEvents.SESSION_JOINED: {
172
+ this.sessionJoined$.next(data);
173
+ break;
174
+ }
175
+ case IcpEvents.PRESENTER_UPDATED: {
176
+ this.presenterUpdated$.next(data);
177
+ break;
178
+ }
179
+ case IcpEvents.CLIENT_DISCONNECTED: {
180
+ this.clientDisconnected$.next();
181
+ break;
182
+ }
183
+ case IcpEvents.PARTICIPANTS_UPDATED: {
184
+ this.participantUpdated$.next(data);
185
+ break;
186
+ }
187
+ case IcpEvents.NEW_PARTICIPANT_JOINED: {
188
+ this.newParticipantJoined$.next();
189
+ break;
190
+ }
191
+ case IcpEvents.SCREEN_UPDATED: {
192
+ this.screenUpdated$.next(data);
193
+ break;
194
+ }
195
+ }
111
196
  };
112
197
  /**
198
+ * @param {?} url
113
199
  * @return {?}
114
200
  */
115
201
  SocketService.prototype.getSocketClient = /**
202
+ * @param {?} url
116
203
  * @return {?}
117
204
  */
118
- function () {
119
- return socketio('/', {
120
- path: '/icp/socket.io', agent: true
121
- });
205
+ function (url) {
206
+ this.socket = new WebSocket(url, 'json.webpubsub.azure.v1');
207
+ return of(this.socket);
122
208
  };
123
209
  SocketService.decorators = [
124
210
  { type: Injectable }
@@ -138,5 +224,17 @@ if (false) {
138
224
  SocketService.prototype.subscription;
139
225
  /** @type {?} */
140
226
  SocketService.prototype.connected$;
227
+ /** @type {?} */
228
+ SocketService.prototype.sessionJoined$;
229
+ /** @type {?} */
230
+ SocketService.prototype.presenterUpdated$;
231
+ /** @type {?} */
232
+ SocketService.prototype.clientDisconnected$;
233
+ /** @type {?} */
234
+ SocketService.prototype.participantUpdated$;
235
+ /** @type {?} */
236
+ SocketService.prototype.newParticipantJoined$;
237
+ /** @type {?} */
238
+ SocketService.prototype.screenUpdated$;
141
239
  }
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvbWVkaWEtdmlld2VyLyIsInNvdXJjZXMiOlsibGliL2ljcC9zb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxRQUFRLE1BQU0sb0NBQW9DLENBQUM7QUFFMUQ7SUFRRTtRQUZBLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUVsQyxDQUFDOzs7O0lBRWhCLG1DQUFXOzs7SUFBWDtRQUNFLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQzs7OztJQUVELCtCQUFPOzs7SUFBUDtRQUFBLGlCQUlDO1FBSEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsU0FBUzs7O1FBQUUsY0FBTSxPQUFBLEtBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUExQixDQUEwQixFQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWTs7O1FBQUUsY0FBTSxPQUFBLEtBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUEzQixDQUEyQixFQUFDLENBQUM7SUFDbEUsQ0FBQzs7Ozs7SUFFRCw0QkFBSTs7OztJQUFKLFVBQUssT0FBTztRQUFaLGlCQU1DO1FBTEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVM7Ozs7UUFBQyxVQUFBLFNBQVM7WUFDckQsSUFBSSxTQUFTLEVBQUU7Z0JBQ2IsS0FBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQ25DO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7OztJQUVELDZCQUFLOzs7O0lBQUwsVUFBTSxPQUFPO1FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQzs7Ozs7O0lBRUQsNEJBQUk7Ozs7O0lBQUosVUFBSyxLQUFhLEVBQUUsSUFBUztRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7Ozs7SUFFRCw4QkFBTTs7OztJQUFOLFVBQU8sS0FBYTtRQUFwQixpQkFPQztRQU5DLE9BQU8sSUFBSSxVQUFVOzs7O1FBQUUsVUFBQSxRQUFRO1lBQzdCLEtBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUs7Ozs7WUFBRSxVQUFBLElBQUk7Z0JBQ3hCLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEIsQ0FBQyxFQUFDLENBQUM7WUFDSDs7O1lBQU8sY0FBTSxPQUFBLEtBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUF0QixDQUFzQixFQUFDO1FBQ3RDLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVELHVDQUFlOzs7SUFBZjtRQUNFLE9BQU8sUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNuQixJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLElBQUk7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Z0JBbERGLFVBQVU7Ozs7SUFtRFgsb0JBQUM7Q0FBQSxBQW5ERCxJQW1EQztTQWxEWSxhQUFhOzs7Ozs7SUFFeEIsK0JBQW9COztJQUNwQixxQ0FBMkI7O0lBRTNCLG1DQUFpRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCBzb2NrZXRpbyBmcm9tICdzb2NrZXQuaW8tY2xpZW50L2Rpc3Qvc29ja2V0LmlvLmpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNvY2tldFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgc29ja2V0OiBhbnk7XG4gIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbm5lY3RlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGNvbm5lY3QoKSB7XG4gICAgdGhpcy5zb2NrZXQgPSB0aGlzLmdldFNvY2tldENsaWVudCgpO1xuICAgIHRoaXMuc29ja2V0Lm9uKCdjb25uZWN0JywgKCkgPT4gdGhpcy5jb25uZWN0ZWQkLm5leHQodHJ1ZSkpO1xuICAgIHRoaXMuc29ja2V0Lm9uKCdkaXNjb25uZWN0JywgKCkgPT4gdGhpcy5jb25uZWN0ZWQkLm5leHQoZmFsc2UpKTtcbiAgfVxuXG4gIGpvaW4oc2Vzc2lvbikge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jb25uZWN0ZWQkLnN1YnNjcmliZShjb25uZWN0ZWQgPT4ge1xuICAgICAgaWYgKGNvbm5lY3RlZCkge1xuICAgICAgICB0aGlzLnNvY2tldC5lbWl0KCdqb2luJywgc2Vzc2lvbik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBsZWF2ZShzZXNzaW9uKSB7XG4gICAgdGhpcy5zb2NrZXQuZW1pdCgnbGVhdmUnLCBzZXNzaW9uKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZW1pdChldmVudDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnNvY2tldC5lbWl0KGV2ZW50LCBkYXRhKTtcbiAgfVxuXG4gIGxpc3RlbihldmVudDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoIG9ic2VydmVyID0+IHtcbiAgICAgIHRoaXMuc29ja2V0Lm9uKGV2ZW50LCBkYXRhID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dChkYXRhKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuICgpID0+IHRoaXMuc29ja2V0Lm9mZihldmVudCk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRTb2NrZXRDbGllbnQoKSB7XG4gICAgcmV0dXJuIHNvY2tldGlvKCcvJywge1xuICAgICAgcGF0aDogJy9pY3Avc29ja2V0LmlvJywgYWdlbnQ6IHRydWVcbiAgICB9KTtcbiAgfVxufVxuIl19
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvbWVkaWEtdmlld2VyLyIsInNvdXJjZXMiOlsibGliL2ljcC9zb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFvQixFQUFFLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3pDO0lBYUU7UUFSQSxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDakQsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQy9CLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDbEMsd0JBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNwQyx3QkFBbUIsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3BDLDBCQUFxQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDdEMsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRWYsQ0FBQzs7OztJQUVqQixtQ0FBVzs7O0lBQVg7UUFDRSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7Ozs7O0lBRUQsK0JBQU87Ozs7SUFBUCxVQUFRLEdBQVc7UUFBbkIsaUJBdUJDO1FBdEJDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQyxNQUFpQjtZQUUzRCxNQUFNLENBQUMsTUFBTTs7OztZQUFHLFVBQUMsS0FBWTtnQkFDM0IsS0FBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0IsQ0FBQyxDQUFBLENBQUM7WUFFRixNQUFNLENBQUMs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NENBQW9DOztJQUNwQyw0Q0FBb0M7O0lBQ3BDLDhDQUFzQzs7SUFDdEMsdUNBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb20sIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEljcEV2ZW50cyB9IGZyb20gJy4vaWNwLmV2ZW50cyc7XG5pbXBvcnQgeyBJY3BQYXJ0aWNpcGFudCB9IGZyb20gJy4vaWNwLmludGVyZmFjZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU29ja2V0U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBzb2NrZXQ6IFdlYlNvY2tldDtcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIGNvbm5lY3RlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgc2Vzc2lvbkpvaW5lZCQgPSBuZXcgU3ViamVjdCgpO1xuICBwcmVzZW50ZXJVcGRhdGVkJCA9IG5ldyBTdWJqZWN0KCk7XG4gIGNsaWVudERpc2Nvbm5lY3RlZCQgPSBuZXcgU3ViamVjdCgpO1xuICBwYXJ0aWNpcGFudFVwZGF0ZWQkID0gbmV3IFN1YmplY3QoKTtcbiAgbmV3UGFydGljaXBhbnRKb2luZWQkID0gbmV3IFN1YmplY3QoKTtcbiAgc2NyZWVuVXBkYXRlZCQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGNvbm5lY3QodXJsOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTb2NrZXRDbGllbnQodXJsKS5zdWJzY3JpYmUoKHNvY2tldDogV2ViU29ja2V0KSA9PiB7XG5cbiAgICAgIHNvY2tldC5vbm9wZW4gPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuY29ubmVjdGVkJC5uZXh0KHRydWUpO1xuICAgICAgfTtcblxuICAgICAgc29ja2V0Lm9ubWVzc2FnZSA9IChldmVudDogTWVzc2FnZUV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdvbm1lc3NhZ2UnKTtcbiAgICAgICAgY29uc3QgZXZlbnREYXRhID0gSlNPTi5wYXJzZShldmVudC5kYXRhKTtcbiAgICAgICAgaWYgKGV2ZW50RGF0YS5kYXRhICYmIGV2ZW50RGF0YS5kYXRhLmV2ZW50TmFtZSkge1xuICAgICAgICAgIHRoaXMubWVzc2FnZUV2ZW50SGFuZGxsZXIoZXZlbnREYXRhLmRhdGEuZXZlbnROYW1lLCBldmVudERhdGEuZGF0YS5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgc29ja2V0Lm9uZXJyb3IgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdvbmVycm9yJyk7XG4gICAgICB9O1xuXG4gICAgICBzb2NrZXQub25jbG9zZSA9IChldmVudDogQ2xvc2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnb25jbG9zZScpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbm5lY3RlZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5jb25uZWN0ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgam9pbihzZXNzaW9uKSB7XG4gICAgdGhpcy5lbWl0KEljcEV2ZW50cy5TRVNTSU9OX0pPSU4sIHNlc3Npb24pO1xuICB9XG5cbiAgbGVhdmUoc2Vzc2lvbikge1xuICAgIHRoaXMuZW1pdChJY3BFdmVudHMuU0VTU0lPTl9MRUFWRSwgc2Vzc2lvbik7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGVtaXQoZXZlbnQ6IHN0cmluZywgZGF0YTogYW55KSB7XG4gICAgdGhpcy5zb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeSh7XG4gICAgICB0eXBlOiAnZXZlbnQnLFxuICAgICAgZXZlbnQsXG4gICAgICBkYXRhXG4gICAgfSkpO1xuICB9XG5cbiAgbGlzdGVuKGV2ZW50OiBJY3BFdmVudHMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHN3aXRjaCAoZXZlbnQpIHtcbiAgICAgIGNhc2UgSWNwRXZlbnRzLlNFU1NJT05fSk9JTkVEOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlc3Npb25Kb2luZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgfVxuICAgICAgY2FzZSBJY3BFdmVudHMuUFJFU0VOVEVSX1VQREFURUQ6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlc2VudGVyVXBkYXRlZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgICB9XG4gICAgICBjYXNlIEljcEV2ZW50cy5DTElFTlRfRElTQ09OTkVDVEVEOiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsaWVudERpc2Nvbm5lY3RlZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgICB9XG4gICAgICBjYXNlIEljcEV2ZW50cy5QQVJUSUNJUEFOVFNfVVBEQVRFRDoge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJ0aWNpcGFudFVwZGF0ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgfVxuICAgICAgY2FzZSBJY3BFdmVudHMuTkVXX1BBUlRJQ0lQQU5UX0pPSU5FRDoge1xuICAgICAgICByZXR1cm4gdGhpcy5uZXdQYXJ0aWNpcGFudEpvaW5lZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgICB9XG4gICAgICBjYXNlIEljcEV2ZW50cy5TQ1JFRU5fVVBEQVRFRDoge1xuICAgICAgICByZXR1cm4gdGhpcy5zY3JlZW5VcGRhdGVkJC5hc09ic2VydmFibGUoKTtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbWVzc2FnZUV2ZW50SGFuZGxsZXIoZXZlbnROYW1lOiBzdHJpbmcsIGRhdGE6IGFueSkge1xuICAgIHN3aXRjaCAoZXZlbnROYW1lKSB7XG4gICAgICBjYXNlIEljcEV2ZW50cy5TRVNTSU9OX0pPSU5FRDoge1xuICAgICAgICB0aGlzLnNlc3Npb25Kb2luZWQkLm5leHQoZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBJY3BFdmVudHMuUFJFU0VOVEVSX1VQREFURUQ6IHtcbiAgICAgICAgdGhpcy5wcmVzZW50ZXJVcGRhdGVkJC5uZXh0KGRhdGEpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgSWNwRXZlbnRzLkNMSUVOVF9ESVNDT05ORUNURUQ6IHtcbiAgICAgICAgdGhpcy5jbGllbnREaXNjb25uZWN0ZWQkLm5leHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIEljcEV2ZW50cy5QQVJUSUNJUEFOVFNfVVBEQVRFRDoge1xuICAgICAgICB0aGlzLnBhcnRpY2lwYW50VXBkYXRlZCQubmV4dChkYXRhKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIEljcEV2ZW50cy5ORVdfUEFSVElDSVBBTlRfSk9JTkVEOiB7XG4gICAgICAgIHRoaXMubmV3UGFydGljaXBhbnRKb2luZWQkLm5leHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIEljcEV2ZW50cy5TQ1JFRU5fVVBEQVRFRDoge1xuICAgICAgICB0aGlzLnNjcmVlblVwZGF0ZWQkLm5leHQoZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldFNvY2tldENsaWVudCh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8V2ViU29ja2V0PiB7XG4gICAgdGhpcy5zb2NrZXQgPSBuZXcgV2ViU29ja2V0KHVybCwgJ2pzb24ud2VicHVic3ViLmF6dXJlLnYxJyk7XG4gICAgcmV0dXJuIG9mKHRoaXMuc29ja2V0KTtcbiAgfVxufVxuIl19
@@ -132,7 +132,7 @@ var MediaViewerComponent = /** @class */ (function () {
132
132
  if (this.enableAnnotations && !(this.multimediaContent || this.unsupportedContent)) {
133
133
  this.store.dispatch(new fromAnnoActions.LoadAnnotationSet(this.documentId));
134
134
  }
135
- if (this.enableRedactions && !(this.multimediaContent || this.unsupportedContent)) {
135
+ if (this.enableRedactions && !(this.multimediaContent || this.unsupportedContent) && this.documentId) {
136
136
  this.store.dispatch(new fromRedactActions.LoadRedactions(this.documentId));
137
137
  }
138
138
  if (this.contentType === 'image') {
@@ -425,4 +425,4 @@ if (false) {
425
425
  */
426
426
  MediaViewerComponent.prototype.cdr;
427
427
  }
428
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9tZWRpYS12aWV3ZXIvIiwic291cmNlcyI6WyJsaWIvbWVkaWEtdmlld2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxtQkFBbUIsRUFBRSx3QkFBd0IsRUFDN0MsaUJBQWlCLEVBQ2pCLHlCQUF5QixFQUN6Qiw4QkFBOEIsRUFDL0IsTUFBTSw2Q0FBNkMsQ0FBQztBQUVyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUVwRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDbkYsT0FBTyxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxLQUFLLGlCQUFpQixNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sS0FBSyxxQkFBcUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEtBQUssZUFBZSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sS0FBSyxpQkFBaUIsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEtBQUssbUJBQW1CLE1BQU0sa0NBQWtDLENBQUM7OztJQUd0RSxLQUFNLEtBQUs7SUFDWCxPQUFRLE9BQU87Ozs7SUFJZixLQUFNLEtBQUs7SUFDWCxLQUFNLEtBQUs7Ozs7SUFJWCxPQUFRLE9BQU87SUFDZixNQUFPLE1BQU07SUFDYixZQUFhLFlBQVk7SUFDekIsS0FB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SUFDbEMseUNBQTJCOztJQUMzQix1REFBeUM7O0lBR3pDLHNDQUF3Qjs7SUFFeEIsaURBQTBCOztJQUMxQixrREFBMkI7O0lBQzNCLGtEQUEyQjs7SUFFM0IsNkNBQXNCOztJQUN0QixrREFBNEI7O0lBQzVCLDhDQUErQzs7SUFDL0MsNENBQXNCOztJQUN0Qiw2Q0FBc0I7O0lBQ3RCLHFEQUEyQzs7SUFDM0MsMENBQW1COzs7OztJQUVuQiw4Q0FBcUM7Ozs7O0lBQ3JDLDBDQUEyQjs7Ozs7SUFHekIscUNBQWtEOztJQUNsRCw4Q0FBOEQ7O0lBQzlELDZDQUFrRDs7Ozs7SUFDbEQsbUNBQTBDOzs7OztJQUMxQyw4Q0FBK0M7Ozs7O0lBQy9DLHFDQUF5Qjs7Ozs7SUFDekIsbUNBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZGVmYXVsdEltYWdlT3B0aW9ucywgZGVmYXVsdE11bHRpbWVkaWFPcHRpb25zLFxuICBkZWZhdWx0UGRmT3B0aW9ucyxcbiAgZGVmYXVsdFVuc3VwcG9ydGVkT3B0aW9ucyxcbiAgVG9vbGJhckJ1dHRvblZpc2liaWxpdHlTZXJ2aWNlXG59IGZyb20gJy4vdG9vbGJhci90b29sYmFyLWJ1dHRvbi12aXNpYmlsaXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQW5ub3RhdGlvblNldCB9IGZyb20gJy4vYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi1zZXQubW9kZWwnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4vdG9vbGJhci90b29sYmFyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQW5ub3RhdGlvbkFwaVNlcnZpY2UgfSBmcm9tICcuL2Fubm90YXRpb25zL3NlcnZpY2VzL2Fubm90YXRpb24tYXBpL2Fubm90YXRpb24tYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVzcG9uc2VUeXBlLCBWaWV3ZXJFeGNlcHRpb24gfSBmcm9tICcuL3ZpZXdlcnMvdmlld2VyLWV4Y2VwdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBDb21tZW50U2VydmljZSB9IGZyb20gJy4vYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC9jb21tZW50LnNlcnZpY2UnO1xuaW1wb3J0ICdoYW1tZXJqcyc7XG5pbXBvcnQgeyBzZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0ICogYXMgZnJvbVN0b3JlIGZyb20gJy4vc3RvcmUvcmVkdWNlcnMvcmVkdWNlcnMnO1xuaW1wb3J0ICogYXMgZnJvbUFubm9TZWxlY3RvcnMgZnJvbSAnLi9zdG9yZS9zZWxlY3RvcnMvYW5ub3RhdGlvbi5zZWxlY3RvcnMnO1xuaW1wb3J0ICogYXMgZnJvbURvY3VtZW50c1NlbGVjdG9yIGZyb20gJy4vc3RvcmUvc2VsZWN0b3JzL2RvY3VtZW50LnNlbGVjdG9ycyc7XG5pbXBvcnQgKiBhcyBmcm9tQW5ub0FjdGlvbnMgZnJvbSAnLi9zdG9yZS9hY3Rpb25zL2Fubm90YXRpb24uYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBmcm9tUmVkYWN0QWN0aW9ucyBmcm9tICcuL3N0b3JlL2FjdGlvbnMvcmVkYWN0aW9uLmFjdGlvbnMnO1xuaW1wb3J0ICogYXMgZnJvbURvY3VtZW50QWN0aW9ucyBmcm9tICcuL3N0b3JlL2FjdGlvbnMvZG9jdW1lbnQuYWN0aW9ucyc7XG5cbmVudW0gQ29yZUNvbnRlbnRUeXBlcyB7XG4gIFBERiA9ICdwZGYnLFxuICBJTUFHRSA9ICdpbWFnZSdcbn1cblxuZW51bSBNdWx0aW1lZGlhQ29udGVudFR5cGVzIHtcbiAgTVA0ID0gJ21wNCcsXG4gIE1QMyA9ICdtcDMnLFxufVxuXG5lbnVtIENvbnZlcnRpYmxlQ29udGVudFR5cGVzIHtcbiAgRVhDRUwgPSAnZXhjZWwnLFxuICBXT1JEID0gJ3dvcmQnLFxuICBQT1dFUlBPSU5UID0gJ3Bvd2VycG9pbnQnLFxuICBUWFQgPSAndHh0JyxcbiAgUlRGID0gJ3J0Zidcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXYtbWVkaWEtdmlld2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lZGlhLXZpZXdlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgTWVkaWFWaWV3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG5cbiAgQFZpZXdDaGlsZCgndmlld2VyUmVmJykgdmlld2VyUmVmOiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpIHVybDtcbiAgQElucHV0KCkgZG93bmxvYWRGaWxlTmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSBjb250ZW50VHlwZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHNob3dUb29sYmFyID0gdHJ1ZTtcbiAgQElucHV0KCkgdG9vbGJhckJ1dHRvbk92ZXJyaWRlczogYW55ID0ge307XG5cbiAgQElucHV0KClcbiAgcHVibGljIGhlaWdodDogc3RyaW5nO1xuICBwdWJsaWMgdmlld2VySGVpZ2h0OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgd2lkdGggPSAnMTAwJSc7XG5cbiAgQE91dHB1dCgpIG1lZGlhTG9hZFN0YXR1cyA9IG5ldyBFdmVudEVtaXR0ZXI8UmVzcG9uc2VUeXBlPigpO1xuICBAT3V0cHV0KCkgdmlld2VyRXhjZXB0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxWaWV3ZXJFeGNlcHRpb24+KCk7XG4gIEBPdXRwdXQoKSB0b29sYmFyRXZlbnRzT3V0cHV0ID0gbmV3IEV2ZW50RW1pdHRlcjxUb29sYmFyRXZlbnRTZXJ2aWNlPigpO1xuICBAT3V0cHV0KCkgdW5zYXZlZENoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQElucHV0KCkgZW5hYmxlQW5ub3RhdGlvbnMgPSBmYWxzZTtcbiAgQElucHV0KCkgYW5ub3RhdGlvbkFwaVVybDtcblxuICBASW5wdXQoKSBlbmFibGVSZWRhY3Rpb25zID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVuYWJsZUlDUCA9IGZhbHNlO1xuICBASW5wdXQoKSBtdWx0aW1lZGlhUGxheWVyRW5hYmxlZCA9IGZhbHNlO1xuXG5cbiAgQElucHV0KCkgY2FzZUlkOiBzdHJpbmc7XG5cbiAgbXVsdGltZWRpYUNvbnRlbnQgPSBmYWxzZTtcbiAgY29udmVydGlibGVDb250ZW50ID0gZmFsc2U7XG4gIHVuc3VwcG9ydGVkQ29udGVudCA9IGZhbHNlO1xuXG4gIGRvY3VtZW50VGl0bGU6IHN0cmluZztcbiAgc2hvd0NvbW1lbnRTdW1tYXJ5OiBib29sZWFuO1xuICBhbm5vdGF0aW9uU2V0JDogT2JzZXJ2YWJsZTxBbm5vdGF0aW9uU2V0IHwge30+O1xuICBoYXNTY3JvbGxCYXI6IGJvb2xlYW47XG4gIHR5cGVFeGNlcHRpb24gPSBmYWxzZTtcbiAgaGFzRGlmZmVyZW50UGFnZVNpemUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBkb2N1bWVudElkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSAkc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHByZXZPZmZzZXQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxmcm9tU3RvcmUuQW5ub3RhdGlvblNldFN0YXRlPixcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbGJhckJ1dHRvbnM6IFRvb2xiYXJCdXR0b25WaXNpYmlsaXR5U2VydmljZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbGJhckV2ZW50czogVG9vbGJhckV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwaTogQW5ub3RhdGlvbkFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tZW50U2VydmljZTogQ29tbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgaWYgKHRoaXMuYW5ub3RhdGlvbkFwaVVybCkge1xuICAgICAgYXBpLmFubm90YXRpb25BcGlVcmwgPSB0aGlzLmFubm90YXRpb25BcGlVcmw7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuYW5ub3RhdGlvblNldCQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21Bbm5vU2VsZWN0b3JzLmdldEFubm90YXRpb25TZXQpKTtcbiAgICB0aGlzLmhhc0RpZmZlcmVudFBhZ2VTaXplJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbURvY3VtZW50c1NlbGVjdG9yLmdldFBhZ2VEaWZmZXJlbmNlKSk7XG4gICAgdGhpcy5zZXRUb29sYmFyQnV0dG9ucygpO1xuICAgIHRoaXMudG9vbGJhckV2ZW50c091dHB1dC5lbWl0KHRoaXMudG9vbGJhckV2ZW50cyk7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9ucyA9IHRoaXMuY29tbWVudFNlcnZpY2UuZ2V0VW5zYXZlZENoYW5nZXMoKVxuICAgICAgLnN1YnNjcmliZShjaGFuZ2VzID0+IHRoaXMub25Db21tZW50Q2hhbmdlKGNoYW5nZXMpKTtcbiAgICB0aGlzLiRzdWJzY3JpcHRpb25zLmFkZCh0aGlzLnRvb2xiYXJFdmVudHMuZ2V0U2hvd0NvbW1lbnRTdW1tYXJ5KClcbiAgICAgIC5zdWJzY3JpYmUoY2hhbmdlcyA9PiB0aGlzLnNob3dDb21tZW50U3VtbWFyeSA9IGNoYW5nZXMpKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5oZWlnaHQgJiYgdGhpcy52aWV3ZXJIZWlnaHQgIT09IHRoaXMuaGVpZ2h0KSB7XG4gICAgICB0aGlzLnZpZXdlckhlaWdodCA9IHRoaXMuaGVpZ2h0O1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5oZWlnaHQpIHtcbiAgICAgIGNvbnN0IGNvbXBPZmZzZXRUb3AgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuICAgICAgY29uc3Qgdmlld2VyT2Zmc2V0VG9wID0gdGhpcy52aWV3ZXJSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRUb3A7XG4gICAgICBjb25zdCBvZmZzZXQgPSBjb21wT2Zmc2V0VG9wICsgdmlld2VyT2Zmc2V0VG9wO1xuXG4gICAgICBpZiAodGhpcy5wcmV2T2Zmc2V0ICE9PSBvZmZzZXQpIHtcbiAgICAgICAgdGhpcy52aWV3ZXJIZWlnaHQgPSBgY2FsYygxMDB2aCAtICR7b2Zmc2V0fXB4KWA7XG4gICAgICAgIHRoaXMucHJldk9mZnNldCA9IG9mZnNldDtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlcy5hbm5vdGF0aW9uQXBpVXJsKSB7XG4gICAgICB0aGlzLmFwaS5hbm5vdGF0aW9uQXBpVXJsID0gdGhpcy5hbm5vdGF0aW9uQXBpVXJsO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLnVybCkge1xuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnJlc2V0KCk7XG4gICAgICB0aGlzLmNvbW1lbnRTZXJ2aWNlLnJlc2V0Q29tbWVudFNldCgpO1xuICAgICAgdGhpcy5kb2N1bWVudElkID0gdGhpcy5leHRyYWN0RE1TdG9yZURvY0lkKHRoaXMudXJsKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21Eb2N1bWVudEFjdGlvbnMuU2V0RG9jdW1lbnRJZCh0aGlzLmRvY3VtZW50SWQpKTtcbiAgICAgIGlmICh0aGlzLmVuYWJsZUFubm90YXRpb25zICYmICEodGhpcy5tdWx0aW1lZGlhQ29udGVudCB8fCB0aGlzLnVuc3VwcG9ydGVkQ29udGVudCkpIHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbUFubm9BY3Rpb25zLkxvYWRBbm5vdGF0aW9uU2V0KHRoaXMuZG9jdW1lbnRJZCkpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZW5hYmxlUmVkYWN0aW9ucyAmJiAhKHRoaXMubXVsdGltZWRpYUNvbnRlbnQgfHwgdGhpcy51bnN1cHBvcnRlZENvbnRlbnQpKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21SZWRhY3RBY3Rpb25zLkxvYWRSZWRhY3Rpb25zKHRoaXMuZG9jdW1lbnRJZCkpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuY29udGVudFR5cGUgPT09ICdpbWFnZScpIHtcbiAgICAgICAgdGhpcy5kb2N1bWVudFRpdGxlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5jb250ZW50VHlwZSkge1xuICAgICAgdGhpcy5jb252ZXJ0aWJsZUNvbnRlbnQgPSB0aGlzLm5lZWRzQ29udmVydGluZygpO1xuICAgICAgdGhpcy5tdWx0aW1lZGlhQ29udGVudCA9IHRoaXMuaXNNdWx0aW1lZGlhKCk7XG4gICAgICB0aGlzLnVuc3VwcG9ydGVkQ29udGVudCA9ICF0aGlzLmlzU3VwcG9ydGVkKCk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRUb29sYmFyQnV0dG9ucygpO1xuICAgIHRoaXMuZGV0ZWN0T3MoKTtcbiAgICB0aGlzLnR5cGVFeGNlcHRpb24gPSBmYWxzZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5lZWRzQ29udmVydGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50VHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyhDb252ZXJ0aWJsZUNvbnRlbnRUeXBlcykuaW5jbHVkZXModGhpcy5jb250ZW50VHlwZS50b1VwcGVyQ2FzZSgpKTtcbiAgfVxuXG4gIGlzTXVsdGltZWRpYSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50VHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyhNdWx0aW1lZGlhQ29udGVudFR5cGVzKS5pbmNsdWRlcyh0aGlzLmNvbnRlbnRUeXBlLnRvVXBwZXJDYXNlKCkpO1xuICB9XG5cbiAgaXNTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc3VwcG9ydGVkVHlwZXMgPSBPYmplY3QuYXNzaWduKHt9LCBNdWx0aW1lZGlhQ29udGVudFR5cGVzLCBDb252ZXJ0aWJsZUNvbnRlbnRUeXBlcywgQ29yZUNvbnRlbnRUeXBlcyk7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudFR5cGUgIT09IG51bGwgJiYgT2JqZWN0LmtleXMoc3VwcG9ydGVkVHlwZXMpLmluY2x1ZGVzKHRoaXMuY29udGVudFR5cGUudG9VcHBlckNhc2UoKSk7XG4gIH1cblxuICBvbk1lZGlhTG9hZChzdGF0dXM6IFJlc3BvbnNlVHlwZSkge1xuICAgIHRoaXMubWVkaWFMb2FkU3RhdHVzLmVtaXQoc3RhdHVzKTtcbiAgfVxuXG4gIHNldFRvb2xiYXJCdXR0b25zKCkge1xuICAgIGlmICh0aGlzLmNvbnRlbnRUeXBlID09PSBDb3JlQ29udGVudFR5cGVzLlBERiB8fCB0aGlzLm5lZWRzQ29udmVydGluZygpKSB7XG4gICAgICB0aGlzLnRvb2xiYXJCdXR0b25zLnNldHVwKHtcbiAgICAgICAgLi4uZGVmYXVsdFBkZk9wdGlvbnMsIHNob3dIaWdobGlnaHRCdXR0b246IHRoaXMuZW5hYmxlQW5ub3RhdGlvbnMsIHNob3dEcmF3QnV0dG9uOiB0aGlzLmVuYWJsZUFubm90YXRpb25zLFxuICAgICAgICAuLi50aGlzLnRvb2xiYXJCdXR0b25PdmVycmlkZXNcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb250ZW50VHlwZSA9PT0gQ29yZUNvbnRlbnRUeXBlcy5JTUFHRSkge1xuICAgICAgdGhpcy50b29sYmFyQnV0dG9ucy5zZXR1cCh7XG4gICAgICAgIC4uLmRlZmF1bHRJbWFnZU9wdGlvbnMsIHNob3dEcmF3QnV0dG9uOiB0aGlzLmVuYWJsZUFubm90YXRpb25zLFxuICAgICAgICAuLi50aGlzLnRvb2xiYXJCdXR0b25PdmVycmlkZXNcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc011bHRpbWVkaWEoKSkge1xuICAgICAgdGhpcy50b29sYmFyQnV0dG9ucy5zZXR1cCh7XG4gICAgICAgIC4uLmRlZmF1bHRNdWx0aW1lZGlhT3B0aW9ucyxcbiAgICAgICAgLi4udGhpcy50b29sYmFyQnV0dG9uT3ZlcnJpZGVzXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50b29sYmFyQnV0dG9ucy5zZXR1cCh7XG4gICAgICAgIC4uLmRlZmF1bHRVbnN1cHBvcnRlZE9wdGlvbnMsXG4gICAgICAgIC4uLnRoaXMudG9vbGJhckJ1dHRvbk92ZXJyaWRlc1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25Mb2FkRXhjZXB0aW9uKGV4Y2VwdGlvbjogVmlld2VyRXhjZXB0aW9uKSB7XG4gICAgdGhpcy52aWV3ZXJFeGNlcHRpb24uZW1pdChleGNlcHRpb24pO1xuICAgIGlmICghdGhpcy5pc1N1cHBvcnRlZCgpKSB7XG4gICAgICB0aGlzLnR5cGVFeGNlcHRpb24gPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50eXBlRXhjZXB0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMuY29udGVudFR5cGUgPSBudWxsO1xuICAgICAgdGhpcy5zZXRUb29sYmFyQnV0dG9ucygpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ29tbWVudENoYW5nZShjaGFuZ2VzOiBib29sZWFuKSB7XG4gICAgdGhpcy51bnNhdmVkQ2hhbmdlcy5lbWl0KGNoYW5nZXMpO1xuICB9XG5cbiAgb25Eb2N1bWVudFRpdGxlQ2hhbmdlKHRpdGxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRvY3VtZW50VGl0bGUgPSB0aXRsZTtcbiAgfVxuXG4gIC8vIElmIHNlY3VyZSBtb2RlIGlzIGVuYWJsZWQgKHdoaWNoIGFkZHMgXCJkb2N1bWVudHN2MlwiIHRvIHRoZSBkb2N1bWVudElkKSwgZ2V0IHJpZCBvZiBpdFxuICBwcml2YXRlIGV4dHJhY3RETVN0b3JlRG9jSWQodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHVybCA9IHVybC5pbmNsdWRlcygnL2RvY3VtZW50cy8nKSA/IHVybC5zcGxpdCgnL2RvY3VtZW50cy8nKVsxXSA6IHVybDtcbiAgICB1cmwgPSB1cmwuaW5jbHVkZXMoJy9kb2N1bWVudHN2Mi8nKSA/IHVybC5zcGxpdCgnL2RvY3VtZW50c3YyLycpWzFdIDogdXJsO1xuICAgIHJldHVybiB1cmwucmVwbGFjZSgnL2JpbmFyeScsICcnKTtcbiAgfVxuXG4gIGRldGVjdE9zKCkge1xuICAgIHRoaXMuaGFzU2Nyb2xsQmFyID0gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignV2luJykgIT09IC0xO1xuICB9XG59XG4iXX0=
428
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9tZWRpYS12aWV3ZXIvIiwic291cmNlcyI6WyJsaWIvbWVkaWEtdmlld2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxtQkFBbUIsRUFBRSx3QkFBd0IsRUFDN0MsaUJBQWlCLEVBQ2pCLHlCQUF5QixFQUN6Qiw4QkFBOEIsRUFDL0IsTUFBTSw2Q0FBNkMsQ0FBQztBQUVyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUVwRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDbkYsT0FBTyxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxLQUFLLGlCQUFpQixNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sS0FBSyxxQkFBcUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEtBQUssZUFBZSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sS0FBSyxpQkFBaUIsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEtBQUssbUJBQW1CLE1BQU0sa0NBQWtDLENBQUM7OztJQUd0RSxLQUFNLEtBQUs7SUFDWCxPQUFRLE9BQU87Ozs7SUFJZixLQUFNLEtBQUs7SUFDWCxLQUFNLEtBQUs7Ozs7SUFJWCxPQUFRLE9BQU87SUFDZixNQUFPLE1BQU07SUFDYixZQUFhLFlBQVk7SUFDekIsS0FB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QUEwQjs7SUFFMUIsZ0RBQWtDOztJQUNsQyx5Q0FBMkI7O0lBQzNCLHVEQUF5Qzs7SUFHekMsc0NBQXdCOztJQUV4QixpREFBMEI7O0lBQzFCLGtEQUEyQjs7SUFDM0Isa0RBQTJCOztJQUUzQiw2Q0FBc0I7O0lBQ3RCLGtEQUE0Qjs7SUFDNUIsOENBQStDOztJQUMvQyw0Q0FBc0I7O0lBQ3RCLDZDQUFzQjs7SUFDdEIscURBQTJDOztJQUMzQywwQ0FBbUI7Ozs7O0lBRW5CLDhDQUFxQzs7Ozs7SUFDckMsMENBQTJCOzs7OztJQUd6QixxQ0FBa0Q7O0lBQ2xELDhDQUE4RDs7SUFDOUQsNkNBQWtEOzs7OztJQUNsRCxtQ0FBMEM7Ozs7O0lBQzFDLDhDQUErQzs7Ozs7SUFDL0MscUNBQXlCOzs7OztJQUN6QixtQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkZWZhdWx0SW1hZ2VPcHRpb25zLCBkZWZhdWx0TXVsdGltZWRpYU9wdGlvbnMsXG4gIGRlZmF1bHRQZGZPcHRpb25zLFxuICBkZWZhdWx0VW5zdXBwb3J0ZWRPcHRpb25zLFxuICBUb29sYmFyQnV0dG9uVmlzaWJpbGl0eVNlcnZpY2Vcbn0gZnJvbSAnLi90b29sYmFyL3Rvb2xiYXItYnV0dG9uLXZpc2liaWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uU2V0IH0gZnJvbSAnLi9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLXNldC5tb2RlbCc7XG5pbXBvcnQgeyBUb29sYmFyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi90b29sYmFyL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uQXBpU2VydmljZSB9IGZyb20gJy4vYW5ub3RhdGlvbnMvc2VydmljZXMvYW5ub3RhdGlvbi1hcGkvYW5ub3RhdGlvbi1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBSZXNwb25zZVR5cGUsIFZpZXdlckV4Y2VwdGlvbiB9IGZyb20gJy4vdmlld2Vycy92aWV3ZXItZXhjZXB0aW9uLm1vZGVsJztcbmltcG9ydCB7IENvbW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9hbm5vdGF0aW9ucy9jb21tZW50LXNldC9jb21tZW50L2NvbW1lbnQuc2VydmljZSc7XG5pbXBvcnQgJ2hhbW1lcmpzJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgKiBhcyBmcm9tU3RvcmUgZnJvbSAnLi9zdG9yZS9yZWR1Y2Vycy9yZWR1Y2Vycyc7XG5pbXBvcnQgKiBhcyBmcm9tQW5ub1NlbGVjdG9ycyBmcm9tICcuL3N0b3JlL3NlbGVjdG9ycy9hbm5vdGF0aW9uLnNlbGVjdG9ycyc7XG5pbXBvcnQgKiBhcyBmcm9tRG9jdW1lbnRzU2VsZWN0b3IgZnJvbSAnLi9zdG9yZS9zZWxlY3RvcnMvZG9jdW1lbnQuc2VsZWN0b3JzJztcbmltcG9ydCAqIGFzIGZyb21Bbm5vQWN0aW9ucyBmcm9tICcuL3N0b3JlL2FjdGlvbnMvYW5ub3RhdGlvbi5hY3Rpb25zJztcbmltcG9ydCAqIGFzIGZyb21SZWRhY3RBY3Rpb25zIGZyb20gJy4vc3RvcmUvYWN0aW9ucy9yZWRhY3Rpb24uYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBmcm9tRG9jdW1lbnRBY3Rpb25zIGZyb20gJy4vc3RvcmUvYWN0aW9ucy9kb2N1bWVudC5hY3Rpb25zJztcblxuZW51bSBDb3JlQ29udGVudFR5cGVzIHtcbiAgUERGID0gJ3BkZicsXG4gIElNQUdFID0gJ2ltYWdlJ1xufVxuXG5lbnVtIE11bHRpbWVkaWFDb250ZW50VHlwZXMge1xuICBNUDQgPSAnbXA0JyxcbiAgTVAzID0gJ21wMycsXG59XG5cbmVudW0gQ29udmVydGlibGVDb250ZW50VHlwZXMge1xuICBFWENFTCA9ICdleGNlbCcsXG4gIFdPUkQgPSAnd29yZCcsXG4gIFBPV0VSUE9JTlQgPSAncG93ZXJwb2ludCcsXG4gIFRYVCA9ICd0eHQnLFxuICBSVEYgPSAncnRmJ1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1tZWRpYS12aWV3ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVkaWEtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBNZWRpYVZpZXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkIHtcblxuICBAVmlld0NoaWxkKCd2aWV3ZXJSZWYnKSB2aWV3ZXJSZWY6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgdXJsO1xuICBASW5wdXQoKSBkb3dubG9hZEZpbGVOYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNvbnRlbnRUeXBlOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgc2hvd1Rvb2xiYXIgPSB0cnVlO1xuICBASW5wdXQoKSB0b29sYmFyQnV0dG9uT3ZlcnJpZGVzOiBhbnkgPSB7fTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaGVpZ2h0OiBzdHJpbmc7XG4gIHB1YmxpYyB2aWV3ZXJIZWlnaHQ6IHN0cmluZztcblxuICBASW5wdXQoKSB3aWR0aCA9ICcxMDAlJztcblxuICBAT3V0cHV0KCkgbWVkaWFMb2FkU3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxSZXNwb25zZVR5cGU+KCk7XG4gIEBPdXRwdXQoKSB2aWV3ZXJFeGNlcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPFZpZXdlckV4Y2VwdGlvbj4oKTtcbiAgQE91dHB1dCgpIHRvb2xiYXJFdmVudHNPdXRwdXQgPSBuZXcgRXZlbnRFbWl0dGVyPFRvb2xiYXJFdmVudFNlcnZpY2U+KCk7XG4gIEBPdXRwdXQoKSB1bnNhdmVkQ2hhbmdlcyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBASW5wdXQoKSBlbmFibGVBbm5vdGF0aW9ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBhbm5vdGF0aW9uQXBpVXJsO1xuXG4gIEBJbnB1dCgpIGVuYWJsZVJlZGFjdGlvbnMgPSBmYWxzZTtcbiAgQElucHV0KCkgZW5hYmxlSUNQID0gZmFsc2U7XG4gIEBJbnB1dCgpIG11bHRpbWVkaWFQbGF5ZXJFbmFibGVkID0gZmFsc2U7XG5cblxuICBASW5wdXQoKSBjYXNlSWQ6IHN0cmluZztcblxuICBtdWx0aW1lZGlhQ29udGVudCA9IGZhbHNlO1xuICBjb252ZXJ0aWJsZUNvbnRlbnQgPSBmYWxzZTtcbiAgdW5zdXBwb3J0ZWRDb250ZW50ID0gZmFsc2U7XG5cbiAgZG9jdW1lbnRUaXRsZTogc3RyaW5nO1xuICBzaG93Q29tbWVudFN1bW1hcnk6IGJvb2xlYW47XG4gIGFubm90YXRpb25TZXQkOiBPYnNlcnZhYmxlPEFubm90YXRpb25TZXQgfCB7fT47XG4gIGhhc1Njcm9sbEJhcjogYm9vbGVhbjtcbiAgdHlwZUV4Y2VwdGlvbiA9IGZhbHNlO1xuICBoYXNEaWZmZXJlbnRQYWdlU2l6ZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGRvY3VtZW50SWQ6IHN0cmluZztcblxuICBwcml2YXRlICRzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgcHJldk9mZnNldDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGZyb21TdG9yZS5Bbm5vdGF0aW9uU2V0U3RhdGU+LFxuICAgIHB1YmxpYyByZWFkb25seSB0b29sYmFyQnV0dG9uczogVG9vbGJhckJ1dHRvblZpc2liaWxpdHlTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWFkb25seSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBpOiBBbm5vdGF0aW9uQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1lbnRTZXJ2aWNlOiBDb21tZW50U2VydmljZSxcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBpZiAodGhpcy5hbm5vdGF0aW9uQXBpVXJsKSB7XG4gICAgICBhcGkuYW5ub3RhdGlvbkFwaVVybCA9IHRoaXMuYW5ub3RhdGlvbkFwaVVybDtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5hbm5vdGF0aW9uU2V0JCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbUFubm9TZWxlY3RvcnMuZ2V0QW5ub3RhdGlvblNldCkpO1xuICAgIHRoaXMuaGFzRGlmZmVyZW50UGFnZVNpemUkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tRG9jdW1lbnRzU2VsZWN0b3IuZ2V0UGFnZURpZmZlcmVuY2UpKTtcbiAgICB0aGlzLnNldFRvb2xiYXJCdXR0b25zKCk7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzT3V0cHV0LmVtaXQodGhpcy50b29sYmFyRXZlbnRzKTtcbiAgICB0aGlzLiRzdWJzY3JpcHRpb25zID0gdGhpcy5jb21tZW50U2VydmljZS5nZXRVbnNhdmVkQ2hhbmdlcygpXG4gICAgICAuc3Vic2NyaWJlKGNoYW5nZXMgPT4gdGhpcy5vbkNvbW1lbnRDaGFuZ2UoY2hhbmdlcykpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbnMuYWRkKHRoaXMudG9vbGJhckV2ZW50cy5nZXRTaG93Q29tbWVudFN1bW1hcnkoKVxuICAgICAgLnN1YnNjcmliZShjaGFuZ2VzID0+IHRoaXMuc2hvd0NvbW1lbnRTdW1tYXJ5ID0gY2hhbmdlcykpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhlaWdodCAmJiB0aGlzLnZpZXdlckhlaWdodCAhPT0gdGhpcy5oZWlnaHQpIHtcbiAgICAgIHRoaXMudmlld2VySGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmhlaWdodCkge1xuICAgICAgY29uc3QgY29tcE9mZnNldFRvcCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XG4gICAgICBjb25zdCB2aWV3ZXJPZmZzZXRUb3AgPSB0aGlzLnZpZXdlclJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgIGNvbnN0IG9mZnNldCA9IGNvbXBPZmZzZXRUb3AgKyB2aWV3ZXJPZmZzZXRUb3A7XG5cbiAgICAgIGlmICh0aGlzLnByZXZPZmZzZXQgIT09IG9mZnNldCkge1xuICAgICAgICB0aGlzLnZpZXdlckhlaWdodCA9IGBjYWxjKDEwMHZoIC0gJHtvZmZzZXR9cHgpYDtcbiAgICAgICAgdGhpcy5wcmV2T2Zmc2V0ID0gb2Zmc2V0O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLmFubm90YXRpb25BcGlVcmwpIHtcbiAgICAgIHRoaXMuYXBpLmFubm90YXRpb25BcGlVcmwgPSB0aGlzLmFubm90YXRpb25BcGlVcmw7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMudXJsKSB7XG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMucmVzZXQoKTtcbiAgICAgIHRoaXMuY29tbWVudFNlcnZpY2UucmVzZXRDb21tZW50U2V0KCk7XG4gICAgICB0aGlzLmRvY3VtZW50SWQgPSB0aGlzLmV4dHJhY3RETVN0b3JlRG9jSWQodGhpcy51cmwpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbURvY3VtZW50QWN0aW9ucy5TZXREb2N1bWVudElkKHRoaXMuZG9jdW1lbnRJZCkpO1xuICAgICAgaWYgKHRoaXMuZW5hYmxlQW5ub3RhdGlvbnMgJiYgISh0aGlzLm11bHRpbWVkaWFDb250ZW50IHx8IHRoaXMudW5zdXBwb3J0ZWRDb250ZW50KSkge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tQW5ub0FjdGlvbnMuTG9hZEFubm90YXRpb25TZXQodGhpcy5kb2N1bWVudElkKSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5lbmFibGVSZWRhY3Rpb25zICYmICEodGhpcy5tdWx0aW1lZGlhQ29udGVudCB8fCB0aGlzLnVuc3VwcG9ydGVkQ29udGVudCkgJiYgdGhpcy5kb2N1bWVudElkKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21SZWRhY3RBY3Rpb25zLkxvYWRSZWRhY3Rpb25zKHRoaXMuZG9jdW1lbnRJZCkpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuY29udGVudFR5cGUgPT09ICdpbWFnZScpIHtcbiAgICAgICAgdGhpcy5kb2N1bWVudFRpdGxlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5jb250ZW50VHlwZSkge1xuICAgICAgdGhpcy5jb252ZXJ0aWJsZUNvbnRlbnQgPSB0aGlzLm5lZWRzQ29udmVydGluZygpO1xuICAgICAgdGhpcy5tdWx0aW1lZGlhQ29udGVudCA9IHRoaXMuaXNNdWx0aW1lZGlhKCk7XG4gICAgICB0aGlzLnVuc3VwcG9ydGVkQ29udGVudCA9ICF0aGlzLmlzU3VwcG9ydGVkKCk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRUb29sYmFyQnV0dG9ucygpO1xuICAgIHRoaXMuZGV0ZWN0T3MoKTtcbiAgICB0aGlzLnR5cGVFeGNlcHRpb24gPSBmYWxzZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5lZWRzQ29udmVydGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50VHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyhDb252ZXJ0aWJsZUNvbnRlbnRUeXBlcykuaW5jbHVkZXModGhpcy5jb250ZW50VHlwZS50b1VwcGVyQ2FzZSgpKTtcbiAgfVxuXG4gIGlzTXVsdGltZWRpYSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50VHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyhNdWx0aW1lZGlhQ29udGVudFR5cGVzKS5pbmNsdWRlcyh0aGlzLmNvbnRlbnRUeXBlLnRvVXBwZXJDYXNlKCkpO1xuICB9XG5cbiAgaXNTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc3VwcG9ydGVkVHlwZXMgPSBPYmplY3QuYXNzaWduKHt9LCBNdWx0aW1lZGlhQ29udGVudFR5cGVzLCBDb252ZXJ0aWJsZUNvbnRlbnRUeXBlcywgQ29yZUNvbnRlbnRUeXBlcyk7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudFR5cGUgIT09IG51bGwgJiYgT2JqZWN0LmtleXMoc3VwcG9ydGVkVHlwZXMpLmluY2x1ZGVzKHRoaXMuY29udGVudFR5cGUudG9VcHBlckNhc2UoKSk7XG4gIH1cblxuICBvbk1lZGlhTG9hZChzdGF0dXM6IFJlc3BvbnNlVHlwZSkge1xuICAgIHRoaXMubWVkaWFMb2FkU3RhdHVzLmVtaXQoc3RhdHVzKTtcbiAgfVxuXG4gIHNldFRvb2xiYXJCdXR0b25zKCkge1xuICAgIGlmICh0aGlzLmNvbnRlbnRUeXBlID09PSBDb3JlQ29udGVudFR5cGVzLlBERiB8fCB0aGlzLm5lZWRzQ29udmVydGluZygpKSB7XG4gICAgICB0aGlzLnRvb2xiYXJCdXR0b25zLnNldHVwKHtcbiAgICAgICAgLi4uZGVmYXVsdFBkZk9wdGlvbnMsIHNob3dIaWdobGlnaHRCdXR0b246IHRoaXMuZW5hYmxlQW5ub3RhdGlvbnMsIHNob3dEcmF3QnV0dG9uOiB0aGlzLmVuYWJsZUFubm90YXRpb25zLFxuICAgICAgICAuLi50aGlzLnRvb2xiYXJCdXR0b25PdmVycmlkZXNcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb250ZW50VHlwZSA9PT0gQ29yZUNvbnRlbnRUeXBlcy5JTUFHRSkge1xuICAgICAgdGhpcy50b29sYmFyQnV0dG9ucy5zZXR1cCh7XG4gICAgICAgIC4uLmRlZmF1bHRJbWFnZU9wdGlvbnMsIHNob3dEcmF3QnV0dG9uOiB0aGlzLmVuYWJsZUFubm90YXRpb25zLFxuICAgICAgICAuLi50aGlzLnRvb2xiYXJCdXR0b25PdmVycmlkZXNcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc011bHRpbWVkaWEoKSkge1xuICAgICAgdGhpcy50b29sYmFyQnV0dG9ucy5zZXR1cCh7XG4gICAgICAgIC4uLmRlZmF1bHRNdWx0aW1lZGlhT3B0aW9ucyxcbiAgICAgICAgLi4udGhpcy50b29sYmFyQnV0dG9uT3ZlcnJpZGVzXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50b29sYmFyQnV0dG9ucy5zZXR1cCh7XG4gICAgICAgIC4uLmRlZmF1bHRVbnN1cHBvcnRlZE9wdGlvbnMsXG4gICAgICAgIC4uLnRoaXMudG9vbGJhckJ1dHRvbk92ZXJyaWRlc1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25Mb2FkRXhjZXB0aW9uKGV4Y2VwdGlvbjogVmlld2VyRXhjZXB0aW9uKSB7XG4gICAgdGhpcy52aWV3ZXJFeGNlcHRpb24uZW1pdChleGNlcHRpb24pO1xuICAgIGlmICghdGhpcy5pc1N1cHBvcnRlZCgpKSB7XG4gICAgICB0aGlzLnR5cGVFeGNlcHRpb24gPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50eXBlRXhjZXB0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMuY29udGVudFR5cGUgPSBudWxsO1xuICAgICAgdGhpcy5zZXRUb29sYmFyQnV0dG9ucygpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ29tbWVudENoYW5nZShjaGFuZ2VzOiBib29sZWFuKSB7XG4gICAgdGhpcy51bnNhdmVkQ2hhbmdlcy5lbWl0KGNoYW5nZXMpO1xuICB9XG5cbiAgb25Eb2N1bWVudFRpdGxlQ2hhbmdlKHRpdGxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRvY3VtZW50VGl0bGUgPSB0aXRsZTtcbiAgfVxuXG4gIC8vIElmIHNlY3VyZSBtb2RlIGlzIGVuYWJsZWQgKHdoaWNoIGFkZHMgXCJkb2N1bWVudHN2MlwiIHRvIHRoZSBkb2N1bWVudElkKSwgZ2V0IHJpZCBvZiBpdFxuICBwcml2YXRlIGV4dHJhY3RETVN0b3JlRG9jSWQodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHVybCA9IHVybC5pbmNsdWRlcygnL2RvY3VtZW50cy8nKSA/IHVybC5zcGxpdCgnL2RvY3VtZW50cy8nKVsxXSA6IHVybDtcbiAgICB1cmwgPSB1cmwuaW5jbHVkZXMoJy9kb2N1bWVudHN2Mi8nKSA/IHVybC5zcGxpdCgnL2RvY3VtZW50c3YyLycpWzFdIDogdXJsO1xuICAgIHJldHVybiB1cmwucmVwbGFjZSgnL2JpbmFyeScsICcnKTtcbiAgfVxuXG4gIGRldGVjdE9zKCkge1xuICAgIHRoaXMuaGFzU2Nyb2xsQmFyID0gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignV2luJykgIT09IC0xO1xuICB9XG59XG4iXX0=
@@ -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,13 +11,16 @@ 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
  var ImageViewerComponent = /** @class */ (function () {
15
- function ImageViewerComponent(store, printService, viewerUtilService, toolbarEvents, toolbarButtons) {
17
+ function ImageViewerComponent(store, printService, viewerUtilService, toolbarEvents, toolbarButtons, viewerEvents) {
16
18
  this.store = store;
17
19
  this.printService = printService;
18
20
  this.viewerUtilService = viewerUtilService;
19
21
  this.toolbarEvents = toolbarEvents;
20
22
  this.toolbarButtons = toolbarButtons;
23
+ this.viewerEvents = viewerEvents;
21
24
  this.mediaLoadStatus = new EventEmitter();
22
25
  this.imageViewerException = new EventEmitter();
23
26
  this.rotation = 0;
@@ -61,6 +64,26 @@ var ImageViewerComponent = /** @class */ (function () {
61
64
  */
62
65
  function (toggle) { return _this.showCommentsPanel = toggle; })));
63
66
  };
67
+ /**
68
+ * @param {?} event
69
+ * @return {?}
70
+ */
71
+ ImageViewerComponent.prototype.onImageViewerClick = /**
72
+ * @param {?} event
73
+ * @return {?}
74
+ */
75
+ function (event) {
76
+ /** @type {?} */
77
+ var 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
+ };
64
87
  /**
65
88
  * @return {?}
66
89
  */
@@ -305,7 +328,7 @@ var ImageViewerComponent = /** @class */ (function () {
305
328
  ImageViewerComponent.decorators = [
306
329
  { type: Component, args: [{
307
330
  selector: 'mv-image-viewer',
308
- 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 mvCreateTextHighlight 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"
331
+ 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"
309
332
  }] }
310
333
  ];
311
334
  /** @nocollapse */
@@ -314,7 +337,8 @@ var ImageViewerComponent = /** @class */ (function () {
314
337
  { type: PrintService },
315
338
  { type: ViewerUtilService },
316
339
  { type: ToolbarEventService },
317
- { type: ToolbarButtonVisibilityService }
340
+ { type: ToolbarButtonVisibilityService },
341
+ { type: ViewerEventService }
318
342
  ]; };
319
343
  ImageViewerComponent.propDecorators = {
320
344
  url: [{ type: Input }],
@@ -324,7 +348,8 @@ var ImageViewerComponent = /** @class */ (function () {
324
348
  height: [{ type: Input }],
325
349
  mediaLoadStatus: [{ type: Output }],
326
350
  imageViewerException: [{ type: Output }],
327
- img: [{ type: ViewChild, args: ['img',] }]
351
+ img: [{ type: ViewChild, args: ['img',] }],
352
+ onImageViewerClick: [{ type: HostListener, args: ['mousedown', ['$event'],] }]
328
353
  };
329
354
  return ImageViewerComponent;
330
355
  }());
@@ -398,5 +423,10 @@ if (false) {
398
423
  ImageViewerComponent.prototype.toolbarEvents;
399
424
  /** @type {?} */
400
425
  ImageViewerComponent.prototype.toolbarButtons;
426
+ /**
427
+ * @type {?}
428
+ * @private
429
+ */
430
+ ImageViewerComponent.prototype.viewerEvents;
401
431
  }
402
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Utdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9tZWRpYS12aWV3ZXIvIiwic291cmNlcyI6WyJsaWIvdmlld2Vycy9pbWFnZS12aWV3ZXIvaW1hZ2Utdmlld2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBDLE9BQU8sS0FBSyxZQUFZLE1BQU0sc0NBQXNDLENBQUM7QUFFckU7SUFrQ0UsOEJBQ1UsS0FBMEMsRUFDakMsWUFBMEIsRUFDMUIsaUJBQW9DLEVBQ3JDLGFBQWtDLEVBQ2xDLGNBQThDO1FBSnRELFVBQUssR0FBTCxLQUFLLENBQXFDO1FBQ2pDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDckMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQztRQXpCdEQsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUNuRCx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUtyRSxhQUFRLEdBQUcsQ0FBQyxDQUFD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Q0FBd0I7O0lBQ3hCLDJDQUFvQjs7SUFDcEIsMENBQW1COztJQUNuQix5Q0FBa0I7O0lBQ2xCLHdDQUFpQjs7Ozs7SUFHZixxQ0FBa0Q7Ozs7O0lBQ2xELDRDQUEyQzs7Ozs7SUFDM0MsaURBQXFEOztJQUNyRCw2Q0FBa0Q7O0lBQ2xELDhDQUE4RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcmludFNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcmludC5zZXJ2aWNlJztcbmltcG9ydCB7IEFubm90YXRpb25TZXQgfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLXNldC5tb2RlbCc7XG5pbXBvcnQgeyBUb29sYmFyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9vbGJhci90b29sYmFyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVzcG9uc2VUeXBlLCBWaWV3ZXJFeGNlcHRpb24gfSBmcm9tICcuLi92aWV3ZXItZXhjZXB0aW9uLm1vZGVsJztcbmltcG9ydCB7IFZpZXdlclV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vdmlld2VyLXV0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBUb29sYmFyQnV0dG9uVmlzaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi90b29sYmFyL3Rvb2xiYXItYnV0dG9uLXZpc2liaWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCAqIGFzIGZyb21TdG9yZSBmcm9tICcuLi8uLi9zdG9yZS9yZWR1Y2Vycy9yZWR1Y2Vycyc7XG5pbXBvcnQgKiBhcyBmcm9tRG9jdW1lbnQgZnJvbSAnLi4vLi4vc3RvcmUvYWN0aW9ucy9kb2N1bWVudC5hY3Rpb25zJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtdi1pbWFnZS12aWV3ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS12aWV3ZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgdXJsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRvd25sb2FkRmlsZU5hbWU6IHN0cmluZztcblxuICBASW5wdXQoKSBlbmFibGVBbm5vdGF0aW9uczogYm9vbGVhbjtcbiAgQElucHV0KCkgYW5ub3RhdGlvblNldDogQW5ub3RhdGlvblNldCB8IG51bGw7XG5cbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIG1lZGlhTG9hZFN0YXR1cyA9IG5ldyBFdmVudEVtaXR0ZXI8UmVzcG9uc2VUeXBlPigpO1xuICBAT3V0cHV0KCkgaW1hZ2VWaWV3ZXJFeGNlcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPFZpZXdlckV4Y2VwdGlvbj4oKTtcblxuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcblxuICBAVmlld0NoaWxkKCdpbWcnKSBpbWc6IEVsZW1lbnRSZWY7XG4gIHJvdGF0aW9uID0gMDtcbiAgem9vbSA9IDE7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBwcml2YXRlIHZpZXdlckV4Y2VwdGlvbjogVmlld2VyRXhjZXB0aW9uO1xuICBwcml2YXRlIHJlc3BvbnNlOiBTdWJzY3JpcHRpb247XG5cbiAgc2hvd0NvbW1lbnRzUGFuZWw6IGJvb2xlYW47XG4gIGVuYWJsZUdyYWJORHJhZyA9IGZhbHNlO1xuICBpbWFnZUhlaWdodDogbnVtYmVyO1xuICBpbWFnZVdpZHRoOiBudW1iZXI7XG4gIGltYWdlTGVmdDogbnVtYmVyO1xuICBpbWFnZVRvcDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGZyb21TdG9yZS5Bbm5vdGF0aW9uU2V0U3RhdGU+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJpbnRTZXJ2aWNlOiBQcmludFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3ZXJVdGlsU2VydmljZTogVmlld2VyVXRpbFNlcnZpY2UsXG4gICAgcHVibGljIHJlYWRvbmx5IHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICAgcHVibGljIHJlYWRvbmx5IHRvb2xiYXJCdXR0b25zOiBUb29sYmFyQnV0dG9uVmlzaWJpbGl0eVNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5yb3RhdGVTdWJqZWN0LnN1YnNjcmliZShyb3RhdGlvbiA9PiB0aGlzLnJvdGF0ZUltYWdlKHJvdGF0aW9uKSksXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuem9vbVN1YmplY3Quc3Vic2NyaWJlKHpvb20gPT4gdGhpcy5zZXRab29tKHpvb20pKSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zdGVwWm9vbVN1YmplY3Quc3Vic2NyaWJlKHpvb20gPT4gdGhpcy5zdGVwWm9vbSh6b29tKSksXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMucHJpbnRTdWJqZWN0LnN1YnNjcmliZSgoKSA9PiB0aGlzLnByaW50U2VydmljZS5wcmludERvY3VtZW50TmF0aXZlbHkodGhpcy51cmwpKSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5kb3dubG9hZFN1YmplY3Quc3Vic2NyaWJlKCgpID0+IHRoaXMuZG93bmxvYWQoKSksXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuZ3JhYk5EcmFnLnN1YnNjcmliZShncmFiTkRyYWcgPT4gdGhpcy5lbmFibGVHcmFiTkRyYWcgPSBncmFiTkRyYWcpLFxuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLmNvbW1lbnRzUGFuZWxWaXNpYmxlLnN1YnNjcmliZSh0b2dnbGUgPT4gdGhpcy5zaG93Q29tbWVudHNQYW5lbCA9IHRvZ2dsZSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZpbHRlcihzdWJzY3JpcHRpb24gPT4gIXN1YnNjcmlwdGlvbi5jbG9zZWQpXG4gICAgICAuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgIGlmICh0aGlzLnJlc3BvbnNlKSB7XG4gICAgICB0aGlzLnJlc3BvbnNlLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLnVybCkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnJlc2V0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByb3RhdGVJbWFnZShyb3RhdGlvbjogbnVtYmVyKSB7XG4gICAgdGhpcy5yb3RhdGlvbiA9ICh0aGlzLnJvdGF0aW9uICsgcm90YXRpb24pICUgMzYwO1xuICAgIHRoaXMuaW5pdEFubm9QYWdlKHRoaXMuaW1nLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXRab29tKHpvb21GYWN0b3I6IG51bWJlcikge1xuICAgIGlmICghaXNOYU4oem9vbUZhY3RvcikpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2V0Wm9vbVZhbHVlKHRoaXMuY2FsY3VsYXRlWm9vbVZhbHVlKHpvb21GYWN0b3IpKTtcbiAgICAgIHRoaXMuaW1nLm5hdGl2ZUVsZW1lbnQud2lkdGggPSB0aGlzLmltZy5uYXRpdmVFbGVtZW50Lm5hdHVyYWxXaWR0aCAqIHRoaXMuem9vbTtcbiAgICAgIHRoaXMuaW5pdEFubm9QYWdlKHRoaXMuaW1nLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc3RlcFpvb20oem9vbUZhY3RvcjogbnVtYmVyKSB7XG4gICAgaWYgKCFpc05hTih6b29tRmFjdG9yKSkge1xuICAgICAgYXdhaXQgdGhpcy5zZXRab29tVmFsdWUodGhpcy5jYWxjdWxhdGVab29tVmFsdWUodGhpcy56b29tLCB6b29tRmFjdG9yKSk7XG4gICAgICB0aGlzLmltZy5uYXRpdmVFbGVtZW50LndpZHRoID0gdGhpcy5pbWcubmF0aXZlRWxlbWVudC5uYXR1cmFsV2lkdGggKiB0aGlzLnpvb207XG4gICAgICB0aGlzLmluaXRBbm5vUGFnZSh0aGlzLmltZy5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRvd25sb2FkKCkge1xuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcbiAgICBhLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTogbm9uZScpO1xuICAgIGEuaHJlZiA9IHRoaXMudXJsO1xuICAgIGEuZG93bmxvYWQgPSB0aGlzLmRvd25sb2FkRmlsZU5hbWU7XG4gICAgYS5jbGljaygpO1xuICAgIGEucmVtb3ZlKCk7XG4gIH1cblxuICAvLyB0aGUgcmV0dXJuZWQgcHJvbWlzZSBpcyBhIHdvcmstYXJvdW5kXG4gIHNldFpvb21WYWx1ZSh6b29tVmFsdWUpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMuem9vbSA9IHpvb21WYWx1ZTtcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy56b29tVmFsdWVTdWJqZWN0Lm5leHQoem9vbVZhbHVlKTtcbiAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBjYWxjdWxhdGVab29tVmFsdWUoem9vbVZhbHVlLCBpbmNyZW1lbnQgPSAwKSB7XG4gICAgY29uc3QgbmV3Wm9vbVZhbHVlID0gem9vbVZhbHVlICsgaW5jcmVtZW50O1xuICAgIGlmIChuZXdab29tVmFsdWUgPiA1KSB7IHJldHVybiA1OyB9XG4gICAgaWYgKG5ld1pvb21WYWx1ZSA8IDAuMSkgeyByZXR1cm4gMC4xOyB9XG4gICAgcmV0dXJuICtuZXdab29tVmFsdWUudG9GaXhlZCgyKTtcbiAgfVxuXG4gIG9uTG9hZEVycm9yKHVybCkge1xuICAgIHRoaXMucmVzcG9uc2UgPSB0aGlzLnZpZXdlclV0aWxTZXJ2aWNlLnZhbGlkYXRlRmlsZSh1cmwpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgbmV4dCA9PiBuZXh0LFxuICAgICAgZXJyb3IgPT4ge1xuICAgICAgICB0aGlzLnZpZXdlckV4Y2VwdGlvbiA9IG5ldyBWaWV3ZXJFeGNlcHRpb24oZXJyb3IubmFtZSxcbiAgICAgICAgICB7aHR0cFJlc3BvbnNlQ29kZTogZXJyb3Iuc3RhdHVzLCBtZXNzYWdlOiBlcnJvci5tZXNzYWdlfSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gYENvdWxkIG5vdCBsb2FkIHRoZSBpbWFnZSBcIiR7dGhpcy51cmx9XCJgO1xuICAgIHRoaXMubWVkaWFMb2FkU3RhdHVzLmVtaXQoUmVzcG9uc2VUeXBlLkZBSUxVUkUpO1xuICAgIHRoaXMuaW1hZ2VWaWV3ZXJFeGNlcHRpb24uZW1pdCh0aGlzLnZpZXdlckV4Y2VwdGlvbik7XG4gIH1cblxuICBvbkxvYWQoaW1nOiBhbnkpIHtcbiAgICB0aGlzLm1lZGlhTG9hZFN0YXR1cy5lbWl0KFJlc3BvbnNlVHlwZS5TVUNDRVNTKTtcbiAgICB0aGlzLmluaXRBbm5vUGFnZShpbWcpO1xuICB9XG5cbiAgaW5pdEFubm9QYWdlKGltZzogYW55KSB7XG4gICAgdGhpcy5pbWFnZUhlaWdodCA9IHRoaXMucm90YXRpb24gJSAxODAgIT09IDAgPyBpbWcub2Zmc2V0V2lkdGggOiBpbWcub2Zmc2V0SGVpZ2h0O1xuICAgIHRoaXMuaW1hZ2VXaWR0aCA9IHRoaXMucm90YXRpb24gJSAxODAgIT09IDAgPyBpbWcub2Zmc2V0SGVpZ2h0IDogaW1nLm9mZnNldFdpZHRoO1xuICAgIHRoaXMuaW1hZ2VMZWZ0ID0gdGhpcy5yb3RhdGlvbiAlIDE4MCAhPT0gMCA/IGltZy5vZmZzZXRUb3AgOiBpbWcub2Zmc2V0TGVmdDtcbiAgICB0aGlzLmltYWdlVG9wID0gdGhpcy5yb3RhdGlvbiAlIDE4MCAhPT0gMCA/IGltZy5vZmZzZXRMZWZ0IDogaW1nLm9mZnNldFRvcDtcbiAgICBjb25zdCBwYXlsb2FkOiBhbnkgPSBbe1xuICAgICAgZGl2OiB7XG4gICAgICAgIHNjcm9sbEhlaWdodDogdGhpcy5pbWFnZUhlaWdodCxcbiAgICAgICAgc2Nyb2xsV2lkdGg6IHRoaXMuaW1hZ2VXaWR0aCxcbiAgICAgICAgb2Zmc2V0TGVmdDogdGhpcy5pbWFnZUxlZnQsXG4gICAgICB9LFxuICAgICAgcGFnZU51bWJlcjogMSxcbiAgICAgIHNjYWxlOiB0aGlzLnpvb20sXG4gICAgICByb3RhdGlvbjogdGhpcy5yb3RhdGlvbixcbiAgICAgIGlkOiAxXG4gICAgfV07XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tRG9jdW1lbnQuQWRkUGFnZXMocGF5bG9hZCkpO1xuICB9XG5cbiAgdG9nZ2xlQ29tbWVudHNTdW1tYXJ5KCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy50b2dnbGVDb21tZW50c1N1bW1hcnkoIXRoaXMudG9vbGJhckV2ZW50cy5zaG93Q29tbWVudFN1bW1hcnkuZ2V0VmFsdWUoKSk7XG4gIH1cbn1cbiJdfQ==
432
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Utdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9tZWRpYS12aWV3ZXIvIiwic291cmNlcyI6WyJsaWIvdmlld2Vycy9pbWFnZS12aWV3ZXIvaW1hZ2Utdmlld2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDakcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwQyxPQUFPLEtBQUssWUFBWSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JFLE9BQU8sS0FBSyxxQkFBcUIsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RDtJQWtDRSw4QkFDVSxLQUEwQyxFQUNqQyxZQUEwQixFQUMxQixpQkFBb0MsRUFDckMsYUFBa0MsRUFDbEMsY0FBOEMsRUFDdEQsWUFBZ0M7UUFMaEMsVUFBSyxHQUFMLEtBQUssQ0FBcUM7UUFDakMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNyQyxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFDbEMsbUJBQWMsR0FBZCxjQUFjLENB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QUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0Isd3NEQUE0QztpQkFDN0M7Ozs7Z0JBVFEsS0FBSztnQkFOTCxZQUFZO2dCQUlaLGlCQUFpQjtnQkFGakIsbUJBQW1CO2dCQUduQiw4QkFBOEI7Z0JBSzlCLGtCQUFrQjs7O3NCQVF4QixLQUFLO21DQUNMLEtBQUs7b0NBRUwsS0FBSztnQ0FDTCxLQUFLO3lCQUVMLEtBQUs7a0NBRUwsTUFBTTt1Q0FDTixNQUFNO3NCQUlOLFNBQVMsU0FBQyxLQUFLO3FDQW9DZixZQUFZLFNBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDOztJQXVIdkMsMkJBQUM7Q0FBQSxBQTlLRCxJQThLQztTQTFLWSxvQkFBb0I7OztJQUUvQixtQ0FBcUI7O0lBQ3JCLGdEQUFrQzs7SUFFbEMsaURBQW9DOztJQUNwQyw2Q0FBNkM7O0lBRTdDLHNDQUF3Qjs7SUFFeEIsK0NBQTZEOztJQUM3RCxvREFBcUU7O0lBRXJFLDRDQUFxQjs7SUFFckIsbUNBQWtDOztJQUNsQyx3Q0FBYTs7SUFDYixvQ0FBUzs7Ozs7SUFFVCw2Q0FBMkM7Ozs7O0lBQzNDLCtDQUF5Qzs7Ozs7SUFDekMsd0NBQStCOztJQUUvQixpREFBMkI7O0lBQzNCLCtDQUF3Qjs7SUFDeEIsMkNBQW9COztJQUNwQiwwQ0FBbUI7O0lBQ25CLHlDQUFrQjs7SUFDbEIsd0NBQWlCOzs7OztJQUdmLHFDQUFrRDs7Ozs7SUFDbEQsNENBQTJDOzs7OztJQUMzQyxpREFBcUQ7O0lBQ3JELDZDQUFrRDs7SUFDbEQsOENBQThEOzs7OztJQUM5RCw0Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcmludFNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcmludC5zZXJ2aWNlJztcbmltcG9ydCB7IEFubm90YXRpb25TZXQgfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLXNldC5tb2RlbCc7XG5pbXBvcnQgeyBUb29sYmFyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9vbGJhci90b29sYmFyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVzcG9uc2VUeXBlLCBWaWV3ZXJFeGNlcHRpb24gfSBmcm9tICcuLi92aWV3ZXItZXhjZXB0aW9uLm1vZGVsJztcbmltcG9ydCB7IFZpZXdlclV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vdmlld2VyLXV0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBUb29sYmFyQnV0dG9uVmlzaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi90b29sYmFyL3Rvb2xiYXItYnV0dG9uLXZpc2liaWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCAqIGFzIGZyb21TdG9yZSBmcm9tICcuLi8uLi9zdG9yZS9yZWR1Y2Vycy9yZWR1Y2Vycyc7XG5pbXBvcnQgKiBhcyBmcm9tRG9jdW1lbnQgZnJvbSAnLi4vLi4vc3RvcmUvYWN0aW9ucy9kb2N1bWVudC5hY3Rpb25zJztcbmltcG9ydCAqIGFzIGZyb21Bbm5vdGF0aW9uQWN0aW9ucyBmcm9tICcuLi8uLi9zdG9yZS9hY3Rpb25zL2Fubm90YXRpb24uYWN0aW9ucyc7XG5pbXBvcnQgeyBWaWV3ZXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi92aWV3ZXItZXZlbnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ212LWltYWdlLXZpZXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS12aWV3ZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgdXJsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRvd25sb2FkRmlsZU5hbWU6IHN0cmluZztcblxuICBASW5wdXQoKSBlbmFibGVBbm5vdGF0aW9uczogYm9vbGVhbjtcbiAgQElucHV0KCkgYW5ub3RhdGlvblNldDogQW5ub3RhdGlvblNldCB8IG51bGw7XG5cbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIG1lZGlhTG9hZFN0YXR1cyA9IG5ldyBFdmVudEVtaXR0ZXI8UmVzcG9uc2VUeXBlPigpO1xuICBAT3V0cHV0KCkgaW1hZ2VWaWV3ZXJFeGNlcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPFZpZXdlckV4Y2VwdGlvbj4oKTtcblxuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcblxuICBAVmlld0NoaWxkKCdpbWcnKSBpbWc6IEVsZW1lbnRSZWY7XG4gIHJvdGF0aW9uID0gMDtcbiAgem9vbSA9IDE7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBwcml2YXRlIHZpZXdlckV4Y2VwdGlvbjogVmlld2VyRXhjZXB0aW9uO1xuICBwcml2YXRlIHJlc3BvbnNlOiBTdWJzY3JpcHRpb247XG5cbiAgc2hvd0NvbW1lbnRzUGFuZWw6IGJvb2xlYW47XG4gIGVuYWJsZUdyYWJORHJhZyA9IGZhbHNlO1xuICBpbWFnZUhlaWdodDogbnVtYmVyO1xuICBpbWFnZVdpZHRoOiBudW1iZXI7XG4gIGltYWdlTGVmdDogbnVtYmVyO1xuICBpbWFnZVRvcDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGZyb21TdG9yZS5Bbm5vdGF0aW9uU2V0U3RhdGU+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJpbnRTZXJ2aWNlOiBQcmludFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3ZXJVdGlsU2VydmljZTogVmlld2VyVXRpbFNlcnZpY2UsXG4gICAgcHVibGljIHJlYWRvbmx5IHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICAgcHVibGljIHJlYWRvbmx5IHRvb2xiYXJCdXR0b25zOiBUb29sYmFyQnV0dG9uVmlzaWJpbGl0eVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB2aWV3ZXJFdmVudHM6IFZpZXdlckV2ZW50U2VydmljZSxcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5yb3RhdGVTdWJqZWN0LnN1YnNjcmliZShyb3RhdGlvbiA9PiB0aGlzLnJvdGF0ZUltYWdlKHJvdGF0aW9uKSksXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuem9vbVN1YmplY3Quc3Vic2NyaWJlKHpvb20gPT4gdGhpcy5zZXRab29tKHpvb20pKSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zdGVwWm9vbVN1YmplY3Quc3Vic2NyaWJlKHpvb20gPT4gdGhpcy5zdGVwWm9vbSh6b29tKSksXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMucHJpbnRTdWJqZWN0LnN1YnNjcmliZSgoKSA9PiB0aGlzLnByaW50U2VydmljZS5wcmludERvY3VtZW50TmF0aXZlbHkodGhpcy51cmwpKSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5kb3dubG9hZFN1YmplY3Quc3Vic2NyaWJlKCgpID0+IHRoaXMuZG93bmxvYWQoKSksXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuZ3JhYk5EcmFnLnN1YnNjcmliZShncmFiTkRyYWcgPT4gdGhpcy5lbmFibGVHcmFiTkRyYWcgPSBncmFiTkRyYWcpLFxuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLmNvbW1lbnRzUGFuZWxWaXNpYmxlLnN1YnNjcmliZSh0b2dnbGUgPT4gdGhpcy5zaG93Q29tbWVudHNQYW5lbCA9IHRvZ2dsZSlcbiAgICApO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgb25JbWFnZVZpZXdlckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgY29uc3QgY2xhc3NObWUgPSAoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLmNsYXNzTmFtZTtcbiAgICBpZiAoY2xhc3NObWUuc3RhcnRzV2l0aCgncGFnZUNvbnRhaW5lcicpKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBuZXcgZnJvbUFubm90YXRpb25BY3Rpb25zLlNlbGVjdGVkQW5ub3RhdGlvbih7XG4gICAgICAgICAgYW5ub3RhdGlvbklkOiAnJyxcbiAgICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgICAgZWRpdGFibGU6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMudmlld2VyRXZlbnRzLmNsZWFyQ3R4VG9vbGJhcigpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5maWx0ZXIoc3Vic2NyaXB0aW9uID0+ICFzdWJzY3JpcHRpb24uY2xvc2VkKVxuICAgICAgLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgICBpZiAodGhpcy5yZXNwb25zZSkge1xuICAgICAgdGhpcy5yZXNwb25zZS51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlcy51cmwpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5yZXNldCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcm90YXRlSW1hZ2Uocm90YXRpb246IG51bWJlcikge1xuICAgIHRoaXMucm90YXRpb24gPSAodGhpcy5yb3RhdGlvbiArIHJvdGF0aW9uKSAlIDM2MDtcbiAgICB0aGlzLmluaXRBbm5vUGFnZSh0aGlzLmltZy5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2V0Wm9vbSh6b29tRmFjdG9yOiBudW1iZXIpIHtcbiAgICBpZiAoIWlzTmFOKHpvb21GYWN0b3IpKSB7XG4gICAgICBhd2FpdCB0aGlzLnNldFpvb21WYWx1ZSh0aGlzLmNhbGN1bGF0ZVpvb21WYWx1ZSh6b29tRmFjdG9yKSk7XG4gICAgICB0aGlzLmltZy5uYXRpdmVFbGVtZW50LndpZHRoID0gdGhpcy5pbWcubmF0aXZlRWxlbWVudC5uYXR1cmFsV2lkdGggKiB0aGlzLnpvb207XG4gICAgICB0aGlzLmluaXRBbm5vUGFnZSh0aGlzLmltZy5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHN0ZXBab29tKHpvb21GYWN0b3I6IG51bWJlcikge1xuICAgIGlmICghaXNOYU4oem9vbUZhY3RvcikpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2V0Wm9vbVZhbHVlKHRoaXMuY2FsY3VsYXRlWm9vbVZhbHVlKHRoaXMuem9vbSwgem9vbUZhY3RvcikpO1xuICAgICAgdGhpcy5pbWcubmF0aXZlRWxlbWVudC53aWR0aCA9IHRoaXMuaW1nLm5hdGl2ZUVsZW1lbnQubmF0dXJhbFdpZHRoICogdGhpcy56b29tO1xuICAgICAgdGhpcy5pbml0QW5ub1BhZ2UodGhpcy5pbWcubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkb3dubG9hZCgpIHtcbiAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gICAgYS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2Rpc3BsYXk6IG5vbmUnKTtcbiAgICBhLmhyZWYgPSB0aGlzLnVybDtcbiAgICBhLmRvd25sb2FkID0gdGhpcy5kb3dubG9hZEZpbGVOYW1lO1xuICAgIGEuY2xpY2soKTtcbiAgICBhLnJlbW92ZSgpO1xuICB9XG5cbiAgLy8gdGhlIHJldHVybmVkIHByb21pc2UgaXMgYSB3b3JrLWFyb3VuZFxuICBzZXRab29tVmFsdWUoem9vbVZhbHVlKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICB0aGlzLnpvb20gPSB6b29tVmFsdWU7XG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuem9vbVZhbHVlU3ViamVjdC5uZXh0KHpvb21WYWx1ZSk7XG4gICAgICByZXNvbHZlKHRydWUpO1xuICAgIH0pO1xuICB9XG5cbiAgY2FsY3VsYXRlWm9vbVZhbHVlKHpvb21WYWx1ZSwgaW5jcmVtZW50ID0gMCkge1xuICAgIGNvbnN0IG5ld1pvb21WYWx1ZSA9IHpvb21WYWx1ZSArIGluY3JlbWVudDtcbiAgICBpZiAobmV3Wm9vbVZhbHVlID4gNSkgeyByZXR1cm4gNTsgfVxuICAgIGlmIChuZXdab29tVmFsdWUgPCAwLjEpIHsgcmV0dXJuIDAuMTsgfVxuICAgIHJldHVybiArbmV3Wm9vbVZhbHVlLnRvRml4ZWQoMik7XG4gIH1cblxuICBvbkxvYWRFcnJvcih1cmwpIHtcbiAgICB0aGlzLnJlc3BvbnNlID0gdGhpcy52aWV3ZXJVdGlsU2VydmljZS52YWxpZGF0ZUZpbGUodXJsKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgbmV4dCA9PiBuZXh0LFxuICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy52aWV3ZXJFeGNlcHRpb24gPSBuZXcgVmlld2VyRXhjZXB0aW9uKGVycm9yLm5hbWUsXG4gICAgICAgICAgICB7IGh0dHBSZXNwb25zZUNvZGU6IGVycm9yLnN0YXR1cywgbWVzc2FnZTogZXJyb3IubWVzc2FnZSB9KTtcbiAgICAgICAgfSk7XG5cbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGBDb3VsZCBub3QgbG9hZCB0aGUgaW1hZ2UgXCIke3RoaXMudXJsfVwiYDtcbiAgICB0aGlzLm1lZGlhTG9hZFN0YXR1cy5lbWl0KFJlc3BvbnNlVHlwZS5GQUlMVVJFKTtcbiAgICB0aGlzLmltYWdlVmlld2VyRXhjZXB0aW9uLmVtaXQodGhpcy52aWV3ZXJFeGNlcHRpb24pO1xuICB9XG5cbiAgb25Mb2FkKGltZzogYW55KSB7XG4gICAgdGhpcy5tZWRpYUxvYWRTdGF0dXMuZW1pdChSZXNwb25zZVR5cGUuU1VDQ0VTUyk7XG4gICAgdGhpcy5pbml0QW5ub1BhZ2UoaW1nKTtcbiAgfVxuXG4gIGluaXRBbm5vUGFnZShpbWc6IGFueSkge1xuICAgIHRoaXMuaW1hZ2VIZWlnaHQgPSB0aGlzLnJvdGF0aW9uICUgMTgwICE9PSAwID8gaW1nLm9mZnNldFdpZHRoIDogaW1nLm9mZnNldEhlaWdodDtcbiAgICB0aGlzLmltYWdlV2lkdGggPSB0aGlzLnJvdGF0aW9uICUgMTgwICE9PSAwID8gaW1nLm9mZnNldEhlaWdodCA6IGltZy5vZmZzZXRXaWR0aDtcbiAgICB0aGlzLmltYWdlTGVmdCA9IHRoaXMucm90YXRpb24gJSAxODAgIT09IDAgPyBpbWcub2Zmc2V0VG9wIDogaW1nLm9mZnNldExlZnQ7XG4gICAgdGhpcy5pbWFnZVRvcCA9IHRoaXMucm90YXRpb24gJSAxODAgIT09IDAgPyBpbWcub2Zmc2V0TGVmdCA6IGltZy5vZmZzZXRUb3A7XG4gICAgY29uc3QgcGF5bG9hZDogYW55ID0gW3tcbiAgICAgIGRpdjoge1xuICAgICAgICBzY3JvbGxIZWlnaHQ6IHRoaXMuaW1hZ2VIZWlnaHQsXG4gICAgICAgIHNjcm9sbFdpZHRoOiB0aGlzLmltYWdlV2lkdGgsXG4gICAgICAgIG9mZnNldExlZnQ6IHRoaXMuaW1hZ2VMZWZ0LFxuICAgICAgfSxcbiAgICAgIHBhZ2VOdW1iZXI6IDEsXG4gICAgICBzY2FsZTogdGhpcy56b29tLFxuICAgICAgcm90YXRpb246IHRoaXMucm90YXRpb24sXG4gICAgICBpZDogMVxuICAgIH1dO1xuXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbURvY3VtZW50LkFkZFBhZ2VzKHBheWxvYWQpKTtcbiAgfVxuXG4gIHRvZ2dsZUNvbW1lbnRzU3VtbWFyeSgpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMudG9nZ2xlQ29tbWVudHNTdW1tYXJ5KCF0aGlzLnRvb2xiYXJFdmVudHMuc2hvd0NvbW1lbnRTdW1tYXJ5LmdldFZhbHVlKCkpO1xuICB9XG59XG4iXX0=