UNPKG

@rkosafo/cai.components

Version:

This package is under development and not ready for public use.

142 lines (141 loc) 3.63 kB
import type { Snippet } from 'svelte'; export interface ChatEntrySkeletonProps { isMobile?: boolean; messageCount?: number; } export interface ChatHeaderOverflowAction { id: string; label: string; icon?: string; } export type CaseToggleType = 'follow' | 'unfollow'; export interface ChatHeaderProps { logoUrl?: string; caseTitle?: string; user?: { name: string; profileImageUrl?: string; initials: string; }; caseTypes?: string; assignedTo?: string; showAssignedTo?: boolean; showFollowCaseButton?: boolean; showBackArrow?: boolean; overflowActionsList?: ChatHeaderOverflowAction[]; showOverflowActionButton?: boolean; caseStatus?: string; isFollowingCase?: boolean; showFollowOverflowAction?: boolean; showCloseOverflowAction?: boolean; onCloseCase?: () => void; onOverflowActionClicked?: (val: ChatHeaderOverflowAction) => void; onToggleFollowCase?: (val: CaseToggleType) => void; onBackArrowClicked?: () => void; leadingWidget?: Snippet; trailingWidget?: Snippet; caseDetailsWidget?: Snippet; } export interface ISlashCommand { name: string; cmdK: string; hint: string; viewer: string; } export interface IMentionableItem { id: string | number; name: string; avatar?: string; } export interface RichTextProps { value?: string; placeholder?: string; loading?: boolean; slashCommands?: ISlashCommand[]; mentionableItems?: IMentionableItem[]; onSend?: () => void; onSlash?: (val: ISlashCommand) => void; onMention?: (val: IMentionableItem) => void; class?: string; } export type CommandListType = 'slash' | 'mention'; export interface PreviewPageSrc { name: string; content: string; file: string; } export interface PreviewPageProps { open: boolean; fullImage?: boolean; showActions?: boolean; title: string; src?: PreviewPageSrc; onGetImage?: (val: PreviewPageSrc) => void; } export interface ICaseCategory { id: number; name: string; description: string; assignedTo: number[]; visibleTo: number[]; canClose: number[]; autoAssign: boolean; parentId?: number; items?: ICaseCategory[]; } export interface CategorySelectorClicked { selected: ICaseCategory; list: string[] | null; } export interface CategorySelectorProps { items?: ICaseCategory[]; options?: ICaseCategory[]; onClick?: (val: CategorySelectorClicked) => void; } export interface DraggableWindowProps { title: string; isOpen: boolean; isCollapsed: boolean; width?: string; height?: string; x?: number; y?: number; minWidth?: string; minHeight?: string; zIndex?: number; onBringToFront?: () => void; } export interface ChatInputMessage { content: string; contentType: 'text'; files: File[]; mentions: any[]; } export interface ChatInputProps { clearMessage?: boolean; hideLoad?: boolean; slashCommands?: ISlashCommand[]; mentionableItems?: IMentionableItem[]; onMessage?: (val: ChatInputMessage) => void; onSlash?: (val: ISlashCommand) => void; previewPageTitle?: string; class?: string; } export interface ChatEntryMessage { mine: boolean; message: string; files?: string[]; user?: { firstName: string; id: number | string; surname: string; otherNames?: string; staffNumber?: string; }; } export interface ChatEntryPageProps { message: ChatEntryMessage; time: string; userId: number | string; textBorder?: boolean; }