@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
@@ -655,6 +655,49 @@ describe("questionnaireEventDefinitions", () => {
655
655
  });
656
656
  });
657
657
 
658
+ describe("primaryDetailSelected selectedLocation override", () => {
659
+ it("should use selectedLocation when provided", () => {
660
+ const params = {
661
+ context: {
662
+ site: "simplybusiness_us",
663
+ vertical: "usa",
664
+ },
665
+ answer: "Plumber",
666
+ selectedLocation: null,
667
+ };
668
+
669
+ const result = findEventByName(
670
+ questionnaireEventDefinitions,
671
+ "primaryDetailSelected",
672
+ ).makePayload(params);
673
+
674
+ expect(result).toHaveProperty("data");
675
+ if ("data" in result) {
676
+ expect(result.data.selected_location).toBeNull();
677
+ }
678
+ });
679
+
680
+ it("should default selected_location to 'trade_selector_vertical' when selectedLocation is not provided", () => {
681
+ const params = {
682
+ context: {
683
+ site: "simplybusiness_us",
684
+ vertical: "usa",
685
+ },
686
+ answer: "Plumber",
687
+ };
688
+
689
+ const result = findEventByName(
690
+ questionnaireEventDefinitions,
691
+ "primaryDetailSelected",
692
+ ).makePayload(params);
693
+
694
+ expect(result).toHaveProperty("data");
695
+ if ("data" in result) {
696
+ expect(result.data.selected_location).toBe("trade_selector_vertical");
697
+ }
698
+ });
699
+ });
700
+
658
701
  describe("tradeSelectorClicked", () => {
659
702
  it("should create correct payload", () => {
660
703
  const result = findEventByName(
@@ -44,6 +44,7 @@ export const questionnaireEventDefinitions: EventDefinition[] = [
44
44
  searchId,
45
45
  selectedListPosition,
46
46
  selectionMethod,
47
+ selectedLocation,
47
48
  } = params as ParamsType;
48
49
  const { site } = context;
49
50
  const isUSPage = site === "simplybusiness_us";
@@ -77,7 +78,10 @@ export const questionnaireEventDefinitions: EventDefinition[] = [
77
78
  selectedListPosition !== undefined
78
79
  ? (selectedListPosition + 1).toString()
79
80
  : null;
80
- data.selected_location = "trade_selector_vertical";
81
+ data.selected_location =
82
+ selectedLocation !== undefined
83
+ ? selectedLocation
84
+ : "trade_selector_vertical";
81
85
  data.business_unit = site;
82
86
  }
83
87
 
@@ -449,6 +449,38 @@ describe("Snowplow Analytics Class", () => {
449
449
  );
450
450
  });
451
451
 
452
+ it("does not trigger events when serverData is empty", () => {
453
+ testSnowplow.addEventHandlers(eventDefinitions as EventDefinition[]);
454
+ testSnowplow.serverData = {};
455
+
456
+ const trackUnstructEventSpy = vi.spyOn(
457
+ testSnowplow,
458
+ "trackUnstructEvent",
459
+ );
460
+
461
+ testSnowplow.trigger("questionAnswered", {
462
+ question: "test-question",
463
+ section: "test-section",
464
+ answer: "test-answer",
465
+ });
466
+
467
+ expect(trackUnstructEventSpy).not.toHaveBeenCalled();
468
+ });
469
+
470
+ it("does not trigger events when serverData is undefined", () => {
471
+ testSnowplow.addEventHandlers(eventDefinitions as EventDefinition[]);
472
+ testSnowplow.serverData = undefined as unknown as Record<
473
+ string,
474
+ unknown
475
+ >;
476
+
477
+ const trackStructEventSpy = vi.spyOn(testSnowplow, "trackEvent");
478
+
479
+ testSnowplow.trigger("navButtonClicked", { label: "test-label" });
480
+
481
+ expect(trackStructEventSpy).not.toHaveBeenCalled();
482
+ });
483
+
452
484
  it("uses server-supplied context in events", () => {
453
485
  testSnowplow.addEventHandlers(eventDefinitions as EventDefinition[]);
454
486
 
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/snowplow/event-definitions/questionnaire/questionnaire.ts"],
4
- "sourcesContent": ["import { DELIMITER } from \"../../constants\";\nimport type { EventDefinition, ParamsType } from \"../../types\";\nimport { redact } from \"./redaction\";\n\n// Questionnaire events\nexport const questionnaireEventDefinitions: EventDefinition[] = [\n {\n name: \"questionAnswered\",\n type: \"unstructured\",\n makePayload: params => {\n const { section, context } = params as ParamsType;\n const { question, answer } = redact(params as ParamsType);\n // Flatten the answer to a delimited string\n const flatAnswer = Array.isArray(answer)\n ? answer.join(DELIMITER)\n : answer;\n\n return {\n schema:\n \"iglu:com.simplybusiness/form_question_answered/jsonschema/1-0-4\",\n data: {\n site: context.site,\n page_index: 1,\n page_name: \"quick_to_quote\",\n submitted_from: \"quick_to_quote_experiment\",\n section_name: section,\n question,\n answer: flatAnswer,\n vertical: context.vertical,\n journey_id: context.journeyId,\n },\n };\n },\n contexts: [\"serviceChannelContext\"],\n },\n {\n name: \"primaryDetailSelected\",\n type: \"unstructured\",\n makePayload: params => {\n const {\n context,\n answer,\n vertical,\n searchId,\n selectedListPosition,\n selectionMethod,\n } = params as ParamsType;\n const { site } = context;\n const isUSPage = site === \"simplybusiness_us\";\n let verticalName = vertical || context.vertical;\n\n if (verticalName.toLowerCase().indexOf(\"landlord\") > -1) {\n verticalName =\n answer === \"residential\" ? \"Landlord\" : \"Commercial landlord\";\n }\n\n const data: Record<string, unknown> = {\n site,\n vertical: verticalName,\n primary_detail: answer,\n selected_type: \"trade_selector\",\n location: window?.location?.pathname ?? \"\",\n };\n\n // Always include search_id if present\n if (searchId) {\n data.search_id = searchId;\n }\n // Always include selection_method if present\n if (selectionMethod) {\n data.selection_method = selectionMethod;\n }\n\n // US only fields\n if (isUSPage) {\n data.selected_list_position =\n selectedListPosition !== undefined\n ? (selectedListPosition + 1).toString()\n : null;\n data.selected_location = \"trade_selector_vertical\";\n data.business_unit = site;\n }\n\n // Optional pre-filled source\n const preFilledSource =\n (params as ParamsType).preFilledSource ??\n (typeof sessionStorage !== \"undefined\"\n ? sessionStorage.getItem(\"preFilledSource\")\n : null);\n if (preFilledSource) {\n data.pre_filled_source = preFilledSource;\n }\n\n return {\n schema:\n \"iglu:com.simplybusiness/primary_detail_selected/jsonschema/1-5-0\",\n data,\n };\n },\n contexts: [\"distributionChannelContext\", \"serviceChannelContext\"],\n },\n {\n name: \"helpTextOpened\",\n type: \"unstructured\",\n makePayload: params => {\n const { primaryText, label, context, helpText } = params as ParamsType;\n\n return {\n schema: \"iglu:com.simplybusiness/help_text_opened/jsonschema/1-1-0\",\n data: {\n vertical: context.vertical,\n site: context.site,\n primary_text: primaryText,\n help_text: helpText,\n label,\n page_name: \"quick_to_quote\",\n },\n };\n },\n },\n {\n name: \"assumptionsButtonClicked\",\n type: \"structured\",\n makePayload: params => {\n const { source, presentationGroup } = params as ParamsType;\n\n return {\n action: source,\n category: presentationGroup,\n };\n },\n },\n {\n name: \"navButtonClicked\",\n type: \"structured\",\n makePayload: params => {\n const { label, category } = params as ParamsType;\n\n return {\n label,\n action: \"link_click\",\n category,\n };\n },\n },\n {\n name: \"manualAddressClicked\",\n type: \"structured\",\n makePayload: params => {\n const { category } = params as ParamsType;\n\n return {\n action: \"link_click\",\n category,\n label: \"Enter address manually\",\n };\n },\n },\n {\n name: \"assumptionLinkClicked\",\n type: \"structured\",\n makePayload: params => {\n const { label, category, property } = params as ParamsType;\n\n return {\n action: \"assumption_link_click\",\n category,\n label,\n property,\n };\n },\n },\n {\n name: \"addressLookupFocused\",\n type: \"structured\",\n makePayload: params => {\n const { label, category } = params as ParamsType;\n\n return {\n action: \"address_lookup_focused\",\n category,\n label,\n };\n },\n },\n {\n name: \"addressLookupTypedIn\",\n type: \"structured\",\n makePayload: params => {\n const { label, category } = params as ParamsType;\n\n return {\n action: \"address_lookup_typed_in\",\n category,\n label,\n };\n },\n },\n {\n name: \"addressOptionsDisplayed\",\n type: \"structured\",\n makePayload: params => {\n const { label, category } = params as ParamsType;\n\n return {\n action: \"address_options_displayed\",\n category,\n label,\n };\n },\n },\n {\n name: \"tradeChanged\",\n type: \"structured\",\n makePayload: params => {\n const { label, property } = params as ParamsType;\n\n return {\n action: \"change_your_selected_profession_button_clicked\",\n category: \"change_your_selected_profession_button\",\n label: `Question: ${label}`,\n property, // Answer before change\n };\n },\n },\n {\n name: \"questionValidationFailed\",\n type: \"structured\",\n makePayload: params => {\n const { question, errorMessage } = params as ParamsType;\n\n return {\n category: \"questionnaire\",\n action: `${question} validation failed`,\n label: errorMessage,\n };\n },\n },\n {\n name: \"stateQuestionAnswered\",\n type: \"unstructured\",\n makePayload: params => {\n const { context, answer, selectedCoverages } = params as ParamsType & {\n selectedCoverages?: string[];\n selectedType?: string;\n };\n\n const data: Record<string, string> = {\n vertical: context.vertical,\n selected_type: context.journeyName ?? \"usa\",\n location: window?.location?.pathname ?? \"\",\n url: window?.location?.href ?? \"\",\n state: answer,\n selection_method: \"dropdown\",\n };\n\n if (selectedCoverages?.length) {\n data.products = selectedCoverages.join(\",\");\n }\n\n return {\n schema:\n \"iglu:com.simplybusiness/state_question_answered/jsonschema/1-0-0\",\n data,\n };\n },\n },\n {\n name: \"tradeSelectorClicked\",\n type: \"structured\",\n makePayload: () => {\n return {\n category: \"marketing\",\n action: \"trade_selector_clicked\",\n label: \"trade selector clicked\",\n property: window?.location?.href ?? \"\",\n };\n },\n },\n {\n name: \"usStateClicked\",\n type: \"structured\",\n makePayload: () => {\n return {\n category: \"marketing\",\n action: \"us_state_clicked\",\n label: \"US state clicked\",\n property: window?.location?.href ?? \"\",\n };\n },\n },\n {\n name: \"usStateErrorMessageDisplayed\",\n type: \"structured\",\n makePayload: params => {\n const { stateValue } = params as ParamsType;\n\n return {\n category: \"marketing\",\n action: \"us_state_error_message_displayed\",\n label: \"US state error message displayed\",\n property: stateValue ?? \"\",\n };\n },\n },\n {\n name: \"pagesetSectionChanged\",\n type: \"unstructured\",\n makePayload: params => {\n const {\n context,\n pageIndex,\n pageName,\n sectionName,\n sectionIndex,\n sectionComplete,\n } = params as ParamsType;\n\n return {\n schema:\n \"iglu:com.simplybusiness/pageset_section_changed/jsonschema/1-0-0\",\n data: {\n site: context.site,\n vertical: context.vertical,\n page_index: pageIndex,\n page_name: pageName,\n section_name: sectionName,\n section_index: sectionIndex,\n section_complete: sectionComplete,\n },\n };\n },\n contexts: [\"distributionChannelContext\", \"serviceChannelContext\"],\n },\n {\n name: \"aiTradeSelectorFindMyBusiness\",\n type: \"structured\",\n makePayload: params => {\n const { searchQuery } = params as ParamsType;\n\n return {\n category: \"ai_trade_selector_find_my_business_btn\",\n action: \"click\",\n label: searchQuery ?? \"\",\n property: window?.location?.href ?? \"\",\n };\n },\n },\n];\n"],
5
- "mappings": "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",
6
- "names": []
7
- }