stream-chat-angular 6.2.0 → 6.3.0-beta.2

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 (106) hide show
  1. package/assets/i18n/en.d.ts +42 -0
  2. package/assets/version.d.ts +1 -1
  3. package/esm2020/assets/i18n/en.mjs +43 -1
  4. package/esm2020/assets/version.mjs +2 -2
  5. package/esm2020/lib/channel-list/channel-list.component.mjs +3 -3
  6. package/esm2020/lib/channel-preview/channel-preview.component.mjs +4 -1
  7. package/esm2020/lib/channel.service.mjs +6 -3
  8. package/esm2020/lib/custom-templates.service.mjs +9 -1
  9. package/esm2020/lib/icon/icon.component.mjs +1 -1
  10. package/esm2020/lib/message/message.component.mjs +21 -6
  11. package/esm2020/lib/message-actions.service.mjs +5 -1
  12. package/esm2020/lib/message-input/message-input.component.mjs +30 -5
  13. package/esm2020/lib/message-preview.mjs +3 -2
  14. package/esm2020/lib/modal/modal.component.mjs +3 -3
  15. package/esm2020/lib/modal/stream-modal.module.mjs +19 -0
  16. package/esm2020/lib/notification-list/stream-notification.module.mjs +20 -0
  17. package/esm2020/lib/paginated-list/stream-paginated-list.module.mjs +20 -0
  18. package/esm2020/lib/polls/base-poll.component.mjs +87 -0
  19. package/esm2020/lib/polls/poll/poll.component.mjs +34 -0
  20. package/esm2020/lib/polls/poll-actions/add-option/add-option.component.mjs +67 -0
  21. package/esm2020/lib/polls/poll-actions/poll-actions.component.mjs +137 -0
  22. package/esm2020/lib/polls/poll-actions/poll-answers-list/poll-answers-list.component.mjs +82 -0
  23. package/esm2020/lib/polls/poll-actions/poll-results/poll-results-list/poll-results-list.component.mjs +63 -0
  24. package/esm2020/lib/polls/poll-actions/poll-results/poll-vote/poll-vote.component.mjs +33 -0
  25. package/esm2020/lib/polls/poll-actions/poll-results/poll-vote-results-list/poll-vote-results-list.component.mjs +82 -0
  26. package/esm2020/lib/polls/poll-actions/upsert-answer/upsert-answer.component.mjs +60 -0
  27. package/esm2020/lib/polls/poll-composer/poll-composer.component.mjs +134 -0
  28. package/esm2020/lib/polls/poll-composer/validators.mjs +18 -0
  29. package/esm2020/lib/polls/poll-header/poll-header.component.mjs +80 -0
  30. package/esm2020/lib/polls/poll-option-selector/poll-option-selector.component.mjs +137 -0
  31. package/esm2020/lib/polls/poll-options-list/poll-options-list.component.mjs +39 -0
  32. package/esm2020/lib/polls/poll-preview/poll-preview.component.mjs +31 -0
  33. package/esm2020/lib/polls/stream-polls.module.mjs +108 -0
  34. package/esm2020/lib/polls/unique.validator.mjs +13 -0
  35. package/esm2020/lib/stream-chat.module.mjs +26 -19
  36. package/esm2020/lib/types.mjs +1 -1
  37. package/esm2020/public-api.mjs +18 -1
  38. package/fesm2015/stream-chat-angular.mjs +1333 -61
  39. package/fesm2015/stream-chat-angular.mjs.map +1 -1
  40. package/fesm2020/stream-chat-angular.mjs +1291 -59
  41. package/fesm2020/stream-chat-angular.mjs.map +1 -1
  42. package/lib/channel.service.d.ts +2 -1
  43. package/lib/custom-templates.service.d.ts +14 -0
  44. package/lib/icon/icon.component.d.ts +1 -1
  45. package/lib/message/message.component.d.ts +1 -1
  46. package/lib/message-actions.service.d.ts +4 -0
  47. package/lib/message-input/message-input.component.d.ts +11 -1
  48. package/lib/message-preview.d.ts +1 -1
  49. package/lib/modal/stream-modal.module.d.ts +9 -0
  50. package/lib/notification-list/stream-notification.module.d.ts +10 -0
  51. package/lib/paginated-list/stream-paginated-list.module.d.ts +10 -0
  52. package/lib/polls/base-poll.component.d.ts +43 -0
  53. package/lib/polls/poll/poll.component.d.ts +12 -0
  54. package/lib/polls/poll-actions/add-option/add-option.component.d.ts +22 -0
  55. package/lib/polls/poll-actions/poll-actions.component.d.ts +50 -0
  56. package/lib/polls/poll-actions/poll-answers-list/poll-answers-list.component.d.ts +25 -0
  57. package/lib/polls/poll-actions/poll-results/poll-results-list/poll-results-list.component.d.ts +22 -0
  58. package/lib/polls/poll-actions/poll-results/poll-vote/poll-vote.component.d.ts +20 -0
  59. package/lib/polls/poll-actions/poll-results/poll-vote-results-list/poll-vote-results-list.component.d.ts +24 -0
  60. package/lib/polls/poll-actions/upsert-answer/upsert-answer.component.d.ts +27 -0
  61. package/lib/polls/poll-composer/poll-composer.component.d.ts +43 -0
  62. package/lib/polls/poll-composer/validators.d.ts +3 -0
  63. package/lib/polls/poll-header/poll-header.component.d.ts +19 -0
  64. package/lib/polls/poll-option-selector/poll-option-selector.component.d.ts +27 -0
  65. package/lib/polls/poll-options-list/poll-options-list.component.d.ts +17 -0
  66. package/lib/polls/poll-preview/poll-preview.component.d.ts +13 -0
  67. package/lib/polls/stream-polls.module.d.ts +26 -0
  68. package/lib/polls/unique.validator.d.ts +2 -0
  69. package/lib/stream-chat.module.d.ts +20 -19
  70. package/lib/types.d.ts +2 -1
  71. package/package.json +6 -2
  72. package/public-api.d.ts +17 -0
  73. package/src/assets/i18n/en.ts +46 -0
  74. package/src/assets/styles/css/index.css +1 -1
  75. package/src/assets/styles/css/index.layout.css +1 -1
  76. package/src/assets/styles/scss/AttachmentList/AttachmentList-layout.scss +50 -0
  77. package/src/assets/styles/scss/AttachmentList/AttachmentList-theme.scss +56 -0
  78. package/src/assets/styles/scss/AttachmentPreviewList/AttachmentPreviewList-layout.scss +4 -1
  79. package/src/assets/styles/scss/AttachmentPreviewList/AttachmentPreviewList-theme.scss +11 -0
  80. package/src/assets/styles/scss/Autocomplete/Autocomplete-layout.scss +14 -0
  81. package/src/assets/styles/scss/Autocomplete/Autocomplete-theme.scss +11 -0
  82. package/src/assets/styles/scss/Dialog/Dialog-layout.scss +13 -5
  83. package/src/assets/styles/scss/DropzoneContainer/DropzoneContainer-layout.scss +14 -0
  84. package/src/assets/styles/scss/DropzoneContainer/DropzoneContainer-theme.scss +17 -0
  85. package/src/assets/styles/scss/Form/Form-layout.scss +40 -0
  86. package/src/assets/styles/scss/Form/Form-theme.scss +75 -10
  87. package/src/assets/styles/scss/Icon/Icon-layout.scss +6 -0
  88. package/src/assets/styles/scss/Icon/Icon-theme.scss +4 -0
  89. package/src/assets/styles/scss/LinkPreview/LinkPreview-layout.scss +18 -0
  90. package/src/assets/styles/scss/LinkPreview/LinkPreview-theme.scss +15 -0
  91. package/src/assets/styles/scss/Location/Location-layout.scss +52 -0
  92. package/src/assets/styles/scss/Location/Location-theme.scss +32 -0
  93. package/src/assets/styles/scss/Message/Message-layout.scss +37 -2
  94. package/src/assets/styles/scss/Message/Message-theme.scss +40 -1
  95. package/src/assets/styles/scss/MessageActionsBox/MessageActionsBox-theme.scss +8 -0
  96. package/src/assets/styles/scss/MessageInput/MessageInput-layout.scss +32 -13
  97. package/src/assets/styles/scss/MessageInput/MessageInput-theme.scss +28 -20
  98. package/src/assets/styles/scss/Modal/Modal-layout.scss +2 -0
  99. package/src/assets/styles/scss/Modal/Modal-theme.scss +21 -6
  100. package/src/assets/styles/scss/Poll/Poll-layout.scss +45 -44
  101. package/src/assets/styles/scss/Poll/Poll-theme.scss +8 -36
  102. package/src/assets/styles/scss/_icons.scss +1 -0
  103. package/src/assets/styles/scss/index.layout.scss +3 -1
  104. package/src/assets/styles/scss/index.scss +2 -0
  105. package/src/assets/version.ts +1 -1
  106. /package/src/assets/styles/scss/DragAndDropContainer/{DragAmdDropContainer-layout.scss → DragAndDropContainer-layout.scss} +0 -0
