@servicetitan/titan-chat-ui 1.0.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/CHANGELOG.md +11 -0
- package/dist/assets/floating-chat-avatar.svg +16 -0
- package/dist/components/chat/__tests-cy__/chat-messages.test.d.ts +2 -0
- package/dist/components/chat/__tests-cy__/chat-messages.test.d.ts.map +1 -0
- package/dist/components/chat/__tests-cy__/chat-messages.test.js +28 -0
- package/dist/components/chat/__tests-cy__/chat-messages.test.js.map +1 -0
- package/dist/components/chat/__tests-cy__/chat.test.d.ts +2 -0
- package/dist/components/chat/__tests-cy__/chat.test.d.ts.map +1 -0
- package/dist/components/chat/__tests-cy__/chat.test.js +122 -0
- package/dist/components/chat/__tests-cy__/chat.test.js.map +1 -0
- package/dist/components/chat/chat-connecting.d.ts +7 -0
- package/dist/components/chat/chat-connecting.d.ts.map +1 -0
- package/dist/components/chat/chat-connecting.js +6 -0
- package/dist/components/chat/chat-connecting.js.map +1 -0
- package/dist/components/chat/chat-error.d.ts +3 -0
- package/dist/components/chat/chat-error.d.ts.map +1 -0
- package/dist/components/chat/chat-error.js +18 -0
- package/dist/components/chat/chat-error.js.map +1 -0
- package/dist/components/chat/chat-error.module.less +6 -0
- package/dist/components/chat/chat-input-file.d.ts +5 -0
- package/dist/components/chat/chat-input-file.d.ts.map +1 -0
- package/dist/components/chat/chat-input-file.js +43 -0
- package/dist/components/chat/chat-input-file.js.map +1 -0
- package/dist/components/chat/chat-input.d.ts +5 -0
- package/dist/components/chat/chat-input.d.ts.map +1 -0
- package/dist/components/chat/chat-input.js +94 -0
- package/dist/components/chat/chat-input.js.map +1 -0
- package/dist/components/chat/chat-input.module.less +11 -0
- package/dist/components/chat/chat-message-template-agent.d.ts +4 -0
- package/dist/components/chat/chat-message-template-agent.d.ts.map +1 -0
- package/dist/components/chat/chat-message-template-agent.js +14 -0
- package/dist/components/chat/chat-message-template-agent.js.map +1 -0
- package/dist/components/chat/chat-message-template-user.d.ts +4 -0
- package/dist/components/chat/chat-message-template-user.d.ts.map +1 -0
- package/dist/components/chat/chat-message-template-user.js +16 -0
- package/dist/components/chat/chat-message-template-user.js.map +1 -0
- package/dist/components/chat/chat-message-typing.d.ts +3 -0
- package/dist/components/chat/chat-message-typing.d.ts.map +1 -0
- package/dist/components/chat/chat-message-typing.js +15 -0
- package/dist/components/chat/chat-message-typing.js.map +1 -0
- package/dist/components/chat/chat-message.d.ts +12 -0
- package/dist/components/chat/chat-message.d.ts.map +1 -0
- package/dist/components/chat/chat-message.js +60 -0
- package/dist/components/chat/chat-message.js.map +1 -0
- package/dist/components/chat/chat-messages.d.ts +7 -0
- package/dist/components/chat/chat-messages.d.ts.map +1 -0
- package/dist/components/chat/chat-messages.js +12 -0
- package/dist/components/chat/chat-messages.js.map +1 -0
- package/dist/components/chat/chat-notifications.d.ts +5 -0
- package/dist/components/chat/chat-notifications.d.ts.map +1 -0
- package/dist/components/chat/chat-notifications.js +12 -0
- package/dist/components/chat/chat-notifications.js.map +1 -0
- package/dist/components/chat/chat-timer.d.ts +3 -0
- package/dist/components/chat/chat-timer.d.ts.map +1 -0
- package/dist/components/chat/chat-timer.js +18 -0
- package/dist/components/chat/chat-timer.js.map +1 -0
- package/dist/components/chat/chat-timer.module.less +5 -0
- package/dist/components/chat/chat.d.ts +8 -0
- package/dist/components/chat/chat.d.ts.map +1 -0
- package/dist/components/chat/chat.js +28 -0
- package/dist/components/chat/chat.js.map +1 -0
- package/dist/components/common/multiline-text.d.ts +8 -0
- package/dist/components/common/multiline-text.d.ts.map +1 -0
- package/dist/components/common/multiline-text.js +12 -0
- package/dist/components/common/multiline-text.js.map +1 -0
- package/dist/components/common/multiline-text.module.less +9 -0
- package/dist/components/message-content/message-content-file.d.ts +8 -0
- package/dist/components/message-content/message-content-file.d.ts.map +1 -0
- package/dist/components/message-content/message-content-file.js +11 -0
- package/dist/components/message-content/message-content-file.js.map +1 -0
- package/dist/components/message-content/message-content-text.d.ts +8 -0
- package/dist/components/message-content/message-content-text.d.ts.map +1 -0
- package/dist/components/message-content/message-content-text.js +7 -0
- package/dist/components/message-content/message-content-text.js.map +1 -0
- package/dist/components/messages/__tests-cy__/message-agent.test.d.ts +2 -0
- package/dist/components/messages/__tests-cy__/message-agent.test.d.ts.map +1 -0
- package/dist/components/messages/__tests-cy__/message-agent.test.js +89 -0
- package/dist/components/messages/__tests-cy__/message-agent.test.js.map +1 -0
- package/dist/components/messages/__tests-cy__/message-system.test.d.ts +2 -0
- package/dist/components/messages/__tests-cy__/message-system.test.d.ts.map +1 -0
- package/dist/components/messages/__tests-cy__/message-system.test.js +20 -0
- package/dist/components/messages/__tests-cy__/message-system.test.js.map +1 -0
- package/dist/components/messages/__tests-cy__/message-timeout.test.d.ts +2 -0
- package/dist/components/messages/__tests-cy__/message-timeout.test.d.ts.map +1 -0
- package/dist/components/messages/__tests-cy__/message-timeout.test.js +32 -0
- package/dist/components/messages/__tests-cy__/message-timeout.test.js.map +1 -0
- package/dist/components/messages/__tests-cy__/message-typing.test.d.ts +2 -0
- package/dist/components/messages/__tests-cy__/message-typing.test.d.ts.map +1 -0
- package/dist/components/messages/__tests-cy__/message-typing.test.js +49 -0
- package/dist/components/messages/__tests-cy__/message-typing.test.js.map +1 -0
- package/dist/components/messages/__tests-cy__/message-user.test.d.ts +2 -0
- package/dist/components/messages/__tests-cy__/message-user.test.d.ts.map +1 -0
- package/dist/components/messages/__tests-cy__/message-user.test.js +33 -0
- package/dist/components/messages/__tests-cy__/message-user.test.js.map +1 -0
- package/dist/components/messages/message-agent.d.ts +12 -0
- package/dist/components/messages/message-agent.d.ts.map +1 -0
- package/dist/components/messages/message-agent.js +18 -0
- package/dist/components/messages/message-agent.js.map +1 -0
- package/dist/components/messages/message-agent.module.less +59 -0
- package/dist/components/messages/message-avatar.d.ts +9 -0
- package/dist/components/messages/message-avatar.d.ts.map +1 -0
- package/dist/components/messages/message-avatar.js +14 -0
- package/dist/components/messages/message-avatar.js.map +1 -0
- package/dist/components/messages/message-avatar.module.less +26 -0
- package/dist/components/messages/message-footer.d.ts +7 -0
- package/dist/components/messages/message-footer.d.ts.map +1 -0
- package/dist/components/messages/message-footer.js +7 -0
- package/dist/components/messages/message-footer.js.map +1 -0
- package/dist/components/messages/message-system.d.ts +8 -0
- package/dist/components/messages/message-system.d.ts.map +1 -0
- package/dist/components/messages/message-system.js +12 -0
- package/dist/components/messages/message-system.js.map +1 -0
- package/dist/components/messages/message-system.module.less +26 -0
- package/dist/components/messages/message-timeout.d.ts +8 -0
- package/dist/components/messages/message-timeout.d.ts.map +1 -0
- package/dist/components/messages/message-timeout.js +16 -0
- package/dist/components/messages/message-timeout.js.map +1 -0
- package/dist/components/messages/message-typing.d.ts +8 -0
- package/dist/components/messages/message-typing.d.ts.map +1 -0
- package/dist/components/messages/message-typing.js +10 -0
- package/dist/components/messages/message-typing.js.map +1 -0
- package/dist/components/messages/message-typing.module.less +40 -0
- package/dist/components/messages/message-user.d.ts +9 -0
- package/dist/components/messages/message-user.d.ts.map +1 -0
- package/dist/components/messages/message-user.js +13 -0
- package/dist/components/messages/message-user.js.map +1 -0
- package/dist/components/messages/message-user.module.less +35 -0
- package/dist/components/messages/use-avatar-props.d.ts +4 -0
- package/dist/components/messages/use-avatar-props.d.ts.map +1 -0
- package/dist/components/messages/use-avatar-props.js +12 -0
- package/dist/components/messages/use-avatar-props.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/models/chat-customizations.d.ts +29 -0
- package/dist/models/chat-customizations.d.ts.map +1 -0
- package/dist/models/chat-customizations.js +2 -0
- package/dist/models/chat-customizations.js.map +1 -0
- package/dist/models/component.d.ts +4 -0
- package/dist/models/component.d.ts.map +1 -0
- package/dist/models/component.js +2 -0
- package/dist/models/component.js.map +1 -0
- package/dist/models/index.d.ts +3 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +3 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/support-chat.d.ts +66 -0
- package/dist/models/support-chat.d.ts.map +1 -0
- package/dist/models/support-chat.js +28 -0
- package/dist/models/support-chat.js.map +1 -0
- package/dist/stores/__mocks-cy__/chat-ui.store.mock.d.ts +65 -0
- package/dist/stores/__mocks-cy__/chat-ui.store.mock.d.ts.map +1 -0
- package/dist/stores/__mocks-cy__/chat-ui.store.mock.js +268 -0
- package/dist/stores/__mocks-cy__/chat-ui.store.mock.js.map +1 -0
- package/dist/stores/chat-input.store.d.ts +10 -0
- package/dist/stores/chat-input.store.d.ts.map +1 -0
- package/dist/stores/chat-input.store.js +46 -0
- package/dist/stores/chat-input.store.js.map +1 -0
- package/dist/stores/chat-ui-backend-echo.store.d.ts +13 -0
- package/dist/stores/chat-ui-backend-echo.store.d.ts.map +1 -0
- package/dist/stores/chat-ui-backend-echo.store.js +111 -0
- package/dist/stores/chat-ui-backend-echo.store.js.map +1 -0
- package/dist/stores/chat-ui-backend.store.d.ts +6 -0
- package/dist/stores/chat-ui-backend.store.d.ts.map +1 -0
- package/dist/stores/chat-ui-backend.store.js +3 -0
- package/dist/stores/chat-ui-backend.store.js.map +1 -0
- package/dist/stores/chat-ui.store.d.ts +142 -0
- package/dist/stores/chat-ui.store.d.ts.map +1 -0
- package/dist/stores/chat-ui.store.js +679 -0
- package/dist/stores/chat-ui.store.js.map +1 -0
- package/dist/stores/index.d.ts +3 -0
- package/dist/stores/index.d.ts.map +1 -0
- package/dist/stores/index.js +3 -0
- package/dist/stores/index.js.map +1 -0
- package/dist/utils/text-utils.d.ts +11 -0
- package/dist/utils/text-utils.d.ts.map +1 -0
- package/dist/utils/text-utils.js +82 -0
- package/dist/utils/text-utils.js.map +1 -0
- package/package.json +52 -0
- package/src/assets/floating-chat-avatar.svg +16 -0
- package/src/components/chat/__tests-cy__/chat-messages.test.tsx +36 -0
- package/src/components/chat/__tests-cy__/chat.test.tsx +156 -0
- package/src/components/chat/chat-connecting.tsx +23 -0
- package/src/components/chat/chat-error.module.less +6 -0
- package/src/components/chat/chat-error.module.less.d.ts +3 -0
- package/src/components/chat/chat-error.tsx +39 -0
- package/src/components/chat/chat-input-file.tsx +68 -0
- package/src/components/chat/chat-input.module.less +11 -0
- package/src/components/chat/chat-input.module.less.d.ts +3 -0
- package/src/components/chat/chat-input.tsx +143 -0
- package/src/components/chat/chat-message-template-agent.tsx +26 -0
- package/src/components/chat/chat-message-template-user.tsx +46 -0
- package/src/components/chat/chat-message-typing.tsx +19 -0
- package/src/components/chat/chat-message.tsx +78 -0
- package/src/components/chat/chat-messages.tsx +23 -0
- package/src/components/chat/chat-notifications.tsx +19 -0
- package/src/components/chat/chat-timer.module.less +5 -0
- package/src/components/chat/chat-timer.module.less.d.ts +3 -0
- package/src/components/chat/chat-timer.tsx +35 -0
- package/src/components/chat/chat.tsx +55 -0
- package/src/components/common/multiline-text.module.less +9 -0
- package/src/components/common/multiline-text.module.less.d.ts +3 -0
- package/src/components/common/multiline-text.tsx +30 -0
- package/src/components/message-content/message-content-file.tsx +27 -0
- package/src/components/message-content/message-content-text.tsx +12 -0
- package/src/components/messages/__tests-cy__/message-agent.test.tsx +155 -0
- package/src/components/messages/__tests-cy__/message-system.test.tsx +33 -0
- package/src/components/messages/__tests-cy__/message-timeout.test.tsx +38 -0
- package/src/components/messages/__tests-cy__/message-typing.test.tsx +58 -0
- package/src/components/messages/__tests-cy__/message-user.test.tsx +52 -0
- package/src/components/messages/message-agent.module.less +59 -0
- package/src/components/messages/message-agent.module.less.d.ts +9 -0
- package/src/components/messages/message-agent.tsx +62 -0
- package/src/components/messages/message-avatar.module.less +26 -0
- package/src/components/messages/message-avatar.module.less.d.ts +5 -0
- package/src/components/messages/message-avatar.tsx +33 -0
- package/src/components/messages/message-footer.tsx +17 -0
- package/src/components/messages/message-system.module.less +26 -0
- package/src/components/messages/message-system.module.less.d.ts +5 -0
- package/src/components/messages/message-system.tsx +35 -0
- package/src/components/messages/message-timeout.tsx +42 -0
- package/src/components/messages/message-typing.module.less +40 -0
- package/src/components/messages/message-typing.module.less.d.ts +5 -0
- package/src/components/messages/message-typing.tsx +25 -0
- package/src/components/messages/message-user.module.less +35 -0
- package/src/components/messages/message-user.module.less.d.ts +7 -0
- package/src/components/messages/message-user.tsx +49 -0
- package/src/components/messages/use-avatar-props.tsx +17 -0
- package/src/cypress.d.ts +10 -0
- package/src/index.ts +11 -0
- package/src/models/chat-customizations.ts +34 -0
- package/src/models/component.ts +3 -0
- package/src/models/index.ts +2 -0
- package/src/models/support-chat.ts +84 -0
- package/src/stores/__mocks-cy__/chat-ui.store.mock.ts +105 -0
- package/src/stores/chat-input.store.ts +25 -0
- package/src/stores/chat-ui-backend-echo.store.ts +94 -0
- package/src/stores/chat-ui-backend.store.ts +10 -0
- package/src/stores/chat-ui.store.ts +537 -0
- package/src/stores/index.ts +10 -0
- package/src/utils/text-utils.ts +93 -0
- package/tsconfig.json +15 -0
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export interface ChatTimer {
|
|
2
|
+
secondsLeft: number;
|
|
3
|
+
secondsTotal: number;
|
|
4
|
+
}
|
|
5
|
+
export declare enum ChatMessageState {
|
|
6
|
+
Delivering = "Delivering",
|
|
7
|
+
Delivered = "Delivered",
|
|
8
|
+
Failed = "Failed"
|
|
9
|
+
}
|
|
10
|
+
export declare enum ChatEndReason {
|
|
11
|
+
ByUser = "ByUser",
|
|
12
|
+
ByAgent = "ByAgent",
|
|
13
|
+
ByTimeout = "ByTimeout",
|
|
14
|
+
ByFailedToStart = "ByFailedToStart"
|
|
15
|
+
}
|
|
16
|
+
export declare enum ChatParticipantIcon {
|
|
17
|
+
Empty = "empty",
|
|
18
|
+
Initials = "initials",
|
|
19
|
+
Bot = "bot"
|
|
20
|
+
}
|
|
21
|
+
export interface ChatParticipantModel {
|
|
22
|
+
isAgent: boolean;
|
|
23
|
+
name: string;
|
|
24
|
+
icon: ChatParticipantIcon;
|
|
25
|
+
}
|
|
26
|
+
export type ChatMessageModelType = 'welcome' | 'message' | 'timeout' | 'file' | 'askSupport' | 'askSupportButtons';
|
|
27
|
+
export interface ChatConfiguration {
|
|
28
|
+
agentName?: string;
|
|
29
|
+
agentIcon?: ChatParticipantIcon;
|
|
30
|
+
}
|
|
31
|
+
export interface ChatMessageModelBase {
|
|
32
|
+
id: string;
|
|
33
|
+
timestamp: Date;
|
|
34
|
+
type: ChatMessageModelType;
|
|
35
|
+
participant: ChatParticipantModel;
|
|
36
|
+
state: ChatMessageState;
|
|
37
|
+
data?: any;
|
|
38
|
+
}
|
|
39
|
+
export interface ChatMessageModelTimeout extends ChatMessageModelBase {
|
|
40
|
+
type: 'timeout';
|
|
41
|
+
}
|
|
42
|
+
export interface ChatMessageModelText extends ChatMessageModelBase {
|
|
43
|
+
type: 'message';
|
|
44
|
+
message: string;
|
|
45
|
+
}
|
|
46
|
+
export interface ChatMessageModelWelcome extends ChatMessageModelBase {
|
|
47
|
+
type: 'welcome';
|
|
48
|
+
message: string;
|
|
49
|
+
}
|
|
50
|
+
export interface ChatMessageModelFile extends ChatMessageModelBase {
|
|
51
|
+
type: 'file';
|
|
52
|
+
fileName: string;
|
|
53
|
+
}
|
|
54
|
+
export interface ChatUiStateError {
|
|
55
|
+
title: string;
|
|
56
|
+
message: string;
|
|
57
|
+
isRecoverable?: boolean;
|
|
58
|
+
}
|
|
59
|
+
export declare enum ChatRunState {
|
|
60
|
+
Offline = 0,
|
|
61
|
+
Initializing = 1,
|
|
62
|
+
Started = 2,
|
|
63
|
+
Ended = 3,
|
|
64
|
+
Error = 4
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=support-chat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support-chat.d.ts","sourceRoot":"","sources":["../../src/models/support-chat.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,oBAAY,gBAAgB;IACxB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,MAAM,WAAW;CACpB;AAED,oBAAY,aAAa;IACrB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,eAAe,oBAAoB;CACtC;AAED,oBAAY,mBAAmB;IAC3B,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,GAAG,QAAQ;CACd;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,MAAM,oBAAoB,GAC1B,SAAS,GACT,SAAS,GACT,SAAS,GACT,MAAM,GACN,YAAY,GACZ,mBAAmB,CAAC;AAE1B,MAAM,WAAW,iBAAiB;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,WAAW,EAAE,oBAAoB,CAAC;IAClC,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,CAAC,EAAE,GAAG,CAAC;CACd;AAED,MAAM,WAAW,uBAAwB,SAAQ,oBAAoB;IACjE,IAAI,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAC9D,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAwB,SAAQ,oBAAoB;IACjE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,oBAAY,YAAY;IACpB,OAAO,IAAI;IACX,YAAY,IAAI;IAChB,OAAO,IAAI;IACX,KAAK,IAAI;IACT,KAAK,IAAI;CACZ"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export var ChatMessageState;
|
|
2
|
+
(function (ChatMessageState) {
|
|
3
|
+
ChatMessageState["Delivering"] = "Delivering";
|
|
4
|
+
ChatMessageState["Delivered"] = "Delivered";
|
|
5
|
+
ChatMessageState["Failed"] = "Failed";
|
|
6
|
+
})(ChatMessageState || (ChatMessageState = {}));
|
|
7
|
+
export var ChatEndReason;
|
|
8
|
+
(function (ChatEndReason) {
|
|
9
|
+
ChatEndReason["ByUser"] = "ByUser";
|
|
10
|
+
ChatEndReason["ByAgent"] = "ByAgent";
|
|
11
|
+
ChatEndReason["ByTimeout"] = "ByTimeout";
|
|
12
|
+
ChatEndReason["ByFailedToStart"] = "ByFailedToStart";
|
|
13
|
+
})(ChatEndReason || (ChatEndReason = {}));
|
|
14
|
+
export var ChatParticipantIcon;
|
|
15
|
+
(function (ChatParticipantIcon) {
|
|
16
|
+
ChatParticipantIcon["Empty"] = "empty";
|
|
17
|
+
ChatParticipantIcon["Initials"] = "initials";
|
|
18
|
+
ChatParticipantIcon["Bot"] = "bot";
|
|
19
|
+
})(ChatParticipantIcon || (ChatParticipantIcon = {}));
|
|
20
|
+
export var ChatRunState;
|
|
21
|
+
(function (ChatRunState) {
|
|
22
|
+
ChatRunState[ChatRunState["Offline"] = 0] = "Offline";
|
|
23
|
+
ChatRunState[ChatRunState["Initializing"] = 1] = "Initializing";
|
|
24
|
+
ChatRunState[ChatRunState["Started"] = 2] = "Started";
|
|
25
|
+
ChatRunState[ChatRunState["Ended"] = 3] = "Ended";
|
|
26
|
+
ChatRunState[ChatRunState["Error"] = 4] = "Error";
|
|
27
|
+
})(ChatRunState || (ChatRunState = {}));
|
|
28
|
+
//# sourceMappingURL=support-chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support-chat.js","sourceRoot":"","sources":["../../src/models/support-chat.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IACxB,6CAAyB,CAAA;IACzB,2CAAuB,CAAA;IACvB,qCAAiB,CAAA;AACrB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAED,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACrB,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;IACnB,wCAAuB,CAAA;IACvB,oDAAmC,CAAA;AACvC,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB;AAED,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC3B,sCAAe,CAAA;IACf,4CAAqB,CAAA;IACrB,kCAAW,CAAA;AACf,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B;AAuDD,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACpB,qDAAW,CAAA;IACX,+DAAgB,CAAA;IAChB,qDAAW,CAAA;IACX,iDAAS,CAAA;IACT,iDAAS,CAAA;AACb,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { FileDescriptor } from '@servicetitan/form';
|
|
2
|
+
import { ChatConfiguration, ChatCustomizations, ChatMessageModelBase, ChatMessageState, ChatParticipantIcon, ChatRunState, ChatTimer } from '../../models';
|
|
3
|
+
import { ChatUiEventListener, IChatUiStore, symbolAgent, symbolUser } from '../chat-ui.store';
|
|
4
|
+
export declare class ChatUiStoreMock implements IChatUiStore {
|
|
5
|
+
scrollCounter: number;
|
|
6
|
+
isFilePickerEnabled: boolean;
|
|
7
|
+
isStarting: boolean;
|
|
8
|
+
isStarted: boolean;
|
|
9
|
+
isAgentTyping: boolean;
|
|
10
|
+
status: ChatRunState;
|
|
11
|
+
file: undefined;
|
|
12
|
+
participants: {
|
|
13
|
+
[symbolAgent]: {
|
|
14
|
+
isAgent: boolean;
|
|
15
|
+
name: string;
|
|
16
|
+
icon: ChatParticipantIcon;
|
|
17
|
+
};
|
|
18
|
+
[symbolUser]: {
|
|
19
|
+
isAgent: boolean;
|
|
20
|
+
name: string;
|
|
21
|
+
icon: ChatParticipantIcon;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
get user(): {
|
|
25
|
+
isAgent: boolean;
|
|
26
|
+
name: string;
|
|
27
|
+
icon: ChatParticipantIcon;
|
|
28
|
+
};
|
|
29
|
+
get agent(): {
|
|
30
|
+
isAgent: boolean;
|
|
31
|
+
name: string;
|
|
32
|
+
icon: ChatParticipantIcon;
|
|
33
|
+
};
|
|
34
|
+
get isEnded(): boolean;
|
|
35
|
+
get isError(): boolean;
|
|
36
|
+
get customizations(): ChatCustomizations;
|
|
37
|
+
messages: ChatMessageModelBase[];
|
|
38
|
+
sendMessageRetry: (message: ChatMessageModelBase) => Promise<void>;
|
|
39
|
+
sendMessageText: (message: string) => Promise<void>;
|
|
40
|
+
setFile: (file: FileDescriptor | undefined) => void;
|
|
41
|
+
triggerScroll: () => void;
|
|
42
|
+
addMessage: (isAgent: boolean, message: string, data?: any) => void;
|
|
43
|
+
off: <T>(event: string, listener: ChatUiEventListener<T>) => void;
|
|
44
|
+
on: <T>(event: string, listener: ChatUiEventListener<T>) => void;
|
|
45
|
+
resetError: (runState: ChatRunState) => void;
|
|
46
|
+
setAgentTyping: (typing: boolean) => void;
|
|
47
|
+
setError: (errorTitle: string, errorMessage: string, isRecoverableError?: boolean) => void;
|
|
48
|
+
setFilePickerEnabled: (isEnabled: boolean) => void;
|
|
49
|
+
setMessageState: (message: ChatMessageModelBase, state: ChatMessageState, data?: any) => void;
|
|
50
|
+
addMessageWelcome: (message: string) => void;
|
|
51
|
+
setCustomizationContext: (customizationContext?: ChatCustomizations) => void;
|
|
52
|
+
chasitorTyping: (isTyping: boolean) => Promise<void>;
|
|
53
|
+
configure: (configuration?: ChatConfiguration) => void;
|
|
54
|
+
run: (configuration?: ChatConfiguration, data?: unknown) => Promise<void>;
|
|
55
|
+
recover: () => Promise<void>;
|
|
56
|
+
destroy: () => Promise<void>;
|
|
57
|
+
setAgentIcon: (icon: ChatParticipantIcon) => void;
|
|
58
|
+
setAgentName: (name: string) => void;
|
|
59
|
+
setIncomingSound: (soundUrl: string) => void;
|
|
60
|
+
setMessages: (messages: ChatMessageModelBase[]) => void;
|
|
61
|
+
setStatus: (status: ChatRunState) => void;
|
|
62
|
+
setTimer: (timer?: ChatTimer) => void;
|
|
63
|
+
restartTimers: () => Promise<void>;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=chat-ui.store.mock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-ui.store.mock.d.ts","sourceRoot":"","sources":["../../../src/stores/__mocks-cy__/chat-ui.store.mock.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import { ChatMessageState, ChatParticipantIcon, ChatRunState, } from '../../models';
|
|
2
|
+
import { symbolAgent, symbolUser } from '../chat-ui.store';
|
|
3
|
+
export class ChatUiStoreMock {
|
|
4
|
+
constructor() {
|
|
5
|
+
Object.defineProperty(this, "scrollCounter", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
configurable: true,
|
|
8
|
+
writable: true,
|
|
9
|
+
value: 0
|
|
10
|
+
});
|
|
11
|
+
Object.defineProperty(this, "isFilePickerEnabled", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
configurable: true,
|
|
14
|
+
writable: true,
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(this, "isStarting", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
configurable: true,
|
|
20
|
+
writable: true,
|
|
21
|
+
value: false
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(this, "isStarted", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
configurable: true,
|
|
26
|
+
writable: true,
|
|
27
|
+
value: true
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(this, "isAgentTyping", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
configurable: true,
|
|
32
|
+
writable: true,
|
|
33
|
+
value: false
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(this, "status", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
configurable: true,
|
|
38
|
+
writable: true,
|
|
39
|
+
value: ChatRunState.Started
|
|
40
|
+
});
|
|
41
|
+
Object.defineProperty(this, "file", {
|
|
42
|
+
enumerable: true,
|
|
43
|
+
configurable: true,
|
|
44
|
+
writable: true,
|
|
45
|
+
value: undefined
|
|
46
|
+
});
|
|
47
|
+
Object.defineProperty(this, "participants", {
|
|
48
|
+
enumerable: true,
|
|
49
|
+
configurable: true,
|
|
50
|
+
writable: true,
|
|
51
|
+
value: {
|
|
52
|
+
[symbolAgent]: {
|
|
53
|
+
isAgent: true,
|
|
54
|
+
name: 'Agent',
|
|
55
|
+
icon: ChatParticipantIcon.Bot,
|
|
56
|
+
},
|
|
57
|
+
[symbolUser]: {
|
|
58
|
+
isAgent: false,
|
|
59
|
+
name: 'User',
|
|
60
|
+
icon: ChatParticipantIcon.Initials,
|
|
61
|
+
},
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
Object.defineProperty(this, "messages", {
|
|
65
|
+
enumerable: true,
|
|
66
|
+
configurable: true,
|
|
67
|
+
writable: true,
|
|
68
|
+
value: [
|
|
69
|
+
{
|
|
70
|
+
type: 'welcome',
|
|
71
|
+
id: 'messageid',
|
|
72
|
+
state: ChatMessageState.Delivered,
|
|
73
|
+
timestamp: new Date(),
|
|
74
|
+
message: 'Hi there! I’m ServiceTitan Bot, a chatbot powered by Titan Intelligence designed to answer your questions about using ServiceTitan. I’m here to help you, but I’m still learning, so I might not have all the answers yet. Do you have a question?',
|
|
75
|
+
participant: {
|
|
76
|
+
isAgent: true,
|
|
77
|
+
name: 'Agent',
|
|
78
|
+
icon: ChatParticipantIcon.Bot,
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
type: 'message',
|
|
83
|
+
id: 'messageid2',
|
|
84
|
+
state: ChatMessageState.Delivered,
|
|
85
|
+
timestamp: new Date(),
|
|
86
|
+
message: 'How to create a form?',
|
|
87
|
+
participant: {
|
|
88
|
+
isAgent: false,
|
|
89
|
+
name: 'User',
|
|
90
|
+
icon: ChatParticipantIcon.Initials,
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
]
|
|
94
|
+
});
|
|
95
|
+
Object.defineProperty(this, "sendMessageRetry", {
|
|
96
|
+
enumerable: true,
|
|
97
|
+
configurable: true,
|
|
98
|
+
writable: true,
|
|
99
|
+
value: cy.stub()
|
|
100
|
+
});
|
|
101
|
+
Object.defineProperty(this, "sendMessageText", {
|
|
102
|
+
enumerable: true,
|
|
103
|
+
configurable: true,
|
|
104
|
+
writable: true,
|
|
105
|
+
value: cy.stub()
|
|
106
|
+
});
|
|
107
|
+
Object.defineProperty(this, "setFile", {
|
|
108
|
+
enumerable: true,
|
|
109
|
+
configurable: true,
|
|
110
|
+
writable: true,
|
|
111
|
+
value: cy.stub()
|
|
112
|
+
});
|
|
113
|
+
Object.defineProperty(this, "triggerScroll", {
|
|
114
|
+
enumerable: true,
|
|
115
|
+
configurable: true,
|
|
116
|
+
writable: true,
|
|
117
|
+
value: cy.stub()
|
|
118
|
+
});
|
|
119
|
+
Object.defineProperty(this, "addMessage", {
|
|
120
|
+
enumerable: true,
|
|
121
|
+
configurable: true,
|
|
122
|
+
writable: true,
|
|
123
|
+
value: cy.stub()
|
|
124
|
+
});
|
|
125
|
+
Object.defineProperty(this, "off", {
|
|
126
|
+
enumerable: true,
|
|
127
|
+
configurable: true,
|
|
128
|
+
writable: true,
|
|
129
|
+
value: cy.stub()
|
|
130
|
+
});
|
|
131
|
+
Object.defineProperty(this, "on", {
|
|
132
|
+
enumerable: true,
|
|
133
|
+
configurable: true,
|
|
134
|
+
writable: true,
|
|
135
|
+
value: cy.stub()
|
|
136
|
+
});
|
|
137
|
+
Object.defineProperty(this, "resetError", {
|
|
138
|
+
enumerable: true,
|
|
139
|
+
configurable: true,
|
|
140
|
+
writable: true,
|
|
141
|
+
value: cy.stub()
|
|
142
|
+
});
|
|
143
|
+
Object.defineProperty(this, "setAgentTyping", {
|
|
144
|
+
enumerable: true,
|
|
145
|
+
configurable: true,
|
|
146
|
+
writable: true,
|
|
147
|
+
value: cy.stub()
|
|
148
|
+
});
|
|
149
|
+
Object.defineProperty(this, "setError", {
|
|
150
|
+
enumerable: true,
|
|
151
|
+
configurable: true,
|
|
152
|
+
writable: true,
|
|
153
|
+
value: cy.stub()
|
|
154
|
+
});
|
|
155
|
+
Object.defineProperty(this, "setFilePickerEnabled", {
|
|
156
|
+
enumerable: true,
|
|
157
|
+
configurable: true,
|
|
158
|
+
writable: true,
|
|
159
|
+
value: cy.stub()
|
|
160
|
+
});
|
|
161
|
+
Object.defineProperty(this, "setMessageState", {
|
|
162
|
+
enumerable: true,
|
|
163
|
+
configurable: true,
|
|
164
|
+
writable: true,
|
|
165
|
+
value: cy.stub()
|
|
166
|
+
});
|
|
167
|
+
Object.defineProperty(this, "addMessageWelcome", {
|
|
168
|
+
enumerable: true,
|
|
169
|
+
configurable: true,
|
|
170
|
+
writable: true,
|
|
171
|
+
value: cy.stub()
|
|
172
|
+
});
|
|
173
|
+
Object.defineProperty(this, "setCustomizationContext", {
|
|
174
|
+
enumerable: true,
|
|
175
|
+
configurable: true,
|
|
176
|
+
writable: true,
|
|
177
|
+
value: cy.stub()
|
|
178
|
+
});
|
|
179
|
+
Object.defineProperty(this, "chasitorTyping", {
|
|
180
|
+
enumerable: true,
|
|
181
|
+
configurable: true,
|
|
182
|
+
writable: true,
|
|
183
|
+
value: cy.stub()
|
|
184
|
+
});
|
|
185
|
+
Object.defineProperty(this, "configure", {
|
|
186
|
+
enumerable: true,
|
|
187
|
+
configurable: true,
|
|
188
|
+
writable: true,
|
|
189
|
+
value: cy.stub()
|
|
190
|
+
});
|
|
191
|
+
Object.defineProperty(this, "run", {
|
|
192
|
+
enumerable: true,
|
|
193
|
+
configurable: true,
|
|
194
|
+
writable: true,
|
|
195
|
+
value: cy.stub()
|
|
196
|
+
});
|
|
197
|
+
Object.defineProperty(this, "recover", {
|
|
198
|
+
enumerable: true,
|
|
199
|
+
configurable: true,
|
|
200
|
+
writable: true,
|
|
201
|
+
value: cy.stub()
|
|
202
|
+
});
|
|
203
|
+
Object.defineProperty(this, "destroy", {
|
|
204
|
+
enumerable: true,
|
|
205
|
+
configurable: true,
|
|
206
|
+
writable: true,
|
|
207
|
+
value: cy.stub()
|
|
208
|
+
});
|
|
209
|
+
Object.defineProperty(this, "setAgentIcon", {
|
|
210
|
+
enumerable: true,
|
|
211
|
+
configurable: true,
|
|
212
|
+
writable: true,
|
|
213
|
+
value: cy.stub()
|
|
214
|
+
});
|
|
215
|
+
Object.defineProperty(this, "setAgentName", {
|
|
216
|
+
enumerable: true,
|
|
217
|
+
configurable: true,
|
|
218
|
+
writable: true,
|
|
219
|
+
value: cy.stub()
|
|
220
|
+
});
|
|
221
|
+
Object.defineProperty(this, "setIncomingSound", {
|
|
222
|
+
enumerable: true,
|
|
223
|
+
configurable: true,
|
|
224
|
+
writable: true,
|
|
225
|
+
value: cy.stub()
|
|
226
|
+
});
|
|
227
|
+
Object.defineProperty(this, "setMessages", {
|
|
228
|
+
enumerable: true,
|
|
229
|
+
configurable: true,
|
|
230
|
+
writable: true,
|
|
231
|
+
value: cy.stub()
|
|
232
|
+
});
|
|
233
|
+
Object.defineProperty(this, "setStatus", {
|
|
234
|
+
enumerable: true,
|
|
235
|
+
configurable: true,
|
|
236
|
+
writable: true,
|
|
237
|
+
value: cy.stub()
|
|
238
|
+
});
|
|
239
|
+
Object.defineProperty(this, "setTimer", {
|
|
240
|
+
enumerable: true,
|
|
241
|
+
configurable: true,
|
|
242
|
+
writable: true,
|
|
243
|
+
value: cy.stub()
|
|
244
|
+
});
|
|
245
|
+
Object.defineProperty(this, "restartTimers", {
|
|
246
|
+
enumerable: true,
|
|
247
|
+
configurable: true,
|
|
248
|
+
writable: true,
|
|
249
|
+
value: cy.stub()
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
get user() {
|
|
253
|
+
return this.participants[symbolUser];
|
|
254
|
+
}
|
|
255
|
+
get agent() {
|
|
256
|
+
return this.participants[symbolAgent];
|
|
257
|
+
}
|
|
258
|
+
get isEnded() {
|
|
259
|
+
return false;
|
|
260
|
+
}
|
|
261
|
+
get isError() {
|
|
262
|
+
return false;
|
|
263
|
+
}
|
|
264
|
+
get customizations() {
|
|
265
|
+
return {};
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=chat-ui.store.mock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-ui.store.mock.js","sourceRoot":"","sources":["../../../src/stores/__mocks-cy__/chat-ui.store.mock.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TextAreaFieldState } from '@servicetitan/form';
|
|
2
|
+
import { FormState } from 'formstate';
|
|
3
|
+
export declare class ChatInputStore {
|
|
4
|
+
formState: FormState<{
|
|
5
|
+
message: TextAreaFieldState<string>;
|
|
6
|
+
}>;
|
|
7
|
+
get isEmpty(): boolean;
|
|
8
|
+
constructor();
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=chat-input.store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-input.store.d.ts","sourceRoot":"","sources":["../../src/stores/chat-input.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,qBACa,cAAc;IAEvB,SAAS;;OAMN;IAEH,IACI,OAAO,YAEV;;CAKJ"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { TextAreaFieldState } from '@servicetitan/form';
|
|
11
|
+
import { injectable } from '@servicetitan/react-ioc';
|
|
12
|
+
import { FormState } from 'formstate';
|
|
13
|
+
import { computed, makeObservable, observable } from 'mobx';
|
|
14
|
+
let ChatInputStore = class ChatInputStore {
|
|
15
|
+
get isEmpty() {
|
|
16
|
+
return !this.formState.$.message.value;
|
|
17
|
+
}
|
|
18
|
+
constructor() {
|
|
19
|
+
Object.defineProperty(this, "formState", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
configurable: true,
|
|
22
|
+
writable: true,
|
|
23
|
+
value: new FormState({
|
|
24
|
+
message: new TextAreaFieldState('')
|
|
25
|
+
.validators((text) => text.length > 6000 ? 'Message character max is 6000.' : false)
|
|
26
|
+
.disableAutoValidation(),
|
|
27
|
+
})
|
|
28
|
+
});
|
|
29
|
+
makeObservable(this);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
__decorate([
|
|
33
|
+
observable,
|
|
34
|
+
__metadata("design:type", Object)
|
|
35
|
+
], ChatInputStore.prototype, "formState", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
computed,
|
|
38
|
+
__metadata("design:type", Object),
|
|
39
|
+
__metadata("design:paramtypes", [])
|
|
40
|
+
], ChatInputStore.prototype, "isEmpty", null);
|
|
41
|
+
ChatInputStore = __decorate([
|
|
42
|
+
injectable(),
|
|
43
|
+
__metadata("design:paramtypes", [])
|
|
44
|
+
], ChatInputStore);
|
|
45
|
+
export { ChatInputStore };
|
|
46
|
+
//# sourceMappingURL=chat-input.store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-input.store.js","sourceRoot":"","sources":["../../src/stores/chat-input.store.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAGrD,IAAM,cAAc,GAApB,MAAM,cAAc;IAUvB,IACI,OAAO;QACP,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3C,CAAC;IAED;QAbA;;;;mBAAY,IAAI,SAAS,CAAC;gBACtB,OAAO,EAAE,IAAI,kBAAkB,CAAC,EAAE,CAAC;qBAC9B,UAAU,CAAC,CAAC,IAAY,EAAE,EAAE,CACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,KAAK,CAChE;qBACA,qBAAqB,EAAE;aAC/B,CAAC;WAAC;QAQC,cAAc,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;CACJ,CAAA;AAhBG;IADC,UAAU;;iDAOR;AAEH;IAAC,QAAQ;;;6CAGR;AAbQ,cAAc;IAD1B,UAAU,EAAE;;GACA,cAAc,CAkB1B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IChatUiBackendStore } from './chat-ui-backend.store';
|
|
2
|
+
import { IChatUiStore } from './chat-ui.store';
|
|
3
|
+
export declare class ChatUiBackendEchoStore implements IChatUiBackendStore {
|
|
4
|
+
readonly chatUiStore: IChatUiStore;
|
|
5
|
+
constructor(chatUiStore: IChatUiStore);
|
|
6
|
+
subscribe(): void;
|
|
7
|
+
unsubscribe(): void;
|
|
8
|
+
private handleRun;
|
|
9
|
+
private handleTextMessageSend;
|
|
10
|
+
private handleMessageSendRetry;
|
|
11
|
+
private getEchoAnswer;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=chat-ui-backend-echo.store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-ui-backend-echo.store.d.ts","sourceRoot":"","sources":["../../src/stores/chat-ui-backend-echo.store.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAIH,YAAY,EACf,MAAM,iBAAiB,CAAC;AAEzB,qBACa,sBAAuB,YAAW,mBAAmB;IACrB,QAAQ,CAAC,WAAW,EAAE,YAAY;gBAAzB,WAAW,EAAE,YAAY;IAE3E,SAAS;IAMT,WAAW;IAMX,OAAO,CAAC,SAAS,CAQf;IAEF,OAAO,CAAC,qBAAqB,CAsB3B;IAEF,OAAO,CAAC,sBAAsB,CAgB5B;IAEF,OAAO,CAAC,aAAa;CAUxB"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { inject, injectable } from '@servicetitan/react-ioc';
|
|
14
|
+
import { ChatMessageState, ChatRunState, } from '../models';
|
|
15
|
+
import { CHAT_UI_STORE_TOKEN, ChatUiEvent, } from './chat-ui.store';
|
|
16
|
+
let ChatUiBackendEchoStore = class ChatUiBackendEchoStore {
|
|
17
|
+
constructor(chatUiStore) {
|
|
18
|
+
Object.defineProperty(this, "chatUiStore", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
configurable: true,
|
|
21
|
+
writable: true,
|
|
22
|
+
value: chatUiStore
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(this, "handleRun", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
configurable: true,
|
|
27
|
+
writable: true,
|
|
28
|
+
value: async (resolve, _) => {
|
|
29
|
+
this.chatUiStore.setStatus(ChatRunState.Initializing);
|
|
30
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
31
|
+
this.chatUiStore.addMessageWelcome("Hello! I'm generic echo bot. I can echo your messages. Try it out!");
|
|
32
|
+
this.chatUiStore.setStatus(ChatRunState.Started);
|
|
33
|
+
resolve();
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(this, "handleTextMessageSend", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
configurable: true,
|
|
39
|
+
writable: true,
|
|
40
|
+
value: async (resolve, _, message) => {
|
|
41
|
+
var _a;
|
|
42
|
+
const isErrorSimulated = message.message.startsWith('[Error]');
|
|
43
|
+
try {
|
|
44
|
+
this.chatUiStore.setAgentTyping(true);
|
|
45
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
46
|
+
if (isErrorSimulated) {
|
|
47
|
+
throw new Error(message.message.split('[Error]')[1]);
|
|
48
|
+
}
|
|
49
|
+
this.chatUiStore.setMessageState(message, ChatMessageState.Delivered);
|
|
50
|
+
this.chatUiStore.addMessage(true, this.getEchoAnswer(message));
|
|
51
|
+
this.chatUiStore.resetError(ChatRunState.Started);
|
|
52
|
+
resolve();
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
this.chatUiStore.setMessageState(message, ChatMessageState.Failed);
|
|
56
|
+
this.chatUiStore.setError('Failed to send message', (_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : error, false);
|
|
57
|
+
}
|
|
58
|
+
finally {
|
|
59
|
+
this.chatUiStore.setAgentTyping(false);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
Object.defineProperty(this, "handleMessageSendRetry", {
|
|
64
|
+
enumerable: true,
|
|
65
|
+
configurable: true,
|
|
66
|
+
writable: true,
|
|
67
|
+
value: async (resolve, _, message) => {
|
|
68
|
+
var _a;
|
|
69
|
+
try {
|
|
70
|
+
this.chatUiStore.setMessageState(message, ChatMessageState.Delivering);
|
|
71
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
72
|
+
this.chatUiStore.setMessageState(message, ChatMessageState.Delivered);
|
|
73
|
+
this.chatUiStore.addMessage(true, this.getEchoAnswer(message));
|
|
74
|
+
this.chatUiStore.resetError(ChatRunState.Started);
|
|
75
|
+
resolve();
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
this.chatUiStore.setMessageState(message, ChatMessageState.Failed);
|
|
79
|
+
this.chatUiStore.setError('Custom error', (_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : error, false);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
subscribe() {
|
|
85
|
+
this.chatUiStore.on(ChatUiEvent.eventRun, this.handleRun);
|
|
86
|
+
this.chatUiStore.on(ChatUiEvent.eventMessageSend, this.handleTextMessageSend);
|
|
87
|
+
this.chatUiStore.on(ChatUiEvent.eventMessageSendRetry, this.handleMessageSendRetry);
|
|
88
|
+
}
|
|
89
|
+
unsubscribe() {
|
|
90
|
+
this.chatUiStore.off(ChatUiEvent.eventRun, this.handleRun);
|
|
91
|
+
this.chatUiStore.off(ChatUiEvent.eventMessageSend, this.handleTextMessageSend);
|
|
92
|
+
this.chatUiStore.off(ChatUiEvent.eventMessageSendRetry, this.handleMessageSendRetry);
|
|
93
|
+
}
|
|
94
|
+
getEchoAnswer(message) {
|
|
95
|
+
if (message.type === 'message') {
|
|
96
|
+
let messageText = message.message;
|
|
97
|
+
if (messageText.startsWith('[Error]')) {
|
|
98
|
+
messageText = messageText.split('[Error]')[1];
|
|
99
|
+
}
|
|
100
|
+
return `Echo: ${messageText}`;
|
|
101
|
+
}
|
|
102
|
+
return `Echo bot cannot answer to message type ${message.type} yet`;
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
ChatUiBackendEchoStore = __decorate([
|
|
106
|
+
injectable(),
|
|
107
|
+
__param(0, inject(CHAT_UI_STORE_TOKEN)),
|
|
108
|
+
__metadata("design:paramtypes", [Object])
|
|
109
|
+
], ChatUiBackendEchoStore);
|
|
110
|
+
export { ChatUiBackendEchoStore };
|
|
111
|
+
//# sourceMappingURL=chat-ui-backend-echo.store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-ui-backend-echo.store.js","sourceRoot":"","sources":["../../src/stores/chat-ui-backend-echo.store.ts"],"names":[],"mappings":"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"}
|