coveo.analytics 2.30.56 → 2.32.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 (84) hide show
  1. package/README.md +37 -43
  2. package/dist/browser.mjs +513 -357
  3. package/dist/coveoua.browser.js +1 -1
  4. package/dist/coveoua.browser.js.map +1 -1
  5. package/dist/coveoua.debug.js +542 -359
  6. package/dist/coveoua.debug.js.map +1 -1
  7. package/dist/coveoua.js +1 -1
  8. package/dist/coveoua.js.map +1 -1
  9. package/dist/definitions/client/analytics.d.ts +3 -2
  10. package/dist/definitions/client/runtimeEnvironment.d.ts +1 -1
  11. package/dist/definitions/donottrack.d.ts +1 -0
  12. package/dist/definitions/react-native/index.d.ts +1 -2
  13. package/dist/definitions/version.d.ts +1 -1
  14. package/dist/library.cjs +15350 -3699
  15. package/dist/library.es.js +513 -357
  16. package/dist/library.js +15350 -3699
  17. package/dist/library.mjs +15350 -3699
  18. package/dist/react-native.es.js +634 -460
  19. package/modules/package.json +9 -9
  20. package/package.json +60 -91
  21. package/react-native/package.json +7 -7
  22. package/src/caseAssist/caseAssistActions.ts +51 -50
  23. package/src/caseAssist/caseAssistClient.spec.ts +328 -297
  24. package/src/caseAssist/caseAssistClient.ts +201 -185
  25. package/src/client/analytics.spec.ts +724 -703
  26. package/src/client/analytics.ts +677 -602
  27. package/src/client/analyticsBeaconClient.spec.ts +195 -188
  28. package/src/client/analyticsBeaconClient.ts +99 -88
  29. package/src/client/analyticsFetchClient.ts +77 -61
  30. package/src/client/analyticsRequestClient.ts +17 -17
  31. package/src/client/location.ts +3 -3
  32. package/src/client/measurementProtocolMapper.ts +54 -45
  33. package/src/client/measurementProtocolMapping/baseMeasurementProtocolMapper.ts +48 -44
  34. package/src/client/measurementProtocolMapping/commerceMeasurementProtocolMapper.ts +133 -121
  35. package/src/client/measurementProtocolMapping/serviceMeasurementProtocolMapper.ts +17 -17
  36. package/src/client/noopAnalytics.ts +80 -68
  37. package/src/client/runtimeEnvironment.ts +50 -41
  38. package/src/client/utils.spec.ts +112 -97
  39. package/src/client/utils.ts +39 -39
  40. package/src/cookieutils.spec.ts +59 -0
  41. package/src/cookieutils.ts +40 -39
  42. package/src/coveoua/browser.ts +14 -12
  43. package/src/coveoua/library.ts +4 -4
  44. package/src/coveoua/plugins.ts +36 -34
  45. package/src/coveoua/simpleanalytics.spec.ts +467 -452
  46. package/src/coveoua/simpleanalytics.ts +146 -140
  47. package/src/detector.ts +17 -17
  48. package/src/donottrack.spec.ts +199 -121
  49. package/src/donottrack.ts +31 -8
  50. package/src/events.ts +86 -79
  51. package/src/formatting/format-array-for-coveo-custom-data.spec.ts +13 -12
  52. package/src/formatting/format-array-for-coveo-custom-data.ts +18 -18
  53. package/src/formatting/format-omnibox-metadata.ts +16 -12
  54. package/src/history.spec.ts +197 -195
  55. package/src/history.ts +143 -133
  56. package/src/hook/addDefaultValues.ts +13 -8
  57. package/src/hook/enhanceViewEvent.ts +17 -17
  58. package/src/insight/insightClient.spec.ts +1848 -1717
  59. package/src/insight/insightClient.ts +866 -761
  60. package/src/insight/insightEvents.ts +57 -56
  61. package/src/plugins/BasePlugin.ts +125 -121
  62. package/src/plugins/ec.spec.ts +457 -429
  63. package/src/plugins/ec.ts +202 -199
  64. package/src/plugins/link.spec.ts +183 -159
  65. package/src/plugins/link.ts +88 -85
  66. package/src/plugins/svc.spec.ts +161 -155
  67. package/src/plugins/svc.ts +93 -91
  68. package/src/react-native/index.ts +8 -1
  69. package/src/react-native/react-native-runtime.ts +33 -33
  70. package/src/react-native/react-native-utils.ts +1 -1
  71. package/src/react-native/react-native.spec.ts +31 -21
  72. package/src/searchPage/searchPageClient.spec.ts +1944 -1794
  73. package/src/searchPage/searchPageClient.ts +1261 -1040
  74. package/src/searchPage/searchPageEvents.ts +524 -511
  75. package/src/storage.spec.ts +51 -51
  76. package/src/storage.ts +47 -47
  77. package/dist/definitions/bundle/browser-fetch.d.ts +0 -1
  78. package/dist/definitions/src/coveoua/browser.d.ts +0 -6
  79. package/dist/definitions/src/coveoua/headless.d.ts +0 -6
  80. package/dist/definitions/src/coveoua/library.d.ts +0 -17
  81. package/dist/definitions/src/coveoua/plugins.d.ts +0 -10
  82. package/dist/definitions/src/coveoua/simpleanalytics.d.ts +0 -33
  83. package/dist/definitions/src/react-native/index.d.ts +0 -3
  84. package/dist/definitions/src/react-native/react-native-runtime.d.ts +0 -19
@@ -1,792 +1,897 @@
1
1
  import CoveoAnalyticsClient, {AnalyticsClient, ClientOptions} from '../client/analytics';
2
2
  import {NoopAnalytics} from '../client/noopAnalytics';
3
- import doNotTrack from '../donottrack';
3
+ import {shouldDisableAnalyticsForPrivacy} from '../donottrack';
4
4
  import {ClickEventRequest, CustomEventRequest, SearchEventRequest} from '../events';
5
5
  import {
6
- CustomEventsTypes,
7
- DocumentIdentifier,
8
- FacetStateMetadata,
9
- GeneratedAnswerBaseMeta,
10
- GeneratedAnswerCitationClickMeta,
11
- GeneratedAnswerCitationMeta,
12
- GeneratedAnswerFeedbackMeta,
13
- GeneratedAnswerFeedbackMetaV2,
14
- GeneratedAnswerRephraseMeta,
15
- GeneratedAnswerSourceHoverMeta,
16
- GeneratedAnswerStreamEndMeta,
17
- PartialDocumentInformation,
18
- SearchPageEvents,
19
- SmartSnippetDocumentIdentifier,
20
- SmartSnippetFeedbackReason,
21
- SmartSnippetLinkMeta,
22
- SmartSnippetSuggestionMeta,
23
- TriggerNotifyMetadata,
6
+ CustomEventsTypes,
7
+ DocumentIdentifier,
8
+ FacetStateMetadata,
9
+ GeneratedAnswerBaseMeta,
10
+ GeneratedAnswerCitationClickMeta,
11
+ GeneratedAnswerCitationMeta,
12
+ GeneratedAnswerFeedbackMeta,
13
+ GeneratedAnswerFeedbackMetaV2,
14
+ GeneratedAnswerRephraseMeta,
15
+ GeneratedAnswerSourceHoverMeta,
16
+ GeneratedAnswerStreamEndMeta,
17
+ PartialDocumentInformation,
18
+ SearchPageEvents,
19
+ SmartSnippetDocumentIdentifier,
20
+ SmartSnippetFeedbackReason,
21
+ SmartSnippetLinkMeta,
22
+ SmartSnippetSuggestionMeta,
23
+ TriggerNotifyMetadata,
24
24
  } from '../searchPage/searchPageEvents';
25
25
  import {
26
- ExpandToFullUIMetadata,
27
- InsightEvents,
28
- InsightFacetMetadata,
29
- InsightInterfaceChangeMetadata,
30
- InsightStaticFilterToggleValueMetadata,
31
- InsightFacetRangeMetadata,
32
- InsightCategoryFacetMetadata,
33
- CaseMetadata,
34
- InsightFacetSortMeta,
35
- InsightFacetBaseMeta,
36
- InsightQueryErrorMeta,
37
- InsightPagerMetadata,
38
- InsightResultsSortMetadata,
39
- UserActionsDocumentMetadata,
40
- UserActionsPageViewMetadata,
41
- CreateArticleMetadata,
26
+ ExpandToFullUIMetadata,
27
+ InsightEvents,
28
+ InsightFacetMetadata,
29
+ InsightInterfaceChangeMetadata,
30
+ InsightStaticFilterToggleValueMetadata,
31
+ InsightFacetRangeMetadata,
32
+ InsightCategoryFacetMetadata,
33
+ CaseMetadata,
34
+ InsightFacetSortMeta,
35
+ InsightFacetBaseMeta,
36
+ InsightQueryErrorMeta,
37
+ InsightPagerMetadata,
38
+ InsightResultsSortMetadata,
39
+ UserActionsDocumentMetadata,
40
+ UserActionsPageViewMetadata,
41
+ CreateArticleMetadata,
42
42
  } from './insightEvents';
43
43
 
