@microsoft/omnichannel-chat-widget 1.0.3-main.05297ce → 1.0.3-main.1acfc60

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 (101) hide show
  1. package/lib/cjs/common/Constants.js +54 -1
  2. package/lib/cjs/common/storage/default/defaultCacheManager.js +7 -6
  3. package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +9 -7
  4. package/lib/cjs/common/telemetry/TelemetryConstants.js +7 -1
  5. package/lib/cjs/common/utils.js +27 -5
  6. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +1 -10
  7. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -6
  8. package/lib/cjs/components/footerstateful/FooterStateful.js +1 -1
  9. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +8 -1
  10. package/lib/cjs/components/headerstateful/HeaderStateful.js +14 -13
  11. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +1 -0
  12. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +1 -0
  13. package/lib/cjs/components/livechatwidget/common/Deferred.js +2 -3
  14. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +11 -3
  15. package/lib/cjs/components/livechatwidget/common/endChat.js +197 -99
  16. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +41 -21
  17. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +11 -8
  18. package/lib/cjs/components/livechatwidget/common/renderSurveyHelpers.js +139 -0
  19. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +2 -255
  20. package/lib/cjs/components/livechatwidget/common/startChat.js +85 -69
  21. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +162 -100
  22. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +2 -2
  23. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +18 -8
  24. package/lib/cjs/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -2
  25. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +5 -4
  26. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +4 -1
  27. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +1 -0
  28. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +6 -1
  29. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +1 -0
  30. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/markdownrenderers/HyperlinkTextOverrideRenderer.js +62 -0
  31. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +8 -6
  32. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +7 -1
  33. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +2 -0
  34. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +16 -13
  35. package/lib/cjs/contexts/createReducer.js +13 -23
  36. package/lib/cjs/controller/componentController.js +2 -1
  37. package/lib/cjs/index.js +20 -0
  38. package/lib/esm/common/Constants.js +49 -0
  39. package/lib/esm/common/storage/default/defaultCacheManager.js +5 -4
  40. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +9 -7
  41. package/lib/esm/common/telemetry/TelemetryConstants.js +7 -1
  42. package/lib/esm/common/utils.js +25 -4
  43. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +4 -13
  44. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -6
  45. package/lib/esm/components/footerstateful/FooterStateful.js +1 -1
  46. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +8 -1
  47. package/lib/esm/components/headerstateful/HeaderStateful.js +14 -13
  48. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +1 -0
  49. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +1 -0
  50. package/lib/esm/components/livechatwidget/common/Deferred.js +2 -3
  51. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +11 -3
  52. package/lib/esm/components/livechatwidget/common/endChat.js +196 -99
  53. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +41 -21
  54. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +11 -8
  55. package/lib/esm/components/livechatwidget/common/renderSurveyHelpers.js +130 -0
  56. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +3 -255
  57. package/lib/esm/components/livechatwidget/common/startChat.js +86 -70
  58. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +164 -102
  59. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +2 -2
  60. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +18 -8
  61. package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -2
  62. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +5 -4
  63. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +4 -1
  64. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +1 -0
  65. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +6 -1
  66. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +1 -0
  67. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/markdownrenderers/HyperlinkTextOverrideRenderer.js +54 -0
  68. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +8 -6
  69. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +7 -1
  70. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +2 -0
  71. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +18 -15
  72. package/lib/esm/contexts/createReducer.js +13 -23
  73. package/lib/esm/controller/componentController.js +2 -1
  74. package/lib/esm/index.js +4 -1
  75. package/lib/types/common/Constants.d.ts +21 -0
  76. package/lib/types/common/interfaces/IContextDataStore.d.ts +3 -3
  77. package/lib/types/common/storage/default/defaultCacheManager.d.ts +2 -1
  78. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -1
  79. package/lib/types/common/telemetry/TelemetryConstants.d.ts +7 -1
  80. package/lib/types/common/utils.d.ts +3 -2
  81. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +6 -0
  82. package/lib/types/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.d.ts +2 -1
  83. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -3
  84. package/lib/types/components/livechatwidget/common/initWebChatComposer.d.ts +1 -1
  85. package/lib/types/components/livechatwidget/common/renderSurveyHelpers.d.ts +9 -0
  86. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -6
  87. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +3 -1
  88. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +4 -0
  89. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +1 -0
  90. package/lib/types/components/webchatcontainerstateful/webchatcontroller/markdownrenderers/HyperlinkTextOverrideRenderer.d.ts +9 -0
  91. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +8 -7
  92. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +3 -1
  93. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +2 -1
  94. package/lib/types/index.d.ts +3 -0
  95. package/package.json +2 -1
  96. package/lib/cjs/components/livechatwidget/common/agentEndConversationHelper.js +0 -36
  97. package/lib/cjs/contexts/common/ConversationEndEntity.js +0 -12
  98. package/lib/esm/components/livechatwidget/common/agentEndConversationHelper.js +0 -30
  99. package/lib/esm/contexts/common/ConversationEndEntity.js +0 -5
  100. package/lib/types/components/livechatwidget/common/agentEndConversationHelper.d.ts +0 -6
  101. package/lib/types/contexts/common/ConversationEndEntity.d.ts +0 -4
