stream-chat-angular 5.0.0-v5.21 → 5.0.0-v5.22
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/esm2020/assets/version.mjs +2 -2
- package/esm2020/lib/channel/channel.component.mjs +5 -6
- package/esm2020/lib/custom-templates.service.mjs +1 -5
- package/esm2020/lib/message-actions.service.mjs +18 -2
- package/esm2020/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.mjs +13 -1
- package/esm2020/lib/message-input/message-input.component.mjs +75 -23
- package/esm2020/lib/message-input/textarea/textarea.component.mjs +13 -1
- package/esm2020/lib/stream-chat.module.mjs +1 -6
- package/esm2020/public-api.mjs +1 -2
- package/fesm2015/stream-chat-angular.mjs +2014 -2004
- package/fesm2015/stream-chat-angular.mjs.map +1 -1
- package/fesm2020/stream-chat-angular.mjs +1951 -1941
- package/fesm2020/stream-chat-angular.mjs.map +1 -1
- package/lib/custom-templates.service.d.ts +0 -4
- package/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.d.ts +1 -0
- package/lib/message-input/message-input.component.d.ts +19 -3
- package/lib/message-input/textarea/textarea.component.d.ts +1 -0
- package/lib/stream-chat.module.d.ts +9 -10
- package/package.json +1 -1
- package/public-api.d.ts +0 -1
- package/src/assets/version.ts +1 -1
- package/esm2020/lib/edit-message-form/edit-message-form.component.mjs +0 -83
- package/lib/edit-message-form/edit-message-form.component.d.ts +0 -31
|
@@ -205,10 +205,6 @@ export declare class CustomTemplatesService<T extends DefaultStreamChatGenerics
|
|
|
205
205
|
* The template to show if the thread message list is empty
|
|
206
206
|
*/
|
|
207
207
|
emptyThreadMessageListPlaceholder$: BehaviorSubject<TemplateRef<void> | undefined>;
|
|
208
|
-
/**
|
|
209
|
-
* The template used to display the [edit message form](../components/EditMessageFormComponent.mdx)
|
|
210
|
-
*/
|
|
211
|
-
editMessageFormTemplate$: BehaviorSubject<TemplateRef<void> | undefined>;
|
|
212
208
|
/**
|
|
213
209
|
* The template used to display the [message bounce prompt](../components/MessageBouncePromptComponent.mdx)
|
|
214
210
|
*/
|
|
@@ -70,6 +70,7 @@ export declare class AutocompleteTextareaComponent implements TextareaInterface,
|
|
|
70
70
|
private userMentionConfig;
|
|
71
71
|
private slashCommandConfig;
|
|
72
72
|
private searchTerm$;
|
|
73
|
+
private isViewInited;
|
|
73
74
|
constructor(channelService: ChannelService, chatClientService: ChatClientService, transliterationService: TransliterationService, emojiInputService: EmojiInputService, customTemplatesService: CustomTemplatesService, themeService: ThemeService, cdRef: ChangeDetectorRef);
|
|
74
75
|
ngOnChanges(changes: SimpleChanges): void;
|
|
75
76
|
ngAfterViewInit(): void;
|
|
@@ -10,6 +10,7 @@ import { MessageInputConfigService } from './message-input-config.service';
|
|
|
10
10
|
import { TextareaInterface } from './textarea.interface';
|
|
11
11
|
import { EmojiInputService } from './emoji-input.service';
|
|
12
12
|
import { CustomTemplatesService } from '../custom-templates.service';
|
|
13
|
+
import { MessageActionsService } from '../message-actions.service';
|
|
13
14
|
import * as i0 from "@angular/core";
|
|
14
15
|
/**
|
|
15
16
|
* The `MessageInput` component displays an input where users can type their messages and upload files, and sends the message to the active channel. The component can be used to compose new messages or update existing ones. To send messages, the chat user needs to have the necessary [channel capability](https://getstream.io/chat/docs/javascript/channel_capabilities/?language=javascript).
|
|
@@ -25,6 +26,7 @@ export declare class MessageInputComponent implements OnInit, OnChanges, OnDestr
|
|
|
25
26
|
private chatClient;
|
|
26
27
|
private emojiInputService;
|
|
27
28
|
private customTemplatesService;
|
|
29
|
+
private messageActionsService;
|
|
28
30
|
/**
|
|
29
31
|
* If file upload is enabled, the user can open a file selector from the input. Please note that the user also needs to have the necessary [channel capability](https://getstream.io/chat/docs/javascript/channel_capabilities/?language=javascript). If no value is provided, it is set from the [`MessageInputConfigService`](../services/MessageInputConfigService.mdx).
|
|
30
32
|
*/
|
|
@@ -61,6 +63,16 @@ export declare class MessageInputComponent implements OnInit, OnChanges, OnDestr
|
|
|
61
63
|
* Enables or disables auto focus on the textarea element
|
|
62
64
|
*/
|
|
63
65
|
autoFocus: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* By default the input will react to changes in `messageToEdit$` from [`MessageActionsService`](../services/MessageActionsService.mdx) and display the message to be edited (taking into account the current `mode`).
|
|
68
|
+
*
|
|
69
|
+
* If you don't need that behavior, you can turn this of with this flag. In that case you should create your own edit message UI.
|
|
70
|
+
*/
|
|
71
|
+
watchForMessageToEdit: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Use this input to control wether a send button is rendered or not. If you don't render a send button, you can still trigger message send using the `sendMessage$` input.
|
|
74
|
+
*/
|
|
75
|
+
displaySendButton: boolean;
|
|
64
76
|
/**
|
|
65
77
|
* Emits when a message was successfuly sent or updated
|
|
66
78
|
*/
|
|
@@ -95,7 +107,8 @@ export declare class MessageInputComponent implements OnInit, OnChanges, OnDestr
|
|
|
95
107
|
private sendMessageSubcription;
|
|
96
108
|
private readonly defaultTextareaPlaceholder;
|
|
97
109
|
private readonly slowModeTextareaPlaceholder;
|
|
98
|
-
|
|
110
|
+
private messageToEdit?;
|
|
111
|
+
constructor(channelService: ChannelService, notificationService: NotificationService, attachmentService: AttachmentService, configService: MessageInputConfigService, textareaType: Type<TextareaInterface>, componentFactoryResolver: ComponentFactoryResolver, cdRef: ChangeDetectorRef, chatClient: ChatClientService, emojiInputService: EmojiInputService, customTemplatesService: CustomTemplatesService, messageActionsService: MessageActionsService);
|
|
99
112
|
ngOnInit(): void;
|
|
100
113
|
ngAfterViewInit(): void;
|
|
101
114
|
ngOnChanges(changes: SimpleChanges): void;
|
|
@@ -128,19 +141,22 @@ export declare class MessageInputComponent implements OnInit, OnChanges, OnDestr
|
|
|
128
141
|
get disabledTextareaText(): "" | "streamChat.You can't send thread replies in this channel" | "streamChat.You can't send messages in this channel";
|
|
129
142
|
filesSelected(fileList: FileList | null): Promise<void>;
|
|
130
143
|
deselectMessageToQuote(): void;
|
|
144
|
+
deselectMessageToEdit(): void;
|
|
131
145
|
getEmojiPickerContext(): EmojiPickerContext;
|
|
132
146
|
getAttachmentPreviewListContext(): AttachmentPreviewListContext;
|
|
133
147
|
getAttachmentUploadContext(): CustomAttachmentUploadContext;
|
|
148
|
+
get isUpdate(): boolean;
|
|
134
149
|
private deleteUpload;
|
|
135
150
|
private retryUpload;
|
|
136
151
|
private clearFileInput;
|
|
137
|
-
private get isUpdate();
|
|
138
152
|
private initTextarea;
|
|
139
153
|
private areAttachemntsValid;
|
|
140
154
|
private setCanSendMessages;
|
|
141
155
|
private get parentMessageId();
|
|
142
156
|
private startCooldown;
|
|
143
157
|
private stopCooldown;
|
|
158
|
+
private checkIfInEditMode;
|
|
159
|
+
private messageToUpdateChanged;
|
|
144
160
|
static ɵfac: i0.ɵɵFactoryDeclaration<MessageInputComponent, never>;
|
|
145
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MessageInputComponent, "stream-message-input", never, { "isFileUploadEnabled": "isFileUploadEnabled"; "areMentionsEnabled": "areMentionsEnabled"; "mentionScope": "mentionScope"; "mode": "mode"; "isMultipleFileUploadEnabled": "isMultipleFileUploadEnabled"; "message": "message"; "sendMessage$": "sendMessage$"; "inputMode": "inputMode"; "autoFocus": "autoFocus"; }, { "messageUpdate": "messageUpdate"; }, never, never, false, never>;
|
|
161
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MessageInputComponent, "stream-message-input", never, { "isFileUploadEnabled": "isFileUploadEnabled"; "areMentionsEnabled": "areMentionsEnabled"; "mentionScope": "mentionScope"; "mode": "mode"; "isMultipleFileUploadEnabled": "isMultipleFileUploadEnabled"; "message": "message"; "sendMessage$": "sendMessage$"; "inputMode": "inputMode"; "autoFocus": "autoFocus"; "watchForMessageToEdit": "watchForMessageToEdit"; "displaySendButton": "displaySendButton"; }, { "messageUpdate": "messageUpdate"; }, never, never, false, never>;
|
|
146
162
|
}
|
|
@@ -36,6 +36,7 @@ export declare class TextareaComponent implements TextareaInterface, OnChanges,
|
|
|
36
36
|
readonly send: EventEmitter<void>;
|
|
37
37
|
private messageInput;
|
|
38
38
|
private subscriptions;
|
|
39
|
+
private isViewInited;
|
|
39
40
|
constructor(emojiInputService: EmojiInputService, themeService: ThemeService);
|
|
40
41
|
ngOnChanges(changes: SimpleChanges): void;
|
|
41
42
|
ngAfterViewInit(): void;
|
|
@@ -19,17 +19,16 @@ import * as i17 from "./message-input/textarea.directive";
|
|
|
19
19
|
import * as i18 from "./thread/thread.component";
|
|
20
20
|
import * as i19 from "./icon-placeholder/icon-placeholder.component";
|
|
21
21
|
import * as i20 from "./loading-indicator-placeholder/loading-indicator-placeholder.component";
|
|
22
|
-
import * as i21 from "./
|
|
23
|
-
import * as i22 from "./
|
|
24
|
-
import * as i23 from "./voice-recording/voice-recording.component";
|
|
25
|
-
import * as i24 from "./
|
|
26
|
-
import * as i25 from "
|
|
27
|
-
import * as i26 from "
|
|
28
|
-
import * as i27 from "
|
|
29
|
-
import * as i28 from "
|
|
30
|
-
import * as i29 from "@ngx-translate/core";
|
|
22
|
+
import * as i21 from "./message-bounce-prompt/message-bounce-prompt.component";
|
|
23
|
+
import * as i22 from "./voice-recording/voice-recording.component";
|
|
24
|
+
import * as i23 from "./voice-recording/voice-recording-wavebar/voice-recording-wavebar.component";
|
|
25
|
+
import * as i24 from "./message-reactions-selector/message-reactions-selector.component";
|
|
26
|
+
import * as i25 from "@angular/common";
|
|
27
|
+
import * as i26 from "ngx-float-ui";
|
|
28
|
+
import * as i27 from "./stream-avatar.module";
|
|
29
|
+
import * as i28 from "@ngx-translate/core";
|
|
31
30
|
export declare class StreamChatModule {
|
|
32
31
|
static ɵfac: i0.ɵɵFactoryDeclaration<StreamChatModule, never>;
|
|
33
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<StreamChatModule, [typeof i1.ChannelComponent, typeof i2.ChannelHeaderComponent, typeof i3.ChannelListComponent, typeof i4.ChannelPreviewComponent, typeof i5.MessageComponent, typeof i6.MessageInputComponent, typeof i7.MessageListComponent, typeof i8.LoadingIndicatorComponent, typeof i9.IconComponent, typeof i10.MessageActionsBoxComponent, typeof i11.AttachmentListComponent, typeof i12.MessageReactionsComponent, typeof i13.NotificationComponent, typeof i14.NotificationListComponent, typeof i15.AttachmentPreviewListComponent, typeof i16.ModalComponent, typeof i17.TextareaDirective, typeof i18.ThreadComponent, typeof i19.IconPlaceholderComponent, typeof i20.LoadingIndicatorPlaceholderComponent, typeof i21.
|
|
32
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<StreamChatModule, [typeof i1.ChannelComponent, typeof i2.ChannelHeaderComponent, typeof i3.ChannelListComponent, typeof i4.ChannelPreviewComponent, typeof i5.MessageComponent, typeof i6.MessageInputComponent, typeof i7.MessageListComponent, typeof i8.LoadingIndicatorComponent, typeof i9.IconComponent, typeof i10.MessageActionsBoxComponent, typeof i11.AttachmentListComponent, typeof i12.MessageReactionsComponent, typeof i13.NotificationComponent, typeof i14.NotificationListComponent, typeof i15.AttachmentPreviewListComponent, typeof i16.ModalComponent, typeof i17.TextareaDirective, typeof i18.ThreadComponent, typeof i19.IconPlaceholderComponent, typeof i20.LoadingIndicatorPlaceholderComponent, typeof i21.MessageBouncePromptComponent, typeof i22.VoiceRecordingComponent, typeof i23.VoiceRecordingWavebarComponent, typeof i24.MessageReactionsSelectorComponent], [typeof i25.CommonModule, typeof i26.NgxFloatUiModule, typeof i27.StreamAvatarModule, typeof i28.TranslateModule], [typeof i1.ChannelComponent, typeof i2.ChannelHeaderComponent, typeof i3.ChannelListComponent, typeof i4.ChannelPreviewComponent, typeof i5.MessageComponent, typeof i6.MessageInputComponent, typeof i7.MessageListComponent, typeof i8.LoadingIndicatorComponent, typeof i9.IconComponent, typeof i10.MessageActionsBoxComponent, typeof i11.AttachmentListComponent, typeof i12.MessageReactionsComponent, typeof i13.NotificationComponent, typeof i14.NotificationListComponent, typeof i15.AttachmentPreviewListComponent, typeof i16.ModalComponent, typeof i27.StreamAvatarModule, typeof i18.ThreadComponent, typeof i19.IconPlaceholderComponent, typeof i20.LoadingIndicatorPlaceholderComponent, typeof i21.MessageBouncePromptComponent, typeof i22.VoiceRecordingComponent, typeof i23.VoiceRecordingWavebarComponent, typeof i24.MessageReactionsSelectorComponent]>;
|
|
34
33
|
static ɵinj: i0.ɵɵInjectorDeclaration<StreamChatModule>;
|
|
35
34
|
}
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -19,7 +19,6 @@ export * from './lib/message/message.component';
|
|
|
19
19
|
export * from './lib/parse-date';
|
|
20
20
|
export * from './lib/list-users';
|
|
21
21
|
export * from './lib/message-input/message-input.component';
|
|
22
|
-
export * from './lib/edit-message-form/edit-message-form.component';
|
|
23
22
|
export * from './lib/message-bounce-prompt/message-bounce-prompt.component';
|
|
24
23
|
export * from './lib/message-input/textarea/textarea.component';
|
|
25
24
|
export * from './lib/message-input/autocomplete-textarea/autocomplete-textarea.component';
|
package/src/assets/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '5.0.0-v5.
|
|
1
|
+
export const version = '5.0.0-v5.22';
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { Component, HostBinding, ViewChild, } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../custom-templates.service";
|
|
5
|
-
import * as i2 from "../message-actions.service";
|
|
6
|
-
import * as i3 from "@angular/common";
|
|
7
|
-
import * as i4 from "@ngx-translate/core";
|
|
8
|
-
import * as i5 from "../message-input/message-input.component";
|
|
9
|
-
import * as i6 from "../notification-list/notification-list.component";
|
|
10
|
-
import * as i7 from "../modal/modal.component";
|
|
11
|
-
/**
|
|
12
|
-
* The edit message form displays a modal that's opened when a user edits a message. The component uses the [`MessageActionsService`](../../services/MessageActionsService) to know which message is being edited.
|
|
13
|
-
*
|
|
14
|
-
* By default this is displayed within the [`stream-channel` component](../../components/ChannelComponent).
|
|
15
|
-
*/
|
|
16
|
-
export class EditMessageFormComponent {
|
|
17
|
-
constructor(customTemplatesService, messageActionsService) {
|
|
18
|
-
this.customTemplatesService = customTemplatesService;
|
|
19
|
-
this.messageActionsService = messageActionsService;
|
|
20
|
-
this.class = 'str-chat-angular__edit-message-form';
|
|
21
|
-
this.isModalOpen = false;
|
|
22
|
-
this.sendMessageSubject = new Subject();
|
|
23
|
-
this.subscriptions = [];
|
|
24
|
-
this.sendMessage$ = this.sendMessageSubject.asObservable();
|
|
25
|
-
}
|
|
26
|
-
ngOnInit() {
|
|
27
|
-
this.messageActionsService.messageToEdit$.subscribe((message) => {
|
|
28
|
-
if ((message && !this.isModalOpen) || (!message && this.isModalOpen)) {
|
|
29
|
-
this.message = message;
|
|
30
|
-
this.isModalOpen = !!message;
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
ngOnDestroy() {
|
|
35
|
-
this.subscriptions.forEach((s) => s.unsubscribe());
|
|
36
|
-
}
|
|
37
|
-
getEditModalContext() {
|
|
38
|
-
return {
|
|
39
|
-
isOpen: this.isModalOpen,
|
|
40
|
-
isOpenChangeHandler: (isOpen) => {
|
|
41
|
-
this.isModalOpen = isOpen;
|
|
42
|
-
if (!this.isModalOpen) {
|
|
43
|
-
this.dismissed();
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
content: this.modalContent,
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
getMessageInputContext() {
|
|
50
|
-
return {
|
|
51
|
-
message: this.message,
|
|
52
|
-
messageUpdateHandler: () => {
|
|
53
|
-
this.dismissed();
|
|
54
|
-
},
|
|
55
|
-
isFileUploadEnabled: undefined,
|
|
56
|
-
areMentionsEnabled: undefined,
|
|
57
|
-
isMultipleFileUploadEnabled: undefined,
|
|
58
|
-
mentionScope: undefined,
|
|
59
|
-
mode: undefined,
|
|
60
|
-
sendMessage$: this.sendMessage$,
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
sendClicked() {
|
|
64
|
-
this.sendMessageSubject.next();
|
|
65
|
-
}
|
|
66
|
-
dismissed() {
|
|
67
|
-
this.isModalOpen = false;
|
|
68
|
-
this.message = undefined;
|
|
69
|
-
this.messageActionsService.messageToEdit$.next(undefined);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
EditMessageFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EditMessageFormComponent, deps: [{ token: i1.CustomTemplatesService }, { token: i2.MessageActionsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
73
|
-
EditMessageFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: EditMessageFormComponent, selector: "stream-edit-message-form", host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "modalContent", first: true, predicate: ["editMessageForm"], descendants: true, static: true }], ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"\n (customTemplatesService.modalTemplate$ | async) || defaultModal;\n context: getEditModalContext()\n \"\n></ng-container>\n\n<ng-template\n #defaultModal\n let-isOpen=\"isOpen\"\n let-isOpenChangeHandler=\"isOpenChangeHandler\"\n let-content=\"content\"\n>\n <stream-modal\n *ngIf=\"isOpen\"\n [isOpen]=\"isOpen\"\n [content]=\"content\"\n (isOpenChange)=\"isOpenChangeHandler($event)\"\n >\n </stream-modal>\n</ng-template>\n\n<ng-template #editMessageForm>\n <div class=\"str-chat__edit-message-form\">\n <ng-template\n #defaultInput\n let-messageInput=\"message\"\n let-messageUpdateHandler=\"messageUpdateHandler\"\n let-sendMessage$Input=\"sendMessage$\"\n >\n <stream-message-input\n [message]=\"messageInput\"\n [sendMessage$]=\"sendMessage$Input\"\n (messageUpdate)=\"messageUpdateHandler()\"\n ></stream-message-input>\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"\n (customTemplatesService.messageInputTemplate$ | async) || defaultInput;\n context: getMessageInputContext()\n \"\n >\n </ng-container>\n\n <stream-notification-list></stream-notification-list>\n <div\n class=\"\n str-chat__message-team-form-footer\n str-chat__message-team-form-footer-angular\n \"\n >\n <div class=\"str-chat__edit-message-form-options\">\n <button\n class=\"str-chat__edit-message-cancel\"\n translate\n data-testid=\"cancel-button\"\n (click)=\"dismissed()\"\n >\n streamChat.Cancel\n </button>\n <button\n type=\"submit\"\n translate\n class=\"str-chat__edit-message-send\"\n data-testid=\"send-button\"\n (click)=\"sendClicked()\"\n (keyup.enter)=\"sendClicked()\"\n >\n streamChat.Send\n </button>\n </div>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.MessageInputComponent, selector: "stream-message-input", inputs: ["isFileUploadEnabled", "areMentionsEnabled", "mentionScope", "mode", "isMultipleFileUploadEnabled", "message", "sendMessage$", "inputMode", "autoFocus"], outputs: ["messageUpdate"] }, { kind: "component", type: i6.NotificationListComponent, selector: "stream-notification-list" }, { kind: "component", type: i7.ModalComponent, selector: "stream-modal", inputs: ["isOpen", "content"], outputs: ["isOpenChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
|
|
74
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EditMessageFormComponent, decorators: [{
|
|
75
|
-
type: Component,
|
|
76
|
-
args: [{ selector: 'stream-edit-message-form', template: "<ng-container\n *ngTemplateOutlet=\"\n (customTemplatesService.modalTemplate$ | async) || defaultModal;\n context: getEditModalContext()\n \"\n></ng-container>\n\n<ng-template\n #defaultModal\n let-isOpen=\"isOpen\"\n let-isOpenChangeHandler=\"isOpenChangeHandler\"\n let-content=\"content\"\n>\n <stream-modal\n *ngIf=\"isOpen\"\n [isOpen]=\"isOpen\"\n [content]=\"content\"\n (isOpenChange)=\"isOpenChangeHandler($event)\"\n >\n </stream-modal>\n</ng-template>\n\n<ng-template #editMessageForm>\n <div class=\"str-chat__edit-message-form\">\n <ng-template\n #defaultInput\n let-messageInput=\"message\"\n let-messageUpdateHandler=\"messageUpdateHandler\"\n let-sendMessage$Input=\"sendMessage$\"\n >\n <stream-message-input\n [message]=\"messageInput\"\n [sendMessage$]=\"sendMessage$Input\"\n (messageUpdate)=\"messageUpdateHandler()\"\n ></stream-message-input>\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"\n (customTemplatesService.messageInputTemplate$ | async) || defaultInput;\n context: getMessageInputContext()\n \"\n >\n </ng-container>\n\n <stream-notification-list></stream-notification-list>\n <div\n class=\"\n str-chat__message-team-form-footer\n str-chat__message-team-form-footer-angular\n \"\n >\n <div class=\"str-chat__edit-message-form-options\">\n <button\n class=\"str-chat__edit-message-cancel\"\n translate\n data-testid=\"cancel-button\"\n (click)=\"dismissed()\"\n >\n streamChat.Cancel\n </button>\n <button\n type=\"submit\"\n translate\n class=\"str-chat__edit-message-send\"\n data-testid=\"send-button\"\n (click)=\"sendClicked()\"\n (keyup.enter)=\"sendClicked()\"\n >\n streamChat.Send\n </button>\n </div>\n </div>\n </div>\n</ng-template>\n" }]
|
|
77
|
-
}], ctorParameters: function () { return [{ type: i1.CustomTemplatesService }, { type: i2.MessageActionsService }]; }, propDecorators: { class: [{
|
|
78
|
-
type: HostBinding
|
|
79
|
-
}], modalContent: [{
|
|
80
|
-
type: ViewChild,
|
|
81
|
-
args: ['editMessageForm', { static: true }]
|
|
82
|
-
}] } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1tZXNzYWdlLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL2VkaXQtbWVzc2FnZS1mb3JtL2VkaXQtbWVzc2FnZS1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9lZGl0LW1lc3NhZ2UtZm9ybS9lZGl0LW1lc3NhZ2UtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFJWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQUd6RDs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLHdCQUF3QjtJQVVuQyxZQUNXLHNCQUE4QyxFQUMvQyxxQkFBNEM7UUFEM0MsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUMvQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBWHZDLFVBQUssR0FBRyxxQ0FBcUMsQ0FBQztRQUU3RCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUlaLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDekMsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBTXpDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM5RCxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUNwRSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDeEIsbUJBQW1CLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO29CQUNyQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7aUJBQ2xCO1lBQ0gsQ0FBQztZQUNELE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWTtTQUMzQixDQUFDO0lBQ0osQ0FBQztJQUVELHNCQUFzQjtRQUNwQixPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLG9CQUFvQixFQUFFLEdBQUcsRUFBRTtnQkFDekIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLENBQUM7WUFDRCxtQkFBbUIsRUFBRSxTQUFTO1lBQzlCLGtCQUFrQixFQUFFLFNBQVM7WUFDN0IsMkJBQTJCLEVBQUUsU0FBUztZQUN0QyxZQUFZLEVBQUUsU0FBUztZQUN2QixJQUFJLEVBQUUsU0FBUztZQUNmLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtTQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUN6QixJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1RCxDQUFDOztxSEFsRVUsd0JBQXdCO3lHQUF4Qix3QkFBd0IsZ1BDdkJyQyx3OURBMEVBOzJGRG5EYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsMEJBQTBCO2lKQUtyQixLQUFLO3NCQUFuQixXQUFXO2dCQUtKLFlBQVk7c0JBRG5CLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3VzdG9tVGVtcGxhdGVzU2VydmljZSB9IGZyb20gJy4uL2N1c3RvbS10ZW1wbGF0ZXMuc2VydmljZSc7XG5pbXBvcnQgeyBNZXNzYWdlSW5wdXRDb250ZXh0LCBNb2RhbENvbnRleHQsIFN0cmVhbU1lc3NhZ2UgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1lc3NhZ2VBY3Rpb25zU2VydmljZSB9IGZyb20gJy4uL21lc3NhZ2UtYWN0aW9ucy5zZXJ2aWNlJztcblxuLyoqXG4gKiBUaGUgZWRpdCBtZXNzYWdlIGZvcm0gZGlzcGxheXMgYSBtb2RhbCB0aGF0J3Mgb3BlbmVkIHdoZW4gYSB1c2VyIGVkaXRzIGEgbWVzc2FnZS4gVGhlIGNvbXBvbmVudCB1c2VzIHRoZSBbYE1lc3NhZ2VBY3Rpb25zU2VydmljZWBdKC4uLy4uL3NlcnZpY2VzL01lc3NhZ2VBY3Rpb25zU2VydmljZSkgdG8ga25vdyB3aGljaCBtZXNzYWdlIGlzIGJlaW5nIGVkaXRlZC5cbiAqXG4gKiBCeSBkZWZhdWx0IHRoaXMgaXMgZGlzcGxheWVkIHdpdGhpbiB0aGUgW2BzdHJlYW0tY2hhbm5lbGAgY29tcG9uZW50XSguLi8uLi9jb21wb25lbnRzL0NoYW5uZWxDb21wb25lbnQpLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHJlYW0tZWRpdC1tZXNzYWdlLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdC1tZXNzYWdlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBFZGl0TWVzc2FnZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBIb3N0QmluZGluZygpIGNsYXNzID0gJ3N0ci1jaGF0LWFuZ3VsYXJfX2VkaXQtbWVzc2FnZS1mb3JtJztcbiAgc2VuZE1lc3NhZ2UkOiBPYnNlcnZhYmxlPHZvaWQ+O1xuICBpc01vZGFsT3BlbiA9IGZhbHNlO1xuICBtZXNzYWdlPzogU3RyZWFtTWVzc2FnZTtcbiAgQFZpZXdDaGlsZCgnZWRpdE1lc3NhZ2VGb3JtJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSBtb2RhbENvbnRlbnQhOiBUZW1wbGF0ZVJlZjx2b2lkPjtcbiAgcHJpdmF0ZSBzZW5kTWVzc2FnZVN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcmVhZG9ubHkgY3VzdG9tVGVtcGxhdGVzU2VydmljZTogQ3VzdG9tVGVtcGxhdGVzU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VBY3Rpb25zU2VydmljZTogTWVzc2FnZUFjdGlvbnNTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc2VuZE1lc3NhZ2UkID0gdGhpcy5zZW5kTWVzc2FnZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1lc3NhZ2VBY3Rpb25zU2VydmljZS5tZXNzYWdlVG9FZGl0JC5zdWJzY3JpYmUoKG1lc3NhZ2UpID0+IHtcbiAgICAgIGlmICgobWVzc2FnZSAmJiAhdGhpcy5pc01vZGFsT3BlbikgfHwgKCFtZXNzYWdlICYmIHRoaXMuaXNNb2RhbE9wZW4pKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgICAgIHRoaXMuaXNNb2RhbE9wZW4gPSAhIW1lc3NhZ2U7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgocykgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGdldEVkaXRNb2RhbENvbnRleHQoKTogTW9kYWxDb250ZXh0IHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNPcGVuOiB0aGlzLmlzTW9kYWxPcGVuLFxuICAgICAgaXNPcGVuQ2hhbmdlSGFuZGxlcjogKGlzT3BlbikgPT4ge1xuICAgICAgICB0aGlzLmlzTW9kYWxPcGVuID0gaXNPcGVuO1xuICAgICAgICBpZiAoIXRoaXMuaXNNb2RhbE9wZW4pIHtcbiAgICAgICAgICB0aGlzLmRpc21pc3NlZCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY29udGVudDogdGhpcy5tb2RhbENvbnRlbnQsXG4gICAgfTtcbiAgfVxuXG4gIGdldE1lc3NhZ2VJbnB1dENvbnRleHQoKTogTWVzc2FnZUlucHV0Q29udGV4dCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSxcbiAgICAgIG1lc3NhZ2VVcGRhdGVIYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZGlzbWlzc2VkKCk7XG4gICAgICB9LFxuICAgICAgaXNGaWxlVXBsb2FkRW5hYmxlZDogdW5kZWZpbmVkLFxuICAgICAgYXJlTWVudGlvbnNFbmFibGVkOiB1bmRlZmluZWQsXG4gICAgICBpc011bHRpcGxlRmlsZVVwbG9hZEVuYWJsZWQ6IHVuZGVmaW5lZCxcbiAgICAgIG1lbnRpb25TY29wZTogdW5kZWZpbmVkLFxuICAgICAgbW9kZTogdW5kZWZpbmVkLFxuICAgICAgc2VuZE1lc3NhZ2UkOiB0aGlzLnNlbmRNZXNzYWdlJCxcbiAgICB9O1xuICB9XG5cbiAgc2VuZENsaWNrZWQoKSB7XG4gICAgdGhpcy5zZW5kTWVzc2FnZVN1YmplY3QubmV4dCgpO1xuICB9XG5cbiAgZGlzbWlzc2VkKCkge1xuICAgIHRoaXMuaXNNb2RhbE9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLm1lc3NhZ2UgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5tZXNzYWdlQWN0aW9uc1NlcnZpY2UubWVzc2FnZVRvRWRpdCQubmV4dCh1bmRlZmluZWQpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyXG4gICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgKGN1c3RvbVRlbXBsYXRlc1NlcnZpY2UubW9kYWxUZW1wbGF0ZSQgfCBhc3luYykgfHwgZGVmYXVsdE1vZGFsO1xuICAgIGNvbnRleHQ6IGdldEVkaXRNb2RhbENvbnRleHQoKVxuICBcIlxuPjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGVcbiAgI2RlZmF1bHRNb2RhbFxuICBsZXQtaXNPcGVuPVwiaXNPcGVuXCJcbiAgbGV0LWlzT3BlbkNoYW5nZUhhbmRsZXI9XCJpc09wZW5DaGFuZ2VIYW5kbGVyXCJcbiAgbGV0LWNvbnRlbnQ9XCJjb250ZW50XCJcbj5cbiAgPHN0cmVhbS1tb2RhbFxuICAgICpuZ0lmPVwiaXNPcGVuXCJcbiAgICBbaXNPcGVuXT1cImlzT3BlblwiXG4gICAgW2NvbnRlbnRdPVwiY29udGVudFwiXG4gICAgKGlzT3BlbkNoYW5nZSk9XCJpc09wZW5DaGFuZ2VIYW5kbGVyKCRldmVudClcIlxuICA+XG4gIDwvc3RyZWFtLW1vZGFsPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlZGl0TWVzc2FnZUZvcm0+XG4gIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fZWRpdC1tZXNzYWdlLWZvcm1cIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICNkZWZhdWx0SW5wdXRcbiAgICAgIGxldC1tZXNzYWdlSW5wdXQ9XCJtZXNzYWdlXCJcbiAgICAgIGxldC1tZXNzYWdlVXBkYXRlSGFuZGxlcj1cIm1lc3NhZ2VVcGRhdGVIYW5kbGVyXCJcbiAgICAgIGxldC1zZW5kTWVzc2FnZSRJbnB1dD1cInNlbmRNZXNzYWdlJFwiXG4gICAgPlxuICAgICAgPHN0cmVhbS1tZXNzYWdlLWlucHV0XG4gICAgICAgIFttZXNzYWdlXT1cIm1lc3NhZ2VJbnB1dFwiXG4gICAgICAgIFtzZW5kTWVzc2FnZSRdPVwic2VuZE1lc3NhZ2UkSW5wdXRcIlxuICAgICAgICAobWVzc2FnZVVwZGF0ZSk9XCJtZXNzYWdlVXBkYXRlSGFuZGxlcigpXCJcbiAgICAgID48L3N0cmVhbS1tZXNzYWdlLWlucHV0PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgKGN1c3RvbVRlbXBsYXRlc1NlcnZpY2UubWVzc2FnZUlucHV0VGVtcGxhdGUkIHwgYXN5bmMpIHx8IGRlZmF1bHRJbnB1dDtcbiAgICAgICAgY29udGV4dDogZ2V0TWVzc2FnZUlucHV0Q29udGV4dCgpXG4gICAgICBcIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxzdHJlYW0tbm90aWZpY2F0aW9uLWxpc3Q+PC9zdHJlYW0tbm90aWZpY2F0aW9uLWxpc3Q+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJcbiAgICAgICAgc3RyLWNoYXRfX21lc3NhZ2UtdGVhbS1mb3JtLWZvb3RlclxuICAgICAgICBzdHItY2hhdF9fbWVzc2FnZS10ZWFtLWZvcm0tZm9vdGVyLWFuZ3VsYXJcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19lZGl0LW1lc3NhZ2UtZm9ybS1vcHRpb25zXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cInN0ci1jaGF0X19lZGl0LW1lc3NhZ2UtY2FuY2VsXCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImNhbmNlbC1idXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJkaXNtaXNzZWQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICBzdHJlYW1DaGF0LkNhbmNlbFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgIGNsYXNzPVwic3RyLWNoYXRfX2VkaXQtbWVzc2FnZS1zZW5kXCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cInNlbmQtYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VuZENsaWNrZWQoKVwiXG4gICAgICAgICAgKGtleXVwLmVudGVyKT1cInNlbmRDbGlja2VkKClcIlxuICAgICAgICA+XG4gICAgICAgICAgc3RyZWFtQ2hhdC5TZW5kXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
|
-
import { CustomTemplatesService } from '../custom-templates.service';
|
|
3
|
-
import { MessageInputContext, ModalContext, StreamMessage } from '../types';
|
|
4
|
-
import { Observable } from 'rxjs';
|
|
5
|
-
import { MessageActionsService } from '../message-actions.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* The edit message form displays a modal that's opened when a user edits a message. The component uses the [`MessageActionsService`](../../services/MessageActionsService) to know which message is being edited.
|
|
9
|
-
*
|
|
10
|
-
* By default this is displayed within the [`stream-channel` component](../../components/ChannelComponent).
|
|
11
|
-
*/
|
|
12
|
-
export declare class EditMessageFormComponent implements OnInit, OnDestroy {
|
|
13
|
-
readonly customTemplatesService: CustomTemplatesService;
|
|
14
|
-
private messageActionsService;
|
|
15
|
-
class: string;
|
|
16
|
-
sendMessage$: Observable<void>;
|
|
17
|
-
isModalOpen: boolean;
|
|
18
|
-
message?: StreamMessage;
|
|
19
|
-
private modalContent;
|
|
20
|
-
private sendMessageSubject;
|
|
21
|
-
private subscriptions;
|
|
22
|
-
constructor(customTemplatesService: CustomTemplatesService, messageActionsService: MessageActionsService);
|
|
23
|
-
ngOnInit(): void;
|
|
24
|
-
ngOnDestroy(): void;
|
|
25
|
-
getEditModalContext(): ModalContext;
|
|
26
|
-
getMessageInputContext(): MessageInputContext;
|
|
27
|
-
sendClicked(): void;
|
|
28
|
-
dismissed(): void;
|
|
29
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<EditMessageFormComponent, never>;
|
|
30
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<EditMessageFormComponent, "stream-edit-message-form", never, {}, {}, never, never, false, never>;
|
|
31
|
-
}
|