@microsoft/omnichannel-chat-widget 1.7.3-main.9d92cc9 → 1.7.3-main.aa696dc

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/lib/cjs/components/livechatwidget/LiveChatWidget.js +6 -1
  2. package/lib/cjs/components/livechatwidget/common/getMockChatSDKIfApplicable.js +26 -0
  3. package/lib/cjs/components/livechatwidget/common/overridePropsOnMockIfApplicable.js +41 -0
  4. package/lib/cjs/components/livechatwidget/common/startChat.js +38 -28
  5. package/lib/cjs/components/livechatwidget/common/startChatErrorHandler.js +6 -6
  6. package/lib/cjs/components/livechatwidget/common/updateSessionDataForTelemetry.js +8 -3
  7. package/lib/cjs/components/livechatwidget/interfaces/IMockProps.js +7 -0
  8. package/lib/cjs/components/webchatcontainerstateful/common/DemoChatAdapter.js +87 -0
  9. package/lib/cjs/components/webchatcontainerstateful/common/DemoChatSDK.js +17 -0
  10. package/lib/cjs/components/webchatcontainerstateful/common/DesignerChatAdapter.js +41 -0
  11. package/lib/cjs/components/webchatcontainerstateful/common/DesignerChatSDK.js +17 -0
  12. package/lib/cjs/components/webchatcontainerstateful/common/MockBotCardCommandType.js +14 -0
  13. package/lib/cjs/components/webchatcontainerstateful/common/MockBotCommand.js +19 -0
  14. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +3 -0
  15. package/lib/cjs/components/webchatcontainerstateful/common/utils/attachmentActivityUtils.js +71 -0
  16. package/lib/cjs/components/webchatcontainerstateful/common/utils/chatAdapterUtils.js +90 -0
  17. package/lib/cjs/plugins/newMessageEventHandler.js +4 -2
  18. package/lib/esm/components/livechatwidget/LiveChatWidget.js +6 -1
  19. package/lib/esm/components/livechatwidget/common/getMockChatSDKIfApplicable.js +20 -0
  20. package/lib/esm/components/livechatwidget/common/overridePropsOnMockIfApplicable.js +34 -0
  21. package/lib/esm/components/livechatwidget/common/startChat.js +38 -28
  22. package/lib/esm/components/livechatwidget/common/startChatErrorHandler.js +7 -7
  23. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +7 -2
  24. package/lib/esm/components/livechatwidget/interfaces/IMockProps.js +6 -0
  25. package/lib/esm/components/webchatcontainerstateful/common/DemoChatAdapter.js +79 -0
  26. package/lib/esm/components/webchatcontainerstateful/common/DemoChatSDK.js +10 -0
  27. package/lib/esm/components/webchatcontainerstateful/common/DesignerChatAdapter.js +33 -0
  28. package/lib/esm/components/webchatcontainerstateful/common/DesignerChatSDK.js +10 -0
  29. package/lib/esm/components/webchatcontainerstateful/common/MockBotCardCommandType.js +7 -0
  30. package/lib/esm/components/webchatcontainerstateful/common/MockBotCommand.js +12 -0
  31. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +3 -0
  32. package/lib/esm/components/webchatcontainerstateful/common/utils/attachmentActivityUtils.js +61 -0
  33. package/lib/esm/components/webchatcontainerstateful/common/utils/chatAdapterUtils.js +77 -0
  34. package/lib/esm/plugins/newMessageEventHandler.js +4 -2
  35. package/lib/types/components/livechatwidget/common/getMockChatSDKIfApplicable.d.ts +1 -0
  36. package/lib/types/components/livechatwidget/common/overridePropsOnMockIfApplicable.d.ts +3 -0
  37. package/lib/types/components/livechatwidget/common/updateSessionDataForTelemetry.d.ts +1 -1
  38. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +2 -0
  39. package/lib/types/components/livechatwidget/interfaces/IMockProps.d.ts +8 -0
  40. package/lib/types/components/webchatcontainerstateful/common/DemoChatAdapter.d.ts +10 -0
  41. package/lib/types/components/webchatcontainerstateful/common/DemoChatSDK.d.ts +6 -0
  42. package/lib/types/components/webchatcontainerstateful/common/DesignerChatAdapter.d.ts +8 -0
  43. package/lib/types/components/webchatcontainerstateful/common/DesignerChatSDK.d.ts +6 -0
  44. package/lib/types/components/webchatcontainerstateful/common/MockBotCardCommandType.d.ts +6 -0
  45. package/lib/types/components/webchatcontainerstateful/common/MockBotCommand.d.ts +11 -0
  46. package/lib/types/components/webchatcontainerstateful/common/mockadapter.d.ts +2 -1
  47. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +6 -0
  48. package/lib/types/components/webchatcontainerstateful/common/utils/attachmentActivityUtils.d.ts +9 -0
  49. package/lib/types/components/webchatcontainerstateful/common/utils/chatAdapterUtils.d.ts +9 -0
  50. package/package.json +2 -2
