pager-widget 1.0.3 → 1.0.4

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 (71) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.js +4 -4
  3. package/dist/react-parcel.9f367d21.css +2 -18
  4. package/dist/react-parcel.9f367d21.css.map +1 -1
  5. package/dist/react-parcel.js +119 -214
  6. package/dist/react-parcel.js.map +1 -1
  7. package/out/AgentFeedbackButtonWrapper.js +15 -0
  8. package/out/App.js +28 -0
  9. package/out/BotMain.js +91 -0
  10. package/out/ButtonsWrapper.js +29 -0
  11. package/out/ChatPage.js +9 -0
  12. package/out/ChatPageContent.js +131 -0
  13. package/out/ChatPageHeader.js +267 -0
  14. package/out/ChatPageInput.js +29 -0
  15. package/out/ChatWidget.js +17 -0
  16. package/out/Consent.js +66 -0
  17. package/out/CountryDropdown.js +31 -0
  18. package/out/Form.js +238 -0
  19. package/out/HomePage.js +11 -0
  20. package/out/HomePageContent.js +32 -0
  21. package/out/HomePageFooter.js +87 -0
  22. package/out/HomePageHeader.js +66 -0
  23. package/out/InputField.js +80 -0
  24. package/out/Markdown.js +126 -0
  25. package/out/Message.js +197 -0
  26. package/out/MessagesT.js +2 -0
  27. package/out/NewRecentMessagePage.js +525 -0
  28. package/out/NewRecentMessageTab.js +23 -0
  29. package/out/ReceivedMessage.js +211 -0
  30. package/out/RecentMessageDetail.js +178 -0
  31. package/out/RecentMessageList.js +112 -0
  32. package/out/RecentMessageListCard.js +20 -0
  33. package/out/RecentMessageListHeader.js +156 -0
  34. package/out/RecentMessagePage.js +183 -0
  35. package/out/RecentMessageTab.js +35 -0
  36. package/out/WidgetMessage.js +14 -0
  37. package/out/WidgetToggleButton.js +191 -0
  38. package/out/WidgetType.js +2 -0
  39. package/out/assets/icons/pikaicons-react.js +17475 -0
  40. package/out/components/ConsentForm.js +7 -0
  41. package/out/components/CustomTooltip.js +34 -0
  42. package/out/hooks/useChatHistoryExists.js +32 -0
  43. package/out/hooks/useChatHistoryListExist.js +81 -0
  44. package/out/hooks/useChatScroll.js +14 -0
  45. package/out/hooks/useCurrentConversationExists.js +88 -0
  46. package/out/hooks/useInitialMessage.js +33 -0
  47. package/out/hooks/useMessage.js +230 -0
  48. package/out/hooks/useMessageReceiver.js +183 -0
  49. package/out/hooks/usePopupAnimation.js +20 -0
  50. package/out/hooks/useSocket.js +19 -0
  51. package/out/hooks/useSocketContext.js +81 -0
  52. package/out/hooks/useWidgetDimension.js +41 -0
  53. package/out/hooks/useWidgetToggle.js +22 -0
  54. package/out/index.js +31 -0
  55. package/out/markdown/CodeCopy.js +22 -0
  56. package/out/markdown/CodeHighlight.js +58 -0
  57. package/out/markdown/PagerMarkdown.js +36 -0
  58. package/out/markdown/pager_md.js +152 -0
  59. package/out/onscreenNotificationPopup.js +23 -0
  60. package/out/socket.js +11 -0
  61. package/out/utils/checkConversationExit.js +24 -0
  62. package/out/utils/convertTime.js +43 -0
  63. package/out/utils/sendInitialMessage.js +82 -0
  64. package/out/widget.js +21 -0
  65. package/out/widgetConfigStore.js +205 -0
  66. package/out/widgetConfigStore2.js +569 -0
  67. package/out/widgetControlstore.js +23 -0
  68. package/out/widgetStateHandler.js +106 -0
  69. package/out/widgetStore.js +171 -0
  70. package/out/widgetUserStore.js +47 -0
  71. package/package.json +1 -1
