stream-chat-angular 4.37.0 → 4.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/version.d.ts +1 -1
- package/bundles/stream-chat-angular.umd.js +39 -5
- package/bundles/stream-chat-angular.umd.js.map +1 -1
- package/esm2015/assets/version.js +2 -2
- package/esm2015/lib/avatar-placeholder/avatar-placeholder.component.js +39 -6
- package/fesm2015/stream-chat-angular.js +38 -5
- package/fesm2015/stream-chat-angular.js.map +1 -1
- package/lib/avatar-placeholder/avatar-placeholder.component.d.ts +10 -3
- package/package.json +1 -1
- package/src/assets/version.ts +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '4.
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export const version = '4.38.0';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2Fzc2V0cy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdmVyc2lvbiA9ICc0LjM4LjAnO1xuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
1
|
+
import { Component, Input, } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "../custom-templates.service";
|
|
4
4
|
import * as i2 from "../avatar/avatar.component";
|
|
@@ -7,8 +7,10 @@ import * as i3 from "@angular/common";
|
|
|
7
7
|
* The `AvatarPlaceholder` component displays the [default avatar](./AvatarComponent.mdx) unless a [custom template](../services/CustomTemplatesService.mdx) is provided. This component is used by the SDK internally, you likely won't need to use it.
|
|
8
8
|
*/
|
|
9
9
|
export class AvatarPlaceholderComponent {
|
|
10
|
-
constructor(customTemplatesService) {
|
|
10
|
+
constructor(customTemplatesService, hostElement, cdRef) {
|
|
11
11
|
this.customTemplatesService = customTemplatesService;
|
|
12
|
+
this.hostElement = hostElement;
|
|
13
|
+
this.cdRef = cdRef;
|
|
12
14
|
/**
|
|
13
15
|
* The size in pixels of the avatar image.
|
|
14
16
|
*/
|
|
@@ -27,6 +29,26 @@ export class AvatarPlaceholderComponent {
|
|
|
27
29
|
type: undefined,
|
|
28
30
|
initialsType: undefined,
|
|
29
31
|
};
|
|
32
|
+
this.isVisible = true;
|
|
33
|
+
}
|
|
34
|
+
ngAfterViewInit() {
|
|
35
|
+
var _a, _b;
|
|
36
|
+
if (this.location !== 'message-sender') {
|
|
37
|
+
this.isVisible = true;
|
|
38
|
+
this.cdRef.detectChanges();
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
this.checkIfVisible();
|
|
42
|
+
const elementToObserve = (_b = (_a = this.hostElement.nativeElement.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.parentElement;
|
|
43
|
+
if (!elementToObserve) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
this.mutationObserver = new MutationObserver(() => {
|
|
47
|
+
this.checkIfVisible();
|
|
48
|
+
});
|
|
49
|
+
this.mutationObserver.observe(elementToObserve, {
|
|
50
|
+
attributeFilter: ['class'],
|
|
51
|
+
});
|
|
30
52
|
}
|
|
31
53
|
ngOnChanges() {
|
|
32
54
|
this.context = {
|
|
@@ -40,9 +62,20 @@ export class AvatarPlaceholderComponent {
|
|
|
40
62
|
initialsType: this.initialsType,
|
|
41
63
|
};
|
|
42
64
|
}
|
|
65
|
+
ngOnDestroy() {
|
|
66
|
+
var _a;
|
|
67
|
+
(_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
68
|
+
}
|
|
69
|
+
checkIfVisible() {
|
|
70
|
+
const isVisible = getComputedStyle(this.hostElement.nativeElement).getPropertyValue('visibility') === 'visible';
|
|
71
|
+
if (isVisible !== this.isVisible) {
|
|
72
|
+
this.isVisible = isVisible;
|
|
73
|
+
this.cdRef.detectChanges();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
43
76
|
}
|
|
44
|
-
AvatarPlaceholderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: AvatarPlaceholderComponent, deps: [{ token: i1.CustomTemplatesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
-
AvatarPlaceholderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: AvatarPlaceholderComponent, selector: "stream-avatar-placeholder", inputs: { name: "name", imageUrl: "imageUrl", size: "size", location: "location", channel: "channel", user: "user", type: "type", initialsType: "initialsType" }, usesOnChanges: true, ngImport: i0, template: "<ng-template\n #defaultAvatar\n let-name=\"name\"\n let-imageUrl=\"imageUrl\"\n let-size=\"size\"\n let-type=\"type\"\n let-channel=\"channel\"\n let-user=\"user\"\n let-location=\"location\"\n let-initialsType=\"initialsType\"\n>\n <stream-avatar\n [name]=\"name\"\n [imageUrl]=\"imageUrl\"\n [size]=\"size\"\n [type]=\"type\"\n [channel]=\"channel\"\n [user]=\"user\"\n [location]=\"location\"\n [initialsType]=\"initialsType\"\n ></stream-avatar>\n</ng-template>\n<ng-container\n *ngTemplateOutlet=\"\n
|
|
77
|
+
AvatarPlaceholderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: AvatarPlaceholderComponent, deps: [{ token: i1.CustomTemplatesService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
78
|
+
AvatarPlaceholderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: AvatarPlaceholderComponent, selector: "stream-avatar-placeholder", inputs: { name: "name", imageUrl: "imageUrl", size: "size", location: "location", channel: "channel", user: "user", type: "type", initialsType: "initialsType" }, usesOnChanges: true, ngImport: i0, template: "<ng-template\n #defaultAvatar\n let-name=\"name\"\n let-imageUrl=\"imageUrl\"\n let-size=\"size\"\n let-type=\"type\"\n let-channel=\"channel\"\n let-user=\"user\"\n let-location=\"location\"\n let-initialsType=\"initialsType\"\n>\n <stream-avatar\n [name]=\"name\"\n [imageUrl]=\"imageUrl\"\n [size]=\"size\"\n [type]=\"type\"\n [channel]=\"channel\"\n [user]=\"user\"\n [location]=\"location\"\n [initialsType]=\"initialsType\"\n ></stream-avatar>\n</ng-template>\n<ng-container *ngIf=\"isVisible; else emptyPlaceholder\">\n <ng-container\n *ngTemplateOutlet=\"\n (customTemplatesService.avatarTemplate$ | async) || defaultAvatar;\n context: context\n \"\n ></ng-container>\n</ng-container>\n<ng-template #emptyPlaceholder>\n <div\n class=\"str-chat__avatar\"\n [ngStyle]=\"{\n width: 'calc(var(--str-chat__spacing-px, 1px) * ' + size + ')',\n height: 'calc(var(--str-chat__spacing-px, 1px) * ' + size + ')'\n }\"\n ></div>\n</ng-template>\n", components: [{ type: i2.AvatarComponent, selector: "stream-avatar", inputs: ["name", "imageUrl", "size", "location", "channel", "user", "type", "showOnlineIndicator", "initialsType"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "async": i3.AsyncPipe } });
|
|
46
79
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: AvatarPlaceholderComponent, decorators: [{
|
|
47
80
|
type: Component,
|
|
48
81
|
args: [{
|
|
@@ -50,7 +83,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
|
50
83
|
templateUrl: './avatar-placeholder.component.html',
|
|
51
84
|
styles: [],
|
|
52
85
|
}]
|
|
53
|
-
}], ctorParameters: function () { return [{ type: i1.CustomTemplatesService }]; }, propDecorators: { name: [{
|
|
86
|
+
}], ctorParameters: function () { return [{ type: i1.CustomTemplatesService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { name: [{
|
|
54
87
|
type: Input
|
|
55
88
|
}], imageUrl: [{
|
|
56
89
|
type: Input
|
|
@@ -67,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
|
67
100
|
}], initialsType: [{
|
|
68
101
|
type: Input
|
|
69
102
|
}] } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLXBsYWNlaG9sZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9hdmF0YXItcGxhY2Vob2xkZXIvYXZhdGFyLXBsYWNlaG9sZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9hdmF0YXItcGxhY2Vob2xkZXIvYXZhdGFyLXBsYWNlaG9sZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBRVQsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDOzs7OztBQVV2Qjs7R0FFRztBQU1ILE1BQU0sT0FBTywwQkFBMEI7SUFpRHJDLFlBQ1Msc0JBQThDLEVBQzdDLFdBQW9DLEVBQ3BDLEtBQXdCO1FBRnpCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDN0MsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBekNsQzs7V0FFRztRQUNNLFNBQUksR0FBRyxFQUFFLENBQUM7UUFpQm5COztXQUVHO1FBQ00saUJBQVksR0FFYSw0QkFBNEIsQ0FBQztRQUMvRCxZQUFPLEdBQWtCO1lBQ3ZCLElBQUksRUFBRSxTQUFTO1lBQ2YsUUFBUSxFQUFFLFNBQVM7WUFDbkIsSUFBSSxFQUFFLFNBQVM7WUFDZixRQUFRLEVBQUUsU0FBUztZQUNuQixPQUFPLEVBQUUsU0FBUztZQUNsQixJQUFJLEVBQUUsU0FBUztZQUNmLElBQUksRUFBRSxTQUFTO1lBQ2YsWUFBWSxFQUFFLFNBQVM7U0FDeEIsQ0FBQztRQUNGLGNBQVMsR0FBRyxJQUFJLENBQUM7SUFNZCxDQUFDO0lBRUosZUFBZTs7UUFDYixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssZ0JBQWdCLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMzQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsTUFBTSxnQkFBZ0IsR0FDcEIsTUFBQSxNQUFBLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGFBQWEsMENBQUUsYUFBYSwwQ0FDdkQsYUFBYSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNyQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7WUFDaEQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtZQUM5QyxlQUFlLEVBQUUsQ0FBQyxPQUFPLENBQUM7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ2hDLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVzs7UUFDVCxNQUFBLElBQUksQ0FBQyxnQkFBZ0IsMENBQUUsVUFBVSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVPLGNBQWM7UUFDcEIsTUFBTSxTQUFTLEdBQ2IsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxnQkFBZ0IsQ0FDL0QsWUFBWSxDQUNiLEtBQUssU0FBUyxDQUFDO1FBQ2xCLElBQUksU0FBUyxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7O3VIQXRHVSwwQkFBMEI7MkdBQTFCLDBCQUEwQix3UEMxQnZDLDIvQkF1Q0E7MkZEYmEsMEJBQTBCO2tCQUx0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFdBQVcsRUFBRSxxQ0FBcUM7b0JBQ2xELE1BQU0sRUFBRSxFQUFFO2lCQUNYO3NLQU9VLElBQUk7c0JBQVosS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlHLElBQUk7c0JBQVosS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlHLE9BQU87c0JBQWYsS0FBSztnQkFJRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hhbm5lbCwgVXNlciB9IGZyb20gJ3N0cmVhbS1jaGF0JztcbmltcG9ydCB7IEN1c3RvbVRlbXBsYXRlc1NlcnZpY2UgfSBmcm9tICcuLi9jdXN0b20tdGVtcGxhdGVzLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQXZhdGFyQ29udGV4dCxcbiAgQXZhdGFyTG9jYXRpb24sXG4gIEF2YXRhclR5cGUsXG4gIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MsXG59IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBUaGUgYEF2YXRhclBsYWNlaG9sZGVyYCBjb21wb25lbnQgZGlzcGxheXMgdGhlIFtkZWZhdWx0IGF2YXRhcl0oLi9BdmF0YXJDb21wb25lbnQubWR4KSB1bmxlc3MgYSBbY3VzdG9tIHRlbXBsYXRlXSguLi9zZXJ2aWNlcy9DdXN0b21UZW1wbGF0ZXNTZXJ2aWNlLm1keCkgaXMgcHJvdmlkZWQuIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgYnkgdGhlIFNESyBpbnRlcm5hbGx5LCB5b3UgbGlrZWx5IHdvbid0IG5lZWQgdG8gdXNlIGl0LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHJlYW0tYXZhdGFyLXBsYWNlaG9sZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F2YXRhci1wbGFjZWhvbGRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEF2YXRhclBsYWNlaG9sZGVyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIG5hbWUgb2YgdGhlIGltYWdlLCB1c2VkIGZvciBmYWxsYmFjayBpbWFnZSBvciBpbWFnZSB0aXRsZSAoaWYgYGltYWdlVXJsYCBpcyBwcm92aWRlZClcbiAgICovXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIFRoZSBVUkwgb2YgdGhlIGltYWdlIHRvIGJlIGRpc3BsYXllZC4gSWYgdGhlIGltYWdlIGNhbid0IGJlIGRpc3BsYXllZCB0aGUgZmlyc3QgbGV0dGVyIG9mIHRoZSBuYW1lIGlucHV0IGlzIGRpc3BsYXllZC5cbiAgICovXG4gIEBJbnB1dCgpIGltYWdlVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBUaGUgc2l6ZSBpbiBwaXhlbHMgb2YgdGhlIGF2YXRhciBpbWFnZS5cbiAgICovXG4gIEBJbnB1dCgpIHNpemUgPSAzMjtcbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiB0aGUgYXZhdGFyIHdpbGwgYmUgZGlzcGxheWVkIGluXG4gICAqL1xuICBASW5wdXQoKSBsb2NhdGlvbjogQXZhdGFyTG9jYXRpb24gfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBUaGUgY2hhbm5lbCB0aGUgYXZhdGFyIGJlbG9uZ3MgdG8gKGlmIGF2YXRhciBvZiBhIGNoYW5uZWwgaXMgZGlzcGxheWVkKVxuICAgKi9cbiAgQElucHV0KCkgY2hhbm5lbD86IENoYW5uZWw8RGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcz47XG4gIC8qKlxuICAgKiBUaGUgdXNlciB0aGUgYXZhdGFyIGJlbG9uZ3MgdG8gKGlmIGF2YXRhciBvZiBhIHVzZXIgaXMgZGlzcGxheWVkKVxuICAgKi9cbiAgQElucHV0KCkgdXNlcj86IFVzZXI8RGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcz47XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgYXZhdGFyOiBjaGFubmVsIGlmIGNoYW5uZWwgYXZhdGFyIGlzIGRpc3BsYXllZCwgdXNlciBpZiB1c2VyIGF2YXRhciBpcyBkaXNwbGF5ZWRcbiAgICovXG4gIEBJbnB1dCgpIHR5cGU6IEF2YXRhclR5cGUgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBJZiBjaGFubmVsL3VzZXIgaW1hZ2UgaXNuJ3QgcHJvdmlkZWQgdGhlIGluaXRpYWxzIG9mIHRoZSBuYW1lIG9mIHRoZSBjaGFubmVsL3VzZXIgaXMgc2hvd24gaW5zdGVhZCwgeW91IGNhbiBjaG9vc2UgaG93IHRoZSBpbml0YWxzIHNob3VsZCBiZSBjb21wdXRlZFxuICAgKi9cbiAgQElucHV0KCkgaW5pdGlhbHNUeXBlOlxuICAgIHwgJ2ZpcnN0LWxldHRlci1vZi1maXJzdC13b3JkJ1xuICAgIHwgJ2ZpcnN0LWxldHRlci1vZi1lYWNoLXdvcmQnID0gJ2ZpcnN0LWxldHRlci1vZi1maXJzdC13b3JkJztcbiAgY29udGV4dDogQXZhdGFyQ29udGV4dCA9IHtcbiAgICBuYW1lOiB1bmRlZmluZWQsXG4gICAgaW1hZ2VVcmw6IHVuZGVmaW5lZCxcbiAgICBzaXplOiB1bmRlZmluZWQsXG4gICAgbG9jYXRpb246IHVuZGVmaW5lZCxcbiAgICBjaGFubmVsOiB1bmRlZmluZWQsXG4gICAgdXNlcjogdW5kZWZpbmVkLFxuICAgIHR5cGU6IHVuZGVmaW5lZCxcbiAgICBpbml0aWFsc1R5cGU6IHVuZGVmaW5lZCxcbiAgfTtcbiAgaXNWaXNpYmxlID0gdHJ1ZTtcbiAgcHJpdmF0ZSBtdXRhdGlvbk9ic2VydmVyPzogTXV0YXRpb25PYnNlcnZlcjtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGN1c3RvbVRlbXBsYXRlc1NlcnZpY2U6IEN1c3RvbVRlbXBsYXRlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBob3N0RWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2NhdGlvbiAhPT0gJ21lc3NhZ2Utc2VuZGVyJykge1xuICAgICAgdGhpcy5pc1Zpc2libGUgPSB0cnVlO1xuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2hlY2tJZlZpc2libGUoKTtcbiAgICBjb25zdCBlbGVtZW50VG9PYnNlcnZlID1cbiAgICAgIHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50Py5wYXJlbnRFbGVtZW50XG4gICAgICAgID8ucGFyZW50RWxlbWVudDtcbiAgICBpZiAoIWVsZW1lbnRUb09ic2VydmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgdGhpcy5jaGVja0lmVmlzaWJsZSgpO1xuICAgIH0pO1xuICAgIHRoaXMubXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKGVsZW1lbnRUb09ic2VydmUsIHtcbiAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydjbGFzcyddLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0ID0ge1xuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgaW1hZ2VVcmw6IHRoaXMuaW1hZ2VVcmwsXG4gICAgICBzaXplOiB0aGlzLnNpemUsXG4gICAgICBsb2NhdGlvbjogdGhpcy5sb2NhdGlvbixcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgIHVzZXI6IHRoaXMudXNlcixcbiAgICAgIGNoYW5uZWw6IHRoaXMuY2hhbm5lbCxcbiAgICAgIGluaXRpYWxzVHlwZTogdGhpcy5pbml0aWFsc1R5cGUsXG4gICAgfTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubXV0YXRpb25PYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0lmVmlzaWJsZSgpIHtcbiAgICBjb25zdCBpc1Zpc2libGUgPVxuICAgICAgZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoXG4gICAgICAgICd2aXNpYmlsaXR5J1xuICAgICAgKSA9PT0gJ3Zpc2libGUnO1xuICAgIGlmIChpc1Zpc2libGUgIT09IHRoaXMuaXNWaXNpYmxlKSB7XG4gICAgICB0aGlzLmlzVmlzaWJsZSA9IGlzVmlzaWJsZTtcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlXG4gICNkZWZhdWx0QXZhdGFyXG4gIGxldC1uYW1lPVwibmFtZVwiXG4gIGxldC1pbWFnZVVybD1cImltYWdlVXJsXCJcbiAgbGV0LXNpemU9XCJzaXplXCJcbiAgbGV0LXR5cGU9XCJ0eXBlXCJcbiAgbGV0LWNoYW5uZWw9XCJjaGFubmVsXCJcbiAgbGV0LXVzZXI9XCJ1c2VyXCJcbiAgbGV0LWxvY2F0aW9uPVwibG9jYXRpb25cIlxuICBsZXQtaW5pdGlhbHNUeXBlPVwiaW5pdGlhbHNUeXBlXCJcbj5cbiAgPHN0cmVhbS1hdmF0YXJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbaW1hZ2VVcmxdPVwiaW1hZ2VVcmxcIlxuICAgIFtzaXplXT1cInNpemVcIlxuICAgIFt0eXBlXT1cInR5cGVcIlxuICAgIFtjaGFubmVsXT1cImNoYW5uZWxcIlxuICAgIFt1c2VyXT1cInVzZXJcIlxuICAgIFtsb2NhdGlvbl09XCJsb2NhdGlvblwiXG4gICAgW2luaXRpYWxzVHlwZV09XCJpbml0aWFsc1R5cGVcIlxuICA+PC9zdHJlYW0tYXZhdGFyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc1Zpc2libGU7IGVsc2UgZW1wdHlQbGFjZWhvbGRlclwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgIChjdXN0b21UZW1wbGF0ZXNTZXJ2aWNlLmF2YXRhclRlbXBsYXRlJCB8IGFzeW5jKSB8fCBkZWZhdWx0QXZhdGFyO1xuICAgICAgY29udGV4dDogY29udGV4dFxuICAgIFwiXG4gID48L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNlbXB0eVBsYWNlaG9sZGVyPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJzdHItY2hhdF9fYXZhdGFyXCJcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICB3aWR0aDogJ2NhbGModmFyKC0tc3RyLWNoYXRfX3NwYWNpbmctcHgsIDFweCkgKiAnICsgc2l6ZSArICcpJyxcbiAgICAgIGhlaWdodDogJ2NhbGModmFyKC0tc3RyLWNoYXRfX3NwYWNpbmctcHgsIDFweCkgKiAnICsgc2l6ZSArICcpJ1xuICAgIH1cIlxuICA+PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -20,7 +20,7 @@ import transliterate from '@stream-io/transliterate';
|
|
|
20
20
|
import * as i8 from 'angular-mentions';
|
|
21
21
|
import { MentionModule } from 'angular-mentions';
|
|
22
22
|
|
|
23
|
-
const version = '4.
|
|
23
|
+
const version = '4.38.0';
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* The `NotificationService` can be used to add or remove notifications. By default the [`NotificationList`](../components/NotificationListComponent.mdx) component displays the currently active notifications.
|
|
@@ -2433,8 +2433,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
|
2433
2433
|
* The `AvatarPlaceholder` component displays the [default avatar](./AvatarComponent.mdx) unless a [custom template](../services/CustomTemplatesService.mdx) is provided. This component is used by the SDK internally, you likely won't need to use it.
|
|
2434
2434
|
*/
|
|
2435
2435
|
class AvatarPlaceholderComponent {
|
|
2436
|
-
constructor(customTemplatesService) {
|
|
2436
|
+
constructor(customTemplatesService, hostElement, cdRef) {
|
|
2437
2437
|
this.customTemplatesService = customTemplatesService;
|
|
2438
|
+
this.hostElement = hostElement;
|
|
2439
|
+
this.cdRef = cdRef;
|
|
2438
2440
|
/**
|
|
2439
2441
|
* The size in pixels of the avatar image.
|
|
2440
2442
|
*/
|
|
@@ -2453,6 +2455,26 @@ class AvatarPlaceholderComponent {
|
|
|
2453
2455
|
type: undefined,
|
|
2454
2456
|
initialsType: undefined,
|
|
2455
2457
|
};
|
|
2458
|
+
this.isVisible = true;
|
|
2459
|
+
}
|
|
2460
|
+
ngAfterViewInit() {
|
|
2461
|
+
var _a, _b;
|
|
2462
|
+
if (this.location !== 'message-sender') {
|
|
2463
|
+
this.isVisible = true;
|
|
2464
|
+
this.cdRef.detectChanges();
|
|
2465
|
+
return;
|
|
2466
|
+
}
|
|
2467
|
+
this.checkIfVisible();
|
|
2468
|
+
const elementToObserve = (_b = (_a = this.hostElement.nativeElement.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.parentElement;
|
|
2469
|
+
if (!elementToObserve) {
|
|
2470
|
+
return;
|
|
2471
|
+
}
|
|
2472
|
+
this.mutationObserver = new MutationObserver(() => {
|
|
2473
|
+
this.checkIfVisible();
|
|
2474
|
+
});
|
|
2475
|
+
this.mutationObserver.observe(elementToObserve, {
|
|
2476
|
+
attributeFilter: ['class'],
|
|
2477
|
+
});
|
|
2456
2478
|
}
|
|
2457
2479
|
ngOnChanges() {
|
|
2458
2480
|
this.context = {
|
|
@@ -2466,9 +2488,20 @@ class AvatarPlaceholderComponent {
|
|
|
2466
2488
|
initialsType: this.initialsType,
|
|
2467
2489
|
};
|
|
2468
2490
|
}
|
|
2491
|
+
ngOnDestroy() {
|
|
2492
|
+
var _a;
|
|
2493
|
+
(_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
2494
|
+
}
|
|
2495
|
+
checkIfVisible() {
|
|
2496
|
+
const isVisible = getComputedStyle(this.hostElement.nativeElement).getPropertyValue('visibility') === 'visible';
|
|
2497
|
+
if (isVisible !== this.isVisible) {
|
|
2498
|
+
this.isVisible = isVisible;
|
|
2499
|
+
this.cdRef.detectChanges();
|
|
2500
|
+
}
|
|
2501
|
+
}
|
|
2469
2502
|
}
|
|
2470
|
-
AvatarPlaceholderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: AvatarPlaceholderComponent, deps: [{ token: CustomTemplatesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2471
|
-
AvatarPlaceholderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: AvatarPlaceholderComponent, selector: "stream-avatar-placeholder", inputs: { name: "name", imageUrl: "imageUrl", size: "size", location: "location", channel: "channel", user: "user", type: "type", initialsType: "initialsType" }, usesOnChanges: true, ngImport: i0, template: "<ng-template\n #defaultAvatar\n let-name=\"name\"\n let-imageUrl=\"imageUrl\"\n let-size=\"size\"\n let-type=\"type\"\n let-channel=\"channel\"\n let-user=\"user\"\n let-location=\"location\"\n let-initialsType=\"initialsType\"\n>\n <stream-avatar\n [name]=\"name\"\n [imageUrl]=\"imageUrl\"\n [size]=\"size\"\n [type]=\"type\"\n [channel]=\"channel\"\n [user]=\"user\"\n [location]=\"location\"\n [initialsType]=\"initialsType\"\n ></stream-avatar>\n</ng-template>\n<ng-container\n *ngTemplateOutlet=\"\n
|
|
2503
|
+
AvatarPlaceholderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: AvatarPlaceholderComponent, deps: [{ token: CustomTemplatesService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2504
|
+
AvatarPlaceholderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: AvatarPlaceholderComponent, selector: "stream-avatar-placeholder", inputs: { name: "name", imageUrl: "imageUrl", size: "size", location: "location", channel: "channel", user: "user", type: "type", initialsType: "initialsType" }, usesOnChanges: true, ngImport: i0, template: "<ng-template\n #defaultAvatar\n let-name=\"name\"\n let-imageUrl=\"imageUrl\"\n let-size=\"size\"\n let-type=\"type\"\n let-channel=\"channel\"\n let-user=\"user\"\n let-location=\"location\"\n let-initialsType=\"initialsType\"\n>\n <stream-avatar\n [name]=\"name\"\n [imageUrl]=\"imageUrl\"\n [size]=\"size\"\n [type]=\"type\"\n [channel]=\"channel\"\n [user]=\"user\"\n [location]=\"location\"\n [initialsType]=\"initialsType\"\n ></stream-avatar>\n</ng-template>\n<ng-container *ngIf=\"isVisible; else emptyPlaceholder\">\n <ng-container\n *ngTemplateOutlet=\"\n (customTemplatesService.avatarTemplate$ | async) || defaultAvatar;\n context: context\n \"\n ></ng-container>\n</ng-container>\n<ng-template #emptyPlaceholder>\n <div\n class=\"str-chat__avatar\"\n [ngStyle]=\"{\n width: 'calc(var(--str-chat__spacing-px, 1px) * ' + size + ')',\n height: 'calc(var(--str-chat__spacing-px, 1px) * ' + size + ')'\n }\"\n ></div>\n</ng-template>\n", components: [{ type: AvatarComponent, selector: "stream-avatar", inputs: ["name", "imageUrl", "size", "location", "channel", "user", "type", "showOnlineIndicator", "initialsType"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "async": i5.AsyncPipe } });
|
|
2472
2505
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: AvatarPlaceholderComponent, decorators: [{
|
|
2473
2506
|
type: Component,
|
|
2474
2507
|
args: [{
|
|
@@ -2476,7 +2509,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
|
2476
2509
|
templateUrl: './avatar-placeholder.component.html',
|
|
2477
2510
|
styles: [],
|
|
2478
2511
|
}]
|
|
2479
|
-
}], ctorParameters: function () { return [{ type: CustomTemplatesService }]; }, propDecorators: { name: [{
|
|
2512
|
+
}], ctorParameters: function () { return [{ type: CustomTemplatesService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { name: [{
|
|
2480
2513
|
type: Input
|
|
2481
2514
|
}], imageUrl: [{
|
|
2482
2515
|
type: Input
|