UNPKG

@hsaadawy/ngx-chat

Version:
53 lines (52 loc) 2.19 kB
import { HttpClient } from "@angular/common/http"; import { JID } from "@xmpp/jid"; import { BehaviorSubject, Subject } from "rxjs"; import { LogService } from "../services/log.service"; import { Message } from "./message"; import { DateMessagesGroup } from "./message-store"; import { Presence } from "./presence"; import { Recipient } from "./recipient"; import { ContactSubscription } from "./subscription"; export interface ContactMetadata { [key: string]: any; } export declare type JidToPresence = Map<string, Presence>; export declare class Contact { httpClinet: HttpClient; name: string; nick: string; readonly recipientType = "contact"; avatar: string; chatUserName: string; chatPassword: string; avatarUrl: string; metadata: ContactMetadata; /** use {@link jidBare}, jid resource is only set for chat room contacts */ readonly jidFull: JID; readonly jidBare: JID; private _httpClient; readonly presence$: BehaviorSubject<Presence>; readonly subscription$: BehaviorSubject<ContactSubscription>; readonly pendingOut$: BehaviorSubject<boolean>; readonly pendingIn$: BehaviorSubject<boolean>; readonly resources$: BehaviorSubject<JidToPresence>; private readonly messageStore; get messages$(): Subject<Message>; get messages(): Message[]; get dateMessagesGroups(): DateMessagesGroup<Message>[]; get oldestMessage(): Message | undefined; get mostRecentMessage(): Message | undefined; get mostRecentMessageReceived(): Message | undefined; get mostRecentMessageSent(): Message | undefined; /** * Do not call directly, use {@link ContactFactoryService#createContact} instead. */ constructor(httpClinet: HttpClient, jidPlain: string, name: string, nick: string, logService?: LogService, avatar?: string); addMessage(message: Message): void; equalsBareJid(other: Recipient | JID): boolean; isSubscribed(): boolean; isUnaffiliated(): boolean; updateResourcePresence(jid: string, presence: Presence): void; getMessageById(id: string): Message | null; private determineOverallPresence; }