@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,60 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { BodyText } from '@servicetitan/design-system';
|
|
3
|
+
import { useDependencies } from '@servicetitan/react-ioc';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
5
|
+
import { CHAT_UI_STORE_TOKEN } from '../../stores';
|
|
6
|
+
import { MessageContentFile } from '../message-content/message-content-file';
|
|
7
|
+
import { MessageContentText } from '../message-content/message-content-text';
|
|
8
|
+
import { ChatMessageTemplateAgent } from './chat-message-template-agent';
|
|
9
|
+
import { ChatMessageTemplateUser } from './chat-message-template-user';
|
|
10
|
+
/**
|
|
11
|
+
* ChatMessage component provides a default way to render chat messages in the chat UI and contains only most generic
|
|
12
|
+
* components and templates/customizations rendering
|
|
13
|
+
*/
|
|
14
|
+
export const ChatMessage = observer(({ message }) => {
|
|
15
|
+
const [chatUiStore] = useDependencies(CHAT_UI_STORE_TOKEN);
|
|
16
|
+
const isAgent = message.participant.isAgent;
|
|
17
|
+
const { messageTemplates, messages } = chatUiStore.customizations;
|
|
18
|
+
const messageCustomization = messages === null || messages === void 0 ? void 0 : messages.find(c => c.predicate(message));
|
|
19
|
+
const isSystem = Boolean(messageCustomization === null || messageCustomization === void 0 ? void 0 : messageCustomization.isSystem);
|
|
20
|
+
let messageContentNode;
|
|
21
|
+
if (messageCustomization) {
|
|
22
|
+
messageContentNode = _jsx(messageCustomization.component, { message: message });
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
// Default message content rendering
|
|
26
|
+
switch (message.type) {
|
|
27
|
+
case 'message':
|
|
28
|
+
case 'welcome':
|
|
29
|
+
messageContentNode = (_jsx(MessageContentText, { message: message }));
|
|
30
|
+
break;
|
|
31
|
+
case 'file':
|
|
32
|
+
messageContentNode = (_jsx(MessageContentFile, { message: message }));
|
|
33
|
+
break;
|
|
34
|
+
default: {
|
|
35
|
+
messageContentNode = _jsxs(BodyText, { children: ["Unknown message type: ", message.type] });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (!messageContentNode) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
if (isSystem) {
|
|
43
|
+
return messageContentNode;
|
|
44
|
+
}
|
|
45
|
+
let ComponentTemplate;
|
|
46
|
+
if (isAgent) {
|
|
47
|
+
const template = messageTemplates === null || messageTemplates === void 0 ? void 0 : messageTemplates.agent;
|
|
48
|
+
ComponentTemplate = (template === null || template === void 0 ? void 0 : template.predicate(message))
|
|
49
|
+
? template.component
|
|
50
|
+
: ChatMessageTemplateAgent;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
const template = messageTemplates === null || messageTemplates === void 0 ? void 0 : messageTemplates.user;
|
|
54
|
+
ComponentTemplate = (template === null || template === void 0 ? void 0 : template.predicate(message))
|
|
55
|
+
? template.component
|
|
56
|
+
: ChatMessageTemplateUser;
|
|
57
|
+
}
|
|
58
|
+
return _jsx(ComponentTemplate, { message: message, children: messageContentNode });
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=chat-message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-message.js","sourceRoot":"","sources":["../../../src/components/chat/chat-message.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-messages.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-messages.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAK3B,UAAU,kBAAkB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,kBAAkB,CAU9C,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Stack } from '@servicetitan/design-system';
|
|
3
|
+
import { useDependencies } from '@servicetitan/react-ioc';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
5
|
+
import { CHAT_UI_STORE_TOKEN } from '../../stores';
|
|
6
|
+
import { ChatMessage } from './chat-message';
|
|
7
|
+
import { ChatMessageTyping } from './chat-message-typing';
|
|
8
|
+
export const ChatMessages = observer(({ className }) => {
|
|
9
|
+
const [chatUiStore] = useDependencies(CHAT_UI_STORE_TOKEN);
|
|
10
|
+
return (_jsxs(Stack, { direction: "column", spacing: "2", className: className, "data-cy": "titan-chat-messages", children: [chatUiStore.messages.map(message => (_jsx(ChatMessage, { message: message }, message.id))), chatUiStore.isAgentTyping && _jsx(ChatMessageTyping, {})] }));
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=chat-messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-messages.js","sourceRoot":"","sources":["../../../src/components/chat/chat-messages.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAM1D,MAAM,CAAC,MAAM,YAAY,GAA2B,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;IAC3E,MAAM,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAC3D,OAAO,CACH,MAAC,KAAK,IAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,GAAG,EAAC,SAAS,EAAE,SAAS,aAAU,qBAAqB,aACpF,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CACjC,KAAC,WAAW,IAAkB,OAAO,EAAE,OAAO,IAA5B,OAAO,CAAC,EAAE,CAAsB,CACrD,CAAC,EACD,WAAW,CAAC,aAAa,IAAI,KAAC,iBAAiB,KAAG,IAC/C,CACX,CAAC;AACN,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-notifications.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-notifications.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAK3B,MAAM,WAAW,uBAAuB;CAAG;AAE3C,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,uBAAuB,CAQxD,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Stack } from '@servicetitan/design-system';
|
|
3
|
+
import { useDependencies } from '@servicetitan/react-ioc';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
5
|
+
import { CHAT_UI_STORE_TOKEN } from '../../stores';
|
|
6
|
+
import { ChatError } from './chat-error';
|
|
7
|
+
import { ChatTimer } from './chat-timer';
|
|
8
|
+
export const ChatNotifications = observer(() => {
|
|
9
|
+
const [chatUiStore] = useDependencies(CHAT_UI_STORE_TOKEN);
|
|
10
|
+
return (_jsxs(Stack, { direction: "column", spacing: "2", "data-cy": "titan-chat-notifications", children: [chatUiStore.timer && !chatUiStore.isError && _jsx(ChatTimer, {}), chatUiStore.isError && _jsx(ChatError, {})] }));
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=chat-notifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-notifications.js","sourceRoot":"","sources":["../../../src/components/chat/chat-notifications.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,MAAM,CAAC,MAAM,iBAAiB,GAAgC,QAAQ,CAAC,GAAG,EAAE;IACxE,MAAM,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAC3D,OAAO,CACH,MAAC,KAAK,IAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,GAAG,aAAS,0BAA0B,aACnE,WAAW,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,KAAC,SAAS,KAAG,EAC1D,WAAW,CAAC,OAAO,IAAI,KAAC,SAAS,KAAG,IACjC,CACX,CAAC;AACN,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-timer.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-timer.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAe,MAAM,OAAO,CAAC;AAIxC,eAAO,MAAM,SAAS,EAAE,EA2BtB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Banner, BodyText, Link } from '@servicetitan/design-system';
|
|
3
|
+
import { useDependencies } from '@servicetitan/react-ioc';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
5
|
+
import { useCallback } from 'react';
|
|
6
|
+
import { CHAT_UI_STORE_TOKEN } from '../../stores';
|
|
7
|
+
import * as Styles from './chat-timer.module.less';
|
|
8
|
+
export const ChatTimer = observer(() => {
|
|
9
|
+
var _a, _b;
|
|
10
|
+
const [chatUiStore] = useDependencies(CHAT_UI_STORE_TOKEN);
|
|
11
|
+
const secondsLeft = (_b = (_a = chatUiStore.timer) === null || _a === void 0 ? void 0 : _a.secondsLeft) !== null && _b !== void 0 ? _b : 0;
|
|
12
|
+
const restartTimers = useCallback(() => chatUiStore.restartTimers(), [chatUiStore]);
|
|
13
|
+
if (!chatUiStore.timer) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
return (_jsxs(Banner, { status: "info", title: "Chat inactive", icon: true, className: Styles.banner, "data-cy": "titan-chat-timer", children: [_jsxs(BodyText, { el: "p", children: ['Are you still there? Please respond within ', _jsxs("b", { children: [secondsLeft, "s"] }), ' or this chat will time out.'] }), _jsx(Link, { onClick: restartTimers, subdued: true, "data-cy": "titan-chat-timer-restart", children: "I'm here" })] }));
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=chat-timer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-timer.js","sourceRoot":"","sources":["../../../src/components/chat/chat-timer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAM,WAAW,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AAEnD,MAAM,CAAC,MAAM,SAAS,GAAO,QAAQ,CAAC,GAAG,EAAE;;IACvC,MAAM,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,MAAA,MAAA,WAAW,CAAC,KAAK,0CAAE,WAAW,mCAAI,CAAC,CAAC;IAExD,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAEpF,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,CACH,MAAC,MAAM,IACH,MAAM,EAAC,MAAM,EACb,KAAK,EAAC,eAAe,EACrB,IAAI,QACJ,SAAS,EAAE,MAAM,CAAC,MAAM,aAChB,kBAAkB,aAE1B,MAAC,QAAQ,IAAC,EAAE,EAAC,GAAG,aACX,6CAA6C,EAC9C,wBAAI,WAAW,SAAM,EACpB,8BAA8B,IACxB,EACX,KAAC,IAAI,IAAC,OAAO,EAAE,aAAa,EAAE,OAAO,mBAAS,0BAA0B,yBAEjE,IACF,CACZ,CAAC;AACN,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAA+B,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAQlD,MAAM,WAAW,UAAU;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACvC;AAED,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,UAAU,CAqC9B,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Stack } from '@servicetitan/design-system';
|
|
3
|
+
import { useDependencies } from '@servicetitan/react-ioc';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
5
|
+
import { Fragment, useEffect, useRef } from 'react';
|
|
6
|
+
import { CHAT_UI_STORE_TOKEN } from '../../stores';
|
|
7
|
+
import { ChatConnecting } from './chat-connecting';
|
|
8
|
+
import { ChatInput } from './chat-input';
|
|
9
|
+
import { ChatInputFile } from './chat-input-file';
|
|
10
|
+
import { ChatMessages } from './chat-messages';
|
|
11
|
+
import { ChatNotifications } from './chat-notifications';
|
|
12
|
+
export const Chat = observer(({ className, customizations }) => {
|
|
13
|
+
const scrollRef = useRef(null);
|
|
14
|
+
const [chatUiStore] = useDependencies(CHAT_UI_STORE_TOKEN);
|
|
15
|
+
const footerComponent = customizations === null || customizations === void 0 ? void 0 : customizations.footerComponent;
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
chatUiStore.setCustomizationContext(customizations);
|
|
18
|
+
}, [chatUiStore, customizations]);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
setTimeout(() => {
|
|
21
|
+
if (scrollRef.current) {
|
|
22
|
+
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
|
23
|
+
}
|
|
24
|
+
}, 0);
|
|
25
|
+
}, [chatUiStore.scrollCounter]);
|
|
26
|
+
return (_jsx(Stack, { direction: "column", className: className, "data-cy": "titan-chat", children: chatUiStore.isStarting ? (_jsx(ChatConnecting, { className: "p-3" })) : (_jsxs(Fragment, { children: [_jsx("div", { ref: scrollRef, className: "flex-grow-1 of-y-auto", children: _jsx(ChatMessages, { className: "p-3" }) }), _jsx(ChatNotifications, {}), _jsxs("div", { children: [_jsx(ChatInputFile, { className: "m-3 m-b-0 p-3 border-radius-1 border border-style-dashed" }), _jsx(ChatInput, { className: "p-x-3 p-y-2" }), Boolean(footerComponent) && footerComponent] })] })) }));
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/components/chat/chat.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAM,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAOzD,MAAM,CAAC,MAAM,IAAI,GAAmB,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,EAAE;IAC3E,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAE3D,MAAM,eAAe,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,eAAe,CAAC;IAExD,SAAS,CAAC,GAAG,EAAE;QACX,WAAW,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACxD,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAElC,SAAS,CAAC,GAAG,EAAE;QACX,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACpB,SAAS,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC;YACjE,CAAC;QACL,CAAC,EAAE,CAAC,CAAC,CAAC;IACV,CAAC,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;IAEhC,OAAO,CACH,KAAC,KAAK,IAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAE,SAAS,aAAU,YAAY,YAC/D,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CACtB,KAAC,cAAc,IAAC,SAAS,EAAC,KAAK,GAAG,CACrC,CAAC,CAAC,CAAC,CACA,MAAC,QAAQ,eACL,cAAK,GAAG,EAAE,SAAS,EAAE,SAAS,EAAC,uBAAuB,YAClD,KAAC,YAAY,IAAC,SAAS,EAAC,KAAK,GAAG,GAC9B,EACN,KAAC,iBAAiB,KAAG,EACrB,0BACI,KAAC,aAAa,IAAC,SAAS,EAAC,0DAA0D,GAAG,EACtF,KAAC,SAAS,IAAC,SAAS,EAAC,aAAa,GAAG,EACpC,OAAO,CAAC,eAAe,CAAC,IAAI,eAAe,IAC1C,IACC,CACd,GACG,CACX,CAAC;AACN,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BodyTextProps } from '@servicetitan/design-system/dist/components/BodyText/BodyText';
|
|
2
|
+
import { FC } from 'react';
|
|
3
|
+
interface MultilineTextProps extends BodyTextProps {
|
|
4
|
+
text: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const MultilineText: FC<MultilineTextProps>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=multiline-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiline-text.d.ts","sourceRoot":"","sources":["../../../src/components/common/multiline-text.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,+DAA+D,CAAC;AAE9F,OAAO,EAAE,EAAE,EAAqB,MAAM,OAAO,CAAC;AAG9C,UAAU,kBAAmB,SAAQ,aAAa;IAC9C,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAmBhD,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { BodyText } from '@servicetitan/design-system';
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import { Fragment, useMemo } from 'react';
|
|
5
|
+
import * as Styles from './multiline-text.module.less';
|
|
6
|
+
export const MultilineText = ({ className, text, ...rest }) => {
|
|
7
|
+
const textParts = useMemo(() => text.split('\n'), [text]);
|
|
8
|
+
return (_jsx(Fragment, { children: textParts.map((part, index) => {
|
|
9
|
+
return (_jsx(BodyText, { el: "p", ...rest, className: classNames(Styles.multilineText, className), children: part.trim() ? part : _jsx("span", { children: "\u00A0" }) }, index));
|
|
10
|
+
}) }));
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=multiline-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiline-text.js","sourceRoot":"","sources":["../../../src/components/common/multiline-text.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAM,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,8BAA8B,CAAC;AAMvD,MAAM,CAAC,MAAM,aAAa,GAA2B,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAClF,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,OAAO,CACH,KAAC,QAAQ,cACJ,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC3B,OAAO,CACH,KAAC,QAAQ,IACL,EAAE,EAAC,GAAG,KAGF,IAAI,EACR,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,YAErD,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oCAAmB,IAJpC,KAAK,CAKH,CACd,CAAC;QACN,CAAC,CAAC,GACK,CACd,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { ChatMessageModelFile } from '../../models';
|
|
3
|
+
interface IMessageContentFileProps {
|
|
4
|
+
message: ChatMessageModelFile;
|
|
5
|
+
}
|
|
6
|
+
export declare const MessageContentFile: FC<IMessageContentFileProps>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=message-content-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-content-file.d.ts","sourceRoot":"","sources":["../../../src/components/message-content/message-content-file.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAoB,MAAM,cAAc,CAAC;AAEtE,UAAU,wBAAwB;IAC9B,OAAO,EAAE,oBAAoB,CAAC;CACjC;AAED,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,wBAAwB,CAiB1D,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { BodyText, Icon, Stack } from '@servicetitan/design-system';
|
|
3
|
+
import { observer } from 'mobx-react';
|
|
4
|
+
import { Fragment } from 'react';
|
|
5
|
+
import { ChatMessageState } from '../../models';
|
|
6
|
+
export const MessageContentFile = observer(({ message }) => {
|
|
7
|
+
const isDelivering = message.state === ChatMessageState.Delivering;
|
|
8
|
+
const isDelivered = message.state === ChatMessageState.Delivered;
|
|
9
|
+
return (_jsxs(Fragment, { children: [_jsxs(Stack, { direction: "row", spacing: "1", alignItems: "center", children: [_jsx(Icon, { name: "attach_file" }), _jsx("span", { children: message.fileName })] }), (isDelivering || isDelivered) && (_jsx(BodyText, { el: "div", size: "small", className: "ta-right", subdued: true, children: isDelivered ? 'File uploaded' : 'Please wait while uploading...' }))] }));
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=message-content-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-content-file.js","sourceRoot":"","sources":["../../../src/components/message-content/message-content-file.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAM,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAwB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAMtE,MAAM,CAAC,MAAM,kBAAkB,GAAiC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACrF,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,KAAK,gBAAgB,CAAC,UAAU,CAAC;IACnE,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,KAAK,gBAAgB,CAAC,SAAS,CAAC;IAEjE,OAAO,CACH,MAAC,QAAQ,eACL,MAAC,KAAK,IAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAC,GAAG,EAAC,UAAU,EAAC,QAAQ,aAClD,KAAC,IAAI,IAAC,IAAI,EAAC,aAAa,GAAG,EAC3B,yBAAO,OAAO,CAAC,QAAQ,GAAQ,IAC3B,EACP,CAAC,YAAY,IAAI,WAAW,CAAC,IAAI,CAC9B,KAAC,QAAQ,IAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,UAAU,EAAC,OAAO,kBACvD,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gCAAgC,GAC1D,CACd,IACM,CACd,CAAC;AACN,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { ChatMessageModelText, ChatMessageModelWelcome } from '../../models/support-chat';
|
|
3
|
+
interface IMessageContentTextProps {
|
|
4
|
+
message: ChatMessageModelText | ChatMessageModelWelcome;
|
|
5
|
+
}
|
|
6
|
+
export declare const MessageContentText: FC<IMessageContentTextProps>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=message-content-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-content-text.d.ts","sourceRoot":"","sources":["../../../src/components/message-content/message-content-text.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAG1F,UAAU,wBAAwB;IAC9B,OAAO,EAAE,oBAAoB,GAAG,uBAAuB,CAAC;CAC3D;AAED,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,wBAAwB,CAE1D,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { observer } from 'mobx-react';
|
|
3
|
+
import { MultilineText } from '../common/multiline-text';
|
|
4
|
+
export const MessageContentText = observer(({ message }) => {
|
|
5
|
+
return _jsx(MultilineText, { text: message.message });
|
|
6
|
+
});
|
|
7
|
+
//# sourceMappingURL=message-content-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-content-text.js","sourceRoot":"","sources":["../../../src/components/message-content/message-content-text.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAMzD,MAAM,CAAC,MAAM,kBAAkB,GAAiC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACrF,OAAO,KAAC,aAAa,IAAC,IAAI,EAAE,OAAO,CAAC,OAAO,GAAI,CAAC;AACpD,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-agent.test.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/__tests-cy__/message-agent.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// eslint-disable-next-line spaced-comment
|
|
3
|
+
/// <reference types="../../../cypress" />
|
|
4
|
+
import { BodyText, Button, Stack } from '@servicetitan/design-system';
|
|
5
|
+
import { mount } from 'cypress/react';
|
|
6
|
+
import { ChatParticipantIcon } from '../../../models/support-chat';
|
|
7
|
+
import { MessageAgent } from '../message-agent';
|
|
8
|
+
import { MessageFooter } from '../message-footer';
|
|
9
|
+
describe('[MessageAgent]', () => {
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
cy.viewport('macbook-13');
|
|
12
|
+
cy.clock(new Date('2023-10-10T10:10:00Z').getTime());
|
|
13
|
+
});
|
|
14
|
+
it('should be properly rendered', () => {
|
|
15
|
+
mount(_jsx(MessageAgent, { avatar: {
|
|
16
|
+
name: 'Test User Name',
|
|
17
|
+
icon: ChatParticipantIcon.Bot,
|
|
18
|
+
className: 'custom-class',
|
|
19
|
+
}, children: _jsx(BodyText, { "data-cy": "content", children: "message agent content" }) }));
|
|
20
|
+
cy.getCy('chat-message-agent').should('be.visible').children().should('have.length', 2);
|
|
21
|
+
cy.getCy('chat-avatar-bot').should('be.visible').should('have.class', 'custom-class');
|
|
22
|
+
cy.getCy('chat-message-agent-content')
|
|
23
|
+
.should('contain.text', 'message agent content');
|
|
24
|
+
cy.getCy('content').should('contain.text', 'message agent content');
|
|
25
|
+
});
|
|
26
|
+
it('should be full width', () => {
|
|
27
|
+
mount(_jsx(MessageAgent, { fullWidth: true, avatar: {
|
|
28
|
+
name: 'Test User Name',
|
|
29
|
+
icon: ChatParticipantIcon.Bot,
|
|
30
|
+
}, children: _jsx(BodyText, { children: "message agent content" }) }));
|
|
31
|
+
cy.getCy('chat-message-agent-center').should('have.class', 'w-100');
|
|
32
|
+
});
|
|
33
|
+
it('should render with custom data-cy', () => {
|
|
34
|
+
mount(_jsx(MessageAgent, { "data-cy": "custom-data-cy", avatar: {
|
|
35
|
+
name: 'Test User Name',
|
|
36
|
+
icon: ChatParticipantIcon.Bot,
|
|
37
|
+
}, children: _jsx(BodyText, { children: "message agent content" }) }));
|
|
38
|
+
cy.getCy('custom-data-cy').should('be.visible');
|
|
39
|
+
cy.getCy('custom-data-cy-content').should('be.visible');
|
|
40
|
+
});
|
|
41
|
+
it('should render custom message footer', () => {
|
|
42
|
+
mount(_jsx(MessageAgent, { messageFooter: _jsxs(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", children: [_jsx(MessageFooter, { name: "name", timestamp: new Date() }), _jsxs(Stack, { direction: "row", spacing: "1", children: [_jsx(Button, { iconName: "thumb_up", xsmall: true, fill: "subtle" }), _jsx(Button, { iconName: "thumb_down", xsmall: true, fill: "subtle" })] })] }), avatar: {
|
|
43
|
+
name: 'Test User Name',
|
|
44
|
+
icon: ChatParticipantIcon.Bot,
|
|
45
|
+
}, children: _jsx(BodyText, { children: "message agent content" }) }));
|
|
46
|
+
cy.getCy('chat-message-agent').should('be.visible').children().should('have.length', 2);
|
|
47
|
+
cy.getCy('chat-message-agent-footer')
|
|
48
|
+
.should('be.visible')
|
|
49
|
+
.should('contain.text', 'name • 10:10 AM');
|
|
50
|
+
});
|
|
51
|
+
it('should render error message', () => {
|
|
52
|
+
mount(_jsx(MessageAgent, { isError: true, avatar: {
|
|
53
|
+
name: 'Test User Name',
|
|
54
|
+
icon: ChatParticipantIcon.Bot,
|
|
55
|
+
}, children: _jsx(BodyText, { children: "message agent content" }) }));
|
|
56
|
+
cy.getCy2('chat-message-error').should('be.visible');
|
|
57
|
+
});
|
|
58
|
+
it('should render subtle message', () => {
|
|
59
|
+
mount(_jsx(MessageAgent, { subtle: true, avatar: {
|
|
60
|
+
name: 'Test User Name',
|
|
61
|
+
icon: ChatParticipantIcon.Bot,
|
|
62
|
+
}, children: _jsx(Stack, { className: "border h-100", alignItems: "center", "data-cy": "custom-content", children: _jsx(BodyText, { children: "message agent content" }) }) }));
|
|
63
|
+
cy.getCy('chat-avatar-bot').should('be.visible');
|
|
64
|
+
cy.getCy('custom-content')
|
|
65
|
+
.should('be.visible')
|
|
66
|
+
.should('contain.text', 'message agent content');
|
|
67
|
+
});
|
|
68
|
+
describe('with different icon types', () => {
|
|
69
|
+
const render = (icon) => {
|
|
70
|
+
return mount(_jsx(MessageAgent, { avatar: {
|
|
71
|
+
name: 'Test User Name',
|
|
72
|
+
icon,
|
|
73
|
+
}, children: _jsx(BodyText, { children: "message agent content" }) }));
|
|
74
|
+
};
|
|
75
|
+
it('icon bot', () => {
|
|
76
|
+
render(ChatParticipantIcon.Bot);
|
|
77
|
+
cy.getCy('chat-avatar-bot').should('be.visible');
|
|
78
|
+
});
|
|
79
|
+
it('icon initials', () => {
|
|
80
|
+
render(ChatParticipantIcon.Initials);
|
|
81
|
+
cy.getCy('chat-avatar-initials').should('be.visible').should('contain.text', 'T');
|
|
82
|
+
});
|
|
83
|
+
it('icon empty', () => {
|
|
84
|
+
render(ChatParticipantIcon.Empty);
|
|
85
|
+
cy.getCy('chat-avatar-empty').should('exist').should('not.be.visible');
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
//# sourceMappingURL=message-agent.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-agent.test.js","sourceRoot":"","sources":["../../../../src/components/messages/__tests-cy__/message-agent.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-system.test.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/__tests-cy__/message-system.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// eslint-disable-next-line spaced-comment
|
|
3
|
+
/// <reference types="../../../cypress" />
|
|
4
|
+
import { BodyText, Stack } from '@servicetitan/design-system';
|
|
5
|
+
import { mount } from 'cypress/react';
|
|
6
|
+
import { MessageSystem } from '../message-system';
|
|
7
|
+
describe('[MessageSystem]', () => {
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
cy.viewport('macbook-13');
|
|
10
|
+
});
|
|
11
|
+
it('should be properly rendered', () => {
|
|
12
|
+
mount(_jsx(MessageSystem, { className: "custom-class", children: _jsx(Stack, { className: "border", children: _jsx(BodyText, { "data-cy": "content", children: "message system content" }) }) }));
|
|
13
|
+
cy.getCy('chat-message-system').should('have.class', 'custom-class').should('be.visible');
|
|
14
|
+
});
|
|
15
|
+
it('should be properly rendered fullwidth', () => {
|
|
16
|
+
mount(_jsx(MessageSystem, { className: "custom-class", fullWidth: true, children: _jsx(Stack, { className: "border", children: _jsx(BodyText, { "data-cy": "content", children: "message system content" }) }) }));
|
|
17
|
+
cy.getCy('chat-message-system').should('have.class', 'custom-class').should('be.visible');
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=message-system.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-system.test.js","sourceRoot":"","sources":["../../../../src/components/messages/__tests-cy__/message-system.test.tsx"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,0CAA0C;AAC1C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,UAAU,CAAC,GAAG,EAAE;QACZ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACnC,KAAK,CACD,KAAC,aAAa,IAAC,SAAS,EAAC,cAAc,YACnC,KAAC,KAAK,IAAC,SAAS,EAAC,QAAQ,YACrB,KAAC,QAAQ,eAAS,SAAS,uCAAkC,GACzD,GACI,CACnB,CAAC;QACF,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC7C,KAAK,CACD,KAAC,aAAa,IAAC,SAAS,EAAC,cAAc,EAAC,SAAS,kBAC7C,KAAC,KAAK,IAAC,SAAS,EAAC,QAAQ,YACrB,KAAC,QAAQ,eAAS,SAAS,uCAAkC,GACzD,GACI,CACnB,CAAC;QACF,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-timeout.test.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/__tests-cy__/message-timeout.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// eslint-disable-next-line spaced-comment
|
|
3
|
+
/// <reference types="../../../cypress" />
|
|
4
|
+
import { mount } from 'cypress/react';
|
|
5
|
+
import { MessageTimeout } from '../message-timeout';
|
|
6
|
+
describe('MessageTimeout', () => {
|
|
7
|
+
it('should render message', () => {
|
|
8
|
+
const onResume = cy.spy().as('onResume');
|
|
9
|
+
const onReset = cy.spy().as('onReset');
|
|
10
|
+
mount(_jsx(MessageTimeout, { onResume: onResume, onReset: onReset }));
|
|
11
|
+
cy.getCy('chat-message-timeout')
|
|
12
|
+
.should('be.visible')
|
|
13
|
+
.should('contain.text', [
|
|
14
|
+
'Your session has timed out.',
|
|
15
|
+
'Would you like to resume it or start a new one?',
|
|
16
|
+
'Continue session or Start new session',
|
|
17
|
+
].join(''));
|
|
18
|
+
cy.getCy('chat-message-timeout-resume').should('be.visible');
|
|
19
|
+
cy.getCy('chat-message-timeout-reset').should('be.visible');
|
|
20
|
+
cy.getCy('chat-message-timeout-resume').click();
|
|
21
|
+
cy.get('@onResume').should('have.been.calledOnce');
|
|
22
|
+
cy.getCy('chat-message-timeout-reset').click();
|
|
23
|
+
cy.get('@onReset').should('have.been.calledOnce');
|
|
24
|
+
});
|
|
25
|
+
it('should render with custom data-cy', () => {
|
|
26
|
+
mount(_jsx(MessageTimeout, { onResume: cy.stub(), onReset: cy.stub(), "data-cy": "custom-data-cy" }));
|
|
27
|
+
cy.getCy('custom-data-cy').should('be.visible');
|
|
28
|
+
cy.getCy('custom-data-cy-resume').should('be.visible');
|
|
29
|
+
cy.getCy('custom-data-cy-reset').should('be.visible');
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=message-timeout.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-timeout.test.js","sourceRoot":"","sources":["../../../../src/components/messages/__tests-cy__/message-timeout.test.tsx"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,0CAA0C;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC7B,MAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QACvC,KAAK,CAAC,KAAC,cAAc,IAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC,CAAC;QAEhE,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC;aAC3B,MAAM,CAAC,YAAY,CAAC;aACpB,MAAM,CACH,cAAc,EACd;YACI,6BAA6B;YAC7B,iDAAiD;YACjD,uCAAuC;SAC1C,CAAC,IAAI,CAAC,EAAE,CAAC,CACb,CAAC;QACN,EAAE,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7D,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAE5D,EAAE,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,KAAK,EAAE,CAAC;QAChD,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACnD,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/C,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QACzC,KAAK,CAAC,KAAC,cAAc,IAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,aAAU,gBAAgB,GAAG,CAAC,CAAC;QAE5F,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAChD,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvD,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-typing.test.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/__tests-cy__/message-typing.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// eslint-disable-next-line spaced-comment
|
|
3
|
+
/// <reference types="../../../cypress" />
|
|
4
|
+
import { mount } from 'cypress/react';
|
|
5
|
+
import { ChatParticipantIcon } from '../../../models/support-chat';
|
|
6
|
+
import { MessageTyping } from '../message-typing';
|
|
7
|
+
describe('ChatMessageTyping', () => {
|
|
8
|
+
function render(icon) {
|
|
9
|
+
mount(_jsx(MessageTyping, { avatar: {
|
|
10
|
+
name: 'Test User Name',
|
|
11
|
+
icon,
|
|
12
|
+
className: 'custom-class',
|
|
13
|
+
} }));
|
|
14
|
+
cy.getCy('chat-message-typing').should('be.visible').children().should('have.length', 2);
|
|
15
|
+
cy.getCy('chat-message-typing-dots').should('be.visible');
|
|
16
|
+
}
|
|
17
|
+
it('should render message with bot icon', () => {
|
|
18
|
+
render(ChatParticipantIcon.Bot);
|
|
19
|
+
cy.getCy('chat-avatar-bot')
|
|
20
|
+
.should('be.visible')
|
|
21
|
+
.should('have.class', 'custom-class')
|
|
22
|
+
.invoke('css', 'background-image')
|
|
23
|
+
.then(bgColor => {
|
|
24
|
+
const isSvg = Boolean(bgColor.indexOf('data:image/svg+xml;base64') >= 0);
|
|
25
|
+
expect(isSvg).to.eq(true);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
it('should render message with empty icon', () => {
|
|
29
|
+
render(ChatParticipantIcon.Empty);
|
|
30
|
+
cy.getCy('chat-avatar-empty').should('exist').should('not.be.visible');
|
|
31
|
+
});
|
|
32
|
+
it('should render message with initials', () => {
|
|
33
|
+
render(ChatParticipantIcon.Initials);
|
|
34
|
+
cy.getCy('chat-avatar-initials').should('be.visible').should('contain.text', 'T');
|
|
35
|
+
});
|
|
36
|
+
it('should not cancel the dots animation', () => {
|
|
37
|
+
cy.clock();
|
|
38
|
+
render(ChatParticipantIcon.Initials);
|
|
39
|
+
// Verify the rendered component + check the dots animation doesn't change over the time
|
|
40
|
+
cy.getCy('chat-message-typing-dots').should('be.visible');
|
|
41
|
+
cy.tick(10000);
|
|
42
|
+
cy.getCy('chat-message-typing-dots').should('be.visible');
|
|
43
|
+
cy.tick(20000);
|
|
44
|
+
cy.getCy('chat-message-typing-dots').should('be.visible');
|
|
45
|
+
cy.tick(30000);
|
|
46
|
+
cy.getCy('chat-message-typing-dots').should('be.visible');
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=message-typing.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-typing.test.js","sourceRoot":"","sources":["../../../../src/components/messages/__tests-cy__/message-typing.test.tsx"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,0CAA0C;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC/B,SAAS,MAAM,CAAC,IAAyB;QACrC,KAAK,CACD,KAAC,aAAa,IACV,MAAM,EAAE;gBACJ,IAAI,EAAE,gBAAgB;gBACtB,IAAI;gBACJ,SAAS,EAAE,cAAc;aAC5B,GACH,CACL,CAAC;QACF,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QACzF,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC9D,CAAC;IAED,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAChC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC;aACtB,MAAM,CAAC,YAAY,CAAC;aACpB,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC;aACpC,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC;aACjC,IAAI,CAAC,OAAO,CAAC,EAAE;YACZ,MAAM,KAAK,GAAG,OAAO,CAChB,OAAyB,CAAC,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,CACvE,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAClC,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACrC,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC5C,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACrC,wFAAwF;QACxF,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1D,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1D,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1D,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-user.test.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/__tests-cy__/message-user.test.tsx"],"names":[],"mappings":""}
|