@simplybusiness/services 2.4.4 → 2.4.5

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 (305) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/cjs/index.js +6 -2
  3. package/dist/cjs/index.js.map +2 -2
  4. package/dist/cjs/meta.json +27 -27
  5. package/dist/cjs/snowplow/Snowplow.js +3 -0
  6. package/dist/cjs/snowplow/Snowplow.js.map +2 -2
  7. package/dist/cjs/snowplow/SnowplowContext.js +6 -2
  8. package/dist/cjs/snowplow/SnowplowContext.js.map +2 -2
  9. package/dist/cjs/snowplow/event-definitions/index.js +3 -2
  10. package/dist/cjs/snowplow/event-definitions/index.js.map +2 -2
  11. package/dist/cjs/snowplow/event-definitions/questionnaire/questionnaire.js +3 -2
  12. package/dist/cjs/snowplow/event-definitions/questionnaire/questionnaire.js.map +2 -2
  13. package/dist/cjs/snowplow/index.js +6 -2
  14. package/dist/cjs/snowplow/index.js.map +2 -2
  15. package/dist/cjs/utils/testUtils.js +6 -2
  16. package/dist/cjs/utils/testUtils.js.map +2 -2
  17. package/dist/esm/{chunk-EDKZP2NB.js → chunk-2TWF6FRS.js} +4 -1
  18. package/dist/esm/{chunk-EDKZP2NB.js.map → chunk-2TWF6FRS.js.map} +2 -2
  19. package/dist/esm/{chunk-YO5FUC73.js → chunk-3VFJFBNM.js} +4 -3
  20. package/dist/esm/chunk-3VFJFBNM.js.map +7 -0
  21. package/dist/esm/{chunk-7QIIG44X.js → chunk-RSDIB373.js} +3 -3
  22. package/dist/esm/{chunk-LLSH4K4D.js → chunk-X77BVKJO.js} +2 -2
  23. package/dist/esm/index.js +4 -4
  24. package/dist/esm/meta.json +39 -39
  25. package/dist/esm/snowplow/Snowplow.js +1 -1
  26. package/dist/esm/snowplow/SnowplowContext.js +4 -4
  27. package/dist/esm/snowplow/event-definitions/index.js +2 -2
  28. package/dist/esm/snowplow/event-definitions/questionnaire/questionnaire.js +1 -1
  29. package/dist/esm/snowplow/index.js +4 -4
  30. package/dist/esm/utils/testUtils.js +4 -4
  31. package/dist/tsconfig.build.tsbuildinfo +1 -1
  32. package/dist/types/address-lookup/index.test.d.ts +1 -0
  33. package/dist/types/components/Actions/Actions.d.ts +15 -0
  34. package/dist/types/components/Actions/Actions.hidden-stories.d.ts +10 -0
  35. package/dist/types/components/Actions/Actions.stories.d.ts +10 -0
  36. package/dist/types/components/Actions/Actions.test.d.ts +1 -0
  37. package/dist/types/components/Actions/LinkOrButton.d.ts +2 -0
  38. package/dist/types/components/Actions/LinkOrButton.test.d.ts +1 -0
  39. package/dist/types/components/Actions/index.d.ts +1 -0
  40. package/dist/types/components/Footer/Address.d.ts +6 -0
  41. package/dist/types/components/Footer/Addresses.d.ts +5 -0
  42. package/dist/types/components/Footer/Copyright.d.ts +7 -0
  43. package/dist/types/components/Footer/Footer.d.ts +2 -0
  44. package/dist/types/components/Footer/Footer.stories.d.ts +7 -0
  45. package/dist/types/components/Footer/Footer.test.d.ts +1 -0
  46. package/dist/types/components/Footer/Legal.d.ts +7 -0
  47. package/dist/types/components/Footer/LegalLinks.d.ts +5 -0
  48. package/dist/types/components/Footer/OpeningHours.d.ts +2 -0
  49. package/dist/types/components/Footer/OpeningHoursEntry.d.ts +2 -0
  50. package/dist/types/components/Footer/SmallPrint.d.ts +5 -0
  51. package/dist/types/components/Footer/Support.d.ts +3 -0
  52. package/dist/types/components/Footer/Title.d.ts +5 -0
  53. package/dist/types/components/Footer/Underline.d.ts +1 -0
  54. package/dist/types/components/Footer/constants.d.ts +25 -0
  55. package/dist/types/components/Footer/index.d.ts +2 -0
  56. package/dist/types/components/Footer/types.d.ts +18 -0
  57. package/dist/types/components/Header/ContactDetails.d.ts +2 -0
  58. package/dist/types/components/Header/Header.d.ts +2 -0
  59. package/dist/types/components/Header/Header.stories.d.ts +8 -0
  60. package/dist/types/components/Header/Header.test.d.ts +1 -0
  61. package/dist/types/components/Header/Logo.d.ts +2 -0
  62. package/dist/types/components/Header/constants.d.ts +4 -0
  63. package/dist/types/components/Header/index.d.ts +3 -0
  64. package/dist/types/components/Header/mockOpeningHoursData.d.ts +4 -0
  65. package/dist/types/components/Header/types.d.ts +25 -0
  66. package/dist/types/components/HelpWidget/HelpWidget.d.ts +10 -0
  67. package/dist/types/components/HelpWidget/HelpWidget.stories.d.ts +6 -0
  68. package/dist/types/components/HelpWidget/HelpWidget.test.d.ts +1 -0
  69. package/dist/types/components/HelpWidget/index.d.ts +1 -0
  70. package/dist/types/components/MaskedField/MaskedField.d.ts +11 -0
  71. package/dist/types/components/MaskedField/MaskedField.hidden-stories.d.ts +6 -0
  72. package/dist/types/components/MaskedField/MaskedField.stories.d.ts +6 -0
  73. package/dist/types/components/MaskedField/MaskedField.test.d.ts +1 -0
  74. package/dist/types/components/MaskedField/index.d.ts +1 -0
  75. package/dist/types/components/MaskedField/inputFormatters.d.ts +10 -0
  76. package/dist/types/components/PageFlat/PageFlat.d.ts +2 -0
  77. package/dist/types/components/PageFlat/PageFlat.stories.d.ts +6 -0
  78. package/dist/types/components/PageFlat/index.d.ts +1 -0
  79. package/dist/types/components/PageNested/PageNested.d.ts +2 -0
  80. package/dist/types/components/PageNested/PageNested.stories.d.ts +6 -0
  81. package/dist/types/components/PageNested/index.d.ts +1 -0
  82. package/dist/types/components/PaymentConfirmation/PaymentConfirmation.d.ts +6 -0
  83. package/dist/types/components/PaymentConfirmation/PaymentConfirmation.hidden-stories.d.ts +6 -0
  84. package/dist/types/components/PaymentConfirmation/PaymentConfirmation.stories.d.ts +6 -0
  85. package/dist/types/components/PaymentConfirmation/PaymentConfirmation.test.d.ts +1 -0
  86. package/dist/types/components/PaymentConfirmation/index.d.ts +1 -0
  87. package/dist/types/components/PercentageTotalsQuestion/PercentageItem.d.ts +6 -0
  88. package/dist/types/components/PercentageTotalsQuestion/PercentageTotalsQuestion.d.ts +10 -0
  89. package/dist/types/components/PercentageTotalsQuestion/PercentageTotalsQuestion.hidden-stories.d.ts +6 -0
  90. package/dist/types/components/PercentageTotalsQuestion/PercentageTotalsQuestion.hiddenstories.d.ts +6 -0
  91. package/dist/types/components/PercentageTotalsQuestion/PercentageTotalsQuestion.stories.d.ts +6 -0
  92. package/dist/types/components/PercentageTotalsQuestion/PercentageTotalsQuestion.test.d.ts +1 -0
  93. package/dist/types/components/PercentageTotalsQuestion/index.d.ts +1 -0
  94. package/dist/types/components/PreFooter/LogoBbbAccreditedBusiness.d.ts +5 -0
  95. package/dist/types/components/PreFooter/LogoForbesAdvisor.d.ts +5 -0
  96. package/dist/types/components/PreFooter/PreFooter.d.ts +10 -0
  97. package/dist/types/components/PreFooter/PreFooter.stories.d.ts +6 -0
  98. package/dist/types/components/PreFooter/PreFooter.test.d.ts +1 -0
  99. package/dist/types/components/PreFooter/index.d.ts +1 -0
  100. package/dist/types/components/Question/Question.d.ts +13 -0
  101. package/dist/types/components/Question/Question.hidden-stories.d.ts +14 -0
  102. package/dist/types/components/Question/Question.stories.d.ts +14 -0
  103. package/dist/types/components/Question/Question.test.d.ts +1 -0
  104. package/dist/types/components/Question/index.d.ts +1 -0
  105. package/dist/types/components/QuestionGroup/QuestionGroup.d.ts +16 -0
  106. package/dist/types/components/QuestionGroup/QuestionGroup.hidden-stories.d.ts +6 -0
  107. package/dist/types/components/QuestionGroup/QuestionGroup.stories.d.ts +6 -0
  108. package/dist/types/components/QuestionGroup/QuestionGroup.test.d.ts +1 -0
  109. package/dist/types/components/QuestionGroup/index.d.ts +1 -0
  110. package/dist/types/components/QuestionHelp/QuestionHelp.d.ts +11 -0
  111. package/dist/types/components/QuestionHelp/QuestionHelp.test.d.ts +1 -0
  112. package/dist/types/components/QuestionHelp/index.d.ts +1 -0
  113. package/dist/types/components/QuestionHelp/question.d.ts +3 -0
  114. package/dist/types/components/Section/Section.d.ts +14 -0
  115. package/dist/types/components/Section/Section.hidden-stories.d.ts +6 -0
  116. package/dist/types/components/Section/Section.stories.d.ts +6 -0
  117. package/dist/types/components/Section/Section.test.d.ts +1 -0
  118. package/dist/types/components/Section/index.d.ts +1 -0
  119. package/dist/types/components/Steps/StepItem.d.ts +20 -0
  120. package/dist/types/components/Steps/Steps.d.ts +13 -0
  121. package/dist/types/components/Steps/Steps.hidden-stories.d.ts +6 -0
  122. package/dist/types/components/Steps/Steps.stories.d.ts +6 -0
  123. package/dist/types/components/Steps/Steps.test.d.ts +1 -0
  124. package/dist/types/components/Steps/index.d.ts +2 -0
  125. package/dist/types/components/Testimonial/Testimonial.d.ts +13 -0
  126. package/dist/types/components/Testimonial/Testimonial.hidden-stories.d.ts +6 -0
  127. package/dist/types/components/Testimonial/Testimonial.stories.d.ts +6 -0
  128. package/dist/types/components/Testimonial/Testimonial.test.d.ts +1 -0
  129. package/dist/types/components/Testimonial/index.d.ts +1 -0
  130. package/dist/types/components/ThankYou/ThankYou.d.ts +3 -0
  131. package/dist/types/components/ThankYou/ThankYou.stories.d.ts +7 -0
  132. package/dist/types/components/ThankYou/ThankYou.test.d.ts +1 -0
  133. package/dist/types/components/ThankYou/ThankYouSidebar.d.ts +1 -0
  134. package/dist/types/components/ThankYou/ThankYouText.d.ts +2 -0
  135. package/dist/types/components/ThankYou/ThankYouText.test.d.ts +1 -0
  136. package/dist/types/components/ThankYou/index.d.ts +2 -0
  137. package/dist/types/components/ThankYou/types.d.ts +17 -0
  138. package/dist/types/components/TradeSearch/SearchResults/SearchResults.d.ts +15 -0
  139. package/dist/types/components/TradeSearch/TradeSearch.d.ts +2 -0
  140. package/dist/types/components/TradeSearch/TradeSearch.stories.d.ts +6 -0
  141. package/dist/types/components/TradeSearch/components/Listing/Listing.d.ts +12 -0
  142. package/dist/types/components/TradeSearch/components/Listing/Listing.test.d.ts +1 -0
  143. package/dist/types/components/TradeSearch/components/Listing/ListingItem.d.ts +8 -0
  144. package/dist/types/components/TradeSearch/components/Listing/ListingItem.test.d.ts +1 -0
  145. package/dist/types/components/TradeSearch/components/Listing/index.d.ts +1 -0
  146. package/dist/types/components/TradeSearch/components/SearchResults/SearchResults.d.ts +2 -0
  147. package/dist/types/components/TradeSearch/components/SearchResults/SearchResults.test.d.ts +1 -0
  148. package/dist/types/components/TradeSearch/components/SearchResults/index.d.ts +1 -0
  149. package/dist/types/components/TradeSearch/components/TradeContext/TradeContext.d.ts +1 -0
  150. package/dist/types/components/TradeSearch/components/TradeContext/index.d.ts +1 -0
  151. package/dist/types/components/TradeSearch/components/index.d.ts +1 -0
  152. package/dist/types/components/TradeSearch/constants.d.ts +1 -0
  153. package/dist/types/components/TradeSearch/hooks/index.d.ts +4 -0
  154. package/dist/types/components/TradeSearch/hooks/useApiEndpoint.d.ts +1 -0
  155. package/dist/types/components/TradeSearch/hooks/useFetchTrades.d.ts +6 -0
  156. package/dist/types/components/TradeSearch/hooks/useTradeContext.d.ts +1 -0
  157. package/dist/types/components/TradeSearch/hooks/useTradeState.d.ts +6 -0
  158. package/dist/types/components/TradeSearch/index.d.ts +2 -0
  159. package/dist/types/components/TradeSearch/types.d.ts +65 -0
  160. package/dist/types/components/TradeSearch/utils/addQueryParam.d.ts +1 -0
  161. package/dist/types/components/TradeSearch/utils/index.d.ts +1 -0
  162. package/dist/types/components/TradeSelector/Header/Header.d.ts +9 -0
  163. package/dist/types/components/TradeSelector/Header/index.d.ts +1 -0
  164. package/dist/types/components/TradeSelector/Listing/Listing.d.ts +12 -0
  165. package/dist/types/components/TradeSelector/Listing/Listing.test.d.ts +1 -0
  166. package/dist/types/components/TradeSelector/Listing/ListingItem.d.ts +8 -0
  167. package/dist/types/components/TradeSelector/Listing/ListingItem.test.d.ts +1 -0
  168. package/dist/types/components/TradeSelector/Listing/index.d.ts +1 -0
  169. package/dist/types/components/TradeSelector/SearchResults/SearchResults.d.ts +15 -0
  170. package/dist/types/components/TradeSelector/SearchResults/SearchResults.test.d.ts +1 -0
  171. package/dist/types/components/TradeSelector/SearchResults/index.d.ts +1 -0
  172. package/dist/types/components/TradeSelector/TradeInput/TradeInput.d.ts +15 -0
  173. package/dist/types/components/TradeSelector/TradeInput/TradeInput.test.d.ts +1 -0
  174. package/dist/types/components/TradeSelector/TradeInput/index.d.ts +1 -0
  175. package/dist/types/components/TradeSelector/TradeSelector.d.ts +5 -0
  176. package/dist/types/components/TradeSelector/TradeSelector.stories.d.ts +10 -0
  177. package/dist/types/components/TradeSelector/TradeSelector.test.d.ts +1 -0
  178. package/dist/types/components/TradeSelector/config/development.d.ts +7 -0
  179. package/dist/types/components/TradeSelector/config/index.d.ts +18 -0
  180. package/dist/types/components/TradeSelector/config/production.d.ts +7 -0
  181. package/dist/types/components/TradeSelector/config/shared.d.ts +17 -0
  182. package/dist/types/components/TradeSelector/config/testing.d.ts +7 -0
  183. package/dist/types/components/TradeSelector/index.d.ts +2 -0
  184. package/dist/types/components/TradeSelector/jestHTMLDialogPolyfill.d.ts +1 -0
  185. package/dist/types/components/TradeSelector/mockApiResults.d.ts +13 -0
  186. package/dist/types/components/TradeSelector/types.d.ts +51 -0
  187. package/dist/types/components/TradeSelector/useFetchTrades/index.d.ts +1 -0
  188. package/dist/types/components/TradeSelector/useFetchTrades/useFetchTrades.d.ts +7 -0
  189. package/dist/types/components/TradeSelector/useTradeSelectorUrl/index.d.ts +1 -0
  190. package/dist/types/components/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.d.ts +6 -0
  191. package/dist/types/components/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.test.d.ts +1 -0
  192. package/dist/types/components/TrustSection/TrustSection.d.ts +10 -0
  193. package/dist/types/components/TrustSection/TrustSection.stories.d.ts +6 -0
  194. package/dist/types/components/TrustSection/TrustSection.test.d.ts +1 -0
  195. package/dist/types/components/TrustSection/index.d.ts +1 -0
  196. package/dist/types/data/page-contract-flat.d.ts +17 -0
  197. package/dist/types/data/page-contract-nested.d.ts +17 -0
  198. package/dist/types/data/page-contract-v1.d.ts +2 -0
  199. package/dist/types/data/page-contract-v2.d.ts +2 -0
  200. package/dist/types/data/scripts-mock.d.ts +44 -0
  201. package/dist/types/data/thank-you-page-mock.d.ts +44 -0
  202. package/dist/types/hooks/useOnClickOutside/index.d.ts +1 -0
  203. package/dist/types/hooks/useOnClickOutside/useOnClickOutside.d.ts +2 -0
  204. package/dist/types/hooks/useWindowEvent/index.d.ts +1 -0
  205. package/dist/types/hooks/useWindowEvent/useWindowEvent.d.ts +1 -0
  206. package/dist/types/pages/GeneralPage/GeneralPage.d.ts +2 -0
  207. package/dist/types/pages/GeneralPage/GeneralPage.stories.d.ts +6 -0
  208. package/dist/types/pages/GeneralPage/GeneralPage.test.d.ts +1 -0
  209. package/dist/types/pages/GeneralPage/Main.d.ts +5 -0
  210. package/dist/types/pages/GeneralPage/getMainComponents.d.ts +6 -0
  211. package/dist/types/pages/GeneralPage/index.d.ts +1 -0
  212. package/dist/types/pages/GeneralPage/mainComponents.d.ts +2 -0
  213. package/dist/types/pages/GeneralPage/types.d.ts +23 -0
  214. package/dist/types/pages/Page/Page.d.ts +2 -0
  215. package/dist/types/pages/Page/index.d.ts +1 -0
  216. package/dist/types/pages/Page/types.d.ts +29 -0
  217. package/dist/types/pages/Simple/Main.d.ts +5 -0
  218. package/dist/types/pages/Simple/Simple.d.ts +2 -0
  219. package/dist/types/pages/Simple/Simple.stories.d.ts +6 -0
  220. package/dist/types/pages/Simple/index.d.ts +1 -0
  221. package/dist/types/pages/Simple/useMainComponents.d.ts +3 -0
  222. package/dist/types/pages/ThankYouPage/ThankYouPage.d.ts +2 -0
  223. package/dist/types/pages/ThankYouPage/ThankYouPage.stories.d.ts +6 -0
  224. package/dist/types/pages/ThankYouPage/ThankYouPage.test.d.ts +1 -0
  225. package/dist/types/pages/ThankYouPage/index.d.ts +1 -0
  226. package/dist/types/pages/ThankYouPage/types.d.ts +10 -0
  227. package/dist/types/services/airbrake/index.d.ts +2 -0
  228. package/dist/types/services/index.d.ts +2 -0
  229. package/dist/types/services/snowplow/Snowplow.d.ts +29 -0
  230. package/dist/types/services/snowplow/SnowplowContext.d.ts +14 -0
  231. package/dist/types/services/snowplow/SnowplowContext.test.d.ts +1 -0
  232. package/dist/types/services/snowplow/contexts.d.ts +3 -0
  233. package/dist/types/services/snowplow/contexts.test.d.ts +1 -0
  234. package/dist/types/services/snowplow/event-definitions/base.d.ts +18 -0
  235. package/dist/types/services/snowplow/event-definitions/index.d.ts +2 -0
  236. package/dist/types/services/snowplow/event-definitions/qcp.d.ts +18 -0
  237. package/dist/types/services/snowplow/event-definitions.d.ts +18 -0
  238. package/dist/types/services/snowplow/getSnowplowConfig.d.ts +2 -0
  239. package/dist/types/services/snowplow/index.d.ts +6 -0
  240. package/dist/types/services/snowplow/index.test.d.ts +1 -0
  241. package/dist/types/services/snowplow/types.d.ts +37 -0
  242. package/dist/types/snowplow/SnowplowContext.test.d.ts +1 -0
  243. package/dist/types/snowplow/contexts.test.d.ts +1 -0
  244. package/dist/types/snowplow/event-definitions/events.d.ts +20 -0
  245. package/dist/types/snowplow/event-definitions/pcp.d.ts +20 -0
  246. package/dist/types/snowplow/event-definitions/progressbar.d.ts +2 -0
  247. package/dist/types/snowplow/event-definitions/questionnaire/questionnaire.test.d.ts +1 -0
  248. package/dist/types/snowplow/event-definitions/questionnaire.d.ts +2 -0
  249. package/dist/types/snowplow/event-definitions/questionnaire.test.d.ts +1 -0
  250. package/dist/types/snowplow/event-definitions/redaction.d.ts +5 -0
  251. package/dist/types/snowplow/event-definitions/shared.d.ts +2 -0
  252. package/dist/types/snowplow/event-definitions/shoppingCart.d.ts +2 -0
  253. package/dist/types/snowplow/event-definitions/thankYou.d.ts +2 -0
  254. package/dist/types/snowplow/events.d.ts +20 -0
  255. package/dist/types/snowplow/index.test.d.ts +1 -0
  256. package/dist/types/src/address-lookup/index.d.ts +15 -0
  257. package/dist/types/src/address-lookup/types.d.ts +44 -0
  258. package/dist/types/src/airbrake/index.d.ts +9 -0
  259. package/dist/types/src/index.d.ts +3 -0
  260. package/dist/types/src/mocks/eventDefinitions.d.ts +61 -0
  261. package/dist/types/src/mocks/scripts-mock.d.ts +44 -0
  262. package/dist/types/src/snowplow/Snowplow.d.ts +34 -0
  263. package/dist/types/src/snowplow/SnowplowContext.d.ts +14 -0
  264. package/dist/types/src/snowplow/constants.d.ts +1 -0
  265. package/dist/types/src/snowplow/contexts.d.ts +4 -0
  266. package/dist/types/src/snowplow/event-definitions/base.d.ts +22 -0
  267. package/dist/types/src/snowplow/event-definitions/coverage-selection.d.ts +2 -0
  268. package/dist/types/src/snowplow/event-definitions/index.d.ts +8 -0
  269. package/dist/types/src/snowplow/event-definitions/intervention.d.ts +12 -0
  270. package/dist/types/src/snowplow/event-definitions/personalised_cover.d.ts +22 -0
  271. package/dist/types/src/snowplow/event-definitions/qcp.d.ts +2 -0
  272. package/dist/types/src/snowplow/event-definitions/questionnaire/questionnaire.d.ts +2 -0
  273. package/dist/types/src/snowplow/event-definitions/questionnaire/redaction.d.ts +5 -0
  274. package/dist/types/src/snowplow/event-definitions/referral.d.ts +2 -0
  275. package/dist/types/src/snowplow/event-definitions/test-utils.d.ts +2 -0
  276. package/dist/types/src/snowplow/getSnowplowConfig.d.ts +2 -0
  277. package/dist/types/src/snowplow/index.d.ts +6 -0
  278. package/dist/types/src/snowplow/types.d.ts +54 -0
  279. package/dist/types/src/utils/index.d.ts +2 -0
  280. package/dist/types/src/utils/isObject.d.ts +1 -0
  281. package/dist/types/src/utils/testUtils.d.ts +7 -0
  282. package/dist/types/src/utils/text.d.ts +3 -0
  283. package/dist/types/tracking-helper/TrackingHelper.d.ts +15 -0
  284. package/dist/types/tracking-helper/index.d.ts +15 -0
  285. package/dist/types/types.d.ts +5 -0
  286. package/dist/types/utils/StoryContainer.d.ts +1 -0
  287. package/dist/types/utils/TrackingHelper.d.ts +15 -0
  288. package/dist/types/utils/TrustpilotProvider.d.ts +4 -0
  289. package/dist/types/utils/env.d.ts +5 -0
  290. package/dist/types/utils/env.test.d.ts +1 -0
  291. package/dist/types/utils/excludeControls.d.ts +1 -0
  292. package/dist/types/utils/excludeControls.test.d.ts +1 -0
  293. package/dist/types/utils/isObject.test.d.ts +1 -0
  294. package/dist/types/utils/spaceDelimitedList.d.ts +1 -0
  295. package/dist/types/utils/spaceDelimitedList.test.d.ts +1 -0
  296. package/dist/types/utils/text.test.d.ts +1 -0
  297. package/dist/types/vitest.config.d.ts +2 -0
  298. package/package.json +1 -1
  299. package/src/snowplow/Snowplow.ts +4 -0
  300. package/src/snowplow/event-definitions/questionnaire/questionnaire.test.ts +43 -0
  301. package/src/snowplow/event-definitions/questionnaire/questionnaire.ts +5 -1
  302. package/src/snowplow/index.test.ts +32 -0
  303. package/dist/esm/chunk-YO5FUC73.js.map +0 -7
  304. /package/dist/esm/{chunk-7QIIG44X.js.map → chunk-RSDIB373.js.map} +0 -0
  305. /package/dist/esm/{chunk-LLSH4K4D.js.map → chunk-X77BVKJO.js.map} +0 -0