@@ -0,0 +1,77 @@
1
+ import { uuidv4 } from "@microsoft/omnichannel-chat-sdk";
2
+ export const customerUser = {
3
+ id: "usedId",
4
+ name: "User",
5
+ role: "user"
6
+ };
7
+ export const botUser = {
8
+ id: "botId",
9
+ name: "Bot",
10
+ role: "bot"
11
+ };
12
+
13
+ // WebChat expects an "echo" activity to confirm the message has been sent successfully
14
+ export const postEchoActivity = function (activityObserver, activity, user) {
15
+ let delay = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1000;
16
+ const echoActivity = {
17
+ ...activity,
18
+ id: uuidv4(),
19
+ from: {
20
+ ...activity.from,
21
+ ...user
22
+ },
23
+ timestamp: new Date().toISOString()
24
+ };
25
+ setTimeout(() => {
26
+ activityObserver === null || activityObserver === void 0 ? void 0 : activityObserver.next(echoActivity); // mock message sent activity
27
+ }, delay);
28
+ };
29
+ export const postBotMessageActivity = function (activityObserver, text) {
30
+ let tags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "";
31
+ let delay = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1000;
32
+ setTimeout(() => {
33
+ activityObserver === null || activityObserver === void 0 ? void 0 : activityObserver.next({
34
+ id: uuidv4(),
35
+ from: {
36
+ ...botUser
37
+ },
38
+ text,
39
+ type: "message",
40
+ channelData: {
41
+ tags
42
+ },
43
+ timestamp: new Date().toISOString()
44
+ });
45
+ }, delay);
46
+ };
47
+ export const postSystemMessageActivity = function (activityObserver, text) {
48
+ let delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000;
49
+ postBotMessageActivity(activityObserver, text, "system", delay);
50
+ };
51
+ export const postBotTypingActivity = function (activityObserver) {
52
+ let delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;
53
+ setTimeout(() => {
54
+ activityObserver === null || activityObserver === void 0 ? void 0 : activityObserver.next({
55
+ id: uuidv4(),
56
+ from: {
57
+ ...botUser
58
+ },
59
+ type: "typing"
60
+ });
61
+ }, delay);
62
+ };
63
+ export const postBotAttachmentActivity = function (activityObserver) {
64
+ let attachments = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
65
+ let delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000;
66
+ setTimeout(() => {
67
+ activityObserver === null || activityObserver === void 0 ? void 0 : activityObserver.next({
68
+ id: uuidv4(),
69
+ from: {
70
+ ...botUser
71
+ },
72
+ attachments,
73
+ type: "message",
74
+ timestamp: new Date().toISOString()
75
+ });
76
+ }, delay);
77
+ };
@@ -14,7 +14,7 @@ export const createOnNewAdapterActivityHandler = (chatId, userId) => {
14
14
  const raiseMessageEvent = (activity, isHistoryMessage) => {
15
15
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
16
  const polyfillMessagePayloadForEvent = payload => {
17
- var _activity$conversatio, _TelemetryManager$Int;
17
+ var _activity$conversatio, _TelemetryManager$Int, _attachments;
18
18
  return {
19
19
  ...payload,
20
20
  channelData: activity === null || activity === void 0 ? void 0 : activity.channelData,
@@ -23,7 +23,9 @@ export const createOnNewAdapterActivityHandler = (chatId, userId) => {
23
23
  id: activity === null || activity === void 0 ? void 0 : activity.id,
24
24
  isChatComplete: false,
25
25
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
26
- text: activity === null || activity === void 0 ? void 0 : activity.text
26
+ text: activity === null || activity === void 0 ? void 0 : activity.text,
27
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
+ attachment: (activity === null || activity === void 0 ? void 0 : (_attachments = activity.attachments) === null || _attachments === void 0 ? void 0 : _attachments.length) >= 1 ? activity === null || activity === void 0 ? void 0 : activity.attachments : []
27
29
  };
28
30
  };
29
31
  if ((activity === null || activity === void 0 ? void 0 : activity.type) === Constants.message) {
@@ -0,0 +1 @@
1
+ export declare const getMockChatSDKIfApplicable: (chatSDK: any, type?: string | undefined) => any;
@@ -0,0 +1,3 @@
1
+ import { ILiveChatWidgetProps } from "../interfaces/ILiveChatWidgetProps";
2
+ declare const overridePropsOnMockIfApplicable: (props: ILiveChatWidgetProps) => void;
3
+ export default overridePropsOnMockIfApplicable;
@@ -1,3 +1,3 @@
1
1
  import { Dispatch } from "react";
2
2
  import { ILiveChatWidgetAction } from "../../../contexts/common/ILiveChatWidgetAction";
3
- export declare const updateSessionDataForTelemetry: (chatSDK: any, dispatch: Dispatch<ILiveChatWidgetAction>) => Promise<void>;
3
+ export declare const updateTelemetryData: (chatSDK: any, dispatch: Dispatch<ILiveChatWidgetAction>) => Promise<void>;
@@ -25,6 +25,7 @@ import { IPostChatSurveyPaneStatefulProps } from "../../postchatsurveypanestatef
25
25
  import { IScrollBarProps } from "./IScrollBarProps";
26
26
  import { IDraggableChatWidgetProps } from "./IDraggableChatWidgetProps";
27
27
  import { INotificationPaneProps } from "@microsoft/omnichannel-chat-components/lib/types/components/notificationpane/interfaces/INotificationPaneProps";
28
+ import { IMockProps } from "./IMockProps";
28
29
  export interface ILiveChatWidgetProps {
29
30
  audioNotificationProps?: IAudioNotificationProps;
30
31
  callingContainerProps?: ICallingContainerProps;
@@ -61,4 +62,5 @@ export interface ILiveChatWidgetProps {
61
62
  allowSdkChatSupport?: boolean;
62
63
  initialCustomContext?: any;
63
64
  draggableChatWidgetProps?: IDraggableChatWidgetProps;
65
+ mock?: IMockProps;
64
66
  }
@@ -0,0 +1,8 @@
1
+ declare enum LiveChatWidgetMockType {
2
+ Test = "Test",
3
+ Demo = "Demo"
4
+ }
5
+ export interface IMockProps {
6
+ type: LiveChatWidgetMockType;
7
+ }
8
+ export {};
@@ -0,0 +1,10 @@
1
+ import "rxjs/add/operator/share";
2
+ import "rxjs/add/observable/of";
3
+ import { Message } from "botframework-directlinejs";
4
+ import { Observable } from "rxjs/Observable";
5
+ import MockAdapter from "./mockadapter";
6
+ export declare class DemoChatAdapter extends MockAdapter {
7
+ constructor();
8
+ private postBotCommandsActivity;
9
+ postActivity(activity: Message): Observable<string>;
10
+ }
@@ -0,0 +1,6 @@
1
+ import { DemoChatAdapter } from "./DemoChatAdapter";
2
+ import { MockChatSDK } from "./mockchatsdk";
3
+ export declare class DemoChatSDK extends MockChatSDK {
4
+ constructor();
5
+ createChatAdapter(): DemoChatAdapter;
6
+ }
@@ -0,0 +1,8 @@
1
+ import { Message } from "botframework-directlinejs";
2
+ import { Observable } from "rxjs/Observable";
3
+ import MockAdapter from "./mockadapter";
4
+ export declare class DesignerChatAdapter extends MockAdapter {
5
+ constructor();
6
+ private postUserActivity;
7
+ postActivity(activity: Message): Observable<string>;
8
+ }
@@ -0,0 +1,6 @@
1
+ import { DesignerChatAdapter } from "./DesignerChatAdapter";
2
+ import { MockChatSDK } from "./mockchatsdk";
3
+ export declare class DesignerChatSDK extends MockChatSDK {
4
+ constructor();
5
+ createChatAdapter(): DesignerChatAdapter;
6
+ }
@@ -0,0 +1,6 @@
1
+ declare enum MockBotCardCommandType {
2
+ Hero = "hero",
3
+ Signin = "signin",
4
+ Thumbnail = "thumbnail"
5
+ }
6
+ export default MockBotCardCommandType;
@@ -0,0 +1,11 @@
1
+ declare enum MockBotCommand {
2
+ Bot = "/bot",
3
+ Card = "/card",
4
+ Help = "/help",
5
+ SendAttachment = "send attachment",
6
+ SendBotMessage = "send bot message",
7
+ SendSystemMessage = "send system message",
8
+ SendTyping = "send typing",
9
+ System = "/system"
10
+ }
11
+ export default MockBotCommand;
@@ -3,8 +3,9 @@ import "rxjs/add/observable/of";
3
3
  import { Activity, ConnectionStatus, Message } from "botframework-directlinejs";
4
4
  import { BehaviorSubject } from "rxjs";
5
5
  import { Observable } from "rxjs/Observable";
6
+ import { Subscriber } from "rxjs/Subscriber";
6
7
  export default class MockAdapter {
7
- private activityObserver?;
8
+ activityObserver?: Subscriber<Activity>;
8
9
  activity$: Observable<Activity>;
9
10
  connectionStatus$: BehaviorSubject<ConnectionStatus>;
10
11
  constructor();
@@ -8,6 +8,12 @@ export declare class MockChatSDK {
8
8
  orgId: string;
9
9
  orgUrl: string;
10
10
  };
11
+ initialize(): Promise<{
12
+ LiveWSAndLiveChatEngJoin: {
13
+ msdyn_postconversationsurveyenable: string;
14
+ msdyn_conversationmode: string;
15
+ };
16
+ }>;
11
17
  startChat(): Promise<void>;
12
18
  endChat(): null;
13
19
  getChatToken(): null;
@@ -0,0 +1,9 @@
1
+ import { HeroCard, Signin, Thumbnail } from "botframework-directlinejs";
2
+ export declare const createJpgFileAttachment: () => {
3
+ contentType: string;
4
+ name: string;
5
+ contentUrl: string;
6
+ };
7
+ export declare const createHeroCardAttachment: () => HeroCard;
8
+ export declare const createThumbnailCardAttachment: () => Thumbnail;
9
+ export declare const createSigninCardAttachment: () => Signin;
@@ -0,0 +1,9 @@
1
+ import { Activity, Attachment, Message, User } from "botframework-directlinejs";
2
+ import { Subscriber } from "rxjs/Subscriber";
3
+ export declare const customerUser: User;
4
+ export declare const botUser: User;
5
+ export declare const postEchoActivity: (activityObserver: Subscriber<Activity> | undefined, activity: Message, user: User, delay?: number) => void;
6
+ export declare const postBotMessageActivity: (activityObserver: Subscriber<Activity> | undefined, text: string, tags?: string, delay?: number) => void;
7
+ export declare const postSystemMessageActivity: (activityObserver: Subscriber<Activity> | undefined, text: string, delay?: number) => void;
8
+ export declare const postBotTypingActivity: (activityObserver: Subscriber<Activity> | undefined, delay?: number) => void;
9
+ export declare const postBotAttachmentActivity: (activityObserver: Subscriber<Activity> | undefined, attachments?: Attachment[], delay?: number) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microsoft/omnichannel-chat-widget",
3
- "version": "1.7.3-main.9d92cc9",
3
+ "version": "1.7.3-main.aa696dc",
4
4
  "description": "Microsoft Omnichannel Chat Widget",
5
5
  "main": "lib/cjs/index.js",
6
6
  "types": "lib/types/index.d.ts",
@@ -75,7 +75,7 @@
75
75
  },
76
76
  "dependencies": {
77
77
  "@microsoft/omnichannel-chat-components": "1.1.5",
78
- "@microsoft/omnichannel-chat-sdk": "^1.9.5",
78
+ "@microsoft/omnichannel-chat-sdk": "^1.9.6",
79
79
  "abort-controller-es5": "^2.0.1",
80
80
  "dompurify": "^2.5.4",
81
81
  "markdown-it": "^12.3.2",