@microsoft/omnichannel-chat-widget 1.5.1-main.e2be12d → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/lib/cjs/common/Constants.js +23 -2
  2. package/lib/cjs/common/telemetry/TelemetryConstants.js +3 -0
  3. package/lib/cjs/components/livechatwidget/common/endChat.js +25 -3
  4. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +8 -4
  5. package/lib/cjs/components/livechatwidget/common/startChatErrorHandler.js +35 -13
  6. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +50 -6
  7. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  8. package/lib/cjs/components/startchaterrorpanestateful/StartChatErrorPaneStateful.js +82 -0
  9. package/lib/cjs/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneGeneralStyleProps.js +17 -0
  10. package/lib/cjs/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneIconImageProps.js +17 -0
  11. package/lib/cjs/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneIconStyleProps.js +15 -0
  12. package/lib/cjs/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneSubtitleStyleProps.js +17 -0
  13. package/lib/cjs/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneTitleStyleProps.js +17 -0
  14. package/lib/cjs/components/startchaterrorpanestateful/interfaces/IStartChatErrorPaneControlProps.js +1 -0
  15. package/lib/cjs/components/startchaterrorpanestateful/interfaces/IStartChatErrorPaneProps.js +1 -0
  16. package/lib/cjs/components/startchaterrorpanestateful/interfaces/IStartChatErrorPaneStyleProps.js +1 -0
  17. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +2 -3
  18. package/lib/cjs/contexts/common/ConversationState.js +1 -0
  19. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +37 -36
  20. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +4 -1
  21. package/lib/cjs/contexts/common/StartChatFailureType.js +13 -0
  22. package/lib/cjs/contexts/createReducer.js +8 -0
  23. package/lib/cjs/controller/componentController.js +5 -1
  24. package/lib/esm/common/Constants.js +20 -1
  25. package/lib/esm/common/telemetry/TelemetryConstants.js +3 -0
  26. package/lib/esm/components/livechatwidget/common/endChat.js +26 -4
  27. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +8 -4
  28. package/lib/esm/components/livechatwidget/common/startChatErrorHandler.js +36 -14
  29. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +52 -8
  30. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  31. package/lib/esm/components/startchaterrorpanestateful/StartChatErrorPaneStateful.js +71 -0
  32. package/lib/esm/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneGeneralStyleProps.js +10 -0
  33. package/lib/esm/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneIconImageProps.js +10 -0
  34. package/lib/esm/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneIconStyleProps.js +8 -0
  35. package/lib/esm/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneSubtitleStyleProps.js +10 -0
  36. package/lib/esm/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneTitleStyleProps.js +10 -0
  37. package/lib/esm/components/startchaterrorpanestateful/interfaces/IStartChatErrorPaneControlProps.js +1 -0
  38. package/lib/esm/components/startchaterrorpanestateful/interfaces/IStartChatErrorPaneProps.js +1 -0
  39. package/lib/esm/components/startchaterrorpanestateful/interfaces/IStartChatErrorPaneStyleProps.js +1 -0
  40. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +2 -3
  41. package/lib/esm/contexts/common/ConversationState.js +1 -0
  42. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +37 -36
  43. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +4 -1
  44. package/lib/esm/contexts/common/StartChatFailureType.js +6 -0
  45. package/lib/esm/contexts/createReducer.js +8 -0
  46. package/lib/esm/controller/componentController.js +3 -0
  47. package/lib/types/common/Constants.d.ts +21 -0
  48. package/lib/types/common/telemetry/TelemetryConstants.d.ts +2 -0
  49. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  50. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +1 -1
  51. package/lib/types/components/startchaterrorpanestateful/StartChatErrorPaneStateful.d.ts +3 -0
  52. package/lib/types/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneGeneralStyleProps.d.ts +2 -0
  53. package/lib/types/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneIconImageProps.d.ts +2 -0
  54. package/lib/types/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneIconStyleProps.d.ts +2 -0
  55. package/lib/types/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneSubtitleStyleProps.d.ts +2 -0
  56. package/lib/types/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneTitleStyleProps.d.ts +2 -0
  57. package/lib/types/components/startchaterrorpanestateful/interfaces/IStartChatErrorPaneClassNames.d.ts +5 -0
  58. package/lib/types/components/startchaterrorpanestateful/interfaces/IStartChatErrorPaneComponentOverrides.d.ts +6 -0
  59. package/lib/types/components/startchaterrorpanestateful/interfaces/IStartChatErrorPaneControlProps.d.ts +14 -0
  60. package/lib/types/components/startchaterrorpanestateful/interfaces/IStartChatErrorPaneProps.d.ts +8 -0
  61. package/lib/types/components/startchaterrorpanestateful/interfaces/IStartChatErrorPaneStyleProps.d.ts +10 -0
  62. package/lib/types/contexts/common/ConversationState.d.ts +2 -1
  63. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +3 -0
  64. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +37 -36
  65. package/lib/types/contexts/common/StartChatFailureType.d.ts +5 -0
  66. package/lib/types/controller/componentController.d.ts +1 -0
  67. package/package.json +5 -5
  68. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +0 -71
  69. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +0 -56
  70. package/lib/cjs/components/livechatwidget/common/startChatErrorHandler.spec.js +0 -282
  71. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.spec.js +0 -190
  72. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -82
  73. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageSequenceIdOverrideMiddleware.spec.js +0 -342
  74. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +0 -69
  75. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +0 -54
  76. package/lib/esm/components/livechatwidget/common/startChatErrorHandler.spec.js +0 -280
  77. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.spec.js +0 -188
  78. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -80
  79. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageSequenceIdOverrideMiddleware.spec.js +0 -338
  80. package/lib/types/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.d.ts +0 -1
  81. package/lib/types/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.d.ts +0 -1
  82. package/lib/types/components/livechatwidget/common/startChatErrorHandler.spec.d.ts +0 -1
  83. package/lib/types/components/loadingpanestateful/interfaces/IStartChatErrorPaneControlProps.d.ts +0 -4
  84. package/lib/types/components/loadingpanestateful/interfaces/IStartChatErrorPaneProps.d.ts +0 -4
  85. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.spec.d.ts +0 -1
  86. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +0 -1
  87. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageSequenceIdOverrideMiddleware.spec.d.ts +0 -1
  88. /package/lib/cjs/components/{loadingpanestateful/interfaces/IStartChatErrorPaneControlProps.js → startchaterrorpanestateful/interfaces/IStartChatErrorPaneClassNames.js} +0 -0
  89. /package/lib/cjs/components/{loadingpanestateful/interfaces/IStartChatErrorPaneProps.js → startchaterrorpanestateful/interfaces/IStartChatErrorPaneComponentOverrides.js} +0 -0
  90. /package/lib/esm/components/{loadingpanestateful/interfaces/IStartChatErrorPaneControlProps.js → startchaterrorpanestateful/interfaces/IStartChatErrorPaneClassNames.js} +0 -0
  91. /package/lib/esm/components/{loadingpanestateful/interfaces/IStartChatErrorPaneProps.js → startchaterrorpanestateful/interfaces/IStartChatErrorPaneComponentOverrides.js} +0 -0