@@ -112,7 +112,7 @@
112
112
  "format": "esm"
113
113
  },
114
114
  "src/snowplow/event-definitions/questionnaire/questionnaire.ts": {
115
- "bytes": 8835,
115
+ "bytes": 8947,
116
116
  "imports": [
117
117
  {
118
118
  "path": "src/snowplow/constants.ts",
@@ -184,7 +184,7 @@
184
184
  "format": "esm"
185
185
  },
186
186
  "src/snowplow/Snowplow.ts": {
187
- "bytes": 5633,
187
+ "bytes": 5732,
188
188
  "imports": [
189
189
  {
190
190
  "path": "@snowplow/browser-tracker",
@@ -360,7 +360,7 @@
360
360
  "imports": [],
361
361
  "exports": [],
362
362
  "inputs": {},
363
- "bytes": 77843
363
+ "bytes": 78170
364
364
  },
365
365
  "dist/cjs/index.js": {
366
366
  "imports": [
@@ -430,7 +430,7 @@
430
430
  "bytesInOutput": 8839
431
431
  },
432
432
  "src/snowplow/event-definitions/questionnaire/questionnaire.ts": {
433
- "bytesInOutput": 7878
433
+ "bytesInOutput": 7953
434
434
  },
435
435
  "src/snowplow/event-definitions/coverage-selection.ts": {
436
436
  "bytesInOutput": 947
@@ -445,13 +445,13 @@
445
445
  "bytesInOutput": 117
446
446
  },
447
447
  "src/snowplow/Snowplow.ts": {
448
- "bytesInOutput": 4458
448
+ "bytesInOutput": 4556
449
449
  },
450
450
  "src/snowplow/SnowplowContext.tsx": {
451
451
  "bytesInOutput": 1186
452
452
  }
453
453
  },
454
- "bytes": 42179
454
+ "bytes": 42352
455
455
  },
456
456
  "dist/cjs/utils/index.js.map": {
457
457
  "imports": [],
@@ -517,7 +517,7 @@
517
517
  "imports": [],
518
518
  "exports": [],
519
519
  "inputs": {},
520
- "bytes": 72946
520
+ "bytes": 73273
521
521
  },
522
522
  "dist/cjs/utils/testUtils.js": {
523
523
  "imports": [
@@ -592,7 +592,7 @@
592
592
  "bytesInOutput": 8839
593
593
  },
594
594
  "src/snowplow/event-definitions/questionnaire/questionnaire.ts": {
595
- "bytesInOutput": 7878
595
+ "bytesInOutput": 7953
596
596
  },
597
597
  "src/snowplow/event-definitions/coverage-selection.ts": {
598
598
  "bytesInOutput": 947
@@ -604,19 +604,19 @@
604
604
  "bytesInOutput": 760
605
605
  },
606
606
  "src/snowplow/Snowplow.ts": {
607
- "bytesInOutput": 4458
607
+ "bytesInOutput": 4556
608
608
  },
609
609
  "src/snowplow/getSnowplowConfig.ts": {
610
610
  "bytesInOutput": 119
611
611
  }
612
612
  },
613
- "bytes": 39639
613
+ "bytes": 39812
614
614
  },
615
615
  "dist/cjs/snowplow/Snowplow.js.map": {
616
616
  "imports": [],
617
617
  "exports": [],
618
618
  "inputs": {},
619
- "bytes": 10706
619
+ "bytes": 10890
620
620
  },
621
621
  "dist/cjs/snowplow/Snowplow.js": {
622
622
  "imports": [
@@ -635,13 +635,13 @@
635
635
  "entryPoint": "src/snowplow/Snowplow.ts",
636
636
  "inputs": {
637
637
  "src/snowplow/Snowplow.ts": {
638
- "bytesInOutput": 4592
638
+ "bytesInOutput": 4690
639
639
  },
640
640
  "src/snowplow/contexts.ts": {
641
641
  "bytesInOutput": 512
642
642
  }
643
643
  },
644
- "bytes": 6027
644
+ "bytes": 6125
645
645
  },
646
646
  "dist/cjs/snowplow/constants.js.map": {
647
647
  "imports": [],
@@ -704,7 +704,7 @@
704
704
  "imports": [],
705
705
  "exports": [],
706
706
  "inputs": {},
707
- "bytes": 69503
707
+ "bytes": 69830
708
708
  },
709
709
  "dist/cjs/snowplow/index.js": {
710
710
  "imports": [
@@ -763,7 +763,7 @@
763
763
  "bytesInOutput": 8839
764
764
  },
765
765
  "src/snowplow/event-definitions/questionnaire/questionnaire.ts": {
766
- "bytesInOutput": 7878
766
+ "bytesInOutput": 7953
767
767
  },
768
768
  "src/snowplow/event-definitions/coverage-selection.ts": {
769
769
  "bytesInOutput": 947
@@ -778,13 +778,13 @@
778
778
  "bytesInOutput": 117
779
779
  },
780
780
  "src/snowplow/Snowplow.ts": {
781
- "bytesInOutput": 4458
781
+ "bytesInOutput": 4556
782
782
  },
783
783
  "src/snowplow/SnowplowContext.tsx": {
784
784
  "bytesInOutput": 1186
785
785
  }
786
786
  },
787
- "bytes": 38284
787
+ "bytes": 38457
788
788
  },
789
789
  "dist/cjs/snowplow/types.js.map": {
790
790
  "imports": [],
@@ -807,7 +807,7 @@
807
807
  "imports": [],
808
808
  "exports": [],
809
809
  "inputs": {},
810
- "bytes": 68745
810
+ "bytes": 69072
811
811
  },
812
812
  "dist/cjs/snowplow/SnowplowContext.js": {
813
813
  "imports": [
@@ -866,7 +866,7 @@
866
866
  "bytesInOutput": 8839
867
867
  },
868
868
  "src/snowplow/event-definitions/questionnaire/questionnaire.ts": {
869
- "bytesInOutput": 7878
869
+ "bytesInOutput": 7953
870
870
  },
871
871
  "src/snowplow/event-definitions/coverage-selection.ts": {
872
872
  "bytesInOutput": 947
@@ -878,10 +878,10 @@
878
878
  "bytesInOutput": 760
879
879
  },
880
880
  "src/snowplow/Snowplow.ts": {
881
- "bytesInOutput": 4458
881
+ "bytesInOutput": 4556
882
882
  }
883
883
  },
884
- "bytes": 37597
884
+ "bytes": 37770
885
885
  },
886
886
  "dist/cjs/snowplow/event-definitions/base.js.map": {
887
887
  "imports": [],
@@ -921,7 +921,7 @@
921
921
  "imports": [],
922
922
  "exports": [],
923
923
  "inputs": {},
924
- "bytes": 54232
924
+ "bytes": 54375
925
925
  },
926
926
  "dist/cjs/snowplow/event-definitions/index.js": {
927
927
  "imports": [],
@@ -953,7 +953,7 @@
953
953
  "bytesInOutput": 8839
954
954
  },
955
955
  "src/snowplow/event-definitions/questionnaire/questionnaire.ts": {
956
- "bytesInOutput": 7878
956
+ "bytesInOutput": 7953
957
957
  },
958
958
  "src/snowplow/event-definitions/coverage-selection.ts": {
959
959
  "bytesInOutput": 947
@@ -962,7 +962,7 @@
962
962
  "bytesInOutput": 379
963
963
  }
964
964
  },
