@hsaadawy/ngx-chat
Version:
62 lines (61 loc) • 3.05 kB
TypeScript
import { AfterViewInit, ChangeDetectorRef, ElementRef, OnChanges, OnDestroy, OnInit, QueryList, EventEmitter, SimpleChanges } from '@angular/core';
import { Subject } from 'rxjs';
import { Direction, Message } from '../../core/message';
import { Recipient } from '../../core/recipient';
import { BlockPlugin } from '../../services/adapters/xmpp/plugins/block.plugin';
import { RoomMessage } from '../../services/adapters/xmpp/plugins/multi-user-chat.plugin';
import { ChatListStateService } from '../../services/chat-list-state.service';
import { ChatMessageListRegistryService } from '../../services/chat-message-list-registry.service';
import { ChatService } from '../../services/chat-service';
import { ContactFactoryService } from '../../services/contact-factory.service';
import { ReportUserService } from '../../services/report-user-service';
import { ChatMessageComponent } from '../chat-message/chat-message.component';
declare enum SubscriptionAction {
PENDING_REQUEST = 0,
SHOW_BLOCK_ACTIONS = 1,
NO_PENDING_REQUEST = 2
}
export declare class ChatMessageListComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit {
chatListService: ChatListStateService;
chatService: ChatService;
private chatMessageListRegistry;
reportUserService: ReportUserService;
private changeDetectorRef;
private contactFactory;
Reply: EventEmitter<void>;
recipient: Recipient;
showAvatars: boolean;
chatMessageAreaElement: ElementRef<HTMLElement>;
chatMessageViewChildrenList: QueryList<ChatMessageComponent>;
Direction: typeof Direction;
SubscriptionAction: typeof SubscriptionAction;
blockPlugin: BlockPlugin;
subscriptionAction: SubscriptionAction;
onTop$: Subject<IntersectionObserverEntry>;
private ngDestroy;
private isAtBottom;
private bottomLeftAt;
private oldestVisibleMessageBeforeLoading;
constructor(chatListService: ChatListStateService, chatService: ChatService, chatMessageListRegistry: ChatMessageListRegistryService, reportUserService: ReportUserService, changeDetectorRef: ChangeDetectorRef, contactFactory: ContactFactoryService);
ngOnInit(): Promise<void>;
ngAfterViewInit(): Promise<void>;
ngOnChanges(changes: SimpleChanges): void;
ngOnDestroy(): void;
acceptSubscriptionRequest(event: Event): void;
denySubscriptionRequest(event: Event): void;
scheduleScrollToLastMessage(): void;
private scrollToLastMessage;
private scrollToMessage;
blockContact($event: MouseEvent): void;
blockContactAndReport($event: MouseEvent): void;
dismissBlockOptions($event: MouseEvent): void;
subscriptionActionShown(): boolean;
loadOlderMessagesBeforeViewport(): Promise<void>;
private loadMessages;
onBottom(event: IntersectionObserverEntry): void;
private isNearBottom;
private isLoadingHistory;
getOrCreateContactWithFullJid(message: Message | RoomMessage): Recipient;
sendReply(event: any): void;
}
export {};