44
44
  export interface InsightClientProvider {
45
- getSearchEventRequestPayload: () => Omit<SearchEventRequest, 'actionCause' | 'searchQueryUid'>;
46
- getSearchUID: () => string;
47
- getBaseMetadata: () => Record<string, any>;
48
- getPipeline: () => string;
49
- getOriginContext?: () => string;
50
- getOriginLevel1: () => string;
51
- getOriginLevel2: () => string;
52
- getOriginLevel3: () => string;
53
- getLanguage: () => string;
54
- getIsAnonymous: () => boolean;
55
- getFacetState?: () => FacetStateMetadata[];
56
- getGeneratedAnswerMetadata?: () => Record<string, any>;
45
+ getSearchEventRequestPayload: () => Omit<SearchEventRequest, 'actionCause' | 'searchQueryUid'>;
46
+ getSearchUID: () => string;
47
+ getBaseMetadata: () => Record<string, any>;
48
+ getPipeline: () => string;
49
+ getOriginContext?: () => string;
50
+ getOriginLevel1: () => string;
51
+ getOriginLevel2: () => string;
52
+ getOriginLevel3: () => string;
53
+ getLanguage: () => string;
54
+ getIsAnonymous: () => boolean;
55
+ getFacetState?: () => FacetStateMetadata[];
56
+ getGeneratedAnswerMetadata?: () => Record<string, any>;
57
57
  }
58
58
 
59
59
  export interface InsightClientOptions extends ClientOptions {
60
- enableAnalytics: boolean;
60
+ enableAnalytics: boolean;
61
61
  }
62
62
 
63
63
  const extractContextFromMetadata = (meta: {caseContext?: Record<string, string>}) => {
64
- const context: Record<string, string> = {};
65
- if (meta.caseContext) {
66
- Object.keys(meta.caseContext).forEach((contextKey) => {
67
- const value = meta.caseContext?.[contextKey];
68
- if (value) {
69
- const keyToBeSent = `context_${contextKey}`;
70
- context[keyToBeSent] = value;
71
- }
72
- });
73
- }
74
- return context;
64
+ const context: Record<string, string> = {};
65
+ if (meta.caseContext) {
66
+ Object.keys(meta.caseContext).forEach((contextKey) => {
67
+ const value = meta.caseContext?.[contextKey];
68
+ if (value) {
69
+ const keyToBeSent = `context_${contextKey}`;
70
+ context[keyToBeSent] = value;
71
+ }
72
+ });
73
+ }
74
+ return context;
75
75
  };
76
76
 
77
77
  const generateMetadataToSend = (metadata: CaseMetadata, includeContext = true) => {
78
- const {caseContext, caseId, caseNumber, ...metadataWithoutContext} = metadata;
79
- const context = extractContextFromMetadata(metadata);
80
-
81
- return {
82
- CaseId: caseId,
83
- CaseNumber: caseNumber,
84
- ...metadataWithoutContext,
85
- ...(!!context.context_Case_Subject && {CaseSubject: context.context_Case_Subject}),
86
- ...(includeContext && context),
87
- };
78
+ const {caseContext, caseId, caseNumber, ...metadataWithoutContext} = metadata;
79
+ const context = extractContextFromMetadata(metadata);
80
+
81
+ return {
82
+ CaseId: caseId,
83
+ CaseNumber: caseNumber,
84
+ ...metadataWithoutContext,
85
+ ...(!!context.context_Case_Subject && {
86
+ CaseSubject: context.context_Case_Subject,
87
+ }),
88
+ ...(includeContext && context),
89
+ };
88
90
  };
89
91
 
