# CustomTemplatesService

> **Info:** This is release candidate documentation for **Stream Chat Angular SDK v8**. For the latest stable version, see the [latest version (v7)](https://getstream.io/chat/docs/sdk/angular/).

A central location for registering your custom templates to override parts of the chat application.

For code examples to the different customizations see our [customizations example application](https://github.com/GetStream/stream-chat-angular/tree/master/projects/customizations-example), specifically the [AppComponent](https://github.com/GetStream/stream-chat-angular/tree/master/projects/customizations-example/src/app) (see [README](https://github.com/GetStream/stream-chat-angular/blob/master/README.md#customization-examples) for instructions on how to start the application).

You can find the type definitions of the context that is provided for each template [on GitHub](https://github.com/GetStream/stream-chat-angular/blob/master/projects/stream-chat-angular/src/lib/types.ts)

## Properties

### attachmentActionsTemplate$

**attachmentActionsTemplate$**: `BehaviorSubject<undefined | TemplateRef<AttachmentContext>>`

The template that can be used to override how attachment actions are displayed inside the [attachment list](https://getstream.io/chat/docs/sdk/angular/v8/components/AttachmentListComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:279](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L279)

---

### attachmentListTemplate$

**attachmentListTemplate$**: `BehaviorSubject<undefined | TemplateRef<AttachmentListContext>>`

The template used to display attachments of a [message](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageComponent/) (instead of the [default attachment list](https://getstream.io/chat/docs/sdk/angular/v8/components/AttachmentListComponent/))

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:112](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L112)

---

### attachmentPreviewListTemplate$

**attachmentPreviewListTemplate$**: `BehaviorSubject<undefined | TemplateRef<AttachmentPreviewListContext>>`

The template used to display attachments in the [message input](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageInputComponent/) component (instead of the [default attachment preview](https://getstream.io/chat/docs/sdk/angular/v8/components/AttachmentPreviewListComponent/))

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:119](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L119)

---

### avatarTemplate$

**avatarTemplate$**: `BehaviorSubject<undefined | TemplateRef<AvatarContext>>`

The template used to display avatars for channels and users (instead of the [default avatar](https://getstream.io/chat/docs/sdk/angular/v8/components/AvatarComponent/))

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:126](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L126)

---

### cardAttachmentTemplate$

**cardAttachmentTemplate$**: `BehaviorSubject<undefined | TemplateRef<AttachmentContext>>`

The template that can be used to override how a card attachment is displayed inside the [attachment list](https://getstream.io/chat/docs/sdk/angular/v8/components/AttachmentListComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:273](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L273)

---

### channelActionsTemplate$

**channelActionsTemplate$**: `BehaviorSubject<undefined | TemplateRef<ChannelActionsContext>>`

The template for channel actions displayed in the [channel header](https://getstream.io/chat/docs/sdk/angular/v8/components/ChannelHeaderComponent/) (by default no channel action is displayed)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:105](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L105)

---

### channelHeaderInfoTemplate$

**channelHeaderInfoTemplate$**: `BehaviorSubject<undefined | TemplateRef<ChannelHeaderInfoContext>>`

The template used to display additional information about a channel under the channel name inside the [channel header component](https://getstream.io/chat/docs/sdk/angular/v8/components/ChannelHeaderComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:230](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L230)

---

### channelPreviewInfoTemplate$

**channelPreviewInfoTemplate$**: `BehaviorSubject<undefined | TemplateRef<ChannelPreviewInfoContext>>`

Template used to display the channel information inside the [channel list item](https://getstream.io/chat/docs/sdk/angular/v8/components/ChannelPreviewComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:332](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L332)

---

### channelPreviewTemplate$

**channelPreviewTemplate$**: `BehaviorSubject<undefined | TemplateRef<ChannelPreviewContext>>`

Template used to display an item in the [channel list](https://getstream.io/chat/docs/sdk/angular/v8/components/ChannelListComponent/) (instead of the default [channel list item](https://getstream.io/chat/docs/sdk/angular/v8/components/ChannelPreviewComponent/))

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:70](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L70)

---

### commandAutocompleteItemTemplate$

**commandAutocompleteItemTemplate$**: `BehaviorSubject<undefined | TemplateRef<CommandAutocompleteListItemContext>>`

The autocomplete list item template for commands (used in the [`AutocompleteTextareaComponent`](https://getstream.io/chat/docs/sdk/angular/v8/components/AutocompleteTextareaComponent/))

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:63](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L63)

---

### customAttachmentListTemplate$

**customAttachmentListTemplate$**: `BehaviorSubject<undefined | TemplateRef<CustomAttachmentListContext>>`

The template used to display custom attachments in the [message component](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:344](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L344)

---

### customAttachmentPreviewListTemplate$

**customAttachmentPreviewListTemplate$**: `BehaviorSubject<undefined | TemplateRef<CustomAttachmentPreviewListContext>>`

The template used to display custom attachment previews in the [message input component](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageInputComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:338](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L338)

---

### customAttachmentUploadTemplate$

**customAttachmentUploadTemplate$**: `BehaviorSubject<undefined | TemplateRef<CustomAttachmentUploadContext>>`

The template used for displaying file upload/attachment selector inside the [message input](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageInputComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:237](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L237)

---

### customMessageMetadataInsideBubbleTemplate$

**customMessageMetadataInsideBubbleTemplate$**: `BehaviorSubject<undefined | TemplateRef<CustomMetadataContext>>`

Template to display custom metadata inside the message bubble of the [message component](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageComponent/)

To properly position your template you should override the `grid-template-areas` of the `.str-chat__message-inner` selector

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:358](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L358)

---

### customMessageMetadataTemplate$

**customMessageMetadataTemplate$**: `BehaviorSubject<undefined | TemplateRef<CustomMetadataContext>>`

Template to display custom metadata inside [message component](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:223](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L223)

---

### dateSeparatorTemplate$

**dateSeparatorTemplate$**: `BehaviorSubject<undefined | TemplateRef<DateSeparatorContext>>`

The template used to display the date separator inside the [message list](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageListComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:291](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L291)

---

### deliveredStatusTemplate$

**deliveredStatusTemplate$**: `BehaviorSubject<undefined | TemplateRef<DeliveredStatusContext>>`

The template used for displaying the delivered state of the message inside the [message component](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageComponent/)

Displayed for the last message sent by the current user, if the message isn't yet read by anyone

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:198](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L198)

---

### emojiPickerTemplate$

**emojiPickerTemplate$**: `BehaviorSubject<undefined | TemplateRef<EmojiPickerContext>>`

The template for [emoji picker](https://getstream.io/chat/docs/sdk/angular/v8/guides/emoji-picker/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:84](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L84)

---

### emptyMainMessageListPlaceholder$

**emptyMainMessageListPlaceholder$**: `BehaviorSubject<undefined | TemplateRef<void>>`

The template to show if the main message list is empty

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:313](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L313)

---

### emptyThreadMessageListPlaceholder$

**emptyThreadMessageListPlaceholder$**: `BehaviorSubject<undefined | TemplateRef<void>>`

The template to show if the thread message list is empty

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:319](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L319)

---

### fileAttachmentTemplate$

**fileAttachmentTemplate$**: `BehaviorSubject<undefined | TemplateRef<AttachmentContext>>`

The template that can be used to override how a file attachment is displayed inside the [attachment list](https://getstream.io/chat/docs/sdk/angular/v8/components/AttachmentListComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:267](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L267)

---

### galleryAttachmentTemplate$

**galleryAttachmentTemplate$**: `BehaviorSubject<undefined | TemplateRef<GalleryAttachmentContext>>`

The template that can be used to override how image gallery is displayed inside the [attachment list](https://getstream.io/chat/docs/sdk/angular/v8/components/AttachmentListComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:261](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L261)

---

### iconTemplate$

**iconTemplate$**: `BehaviorSubject<undefined | TemplateRef<IconContext>>`

Template for displaying icons (instead of the [default icon component](https://getstream.io/chat/docs/sdk/angular/v8/components/IconComponent/))

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:133](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L133)

---

### imageAttachmentTemplate$

**imageAttachmentTemplate$**: `BehaviorSubject<undefined | TemplateRef<AttachmentContext>>`

The template that can be used to override how a single image attachment is displayed inside the [attachment list](https://getstream.io/chat/docs/sdk/angular/v8/components/AttachmentListComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:243](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L243)

---

### loadingIndicatorTemplate$

**loadingIndicatorTemplate$**: `BehaviorSubject<undefined | TemplateRef<void>>`

Template for displaying the loading indicator (instead of the [default loading indicator](https://getstream.io/chat/docs/sdk/angular/v8/components/LoadingIndicatorComponent/))

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:140](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L140)

---

### mentionAutocompleteItemTemplate$

**mentionAutocompleteItemTemplate$**: `BehaviorSubject<undefined | TemplateRef<MentionAutcompleteListItemContext>>`

The autocomplete list item template for mentioning users (used in the [`AutocompleteTextareaComponent`](https://getstream.io/chat/docs/sdk/angular/v8/components/AutocompleteTextareaComponent/))

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:57](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L57)

---

### mentionTemplate$

**mentionTemplate$**: `BehaviorSubject<undefined | TemplateRef<MentionTemplateContext>>`

The template used for displaying a [mention inside a message](https://getstream.io/chat/docs/sdk/angular/v8/code-examples/mention-actions/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:77](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L77)

---

### messageActionsBoxItemTemplate$

**messageActionsBoxItemTemplate$**: `BehaviorSubject<undefined | TemplateRef<MessageActionBoxItemContext>>`

The template used for displaying an item in the [message actions box](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageActionsBoxComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:154](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L154)

---

### messageActionsBoxTemplate$

**messageActionsBoxTemplate$**: `BehaviorSubject<undefined | TemplateRef<MessageActionsBoxContext>>`

Template for displaying the message actions box (instead of the [default message actions box](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageActionsBoxComponent/))

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:147](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L147)

---

### messageBlockedTemplate$

**messageBlockedTemplate$**: `BehaviorSubject<undefined | TemplateRef<MessageBlockedContext>>`

The template used to display blocked messages that have been removed by moderation policies instead of the default [message blocked component](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageBlockedComponent/)

The template has no effect if you're using a custom `messageTemplate$`

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:373](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L373)

---

### messageBouncePromptTemplate$

**messageBouncePromptTemplate$**: `BehaviorSubject<undefined | TemplateRef<void>>`

The template used to display the [message bounce prompt](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageBouncePromptComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:325](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L325)

---

### messageReactionsSelectorTemplate$

**messageReactionsSelectorTemplate$**: `BehaviorSubject<undefined | TemplateRef<MessageReactionsSelectorContext>>`

The template used to display the reactions of a [message](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageComponent/), and the selector to add a reaction to a message (instead of the [default message reactions component](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageReactionsComponent/))

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:168](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L168)

---

### messageReactionsTemplate$

**messageReactionsTemplate$**: `BehaviorSubject<undefined | TemplateRef<MessageReactionsContext>>`

The template used to display the reactions of a [message](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageComponent/), and the selector to add a reaction to a message (instead of the [default message reactions component](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageReactionsComponent/))

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:161](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L161)

---

### messageTemplate$

**messageTemplate$**: `BehaviorSubject<undefined | TemplateRef<MessageContext>>`

The template used to display a message in the [message list](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageListComponent/) (instead of the [default message component](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageComponent/))

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:98](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L98)

---

### messageTextTemplate$

**messageTextTemplate$**: `BehaviorSubject<undefined | TemplateRef<MessageTextContext>>`

Template to display the text content inside the [message component](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageComponent/). The default component is [stream-message-text](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageTextComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:364](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L364)

---

### modalTemplate$

**modalTemplate$**: `BehaviorSubject<undefined | TemplateRef<ModalContext>>`

The template used to display a modal window (instead of the [default modal](https://getstream.io/chat/docs/sdk/angular/v8/components/ModalComponent/))

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:175](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L175)

---

### newMessagesIndicatorTemplate$

**newMessagesIndicatorTemplate$**: `BehaviorSubject<undefined | TemplateRef<UnreadMessagesIndicatorContext>>`

The template used to display unread messages indicator inside the [message list](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageListComponent/) when the channel is opened

This UI element is used to separate unread messages from read messages

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:299](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L299)

---

### newMessagesNotificationTemplate$

**newMessagesNotificationTemplate$**: `BehaviorSubject<undefined | TemplateRef<UnreadMessagesNotificationContext>>`

The template used to display unread messages notification inside the [message list](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageListComponent/) when the channel is opened

Users can use this notification to jump to the first unread message when it's clicked

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:307](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L307)

---

### notificationTemplate$

**notificationTemplate$**: `BehaviorSubject<undefined | TemplateRef<NotificationContext>>`

The template used to override the [default notification component](https://getstream.io/chat/docs/sdk/angular/v8/components/NotificationComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:182](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L182)

---

### pollComposerTemplate$

**pollComposerTemplate$**: `BehaviorSubject<undefined | TemplateRef<{ cancel: () => void ; pollCompose: (pollId: string) => void }>>`

Template to display poll composer inside [message input component](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageInputComponent/). There is no default template, but the `PollsModule` contains default components.

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:386](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L386)

---

### pollTemplate$

**pollTemplate$**: `BehaviorSubject<undefined | TemplateRef<{ isQuote: boolean ; messageId: string ; pollId: string }>>`

Template to display polls inside [message component](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageComponent/). There is no default template, but the `PollsModule` contains default components.

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:379](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L379)

---

### readStatusTemplate$

**readStatusTemplate$**: `BehaviorSubject<undefined | TemplateRef<ReadStatusContext>>`

The template used for displaying the sent state of the message inside the [message component](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageComponent/)

Displayed for the last message sent by the current user, if the message is read at least by one user

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:216](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L216)

---

### sendingStatusTemplate$

**sendingStatusTemplate$**: `BehaviorSubject<undefined | TemplateRef<SendingStatusContext>>`

The template used for displaying the sending state of the message inside the [message component](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageComponent/)

Displayed for the last message sent by the current user, if the message is currently being sent

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:207](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L207)

---

### systemMessageTemplate$

**systemMessageTemplate$**: `BehaviorSubject<undefined | TemplateRef<SystemMessageContext>>`

The template used to display [system messages](https://getstream.io/chat/docs/javascript/silent-messages/) indise the [message component](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:285](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L285)

---

### threadHeaderTemplate$

**threadHeaderTemplate$**: `BehaviorSubject<undefined | TemplateRef<ThreadHeaderContext>>`

The template used for header of a [thread](https://getstream.io/chat/docs/sdk/angular/v8/components/ThreadComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:189](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L189)

---

### threadLinkButton$

**threadLinkButton$**: `BehaviorSubject<undefined | TemplateRef<ThreadReplyButtonContext>>`

The template used to display the number of thread replies inside the [message component](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:350](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L350)

---

### typingIndicatorTemplate$

**typingIndicatorTemplate$**: `BehaviorSubject<undefined | TemplateRef<TypingIndicatorContext>>`

The typing indicator template used in the [message list](https://getstream.io/chat/docs/sdk/angular/v8/components/MessageListComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:91](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L91)

---

### videoAttachmentTemplate$

**videoAttachmentTemplate$**: `BehaviorSubject<undefined | TemplateRef<AttachmentContext>>`

The template that can be used to override how a video attachment is displayed inside the [attachment list](https://getstream.io/chat/docs/sdk/angular/v8/components/AttachmentListComponent/)

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:255](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L255)

---

### voiceRecordingAttachmentTemplate$

**voiceRecordingAttachmentTemplate$**: `BehaviorSubject<undefined | TemplateRef<AttachmentContext>>`

The template that can be used to override how a voice recording attachment is displayed inside the [attachment list](https://getstream.io/chat/docs/sdk/angular/v8/components/AttachmentListComponent/), by default the [voice recording component](https://getstream.io/chat/docs/sdk/angular/v8/components/VoiceRecordingComponent/) is used

#### Defined in

[projects/stream-chat-angular/src/lib/custom-templates.service.ts:249](https://github.com/GetStream/stream-chat-angular/blob/8ed7ea67ea3deb96c2ae7fcccfd82bd32ad7f184/projects/stream-chat-angular/src/lib/custom-templates.service.ts#L249)

---

For the most recent version of this documentation, visit [https://getstream.io/chat/docs/sdk/angular/v8/services/CustomTemplatesService/](https://getstream.io/chat/docs/sdk/angular/v8/services/CustomTemplatesService/).