stream-chat-angular 4.47.3 → 4.49.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.
Files changed (46) hide show
  1. package/assets/i18n/en.d.ts +2 -1
  2. package/assets/version.d.ts +1 -1
  3. package/bundles/stream-chat-angular.umd.js +114 -29
  4. package/bundles/stream-chat-angular.umd.js.map +1 -1
  5. package/esm2015/assets/i18n/en.js +4 -3
  6. package/esm2015/assets/version.js +2 -2
  7. package/esm2015/lib/attachment.service.js +21 -4
  8. package/esm2015/lib/channel.service.js +80 -16
  9. package/esm2015/lib/types.js +1 -1
  10. package/fesm2015/stream-chat-angular.js +103 -21
  11. package/fesm2015/stream-chat-angular.js.map +1 -1
  12. package/lib/channel.service.d.ts +19 -2
  13. package/lib/types.d.ts +15 -1
  14. package/package.json +1 -1
  15. package/src/assets/i18n/en.ts +5 -2
  16. package/src/assets/styles/css/index.css +1 -1
  17. package/src/assets/styles/scss/MessageInput.scss +6 -0
  18. package/src/assets/styles/scss/_base.scss +0 -41
  19. package/src/assets/styles/scss/index.scss +0 -1
  20. package/src/assets/styles/v2/css/emoji-mart.css +1 -0
  21. package/src/assets/styles/v2/css/emoji-replacement.css +1 -0
  22. package/src/assets/styles/v2/css/index.css +1 -1
  23. package/src/assets/styles/v2/css/index.layout.css +1 -1
  24. package/src/assets/styles/v2/scss/AttachmentPreviewList/AttachmentPreviewList-layout.scss +1 -0
  25. package/src/assets/styles/v2/scss/Autocomplete/Autocomplete-layout.scss +8 -0
  26. package/src/assets/styles/v2/scss/ChannelHeader/ChannelHeader-layout.scss +4 -0
  27. package/src/assets/styles/v2/scss/ChannelPreview/ChannelPreview-layout.scss +1 -0
  28. package/src/assets/styles/v2/scss/ChannelSearch/ChannelSearch-layout.scss +5 -0
  29. package/src/assets/styles/v2/scss/LinkPreview/LinkPreview-layout.scss +49 -0
  30. package/src/assets/styles/v2/scss/LinkPreview/LinkPreview-theme.scss +17 -0
  31. package/src/assets/styles/v2/scss/LinkPreview/index.scss +2 -0
  32. package/src/assets/styles/v2/scss/Message/Message-layout.scss +8 -0
  33. package/src/assets/styles/v2/scss/MessageInput/MessageInput-layout.scss +1 -1
  34. package/src/assets/styles/v2/scss/MessageList/MessageList-layout.scss +1 -0
  35. package/src/assets/styles/v2/scss/MessageList/VirtualizedMessageList-layout.scss +4 -0
  36. package/src/assets/styles/v2/scss/Notification/Notification-layout.scss +4 -0
  37. package/src/assets/styles/v2/scss/Thread/Thread-layout.scss +4 -0
  38. package/src/assets/styles/v2/scss/Tooltip/Tooltip-layout.scss +1 -0
  39. package/src/assets/styles/v2/scss/_emoji-replacement.scss +1 -0
  40. package/src/assets/styles/v2/scss/_utils.scss +5 -0
  41. package/src/assets/styles/v2/scss/index.layout.scss +1 -1
  42. package/src/assets/styles/v2/scss/index.scss +1 -1
  43. package/src/assets/version.ts +1 -1
  44. package/src/assets/styles/css/index.css.map +0 -1
  45. package/src/assets/styles/v2/css/index.css.map +0 -1
  46. package/src/assets/styles/v2/css/index.layout.css.map +0 -1
@@ -3,7 +3,7 @@ import { Observable } from 'rxjs';
3
3
  import { Attachment, Channel, ChannelFilters, ChannelOptions, ChannelResponse, ChannelSort, Event, MessageResponse, UserResponse } from 'stream-chat';
4
4
  import { ChatClientService, ClientEvent } from './chat-client.service';
5
5
  import { NotificationService } from './notification.service';
6
- import { AttachmentUpload, ChannelQueryState, DefaultStreamChatGenerics, MessageInput, MessageReactionType, StreamMessage } from './types';
6
+ import { AttachmentUpload, ChannelQueryState, DefaultStreamChatGenerics, MessageInput, MessageReactionType, NextPageConfiguration, StreamMessage } from './types';
7
7
  import * as i0 from "@angular/core";
8
8
  /**
9
9
  * The `ChannelService` provides data and interaction for the channel list and message list.
@@ -175,6 +175,14 @@ export declare class ChannelService<T extends DefaultStreamChatGenerics = Defaul
175
175
  * The provided method will be called before a message is sent to Stream's API for update. You can use this hook to tranfrom or enrich the message being updated.
176
176
  */
177
177
  beforeUpdateMessage?: (message: StreamMessage<T>) => StreamMessage<T> | Promise<StreamMessage<T>>;
178
+ /**
179
+ * By default the SDK uses an offset based pagination, you can change/extend this by providing your own custom paginator method.
180
+ *
181
+ * The method will be called with the result of the latest channel query.
182
+ *
183
+ * You can return either an offset, or a filter using the [`$lte`/`$gte` operator](https://getstream.io/chat/docs/javascript/query_syntax_operators/). If you return a filter, it will be merged with the filter provided for the `init` method.
184
+ */
185
+ customPaginator?: (channelQueryResult: Channel<T>[]) => NextPageConfiguration;
178
186
  private channelsSubject;
179
187
  private activeChannelSubject;
