@servicetitan/titan-chat-ui-common 3.0.0

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.
Files changed (75) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/index.d.ts +5 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +5 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/models/__mocks__/support-chat.mock.d.ts +9 -0
  7. package/dist/models/__mocks__/support-chat.mock.d.ts.map +1 -0
  8. package/dist/models/__mocks__/support-chat.mock.js +82 -0
  9. package/dist/models/__mocks__/support-chat.mock.js.map +1 -0
  10. package/dist/models/chat-customizations.d.ts +42 -0
  11. package/dist/models/chat-customizations.d.ts.map +1 -0
  12. package/dist/models/chat-customizations.js +2 -0
  13. package/dist/models/chat-customizations.js.map +1 -0
  14. package/dist/models/file-descriptor.d.ts +7 -0
  15. package/dist/models/file-descriptor.d.ts.map +1 -0
  16. package/dist/models/file-descriptor.js +2 -0
  17. package/dist/models/file-descriptor.js.map +1 -0
  18. package/dist/models/index.d.ts +4 -0
  19. package/dist/models/index.d.ts.map +1 -0
  20. package/dist/models/index.js +4 -0
  21. package/dist/models/index.js.map +1 -0
  22. package/dist/models/support-chat.d.ts +76 -0
  23. package/dist/models/support-chat.d.ts.map +1 -0
  24. package/dist/models/support-chat.js +75 -0
  25. package/dist/models/support-chat.js.map +1 -0
  26. package/dist/stores/__tests__/chat-ui.store.test.d.ts +2 -0
  27. package/dist/stores/__tests__/chat-ui.store.test.d.ts.map +1 -0
  28. package/dist/stores/__tests__/chat-ui.store.test.js +424 -0
  29. package/dist/stores/__tests__/chat-ui.store.test.js.map +1 -0
  30. package/dist/stores/chat-ui-backend-echo.store.d.ts +13 -0
  31. package/dist/stores/chat-ui-backend-echo.store.d.ts.map +1 -0
  32. package/dist/stores/chat-ui-backend-echo.store.js +115 -0
  33. package/dist/stores/chat-ui-backend-echo.store.js.map +1 -0
  34. package/dist/stores/chat-ui-backend.store.d.ts +6 -0
  35. package/dist/stores/chat-ui-backend.store.d.ts.map +1 -0
  36. package/dist/stores/chat-ui-backend.store.js +3 -0
  37. package/dist/stores/chat-ui-backend.store.js.map +1 -0
  38. package/dist/stores/chat-ui.store.d.ts +153 -0
  39. package/dist/stores/chat-ui.store.d.ts.map +1 -0
  40. package/dist/stores/chat-ui.store.js +683 -0
  41. package/dist/stores/chat-ui.store.js.map +1 -0
  42. package/dist/stores/index.d.ts +4 -0
  43. package/dist/stores/index.d.ts.map +1 -0
  44. package/dist/stores/index.js +4 -0
  45. package/dist/stores/index.js.map +1 -0
  46. package/dist/utils/__tests__/text-utils.test.d.ts +2 -0
  47. package/dist/utils/__tests__/text-utils.test.d.ts.map +1 -0
  48. package/dist/utils/__tests__/text-utils.test.js +59 -0
  49. package/dist/utils/__tests__/text-utils.test.js.map +1 -0
  50. package/dist/utils/test-utils.d.ts +5 -0
  51. package/dist/utils/test-utils.d.ts.map +1 -0
  52. package/dist/utils/test-utils.js +17 -0
  53. package/dist/utils/test-utils.js.map +1 -0
  54. package/dist/utils/text-utils.d.ts +6 -0
  55. package/dist/utils/text-utils.d.ts.map +1 -0
  56. package/dist/utils/text-utils.js +33 -0
  57. package/dist/utils/text-utils.js.map +1 -0
  58. package/package.json +36 -0
  59. package/src/cypress.d.ts +10 -0
  60. package/src/index.ts +4 -0
  61. package/src/models/__mocks__/support-chat.mock.ts +105 -0
  62. package/src/models/chat-customizations.ts +50 -0
  63. package/src/models/file-descriptor.ts +6 -0
  64. package/src/models/index.ts +3 -0
  65. package/src/models/support-chat.ts +117 -0
  66. package/src/stores/__tests__/chat-ui.store.test.ts +531 -0
  67. package/src/stores/chat-ui-backend-echo.store.ts +98 -0
  68. package/src/stores/chat-ui-backend.store.ts +10 -0
  69. package/src/stores/chat-ui.store.ts +539 -0
  70. package/src/stores/index.ts +11 -0
  71. package/src/utils/__tests__/text-utils.test.ts +70 -0
  72. package/src/utils/test-utils.ts +22 -0
  73. package/src/utils/text-utils.ts +36 -0
  74. package/tsconfig.json +15 -0
  75. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,153 @@