@@ -1,338 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Constants } from "../../../../../common/Constants";
3
- import { WebChatActionType } from "../../enums/WebChatActionType";
4
- import createMessageSequenceIdOverrideMiddleware from "./messageSequenceIdOverrideMiddleware";
5
- describe("messageSequenceIdOverrideMiddleware", () => {
6
- it("sequenceId is overrided", () => {
7
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
- const next = args => args;
9
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
- const dispatch = () => {
11
- return 1;
12
- };
13
- const action = {
14
- type: WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY,
15
- payload: {
16
- text: "test-text",
17
- activity: {
18
- channelId: "ACS_CHANNEL",
19
- from: {
20
- role: "user"
21
- },
22
- channelData: {
23
- metadata: {
24
- "OriginalMessageId": "1683742135918"
25
- },
26
- "webchat:sequence-id": 12345
27
- }
28
- }
29
- }
30
- };
31
- const middleware = createMessageSequenceIdOverrideMiddleware(dispatch)(next)(action);
32
- let resultValue;
33
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
34
- const channelData = middleware.payload.activity.channelData;
35
- Object.keys(channelData).forEach(function (key) {
36
- if (key === Constants.WebchatSequenceIdAttribute) {
37
- resultValue = channelData[key];
38
- }
39
- });
40
- expect(resultValue).toEqual(1683742135918);
41
- });
42
- it("sequenceId is not overrided due to empty string for originalID", () => {
43
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
- const next = args => args;
45
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
46
- const dispatch = () => {
47
- return 1;
48
- };
49
- const action = {
50
- type: WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY,
51
- payload: {
52
- text: "test-text",
53
- activity: {
54
- channelId: "ACS_CHANNEL",
55
- from: {
56
- role: "user"
57
- },
58
- channelData: {
59
- metadata: {
60
- "OriginalMessageId": ""
61
- },
62
- "webchat:sequence-id": 12345
63
- }
64
- }
65
- }
66
- };
67
- const middleware = createMessageSequenceIdOverrideMiddleware(dispatch)(next)(action);
68
- let resultValue;
69
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
70
- const channelData = middleware.payload.activity.channelData;
71
- Object.keys(channelData).forEach(function (key) {
72
- if (key === Constants.WebchatSequenceIdAttribute) {
73
- resultValue = channelData[key];
74
- }
75
- });
76
- expect(resultValue).toEqual(12345);
77
- });
78
- it("sequenceId is not overrided, due to OriginalMessageId being not a string of numbers ", () => {
79
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
80
- const next = args => args;
81
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
82
- const dispatch = () => {
83
- return 1;
84
- };
85
- const action = {
86
- type: WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY,
87
- payload: {
88
- text: "test-text",
89
- activity: {
90
- channelId: "ACS_CHANNEL",
91
- from: {
92
- role: "user"
93
- },
94
- channelData: {
95
- metadata: {
96
- "OriginalMessageId": "abcdf"
97
- },
98
- "webchat:sequence-id": 12345
99
- }
100
- }
101
- }
102
- };
103
- const middleware = createMessageSequenceIdOverrideMiddleware(dispatch)(next)(action);
104
- let resultValue;
105
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
106
- const channelData = middleware.payload.activity.channelData;
107
- Object.keys(channelData).forEach(function (key) {
108
- if (key === Constants.WebchatSequenceIdAttribute) {
109
- resultValue = channelData[key];
110
- }
111
- });
112
- expect(resultValue).toEqual(12345);
113
- });
114
- it("no changes since webchat id is not present", () => {
115
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
116
- const next = args => args;
117
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
118
- const dispatch = () => {
119
- return 1;
120
- };
121
- const payloadExpected = {
122
- payload: {
123
- text: "test-text",
124
- activity: {
125
- channelId: "ACS_CHANNEL",
126
- from: {
127
- role: "user"
128
- },
129
- channelData: {
130
- metadata: {
131
- "OriginalMessageId": "123456789"
132
- }
133
- }
134
- }
135
- }
136
- };
137
- const action = {
138
- type: WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY,
139
- payload: {
140
- text: "test-text",
141
- activity: {
142
- channelId: "ACS_CHANNEL",
143
- from: {
144
- role: "user"
145
- },
146
- channelData: {
147
- metadata: {
148
- "OriginalMessageId": "123456789"
149
- }
150
- }
151
- }
152
- }
153
- };
154
- const middleware = createMessageSequenceIdOverrideMiddleware(dispatch)(next)(action);
155
- expect(middleware.payload).toEqual(payloadExpected.payload);
156
- });
157
- it("no changes since OriginalMessageId is not present", () => {
158
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
159
- const next = args => args;
160
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
161
- const dispatch = () => {
162
- return 1;
163
- };
164
- const payloadExpected = {
165
- payload: {
166
- text: "test-text",
167
- activity: {
168
- channelId: "ACS_CHANNEL",
169
- from: {
170
- role: "user"
171
- },
172
- channelData: {
173
- metadata: {},
174
- "webchat:sequence-id": 12345
175
- }
176
- }
177
- }
178
- };
179
- const action = {
180
- type: WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY,
181
- payload: {
182
- text: "test-text",
183
- activity: {
184
- channelId: "ACS_CHANNEL",
185
- from: {
186
- role: "user"
187
- },
188
- channelData: {
189
- metadata: {},
190
- "webchat:sequence-id": 12345
191
- }
192
- }
193
- }
194
- };
195
- const middleware = createMessageSequenceIdOverrideMiddleware(dispatch)(next)(action);
196
- expect(middleware.payload).toEqual(payloadExpected.payload);
197
- });
198
- it("no override, since the type of message is not incoming activity", () => {
199
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
200
- const next = args => args;
201
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
202
- const dispatch = () => {
203
- return 1;
204
- };
205
- const action = {
206
- type: "something else",
207
- payload: {
208
- text: "test-text",
209
- activity: {
210
- channelId: "ACS_CHANNEL",
211
- from: {
212
- role: "user"
213
- },
214
- channelData: {
215
- metadata: {
216
- "OriginalMessageId": "1683742135918"
217
- },
218
- "webchat:sequence-id": 12345
219
- }
220
- }
221
- }
222
- };
223
- const middleware = createMessageSequenceIdOverrideMiddleware(dispatch)(next)(action);
224
- let resultValue;
225
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
226
- const channelData = middleware.payload.activity.channelData;
227
- Object.keys(channelData).forEach(function (key) {
228
- if (key === Constants.WebchatSequenceIdAttribute) {
229
- resultValue = channelData[key];
230
- }
231
- });
232
- expect(resultValue).toEqual(12345);
233
- });
234
- it("no override, since the channel is not ACS", () => {
235
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
236
- const next = args => args;
237
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
238
- const dispatch = () => {
239
- return 1;
240
- };
241
- const action = {
242
- type: WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY,
243
- payload: {
244
- text: "test-text",
245
- activity: {
246
- channelId: "something_else",
247
- from: {
248
- role: "user"
249
- },
250
- channelData: {
251
- metadata: {
252
- "OriginalMessageId": "1683742135918"
253
- },
254
- "webchat:sequence-id": 12345
255
- }
256
- }
257
- }
258
- };
259
- const middleware = createMessageSequenceIdOverrideMiddleware(dispatch)(next)(action);
260
- let resultValue;
261
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
262
- const channelData = middleware.payload.activity.channelData;
263
- Object.keys(channelData).forEach(function (key) {
264
- if (key === Constants.WebchatSequenceIdAttribute) {
265
- resultValue = channelData[key];
266
- }
267
- });
268
- expect(resultValue).toEqual(12345);
269
- });
270
- it("no override, since the channel channelData is not present", () => {
271
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
272
- const next = args => args;
273
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
274
- const dispatch = () => {
275
- return 1;
276
- };
277
- const action = {
278
- type: WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY,
279
- payload: {
280
- text: "test-text channel data is not present",
281
- activity: {
282
- channelId: "ACS_CHANNEL",
283
- from: {
284
- role: "user"
285
- }
286
- }
287
- }
288
- };
289
- const middleware = createMessageSequenceIdOverrideMiddleware(dispatch)(next)(action);
290
- expect(middleware.payload).toEqual(action.payload);
291
- });
292
- it("no override, since channelData is empty object", () => {
293
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
294
- const next = args => args;
295
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
296
- const dispatch = () => {
297
- return 1;
298
- };
299
- const action = {
300
- type: WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY,
301
- payload: {
302
- text: "test-text channel data empty",
303
- activity: {
304
- channelId: "ACS_CHANNEL",
305
- from: {
306
- role: "user"
307
- },
308
- channelData: {}
309
- }
310
- }
311
- };
312
- const middleware = createMessageSequenceIdOverrideMiddleware(dispatch)(next)(action);
313
- expect(middleware.payload).toEqual(action.payload);
314
- });
315
- it("no override, since channelData null", () => {
316
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
317
- const next = args => args;
318
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
319
- const dispatch = () => {
320
- return 1;
321
- };
322
- const action = {
323
- type: WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY,
324
- payload: {
325
- text: "test-channel Data null",
326
- activity: {
327
- channelId: "ACS_CHANNEL",
328
- from: {
329
- role: "user"
330
- },
331
- channelData: null
332
- }
333
- }
334
- };
335
- const middleware = createMessageSequenceIdOverrideMiddleware(dispatch)(next)(action);
336
- expect(middleware.payload).toEqual(action.payload);
337
- });
338
- });
@@ -1,4 +0,0 @@
1
- export interface IStartChatErrorPaneControlProps {
2
- titleText?: string;
3
- subtitleText?: string;
4
- }
@@ -1,4 +0,0 @@
1
- import { IStartChatErrorPaneControlProps } from "./IStartChatErrorPaneControlProps";
2
- export interface IStartChatErrorPaneProps {
3
- controlProps?: IStartChatErrorPaneControlProps;
4
- }