@simplybusiness/services 2.3.1 → 2.3.2

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 (153) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/cjs/address-lookup/index.js +94 -0
  3. package/dist/cjs/address-lookup/index.js.map +7 -0
  4. package/dist/cjs/address-lookup/types.js +19 -0
  5. package/dist/cjs/address-lookup/types.js.map +7 -0
  6. package/dist/cjs/airbrake/index.js +64 -0
  7. package/dist/cjs/airbrake/index.js.map +7 -0
  8. package/dist/cjs/index.js +3 -3
  9. package/dist/cjs/meta.json +801 -2
  10. package/dist/cjs/mocks/eventDefinitions.js +246 -0
  11. package/dist/cjs/mocks/eventDefinitions.js.map +7 -0
  12. package/dist/cjs/mocks/scripts-mock.js +67 -0
  13. package/dist/cjs/mocks/scripts-mock.js.map +7 -0
  14. package/dist/cjs/snowplow/Snowplow.js +197 -0
  15. package/dist/cjs/snowplow/Snowplow.js.map +7 -0
  16. package/dist/cjs/snowplow/SnowplowContext.js +1315 -0
  17. package/dist/cjs/snowplow/SnowplowContext.js.map +7 -0
  18. package/dist/cjs/snowplow/constants.js +27 -0
  19. package/dist/cjs/snowplow/constants.js.map +7 -0
  20. package/dist/cjs/snowplow/contexts.js +95 -0
  21. package/dist/cjs/snowplow/contexts.js.map +7 -0
  22. package/dist/cjs/snowplow/event-definitions/base.js +92 -0
  23. package/dist/cjs/snowplow/event-definitions/base.js.map +7 -0
  24. package/dist/cjs/snowplow/event-definitions/coverage-selection.js +61 -0
  25. package/dist/cjs/snowplow/event-definitions/coverage-selection.js.map +7 -0
  26. package/dist/cjs/snowplow/event-definitions/index.js +1069 -0
  27. package/dist/cjs/snowplow/event-definitions/index.js.map +7 -0
  28. package/dist/cjs/snowplow/event-definitions/intervention.js +59 -0
  29. package/dist/cjs/snowplow/event-definitions/intervention.js.map +7 -0
  30. package/dist/cjs/snowplow/event-definitions/personalised_cover.js +309 -0
  31. package/dist/cjs/snowplow/event-definitions/personalised_cover.js.map +7 -0
  32. package/dist/cjs/snowplow/event-definitions/qcp.js +379 -0
  33. package/dist/cjs/snowplow/event-definitions/qcp.js.map +7 -0
  34. package/dist/cjs/snowplow/event-definitions/questionnaire/questionnaire.js +390 -0
  35. package/dist/cjs/snowplow/event-definitions/questionnaire/questionnaire.js.map +7 -0
  36. package/dist/cjs/snowplow/event-definitions/questionnaire/redaction.js +165 -0
  37. package/dist/cjs/snowplow/event-definitions/questionnaire/redaction.js.map +7 -0
  38. package/dist/cjs/snowplow/event-definitions/referral.js +42 -0
  39. package/dist/cjs/snowplow/event-definitions/referral.js.map +7 -0
  40. package/dist/cjs/snowplow/event-definitions/test-utils.js +33 -0
  41. package/dist/cjs/snowplow/event-definitions/test-utils.js.map +7 -0
  42. package/dist/cjs/snowplow/getSnowplowConfig.js +27 -0
  43. package/dist/cjs/snowplow/getSnowplowConfig.js.map +7 -0
  44. package/dist/cjs/snowplow/index.js +1330 -0
  45. package/dist/cjs/snowplow/index.js.map +7 -0
  46. package/dist/cjs/snowplow/types.js +19 -0
  47. package/dist/cjs/snowplow/types.js.map +7 -0
  48. package/dist/cjs/utils/index.js +63 -0
  49. package/dist/cjs/utils/index.js.map +7 -0
  50. package/dist/cjs/utils/isObject.js +29 -0
  51. package/dist/cjs/utils/isObject.js.map +7 -0
  52. package/dist/cjs/utils/testUtils.js +1372 -0
  53. package/dist/cjs/utils/testUtils.js.map +7 -0
  54. package/dist/cjs/utils/text.js +62 -0
  55. package/dist/cjs/utils/text.js.map +7 -0
  56. package/dist/esm/address-lookup/index.js +7 -0
  57. package/dist/esm/address-lookup/index.js.map +7 -0
  58. package/dist/esm/address-lookup/types.js +1 -0
  59. package/dist/esm/address-lookup/types.js.map +7 -0
  60. package/dist/esm/airbrake/index.js +9 -0
  61. package/dist/esm/airbrake/index.js.map +7 -0
  62. package/dist/esm/chunk-3SO3SL37.js +150 -0
  63. package/dist/esm/chunk-3SO3SL37.js.map +7 -0
  64. package/dist/esm/chunk-75UX5UWV.js +47 -0
  65. package/dist/esm/chunk-75UX5UWV.js.map +7 -0
  66. package/dist/esm/chunk-BJUWIK7N.js +1 -0
  67. package/dist/esm/chunk-BJUWIK7N.js.map +7 -0
  68. package/dist/esm/chunk-BYVY7UWR.js +1 -0
  69. package/dist/esm/chunk-BYVY7UWR.js.map +7 -0
  70. package/dist/esm/chunk-EDKZP2NB.js +165 -0
  71. package/dist/esm/chunk-EDKZP2NB.js.map +7 -0
  72. package/dist/esm/chunk-JILHOFBG.js +7 -0
  73. package/dist/esm/chunk-JILHOFBG.js.map +7 -0
  74. package/dist/esm/chunk-LE4F73Z2.js +9 -0
  75. package/dist/esm/chunk-LE4F73Z2.js.map +7 -0
  76. package/dist/esm/chunk-LE7RCOBX.js +41 -0
  77. package/dist/esm/chunk-LE7RCOBX.js.map +7 -0
  78. package/dist/esm/chunk-MUFIJUOD.js +22 -0
  79. package/dist/esm/chunk-MUFIJUOD.js.map +7 -0
  80. package/dist/esm/chunk-NDWXMYSZ.js +7 -0
  81. package/dist/esm/chunk-NDWXMYSZ.js.map +7 -0
  82. package/dist/esm/chunk-OFQYDVHG.js +58 -0
  83. package/dist/esm/chunk-OFQYDVHG.js.map +7 -0
  84. package/dist/esm/chunk-OQ4YGZGX.js +231 -0
  85. package/dist/esm/chunk-OQ4YGZGX.js.map +7 -0
  86. package/dist/esm/chunk-PI33NKP7.js +58 -0
  87. package/dist/esm/chunk-PI33NKP7.js.map +7 -0
  88. package/dist/esm/chunk-QKBNCG2F.js +145 -0
  89. package/dist/esm/chunk-QKBNCG2F.js.map +7 -0
  90. package/dist/esm/chunk-RLSHHBYY.js +39 -0
  91. package/dist/esm/chunk-RLSHHBYY.js.map +7 -0
  92. package/dist/esm/chunk-RUOVZDWE.js +39 -0
  93. package/dist/esm/chunk-RUOVZDWE.js.map +7 -0
  94. package/dist/esm/chunk-TN5IBPWO.js +44 -0
  95. package/dist/esm/chunk-TN5IBPWO.js.map +7 -0
  96. package/dist/esm/chunk-WGHBTJNE.js +74 -0
  97. package/dist/esm/chunk-WGHBTJNE.js.map +7 -0
  98. package/dist/esm/chunk-XNSKPER5.js +44 -0
  99. package/dist/esm/chunk-XNSKPER5.js.map +7 -0
  100. package/dist/esm/chunk-XRH22EFX.js +72 -0
  101. package/dist/esm/chunk-XRH22EFX.js.map +7 -0
  102. package/dist/esm/chunk-ZEYOXRFM.js +358 -0
  103. package/dist/esm/chunk-ZEYOXRFM.js.map +7 -0
  104. package/dist/esm/index.js +42 -1410
  105. package/dist/esm/index.js.map +4 -4
  106. package/dist/esm/meta.json +1481 -71
  107. package/dist/esm/mocks/eventDefinitions.js +86 -0
  108. package/dist/esm/mocks/eventDefinitions.js.map +7 -0
  109. package/dist/esm/mocks/scripts-mock.js +7 -0
  110. package/dist/esm/mocks/scripts-mock.js.map +7 -0
  111. package/dist/esm/snowplow/Snowplow.js +10 -0
  112. package/dist/esm/snowplow/Snowplow.js.map +7 -0
  113. package/dist/esm/snowplow/SnowplowContext.js +23 -0
  114. package/dist/esm/snowplow/SnowplowContext.js.map +7 -0
  115. package/dist/esm/snowplow/constants.js +7 -0
  116. package/dist/esm/snowplow/constants.js.map +7 -0
  117. package/dist/esm/snowplow/contexts.js +13 -0
  118. package/dist/esm/snowplow/contexts.js.map +7 -0
  119. package/dist/esm/snowplow/event-definitions/base.js +7 -0
  120. package/dist/esm/snowplow/event-definitions/base.js.map +7 -0
  121. package/dist/esm/snowplow/event-definitions/coverage-selection.js +7 -0
  122. package/dist/esm/snowplow/event-definitions/coverage-selection.js.map +7 -0
  123. package/dist/esm/snowplow/event-definitions/index.js +30 -0
  124. package/dist/esm/snowplow/event-definitions/index.js.map +7 -0
  125. package/dist/esm/snowplow/event-definitions/intervention.js +7 -0
  126. package/dist/esm/snowplow/event-definitions/intervention.js.map +7 -0
  127. package/dist/esm/snowplow/event-definitions/personalised_cover.js +11 -0
  128. package/dist/esm/snowplow/event-definitions/personalised_cover.js.map +7 -0
  129. package/dist/esm/snowplow/event-definitions/qcp.js +9 -0
  130. package/dist/esm/snowplow/event-definitions/qcp.js.map +7 -0
  131. package/dist/esm/snowplow/event-definitions/questionnaire/questionnaire.js +9 -0
  132. package/dist/esm/snowplow/event-definitions/questionnaire/questionnaire.js.map +7 -0
  133. package/dist/esm/snowplow/event-definitions/questionnaire/redaction.js +7 -0
  134. package/dist/esm/snowplow/event-definitions/questionnaire/redaction.js.map +7 -0
  135. package/dist/esm/snowplow/event-definitions/referral.js +7 -0
  136. package/dist/esm/snowplow/event-definitions/referral.js.map +7 -0
  137. package/dist/esm/snowplow/event-definitions/test-utils.js +12 -0
  138. package/dist/esm/snowplow/event-definitions/test-utils.js.map +7 -0
  139. package/dist/esm/snowplow/getSnowplowConfig.js +7 -0
  140. package/dist/esm/snowplow/getSnowplowConfig.js.map +7 -0
  141. package/dist/esm/snowplow/index.js +54 -0
  142. package/dist/esm/snowplow/index.js.map +7 -0
  143. package/dist/esm/snowplow/types.js +2 -0
  144. package/dist/esm/snowplow/types.js.map +7 -0
  145. package/dist/esm/utils/index.js +15 -0
  146. package/dist/esm/utils/index.js.map +7 -0
  147. package/dist/esm/utils/isObject.js +7 -0
  148. package/dist/esm/utils/isObject.js.map +7 -0
  149. package/dist/esm/utils/testUtils.js +46 -0
  150. package/dist/esm/utils/testUtils.js.map +7 -0
  151. package/dist/esm/utils/text.js +12 -0
  152. package/dist/esm/utils/text.js.map +7 -0
  153. package/package.json +2 -2
