stream-chat-angular 2.12.2 → 2.13.1

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 (41) hide show
  1. package/assets/version.d.ts +1 -1
  2. package/bundles/stream-chat-angular.umd.js +355 -54
  3. package/bundles/stream-chat-angular.umd.js.map +1 -1
  4. package/esm2015/assets/version.js +2 -2
  5. package/esm2015/lib/attachment.service.js +29 -1
  6. package/esm2015/lib/channel-list/channel-list-toggle.service.js +20 -1
  7. package/esm2015/lib/channel.service.js +83 -2
  8. package/esm2015/lib/chat-client.service.js +25 -1
  9. package/esm2015/lib/message/message.component.js +5 -1
  10. package/esm2015/lib/message-actions-box/message-actions-box.component.js +1 -1
  11. package/esm2015/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.js +21 -9
  12. package/esm2015/lib/message-input/emoji-input.service.js +23 -0
  13. package/esm2015/lib/message-input/message-input-config.service.js +16 -1
  14. package/esm2015/lib/message-input/message-input.component.js +22 -13
  15. package/esm2015/lib/message-input/textarea/textarea.component.js +22 -6
  16. package/esm2015/lib/message-list/image-load.service.js +7 -1
  17. package/esm2015/lib/message-reactions/message-reactions.component.js +2 -2
  18. package/esm2015/lib/notification.service.js +19 -1
  19. package/esm2015/lib/stream-i18n.service.js +9 -1
  20. package/esm2015/lib/theme.service.js +37 -3
  21. package/esm2015/lib/transliteration.service.js +9 -1
  22. package/esm2015/public-api.js +2 -1
  23. package/fesm2015/stream-chat-angular.js +337 -39
  24. package/fesm2015/stream-chat-angular.js.map +1 -1
  25. package/lib/attachment.service.d.ts +34 -0
  26. package/lib/channel-list/channel-list-toggle.service.d.ts +22 -0
  27. package/lib/channel.service.d.ts +156 -0
  28. package/lib/chat-client.service.d.ts +39 -0
  29. package/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.d.ts +3 -1
  30. package/lib/message-input/emoji-input.service.d.ts +14 -0
  31. package/lib/message-input/message-input-config.service.d.ts +27 -1
  32. package/lib/message-input/message-input.component.d.ts +5 -2
  33. package/lib/message-input/textarea/textarea.component.d.ts +7 -3
  34. package/lib/message-list/image-load.service.d.ts +6 -0
  35. package/lib/notification.service.d.ts +21 -0
  36. package/lib/stream-i18n.service.d.ts +8 -0
  37. package/lib/theme.service.d.ts +23 -0
  38. package/lib/transliteration.service.d.ts +8 -0
  39. package/package.json +4 -3
  40. package/public-api.d.ts +1 -0
  41. package/src/assets/version.ts +1 -1
@@ -1,2 +1,2 @@
1
- export const version = '2.12.2';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2Fzc2V0cy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdmVyc2lvbiA9ICcyLjEyLjInO1xuIl19
1
+ export const version = '2.13.1';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2Fzc2V0cy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdmVyc2lvbiA9ICcyLjEzLjEnO1xuIl19
@@ -6,6 +6,9 @@ import { isImageAttachment } from './is-image-attachment';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "./channel.service";
8
8
  import * as i2 from "./notification.service";
