@bcc-code/vue-bcc-chat-ui 7.3.0 → 7.3.1
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.
- package/dist/index.d.ts +886 -11
- package/dist/style.css +1 -1
- package/dist/vue-bcc-chat-ui.js +3696 -3413
- package/dist/vue-bcc-chat-ui.js.map +1 -1
- package/package.json +4 -2
- package/dist/App.vue.d.ts +0 -4
- package/dist/FixtureApp.vue.d.ts +0 -4
- package/dist/auth.d.ts +0 -3
- package/dist/chat/accessToken.d.ts +0 -11
- package/dist/chat/avatar.d.ts +0 -3
- package/dist/chat/cacheScope.d.ts +0 -13
- package/dist/chat/client.d.ts +0 -7
- package/dist/chat/clipboardFiles.d.ts +0 -5
- package/dist/chat/conversationState.d.ts +0 -17
- package/dist/chat/data.d.ts +0 -18
- package/dist/chat/environment.d.ts +0 -8
- package/dist/chat/i18n/en.d.ts +0 -151
- package/dist/chat/i18n/nb.d.ts +0 -151
- package/dist/chat/i18n/types.d.ts +0 -2
- package/dist/chat/index.d.ts +0 -240
- package/dist/chat/localization.d.ts +0 -17
- package/dist/chat/mentions.d.ts +0 -33
- package/dist/chat/messageText.d.ts +0 -21
- package/dist/chat/mockClient.d.ts +0 -13
- package/dist/chat/offlineStore.d.ts +0 -55
- package/dist/chat/participants.d.ts +0 -8
- package/dist/chat/pinnedMessages.d.ts +0 -12
- package/dist/chat/publicChannelMessageFallback.d.ts +0 -1
- package/dist/chat/reactions.d.ts +0 -8
- package/dist/chat/richText.d.ts +0 -9
- package/dist/chat/runtime.d.ts +0 -3
- package/dist/chat/theme.d.ts +0 -19
- package/dist/chat/types.d.ts +0 -409
- package/dist/components/chat/BccChat.vue.d.ts +0 -100
- package/dist/components/chat/ChatStatusOverlay.vue.d.ts +0 -34
- package/dist/components/chat/publicContract.d.ts +0 -44
- package/dist/components/conversations/ConversationList.vue.d.ts +0 -18
- package/dist/components/conversations/UserProfileCard.vue.d.ts +0 -9
- package/dist/components/messages/ActionMessageRow.vue.d.ts +0 -7
- package/dist/components/messages/AudioStickyPlayer.vue.d.ts +0 -12
- package/dist/components/messages/ComposerActionsPopover.vue.d.ts +0 -15
- package/dist/components/messages/ComposerContextBanner.vue.d.ts +0 -15
- package/dist/components/messages/ComposerFormatMenu.vue.d.ts +0 -19
- package/dist/components/messages/ComposerLinkDialog.vue.d.ts +0 -18
- package/dist/components/messages/ComposerPollDialog.vue.d.ts +0 -18
- package/dist/components/messages/ComposerScheduleDialog.vue.d.ts +0 -22
- package/dist/components/messages/ComposerTriggerMenu.vue.d.ts +0 -24
- package/dist/components/messages/ConversationComposer.vue.d.ts +0 -30
- package/dist/components/messages/LinkPreviewCard.vue.d.ts +0 -8
- package/dist/components/messages/LinkifiedText.vue.d.ts +0 -15
- package/dist/components/messages/MessageAttachmentList.vue.d.ts +0 -12
- package/dist/components/messages/MessageComposer.vue.d.ts +0 -59
- package/dist/components/messages/MessageDateSeparator.vue.d.ts +0 -7
- package/dist/components/messages/MessageDeliveryStatus.vue.d.ts +0 -8
- package/dist/components/messages/MessageForwardedLabel.vue.d.ts +0 -8
- package/dist/components/messages/MessageItem.vue.d.ts +0 -36
- package/dist/components/messages/MessageItemHeader.vue.d.ts +0 -8
- package/dist/components/messages/MessageItemMenu.vue.d.ts +0 -36
- package/dist/components/messages/MessageItemMenuReactions.vue.d.ts +0 -13
- package/dist/components/messages/MessageItemReactions.vue.d.ts +0 -16
- package/dist/components/messages/MessageList.vue.d.ts +0 -42
- package/dist/components/messages/MessageListHeader.vue.d.ts +0 -9
- package/dist/components/messages/MessagePinnedLabel.vue.d.ts +0 -4
- package/dist/components/messages/MessagePollContent.vue.d.ts +0 -14
- package/dist/components/messages/MessageReactionList.vue.d.ts +0 -14
- package/dist/components/messages/MessageReplyQuote.vue.d.ts +0 -12
- package/dist/components/messages/MessageTextContent.vue.d.ts +0 -12
- package/dist/components/messages/PinnedMessagesBar.vue.d.ts +0 -4
- package/dist/components/overlays/ForwardMessageDialog.vue.d.ts +0 -16
- package/dist/components/overlays/FullscreenDialog.vue.d.ts +0 -34
- package/dist/components/overlays/MediaViewerDialog.vue.d.ts +0 -12
- package/dist/components/overlays/MessageInfoDialog.vue.d.ts +0 -16
- package/dist/components/overlays/PinnedMessagesDialog.vue.d.ts +0 -20
- package/dist/components/overlays/ReceiptSection.vue.d.ts +0 -13
- package/dist/components/overlays/ScheduledMessagesDialog.vue.d.ts +0 -37
- package/dist/components/shared/PersonAvatar.vue.d.ts +0 -8
- package/dist/composables/chat/index.d.ts +0 -13
- package/dist/composables/chat/useComposerContext.d.ts +0 -44
- package/dist/composables/chat/useConversationContext.d.ts +0 -36
- package/dist/composables/chat/useDialogsContext.d.ts +0 -43
- package/dist/composables/chat/useMessagesContext.d.ts +0 -42
- package/dist/composables/useAudioPlayer.d.ts +0 -18
- package/dist/composables/useChatActions.d.ts +0 -21
- package/dist/composables/useChatEventBus.d.ts +0 -108
- package/dist/composables/useComposerDrafts.d.ts +0 -47
- package/dist/composables/useComposerTriggers.d.ts +0 -63
- package/dist/composables/useConversationComposer.d.ts +0 -16
- package/dist/composables/useGroupMemberTracking.d.ts +0 -33
- package/dist/composables/useImageZoom.d.ts +0 -26
- package/dist/composables/useIsTouchUi.d.ts +0 -4
- package/dist/composables/useMessageActionMenu.d.ts +0 -257
- package/dist/composables/useMessageInfoDialog.d.ts +0 -201
- package/dist/composables/useMessageListScroll.d.ts +0 -15
- package/dist/composables/useMessageNavigation.d.ts +0 -16
- package/dist/composables/usePinnedMessages.d.ts +0 -190
- package/dist/composables/useRichTextComposer.d.ts +0 -75
- package/dist/demo/ApiExamplesPanel.vue.d.ts +0 -8
- package/dist/demo/CallDebugPanel.vue.d.ts +0 -8
- package/dist/demo/ChatShell.vue.d.ts +0 -12
- package/dist/demo/StatCard.vue.d.ts +0 -17
- package/dist/demo/ThemeModeToggle.vue.d.ts +0 -17
- package/dist/demo/useDemoThemeMode.d.ts +0 -7
- package/dist/main.d.ts +0 -0
- package/dist/sfc-styles-entry.d.ts +0 -1
- package/dist/shims-vue.d.ts +0 -6
- package/dist/vite-env.d.ts +0 -1
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { ChatMessageItem } from '../../chat/types';
|
|
2
|
-
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
3
|
-
type __VLS_Props = {
|
|
4
|
-
open: boolean;
|
|
5
|
-
loading: boolean;
|
|
6
|
-
messages: ChatMessageItem[];
|
|
7
|
-
conversationTitle?: string;
|
|
8
|
-
};
|
|
9
|
-
declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
10
|
-
close: () => any;
|
|
11
|
-
remove: (message: ChatMessageItem) => any;
|
|
12
|
-
reschedule: (payload: {
|
|
13
|
-
messageId: number;
|
|
14
|
-
muid: string;
|
|
15
|
-
originalChatUid: string;
|
|
16
|
-
scheduleDate: string;
|
|
17
|
-
}) => any;
|
|
18
|
-
editText: (payload: {
|
|
19
|
-
message: ChatMessageItem;
|
|
20
|
-
nextText: string;
|
|
21
|
-
}) => any;
|
|
22
|
-
}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
23
|
-
onClose?: (() => any) | undefined;
|
|
24
|
-
onRemove?: ((message: ChatMessageItem) => any) | undefined;
|
|
25
|
-
onReschedule?: ((payload: {
|
|
26
|
-
messageId: number;
|
|
27
|
-
muid: string;
|
|
28
|
-
originalChatUid: string;
|
|
29
|
-
scheduleDate: string;
|
|
30
|
-
}) => any) | undefined;
|
|
31
|
-
onEditText?: ((payload: {
|
|
32
|
-
message: ChatMessageItem;
|
|
33
|
-
nextText: string;
|
|
34
|
-
}) => any) | undefined;
|
|
35
|
-
}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
36
|
-
declare const _default: typeof __VLS_export;
|
|
37
|
-
export default _default;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
2
|
-
type __VLS_Props = {
|
|
3
|
-
image?: string;
|
|
4
|
-
name: string;
|
|
5
|
-
};
|
|
6
|
-
declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
7
|
-
declare const _default: typeof __VLS_export;
|
|
8
|
-
export default _default;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Barrel export for the four focused chat subcontexts.
|
|
3
|
-
*
|
|
4
|
-
* @remarks
|
|
5
|
-
* Each subcontext owns a single domain of the chat component tree's shared
|
|
6
|
-
* state: conversation identity/permissions, message lists, composer drafts, and
|
|
7
|
-
* dialog overlays. Consumer components inject only the subcontexts they need,
|
|
8
|
-
* keeping coupling tight and surfaces small.
|
|
9
|
-
*/
|
|
10
|
-
export { createConversationContext, provideConversationContext, useConversationContext, type ConversationContext, type CreateConversationContextOptions, } from './useConversationContext';
|
|
11
|
-
export { createMessagesContext, provideMessagesContext, useMessagesContext, type MessagesContext, type CreateMessagesContextOptions, } from './useMessagesContext';
|
|
12
|
-
export { createComposerContext, provideComposerContext, useComposerContext, type ComposerContext, type ComposerHandle, type CreateComposerContextOptions, } from './useComposerContext';
|
|
13
|
-
export { createDialogsContext, provideDialogsContext, useDialogsContext, type DialogsContext, type CreateDialogsContextOptions, } from './useDialogsContext';
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { ComputedRef, Ref, TemplateRef } from 'vue';
|
|
2
|
-
import { AttachmentUploadInput, ChatClient, ChatMessageItem, MessageSendOptions, PollComposerInput, ScheduleMessageInput } from '../../chat/types';
|
|
3
|
-
/** Minimal public interface exposed by a composer component via defineExpose. */
|
|
4
|
-
export interface ComposerHandle {
|
|
5
|
-
focusEditor: () => Promise<void>;
|
|
6
|
-
}
|
|
7
|
-
export interface ComposerContext {
|
|
8
|
-
readonly draft: Ref<string>;
|
|
9
|
-
readonly threadDraft: Ref<string>;
|
|
10
|
-
readonly composerResetSignal: Ref<number>;
|
|
11
|
-
readonly threadComposerResetSignal: Ref<number>;
|
|
12
|
-
readonly messageBeingRepliedTo: ComputedRef<ChatMessageItem | null>;
|
|
13
|
-
readonly messageBeingEdited: ComputedRef<ChatMessageItem | null>;
|
|
14
|
-
readonly offlineMode: ComputedRef<boolean>;
|
|
15
|
-
readonly pendingQueueCount: ComputedRef<number>;
|
|
16
|
-
readonly isSendingMessage: ComputedRef<boolean>;
|
|
17
|
-
readonly isSchedulingMessage: ComputedRef<boolean>;
|
|
18
|
-
resetMainComposer(): void;
|
|
19
|
-
resetThreadComposer(): void;
|
|
20
|
-
focusMainComposer(): void;
|
|
21
|
-
focusThreadComposer(): void;
|
|
22
|
-
shouldFocusThreadComposer(message: ChatMessageItem): boolean;
|
|
23
|
-
loadMainDraft(message: ChatMessageItem): void;
|
|
24
|
-
loadThreadDraft(message: ChatMessageItem): void;
|
|
25
|
-
sendMessage(): Promise<void>;
|
|
26
|
-
sendAttachment(input: AttachmentUploadInput): Promise<void>;
|
|
27
|
-
sendPoll(input: PollComposerInput): Promise<void>;
|
|
28
|
-
scheduleMessage(input: ScheduleMessageInput): Promise<void>;
|
|
29
|
-
sendThreadMessage(): Promise<void>;
|
|
30
|
-
sendThreadAttachment(input: AttachmentUploadInput): Promise<void>;
|
|
31
|
-
sendThreadPoll(input: PollComposerInput): Promise<void>;
|
|
32
|
-
}
|
|
33
|
-
export interface CreateComposerContextOptions {
|
|
34
|
-
chatClient: ComputedRef<ChatClient | null>;
|
|
35
|
-
sendOptions: ComputedRef<MessageSendOptions | undefined>;
|
|
36
|
-
mentionNameByUid: ComputedRef<Record<string, string>>;
|
|
37
|
-
/** Called after a message has been scheduled. */
|
|
38
|
-
afterSchedule: () => Promise<void>;
|
|
39
|
-
mainComposerRef?: TemplateRef<ComposerHandle | null>;
|
|
40
|
-
threadComposerRef?: TemplateRef<ComposerHandle | null>;
|
|
41
|
-
}
|
|
42
|
-
export declare function createComposerContext(options: CreateComposerContextOptions): ComposerContext;
|
|
43
|
-
export declare function provideComposerContext(ctx: ComposerContext): void;
|
|
44
|
-
export declare function useComposerContext(): ComposerContext;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { ComputedRef } from 'vue';
|
|
2
|
-
import { MentionCandidate } from '../../chat/mentions';
|
|
3
|
-
import { ChatClient, ChatConversationItem, MessageSendOptions, ParticipantInfo } from '../../chat/types';
|
|
4
|
-
export interface ConversationContext {
|
|
5
|
-
/** The resolved ChatClient (from BccChat prop or global singleton). */
|
|
6
|
-
readonly client: ComputedRef<ChatClient | null>;
|
|
7
|
-
/** The currently active conversation. */
|
|
8
|
-
readonly conversation: ComputedRef<ChatConversationItem | null>;
|
|
9
|
-
/** UID of the authenticated user. */
|
|
10
|
-
readonly currentUserId: ComputedRef<string | undefined>;
|
|
11
|
-
readonly canUseMessageActions: ComputedRef<boolean>;
|
|
12
|
-
readonly canReact: ComputedRef<boolean>;
|
|
13
|
-
readonly canReply: ComputedRef<boolean>;
|
|
14
|
-
readonly canOpenThread: ComputedRef<boolean>;
|
|
15
|
-
readonly canPin: ComputedRef<boolean>;
|
|
16
|
-
readonly isReadOnly: ComputedRef<boolean>;
|
|
17
|
-
readonly isChannel: ComputedRef<boolean>;
|
|
18
|
-
readonly sendOptions: ComputedRef<MessageSendOptions | undefined>;
|
|
19
|
-
readonly mentionCandidates: ComputedRef<MentionCandidate[]>;
|
|
20
|
-
readonly mentionNameByUid: ComputedRef<Record<string, string>>;
|
|
21
|
-
}
|
|
22
|
-
export interface CreateConversationContextOptions {
|
|
23
|
-
chatClient: ComputedRef<ChatClient | null>;
|
|
24
|
-
selectedConversation: ComputedRef<ChatConversationItem | null>;
|
|
25
|
-
/** Returns prop-supplied read-only flag, or undefined to auto-detect. */
|
|
26
|
-
getPropIsReadOnly: () => boolean | undefined;
|
|
27
|
-
/** Returns prop-supplied send options, or undefined to auto-detect. */
|
|
28
|
-
getPropSendOptions: () => MessageSendOptions | undefined;
|
|
29
|
-
/** Display name override for the sender. */
|
|
30
|
-
getSenderDisplayName: () => string | undefined;
|
|
31
|
-
/** Live group members used for @mention suggestions. */
|
|
32
|
-
getMentionCandidates: () => ReadonlyArray<ParticipantInfo>;
|
|
33
|
-
}
|
|
34
|
-
export declare function createConversationContext(options: CreateConversationContextOptions): ConversationContext;
|
|
35
|
-
export declare function provideConversationContext(ctx: ConversationContext): void;
|
|
36
|
-
export declare function useConversationContext(): ConversationContext;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { ComputedRef, Ref } from 'vue';
|
|
2
|
-
import { ChatClient, ChatConversationItem, ChatMessageItem, ChatMessageReceiptItem, ChatReactionDetailItem, ForwardMessageTarget } from '../../chat/types';
|
|
3
|
-
export interface DialogsContext {
|
|
4
|
-
readonly infoMessage: Ref<ChatMessageItem | null>;
|
|
5
|
-
readonly infoMessageReceipts: Ref<ChatMessageReceiptItem[]>;
|
|
6
|
-
readonly loadingMessageReceipts: Ref<boolean>;
|
|
7
|
-
readonly messageReceiptsError: Ref<string | null>;
|
|
8
|
-
readonly messageReceiptsByMessageId: Ref<Record<string, ChatMessageReceiptItem[]>>;
|
|
9
|
-
readonly loadingMessageReceiptIds: Ref<Record<string, boolean>>;
|
|
10
|
-
getMessageReceipts(message: ChatMessageItem): Promise<ChatMessageReceiptItem[]>;
|
|
11
|
-
openMessageInfo(message: ChatMessageItem): Promise<void>;
|
|
12
|
-
closeMessageInfo(): void;
|
|
13
|
-
readonly messageReactionsByMessageId: Ref<Record<string, ChatReactionDetailItem[]>>;
|
|
14
|
-
readonly loadingMessageReactionIds: Ref<Record<string, boolean>>;
|
|
15
|
-
getMessageReactions(message: ChatMessageItem): Promise<ChatReactionDetailItem[]>;
|
|
16
|
-
readonly hasScheduledMessages: ComputedRef<boolean>;
|
|
17
|
-
readonly showScheduledMessages: Ref<boolean>;
|
|
18
|
-
readonly loadingScheduledMessages: ComputedRef<boolean>;
|
|
19
|
-
readonly scheduledMessages: ComputedRef<ChatMessageItem[]>;
|
|
20
|
-
openScheduledMessages(): Promise<void>;
|
|
21
|
-
refreshScheduledMessages(): Promise<void>;
|
|
22
|
-
readonly showPinnedMessages: Ref<boolean>;
|
|
23
|
-
openPinnedMessages(): void;
|
|
24
|
-
closePinnedMessages(): void;
|
|
25
|
-
readonly forwardMessageSource: Ref<ChatMessageItem | null>;
|
|
26
|
-
readonly sendingForwardMessage: Ref<boolean>;
|
|
27
|
-
openForwardMessage(message: ChatMessageItem): void;
|
|
28
|
-
closeForwardMessage(): void;
|
|
29
|
-
sendForwardedMessage(target: ForwardMessageTarget): Promise<void>;
|
|
30
|
-
}
|
|
31
|
-
export interface CreateDialogsContextOptions {
|
|
32
|
-
chatClient: ComputedRef<ChatClient | null>;
|
|
33
|
-
selectedConversation: ComputedRef<ChatConversationItem | null>;
|
|
34
|
-
/** Whether the current user can send and schedule messages in the selected conversation. */
|
|
35
|
-
canScheduleMessages: () => boolean;
|
|
36
|
-
/** Whether the initial scheduled-messages dialog should be open. */
|
|
37
|
-
getInitialScheduledMessagesOpen: () => boolean;
|
|
38
|
-
/** Fallback error string shown when receipt fetch fails. */
|
|
39
|
-
fetchErrorFallback: string;
|
|
40
|
-
}
|
|
41
|
-
export declare function createDialogsContext(options: CreateDialogsContextOptions): DialogsContext;
|
|
42
|
-
export declare function provideDialogsContext(ctx: DialogsContext): void;
|
|
43
|
-
export declare function useDialogsContext(): DialogsContext;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { ComputedRef, Ref } from 'vue';
|
|
2
|
-
import { ChatClient, ChatConversationItem, ChatMessageItem } from '../../chat/types';
|
|
3
|
-
export interface MessagesContext {
|
|
4
|
-
readonly messages: ComputedRef<ChatMessageItem[]>;
|
|
5
|
-
readonly loadingMessages: ComputedRef<boolean>;
|
|
6
|
-
readonly hasOlderMessages: ComputedRef<boolean>;
|
|
7
|
-
readonly loadingOlderMessages: ComputedRef<boolean>;
|
|
8
|
-
readonly threadMessages: ComputedRef<ChatMessageItem[]>;
|
|
9
|
-
readonly loadingThreadMessages: ComputedRef<boolean>;
|
|
10
|
-
readonly activeThreadParentMessage: ComputedRef<ChatMessageItem | null>;
|
|
11
|
-
readonly hasOlderThreadMessages: ComputedRef<boolean>;
|
|
12
|
-
readonly loadingOlderThreadMessages: ComputedRef<boolean>;
|
|
13
|
-
/** Pins of the active conversation, most recently pinned first. */
|
|
14
|
-
readonly pinnedMessages: ComputedRef<ChatMessageItem[]>;
|
|
15
|
-
/** Whether the message with this id is pinned. */
|
|
16
|
-
isMessagePinned(messageId: string): boolean;
|
|
17
|
-
/** True while the conversation is at the server-owned pin cap. */
|
|
18
|
-
readonly pinnedMessagesLimitReached: ComputedRef<boolean>;
|
|
19
|
-
readonly showDefaultEmptyState: ComputedRef<boolean>;
|
|
20
|
-
readonly isChatEmpty: ComputedRef<boolean>;
|
|
21
|
-
}
|
|
22
|
-
export interface CreateMessagesContextOptions {
|
|
23
|
-
chatClient: ComputedRef<ChatClient | null>;
|
|
24
|
-
selectedConversation: ComputedRef<ChatConversationItem | null>;
|
|
25
|
-
usesPublicContract: ComputedRef<boolean>;
|
|
26
|
-
loadingChat: Ref<boolean>;
|
|
27
|
-
/** Returns prop-supplied messages, or undefined to fall back to client. */
|
|
28
|
-
getPropMessages: () => ChatMessageItem[] | undefined;
|
|
29
|
-
/** Returns prop-supplied thread messages, or undefined to fall back. */
|
|
30
|
-
getPropThreadMessages: () => ChatMessageItem[] | undefined;
|
|
31
|
-
/** Returns prop-supplied loading flag, or undefined to fall back. */
|
|
32
|
-
getPropLoadingMessages: () => boolean | undefined;
|
|
33
|
-
/** Returns prop-supplied thread loading flag, or undefined to fall back. */
|
|
34
|
-
getPropLoadingThreadMessages: () => boolean | undefined;
|
|
35
|
-
/** Returns prop-supplied empty-state flag, or undefined for auto. */
|
|
36
|
-
getPropShowDefaultEmptyState: () => boolean | undefined;
|
|
37
|
-
/** Whether to filter out deleted messages. */
|
|
38
|
-
getHideDeletedMessages: () => boolean;
|
|
39
|
-
}
|
|
40
|
-
export declare function createMessagesContext(options: CreateMessagesContextOptions): MessagesContext;
|
|
41
|
-
export declare function provideMessagesContext(ctx: MessagesContext): void;
|
|
42
|
-
export declare function useMessagesContext(): MessagesContext;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Ref } from 'vue';
|
|
2
|
-
export interface UseAudioPlayerOptions {
|
|
3
|
-
/** Ref to the underlying `<audio>` element. */
|
|
4
|
-
audioRef: Ref<HTMLAudioElement | null>;
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* Composable that owns playback state and exposes the handlers required by a
|
|
8
|
-
* custom audio player (play/pause toggle plus a draggable seek bar).
|
|
9
|
-
*/
|
|
10
|
-
export declare function useAudioPlayer(options: UseAudioPlayerOptions): {
|
|
11
|
-
isPlaying: Ref<boolean, boolean>;
|
|
12
|
-
currentTime: Ref<number, number>;
|
|
13
|
-
duration: Ref<number, number>;
|
|
14
|
-
togglePlay: () => void;
|
|
15
|
-
startSeek: () => void;
|
|
16
|
-
seek: (time: number) => void;
|
|
17
|
-
endSeek: () => void;
|
|
18
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { ComposerContext } from './chat/useComposerContext';
|
|
2
|
-
import { ConversationContext } from './chat/useConversationContext';
|
|
3
|
-
import { DialogsContext } from './chat/useDialogsContext';
|
|
4
|
-
import { ChatEventBus } from './useChatEventBus';
|
|
5
|
-
export interface UseChatActionsOptions {
|
|
6
|
-
/** Conversation identity and permissions. */
|
|
7
|
-
conversation: ConversationContext;
|
|
8
|
-
/** Composer draft/send state. */
|
|
9
|
-
composer: ComposerContext;
|
|
10
|
-
/** Dialog overlay state. */
|
|
11
|
-
dialogs: DialogsContext;
|
|
12
|
-
/** The event bus to subscribe to. */
|
|
13
|
-
bus: ChatEventBus;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Subscribes to all bus events and wires them to the appropriate business
|
|
17
|
-
* logic. Returns a teardown function (also registered via `onUnmounted`).
|
|
18
|
-
*/
|
|
19
|
-
export declare function useChatActions({ conversation, composer, dialogs, bus }: UseChatActionsOptions): {
|
|
20
|
-
teardown: () => void;
|
|
21
|
-
};
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { AttachmentUploadInput, ChatMessageItem, PollComposerInput, ScheduleMessageInput } from '../chat/types';
|
|
2
|
-
/** Target identifier used to distinguish main-conversation from thread actions. */
|
|
3
|
-
export type ChatTarget = "main" | "thread";
|
|
4
|
-
/** All events that can flow through the chat event bus. */
|
|
5
|
-
export interface ChatBusEventMap {
|
|
6
|
-
/** User wants to reply to a message. */
|
|
7
|
-
"message:reply": ChatMessageItem;
|
|
8
|
-
/** User wants to edit a message. */
|
|
9
|
-
"message:edit": ChatMessageItem;
|
|
10
|
-
/** User wants to delete a message. */
|
|
11
|
-
"message:delete": ChatMessageItem;
|
|
12
|
-
/** User wants to view message delivery info. */
|
|
13
|
-
"message:info": ChatMessageItem;
|
|
14
|
-
/** User wants to open a thread for a message. */
|
|
15
|
-
"message:openThread": ChatMessageItem;
|
|
16
|
-
/** User wants to toggle a reaction on a message. */
|
|
17
|
-
"message:toggleReaction": {
|
|
18
|
-
message: ChatMessageItem;
|
|
19
|
-
emoji: string;
|
|
20
|
-
};
|
|
21
|
-
/** User wants to translate a message. */
|
|
22
|
-
"message:translate": ChatMessageItem;
|
|
23
|
-
/** User wants to vote on a poll option. */
|
|
24
|
-
"message:votePoll": {
|
|
25
|
-
message: ChatMessageItem;
|
|
26
|
-
optionId: string;
|
|
27
|
-
};
|
|
28
|
-
/** User wants to navigate to a referenced message. */
|
|
29
|
-
"message:openReference": string;
|
|
30
|
-
/** User wants to forward a message to another conversation. */
|
|
31
|
-
"message:forward": ChatMessageItem;
|
|
32
|
-
/** User wants to pin or unpin a message. */
|
|
33
|
-
"message:togglePin": ChatMessageItem;
|
|
34
|
-
/** User wants to unpin the message with this id. */
|
|
35
|
-
"message:unpin": string;
|
|
36
|
-
/** User pressed send (text or attachment). */
|
|
37
|
-
"composer:send": {
|
|
38
|
-
target: ChatTarget;
|
|
39
|
-
};
|
|
40
|
-
/** User attached a file and pressed send. */
|
|
41
|
-
"composer:sendAttachment": {
|
|
42
|
-
target: ChatTarget;
|
|
43
|
-
input: AttachmentUploadInput;
|
|
44
|
-
};
|
|
45
|
-
/** User composed and submitted a poll. */
|
|
46
|
-
"composer:sendPoll": {
|
|
47
|
-
target: ChatTarget;
|
|
48
|
-
input: PollComposerInput;
|
|
49
|
-
};
|
|
50
|
-
/** User scheduled a message. */
|
|
51
|
-
"composer:schedule": {
|
|
52
|
-
target: ChatTarget;
|
|
53
|
-
input: ScheduleMessageInput;
|
|
54
|
-
};
|
|
55
|
-
/** User cancelled a reply. */
|
|
56
|
-
"composer:cancelReply": undefined;
|
|
57
|
-
/** User cancelled an edit. */
|
|
58
|
-
"composer:cancelEdit": undefined;
|
|
59
|
-
/** User requested older messages. */
|
|
60
|
-
"list:loadOlder": {
|
|
61
|
-
target: ChatTarget;
|
|
62
|
-
};
|
|
63
|
-
/** Open the scheduled-messages dialog. */
|
|
64
|
-
"ui:openScheduled": undefined;
|
|
65
|
-
/** Open the pinned-messages dialog. */
|
|
66
|
-
"ui:openPinned": undefined;
|
|
67
|
-
/** Close any open composer actions popover. */
|
|
68
|
-
"ui:closeComposerActions": undefined;
|
|
69
|
-
/** Close the thread dialog. */
|
|
70
|
-
"ui:closeThread": undefined;
|
|
71
|
-
/** Reschedule a scheduled message. */
|
|
72
|
-
"ui:reschedule": {
|
|
73
|
-
messageId: number;
|
|
74
|
-
muid: string;
|
|
75
|
-
originalChatUid: string;
|
|
76
|
-
scheduleDate: string;
|
|
77
|
-
};
|
|
78
|
-
/** Remove (cancel) a scheduled message before it is sent. */
|
|
79
|
-
"ui:removeScheduled": ChatMessageItem;
|
|
80
|
-
/** Edit the text/caption of a scheduled message. */
|
|
81
|
-
"ui:editScheduledText": {
|
|
82
|
-
message: ChatMessageItem;
|
|
83
|
-
nextText: string;
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
/** Handler type that correctly handles both void and payload events. */
|
|
87
|
-
type EventHandler<T> = T extends undefined ? () => void : (payload: T) => void;
|
|
88
|
-
/** A typed event bus instance. */
|
|
89
|
-
export interface ChatEventBus {
|
|
90
|
-
/** Emit an event with an optional payload. */
|
|
91
|
-
emit<K extends keyof ChatBusEventMap>(event: K, ...args: ChatBusEventMap[K] extends undefined ? [] : [ChatBusEventMap[K]]): void;
|
|
92
|
-
/** Subscribe to an event. Returns an unsubscribe function. */
|
|
93
|
-
on<K extends keyof ChatBusEventMap>(event: K, handler: EventHandler<ChatBusEventMap[K]>): () => void;
|
|
94
|
-
/** Unsubscribe from an event. */
|
|
95
|
-
off<K extends keyof ChatBusEventMap>(event: K, handler: EventHandler<ChatBusEventMap[K]>): void;
|
|
96
|
-
}
|
|
97
|
-
/** Creates a new ChatEventBus instance. Called once by BccChat. */
|
|
98
|
-
export declare function createChatEventBus(): ChatEventBus;
|
|
99
|
-
/** Provides the event bus to descendant components. */
|
|
100
|
-
export declare function provideChatEventBus(bus: ChatEventBus): void;
|
|
101
|
-
/** Injects the event bus from an ancestor BccChat component. */
|
|
102
|
-
export declare function useChatBus(): ChatEventBus;
|
|
103
|
-
/**
|
|
104
|
-
* Convenience helper: subscribes to a bus event and auto-unsubscribes when the
|
|
105
|
-
* calling component is unmounted.
|
|
106
|
-
*/
|
|
107
|
-
export declare function useBusListener<K extends keyof ChatBusEventMap>(bus: ChatEventBus, event: K, handler: EventHandler<ChatBusEventMap[K]>): void;
|
|
108
|
-
export {};
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { TemplateRef, Ref } from 'vue';
|
|
2
|
-
import { AttachmentUploadInput, ChatClient, ChatMessageItem, MessageSendOptions, PollComposerInput, ScheduleMessageInput } from '../chat/types';
|
|
3
|
-
/** Minimal public interface exposed by MessageComposer via `defineExpose`. */
|
|
4
|
-
interface ComposerHandle {
|
|
5
|
-
focusEditor: () => Promise<void>;
|
|
6
|
-
}
|
|
7
|
-
export interface UseComposerDraftsOptions {
|
|
8
|
-
/** Returns the active chat client, or null when unavailable. */
|
|
9
|
-
getClient: () => ChatClient | null;
|
|
10
|
-
/** Returns the resolved send options for the current conversation. */
|
|
11
|
-
getSendOptions: () => MessageSendOptions | undefined;
|
|
12
|
-
/** Maps mention uids to display names for editable drafts. */
|
|
13
|
-
getMentionNameByUid: () => Record<string, string>;
|
|
14
|
-
/**
|
|
15
|
-
* Called after a message has been scheduled so the parent can refresh the
|
|
16
|
-
* scheduled-messages overlay.
|
|
17
|
-
*/
|
|
18
|
-
afterSchedule: () => Promise<void>;
|
|
19
|
-
mainComposerRef?: TemplateRef<ComposerHandle | null>;
|
|
20
|
-
threadComposerRef?: TemplateRef<ComposerHandle | null>;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Composable that owns all state for the main + thread dual-composer drafts, including
|
|
24
|
-
* draft text, reset signals, focus helpers, and delegated send actions.
|
|
25
|
-
*/
|
|
26
|
-
export declare function useComposerDrafts(options: UseComposerDraftsOptions): {
|
|
27
|
-
draft: Ref<string, string>;
|
|
28
|
-
threadDraft: Ref<string, string>;
|
|
29
|
-
composerResetSignal: Ref<number, number>;
|
|
30
|
-
threadComposerResetSignal: Ref<number, number>;
|
|
31
|
-
resetMainComposer: () => void;
|
|
32
|
-
resetThreadComposer: () => void;
|
|
33
|
-
focusMainComposer: () => void;
|
|
34
|
-
focusThreadComposer: () => void;
|
|
35
|
-
shouldFocusThreadComposer: (message: ChatMessageItem) => boolean;
|
|
36
|
-
getEditableMessageText: (message: ChatMessageItem) => string;
|
|
37
|
-
loadMainDraft: (message: ChatMessageItem) => void;
|
|
38
|
-
loadThreadDraft: (message: ChatMessageItem) => void;
|
|
39
|
-
sendMessage: () => Promise<void>;
|
|
40
|
-
sendAttachment: (input: AttachmentUploadInput) => Promise<void>;
|
|
41
|
-
sendPoll: (input: PollComposerInput) => Promise<void>;
|
|
42
|
-
scheduleMessage: (input: ScheduleMessageInput) => Promise<void>;
|
|
43
|
-
sendThreadMessage: () => Promise<void>;
|
|
44
|
-
sendThreadAttachment: (input: AttachmentUploadInput) => Promise<void>;
|
|
45
|
-
sendThreadPoll: (input: PollComposerInput) => Promise<void>;
|
|
46
|
-
};
|
|
47
|
-
export {};
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { Ref, ComputedRef } from 'vue';
|
|
2
|
-
import { MentionCandidate } from '../chat/mentions';
|
|
3
|
-
export interface ComposerTriggerCandidate {
|
|
4
|
-
id: string;
|
|
5
|
-
label: string;
|
|
6
|
-
subtitle?: string;
|
|
7
|
-
avatar?: string;
|
|
8
|
-
}
|
|
9
|
-
export interface ComposerTriggerDefinition {
|
|
10
|
-
id: string;
|
|
11
|
-
triggerChar: string;
|
|
12
|
-
enabled: () => boolean;
|
|
13
|
-
getCandidates: (query: string) => ComposerTriggerCandidate[];
|
|
14
|
-
apply: (candidate: ComposerTriggerCandidate, triggerRange: Range) => void;
|
|
15
|
-
maxSuggestions?: number;
|
|
16
|
-
}
|
|
17
|
-
interface UseComposerTriggersOptions {
|
|
18
|
-
editorRef: Ref<HTMLDivElement | null>;
|
|
19
|
-
getTriggers: () => ComposerTriggerDefinition[];
|
|
20
|
-
onChange?: () => void;
|
|
21
|
-
}
|
|
22
|
-
export declare function createMentionTriggerDefinition(options: {
|
|
23
|
-
enabled: () => boolean;
|
|
24
|
-
getMentionCandidates: () => ReadonlyArray<MentionCandidate>;
|
|
25
|
-
insertMention: (candidate: MentionCandidate, triggerRange: Range) => void;
|
|
26
|
-
maxSuggestions?: number;
|
|
27
|
-
}): ComposerTriggerDefinition;
|
|
28
|
-
export declare function useComposerTriggers(options: UseComposerTriggersOptions): {
|
|
29
|
-
activeTriggerId: () => string | null;
|
|
30
|
-
triggerCandidates: Ref<{
|
|
31
|
-
id: string;
|
|
32
|
-
label: string;
|
|
33
|
-
subtitle?: string | undefined;
|
|
34
|
-
avatar?: string | undefined;
|
|
35
|
-
}[], ComposerTriggerCandidate[] | {
|
|
36
|
-
id: string;
|
|
37
|
-
label: string;
|
|
38
|
-
subtitle?: string | undefined;
|
|
39
|
-
avatar?: string | undefined;
|
|
40
|
-
}[]>;
|
|
41
|
-
triggerMenuPosition: Ref<{
|
|
42
|
-
x: number;
|
|
43
|
-
y: number;
|
|
44
|
-
placement: "above" | "below";
|
|
45
|
-
}, {
|
|
46
|
-
x: number;
|
|
47
|
-
y: number;
|
|
48
|
-
placement: "above" | "below";
|
|
49
|
-
} | {
|
|
50
|
-
x: number;
|
|
51
|
-
y: number;
|
|
52
|
-
placement: "above" | "below";
|
|
53
|
-
}>;
|
|
54
|
-
highlightedTriggerIndex: Ref<number, number>;
|
|
55
|
-
showTriggerMenu: ComputedRef<boolean>;
|
|
56
|
-
hideTriggerMenu: () => void;
|
|
57
|
-
handleInput: () => void;
|
|
58
|
-
handleKeydown: (event: KeyboardEvent) => boolean;
|
|
59
|
-
selectTriggerCandidate: (candidate: ComposerTriggerCandidate) => void;
|
|
60
|
-
refreshActiveTrigger: () => void;
|
|
61
|
-
};
|
|
62
|
-
export declare function insertMentionAtRange(range: Range, candidate: MentionCandidate): void;
|
|
63
|
-
export {};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { AttachmentUploadInput, ChatClient, ChatMessageItem, MessageSendOptions, PollComposerInput, ScheduleMessageInput } from '../chat/types';
|
|
2
|
-
import { Ref } from 'vue';
|
|
3
|
-
export declare function useConversationComposer(options: {
|
|
4
|
-
client: ChatClient;
|
|
5
|
-
getSendOptions: () => MessageSendOptions | undefined;
|
|
6
|
-
afterSchedule?: () => Promise<void> | void;
|
|
7
|
-
}): {
|
|
8
|
-
draft: Ref<string, string>;
|
|
9
|
-
loadMessageDraft: (message: ChatMessageItem) => void;
|
|
10
|
-
reset: () => void;
|
|
11
|
-
resetSignal: Ref<number, number>;
|
|
12
|
-
scheduleMessage: (input: ScheduleMessageInput) => Promise<void>;
|
|
13
|
-
sendAttachment: (input: AttachmentUploadInput) => Promise<void>;
|
|
14
|
-
sendPoll: (input: PollComposerInput) => Promise<void>;
|
|
15
|
-
sendText: () => Promise<void>;
|
|
16
|
-
};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { ParticipantInfo } from '../chat/types';
|
|
2
|
-
import { Ref } from 'vue';
|
|
3
|
-
export interface UseGroupMemberTrackingOptions {
|
|
4
|
-
/** Returns the CometChat GUID of the currently active conversation, or undefined when none is selected. */
|
|
5
|
-
getConversationTargetId: () => string | undefined;
|
|
6
|
-
/** Returns true when the active conversation is a broadcast channel (members are not tracked). */
|
|
7
|
-
isChannel: () => boolean;
|
|
8
|
-
/** Returns true when the current user has joined the active group. */
|
|
9
|
-
hasJoined: () => boolean;
|
|
10
|
-
/** Called whenever the member list changes with the new complete list. */
|
|
11
|
-
onMembersChanged: (members: ParticipantInfo[]) => void;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Composable that keeps a live `groupMembers` ref in sync with CometChat
|
|
15
|
-
* membership events and exposes a manual `fetchGroupMembers` loader for the
|
|
16
|
-
* initial page-load.
|
|
17
|
-
*/
|
|
18
|
-
export declare function useGroupMemberTracking(options: UseGroupMemberTrackingOptions): {
|
|
19
|
-
groupMembers: Ref<{
|
|
20
|
-
uid: string;
|
|
21
|
-
displayName: string;
|
|
22
|
-
avatar: string;
|
|
23
|
-
role: string;
|
|
24
|
-
lastSeen?: Date | undefined;
|
|
25
|
-
}[], ParticipantInfo[] | {
|
|
26
|
-
uid: string;
|
|
27
|
-
displayName: string;
|
|
28
|
-
avatar: string;
|
|
29
|
-
role: string;
|
|
30
|
-
lastSeen?: Date | undefined;
|
|
31
|
-
}[]>;
|
|
32
|
-
fetchGroupMembers: (groupUid: string) => Promise<void>;
|
|
33
|
-
};
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Ref } from 'vue';
|
|
2
|
-
export interface UseImageZoomOptions {
|
|
3
|
-
/** Ref to the scrollable viewport wrapper element. */
|
|
4
|
-
viewportRef: Ref<HTMLElement | null>;
|
|
5
|
-
/** Ref to the `<img>` element whose natural dimensions guide clamping. */
|
|
6
|
-
imageRef: Ref<HTMLImageElement | null>;
|
|
7
|
-
/** Returns true when the current attachment is an image (non-image = zoom disabled). */
|
|
8
|
-
isImage: () => boolean;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Composable that owns scale, translateX, and translateY state and exposes
|
|
12
|
-
* all pointer event handlers required by the media-viewer image stage.
|
|
13
|
-
*/
|
|
14
|
-
export declare function useImageZoom(options: UseImageZoomOptions): {
|
|
15
|
-
scale: Ref<number, number>;
|
|
16
|
-
translateX: Ref<number, number>;
|
|
17
|
-
translateY: Ref<number, number>;
|
|
18
|
-
isDragging: Ref<boolean, boolean>;
|
|
19
|
-
resetTransform: () => void;
|
|
20
|
-
handlePointerDown: (event: PointerEvent) => void;
|
|
21
|
-
handlePointerMove: (event: PointerEvent) => void;
|
|
22
|
-
handlePointerUp: (event: PointerEvent) => void;
|
|
23
|
-
handlePointerCancel: (event: PointerEvent) => void;
|
|
24
|
-
handleWheel: (event: WheelEvent) => void;
|
|
25
|
-
handleDoubleClick: () => void;
|
|
26
|
-
};
|