965
- "bytes": 30353
965
+ "bytes": 30428
966
966
  },
967
967
  "dist/cjs/snowplow/event-definitions/intervention.js.map": {
968
968
  "imports": [],
@@ -1065,7 +1065,7 @@
1065
1065
  "imports": [],
1066
1066
  "exports": [],
1067
1067
  "inputs": {},
1068
- "bytes": 20404
1068
+ "bytes": 20547
1069
1069
  },
1070
1070
  "dist/cjs/snowplow/event-definitions/questionnaire/questionnaire.js": {
1071
1071
  "imports": [],
@@ -1073,7 +1073,7 @@
1073
1073
  "entryPoint": "src/snowplow/event-definitions/questionnaire/questionnaire.ts",
1074
1074
  "inputs": {
1075
1075
  "src/snowplow/event-definitions/questionnaire/questionnaire.ts": {
1076
- "bytesInOutput": 8071
1076
+ "bytesInOutput": 8146
1077
1077
  },
1078
1078
  "src/snowplow/constants.ts": {
1079
1079
  "bytesInOutput": 21
@@ -1082,7 +1082,7 @@
1082
1082
  "bytesInOutput": 3841
1083
1083
  }
1084
1084
  },
1085
- "bytes": 12998
1085
+ "bytes": 13073
1086
1086
  },
