stream-chat-angular 5.0.0-v5.4 → 5.0.0-v5.6

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.
@@ -1 +1 @@
1
- export declare const version = "5.0.0-v5.4";
1
+ export declare const version = "5.0.0-v5.6";
@@ -1,2 +1,2 @@
1
- export const version = '5.0.0-v5.4';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2Fzc2V0cy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdmVyc2lvbiA9ICc1LjAuMC12NS40JztcbiJdfQ==
1
+ export const version = '5.0.0-v5.6';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2Fzc2V0cy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdmVyc2lvbiA9ICc1LjAuMC12NS42JztcbiJdfQ==
@@ -2,20 +2,17 @@ import { Component, } from '@angular/core';
2
2
  import { getChannelDisplayText } from '../get-channel-display-text';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../channel.service";
5
- import * as i2 from "../channel-list/channel-list-toggle.service";
6
- import * as i3 from "../custom-templates.service";
7
- import * as i4 from "../chat-client.service";
8
- import * as i5 from "@angular/common";
9
- import * as i6 from "../avatar-placeholder/avatar-placeholder.component";
10
- import * as i7 from "../icon-placeholder/icon-placeholder.component";
11
- import * as i8 from "@ngx-translate/core";
5
+ import * as i2 from "../custom-templates.service";
6
+ import * as i3 from "../chat-client.service";
7
+ import * as i4 from "@angular/common";
8
+ import * as i5 from "../avatar-placeholder/avatar-placeholder.component";
9
+ import * as i6 from "@ngx-translate/core";
12
10
  /**
13
11
  * The `ChannelHeader` component displays the avatar and name of the currently active channel along with member and watcher information. You can read about [the difference between members and watchers](https://getstream.io/chat/docs/javascript/watch_channel/?language=javascript#watchers-vs-members) in the platform documentation. Please note that number of watchers is only displayed if the user has [`connect-events` capability](https://getstream.io/chat/docs/javascript/channel_capabilities/?language=javascript)
14
12
  */