90
92
  export class CoveoInsightClient {
91
- public coveoAnalyticsClient: AnalyticsClient;
92
-
93
- constructor(
94
- private opts: Partial<InsightClientOptions>,
95
- private provider: InsightClientProvider,
96
- ) {
97
- const shouldDisableAnalytics = opts.enableAnalytics === false || doNotTrack();
98
- this.coveoAnalyticsClient = shouldDisableAnalytics ? new NoopAnalytics() : new CoveoAnalyticsClient(opts);
99
- }
100
-
101
- public disable() {
102
- this.coveoAnalyticsClient = new NoopAnalytics();
103
- }
104
-
105
- public enable() {
106
- this.coveoAnalyticsClient = new CoveoAnalyticsClient(this.opts);
107
- }
108
-
109
- public logInterfaceLoad(metadata?: CaseMetadata) {
110
- if (metadata) {
111
- const metadataToSend = generateMetadataToSend(metadata);
112
- return this.logSearchEvent(SearchPageEvents.interfaceLoad, metadataToSend);
113
- }
114
- return this.logSearchEvent(SearchPageEvents.interfaceLoad);
115
- }
116
-
117
- public logRecentQueryClick(metadata?: CaseMetadata) {
118
- if (metadata) {
119
- const metadataToSend = generateMetadataToSend(metadata);
120
- return this.logSearchEvent(SearchPageEvents.recentQueryClick, metadataToSend);
121
- }
122
- return this.logSearchEvent(SearchPageEvents.recentQueryClick);
123
- }
124
-
125
- public logClearRecentQueries(metadata?: CaseMetadata) {
126
- if (metadata) {
127
- const metadataToSend = generateMetadataToSend(metadata);
128
- return this.logCustomEvent(SearchPageEvents.clearRecentQueries, metadataToSend);
129
- }
130
- return this.logCustomEvent(SearchPageEvents.clearRecentQueries);
131
- }
132
-
133
- public logInterfaceChange(metadata: InsightInterfaceChangeMetadata) {
134
- const metadataToSend = generateMetadataToSend(metadata);
135
- return this.logSearchEvent(SearchPageEvents.interfaceChange, metadataToSend);
136
- }
137
-
138
- public logStaticFilterDeselect(metadata: InsightStaticFilterToggleValueMetadata) {
139
- const metadataToSend = generateMetadataToSend(metadata);
140
- return this.logSearchEvent(SearchPageEvents.staticFilterDeselect, metadataToSend);
141
- }
142
-
143
- public logFetchMoreResults(metadata?: CaseMetadata) {
144
- if (metadata) {
145
- const metadataToSend = generateMetadataToSend(metadata);
146
- return this.logCustomEvent(SearchPageEvents.pagerScrolling, {...metadataToSend, type: 'getMoreResults'});
147
- }
148
- return this.logCustomEvent(SearchPageEvents.pagerScrolling, {type: 'getMoreResults'});
149
- }
150
-
151
- public logBreadcrumbFacet(
152
- metadata: InsightFacetMetadata | InsightFacetRangeMetadata | InsightCategoryFacetMetadata,
153
- ) {
154
- const metadataToSend = generateMetadataToSend(metadata);
155
- return this.logSearchEvent(SearchPageEvents.breadcrumbFacet, metadataToSend);
156
- }
157
-
158
- public logBreadcrumbResetAll(metadata?: CaseMetadata) {
159
- if (metadata) {
160
- const metadataToSend = generateMetadataToSend(metadata);
161
- return this.logSearchEvent(SearchPageEvents.breadcrumbResetAll, metadataToSend);
162
- }
163
- return this.logSearchEvent(SearchPageEvents.breadcrumbResetAll);
164
- }
165
-
166
- public logFacetSelect(metadata: InsightFacetMetadata) {
167
- const metadataToSend = generateMetadataToSend(metadata);
168
- return this.logSearchEvent(SearchPageEvents.facetSelect, metadataToSend);
169
- }
170
-
171
- public logFacetExclude(metadata: InsightFacetMetadata) {
172
- const metadataToSend = generateMetadataToSend(metadata);
173
- return this.logSearchEvent(SearchPageEvents.facetExclude, metadataToSend);
174
- }
175
-
176
- public logFacetDeselect(metadata: InsightFacetMetadata) {
177
- const metadataToSend = generateMetadataToSend(metadata);
178
- return this.logSearchEvent(SearchPageEvents.facetDeselect, metadataToSend);
179
- }
180
-
181
- public logFacetUpdateSort(metadata: InsightFacetSortMeta) {
182
- const metadataToSend = generateMetadataToSend(metadata);
183
- return this.logSearchEvent(SearchPageEvents.facetUpdateSort, metadataToSend);
184
- }
185
-
186
- public logFacetClearAll(metadata: InsightFacetBaseMeta) {
187
- const metadataToSend = generateMetadataToSend(metadata);
188
- return this.logSearchEvent(SearchPageEvents.facetClearAll, metadataToSend);
189
- }
190
-
191
- public logFacetShowMore(metadata: InsightFacetBaseMeta) {
192
- const metadataToSend = generateMetadataToSend(metadata, false);
193
- return this.logCustomEvent(SearchPageEvents.facetShowMore, metadataToSend);
194
- }
195
-
196
- public logFacetShowLess(metadata: InsightFacetBaseMeta) {
197
- const metadataToSend = generateMetadataToSend(metadata, false);
198
- return this.logCustomEvent(SearchPageEvents.facetShowLess, metadataToSend);
199
- }
200
-
201
- public logQueryError(metadata: InsightQueryErrorMeta) {
202
- const metadataToSend = generateMetadataToSend(metadata, false);
203
- return this.logCustomEvent(SearchPageEvents.queryError, metadataToSend);
204
- }
205
-
206
- public logPagerNumber(metadata: InsightPagerMetadata) {
207
- const metadataToSend = generateMetadataToSend(metadata, false);
208
- return this.logCustomEvent(SearchPageEvents.pagerNumber, metadataToSend);
209
- }
210
-
211
- public logPagerNext(metadata: InsightPagerMetadata) {
212
- const metadataToSend = generateMetadataToSend(metadata, false);
213
- return this.logCustomEvent(SearchPageEvents.pagerNext, metadataToSend);
214
- }
215
-
216
- public logPagerPrevious(metadata: InsightPagerMetadata) {
217
- const metadataToSend = generateMetadataToSend(metadata, false);
218
- return this.logCustomEvent(SearchPageEvents.pagerPrevious, metadataToSend);
219
- }
220
-
221
- public logDidYouMeanAutomatic(metadata?: CaseMetadata) {
222
- if (metadata) {
223
- const metadataToSend = generateMetadataToSend(metadata);
224
- return this.logSearchEvent(SearchPageEvents.didyoumeanAutomatic, metadataToSend);
225
- }
226
- return this.logSearchEvent(SearchPageEvents.didyoumeanAutomatic);
227
- }
228
-
229
- public logDidYouMeanClick(metadata?: CaseMetadata) {
230
- if (metadata) {
231
- const metadataToSend = generateMetadataToSend(metadata);
232
- return this.logSearchEvent(SearchPageEvents.didyoumeanClick, metadataToSend);
233
- }
234
- return this.logSearchEvent(SearchPageEvents.didyoumeanClick);
235
- }
236
-
237
- public logResultsSort(metadata: InsightResultsSortMetadata) {
238
- const metadataToSend = generateMetadataToSend(metadata);
239
- return this.logSearchEvent(SearchPageEvents.resultsSort, metadataToSend);
240
- }
241
-
242
- public logSearchboxSubmit(metadata?: CaseMetadata) {
243
- if (metadata) {
244
- const metadataToSend = generateMetadataToSend(metadata);
245
- return this.logSearchEvent(SearchPageEvents.searchboxSubmit, metadataToSend);
246
- }
247
- return this.logSearchEvent(SearchPageEvents.searchboxSubmit);
248
- }
249
-
250
- public logContextChanged(metadata: CaseMetadata) {
251
- const metadataToSend = generateMetadataToSend(metadata);
252
- return this.logSearchEvent(InsightEvents.contextChanged, metadataToSend);
253
- }
254
-
255
- public logExpandToFullUI(metadata: ExpandToFullUIMetadata) {
256
- const metadataToSend = generateMetadataToSend(metadata);
257
- return this.logCustomEvent(InsightEvents.expandToFullUI, metadataToSend);
258
- }
259
-
260
- public logOpenUserActions(metadata: CaseMetadata) {
261
- const metadataToSend = generateMetadataToSend(metadata, false);
262
- return this.logCustomEvent(InsightEvents.openUserActions, metadataToSend);
263
- }
264
-
265
- public logShowPrecedingSessions(metadata: CaseMetadata) {
266
- const metadataToSend = generateMetadataToSend(metadata, false);
267
- return this.logCustomEvent(InsightEvents.showPrecedingSessions, metadataToSend);
268
- }
269
-
270
- public logShowFollowingSessions(metadata: CaseMetadata) {
271
- const metadataToSend = generateMetadataToSend(metadata, false);
272
- return this.logCustomEvent(InsightEvents.showFollowingSessions, metadataToSend);
273
- }
93
+ public coveoAnalyticsClient: AnalyticsClient;
94
+
95
+ constructor(
96
+ private opts: Partial<InsightClientOptions>,
97
+ private provider: InsightClientProvider
98
+ ) {
99
+ const shouldDisableAnalytics =
100
+ opts.enableAnalytics === false ||
101
+ shouldDisableAnalyticsForPrivacy(opts.disableBrowserPrivacySignals);
102
+ this.coveoAnalyticsClient = shouldDisableAnalytics
103
+ ? new NoopAnalytics()
104
+ : new CoveoAnalyticsClient(opts);
105
+ }
106
+
107
+ public disable() {
108
+ this.coveoAnalyticsClient = new NoopAnalytics();
109
+ }
110
+
111
+ public enable() {
112
+ this.coveoAnalyticsClient = new CoveoAnalyticsClient(this.opts);
113
+ }
114
+
115
+ public logInterfaceLoad(metadata?: CaseMetadata) {
116
+ if (metadata) {
117
+ const metadataToSend = generateMetadataToSend(metadata);
118
+ return this.logSearchEvent(SearchPageEvents.interfaceLoad, metadataToSend);
119
+ }
120
+ return this.logSearchEvent(SearchPageEvents.interfaceLoad);
121
+ }
122
+
123
+ public logRecentQueryClick(metadata?: CaseMetadata) {
124
+ if (metadata) {
125
+ const metadataToSend = generateMetadataToSend(metadata);
126
+ return this.logSearchEvent(SearchPageEvents.recentQueryClick, metadataToSend);
127
+ }
128
+ return this.logSearchEvent(SearchPageEvents.recentQueryClick);
129
+ }
130
+
131
+ public logClearRecentQueries(metadata?: CaseMetadata) {
132
+ if (metadata) {
133
+ const metadataToSend = generateMetadataToSend(metadata);
134
+ return this.logCustomEvent(SearchPageEvents.clearRecentQueries, metadataToSend);
135
+ }
136
+ return this.logCustomEvent(SearchPageEvents.clearRecentQueries);
137
+ }
138
+
139
+ public logInterfaceChange(metadata: InsightInterfaceChangeMetadata) {
140
+ const metadataToSend = generateMetadataToSend(metadata);
141
+ return this.logSearchEvent(SearchPageEvents.interfaceChange, metadataToSend);
142
+ }
143
+
144
+ public logStaticFilterDeselect(metadata: InsightStaticFilterToggleValueMetadata) {
145
+ const metadataToSend = generateMetadataToSend(metadata);
146
+ return this.logSearchEvent(SearchPageEvents.staticFilterDeselect, metadataToSend);
147
+ }
148
+
149
+ public logFetchMoreResults(metadata?: CaseMetadata) {
150
+ if (metadata) {
151
+ const metadataToSend = generateMetadataToSend(metadata);
152
+ return this.logCustomEvent(SearchPageEvents.pagerScrolling, {
153
+ ...metadataToSend,
154
+ type: 'getMoreResults',
155
+ });
156
+ }
157
+ return this.logCustomEvent(SearchPageEvents.pagerScrolling, {
158
+ type: 'getMoreResults',
159
+ });
160
+ }
161
+
162
+ public logBreadcrumbFacet(
163
+ metadata: InsightFacetMetadata | InsightFacetRangeMetadata | InsightCategoryFacetMetadata
164
+ ) {
165
+ const metadataToSend = generateMetadataToSend(metadata);
166
+ return this.logSearchEvent(SearchPageEvents.breadcrumbFacet, metadataToSend);
167
+ }
168
+
169
+ public logBreadcrumbResetAll(metadata?: CaseMetadata) {
170
+ if (metadata) {
171
+ const metadataToSend = generateMetadataToSend(metadata);
172
+ return this.logSearchEvent(SearchPageEvents.breadcrumbResetAll, metadataToSend);
173
+ }
174
+ return this.logSearchEvent(SearchPageEvents.breadcrumbResetAll);
175
+ }
176
+
177
+ public logFacetSelect(metadata: InsightFacetMetadata) {
178
+ const metadataToSend = generateMetadataToSend(metadata);
179
+ return this.logSearchEvent(SearchPageEvents.facetSelect, metadataToSend);
180
+ }
181
+
182
+ public logFacetExclude(metadata: InsightFacetMetadata) {
183
+ const metadataToSend = generateMetadataToSend(metadata);
184
+ return this.logSearchEvent(SearchPageEvents.facetExclude, metadataToSend);
185
+ }
186
+
187
+ public logFacetDeselect(metadata: InsightFacetMetadata) {
188
+ const metadataToSend = generateMetadataToSend(metadata);
189
+ return this.logSearchEvent(SearchPageEvents.facetDeselect, metadataToSend);
190
+ }
191
+
192
+ public logFacetUpdateSort(metadata: InsightFacetSortMeta) {
193
+ const metadataToSend = generateMetadataToSend(metadata);
194
+ return this.logSearchEvent(SearchPageEvents.facetUpdateSort, metadataToSend);
195
+ }
196
+
197
+ public logFacetClearAll(metadata: InsightFacetBaseMeta) {
198
+ const metadataToSend = generateMetadataToSend(metadata);
199
+ return this.logSearchEvent(SearchPageEvents.facetClearAll, metadataToSend);
200
+ }
201
+
202
+ public logFacetShowMore(metadata: InsightFacetBaseMeta) {
203
+ const metadataToSend = generateMetadataToSend(metadata, false);
204
+ return this.logCustomEvent(SearchPageEvents.facetShowMore, metadataToSend);
205
+ }
206
+
207
+ public logFacetShowLess(metadata: InsightFacetBaseMeta) {
208
+ const metadataToSend = generateMetadataToSend(metadata, false);
209
+ return this.logCustomEvent(SearchPageEvents.facetShowLess, metadataToSend);
210
+ }
211
+
212
+ public logQueryError(metadata: InsightQueryErrorMeta) {
213
+ const metadataToSend = generateMetadataToSend(metadata, false);
214
+ return this.logCustomEvent(SearchPageEvents.queryError, metadataToSend);
215
+ }
216
+
217
+ public logPagerNumber(metadata: InsightPagerMetadata) {
218
+ const metadataToSend = generateMetadataToSend(metadata, false);
219
+ return this.logCustomEvent(SearchPageEvents.pagerNumber, metadataToSend);
220
+ }
221
+
222
+ public logPagerNext(metadata: InsightPagerMetadata) {
223
+ const metadataToSend = generateMetadataToSend(metadata, false);
224
+ return this.logCustomEvent(SearchPageEvents.pagerNext, metadataToSend);
225
+ }
226
+
227
+ public logPagerPrevious(metadata: InsightPagerMetadata) {
228
+ const metadataToSend = generateMetadataToSend(metadata, false);
229
+ return this.logCustomEvent(SearchPageEvents.pagerPrevious, metadataToSend);
230
+ }
231
+
232
+ public logDidYouMeanAutomatic(metadata?: CaseMetadata) {
233
+ if (metadata) {
234
+ const metadataToSend = generateMetadataToSend(metadata);
235
+ return this.logSearchEvent(SearchPageEvents.didyoumeanAutomatic, metadataToSend);
236
+ }
237
+ return this.logSearchEvent(SearchPageEvents.didyoumeanAutomatic);
238
+ }
239
+
240
+ public logDidYouMeanClick(metadata?: CaseMetadata) {
241
+ if (metadata) {
242
+ const metadataToSend = generateMetadataToSend(metadata);
243
+ return this.logSearchEvent(SearchPageEvents.didyoumeanClick, metadataToSend);
244
+ }
245
+ return this.logSearchEvent(SearchPageEvents.didyoumeanClick);
246
+ }
247
+
248
+ public logResultsSort(metadata: InsightResultsSortMetadata) {
249
+ const metadataToSend = generateMetadataToSend(metadata);
250
+ return this.logSearchEvent(SearchPageEvents.resultsSort, metadataToSend);
251
+ }
252
+
253
+ public logSearchboxSubmit(metadata?: CaseMetadata) {
254
+ if (metadata) {
255
+ const metadataToSend = generateMetadataToSend(metadata);
256
+ return this.logSearchEvent(SearchPageEvents.searchboxSubmit, metadataToSend);
257
+ }
258
+ return this.logSearchEvent(SearchPageEvents.searchboxSubmit);
259
+ }
260
+
261
+ public logContextChanged(metadata: CaseMetadata) {
262
+ const metadataToSend = generateMetadataToSend(metadata);
263
+ return this.logSearchEvent(InsightEvents.contextChanged, metadataToSend);
264
+ }
265
+
266
+ public logExpandToFullUI(metadata: ExpandToFullUIMetadata) {
267
+ const metadataToSend = generateMetadataToSend(metadata);
268
+ return this.logCustomEvent(InsightEvents.expandToFullUI, metadataToSend);
269
+ }
270
+
271
+ public logOpenUserActions(metadata: CaseMetadata) {
272
+ const metadataToSend = generateMetadataToSend(metadata, false);
273
+ return this.logCustomEvent(InsightEvents.openUserActions, metadataToSend);
274
+ }
275
+
276
+ public logShowPrecedingSessions(metadata: CaseMetadata) {
277
+ const metadataToSend = generateMetadataToSend(metadata, false);
278
+ return this.logCustomEvent(InsightEvents.showPrecedingSessions, metadataToSend);
279
+ }
280
+
281
+ public logShowFollowingSessions(metadata: CaseMetadata) {
282
+ const metadataToSend = generateMetadataToSend(metadata, false);
283
+ return this.logCustomEvent(InsightEvents.showFollowingSessions, metadataToSend);
284
+ }
285
+
286
+ public logViewedDocumentClick(document: UserActionsDocumentMetadata, metadata: CaseMetadata) {
287
+ return this.logCustomEvent(InsightEvents.clickViewedDocument, {
288
+ ...generateMetadataToSend(metadata, false),
289
+ document,
290
+ });
291
+ }
292
+
293
+ public logPageViewClick(pageView: UserActionsPageViewMetadata, metadata: CaseMetadata) {
294
+ return this.logCustomEvent(InsightEvents.clickPageView, {
295
+ ...generateMetadataToSend(metadata, false),
296
+ pageView,
297
+ });
298
+ }
299
+
300
+ public logCreateArticle(createArticleMetadata: CreateArticleMetadata, metadata?: CaseMetadata) {
301
+ return this.logCustomEvent(
302
+ InsightEvents.createArticle,
303
+ metadata
304
+ ? {...generateMetadataToSend(metadata, false), ...createArticleMetadata}
305
+ : createArticleMetadata
306
+ );
307
+ }
308
+
309
+ public logDocumentOpen(
310
+ info: PartialDocumentInformation,
311
+ identifier: DocumentIdentifier,
312
+ metadata?: CaseMetadata
313
+ ) {
314
+ return this.logClickEvent(
315
+ SearchPageEvents.documentOpen,
316
+ info,
317
+ identifier,
318
+ metadata ? generateMetadataToSend(metadata, false) : undefined
319
+ );
320
+ }
321
+
322
+ public logCopyToClipboard(
323
+ info: PartialDocumentInformation,
324
+ identifier: DocumentIdentifier,
325
+ metadata?: CaseMetadata
326
+ ) {
327
+ return this.logClickEvent(
328
+ SearchPageEvents.copyToClipboard,
329
+ info,
330
+ identifier,
331
+ metadata ? generateMetadataToSend(metadata, false) : undefined
332
+ );
333
+ }
334
+
335
+ public logCaseSendEmail(
336
+ info: PartialDocumentInformation,
337
+ identifier: DocumentIdentifier,
338
+ metadata?: CaseMetadata
339
+ ) {
340
+ return this.logClickEvent(
341
+ SearchPageEvents.caseSendEmail,
342
+ info,
343
+ identifier,
344
+ metadata ? generateMetadataToSend(metadata, false) : undefined
345
+ );
346
+ }
347
+
348
+ public logFeedItemTextPost(
349
+ info: PartialDocumentInformation,
350
+ identifier: DocumentIdentifier,
351
+ metadata?: CaseMetadata
352
+ ) {
353
+ return this.logClickEvent(
354
+ SearchPageEvents.feedItemTextPost,
355
+ info,
356
+ identifier,
357
+ metadata ? generateMetadataToSend(metadata, false) : undefined
358
+ );
359
+ }
360
+
361
+ public logDocumentQuickview(
362
+ info: PartialDocumentInformation,
363
+ identifier: DocumentIdentifier,
364
+ caseMetadata?: CaseMetadata
365
+ ) {
366
+ const metadata = {
367
+ documentTitle: info.documentTitle,
368
+ documentURL: info.documentUrl,
369
+ };
370
+ return this.logClickEvent(
371
+ SearchPageEvents.documentQuickview,
372
+ info,
373
+ identifier,
374
+ caseMetadata ? {...generateMetadataToSend(caseMetadata, false), ...metadata} : metadata
375
+ );
376
+ }
377
+
378
+ public logCaseAttach(
379
+ info: PartialDocumentInformation,
380
+ identifier: DocumentIdentifier,
381
+ caseMetadata?: CaseMetadata
382
+ ) {
383
+ const metadata = {
384
+ documentTitle: info.documentTitle,
385
+ documentURL: info.documentUrl,
386
+ resultUriHash: info.documentUriHash,
387
+ };
274
388
 
275
- public logViewedDocumentClick(document: UserActionsDocumentMetadata, metadata: CaseMetadata) {
276
- return this.logCustomEvent(InsightEvents.clickViewedDocument, {
389
+ return this.logClickEvent(
390
+ SearchPageEvents.caseAttach,
391
+ info,
392
+ identifier,
393
+ caseMetadata ? {...generateMetadataToSend(caseMetadata, false), ...metadata} : metadata
394
+ );
395
+ }
396
+
397
+ public logCaseDetach(resultUriHash: string, metadata?: CaseMetadata, permanentId?: string) {
398
+ const generatedMetadata = {
399
+ ...(metadata && generateMetadataToSend(metadata, false)),
400
+ ...(permanentId && {permanentId}),
401
+ resultUriHash,
402
+ };
403
+ return this.logCustomEvent(SearchPageEvents.caseDetach, generatedMetadata);
404
+ }
405
+
406
+ public logLikeSmartSnippet(metadata?: CaseMetadata) {
407
+ return this.logCustomEvent(
408
+ SearchPageEvents.likeSmartSnippet,
409
+ metadata ? generateMetadataToSend(metadata, false) : undefined
410
+ );
411
+ }
412
+
413
+ public logDislikeSmartSnippet(metadata?: CaseMetadata) {
414
+ return this.logCustomEvent(
415
+ SearchPageEvents.dislikeSmartSnippet,
416
+ metadata ? generateMetadataToSend(metadata, false) : undefined
417
+ );
418
+ }
419
+
420
+ public logExpandSmartSnippet(metadata?: CaseMetadata) {
421
+ return this.logCustomEvent(
422
+ SearchPageEvents.expandSmartSnippet,
423
+ metadata ? generateMetadataToSend(metadata, false) : undefined
424
+ );
425
+ }
426
+
427
+ public logCollapseSmartSnippet(metadata?: CaseMetadata) {
428
+ return this.logCustomEvent(
429
+ SearchPageEvents.collapseSmartSnippet,
430
+ metadata ? generateMetadataToSend(metadata, false) : undefined
431
+ );
432
+ }
433
+
434
+ public logOpenSmartSnippetFeedbackModal(metadata?: CaseMetadata) {
435
+ return this.logCustomEvent(
436
+ SearchPageEvents.openSmartSnippetFeedbackModal,
437
+ metadata ? generateMetadataToSend(metadata, false) : undefined
438
+ );
439
+ }
440
+
441
+ public logCloseSmartSnippetFeedbackModal(metadata?: CaseMetadata) {
442
+ return this.logCustomEvent(
443
+ SearchPageEvents.closeSmartSnippetFeedbackModal,
444
+ metadata ? generateMetadataToSend(metadata, false) : undefined
445
+ );
446
+ }
447
+
448
+ public logSmartSnippetFeedbackReason(
449
+ reason: SmartSnippetFeedbackReason,
450
+ details?: string,
451
+ metadata?: CaseMetadata
452
+ ) {
453
+ return this.logCustomEvent(
454
+ SearchPageEvents.sendSmartSnippetReason,
455
+ metadata ? {...generateMetadataToSend(metadata, false), reason, details} : {reason, details}
456
+ );
457
+ }
458
+
459
+ public logExpandSmartSnippetSuggestion(
460
+ snippet: SmartSnippetSuggestionMeta | SmartSnippetDocumentIdentifier,
461
+ metadata?: CaseMetadata
462
+ ) {
463
+ const snippetMetadata = 'documentId' in snippet ? snippet : {documentId: snippet};
464
+ return this.logCustomEvent(
465
+ SearchPageEvents.expandSmartSnippetSuggestion,
466
+ metadata ? {...generateMetadataToSend(metadata, false), ...snippetMetadata} : snippetMetadata
467
+ );
468
+ }
469
+
470
+ public logCollapseSmartSnippetSuggestion(
471
+ snippet: SmartSnippetSuggestionMeta | SmartSnippetDocumentIdentifier,
472
+ metadata?: CaseMetadata
473
+ ) {
474
+ const snippetMetadata = 'documentId' in snippet ? snippet : {documentId: snippet};
475
+ return this.logCustomEvent(
476
+ SearchPageEvents.collapseSmartSnippetSuggestion,
477
+ metadata ? {...generateMetadataToSend(metadata, false), ...snippetMetadata} : snippetMetadata
478
+ );
479
+ }
480
+
481
+ public logOpenSmartSnippetSource(
482
+ info: PartialDocumentInformation,
483
+ identifier: DocumentIdentifier,
484
+ metadata?: CaseMetadata
485
+ ) {
486
+ return this.logClickEvent(
487
+ SearchPageEvents.openSmartSnippetSource,
488
+ info,
489
+ identifier,
490
+ metadata ? generateMetadataToSend(metadata, false) : undefined
491
+ );
492
+ }
493
+
494
+ public logOpenSmartSnippetSuggestionSource(
495
+ info: PartialDocumentInformation,
496
+ snippet: SmartSnippetSuggestionMeta,
497
+ metadata?: CaseMetadata
498
+ ) {
499
+ return this.logClickEvent(
500
+ SearchPageEvents.openSmartSnippetSuggestionSource,
501
+ info,
502
+ {
503
+ contentIDKey: snippet.documentId.contentIdKey,
504
+ contentIDValue: snippet.documentId.contentIdValue,
505
+ },
506
+ metadata ? {...generateMetadataToSend(metadata, false), ...snippet} : snippet
507
+ );
508
+ }
509
+
510
+ public logOpenSmartSnippetInlineLink(
511
+ info: PartialDocumentInformation,
512
+ identifierAndLink: DocumentIdentifier & SmartSnippetLinkMeta,
513
+ metadata?: CaseMetadata
514
+ ) {
515
+ return this.logClickEvent(
516
+ SearchPageEvents.openSmartSnippetInlineLink,
517
+ info,
518
+ {
519
+ contentIDKey: identifierAndLink.contentIDKey,
520
+ contentIDValue: identifierAndLink.contentIDValue,
521
+ },
522
+ metadata
523
+ ? {...generateMetadataToSend(metadata, false), ...identifierAndLink}
524
+ : identifierAndLink
525
+ );
526
+ }
527
+
528
+ public logOpenSmartSnippetSuggestionInlineLink(
529
+ info: PartialDocumentInformation,
530
+ snippetAndLink: SmartSnippetSuggestionMeta & SmartSnippetLinkMeta,
531
+ metadata?: CaseMetadata
532
+ ) {
533
+ return this.logClickEvent(
534
+ SearchPageEvents.openSmartSnippetSuggestionInlineLink,
535
+ info,
536
+ {
537
+ contentIDKey: snippetAndLink.documentId.contentIdKey,
538
+ contentIDValue: snippetAndLink.documentId.contentIdValue,
539
+ },
540
+ metadata ? {...generateMetadataToSend(metadata, false), ...snippetAndLink} : snippetAndLink
541
+ );
542
+ }
543
+
544
+ public logLikeGeneratedAnswer(
545
+ generatedAnswerMetadata: GeneratedAnswerBaseMeta,
546
+ metadata?: CaseMetadata
547
+ ) {
548
+ return this.logCustomEvent(
549
+ SearchPageEvents.likeGeneratedAnswer,
550
+ metadata
551
+ ? {
277
552
  ...generateMetadataToSend(metadata, false),
278
- document,
279
- });
280
- }
281
-
282
- public logPageViewClick(pageView: UserActionsPageViewMetadata, metadata: CaseMetadata) {
283
- return this.logCustomEvent(InsightEvents.clickPageView, {
553
+ ...generatedAnswerMetadata,
554
+ }
555
+ : generatedAnswerMetadata
556
+ );
557
+ }
558
+
559
+ public logDislikeGeneratedAnswer(
560
+ generatedAnswerMetadata: GeneratedAnswerBaseMeta,
561
+ metadata?: CaseMetadata
562
+ ) {
563
+ return this.logCustomEvent(
564
+ SearchPageEvents.dislikeGeneratedAnswer,
565
+ metadata
566
+ ? {
284
567
  ...generateMetadataToSend(metadata, false),
285
- pageView,
286
- });
287
- }
288
-
289
- public logCreateArticle(createArticleMetadata: CreateArticleMetadata, metadata?: CaseMetadata) {
290
- return this.logCustomEvent(
291
- InsightEvents.createArticle,
292
- metadata ? {...generateMetadataToSend(metadata, false), ...createArticleMetadata} : createArticleMetadata,
293
- );
294
- }
295
-
296
- public logDocumentOpen(info: PartialDocumentInformation, identifier: DocumentIdentifier, metadata?: CaseMetadata) {
297
- return this.logClickEvent(
298
- SearchPageEvents.documentOpen,
299
- info,
300
- identifier,
301
- metadata ? generateMetadataToSend(metadata, false) : undefined,
302
- );
303
- }
304
-
305
- public logCopyToClipboard(
306
- info: PartialDocumentInformation,
307
- identifier: DocumentIdentifier,
308
- metadata?: CaseMetadata,
309
- ) {
310
- return this.logClickEvent(
311
- SearchPageEvents.copyToClipboard,
312
- info,
313
- identifier,
314
- metadata ? generateMetadataToSend(metadata, false) : undefined,
315
- );
316
- }
317
-
318
- public logCaseSendEmail(info: PartialDocumentInformation, identifier: DocumentIdentifier, metadata?: CaseMetadata) {
319
- return this.logClickEvent(
320
- SearchPageEvents.caseSendEmail,
321
- info,
322
- identifier,
323
- metadata ? generateMetadataToSend(metadata, false) : undefined,
324
- );
325
- }
326
-
327
- public logFeedItemTextPost(
328
- info: PartialDocumentInformation,
329
- identifier: DocumentIdentifier,
330
- metadata?: CaseMetadata,
331
- ) {
332
- return this.logClickEvent(
333
- SearchPageEvents.feedItemTextPost,
334
- info,
335
- identifier,
336
- metadata ? generateMetadataToSend(metadata, false) : undefined,
337
- );
338
- }
339
-
340
- public logDocumentQuickview(
341
- info: PartialDocumentInformation,
342
- identifier: DocumentIdentifier,
343
- caseMetadata?: CaseMetadata,
344
- ) {
345
- const metadata = {
346
- documentTitle: info.documentTitle,
347
- documentURL: info.documentUrl,
348
- };
349
- return this.logClickEvent(
350
- SearchPageEvents.documentQuickview,
351
- info,
352
- identifier,
353
- caseMetadata ? {...generateMetadataToSend(caseMetadata, false), ...metadata} : metadata,
354
- );
355
- }
356
-
357
- public logCaseAttach(
358
- info: PartialDocumentInformation,
359
- identifier: DocumentIdentifier,
360
- caseMetadata?: CaseMetadata,
361
- ) {
362
- const metadata = {
363
- documentTitle: info.documentTitle,
364
- documentURL: info.documentUrl,
365
- resultUriHash: info.documentUriHash,
366
- };
367
-
368
- return this.logClickEvent(
369
- SearchPageEvents.caseAttach,
370
- info,
371
- identifier,
372
- caseMetadata ? {...generateMetadataToSend(caseMetadata, false), ...metadata} : metadata,
373
- );
374
- }
375
-
376
- public logCaseDetach(resultUriHash: string, metadata?: CaseMetadata, permanentId?: string) {
377
- const generatedMetadata = {
378
- ...(metadata && generateMetadataToSend(metadata, false)),
379
- ...(permanentId && {permanentId}),
380
- resultUriHash,
381
- };
382
- return this.logCustomEvent(SearchPageEvents.caseDetach, generatedMetadata);
383
- }
384
-
385
- public logLikeSmartSnippet(metadata?: CaseMetadata) {
386
- return this.logCustomEvent(
387
- SearchPageEvents.likeSmartSnippet,
388
- metadata ? generateMetadataToSend(metadata, false) : undefined,
389
- );
390
- }
391
-
392
- public logDislikeSmartSnippet(metadata?: CaseMetadata) {
393
- return this.logCustomEvent(
394
- SearchPageEvents.dislikeSmartSnippet,
395
- metadata ? generateMetadataToSend(metadata, false) : undefined,
396
- );
397
- }
398
-
399
- public logExpandSmartSnippet(metadata?: CaseMetadata) {
400
- return this.logCustomEvent(
401
- SearchPageEvents.expandSmartSnippet,
402
- metadata ? generateMetadataToSend(metadata, false) : undefined,
403
- );
404
- }
405
-
406
- public logCollapseSmartSnippet(metadata?: CaseMetadata) {
407
- return this.logCustomEvent(
408
- SearchPageEvents.collapseSmartSnippet,
409
- metadata ? generateMetadataToSend(metadata, false) : undefined,
410
- );
411
- }
412
-
413
- public logOpenSmartSnippetFeedbackModal(metadata?: CaseMetadata) {
414
- return this.logCustomEvent(
415
- SearchPageEvents.openSmartSnippetFeedbackModal,
416
- metadata ? generateMetadataToSend(metadata, false) : undefined,
417
- );
418
- }
419
-
420
- public logCloseSmartSnippetFeedbackModal(metadata?: CaseMetadata) {
421
- return this.logCustomEvent(
422
- SearchPageEvents.closeSmartSnippetFeedbackModal,
423
- metadata ? generateMetadataToSend(metadata, false) : undefined,
424
- );
425
- }
426
-
427
- public logSmartSnippetFeedbackReason(
428
- reason: SmartSnippetFeedbackReason,
429
- details?: string,
430
- metadata?: CaseMetadata,
431
- ) {
432
- return this.logCustomEvent(
433
- SearchPageEvents.sendSmartSnippetReason,
434
- metadata ? {...generateMetadataToSend(metadata, false), reason, details} : {reason, details},
435
- );
436
- }
437
-
438
- public logExpandSmartSnippetSuggestion(
439
- snippet: SmartSnippetSuggestionMeta | SmartSnippetDocumentIdentifier,
440
- metadata?: CaseMetadata,
441
- ) {
442
- const snippetMetadata = 'documentId' in snippet ? snippet : {documentId: snippet};
443
- return this.logCustomEvent(
444
- SearchPageEvents.expandSmartSnippetSuggestion,
445
- metadata ? {...generateMetadataToSend(metadata, false), ...snippetMetadata} : snippetMetadata,
446
- );
447
- }
448
-
449
- public logCollapseSmartSnippetSuggestion(
450
- snippet: SmartSnippetSuggestionMeta | SmartSnippetDocumentIdentifier,
451
- metadata?: CaseMetadata,
452
- ) {
453
- const snippetMetadata = 'documentId' in snippet ? snippet : {documentId: snippet};
454
- return this.logCustomEvent(
455
- SearchPageEvents.collapseSmartSnippetSuggestion,
456
- metadata ? {...generateMetadataToSend(metadata, false), ...snippetMetadata} : snippetMetadata,
457
- );
458
- }
459
-
460
- public logOpenSmartSnippetSource(
461
- info: PartialDocumentInformation,
462
- identifier: DocumentIdentifier,
463
- metadata?: CaseMetadata,
464
- ) {
465
- return this.logClickEvent(
466
- SearchPageEvents.openSmartSnippetSource,
467
- info,
468
- identifier,
469
- metadata ? generateMetadataToSend(metadata, false) : undefined,
470
- );
471
- }
472
-
473
- public logOpenSmartSnippetSuggestionSource(
474
- info: PartialDocumentInformation,
475
- snippet: SmartSnippetSuggestionMeta,
476
- metadata?: CaseMetadata,
477
- ) {
478
- return this.logClickEvent(
479
- SearchPageEvents.openSmartSnippetSuggestionSource,
480
- info,
481
- {contentIDKey: snippet.documentId.contentIdKey, contentIDValue: snippet.documentId.contentIdValue},
482
- metadata ? {...generateMetadataToSend(metadata, false), ...snippet} : snippet,
483
- );
484
- }
485
-
486
- public logOpenSmartSnippetInlineLink(
487
- info: PartialDocumentInformation,
488
- identifierAndLink: DocumentIdentifier & SmartSnippetLinkMeta,
489
- metadata?: CaseMetadata,
490
- ) {
491
- return this.logClickEvent(
492
- SearchPageEvents.openSmartSnippetInlineLink,
493
- info,
494
- {contentIDKey: identifierAndLink.contentIDKey, contentIDValue: identifierAndLink.contentIDValue},
495
- metadata ? {...generateMetadataToSend(metadata, false), ...identifierAndLink} : identifierAndLink,
496
- );
497
- }
498
-
499
- public logOpenSmartSnippetSuggestionInlineLink(
500
- info: PartialDocumentInformation,
501
- snippetAndLink: SmartSnippetSuggestionMeta & SmartSnippetLinkMeta,
502
- metadata?: CaseMetadata,
503
- ) {
504
- return this.logClickEvent(
505
- SearchPageEvents.openSmartSnippetSuggestionInlineLink,
506
- info,
507
- {
508
- contentIDKey: snippetAndLink.documentId.contentIdKey,
509
- contentIDValue: snippetAndLink.documentId.contentIdValue,
510
- },
511
- metadata ? {...generateMetadataToSend(metadata, false), ...snippetAndLink} : snippetAndLink,
512
- );
513
- }
514
-
515
- public logLikeGeneratedAnswer(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata) {
516
- return this.logCustomEvent(
517
- SearchPageEvents.likeGeneratedAnswer,
518
- metadata
519
- ? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}
520
- : generatedAnswerMetadata,
521
- );
522
- }
523
-
524
- public logDislikeGeneratedAnswer(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata) {
525
- return this.logCustomEvent(
526
- SearchPageEvents.dislikeGeneratedAnswer,
527
- metadata
528
- ? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}
529
- : generatedAnswerMetadata,
530
- );
531
- }
532
-
533
- public logOpenGeneratedAnswerSource(
534
- generatedAnswerSourceMetadata: GeneratedAnswerCitationMeta,
535
- metadata?: CaseMetadata,
536
- ) {
537
- return this.logCustomEvent(
538
- SearchPageEvents.openGeneratedAnswerSource,
539
- metadata
540
- ? {...generateMetadataToSend(metadata, false), ...generatedAnswerSourceMetadata}
541
- : generatedAnswerSourceMetadata,
542
- );
543
- }
544
-
545
- public logGeneratedAnswerCitationClick(
546
- info: PartialDocumentInformation,
547
- citation: GeneratedAnswerCitationClickMeta,
548
- metadata?: CaseMetadata,
549
- ) {
550
- return this.logClickEvent(
551
- SearchPageEvents.generatedAnswerCitationClick,
552
- {...info, documentPosition: 1},
553
- {contentIDKey: citation.documentId.contentIdKey, contentIDValue: citation.documentId.contentIdValue},
554
- metadata ? {...generateMetadataToSend(metadata, false), ...citation} : citation,
555
- );
556
- }
557
-
558
- public logGeneratedAnswerSourceHover(
559
- generatedAnswerSourceMetadata: GeneratedAnswerSourceHoverMeta,
560
- metadata?: CaseMetadata,
561
- ) {
562
- return this.logCustomEvent(
563
- SearchPageEvents.generatedAnswerSourceHover,
564
- metadata
565
- ? {...generateMetadataToSend(metadata, false), ...generatedAnswerSourceMetadata}
566
- : generatedAnswerSourceMetadata,
567
- );
568
- }
569
-
570
- public logGeneratedAnswerCopyToClipboard(
571
- generatedAnswerMetadata: GeneratedAnswerBaseMeta,
572
- metadata?: CaseMetadata,
573
- ) {
574
- return this.logCustomEvent(
575
- SearchPageEvents.generatedAnswerCopyToClipboard,
576
- metadata
577
- ? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}
578
- : generatedAnswerMetadata,
579
- );
580
- }
581
-
582
- public logGeneratedAnswerHideAnswers(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata) {
583
- return this.logCustomEvent(
584
- SearchPageEvents.generatedAnswerHideAnswers,
585
- metadata
586
- ? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}
587
- : generatedAnswerMetadata,
588
- );
589
- }
590
-
591
- public logGeneratedAnswerShowAnswers(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata) {
592
- return this.logCustomEvent(
593
- SearchPageEvents.generatedAnswerShowAnswers,
594
- metadata
595
- ? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}
596
- : generatedAnswerMetadata,
597
- );
598
- }
599
-
600
- public logGeneratedAnswerExpand(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata) {
601
- return this.logCustomEvent(
602
- SearchPageEvents.generatedAnswerExpand,
603
- metadata
604
- ? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}
605
- : generatedAnswerMetadata,
606
- );
607
- }
608
-
609
- public logGeneratedAnswerCollapse(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata) {
610
- return this.logCustomEvent(
611
- SearchPageEvents.generatedAnswerCollapse,
612
- metadata
613
- ? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}
614
- : generatedAnswerMetadata,
615
- );
616
- }
617
-
618
- public logGeneratedAnswerFeedbackSubmit(
619
- generatedAnswerFeedbackMetadata: GeneratedAnswerFeedbackMeta,
620
- metadata?: CaseMetadata,
621
- ) {
622
- return this.logCustomEvent(
623
- SearchPageEvents.generatedAnswerFeedbackSubmit,
624
- metadata
625
- ? {...generateMetadataToSend(metadata, false), ...generatedAnswerFeedbackMetadata}
626
- : generatedAnswerFeedbackMetadata,
627
- );
628
- }
629
-
630
- public logGeneratedAnswerFeedbackSubmitV2(
631
- generatedAnswerFeedbackMetadata: GeneratedAnswerFeedbackMetaV2,
632
- metadata?: CaseMetadata,
633
- ) {
634
- return this.logCustomEvent(
635
- SearchPageEvents.generatedAnswerFeedbackSubmitV2,
636
- metadata
637
- ? {...generateMetadataToSend(metadata, false), ...generatedAnswerFeedbackMetadata}
638
- : generatedAnswerFeedbackMetadata,
639
- );
640
- }
641
-
642
- public logRephraseGeneratedAnswer(
643
- generatedAnswerRephraseMetadata: GeneratedAnswerRephraseMeta,
644
- metadata?: CaseMetadata,
645
- ) {
646
- return this.logSearchEvent(
647
- SearchPageEvents.rephraseGeneratedAnswer,
648
- metadata
649
- ? {...generateMetadataToSend(metadata, false), ...generatedAnswerRephraseMetadata}
650
- : generatedAnswerRephraseMetadata,
651
- );
652
- }
653
-
654
- public logRetryGeneratedAnswer(metadata?: CaseMetadata) {
655
- return this.logSearchEvent(
656
- SearchPageEvents.retryGeneratedAnswer,
657
- metadata ? {...generateMetadataToSend(metadata, false)} : {},
658
- );
659
- }
660
-
661
- public logGeneratedAnswerStreamEnd(
662
- generatedAnswerStreamEndMetadata: GeneratedAnswerStreamEndMeta,
663
- metadata?: CaseMetadata,
664
- ) {
665
- return this.logCustomEvent(
666
- SearchPageEvents.generatedAnswerStreamEnd,
667
- metadata
668
- ? {...generateMetadataToSend(metadata, false), ...generatedAnswerStreamEndMetadata}
669
- : generatedAnswerStreamEndMetadata,
670
- );
671
- }
672
-
673
- public logGeneratedAnswerCitationDocumentAttach(
674
- info: PartialDocumentInformation,
675
- citation: GeneratedAnswerCitationClickMeta,
676
- metadata?: CaseMetadata,
677
- ) {
678
- return this.logClickEvent(
679
- SearchPageEvents.generatedAnswerCitationDocumentAttach,
680
- {...info, documentPosition: 1},
681
- {contentIDKey: citation.documentId.contentIdKey, contentIDValue: citation.documentId.contentIdValue},
682
- metadata ? {...generateMetadataToSend(metadata, false), ...citation} : citation,
683
- );
684
- }
685
-
686
- public async logCustomEvent(event: SearchPageEvents | InsightEvents, metadata?: Record<string, any>) {
687
- const customData = {...this.provider.getBaseMetadata(), ...metadata};
688
-
689
- const payload: CustomEventRequest = {
690
- ...(await this.getBaseCustomEventRequest(customData)),
691
- eventType: CustomEventsTypes[event]!,
692
- eventValue: event,
693
- };
694
-
695
- return this.coveoAnalyticsClient.sendCustomEvent(payload);
696
- }
697
-
698
- public async logSearchEvent(event: SearchPageEvents | InsightEvents, metadata?: Record<string, any>) {
699
- return this.coveoAnalyticsClient.sendSearchEvent(await this.getBaseSearchEventRequest(event, metadata));
700
- }
701
-
702
- public async logClickEvent(
703
- event: SearchPageEvents,
704
- info: PartialDocumentInformation,
705
- identifier: DocumentIdentifier,
706
- metadata?: Record<string, any>,
707
- ) {
708
- const payload: ClickEventRequest = {
709
- ...info,
710
- ...(await this.getBaseEventRequest({...identifier, ...metadata})),
711
- searchQueryUid: this.provider.getSearchUID(),
712
- queryPipeline: this.provider.getPipeline(),
713
- actionCause: event,
714
- };
715
-
716
- return this.coveoAnalyticsClient.sendClickEvent(payload);
717
- }
718
-
719
- public async logShowMoreFoldedResults(
720
- info: PartialDocumentInformation,
721
- identifier: DocumentIdentifier,
722
- metadata?: CaseMetadata,
723
- ) {
724
- return this.logClickEvent(
725
- SearchPageEvents.showMoreFoldedResults,
726
- info,
727
- identifier,
728
- metadata ? generateMetadataToSend(metadata, false) : undefined,
729
- );
730
- }
731
-
732
- public async logShowLessFoldedResults(metadata?: CaseMetadata) {
733
- return this.logCustomEvent(
734
- SearchPageEvents.showLessFoldedResults,
735
- metadata ? generateMetadataToSend(metadata, false) : undefined,
736
- );
737
- }
568
+ ...generatedAnswerMetadata,
569
+ }
570
+ : generatedAnswerMetadata
571
+ );
572
+ }
573
+
574
+ public logOpenGeneratedAnswerSource(
575
+ generatedAnswerSourceMetadata: GeneratedAnswerCitationMeta,
576
+ metadata?: CaseMetadata
577
+ ) {
578
+ return this.logCustomEvent(
579
+ SearchPageEvents.openGeneratedAnswerSource,
580
+ metadata
581
+ ? {
582
+ ...generateMetadataToSend(metadata, false),
583
+ ...generatedAnswerSourceMetadata,
584
+ }
585
+ : generatedAnswerSourceMetadata
586
+ );
587
+ }
588
+
589
+ public logGeneratedAnswerCitationClick(
590
+ info: PartialDocumentInformation,
591
+ citation: GeneratedAnswerCitationClickMeta,
592
+ metadata?: CaseMetadata
593
+ ) {
594
+ return this.logClickEvent(
595
+ SearchPageEvents.generatedAnswerCitationClick,
596
+ {...info, documentPosition: 1},
597
+ {
598
+ contentIDKey: citation.documentId.contentIdKey,
599
+ contentIDValue: citation.documentId.contentIdValue,
600
+ },
601
+ metadata ? {...generateMetadataToSend(metadata, false), ...citation} : citation
602
+ );
603
+ }
604
+
605
+ public logGeneratedAnswerSourceHover(
606
+ generatedAnswerSourceMetadata: GeneratedAnswerSourceHoverMeta,
607
+ metadata?: CaseMetadata
608
+ ) {
609
+ return this.logCustomEvent(
610
+ SearchPageEvents.generatedAnswerSourceHover,
611
+ metadata
612
+ ? {
613
+ ...generateMetadataToSend(metadata, false),
614
+ ...generatedAnswerSourceMetadata,
615
+ }
616
+ : generatedAnswerSourceMetadata
617
+ );
618
+ }
619
+
620
+ public logGeneratedAnswerCopyToClipboard(
621
+ generatedAnswerMetadata: GeneratedAnswerBaseMeta,
622
+ metadata?: CaseMetadata
623
+ ) {
624
+ return this.logCustomEvent(
625
+ SearchPageEvents.generatedAnswerCopyToClipboard,
626
+ metadata
627
+ ? {
628
+ ...generateMetadataToSend(metadata, false),
629
+ ...generatedAnswerMetadata,
630
+ }
631
+ : generatedAnswerMetadata
632
+ );
633
+ }
634
+
635
+ public logGeneratedAnswerHideAnswers(
636
+ generatedAnswerMetadata: GeneratedAnswerBaseMeta,
637
+ metadata?: CaseMetadata
638
+ ) {
639
+ return this.logCustomEvent(
640
+ SearchPageEvents.generatedAnswerHideAnswers,
641
+ metadata
642
+ ? {
643
+ ...generateMetadataToSend(metadata, false),
644
+ ...generatedAnswerMetadata,
645
+ }
646
+ : generatedAnswerMetadata
647
+ );
648
+ }
649
+
650
+ public logGeneratedAnswerShowAnswers(
651
+ generatedAnswerMetadata: GeneratedAnswerBaseMeta,
652
+ metadata?: CaseMetadata
653
+ ) {
654
+ return this.logCustomEvent(
655
+ SearchPageEvents.generatedAnswerShowAnswers,
656
+ metadata
657
+ ? {
658
+ ...generateMetadataToSend(metadata, false),
659
+ ...generatedAnswerMetadata,
660
+ }
661
+ : generatedAnswerMetadata
662
+ );
663
+ }
664
+
665
+ public logGeneratedAnswerExpand(
666
+ generatedAnswerMetadata: GeneratedAnswerBaseMeta,
667
+ metadata?: CaseMetadata
668
+ ) {
669
+ return this.logCustomEvent(
670
+ SearchPageEvents.generatedAnswerExpand,
671
+ metadata
672
+ ? {
673
+ ...generateMetadataToSend(metadata, false),
674
+ ...generatedAnswerMetadata,
675
+ }
676
+ : generatedAnswerMetadata
677
+ );
678
+ }
679
+
680
+ public logGeneratedAnswerCollapse(
681
+ generatedAnswerMetadata: GeneratedAnswerBaseMeta,
682
+ metadata?: CaseMetadata
683
+ ) {
684
+ return this.logCustomEvent(
685
+ SearchPageEvents.generatedAnswerCollapse,
686
+ metadata
687
+ ? {
688
+ ...generateMetadataToSend(metadata, false),
689
+ ...generatedAnswerMetadata,
690
+ }
691
+ : generatedAnswerMetadata
692
+ );
693
+ }
694
+
695
+ public logGeneratedAnswerFeedbackSubmit(
696
+ generatedAnswerFeedbackMetadata: GeneratedAnswerFeedbackMeta,
697
+ metadata?: CaseMetadata
698
+ ) {
699
+ return this.logCustomEvent(
700
+ SearchPageEvents.generatedAnswerFeedbackSubmit,
701
+ metadata
702
+ ? {
703
+ ...generateMetadataToSend(metadata, false),
704
+ ...generatedAnswerFeedbackMetadata,
705
+ }
706
+ : generatedAnswerFeedbackMetadata
707
+ );
708
+ }
709
+
710
+ public logGeneratedAnswerFeedbackSubmitV2(
711
+ generatedAnswerFeedbackMetadata: GeneratedAnswerFeedbackMetaV2,
712
+ metadata?: CaseMetadata
713
+ ) {
714
+ return this.logCustomEvent(
715
+ SearchPageEvents.generatedAnswerFeedbackSubmitV2,
716
+ metadata
717
+ ? {
718
+ ...generateMetadataToSend(metadata, false),
719
+ ...generatedAnswerFeedbackMetadata,
720
+ }
721
+ : generatedAnswerFeedbackMetadata
722
+ );
723
+ }
724
+
725
+ public logRephraseGeneratedAnswer(
726
+ generatedAnswerRephraseMetadata: GeneratedAnswerRephraseMeta,
727
+ metadata?: CaseMetadata
728
+ ) {
729
+ return this.logSearchEvent(
730
+ SearchPageEvents.rephraseGeneratedAnswer,
731
+ metadata
732
+ ? {
733
+ ...generateMetadataToSend(metadata, false),
734
+ ...generatedAnswerRephraseMetadata,
735
+ }
736
+ : generatedAnswerRephraseMetadata
737
+ );
738
+ }
739
+
740
+ public logRetryGeneratedAnswer(metadata?: CaseMetadata) {
741
+ return this.logSearchEvent(
742
+ SearchPageEvents.retryGeneratedAnswer,
743
+ metadata ? {...generateMetadataToSend(metadata, false)} : {}
744
+ );
745
+ }
746
+
747
+ public logGeneratedAnswerStreamEnd(
748
+ generatedAnswerStreamEndMetadata: GeneratedAnswerStreamEndMeta,
749
+ metadata?: CaseMetadata
750
+ ) {
751
+ return this.logCustomEvent(
752
+ SearchPageEvents.generatedAnswerStreamEnd,
753
+ metadata
754
+ ? {
755
+ ...generateMetadataToSend(metadata, false),
756
+ ...generatedAnswerStreamEndMetadata,
757
+ }
758
+ : generatedAnswerStreamEndMetadata
759
+ );
760
+ }
761
+
762
+ public logGeneratedAnswerCitationDocumentAttach(
763
+ info: PartialDocumentInformation,
764
+ citation: GeneratedAnswerCitationClickMeta,
765
+ metadata?: CaseMetadata
766
+ ) {
767
+ return this.logClickEvent(
768
+ SearchPageEvents.generatedAnswerCitationDocumentAttach,
769
+ {...info, documentPosition: 1},
770
+ {
771
+ contentIDKey: citation.documentId.contentIdKey,
772
+ contentIDValue: citation.documentId.contentIdValue,
773
+ },
774
+ metadata ? {...generateMetadataToSend(metadata, false), ...citation} : citation
775
+ );
776
+ }
777
+
778
+ public async logCustomEvent(
779
+ event: SearchPageEvents | InsightEvents,
780
+ metadata?: Record<string, any>
781
+ ) {
782
+ const customData = {...this.provider.getBaseMetadata(), ...metadata};
783
+
784
+ const payload: CustomEventRequest = {
785
+ ...(await this.getBaseCustomEventRequest(customData)),
786
+ eventType: CustomEventsTypes[event]!,
787
+ eventValue: event,
788
+ };
738
789
 
739
- public logTriggerNotify(triggerNotifyMetadata: TriggerNotifyMetadata, metadata?: CaseMetadata) {
740
- return this.logCustomEvent(
741
- SearchPageEvents.triggerNotify,
742
- metadata ? {...generateMetadataToSend(metadata, false), ...triggerNotifyMetadata} : triggerNotifyMetadata,
743
- );
744
- }
790
+ return this.coveoAnalyticsClient.sendCustomEvent(payload);
791
+ }
792
+
793
+ public async logSearchEvent(
794
+ event: SearchPageEvents | InsightEvents,
795
+ metadata?: Record<string, any>
796
+ ) {
797
+ return this.coveoAnalyticsClient.sendSearchEvent(
798
+ await this.getBaseSearchEventRequest(event, metadata)
799
+ );
800
+ }
801
+
802
+ public async logClickEvent(
803
+ event: SearchPageEvents,
804
+ info: PartialDocumentInformation,
805
+ identifier: DocumentIdentifier,
806
+ metadata?: Record<string, any>
807
+ ) {
808
+ const payload: ClickEventRequest = {
809
+ ...info,
810
+ ...(await this.getBaseEventRequest({...identifier, ...metadata})),
811
+ searchQueryUid: this.provider.getSearchUID(),
812
+ queryPipeline: this.provider.getPipeline(),
813
+ actionCause: event,
814
+ };
745
815
 
746
- private async getBaseCustomEventRequest(metadata?: Record<string, any>) {
747
- return {
748
- ...(await this.getBaseEventRequest(metadata)),
749
- lastSearchQueryUid: this.provider.getSearchUID(),
750
- };
751
- }
816
+ return this.coveoAnalyticsClient.sendClickEvent(payload);
817
+ }
818
+
819
+ public async logShowMoreFoldedResults(
820
+ info: PartialDocumentInformation,
821
+ identifier: DocumentIdentifier,
822
+ metadata?: CaseMetadata
823
+ ) {
824
+ return this.logClickEvent(
825
+ SearchPageEvents.showMoreFoldedResults,
826
+ info,
827
+ identifier,
828
+ metadata ? generateMetadataToSend(metadata, false) : undefined
829
+ );
830
+ }
831
+
832
+ public async logShowLessFoldedResults(metadata?: CaseMetadata) {
833
+ return this.logCustomEvent(
834
+ SearchPageEvents.showLessFoldedResults,
835
+ metadata ? generateMetadataToSend(metadata, false) : undefined
836
+ );
837
+ }
838
+
839
+ public logTriggerNotify(triggerNotifyMetadata: TriggerNotifyMetadata, metadata?: CaseMetadata) {
840
+ return this.logCustomEvent(
841
+ SearchPageEvents.triggerNotify,
842
+ metadata
843
+ ? {...generateMetadataToSend(metadata, false), ...triggerNotifyMetadata}
844
+ : triggerNotifyMetadata
845
+ );
846
+ }
847
+
848
+ private async getBaseCustomEventRequest(metadata?: Record<string, any>) {
849
+ return {
850
+ ...(await this.getBaseEventRequest(metadata)),
851
+ lastSearchQueryUid: this.provider.getSearchUID(),
852
+ };
853
+ }
752
854
 