1087
1087
  "dist/cjs/snowplow/event-definitions/questionnaire/redaction.js.map": {
1088
1088
  "imports": [],
@@ -181,6 +181,9 @@ var Snowplow = class _Snowplow {
181
181
  return this;
182
182
  }
183
183
  trigger(name, params) {
184
+ if (!this.serverData || Object.keys(this.serverData).length === 0) {
185
+ return this;
186
+ }
184
187
  const handler = this.eventHandlers[name];
185
188
  if (Object.prototype.hasOwnProperty.call(this.eventHandlers, name) && typeof handler === "function") {
186
189
  handler(params);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/snowplow/Snowplow.ts", "../../../src/snowplow/contexts.ts"],
4
- "sourcesContent": ["import type {\n PageViewEvent,\n StructuredEvent,\n TrackerConfiguration,\n} from \"@snowplow/browser-tracker\";\nimport {\n newTracker,\n setCookiePath,\n setUserId,\n trackPageView,\n trackSelfDescribingEvent,\n trackStructEvent,\n} from \"@snowplow/browser-tracker\";\nimport { GaCookiesPlugin } from \"@snowplow/browser-plugin-ga-cookies\";\nimport { makeContexts, updateIdentityContext } from \"./contexts\";\nimport type { EventDefinition, SerialisedEvent, TrackingProps } from \"./types\";\n\nexport type FrontOfficeStructuredEvent = StructuredEvent & {\n serviceChannelIdentifier: string;\n};\n\n/**\n * This class is an abstraction which wraps Snowplow\n * and exposes common methods with other services:\n * - trackEvent : sends a standard payload\n * - trackUnstructEvent : sends a payload for custom schema\n */\nexport class Snowplow {\n avalancheTrackerName = \"sb-ava\";\n\n bronzeAvalancheTrackerName = \"sb-ava-br\";\n\n pvAvalancheTrackerName = \"sb-ava-pv\";\n\n uid: unknown = \"\";\n\n trackPageView: boolean = false;\n\n contexts: Record<string, SerialisedEvent> = {};\n\n pvContext: SerialisedEvent[] = [];\n\n structContext: SerialisedEvent[] = [];\n\n serverData: Record<string, unknown> = {};\n\n eventHandlers: Record<string, (params?: Record<string, unknown>) => void> =\n {};\n\n static instance: Snowplow | undefined;\n\n constructor(props?: TrackingProps) {\n if (!props) return;\n\n const {\n appId,\n cookieDomain,\n avalancheCollector,\n eventMethod,\n uid,\n postPath,\n trackPageView: tpv,\n } = props;\n this.uid = uid;\n this.trackPageView = tpv;\n this.serverData = props?.pageViewContext?.data || {};\n\n // Set options\n const stateStorageStrategy = \"cookieAndLocalStorage\";\n const baseOptions: TrackerConfiguration = {\n appId,\n cookieDomain,\n eventMethod,\n stateStorageStrategy,\n postPath,\n };\n // Initialize trackers\n newTracker(this.avalancheTrackerName, avalancheCollector, baseOptions);\n\n newTracker(\n this.bronzeAvalancheTrackerName,\n avalancheCollector,\n baseOptions,\n );\n\n // Page view tracker\n newTracker(this.pvAvalancheTrackerName, avalancheCollector, {\n ...baseOptions,\n eventMethod: eventMethod === \"post\" ? \"beacon\" : eventMethod,\n plugins: [GaCookiesPlugin()],\n });\n\n setCookiePath(\"/\");\n if (uid) {\n setUserId(uid);\n }\n // Create a singleton instance\n Snowplow.instance = this;\n }\n\n setContexts(contexts: Record<string, SerialisedEvent>) {\n this.contexts = updateIdentityContext(contexts, this.uid);\n this.pvContext = makeContexts(\n [\n \"pageViewContext\",\n \"distributionChannelContext\",\n \"serviceChannelContext\",\n ],\n this.contexts,\n );\n this.structContext = makeContexts(\n [\"distributionChannelContext\", \"serviceChannelContext\"],\n this.contexts,\n );\n return this;\n }\n\n // Send a page view event\n trackView(event?: PageViewEvent) {\n if (this.trackPageView) {\n trackPageView({ ...event, context: this.pvContext }, [\n this.pvAvalancheTrackerName,\n ]);\n }\n return this;\n }\n\n // Send a structured event with contexts\n trackEvent(event: StructuredEvent) {\n trackStructEvent({ ...event, context: this.structContext }, [\n this.bronzeAvalancheTrackerName,\n ]);\n return this;\n }\n\n // Send a custom event with defined schema and optional contexts\n trackUnstructEvent(event: SerialisedEvent, contexts?: string[]) {\n if (!event) {\n return this;\n }\n\n if (contexts && Array.isArray(contexts) && contexts.length > 0) {\n // Add context to the event\n const context = makeContexts(contexts, this.contexts);\n trackSelfDescribingEvent({ event, context }, [this.avalancheTrackerName]);\n } else {\n trackSelfDescribingEvent({ event }, [this.avalancheTrackerName]);\n }\n return this;\n }\n\n addEventHandlers(eventDefinitions: EventDefinition[]) {\n // Add server context to makePayload functions\n const context = this.serverData;\n\n eventDefinitions.forEach(({ name, type, makePayload, contexts }) => {\n // Convert type into relevant function\n if (type === \"structured\") {\n this.addEventHandler(name, (params?: Record<string, unknown>) => {\n void this.trackEvent(\n makePayload({\n ...params,\n context,\n }) as StructuredEvent,\n );\n });\n } else {\n this.addEventHandler(name, (params?: Record<string, unknown>) => {\n const payload = makePayload({\n ...params,\n context,\n }) as SerialisedEvent;\n\n if (contexts && Array.isArray(contexts) && contexts.length > 0) {\n void this.trackUnstructEvent(payload, contexts);\n } else {\n void this.trackUnstructEvent(payload);\n }\n });\n }\n });\n return this;\n }\n\n private addEventHandler(\n name: string,\n handler: (params?: Record<string, unknown>) => void,\n ) {\n this.eventHandlers[name] = handler;\n return this;\n }\n\n private removeEventHandler(name: string) {\n delete this.eventHandlers[name];\n return this;\n }\n\n trigger(name: string, params?: Record<string, unknown>) {\n const handler = this.eventHandlers[name];\n\n if (\n Object.prototype.hasOwnProperty.call(this.eventHandlers, name) &&\n typeof handler === \"function\"\n ) {\n handler(params);\n }\n return this;\n }\n\n static getInstance(props?: TrackingProps) {\n if (!Snowplow.instance) {\n Snowplow.instance = new Snowplow(props);\n }\n return Snowplow.instance;\n }\n}\n", "import { snakeCaseKeys } from \"../utils\";\nimport type { SerialisedEvent, TrackingProps } from \"./types\";\n\nexport const getContexts = (\n config: TrackingProps,\n): Record<string, SerialisedEvent> => {\n // Create an object that only contains Context keys\n // and snake_case the keys\n const contextEntries = Object.entries(config || {})\n .filter(([key]) => key.includes(\"Context\") && key !== \"includeGAContext\")\n .reduce((acc, [key, value]) => {\n if (typeof value === \"object\") {\n return { ...acc, [key]: snakeCaseKeys({ ...value }) };\n }\n return {\n ...acc,\n [key]: snakeCaseKeys({ data: { service_channel_identifier: value } }),\n };\n }, {});\n\n return contextEntries as Record<string, SerialisedEvent>;\n};\n\nexport const updateIdentityContext = (\n contexts: Record<string, SerialisedEvent>,\n uid: unknown,\n): Record<string, SerialisedEvent> => {\n const index = Object.keys(contexts).findIndex(ctx =>\n contexts[ctx].schema?.includes(\"identity_context\"),\n );\n if (index > -1) {\n const key = Object.keys(contexts)[index];\n return {\n ...contexts,\n [key]: {\n ...contexts[key],\n data: {\n ...contexts[key].data,\n domain_userid: uid,\n },\n },\n };\n }\n return contexts;\n};\n\nexport const makeContexts = (\n keys: string[],\n config: Record<string, SerialisedEvent>,\n): SerialisedEvent[] => (keys || []).map(key => config[key]);\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type {\n PageViewEvent,\n StructuredEvent,\n TrackerConfiguration,\n} from \"@snowplow/browser-tracker\";\nimport {\n newTracker,\n setCookiePath,\n setUserId,\n trackPageView,\n trackSelfDescribingEvent,\n trackStructEvent,\n} from \"@snowplow/browser-tracker\";\nimport { GaCookiesPlugin } from \"@snowplow/browser-plugin-ga-cookies\";\nimport { makeContexts, updateIdentityContext } from \"./contexts\";\nimport type { EventDefinition, SerialisedEvent, TrackingProps } from \"./types\";\n\nexport type FrontOfficeStructuredEvent = StructuredEvent & {\n serviceChannelIdentifier: string;\n};\n\n/**\n * This class is an abstraction which wraps Snowplow\n * and exposes common methods with other services:\n * - trackEvent : sends a standard payload\n * - trackUnstructEvent : sends a payload for custom schema\n */\nexport class Snowplow {\n avalancheTrackerName = \"sb-ava\";\n\n bronzeAvalancheTrackerName = \"sb-ava-br\";\n\n pvAvalancheTrackerName = \"sb-ava-pv\";\n\n uid: unknown = \"\";\n\n trackPageView: boolean = false;\n\n contexts: Record<string, SerialisedEvent> = {};\n\n pvContext: SerialisedEvent[] = [];\n\n structContext: SerialisedEvent[] = [];\n\n serverData: Record<string, unknown> = {};\n\n eventHandlers: Record<string, (params?: Record<string, unknown>) => void> =\n {};\n\n static instance: Snowplow | undefined;\n\n constructor(props?: TrackingProps) {\n if (!props) return;\n\n const {\n appId,\n cookieDomain,\n avalancheCollector,\n eventMethod,\n uid,\n postPath,\n trackPageView: tpv,\n } = props;\n this.uid = uid;\n this.trackPageView = tpv;\n this.serverData = props?.pageViewContext?.data || {};\n\n // Set options\n const stateStorageStrategy = \"cookieAndLocalStorage\";\n const baseOptions: TrackerConfiguration = {\n appId,\n cookieDomain,\n eventMethod,\n stateStorageStrategy,\n postPath,\n };\n // Initialize trackers\n newTracker(this.avalancheTrackerName, avalancheCollector, baseOptions);\n\n newTracker(\n this.bronzeAvalancheTrackerName,\n avalancheCollector,\n baseOptions,\n );\n\n // Page view tracker\n newTracker(this.pvAvalancheTrackerName, avalancheCollector, {\n ...baseOptions,\n eventMethod: eventMethod === \"post\" ? \"beacon\" : eventMethod,\n plugins: [GaCookiesPlugin()],\n });\n\n setCookiePath(\"/\");\n if (uid) {\n setUserId(uid);\n }\n // Create a singleton instance\n Snowplow.instance = this;\n }\n\n setContexts(contexts: Record<string, SerialisedEvent>) {\n this.contexts = updateIdentityContext(contexts, this.uid);\n this.pvContext = makeContexts(\n [\n \"pageViewContext\",\n \"distributionChannelContext\",\n \"serviceChannelContext\",\n ],\n this.contexts,\n );\n this.structContext = makeContexts(\n [\"distributionChannelContext\", \"serviceChannelContext\"],\n this.contexts,\n );\n return this;\n }\n\n // Send a page view event\n trackView(event?: PageViewEvent) {\n if (this.trackPageView) {\n trackPageView({ ...event, context: this.pvContext }, [\n this.pvAvalancheTrackerName,\n ]);\n }\n return this;\n }\n\n // Send a structured event with contexts\n trackEvent(event: StructuredEvent) {\n trackStructEvent({ ...event, context: this.structContext }, [\n this.bronzeAvalancheTrackerName,\n ]);\n return this;\n }\n\n // Send a custom event with defined schema and optional contexts\n trackUnstructEvent(event: SerialisedEvent, contexts?: string[]) {\n if (!event) {\n return this;\n }\n\n if (contexts && Array.isArray(contexts) && contexts.length > 0) {\n // Add context to the event\n const context = makeContexts(contexts, this.contexts);\n trackSelfDescribingEvent({ event, context }, [this.avalancheTrackerName]);\n } else {\n trackSelfDescribingEvent({ event }, [this.avalancheTrackerName]);\n }\n return this;\n }\n\n addEventHandlers(eventDefinitions: EventDefinition[]) {\n // Add server context to makePayload functions\n const context = this.serverData;\n\n eventDefinitions.forEach(({ name, type, makePayload, contexts }) => {\n // Convert type into relevant function\n if (type === \"structured\") {\n this.addEventHandler(name, (params?: Record<string, unknown>) => {\n void this.trackEvent(\n makePayload({\n ...params,\n context,\n }) as StructuredEvent,\n );\n });\n } else {\n this.addEventHandler(name, (params?: Record<string, unknown>) => {\n const payload = makePayload({\n ...params,\n context,\n }) as SerialisedEvent;\n\n if (contexts && Array.isArray(contexts) && contexts.length > 0) {\n void this.trackUnstructEvent(payload, contexts);\n } else {\n void this.trackUnstructEvent(payload);\n }\n });\n }\n });\n return this;\n }\n\n private addEventHandler(\n name: string,\n handler: (params?: Record<string, unknown>) => void,\n ) {\n this.eventHandlers[name] = handler;\n return this;\n }\n\n private removeEventHandler(name: string) {\n delete this.eventHandlers[name];\n return this;\n }\n\n trigger(name: string, params?: Record<string, unknown>) {\n if (!this.serverData || Object.keys(this.serverData).length === 0) {\n return this;\n }\n\n const handler = this.eventHandlers[name];\n\n if (\n Object.prototype.hasOwnProperty.call(this.eventHandlers, name) &&\n typeof handler === \"function\"\n ) {\n handler(params);\n }\n return this;\n }\n\n static getInstance(props?: TrackingProps) {\n if (!Snowplow.instance) {\n Snowplow.instance = new Snowplow(props);\n }\n return Snowplow.instance;\n }\n}\n", "import { snakeCaseKeys } from \"../utils\";\nimport type { SerialisedEvent, TrackingProps } from \"./types\";\n\nexport const getContexts = (\n config: TrackingProps,\n): Record<string, SerialisedEvent> => {\n // Create an object that only contains Context keys\n // and snake_case the keys\n const contextEntries = Object.entries(config || {})\n .filter(([key]) => key.includes(\"Context\") && key !== \"includeGAContext\")\n .reduce((acc, [key, value]) => {\n if (typeof value === \"object\") {\n return { ...acc, [key]: snakeCaseKeys({ ...value }) };\n }\n return {\n ...acc,\n [key]: snakeCaseKeys({ data: { service_channel_identifier: value } }),\n };\n }, {});\n\n return contextEntries as Record<string, SerialisedEvent>;\n};\n\nexport const updateIdentityContext = (\n contexts: Record<string, SerialisedEvent>,\n uid: unknown,\n): Record<string, SerialisedEvent> => {\n const index = Object.keys(contexts).findIndex(ctx =>\n contexts[ctx].schema?.includes(\"identity_context\"),\n );\n if (index > -1) {\n const key = Object.keys(contexts)[index];\n return {\n ...contexts,\n [key]: {\n ...contexts[key],\n data: {\n ...contexts[key].data,\n domain_userid: uid,\n },\n },\n };\n }\n return contexts;\n};\n\nexport const makeContexts = (\n keys: string[],\n config: Record<string, SerialisedEvent>,\n): SerialisedEvent[] => (keys || []).map(key => config[key]);\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -863,7 +863,8 @@ var questionnaireEventDefinitions = [
863
863
  vertical,
864
864
  searchId,
865
865
  selectedListPosition,
866
- selectionMethod
866
+ selectionMethod,
867
+ selectedLocation
867
868
  } = params;
868
869
  const { site } = context;
869
870
  const isUSPage = site === "simplybusiness_us";
@@ -886,7 +887,7 @@ var questionnaireEventDefinitions = [
886
887
  }
887
888
  if (isUSPage) {
888
889
  data.selected_list_position = selectedListPosition !== void 0 ? (selectedListPosition + 1).toString() : null;
889
- data.selected_location = "trade_selector_vertical";
890
+ data.selected_location = selectedLocation !== void 0 ? selectedLocation : "trade_selector_vertical";
890
891
  data.business_unit = site;
891
892
  }
892
893
  const preFilledSource = params.preFilledSource ?? (typeof sessionStorage !== "undefined" ? sessionStorage.getItem("preFilledSource") : null);
@@ -1345,6 +1346,9 @@ var Snowplow = class _Snowplow {
1345
1346
  return this;
1346
1347
  }
1347
1348
  trigger(name, params) {
1349
+ if (!this.serverData || Object.keys(this.serverData).length === 0) {
1350
+ return this;
1351
+ }
1348
1352
  const handler = this.eventHandlers[name];
1349
1353
  if (Object.prototype.hasOwnProperty.call(this.eventHandlers, name) && typeof handler === "function") {
1350
1354
  handler(params);