15
13
  export class ChannelHeaderComponent {
16
- constructor(channelService, channelListToggleService, customTemplatesService, cdRef, chatClientService) {
14
+ constructor(channelService, customTemplatesService, cdRef, chatClientService) {
17
15
  this.channelService = channelService;
18
- this.channelListToggleService = channelListToggleService;
19
16
  this.customTemplatesService = customTemplatesService;
20
17
  this.cdRef = cdRef;
21
18
  this.chatClientService = chatClientService;
@@ -44,10 +41,6 @@ export class ChannelHeaderComponent {
44
41
  ngOnDestroy() {
45
42
  this.subscriptions.forEach((s) => s.unsubscribe());
46
43
  }
47
- toggleMenu(event) {
48
- event.stopPropagation();
49
- this.channelListToggleService.toggle();
50
- }
51
44
  getChannelActionsContext() {
52
45
  return { channel: this.activeChannel };
53
46
  }
@@ -70,10 +63,10 @@ export class ChannelHeaderComponent {
70
63
  return this.activeChannel?.data?.name;
71
64
  }
72
65
  }
73
- ChannelHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChannelHeaderComponent, deps: [{ token: i1.ChannelService }, { token: i2.ChannelListToggleService }, { token: i3.CustomTemplatesService }, { token: i0.ChangeDetectorRef }, { token: i4.ChatClientService }], target: i0.ɵɵFactoryTarget.Component });
74
- ChannelHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ChannelHeaderComponent, selector: "stream-channel-header", ngImport: i0, template: "<div class=\"str-chat__header-livestream str-chat__channel-header\">\n <div\n class=\"str-chat__header-hamburger\"\n (click)=\"toggleMenu($event)\"\n (keyup.enter)=\"toggleMenu($event)\"\n >\n <stream-icon-placeholder icon=\"menu\"></stream-icon-placeholder>\n </div>\n <ng-content></ng-content>\n <stream-avatar-placeholder\n type=\"channel\"\n location=\"channel-header\"\n imageUrl=\"{{ activeChannel?.data?.image }}\"\n name=\"{{ avatarName }}\"\n [channel]=\"activeChannel\"\n [size]=\"40\"\n ></stream-avatar-placeholder>\n <div class=\"str-chat__header-livestream-left str-chat__channel-header-end\">\n <p\n data-testid=\"name\"\n class=\"\n str-chat__header-livestream-left--title str-chat__channel-header-title\n \"\n >\n {{ displayText }}\n </p>\n <ng-container\n *ngTemplateOutlet=\"\n channelHeaderInfoTemplate || defaultChannelInfo;\n context: getChannelInfoContext()\n \"\n ></ng-container>\n <ng-template #defaultChannelInfo>\n <p\n data-testid=\"info\"\n class=\"\n str-chat__header-livestream-left--members\n str-chat__channel-header-info\n \"\n >\n {{'streamChat.{{ memberCount }} members' | translate:memberCountParam}}\n {{canReceiveConnectEvents ? ('streamChat.{{ watcherCount }} online' |\n translate:watcherCountParam) : ''}}\n </p>\n </ng-template>\n </div>\n <ng-container *ngIf=\"channelActionsTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n channelActionsTemplate;\n context: getChannelActionsContext()\n \"\n ></ng-container>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.AvatarPlaceholderComponent, selector: "stream-avatar-placeholder", inputs: ["name", "imageUrl", "size", "location", "channel", "user", "type", "initialsType", "showOnlineIndicator"] }, { kind: "component", type: i7.IconPlaceholderComponent, selector: "stream-icon-placeholder", inputs: ["icon", "size"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
66
+ ChannelHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChannelHeaderComponent, deps: [{ token: i1.ChannelService }, { token: i2.CustomTemplatesService }, { token: i0.ChangeDetectorRef }, { token: i3.ChatClientService }], target: i0.ɵɵFactoryTarget.Component });
67
+ ChannelHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ChannelHeaderComponent, selector: "stream-channel-header", ngImport: i0, template: "<div class=\"str-chat__header-livestream str-chat__channel-header\">\n <ng-content></ng-content>\n <stream-avatar-placeholder\n type=\"channel\"\n location=\"channel-header\"\n imageUrl=\"{{ activeChannel?.data?.image }}\"\n name=\"{{ avatarName }}\"\n [channel]=\"activeChannel\"\n [size]=\"40\"\n ></stream-avatar-placeholder>\n <div class=\"str-chat__header-livestream-left str-chat__channel-header-end\">\n <p\n data-testid=\"name\"\n class=\"\n str-chat__header-livestream-left--title str-chat__channel-header-title\n \"\n >\n {{ displayText }}\n </p>\n <ng-container\n *ngTemplateOutlet=\"\n channelHeaderInfoTemplate || defaultChannelInfo;\n context: getChannelInfoContext()\n \"\n ></ng-container>\n <ng-template #defaultChannelInfo>\n <p\n data-testid=\"info\"\n class=\"\n str-chat__header-livestream-left--members\n str-chat__channel-header-info\n \"\n >\n {{'streamChat.{{ memberCount }} members' | translate:memberCountParam}}\n {{canReceiveConnectEvents ? ('streamChat.{{ watcherCount }} online' |\n translate:watcherCountParam) : ''}}\n </p>\n </ng-template>\n </div>\n <ng-container *ngIf=\"channelActionsTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n channelActionsTemplate;\n context: getChannelActionsContext()\n \"\n ></ng-container>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.AvatarPlaceholderComponent, selector: "stream-avatar-placeholder", inputs: ["name", "imageUrl", "size", "location", "channel", "user", "type", "initialsType", "showOnlineIndicator"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
75
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChannelHeaderComponent, decorators: [{
76
69
  type: Component,
77
- args: [{ selector: 'stream-channel-header', template: "<div class=\"str-chat__header-livestream str-chat__channel-header\">\n <div\n class=\"str-chat__header-hamburger\"\n (click)=\"toggleMenu($event)\"\n (keyup.enter)=\"toggleMenu($event)\"\n >\n <stream-icon-placeholder icon=\"menu\"></stream-icon-placeholder>\n </div>\n <ng-content></ng-content>\n <stream-avatar-placeholder\n type=\"channel\"\n location=\"channel-header\"\n imageUrl=\"{{ activeChannel?.data?.image }}\"\n name=\"{{ avatarName }}\"\n [channel]=\"activeChannel\"\n [size]=\"40\"\n ></stream-avatar-placeholder>\n <div class=\"str-chat__header-livestream-left str-chat__channel-header-end\">\n <p\n data-testid=\"name\"\n class=\"\n str-chat__header-livestream-left--title str-chat__channel-header-title\n \"\n >\n {{ displayText }}\n </p>\n <ng-container\n *ngTemplateOutlet=\"\n channelHeaderInfoTemplate || defaultChannelInfo;\n context: getChannelInfoContext()\n \"\n ></ng-container>\n <ng-template #defaultChannelInfo>\n <p\n data-testid=\"info\"\n class=\"\n str-chat__header-livestream-left--members\n str-chat__channel-header-info\n \"\n >\n {{'streamChat.{{ memberCount }} members' | translate:memberCountParam}}\n {{canReceiveConnectEvents ? ('streamChat.{{ watcherCount }} online' |\n translate:watcherCountParam) : ''}}\n </p>\n </ng-template>\n </div>\n <ng-container *ngIf=\"channelActionsTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n channelActionsTemplate;\n context: getChannelActionsContext()\n \"\n ></ng-container>\n </ng-container>\n</div>\n" }]
78
- }], ctorParameters: function () { return [{ type: i1.ChannelService }, { type: i2.ChannelListToggleService }, { type: i3.CustomTemplatesService }, { type: i0.ChangeDetectorRef }, { type: i4.ChatClientService }]; } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL2NoYW5uZWwtaGVhZGVyL2NoYW5uZWwtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9jaGFubmVsLWhlYWRlci9jaGFubmVsLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxHQUlWLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7O0FBT3BFOztHQUVHO0FBTUgsTUFBTSxPQUFPLHNCQUFzQjtJQU9qQyxZQUNVLGNBQThCLEVBQzlCLHdCQUFrRCxFQUNsRCxzQkFBOEMsRUFDOUMsS0FBd0IsRUFDeEIsaUJBQW9DO1FBSnBDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVB0QyxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFTekMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDakQsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7WUFDdkIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJO2dCQUMzQyxFQUFFLGdCQUE0QixDQUFDO1lBQ2pDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ2pCLE9BQU87YUFDUjtZQUNELElBQUksQ0FBQyx1QkFBdUI7Z0JBQzFCLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQzNELENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDWCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsUUFBUSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUNGLENBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMsc0JBQXNCLENBQUMsMEJBQTBCLENBQUMsU0FBUyxDQUM5RCxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLHlCQUF5QixHQUFHLFFBQVEsQ0FBQztZQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FDRixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVk7UUFDckIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWMsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsWUFBWSxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLGFBQWEsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUN6RSxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE9BQU8scUJBQXFCLENBQzFCLElBQUksQ0FBQyxhQUFhLEVBQ2xCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSyxDQUN4QyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0lBQ3hDLENBQUM7O21IQWpGVSxzQkFBc0I7dUdBQXRCLHNCQUFzQiw2REM1Qm5DLHlxREF1REE7MkZEM0JhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDaGFubmVsIH0gZnJvbSAnc3RyZWFtLWNoYXQnO1xuaW1wb3J0IHsgQ2hhbm5lbExpc3RUb2dnbGVTZXJ2aWNlIH0gZnJvbSAnLi4vY2hhbm5lbC1saXN0L2NoYW5uZWwtbGlzdC10b2dnbGUuc2VydmljZSc7XG5pbXBvcnQgeyBDaGFubmVsU2VydmljZSB9IGZyb20gJy4uL2NoYW5uZWwuc2VydmljZSc7XG5pbXBvcnQgeyBDaGF0Q2xpZW50U2VydmljZSB9IGZyb20gJy4uL2NoYXQtY2xpZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VzdG9tVGVtcGxhdGVzU2VydmljZSB9IGZyb20gJy4uL2N1c3RvbS10ZW1wbGF0ZXMuc2VydmljZSc7XG5pbXBvcnQgeyBnZXRDaGFubmVsRGlzcGxheVRleHQgfSBmcm9tICcuLi9nZXQtY2hhbm5lbC1kaXNwbGF5LXRleHQnO1xuaW1wb3J0IHtcbiAgQ2hhbm5lbEFjdGlvbnNDb250ZXh0LFxuICBDaGFubmVsSGVhZGVySW5mb0NvbnRleHQsXG4gIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MsXG59IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBUaGUgYENoYW5uZWxIZWFkZXJgIGNvbXBvbmVudCBkaXNwbGF5cyB0aGUgYXZhdGFyIGFuZCBuYW1lIG9mIHRoZSBjdXJyZW50bHkgYWN0aXZlIGNoYW5uZWwgYWxvbmcgd2l0aCBtZW1iZXIgYW5kIHdhdGNoZXIgaW5mb3JtYXRpb24uIFlvdSBjYW4gcmVhZCBhYm91dCBbdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBtZW1iZXJzIGFuZCB3YXRjaGVyc10oaHR0cHM6Ly9nZXRzdHJlYW0uaW8vY2hhdC9kb2NzL2phdmFzY3JpcHQvd2F0Y2hfY2hhbm5lbC8/bGFuZ3VhZ2U9amF2YXNjcmlwdCN3YXRjaGVycy12cy1tZW1iZXJzKSBpbiB0aGUgcGxhdGZvcm0gZG9jdW1lbnRhdGlvbi4gUGxlYXNlIG5vdGUgdGhhdCBudW1iZXIgb2Ygd2F0Y2hlcnMgaXMgb25seSBkaXNwbGF5ZWQgaWYgdGhlIHVzZXIgaGFzIFtgY29ubmVjdC1ldmVudHNgIGNhcGFiaWxpdHldKGh0dHBzOi8vZ2V0c3RyZWFtLmlvL2NoYXQvZG9jcy9qYXZhc2NyaXB0L2NoYW5uZWxfY2FwYWJpbGl0aWVzLz9sYW5ndWFnZT1qYXZhc2NyaXB0KVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHJlYW0tY2hhbm5lbC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhbm5lbC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFubmVsSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBjaGFubmVsQWN0aW9uc1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8Q2hhbm5lbEFjdGlvbnNDb250ZXh0PjtcbiAgY2hhbm5lbEhlYWRlckluZm9UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPENoYW5uZWxIZWFkZXJJbmZvQ29udGV4dD47XG4gIGFjdGl2ZUNoYW5uZWw6IENoYW5uZWw8RGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcz4gfCB1bmRlZmluZWQ7XG4gIGNhblJlY2VpdmVDb25uZWN0RXZlbnRzOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFubmVsU2VydmljZTogQ2hhbm5lbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFubmVsTGlzdFRvZ2dsZVNlcnZpY2U6IENoYW5uZWxMaXN0VG9nZ2xlU2VydmljZSxcbiAgICBwcml2YXRlIGN1c3RvbVRlbXBsYXRlc1NlcnZpY2U6IEN1c3RvbVRlbXBsYXRlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBjaGF0Q2xpZW50U2VydmljZTogQ2hhdENsaWVudFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jaGFubmVsU2VydmljZS5hY3RpdmVDaGFubmVsJC5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgIHRoaXMuYWN0aXZlQ2hhbm5lbCA9IGM7XG4gICAgICBjb25zdCBjYXBhYmlsaXRpZXMgPSB0aGlzLmFjdGl2ZUNoYW5uZWw/LmRhdGFcbiAgICAgICAgPy5vd25fY2FwYWJpbGl0aWVzIGFzIHN0cmluZ1tdO1xuICAgICAgaWYgKCFjYXBhYmlsaXRpZXMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5jYW5SZWNlaXZlQ29ubmVjdEV2ZW50cyA9XG4gICAgICAgIGNhcGFiaWxpdGllcy5pbmRleE9mKCdjb25uZWN0LWV2ZW50cycpICE9PSAtMTtcbiAgICB9KTtcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuY3VzdG9tVGVtcGxhdGVzU2VydmljZS5jaGFubmVsQWN0aW9uc1RlbXBsYXRlJC5zdWJzY3JpYmUoXG4gICAgICAgICh0ZW1wbGF0ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbm5lbEFjdGlvbnNUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuY3VzdG9tVGVtcGxhdGVzU2VydmljZS5jaGFubmVsSGVhZGVySW5mb1RlbXBsYXRlJC5zdWJzY3JpYmUoXG4gICAgICAgICh0ZW1wbGF0ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbm5lbEhlYWRlckluZm9UZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzKSA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgdG9nZ2xlTWVudShldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmNoYW5uZWxMaXN0VG9nZ2xlU2VydmljZS50b2dnbGUoKTtcbiAgfVxuXG4gIGdldENoYW5uZWxBY3Rpb25zQ29udGV4dCgpOiBDaGFubmVsQWN0aW9uc0NvbnRleHQge1xuICAgIHJldHVybiB7IGNoYW5uZWw6IHRoaXMuYWN0aXZlQ2hhbm5lbCEgfTtcbiAgfVxuXG4gIGdldENoYW5uZWxJbmZvQ29udGV4dCgpOiBDaGFubmVsSGVhZGVySW5mb0NvbnRleHQge1xuICAgIHJldHVybiB7IGNoYW5uZWw6IHRoaXMuYWN0aXZlQ2hhbm5lbCEgfTtcbiAgfVxuXG4gIGdldCBtZW1iZXJDb3VudFBhcmFtKCkge1xuICAgIHJldHVybiB7IG1lbWJlckNvdW50OiB0aGlzLmFjdGl2ZUNoYW5uZWw/LmRhdGE/Lm1lbWJlcl9jb3VudCB8fCAwIH07XG4gIH1cblxuICBnZXQgd2F0Y2hlckNvdW50UGFyYW0oKSB7XG4gICAgcmV0dXJuIHsgd2F0Y2hlckNvdW50OiB0aGlzLmFjdGl2ZUNoYW5uZWw/LnN0YXRlPy53YXRjaGVyX2NvdW50IHx8IDAgfTtcbiAgfVxuXG4gIGdldCBkaXNwbGF5VGV4dCgpIHtcbiAgICBpZiAoIXRoaXMuYWN0aXZlQ2hhbm5lbCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0Q2hhbm5lbERpc3BsYXlUZXh0KFxuICAgICAgdGhpcy5hY3RpdmVDaGFubmVsLFxuICAgICAgdGhpcy5jaGF0Q2xpZW50U2VydmljZS5jaGF0Q2xpZW50LnVzZXIhXG4gICAgKTtcbiAgfVxuXG4gIGdldCBhdmF0YXJOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUNoYW5uZWw/LmRhdGE/Lm5hbWU7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzdHItY2hhdF9faGVhZGVyLWxpdmVzdHJlYW0gc3RyLWNoYXRfX2NoYW5uZWwtaGVhZGVyXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInN0ci1jaGF0X19oZWFkZXItaGFtYnVyZ2VyXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlTWVudSgkZXZlbnQpXCJcbiAgICAoa2V5dXAuZW50ZXIpPVwidG9nZ2xlTWVudSgkZXZlbnQpXCJcbiAgPlxuICAgIDxzdHJlYW0taWNvbi1wbGFjZWhvbGRlciBpY29uPVwibWVudVwiPjwvc3RyZWFtLWljb24tcGxhY2Vob2xkZXI+XG4gIDwvZGl2PlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDxzdHJlYW0tYXZhdGFyLXBsYWNlaG9sZGVyXG4gICAgdHlwZT1cImNoYW5uZWxcIlxuICAgIGxvY2F0aW9uPVwiY2hhbm5lbC1oZWFkZXJcIlxuICAgIGltYWdlVXJsPVwie3sgYWN0aXZlQ2hhbm5lbD8uZGF0YT8uaW1hZ2UgfX1cIlxuICAgIG5hbWU9XCJ7eyBhdmF0YXJOYW1lIH19XCJcbiAgICBbY2hhbm5lbF09XCJhY3RpdmVDaGFubmVsXCJcbiAgICBbc2l6ZV09XCI0MFwiXG4gID48L3N0cmVhbS1hdmF0YXItcGxhY2Vob2xkZXI+XG4gIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9faGVhZGVyLWxpdmVzdHJlYW0tbGVmdCBzdHItY2hhdF9fY2hhbm5lbC1oZWFkZXItZW5kXCI+XG4gICAgPHBcbiAgICAgIGRhdGEtdGVzdGlkPVwibmFtZVwiXG4gICAgICBjbGFzcz1cIlxuICAgICAgICBzdHItY2hhdF9faGVhZGVyLWxpdmVzdHJlYW0tbGVmdC0tdGl0bGUgc3RyLWNoYXRfX2NoYW5uZWwtaGVhZGVyLXRpdGxlXG4gICAgICBcIlxuICAgID5cbiAgICAgIHt7IGRpc3BsYXlUZXh0IH19XG4gICAgPC9wPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIGNoYW5uZWxIZWFkZXJJbmZvVGVtcGxhdGUgfHwgZGVmYXVsdENoYW5uZWxJbmZvO1xuICAgICAgICBjb250ZXh0OiBnZXRDaGFubmVsSW5mb0NvbnRleHQoKVxuICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Q2hhbm5lbEluZm8+XG4gICAgICA8cFxuICAgICAgICBkYXRhLXRlc3RpZD1cImluZm9cIlxuICAgICAgICBjbGFzcz1cIlxuICAgICAgICAgIHN0ci1jaGF0X19oZWFkZXItbGl2ZXN0cmVhbS1sZWZ0LS1tZW1iZXJzXG4gICAgICAgICAgc3RyLWNoYXRfX2NoYW5uZWwtaGVhZGVyLWluZm9cbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAge3snc3RyZWFtQ2hhdC57eyBtZW1iZXJDb3VudCB9fSBtZW1iZXJzJyB8IHRyYW5zbGF0ZTptZW1iZXJDb3VudFBhcmFtfX1cbiAgICAgICAge3tjYW5SZWNlaXZlQ29ubmVjdEV2ZW50cyA/ICgnc3RyZWFtQ2hhdC57eyB3YXRjaGVyQ291bnQgfX0gb25saW5lJyB8XG4gICAgICAgIHRyYW5zbGF0ZTp3YXRjaGVyQ291bnRQYXJhbSkgOiAnJ319XG4gICAgICA8L3A+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjaGFubmVsQWN0aW9uc1RlbXBsYXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgY2hhbm5lbEFjdGlvbnNUZW1wbGF0ZTtcbiAgICAgICAgY29udGV4dDogZ2V0Q2hhbm5lbEFjdGlvbnNDb250ZXh0KClcbiAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
70
+ args: [{ selector: 'stream-channel-header', template: "<div class=\"str-chat__header-livestream str-chat__channel-header\">\n <ng-content></ng-content>\n <stream-avatar-placeholder\n type=\"channel\"\n location=\"channel-header\"\n imageUrl=\"{{ activeChannel?.data?.image }}\"\n name=\"{{ avatarName }}\"\n [channel]=\"activeChannel\"\n [size]=\"40\"\n ></stream-avatar-placeholder>\n <div class=\"str-chat__header-livestream-left str-chat__channel-header-end\">\n <p\n data-testid=\"name\"\n class=\"\n str-chat__header-livestream-left--title str-chat__channel-header-title\n \"\n >\n {{ displayText }}\n </p>\n <ng-container\n *ngTemplateOutlet=\"\n channelHeaderInfoTemplate || defaultChannelInfo;\n context: getChannelInfoContext()\n \"\n ></ng-container>\n <ng-template #defaultChannelInfo>\n <p\n data-testid=\"info\"\n class=\"\n str-chat__header-livestream-left--members\n str-chat__channel-header-info\n \"\n >\n {{'streamChat.{{ memberCount }} members' | translate:memberCountParam}}\n {{canReceiveConnectEvents ? ('streamChat.{{ watcherCount }} online' |\n translate:watcherCountParam) : ''}}\n </p>\n </ng-template>\n </div>\n <ng-container *ngIf=\"channelActionsTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n channelActionsTemplate;\n context: getChannelActionsContext()\n \"\n ></ng-container>\n </ng-container>\n</div>\n" }]
71
+ }], ctorParameters: function () { return [{ type: i1.ChannelService }, { type: i2.CustomTemplatesService }, { type: i0.ChangeDetectorRef }, { type: i3.ChatClientService }]; } });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL2NoYW5uZWwtaGVhZGVyL2NoYW5uZWwtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9jaGFubmVsLWhlYWRlci9jaGFubmVsLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxHQUlWLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7OztBQU9wRTs7R0FFRztBQU1ILE1BQU0sT0FBTyxzQkFBc0I7SUFPakMsWUFDVSxjQUE4QixFQUM5QixzQkFBOEMsRUFDOUMsS0FBd0IsRUFDeEIsaUJBQW9DO1FBSHBDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFOdEMsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBUXpDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2pELElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSTtnQkFDM0MsRUFBRSxnQkFBNEIsQ0FBQztZQUNqQyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUNqQixPQUFPO2FBQ1I7WUFDRCxJQUFJLENBQUMsdUJBQXVCO2dCQUMxQixZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMsc0JBQXNCLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUMzRCxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFFBQVEsQ0FBQztZQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FDRixDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLDBCQUEwQixDQUFDLFNBQVMsQ0FDOUQsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNYLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxRQUFRLENBQUM7WUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQ0YsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELHdCQUF3QjtRQUN0QixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFjLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWMsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLFlBQVksSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUN0RSxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxhQUFhLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDekUsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3ZCLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxPQUFPLHFCQUFxQixDQUMxQixJQUFJLENBQUMsYUFBYSxFQUNsQixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLElBQUssQ0FDeEMsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztJQUN4QyxDQUFDOzttSEEzRVUsc0JBQXNCO3VHQUF0QixzQkFBc0IsNkRDM0JuQyxtOUNBZ0RBOzJGRHJCYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2hhbm5lbCB9IGZyb20gJ3N0cmVhbS1jaGF0JztcbmltcG9ydCB7IENoYW5uZWxTZXJ2aWNlIH0gZnJvbSAnLi4vY2hhbm5lbC5zZXJ2aWNlJztcbmltcG9ydCB7IENoYXRDbGllbnRTZXJ2aWNlIH0gZnJvbSAnLi4vY2hhdC1jbGllbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDdXN0b21UZW1wbGF0ZXNTZXJ2aWNlIH0gZnJvbSAnLi4vY3VzdG9tLXRlbXBsYXRlcy5zZXJ2aWNlJztcbmltcG9ydCB7IGdldENoYW5uZWxEaXNwbGF5VGV4dCB9IGZyb20gJy4uL2dldC1jaGFubmVsLWRpc3BsYXktdGV4dCc7XG5pbXBvcnQge1xuICBDaGFubmVsQWN0aW9uc0NvbnRleHQsXG4gIENoYW5uZWxIZWFkZXJJbmZvQ29udGV4dCxcbiAgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIFRoZSBgQ2hhbm5lbEhlYWRlcmAgY29tcG9uZW50IGRpc3BsYXlzIHRoZSBhdmF0YXIgYW5kIG5hbWUgb2YgdGhlIGN1cnJlbnRseSBhY3RpdmUgY2hhbm5lbCBhbG9uZyB3aXRoIG1lbWJlciBhbmQgd2F0Y2hlciBpbmZvcm1hdGlvbi4gWW91IGNhbiByZWFkIGFib3V0IFt0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIG1lbWJlcnMgYW5kIHdhdGNoZXJzXShodHRwczovL2dldHN0cmVhbS5pby9jaGF0L2RvY3MvamF2YXNjcmlwdC93YXRjaF9jaGFubmVsLz9sYW5ndWFnZT1qYXZhc2NyaXB0I3dhdGNoZXJzLXZzLW1lbWJlcnMpIGluIHRoZSBwbGF0Zm9ybSBkb2N1bWVudGF0aW9uLiBQbGVhc2Ugbm90ZSB0aGF0IG51bWJlciBvZiB3YXRjaGVycyBpcyBvbmx5IGRpc3BsYXllZCBpZiB0aGUgdXNlciBoYXMgW2Bjb25uZWN0LWV2ZW50c2AgY2FwYWJpbGl0eV0oaHR0cHM6Ly9nZXRzdHJlYW0uaW8vY2hhdC9kb2NzL2phdmFzY3JpcHQvY2hhbm5lbF9jYXBhYmlsaXRpZXMvP2xhbmd1YWdlPWphdmFzY3JpcHQpXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0cmVhbS1jaGFubmVsLWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGFubmVsLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogW10sXG59KVxuZXhwb3J0IGNsYXNzIENoYW5uZWxIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGNoYW5uZWxBY3Rpb25zVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxDaGFubmVsQWN0aW9uc0NvbnRleHQ+O1xuICBjaGFubmVsSGVhZGVySW5mb1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8Q2hhbm5lbEhlYWRlckluZm9Db250ZXh0PjtcbiAgYWN0aXZlQ2hhbm5lbDogQ2hhbm5lbDxEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzPiB8IHVuZGVmaW5lZDtcbiAgY2FuUmVjZWl2ZUNvbm5lY3RFdmVudHM6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5uZWxTZXJ2aWNlOiBDaGFubmVsU2VydmljZSxcbiAgICBwcml2YXRlIGN1c3RvbVRlbXBsYXRlc1NlcnZpY2U6IEN1c3RvbVRlbXBsYXRlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBjaGF0Q2xpZW50U2VydmljZTogQ2hhdENsaWVudFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jaGFubmVsU2VydmljZS5hY3RpdmVDaGFubmVsJC5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgIHRoaXMuYWN0aXZlQ2hhbm5lbCA9IGM7XG4gICAgICBjb25zdCBjYXBhYmlsaXRpZXMgPSB0aGlzLmFjdGl2ZUNoYW5uZWw/LmRhdGFcbiAgICAgICAgPy5vd25fY2FwYWJpbGl0aWVzIGFzIHN0cmluZ1tdO1xuICAgICAgaWYgKCFjYXBhYmlsaXRpZXMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5jYW5SZWNlaXZlQ29ubmVjdEV2ZW50cyA9XG4gICAgICAgIGNhcGFiaWxpdGllcy5pbmRleE9mKCdjb25uZWN0LWV2ZW50cycpICE9PSAtMTtcbiAgICB9KTtcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuY3VzdG9tVGVtcGxhdGVzU2VydmljZS5jaGFubmVsQWN0aW9uc1RlbXBsYXRlJC5zdWJzY3JpYmUoXG4gICAgICAgICh0ZW1wbGF0ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbm5lbEFjdGlvbnNUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuY3VzdG9tVGVtcGxhdGVzU2VydmljZS5jaGFubmVsSGVhZGVySW5mb1RlbXBsYXRlJC5zdWJzY3JpYmUoXG4gICAgICAgICh0ZW1wbGF0ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbm5lbEhlYWRlckluZm9UZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzKSA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgZ2V0Q2hhbm5lbEFjdGlvbnNDb250ZXh0KCk6IENoYW5uZWxBY3Rpb25zQ29udGV4dCB7XG4gICAgcmV0dXJuIHsgY2hhbm5lbDogdGhpcy5hY3RpdmVDaGFubmVsISB9O1xuICB9XG5cbiAgZ2V0Q2hhbm5lbEluZm9Db250ZXh0KCk6IENoYW5uZWxIZWFkZXJJbmZvQ29udGV4dCB7XG4gICAgcmV0dXJuIHsgY2hhbm5lbDogdGhpcy5hY3RpdmVDaGFubmVsISB9O1xuICB9XG5cbiAgZ2V0IG1lbWJlckNvdW50UGFyYW0oKSB7XG4gICAgcmV0dXJuIHsgbWVtYmVyQ291bnQ6IHRoaXMuYWN0aXZlQ2hhbm5lbD8uZGF0YT8ubWVtYmVyX2NvdW50IHx8IDAgfTtcbiAgfVxuXG4gIGdldCB3YXRjaGVyQ291bnRQYXJhbSgpIHtcbiAgICByZXR1cm4geyB3YXRjaGVyQ291bnQ6IHRoaXMuYWN0aXZlQ2hhbm5lbD8uc3RhdGU/LndhdGNoZXJfY291bnQgfHwgMCB9O1xuICB9XG5cbiAgZ2V0IGRpc3BsYXlUZXh0KCkge1xuICAgIGlmICghdGhpcy5hY3RpdmVDaGFubmVsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBnZXRDaGFubmVsRGlzcGxheVRleHQoXG4gICAgICB0aGlzLmFjdGl2ZUNoYW5uZWwsXG4gICAgICB0aGlzLmNoYXRDbGllbnRTZXJ2aWNlLmNoYXRDbGllbnQudXNlciFcbiAgICApO1xuICB9XG5cbiAgZ2V0IGF2YXRhck5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlQ2hhbm5lbD8uZGF0YT8ubmFtZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInN0ci1jaGF0X19oZWFkZXItbGl2ZXN0cmVhbSBzdHItY2hhdF9fY2hhbm5lbC1oZWFkZXJcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8c3RyZWFtLWF2YXRhci1wbGFjZWhvbGRlclxuICAgIHR5cGU9XCJjaGFubmVsXCJcbiAgICBsb2NhdGlvbj1cImNoYW5uZWwtaGVhZGVyXCJcbiAgICBpbWFnZVVybD1cInt7IGFjdGl2ZUNoYW5uZWw/LmRhdGE/LmltYWdlIH19XCJcbiAgICBuYW1lPVwie3sgYXZhdGFyTmFtZSB9fVwiXG4gICAgW2NoYW5uZWxdPVwiYWN0aXZlQ2hhbm5lbFwiXG4gICAgW3NpemVdPVwiNDBcIlxuICA+PC9zdHJlYW0tYXZhdGFyLXBsYWNlaG9sZGVyPlxuICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2hlYWRlci1saXZlc3RyZWFtLWxlZnQgc3RyLWNoYXRfX2NoYW5uZWwtaGVhZGVyLWVuZFwiPlxuICAgIDxwXG4gICAgICBkYXRhLXRlc3RpZD1cIm5hbWVcIlxuICAgICAgY2xhc3M9XCJcbiAgICAgICAgc3RyLWNoYXRfX2hlYWRlci1saXZlc3RyZWFtLWxlZnQtLXRpdGxlIHN0ci1jaGF0X19jaGFubmVsLWhlYWRlci10aXRsZVxuICAgICAgXCJcbiAgICA+XG4gICAgICB7eyBkaXNwbGF5VGV4dCB9fVxuICAgIDwvcD5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBjaGFubmVsSGVhZGVySW5mb1RlbXBsYXRlIHx8IGRlZmF1bHRDaGFubmVsSW5mbztcbiAgICAgICAgY29udGV4dDogZ2V0Q2hhbm5lbEluZm9Db250ZXh0KClcbiAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENoYW5uZWxJbmZvPlxuICAgICAgPHBcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJpbmZvXCJcbiAgICAgICAgY2xhc3M9XCJcbiAgICAgICAgICBzdHItY2hhdF9faGVhZGVyLWxpdmVzdHJlYW0tbGVmdC0tbWVtYmVyc1xuICAgICAgICAgIHN0ci1jaGF0X19jaGFubmVsLWhlYWRlci1pbmZvXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIHt7J3N0cmVhbUNoYXQue3sgbWVtYmVyQ291bnQgfX0gbWVtYmVycycgfCB0cmFuc2xhdGU6bWVtYmVyQ291bnRQYXJhbX19XG4gICAgICAgIHt7Y2FuUmVjZWl2ZUNvbm5lY3RFdmVudHMgPyAoJ3N0cmVhbUNoYXQue3sgd2F0Y2hlckNvdW50IH19IG9ubGluZScgfFxuICAgICAgICB0cmFuc2xhdGU6d2F0Y2hlckNvdW50UGFyYW0pIDogJyd9fVxuICAgICAgPC9wPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hhbm5lbEFjdGlvbnNUZW1wbGF0ZVwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIGNoYW5uZWxBY3Rpb25zVGVtcGxhdGU7XG4gICAgICAgIGNvbnRleHQ6IGdldENoYW5uZWxBY3Rpb25zQ29udGV4dCgpXG4gICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
@@ -2,37 +2,31 @@ import { Component, ViewChild, } from '@angular/core';
2
2
  import { map } from 'rxjs/operators';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../channel.service";