@@ -0,0 +1,1069 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/snowplow/event-definitions/index.ts
21
+ var event_definitions_exports = {};
22
+ __export(event_definitions_exports, {
23
+ coverageSelectionPageEvents: () => coverageSelectionPageEvents,
24
+ eventDefinitions: () => eventDefinitions,
25
+ interventionPageEvents: () => interventionPageEvents,
26
+ personalisedCoverPageEvents: () => personalisedCoverPageEvents,
27
+ qcpPageEvents: () => qcpPageEvents,
28
+ questionnairePageEvents: () => questionnairePageEvents,
29
+ referralPageEvents: () => referralPageEvents
30
+ });
31
+ module.exports = __toCommonJS(event_definitions_exports);
32
+
33
+ // src/snowplow/event-definitions/base.ts
34
+ var baseEventDefinitions = [
35
+ // Mobile link in header
36
+ {
37
+ name: "mobileLinkClick",
38
+ type: "structured",
39
+ makePayload: () => ({
40
+ category: "marketing",
41
+ action: "link-click",
42
+ label: "mobile_call_button",
43
+ property: window.location.href
44
+ })
45
+ },
46
+ // Operating hours link in footer
47
+ {
48
+ name: "operatingHoursClick",
49
+ type: "unstructured",
50
+ makePayload: () => ({
51
+ schema: "iglu:com.snowplowanalytics.snowplow/unstruct_event/jsonschema/1-0-0",
52
+ data: {
53
+ schema: "iglu:com.simplybusiness/operating_hours_clicked/jsonschema/1-0-2",
54
+ data: {}
55
+ }
56
+ })
57
+ },
58
+ {
59
+ name: "progressbarClicked",
60
+ type: "unstructured",
61
+ makePayload: (params) => {
62
+ const {
63
+ section,
64
+ context,
65
+ fromStepIndex,
66
+ fromStepName,
67
+ stepIndex,
68
+ stepName
69
+ } = params;
70
+ return {
71
+ schema: "iglu:com.simplybusiness/progressbar_clicked/jsonschema/1-1-0",
72
+ data: {
73
+ source_page_index: fromStepIndex,
74
+ source_page_name: fromStepName,
75
+ page_index: stepIndex,
76
+ page_name: stepName,
77
+ site: context.site,
78
+ section_name: section,
79
+ vertical: context.vertical
80
+ }
81
+ };
82
+ }
83
+ },
84
+ // Zendesk help chat link
85
+ {
86
+ name: "helpChatLinkClicked",
87
+ type: "structured",
88
+ makePayload: (params) => {
89
+ const { label } = params;
90
+ return {
91
+ category: "help chat for question",
92
+ action: "help_chat_for_question_clicked",
93
+ label,
94
+ property: window.location.href
95
+ };
96
+ },
97
+ contexts: ["serviceChannelContext"]
98
+ }
99
+ ];
100
+
101
+ // src/snowplow/event-definitions/intervention.ts
102
+ var interventionEventDefinitions = [
103
+ {
104
+ name: "interventionInteractionCompleted",
105
+ type: "unstructured",
106
+ makePayload: (params) => {
107
+ const {
108
+ interventionName,
109
+ userUniqueIdentifier,
110
+ userUniqueIdentifierType,
111
+ action,
112
+ site
113
+ } = params;
114
+ return {
115
+ schema: "iglu:com.simplybusiness/intervention_interaction_completed/jsonschema/2-1-0",
116
+ data: {
117
+ intervention_name: interventionName,
118
+ user_unique_identifier: userUniqueIdentifier,
119
+ user_unique_identifier_type: userUniqueIdentifierType,
120
+ action,
121
+ site
122
+ }
123
+ };
124
+ }
125
+ },
126
+ {
127
+ name: "iaLiveChatInterventionClosed",
128
+ type: "structured",
129
+ makePayload: (_) => ({
130
+ category: "insurance_assistant",
131
+ action: "ia_live_chat_intervention_closed"
132
+ })
133
+ }
134
+ ];
135
+
136
+ // src/utils/text.ts
137
+ var snakeCase = (text = "") => text.toLowerCase().replace(/ /g, "_");
138
+
139
+ // src/snowplow/constants.ts
140
+ var DELIMITER = "|";
141
+
142
+ // src/snowplow/event-definitions/questionnaire/redaction.ts
143
+ var PII_ANSWER = [
144
+ "customer_title",
145
+ "customer_first_name",
146
+ "customer_last_name",
147
+ "customer_email_address",
148
+ "preapp_email_address",
149
+ "customer_telephone_number",
150
+ "customer_alternative_telephone_number",
151
+ "uk_address_lookup",
152
+ "uk_correspondence_address_lookup",
153
+ "customer_address_1_pre_quote",
154
+ "customer_address_2_pre_quote",
155
+ "customer_town_pre_quote",
156
+ "customer_postcode_pre_quote",
157
+ "customer_address_1",
158
+ "customer_address_2",
159
+ "customer_town",
160
+ "customer_postcode",
161
+ "address_1_pre_quote",
162
+ "address_2_pre_quote",
163
+ "uk_postcode_pre_quote",
164
+ "town_pre_quote",
165
+ "owner_first_name",
166
+ "owner_last_name",
167
+ "beneficiary_first_name",
168
+ "beneficiary_last_name",
169
+ "gender",
170
+ "dynamic_ssn_fein",
171
+ "ssn",
172
+ "fein",
173
+ "sof_county_court_judgement_online_yes",
174
+ "sof_county_court_judgement_online_no",
175
+ "sof_ccj_count",
176
+ "sof_ccj_value",
177
+ "sof_ccj_date",
178
+ "sof_court_judgement_yes",
179
+ "sof_court_judgement_no",
180
+ "ccj_date",
181
+ "sof_single_ccj_no",
182
+ "sof_single_ccj_yes",
183
+ "sof_ccj_yes",
184
+ "sof_ccj_no",
185
+ "ccj_count",
186
+ "sof_bankrupt_yes",
187
+ "sof_bankrupt_no",
188
+ "sof_multiple_bankruptcies_yes",
189
+ "sof_multiple_bankruptcies_no",
190
+ "bankruptcy_date",
191
+ "sof_single_bankruptcy_no",
192
+ "sof_single_bankruptcy_yes",
193
+ "sof_bankruptcy_yes",
194
+ "sof_bankruptcy_no",
195
+ "bankruptcy_discharged",
196
+ "sof_liquidation_yes",
197
+ "sof_liquidation_no",
198
+ "sof_multiple_liquidations",
199
+ "liquidation_date",
200
+ "sof_criminal_offence_yes",
201
+ "sof_criminal_offence_no",
202
+ "sof_criminal_yes",
203
+ "sof_criminal_no",
204
+ "hcp_date_of_birth_1",
205
+ "hcp_date_of_birth_2",
206
+ "hcp_date_of_birth_3",
207
+ "hcp_date_of_birth_4",
208
+ "hcp_date_of_birth_5",
209
+ "hcp_date_of_birth_6",
210
+ "hcp_date_of_birth_7",
211
+ "hcp_date_of_birth_8",
212
+ "hcp_date_of_birth_9",
213
+ "hcp_date_of_birth_10",
214
+ "sof_previous_claims_yes",
215
+ "sof_previous_claims_no",
216
+ "sof_claims_yes",
217
+ "sof_claims_no",
218
+ "sof_property_claims_in_the_last_5_years_yes",
219
+ "sof_property_claims_in_the_last_5_years_no",
220
+ "sof_property_claims_in_the_last_0_to_4_years_yes",
221
+ "sof_property_claims_in_the_last_0_to_4_years_no",
222
+ "claim_count",
223
+ "sof_number_of_claims",
224
+ "number_of_claims_in_last_5_years",
225
+ "number_of_claims_in_time_owned",
226
+ "date_of_incident_1",
227
+ "date_of_incident_2",
228
+ "date_of_incident_3",
229
+ "date_of_incident_4",
230
+ "date_of_incident_5",
231
+ "type_of_incident_1",
232
+ "type_of_incident_2",
233
+ "type_of_incident_3",
234
+ "type_of_incident_4",
235
+ "type_of_incident_5",
236
+ "incident_value_1",
237
+ "incident_value_2",
238
+ "incident_value_3",
239
+ "incident_value_4",
240
+ "incident_value_5",
241
+ "sof_pollution_disease_claims_yes",
242
+ "sof_pollution_disease_claims_no",
243
+ "sof_potential_claims_yes",
244
+ "sof_potential_claims_no",
245
+ "sof_previous_circumstances_yes",
246
+ "sof_previous_circumstances_no",
247
+ "sof_possible_claims_yes",
248
+ "sof_possible_claims_no",
249
+ "date_of_possible_incident",
250
+ "type_of_possible_incident",
251
+ "possible_incident_value",
252
+ "sof_property_claims_yes",
253
+ "sof_property_claims_no",
254
+ "sof_liability_claims_yes",
255
+ "sof_liability_claims_no",
256
+ "van_registration",
257
+ "sof_disqualified_director_yes",
258
+ "sof_disqualified_director_no",
259
+ "sof_insurance_refused_yes",
260
+ "sof_insurance_refused_no",
261
+ "sof_insurance_declined_yes",
262
+ "sof_insurance_declined_no",
263
+ "insurance_refused"
264
+ ];
265
+ var RADIO_ANSWER_FROM_QUESTIONS = [
266
+ "have_secondary_trade_yes",
267
+ "have_secondary_trade_no"
268
+ ];
269
+ var ANSWER_SUFFIX_PATTERN = /_(yes|no)$/;
270
+ var redact = (params) => {
271
+ let { question, answer } = params;
272
+ const piiAnswer = new Set(PII_ANSWER);
273
+ const radioAnswerFromQuestions = new Set(RADIO_ANSWER_FROM_QUESTIONS);
274
+ if (piiAnswer.has(question)) {
275
+ answer = "REDACTED";
276
+ question = question?.replace(ANSWER_SUFFIX_PATTERN, "");
277
+ } else if (radioAnswerFromQuestions.has(question)) {
278
+ question = question?.replace(ANSWER_SUFFIX_PATTERN, "");
279
+ }
280
+ return { question, answer };
281
+ };
282
+
283
+ // src/snowplow/event-definitions/personalised_cover.ts
284
+ var personalisedCoverEventDefinitions = [
285
+ {
286
+ name: "seeMoreClicked",
287
+ type: "structured",
288
+ makePayload: (_) => ({
289
+ category: "personalised_cover",
290
+ action: "see_more_clicked",
291
+ label: "page",
292
+ property: "personalised_cover"
293
+ })
294
+ },
295
+ {
296
+ name: "selectPackageClicked",
297
+ type: "structured",
298
+ makePayload: (_) => ({
299
+ category: "personalised_cover",
300
+ action: "select_package_clicked",
301
+ label: "page",
302
+ property: "personalised_cover"
303
+ })
304
+ },
305
+ {
306
+ name: "validationShown",
307
+ type: "structured",
308
+ makePayload: (params) => {
309
+ const { cover, question } = params;
310
+ return {
311
+ category: "personalised_cover",
312
+ action: "validation_shown",
313
+ label: "cover_question",
314
+ property: `${snakeCase(cover)}_${snakeCase(question)}`
315
+ };
316
+ }
317
+ },
318
+ {
319
+ name: "coverQuestionAnswered",
320
+ type: "unstructured",
321
+ makePayload: (params) => {
322
+ const { context } = params;
323
+ const { question, answer } = redact(params);
324
+ const flatAnswer = Array.isArray(answer) ? answer.join(DELIMITER) : answer;
325
+ return {
326
+ schema: "iglu:com.simplybusiness/form_question_answered/jsonschema/1-0-4",
327
+ data: {
328
+ site: context.site,
329
+ page_name: "personalised_cover",
330
+ section_name: "Personalised Cover Questions",
331
+ question,
332
+ answer: flatAnswer,
333
+ vertical: context.vertical,
334
+ journey_id: context.journeyId
335
+ }
336
+ };
337
+ }
338
+ },
339
+ {
340
+ name: "limitLinkClicked",
341
+ type: "structured",
342
+ makePayload: (params) => {
343
+ const { label } = params;
344
+ return {
345
+ category: "personalised_cover",
346
+ action: "limit_link_clicked",
347
+ label,
348
+ property: "link_clicked"
349
+ };
350
+ }
351
+ },
352
+ {
353
+ name: "limitChanged",
354
+ type: "structured",
355
+ makePayload: (params) => {
356
+ const { label, limit } = params;
357
+ return {
358
+ category: "personalised_cover",
359
+ action: "limit_changed",
360
+ label,
361
+ property: limit
362
+ };
363
+ }
364
+ },
365
+ {
366
+ name: "coverPresented",
367
+ type: "structured",
368
+ makePayload: (params) => {
369
+ const { property } = params;
370
+ return {
371
+ category: "personalised_cover",
372
+ action: "cover_presented",
373
+ label: "cover_name",
374
+ property
375
+ };
376
+ }
377
+ },
378
+ {
379
+ name: "coverDetailsClicked",
380
+ type: "structured",
381
+ makePayload: (params) => {
382
+ const { property } = params;
383
+ return {
384
+ category: "personalised_cover",
385
+ action: "cover_details_clicked",
386
+ label: "cover_name",
387
+ property
388
+ };
389
+ }
390
+ },
391
+ {
392
+ name: "additionalQuestionsClicked",
393
+ type: "structured",
394
+ makePayload: (params) => {
395
+ const { property } = params;
396
+ return {
397
+ category: "personalised_cover",
398
+ action: "cover_details_clicked",
399
+ label: "cover_name",
400
+ property
401
+ };
402
+ }
403
+ },
404
+ {
405
+ name: "chatbotPromptClicked",
406
+ type: "structured",
407
+ makePayload: (params) => {
408
+ const { label, property } = params;
409
+ return {
410
+ category: "personalised_cover",
411
+ action: "chatbot_prompt_clicked",
412
+ label: property,
413
+ property: label
414
+ };
415
+ }
416
+ }
417
+ ];
418
+
419
+ // src/snowplow/event-definitions/qcp.ts
420
+ var qcpEventDefinitions = [
421
+ {
422
+ // QDP details button
423
+ name: "detailsClicked",
424
+ type: "structured",
425
+ makePayload: () => ({
426
+ category: "comparison_cta",
427
+ action: "link_click",
428
+ label: "Details"
429
+ })
430
+ },
431
+ {
432
+ // Buy button
433
+ name: "selectClicked",
434
+ type: "structured",
435
+ makePayload: () => ({
436
+ category: "comparison_cta",
437
+ action: "link_click",
438
+ label: "Buy"
439
+ })
440
+ },
441
+ {
442
+ // Quote Details Slider Next steps button
443
+ name: "nextStepsClicked",
444
+ type: "structured",
445
+ makePayload: () => ({
446
+ category: "quote_details_slider_next_step_cta",
447
+ action: "link_click",
448
+ label: "Next steps"
449
+ })
450
+ },
451
+ {
452
+ // Toggle deductibles accordion
453
+ name: "deductiblesClicked",
454
+ type: "structured",
455
+ makePayload: () => ({
456
+ category: "us-qcp-react",
457
+ action: "view_deductables_clicked",
458
+ label: "view_deductables_clicked",
459
+ property: window.location.href
460
+ })
461
+ },
462
+ {
463
+ name: "deductiblesClickedUk",
464
+ type: "structured",
465
+ makePayload: (params) => {
466
+ const { label, deviceType } = params;
467
+ const urlFriendlyLabel = label.replace(/ /g, "-").toLowerCase();
468
+ return {
469
+ category: `uk-qcp-react-${deviceType}-${urlFriendlyLabel}-view-excess-toggle`,
470
+ action: "view_excess_clicked",
471
+ label,
472
+ property: window.location.href
473
+ };
474
+ }
475
+ },
476
+ {
477
+ // Quote Details Slider opened
478
+ name: "sliderOpened",
479
+ type: "structured",
480
+ makePayload: (params) => {
481
+ const { label } = params;
482
+ return {
483
+ category: "comparison_cta",
484
+ action: "quote_details_slider_opened",
485
+ label
486
+ };
487
+ }
488
+ },
489
+ {
490
+ // Coverage modal opened
491
+ name: "coverageModalOpened",
492
+ type: "structured",
493
+ makePayload: (params) => {
494
+ const {
495
+ category,
496
+ product = "extra_coverage",
497
+ title
498
+ } = params;
499
+ const productLabel = snakeCase(product);
500
+ return {
501
+ category,
502
+ action: `${productLabel}_${snakeCase(title)}_popup_opened`,
503
+ label: productLabel,
504
+ property: window.location.href
505
+ };
506
+ }
507
+ },
508
+ {
509
+ // Toggle cover select
510
+ name: "coverChanged",
511
+ type: "unstructured",
512
+ makePayload: (params) => {
513
+ const { name = "", fromValue = "", toValue = "" } = params;
514
+ let action = "change";
515
+ if (fromValue === "0") {
516
+ action = "add";
517
+ }
518
+ if (toValue === "0") {
519
+ action = "remove";
520
+ }
521
+ return {
522
+ schema: "iglu:com.simplybusiness/comparison_page_cover_changed/jsonschema/1-0-0",
523
+ data: {
524
+ name,
525
+ action,
526
+ from_value: fromValue,
527
+ to_value: toValue
528
+ }
529
+ };
530
+ },
531
+ contexts: ["distributionChannelContext"]
532
+ },
533
+ {
534
+ name: "ratingsModalOpened",
535
+ type: "structured",
536
+ makePayload: (params) => {
537
+ const { category, label } = params;
538
+ return {
539
+ category,
540
+ action: "insurer_rating_help_popup_triggered",
541
+ label,
542
+ property: window.location.href
543
+ };
544
+ }
545
+ },
546
+ {
547
+ name: "coverToggleOpened",
548
+ type: "structured",
549
+ makePayload: () => ({
550
+ category: "qcp_limit_interaction",
551
+ label: "limit_interaction",
552
+ action: "limit_interaction_clicked",
553
+ property: window.location.href
554
+ })
555
+ },
556
+ {
557
+ name: "paymentToggleClicked",
558
+ type: "structured",
559
+ makePayload: (params) => {
560
+ const { category, label } = params;
561
+ return {
562
+ category,
563
+ action: "button_click",
564
+ label,
565
+ property: window.location.href
566
+ };
567
+ }
568
+ },
569
+ {
570
+ name: "insurerDetailsAccordionClicked",
571
+ type: "structured",
572
+ makePayload: () => ({
573
+ category: "quote_details_slider_insurer_details_description",
574
+ action: "accordion_clicked",
575
+ label: "accordion_clicked",
576
+ property: window.location.href
577
+ })
578
+ },
579
+ {
580
+ name: "priceDetailsPopUpOpened",
581
+ type: "structured",
582
+ makePayload: () => ({
583
+ category: "price_details",
584
+ action: "price_details_popup_opened",
585
+ label: "Price details",
586
+ property: window.location.href
587
+ })
588
+ },
589
+ {
590
+ name: "editLimitButtonClicked",
591
+ type: "structured",
592
+ makePayload: () => ({
593
+ category: "cover_limit_changes",
594
+ action: "edit_limit_button_clicked",
595
+ label: "Edit Limit",
596
+ property: window.location.href
597
+ })
598
+ },
599
+ {
600
+ name: "applyButtonClicked",
601
+ type: "structured",
602
+ makePayload: () => ({
603
+ category: "cover_limit_changes",
604
+ action: "apply_button_clicked",
605
+ label: "Apply Button Clicked",
606
+ property: window.location.href
607
+ })
608
+ },
609
+ {
610
+ name: "coverageInfoClicked",
611
+ type: "structured",
612
+ makePayload: (params) => {
613
+ const { deviceType, open = true } = params;
614
+ return {
615
+ action: "show_coverage_info_clicked",
616
+ category: `uk-qcp-react-${deviceType}-show-coverage-info-toggle`,
617
+ label: `${open ? "show" : "hide"}_coverage_info_clicked`,
618
+ property: window.location.href
619
+ };
620
+ }
621
+ },
622
+ {
623
+ name: "backToApplication",
624
+ type: "unstructured",
625
+ makePayload: (params) => {
626
+ const { journeyId, vertical } = params;
627
+ return {
628
+ schema: "iglu:com.simplybusiness/qcp_back_to_application/jsonschema/1-0-0",
629
+ data: {
630
+ journey_id: journeyId,
631
+ vertical
632
+ }
633
+ };
634
+ },
635
+ contexts: ["serviceChannelContext"]
636
+ },
637
+ // No quotes referral
638
+ {
639
+ name: "coverOptionsLinkClicked",
640
+ type: "structured",
641
+ makePayload: () => ({
642
+ category: "uk-qcp-react-cover-options-link",
643
+ action: "cover_options_link_clicked",
644
+ label: "cover_options_link_clicked",
645
+ property: window.location.href
646
+ })
647
+ },
648
+ {
649
+ name: "referralReasonsVariantBCoverOptionsLinkClicked",
650
+ type: "structured",
651
+ makePayload: () => ({
652
+ category: "uk-24-12-qcp-mvt-referral-reasons",
653
+ action: "cover_options_link_clicked_variant_b",
654
+ label: "cover_options_link_clicked_variant_b",
655
+ property: window.location.href
656
+ })
657
+ },
658
+ {
659
+ name: "referralReasonsVariantCCoverOptionsLinkClicked",
660
+ type: "structured",
661
+ makePayload: () => ({
662
+ category: "uk-24-12-qcp-mvt-referral-reasons",
663
+ action: "cover_options_link_clicked_variant_c",
664
+ label: "cover_options_link_clicked_variant_c",
665
+ property: window.location.href
666
+ })
667
+ },
668
+ {
669
+ name: "phoneNumberLinkClicked",
670
+ type: "structured",
671
+ makePayload: () => ({
672
+ category: "uk-qcp-react-phone-number-link",
673
+ action: "phone_number_link_clicked",
674
+ label: "phone_number_link_clicked",
675
+ property: window.location.href
676
+ })
677
+ },
678
+ {
679
+ name: "linkClicked",
680
+ type: "unstructured",
681
+ makePayload: (params) => {
682
+ const { targetUrl, elementContent } = params;
683
+ return {
684
+ schema: "iglu:com.snowplowanalytics.snowplow/link_click/jsonschema/1-0-1",
685
+ data: {
686
+ targetUrl,
687
+ elementContent
688
+ }
689
+ };
690
+ }
691
+ },
692
+ {
693
+ name: "qcpUpsellAccordionClicked",
694
+ type: "structured",
695
+ makePayload: (params) => ({
696
+ category: "us-qcp-upsells",
697
+ action: "accordion_clicked_qcp",
698
+ label: params?.label,
699
+ property: window.location.href
700
+ })
701
+ },
702
+ {
703
+ name: "qdsUpsellAccordionClicked",
704
+ type: "structured",
705
+ makePayload: (params) => ({
706
+ category: "us-qcp-upsells",
707
+ action: "accordion_clicked_slider",
708
+ label: params?.label,
709
+ property: window.location.href
710
+ })
711
+ },
712
+ {
713
+ name: "qcpUpsellTooltipHelperClicked",
714
+ type: "structured",
715
+ makePayload: (params) => ({
716
+ category: "us-qcp-upsells",
717
+ action: "tooltip_helper_clicked_qcp",
718
+ label: params?.label,
719
+ property: window.location.href
720
+ })
721
+ },
722
+ {
723
+ name: "qdsUpsellTooltipHelperClicked",
724
+ type: "structured",
725
+ makePayload: (params) => ({
726
+ category: "us-qcp-upsells",
727
+ action: "tooltip_helper_clicked_slider",
728
+ label: params?.label,
729
+ property: window.location.href
730
+ })
731
+ },
732
+ {
733
+ name: "qcpQuoteButtonClicked",
734
+ type: "structured",
735
+ makePayload: (payload) => ({
736
+ category: "quote-buttons",
737
+ action: "button-clicked",
738
+ label: payload?.label,
739
+ property: window.location.href
740
+ })
741
+ },
742
+ {
743
+ name: "layoutToggleClickedExperiment",
744
+ type: "structured",
745
+ makePayload: (params) => {
746
+ const { layout } = params;
747
+ return {
748
+ category: "uk-25-04-16-gridview_layout",
749
+ action: "layout_toggle_clicked",
750
+ label: layout,
751
+ property: window.location.href
752
+ };
753
+ }
754
+ },
755
+ {
756
+ name: "cancelAnytimeBadgeClicked",
757
+ type: "structured",
758
+ makePayload: (payload) => {
759
+ return {
760
+ category: "us-26-02-qcp-cancel-anytime-test",
761
+ action: "cancel_anytime_badge_clicked",
762
+ label: payload?.label || "cancel_anytime",
763
+ property: window.location.href
764
+ };
765
+ }
766
+ }
767
+ ];
768
+
769
+ // src/snowplow/event-definitions/questionnaire/questionnaire.ts
770
+ var questionnaireEventDefinitions = [
771
+ {
772
+ name: "questionAnswered",
773
+ type: "unstructured",
774
+ makePayload: (params) => {
775
+ const { section, context } = params;
776
+ const { question, answer } = redact(params);
777
+ const flatAnswer = Array.isArray(answer) ? answer.join(DELIMITER) : answer;
778
+ return {
779
+ schema: "iglu:com.simplybusiness/form_question_answered/jsonschema/1-0-4",
780
+ data: {
781
+ site: context.site,
782
+ page_index: 1,
783
+ page_name: "quick_to_quote",
784
+ submitted_from: "quick_to_quote_experiment",
785
+ section_name: section,
786
+ question,
787
+ answer: flatAnswer,
788
+ vertical: context.vertical,
789
+ journey_id: context.journeyId
790
+ }
791
+ };
792
+ }
793
+ },
794
+ {
795
+ name: "primaryDetailSelected",
796
+ type: "unstructured",
797
+ makePayload: (params) => {
798
+ const {
799
+ context,
800
+ answer,
801
+ vertical,
802
+ searchId,
803
+ selectedListPosition,
804
+ selectionMethod
805
+ } = params;
806
+ const { site } = context;
807
+ const isUSPage = site === "simplybusiness_us";
808
+ let verticalName = vertical || context.vertical;
809
+ if (verticalName.toLowerCase().indexOf("landlord") > -1) {
810
+ verticalName = answer === "residential" ? "Landlord" : "Commercial landlord";
811
+ }
812
+ const data = {
813
+ site,
814
+ vertical: verticalName,
815
+ primary_detail: answer,
816
+ selected_type: "trade_selector",
817
+ location: window?.location?.pathname ?? ""
818
+ };
819
+ if (searchId) {
820
+ data.search_id = searchId;
821
+ }
822
+ if (selectionMethod) {
823
+ data.selection_method = selectionMethod;
824
+ }
825
+ if (isUSPage) {
826
+ data.selected_list_position = selectedListPosition !== void 0 ? (selectedListPosition + 1).toString() : null;
827
+ data.selected_location = "trade_selector_vertical";
828
+ data.business_unit = site;
829
+ }
830
+ return {
831
+ schema: "iglu:com.simplybusiness/primary_detail_selected/jsonschema/1-4-0",
832
+ data
833
+ };
834
+ },
835
+ contexts: ["distributionChannelContext", "serviceChannelContext"]
836
+ },
837
+ {
838
+ name: "helpTextOpened",
839
+ type: "unstructured",
840
+ makePayload: (params) => {
841
+ const { primaryText, label, context, helpText } = params;
842
+ return {
843
+ schema: "iglu:com.simplybusiness/help_text_opened/jsonschema/1-1-0",
844
+ data: {
845
+ vertical: context.vertical,
846
+ site: context.site,
847
+ primary_text: primaryText,
848
+ help_text: helpText,
849
+ label,
850
+ page_name: "quick_to_quote"
851
+ }
852
+ };
853
+ }
854
+ },
855
+ {
856
+ name: "assumptionsButtonClicked",
857
+ type: "structured",
858
+ makePayload: (params) => {
859
+ const { source, presentationGroup } = params;
860
+ return {
861
+ action: source,
862
+ category: presentationGroup
863
+ };
864
+ }
865
+ },
866
+ {
867
+ name: "navButtonClicked",
868
+ type: "structured",
869
+ makePayload: (params) => {
870
+ const { label, category } = params;
871
+ return {
872
+ label,
873
+ action: "link_click",
874
+ category
875
+ };
876
+ }
877
+ },
878
+ {
879
+ name: "manualAddressClicked",
880
+ type: "structured",
881
+ makePayload: (params) => {
882
+ const { category } = params;
883
+ return {
884
+ action: "link_click",
885
+ category,
886
+ label: "Enter address manually"
887
+ };
888
+ }
889
+ },
890
+ {
891
+ name: "assumptionLinkClicked",
892
+ type: "structured",
893
+ makePayload: (params) => {
894
+ const { label, category, property } = params;
895
+ return {
896
+ action: "assumption_link_click",
897
+ category,
898
+ label,
899
+ property
900
+ };
901
+ }
902
+ },
903
+ {
904
+ name: "addressLookupFocused",
905
+ type: "structured",
906
+ makePayload: (params) => {
907
+ const { label, category } = params;
908
+ return {
909
+ action: "address_lookup_focused",
910
+ category,
911
+ label
912
+ };
913
+ }
914
+ },
915
+ {
916
+ name: "addressLookupTypedIn",
917
+ type: "structured",
918
+ makePayload: (params) => {
919
+ const { label, category } = params;
920
+ return {
921
+ action: "address_lookup_typed_in",
922
+ category,
923
+ label
924
+ };
925
+ }
926
+ },
927
+ {
928
+ name: "addressOptionsDisplayed",
929
+ type: "structured",
930
+ makePayload: (params) => {
931
+ const { label, category } = params;
932
+ return {
933
+ action: "address_options_displayed",
934
+ category,
935
+ label
936
+ };
937
+ }
938
+ },
939
+ {
940
+ name: "tradeChanged",
941
+ type: "structured",
942
+ makePayload: (params) => {
943
+ const { label, property } = params;
944
+ return {
945
+ action: "change_your_selected_profession_button_clicked",
946
+ category: "change_your_selected_profession_button",
947
+ label: `Question: ${label}`,
948
+ property
949
+ // Answer before change
950
+ };
951
+ }
952
+ },
953
+ {
954
+ name: "questionValidationFailed",
955
+ type: "structured",
956
+ makePayload: (params) => {
957
+ const { question, errorMessage } = params;
958
+ return {
959
+ category: "questionnaire",
960
+ action: `${question} validation failed`,
961
+ label: errorMessage
962
+ };
963
+ }
964
+ },
965
+ {
966
+ name: "stateQuestionAnswered",
967
+ type: "unstructured",
968
+ makePayload: (params) => {
969
+ const { context, answer, selectedCoverages } = params;
970
+ const data = {
971
+ vertical: context.vertical,
972
+ selected_type: context.journeyName ?? "usa",
973
+ location: window?.location?.pathname ?? "",
974
+ url: window?.location?.href ?? "",
975
+ state: answer,
976
+ selection_method: "dropdown"
977
+ };
978
+ if (selectedCoverages?.length) {
979
+ data.products = selectedCoverages.join(",");
980
+ }
981
+ return {
982
+ schema: "iglu:com.simplybusiness/state_question_answered/jsonschema/1-0-0",
983
+ data
984
+ };
985
+ }
986
+ }
987
+ ];
988
+
989
+ // src/snowplow/event-definitions/coverage-selection.ts
990
+ var coverageSelectionEventDefinitions = [
991
+ {
992
+ name: "checkboxFormQuestionAnswered",
993
+ type: "unstructured",
994
+ makePayload: (params) => {
995
+ const { context, pageIndex, pageName, sectionName, question, answer } = params;
996
+ return {
997
+ schema: "iglu:com.simplybusiness/checkbox_form_question_answered/jsonschema/1-0-1",
998
+ data: {
999
+ site: context.site,
1000
+ vertical: context.vertical ?? "",
1001
+ journey_id: context.journeyId,
1002
+ page_index: pageIndex,
1003
+ page_name: pageName,
1004
+ section_name: sectionName,
1005
+ question,
1006
+ answer
1007
+ }
1008
+ };
1009
+ }
1010
+ },
1011
+ {
1012
+ name: "learnMoreModalOpened",
1013
+ type: "structured",
1014
+ makePayload: (params) => {
1015
+ const { product } = params;
1016
+ return {
1017
+ category: "coverage_selection",
1018
+ action: "learn_more_modal_opened",
1019
+ label: product,
1020
+ property: window.location.href
1021
+ };
1022
+ }
1023
+ }
1024
+ ];
1025
+
1026
+ // src/snowplow/event-definitions/referral.ts
1027
+ var referralEventDefinitions = [
1028
+ {
1029
+ name: "nextCoverageClicked",
1030
+ type: "structured",
1031
+ makePayload: (params) => {
1032
+ const { url } = params;
1033
+ const eventName = "post_referral_workers_compensation_continuation_link";
1034
+ return {
1035
+ category: eventName,
1036
+ action: "link_click",
1037
+ label: eventName,
1038
+ property: url
1039
+ };
1040
+ }
1041
+ }
1042
+ ];
1043
+
1044
+ // src/snowplow/event-definitions/index.ts
1045
+ var eventDefinitions = [
1046
+ ...baseEventDefinitions,
1047
+ ...qcpEventDefinitions,
1048
+ ...referralEventDefinitions,
1049
+ ...interventionEventDefinitions,
1050
+ ...questionnaireEventDefinitions,
1051
+ ...personalisedCoverEventDefinitions,
1052
+ ...coverageSelectionEventDefinitions
1053
+ ];
1054
+ var qcpPageEvents = [...baseEventDefinitions, ...qcpEventDefinitions];
1055
+ var referralPageEvents = [
1056
+ ...baseEventDefinitions,
1057
+ ...referralEventDefinitions
1058
+ ];
1059
+ var personalisedCoverPageEvents = [
1060
+ ...baseEventDefinitions,
1061
+ ...personalisedCoverEventDefinitions
1062
+ ];
1063
+ var interventionPageEvents = [...interventionEventDefinitions];
1064
+ var questionnairePageEvents = [...questionnaireEventDefinitions];
1065
+ var coverageSelectionPageEvents = [
1066
+ ...baseEventDefinitions,
1067
+ ...coverageSelectionEventDefinitions
1068
+ ];
1069
+ //# sourceMappingURL=index.js.map