1
+ import { ChatConfiguration, ChatCustomizations, ChatEndReason, ChatError, ChatErrorOptions, ChatMessageModelBase, ChatMessageModelFile, ChatMessageModelText, ChatMessageModelTimeout, ChatMessageModelWelcome, ChatMessageState, ChatParticipantIcon, ChatParticipantModel, ChatRunState, ChatTimer } from '../models';
2
+ import { FileDescriptor } from '../models/file-descriptor';
3
+ export declare const symbolAgent: unique symbol;
4
+ export declare const symbolUser: unique symbol;
5
+ export declare enum ChatUiEvent {
6
+ eventRun = "eventRun",
7
+ eventDestroy = "eventDestroy",
8
+ eventRestart = "eventRestart",
9
+ eventCancel = "eventCancel",
10
+ eventEndChat = "eventEndChat",
11
+ eventRecover = "eventRecover",
12
+ eventChasitorTyping = "eventChasitorTyping",
13
+ eventTimerRestart = "eventTimerRestart",
14
+ eventMessageSend = "eventMessageSend",
15
+ eventMessageSendRetry = "eventMessageSendRetry",
16
+ eventMessageSendFile = "eventMessageSendFile",
17
+ eventMessageSendFileRetry = "eventMessageSendFileRetry"
18
+ }
19
+ export type ChatUiEventListener<T = void> = (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void, ...args: unknown[]) => void;
20
+ export interface IChatUiStore<T extends ChatCustomizations = ChatCustomizations> {
21
+ scrollCounter: number;
22
+ status: ChatRunState;
23
+ get isStarting(): boolean;
24
+ get isStarted(): boolean;
25
+ get isError(): boolean;
26
+ get isEnded(): boolean;
27
+ get customizations(): T;
28
+ timer?: ChatTimer;
29
+ endReason?: ChatEndReason;
30
+ participants: {
31
+ [key: symbol]: ChatParticipantModel;
32
+ };
33
+ messages: ChatMessageModelBase[];
34
+ isAgentTyping: boolean;
35
+ isFilePickerEnabled: boolean;
36
+ file?: FileDescriptor;
37
+ error?: ChatError;
38
+ get agent(): ChatParticipantModel;
39
+ get user(): ChatParticipantModel;
40
+ on<T>(event: string, listener: ChatUiEventListener<T>): void;
41
+ off<T>(event: string, listener: ChatUiEventListener<T>): void;
42
+ setCustomizationContext(customizationContext?: T): void;
43
+ setIncomingSound(soundUrl: string): void;
44
+ setTimer(timer?: ChatTimer): void;
45
+ setFile(file: FileDescriptor | undefined): void;
46
+ setFilePickerEnabled(isEnabled: boolean): void;
47
+ setAgentTyping(typing: boolean): void;
48
+ setMessageState(message: ChatMessageModelBase, state: ChatMessageState, data?: any): void;
49
+ setMessages(messages: ChatMessageModelBase[]): void;
50
+ setAgentName(name: string): void;
51
+ setAgentIcon(icon: ChatParticipantIcon): void;
52
+ setChatError(chatError: ChatError): void;
53
+ setError<T = any>(message: string, options?: ChatErrorOptions<T>): void;
54
+ setStatus(status: ChatRunState): void;
55
+ resetError(runState: ChatRunState): void;
56
+ reset(resetStatus?: boolean): void;
57
+ resetFile(): void;
58
+ triggerScroll(): void;
59
+ configure(configuration?: ChatConfiguration): void;
60
+ run(configuration?: ChatConfiguration, data?: unknown): Promise<void>;
61
+ recover(): Promise<void>;
62
+ destroy(): Promise<void>;
63
+ chasitorTyping(isTyping: boolean): Promise<void>;
64
+ restartTimers(): Promise<void>;
65
+ restart(): Promise<void>;
66
+ cancelChat(): Promise<void>;
67
+ endChat(endReason?: ChatEndReason): Promise<void>;
68
+ sendMessageText(messageText: string): Promise<void>;
69
+ sendMessageRetry(message: ChatMessageModelBase): Promise<void>;
70
+ addMessage(isAgent: boolean, message: string, data?: any): void;
71
+ addMessageWelcome(message: string): void;
72
+ }
73
+ export declare const CHAT_UI_STORE_TOKEN: import("@servicetitan/react-ioc").SymbolToken<IChatUiStore<Partial<{
74
+ messageTemplates: import("..").ChatMessageTemplateCustomizations;
75
+ messages: import("..").ChatMessageCustomization[];
76
+ messageTyping: import("..").ChatMessageTypingCustomization;
77
+ input: import("..").ChatInputCustomization;
78
+ footerComponent: import("react").ReactNode;
79
+ loadingComponent: import("react").ReactNode;
80
+ }>>>;
81
+ export declare class ChatUiStore<T extends ChatCustomizations> implements IChatUiStore<T> {
82
+ isAgentTyping: boolean;
83
+ status: ChatRunState;
84
+ isFilePickerEnabled: boolean;
85
+ file?: FileDescriptor;
86
+ error?: ChatError;
87
+ endReason?: ChatEndReason;
88
+ messages: ChatMessageModelBase[];
89
+ currentFileMessage?: ChatMessageModelFile;
90
+ scrollCounter: number;
91
+ timer?: ChatTimer;
92
+ participants: {
93
+ [key: symbol]: ChatParticipantModel;
94
+ };
95
+ get agent(): ChatParticipantModel;
96
+ get user(): ChatParticipantModel;
97
+ get isStarted(): boolean;
98
+ get isError(): boolean;
99
+ get isEnded(): boolean;
100
+ get isStarting(): boolean;
101
+ get customizations(): T;
102
+ protected customizationContext: T;
103
+ private eventEmitter;
104
+ private incomingMessageSound?;
105
+ private incomingMessageSoundPromise?;
106
+ constructor();
107
+ on: <T>(event: string, listener: ChatUiEventListener<T_1>) => void;
108
+ off: <T>(event: string, listener: ChatUiEventListener<T_1>) => void;
109
+ setCustomizationContext(customizationContext?: T): void;
110
+ setIncomingSound(soundUrl: string): void;
111
+ setFile(file?: FileDescriptor): void;
112
+ setFilePickerEnabled(isEnabled: boolean): void;
113
+ setTimer(timer?: ChatTimer): void;
114
+ resetError(runState: ChatRunState): void;
115
+ setChatError(chatError: ChatError): void;
116
+ setError<T = any>(message: string, options?: ChatErrorOptions<T>): void;
117
+ setStatus(status: ChatRunState): void;
118
+ setMessages(messages: ChatMessageModelBase[]): void;
119
+ setAgentName(name: string): void;
120
+ setAgentIcon(icon: ChatParticipantIcon): void;
121
+ setAgentTyping(isAgentTyping: boolean): void;
122
+ setEndReason(reason?: ChatEndReason): void;
123
+ setEndedChatState(endReason: ChatEndReason): void;
124
+ configure(configuration?: ChatConfiguration): void;
125
+ run(configuration?: ChatConfiguration, data?: unknown): Promise<void>;
126
+ recover(): Promise<void>;
127
+ destroy(): Promise<void>;
128
+ restart(): Promise<void>;
129
+ cancelChat(): Promise<void>;
130
+ endChat(endReason?: ChatEndReason): Promise<void>;
131
+ chasitorTyping(isTyping: boolean): Promise<void>;
132
+ sendMessageText(message: string): Promise<void>;
133
+ sendMessageRetry(messageModel: ChatMessageModelBase): Promise<void>;
134
+ sendMessageFileRetry(messageModel: ChatMessageModelFile): Promise<void>;
135
+ getParticipant(participantKey: symbol): ChatParticipantModel;
136
+ addMessage(isAgent: boolean, message: string, data?: any): ChatMessageModelText;
137
+ addMessageTimeout(): ChatMessageModelTimeout | undefined;
138
+ addMessageWelcome(message: string): ChatMessageModelWelcome;
139
+ addMessageFile(file: FileDescriptor): ChatMessageModelFile;
140
+ restartTimers(): Promise<void>;
141
+ setMessageState(message: ChatMessageModelBase, state: ChatMessageState, data?: any): void;
142
+ resetFile(): void;
143
+ reset(resetStatus?: boolean): void;
144
+ getLastFailedMessages(): ChatMessageModelText[];
145
+ triggerScroll(): void;
146
+ protected emitAsync<T>(event: string, ...args: unknown[]): Promise<void | T>;
147
+ protected addMessageInternal<T extends ChatMessageModelBase>(message: Omit<T, 'id' | 'timestamp'>): T;
148
+ protected removeMessageByType(type: string): void;
149
+ private sendMessageTextInternal;
150
+ private createMessage;
151
+ private beepIncoming;
152
+ }
153
+ //# sourceMappingURL=chat-ui.store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-ui.store.d.ts","sourceRoot":"","sources":["../../src/stores/chat-ui.store.ts"],"names":[],"mappings":"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"}