@@ -0,0 +1,569 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useWidgetInitializer = exports.useWidgetData = exports.widgetFetchStore2 = void 0;
4
+ exports.widgetHasData = widgetHasData;
5
+ exports.postWidgetRequest = postWidgetRequest;
6
+ /* eslint-disable @typescript-eslint/no-explicit-any */
7
+ const store_1 = require("@xstate/store");
8
+ const react_1 = require("@xstate/store/react");
9
+ const widgetStateHandler_1 = require("./widgetStateHandler");
10
+ function widgetHasData(widget) {
11
+ return 'data' in widget;
12
+ }
13
+ exports.widgetFetchStore2 = (0, store_1.createStore)({
14
+ context: {
15
+ widget: { status: 'NOT_STARTED' },
16
+ },
17
+ on: {
18
+ exitConversation: (context) => {
19
+ if (context.widget.status === 'ALLOW_MESSAGE') {
20
+ (0, widgetStateHandler_1.setWidgetLocalState)({
21
+ widget_id: context.widget.data.id,
22
+ user_state: 'SESSION_EXITED',
23
+ events: [{ type: 'SESSION_EXITED' }],
24
+ });
25
+ return {
26
+ widget: {
27
+ status: 'SESSION_EXITED',
28
+ config: context.widget.config,
29
+ data: context.widget.data,
30
+ },
31
+ };
32
+ }
33
+ },
34
+ processMessage: (context) => {
35
+ if (context.widget.status === 'FORM_SUBMITTED' ||
36
+ context.widget.status === 'NO_CONSENT_NEEDED' ||
37
+ context.widget.status === 'FORM_INPUT_NEEDED') {
38
+ if (context.widget.data.source_id !== 'new_user' ||
39
+ !context.widget.data.source_id.includes('browser')) {
40
+ (0, widgetStateHandler_1.setWidgetLocalState)({
41
+ widget_id: context.widget.data.id,
42
+ user_state: 'ALLOW_MESSAGE',
43
+ events: [{ type: 'ALLOW_MESSAGE' }],
44
+ });
45
+ return {
46
+ widget: {
47
+ status: 'ALLOW_MESSAGE',
48
+ config: context.widget.config,
49
+ data: context.widget.data,
50
+ form_data: context.widget.status === 'FORM_SUBMITTED'
51
+ ? context.widget.form_data
52
+ : null,
53
+ },
54
+ };
55
+ }
56
+ }
57
+ },
58
+ formSubmitted: (context, event) => {
59
+ console.log(context, 'form submitted context');
60
+ if (context.widget.status === 'FORM_INPUT_NEEDED') {
61
+ return {
62
+ widget: {
63
+ status: 'FORM_SUBMITTED',
64
+ config: context.widget.config,
65
+ data: {
66
+ ...context.widget.data,
67
+ source_id: event.source_id,
68
+ },
69
+ form_data: context.widget.form_data,
70
+ },
71
+ };
72
+ }
73
+ },
74
+ processFormSubmission: (context, event, enqueueAction) => {
75
+ if (context.widget.status === 'FORM_INPUT_NEEDED') {
76
+ const endpoint = context.widget.config.endpoint;
77
+ const widget_id = context.widget.config.widget_id;
78
+ const workspace = context.widget.data.workspace;
79
+ const config = context.widget.config;
80
+ const form_data = context.widget.form_data;
81
+ enqueueAction.effect(async () => {
82
+ try {
83
+ const result = await postWidgetRequest(endpoint, widget_id, workspace, event.submissionPayload);
84
+ console.log('CONTEXT', context);
85
+ (0, widgetStateHandler_1.setWidgetLocalState)({
86
+ widget_id: config.widget_id,
87
+ user_state: 'FORM_SUBMITTED',
88
+ events: {
89
+ type: 'FORM_SUBMITTED',
90
+ submissionPayload: event.submissionPayload,
91
+ form_data: form_data,
92
+ },
93
+ });
94
+ exports.widgetFetchStore2.trigger.formSubmitted({
95
+ source_id: result.source_id,
96
+ submissionPayload: event.submissionPayload,
97
+ });
98
+ }
99
+ catch (error) {
100
+ console.error('Form submission failed:', error);
101
+ }
102
+ });
103
+ }
104
+ },
105
+ loaded: (_context, event) => {
106
+ return {
107
+ widget: {
108
+ status: 'WIDGET_LOADED',
109
+ config: event.config,
110
+ data: event.data,
111
+ form_data: event.form_data,
112
+ },
113
+ };
114
+ },
115
+ setConfig: (context, event, enqueueAction) => {
116
+ enqueueAction.effect(() => {
117
+ exports.widgetFetchStore2.trigger.setFetchConfig({
118
+ widget_id: event.config.widget_id,
119
+ endpoint: event.config.endpoint,
120
+ });
121
+ });
122
+ if (context.widget.status === 'NOT_STARTED') {
123
+ return {
124
+ widget: {
125
+ status: 'WIDGET_LOADING',
126
+ config: event.config,
127
+ },
128
+ };
129
+ }
130
+ },
131
+ shouldShowForm: (context, event) => {
132
+ if (context.widget.status === 'CONSENT_GIVEN') {
133
+ if (context.widget.data.source_id.includes('browser') &&
134
+ context.widget.data.lead_form_id == null) {
135
+ return {
136
+ widget: {
137
+ status: 'ALLOW_MESSAGE',
138
+ config: context.widget.config,
139
+ data: context.widget.data,
140
+ form_data: context.widget.form_data,
141
+ },
142
+ };
143
+ }
144
+ if (context.widget.data.source_id.includes('browser') &&
145
+ context.widget.form_data) {
146
+ console.log('check here..');
147
+ (0, widgetStateHandler_1.setWidgetLocalState)({
148
+ widget_id: context.widget.data.id,
149
+ user_state: 'FORM_INPUT_NEEDED',
150
+ events: {
151
+ type: 'FORM_INPUT_NEEDED',
152
+ form_data: context.widget.form_data,
153
+ },
154
+ });
155
+ return {
156
+ widget: {
157
+ status: 'FORM_INPUT_NEEDED',
158
+ config: context.widget.config,
159
+ browser_data: event.browser_data,
160
+ data: context.widget.data,
161
+ form_data: context.widget.form_data,
162
+ },
163
+ };
164
+ }
165
+ }
166
+ if (context.widget.status === 'WIDGET_LOADED') {
167
+ if (context.widget.data.source_id.includes('browser') &&
168
+ context.widget.data.lead_form_id === null) {
169
+ return {
170
+ widget: {
171
+ status: 'ALLOW_MESSAGE',
172
+ data: context.widget.data,
173
+ config: context.widget.config,
174
+ form_data: context.widget.form_data,
175
+ },
176
+ };
177
+ }
178
+ if (context.widget.data.source_id.includes('browser') &&
179
+ context.widget.form_data) {
180
+ // console.log("check here also")
181
+ (0, widgetStateHandler_1.setWidgetLocalState)({
182
+ widget_id: context.widget.data.id,
183
+ user_state: 'FORM_INPUT_NEEDED',
184
+ events: {
185
+ type: 'FORM_INPUT_NEEDED',
186
+ form_data: context.widget.form_data,
187
+ },
188
+ });
189
+ return {
190
+ widget: {
191
+ status: 'FORM_INPUT_NEEDED',
192
+ config: context.widget.config,
193
+ data: context.widget.data,
194
+ form_data: context.widget.form_data,
195
+ },
196
+ };
197
+ }
198
+ }
199
+ },
200
+ consentGiven: (context, event) => {
201
+ if (context.widget.status === 'CONSENT_NEEDED') {
202
+ (0, widgetStateHandler_1.setWidgetLocalState)({
203
+ widget_id: context.widget?.data?.id,
204
+ user_state: 'CONSENT_GIVEN',
205
+ events: {
206
+ type: 'CONSENT_GIVEN',
207
+ submissionPayload: event.submissionPayload,
208
+ },
209
+ });
210
+ return {
211
+ widget: {
212
+ status: 'CONSENT_GIVEN',
213
+ data: {
214
+ ...context.widget.data,
215
+ source_id: event.source_id,
216
+ },
217
+ config: context.widget.config,
218
+ browser_data: event.submissionPayload,
219
+ form_data: context.widget.form_data,
220
+ },
221
+ };
222
+ }
223
+ },
224
+ processConsent: (context, event, enqueueAction) => {
225
+ if (context.widget.status === 'CONSENT_NEEDED') {
226
+ const endpoint = context.widget.config.endpoint;
227
+ const widget_id = context.widget.data.id;
228
+ const workspace = context.widget.data.workspace;
229
+ if (event.consentState === 'DENIED') {
230
+ return {
231
+ widget: {
232
+ status: 'CONSENT_DENIED',
233
+ config: context.widget.config,
234
+ data: context.widget.data,
235
+ },
236
+ };
237
+ }
238
+ else if (event.consentState === 'GIVEN') {
239
+ enqueueAction.effect(async () => {
240
+ // await postWidget(
241
+ // endpoint,
242
+ // widget_id,
243
+ // workspace,
244
+ // event.submissionPayload
245
+ // ).then(async (res) => {
246
+ // const { source_id } = await res?.json()
247
+ // const submissionPayload =
248
+ // event.submissionPayload as SubmissionPayloadT
249
+ // widgetFetchStore2.trigger.consentGiven({
250
+ // source_id,
251
+ // submissionPayload,
252
+ // })
253
+ // })
254
+ try {
255
+ const result = await postWidgetRequest(endpoint, widget_id, workspace, event?.submissionPayload);
256
+ exports.widgetFetchStore2.trigger.consentGiven({
257
+ source_id: result.source_id,
258
+ submissionPayload: event?.submissionPayload,
259
+ current_conversation_id: 'event?.current_conversation_id',
260
+ });
261
+ }
262
+ catch (error) {
263
+ console.error('consent submission failed:', error);
264
+ }
265
+ });
266
+ }
267
+ }
268
+ },
269
+ setWidgetError: (context, event) => {
270
+ if (
271
+ // context.widget.status === 'NOT_STARTED' ||
272
+ context.widget.status === 'WIDGET_LOADING') {
273
+ return {
274
+ widget: {
275
+ status: 'INVALID_STATE',
276
+ config: context.widget.config,
277
+ error: event.error,
278
+ },
279
+ };
280
+ }
281
+ },
282
+ setFormData: (context, event) => {
283
+ console.log(event.form_data, 'form data111');
284
+ if (context.widget.status === 'FORM_INPUT_NEEDED') {
285
+ (0, widgetStateHandler_1.setWidgetLocalState)({
286
+ widget_id: context.widget.data.id,
287
+ user_state: 'FORM_INPUT_NEEDED',
288
+ events: {
289
+ type: 'FORM_INPUT_NEEDED',
290
+ form_data: event.form_data,
291
+ },
292
+ });
293
+ return {
294
+ widget: {
295
+ status: 'FORM_INPUT_NEEDED',
296
+ config: context.widget.config,
297
+ form_data: event.form_data,
298
+ data: context.widget.data,
299
+ },
300
+ };
301
+ }
302
+ if (context.widget.status === 'CONSENT_NEEDED') {
303
+ return {
304
+ widget: {
305
+ status: 'CONSENT_NEEDED',
306
+ config: context.widget.config,
307
+ form_data: event.form_data,
308
+ data: context.widget.data,
309
+ consent: {
310
+ consent_display_data: event.consent_data,
311
+ },
312
+ },
313
+ };
314
+ }
315
+ },
316
+ setWidgetData: (context, event, enqueueAction) => {
317
+ if (context.widget.status === 'WIDGET_LOADING') {
318
+ const data = event.data;
319
+ if (data.user_consent === true &&
320
+ data?.source_id === 'new_user') {
321
+ const endpoint = context.widget.config.endpoint;
322
+ const widget_id = data.id;
323
+ const workspace = data.workspace;
324
+ enqueueAction.effect(async () => {
325
+ const result = await getformName(endpoint, workspace, widget_id);
326
+ exports.widgetFetchStore2.trigger.setFormData({
327
+ form_data: result,
328
+ consent_data: data.consent_data,
329
+ });
330
+ });
331
+ console.log('check consent needed');
332
+ return {
333
+ widget: {
334
+ status: 'CONSENT_NEEDED',
335
+ config: context.widget.config,
336
+ data: event.data,
337
+ consent: data?.consent_data,
338
+ },
339
+ };
340
+ }
341
+ else if (data?.user_consent === false &&
342
+ data?.lead_form_id !== null) {
343
+ const endpoint = context.widget.config.endpoint;
344
+ const widget_id = data.id;
345
+ const workspace = data.workspace;
346
+ enqueueAction.effect(async () => {
347
+ const result = await getformName(endpoint, workspace, widget_id);
348
+ exports.widgetFetchStore2.trigger.setFormData({
349
+ form_data: result,
350
+ consent_data: data.consent_data,
351
+ });
352
+ });
353
+ return {
354
+ widget: {
355
+ status: 'FORM_INPUT_NEEDED',
356
+ config: context.widget.config,
357
+ data: event.data,
358
+ },
359
+ };
360
+ }
361
+ else if (data?.user_consent === false) {
362
+ return {
363
+ widget: {
364
+ status: 'NO_CONSENT_NEEDED',
365
+ config: context.widget.config,
366
+ data: event.data,
367
+ },
368
+ };
369
+ }
370
+ else if (data?.user_consent === true &&
371
+ data.source_id.includes('browser')) {
372
+ const config = context.widget.config;
373
+ const endpoint = context.widget.config.endpoint;
374
+ const widget_id = data.id;
375
+ const workspace = data.workspace;
376
+ enqueueAction.effect(async () => {
377
+ const result = await getformName(endpoint, workspace, widget_id);
378
+ exports.widgetFetchStore2.trigger.loaded({
379
+ config: config,
380
+ data: event.data,
381
+ form_data: result,
382
+ });
383
+ });
384
+ }
385
+ else if (data?.source_id !== 'new_user' ||
386
+ !data?.source_id.includes('browser')) {
387
+ return {
388
+ widget: {
389
+ status: 'FORM_SUBMITTED',
390
+ config: context.widget.config,
391
+ data: data,
392
+ form_data: event.form_data,
393
+ },
394
+ };
395
+ }
396
+ // return {
397
+ // widget: {
398
+ // status: 'WIDGET_LOADING',
399
+ // config: context.widget.config,
400
+ // data: event.data,
401
+ // } as WidgetStoreV2,
402
+ // }
403
+ }
404
+ },
405
+ setFetchConfig: (_, event, enqueueAction) => {
406
+ const widgetId = event.widget_id;
407
+ const endpoint = event.endpoint;
408
+ enqueueAction.effect(async () => {
409
+ const result = await fetchWidget(endpoint, widgetId);
410
+ // ✅ First, check if result has an error before accessing result.data
411
+ if (result.status === 'error') {
412
+ exports.widgetFetchStore2.trigger.setWidgetError({
413
+ error: result.error,
414
+ });
415
+ return;
416
+ }
417
+ // ✅ Safe to access result.data now
418
+ const form_data = await getformName(endpoint, result.data.workspace, result.data.id);
419
+ exports.widgetFetchStore2.trigger.setWidgetData({
420
+ data: result.data,
421
+ form_data: form_data,
422
+ });
423
+ });
424
+ },
425
+ // setFetchConfig: (_, event: WidgetT, enqueueAction) => {
426
+ // const widgetId = event.widget_id
427
+ // const endpoint = event.endpoint
428
+ // enqueueAction.effect(async () => {
429
+ // const result = await fetchWidget(endpoint, widgetId)
430
+ // const form_data = await getformName(
431
+ // endpoint,
432
+ // result.data.workspace,
433
+ // result.data.id
434
+ // )
435
+ // if (result.status === 'error') {
436
+ // widgetFetchStore2.trigger.setWidgetError({
437
+ // error: result.error,
438
+ // })
439
+ // return
440
+ // }
441
+ // widgetFetchStore2.trigger.setWidgetData({
442
+ // data: result.data,
443
+ // form_data: form_data,
444
+ // })
445
+ // })
446
+ // },
447
+ },
448
+ });
449
+ const useWidgetData = () => (0, react_1.useSelector)(exports.widgetFetchStore2, (state) => {
450
+ return state.context.widget;
451
+ });
452
+ exports.useWidgetData = useWidgetData;
453
+ const useWidgetInitializer = (config, debug = false) => {
454
+ console.log(config, 'use initializer', config);
455
+ // useEffect(() => {
456
+ // config = {
457
+ // endpoint: "https://dev.pagergpt.ai/wgt-hook",
458
+ // widget_id: "d79b9a58-0028-45a6-b61e-06cfaffab781"
459
+ // }
460
+ console.log(config, 'use initializer', config);
461
+ exports.widgetFetchStore2.trigger.setConfig({ config });
462
+ if (debug) {
463
+ exports.widgetFetchStore2.inspect((inspectionEvent) => {
464
+ console.log('INSPECTION:: ', inspectionEvent);
465
+ });
466
+ }
467
+ // }, [])
468
+ };
469
+ exports.useWidgetInitializer = useWidgetInitializer;
470
+ const Result = {
471
+ ok: (a) => {
472
+ return {
473
+ status: 'success',
474
+ data: a,
475
+ };
476
+ },
477
+ err: (error) => {
478
+ return {
479
+ status: 'error',
480
+ error: error,
481
+ };
482
+ },
483
+ };
484
+ const fetchWidget = async (endpoint, widgetId) => {
485
+ try {
486
+ const response = await fetch(`${endpoint}/public/${widgetId}`, {
487
+ credentials: 'include',
488
+ });
489
+ if (response.ok) {
490
+ const data = await response.json();
491
+ const x = Result.ok(data);
492
+ return x;
493
+ }
494
+ else if (response.status === 404) {
495
+ return Result.err('Given widget does not exist');
496
+ }
497
+ else {
498
+ return Result.err('Somethig went wrong');
499
+ }
500
+ }
501
+ catch (_) {
502
+ console.error('Fetch error:', _);
503
+ return Result.err('Fetch error');
504
+ }
505
+ };
506
+ const getformName = async (endpoint, workspace, widgetId) => {
507
+ try {
508
+ const response = await fetch(`${endpoint}/public/${workspace}/${widgetId}/form`);
509
+ if (response.ok) {
510
+ const data = await response.json();
511
+ return data.form_data;
512
+ }
513
+ else {
514
+ return Result.err('Something went wrong');
515
+ }
516
+ }
517
+ catch (error) {
518
+ console.error('Fetch error:', error);
519
+ return Result.err('Fetch error');
520
+ }
521
+ };
522
+ async function postWidgetRequest(endpoint, widgetId, workspace, submissionPayload) {
523
+ console.log('post widget', endpoint, workspace, widgetId);
524
+ const url = `${endpoint}/${workspace}/${widgetId}/lead`;
525
+ const response = await fetch(url, {
526
+ method: 'POST',
527
+ credentials: 'include',
528
+ headers: {
529
+ 'Content-Type': 'application/json',
530
+ },
531
+ body: JSON.stringify(submissionPayload),
532
+ });
533
+ if (!response.ok) {
534
+ const errorText = await response.text();
535
+ throw new Error(`POST failed: ${response.status} - ${errorText}`);
536
+ }
537
+ const data = await response.json();
538
+ if (!data || typeof data.source_id !== 'string') {
539
+ throw new Error('Invalid response format: source_id missing');
540
+ }
541
+ return data;
542
+ }
543
+ // const postWidget = async (
544
+ // endpoint: string,
545
+ // widgetId: string,
546
+ // workspace: string,
547
+ // submissionPayload:any
548
+ // ) => {
549
+ // try {
550
+ // const response = await fetch(
551
+ // `${endpoint}/${workspace}/${widgetId}/lead`,
552
+ // {
553
+ // method: 'POST',
554
+ // credentials: 'include',
555
+ // headers: {
556
+ // 'Content-Type': 'application/json',
557
+ // },
558
+ // body: JSON.stringify(submissionPayload),
559
+ // }
560
+ // )
561
+ // if (response.ok) {
562
+ // return response
563
+ // } else {
564
+ // throw new Error(`HTTP error! status: ${response.status}`)
565
+ // }
566
+ // } catch (error) {
567
+ // console.error('Error posting widget:', error)
568
+ // }
569
+ // }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useWidgetToggle = exports.widgetControlStore = void 0;
4
+ const store_1 = require("@xstate/store");
5
+ const react_1 = require("@xstate/store/react");
6
+ exports.widgetControlStore = (0, store_1.createStore)({
7
+ context: {
8
+ widgetToggleState: 'Open',
9
+ widgetConfig: null,
10
+ },
11
+ on: {
12
+ toggleWidget: (context, event) => ({
13
+ ...context,
14
+ widgetToggleState: event.toggleState,
15
+ }),
16
+ setConfig: (context, event) => ({
17
+ ...context,
18
+ widgetConfig: event.config,
19
+ }),
20
+ },
21
+ });
22
+ const useWidgetToggle = () => (0, react_1.useSelector)(exports.widgetControlStore, (state) => state.context.widgetToggleState);
23
+ exports.useWidgetToggle = useWidgetToggle;