180
188
  private activeChannelMessagesSubject;
@@ -203,6 +211,7 @@ export declare class ChannelService<T extends DefaultStreamChatGenerics = Defaul
203
211
  private threadListSetter;
204
212
  private parentMessageSetter;
205
213
  private dismissErrorNotification?;
214
+ private nextPageConfiguration?;
206
215
  constructor(chatClientService: ChatClientService<T>, ngZone: NgZone, notificationService: NotificationService);
207
216
  /**
208
217
  * If set to false, read events won't be sent as new messages are received. If set to true active channel (if any) will immediately be marked as read.
@@ -427,6 +436,14 @@ export declare class ChannelService<T extends DefaultStreamChatGenerics = Defaul
427
436
  * @param parentId The id of the parent message, if user were typing in a thread
428
437
  */
429
438
  typingStopped(parentId?: string): Promise<void>;
439
+ /**
440
+ * The current list of channels
441
+ */
442
+ get channels(): Channel<T>[];
443
+ /**
444
+ * The current active channel
445
+ */
446
+ get activeChannel(): Channel<T> | undefined;
430
447
  private messageUpdated;
431
448
  private messageReactionEventReceived;
432
449
  private formatMessage;
@@ -441,7 +458,6 @@ export declare class ChannelService<T extends DefaultStreamChatGenerics = Defaul
441
458
  private handleChannelVisible;
442
459
  private handleChannelUpdate;
443
460
  private handleChannelTruncate;
444
- private get channels();
445
461
  private get canSendReadEvents();
446
462
  private transformToStreamMessage;
447
463
  private handleTypingStartEvent;
@@ -449,6 +465,7 @@ export declare class ChannelService<T extends DefaultStreamChatGenerics = Defaul
449
465
  private updateLatestMessages;
450
466
  private setChannelState;
451
467
  private markRead;
468
+ private setNextPageConfiguration;
452
469
  static ɵfac: i0.ɵɵFactoryDeclaration<ChannelService<any>, never>;
453
470
  static ɵprov: i0.ɵɵInjectableDeclaration<ChannelService<any>>;
454
471
  }
package/lib/types.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { TemplateRef } from '@angular/core';
2
2
  import { Observable, Subject } from 'rxjs';
3
- import type { Attachment, Channel, ChannelMemberResponse, CommandResponse, Event, ExtendableGenerics, FormatMessageResponse, LiteralStringForUnion, MessageResponseBase, Mute, ReactionResponse, User, UserResponse } from 'stream-chat';
3
+ import type { Attachment, Channel, ChannelFilters, ChannelMemberResponse, CommandResponse, Event, ExtendableGenerics, FormatMessageResponse, LiteralStringForUnion, MessageResponseBase, Mute, ReactionResponse, User, UserResponse } from 'stream-chat';
4
4
  import { AttachmentService } from './attachment.service';
5
5
  import { Icon } from './icon/icon.component';
6
6
  export declare type UnknownType = Record<string, unknown>;
@@ -50,9 +50,14 @@ export declare type DefaultUserType = UnknownType & DefaultUserTypeInternal & {
50
50
  mutes?: Array<Mute<DefaultStreamChatGenerics>>;
51
51
  };
52
52
  export declare type StreamMessage<T extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = FormatMessageResponse<T>;
53
+ export declare type AttachmentUploadErrorReason = 'file-size' | 'file-extension' | 'unknown';
53
54
  export declare type AttachmentUpload<T extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
54
55
  file: File;
55
56
  state: 'error' | 'success' | 'uploading';
57
+ errorReason?: AttachmentUploadErrorReason;
58
+ errorExtraInfo?: {
59
+ param: string;
60
+ }[];
56
61
  url?: string;
57
62
  type: 'image' | 'file' | 'video';
58
63
  previewUri?: string | ArrayBuffer;
@@ -254,4 +259,13 @@ export declare type MessageInput<T extends DefaultStreamChatGenerics = DefaultSt
254
259
  quotedMessageId: string | undefined;
255
260
  customData: undefined | Partial<T['messageType']>;
256
261
  };
262
+ export declare type OffsetNextPageConfiguration = {
263
+ type: 'offset';
264
+ offset: number;
265
+ };
266
+ export declare type FiltertNextPageConfiguration<T extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
267
+ type: 'filter';
268
+ paginationFilter: ChannelFilters<T>;
269
+ };
270
+ export declare type NextPageConfiguration = OffsetNextPageConfiguration | FiltertNextPageConfiguration;
257
271
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stream-chat-angular",
3
- "version": "4.47.3",
3
+ "version": "4.49.0",
4
4
  "description": "Angular components to create chat conversations or livestream style chat",
5
5
  "author": "GetStream",
6
6
  "homepage": "https://getstream.io/chat/",
@@ -23,8 +23,11 @@ export const en = {
23
23
  'Error pinning message': 'Error pinning message',
24
24
  'Error removing message pin': 'Error removing message pin',
25
25
  'Error unmuting a user ...': 'Error unmuting a user ...',
26
- 'Error uploading file': 'Error uploading file',
27
- 'Error uploading image': 'Error uploading image',
26
+ 'Error uploading file': 'Error uploading file "{{ name }}"',
27
+ 'Error uploading file, maximum file size exceeded':
28
+ 'Error uploading "{{ name }}", maximum file size {{ limit }} exceeded',
29
+ 'Error uploading file, extension not supported':
30
+ 'Error uploading "{{ name }}", extension {{ ext }} not supported',
28
31
  'Error deleting attachment': 'Error deleting attachment',
29
32
  'Error · Unsent': "Message couldn't be sent",
30
33
  'Error: {{ errorMessage }}': 'Error: {{ errorMessage }}',