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.
@@ -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
- constructor(channelService: ChannelService, notificationService: NotificationService, attachmentService: AttachmentService, configService: MessageInputConfigService, textareaType: Type<TextareaInterface>, componentFactoryResolver: ComponentFactoryResolver, cdRef: ChangeDetectorRef, chatClient: ChatClientService, emojiInputService: EmojiInputService, customTemplatesService: CustomTemplatesService);
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 "./edit-message-form/edit-message-form.component";
23
- import * as i22 from "./message-bounce-prompt/message-bounce-prompt.component";
24
- import * as i23 from "./voice-recording/voice-recording.component";
25
- import * as i24 from "./voice-recording/voice-recording-wavebar/voice-recording-wavebar.component";
26
- import * as i25 from "./message-reactions-selector/message-reactions-selector.component";
27
- import * as i26 from "@angular/common";
28
- import * as i27 from "ngx-float-ui";
29
- import * as i28 from "./stream-avatar.module";
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.EditMessageFormComponent, typeof i22.MessageBouncePromptComponent, typeof i23.VoiceRecordingComponent, typeof i24.VoiceRecordingWavebarComponent, typeof i25.MessageReactionsSelectorComponent], [typeof i26.CommonModule, typeof i27.NgxFloatUiModule, typeof i28.StreamAvatarModule, typeof i29.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 i28.StreamAvatarModule, typeof i18.ThreadComponent, typeof i19.IconPlaceholderComponent, typeof i20.LoadingIndicatorPlaceholderComponent, typeof i21.EditMessageFormComponent, typeof i22.MessageBouncePromptComponent, typeof i23.VoiceRecordingComponent, typeof i24.VoiceRecordingWavebarComponent, typeof i25.MessageReactionsSelectorComponent]>;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stream-chat-angular",
3
- "version": "5.0.0-v5.21",
3
+ "version": "5.0.0-v5.22",
4
4
  "description": "Angular components to create chat conversations or livestream style chat",
5
5
  "author": "GetStream",
6
6
  "homepage": "https://getstream.io/chat/",
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';
@@ -1 +1 @@
1
- export const version = '5.0.0-v5.21';
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
- }