753
- private async getBaseSearchEventRequest(
754
- event: SearchPageEvents | InsightEvents,
755
- metadata?: Record<string, any>,
756
- ): Promise<SearchEventRequest> {
757
- return {
758
- ...(await this.getBaseEventRequest({...metadata, ...this.provider.getGeneratedAnswerMetadata?.()})),
759
- ...this.provider.getSearchEventRequestPayload(),
760
- searchQueryUid: this.provider.getSearchUID(),
761
- queryPipeline: this.provider.getPipeline(),
762
- actionCause: event,
763
- };
764
- }
855
+ private async getBaseSearchEventRequest(
856
+ event: SearchPageEvents | InsightEvents,
857
+ metadata?: Record<string, any>
858
+ ): Promise<SearchEventRequest> {
859
+ return {
860
+ ...(await this.getBaseEventRequest({
861
+ ...metadata,
862
+ ...this.provider.getGeneratedAnswerMetadata?.(),
863
+ })),
864
+ ...this.provider.getSearchEventRequestPayload(),
865
+ searchQueryUid: this.provider.getSearchUID(),
866
+ queryPipeline: this.provider.getPipeline(),
867
+ actionCause: event,
868
+ };
869
+ }
765
870
 
766
- private async getBaseEventRequest(metadata?: Record<string, any>) {
767
- const customData = {...this.provider.getBaseMetadata(), ...metadata};
768
- return {
769
- ...this.getOrigins(),
770
- customData,
771
- language: this.provider.getLanguage(),
772
- facetState: this.provider.getFacetState ? this.provider.getFacetState() : [],
773
- anonymous: this.provider.getIsAnonymous(),
774
- clientId: await this.getClientId(),
775
- };
776
- }
871
+ private async getBaseEventRequest(metadata?: Record<string, any>) {
872
+ const customData = {...this.provider.getBaseMetadata(), ...metadata};
873
+ return {
874
+ ...this.getOrigins(),
875
+ customData,
876
+ language: this.provider.getLanguage(),
877
+ facetState: this.provider.getFacetState ? this.provider.getFacetState() : [],
878
+ anonymous: this.provider.getIsAnonymous(),
879
+ clientId: await this.getClientId(),
880
+ };
881
+ }
777
882
 
778
- private getOrigins() {
779
- return {
780
- originContext: this.provider.getOriginContext?.(),
781
- originLevel1: this.provider.getOriginLevel1(),
782
- originLevel2: this.provider.getOriginLevel2(),
783
- originLevel3: this.provider.getOriginLevel3(),
784
- };
785
- }
883
+ private getOrigins() {
884
+ return {
885
+ originContext: this.provider.getOriginContext?.(),
886
+ originLevel1: this.provider.getOriginLevel1(),
887
+ originLevel2: this.provider.getOriginLevel2(),
888
+ originLevel3: this.provider.getOriginLevel3(),
889
+ };
890
+ }
786
891
 
787
- private getClientId() {
788
- return this.coveoAnalyticsClient instanceof CoveoAnalyticsClient
789
- ? this.coveoAnalyticsClient.getCurrentVisitorId()
790
- : undefined;
791
- }
892
+ private getClientId() {
893
+ return this.coveoAnalyticsClient instanceof CoveoAnalyticsClient
894
+ ? this.coveoAnalyticsClient.getCurrentVisitorId()
895
+ : undefined;
896
+ }
792
897
  }