@@ -320,8 +320,9 @@ export declare class ChannelService {
320
320
  * @param parentId Id of the parent message (if sending a thread reply)
321
321
  * @param quotedMessageId Id of the message to quote (if sending a quote reply)
322
322
  * @param customData
323
+ * @param pollId Id of the poll (if sending a poll message)
323
324
  */
324
- sendMessage(text: string, attachments?: Attachment[], mentionedUsers?: UserResponse[], parentId?: string | undefined, quotedMessageId?: string | undefined, customData?: undefined | CustomMessageData): Promise<StreamMessage>;
325
+ sendMessage(text: string, attachments?: Attachment[], mentionedUsers?: UserResponse[], parentId?: string | undefined, quotedMessageId?: string | undefined, customData?: undefined | CustomMessageData, pollId?: string | undefined): Promise<StreamMessage>;
325
326
  /**
326
327
  * Resends the given message to the active channel
327
328
  * @param message The message to resend
@@ -237,6 +237,20 @@ export declare class CustomTemplatesService {
237
237
  * The template has no effect if you're using a custom `messageTemplate$`
238
238
  */
239
239
  messageBlockedTemplate$: BehaviorSubject<TemplateRef<MessageBlockedContext> | undefined>;
240
+ /**
241
+ * Template to display polls inside [message component](/chat/docs/sdk/angular/components/MessageComponent/). There is no default template, but the `PollsModule` contains default components.
242
+ */
243
+ pollTemplate$: BehaviorSubject<TemplateRef<{
244
+ pollId: string;
245
+ messageId: string;
246
+ }> | undefined>;
247
+ /**
248
+ * Template to display poll composer inside [message input component](/chat/docs/sdk/angular/components/MessageInputComponent/). There is no default template, but the `PollsModule` contains default components.
249
+ */
250
+ pollComposerTemplate$: BehaviorSubject<TemplateRef<{
251
+ pollCompose: (pollId: string) => void;
252
+ cancel: () => void;
253
+ }> | undefined>;
240
254
  constructor();
241
255
  static ɵfac: i0.ɵɵFactoryDeclaration<CustomTemplatesService, never>;
242
256
  static ɵprov: i0.ɵɵInjectableDeclaration<CustomTemplatesService>;
@@ -1,5 +1,5 @@
1
1
  import * as i0 from "@angular/core";
2
- export declare type Icon = 'action' | 'delivered' | 'read' | 'reaction' | 'send' | 'retry' | 'close' | 'audio-file' | 'reply-in-thread' | 'arrow-left' | 'arrow-up' | 'arrow-down' | 'arrow-right' | 'chat-bubble' | 'attach' | 'unspecified-filetype' | 'download' | 'error' | 'play' | 'pause' | 'mic' | 'bin';
2
+ export declare type Icon = 'action' | 'delivered' | 'read' | 'reaction' | 'send' | 'retry' | 'close' | 'audio-file' | 'reply-in-thread' | 'arrow-left' | 'arrow-up' | 'arrow-down' | 'arrow-right' | 'chat-bubble' | 'attach' | 'unspecified-filetype' | 'download' | 'error' | 'play' | 'pause' | 'mic' | 'bin' | 'poll';
3
3
  /**
4
4
  * The `Icon` component can be used to display different icons (i. e. message delivered icon).
5
5
  */
@@ -51,7 +51,7 @@ export declare class MessageComponent implements OnInit, OnChanges, OnDestroy, A
51
51
  isEditedFlagOpened: boolean;
52
52
  shouldDisplayTranslationNotice: boolean;
53
53
  displayedMessageTextContent: 'original' | 'translation';
54
- imageAttachmentModalState: 'opened' | 'closed';
54
+ nestedModalState: 'opened' | 'closed';
55
55
  shouldDisplayThreadLink: boolean;
56
56
  isSentByCurrentUser: boolean;
57
57
  readByText: string;
@@ -31,6 +31,10 @@ export declare class MessageActionsService {
31
31
  * @internal
32
32
  */
33
33
  messageMenuOpenedFor$: BehaviorSubject<string | undefined>;
34
+ /**
35
+ * @internal
36
+ */
37
+ modalOpenedForMessage: BehaviorSubject<string | undefined>;
34
38
  private hasDisplayedClipboardWarning;
35
39
  constructor(chatClientService: ChatClientService, notificationService: NotificationService, channelService: ChannelService);
36
40
  /**
@@ -79,6 +79,10 @@ export declare class MessageInputComponent implements OnInit, OnChanges, OnDestr
79
79
  * You can enable/disable voice recordings with this input
80
80
  */
81
81
  displayVoiceRecordingButton: boolean;
82
+ /**
83
+ * You can enable/disable polls with this input
84
+ */
85
+ displayPollCreateButton: boolean;
82
86
  /**
83
87
  * Emits when a message was successfuly sent or updated
84
88
  */
@@ -93,6 +97,7 @@ export declare class MessageInputComponent implements OnInit, OnChanges, OnDestr
93
97
  isFileUploadAuthorized: boolean | undefined;
94
98
  canSendLinks: boolean | undefined;
95
99
  canSendMessages: boolean | undefined;
100
+ canSendPolls: boolean | undefined;
96
101
  attachmentUploads$: Observable<AttachmentUpload[]>;
97
102
  customAttachments$: Observable<Attachment[]>;
98
103
  attachmentUploadInProgressCounter$: Observable<number>;
@@ -108,6 +113,7 @@ export declare class MessageInputComponent implements OnInit, OnChanges, OnDestr
108
113
  attachmentPreviewListTemplate: TemplateRef<AttachmentPreviewListContext> | undefined;
109
114
  textareaPlaceholder: string;
110
115
  fileInputId: string;
116
+ isComposerOpen: boolean;
111
117
  private fileInput;
112
118
  private textareaAnchor;
113
119
  private subscriptions;
@@ -118,6 +124,7 @@ export declare class MessageInputComponent implements OnInit, OnChanges, OnDestr
118
124
  private readonly defaultTextareaPlaceholder;
119
125
  private readonly slowModeTextareaPlaceholder;
120
126
  private messageToEdit?;
127
+ private pollId;
121
128
  constructor(channelService: ChannelService, notificationService: NotificationService, attachmentService: AttachmentService, configService: MessageInputConfigService, textareaType: Type<TextareaInterface>, componentFactoryResolver: ComponentFactoryResolver, cdRef: ChangeDetectorRef, emojiInputService: EmojiInputService, customTemplatesService: CustomTemplatesService, messageActionsService: MessageActionsService, voiceRecorderService: VoiceRecorderService, audioRecorder?: AudioRecorderService | undefined);
122
129
  ngOnInit(): void;
123
130
  ngAfterViewInit(): void;
@@ -136,6 +143,9 @@ export declare class MessageInputComponent implements OnInit, OnChanges, OnDestr
136
143
  getAttachmentUploadContext(): CustomAttachmentUploadContext;
137
144
  getQuotedMessageTextContext(): MessageTextContext;
138
145
  startVoiceRecording(): Promise<void>;
146
+ openPollComposer(): void;
147
+ closePollComposer: () => void;
148
+ addPoll: (pollId: string) => void;
139
149
  voiceRecordingReady(recording: AudioRecording): Promise<void>;
140
150
  get isUpdate(): boolean;
141
151
  private deleteUpload;
@@ -149,5 +159,5 @@ export declare class MessageInputComponent implements OnInit, OnChanges, OnDestr
149
159
  private checkIfInEditMode;
150
160
  private messageToUpdateChanged;
151
161
  static ɵfac: i0.ɵɵFactoryDeclaration<MessageInputComponent, [null, null, null, null, null, null, null, null, null, null, null, { optional: true; }]>;
152
- 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"; "displayVoiceRecordingButton": "displayVoiceRecordingButton"; }, { "messageUpdate": "messageUpdate"; }, ["voiceRecorderRef"], ["[message-input-start]", "[message-input-end]"], false, never>;
162
+ 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"; "displayVoiceRecordingButton": "displayVoiceRecordingButton"; "displayPollCreateButton": "displayPollCreateButton"; }, { "messageUpdate": "messageUpdate"; }, ["voiceRecorderRef"], ["[message-input-start]", "[message-input-end]"], false, never>;
153
163
  }
@@ -1,2 +1,2 @@
1
1
  import { Attachment, CustomMessageData, MessageResponse, UserResponse } from 'stream-chat';
2
- export declare const createMessagePreview: (user: UserResponse, text: string, attachments: Attachment[] | undefined, mentionedUsers: UserResponse[] | undefined, parentId: undefined | string, quotedMessageId: undefined | string, customData: undefined | CustomMessageData) => MessageResponse;
2
+ export declare const createMessagePreview: (user: UserResponse, text: string, attachments: Attachment[] | undefined, mentionedUsers: UserResponse[] | undefined, parentId: undefined | string, quotedMessageId: undefined | string, customData: undefined | CustomMessageData, pollId?: undefined | string) => MessageResponse;
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./modal.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "../icon/icon.module";
5
+ export declare class StreamModalModule {
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<StreamModalModule, never>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<StreamModalModule, [typeof i1.ModalComponent], [typeof i2.CommonModule, typeof i3.IconModule], [typeof i1.ModalComponent]>;
8
+ static ɵinj: i0.ɵɵInjectorDeclaration<StreamModalModule>;
9
+ }
@@ -0,0 +1,10 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "../notification/notification.component";
3
+ import * as i2 from "./notification-list.component";
4
+ import * as i3 from "@angular/common";
5
+ import * as i4 from "@ngx-translate/core";
6
+ export declare class StreamNotificationModule {
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<StreamNotificationModule, never>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<StreamNotificationModule, [typeof i1.NotificationComponent, typeof i2.NotificationListComponent], [typeof i3.CommonModule, typeof i4.TranslateModule], [typeof i1.NotificationComponent, typeof i2.NotificationListComponent]>;
9
+ static ɵinj: i0.ɵɵInjectorDeclaration<StreamNotificationModule>;
10
+ }
@@ -0,0 +1,10 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./paginated-list.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "@ngx-translate/core";
5
+ import * as i4 from "../icon/icon.module";
6
+ export declare class StreamPaginatedListModule {
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<StreamPaginatedListModule, never>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<StreamPaginatedListModule, [typeof i1.PaginatedListComponent], [typeof i2.CommonModule, typeof i3.TranslateModule, typeof i4.IconModule], [typeof i1.PaginatedListComponent]>;
9
+ static ɵinj: i0.ɵɵInjectorDeclaration<StreamPaginatedListModule>;
10
+ }
@@ -0,0 +1,43 @@
1
+ import { AfterViewInit, ChangeDetectorRef, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
2
+ import { ChatClientService } from '../chat-client.service';
3
+ import { Poll, User } from 'stream-chat';
4
+ import { ChannelService } from '../channel.service';
5
+ import { CustomTemplatesService } from '../custom-templates.service';
6
+ import { NotificationService } from '../notification.service';
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * @internal
10
+ */
11
+ export declare abstract class BasePollComponent implements OnChanges, AfterViewInit, OnDestroy {
12
+ customTemplatesService: CustomTemplatesService;
13
+ private chatClientService;
14
+ private cdRef;
15
+ private channelService;
16
+ protected notificationService: NotificationService;
17
+ /**
18
+ * The poll id to display
19
+ */
20
+ pollId: string | undefined;
21
+ /**
22
+ * The message id the poll is attached to
23
+ */
24
+ messageId: string | undefined;
25
+ canVote: boolean;
26
+ canQueryVotes: boolean;
27
+ private pollStateUnsubscribe?;
28
+ private isViewInited;
29
+ private capabilitySubscription?;
30
+ protected dismissNotificationFn: (() => void) | undefined;
31
+ constructor(customTemplatesService: CustomTemplatesService, chatClientService: ChatClientService, cdRef: ChangeDetectorRef, channelService: ChannelService, notificationService: NotificationService);
32
+ ngOnChanges(changes: SimpleChanges): void;
33
+ ngAfterViewInit(): void;
34
+ ngOnDestroy(): void;
35
+ protected get poll(): Poll | undefined;
36
+ protected setupStateStoreSelector(): void;
37
+ protected addNotification(...args: Parameters<typeof this.notificationService.addTemporaryNotification>): void;
38
+ protected abstract stateStoreSelector(poll: Poll, markForCheck: () => void): () => void;
39
+ protected get currentUser(): User | undefined;
40
+ protected markForCheck(): void;
41
+ static ɵfac: i0.ɵɵFactoryDeclaration<BasePollComponent, never>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<BasePollComponent, "stream-base-poll", never, { "pollId": "pollId"; "messageId": "messageId"; }, {}, never, never, false, never>;
43
+ }
@@ -0,0 +1,12 @@
1
+ import { BasePollComponent } from '../base-poll.component';
2
+ import { Poll } from 'stream-chat';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ *
6
+ */
7
+ export declare class PollComponent extends BasePollComponent {
8
+ isClosed: boolean;
9
+ protected stateStoreSelector(poll: Poll, markForCheck: () => void): () => void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<PollComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<PollComponent, "stream-poll", never, {}, {}, never, ["[poll-header]", "[poll-options-list]", "[poll-actions]"], false, never>;
12
+ }
@@ -0,0 +1,22 @@
1
+ import { FormControl, FormGroup } from '@angular/forms';
2
+ import { BasePollComponent } from '../../base-poll.component';
3
+ import { Poll, PollOption } from 'stream-chat';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ *
7
+ */
8
+ export declare class AddOptionComponent extends BasePollComponent {
9
+ class: string;
10
+ /**
11
+ * The callback to close the modal the component is displayed in
12
+ */
13
+ closeModal: () => void;
14
+ formGroup: FormGroup<{
15
+ text: FormControl<string | null>;
16
+ }>;
17
+ options: PollOption[];
18
+ addOption(): Promise<void>;
19
+ protected stateStoreSelector(poll: Poll, markForCheck: () => void): () => void;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<AddOptionComponent, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<AddOptionComponent, "stream-add-option", never, { "closeModal": "closeModal"; }, {}, never, never, false, never>;
22
+ }
@@ -0,0 +1,50 @@
1
+ import { ChangeDetectorRef, TemplateRef } from '@angular/core';
2
+ import { BasePollComponent } from '../base-poll.component';
3
+ import { Poll, PollAnswer, PollOption } from 'stream-chat';
4
+ import { ModalContext } from '../../types';
5
+ import { CustomTemplatesService } from '../../custom-templates.service';
6
+ import { ChatClientService } from '../../chat-client.service';
7
+ import { ChannelService } from '../../channel.service';
8
+ import { MessageActionsService } from '../../message-actions.service';
9
+ import { NotificationService } from '../../notification.service';
10
+ import * as i0 from "@angular/core";
11
+ declare type Action = 'allOptions' | 'suggestOption' | 'addAnswer' | 'viewComments' | 'viewResults' | 'endVote';
12
+ /**
13
+ *
14
+ */
15
+ export declare class PollActionsComponent extends BasePollComponent {
16
+ private messageService;
17
+ /**
18
+ * If there are more options than this number, the "See all options" button will be displayed
19
+ */
20
+ maxOptionsDisplayed: number | undefined;
21
+ /**
22
+ * The maximum number of options allowed for the poll, this is defined by Stream API
23
+ */
24
+ maxPollOptions: number;
25
+ name: string;
26
+ options: PollOption[];
27
+ isClosed: boolean;
28
+ allowUserSuggestions: boolean;
29
+ allowAnswers: boolean;
30
+ answerCount: number;
31
+ isOwnPoll: boolean;
32
+ ownAnwer: PollAnswer | undefined;
33
+ selectedAction: Action | undefined;
34
+ isModalOpen: boolean;
35
+ allOptions: TemplateRef<void>;
36
+ suggestOption: TemplateRef<void>;
37
+ addAnswer: TemplateRef<void>;
38
+ viewComments: TemplateRef<void>;
39
+ viewResults: TemplateRef<void>;
40
+ endVote: TemplateRef<void>;
41
+ constructor(customTemplatesService: CustomTemplatesService, chatClientService: ChatClientService, cdRef: ChangeDetectorRef, channelService: ChannelService, notificationService: NotificationService, messageService: MessageActionsService);
42
+ protected stateStoreSelector(poll: Poll, markForCheck: () => void): () => void;
43
+ modalOpened: (action: Action) => void;
44
+ modalClosed: () => void;
45
+ closePoll(): Promise<void>;
46
+ getModalContext(): ModalContext;
47
+ static ɵfac: i0.ɵɵFactoryDeclaration<PollActionsComponent, never>;
48
+ static ɵcmp: i0.ɵɵComponentDeclaration<PollActionsComponent, "stream-poll-actions", never, { "maxOptionsDisplayed": "maxOptionsDisplayed"; "maxPollOptions": "maxPollOptions"; }, {}, never, never, false, never>;
49
+ }
50
+ export {};
@@ -0,0 +1,25 @@
1
+ import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
2
+ import { BasePollComponent } from '../../base-poll.component';
3
+ import { Poll, PollAnswer } from 'stream-chat';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ *
7
+ */
8
+ export declare class PollAnswersListComponent extends BasePollComponent implements OnChanges {
9
+ class: string;
10
+ /**
11
+ * The even that's emitted when the update/add comment button is clicked
12
+ */
13
+ upsertOwnAnswer: EventEmitter<void>;
14
+ isLoading: boolean;
15
+ next?: string | undefined;
16
+ answers: PollAnswer[];
17
+ isClosed: boolean;
18
+ ownAnswer: PollAnswer | undefined;
19
+ ngOnChanges(changes: SimpleChanges): void;
20
+ queryAnswers(): Promise<void>;
21
+ trackByAnswerId(_: number, answer: PollAnswer): string;
22
+ protected stateStoreSelector(poll: Poll, markForCheck: () => void): () => void;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<PollAnswersListComponent, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<PollAnswersListComponent, "stream-poll-answers-list", never, {}, { "upsertOwnAnswer": "upsertOwnAnswer"; }, never, never, false, never>;
25
+ }
@@ -0,0 +1,22 @@
1
+ import { BasePollComponent } from '../../../base-poll.component';
2
+ import { Poll, PollOption, PollVote } from 'stream-chat';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ *
6
+ */
7
+ export declare class PollResultsListComponent extends BasePollComponent {
8
+ class: string;
9
+ name: string;
10
+ options: PollOption[];
11
+ optionToView: PollOption | undefined;
12
+ votePreviewCount: number;
13
+ maxVotedOptionIds: string[];
14
+ voteCountsByOption: Record<string, number>;
15
+ latestVotesByOption: Record<string, PollVote[]>;
16
+ protected stateStoreSelector(poll: Poll, markForCheck: () => void): () => void;
17
+ isWinner(optionId: string): boolean;
18
+ trackByOptionId(_: number, option: PollOption): string;
19
+ trackByVoteId(_: number, vote: PollVote): string;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<PollResultsListComponent, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<PollResultsListComponent, "stream-poll-results-list", never, {}, {}, never, never, false, never>;
22
+ }
@@ -0,0 +1,20 @@
1
+ import { TranslateService } from '@ngx-translate/core';
2
+ import { PollAnswer, PollVote } from 'stream-chat';
3
+ import { DateParserService } from '../../../../date-parser.service';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ *
7
+ */
8
+ export declare class PollVoteComponent {
9
+ private translateService;
10
+ private dateParser;
11
+ /**
12
+ * The poll vote or answer to display
13
+ */
14
+ vote: PollVote | PollAnswer | undefined;
15
+ anonymousTranslation: string;
16
+ constructor(translateService: TranslateService, dateParser: DateParserService);
17
+ parseDate(date: string): string;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<PollVoteComponent, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<PollVoteComponent, "stream-poll-vote", never, { "vote": "vote"; }, {}, never, never, false, never>;
20
+ }
@@ -0,0 +1,24 @@
1
+ import { OnChanges, SimpleChanges } from '@angular/core';
2
+ import { BasePollComponent } from '../../../base-poll.component';
3
+ import { Poll, PollOption, PollVote } from 'stream-chat';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ *
7
+ */
8
+ export declare class PollVoteResultsListComponent extends BasePollComponent implements OnChanges {
9
+ /**
10
+ * The poll option to display the votes for
11
+ */
12
+ option: PollOption | undefined;
13
+ isWinner: boolean;
14
+ voteCount: number;
15
+ isLoading: boolean;
16
+ next?: string | undefined;
17
+ votes: PollVote[];
18
+ ngOnChanges(changes: SimpleChanges): void;
19
+ loadVotes(): Promise<void>;
20
+ trackByVoteId: (_: number, vote: PollVote) => string;
21
+ protected stateStoreSelector(poll: Poll, markForCheck: () => void): () => void;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<PollVoteResultsListComponent, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<PollVoteResultsListComponent, "stream-poll-vote-results-list", never, { "option": "option"; }, {}, never, never, false, never>;
24
+ }
@@ -0,0 +1,27 @@
1
+ import { OnChanges, SimpleChanges } from '@angular/core';
2
+ import { FormControl, FormGroup } from '@angular/forms';
3
+ import { Poll, PollAnswer } from 'stream-chat';
4
+ import { BasePollComponent } from '../../base-poll.component';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ *
8
+ */
9
+ export declare class UpsertAnswerComponent extends BasePollComponent implements OnChanges {
10
+ class: string;
11
+ /**
12
+ * The poll comment to edit, when in edit mode
13
+ */
14
+ answer: PollAnswer | undefined;
15
+ /**
16
+ * The callback to close the modal the component is displayed in
17
+ */
18
+ closeModal: () => void;
19
+ formGroup: FormGroup<{
20
+ comment: FormControl<string | null>;
21
+ }>;
22
+ ngOnChanges(changes: SimpleChanges): void;
23
+ addComment(): Promise<void>;
24
+ protected stateStoreSelector(_: Poll, __: () => void): () => void;
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<UpsertAnswerComponent, never>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<UpsertAnswerComponent, "stream-upsert-answer", never, { "answer": "answer"; "closeModal": "closeModal"; }, {}, never, never, false, never>;
27
+ }
@@ -0,0 +1,43 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { FormArray, FormControl, FormGroup } from '@angular/forms';
3
+ import { CustomTemplatesService } from '../../custom-templates.service';
4
+ import { ModalContext } from '../../types';
5
+ import { ChatClientService } from '../../chat-client.service';
6
+ import { NotificationService } from '../../notification.service';
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ *
10
+ */
11
+ export declare class PollComposerComponent {
12
+ readonly customTemplatesService: CustomTemplatesService;
13
+ private chatService;
14
+ private notificationService;
15
+ /**
16
+ * Emitted when a poll is created, the poll id is emitted
17
+ */
18
+ pollCompose: EventEmitter<string>;
19
+ /**
20
+ * Emitted when the poll composing is cancelled
21
+ */
22
+ cancel: EventEmitter<void>;
23
+ formGroup: FormGroup<{
24
+ name: FormControl<string | null>;
25
+ options: FormArray<FormControl<string | null>>;
26
+ multiple_answers: FormControl<boolean | null>;
27
+ maximum_number_of_votes: FormControl<null>;
28
+ is_anonymous: FormControl<boolean | null>;
29
+ allow_user_suggested_options: FormControl<boolean | null>;
30
+ allow_answers: FormControl<boolean | null>;
31
+ }>;
32
+ isModalOpen: boolean;
33
+ private formContent;
34
+ constructor(customTemplatesService: CustomTemplatesService, chatService: ChatClientService, notificationService: NotificationService);
35
+ optionChanged(index: number): void;
36
+ get options(): FormArray<FormControl<string | null>>;
37
+ addOption(): void;
38
+ removeLastOption(): void;
39
+ getModalContext(): ModalContext;
40
+ createPoll(): Promise<void>;
41
+ static ɵfac: i0.ɵɵFactoryDeclaration<PollComposerComponent, never>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<PollComposerComponent, "stream-poll-composer", never, {}, { "pollCompose": "pollCompose"; "cancel": "cancel"; }, never, never, false, never>;
43
+ }
@@ -0,0 +1,3 @@
1
+ import { FormControl, ValidatorFn } from '@angular/forms';
2
+ export declare function atLeastOneOption(): ValidatorFn;
3
+ export declare function maximumNumberOfVotes(canHaveMultipleVotes: FormControl<boolean>): ValidatorFn;
@@ -0,0 +1,19 @@
1
+ import { Poll, PollState } from 'stream-chat';
2
+ import { BasePollComponent } from '../base-poll.component';
3
+ import * as i0 from "@angular/core";
4
+ declare type SelectionInstructions = {
5
+ text: string;
6
+ count: number | undefined;
7
+ };
8
+ /**
9
+ *
10
+ */
11
+ export declare class PollHeaderComponent extends BasePollComponent {
12
+ name: string;
13
+ selectionInstructions: SelectionInstructions;
14
+ protected stateStoreSelector(poll: Poll, markForCheck: () => void): () => void;
15
+ getSelectionInstructions(state: Pick<PollState, 'is_closed' | 'enforce_unique_vote' | 'max_votes_allowed' | 'options'>): SelectionInstructions;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<PollHeaderComponent, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<PollHeaderComponent, "stream-poll-header", never, {}, {}, never, never, false, never>;
18
+ }
19
+ export {};
@@ -0,0 +1,27 @@
1
+ import { OnChanges, SimpleChanges } from '@angular/core';
2
+ import { BasePollComponent } from '../base-poll.component';
3
+ import { Poll, PollOption, PollVote, VotingVisibility } from 'stream-chat';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ *
7
+ */
8
+ export declare class PollOptionSelectorComponent extends BasePollComponent implements OnChanges {
9
+ option: PollOption | undefined;
10
+ displayAvatarCount: number;
11
+ voteCountVerbose: boolean;
12
+ isClosed: boolean;
13
+ latestVotes: PollVote[];
14
+ isWinner: boolean;
15
+ ownVote: PollVote | undefined;
16
+ voteCount: number;
17
+ votingVisibility: VotingVisibility | undefined;
18
+ winningOptionCount: number;
19
+ maxVoteAllowedCount: number;
20
+ ownVoteCount: number;
21
+ ngOnChanges(changes: SimpleChanges): void;
22
+ toggleVote(): Promise<void>;
23
+ trackByVoteId(_: number, vote: PollVote): string;
24
+ protected stateStoreSelector(poll: Poll, markForCheck: () => void): () => void;
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<PollOptionSelectorComponent, never>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<PollOptionSelectorComponent, "stream-poll-option-selector", never, { "option": "option"; "displayAvatarCount": "displayAvatarCount"; "voteCountVerbose": "voteCountVerbose"; }, {}, never, never, false, never>;
27
+ }
@@ -0,0 +1,17 @@
1
+ import { BasePollComponent } from '../base-poll.component';
2
+ import { Poll, PollOption } from 'stream-chat';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ *
6
+ */
7
+ export declare class PollOptionsListComponent extends BasePollComponent {
8
+ /**
9
+ * How many options should be displayed. If there are more options than this number, use the poll actions to display all options
10
+ */
11
+ maxOptionsDisplayed: number | undefined;
12
+ options: PollOption[];
13
+ protected stateStoreSelector(poll: Poll, markForCheck: () => void): () => void;
14
+ trackByOptionId(_: number, option: PollOption): string;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<PollOptionsListComponent, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<PollOptionsListComponent, "stream-poll-options-list", never, { "maxOptionsDisplayed": "maxOptionsDisplayed"; }, {}, never, never, false, never>;
17
+ }
@@ -0,0 +1,13 @@
1
+ import { BasePollComponent } from '../base-poll.component';
2
+ import { Poll } from 'stream-chat';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ *
6
+ */
7
+ export declare class PollPreviewComponent extends BasePollComponent {
8
+ name: string;
9
+ isClosed: boolean;
10
+ protected stateStoreSelector(poll: Poll, markForCheck: () => void): () => void;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<PollPreviewComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<PollPreviewComponent, "stream-poll-preview", never, {}, {}, never, never, false, never>;
13
+ }
@@ -0,0 +1,26 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./poll-composer/poll-composer.component";
3
+ import * as i2 from "./poll/poll.component";
4
+ import * as i3 from "./poll-header/poll-header.component";
5
+ import * as i4 from "./poll-options-list/poll-options-list.component";
6
+ import * as i5 from "./poll-option-selector/poll-option-selector.component";
7
+ import * as i6 from "./poll-actions/poll-actions.component";
8
+ import * as i7 from "./poll-actions/poll-results/poll-results-list/poll-results-list.component";
9
+ import * as i8 from "./poll-actions/poll-results/poll-vote-results-list/poll-vote-results-list.component";
10
+ import * as i9 from "./poll-actions/poll-results/poll-vote/poll-vote.component";
11
+ import * as i10 from "./poll-actions/poll-answers-list/poll-answers-list.component";
12
+ import * as i11 from "./poll-actions/upsert-answer/upsert-answer.component";
13
+ import * as i12 from "./poll-actions/add-option/add-option.component";
14
+ import * as i13 from "./poll-preview/poll-preview.component";
15
+ import * as i14 from "@angular/common";
16
+ import * as i15 from "@ngx-translate/core";
17
+ import * as i16 from "../stream-avatar.module";
18
+ import * as i17 from "../modal/stream-modal.module";
19
+ import * as i18 from "../notification-list/stream-notification.module";
20
+ import * as i19 from "../paginated-list/stream-paginated-list.module";
21
+ import * as i20 from "@angular/forms";
22
+ export declare class StreamPollsModule {
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<StreamPollsModule, never>;
24
+ static ɵmod: i0.ɵɵNgModuleDeclaration<StreamPollsModule, [typeof i1.PollComposerComponent, typeof i2.PollComponent, typeof i3.PollHeaderComponent, typeof i4.PollOptionsListComponent, typeof i5.PollOptionSelectorComponent, typeof i6.PollActionsComponent, typeof i7.PollResultsListComponent, typeof i8.PollVoteResultsListComponent, typeof i9.PollVoteComponent, typeof i10.PollAnswersListComponent, typeof i11.UpsertAnswerComponent, typeof i12.AddOptionComponent, typeof i13.PollPreviewComponent], [typeof i14.CommonModule, typeof i15.TranslateModule, typeof i16.StreamAvatarModule, typeof i17.StreamModalModule, typeof i18.StreamNotificationModule, typeof i19.StreamPaginatedListModule, typeof i20.ReactiveFormsModule], [typeof i1.PollComposerComponent, typeof i2.PollComponent, typeof i3.PollHeaderComponent, typeof i4.PollOptionsListComponent, typeof i5.PollOptionSelectorComponent, typeof i6.PollActionsComponent, typeof i7.PollResultsListComponent, typeof i8.PollVoteResultsListComponent, typeof i9.PollVoteComponent, typeof i10.PollAnswersListComponent, typeof i11.UpsertAnswerComponent, typeof i12.AddOptionComponent, typeof i13.PollPreviewComponent]>;
25
+ static ɵinj: i0.ɵɵInjectorDeclaration<StreamPollsModule>;
26
+ }
@@ -0,0 +1,2 @@
1
+ import { ValidatorFn } from '@angular/forms';
2
+ export declare function createUniqueValidator(isUnique: (v: string) => boolean): ValidatorFn;