5
- import * as i2 from "./channel-list-toggle.service";
6
- import * as i3 from "../custom-templates.service";
7
- import * as i4 from "../theme.service";
8
- import * as i5 from "@angular/common";
9
- import * as i6 from "../channel-preview/channel-preview.component";
10
- import * as i7 from "../icon/icon.component";
11
- import * as i8 from "../icon-placeholder/icon-placeholder.component";
12
- import * as i9 from "../loading-indicator-placeholder/loading-indicator-placeholder.component";
13
- import * as i10 from "@ngx-translate/core";
5
+ import * as i2 from "../custom-templates.service";
6
+ import * as i3 from "../theme.service";
7
+ import * as i4 from "@angular/common";
8
+ import * as i5 from "../channel-preview/channel-preview.component";
9
+ import * as i6 from "../icon/icon.component";
10
+ import * as i7 from "../icon-placeholder/icon-placeholder.component";
11
+ import * as i8 from "../loading-indicator-placeholder/loading-indicator-placeholder.component";
12
+ import * as i9 from "@ngx-translate/core";
14
13
  /**
15
14
  * The `ChannelList` component renders the list of channels.
16
15
  */
17
16
  export class ChannelListComponent {
18
- constructor(channelService, channelListToggleService, customTemplatesService, themeService) {
17
+ constructor(channelService, customTemplatesService, themeService) {
19
18
  this.channelService = channelService;
20
- this.channelListToggleService = channelListToggleService;
21
19
  this.customTemplatesService = customTemplatesService;
22
20
  this.themeService = themeService;
23
21
  this.isLoadingMoreChannels = false;
24
22
  this.subscriptions = [];
25
23
  this.theme$ = this.themeService.theme$;
26
- this.isOpen$ = this.channelListToggleService.isOpen$;
27
24
  this.channels$ = this.channelService.channels$;
28
25
  this.hasMoreChannels$ = this.channelService.hasMoreChannels$;
29
26
  this.isError$ = this.channelService.channelQueryState$.pipe(map((s) => !this.isLoadingMoreChannels && s?.state === 'error'));
30
27
  this.isInitializing$ = this.channelService.channelQueryState$.pipe(map((s) => !this.isLoadingMoreChannels && s?.state === 'in-progress'));
31
28
  this.subscriptions.push(this.customTemplatesService.channelPreviewTemplate$.subscribe((template) => (this.customChannelPreviewTemplate = template)));
32
29
  }
33
- ngAfterViewInit() {
34
- this.channelListToggleService.setMenuElement(this.container.nativeElement);
35
- }
36
30
  ngOnDestroy() {
37
31
  this.subscriptions.forEach((s) => s.unsubscribe());
38
32
  }
@@ -44,17 +38,14 @@ export class ChannelListComponent {
44
38
  trackByChannelId(index, item) {
45
39
  return item.cid;
46
40
  }
47
- channelSelected() {
48
- this.channelListToggleService.channelSelected();
49
- }
50
41
  }
51
- ChannelListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChannelListComponent, deps: [{ token: i1.ChannelService }, { token: i2.ChannelListToggleService }, { token: i3.CustomTemplatesService }, { token: i4.ThemeService }], target: i0.ɵɵFactoryTarget.Component });
52
- ChannelListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ChannelListComponent, selector: "stream-channel-list", viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\n #container\n data-testid=\"channel-list-container\"\n class=\"str-chat str-chat__channel-list str-chat-channel-list messaging str-chat__theme-{{\n theme$ | async\n }}\"\n [class.str-chat-channel-list--open]=\"(isOpen$ | async) === true\"\n>\n <div\n *ngIf=\"\n (isError$ | async) === false && (isInitializing$ | async) === false;\n else statusIndicator\n \"\n class=\"str-chat__channel-list-messenger\"\n >\n <div class=\"str-chat__channel-list-messenger__main\">\n <ng-content select=\"[channel-list-top]\"></ng-content>\n <div\n *ngIf=\"!(channels$ | async)?.length\"\n class=\"str-chat__channel-list-empty\"\n >\n <stream-icon icon=\"chat-bubble\"></stream-icon>\n <p data-testid=\"empty-channel-list-indicator\">\n {{ \"streamChat.You have no channels currently\" | translate }}\n </p>\n </div>\n <p\n *ngIf=\"!(channels$ | async)?.length\"\n class=\"str-chat__channel-list-empty-v1\"\n data-testid=\"empty-channel-list-indicator\"\n >\n {{ \"streamChat.You have no channels currently\" | translate }}\n </p>\n <ng-container\n *ngFor=\"let channel of channels$ | async; trackBy: trackByChannelId\"\n >\n <ng-template #defaultTemplate let-channelInput=\"channel\">\n <stream-channel-preview\n data-testclass=\"channel-preview\"\n [channel]=\"channelInput\"\n ></stream-channel-preview>\n </ng-template>\n <div (click)=\"channelSelected()\" (keyup.enter)=\"channelSelected()\">\n <ng-container\n *ngTemplateOutlet=\"\n customChannelPreviewTemplate || defaultTemplate;\n context: { channel: channel }\n \"\n ></ng-container>\n </div>\n </ng-container>\n <div\n *ngIf=\"hasMoreChannels$ | async\"\n class=\"str-chat__load-more-button\"\n data-testid=\"load-more\"\n (click)=\"loadMoreChannels()\"\n (keyup.enter)=\"loadMoreChannels()\"\n >\n <button\n class=\"str-chat__load-more-button__button str-chat__cta-button\"\n data-testid=\"load-more-button\"\n [disabled]=\"isLoadingMoreChannels\"\n >\n <span *ngIf=\"!isLoadingMoreChannels; else loadingIndicator\">{{\n \"Load more\" | translate\n }}</span>\n <ng-template #loadingIndicator\n ><stream-loading-indicator-placeholder></stream-loading-indicator-placeholder\n ></ng-template>\n </button>\n </div>\n <ng-content select=\"[channel-list-bottom]\"></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #statusIndicator>\n <ng-container *ngIf=\"isError$ | async\">\n <ng-container *ngTemplateOutlet=\"chatDown\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isInitializing$ | async\">\n <ng-container *ngTemplateOutlet=\"loadingChannels\"></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #chatDown>\n <div data-testid=\"chatdown-container\" class=\"str-chat__down\">\n <ng-container *ngTemplateOutlet=\"loadingChannels\"></ng-container>\n <div class=\"str-chat__down-main\">\n <stream-icon-placeholder\n icon=\"connection-error\"\n ></stream-icon-placeholder>\n <h1>{{ \"streamChat.Connection error\" | translate }}</h1>\n <h3>\n {{\n \"streamChat.Error connecting to chat, refresh the page to try again.\"\n | translate\n }}\n </h3>\n </div>\n </div>\n</ng-template>\n\n<ng-template #loadingChannels>\n <div data-testid=\"loading-indicator\" class=\"str-chat__loading-channels\">\n <ng-container *ngTemplateOutlet=\"loadingChannel\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingChannel\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingChannel\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #loadingChannel>\n <div\n class=\"str-chat__loading-channels-item str-chat__channel-preview-loading\"\n >\n <div class=\"str-chat__loading-channels-avatar\"></div>\n <div\n class=\"\n str-chat__loading-channels-meta str-chat__channel-preview-end-loading\n \"\n >\n <div class=\"str-chat__loading-channels-username\"></div>\n <div class=\"str-chat__loading-channels-status\"></div>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.ChannelPreviewComponent, selector: "stream-channel-preview", inputs: ["channel"] }, { kind: "component", type: i7.IconComponent, selector: "stream-icon", inputs: ["icon", "size"] }, { kind: "component", type: i8.IconPlaceholderComponent, selector: "stream-icon-placeholder", inputs: ["icon", "size"] }, { kind: "component", type: i9.LoadingIndicatorPlaceholderComponent, selector: "stream-loading-indicator-placeholder", inputs: ["size", "color"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] });
42
+ ChannelListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChannelListComponent, deps: [{ token: i1.ChannelService }, { token: i2.CustomTemplatesService }, { token: i3.ThemeService }], target: i0.ɵɵFactoryTarget.Component });
43
+ ChannelListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ChannelListComponent, selector: "stream-channel-list", viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\n #container\n data-testid=\"channel-list-container\"\n class=\"str-chat str-chat__channel-list str-chat-channel-list messaging str-chat__theme-{{\n theme$ | async\n }}\"\n>\n <div\n *ngIf=\"\n (isError$ | async) === false && (isInitializing$ | async) === false;\n else statusIndicator\n \"\n class=\"str-chat__channel-list-messenger\"\n >\n <div class=\"str-chat__channel-list-messenger__main\">\n <ng-content select=\"[channel-list-top]\"></ng-content>\n <div\n *ngIf=\"!(channels$ | async)?.length\"\n class=\"str-chat__channel-list-empty\"\n >\n <stream-icon icon=\"chat-bubble\"></stream-icon>\n <p data-testid=\"empty-channel-list-indicator\">\n {{ \"streamChat.You have no channels currently\" | translate }}\n </p>\n </div>\n <p\n *ngIf=\"!(channels$ | async)?.length\"\n class=\"str-chat__channel-list-empty-v1\"\n data-testid=\"empty-channel-list-indicator\"\n >\n {{ \"streamChat.You have no channels currently\" | translate }}\n </p>\n <ng-container\n *ngFor=\"let channel of channels$ | async; trackBy: trackByChannelId\"\n >\n <ng-template #defaultTemplate let-channelInput=\"channel\">\n <stream-channel-preview\n data-testclass=\"channel-preview\"\n [channel]=\"channelInput\"\n ></stream-channel-preview>\n </ng-template>\n <div>\n <ng-container\n *ngTemplateOutlet=\"\n customChannelPreviewTemplate || defaultTemplate;\n context: { channel: channel }\n \"\n ></ng-container>\n </div>\n </ng-container>\n <div\n *ngIf=\"hasMoreChannels$ | async\"\n class=\"str-chat__load-more-button\"\n data-testid=\"load-more\"\n (click)=\"loadMoreChannels()\"\n (keyup.enter)=\"loadMoreChannels()\"\n >\n <button\n class=\"str-chat__load-more-button__button str-chat__cta-button\"\n data-testid=\"load-more-button\"\n [disabled]=\"isLoadingMoreChannels\"\n >\n <span *ngIf=\"!isLoadingMoreChannels; else loadingIndicator\">{{\n \"Load more\" | translate\n }}</span>\n <ng-template #loadingIndicator\n ><stream-loading-indicator-placeholder></stream-loading-indicator-placeholder\n ></ng-template>\n </button>\n </div>\n <ng-content select=\"[channel-list-bottom]\"></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #statusIndicator>\n <ng-container *ngIf=\"isError$ | async\">\n <ng-container *ngTemplateOutlet=\"chatDown\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isInitializing$ | async\">\n <ng-container *ngTemplateOutlet=\"loadingChannels\"></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #chatDown>\n <div data-testid=\"chatdown-container\" class=\"str-chat__down\">\n <ng-container *ngTemplateOutlet=\"loadingChannels\"></ng-container>\n <div class=\"str-chat__down-main\">\n <stream-icon-placeholder\n icon=\"connection-error\"\n ></stream-icon-placeholder>\n <h1>{{ \"streamChat.Connection error\" | translate }}</h1>\n <h3>\n {{\n \"streamChat.Error connecting to chat, refresh the page to try again.\"\n | translate\n }}\n </h3>\n </div>\n </div>\n</ng-template>\n\n<ng-template #loadingChannels>\n <div data-testid=\"loading-indicator\" class=\"str-chat__loading-channels\">\n <ng-container *ngTemplateOutlet=\"loadingChannel\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingChannel\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingChannel\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #loadingChannel>\n <div\n class=\"str-chat__loading-channels-item str-chat__channel-preview-loading\"\n >\n <div class=\"str-chat__loading-channels-avatar\"></div>\n <div\n class=\"\n str-chat__loading-channels-meta str-chat__channel-preview-end-loading\n \"\n >\n <div class=\"str-chat__loading-channels-username\"></div>\n <div class=\"str-chat__loading-channels-status\"></div>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.ChannelPreviewComponent, selector: "stream-channel-preview", inputs: ["channel"] }, { kind: "component", type: i6.IconComponent, selector: "stream-icon", inputs: ["icon", "size"] }, { kind: "component", type: i7.IconPlaceholderComponent, selector: "stream-icon-placeholder", inputs: ["icon", "size"] }, { kind: "component", type: i8.LoadingIndicatorPlaceholderComponent, selector: "stream-loading-indicator-placeholder", inputs: ["size", "color"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] });
53
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChannelListComponent, decorators: [{
54
45
  type: Component,
55
- args: [{ selector: 'stream-channel-list', template: "<div\n #container\n data-testid=\"channel-list-container\"\n class=\"str-chat str-chat__channel-list str-chat-channel-list messaging str-chat__theme-{{\n theme$ | async\n }}\"\n [class.str-chat-channel-list--open]=\"(isOpen$ | async) === true\"\n>\n <div\n *ngIf=\"\n (isError$ | async) === false && (isInitializing$ | async) === false;\n else statusIndicator\n \"\n class=\"str-chat__channel-list-messenger\"\n >\n <div class=\"str-chat__channel-list-messenger__main\">\n <ng-content select=\"[channel-list-top]\"></ng-content>\n <div\n *ngIf=\"!(channels$ | async)?.length\"\n class=\"str-chat__channel-list-empty\"\n >\n <stream-icon icon=\"chat-bubble\"></stream-icon>\n <p data-testid=\"empty-channel-list-indicator\">\n {{ \"streamChat.You have no channels currently\" | translate }}\n </p>\n </div>\n <p\n *ngIf=\"!(channels$ | async)?.length\"\n class=\"str-chat__channel-list-empty-v1\"\n data-testid=\"empty-channel-list-indicator\"\n >\n {{ \"streamChat.You have no channels currently\" | translate }}\n </p>\n <ng-container\n *ngFor=\"let channel of channels$ | async; trackBy: trackByChannelId\"\n >\n <ng-template #defaultTemplate let-channelInput=\"channel\">\n <stream-channel-preview\n data-testclass=\"channel-preview\"\n [channel]=\"channelInput\"\n ></stream-channel-preview>\n </ng-template>\n <div (click)=\"channelSelected()\" (keyup.enter)=\"channelSelected()\">\n <ng-container\n *ngTemplateOutlet=\"\n customChannelPreviewTemplate || defaultTemplate;\n context: { channel: channel }\n \"\n ></ng-container>\n </div>\n </ng-container>\n <div\n *ngIf=\"hasMoreChannels$ | async\"\n class=\"str-chat__load-more-button\"\n data-testid=\"load-more\"\n (click)=\"loadMoreChannels()\"\n (keyup.enter)=\"loadMoreChannels()\"\n >\n <button\n class=\"str-chat__load-more-button__button str-chat__cta-button\"\n data-testid=\"load-more-button\"\n [disabled]=\"isLoadingMoreChannels\"\n >\n <span *ngIf=\"!isLoadingMoreChannels; else loadingIndicator\">{{\n \"Load more\" | translate\n }}</span>\n <ng-template #loadingIndicator\n ><stream-loading-indicator-placeholder></stream-loading-indicator-placeholder\n ></ng-template>\n </button>\n </div>\n <ng-content select=\"[channel-list-bottom]\"></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #statusIndicator>\n <ng-container *ngIf=\"isError$ | async\">\n <ng-container *ngTemplateOutlet=\"chatDown\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isInitializing$ | async\">\n <ng-container *ngTemplateOutlet=\"loadingChannels\"></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #chatDown>\n <div data-testid=\"chatdown-container\" class=\"str-chat__down\">\n <ng-container *ngTemplateOutlet=\"loadingChannels\"></ng-container>\n <div class=\"str-chat__down-main\">\n <stream-icon-placeholder\n icon=\"connection-error\"\n ></stream-icon-placeholder>\n <h1>{{ \"streamChat.Connection error\" | translate }}</h1>\n <h3>\n {{\n \"streamChat.Error connecting to chat, refresh the page to try again.\"\n | translate\n }}\n </h3>\n </div>\n </div>\n</ng-template>\n\n<ng-template #loadingChannels>\n <div data-testid=\"loading-indicator\" class=\"str-chat__loading-channels\">\n <ng-container *ngTemplateOutlet=\"loadingChannel\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingChannel\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingChannel\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #loadingChannel>\n <div\n class=\"str-chat__loading-channels-item str-chat__channel-preview-loading\"\n >\n <div class=\"str-chat__loading-channels-avatar\"></div>\n <div\n class=\"\n str-chat__loading-channels-meta str-chat__channel-preview-end-loading\n \"\n >\n <div class=\"str-chat__loading-channels-username\"></div>\n <div class=\"str-chat__loading-channels-status\"></div>\n </div>\n </div>\n</ng-template>\n" }]
56
- }], ctorParameters: function () { return [{ type: i1.ChannelService }, { type: i2.ChannelListToggleService }, { type: i3.CustomTemplatesService }, { type: i4.ThemeService }]; }, propDecorators: { container: [{
46
+ args: [{ selector: 'stream-channel-list', template: "<div\n #container\n data-testid=\"channel-list-container\"\n class=\"str-chat str-chat__channel-list str-chat-channel-list messaging str-chat__theme-{{\n theme$ | async\n }}\"\n>\n <div\n *ngIf=\"\n (isError$ | async) === false && (isInitializing$ | async) === false;\n else statusIndicator\n \"\n class=\"str-chat__channel-list-messenger\"\n >\n <div class=\"str-chat__channel-list-messenger__main\">\n <ng-content select=\"[channel-list-top]\"></ng-content>\n <div\n *ngIf=\"!(channels$ | async)?.length\"\n class=\"str-chat__channel-list-empty\"\n >\n <stream-icon icon=\"chat-bubble\"></stream-icon>\n <p data-testid=\"empty-channel-list-indicator\">\n {{ \"streamChat.You have no channels currently\" | translate }}\n </p>\n </div>\n <p\n *ngIf=\"!(channels$ | async)?.length\"\n class=\"str-chat__channel-list-empty-v1\"\n data-testid=\"empty-channel-list-indicator\"\n >\n {{ \"streamChat.You have no channels currently\" | translate }}\n </p>\n <ng-container\n *ngFor=\"let channel of channels$ | async; trackBy: trackByChannelId\"\n >\n <ng-template #defaultTemplate let-channelInput=\"channel\">\n <stream-channel-preview\n data-testclass=\"channel-preview\"\n [channel]=\"channelInput\"\n ></stream-channel-preview>\n </ng-template>\n <div>\n <ng-container\n *ngTemplateOutlet=\"\n customChannelPreviewTemplate || defaultTemplate;\n context: { channel: channel }\n \"\n ></ng-container>\n </div>\n </ng-container>\n <div\n *ngIf=\"hasMoreChannels$ | async\"\n class=\"str-chat__load-more-button\"\n data-testid=\"load-more\"\n (click)=\"loadMoreChannels()\"\n (keyup.enter)=\"loadMoreChannels()\"\n >\n <button\n class=\"str-chat__load-more-button__button str-chat__cta-button\"\n data-testid=\"load-more-button\"\n [disabled]=\"isLoadingMoreChannels\"\n >\n <span *ngIf=\"!isLoadingMoreChannels; else loadingIndicator\">{{\n \"Load more\" | translate\n }}</span>\n <ng-template #loadingIndicator\n ><stream-loading-indicator-placeholder></stream-loading-indicator-placeholder\n ></ng-template>\n </button>\n </div>\n <ng-content select=\"[channel-list-bottom]\"></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #statusIndicator>\n <ng-container *ngIf=\"isError$ | async\">\n <ng-container *ngTemplateOutlet=\"chatDown\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isInitializing$ | async\">\n <ng-container *ngTemplateOutlet=\"loadingChannels\"></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #chatDown>\n <div data-testid=\"chatdown-container\" class=\"str-chat__down\">\n <ng-container *ngTemplateOutlet=\"loadingChannels\"></ng-container>\n <div class=\"str-chat__down-main\">\n <stream-icon-placeholder\n icon=\"connection-error\"\n ></stream-icon-placeholder>\n <h1>{{ \"streamChat.Connection error\" | translate }}</h1>\n <h3>\n {{\n \"streamChat.Error connecting to chat, refresh the page to try again.\"\n | translate\n }}\n </h3>\n </div>\n </div>\n</ng-template>\n\n<ng-template #loadingChannels>\n <div data-testid=\"loading-indicator\" class=\"str-chat__loading-channels\">\n <ng-container *ngTemplateOutlet=\"loadingChannel\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingChannel\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingChannel\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #loadingChannel>\n <div\n class=\"str-chat__loading-channels-item str-chat__channel-preview-loading\"\n >\n <div class=\"str-chat__loading-channels-avatar\"></div>\n <div\n class=\"\n str-chat__loading-channels-meta str-chat__channel-preview-end-loading\n \"\n >\n <div class=\"str-chat__loading-channels-username\"></div>\n <div class=\"str-chat__loading-channels-status\"></div>\n </div>\n </div>\n</ng-template>\n" }]
47
+ }], ctorParameters: function () { return [{ type: i1.ChannelService }, { type: i2.CustomTemplatesService }, { type: i3.ThemeService }]; }, propDecorators: { container: [{
57
48
  type: ViewChild,
58
49
  args: ['container']
59
50
  }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9jaGFubmVsLWxpc3QvY2hhbm5lbC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9jaGFubmVsLWxpc3QvY2hhbm5lbC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBSVQsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUXJDOztHQUVHO0FBTUgsTUFBTSxPQUFPLG9CQUFvQjtJQVkvQixZQUNVLGNBQThCLEVBQzlCLHdCQUFrRCxFQUNsRCxzQkFBOEMsRUFDOUMsWUFBMEI7UUFIMUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQVpwQywwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFLOUIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBU2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDO1FBQ3JELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7UUFDL0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUM7UUFDN0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FDekQsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLEVBQUUsS0FBSyxLQUFLLE9BQU8sQ0FBQyxDQUNoRSxDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FDaEUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLEVBQUUsS0FBSyxLQUFLLGFBQWEsQ0FBQyxDQUN0RSxDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQzNELENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxRQUFRLENBQUMsQ0FDN0QsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELGVBQWU7UUFDYixJQUFJLENBQUMsd0JBQXdCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0I7UUFDcEIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUNsQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsSUFBd0M7UUFDdEUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2xELENBQUM7O2lIQXREVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixtS0N6QmpDLHkxSUE4SEE7MkZEckdhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxxQkFBcUI7NE1BY0MsU0FBUztzQkFBeEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBPbkRlc3Ryb3ksXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDaGFubmVsIH0gZnJvbSAnc3RyZWFtLWNoYXQnO1xuaW1wb3J0IHsgQ2hhbm5lbFNlcnZpY2UgfSBmcm9tICcuLi9jaGFubmVsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VzdG9tVGVtcGxhdGVzU2VydmljZSB9IGZyb20gJy4uL2N1c3RvbS10ZW1wbGF0ZXMuc2VydmljZSc7XG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi90aGVtZS5zZXJ2aWNlJztcbmltcG9ydCB7IENoYW5uZWxQcmV2aWV3Q29udGV4dCwgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IENoYW5uZWxMaXN0VG9nZ2xlU2VydmljZSB9IGZyb20gJy4vY2hhbm5lbC1saXN0LXRvZ2dsZS5zZXJ2aWNlJztcblxuLyoqXG4gKiBUaGUgYENoYW5uZWxMaXN0YCBjb21wb25lbnQgcmVuZGVycyB0aGUgbGlzdCBvZiBjaGFubmVscy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3RyZWFtLWNoYW5uZWwtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGFubmVsLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFubmVsTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIGNoYW5uZWxzJDogT2JzZXJ2YWJsZTxDaGFubmVsPERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+W10gfCB1bmRlZmluZWQ+O1xuICBpc0Vycm9yJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgaXNJbml0aWFsaXppbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBpc0xvYWRpbmdNb3JlQ2hhbm5lbHMgPSBmYWxzZTtcbiAgaXNPcGVuJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgaGFzTW9yZUNoYW5uZWxzJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgY3VzdG9tQ2hhbm5lbFByZXZpZXdUZW1wbGF0ZTogVGVtcGxhdGVSZWY8Q2hhbm5lbFByZXZpZXdDb250ZXh0PiB8IHVuZGVmaW5lZDtcbiAgdGhlbWUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIHByaXZhdGUgY29udGFpbmVyITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFubmVsU2VydmljZTogQ2hhbm5lbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFubmVsTGlzdFRvZ2dsZVNlcnZpY2U6IENoYW5uZWxMaXN0VG9nZ2xlU2VydmljZSxcbiAgICBwcml2YXRlIGN1c3RvbVRlbXBsYXRlc1NlcnZpY2U6IEN1c3RvbVRlbXBsYXRlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0aGVtZVNlcnZpY2U6IFRoZW1lU2VydmljZVxuICApIHtcbiAgICB0aGlzLnRoZW1lJCA9IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lJDtcbiAgICB0aGlzLmlzT3BlbiQgPSB0aGlzLmNoYW5uZWxMaXN0VG9nZ2xlU2VydmljZS5pc09wZW4kO1xuICAgIHRoaXMuY2hhbm5lbHMkID0gdGhpcy5jaGFubmVsU2VydmljZS5jaGFubmVscyQ7XG4gICAgdGhpcy5oYXNNb3JlQ2hhbm5lbHMkID0gdGhpcy5jaGFubmVsU2VydmljZS5oYXNNb3JlQ2hhbm5lbHMkO1xuICAgIHRoaXMuaXNFcnJvciQgPSB0aGlzLmNoYW5uZWxTZXJ2aWNlLmNoYW5uZWxRdWVyeVN0YXRlJC5waXBlKFxuICAgICAgbWFwKChzKSA9PiAhdGhpcy5pc0xvYWRpbmdNb3JlQ2hhbm5lbHMgJiYgcz8uc3RhdGUgPT09ICdlcnJvcicpXG4gICAgKTtcbiAgICB0aGlzLmlzSW5pdGlhbGl6aW5nJCA9IHRoaXMuY2hhbm5lbFNlcnZpY2UuY2hhbm5lbFF1ZXJ5U3RhdGUkLnBpcGUoXG4gICAgICBtYXAoKHMpID0+ICF0aGlzLmlzTG9hZGluZ01vcmVDaGFubmVscyAmJiBzPy5zdGF0ZSA9PT0gJ2luLXByb2dyZXNzJylcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5jdXN0b21UZW1wbGF0ZXNTZXJ2aWNlLmNoYW5uZWxQcmV2aWV3VGVtcGxhdGUkLnN1YnNjcmliZShcbiAgICAgICAgKHRlbXBsYXRlKSA9PiAodGhpcy5jdXN0b21DaGFubmVsUHJldmlld1RlbXBsYXRlID0gdGVtcGxhdGUpXG4gICAgICApXG4gICAgKTtcbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGFubmVsTGlzdFRvZ2dsZVNlcnZpY2Uuc2V0TWVudUVsZW1lbnQodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgocykgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWRNb3JlQ2hhbm5lbHMoKSB7XG4gICAgdGhpcy5pc0xvYWRpbmdNb3JlQ2hhbm5lbHMgPSB0cnVlO1xuICAgIGF3YWl0IHRoaXMuY2hhbm5lbFNlcnZpY2UubG9hZE1vcmVDaGFubmVscygpO1xuICAgIHRoaXMuaXNMb2FkaW5nTW9yZUNoYW5uZWxzID0gZmFsc2U7XG4gIH1cblxuICB0cmFja0J5Q2hhbm5lbElkKGluZGV4OiBudW1iZXIsIGl0ZW06IENoYW5uZWw8RGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcz4pIHtcbiAgICByZXR1cm4gaXRlbS5jaWQ7XG4gIH1cblxuICBjaGFubmVsU2VsZWN0ZWQoKSB7XG4gICAgdGhpcy5jaGFubmVsTGlzdFRvZ2dsZVNlcnZpY2UuY2hhbm5lbFNlbGVjdGVkKCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgI2NvbnRhaW5lclxuICBkYXRhLXRlc3RpZD1cImNoYW5uZWwtbGlzdC1jb250YWluZXJcIlxuICBjbGFzcz1cInN0ci1jaGF0IHN0ci1jaGF0X19jaGFubmVsLWxpc3Qgc3RyLWNoYXQtY2hhbm5lbC1saXN0IG1lc3NhZ2luZyBzdHItY2hhdF9fdGhlbWUte3tcbiAgICB0aGVtZSQgfCBhc3luY1xuICB9fVwiXG4gIFtjbGFzcy5zdHItY2hhdC1jaGFubmVsLWxpc3QtLW9wZW5dPVwiKGlzT3BlbiQgfCBhc3luYykgPT09IHRydWVcIlxuPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJcbiAgICAgIChpc0Vycm9yJCB8IGFzeW5jKSA9PT0gZmFsc2UgJiYgKGlzSW5pdGlhbGl6aW5nJCB8IGFzeW5jKSA9PT0gZmFsc2U7XG4gICAgICBlbHNlIHN0YXR1c0luZGljYXRvclxuICAgIFwiXG4gICAgY2xhc3M9XCJzdHItY2hhdF9fY2hhbm5lbC1saXN0LW1lc3NlbmdlclwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2NoYW5uZWwtbGlzdC1tZXNzZW5nZXJfX21haW5cIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjaGFubmVsLWxpc3QtdG9wXVwiPjwvbmctY29udGVudD5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCIhKGNoYW5uZWxzJCB8IGFzeW5jKT8ubGVuZ3RoXCJcbiAgICAgICAgY2xhc3M9XCJzdHItY2hhdF9fY2hhbm5lbC1saXN0LWVtcHR5XCJcbiAgICAgID5cbiAgICAgICAgPHN0cmVhbS1pY29uIGljb249XCJjaGF0LWJ1YmJsZVwiPjwvc3RyZWFtLWljb24+XG4gICAgICAgIDxwIGRhdGEtdGVzdGlkPVwiZW1wdHktY2hhbm5lbC1saXN0LWluZGljYXRvclwiPlxuICAgICAgICAgIHt7IFwic3RyZWFtQ2hhdC5Zb3UgaGF2ZSBubyBjaGFubmVscyBjdXJyZW50bHlcIiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxwXG4gICAgICAgICpuZ0lmPVwiIShjaGFubmVscyQgfCBhc3luYyk/Lmxlbmd0aFwiXG4gICAgICAgIGNsYXNzPVwic3RyLWNoYXRfX2NoYW5uZWwtbGlzdC1lbXB0eS12MVwiXG4gICAgICAgIGRhdGEtdGVzdGlkPVwiZW1wdHktY2hhbm5lbC1saXN0LWluZGljYXRvclwiXG4gICAgICA+XG4gICAgICAgIHt7IFwic3RyZWFtQ2hhdC5Zb3UgaGF2ZSBubyBjaGFubmVscyBjdXJyZW50bHlcIiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9wPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdGb3I9XCJsZXQgY2hhbm5lbCBvZiBjaGFubmVscyQgfCBhc3luYzsgdHJhY2tCeTogdHJhY2tCeUNoYW5uZWxJZFwiXG4gICAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXBsYXRlIGxldC1jaGFubmVsSW5wdXQ9XCJjaGFubmVsXCI+XG4gICAgICAgICAgPHN0cmVhbS1jaGFubmVsLXByZXZpZXdcbiAgICAgICAgICAgIGRhdGEtdGVzdGNsYXNzPVwiY2hhbm5lbC1wcmV2aWV3XCJcbiAgICAgICAgICAgIFtjaGFubmVsXT1cImNoYW5uZWxJbnB1dFwiXG4gICAgICAgICAgPjwvc3RyZWFtLWNoYW5uZWwtcHJldmlldz5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPGRpdiAoY2xpY2spPVwiY2hhbm5lbFNlbGVjdGVkKClcIiAoa2V5dXAuZW50ZXIpPVwiY2hhbm5lbFNlbGVjdGVkKClcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICBjdXN0b21DaGFubmVsUHJldmlld1RlbXBsYXRlIHx8IGRlZmF1bHRUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgY29udGV4dDogeyBjaGFubmVsOiBjaGFubmVsIH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cImhhc01vcmVDaGFubmVscyQgfCBhc3luY1wiXG4gICAgICAgIGNsYXNzPVwic3RyLWNoYXRfX2xvYWQtbW9yZS1idXR0b25cIlxuICAgICAgICBkYXRhLXRlc3RpZD1cImxvYWQtbW9yZVwiXG4gICAgICAgIChjbGljayk9XCJsb2FkTW9yZUNoYW5uZWxzKClcIlxuICAgICAgICAoa2V5dXAuZW50ZXIpPVwibG9hZE1vcmVDaGFubmVscygpXCJcbiAgICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwic3RyLWNoYXRfX2xvYWQtbW9yZS1idXR0b25fX2J1dHRvbiBzdHItY2hhdF9fY3RhLWJ1dHRvblwiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJsb2FkLW1vcmUtYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nTW9yZUNoYW5uZWxzXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWlzTG9hZGluZ01vcmVDaGFubmVsczsgZWxzZSBsb2FkaW5nSW5kaWNhdG9yXCI+e3tcbiAgICAgICAgICAgIFwiTG9hZCBtb3JlXCIgfCB0cmFuc2xhdGVcbiAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2xvYWRpbmdJbmRpY2F0b3JcbiAgICAgICAgICAgID48c3RyZWFtLWxvYWRpbmctaW5kaWNhdG9yLXBsYWNlaG9sZGVyPjwvc3RyZWFtLWxvYWRpbmctaW5kaWNhdG9yLXBsYWNlaG9sZGVyXG4gICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY2hhbm5lbC1saXN0LWJvdHRvbV1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc3RhdHVzSW5kaWNhdG9yPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFcnJvciQgfCBhc3luY1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjaGF0RG93blwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzSW5pdGlhbGl6aW5nJCB8IGFzeW5jXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdDaGFubmVsc1wiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY2hhdERvd24+XG4gIDxkaXYgZGF0YS10ZXN0aWQ9XCJjaGF0ZG93bi1jb250YWluZXJcIiBjbGFzcz1cInN0ci1jaGF0X19kb3duXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdDaGFubmVsc1wiPjwvbmctY29udGFpbmVyPlxuICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fZG93bi1tYWluXCI+XG4gICAgICA8c3RyZWFtLWljb24tcGxhY2Vob2xkZXJcbiAgICAgICAgaWNvbj1cImNvbm5lY3Rpb24tZXJyb3JcIlxuICAgICAgPjwvc3RyZWFtLWljb24tcGxhY2Vob2xkZXI+XG4gICAgICA8aDE+e3sgXCJzdHJlYW1DaGF0LkNvbm5lY3Rpb24gZXJyb3JcIiB8IHRyYW5zbGF0ZSB9fTwvaDE+XG4gICAgICA8aDM+XG4gICAgICAgIHt7XG4gICAgICAgICAgXCJzdHJlYW1DaGF0LkVycm9yIGNvbm5lY3RpbmcgdG8gY2hhdCwgcmVmcmVzaCB0aGUgcGFnZSB0byB0cnkgYWdhaW4uXCJcbiAgICAgICAgICAgIHwgdHJhbnNsYXRlXG4gICAgICAgIH19XG4gICAgICA8L2gzPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZ0NoYW5uZWxzPlxuICA8ZGl2IGRhdGEtdGVzdGlkPVwibG9hZGluZy1pbmRpY2F0b3JcIiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWxzXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdDaGFubmVsXCI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdDaGFubmVsXCI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdDaGFubmVsXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nQ2hhbm5lbD5cbiAgPGRpdlxuICAgIGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbHMtaXRlbSBzdHItY2hhdF9fY2hhbm5lbC1wcmV2aWV3LWxvYWRpbmdcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWxzLWF2YXRhclwiPjwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiXG4gICAgICAgIHN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWxzLW1ldGEgc3RyLWNoYXRfX2NoYW5uZWwtcHJldmlldy1lbmQtbG9hZGluZ1xuICAgICAgXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbHMtdXNlcm5hbWVcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVscy1zdGF0dXNcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9jaGFubmVsLWxpc3QvY2hhbm5lbC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9jaGFubmVsLWxpc3QvY2hhbm5lbC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBSVQsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFPckM7O0dBRUc7QUFNSCxNQUFNLE9BQU8sb0JBQW9CO0lBVy9CLFlBQ1UsY0FBOEIsRUFDOUIsc0JBQThDLEVBQzlDLFlBQTBCO1FBRjFCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBVnBDLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUk5QixrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFRakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1FBQy9DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDO1FBQzdELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQ3pELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLElBQUksQ0FBQyxFQUFFLEtBQUssS0FBSyxPQUFPLENBQUMsQ0FDaEUsQ0FBQztRQUNGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQ2hFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLElBQUksQ0FBQyxFQUFFLEtBQUssS0FBSyxhQUFhLENBQUMsQ0FDdEUsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMsc0JBQXNCLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUMzRCxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLEdBQUcsUUFBUSxDQUFDLENBQzdELENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxLQUFLLENBQUMsZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFDbEMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYSxFQUFFLElBQXdDO1FBQ3RFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDOztpSEE1Q1Usb0JBQW9CO3FHQUFwQixvQkFBb0IsbUtDdkJqQyxpdElBNkhBOzJGRHRHYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UscUJBQXFCO3FLQWFDLFNBQVM7c0JBQXhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgT25EZXN0cm95LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ2hhbm5lbCB9IGZyb20gJ3N0cmVhbS1jaGF0JztcbmltcG9ydCB7IENoYW5uZWxTZXJ2aWNlIH0gZnJvbSAnLi4vY2hhbm5lbC5zZXJ2aWNlJztcbmltcG9ydCB7IEN1c3RvbVRlbXBsYXRlc1NlcnZpY2UgfSBmcm9tICcuLi9jdXN0b20tdGVtcGxhdGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vdGhlbWUuc2VydmljZSc7XG5pbXBvcnQgeyBDaGFubmVsUHJldmlld0NvbnRleHQsIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogVGhlIGBDaGFubmVsTGlzdGAgY29tcG9uZW50IHJlbmRlcnMgdGhlIGxpc3Qgb2YgY2hhbm5lbHMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0cmVhbS1jaGFubmVsLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhbm5lbC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhbm5lbExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBjaGFubmVscyQ6IE9ic2VydmFibGU8Q2hhbm5lbDxEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzPltdIHwgdW5kZWZpbmVkPjtcbiAgaXNFcnJvciQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGlzSW5pdGlhbGl6aW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgaXNMb2FkaW5nTW9yZUNoYW5uZWxzID0gZmFsc2U7XG4gIGhhc01vcmVDaGFubmVscyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGN1c3RvbUNoYW5uZWxQcmV2aWV3VGVtcGxhdGU6IFRlbXBsYXRlUmVmPENoYW5uZWxQcmV2aWV3Q29udGV4dD4gfCB1bmRlZmluZWQ7XG4gIHRoZW1lJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBAVmlld0NoaWxkKCdjb250YWluZXInKSBwcml2YXRlIGNvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbm5lbFNlcnZpY2U6IENoYW5uZWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgY3VzdG9tVGVtcGxhdGVzU2VydmljZTogQ3VzdG9tVGVtcGxhdGVzU2VydmljZSxcbiAgICBwcml2YXRlIHRoZW1lU2VydmljZTogVGhlbWVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudGhlbWUkID0gdGhpcy50aGVtZVNlcnZpY2UudGhlbWUkO1xuICAgIHRoaXMuY2hhbm5lbHMkID0gdGhpcy5jaGFubmVsU2VydmljZS5jaGFubmVscyQ7XG4gICAgdGhpcy5oYXNNb3JlQ2hhbm5lbHMkID0gdGhpcy5jaGFubmVsU2VydmljZS5oYXNNb3JlQ2hhbm5lbHMkO1xuICAgIHRoaXMuaXNFcnJvciQgPSB0aGlzLmNoYW5uZWxTZXJ2aWNlLmNoYW5uZWxRdWVyeVN0YXRlJC5waXBlKFxuICAgICAgbWFwKChzKSA9PiAhdGhpcy5pc0xvYWRpbmdNb3JlQ2hhbm5lbHMgJiYgcz8uc3RhdGUgPT09ICdlcnJvcicpXG4gICAgKTtcbiAgICB0aGlzLmlzSW5pdGlhbGl6aW5nJCA9IHRoaXMuY2hhbm5lbFNlcnZpY2UuY2hhbm5lbFF1ZXJ5U3RhdGUkLnBpcGUoXG4gICAgICBtYXAoKHMpID0+ICF0aGlzLmlzTG9hZGluZ01vcmVDaGFubmVscyAmJiBzPy5zdGF0ZSA9PT0gJ2luLXByb2dyZXNzJylcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5jdXN0b21UZW1wbGF0ZXNTZXJ2aWNlLmNoYW5uZWxQcmV2aWV3VGVtcGxhdGUkLnN1YnNjcmliZShcbiAgICAgICAgKHRlbXBsYXRlKSA9PiAodGhpcy5jdXN0b21DaGFubmVsUHJldmlld1RlbXBsYXRlID0gdGVtcGxhdGUpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzKSA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgYXN5bmMgbG9hZE1vcmVDaGFubmVscygpIHtcbiAgICB0aGlzLmlzTG9hZGluZ01vcmVDaGFubmVscyA9IHRydWU7XG4gICAgYXdhaXQgdGhpcy5jaGFubmVsU2VydmljZS5sb2FkTW9yZUNoYW5uZWxzKCk7XG4gICAgdGhpcy5pc0xvYWRpbmdNb3JlQ2hhbm5lbHMgPSBmYWxzZTtcbiAgfVxuXG4gIHRyYWNrQnlDaGFubmVsSWQoaW5kZXg6IG51bWJlciwgaXRlbTogQ2hhbm5lbDxEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzPikge1xuICAgIHJldHVybiBpdGVtLmNpZDtcbiAgfVxufVxuIiwiPGRpdlxuICAjY29udGFpbmVyXG4gIGRhdGEtdGVzdGlkPVwiY2hhbm5lbC1saXN0LWNvbnRhaW5lclwiXG4gIGNsYXNzPVwic3RyLWNoYXQgc3RyLWNoYXRfX2NoYW5uZWwtbGlzdCBzdHItY2hhdC1jaGFubmVsLWxpc3QgbWVzc2FnaW5nIHN0ci1jaGF0X190aGVtZS17e1xuICAgIHRoZW1lJCB8IGFzeW5jXG4gIH19XCJcbj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiXG4gICAgICAoaXNFcnJvciQgfCBhc3luYykgPT09IGZhbHNlICYmIChpc0luaXRpYWxpemluZyQgfCBhc3luYykgPT09IGZhbHNlO1xuICAgICAgZWxzZSBzdGF0dXNJbmRpY2F0b3JcbiAgICBcIlxuICAgIGNsYXNzPVwic3RyLWNoYXRfX2NoYW5uZWwtbGlzdC1tZXNzZW5nZXJcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19jaGFubmVsLWxpc3QtbWVzc2VuZ2VyX19tYWluXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY2hhbm5lbC1saXN0LXRvcF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiIShjaGFubmVscyQgfCBhc3luYyk/Lmxlbmd0aFwiXG4gICAgICAgIGNsYXNzPVwic3RyLWNoYXRfX2NoYW5uZWwtbGlzdC1lbXB0eVwiXG4gICAgICA+XG4gICAgICAgIDxzdHJlYW0taWNvbiBpY29uPVwiY2hhdC1idWJibGVcIj48L3N0cmVhbS1pY29uPlxuICAgICAgICA8cCBkYXRhLXRlc3RpZD1cImVtcHR5LWNoYW5uZWwtbGlzdC1pbmRpY2F0b3JcIj5cbiAgICAgICAgICB7eyBcInN0cmVhbUNoYXQuWW91IGhhdmUgbm8gY2hhbm5lbHMgY3VycmVudGx5XCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8cFxuICAgICAgICAqbmdJZj1cIiEoY2hhbm5lbHMkIHwgYXN5bmMpPy5sZW5ndGhcIlxuICAgICAgICBjbGFzcz1cInN0ci1jaGF0X19jaGFubmVsLWxpc3QtZW1wdHktdjFcIlxuICAgICAgICBkYXRhLXRlc3RpZD1cImVtcHR5LWNoYW5uZWwtbGlzdC1pbmRpY2F0b3JcIlxuICAgICAgPlxuICAgICAgICB7eyBcInN0cmVhbUNoYXQuWW91IGhhdmUgbm8gY2hhbm5lbHMgY3VycmVudGx5XCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nRm9yPVwibGV0IGNoYW5uZWwgb2YgY2hhbm5lbHMkIHwgYXN5bmM7IHRyYWNrQnk6IHRyYWNrQnlDaGFubmVsSWRcIlxuICAgICAgPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUZW1wbGF0ZSBsZXQtY2hhbm5lbElucHV0PVwiY2hhbm5lbFwiPlxuICAgICAgICAgIDxzdHJlYW0tY2hhbm5lbC1wcmV2aWV3XG4gICAgICAgICAgICBkYXRhLXRlc3RjbGFzcz1cImNoYW5uZWwtcHJldmlld1wiXG4gICAgICAgICAgICBbY2hhbm5lbF09XCJjaGFubmVsSW5wdXRcIlxuICAgICAgICAgID48L3N0cmVhbS1jaGFubmVsLXByZXZpZXc+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgY3VzdG9tQ2hhbm5lbFByZXZpZXdUZW1wbGF0ZSB8fCBkZWZhdWx0VGVtcGxhdGU7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IHsgY2hhbm5lbDogY2hhbm5lbCB9XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJoYXNNb3JlQ2hhbm5lbHMkIHwgYXN5bmNcIlxuICAgICAgICBjbGFzcz1cInN0ci1jaGF0X19sb2FkLW1vcmUtYnV0dG9uXCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJsb2FkLW1vcmVcIlxuICAgICAgICAoY2xpY2spPVwibG9hZE1vcmVDaGFubmVscygpXCJcbiAgICAgICAgKGtleXVwLmVudGVyKT1cImxvYWRNb3JlQ2hhbm5lbHMoKVwiXG4gICAgICA+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cInN0ci1jaGF0X19sb2FkLW1vcmUtYnV0dG9uX19idXR0b24gc3RyLWNoYXRfX2N0YS1idXR0b25cIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwibG9hZC1tb3JlLWJ1dHRvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImlzTG9hZGluZ01vcmVDaGFubmVsc1wiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFpc0xvYWRpbmdNb3JlQ2hhbm5lbHM7IGVsc2UgbG9hZGluZ0luZGljYXRvclwiPnt7XG4gICAgICAgICAgICBcIkxvYWQgbW9yZVwiIHwgdHJhbnNsYXRlXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNsb2FkaW5nSW5kaWNhdG9yXG4gICAgICAgICAgICA+PHN0cmVhbS1sb2FkaW5nLWluZGljYXRvci1wbGFjZWhvbGRlcj48L3N0cmVhbS1sb2FkaW5nLWluZGljYXRvci1wbGFjZWhvbGRlclxuICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NoYW5uZWwtbGlzdC1ib3R0b21dXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3N0YXR1c0luZGljYXRvcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRXJyb3IkIHwgYXN5bmNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2hhdERvd25cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0luaXRpYWxpemluZyQgfCBhc3luY1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nQ2hhbm5lbHNcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NoYXREb3duPlxuICA8ZGl2IGRhdGEtdGVzdGlkPVwiY2hhdGRvd24tY29udGFpbmVyXCIgY2xhc3M9XCJzdHItY2hhdF9fZG93blwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nQ2hhbm5lbHNcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2Rvd24tbWFpblwiPlxuICAgICAgPHN0cmVhbS1pY29uLXBsYWNlaG9sZGVyXG4gICAgICAgIGljb249XCJjb25uZWN0aW9uLWVycm9yXCJcbiAgICAgID48L3N0cmVhbS1pY29uLXBsYWNlaG9sZGVyPlxuICAgICAgPGgxPnt7IFwic3RyZWFtQ2hhdC5Db25uZWN0aW9uIGVycm9yXCIgfCB0cmFuc2xhdGUgfX08L2gxPlxuICAgICAgPGgzPlxuICAgICAgICB7e1xuICAgICAgICAgIFwic3RyZWFtQ2hhdC5FcnJvciBjb25uZWN0aW5nIHRvIGNoYXQsIHJlZnJlc2ggdGhlIHBhZ2UgdG8gdHJ5IGFnYWluLlwiXG4gICAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgICB9fVxuICAgICAgPC9oMz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmdDaGFubmVscz5cbiAgPGRpdiBkYXRhLXRlc3RpZD1cImxvYWRpbmctaW5kaWNhdG9yXCIgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVsc1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nQ2hhbm5lbFwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nQ2hhbm5lbFwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nQ2hhbm5lbFwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZ0NoYW5uZWw+XG4gIDxkaXZcbiAgICBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWxzLWl0ZW0gc3RyLWNoYXRfX2NoYW5uZWwtcHJldmlldy1sb2FkaW5nXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVscy1hdmF0YXJcIj48L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIlxuICAgICAgICBzdHItY2hhdF9fbG9hZGluZy1jaGFubmVscy1tZXRhIHN0ci1jaGF0X19jaGFubmVsLXByZXZpZXctZW5kLWxvYWRpbmdcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWxzLXVzZXJuYW1lXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbHMtc3RhdHVzXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==