9
+ /**
10
+ * The `AttachmentService` manages the uploads of a message input.
11
+ */
9
12
  export class AttachmentService {
10
13
  constructor(channelService, notificationService) {
11
14
  this.channelService = channelService;
@@ -16,9 +19,17 @@ export class AttachmentService {
16
19
  this.attachmentUploadInProgressCounterSubject.asObservable();
17
20
  this.attachmentUploads$ = this.attachmentUploadsSubject.asObservable();
18
21
  }
22
+ /**
23
+ * Resets the attachments uploads (for example after the message with the attachments sent successfully)
24
+ */
19
25
  resetAttachmentUploads() {
20
26
  this.attachmentUploadsSubject.next([]);
21
27
  }
28
+ /**
29
+ * Uploads the selected files, and creates preview for image files. The result is propagated throught the `attachmentUploads$` stream.
30
+ * @param fileList The files selected by the user
31
+ * @returns A promise with the result
32
+ */
22
33
  filesSelected(fileList) {
23
34
  return __awaiter(this, void 0, void 0, function* () {
24
35
  if (!fileList) {
@@ -54,6 +65,11 @@ export class AttachmentService {
54
65
  yield this.uploadAttachments(newUploads);
55
66
  });
56
67
  }
68
+ /**
69
+ * Retries to upload an attachment.
70
+ * @param file
71
+ * @returns A promise with the result
72
+ */
57
73
  retryAttachmentUpload(file) {
58
74
  return __awaiter(this, void 0, void 0, function* () {
59
75
  const attachmentUploads = this.attachmentUploadsSubject.getValue();
@@ -66,6 +82,10 @@ export class AttachmentService {
66
82
  yield this.uploadAttachments([upload]);
67
83
  });
68
84
  }
85
+ /**
86
+ * Deletes an attachment, the attachment can have any state (`error`, `uploading` or `success`).
87
+ * @param upload
88
+ */
69
89
  deleteAttachment(upload) {
70
90
  return __awaiter(this, void 0, void 0, function* () {
71
91
  const attachmentUploads = this.attachmentUploadsSubject.getValue();
@@ -84,6 +104,10 @@ export class AttachmentService {
84
104
  this.attachmentUploadsSubject.next([...attachmentUploads]);
85
105
  });
86
106
  }
107
+ /**
108
+ * Maps the current uploads to a format that can be sent along with the message to the Stream API.
109
+ * @returns the attachments
110
+ */
87
111
  mapToAttachments() {
88
112
  const attachmentUploads = this.attachmentUploadsSubject.getValue();
89
113
  return attachmentUploads
@@ -105,6 +129,10 @@ export class AttachmentService {
105
129
  return attachment;
106
130
  });
107
131
  }
132
+ /**
133
+ * Maps attachments received from the Stream API to uploads. This is useful when editing a message.
134
+ * @param attachments Attachemnts received with the message
135
+ */
108
136
  createFromAttachments(attachments) {
109
137
  const attachmentUploads = [];
110
138
  attachments.forEach((attachment) => {
@@ -187,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
187
215
  providedIn: 'root',
188
216
  }]
189
217
  }], ctorParameters: function () { return [{ type: i1.ChannelService }, { type: i2.NotificationService }]; } });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL2F0dGFjaG1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUduRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQU8xRCxNQUFNLE9BQU8saUJBQWlCO0lBUzVCLFlBQ1UsY0FBOEIsRUFDOUIsbUJBQXdDO1FBRHhDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBUjFDLDZDQUF3QyxHQUM5QyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUN6Qiw2QkFBd0IsR0FBRyxJQUFJLGVBQWUsQ0FDcEQsRUFBRSxDQUNILENBQUM7UUFNQSxJQUFJLENBQUMsa0NBQWtDO1lBQ3JDLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMvRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUssYUFBYSxDQUFDLFFBQXlCOztZQUMzQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNiLE9BQU87YUFDUjtZQUNELE1BQU0sVUFBVSxHQUFXLEVBQUUsQ0FBQztZQUM5QixNQUFNLFNBQVMsR0FBVyxFQUFFLENBQUM7WUFFN0Is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QkFDckIsQ0FBQyxDQUFDLGtDQUFrQzt3QkFDcEMsQ0FBQyxDQUFDLGlDQUFpQyxDQUN0QyxDQUFDO2lCQUNIO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsd0NBQXdDLENBQUMsSUFBSSxDQUNoRCxJQUFJLENBQUMsd0NBQXdDLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUM3RCxDQUFDO1lBQ0YsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQzdELENBQUM7S0FBQTs7OEdBdExVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzSW1hZ2VGaWxlIH0gZnJvbSAnLi9pcy1pbWFnZS1maWxlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXR0YWNobWVudCB9IGZyb20gJ3N0cmVhbS1jaGF0JztcbmltcG9ydCB7IENoYW5uZWxTZXJ2aWNlIH0gZnJvbSAnLi9jaGFubmVsLnNlcnZpY2UnO1xuaW1wb3J0IHsgaXNJbWFnZUF0dGFjaG1lbnQgfSBmcm9tICcuL2lzLWltYWdlLWF0dGFjaG1lbnQnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXR0YWNobWVudFVwbG9hZCB9IGZyb20gJy4vdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXR0YWNobWVudFNlcnZpY2Uge1xuICBhdHRhY2htZW50VXBsb2FkSW5Qcm9ncmVzc0NvdW50ZXIkOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gIGF0dGFjaG1lbnRVcGxvYWRzJDogT2JzZXJ2YWJsZTxBdHRhY2htZW50VXBsb2FkW10+O1xuICBwcml2YXRlIGF0dGFjaG1lbnRVcGxvYWRJblByb2dyZXNzQ291bnRlclN1YmplY3QgPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgcHJpdmF0ZSBhdHRhY2htZW50VXBsb2Fkc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF0dGFjaG1lbnRVcGxvYWRbXT4oXG4gICAgW11cbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5uZWxTZXJ2aWNlOiBDaGFubmVsU2VydmljZSxcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5hdHRhY2htZW50VXBsb2FkSW5Qcm9ncmVzc0NvdW50ZXIkID1cbiAgICAgIHRoaXMuYXR0YWNobWVudFVwbG9hZEluUHJvZ3Jlc3NDb3VudGVyU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLmF0dGFjaG1lbnRVcGxvYWRzJCA9IHRoaXMuYXR0YWNobWVudFVwbG9hZHNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcmVzZXRBdHRhY2htZW50VXBsb2FkcygpIHtcbiAgICB0aGlzLmF0dGFjaG1lbnRVcGxvYWRzU3ViamVjdC5uZXh0KFtdKTtcbiAgfVxuXG4gIGFzeW5jIGZpbGVzU2VsZWN0ZWQoZmlsZUxpc3Q6IEZpbGVMaXN0IHwgbnVsbCkge1xuICAgIGlmICghZmlsZUxpc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaW1hZ2VGaWxlczogRmlsZVtdID0gW107XG4gICAgY29uc3QgZGF0YUZpbGVzOiBGaWxlW10gPSBbXTtcblxuICAgIEFycmF5LmZyb20oZmlsZUxpc3QpLmZvckVhY2goKGZpbGUpID0+IHtcbiAgICAgIGlmIChpc0ltYWdlRmlsZShmaWxlKSkge1xuICAgICAgICBpbWFnZUZpbGVzLnB1c2goZmlsZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhRmlsZXMucHVzaChmaWxlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpbWFnZUZpbGVzLmZvckVhY2goKGYpID0+IHRoaXMuY3JlYXRlUHJldmlldyhmKSk7XG4gICAgY29uc3QgbmV3VXBsb2FkcyA9IFtcbiAgICAgIC4uLmltYWdlRmlsZXMubWFwKChmaWxlKSA9PiAoe1xuICAgICAgICBmaWxlLFxuICAgICAgICBzdGF0ZTogJ3VwbG9hZGluZycgYXMgJ3VwbG9hZGluZycsXG4gICAgICAgIHR5cGU6ICdpbWFnZScgYXMgJ2ltYWdlJyxcbiAgICAgIH0pKSxcbiAgICAgIC4uLmRhdGFGaWxlcy5tYXAoKGZpbGUpID0+ICh7XG4gICAgICAgIGZpbGUsXG4gICAgICAgIHN0YXRlOiAndXBsb2FkaW5nJyBhcyAndXBsb2FkaW5nJyxcbiAgICAgICAgdHlwZTogJ2ZpbGUnIGFzICdmaWxlJyxcbiAgICAgIH0pKSxcbiAgICBdO1xuICAgIHRoaXMuYXR0YWNobWVudFVwbG9hZHNTdWJqZWN0Lm5leHQoW1xuICAgICAgLi4udGhpcy5hdHRhY2htZW50VXBsb2Fkc1N1YmplY3QuZ2V0VmFsdWUoKSxcbiAgICAgIC4uLm5ld1VwbG9hZHMsXG4gICAgXSk7XG4gICAgYXdhaXQgdGhpcy51cGxvYWRBdHRhY2htZW50cyhuZXdVcGxvYWRzKTtcbiAgfVxuXG4gIGFzeW5jIHJldHJ5QXR0YWNobWVudFVwbG9hZChmaWxlOiBGaWxlKSB7XG4gICAgY29uc3QgYXR0YWNobWVudFVwbG9hZHMgPSB0aGlzLmF0dGFjaG1lbnRVcGxvYWRzU3ViamVjdC5nZXRWYWx1ZSgpO1xuICAgIGNvbnN0IHVwbG9hZCA9IGF0dGFjaG1lbnRVcGxvYWRzLmZpbmQoKHUpID0+IHUuZmlsZSA9PT0gZmlsZSk7XG4gICAgaWYgKCF1cGxvYWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdXBsb2FkLnN0YXRlID0gJ3VwbG9hZGluZyc7XG4gICAgdGhpcy5hdHRhY2htZW50VXBsb2Fkc1N1YmplY3QubmV4dChbLi4uYXR0YWNobWVudFVwbG9hZHNdKTtcbiAgICBhd2FpdCB0aGlzLnVwbG9hZEF0dGFjaG1lbnRzKFt1cGxvYWRdKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUF0dGFjaG1lbnQodXBsb2FkOiBBdHRhY2htZW50VXBsb2FkKSB7XG4gICAgY29uc3QgYXR0YWNobWVudFVwbG9hZHMgPSB0aGlzLmF0dGFjaG1lbnRVcGxvYWRzU3ViamVjdC5nZXRWYWx1ZSgpO1xuICAgIGlmICh1cGxvYWQuc3RhdGUgPT09ICdzdWNjZXNzJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5jaGFubmVsU2VydmljZS5kZWxldGVBdHRhY2htZW50KHVwbG9hZCk7XG4gICAgICAgIGF0dGFjaG1lbnRVcGxvYWRzLnNwbGljZShhdHRhY2htZW50VXBsb2Fkcy5pbmRleE9mKHVwbG9hZCksIDEpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmFkZFRlbXBvcmFyeU5vdGlmaWNhdGlvbihcbiAgICAgICAgICAnc3RyZWFtQ2hhdC5FcnJvciBkZWxldGluZyBhdHRhY2htZW50J1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBhdHRhY2htZW50VXBsb2Fkcy5zcGxpY2UoYXR0YWNobWVudFVwbG9hZHMuaW5kZXhPZih1cGxvYWQpLCAxKTtcbiAgICB9XG4gICAgdGhpcy5hdHRhY2htZW50VXBsb2Fkc1N1YmplY3QubmV4dChbLi4uYXR0YWNobWVudFVwbG9hZHNdKTtcbiAgfVxuXG4gIG1hcFRvQXR0YWNobWVudHMoKSB7XG4gICAgY29uc3QgYXR0YWNobWVudFVwbG9hZHMgPSB0aGlzLmF0dGFjaG1lbnRVcGxvYWRzU3ViamVjdC5nZXRWYWx1ZSgpO1xuICAgIHJldHVybiBhdHRhY2htZW50VXBsb2Fkc1xuICAgICAgLmZpbHRlcigocikgPT4gci5zdGF0ZSA9PT0gJ3N1Y2Nlc3MnKVxuICAgICAgLm1hcCgocikgPT4ge1xuICAgICAgICBjb25zdCBhdHRhY2htZW50OiBBdHRhY2htZW50ID0ge1xuICAgICAgICAgIHR5cGU6IHIudHlwZSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHIudHlwZSA9PT0gJ2ltYWdlJykge1xuICAgICAgICAgIGF0dGFjaG1lbnQuZmFsbGJhY2sgPSByLmZpbGU/Lm5hbWU7XG4gICAgICAgICAgYXR0YWNobWVudC5pbWFnZV91cmwgPSByLnVybDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhdHRhY2htZW50LmFzc2V0X3VybCA9IHIudXJsO1xuICAgICAgICAgIGF0dGFjaG1lbnQudGl0bGUgPSByLmZpbGU/Lm5hbWU7XG4gICAgICAgICAgYXR0YWNobWVudC5maWxlX3NpemUgPSByLmZpbGU/LnNpemU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXR0YWNobWVudDtcbiAgICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlRnJvbUF0dGFjaG1lbnRzKGF0dGFjaG1lbnRzOiBBdHRhY2htZW50W10pIHtcbiAgICBjb25zdCBhdHRhY2htZW50VXBsb2FkczogQXR0YWNobWVudFVwbG9hZFtdID0gW107XG4gICAgYXR0YWNobWVudHMuZm9yRWFjaCgoYXR0YWNobWVudCkgPT4ge1xuICAgICAgaWYgKGlzSW1hZ2VBdHRhY2htZW50KGF0dGFjaG1lbnQpKSB7XG4gICAgICAgIGF0dGFjaG1lbnRVcGxvYWRzLnB1c2goe1xuICAgICAgICAgIHVybDogKGF0dGFjaG1lbnQuaW1nX3VybCB8fFxuICAgICAgICAgICAgYXR0YWNobWVudC50aHVtYl91cmwgfHxcbiAgICAgICAgICAgIGF0dGFjaG1lbnQuaW1hZ2VfdXJsKSBhcyBzdHJpbmcsXG4gICAgICAgICAgc3RhdGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICB0eXBlOiAnaW1hZ2UnLFxuICAgICAgICAgIGZpbGU6IHtcbiAgICAgICAgICAgIG5hbWU6IGF0dGFjaG1lbnQuZmFsbGJhY2ssXG4gICAgICAgICAgfSBhcyBGaWxlLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoYXR0YWNobWVudC50eXBlID09PSAnZmlsZScpIHtcbiAgICAgICAgYXR0YWNobWVudFVwbG9hZHMucHVzaCh7XG4gICAgICAgICAgdXJsOiBhdHRhY2htZW50LmFzc2V0X3VybCxcbiAgICAgICAgICBzdGF0ZTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgIGZpbGU6IHtcbiAgICAgICAgICAgIG5hbWU6IGF0dGFjaG1lbnQudGl0bGUsXG4gICAgICAgICAgICBzaXplOiBhdHRhY2htZW50LmZpbGVfc2l6ZSxcbiAgICAgICAgICB9IGFzIEZpbGUsXG4gICAgICAgICAgdHlwZTogJ2ZpbGUnLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChhdHRhY2htZW50VXBsb2Fkcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmF0dGFjaG1lbnRVcGxvYWRzU3ViamVjdC5uZXh0KFtcbiAgICAgICAgLi4udGhpcy5hdHRhY2htZW50VXBsb2Fkc1N1YmplY3QuZ2V0VmFsdWUoKSxcbiAgICAgICAgLi4uYXR0YWNobWVudFVwbG9hZHMsXG4gICAgICBdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVByZXZpZXcoZmlsZTogRmlsZSkge1xuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgcmVhZGVyLm9ubG9hZCA9IChldmVudCkgPT4ge1xuICAgICAgY29uc3QgYXR0YWNobWVudFVwbG9hZHMgPSB0aGlzLmF0dGFjaG1lbnRVcGxvYWRzU3ViamVjdC5nZXRWYWx1ZSgpO1xuICAgICAgY29uc3QgdXBsb2FkID0gYXR0YWNobWVudFVwbG9hZHMuZmluZCgodXBsb2FkKSA9PiB1cGxvYWQuZmlsZSA9PT0gZmlsZSk7XG4gICAgICBpZiAoIXVwbG9hZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB1cGxvYWQucHJldmlld1VyaSA9IGV2ZW50LnRhcmdldD8ucmVzdWx0IHx8IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuYXR0YWNobWVudFVwbG9hZHNTdWJqZWN0Lm5leHQoWy4uLmF0dGFjaG1lbnRVcGxvYWRzXSk7XG4gICAgfTtcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlIGFzIEJsb2IpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGxvYWRBdHRhY2htZW50cyh1cGxvYWRzOiBBdHRhY2htZW50VXBsb2FkW10pIHtcbiAgICBjb25zdCBhdHRhY2htZW50VXBsb2FkcyA9IHRoaXMuYXR0YWNobWVudFVwbG9hZHNTdWJqZWN0LmdldFZhbHVlKCk7XG4gICAgdGhpcy5hdHRhY2htZW50VXBsb2FkSW5Qcm9ncmVzc0NvdW50ZXJTdWJqZWN0Lm5leHQoXG4gICAgICB0aGlzLmF0dGFjaG1lbnRVcGxvYWRJblByb2dyZXNzQ291bnRlclN1YmplY3QuZ2V0VmFsdWUoKSArIDFcbiAgICApO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY2hhbm5lbFNlcnZpY2UudXBsb2FkQXR0YWNobWVudHModXBsb2Fkcyk7XG4gICAgcmVzdWx0LmZvckVhY2goKHIpID0+IHtcbiAgICAgIGNvbnN0IHVwbG9hZCA9IGF0dGFjaG1lbnRVcGxvYWRzLmZpbmQoKHVwbG9hZCkgPT4gdXBsb2FkLmZpbGUgPT09IHIuZmlsZSk7XG4gICAgICBpZiAoIXVwbG9hZCkge1xuICAgICAgICBpZiAoci51cmwpIHtcbiAgICAgICAgICB2b2lkIHRoaXMuY2hhbm5lbFNlcnZpY2UuZGVsZXRlQXR0YWNobWVudChyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB1cGxvYWQuc3RhdGUgPSByLnN0YXRlO1xuICAgICAgdXBsb2FkLnVybCA9IHIudXJsO1xuICAgICAgaWYgKHVwbG9hZC5zdGF0ZSA9PT0gJ2Vycm9yJykge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuYWRkVGVtcG9yYXJ5Tm90aWZpY2F0aW9uKFxuICAgICAgICAgIHVwbG9hZC50eXBlID09PSAnaW1hZ2UnXG4gICAgICAgICAgICA/ICdzdHJlYW1DaGF0LkVycm9yIHVwbG9hZGluZyBpbWFnZSdcbiAgICAgICAgICAgIDogJ3N0cmVhbUNoYXQuRXJyb3IgdXBsb2FkaW5nIGZpbGUnXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5hdHRhY2htZW50VXBsb2FkSW5Qcm9ncmVzc0NvdW50ZXJTdWJqZWN0Lm5leHQoXG4gICAgICB0aGlzLmF0dGFjaG1lbnRVcGxvYWRJblByb2dyZXNzQ291bnRlclN1YmplY3QuZ2V0VmFsdWUoKSAtIDFcbiAgICApO1xuICAgIHRoaXMuYXR0YWNobWVudFVwbG9hZHNTdWJqZWN0Lm5leHQoWy4uLmF0dGFjaG1lbnRVcGxvYWRzXSk7XG4gIH1cbn1cbiJdfQ==
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL2F0dGFjaG1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUduRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQUkxRDs7R0FFRztBQUlILE1BQU0sT0FBTyxpQkFBaUI7SUFlNUIsWUFDVSxjQUE4QixFQUM5QixtQkFBd0M7UUFEeEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFSMUMsNkNBQXdDLEdBQzlDLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLDZCQUF3QixHQUFHLElBQUksZUFBZSxDQUNwRCxFQUFFLENBQ0gsQ0FBQztRQU1BLElBQUksQ0FBQyxrQ0FBa0M7WUFDckMsSUFBSSxDQUFDLHdDQUF3QyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQy9ELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0JBQXNCO1FBQ3BCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7O09BSUc7SUFDRyxhQUFhLENBQUMsUUFBeUI7O1lBQzNDLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2IsT0FBTzthQUNSO1lBQ0QsTUFBTSxVQUFVLEdBQVcsRUFBRSxDQUFDO1lB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LEtBQUssT0FBTyxFQUFFO29CQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsd0JBQXdCLENBQy9DLE1BQU0sQ0FBQyxJQUFJLEtBQUssT0FBTzt3QkFDckIsQ0FBQyxDQUFDLGtDQUFrQzt3QkFDcEMsQ0FBQyxDQUFDLGlDQUFpQyxDQUN0QyxDQUFDO2lCQUNIO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsd0NBQXdDLENBQUMsSUFBSSxDQUNoRCxJQUFJLENBQUMsd0NBQXdDLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUM3RCxDQUFDO1lBQ0YsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQzdELENBQUM7S0FBQTs7OEdBck5VLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzSW1hZ2VGaWxlIH0gZnJvbSAnLi9pcy1pbWFnZS1maWxlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXR0YWNobWVudCB9IGZyb20gJ3N0cmVhbS1jaGF0JztcbmltcG9ydCB7IENoYW5uZWxTZXJ2aWNlIH0gZnJvbSAnLi9jaGFubmVsLnNlcnZpY2UnO1xuaW1wb3J0IHsgaXNJbWFnZUF0dGFjaG1lbnQgfSBmcm9tICcuL2lzLWltYWdlLWF0dGFjaG1lbnQnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXR0YWNobWVudFVwbG9hZCB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFRoZSBgQXR0YWNobWVudFNlcnZpY2VgIG1hbmFnZXMgdGhlIHVwbG9hZHMgb2YgYSBtZXNzYWdlIGlucHV0LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXR0YWNobWVudFNlcnZpY2Uge1xuICAvKipcbiAgICogRW1pdHMgdGhlIG51bWJlciBvZiB1cGxvYWRzIGluIHByb2dyZXNzLlxuICAgKi9cbiAgYXR0YWNobWVudFVwbG9hZEluUHJvZ3Jlc3NDb3VudGVyJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICAvKipcbiAgICogRW1pdHMgdGhlIHN0YXRlIG9mIHRoZSB1cGxvYWRzIChbYEF0dGFjaG1lbnRVcGxvYWRbXWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci9ibG9iL21hc3Rlci9wcm9qZWN0cy9zdHJlYW0tY2hhdC1hbmd1bGFyL3NyYy9saWIvdHlwZXMudHMpKSwgaXQgYWRkcyBhIHN0YXRlIChgc3VjY2Vzc2AsIGBlcnJvcmAgb3IgYHVwbG9hZGluZ2ApIHRvIGVhY2ggZmlsZSB0aGUgdXNlciBzZWxlY3RzIGZvciB1cGxvYWQuIEl0IGlzIHVzZWQgYnkgdGhlIFtgQXR0YWNobWVudFByZXZpZXdMaXN0YF0oLi4vY29tcG9uZW50cy9hdHRhY2htZW50LXByZXZpZXctbGlzdC5tZHgpIHRvIGRpc3BsYXkgdGhlIGF0dGFjaG1lbnQgcHJldmlld3MuXG4gICAqL1xuICBhdHRhY2htZW50VXBsb2FkcyQ6IE9ic2VydmFibGU8QXR0YWNobWVudFVwbG9hZFtdPjtcbiAgcHJpdmF0ZSBhdHRhY2htZW50VXBsb2FkSW5Qcm9ncmVzc0NvdW50ZXJTdWJqZWN0ID1cbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gIHByaXZhdGUgYXR0YWNobWVudFVwbG9hZHNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdHRhY2htZW50VXBsb2FkW10+KFxuICAgIFtdXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFubmVsU2VydmljZTogQ2hhbm5lbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuYXR0YWNobWVudFVwbG9hZEluUHJvZ3Jlc3NDb3VudGVyJCA9XG4gICAgICB0aGlzLmF0dGFjaG1lbnRVcGxvYWRJblByb2dyZXNzQ291bnRlclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5hdHRhY2htZW50VXBsb2FkcyQgPSB0aGlzLmF0dGFjaG1lbnRVcGxvYWRzU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGF0dGFjaG1lbnRzIHVwbG9hZHMgKGZvciBleGFtcGxlIGFmdGVyIHRoZSBtZXNzYWdlIHdpdGggdGhlIGF0dGFjaG1lbnRzIHNlbnQgc3VjY2Vzc2Z1bGx5KVxuICAgKi9cbiAgcmVzZXRBdHRhY2htZW50VXBsb2FkcygpIHtcbiAgICB0aGlzLmF0dGFjaG1lbnRVcGxvYWRzU3ViamVjdC5uZXh0KFtdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGxvYWRzIHRoZSBzZWxlY3RlZCBmaWxlcywgYW5kIGNyZWF0ZXMgcHJldmlldyBmb3IgaW1hZ2UgZmlsZXMuIFRoZSByZXN1bHQgaXMgcHJvcGFnYXRlZCB0aHJvdWdodCB0aGUgYGF0dGFjaG1lbnRVcGxvYWRzJGAgc3RyZWFtLlxuICAgKiBAcGFyYW0gZmlsZUxpc3QgVGhlIGZpbGVzIHNlbGVjdGVkIGJ5IHRoZSB1c2VyXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB3aXRoIHRoZSByZXN1bHRcbiAgICovXG4gIGFzeW5jIGZpbGVzU2VsZWN0ZWQoZmlsZUxpc3Q6IEZpbGVMaXN0IHwgbnVsbCkge1xuICAgIGlmICghZmlsZUxpc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaW1hZ2VGaWxlczogRmlsZVtdID0gW107XG4gICAgY29uc3QgZGF0YUZpbGVzOiBGaWxlW10gPSBbXTtcblxuICAgIEFycmF5LmZyb20oZmlsZUxpc3QpLmZvckVhY2goKGZpbGUpID0+IHtcbiAgICAgIGlmIChpc0ltYWdlRmlsZShmaWxlKSkge1xuICAgICAgICBpbWFnZUZpbGVzLnB1c2goZmlsZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhRmlsZXMucHVzaChmaWxlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpbWFnZUZpbGVzLmZvckVhY2goKGYpID0+IHRoaXMuY3JlYXRlUHJldmlldyhmKSk7XG4gICAgY29uc3QgbmV3VXBsb2FkcyA9IFtcbiAgICAgIC4uLmltYWdlRmlsZXMubWFwKChmaWxlKSA9PiAoe1xuICAgICAgICBmaWxlLFxuICAgICAgICBzdGF0ZTogJ3VwbG9hZGluZycgYXMgJ3VwbG9hZGluZycsXG4gICAgICAgIHR5cGU6ICdpbWFnZScgYXMgJ2ltYWdlJyxcbiAgICAgIH0pKSxcbiAgICAgIC4uLmRhdGFGaWxlcy5tYXAoKGZpbGUpID0+ICh7XG4gICAgICAgIGZpbGUsXG4gICAgICAgIHN0YXRlOiAndXBsb2FkaW5nJyBhcyAndXBsb2FkaW5nJyxcbiAgICAgICAgdHlwZTogJ2ZpbGUnIGFzICdmaWxlJyxcbiAgICAgIH0pKSxcbiAgICBdO1xuICAgIHRoaXMuYXR0YWNobWVudFVwbG9hZHNTdWJqZWN0Lm5leHQoW1xuICAgICAgLi4udGhpcy5hdHRhY2htZW50VXBsb2Fkc1N1YmplY3QuZ2V0VmFsdWUoKSxcbiAgICAgIC4uLm5ld1VwbG9hZHMsXG4gICAgXSk7XG4gICAgYXdhaXQgdGhpcy51cGxvYWRBdHRhY2htZW50cyhuZXdVcGxvYWRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWVzIHRvIHVwbG9hZCBhbiBhdHRhY2htZW50LlxuICAgKiBAcGFyYW0gZmlsZVxuICAgKiBAcmV0dXJucyBBIHByb21pc2Ugd2l0aCB0aGUgcmVzdWx0XG4gICAqL1xuICBhc3luYyByZXRyeUF0dGFjaG1lbnRVcGxvYWQoZmlsZTogRmlsZSkge1xuICAgIGNvbnN0IGF0dGFjaG1lbnRVcGxvYWRzID0gdGhpcy5hdHRhY2htZW50VXBsb2Fkc1N1YmplY3QuZ2V0VmFsdWUoKTtcbiAgICBjb25zdCB1cGxvYWQgPSBhdHRhY2htZW50VXBsb2Fkcy5maW5kKCh1KSA9PiB1LmZpbGUgPT09IGZpbGUpO1xuICAgIGlmICghdXBsb2FkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHVwbG9hZC5zdGF0ZSA9ICd1cGxvYWRpbmcnO1xuICAgIHRoaXMuYXR0YWNobWVudFVwbG9hZHNTdWJqZWN0Lm5leHQoWy4uLmF0dGFjaG1lbnRVcGxvYWRzXSk7XG4gICAgYXdhaXQgdGhpcy51cGxvYWRBdHRhY2htZW50cyhbdXBsb2FkXSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlcyBhbiBhdHRhY2htZW50LCB0aGUgYXR0YWNobWVudCBjYW4gaGF2ZSBhbnkgc3RhdGUgKGBlcnJvcmAsIGB1cGxvYWRpbmdgIG9yIGBzdWNjZXNzYCkuXG4gICAqIEBwYXJhbSB1cGxvYWRcbiAgICovXG4gIGFzeW5jIGRlbGV0ZUF0dGFjaG1lbnQodXBsb2FkOiBBdHRhY2htZW50VXBsb2FkKSB7XG4gICAgY29uc3QgYXR0YWNobWVudFVwbG9hZHMgPSB0aGlzLmF0dGFjaG1lbnRVcGxvYWRzU3ViamVjdC5nZXRWYWx1ZSgpO1xuICAgIGlmICh1cGxvYWQuc3RhdGUgPT09ICdzdWNjZXNzJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5jaGFubmVsU2VydmljZS5kZWxldGVBdHRhY2htZW50KHVwbG9hZCk7XG4gICAgICAgIGF0dGFjaG1lbnRVcGxvYWRzLnNwbGljZShhdHRhY2htZW50VXBsb2Fkcy5pbmRleE9mKHVwbG9hZCksIDEpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmFkZFRlbXBvcmFyeU5vdGlmaWNhdGlvbihcbiAgICAgICAgICAnc3RyZWFtQ2hhdC5FcnJvciBkZWxldGluZyBhdHRhY2htZW50J1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBhdHRhY2htZW50VXBsb2Fkcy5zcGxpY2UoYXR0YWNobWVudFVwbG9hZHMuaW5kZXhPZih1cGxvYWQpLCAxKTtcbiAgICB9XG4gICAgdGhpcy5hdHRhY2htZW50VXBsb2Fkc1N1YmplY3QubmV4dChbLi4uYXR0YWNobWVudFVwbG9hZHNdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXBzIHRoZSBjdXJyZW50IHVwbG9hZHMgdG8gYSBmb3JtYXQgdGhhdCBjYW4gYmUgc2VudCBhbG9uZyB3aXRoIHRoZSBtZXNzYWdlIHRvIHRoZSBTdHJlYW0gQVBJLlxuICAgKiBAcmV0dXJucyB0aGUgYXR0YWNobWVudHNcbiAgICovXG4gIG1hcFRvQXR0YWNobWVudHMoKSB7XG4gICAgY29uc3QgYXR0YWNobWVudFVwbG9hZHMgPSB0aGlzLmF0dGFjaG1lbnRVcGxvYWRzU3ViamVjdC5nZXRWYWx1ZSgpO1xuICAgIHJldHVybiBhdHRhY2htZW50VXBsb2Fkc1xuICAgICAgLmZpbHRlcigocikgPT4gci5zdGF0ZSA9PT0gJ3N1Y2Nlc3MnKVxuICAgICAgLm1hcCgocikgPT4ge1xuICAgICAgICBjb25zdCBhdHRhY2htZW50OiBBdHRhY2htZW50ID0ge1xuICAgICAgICAgIHR5cGU6IHIudHlwZSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHIudHlwZSA9PT0gJ2ltYWdlJykge1xuICAgICAgICAgIGF0dGFjaG1lbnQuZmFsbGJhY2sgPSByLmZpbGU/Lm5hbWU7XG4gICAgICAgICAgYXR0YWNobWVudC5pbWFnZV91cmwgPSByLnVybDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhdHRhY2htZW50LmFzc2V0X3VybCA9IHIudXJsO1xuICAgICAgICAgIGF0dGFjaG1lbnQudGl0bGUgPSByLmZpbGU/Lm5hbWU7XG4gICAgICAgICAgYXR0YWNobWVudC5maWxlX3NpemUgPSByLmZpbGU/LnNpemU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXR0YWNobWVudDtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcHMgYXR0YWNobWVudHMgcmVjZWl2ZWQgZnJvbSB0aGUgU3RyZWFtIEFQSSB0byB1cGxvYWRzLiBUaGlzIGlzIHVzZWZ1bCB3aGVuIGVkaXRpbmcgYSBtZXNzYWdlLlxuICAgKiBAcGFyYW0gYXR0YWNobWVudHMgQXR0YWNoZW1udHMgcmVjZWl2ZWQgd2l0aCB0aGUgbWVzc2FnZVxuICAgKi9cbiAgY3JlYXRlRnJvbUF0dGFjaG1lbnRzKGF0dGFjaG1lbnRzOiBBdHRhY2htZW50W10pIHtcbiAgICBjb25zdCBhdHRhY2htZW50VXBsb2FkczogQXR0YWNobWVudFVwbG9hZFtdID0gW107XG4gICAgYXR0YWNobWVudHMuZm9yRWFjaCgoYXR0YWNobWVudCkgPT4ge1xuICAgICAgaWYgKGlzSW1hZ2VBdHRhY2htZW50KGF0dGFjaG1lbnQpKSB7XG4gICAgICAgIGF0dGFjaG1lbnRVcGxvYWRzLnB1c2goe1xuICAgICAgICAgIHVybDogKGF0dGFjaG1lbnQuaW1nX3VybCB8fFxuICAgICAgICAgICAgYXR0YWNobWVudC50aHVtYl91cmwgfHxcbiAgICAgICAgICAgIGF0dGFjaG1lbnQuaW1hZ2VfdXJsKSBhcyBzdHJpbmcsXG4gICAgICAgICAgc3RhdGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICB0eXBlOiAnaW1hZ2UnLFxuICAgICAgICAgIGZpbGU6IHtcbiAgICAgICAgICAgIG5hbWU6IGF0dGFjaG1lbnQuZmFsbGJhY2ssXG4gICAgICAgICAgfSBhcyBGaWxlLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoYXR0YWNobWVudC50eXBlID09PSAnZmlsZScpIHtcbiAgICAgICAgYXR0YWNobWVudFVwbG9hZHMucHVzaCh7XG4gICAgICAgICAgdXJsOiBhdHRhY2htZW50LmFzc2V0X3VybCxcbiAgICAgICAgICBzdGF0ZTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgIGZpbGU6IHtcbiAgICAgICAgICAgIG5hbWU6IGF0dGFjaG1lbnQudGl0bGUsXG4gICAgICAgICAgICBzaXplOiBhdHRhY2htZW50LmZpbGVfc2l6ZSxcbiAgICAgICAgICB9IGFzIEZpbGUsXG4gICAgICAgICAgdHlwZTogJ2ZpbGUnLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChhdHRhY2htZW50VXBsb2Fkcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmF0dGFjaG1lbnRVcGxvYWRzU3ViamVjdC5uZXh0KFtcbiAgICAgICAgLi4udGhpcy5hdHRhY2htZW50VXBsb2Fkc1N1YmplY3QuZ2V0VmFsdWUoKSxcbiAgICAgICAgLi4uYXR0YWNobWVudFVwbG9hZHMsXG4gICAgICBdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVByZXZpZXcoZmlsZTogRmlsZSkge1xuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgcmVhZGVyLm9ubG9hZCA9IChldmVudCkgPT4ge1xuICAgICAgY29uc3QgYXR0YWNobWVudFVwbG9hZHMgPSB0aGlzLmF0dGFjaG1lbnRVcGxvYWRzU3ViamVjdC5nZXRWYWx1ZSgpO1xuICAgICAgY29uc3QgdXBsb2FkID0gYXR0YWNobWVudFVwbG9hZHMuZmluZCgodXBsb2FkKSA9PiB1cGxvYWQuZmlsZSA9PT0gZmlsZSk7XG4gICAgICBpZiAoIXVwbG9hZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB1cGxvYWQucHJldmlld1VyaSA9IGV2ZW50LnRhcmdldD8ucmVzdWx0IHx8IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuYXR0YWNobWVudFVwbG9hZHNTdWJqZWN0Lm5leHQoWy4uLmF0dGFjaG1lbnRVcGxvYWRzXSk7XG4gICAgfTtcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlIGFzIEJsb2IpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGxvYWRBdHRhY2htZW50cyh1cGxvYWRzOiBBdHRhY2htZW50VXBsb2FkW10pIHtcbiAgICBjb25zdCBhdHRhY2htZW50VXBsb2FkcyA9IHRoaXMuYXR0YWNobWVudFVwbG9hZHNTdWJqZWN0LmdldFZhbHVlKCk7XG4gICAgdGhpcy5hdHRhY2htZW50VXBsb2FkSW5Qcm9ncmVzc0NvdW50ZXJTdWJqZWN0Lm5leHQoXG4gICAgICB0aGlzLmF0dGFjaG1lbnRVcGxvYWRJblByb2dyZXNzQ291bnRlclN1YmplY3QuZ2V0VmFsdWUoKSArIDFcbiAgICApO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY2hhbm5lbFNlcnZpY2UudXBsb2FkQXR0YWNobWVudHModXBsb2Fkcyk7XG4gICAgcmVzdWx0LmZvckVhY2goKHIpID0+IHtcbiAgICAgIGNvbnN0IHVwbG9hZCA9IGF0dGFjaG1lbnRVcGxvYWRzLmZpbmQoKHVwbG9hZCkgPT4gdXBsb2FkLmZpbGUgPT09IHIuZmlsZSk7XG4gICAgICBpZiAoIXVwbG9hZCkge1xuICAgICAgICBpZiAoci51cmwpIHtcbiAgICAgICAgICB2b2lkIHRoaXMuY2hhbm5lbFNlcnZpY2UuZGVsZXRlQXR0YWNobWVudChyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB1cGxvYWQuc3RhdGUgPSByLnN0YXRlO1xuICAgICAgdXBsb2FkLnVybCA9IHIudXJsO1xuICAgICAgaWYgKHVwbG9hZC5zdGF0ZSA9PT0gJ2Vycm9yJykge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuYWRkVGVtcG9yYXJ5Tm90aWZpY2F0aW9uKFxuICAgICAgICAgIHVwbG9hZC50eXBlID09PSAnaW1hZ2UnXG4gICAgICAgICAgICA/ICdzdHJlYW1DaGF0LkVycm9yIHVwbG9hZGluZyBpbWFnZSdcbiAgICAgICAgICAgIDogJ3N0cmVhbUNoYXQuRXJyb3IgdXBsb2FkaW5nIGZpbGUnXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5hdHRhY2htZW50VXBsb2FkSW5Qcm9ncmVzc0NvdW50ZXJTdWJqZWN0Lm5leHQoXG4gICAgICB0aGlzLmF0dGFjaG1lbnRVcGxvYWRJblByb2dyZXNzQ291bnRlclN1YmplY3QuZ2V0VmFsdWUoKSAtIDFcbiAgICApO1xuICAgIHRoaXMuYXR0YWNobWVudFVwbG9hZHNTdWJqZWN0Lm5leHQoWy4uLmF0dGFjaG1lbnRVcGxvYWRzXSk7XG4gIH1cbn1cbiJdfQ==
@@ -3,6 +3,9 @@ import { BehaviorSubject } from 'rxjs';
3
3
  import { distinctUntilChanged, filter, first } from 'rxjs/operators';
4
4
  import { getDeviceWidth } from '../device-width';
5
5
  import * as i0 from "@angular/core";
6
+ /**
7
+ * The `ChannelListToggleService` can be used to toggle the channel list.
8
+ */
6
9
  export class ChannelListToggleService {
7
10
  constructor() {
8
11
  this.isOpenSubject = new BehaviorSubject(false);
@@ -15,18 +18,34 @@ export class ChannelListToggleService {
15
18
  }
16
19
  });
17
20
  }
21
+ /**
22
+ * Opens the channel list.
23
+ */
18
24
  open() {
19
25
  this.isOpenSubject.next(true);
20
26
  }
27
+ /**
28
+ * Closes the channel list.
29
+ */
21
30
  close() {
22
31
  this.isOpenSubject.next(false);
23
32
  }
33
+ /**
34
+ * Opens the channel list if it was closed, and closes if it was opened.
35
+ */
24
36
  toggle() {
25
37
  this.isOpenSubject.getValue() ? this.close() : this.open();
26
38
  }
39
+ /**
40
+ * Sets the channel list element, on mobile screen size if the user opens the channel list, and clicks outside, the service automatically closes the channel list if a reference to the HTML element is provided.
41
+ * @param element
42
+ */
27
43
  setMenuElement(element) {
28
44
  this.menuElement = element;
29
45
  }
46
+ /**
47
+ * This method should be called if a channel was selected, if on mobile, the channel list will be closed.
48
+ */
30
49
  channelSelected() {
31
50
  if (getDeviceWidth().device === 'mobile') {
32
51
  this.close();
@@ -54,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
54
73
  type: Injectable,
55
74
  args: [{ providedIn: 'root' }]
56
75
  }], ctorParameters: function () { return []; } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC1saXN0LXRvZ2dsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL2NoYW5uZWwtbGlzdC9jaGFubmVsLWxpc3QtdG9nZ2xlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUdqRCxNQUFNLE9BQU8sd0JBQXdCO0lBS25DO1FBSFEsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUkxRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhO2FBQzlCLFlBQVksRUFBRTthQUNkLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakQsSUFBSSxjQUFjLEVBQUUsQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFO2dCQUN4QyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQzthQUM5QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFnQztRQUM3QyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztJQUM3QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksY0FBYyxFQUFFLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRTtZQUN4QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDZDtJQUNILENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckIsT0FBTztTQUNSO1FBQ0QsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQWMsQ0FBQyxFQUFFO2dCQUNyRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQzthQUNuRDtRQUNILENBQUMsQ0FBQztRQUNGLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU87YUFDVCxJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNqQixLQUFLLEVBQUUsQ0FDUjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQzs7cUhBdkRVLHdCQUF3Qjt5SEFBeEIsd0JBQXdCLGNBRFgsTUFBTTsyRkFDbkIsd0JBQXdCO2tCQURwQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBnZXREZXZpY2VXaWR0aCB9IGZyb20gJy4uL2RldmljZS13aWR0aCc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ2hhbm5lbExpc3RUb2dnbGVTZXJ2aWNlIHtcbiAgaXNPcGVuJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHJpdmF0ZSBpc09wZW5TdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgbWVudUVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaXNPcGVuJCA9IHRoaXMuaXNPcGVuU3ViamVjdFxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICB0aGlzLmlzT3BlbiQucGlwZShmaWx0ZXIoKHMpID0+IHMpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKGdldERldmljZVdpZHRoKCkuZGV2aWNlID09PSAnbW9iaWxlJykge1xuICAgICAgICB0aGlzLndhdGNoRm9yT3V0c2lkZUNsaWNrcygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgb3BlbigpIHtcbiAgICB0aGlzLmlzT3BlblN1YmplY3QubmV4dCh0cnVlKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuaXNPcGVuU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLmlzT3BlblN1YmplY3QuZ2V0VmFsdWUoKSA/IHRoaXMuY2xvc2UoKSA6IHRoaXMub3BlbigpO1xuICB9XG5cbiAgc2V0TWVudUVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm1lbnVFbGVtZW50ID0gZWxlbWVudDtcbiAgfVxuXG4gIGNoYW5uZWxTZWxlY3RlZCgpIHtcbiAgICBpZiAoZ2V0RGV2aWNlV2lkdGgoKS5kZXZpY2UgPT09ICdtb2JpbGUnKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB3YXRjaEZvck91dHNpZGVDbGlja3MoKSB7XG4gICAgaWYgKCF0aGlzLm1lbnVFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGV2ZW50SGFuZGxlciA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgIGlmICghdGhpcy5tZW51RWxlbWVudCEuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZXZlbnRIYW5kbGVyKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGV2ZW50SGFuZGxlcik7XG4gICAgdGhpcy5pc09wZW4kXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChzKSA9PiAhcyksXG4gICAgICAgIGZpcnN0KClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZXZlbnRIYW5kbGVyKSk7XG4gIH1cbn1cbiJdfQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC1saXN0LXRvZ2dsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL2NoYW5uZWwtbGlzdC9jaGFubmVsLWxpc3QtdG9nZ2xlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUVqRDs7R0FFRztBQUVILE1BQU0sT0FBTyx3QkFBd0I7SUFRbkM7UUFIUSxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBSTFELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWE7YUFDOUIsWUFBWSxFQUFFO2FBQ2QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNqRCxJQUFJLGNBQWMsRUFBRSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSztRQUNILElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYyxDQUFDLE9BQWdDO1FBQzdDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWU7UUFDYixJQUFJLGNBQWMsRUFBRSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDeEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRU8scUJBQXFCO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLE9BQU87U0FDUjtRQUNELE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFjLENBQUMsRUFBRTtnQkFDckQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNiLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7YUFDbkQ7UUFDSCxDQUFDLENBQUM7UUFDRixNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxPQUFPO2FBQ1QsSUFBSSxDQUNILE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDakIsS0FBSyxFQUFFLENBQ1I7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7O3FIQTFFVSx3QkFBd0I7eUhBQXhCLHdCQUF3QixjQURYLE1BQU07MkZBQ25CLHdCQUF3QjtrQkFEcEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZ2V0RGV2aWNlV2lkdGggfSBmcm9tICcuLi9kZXZpY2Utd2lkdGgnO1xuXG4vKipcbiAqIFRoZSBgQ2hhbm5lbExpc3RUb2dnbGVTZXJ2aWNlYCBjYW4gYmUgdXNlZCB0byB0b2dnbGUgdGhlIGNoYW5uZWwgbGlzdC5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDaGFubmVsTGlzdFRvZ2dsZVNlcnZpY2Uge1xuICAvKipcbiAgICogRW1pdHMgYHRydWVgIGlmIHRoZSBjaGFubmVsIGxpc3QgaXMgaW4gb3BlbiBzdGF0ZSwgb3RoZXJ3aXNlIGl0IGVtaXRzIGBmYWxzZWBcbiAgICovXG4gIGlzT3BlbiQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHByaXZhdGUgaXNPcGVuU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIG1lbnVFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmlzT3BlbiQgPSB0aGlzLmlzT3BlblN1YmplY3RcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgdGhpcy5pc09wZW4kLnBpcGUoZmlsdGVyKChzKSA9PiBzKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmIChnZXREZXZpY2VXaWR0aCgpLmRldmljZSA9PT0gJ21vYmlsZScpIHtcbiAgICAgICAgdGhpcy53YXRjaEZvck91dHNpZGVDbGlja3MoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgY2hhbm5lbCBsaXN0LlxuICAgKi9cbiAgb3BlbigpIHtcbiAgICB0aGlzLmlzT3BlblN1YmplY3QubmV4dCh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGNoYW5uZWwgbGlzdC5cbiAgICovXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuaXNPcGVuU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgY2hhbm5lbCBsaXN0IGlmIGl0IHdhcyBjbG9zZWQsIGFuZCBjbG9zZXMgaWYgaXQgd2FzIG9wZW5lZC5cbiAgICovXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLmlzT3BlblN1YmplY3QuZ2V0VmFsdWUoKSA/IHRoaXMuY2xvc2UoKSA6IHRoaXMub3BlbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNoYW5uZWwgbGlzdCBlbGVtZW50LCBvbiBtb2JpbGUgc2NyZWVuIHNpemUgaWYgdGhlIHVzZXIgb3BlbnMgdGhlIGNoYW5uZWwgbGlzdCwgYW5kIGNsaWNrcyBvdXRzaWRlLCB0aGUgc2VydmljZSBhdXRvbWF0aWNhbGx5IGNsb3NlcyB0aGUgY2hhbm5lbCBsaXN0IGlmIGEgcmVmZXJlbmNlIHRvIHRoZSBIVE1MIGVsZW1lbnQgaXMgcHJvdmlkZWQuXG4gICAqIEBwYXJhbSBlbGVtZW50XG4gICAqL1xuICBzZXRNZW51RWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMubWVudUVsZW1lbnQgPSBlbGVtZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHNob3VsZCBiZSBjYWxsZWQgaWYgYSBjaGFubmVsIHdhcyBzZWxlY3RlZCwgaWYgb24gbW9iaWxlLCB0aGUgY2hhbm5lbCBsaXN0IHdpbGwgYmUgY2xvc2VkLlxuICAgKi9cbiAgY2hhbm5lbFNlbGVjdGVkKCkge1xuICAgIGlmIChnZXREZXZpY2VXaWR0aCgpLmRldmljZSA9PT0gJ21vYmlsZScpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHdhdGNoRm9yT3V0c2lkZUNsaWNrcygpIHtcbiAgICBpZiAoIXRoaXMubWVudUVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZXZlbnRIYW5kbGVyID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLm1lbnVFbGVtZW50IS5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBldmVudEhhbmRsZXIpO1xuICAgICAgfVxuICAgIH07XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZXZlbnRIYW5kbGVyKTtcbiAgICB0aGlzLmlzT3BlbiRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKHMpID0+ICFzKSxcbiAgICAgICAgZmlyc3QoKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBldmVudEhhbmRsZXIpKTtcbiAgfVxufVxuIl19