@@ -3,7 +3,7 @@ import { ConversationState } from "./ConversationState";
3
3
  import { IInternalTelemetryData } from "../../common/telemetry/interfaces/IInternalTelemetryData";
4
4
  import { ILiveChatWidgetLocalizedTexts } from "./ILiveChatWidgetLocalizedTexts";
5
5
  import { IRenderingMiddlewareProps } from "../../components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps";
6
- import { ConversationEndEntity } from "./ConversationEndEntity";
6
+ import { ConfirmationState, ConversationEndEntity } from "../../common/Constants";
7
7
  export interface ILiveChatWidgetContext {
8
8
  domainStates: {
9
9
  liveChatConfig: ChatConfig | undefined;
@@ -20,12 +20,15 @@ export interface ILiveChatWidgetContext {
20
20
  widgetSize: any;
21
21
  widgetInstanceId: string;
22
22
  initialChatSdkRequestId: string;
23
+ transcriptRequestId: string;
24
+ confirmationPaneConfirmedOptionClicked: boolean;
25
+ confirmationState: ConfirmationState;
23
26
  };
24
27
  appStates: {
25
28
  conversationState: ConversationState;
26
- isMinimized: boolean;
29
+ isMinimized?: boolean;
27
30
  previousElementIdOnFocusBeforeModalOpen: string | null;
28
- isStartChatFailing: boolean;
31
+ startChatFailed: boolean;
29
32
  outsideOperatingHours: boolean;
30
33
  preChatResponseEmail: string;
31
34
  isAudioMuted: boolean | null;
@@ -39,11 +42,9 @@ export interface ILiveChatWidgetContext {
39
42
  };
40
43
  e2vvEnabled: boolean;
41
44
  unreadMessageCount: number;
42
- conversationEndedByAgentEventReceived: boolean;
43
- conversationEndedBy: ConversationEndEntity | undefined;
44
- postChatWorkflowInProgress: boolean;
45
- shouldUseBotSurvey: boolean;
45
+ conversationEndedBy: ConversationEndEntity;
46
46
  chatDisconnectEventReceived: boolean;
47
+ selectedSurveyMode: string | null;
47
48
  };
48
49
  uiStates: {
49
50
  showConfirmationPane: boolean;
@@ -39,5 +39,7 @@ export declare enum LiveChatWidgetActionType {
39
39
  SET_POST_CHAT_WORKFLOW_IN_PROGRESS = 37,
40
40
  SET_INITIAL_CHAT_SDK_REQUEST_ID = 38,
41
41
  SET_SHOULD_USE_BOT_SURVEY = 39,
42
- SET_CHAT_DISCONNECT_EVENT_RECEIVED = 40
42
+ SET_CHAT_DISCONNECT_EVENT_RECEIVED = 40,
43
+ SET_SURVEY_MODE = 41,
44
+ SET_CONFIRMATION_STATE = 42
43
45
  }
@@ -1,2 +1,3 @@
1
+ import { ILiveChatWidgetContext } from "./ILiveChatWidgetContext";
1
2
  import { ILiveChatWidgetProps } from "../../components/livechatwidget/interfaces/ILiveChatWidgetProps";
2
- export declare const getLiveChatWidgetContextInitialState: (props: ILiveChatWidgetProps) => any;
3
+ export declare const getLiveChatWidgetContextInitialState: (props: ILiveChatWidgetProps) => ILiveChatWidgetContext;
@@ -1,5 +1,8 @@
1
1
  import { BroadcastService, decodeComponentString, encodeComponentString } from "@microsoft/omnichannel-chat-components";
2
2
  import useChatContextStore from "./hooks/useChatContextStore";
3
3
  import useChatSDKStore from "./hooks/useChatSDKStore";
4
+ import { getWidgetCacheId, getWidgetEndChatEventName } from "./common/utils";
5
+ import { ConversationState } from "./contexts/common/ConversationState";
4
6
  export { default as LiveChatWidget } from "./components/livechatwidget/LiveChatWidget";
5
7
  export { encodeComponentString, decodeComponentString, BroadcastService, useChatSDKStore, useChatContextStore };
8
+ export { getWidgetCacheId, getWidgetEndChatEventName, ConversationState };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microsoft/omnichannel-chat-widget",
3
- "version": "1.0.3-main.05297ce",
3
+ "version": "1.0.3-main.1acfc60",
4
4
  "description": "Microsoft Omnichannel Chat Widget",
5
5
  "main": "lib/cjs/index.js",
6
6
  "types": "lib/types/index.d.ts",
@@ -66,6 +66,7 @@
66
66
  "react-dom": "^17.0.2",
67
67
  "react-test-renderer": "^17.0.2",
68
68
  "storybook-addon-playwright": "^4.9.2",
69
+ "swiper": "^9.0.5",
69
70
  "terser-webpack-plugin": "^4.2.3",
70
71
  "ts-loader": "^9.2.6",
71
72
  "typescript": "4.6.4",
@@ -1,36 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.handleAgentEndConversation = void 0;
7
- var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
8
- var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
9
- var _ConversationEndEntity = require("../../../contexts/common/ConversationEndEntity");
10
- var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
11
- var _setPostChatContextAndLoadSurvey = require("./setPostChatContextAndLoadSurvey");
12
- const handleAgentEndConversation = (props, state, dispatch) => {
13
- const isPostChatEnabled = (0, _setPostChatContextAndLoadSurvey.checkPostChatEnabled)(props, state);
14
- if (isPostChatEnabled) {
15
- if (!state.appStates.postChatWorkflowInProgress) {
16
- dispatch({
17
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY,
18
- payload: _ConversationEndEntity.ConversationEndEntity.Agent
19
- });
20
- _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
21
- Event: _TelemetryConstants.TelemetryEvent.ConversationEndedByAgent,
22
- Description: "Conversation is ended from agent side"
23
- });
24
- }
25
- } else {
26
- dispatch({
27
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY,
28
- payload: _ConversationEndEntity.ConversationEndEntity.Agent
29
- });
30
- _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
31
- Event: _TelemetryConstants.TelemetryEvent.ConversationEndedByAgent,
32
- Description: "Conversation is ended from agent side"
33
- });
34
- }
35
- };
36
- exports.handleAgentEndConversation = handleAgentEndConversation;
@@ -1,12 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ConversationEndEntity = void 0;
7
- let ConversationEndEntity;
8
- exports.ConversationEndEntity = ConversationEndEntity;
9
- (function (ConversationEndEntity) {
10
- ConversationEndEntity[ConversationEndEntity["Customer"] = 0] = "Customer";
11
- ConversationEndEntity[ConversationEndEntity["Agent"] = 1] = "Agent";
12
- })(ConversationEndEntity || (exports.ConversationEndEntity = ConversationEndEntity = {}));
@@ -1,30 +0,0 @@
1
- import { LogLevel, TelemetryEvent } from "../../../common/telemetry/TelemetryConstants";
2
- import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
3
- import { ConversationEndEntity } from "../../../contexts/common/ConversationEndEntity";
4
- import { LiveChatWidgetActionType } from "../../../contexts/common/LiveChatWidgetActionType";
5
- import { checkPostChatEnabled } from "./setPostChatContextAndLoadSurvey";
6
- const handleAgentEndConversation = (props, state, dispatch) => {
7
- const isPostChatEnabled = checkPostChatEnabled(props, state);
8
- if (isPostChatEnabled) {
9
- if (!state.appStates.postChatWorkflowInProgress) {
10
- dispatch({
11
- type: LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY,
12
- payload: ConversationEndEntity.Agent
13
- });
14
- TelemetryHelper.logActionEvent(LogLevel.INFO, {
15
- Event: TelemetryEvent.ConversationEndedByAgent,
16
- Description: "Conversation is ended from agent side"
17
- });
18
- }
19
- } else {
20
- dispatch({
21
- type: LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY,
22
- payload: ConversationEndEntity.Agent
23
- });
24
- TelemetryHelper.logActionEvent(LogLevel.INFO, {
25
- Event: TelemetryEvent.ConversationEndedByAgent,
26
- Description: "Conversation is ended from agent side"
27
- });
28
- }
29
- };
30
- export { handleAgentEndConversation };
@@ -1,5 +0,0 @@
1
- export let ConversationEndEntity;
2
- (function (ConversationEndEntity) {
3
- ConversationEndEntity[ConversationEndEntity["Customer"] = 0] = "Customer";
4
- ConversationEndEntity[ConversationEndEntity["Agent"] = 1] = "Agent";
5
- })(ConversationEndEntity || (ConversationEndEntity = {}));
@@ -1,6 +0,0 @@
1
- import { Dispatch } from "react";
2
- import { ILiveChatWidgetAction } from "../../../contexts/common/ILiveChatWidgetAction";
3
- import { ILiveChatWidgetContext } from "../../../contexts/common/ILiveChatWidgetContext";
4
- import { ILiveChatWidgetProps } from "../interfaces/ILiveChatWidgetProps";
5
- declare const handleAgentEndConversation: (props: ILiveChatWidgetProps, state: ILiveChatWidgetContext, dispatch: Dispatch<ILiveChatWidgetAction>) => void;
6
- export { handleAgentEndConversation };
@@ -1,4 +0,0 @@
1
- export declare enum ConversationEndEntity {
2
- Customer = 0,
3
- Agent = 1
4
- }