@mychoice/mychoice-sdk-modules 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/README.md +11 -0
  2. package/dist/cjs/index.d.ts +3 -0
  3. package/dist/cjs/index.js +3194 -0
  4. package/dist/cjs/index.js.map +1 -0
  5. package/dist/cjs/init/AppConfig/AppConfig.d.ts +4 -0
  6. package/dist/cjs/init/AppConfig/helper.d.ts +2 -0
  7. package/dist/cjs/init/AppConfig/index.d.ts +1 -0
  8. package/dist/cjs/init/AppConfig/interfaces.d.ts +5 -0
  9. package/dist/cjs/init/AppContainer/AppContainer.d.ts +2 -0
  10. package/dist/cjs/init/AppContainer/index.d.ts +1 -0
  11. package/dist/cjs/init/AppHeader/AppHeader.d.ts +2 -0
  12. package/dist/cjs/init/AppHeader/index.d.ts +1 -0
  13. package/dist/cjs/init/AppLoader/AppLoader.d.ts +2 -0
  14. package/dist/cjs/init/AppLoader/index.d.ts +1 -0
  15. package/dist/cjs/init/AppModal/AppModal.d.ts +2 -0
  16. package/dist/cjs/init/AppModal/index.d.ts +1 -0
  17. package/dist/cjs/init/AppModal/interfaces.d.ts +4 -0
  18. package/dist/cjs/init/AppRouterListener/AppRouterListener.d.ts +2 -0
  19. package/dist/cjs/init/AppRouterListener/index.d.ts +1 -0
  20. package/dist/cjs/init/AppRoutes/AppRoutes.d.ts +3 -0
  21. package/dist/cjs/init/AppRoutes/BrokerKeys.d.ts +6 -0
  22. package/dist/cjs/init/AppRoutes/hoox/useRedirectPartner.d.ts +5 -0
  23. package/dist/cjs/init/AppRoutes/hoox/useRouteParams.d.ts +1 -0
  24. package/dist/cjs/init/AppRoutes/index.d.ts +3 -0
  25. package/dist/cjs/init/AppRoutes/routeTypes/RouteWrapperPrivate.d.ts +3 -0
  26. package/dist/cjs/init/AppRoutes/routeTypes/RouteWrapperPublic.d.ts +3 -0
  27. package/dist/cjs/init/AppRoutes/routeTypes/RouteWrapperRestricted.d.ts +3 -0
  28. package/dist/cjs/init/AppRoutes/routeTypes/index.d.ts +3 -0
  29. package/dist/cjs/init/AppRoutes/routeTypes/interface.d.ts +4 -0
  30. package/dist/cjs/init/AppWrapper/AppWrapper.d.ts +3 -0
  31. package/dist/cjs/init/AppWrapper/index.d.ts +1 -0
  32. package/dist/cjs/init/AppWrapper/interfaces.d.ts +5 -0
  33. package/dist/cjs/init/StoryAppWrapper/StoryAppWrapper.d.ts +3 -0
  34. package/dist/cjs/init/StoryAppWrapper/index.d.ts +1 -0
  35. package/dist/cjs/init/StoryAppWrapper/interfaces.d.ts +4 -0
  36. package/dist/cjs/init/helper.d.ts +2 -0
  37. package/dist/cjs/init/index.d.ts +3 -0
  38. package/dist/cjs/insurances/car/index.d.ts +1 -0
  39. package/dist/cjs/insurances/car/pages/discount/PageDiscount.d.ts +2 -0
  40. package/dist/cjs/insurances/car/pages/discount/helpers.d.ts +2 -0
  41. package/dist/cjs/insurances/car/pages/discount/index.d.ts +1 -0
  42. package/dist/cjs/insurances/car/pages/discount/sections/SectionDiscountInfo.d.ts +2 -0
  43. package/dist/cjs/insurances/car/pages/discount/sections/blocks/BlockNextPageInfo.d.ts +2 -0
  44. package/dist/cjs/insurances/car/pages/discount/sections/blocks/BlockSubmit.d.ts +3 -0
  45. package/dist/cjs/insurances/car/pages/discount/sections/blocks/BlockVehLinks.d.ts +2 -0
  46. package/dist/cjs/insurances/car/pages/discount/sections/blocks/index.d.ts +3 -0
  47. package/dist/cjs/insurances/car/pages/discount/sections/blocks/interfaces.d.ts +7 -0
  48. package/dist/cjs/insurances/car/pages/discount/sections/index.d.ts +1 -0
  49. package/dist/cjs/insurances/car/pages/driver/PageDriver.d.ts +2 -0
  50. package/dist/cjs/insurances/car/pages/driver/TabDriver.d.ts +3 -0
  51. package/dist/cjs/insurances/car/pages/driver/index.d.ts +1 -0
  52. package/dist/cjs/insurances/car/pages/driver/sections/SectionDriverCancellation/SectionDriverCancellation.d.ts +2 -0
  53. package/dist/cjs/insurances/car/pages/driver/sections/SectionDriverCancellation/index.d.ts +1 -0
  54. package/dist/cjs/insurances/car/pages/driver/sections/SectionDriverHistory/SectionDriverHistory.d.ts +2 -0
  55. package/dist/cjs/insurances/car/pages/driver/sections/SectionDriverHistory/blocks/BlockDriverAccident.d.ts +2 -0
  56. package/dist/cjs/insurances/car/pages/driver/sections/SectionDriverHistory/blocks/BlockDriverSuspension.d.ts +2 -0
  57. package/dist/cjs/insurances/car/pages/driver/sections/SectionDriverHistory/blocks/BlockDriverTicket.d.ts +2 -0
  58. package/dist/cjs/insurances/car/pages/driver/sections/SectionDriverHistory/blocks/index.d.ts +3 -0
  59. package/dist/cjs/insurances/car/pages/driver/sections/SectionDriverHistory/index.d.ts +1 -0
  60. package/dist/cjs/insurances/car/pages/driver/sections/SectionDriverInfo/SectionDriverInfo.d.ts +2 -0
  61. package/dist/cjs/insurances/car/pages/driver/sections/SectionDriverInfo/index.d.ts +1 -0
  62. package/dist/cjs/insurances/car/pages/driver/sections/SectionDriverInsurancePolicy/SectionDriverInsurancePolicy.d.ts +2 -0
  63. package/dist/cjs/insurances/car/pages/driver/sections/SectionDriverInsurancePolicy/index.d.ts +1 -0
  64. package/dist/cjs/insurances/car/pages/driver/sections/SectionDriverLicence/SectionDriverLicence.d.ts +2 -0
  65. package/dist/cjs/insurances/car/pages/driver/sections/SectionDriverLicence/index.d.ts +1 -0
  66. package/dist/cjs/insurances/car/pages/driver/sections/index.d.ts +5 -0
  67. package/dist/cjs/insurances/car/pages/helpers.d.ts +7 -0
  68. package/dist/cjs/insurances/car/pages/index.d.ts +6 -0
  69. package/dist/cjs/insurances/car/pages/interfaces.d.ts +9 -0
  70. package/dist/cjs/insurances/car/pages/quote/PageQuote.d.ts +2 -0
  71. package/dist/cjs/insurances/car/pages/quote/index.d.ts +1 -0
  72. package/dist/cjs/insurances/car/pages/quote/sections/SectionQuoteEdit.d.ts +2 -0
  73. package/dist/cjs/insurances/car/pages/quote/sections/SectionQuoteRecalc.d.ts +2 -0
  74. package/dist/cjs/insurances/car/pages/quote/sections/SplashScreen.d.ts +2 -0
  75. package/dist/cjs/insurances/car/pages/quote/sections/blocks/BlockEndorsements.d.ts +3 -0
  76. package/dist/cjs/insurances/car/pages/quote/sections/index.d.ts +2 -0
  77. package/dist/cjs/insurances/car/pages/vehicle/PageVehicle.d.ts +2 -0
  78. package/dist/cjs/insurances/car/pages/vehicle/TabVehicle.d.ts +3 -0
  79. package/dist/cjs/insurances/car/pages/vehicle/helpers.d.ts +3 -0
  80. package/dist/cjs/insurances/car/pages/vehicle/index.d.ts +1 -0
  81. package/dist/cjs/insurances/car/pages/vehicle/sections/SectionCoverage.d.ts +2 -0
  82. package/dist/cjs/insurances/car/pages/vehicle/sections/SectionMain.d.ts +2 -0
  83. package/dist/cjs/insurances/car/pages/vehicle/sections/blocks/BlockCarConditionInfo.d.ts +2 -0
  84. package/dist/cjs/insurances/car/pages/vehicle/sections/blocks/BlockCarInfo.d.ts +2 -0
  85. package/dist/cjs/insurances/car/pages/vehicle/sections/blocks/index.d.ts +2 -0
  86. package/dist/cjs/insurances/car/pages/vehicle/sections/index.d.ts +2 -0
  87. package/dist/cjs/insurances/helpers.d.ts +11 -0
  88. package/dist/cjs/insurances/home/index.d.ts +1 -0
  89. package/dist/cjs/insurances/home/pages/address/PageAddress.d.ts +2 -0
  90. package/dist/cjs/insurances/home/pages/address/index.d.ts +1 -0
  91. package/dist/cjs/insurances/home/pages/address/sections/SectionAddress.d.ts +2 -0
  92. package/dist/cjs/insurances/home/pages/address/sections/blocks/BlockAddressInfo.d.ts +2 -0
  93. package/dist/cjs/insurances/home/pages/address/sections/blocks/index.d.ts +1 -0
  94. package/dist/cjs/insurances/home/pages/address/sections/index.d.ts +1 -0
  95. package/dist/cjs/insurances/home/pages/applicant/PageApplicant.d.ts +2 -0
  96. package/dist/cjs/insurances/home/pages/applicant/index.d.ts +1 -0
  97. package/dist/cjs/insurances/home/pages/applicant/sections/SectionApplicantCancellation/SectionApplicantCancellation.d.ts +2 -0
  98. package/dist/cjs/insurances/home/pages/applicant/sections/SectionApplicantCancellation/index.d.ts +1 -0
  99. package/dist/cjs/insurances/home/pages/applicant/sections/SectionApplicantClaim/SectionApplicantClaim.d.ts +2 -0
  100. package/dist/cjs/insurances/home/pages/applicant/sections/SectionApplicantClaim/index.d.ts +1 -0
  101. package/dist/cjs/insurances/home/pages/applicant/sections/SectionApplicantInfo/SectionApplicantInfo.d.ts +2 -0
  102. package/dist/cjs/insurances/home/pages/applicant/sections/SectionApplicantInfo/index.d.ts +1 -0
  103. package/dist/cjs/insurances/home/pages/applicant/sections/SectionApplicantInsurancePolicy/SectionApplicantInsurancePolicy.d.ts +2 -0
  104. package/dist/cjs/insurances/home/pages/applicant/sections/SectionApplicantInsurancePolicy/index.d.ts +1 -0
  105. package/dist/cjs/insurances/home/pages/applicant/sections/index.d.ts +4 -0
  106. package/dist/cjs/insurances/home/pages/discount/PageDiscount.d.ts +2 -0
  107. package/dist/cjs/insurances/home/pages/discount/index.d.ts +1 -0
  108. package/dist/cjs/insurances/home/pages/discount/sections/SectionDiscountInfo.d.ts +2 -0
  109. package/dist/cjs/insurances/home/pages/discount/sections/blocks/BlockDwellingInfo.d.ts +2 -0
  110. package/dist/cjs/insurances/home/pages/discount/sections/blocks/BlockNextPageInfo.d.ts +2 -0
  111. package/dist/cjs/insurances/home/pages/discount/sections/blocks/BlockSubmit.d.ts +3 -0
  112. package/dist/cjs/insurances/home/pages/discount/sections/blocks/index.d.ts +3 -0
  113. package/dist/cjs/insurances/home/pages/discount/sections/blocks/interfaces.d.ts +7 -0
  114. package/dist/cjs/insurances/home/pages/discount/sections/index.d.ts +1 -0
  115. package/dist/cjs/insurances/home/pages/dwelling/PageProperty.d.ts +2 -0
  116. package/dist/cjs/insurances/home/pages/dwelling/helpers.d.ts +3 -0
  117. package/dist/cjs/insurances/home/pages/dwelling/index.d.ts +1 -0
  118. package/dist/cjs/insurances/home/pages/dwelling/sections/SectionDwelling.d.ts +2 -0
  119. package/dist/cjs/insurances/home/pages/dwelling/sections/index.d.ts +1 -0
  120. package/dist/cjs/insurances/home/pages/helpers.d.ts +4 -0
  121. package/dist/cjs/insurances/home/pages/index.d.ts +4 -0
  122. package/dist/cjs/insurances/index.d.ts +3 -0
  123. package/dist/cjs/shared/boxes/Container/Container.d.ts +3 -0
  124. package/dist/cjs/shared/boxes/Container/index.d.ts +2 -0
  125. package/dist/cjs/shared/boxes/Container/interface.d.ts +7 -0
  126. package/dist/cjs/shared/boxes/DateSelectFormBox/DateSelectFormBox.d.ts +3 -0
  127. package/dist/cjs/shared/boxes/DateSelectFormBox/index.d.ts +1 -0
  128. package/dist/cjs/shared/boxes/DateSelectFormBox/interface.d.ts +21 -0
  129. package/dist/cjs/shared/boxes/InputFormBox/InputFormBox.d.ts +3 -0
  130. package/dist/cjs/shared/boxes/InputFormBox/InputFormEmailBox.d.ts +3 -0
  131. package/dist/cjs/shared/boxes/InputFormBox/InputFormLicenceBox.d.ts +3 -0
  132. package/dist/cjs/shared/boxes/InputFormBox/InputFormPhoneBox.d.ts +3 -0
  133. package/dist/cjs/shared/boxes/InputFormBox/index.d.ts +4 -0
  134. package/dist/cjs/shared/boxes/InputFormBox/interface.d.ts +14 -0
  135. package/dist/cjs/shared/boxes/LabelFormBox/LabelFormBox.d.ts +3 -0
  136. package/dist/cjs/shared/boxes/LabelFormBox/index.d.ts +1 -0
  137. package/dist/cjs/shared/boxes/LabelFormBox/interface.d.ts +10 -0
  138. package/dist/cjs/shared/boxes/SelectFormBox/SelectFormBox.d.ts +3 -0
  139. package/dist/cjs/shared/boxes/SelectFormBox/index.d.ts +1 -0
  140. package/dist/cjs/shared/boxes/SelectFormBox/interface.d.ts +12 -0
  141. package/dist/cjs/shared/boxes/SwitchButtonBox/SwitchButtonBox.d.ts +3 -0
  142. package/dist/cjs/shared/boxes/SwitchButtonBox/index.d.ts +1 -0
  143. package/dist/cjs/shared/boxes/SwitchButtonBox/interface.d.ts +10 -0
  144. package/dist/cjs/shared/boxes/index.d.ts +5 -0
  145. package/dist/cjs/shared/headers/HeaderDesktop/Mychoice.d.ts +3 -0
  146. package/dist/cjs/shared/headers/HeaderDesktop/Partner.d.ts +3 -0
  147. package/dist/cjs/shared/headers/HeaderDesktop/TheBig.d.ts +3 -0
  148. package/dist/cjs/shared/headers/HeaderDesktop/index.d.ts +3 -0
  149. package/dist/cjs/shared/headers/HeaderMobile/MyChoice.d.ts +3 -0
  150. package/dist/cjs/shared/headers/HeaderMobile/index.d.ts +1 -0
  151. package/dist/cjs/shared/headers/constants.d.ts +11 -0
  152. package/dist/cjs/shared/headers/index.d.ts +4 -0
  153. package/dist/cjs/shared/headers/interfaces.d.ts +8 -0
  154. package/dist/cjs/shared/index.d.ts +6 -0
  155. package/dist/cjs/shared/loaders/LoaderPrimary/LoaderPrimary.d.ts +2 -0
  156. package/dist/cjs/shared/loaders/LoaderPrimary/index.d.ts +1 -0
  157. package/dist/cjs/shared/loaders/index.d.ts +1 -0
  158. package/dist/cjs/shared/modals/ModalConfirm/ModalConfirm.d.ts +2 -0
  159. package/dist/cjs/shared/modals/ModalConfirm/index.d.ts +1 -0
  160. package/dist/cjs/shared/modals/ModalFinale/ModalFinale.d.ts +2 -0
  161. package/dist/cjs/shared/modals/ModalFinale/index.d.ts +1 -0
  162. package/dist/cjs/shared/modals/ModalMessage/ModalMessage.d.ts +2 -0
  163. package/dist/cjs/shared/modals/ModalMessage/index.d.ts +1 -0
  164. package/dist/cjs/shared/modals/ModalPostal/ModalPostal.d.ts +3 -0
  165. package/dist/cjs/shared/modals/ModalPostal/index.d.ts +1 -0
  166. package/dist/cjs/shared/modals/ModalQuoteRequest/ModalQuoteRequest.d.ts +3 -0
  167. package/dist/cjs/shared/modals/ModalQuoteRequest/index.d.ts +1 -0
  168. package/dist/cjs/shared/modals/index.d.ts +5 -0
  169. package/dist/cjs/shared/modals/interfaces.d.ts +21 -0
  170. package/dist/cjs/shared/navigations/NavigationBottom/NavigationBottom.d.ts +3 -0
  171. package/dist/cjs/shared/navigations/NavigationBottom/NavigationBottomTheBig.d.ts +3 -0
  172. package/dist/cjs/shared/navigations/NavigationBottom/index.d.ts +2 -0
  173. package/dist/cjs/shared/navigations/NavigationTab/NavigationTab.d.ts +3 -0
  174. package/dist/cjs/shared/navigations/NavigationTab/NavigationTabMobile.d.ts +3 -0
  175. package/dist/cjs/shared/navigations/NavigationTab/index.d.ts +3 -0
  176. package/dist/cjs/shared/navigations/NavigationTab/interface.d.ts +18 -0
  177. package/dist/cjs/shared/navigations/NavigationTop/NavigationTop.d.ts +3 -0
  178. package/dist/cjs/shared/navigations/NavigationTop/components/ButtonsBox.d.ts +3 -0
  179. package/dist/cjs/shared/navigations/NavigationTop/components/PostalCodeDataBox.d.ts +3 -0
  180. package/dist/cjs/shared/navigations/NavigationTop/components/StepsBox.d.ts +3 -0
  181. package/dist/cjs/shared/navigations/NavigationTop/components/index.d.ts +3 -0
  182. package/dist/cjs/shared/navigations/NavigationTop/components/interface.d.ts +5 -0
  183. package/dist/cjs/shared/navigations/NavigationTop/index.d.ts +1 -0
  184. package/dist/cjs/shared/navigations/constants/index.d.ts +1 -0
  185. package/dist/cjs/shared/navigations/constants/insuranceSteps.d.ts +17 -0
  186. package/dist/cjs/shared/navigations/index.d.ts +5 -0
  187. package/dist/cjs/shared/navigations/interfaces.d.ts +34 -0
  188. package/dist/cjs/shared/sections/index.d.ts +1 -0
  189. package/dist/cjs/shared/sections/quotes/OfferSection/OfferSection.d.ts +3 -0
  190. package/dist/cjs/shared/sections/quotes/OfferSection/index.d.ts +1 -0
  191. package/dist/cjs/shared/sections/quotes/index.d.ts +1 -0
  192. package/dist/cjs/shared/sections/quotes/interfaces.d.ts +11 -0
  193. package/dist/esm/index.d.ts +3 -0
  194. package/dist/esm/index.js +3138 -0
  195. package/dist/esm/index.js.map +1 -0
  196. package/dist/esm/init/AppConfig/AppConfig.d.ts +4 -0
  197. package/dist/esm/init/AppConfig/helper.d.ts +2 -0
  198. package/dist/esm/init/AppConfig/index.d.ts +1 -0
  199. package/dist/esm/init/AppConfig/interfaces.d.ts +5 -0
  200. package/dist/esm/init/AppContainer/AppContainer.d.ts +2 -0
  201. package/dist/esm/init/AppContainer/index.d.ts +1 -0
  202. package/dist/esm/init/AppHeader/AppHeader.d.ts +2 -0
  203. package/dist/esm/init/AppHeader/index.d.ts +1 -0
  204. package/dist/esm/init/AppLoader/AppLoader.d.ts +2 -0
  205. package/dist/esm/init/AppLoader/index.d.ts +1 -0
  206. package/dist/esm/init/AppModal/AppModal.d.ts +2 -0
  207. package/dist/esm/init/AppModal/index.d.ts +1 -0
  208. package/dist/esm/init/AppModal/interfaces.d.ts +4 -0
  209. package/dist/esm/init/AppRouterListener/AppRouterListener.d.ts +2 -0
  210. package/dist/esm/init/AppRouterListener/index.d.ts +1 -0
  211. package/dist/esm/init/AppRoutes/AppRoutes.d.ts +3 -0
  212. package/dist/esm/init/AppRoutes/BrokerKeys.d.ts +6 -0
  213. package/dist/esm/init/AppRoutes/hoox/useRedirectPartner.d.ts +5 -0
  214. package/dist/esm/init/AppRoutes/hoox/useRouteParams.d.ts +1 -0
  215. package/dist/esm/init/AppRoutes/index.d.ts +3 -0
  216. package/dist/esm/init/AppRoutes/routeTypes/RouteWrapperPrivate.d.ts +3 -0
  217. package/dist/esm/init/AppRoutes/routeTypes/RouteWrapperPublic.d.ts +3 -0
  218. package/dist/esm/init/AppRoutes/routeTypes/RouteWrapperRestricted.d.ts +3 -0
  219. package/dist/esm/init/AppRoutes/routeTypes/index.d.ts +3 -0
  220. package/dist/esm/init/AppRoutes/routeTypes/interface.d.ts +4 -0
  221. package/dist/esm/init/AppWrapper/AppWrapper.d.ts +3 -0
  222. package/dist/esm/init/AppWrapper/index.d.ts +1 -0
  223. package/dist/esm/init/AppWrapper/interfaces.d.ts +5 -0
  224. package/dist/esm/init/StoryAppWrapper/StoryAppWrapper.d.ts +3 -0
  225. package/dist/esm/init/StoryAppWrapper/index.d.ts +1 -0
  226. package/dist/esm/init/StoryAppWrapper/interfaces.d.ts +4 -0
  227. package/dist/esm/init/helper.d.ts +2 -0
  228. package/dist/esm/init/index.d.ts +3 -0
  229. package/dist/esm/insurances/car/index.d.ts +1 -0
  230. package/dist/esm/insurances/car/pages/discount/PageDiscount.d.ts +2 -0
  231. package/dist/esm/insurances/car/pages/discount/helpers.d.ts +2 -0
  232. package/dist/esm/insurances/car/pages/discount/index.d.ts +1 -0
  233. package/dist/esm/insurances/car/pages/discount/sections/SectionDiscountInfo.d.ts +2 -0
  234. package/dist/esm/insurances/car/pages/discount/sections/blocks/BlockNextPageInfo.d.ts +2 -0
  235. package/dist/esm/insurances/car/pages/discount/sections/blocks/BlockSubmit.d.ts +3 -0
  236. package/dist/esm/insurances/car/pages/discount/sections/blocks/BlockVehLinks.d.ts +2 -0
  237. package/dist/esm/insurances/car/pages/discount/sections/blocks/index.d.ts +3 -0
  238. package/dist/esm/insurances/car/pages/discount/sections/blocks/interfaces.d.ts +7 -0
  239. package/dist/esm/insurances/car/pages/discount/sections/index.d.ts +1 -0
  240. package/dist/esm/insurances/car/pages/driver/PageDriver.d.ts +2 -0
  241. package/dist/esm/insurances/car/pages/driver/TabDriver.d.ts +3 -0
  242. package/dist/esm/insurances/car/pages/driver/index.d.ts +1 -0
  243. package/dist/esm/insurances/car/pages/driver/sections/SectionDriverCancellation/SectionDriverCancellation.d.ts +2 -0
  244. package/dist/esm/insurances/car/pages/driver/sections/SectionDriverCancellation/index.d.ts +1 -0
  245. package/dist/esm/insurances/car/pages/driver/sections/SectionDriverHistory/SectionDriverHistory.d.ts +2 -0
  246. package/dist/esm/insurances/car/pages/driver/sections/SectionDriverHistory/blocks/BlockDriverAccident.d.ts +2 -0
  247. package/dist/esm/insurances/car/pages/driver/sections/SectionDriverHistory/blocks/BlockDriverSuspension.d.ts +2 -0
  248. package/dist/esm/insurances/car/pages/driver/sections/SectionDriverHistory/blocks/BlockDriverTicket.d.ts +2 -0
  249. package/dist/esm/insurances/car/pages/driver/sections/SectionDriverHistory/blocks/index.d.ts +3 -0
  250. package/dist/esm/insurances/car/pages/driver/sections/SectionDriverHistory/index.d.ts +1 -0
  251. package/dist/esm/insurances/car/pages/driver/sections/SectionDriverInfo/SectionDriverInfo.d.ts +2 -0
  252. package/dist/esm/insurances/car/pages/driver/sections/SectionDriverInfo/index.d.ts +1 -0
  253. package/dist/esm/insurances/car/pages/driver/sections/SectionDriverInsurancePolicy/SectionDriverInsurancePolicy.d.ts +2 -0
  254. package/dist/esm/insurances/car/pages/driver/sections/SectionDriverInsurancePolicy/index.d.ts +1 -0
  255. package/dist/esm/insurances/car/pages/driver/sections/SectionDriverLicence/SectionDriverLicence.d.ts +2 -0
  256. package/dist/esm/insurances/car/pages/driver/sections/SectionDriverLicence/index.d.ts +1 -0
  257. package/dist/esm/insurances/car/pages/driver/sections/index.d.ts +5 -0
  258. package/dist/esm/insurances/car/pages/helpers.d.ts +7 -0
  259. package/dist/esm/insurances/car/pages/index.d.ts +6 -0
  260. package/dist/esm/insurances/car/pages/interfaces.d.ts +9 -0
  261. package/dist/esm/insurances/car/pages/quote/PageQuote.d.ts +2 -0
  262. package/dist/esm/insurances/car/pages/quote/index.d.ts +1 -0
  263. package/dist/esm/insurances/car/pages/quote/sections/SectionQuoteEdit.d.ts +2 -0
  264. package/dist/esm/insurances/car/pages/quote/sections/SectionQuoteRecalc.d.ts +2 -0
  265. package/dist/esm/insurances/car/pages/quote/sections/SplashScreen.d.ts +2 -0
  266. package/dist/esm/insurances/car/pages/quote/sections/blocks/BlockEndorsements.d.ts +3 -0
  267. package/dist/esm/insurances/car/pages/quote/sections/index.d.ts +2 -0
  268. package/dist/esm/insurances/car/pages/vehicle/PageVehicle.d.ts +2 -0
  269. package/dist/esm/insurances/car/pages/vehicle/TabVehicle.d.ts +3 -0
  270. package/dist/esm/insurances/car/pages/vehicle/helpers.d.ts +3 -0
  271. package/dist/esm/insurances/car/pages/vehicle/index.d.ts +1 -0
  272. package/dist/esm/insurances/car/pages/vehicle/sections/SectionCoverage.d.ts +2 -0
  273. package/dist/esm/insurances/car/pages/vehicle/sections/SectionMain.d.ts +2 -0
  274. package/dist/esm/insurances/car/pages/vehicle/sections/blocks/BlockCarConditionInfo.d.ts +2 -0
  275. package/dist/esm/insurances/car/pages/vehicle/sections/blocks/BlockCarInfo.d.ts +2 -0
  276. package/dist/esm/insurances/car/pages/vehicle/sections/blocks/index.d.ts +2 -0
  277. package/dist/esm/insurances/car/pages/vehicle/sections/index.d.ts +2 -0
  278. package/dist/esm/insurances/helpers.d.ts +11 -0
  279. package/dist/esm/insurances/home/index.d.ts +1 -0
  280. package/dist/esm/insurances/home/pages/address/PageAddress.d.ts +2 -0
  281. package/dist/esm/insurances/home/pages/address/index.d.ts +1 -0
  282. package/dist/esm/insurances/home/pages/address/sections/SectionAddress.d.ts +2 -0
  283. package/dist/esm/insurances/home/pages/address/sections/blocks/BlockAddressInfo.d.ts +2 -0
  284. package/dist/esm/insurances/home/pages/address/sections/blocks/index.d.ts +1 -0
  285. package/dist/esm/insurances/home/pages/address/sections/index.d.ts +1 -0
  286. package/dist/esm/insurances/home/pages/applicant/PageApplicant.d.ts +2 -0
  287. package/dist/esm/insurances/home/pages/applicant/index.d.ts +1 -0
  288. package/dist/esm/insurances/home/pages/applicant/sections/SectionApplicantCancellation/SectionApplicantCancellation.d.ts +2 -0
  289. package/dist/esm/insurances/home/pages/applicant/sections/SectionApplicantCancellation/index.d.ts +1 -0
  290. package/dist/esm/insurances/home/pages/applicant/sections/SectionApplicantClaim/SectionApplicantClaim.d.ts +2 -0
  291. package/dist/esm/insurances/home/pages/applicant/sections/SectionApplicantClaim/index.d.ts +1 -0
  292. package/dist/esm/insurances/home/pages/applicant/sections/SectionApplicantInfo/SectionApplicantInfo.d.ts +2 -0
  293. package/dist/esm/insurances/home/pages/applicant/sections/SectionApplicantInfo/index.d.ts +1 -0
  294. package/dist/esm/insurances/home/pages/applicant/sections/SectionApplicantInsurancePolicy/SectionApplicantInsurancePolicy.d.ts +2 -0
  295. package/dist/esm/insurances/home/pages/applicant/sections/SectionApplicantInsurancePolicy/index.d.ts +1 -0
  296. package/dist/esm/insurances/home/pages/applicant/sections/index.d.ts +4 -0
  297. package/dist/esm/insurances/home/pages/discount/PageDiscount.d.ts +2 -0
  298. package/dist/esm/insurances/home/pages/discount/index.d.ts +1 -0
  299. package/dist/esm/insurances/home/pages/discount/sections/SectionDiscountInfo.d.ts +2 -0
  300. package/dist/esm/insurances/home/pages/discount/sections/blocks/BlockDwellingInfo.d.ts +2 -0
  301. package/dist/esm/insurances/home/pages/discount/sections/blocks/BlockNextPageInfo.d.ts +2 -0
  302. package/dist/esm/insurances/home/pages/discount/sections/blocks/BlockSubmit.d.ts +3 -0
  303. package/dist/esm/insurances/home/pages/discount/sections/blocks/index.d.ts +3 -0
  304. package/dist/esm/insurances/home/pages/discount/sections/blocks/interfaces.d.ts +7 -0
  305. package/dist/esm/insurances/home/pages/discount/sections/index.d.ts +1 -0
  306. package/dist/esm/insurances/home/pages/dwelling/PageProperty.d.ts +2 -0
  307. package/dist/esm/insurances/home/pages/dwelling/helpers.d.ts +3 -0
  308. package/dist/esm/insurances/home/pages/dwelling/index.d.ts +1 -0
  309. package/dist/esm/insurances/home/pages/dwelling/sections/SectionDwelling.d.ts +2 -0
  310. package/dist/esm/insurances/home/pages/dwelling/sections/index.d.ts +1 -0
  311. package/dist/esm/insurances/home/pages/helpers.d.ts +4 -0
  312. package/dist/esm/insurances/home/pages/index.d.ts +4 -0
  313. package/dist/esm/insurances/index.d.ts +3 -0
  314. package/dist/esm/shared/boxes/Container/Container.d.ts +3 -0
  315. package/dist/esm/shared/boxes/Container/index.d.ts +2 -0
  316. package/dist/esm/shared/boxes/Container/interface.d.ts +7 -0
  317. package/dist/esm/shared/boxes/DateSelectFormBox/DateSelectFormBox.d.ts +3 -0
  318. package/dist/esm/shared/boxes/DateSelectFormBox/index.d.ts +1 -0
  319. package/dist/esm/shared/boxes/DateSelectFormBox/interface.d.ts +21 -0
  320. package/dist/esm/shared/boxes/InputFormBox/InputFormBox.d.ts +3 -0
  321. package/dist/esm/shared/boxes/InputFormBox/InputFormEmailBox.d.ts +3 -0
  322. package/dist/esm/shared/boxes/InputFormBox/InputFormLicenceBox.d.ts +3 -0
  323. package/dist/esm/shared/boxes/InputFormBox/InputFormPhoneBox.d.ts +3 -0
  324. package/dist/esm/shared/boxes/InputFormBox/index.d.ts +4 -0
  325. package/dist/esm/shared/boxes/InputFormBox/interface.d.ts +14 -0
  326. package/dist/esm/shared/boxes/LabelFormBox/LabelFormBox.d.ts +3 -0
  327. package/dist/esm/shared/boxes/LabelFormBox/index.d.ts +1 -0
  328. package/dist/esm/shared/boxes/LabelFormBox/interface.d.ts +10 -0
  329. package/dist/esm/shared/boxes/SelectFormBox/SelectFormBox.d.ts +3 -0
  330. package/dist/esm/shared/boxes/SelectFormBox/index.d.ts +1 -0
  331. package/dist/esm/shared/boxes/SelectFormBox/interface.d.ts +12 -0
  332. package/dist/esm/shared/boxes/SwitchButtonBox/SwitchButtonBox.d.ts +3 -0
  333. package/dist/esm/shared/boxes/SwitchButtonBox/index.d.ts +1 -0
  334. package/dist/esm/shared/boxes/SwitchButtonBox/interface.d.ts +10 -0
  335. package/dist/esm/shared/boxes/index.d.ts +5 -0
  336. package/dist/esm/shared/headers/HeaderDesktop/Mychoice.d.ts +3 -0
  337. package/dist/esm/shared/headers/HeaderDesktop/Partner.d.ts +3 -0
  338. package/dist/esm/shared/headers/HeaderDesktop/TheBig.d.ts +3 -0
  339. package/dist/esm/shared/headers/HeaderDesktop/index.d.ts +3 -0
  340. package/dist/esm/shared/headers/HeaderMobile/MyChoice.d.ts +3 -0
  341. package/dist/esm/shared/headers/HeaderMobile/index.d.ts +1 -0
  342. package/dist/esm/shared/headers/constants.d.ts +11 -0
  343. package/dist/esm/shared/headers/index.d.ts +4 -0
  344. package/dist/esm/shared/headers/interfaces.d.ts +8 -0
  345. package/dist/esm/shared/index.d.ts +6 -0
  346. package/dist/esm/shared/loaders/LoaderPrimary/LoaderPrimary.d.ts +2 -0
  347. package/dist/esm/shared/loaders/LoaderPrimary/index.d.ts +1 -0
  348. package/dist/esm/shared/loaders/index.d.ts +1 -0
  349. package/dist/esm/shared/modals/ModalConfirm/ModalConfirm.d.ts +2 -0
  350. package/dist/esm/shared/modals/ModalConfirm/index.d.ts +1 -0
  351. package/dist/esm/shared/modals/ModalFinale/ModalFinale.d.ts +2 -0
  352. package/dist/esm/shared/modals/ModalFinale/index.d.ts +1 -0
  353. package/dist/esm/shared/modals/ModalMessage/ModalMessage.d.ts +2 -0
  354. package/dist/esm/shared/modals/ModalMessage/index.d.ts +1 -0
  355. package/dist/esm/shared/modals/ModalPostal/ModalPostal.d.ts +3 -0
  356. package/dist/esm/shared/modals/ModalPostal/index.d.ts +1 -0
  357. package/dist/esm/shared/modals/ModalQuoteRequest/ModalQuoteRequest.d.ts +3 -0
  358. package/dist/esm/shared/modals/ModalQuoteRequest/index.d.ts +1 -0
  359. package/dist/esm/shared/modals/index.d.ts +5 -0
  360. package/dist/esm/shared/modals/interfaces.d.ts +21 -0
  361. package/dist/esm/shared/navigations/NavigationBottom/NavigationBottom.d.ts +3 -0
  362. package/dist/esm/shared/navigations/NavigationBottom/NavigationBottomTheBig.d.ts +3 -0
  363. package/dist/esm/shared/navigations/NavigationBottom/index.d.ts +2 -0
  364. package/dist/esm/shared/navigations/NavigationTab/NavigationTab.d.ts +3 -0
  365. package/dist/esm/shared/navigations/NavigationTab/NavigationTabMobile.d.ts +3 -0
  366. package/dist/esm/shared/navigations/NavigationTab/index.d.ts +3 -0
  367. package/dist/esm/shared/navigations/NavigationTab/interface.d.ts +18 -0
  368. package/dist/esm/shared/navigations/NavigationTop/NavigationTop.d.ts +3 -0
  369. package/dist/esm/shared/navigations/NavigationTop/components/ButtonsBox.d.ts +3 -0
  370. package/dist/esm/shared/navigations/NavigationTop/components/PostalCodeDataBox.d.ts +3 -0
  371. package/dist/esm/shared/navigations/NavigationTop/components/StepsBox.d.ts +3 -0
  372. package/dist/esm/shared/navigations/NavigationTop/components/index.d.ts +3 -0
  373. package/dist/esm/shared/navigations/NavigationTop/components/interface.d.ts +5 -0
  374. package/dist/esm/shared/navigations/NavigationTop/index.d.ts +1 -0
  375. package/dist/esm/shared/navigations/constants/index.d.ts +1 -0
  376. package/dist/esm/shared/navigations/constants/insuranceSteps.d.ts +17 -0
  377. package/dist/esm/shared/navigations/index.d.ts +5 -0
  378. package/dist/esm/shared/navigations/interfaces.d.ts +34 -0
  379. package/dist/esm/shared/sections/index.d.ts +1 -0
  380. package/dist/esm/shared/sections/quotes/OfferSection/OfferSection.d.ts +3 -0
  381. package/dist/esm/shared/sections/quotes/OfferSection/index.d.ts +1 -0
  382. package/dist/esm/shared/sections/quotes/index.d.ts +1 -0
  383. package/dist/esm/shared/sections/quotes/interfaces.d.ts +11 -0
  384. package/dist/images/logotype-mychoice-primary.png +0 -0
  385. package/dist/images/logotype-thebig-primary.png +0 -0
  386. package/dist/images/pigLoader.mp4 +0 -0
  387. package/dist/images/powered-by-mychoice.png +0 -0
  388. package/dist/index.d.ts +292 -0
  389. package/package.json +40 -0
@@ -0,0 +1,3194 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var mychoiceSdkComponents = require('@mychoice/mychoice-sdk-components');
7
+ var mychoiceSdkStore = require('@mychoice/mychoice-sdk-store');
8
+ var reactRouterDom = require('react-router-dom');
9
+ var React = require('react');
10
+ var TagManager = require('react-gtm-module');
11
+ require('react-phone-input-2/lib/style.css');
12
+
13
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
+
15
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
16
+ var TagManager__default = /*#__PURE__*/_interopDefaultLegacy(TagManager);
17
+
18
+ const LabelFormBox = (props) => {
19
+ const { name, className, title, subTitle, description, isRemovable, onIconClick, isActive, } = props;
20
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
21
+ const isThebig = appType === mychoiceSdkComponents.AppTypes.TheBig;
22
+ return (jsxRuntime.jsxs("div", { className: `label-container ${className}`, children: [jsxRuntime.jsx(mychoiceSdkComponents.TitleForm, { className: isThebig ? 'thebig-medium' : '', title: title, subTitle: subTitle, isActive: isActive }), (name && description)
23
+ && jsxRuntime.jsx(mychoiceSdkComponents.TooltipForm, { id: `${name.toLowerCase()}-tooltip`, description: description }), isRemovable
24
+ && (jsxRuntime.jsx(mychoiceSdkComponents.IconDelete, { className: "icon-label-delete", onClick: onIconClick, color: mychoiceSdkComponents.ColorVariablesTypes.Primary, height: "1.125rem", width: "1.125rem" }))] }));
25
+ };
26
+ LabelFormBox.defaultProps = {
27
+ className: '',
28
+ isActive: false,
29
+ };
30
+
31
+ const Container = (props) => {
32
+ const { name, className, title, subTitle, description, isRemovable, onIconClick, errorMessage, hintMessage, children, } = props;
33
+ return (jsxRuntime.jsxs("div", { className: `input-form-box-container ${className}`, children: [title && name ? (jsxRuntime.jsx(LabelFormBox, { name: name, title: title, subTitle: subTitle, description: description, isRemovable: isRemovable, onIconClick: onIconClick })) : '', children, errorMessage && jsxRuntime.jsx("p", { className: "error-message", children: errorMessage }), hintMessage && jsxRuntime.jsx("p", { className: "hint-message", children: hintMessage })] }));
34
+ };
35
+ Container.defaultProps = {
36
+ name: '',
37
+ className: '',
38
+ title: '',
39
+ subTitle: '',
40
+ description: '',
41
+ errorMessage: '',
42
+ hintMessage: '',
43
+ };
44
+
45
+ const InputFormBox = (props) => {
46
+ const { className, defaultValue, placeholder, disabled, error, name, title, subTitle, description, onChange, errorMessage, hintMessage, type, minValue, maxValue, } = props;
47
+ return (jsxRuntime.jsx(Container, { name: name, className: ` ${className} ${error ? 'error' : ''}`, title: title, subTitle: subTitle, description: description, errorMessage: errorMessage, hintMessage: hintMessage, children: jsxRuntime.jsx(mychoiceSdkComponents.InputForm, { className: "input-form", name: name, type: type, defaultValue: defaultValue, onChange: onChange, placeholder: placeholder, disabled: disabled, minValue: minValue, maxValue: maxValue }) }));
48
+ };
49
+ InputFormBox.defaultProps = {
50
+ className: '',
51
+ type: mychoiceSdkComponents.InputTypes.Text,
52
+ title: '',
53
+ };
54
+
55
+ const InputFormPhoneBox = (props) => {
56
+ const { className, defaultValue, placeholder, disabled, error, name, title, onChange, errorMessage, hintMessage, } = props;
57
+ return (jsxRuntime.jsx(Container, { name: name, className: ` ${className} ${error ? 'error' : ''}`, title: title, errorMessage: errorMessage, hintMessage: hintMessage, children: jsxRuntime.jsx(mychoiceSdkComponents.InputFormPhone, { className: "input-form", name: name, type: mychoiceSdkComponents.InputTypes.Text, defaultValue: defaultValue, onChange: onChange, placeholder: placeholder, disabled: disabled }) }));
58
+ };
59
+ InputFormPhoneBox.defaultProps = {
60
+ className: '',
61
+ title: '',
62
+ };
63
+
64
+ const InputFormEmailBox = (props) => {
65
+ const { className, defaultValue, placeholder, disabled, error, name, title, onChange, errorMessage, hintMessage, description, validationStatus, } = props;
66
+ return (jsxRuntime.jsx(Container, { name: name, className: ` ${className} ${error ? 'error' : ''}`, title: title, errorMessage: errorMessage, hintMessage: hintMessage, description: description, children: jsxRuntime.jsx(mychoiceSdkComponents.InputFormEmail, { name: name, defaultValue: defaultValue, onChange: onChange, placeholder: placeholder, disabled: disabled, validationStatus: validationStatus, error: error }) }));
67
+ };
68
+ InputFormEmailBox.defaultProps = {
69
+ className: '',
70
+ title: '',
71
+ };
72
+
73
+ const InputFormLicenceBox = (props) => {
74
+ const { className, defaultValue, placeholder, disabled, error, name, title, description, onChange, errorMessage, hintMessage, maxLength, } = props;
75
+ return (jsxRuntime.jsx(Container, { name: name, className: ` ${className} ${error ? 'error' : ''}`, title: title, description: description, errorMessage: errorMessage, hintMessage: hintMessage, children: jsxRuntime.jsx(mychoiceSdkComponents.InputFormLicence, { className: "input-form", name: name, type: mychoiceSdkComponents.InputTypes.Text, defaultValue: defaultValue, onChange: onChange, placeholder: placeholder, disabled: disabled, maxLength: maxLength }) }));
76
+ };
77
+ InputFormLicenceBox.defaultProps = {
78
+ className: '',
79
+ title: '',
80
+ };
81
+
82
+ const SelectFormBox = (props) => {
83
+ const { className, defaultValue, disabled, error, name, title, description, onChange, errorMessage, hintMessage, isRemovable, onIconClick, options, groupOptions, placeholder, autoSelectIfValueIsOutOfOptions, } = props;
84
+ return (jsxRuntime.jsx(Container, { name: name, className: ` ${className} ${error ? 'error' : ''}`, title: title, description: description, errorMessage: errorMessage, hintMessage: hintMessage, isRemovable: isRemovable, onIconClick: onIconClick, children: jsxRuntime.jsx(mychoiceSdkComponents.SelectForm, { className: "input-form", name: name, defaultValue: defaultValue, onChange: onChange, options: options || [], groupOptions: groupOptions || [], placeholder: placeholder, disabled: disabled, autoSelectIfValueIsOutOfOptions: autoSelectIfValueIsOutOfOptions }) }));
85
+ };
86
+ SelectFormBox.defaultProps = {
87
+ className: '',
88
+ title: '',
89
+ autoSelectIfValueIsOutOfOptions: true,
90
+ groupOptions: [],
91
+ options: [],
92
+ };
93
+
94
+ const DateSelectFormBox = (props) => {
95
+ const { className, defaultValue, disabled, name, dateNames, // this is need for scrolling after validation
96
+ datePlaceholders, title, description, onDateChange, isRemovable, onIconClick, errorMessage, hintMessage, isDay, isMonth, maxDate, minDate, error, } = props;
97
+ const { day, month, year } = defaultValue;
98
+ const isError = !disabled && error;
99
+ return (jsxRuntime.jsx(Container, { name: name, className: className, title: title, description: description, errorMessage: errorMessage, hintMessage: hintMessage, isRemovable: isRemovable, onIconClick: onIconClick, children: jsxRuntime.jsxs("div", { className: "date-content", children: [isDay && (jsxRuntime.jsx(mychoiceSdkComponents.SelectForm, { className: "input-form day-select", name: dateNames[2], defaultValue: day, onChange: onDateChange(mychoiceSdkComponents.DateTypes.Day), options: mychoiceSdkComponents.getDateOptions(mychoiceSdkComponents.DateTypes.Day, minDate, maxDate, defaultValue), placeholder: (datePlaceholders && datePlaceholders[2]) || 'Day', disabled: disabled, error: !day && isError, autoSelectIfValueIsOutOfOptions: !!day })), isMonth && (jsxRuntime.jsx(mychoiceSdkComponents.SelectForm, { className: "input-form month-select", name: dateNames[1], defaultValue: month, onChange: onDateChange(mychoiceSdkComponents.DateTypes.Month), options: mychoiceSdkComponents.getDateOptions(mychoiceSdkComponents.DateTypes.Month, minDate, maxDate, defaultValue), placeholder: (datePlaceholders && datePlaceholders[1]) || 'Month', disabled: disabled, error: !month && isError, autoSelectIfValueIsOutOfOptions: !!month })), jsxRuntime.jsx(mychoiceSdkComponents.SelectForm, { className: "input-form year-select", name: dateNames[0], defaultValue: year, onChange: onDateChange(mychoiceSdkComponents.DateTypes.Year), options: mychoiceSdkComponents.getDateOptions(mychoiceSdkComponents.DateTypes.Year, minDate, maxDate, defaultValue), placeholder: (datePlaceholders && datePlaceholders[0]) || 'Year', disabled: disabled, error: !year && isError, autoSelectIfValueIsOutOfOptions: !!year })] }) }));
100
+ };
101
+ DateSelectFormBox.defaultProps = {
102
+ isDay: false,
103
+ isMonth: true,
104
+ className: '',
105
+ dateNames: ['year', 'month', 'day'],
106
+ datePlaceholders: [],
107
+ title: '',
108
+ autoSelectIfValueIsOutOfOptions: true,
109
+ options: [],
110
+ minDate: mychoiceSdkComponents.getFormattedDate('1922-01-01', 'yyyy-MM-dd'),
111
+ maxDate: mychoiceSdkComponents.getFormattedDate('', 'yyyy-MM-dd'),
112
+ };
113
+
114
+ const SwitchButtonBox = (props) => {
115
+ const { name, title, description, hintMessage, isRemovable, errorMessage, className, defaultValue, items, onChange, } = props;
116
+ const [activeId, setActiveId] = React.useState(defaultValue);
117
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
118
+ const isTheBig = appType === mychoiceSdkComponents.AppTypes.TheBig;
119
+ const setClassNames = (isActive) => {
120
+ if (isTheBig) {
121
+ return isActive ? 'thebig-bold' : 'thebig-regular';
122
+ }
123
+ return '';
124
+ };
125
+ const handleClick = React.useCallback((selectedItem) => () => {
126
+ setActiveId(selectedItem.value);
127
+ if (onChange) {
128
+ onChange({
129
+ name,
130
+ value: selectedItem.value,
131
+ });
132
+ }
133
+ }, []);
134
+ return (jsxRuntime.jsx(Container, { name: name, className: className, title: title, description: description, errorMessage: errorMessage, isRemovable: isRemovable, hintMessage: hintMessage, children: jsxRuntime.jsx("div", { className: "flex-items-container", children: items.map((item, index) => (jsxRuntime.jsx(mychoiceSdkComponents.ButtonForm, { className: setClassNames(item.value === activeId), onClick: handleClick(item), selected: item.value === activeId, label: item.name }, `${item.name}_${index}`))) }) }));
135
+ };
136
+ SwitchButtonBox.defaultProps = {
137
+ defaultValue: '',
138
+ items: [],
139
+ };
140
+
141
+ const OfferSection = ({ offerCompany, brokerCompany, offerPrice, phoneNumber, isBestOffer, operationHours = {}, redirectUrl, }) => {
142
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
143
+ const { postRequestQuoteOnliaUrl } = mychoiceSdkStore.QuoteDataHandler();
144
+ const isTheBig = appType === mychoiceSdkComponents.AppTypes.TheBig;
145
+ const { weekdayHours, saturdayHours, sundayHours } = operationHours;
146
+ const [detailsIsOpen, setDetailsIsOpenIsOpen] = React.useState(false);
147
+ const handleDropdownClick = () => {
148
+ setDetailsIsOpenIsOpen(!detailsIsOpen);
149
+ };
150
+ return (jsxRuntime.jsxs("div", { className: "offer-section", children: [jsxRuntime.jsx(mychoiceSdkComponents.OfferHeader, { className: isTheBig ? 'thebig-bold' : '', companyName: offerCompany?.name, isBestOffer: isBestOffer }), jsxRuntime.jsx(mychoiceSdkComponents.OfferPrice, { className: isTheBig ? 'thebig' : '', companyLogo: offerCompany?.logo, price: offerPrice }), !isTheBig && redirectUrl
151
+ ? (jsxRuntime.jsxs("div", { className: "offer-phone", children: [jsxRuntime.jsx("h3", { children: "Click below to get this rate" }), jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { className: "offer-phone-number", label: "Get details", type: mychoiceSdkComponents.ButtonTypes.Button, category: mychoiceSdkComponents.CategoryTypes.Filled, color: mychoiceSdkComponents.ColorTypes.Primary, variant: mychoiceSdkComponents.ButtonVariantTypes.Rectangle, size: mychoiceSdkComponents.SizeTypes.Medium, onClick: () => {
152
+ postRequestQuoteOnliaUrl(true, redirectUrl);
153
+ } })] })) : (jsxRuntime.jsxs("div", { className: "offer-phone", children: [jsxRuntime.jsx("h3", { className: isTheBig ? 'thebig-bold' : '', children: "Call now to get this rate" }), jsxRuntime.jsx("a", { target: "_blank", rel: "noreferrer noopener", href: `tel:${phoneNumber?.number}`, children: jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { className: `${isTheBig ? 'thebig-bold' : ''} offer-phone-number`, label: phoneNumber?.title, type: mychoiceSdkComponents.ButtonTypes.Button, category: mychoiceSdkComponents.CategoryTypes.Filled, color: mychoiceSdkComponents.ColorTypes.Primary, variant: mychoiceSdkComponents.ButtonVariantTypes.Rectangle, size: mychoiceSdkComponents.SizeTypes.Medium }) })] })), jsxRuntime.jsxs("button", { className: "dropdown", onClick: handleDropdownClick, children: [jsxRuntime.jsx("span", { children: detailsIsOpen ? 'Less Info' : 'More Info' }), jsxRuntime.jsx(mychoiceSdkComponents.IconDropdownArrow, { color: "grey", className: detailsIsOpen ? 'rotated' : '' })] }), detailsIsOpen && (jsxRuntime.jsxs("div", { className: "offer-details", children: [jsxRuntime.jsx(mychoiceSdkComponents.OfferDetail, { className: isTheBig ? 'thebig-bold' : '', name: offerCompany?.name, companyType: mychoiceSdkComponents.CompanyRoleTypes.Offering, description: offerCompany?.description }), jsxRuntime.jsx("hr", {}), (isTheBig || !redirectUrl)
154
+ && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(mychoiceSdkComponents.OfferDetail, { className: isTheBig ? 'thebig-bold' : '', logo: brokerCompany?.logo, name: brokerCompany?.title, companyType: mychoiceSdkComponents.CompanyRoleTypes.Broker, description: brokerCompany?.description }), jsxRuntime.jsx("hr", {})] })), jsxRuntime.jsx(mychoiceSdkComponents.OfferDetail, { className: isTheBig ? 'thebig-bold' : '', name: "Hours of Operation", children: jsxRuntime.jsx(mychoiceSdkComponents.OperationHoursInfo, { weekdayHours: weekdayHours, saturdayHours: saturdayHours, sundayHours: sundayHours }) })] }))] }));
155
+ };
156
+ OfferSection.defaultProps = {
157
+ offerPrice: { monthly: 0, yearly: 0 },
158
+ operationHours: {},
159
+ redirectUrl: '',
160
+ };
161
+
162
+ var logo = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABXgAAAEzCAMAAAC8BZu5AAAAq1BMVEUAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Nr6iZAAAAOHRSTlMAQODxEJCg+gUwwPdwCNrQAiI17FAcFAwr6HmvW5VDSdV/yapW5KWbJrkYiHRgs4NsZDtpjcTNvSddkcQAACntSURBVHja7N3ZjtpAEIXhAoMMZjAO27DDDPs2LDaZev8ny0UioWTotgFHkZz/u2/VXal0ulUtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyIJCfXbavR2K27deODu3SgIA+Guq5Wji6u9cv39obgQAkLZSJ1Izf9ksCAAgNYXBXOO467AtAIAUvO66mozbbwYCAHhO7kPvkd8ROQDAM8YXvZezJXEAgEfVPX2Ec2DqBYBHbBb6qG5I1gsA9wpeHH3C97IAAO6xuuhz3KgqAIDEThV92oShFwCSep1qGiqhAACS+DbRlCyIGwAggZyjqXlnfQ4AxBq4mqJ5RwAAVqGmyzkLAMBip2mrjAQAYHRU/bed9/UcHorFbZjjWg7A/2GvScwvi2UxipbTz7wm4dQlmcLRc6/rfQf0XgDZN3Y1RndxrJfkqtoZDCcap7GSBDbDyh/FjnzoBiDjyo5adbfnQG5on9auWvltiVPqVfSLGm8iAGRaIa82XrNkOfvi2w+XxG5V01sqewGAzArWauHlJMbIU4uiWM0cNegJAGRVT81qOUkg965ms0dr7wQAsqnuqknjutY8GPWaYjbrqonTEqNIbcYCAFlU9dWk35ZfOsW5qh7FrDBUE09MlmrVaAkAZNBWDZz9NUr4ORTnA7EYN9QglNuGGuNDACB7yq7e5q++TqbRcPpZ87z+SG5pXYxhg6XlEzbgB3v31pQ4EEQBuDFookCAABoQNob7TUBc9Pz/X7ZbtVtLkZnJRfYl4/neIW9TXWe6e4i+mwfo7apytscldyk63gJ6c9GoI9tY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";
163
+
164
+ const usePathGroups = (insuranceType) => {
165
+ const { appConfigState } = mychoiceSdkStore.useStoreAppConfig();
166
+ const insurancePathGroup = {
167
+ [`${mychoiceSdkComponents.InsuranceTypes.Car}`]: [{ name: 'Car', link: `/${appConfigState.localIndex}/car` }],
168
+ [`${mychoiceSdkComponents.InsuranceTypes.Home}`]: [{ name: 'Home', link: `/${appConfigState.localIndex}/home` }],
169
+ // @todo: will be used in future
170
+ // [`${InsuranceTypes.Life}`]: [{ name: 'Life', link: `/${appConfigState.localIndex}/life` }],
171
+ };
172
+ const externalPathGroup = [
173
+ { name: 'Blog', link: 'https://www.mychoice.ca/blog/' },
174
+ { name: 'About us', link: 'https://www.mychoice.ca/about-us/' },
175
+ { name: 'Contact', link: 'https://www.mychoice.ca/contact/' },
176
+ ];
177
+ // @todo: use in future.
178
+ // const loggedOutPathGroup = [
179
+ // { name: 'Login', link: '/accounts/signin' },
180
+ // { name: 'Signup', link: '/accounts/signup' },
181
+ // ];
182
+ //
183
+ // const loggedInPathGroup = [
184
+ // { name: 'My Profile', link: '/accounts/myProfile' },
185
+ // { name: 'Quotes History', link: '/accounts/quotes/history' },
186
+ // { name: 'Logout', link: '/accounts/logout' },
187
+ // ];
188
+ return {
189
+ insurancePathGroup: insurancePathGroup[insuranceType],
190
+ externalPathGroup,
191
+ // loggedOutPathGroup,
192
+ // loggedInPathGroup,
193
+ };
194
+ };
195
+
196
+ const HeaderMyChoice = ({ className, }) => {
197
+ // const isLoggedIn = true;
198
+ const { appConfigState: { insuranceType } } = mychoiceSdkStore.useStoreAppConfig();
199
+ const { externalPathGroup, insurancePathGroup } = usePathGroups(insuranceType);
200
+ return (jsxRuntime.jsx("div", { className: `${className} primary-header`, children: jsxRuntime.jsxs("div", { className: "content", children: [jsxRuntime.jsx("div", { className: "logo", children: jsxRuntime.jsx("a", { href: "https://www.mychoice.ca/", rel: "noreferrer", children: jsxRuntime.jsx("img", { src: logo, alt: "logotype" }) }) }), jsxRuntime.jsxs("div", { className: "nav-links", children: [jsxRuntime.jsx(mychoiceSdkComponents.HeaderNavGroup, { navItems: insurancePathGroup }), jsxRuntime.jsx(mychoiceSdkComponents.HeaderNavGroup, { navItems: externalPathGroup, isExternal: true })] })] }) }));
201
+ };
202
+ HeaderMyChoice.defaultProps = {
203
+ className: '',
204
+ };
205
+
206
+ const HeaderPartner = ({ className }) => {
207
+ const { partnerState } = mychoiceSdkStore.useStorePartner();
208
+ return (jsxRuntime.jsx("div", { className: `${className} primary-header-partner`, children: jsxRuntime.jsxs("div", { className: "content", children: [jsxRuntime.jsx("a", { href: partnerState.redirectUrl || 'https://www.mychoice.ca/', target: "_blank", rel: "noreferrer", children: jsxRuntime.jsx("img", { src: partnerState.logo || 'https://s3.amazonaws.com/mychoice-logos-dev/partners/newpartner/AE1C9160-F0AD-4969-BEBB-86EBFA7CF2E7.png', alt: "new-partner-logotype" }) }), jsxRuntime.jsx("div", {})] }) }));
209
+ };
210
+
211
+ var theBigLogotype = "data:image/png;base64,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";
212
+
213
+ const HeaderTheBig = ({ textBack, className, }) => (jsxRuntime.jsx("div", { className: `${className} primary-header-thebig`, children: jsxRuntime.jsxs("div", { className: "content", children: [jsxRuntime.jsx("div", { className: "logo", children: jsxRuntime.jsx("img", { src: theBigLogotype, alt: "thebig-logotype" }) }), jsxRuntime.jsx("a", { href: "https://www.thebig.ca/", target: "_blank", rel: "noreferrer", children: jsxRuntime.jsxs("div", { className: "back-button", children: [jsxRuntime.jsx("div", { className: "back-icon" }), jsxRuntime.jsx("h2", { children: textBack })] }) })] }) }));
214
+ HeaderTheBig.defaultProps = {
215
+ className: '',
216
+ };
217
+
218
+ const HeaderMyChoiceMobile = ({ className, }) => {
219
+ const { appConfigState: { insuranceType } } = mychoiceSdkStore.useStoreAppConfig();
220
+ const { externalPathGroup, insurancePathGroup } = usePathGroups(insuranceType);
221
+ const [isMenuOpen, setIsMenuOpen] = React.useState(false);
222
+ const handleMenuClick = () => {
223
+ setIsMenuOpen(!isMenuOpen);
224
+ };
225
+ // const isLoggedIn = true;
226
+ return (jsxRuntime.jsxs("div", { className: `${className} ${isMenuOpen ? 'open' : ''} primary-header-mobile`, children: [jsxRuntime.jsxs("div", { className: "content-mobile", children: [jsxRuntime.jsx("div", { className: "logo", children: jsxRuntime.jsx("a", { href: "https://www.mychoice.ca/", target: "_blank", rel: "noreferrer", children: jsxRuntime.jsx("img", { src: logo, alt: "logotype" }) }) }), jsxRuntime.jsx(mychoiceSdkComponents.ButtonMenu, { className: `${className} ${isMenuOpen ? 'is-active' : ''}`, onClick: handleMenuClick })] }), isMenuOpen && (jsxRuntime.jsx("div", { className: "menu-items", children: jsxRuntime.jsxs("div", { className: "nav-links", children: [jsxRuntime.jsx(mychoiceSdkComponents.HeaderNavGroup, { navItems: insurancePathGroup }), jsxRuntime.jsx(mychoiceSdkComponents.HeaderNavGroup, { navItems: externalPathGroup })] }) }))] }));
227
+ };
228
+ HeaderMyChoiceMobile.defaultProps = {
229
+ className: '',
230
+ };
231
+
232
+ const LoaderPrimary = () => {
233
+ const { appLoaderState } = mychoiceSdkStore.useStoreAppLoader();
234
+ return (jsxRuntime.jsxs("div", { className: "loader-wrapper", children: [!!appLoaderState.description && jsxRuntime.jsx("h4", { children: appLoaderState.description }), jsxRuntime.jsx(mychoiceSdkComponents.IconLoaderPrimary, {})] }));
235
+ };
236
+
237
+ const ModalConfirm = () => {
238
+ const { appModalState: { title, description, submitButtonText, cancelButtonText, submitCallBack, cancelCallBack, }, dispatchAppModalState, } = mychoiceSdkStore.useStoreAppModal();
239
+ const handleClick = (callBack) => () => {
240
+ if (callBack) {
241
+ callBack();
242
+ }
243
+ dispatchAppModalState({
244
+ type: mychoiceSdkStore.StoreConfigAppModalActionTypes.AppModalClose,
245
+ });
246
+ };
247
+ return (jsxRuntime.jsxs("div", { className: "modal-container confirm", children: [title && jsxRuntime.jsx("h3", { children: title }), description && jsxRuntime.jsx("p", { children: description }), jsxRuntime.jsxs("div", { className: "modal-buttons", children: [cancelButtonText && (jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { type: mychoiceSdkComponents.ButtonTypes.Button, label: cancelButtonText, category: mychoiceSdkComponents.CategoryTypes.Outlined, color: mychoiceSdkComponents.ColorTypes.Default, variant: mychoiceSdkComponents.ButtonVariantTypes.Rectangle, size: mychoiceSdkComponents.SizeTypes.Large, onClick: handleClick(cancelCallBack) })), submitButtonText && (jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { type: mychoiceSdkComponents.ButtonTypes.Button, label: submitButtonText, category: mychoiceSdkComponents.CategoryTypes.Filled, color: mychoiceSdkComponents.ColorTypes.Primary, variant: mychoiceSdkComponents.ButtonVariantTypes.Rectangle, size: mychoiceSdkComponents.SizeTypes.Large, onClick: handleClick(submitCallBack) }))] })] }));
248
+ };
249
+
250
+ const ModalMessage = () => {
251
+ const { appModalState: { title, description, submitButtonText, submitCallBack, }, dispatchAppModalState, } = mychoiceSdkStore.useStoreAppModal();
252
+ const handleOk = () => {
253
+ if (submitCallBack) {
254
+ submitCallBack();
255
+ }
256
+ else {
257
+ dispatchAppModalState({
258
+ type: mychoiceSdkStore.StoreConfigAppModalActionTypes.AppModalClose,
259
+ });
260
+ }
261
+ };
262
+ return (jsxRuntime.jsxs("div", { className: "modal-container", children: [title && jsxRuntime.jsx("h3", { children: title }), description && jsxRuntime.jsx("p", { children: description }), jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { type: mychoiceSdkComponents.ButtonTypes.Button, label: submitButtonText || 'OK', category: mychoiceSdkComponents.CategoryTypes.Filled, color: mychoiceSdkComponents.ColorTypes.Primary, variant: mychoiceSdkComponents.ButtonVariantTypes.Rectangle, size: mychoiceSdkComponents.SizeTypes.Large, onClick: handleOk })] }));
263
+ };
264
+
265
+ const ModalPostal = () => {
266
+ const [inputValue, setInputValue] = React.useState('');
267
+ const insuranceType = getInsuranceType();
268
+ const { getPostal, status, errorMessage, } = mychoiceSdkStore.useHandlerPostal(insuranceType);
269
+ const { appModalState: { title, submitButtonText, submitCallBack, }, } = mychoiceSdkStore.useStoreAppModal();
270
+ const loading = status === mychoiceSdkComponents.RequestStatusTypes.Loading;
271
+ const error = status === mychoiceSdkComponents.RequestStatusTypes.Error;
272
+ const onSubmit = (event) => {
273
+ event.preventDefault();
274
+ if (!loading) {
275
+ if (submitCallBack) {
276
+ submitCallBack();
277
+ }
278
+ else {
279
+ getPostal(mychoiceSdkComponents.postalCodeFormat(inputValue));
280
+ }
281
+ }
282
+ };
283
+ const handleChange = (event) => {
284
+ setInputValue(event.target.value);
285
+ };
286
+ return (jsxRuntime.jsxs("div", { className: "modal-container", children: [title && jsxRuntime.jsx("h3", { children: title }), jsxRuntime.jsxs("form", { onSubmit: onSubmit, children: [jsxRuntime.jsxs("div", { className: "input-block", children: [jsxRuntime.jsx("input", { className: `input-form ${mychoiceSdkComponents.SizeTypes.Large} ${error ? 'error' : ''}`, name: "postal", type: mychoiceSdkComponents.InputTypes.Text, value: mychoiceSdkComponents.formatPostalCode(inputValue), onChange: handleChange, placeholder: "A1A 1A1", maxLength: 7 }), error && jsxRuntime.jsx("p", { className: "error-message", children: errorMessage })] }), jsxRuntime.jsx("div", { className: "button-container", children: jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { className: `${loading ? 'disabled' : ''}`, type: mychoiceSdkComponents.ButtonTypes.Submit, label: !loading ? submitButtonText || 'OK' : '', category: mychoiceSdkComponents.CategoryTypes.Filled, color: mychoiceSdkComponents.ColorTypes.Primary, variant: mychoiceSdkComponents.ButtonVariantTypes.Rectangle, size: mychoiceSdkComponents.SizeTypes.Large, children: loading ? jsxRuntime.jsx(mychoiceSdkComponents.IconLoaderSecondary, {}) : undefined }) })] })] }));
287
+ };
288
+ ModalPostal.defaultProps = {
289
+ title: '',
290
+ };
291
+
292
+ const ModalFinale = () => {
293
+ // const { isLoggedIn } = useStoreClientLoggedIn();
294
+ const { appModalState: { title, description, submitButtonText, submitCallBack, }, dispatchAppModalState, } = mychoiceSdkStore.useStoreAppModal();
295
+ const handleOk = () => {
296
+ if (submitCallBack) {
297
+ submitCallBack();
298
+ }
299
+ dispatchAppModalState({
300
+ type: mychoiceSdkStore.StoreConfigAppModalActionTypes.AppModalClose,
301
+ });
302
+ };
303
+ return (jsxRuntime.jsxs("div", { className: "modal-container", children: [title && jsxRuntime.jsx("h3", { children: title }), jsxRuntime.jsxs("div", { className: "modal-content", children: [description && jsxRuntime.jsx("p", { className: "description", children: description }), jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { type: mychoiceSdkComponents.ButtonTypes.Button, label: submitButtonText || 'OK', category: mychoiceSdkComponents.CategoryTypes.Filled, color: mychoiceSdkComponents.ColorTypes.Primary, variant: mychoiceSdkComponents.ButtonVariantTypes.Rectangle, size: mychoiceSdkComponents.SizeTypes.Large, onClick: handleOk })] })] }));
304
+ };
305
+
306
+ const ModalQuoteRequest = ({ title, description, phoneNumber, }) => (jsxRuntime.jsxs("div", { className: "modal-container", children: [title && jsxRuntime.jsx("h3", { children: title }), description
307
+ && jsxRuntime.jsx("p", { children: description }), jsxRuntime.jsxs("div", { className: "modal-buttons", children: [jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { type: mychoiceSdkComponents.ButtonTypes.Button, label: "OK", category: mychoiceSdkComponents.CategoryTypes.Filled, color: mychoiceSdkComponents.ColorTypes.Primary, variant: mychoiceSdkComponents.ButtonVariantTypes.Rectangle, size: mychoiceSdkComponents.SizeTypes.Large }), phoneNumber
308
+ && (jsxRuntime.jsx("a", { target: "_blank", rel: "noreferrer noopener", href: `tel:1${phoneNumber}`, className: "phoneNumber", children: "Call the Broker" }))] })] }));
309
+
310
+ const PostalCodeDataBox = ({ title, postalCode, className }) => (jsxRuntime.jsxs("div", { className: `${className} postal-code-data-box`, children: [jsxRuntime.jsx("h2", { children: title }), jsxRuntime.jsxs("p", { children: ["Your postal code:", ' ', postalCode] })] }));
311
+ PostalCodeDataBox.defaultProps = {
312
+ title: '',
313
+ postalCode: '',
314
+ };
315
+
316
+ const StepsBox = ({ formSteps, validationHooks }) => {
317
+ const { appConfigState: { insuranceType, localIndex } } = mychoiceSdkStore.useStoreAppConfig();
318
+ const { appDeviceType } = mychoiceSdkStore.useStoreDeviceType();
319
+ const isMobile = appDeviceType === mychoiceSdkComponents.DeviceTypes.Mobile;
320
+ const navigate = reactRouterDom.useNavigate();
321
+ const { dispatchAppModalState } = mychoiceSdkStore.useStoreAppModal();
322
+ const { pathname } = reactRouterDom.useLocation();
323
+ const currentPath = pathname.split('/');
324
+ const activeIndex = formSteps.find((step) => currentPath[currentPath.length - 1] === step.path?.substring(1))?.key || 0;
325
+ const handleStepClick = (item) => () => {
326
+ if (window.location.pathname !== `/${localIndex}/${insuranceType}${item.path}`) { // ignore double click
327
+ if (activeIndex > (item.key || 0)) {
328
+ navigate(`/${localIndex}/${insuranceType}${item?.path}`);
329
+ }
330
+ else {
331
+ const validateOptions = [];
332
+ validationHooks.forEach((option, index) => {
333
+ if ((item.key || 0) > index) {
334
+ validateOptions.push(option.validateOptions);
335
+ }
336
+ });
337
+ const formValidations = [];
338
+ if (validateOptions.length) {
339
+ validateOptions.forEach((option, index) => {
340
+ const isValid = !option.isValid ? option.validate(false) : option.isValid;
341
+ formValidations.push({ isValid, validate: option.validate, index });
342
+ });
343
+ }
344
+ const formValidated = formValidations.find((option) => !option.isValid);
345
+ if (formValidated && !formValidated.isValid) {
346
+ navigate(`/${localIndex}/${insuranceType}${formSteps[(formValidated.index || 0)]?.path}`);
347
+ dispatchAppModalState({
348
+ type: mychoiceSdkStore.StoreConfigAppModalActionTypes.AppModalMessageModal,
349
+ payload: {
350
+ title: 'Please enter missing values of required fields',
351
+ },
352
+ });
353
+ }
354
+ else if (activeIndex < formSteps.length) {
355
+ navigate(`/${localIndex}/${insuranceType}${item.path}`);
356
+ }
357
+ }
358
+ }
359
+ };
360
+ return (jsxRuntime.jsx("ol", { className: "navigation-steps-container", children: !isMobile ? formSteps?.map((item, index) => {
361
+ let cls;
362
+ switch (true) {
363
+ case activeIndex > index:
364
+ cls = 'done';
365
+ break;
366
+ case activeIndex === index:
367
+ cls = 'in-progress';
368
+ break;
369
+ default: cls = 'todo';
370
+ }
371
+ return (
372
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
373
+ jsxRuntime.jsx("div", { onKeyDown: handleStepClick(item), onClick: handleStepClick(item), className: "navigation-step-container", children: jsxRuntime.jsx(mychoiceSdkComponents.Step, { className: cls, item: item, index: index }) }, `${index}-${item?.title}`));
374
+ }) : jsxRuntime.jsx(mychoiceSdkComponents.Step, { item: formSteps[activeIndex], index: activeIndex, itemsCount: formSteps.length, isMobile: true }) }));
375
+ };
376
+ StepsBox.defaultProps = {
377
+ partnerId: '',
378
+ className: '',
379
+ activeIndex: 0,
380
+ };
381
+
382
+ const ButtonsBox = ({ formSteps, validationHooks, clearForm, }) => {
383
+ const { pathname } = reactRouterDom.useLocation();
384
+ const navigate = reactRouterDom.useNavigate();
385
+ const { appConfigState } = mychoiceSdkStore.useStoreAppConfig();
386
+ const { appDeviceType } = mychoiceSdkStore.useStoreDeviceType();
387
+ const { dispatchAppModalState } = mychoiceSdkStore.useStoreAppModal();
388
+ const { appType, insuranceType, localIndex } = appConfigState;
389
+ const isMobile = appDeviceType === mychoiceSdkComponents.DeviceTypes.Mobile;
390
+ const isTheBig = appType === mychoiceSdkComponents.AppTypes.TheBig;
391
+ const currentPath = pathname.split('/');
392
+ const activeIndex = formSteps.find((step) => currentPath[currentPath.length - 1] === step.path?.substring(1))?.key || 0;
393
+ const onForwardClick = () => {
394
+ const { validateOptions: { validate, isValid } } = validationHooks[activeIndex] || { validateOptions: { isValid: true } };
395
+ const formIsValid = !isValid ? validate && validate() : isValid;
396
+ if (activeIndex < formSteps.length && formIsValid) {
397
+ navigate(`/${localIndex}/${insuranceType}${formSteps[activeIndex + 1].path}`);
398
+ }
399
+ };
400
+ const onBackClick = () => {
401
+ if (activeIndex > 0) {
402
+ navigate(`/${localIndex}/${insuranceType}${formSteps[activeIndex - 1].path}`);
403
+ }
404
+ };
405
+ const onFinishClick = () => {
406
+ dispatchAppModalState({
407
+ type: mychoiceSdkStore.StoreConfigAppModalActionTypes.AppModalFinaleModal,
408
+ payload: {
409
+ title: 'Thank You!',
410
+ description: 'Thanks for using My Choice to compare car insurance rates.',
411
+ submitCallBack: () => {
412
+ navigate(`/${localIndex}/${insuranceType}${formSteps[0].path}`);
413
+ if (clearForm) {
414
+ clearForm();
415
+ }
416
+ },
417
+ },
418
+ });
419
+ };
420
+ const onClearClick = () => {
421
+ dispatchAppModalState({
422
+ type: mychoiceSdkStore.StoreConfigAppModalActionTypes.AppModalConfirmModal,
423
+ payload: {
424
+ title: 'Are you sure you want to clear the form? This will erase all form data you have input.',
425
+ cancelButtonText: 'Cancel',
426
+ submitButtonText: 'Confirm',
427
+ submitCallBack: () => {
428
+ if (clearForm) {
429
+ clearForm();
430
+ }
431
+ },
432
+ },
433
+ });
434
+ };
435
+ return (jsxRuntime.jsxs("div", { className: "buttons-box", children: [activeIndex === 0 ? (jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { size: isMobile ? mychoiceSdkComponents.SizeTypes.Small : mychoiceSdkComponents.SizeTypes.Medium, category: mychoiceSdkComponents.CategoryTypes.Outlined, color: mychoiceSdkComponents.ColorTypes.Secondary, variant: mychoiceSdkComponents.ButtonVariantTypes.Circle, className: "button-arrow button-with-text", onClick: onClearClick, children: jsxRuntime.jsx("span", { children: "Clear Form" }) }))
436
+ : (jsxRuntime.jsx(mychoiceSdkComponents.ButtonArrow, { direction: mychoiceSdkComponents.DirectionTypes.Left, category: mychoiceSdkComponents.CategoryTypes.Outlined, color: mychoiceSdkComponents.ColorTypes.Secondary, size: isMobile ? mychoiceSdkComponents.SizeTypes.Small : mychoiceSdkComponents.SizeTypes.Medium, onClick: onBackClick })), activeIndex === formSteps.length - 1 ? (jsxRuntime.jsx(jsxRuntime.Fragment, { children: !isTheBig && (jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { size: isMobile ? mychoiceSdkComponents.SizeTypes.Small : mychoiceSdkComponents.SizeTypes.Medium, category: mychoiceSdkComponents.CategoryTypes.Filled, color: mychoiceSdkComponents.ColorTypes.Secondary, variant: mychoiceSdkComponents.ButtonVariantTypes.Circle, className: "button-arrow button-with-text", onClick: onFinishClick, children: jsxRuntime.jsx("span", { children: "Finish" }) })) })) : (jsxRuntime.jsx(mychoiceSdkComponents.ButtonArrow, { direction: mychoiceSdkComponents.DirectionTypes.Right, category: mychoiceSdkComponents.CategoryTypes.Filled, color: mychoiceSdkComponents.ColorTypes.Secondary, size: isMobile ? mychoiceSdkComponents.SizeTypes.Small : mychoiceSdkComponents.SizeTypes.Medium, onClick: onForwardClick }))] }));
437
+ };
438
+ ButtonsBox.defaultProps = {
439
+ isMobile: false,
440
+ activeIndex: 0,
441
+ };
442
+
443
+ const NavigationTop = ({ title, postalCode, validationHooks, formSteps, clearForm, }) => {
444
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
445
+ const isTheBig = appType === mychoiceSdkComponents.AppTypes.TheBig;
446
+ return (jsxRuntime.jsx("div", { className: "navigation-container", children: jsxRuntime.jsxs("div", { className: "content", children: [jsxRuntime.jsx(PostalCodeDataBox, { className: isTheBig ? 'thebig' : '', title: title, postalCode: postalCode }), jsxRuntime.jsx(StepsBox, { formSteps: formSteps, validationHooks: validationHooks }), jsxRuntime.jsx(ButtonsBox, { formSteps: formSteps, validationHooks: validationHooks, clearForm: clearForm })] }) }));
447
+ };
448
+ NavigationTop.defaultProps = {
449
+ isMobile: false,
450
+ activeIndex: 0,
451
+ };
452
+
453
+ const NavigationBottom = ({ createItem, validateForm, formSteps, className, itemCount = 1, maxItemCount = 5, formIsValid, }) => {
454
+ const { pathname } = reactRouterDom.useLocation();
455
+ const navigate = reactRouterDom.useNavigate();
456
+ const { appConfigState } = mychoiceSdkStore.useStoreAppConfig();
457
+ const { dispatchAppModalState } = mychoiceSdkStore.useStoreAppModal();
458
+ const currentPath = pathname.split('/');
459
+ const activeIndex = formSteps.find((step) => currentPath[currentPath.length - 1] === step.path?.substring(1))?.key || 0;
460
+ const onForwardClick = () => {
461
+ const isValid = !formIsValid ? validateForm && validateForm() : formIsValid;
462
+ if (!isValid) {
463
+ dispatchAppModalState({
464
+ type: mychoiceSdkStore.StoreConfigAppModalActionTypes.AppModalMessageModal,
465
+ payload: {
466
+ title: 'Please enter missing values of required fields',
467
+ },
468
+ });
469
+ }
470
+ if (activeIndex < formSteps.length && isValid) {
471
+ navigate(`/${appConfigState.localIndex}/${appConfigState.insuranceType}${formSteps[activeIndex + 1].path}`);
472
+ }
473
+ };
474
+ const onBackClick = () => {
475
+ if (activeIndex > 0) {
476
+ navigate(`/${appConfigState.localIndex}/${appConfigState.insuranceType}${formSteps[activeIndex - 1].path}`);
477
+ }
478
+ };
479
+ return (jsxRuntime.jsxs("div", { className: `${className} navigation-bottom`, children: [!!activeIndex && (jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { className: "previous", label: "Previous", type: mychoiceSdkComponents.ButtonTypes.Button, category: mychoiceSdkComponents.CategoryTypes.Outlined, color: mychoiceSdkComponents.ColorTypes.Secondary, variant: mychoiceSdkComponents.ButtonVariantTypes.Rectangle, size: mychoiceSdkComponents.SizeTypes.Medium, onClick: onBackClick })), itemCount < maxItemCount && createItem && (jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { className: "add-item", label: `Add a ${formSteps[activeIndex].title?.split(' ')[0]}`, type: mychoiceSdkComponents.ButtonTypes.Button, category: mychoiceSdkComponents.CategoryTypes.Filled, color: mychoiceSdkComponents.ColorTypes.Default, variant: mychoiceSdkComponents.ButtonVariantTypes.Rectangle, size: mychoiceSdkComponents.SizeTypes.Medium, onClick: createItem })), jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { className: "next", label: "Next", type: mychoiceSdkComponents.ButtonTypes.Button, category: mychoiceSdkComponents.CategoryTypes.Filled, color: mychoiceSdkComponents.ColorTypes.Secondary, variant: mychoiceSdkComponents.ButtonVariantTypes.Rectangle, size: mychoiceSdkComponents.SizeTypes.Medium, onClick: onForwardClick })] }));
480
+ };
481
+ NavigationBottom.defaultProps = {
482
+ className: '',
483
+ activeIndex: 0,
484
+ };
485
+
486
+ const NavigationBottomTheBig = ({ createItem, validateForm, formSteps, className, itemCount = 1, maxItemCount = 5, formIsValid, }) => {
487
+ const { pathname } = reactRouterDom.useLocation();
488
+ const navigate = reactRouterDom.useNavigate();
489
+ const { appConfigState } = mychoiceSdkStore.useStoreAppConfig();
490
+ const { dispatchAppModalState } = mychoiceSdkStore.useStoreAppModal();
491
+ const currentPath = pathname.split('/');
492
+ const activeIndex = formSteps.find((step) => currentPath[currentPath.length - 1] === step.path?.substring(1))?.key || 0;
493
+ const onForwardClick = () => {
494
+ const isValid = !formIsValid ? validateForm && validateForm() : formIsValid;
495
+ if (!isValid) {
496
+ dispatchAppModalState({
497
+ type: mychoiceSdkStore.StoreConfigAppModalActionTypes.AppModalMessageModal,
498
+ payload: {
499
+ title: 'Please enter missing values of required fields',
500
+ },
501
+ });
502
+ }
503
+ if (activeIndex < formSteps.length && isValid) {
504
+ navigate(`/${appConfigState.localIndex}/${appConfigState.insuranceType}${formSteps[activeIndex + 1].path}`);
505
+ }
506
+ };
507
+ const onBackClick = () => {
508
+ if (activeIndex > 0) {
509
+ navigate(`/${appConfigState.localIndex}/${appConfigState.insuranceType}${formSteps[activeIndex - 1].path}`);
510
+ }
511
+ };
512
+ return (jsxRuntime.jsxs("div", { className: `${className} navigation-bottom-thebig`, children: [itemCount < maxItemCount && createItem && (jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { className: "add-item", label: `Add a ${formSteps[activeIndex].title?.split(' ')[0]}`, type: mychoiceSdkComponents.ButtonTypes.Button, category: mychoiceSdkComponents.CategoryTypes.Filled, color: mychoiceSdkComponents.ColorTypes.Default, variant: mychoiceSdkComponents.ButtonVariantTypes.Rectangle, size: mychoiceSdkComponents.SizeTypes.Medium, onClick: createItem })), jsxRuntime.jsxs("div", { className: "navigation-buttons", children: [!!activeIndex && (jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { className: "previous", label: "Previous", type: mychoiceSdkComponents.ButtonTypes.Button, category: mychoiceSdkComponents.CategoryTypes.Outlined, color: mychoiceSdkComponents.ColorTypes.Primary, variant: mychoiceSdkComponents.ButtonVariantTypes.Rectangle, size: mychoiceSdkComponents.SizeTypes.Medium, onClick: onBackClick })), jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { className: "next", label: "Next", type: mychoiceSdkComponents.ButtonTypes.Button, category: mychoiceSdkComponents.CategoryTypes.Filled, color: mychoiceSdkComponents.ColorTypes.Primary, variant: mychoiceSdkComponents.ButtonVariantTypes.Rectangle, size: mychoiceSdkComponents.SizeTypes.Medium, onClick: onForwardClick })] })] }));
513
+ };
514
+ NavigationBottomTheBig.defaultProps = {
515
+ activeIndex: 0,
516
+ };
517
+
518
+ const NavigationTab = React__default["default"].memo((props) => {
519
+ const { className, name, addButtonLabel, items, selectItem, removeItem, createItem, activeItemIndex = 0, maxItemCount = 5, readOnly, } = props;
520
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
521
+ const isThebig = appType === mychoiceSdkComponents.AppTypes.TheBig;
522
+ const handleButtonClick = (index) => () => {
523
+ if (selectItem) {
524
+ selectItem(index);
525
+ }
526
+ };
527
+ const handleIconClick = (index) => (event) => {
528
+ event.stopPropagation();
529
+ if (removeItem) {
530
+ removeItem(index);
531
+ }
532
+ };
533
+ const handleArrowClick = (direction) => {
534
+ if (selectItem) {
535
+ if (direction === mychoiceSdkComponents.DirectionTypes.Left) {
536
+ selectItem(((activeItemIndex - 1) > -1) ? activeItemIndex - 1 : 0);
537
+ }
538
+ if (direction === mychoiceSdkComponents.DirectionTypes.Right) {
539
+ selectItem(((activeItemIndex + 1) < maxItemCount) ? activeItemIndex + 1 : maxItemCount);
540
+ }
541
+ }
542
+ };
543
+ const reduceCount = activeItemIndex === 4 ? 2 : 1;
544
+ return (jsxRuntime.jsxs("div", { className: `navigation-tab-box ${className}`, children: [(activeItemIndex > 1) && jsxRuntime.jsx(mychoiceSdkComponents.ButtonTabArrow, { onClick: () => handleArrowClick(mychoiceSdkComponents.DirectionTypes.Left) }), (activeItemIndex <= items.length - 2
545
+ && activeItemIndex < 3
546
+ && ((items.length > 2 && createItem) || (items.length > 3 && !createItem)))
547
+ && jsxRuntime.jsx(mychoiceSdkComponents.ButtonTabArrow, { onClick: () => handleArrowClick(mychoiceSdkComponents.DirectionTypes.Right), direction: mychoiceSdkComponents.DirectionTypes.Right }), jsxRuntime.jsxs("div", { className: "navigation-tab-container", style: { marginLeft: `${activeItemIndex > 1 ? `-${(activeItemIndex - reduceCount) * 9.875}rem` : '0'}` }, children: [items.map((tab, index) => (jsxRuntime.jsx(mychoiceSdkComponents.ButtonTab, { className: `${activeItemIndex === index ? 'active-tab' : 'inactive-tab'} ${isThebig ? 'thebig-bold' : ''}`, label: tab.name, buttonClick: handleButtonClick(index), iconClick: handleIconClick(index), selfDelete: index !== 0 && !readOnly }, `${name}-${index}`))), (items.length < maxItemCount && createItem) && (jsxRuntime.jsx(mychoiceSdkComponents.ButtonTab, { className: isThebig ? 'add-thebig-medium' : 'add', label: addButtonLabel, buttonClick: createItem, selfDelete: false }))] })] }));
548
+ }, (prevProps, nextProps) => !((prevProps.items !== nextProps.items
549
+ || prevProps.activeItemIndex !== nextProps.activeItemIndex)));
550
+ NavigationTab.defaultProps = {
551
+ className: '',
552
+ items: [],
553
+ readOnly: false,
554
+ addButtonLabel: '',
555
+ };
556
+
557
+ const NavigationTabMobile = React__default["default"].memo((props) => {
558
+ const { items, addButtonLabel, selectItem, removeItem, createItem, activeItemIndex = 0, isOpen, openListClick, maxItemCount = 5, } = props;
559
+ const handleButtonClick = (index) => () => {
560
+ if (selectItem) {
561
+ selectItem(index);
562
+ }
563
+ };
564
+ const handleIconClick = (index) => (event) => {
565
+ event.stopPropagation();
566
+ if (removeItem) {
567
+ removeItem(index);
568
+ }
569
+ };
570
+ return (jsxRuntime.jsxs("div", { className: "navigation-tab-box", children: [jsxRuntime.jsxs("button", { type: mychoiceSdkComponents.ButtonTypes.Button, className: "navigation-tab-selected", onClick: openListClick, children: [jsxRuntime.jsx("h4", { children: items[activeItemIndex].name }), jsxRuntime.jsx(mychoiceSdkComponents.IconDropdownArrow, { className: isOpen ? 'rotated' : '' })] }), isOpen && (jsxRuntime.jsxs("div", { className: "navigation-tab-container-mobile", children: [items.map((tab, index) => (jsxRuntime.jsx(mychoiceSdkComponents.ButtonTabMobile, { label: tab.name, buttonClick: handleButtonClick(index), iconClick: handleIconClick(index), selfDelete: index !== 0 }, `${index}`))), (items.length < maxItemCount) && (jsxRuntime.jsx(mychoiceSdkComponents.ButtonTabMobile, { className: "add", label: addButtonLabel, buttonClick: createItem, selfDelete: false }))] }))] }));
571
+ }, (prevProps, nextProps) => !((prevProps.items !== nextProps.items
572
+ || prevProps.activeItemIndex !== nextProps.activeItemIndex
573
+ || prevProps.isOpen !== nextProps.isOpen)));
574
+ NavigationTabMobile.defaultProps = {
575
+ className: '',
576
+ items: [],
577
+ };
578
+
579
+ const formSteps = {
580
+ [mychoiceSdkComponents.InsuranceTypes.Car]: [
581
+ {
582
+ key: 0, path: '/', name: 'Step 1', title: 'Vehicle Info', icon: mychoiceSdkComponents.NavigationCar({}),
583
+ },
584
+ {
585
+ key: 1, path: '/driver', name: 'Step 2', title: 'Driver Info', icon: mychoiceSdkComponents.NavigationPerson({}),
586
+ },
587
+ {
588
+ key: 2, path: '/discount', name: 'Step 3', title: 'Discount Info', icon: mychoiceSdkComponents.NavigationDiscount({}),
589
+ },
590
+ {
591
+ key: 3, path: '/quotes', name: 'Step 4', title: 'Your Quotes', icon: mychoiceSdkComponents.NavigationQuotes({}),
592
+ },
593
+ ],
594
+ [mychoiceSdkComponents.InsuranceTypes.Home]: [
595
+ {
596
+ key: 0, path: '/', name: 'Step 1', title: 'Your Address', icon: mychoiceSdkComponents.NavigationAddress({}),
597
+ },
598
+ {
599
+ key: 1, path: '/applicant', name: 'Step 2', title: 'Applicant Info', icon: mychoiceSdkComponents.NavigationPerson({}),
600
+ },
601
+ {
602
+ key: 2, path: '/property', name: 'Step 3', title: 'Property Info', icon: mychoiceSdkComponents.NavigationProperty({}),
603
+ },
604
+ {
605
+ key: 3, path: '/discount', name: 'Step 4', title: 'Discount Info', icon: mychoiceSdkComponents.NavigationDiscount({}),
606
+ },
607
+ {
608
+ key: 4, path: '/quotes', name: 'Step 5', title: 'Your Quotes', icon: mychoiceSdkComponents.NavigationQuotes({}),
609
+ },
610
+ ],
611
+ };
612
+
613
+ const getInsuranceType = () => {
614
+ const pathParts = window.location.pathname.split('/');
615
+ if (pathParts.includes('car')) {
616
+ return mychoiceSdkComponents.InsuranceTypes.Car;
617
+ }
618
+ if (pathParts.includes('home')) {
619
+ return mychoiceSdkComponents.InsuranceTypes.Home;
620
+ }
621
+ return mychoiceSdkComponents.InsuranceTypes.Car;
622
+ };
623
+
624
+ const AppModalWrapper = () => {
625
+ const { appModalState } = mychoiceSdkStore.useStoreAppModal();
626
+ switch (appModalState.modalType) {
627
+ case mychoiceSdkComponents.ModalTypes.MessageModal:
628
+ return (jsxRuntime.jsx(ModalMessage, {}));
629
+ case mychoiceSdkComponents.ModalTypes.ConfirmModal:
630
+ return (jsxRuntime.jsx(ModalConfirm, {}));
631
+ case mychoiceSdkComponents.ModalTypes.PostalModal:
632
+ return (jsxRuntime.jsx(ModalPostal, {}));
633
+ case mychoiceSdkComponents.ModalTypes.FinaleModal:
634
+ return (jsxRuntime.jsx(ModalFinale, {}));
635
+ default:
636
+ return null;
637
+ }
638
+ };
639
+ const AppModal = () => {
640
+ const { appModalState } = mychoiceSdkStore.useStoreAppModal();
641
+ const insuranceType = getInsuranceType();
642
+ if (appModalState.isOpen && document.location.pathname.indexOf(insuranceType) !== -1) {
643
+ return (jsxRuntime.jsx("div", { className: "app-modal", children: jsxRuntime.jsx(AppModalWrapper, {}) }));
644
+ }
645
+ return null;
646
+ };
647
+
648
+ const AppHeader = () => {
649
+ const { appConfigState: { appType, localIndex } } = mychoiceSdkStore.useStoreAppConfig();
650
+ const { appDeviceType } = mychoiceSdkStore.useStoreDeviceType();
651
+ if (appType) {
652
+ return (jsxRuntime.jsxs("div", { className: "app-header", children: [appType === mychoiceSdkComponents.AppTypes.TheBig && jsxRuntime.jsx(HeaderTheBig, { textBack: "home" }), appType === mychoiceSdkComponents.AppTypes.MyChoice
653
+ && (localIndex !== mychoiceSdkComponents.defaultLocalIndex
654
+ ? jsxRuntime.jsx(HeaderPartner, {})
655
+ : (jsxRuntime.jsx(jsxRuntime.Fragment, { children: appDeviceType === mychoiceSdkComponents.DeviceTypes.Desktop
656
+ ? jsxRuntime.jsx(HeaderMyChoice, {})
657
+ : jsxRuntime.jsx(HeaderMyChoiceMobile, {}) })))] }));
658
+ }
659
+ return null;
660
+ };
661
+
662
+ const RouteWrapperPublic = (props) => {
663
+ const { children } = props;
664
+ const { appConfigState } = mychoiceSdkStore.useStoreAppConfig();
665
+ if (appConfigState.isReady) {
666
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: children }));
667
+ }
668
+ return null;
669
+ };
670
+
671
+ const getVehicleYearRange = () => {
672
+ const currentDate = new Date();
673
+ const vehicleYear = [];
674
+ for (let year = (currentDate.getFullYear()); year >= 2001; year -= 1) {
675
+ vehicleYear.push({ name: `${year}`, value: `${year}` });
676
+ }
677
+ vehicleYear.push({ name: '2000 or older', value: '2000' });
678
+ return vehicleYear;
679
+ };
680
+ const getRecommendedRange = (distanceDaily, distanceBusiness) => {
681
+ let kmEachDay = +distanceDaily;
682
+ if (distanceBusiness && (+distanceBusiness > +distanceDaily)) {
683
+ kmEachDay = +distanceBusiness;
684
+ }
685
+ switch (true) {
686
+ case kmEachDay === 1:
687
+ return 8000;
688
+ case ((kmEachDay >= 2) && (kmEachDay <= 10)):
689
+ return 10000;
690
+ case ((kmEachDay >= 15) && (kmEachDay <= 20)):
691
+ return 15000;
692
+ case ((kmEachDay >= 30) && (kmEachDay <= 40)):
693
+ return 20000;
694
+ case ((kmEachDay >= 50) && (kmEachDay <= 80)):
695
+ return 30000;
696
+ case ((kmEachDay >= 90) && (kmEachDay <= 100)):
697
+ return 50000;
698
+ case kmEachDay === 150:
699
+ return 60000;
700
+ case kmEachDay === 200:
701
+ return 80000;
702
+ case kmEachDay === 250:
703
+ return 100000;
704
+ case kmEachDay === 300:
705
+ return 150000;
706
+ case kmEachDay === 350:
707
+ return 200000;
708
+ case kmEachDay === 400:
709
+ return 250000;
710
+ default:
711
+ return kmEachDay;
712
+ }
713
+ };
714
+
715
+ const getSelectedOption = (options, value) => {
716
+ if (typeof value === 'boolean') {
717
+ return value ? options[0].value : options[1].value;
718
+ }
719
+ return options.find((option) => option.value === value)?.value;
720
+ };
721
+ const getErrorMessage = (value, inValidation = false, message = '') => {
722
+ if (inValidation) {
723
+ return !value ? 'This field is required.' : message;
724
+ }
725
+ return '';
726
+ };
727
+ const getDateErrorMessage = (values, inValidation = false) => {
728
+ const emptyValues = values.filter((value) => !value);
729
+ if (inValidation) {
730
+ if (emptyValues.length > 1) {
731
+ return 'These fields are required.';
732
+ }
733
+ if (emptyValues.length === 1) {
734
+ return 'This field is required.';
735
+ }
736
+ }
737
+ return '';
738
+ };
739
+ const formatPhoneObject = (phone) => {
740
+ const phoneToArray = (phone || mychoiceSdkComponents.defaultBrokerPhone).split(',');
741
+ const onlyNumbers = phoneToArray[0].replace(/\D/g, '');
742
+ let phoneNumber;
743
+ if (onlyNumbers.length < 11) {
744
+ phoneNumber = `1${onlyNumbers}`;
745
+ }
746
+ else {
747
+ phoneNumber = onlyNumbers;
748
+ }
749
+ const phoneToNumbers = Number(phoneNumber).toString();
750
+ const phoneWithoutSpecialKey = phoneToNumbers.length > 10
751
+ ? phoneToNumbers.replace(/(\d{1})(\d{3})(\d{3})(\d{4})/, '$1-$2-$3-$4')
752
+ : phoneToNumbers.replace(/(\d{1})(\d{3})(\d{3})(\d{3})/, '$1-$2-$3-$4');
753
+ const title = phoneToArray.length < 2 ? phoneWithoutSpecialKey : `${phoneWithoutSpecialKey} x${phoneToArray[1]}`;
754
+ const specialKeys = phoneToArray[1] ? `,${phoneToArray[1]}` : '';
755
+ return {
756
+ number: phoneWithoutSpecialKey,
757
+ title,
758
+ specialKeys,
759
+ };
760
+ };
761
+ const formatTitleToCapital = (name) => name.replace(/-/g, ' ')
762
+ .replace(/\+/g, ' ').replace(/(\b[a-z](?!\s))/g, (letter) => letter.toUpperCase());
763
+ const capitalize = (text) => text.charAt(0).toUpperCase() + text.slice(1);
764
+
765
+ const BlockCarInfo = () => {
766
+ const { status: statusMake, getVehicleMake, vehicleMakeList = [] } = mychoiceSdkStore.useHandlerCarMake();
767
+ const { status: statusModel, getVehicleModel, vehicleModelList = [] } = mychoiceSdkStore.useHandlerCarModel();
768
+ const { vehicleState, dispatchVehicleState } = mychoiceSdkStore.useStoreFormCarVehicle();
769
+ const { year: currentYear, make: currentMake, model: currentModel, } = vehicleState.items[vehicleState.activeIndex];
770
+ const yearIsValid = !currentYear || Number(currentYear) > 2000;
771
+ const handleVehicleYearChange = ({ value }) => {
772
+ if (value) {
773
+ dispatchVehicleState({
774
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarVehicleYearSet,
775
+ payload: { year: value },
776
+ });
777
+ getVehicleMake(value);
778
+ }
779
+ };
780
+ const handleVehicleMakeChange = ({ value }) => {
781
+ if (value) {
782
+ dispatchVehicleState({
783
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarVehicleMakeSet,
784
+ payload: { make: value },
785
+ });
786
+ getVehicleModel(currentYear, value);
787
+ }
788
+ };
789
+ const handleVehicleModelChange = ({ value }) => {
790
+ if (value) {
791
+ dispatchVehicleState({
792
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarVehicleModelSet,
793
+ payload: { model: value },
794
+ });
795
+ }
796
+ };
797
+ mychoiceSdkComponents.useEffectOnce(() => {
798
+ if (currentYear) {
799
+ getVehicleMake(currentYear);
800
+ }
801
+ if (currentMake) {
802
+ getVehicleModel(currentYear, currentMake);
803
+ }
804
+ });
805
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(SelectFormBox, { options: getVehicleYearRange(), name: "carYear", title: "Car Year", placeholder: "Select Year", description: "Every car is different, so for insurers to accurately cover, repair, or replace your vehicle, they need to know the make, model, age, body type, and vehicle history. Each factor will raise or lower your premium\u2014an older vehicle is typically more affordable to repair, for example, since cars lose value each year.", error: !currentYear && vehicleState.inValidation, errorMessage: !yearIsValid ? mychoiceSdkComponents.yearMessage : getErrorMessage(currentYear, vehicleState.inValidation), defaultValue: currentYear, autoSelectIfValueIsOutOfOptions: false, onChange: handleVehicleYearChange }), !!vehicleMakeList.length
806
+ && yearIsValid
807
+ && statusMake === mychoiceSdkComponents.RequestStatusTypes.Success
808
+ && (jsxRuntime.jsx(SelectFormBox, { options: vehicleMakeList, name: "carMakes", title: "Car Manufacturer", placeholder: "Select a Make", description: "The manufacturer of your vehicle is a huge influence on your insurance premium, but it isn\u2019t the only consideration. Some car manufacturers include security features that may qualify for discounts, like anti-theft protection or anti-lock brakes. Insurers also consider repair, risk, injury, and retail prices. If you do not see your vehicle on our list, call us for a telephonic quote.", error: !currentMake && vehicleState.inValidation, errorMessage: getErrorMessage(currentMake, vehicleState.inValidation), defaultValue: currentMake, autoSelectIfValueIsOutOfOptions: false, onChange: handleVehicleMakeChange })), vehicleModelList.length > 0
809
+ && currentMake
810
+ && yearIsValid
811
+ && statusModel === mychoiceSdkComponents.RequestStatusTypes.Success
812
+ && (jsxRuntime.jsx(SelectFormBox, { options: vehicleModelList, name: "carModel", title: "Car Model", placeholder: "Select a Model", description: "Insurers use the model to calculate insurance premiums. It may not significantly impact basic liability, but it does influence collision and comprehensive car insurance premiums. Safety features are also pivotal. Rear-view cameras and anti-theft devices decrease the likelihood of a claim, and larger cars risk more damage if you do have an accident. If you do not see your vehicle on our list, call us for a telephonic quote.", error: !currentModel && vehicleState.inValidation, errorMessage: getErrorMessage(currentModel, vehicleState.inValidation), defaultValue: currentModel, autoSelectIfValueIsOutOfOptions: false, onChange: handleVehicleModelChange }))] }));
813
+ };
814
+
815
+ const BlockCarConditionInfo = () => {
816
+ const { vehicleState, dispatchVehicleState } = mychoiceSdkStore.useStoreFormCarVehicle();
817
+ const { year, condition, leased, winterTires, parkingLocation, primaryUse, distanceDaily, distanceBusiness, distanceYearly, purchaseYear, purchaseMonth, purchaseDay, } = vehicleState.items[vehicleState.activeIndex];
818
+ // eslint-disable-next-line max-len
819
+ const primaryUseHintMessage = primaryUse === 'business' ? 'Please choose "Business" only if your vehicle is used primarily for work (sales representatives, realtors, consultants, etc.). If you drive back and forth to work or use your vehicle occasionally for work, please select "Personal".' : '';
820
+ const defaultPurchaseDate = {
821
+ day: purchaseDay,
822
+ month: purchaseMonth,
823
+ year: purchaseYear,
824
+ };
825
+ const handleConditionChange = ({ value }) => {
826
+ dispatchVehicleState({
827
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarVehicleConditionSelect,
828
+ payload: { condition: value },
829
+ });
830
+ };
831
+ const handleLeasedChange = ({ value }) => {
832
+ dispatchVehicleState({
833
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarVehicleCarStatusSelect,
834
+ payload: { leased: value },
835
+ });
836
+ };
837
+ const handlePurchaseDateChange = (dateType) => ({ value }) => {
838
+ if (dateType === mychoiceSdkComponents.DateTypes.Day) {
839
+ dispatchVehicleState({
840
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarVehiclePurchaseDaySelect,
841
+ payload: { purchaseDay: value },
842
+ });
843
+ }
844
+ if (dateType === mychoiceSdkComponents.DateTypes.Month) {
845
+ dispatchVehicleState({
846
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarVehiclePurchaseMonthSelect,
847
+ payload: { purchaseMonth: value },
848
+ });
849
+ }
850
+ if (dateType === mychoiceSdkComponents.DateTypes.Year) {
851
+ dispatchVehicleState({
852
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarVehiclePurchaseYearSelect,
853
+ payload: { purchaseYear: value },
854
+ });
855
+ }
856
+ };
857
+ const handleWinterTiresChange = ({ value }) => {
858
+ dispatchVehicleState({
859
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarVehicleWinterTiresSelect,
860
+ payload: { winterTires: value },
861
+ });
862
+ };
863
+ const handleCarParkingLocationChange = ({ value }) => {
864
+ dispatchVehicleState({
865
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarParkingLocationSelect,
866
+ payload: { parkingLocation: value },
867
+ });
868
+ };
869
+ const handleCarUsageChange = ({ value }) => {
870
+ dispatchVehicleState({
871
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarVehicleUsageSelect,
872
+ payload: { primaryUse: value },
873
+ });
874
+ };
875
+ const handleCarDailyDistanceChange = ({ value }) => {
876
+ dispatchVehicleState({
877
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarDailyDistanceSelect,
878
+ payload: { distanceDaily: value },
879
+ });
880
+ dispatchVehicleState({
881
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarYearlyDistanceSelect,
882
+ payload: { distanceYearly: `${getRecommendedRange(value, primaryUse === mychoiceSdkComponents.VehiclePrimaryUseTypes.Business ? distanceBusiness : 1)}` },
883
+ });
884
+ };
885
+ const handleCarBusinessDailyDistanceChange = ({ value }) => {
886
+ dispatchVehicleState({
887
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarBusinessDistanceSelect,
888
+ payload: { distanceBusiness: value },
889
+ });
890
+ dispatchVehicleState({
891
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarYearlyDistanceSelect,
892
+ payload: { distanceYearly: `${getRecommendedRange(value, primaryUse === mychoiceSdkComponents.VehiclePrimaryUseTypes.Business ? distanceBusiness : 1)}` },
893
+ });
894
+ };
895
+ const handleCarYearlyDistanceChange = ({ value }) => {
896
+ dispatchVehicleState({
897
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarYearlyDistanceSelect,
898
+ payload: { distanceYearly: value },
899
+ });
900
+ };
901
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.carCondition, onChange: handleConditionChange, name: "condition", defaultValue: getSelectedOption(mychoiceSdkComponents.carCondition, condition), description: "Used cars are usually cheaper to insure than new ones because of the depreciation. The cost to replace this vehicle is typically less expensive and insurers will account for the condition of the car when giving you a rate.", title: "Was this car new or used when you bought it?" }), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.carStatus, onChange: handleLeasedChange, name: "leased", defaultValue: getSelectedOption(mychoiceSdkComponents.carStatus, leased), description: "You can own or lease a car. Ownership means that you bought the vehicle or are currently financing it. Leasing is renting it under a long-term contract. In this case, the leasing company maintains ownership of the vehicle, which you will see clearly on your insurance policy.", title: "Is this car owned/financed or leased?" }), jsxRuntime.jsx(DateSelectFormBox, { name: "purchaseDate", dateNames: ['purchaseYear', 'purchaseMonth'], onDateChange: handlePurchaseDateChange, defaultValue: defaultPurchaseDate, title: "When did you buy this car?", description: "Insurers generally consider your age and driving experience when calculating a vehicle insurance quote. The safest drivers are often those who are over thirty, but each insurer will have their own parameters. The youngest and oldest drivers have the greatest liability reflected in their premiums due to inexperience or health complications, respectively.", errorMessage: getDateErrorMessage([
902
+ purchaseDay || '',
903
+ purchaseMonth || '',
904
+ purchaseYear || '',
905
+ ], vehicleState.inValidation), error: vehicleState.inValidation, minDate: year ? `${Number(year) - 1}-01-01` : mychoiceSdkComponents.getFormattedDate('', 'yyyy-MM-dd'), maxDate: mychoiceSdkComponents.getFormattedDate('', 'yyyy-MM-dd') }), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.carWinterTiresCheck, onChange: handleWinterTiresChange, name: "winterTires", defaultValue: getSelectedOption(mychoiceSdkComponents.carWinterTiresCheck, winterTires), description: "Snow. Ice. Freezing temperatures. Winter tires protect you from all these winter weather conditions, and more. It also protects your wallet. Investing in winter tires can save you $50 to $100 on your insurance.", title: "Does your car have winter tires?" }), jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.carKeepPlace, name: "parkingLocation", onChange: handleCarParkingLocationChange, defaultValue: getSelectedOption(mychoiceSdkComponents.carKeepPlace, parkingLocation), title: "Where do you keep your car overnight?", placeholder: "Select from the list", description: "For many of us, the answer is \u201Cat home.\u201D If you park your car in various locations throughout the year, then select the most frequently parking spot. Be honest\u2014some insurers will use your overnight parking location to calculate a quote, which could affect your claims in the future.", autoSelectIfValueIsOutOfOptions: false, error: !parkingLocation && vehicleState.inValidation, errorMessage: getErrorMessage(parkingLocation, vehicleState.inValidation) }), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.carUsagePurpose, onChange: handleCarUsageChange, name: "primaryUse", defaultValue: getSelectedOption(mychoiceSdkComponents.carUsagePurpose, primaryUse) || mychoiceSdkComponents.carUsagePurpose[0].value, hintMessage: primaryUseHintMessage, description: "The way you use your vehicle is a primary factor that insurers use in your policy terms and fees, whether it be personal or business.\n \u2022 Personal is driving from work or school to home.\n \u2022 Business considers other uses like sales calls, pick-ups or deliveries, or other business errands.", title: "What do you mainly use your car for?" }), jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.firstDriveDistanceList, name: "distanceDaily", onChange: handleCarDailyDistanceChange, defaultValue: getSelectedOption(mychoiceSdkComponents.firstDriveDistanceList, distanceDaily), title: "How far is your 1-way commute to work or school?", placeholder: "Select", description: "The distance you drive to work or school would be an example of your daily commute. It is one of the most important factors when determining coverage options since it exposes you to traffic each day. The shorter your commute, the less risk you carry of an accident.", autoSelectIfValueIsOutOfOptions: false, error: !distanceDaily && vehicleState.inValidation, errorMessage: getErrorMessage(distanceDaily, vehicleState.inValidation) }), primaryUse === 'business' && (jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.dailyDriveBusinessDistanceList, name: "distanceBusiness", onChange: handleCarBusinessDailyDistanceChange, defaultValue: getSelectedOption(mychoiceSdkComponents.dailyDriveBusinessDistanceList, distanceBusiness), title: "How many kilometers are driven for business use each day?", placeholder: "Select", autoSelectIfValueIsOutOfOptions: false, error: !distanceBusiness && vehicleState.inValidation, errorMessage: getErrorMessage(distanceBusiness, vehicleState.inValidation) })), jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.yearlyDriveDistanceList, name: "distanceYearly", onChange: handleCarYearlyDistanceChange, defaultValue: getSelectedOption(mychoiceSdkComponents.yearlyDriveDistanceList, distanceYearly), title: "How many total kilometers are driven each year?", placeholder: "Select", hintMessage: distanceDaily ? `Based on your daily driven kilometers, we recommend
906
+ ${mychoiceSdkComponents.numberWithCommas(getRecommendedRange(distanceDaily, primaryUse === mychoiceSdkComponents.VehiclePrimaryUseTypes.Business ? distanceBusiness : 1))} for your yearly driven kilometers` : '', autoSelectIfValueIsOutOfOptions: false, error: !distanceYearly && vehicleState.inValidation, errorMessage: getErrorMessage(distanceYearly, vehicleState.inValidation) })] }));
907
+ };
908
+
909
+ const VehicleSectionMain = () => (jsxRuntime.jsxs("div", { className: "form-section top-section", children: [jsxRuntime.jsx(BlockCarInfo, {}), jsxRuntime.jsx(BlockCarConditionInfo, {})] }));
910
+
911
+ const VehicleSectionCoverage = () => {
912
+ const { vehicleState, dispatchVehicleState } = mychoiceSdkStore.useStoreFormCarVehicle();
913
+ const { collision, comprehensive } = vehicleState.items[vehicleState.activeIndex];
914
+ const handleComprehensiveChange = ({ value }) => {
915
+ dispatchVehicleState({
916
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarComprehensiveCoverageSelect,
917
+ payload: { coverage: value, deductible: 1000 },
918
+ });
919
+ };
920
+ const handleCollisionChange = ({ value }) => {
921
+ dispatchVehicleState({
922
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarCollisionCoverageSelect,
923
+ payload: { coverage: value, deductible: 1000 },
924
+ });
925
+ };
926
+ return (jsxRuntime.jsxs("div", { className: "form-section", children: [jsxRuntime.jsx("h2", { children: "Do you want your insurance to have either comprehensive, collision coverage or both? " }), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.comprehensiveCoverage, onChange: handleComprehensiveChange, name: "comprehensive", defaultValue: getSelectedOption(mychoiceSdkComponents.comprehensiveCoverage, comprehensive?.coverage), description: "Comprehensive insurance covers factors outside of traffic, like fire, flooding, and theft. It also includes terms, limits, and conditions, which become more favourable as the car ages and devalues. Comprehensive coverage is ideal for newer or lightly used vehicles, but for older vehicles, it tends to be poor value for money.", title: "Comprehensive Coverage" }), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.collisionCoverage, onChange: handleCollisionChange, name: "collision", defaultValue: getSelectedOption(mychoiceSdkComponents.collisionCoverage, collision?.coverage), description: "Sometimes, you are at-fault in a collision. Collision coverage pays for repairs when you hit another car or object. It may also cover damage if another driver hits your vehicle, and their insurance doesn't cover the repairs. You will have to pay a deductible before the insurer begins to pay for damages. If another driver hits you without collision coverage, the liability portion of your insurance kicks in, and liability insurance will cover the other driver if you are at fault. The definition of at-fault varies based on location. When the cost of repairs exceeds the car's value, it is time to forgo collision coverage as unnecessary.", title: "Collision Coverage" })] }));
927
+ };
928
+
929
+ const TabVehicle = ({ createItem, readOnly }) => {
930
+ const { vehicleState, dispatchVehicleState } = mychoiceSdkStore.useStoreFormCarVehicle();
931
+ const { dispatchDiscountState } = mychoiceSdkStore.useStoreFormCarDiscount();
932
+ const { dispatchAppModalState } = mychoiceSdkStore.useStoreAppModal();
933
+ const { appDeviceType } = mychoiceSdkStore.useStoreDeviceType();
934
+ const [isOpen, setIsOpen] = React.useState(false);
935
+ const selectVehicle = (vehicleIndex) => {
936
+ dispatchVehicleState({
937
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarVehicleSelect,
938
+ payload: {
939
+ vehicleIndex,
940
+ },
941
+ });
942
+ setIsOpen(false);
943
+ };
944
+ const deleteVehicle = (itemIndex) => {
945
+ dispatchAppModalState({
946
+ type: mychoiceSdkStore.StoreConfigAppModalActionTypes.AppModalConfirmModal,
947
+ payload: {
948
+ title: `Are you sure you want to delete ${vehicleState.tabs[itemIndex]?.name} ?`,
949
+ submitButtonText: 'YES',
950
+ cancelButtonText: 'NO',
951
+ submitCallBack: () => {
952
+ dispatchVehicleState({
953
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarVehicleDeleteVehicle,
954
+ payload: {
955
+ vehicleIndex: itemIndex,
956
+ },
957
+ });
958
+ dispatchDiscountState({
959
+ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountVehlinkByVehicleDelete,
960
+ payload: {
961
+ vehicleIndex: itemIndex,
962
+ },
963
+ });
964
+ dispatchAppModalState({
965
+ type: mychoiceSdkStore.StoreConfigAppModalActionTypes.AppModalClose,
966
+ });
967
+ },
968
+ },
969
+ });
970
+ };
971
+ const handleOpenListClick = () => {
972
+ setIsOpen(!isOpen);
973
+ };
974
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: appDeviceType === mychoiceSdkComponents.DeviceTypes.Mobile
975
+ ? (jsxRuntime.jsx(NavigationTabMobile, { name: "vehicle-tab-navigation-mobile", addButtonLabel: "Add a Vehicle", items: vehicleState.tabs, activeItemIndex: vehicleState.activeIndex, selectItem: selectVehicle, createItem: createItem, removeItem: deleteVehicle, isOpen: isOpen, openListClick: handleOpenListClick })) : (jsxRuntime.jsx(NavigationTab, { name: "vehicle-tab-navigation", addButtonLabel: "Add a Vehicle", items: vehicleState.tabs, activeItemIndex: vehicleState.activeIndex, selectItem: selectVehicle, createItem: createItem, removeItem: deleteVehicle, readOnly: readOnly })) }));
976
+ };
977
+
978
+ var myChoicePartnerLogo = "data:image/png;base64,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";
979
+
980
+ const PageVehicle = () => {
981
+ const { appConfigState: { appType, localIndex } } = mychoiceSdkStore.useStoreAppConfig();
982
+ const { vehicleState: { activeIndex, items }, dispatchVehicleState, } = mychoiceSdkStore.useStoreFormCarVehicle();
983
+ const [isRender, setIsRender] = React.useState(false);
984
+ const { dispatchDiscountState } = mychoiceSdkStore.useStoreFormCarDiscount();
985
+ const { vehicleFormIsValid, vehicleFormValidate } = mychoiceSdkStore.useValidationVehicle();
986
+ mychoiceSdkComponents.useEffectOnce(() => {
987
+ window.scrollTo({
988
+ top: 0,
989
+ behavior: 'smooth',
990
+ });
991
+ });
992
+ React.useEffect(() => {
993
+ setIsRender(false);
994
+ }, [activeIndex]);
995
+ React.useEffect(() => {
996
+ setIsRender(true);
997
+ }, [isRender]);
998
+ const validateForm = () => vehicleFormValidate(false);
999
+ const createVehicle = () => {
1000
+ dispatchVehicleState({
1001
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarVehicleCreateVehicle,
1002
+ });
1003
+ dispatchDiscountState({
1004
+ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountVehlinkAdd,
1005
+ });
1006
+ window.scrollTo({
1007
+ top: 0,
1008
+ behavior: 'smooth',
1009
+ });
1010
+ };
1011
+ return (jsxRuntime.jsxs("div", { className: "form-container", children: [jsxRuntime.jsx(TabVehicle, { createItem: createVehicle }), jsxRuntime.jsxs("div", { className: "form-section-container", children: [isRender && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(VehicleSectionMain, {}), jsxRuntime.jsx(VehicleSectionCoverage, {})] })), appType === mychoiceSdkComponents.AppTypes.TheBig
1012
+ ? (jsxRuntime.jsx(NavigationBottomTheBig, { createItem: createVehicle, formSteps: formSteps[mychoiceSdkComponents.InsuranceTypes.Car], itemCount: items.length, validateForm: validateForm, formIsValid: vehicleFormIsValid }))
1013
+ : (jsxRuntime.jsx(NavigationBottom, { createItem: createVehicle, formSteps: formSteps[mychoiceSdkComponents.InsuranceTypes.Car], itemCount: items.length, validateForm: validateForm, formIsValid: vehicleFormIsValid }))] }), localIndex !== mychoiceSdkComponents.defaultLocalIndex
1014
+ && jsxRuntime.jsx("img", { className: "logo-for-partner", src: myChoicePartnerLogo, alt: "partner logo" })] }));
1015
+ };
1016
+
1017
+ const TabDriver = ({ createItem, readOnly }) => {
1018
+ const { driverState, dispatchDriverBaseState } = mychoiceSdkStore.useStoreFormCarDriverBase();
1019
+ const { dispatchDiscountState } = mychoiceSdkStore.useStoreFormCarDiscount();
1020
+ const { dispatchAppModalState } = mychoiceSdkStore.useStoreAppModal();
1021
+ const { appDeviceType } = mychoiceSdkStore.useStoreDeviceType();
1022
+ const [isOpen, setIsOpen] = React.useState(false);
1023
+ const selectDriver = (driverIndex) => {
1024
+ dispatchDriverBaseState({
1025
+ type: mychoiceSdkStore.StoreFormCarDriverBaseActionTypes.FormCarDriverSelect,
1026
+ payload: {
1027
+ driverIndex,
1028
+ },
1029
+ });
1030
+ setIsOpen(false);
1031
+ };
1032
+ const deleteDriver = (itemIndex) => {
1033
+ dispatchAppModalState({
1034
+ type: mychoiceSdkStore.StoreConfigAppModalActionTypes.AppModalConfirmModal,
1035
+ payload: {
1036
+ title: `Are you sure you want to delete ${driverState.tabs[itemIndex]?.name} ?`,
1037
+ submitButtonText: 'YES',
1038
+ cancelButtonText: 'NO',
1039
+ submitCallBack: () => {
1040
+ dispatchDriverBaseState({
1041
+ type: mychoiceSdkStore.StoreFormCarDriverBaseActionTypes.FormCarDriverDelete,
1042
+ payload: {
1043
+ driverIndex: itemIndex,
1044
+ },
1045
+ });
1046
+ dispatchDiscountState({
1047
+ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountVehlinkByDriverDelete,
1048
+ payload: {
1049
+ driverIndex: itemIndex,
1050
+ },
1051
+ });
1052
+ dispatchAppModalState({
1053
+ type: mychoiceSdkStore.StoreConfigAppModalActionTypes.AppModalClose,
1054
+ });
1055
+ },
1056
+ },
1057
+ });
1058
+ };
1059
+ const handleOpenListClick = () => {
1060
+ setIsOpen(!isOpen);
1061
+ };
1062
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: appDeviceType === mychoiceSdkComponents.DeviceTypes.Mobile ? (jsxRuntime.jsx(NavigationTabMobile, { name: "vehicle-tab-navigation-mobile", addButtonLabel: "Add a Driver", items: driverState.tabs, activeItemIndex: driverState.activeIndex, selectItem: selectDriver, createItem: createItem, removeItem: deleteDriver, isOpen: isOpen, openListClick: handleOpenListClick })) : (jsxRuntime.jsx(NavigationTab, { name: "vehicle-tab-navigation", addButtonLabel: "Add a Driver", items: driverState.tabs, activeItemIndex: driverState.activeIndex, selectItem: selectDriver, createItem: createItem, removeItem: deleteDriver, readOnly: readOnly })) }));
1063
+ };
1064
+
1065
+ const SectionDriverInfo = () => {
1066
+ const { configState } = mychoiceSdkStore.useStoreFormCarConfig();
1067
+ const { driverState, dispatchDriverInfoState } = mychoiceSdkStore.useStoreFormCarDriverInfo();
1068
+ const { discountState, dispatchDiscountState } = mychoiceSdkStore.useStoreFormCarDiscount();
1069
+ const { firstName, maritalStatus, birthDay, birthMonth, birthYear, occupation, gender, applicantRelationship, } = driverState.items[driverState.activeIndex];
1070
+ const defaultDateOfBirth = {
1071
+ day: birthDay,
1072
+ month: birthMonth,
1073
+ year: birthYear,
1074
+ };
1075
+ React.useEffect(() => {
1076
+ if (discountState.quoterInfo.firstName !== driverState.items[0].firstName) {
1077
+ dispatchDiscountState({
1078
+ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountQuoterFirstNameSet,
1079
+ payload: { firstName: driverState.items[0].firstName },
1080
+ });
1081
+ }
1082
+ }, [driverState.items[0].firstName]);
1083
+ const handleFirstNameChange = ({ value }) => {
1084
+ dispatchDriverInfoState({
1085
+ type: mychoiceSdkStore.StoreFormCarDriverInfoActionTypes.FormCarDriverNameSet,
1086
+ payload: { firstName: value },
1087
+ });
1088
+ };
1089
+ const handleMaritalStatusChange = ({ value }) => {
1090
+ dispatchDriverInfoState({
1091
+ type: mychoiceSdkStore.StoreFormCarDriverInfoActionTypes.FormCarDriverMaritalStatusSelect,
1092
+ payload: { maritalStatus: value },
1093
+ });
1094
+ };
1095
+ const handleDateOfBirthChange = (dateType) => ({ value }) => {
1096
+ if (dateType === mychoiceSdkComponents.DateTypes.Day) {
1097
+ dispatchDriverInfoState({
1098
+ type: mychoiceSdkStore.StoreFormCarDriverInfoActionTypes.FormCarDriverBirthDaySelect,
1099
+ payload: { birthDay: value, config: configState },
1100
+ });
1101
+ }
1102
+ if (dateType === mychoiceSdkComponents.DateTypes.Month) {
1103
+ dispatchDriverInfoState({
1104
+ type: mychoiceSdkStore.StoreFormCarDriverInfoActionTypes.FormCarDriverBirthMonthSelect,
1105
+ payload: { birthMonth: value, config: configState },
1106
+ });
1107
+ }
1108
+ if (dateType === mychoiceSdkComponents.DateTypes.Year) {
1109
+ dispatchDriverInfoState({
1110
+ type: mychoiceSdkStore.StoreFormCarDriverInfoActionTypes.FormCarDriverBirthYearSelect,
1111
+ payload: { birthYear: value, config: configState },
1112
+ });
1113
+ }
1114
+ };
1115
+ const handleOccupationChange = ({ value }) => {
1116
+ dispatchDriverInfoState({
1117
+ type: mychoiceSdkStore.StoreFormCarDriverInfoActionTypes.FormCarDriverOccupationSelect,
1118
+ payload: { occupation: value },
1119
+ });
1120
+ };
1121
+ const handleGenderChange = ({ value }) => {
1122
+ dispatchDriverInfoState({
1123
+ type: mychoiceSdkStore.StoreFormCarDriverInfoActionTypes.FormCarDriverGenderSelect,
1124
+ payload: { gender: value },
1125
+ });
1126
+ };
1127
+ const handleApplicantRelationshipChange = ({ value }) => {
1128
+ dispatchDriverInfoState({
1129
+ type: mychoiceSdkStore.StoreFormCarDriverInfoActionTypes.FormCarDriverApplicantRelationshipSelect,
1130
+ payload: { applicantRelationship: value },
1131
+ });
1132
+ };
1133
+ return (jsxRuntime.jsxs("div", { className: "form-section", children: [jsxRuntime.jsx(InputFormBox, { name: "firstName", title: "What is your legal first name?", onChange: handleFirstNameChange, defaultValue: firstName, description: "The name on a policy should match the one on your official driver\u2019s licence.", placeholder: "Driver First Name", error: !firstName && driverState.inValidation, errorMessage: getErrorMessage(firstName, driverState.inValidation) }), jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.maritalStatusOptions, name: "maritalStatus", onChange: handleMaritalStatusChange, defaultValue: getSelectedOption(mychoiceSdkComponents.maritalStatusOptions, maritalStatus), title: "What is your marital status?", placeholder: "Select from the list", description: "If you are married, it may have a positive effect on your car insurance premiums and coverage. In some provinces, the law now considers same-sex partners to have a common-law marriage, so you will need to check your local regulations. If you are divorced or widowed, select single.", autoSelectIfValueIsOutOfOptions: false, error: !maritalStatus && driverState.inValidation, errorMessage: getErrorMessage(maritalStatus, driverState.inValidation) }), jsxRuntime.jsx(DateSelectFormBox, { name: "dateOfBirth", dateNames: ['birthYear', 'birthMonth', 'birthDay'], onDateChange: handleDateOfBirthChange, defaultValue: defaultDateOfBirth, title: "When were you born?", description: "Insurers generally consider your age and driving experience when calculating a vehicle insurance quote. The safest drivers are often those who are over thirty, but each insurer will have their own parameters. The youngest and oldest drivers have the greatest liability reflected in their premiums due to inexperience or health complications, respectively.", errorMessage: getDateErrorMessage([birthDay || '', birthMonth || '', birthYear || ''], driverState.inValidation), error: driverState.inValidation, maxDate: mychoiceSdkComponents.subYearsFromDate('', configState.licenceConfig.minLicenceAge || 16), isDay: true }), jsxRuntime.jsx(SwitchButtonBox, { name: "occupation", items: mychoiceSdkComponents.occupationOptions, onChange: handleOccupationChange, defaultValue: getSelectedOption(mychoiceSdkComponents.occupationOptions, occupation), title: "Are you currently employed or unemployed?", description: "Your employment status reflects your driving frequency, and insurers consider this in your policy." }), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.genderOptions, onChange: handleGenderChange, name: "gender", defaultValue: getSelectedOption(mychoiceSdkComponents.genderOptions, gender), title: "What is your gender?", description: "The gender on the policy should match your official driver\u2019s licence. Some insurers analyze a driver's sex when creating a policy. Men are typically considered higher risk than female drivers, but the statistics supporting this idea vary from province to province. On average, men and women pay roughly the same for insurance, though." }), driverState.activeIndex > 0
1134
+ && (jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.applicantRelationshipOptions, name: "applicantRelationship", onChange: handleApplicantRelationshipChange, defaultValue: getSelectedOption(mychoiceSdkComponents.applicantRelationshipOptions, applicantRelationship), title: "Relationship to applicant", placeholder: "Select...", autoSelectIfValueIsOutOfOptions: false, error: !applicantRelationship && driverState.inValidation, errorMessage: getErrorMessage(applicantRelationship, driverState.inValidation) }))] }));
1135
+ };
1136
+
1137
+ const getLicenceTypeOptions = (options, optionValues, disabled) => (options.map((option) => {
1138
+ const newOption = option;
1139
+ if (optionValues.includes(option.value)) {
1140
+ newOption.disabled = disabled;
1141
+ }
1142
+ return newOption;
1143
+ }));
1144
+ const checkDateIsSpecial = (defaultMinDate, specialDate) => mychoiceSdkComponents.compareDates(specialDate, defaultMinDate) >= 0;
1145
+ const getLicenceMinDate = (licenceType, defaultMinDate, config) => {
1146
+ if (defaultMinDate) {
1147
+ if (licenceType === mychoiceSdkComponents.DriverLicenceTypes.G1) {
1148
+ return mychoiceSdkComponents.addMonthsToDate(defaultMinDate, config.minDates.g1.minMonth);
1149
+ }
1150
+ if (licenceType === mychoiceSdkComponents.DriverLicenceTypes.G) {
1151
+ if (checkDateIsSpecial(defaultMinDate, config.minDates.g.specialDate)) {
1152
+ return defaultMinDate;
1153
+ }
1154
+ return mychoiceSdkComponents.addMonthsToDate(defaultMinDate, config.minDates.g.minMonth);
1155
+ }
1156
+ if (licenceType === mychoiceSdkComponents.DriverLicenceTypes.G2) {
1157
+ return mychoiceSdkComponents.addMonthsToDate(defaultMinDate, config.minDates.g2.minMonth);
1158
+ }
1159
+ }
1160
+ return '';
1161
+ };
1162
+ const getLicenceMaxDate = (licenceType, minDate, config) => {
1163
+ let maxDate = '';
1164
+ const { minDates: { g: { specialDate } } } = config;
1165
+ if (licenceType === mychoiceSdkComponents.DriverLicenceTypes.G
1166
+ && mychoiceSdkComponents.compareDates(specialDate, minDate) >= 0) {
1167
+ maxDate = config.minDates.g.specialDate;
1168
+ }
1169
+ return mychoiceSdkComponents.getFormattedDate(maxDate, 'yyyy-MM-dd');
1170
+ };
1171
+ const getDisabledLicenceTypes = (gBlock, g2Block, g1Block) => {
1172
+ const disabledLicenceTypes = [];
1173
+ if (gBlock) {
1174
+ disabledLicenceTypes.push(mychoiceSdkComponents.DriverLicenceTypes.G);
1175
+ }
1176
+ if (g1Block) {
1177
+ disabledLicenceTypes.push(mychoiceSdkComponents.DriverLicenceTypes.G1);
1178
+ }
1179
+ if (g2Block) {
1180
+ disabledLicenceTypes.push(mychoiceSdkComponents.DriverLicenceTypes.G2);
1181
+ }
1182
+ return disabledLicenceTypes;
1183
+ };
1184
+
1185
+ const SectionDriverLicence = () => {
1186
+ const [driverEducation, setDriverEducation] = React.useState(false);
1187
+ const { configState } = mychoiceSdkStore.useStoreFormCarConfig();
1188
+ const { driverState, dispatchDriverLicenceState } = mychoiceSdkStore.useStoreFormCarDriverLicence();
1189
+ const { firstName, birthDay, birthMonth, birthYear, licenceInfo: { firstLicenceAge, licenceType, g1LicenceYear, g1LicenceMonth, gLicenceYear, gLicenceMonth, g2LicenceYear, g2LicenceMonth, passedDriverTraining, previousLicence, }, minMaxDates, } = driverState.items[driverState.activeIndex];
1190
+ const { gMax = mychoiceSdkComponents.getFormattedDate('', 'yyyy-MM-dd'), gMin = '1922-01-01', gOneMax = mychoiceSdkComponents.getFormattedDate('', 'yyyy-MM-dd'), gOneMin = '1922-01-01', gTwoMax = mychoiceSdkComponents.getFormattedDate('', 'yyyy-MM-dd'), gTwoMin = '1922-01-01', gBlock = false, gTwoBlock = false, gOneBlock = false, licenceAgeMax = 16, } = minMaxDates ?? {};
1191
+ const maxLicenceAge = licenceAgeMax;
1192
+ const driverNameDefault = `Driver ${driverState.activeIndex + 1}`;
1193
+ const birthDate = birthYear && birthMonth && birthDay ? `${birthYear}-${birthMonth}-${birthDay}` : '';
1194
+ const defaultMinDate = birthDate && firstLicenceAge ? mychoiceSdkComponents.addYearsToDate(birthDate, +firstLicenceAge) : '';
1195
+ const isOnlyG = checkDateIsSpecial(defaultMinDate, configState.minDates.g.specialDate);
1196
+ const { g, g1, g2, minLicenceAge, } = configState.licenceConfig;
1197
+ const licenceTypeOptions = [
1198
+ { value: g.name, name: g.title },
1199
+ { value: g1.name, name: g1.title },
1200
+ { value: g2.name, name: g2.title },
1201
+ ];
1202
+ React.useEffect(() => {
1203
+ if (!gOneBlock && !gTwoBlock) {
1204
+ if (licenceType !== mychoiceSdkComponents.DriverLicenceTypes.G1) {
1205
+ const g2Date = mychoiceSdkStore.addDayToDate(`${g2LicenceYear}-${g2LicenceMonth}`, birthDay ? +birthDay + 1 : 1);
1206
+ if (mychoiceSdkComponents.getDifferenceInYears('', g2Date) <= 3) {
1207
+ setDriverEducation(true);
1208
+ }
1209
+ else {
1210
+ setDriverEducation(false);
1211
+ }
1212
+ }
1213
+ else {
1214
+ setDriverEducation(false);
1215
+ }
1216
+ }
1217
+ }, [g2LicenceYear, g2LicenceMonth, licenceType]);
1218
+ const getMinDate = (type) => {
1219
+ switch (type) {
1220
+ case mychoiceSdkComponents.DriverLicenceTypes.G:
1221
+ return gMin;
1222
+ case mychoiceSdkComponents.DriverLicenceTypes.G1:
1223
+ return gOneMin;
1224
+ case mychoiceSdkComponents.DriverLicenceTypes.G2:
1225
+ return gTwoMin;
1226
+ default: return '';
1227
+ }
1228
+ };
1229
+ const getMaxDate = (type) => {
1230
+ switch (type) {
1231
+ case mychoiceSdkComponents.DriverLicenceTypes.G:
1232
+ return gMax;
1233
+ case mychoiceSdkComponents.DriverLicenceTypes.G1:
1234
+ return gOneMax;
1235
+ case mychoiceSdkComponents.DriverLicenceTypes.G2:
1236
+ return gTwoMax;
1237
+ default: return '';
1238
+ }
1239
+ };
1240
+ const getLicenceYear = (type) => {
1241
+ switch (type) {
1242
+ case mychoiceSdkComponents.DriverLicenceTypes.G:
1243
+ return gLicenceYear;
1244
+ case mychoiceSdkComponents.DriverLicenceTypes.G1:
1245
+ return g1LicenceYear;
1246
+ case mychoiceSdkComponents.DriverLicenceTypes.G2:
1247
+ return g2LicenceYear;
1248
+ default: return '';
1249
+ }
1250
+ };
1251
+ const getLicenceMonth = (type) => {
1252
+ switch (type) {
1253
+ case mychoiceSdkComponents.DriverLicenceTypes.G:
1254
+ return gLicenceMonth;
1255
+ case mychoiceSdkComponents.DriverLicenceTypes.G1:
1256
+ return g1LicenceMonth;
1257
+ case mychoiceSdkComponents.DriverLicenceTypes.G2:
1258
+ return g2LicenceMonth;
1259
+ default: return '';
1260
+ }
1261
+ };
1262
+ const getDefaultLicenceDate = (type) => ({
1263
+ year: getLicenceYear(type),
1264
+ month: getLicenceMonth(type),
1265
+ day: birthDay || '01',
1266
+ });
1267
+ const handleLicenceAgeChange = ({ value }) => {
1268
+ dispatchDriverLicenceState({
1269
+ type: mychoiceSdkStore.StoreFormCarDriverLicenceActionTypes.FormCarDriverLicenceAgeSelect,
1270
+ payload: { firstLicenceAge: value, config: configState },
1271
+ });
1272
+ };
1273
+ const handleLicenceTypeChange = ({ value }) => {
1274
+ dispatchDriverLicenceState({
1275
+ type: mychoiceSdkStore.StoreFormCarDriverLicenceActionTypes.FormCarDriverLicenceTypeSelect,
1276
+ payload: { licenceType: value, config: configState },
1277
+ });
1278
+ };
1279
+ const handleTrainingChange = ({ value }) => {
1280
+ dispatchDriverLicenceState({
1281
+ type: mychoiceSdkStore.StoreFormCarDriverLicenceActionTypes.FormCarDriverTrainingSelect,
1282
+ payload: { training: value },
1283
+ });
1284
+ };
1285
+ const handlePreviousLicenceChange = ({ value }) => {
1286
+ dispatchDriverLicenceState({
1287
+ type: mychoiceSdkStore.StoreFormCarDriverLicenceActionTypes.FormCarDriverPreviousLicenceSelect,
1288
+ payload: { previousLicence: value },
1289
+ });
1290
+ };
1291
+ const handleLicenceDateChange = (type) => (dateType) => ({ value }) => {
1292
+ if (dateType === mychoiceSdkComponents.DateTypes.Month) {
1293
+ dispatchDriverLicenceState({
1294
+ type: mychoiceSdkStore.StoreFormCarDriverLicenceActionTypes.FormCarDriverLicenceMonthSelect,
1295
+ payload: { value: value, config: configState, type },
1296
+ });
1297
+ }
1298
+ if (dateType === mychoiceSdkComponents.DateTypes.Year) {
1299
+ dispatchDriverLicenceState({
1300
+ type: mychoiceSdkStore.StoreFormCarDriverLicenceActionTypes.FormCarDriverLicenceYearSelect,
1301
+ payload: { value: value, config: configState, type },
1302
+ });
1303
+ }
1304
+ };
1305
+ const getHintMessage = (type) => {
1306
+ const currentType = type || licenceType;
1307
+ const licenceMinDate = getMinDate(currentType);
1308
+ const licenceTypeTitle = configState.licenceConfig[currentType].title;
1309
+ const formattedMinDate = `${mychoiceSdkComponents.getFormattedDate(licenceMinDate, 'MMMM yyyy')}`;
1310
+ const defaultHintMessage = `${formattedMinDate} would be your earliest ${licenceTypeTitle}
1311
+ licence date based on your first licenced age and date of birth`;
1312
+ return currentType === mychoiceSdkComponents.DriverLicenceTypes.G2 ? `${defaultHintMessage}
1313
+ if you completed a driver education course` : defaultHintMessage;
1314
+ };
1315
+ return (jsxRuntime.jsxs("div", { className: "form-section", children: [jsxRuntime.jsx(InputFormBox, { name: "firstLicenceAge", title: `What age was ${firstName || driverNameDefault} when first licenced?`, onChange: handleLicenceAgeChange, type: mychoiceSdkComponents.InputTypes.Number, defaultValue: firstLicenceAge, description: configState.toolTip.licenceAge, hintMessage: birthDate ? `${firstName || driverNameDefault} was licenced in
1316
+ ${Number(birthYear) + Number(firstLicenceAge)} - ${Number(birthYear) + Number(firstLicenceAge) + 1}` : '', placeholder: "Select Licence Age", disabled: !birthDate, error: !firstLicenceAge && driverState.inValidation, errorMessage: getErrorMessage(firstLicenceAge, driverState.inValidation), minValue: minLicenceAge || 16, maxValue: maxLicenceAge }), jsxRuntime.jsx(SelectFormBox, { options: getLicenceTypeOptions(licenceTypeOptions, getDisabledLicenceTypes(gBlock, gTwoBlock, gOneBlock), true), name: "licenceType", onChange: handleLicenceTypeChange, defaultValue: getSelectedOption(licenceTypeOptions, licenceType), title: `Please choose the type of licence that ${firstName || driverNameDefault} currently holds`, placeholder: "Select from the list", disabled: !birthDate, description: configState.toolTip.licenceType, autoSelectIfValueIsOutOfOptions: false }), licenceType === mychoiceSdkComponents.DriverLicenceTypes.G && !isOnlyG
1317
+ && (jsxRuntime.jsx(DateSelectFormBox, { name: "g2LicenceDate", dateNames: ['g2LicenceYear', 'g2LicenceMonth'], onDateChange: handleLicenceDateChange(mychoiceSdkComponents.DriverLicenceTypes.G2), defaultValue: getDefaultLicenceDate(mychoiceSdkComponents.DriverLicenceTypes.G2), title: `${configState.licenceConfig.g2.title} licence date`, errorMessage: getDateErrorMessage(['01', g2LicenceMonth, g2LicenceYear], driverState.inValidation), hintMessage: getHintMessage(mychoiceSdkComponents.DriverLicenceTypes.G2), error: driverState.inValidation, minDate: getMinDate(mychoiceSdkComponents.DriverLicenceTypes.G2), maxDate: getMaxDate(mychoiceSdkComponents.DriverLicenceTypes.G2) })), licenceType && (jsxRuntime.jsx(DateSelectFormBox, { name: `${licenceType}LicenceDate`, dateNames: [`${licenceType}LicenceYear`, `${licenceType}LicenceMonth`], onDateChange: handleLicenceDateChange(), defaultValue: getDefaultLicenceDate(licenceType), title: `${configState.licenceConfig[licenceType].title} licence date`, errorMessage: getDateErrorMessage(['01', getLicenceMonth(licenceType), getLicenceYear(licenceType)], driverState.inValidation), hintMessage: getHintMessage(), error: driverState.inValidation, maxDate: getMaxDate(licenceType), minDate: getMinDate(licenceType) })), driverEducation
1318
+ && (jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.yesNoOptions, onChange: handleTrainingChange, name: "passedDriverTraining", defaultValue: getSelectedOption(mychoiceSdkComponents.yesNoOptions, passedDriverTraining), title: `Has ${firstName || driverNameDefault} completed a driver education course within the last 3 years?` })), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.yesNoOptions, onChange: handlePreviousLicenceChange, name: "previousLicence", defaultValue: getSelectedOption(mychoiceSdkComponents.yesNoOptions, previousLicence), title: `Has ${firstName || driverNameDefault} ever had a full license anywhere else in Canada or USA?`, description: "If you have driving experience outside Canada or the United States, it may lower your premium. Your insurer may require proof of insurance in these other locations or some proof of driving experience from the country you indicate (like a copy of a previous driver\u2019s licence)." })] }));
1319
+ };
1320
+
1321
+ const SectionDriverInsurancePolicy = () => {
1322
+ const [hintMessage, setHintMessage] = React.useState('');
1323
+ const { configState } = mychoiceSdkStore.useStoreFormCarConfig();
1324
+ const { driverState, dispatchDriverInsuranceState } = mychoiceSdkStore.useStoreFormCarDriverInsurance();
1325
+ const { discountState, dispatchDiscountState } = mychoiceSdkStore.useStoreFormCarDiscount();
1326
+ const { quoteState: { isRequested } } = mychoiceSdkStore.useStoreFormCarQuote();
1327
+ const { listed, listedMonth = '', listedYear = '', insured, insuredDate = '', firstName, birthYear, birthMonth, birthDay, licenceInfo: { firstLicenceAge, licenceType, gLicenceYear, gLicenceMonth, g1LicenceYear, g1LicenceMonth, }, } = driverState.items[driverState.activeIndex];
1328
+ const { policyStartYear, policyStartMonth, policyStartDay } = discountState;
1329
+ const driverNameDefault = `Driver ${driverState.activeIndex + 1}`;
1330
+ const birthDate = birthYear && birthMonth && birthDay ? `${birthYear}-${birthMonth}-${birthDay}` : '';
1331
+ const getPeriodOptions = (year, month) => {
1332
+ const options = [{ value: '', name: 'Date Period', disabled: true }];
1333
+ if (year && month) {
1334
+ const listedDate = mychoiceSdkComponents.addDaysToDate(`${year}-${month}-01`, birthDay ? +birthDay + 1 : 1);
1335
+ const yearPeriod = mychoiceSdkComponents.getDifferenceInYears('', listedDate) || 0;
1336
+ for (let y = yearPeriod; y >= 0; y -= 1) {
1337
+ switch (true) {
1338
+ case y === 0:
1339
+ options.push({
1340
+ value: mychoiceSdkComponents.subMonthsFromDate('', 10),
1341
+ name: 'Less than 1 Year',
1342
+ });
1343
+ break;
1344
+ case y === 1:
1345
+ options.push({ value: mychoiceSdkComponents.addYearsToDate(listedDate, y), name: '1 Year' });
1346
+ break;
1347
+ default:
1348
+ options.push({
1349
+ value: mychoiceSdkComponents.addYearsToDate(listedDate, y),
1350
+ name: `${y} Years`,
1351
+ });
1352
+ }
1353
+ }
1354
+ }
1355
+ return options;
1356
+ };
1357
+ const defaultListedDate = {
1358
+ year: listedYear,
1359
+ month: listedMonth,
1360
+ day: '01',
1361
+ };
1362
+ const defaultPolicyStartDate = {
1363
+ year: policyStartYear,
1364
+ month: policyStartMonth,
1365
+ day: policyStartDay,
1366
+ };
1367
+ React.useEffect(() => {
1368
+ if (listedYear && listedMonth && !isRequested) {
1369
+ const options = getPeriodOptions(listedYear, listedMonth);
1370
+ if (options.length > 1) {
1371
+ dispatchDriverInsuranceState({
1372
+ type: mychoiceSdkStore.StoreFormCarDriverInsuranceActionTypes.FormCarDriverInsuredDateSelect,
1373
+ payload: { insuredDate: options[1].value },
1374
+ });
1375
+ }
1376
+ }
1377
+ }, [listedYear, listedMonth]);
1378
+ React.useEffect(() => {
1379
+ if (listedYear && listedMonth && listed) {
1380
+ const listedDate = mychoiceSdkComponents.addDaysToDate(`${listedYear}-${listedMonth}-01`, birthDay ? +birthDay + 1 : 1);
1381
+ const setMessage = (licenceYear, licenceMonth) => {
1382
+ const licenceDate = mychoiceSdkComponents.addDaysToDate(`${licenceYear}-${licenceMonth}-01`, birthDay ? +birthDay + 1 : 1);
1383
+ const yearsPeriod = mychoiceSdkComponents.getDifferenceInYears(listedDate, licenceDate);
1384
+ if (yearsPeriod >= 5) {
1385
+ setHintMessage(`We noticed that you received your licence ${yearsPeriod} years before
1386
+ you had insurance. If this is correct, please continue with the form.`);
1387
+ }
1388
+ else {
1389
+ setHintMessage('');
1390
+ }
1391
+ };
1392
+ if (birthDate) {
1393
+ const defaultMinDate = birthDate && firstLicenceAge ? mychoiceSdkComponents.addYearsToDate(birthDate, +firstLicenceAge) : '';
1394
+ const isOnlyG = checkDateIsSpecial(defaultMinDate, configState.minDates.g.specialDate);
1395
+ if (isOnlyG) {
1396
+ setMessage(gLicenceYear, gLicenceMonth);
1397
+ }
1398
+ else if (licenceType === mychoiceSdkComponents.DriverLicenceTypes.G1) {
1399
+ setMessage(g1LicenceYear, g1LicenceMonth);
1400
+ }
1401
+ else {
1402
+ const licenceDate = mychoiceSdkComponents.addYearsToDate(birthDate, firstLicenceAge);
1403
+ const licenceYear = mychoiceSdkComponents.getFormattedDate(licenceDate, 'yyyy');
1404
+ const licenceMonth = mychoiceSdkComponents.getFormattedDate(licenceDate, 'MM');
1405
+ setMessage(licenceYear, licenceMonth);
1406
+ }
1407
+ }
1408
+ }
1409
+ else {
1410
+ setHintMessage('');
1411
+ }
1412
+ }, [listedYear, listedMonth, g1LicenceYear, g1LicenceMonth, firstLicenceAge, birthDate, gLicenceYear, gLicenceMonth]);
1413
+ const handleInsuredChange = ({ value }) => {
1414
+ dispatchDriverInsuranceState({
1415
+ type: mychoiceSdkStore.StoreFormCarDriverInsuranceActionTypes.FormCarDriverInsuredSelect,
1416
+ payload: { insured: !value },
1417
+ });
1418
+ };
1419
+ const handleListedChange = ({ value }) => {
1420
+ dispatchDriverInsuranceState({
1421
+ type: mychoiceSdkStore.StoreFormCarDriverInsuranceActionTypes.FormCarDriverListedSelect,
1422
+ payload: { listed: !value },
1423
+ });
1424
+ };
1425
+ const handleInsuredPeriodChange = ({ value }) => {
1426
+ dispatchDriverInsuranceState({
1427
+ type: mychoiceSdkStore.StoreFormCarDriverInsuranceActionTypes.FormCarDriverInsuredDateSelect,
1428
+ payload: { insuredDate: value },
1429
+ });
1430
+ };
1431
+ const handleListedDateChange = (dateType) => ({ value }) => {
1432
+ if (dateType === mychoiceSdkComponents.DateTypes.Month) {
1433
+ dispatchDriverInsuranceState({
1434
+ type: mychoiceSdkStore.StoreFormCarDriverInsuranceActionTypes.FormCarDriverListedMonthSelect,
1435
+ payload: { listedMonth: value },
1436
+ });
1437
+ }
1438
+ if (dateType === mychoiceSdkComponents.DateTypes.Year) {
1439
+ dispatchDriverInsuranceState({
1440
+ type: mychoiceSdkStore.StoreFormCarDriverInsuranceActionTypes.FormCarDriverListedYearSelect,
1441
+ payload: { listedYear: value },
1442
+ });
1443
+ }
1444
+ };
1445
+ const handlePolicyStartDateChange = (dateType) => ({ value }) => {
1446
+ if (dateType === mychoiceSdkComponents.DateTypes.Day) {
1447
+ dispatchDiscountState({
1448
+ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountPolicyStartDaySelect,
1449
+ payload: { policyStartDay: value },
1450
+ });
1451
+ }
1452
+ if (dateType === mychoiceSdkComponents.DateTypes.Month) {
1453
+ dispatchDiscountState({
1454
+ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountPolicyStartMonthSelect,
1455
+ payload: { policyStartMonth: value },
1456
+ });
1457
+ }
1458
+ if (dateType === mychoiceSdkComponents.DateTypes.Year) {
1459
+ dispatchDiscountState({
1460
+ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountPolicyStartYearSelect,
1461
+ payload: { policyStartYear: value },
1462
+ });
1463
+ }
1464
+ };
1465
+ return (jsxRuntime.jsxs("div", { className: "form-section", children: [jsxRuntime.jsxs("div", { className: "box-container", children: [jsxRuntime.jsx(DateSelectFormBox, { name: "listedYear", dateNames: ['listedYear', 'listedMonth'], onDateChange: handleListedDateChange, defaultValue: defaultListedDate, disabled: !listed, title: `When was ${firstName || driverNameDefault} first listed as a driver on a Canadian or US insurance policy?`, description: "The selection indicates what year the main driver was first listed on a Canadian or US insurance policy. If you do not remember your age, it is acceptable to provide a best estimate for the purposes of the policy or quote.", errorMessage: listed ? getDateErrorMessage(['01', listedMonth, listedYear], driverState.inValidation) : '', error: driverState.inValidation, hintMessage: hintMessage, minDate: mychoiceSdkComponents.getMinDate(birthDate, firstLicenceAge) }), jsxRuntime.jsx(mychoiceSdkComponents.CheckboxForm, { name: "listed", label: "Never listed on an insurance policy", onChange: handleListedChange, defaultValue: !listed })] }), listed
1466
+ && (jsxRuntime.jsxs("div", { className: "box-container", children: [jsxRuntime.jsx(SelectFormBox, { name: "insuredDate", onChange: handleInsuredPeriodChange, options: getPeriodOptions(listedYear, listedMonth), defaultValue: insuredDate, disabled: !insured, title: `How long has ${firstName || driverNameDefault} been with their current insurance provider?`, description: "It is common for insurers to provide loyalty rewards or discounts for valued customers. Loyalty is a positive trait in the industry, and most insurance companies will want to provide some incentive for continued customer relationships through tangible policy rewards.", errorMessage: insured ? getErrorMessage(insuredDate, driverState.inValidation) : '', error: !insuredDate && driverState.inValidation }), jsxRuntime.jsx(mychoiceSdkComponents.CheckboxForm, { name: "insured", label: "Not currently insured", onChange: handleInsuredChange, defaultValue: !insured })] })), jsxRuntime.jsx(DateSelectFormBox, { name: "policyStart", dateNames: ['policyStartYear', 'policyStartMonth', 'policyStartDay'], onDateChange: handlePolicyStartDateChange, defaultValue: defaultPolicyStartDate, title: "What is the ideal start date for your new insurance policy?", description: "Select your preferred date for the beginning of your new insurance policy.For instance, you may set the start date for the day that your current insurance expires to ensure that you\u2019re continuously covered. Alternatively, select today's date for a quote or new policy.", errorMessage: getDateErrorMessage([
1467
+ policyStartDay || '',
1468
+ policyStartMonth || '',
1469
+ policyStartYear || '',
1470
+ ], driverState.inValidation), error: driverState.inValidation, minDate: mychoiceSdkComponents.addDaysToDate('', 1), maxDate: mychoiceSdkComponents.addDaysToDate('', 60), isDay: true })] }));
1471
+ };
1472
+
1473
+ const SectionDriverCancellation = () => {
1474
+ const { driverState, dispatchDriverCancellationState } = mychoiceSdkStore.useStoreFormCarDriverCancellation();
1475
+ const { dispatchDriverBaseState } = mychoiceSdkStore.useStoreFormCarDriverBase();
1476
+ const { insuranceCancellation, insuranceCancellationList = [] } = driverState.items[driverState.activeIndex];
1477
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
1478
+ const isTheBig = appType === mychoiceSdkComponents.AppTypes.TheBig;
1479
+ const { firstName, birthYear, birthMonth, birthDay, licenceInfo: { firstLicenceAge }, } = driverState.items[driverState.activeIndex];
1480
+ const birthDate = birthYear && birthMonth && birthDay ? `${birthYear}-${birthMonth}-${birthDay}` : '';
1481
+ const handleIconClick = (index) => () => {
1482
+ dispatchDriverCancellationState({
1483
+ type: mychoiceSdkStore.StoreFormCarDriverCancellationActionTypes.FormCarDriverInsuranceCancellationDelete,
1484
+ payload: { itemIndex: index },
1485
+ });
1486
+ };
1487
+ const handleCancellationChange = ({ value }) => {
1488
+ dispatchDriverCancellationState({
1489
+ type: mychoiceSdkStore.StoreFormCarDriverCancellationActionTypes.FormCarDriverInsuranceCancellationSelect,
1490
+ payload: { insuranceCancellation: value },
1491
+ });
1492
+ if (!value) {
1493
+ dispatchDriverBaseState({
1494
+ type: mychoiceSdkStore.StoreFormCarDriverBaseActionTypes.FormCarDriverInitialList,
1495
+ payload: { listKey: mychoiceSdkComponents.DriverListTypes.InsuranceCancellation },
1496
+ });
1497
+ }
1498
+ };
1499
+ const handleAddButtonClick = () => {
1500
+ dispatchDriverCancellationState({
1501
+ type: mychoiceSdkStore.StoreFormCarDriverCancellationActionTypes.FormCarDriverInsuranceCancellationAdd,
1502
+ });
1503
+ };
1504
+ const handleReasonChange = (index) => ({ value }) => {
1505
+ dispatchDriverCancellationState({
1506
+ type: mychoiceSdkStore.StoreFormCarDriverCancellationActionTypes.FormCarDriverInsuranceCancelReasonSelect,
1507
+ payload: {
1508
+ reason: value,
1509
+ index,
1510
+ },
1511
+ });
1512
+ };
1513
+ const handleStartDateChange = (index) => (dateType) => ({ value }) => {
1514
+ if (dateType === mychoiceSdkComponents.DateTypes.Month) {
1515
+ dispatchDriverCancellationState({
1516
+ type: mychoiceSdkStore.StoreFormCarDriverCancellationActionTypes.FormCarDriverInsuranceCancelStartMonthSelect,
1517
+ payload: {
1518
+ startMonth: value,
1519
+ index,
1520
+ },
1521
+ });
1522
+ }
1523
+ if (dateType === mychoiceSdkComponents.DateTypes.Year) {
1524
+ dispatchDriverCancellationState({
1525
+ type: mychoiceSdkStore.StoreFormCarDriverCancellationActionTypes.FormCarDriverInsuranceCancelStartYearSelect,
1526
+ payload: {
1527
+ startYear: value,
1528
+ index,
1529
+ },
1530
+ });
1531
+ }
1532
+ };
1533
+ const handleEndDateChange = (index) => (dateType) => ({ value }) => {
1534
+ if (dateType === mychoiceSdkComponents.DateTypes.Month) {
1535
+ dispatchDriverCancellationState({
1536
+ type: mychoiceSdkStore.StoreFormCarDriverCancellationActionTypes.FormCarDriverInsuranceCancelEndMonthSelect,
1537
+ payload: {
1538
+ endMonth: value,
1539
+ index,
1540
+ },
1541
+ });
1542
+ }
1543
+ if (dateType === mychoiceSdkComponents.DateTypes.Year) {
1544
+ dispatchDriverCancellationState({
1545
+ type: mychoiceSdkStore.StoreFormCarDriverCancellationActionTypes.FormCarDriverInsuranceCancelEndYearSelect,
1546
+ payload: {
1547
+ endYear: value,
1548
+ index,
1549
+ },
1550
+ });
1551
+ }
1552
+ };
1553
+ return (jsxRuntime.jsxs("div", { className: "form-section", children: [jsxRuntime.jsx("h2", { className: isTheBig ? 'thebig-bold' : '', children: "Insurance Cancellation" }), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.yesNoOptions, onChange: handleCancellationChange, name: "insuranceCancellation", defaultValue: getSelectedOption(mychoiceSdkComponents.yesNoOptions, insuranceCancellation), title: `Has ${firstName} had an insurance company cancellation or
1554
+ a time without insurance coverage, within the past 3 years?`, description: "If an insurance company cancels your policy, it will increase your future insurance premiums. The most common reasons for cancellations include missed payments, excessive claims, false declarations, or criminal actions, for example. If you cancel the insurance policy, it is not relevant." }), insuranceCancellation && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [insuranceCancellationList?.map(({ cancellationReason, startYear, startMonth, endYear, endMonth, }, index) => {
1555
+ const defaultStartDate = {
1556
+ year: startYear,
1557
+ month: startMonth,
1558
+ };
1559
+ const defaultEndDate = {
1560
+ year: endYear,
1561
+ month: endMonth,
1562
+ };
1563
+ const now = mychoiceSdkComponents.getFormattedDate('', 'yyyy-MM-dd');
1564
+ const days = birthDay ? (+birthDay + 1) : 1;
1565
+ const endDate = endYear && endMonth ? mychoiceSdkStore.addDayToDate(`${endYear}-${endMonth}`, days) : now;
1566
+ const currentMinDate = mychoiceSdkComponents.getMinDateByYears(mychoiceSdkComponents.getMinDate(birthDate, firstLicenceAge), 3);
1567
+ const currentEndDate = mychoiceSdkComponents.compareDates(endDate, currentMinDate) < 0 ? currentMinDate : endDate;
1568
+ return (jsxRuntime.jsxs("div", { className: "list-block", children: [jsxRuntime.jsx("hr", {}), jsxRuntime.jsxs("div", { className: "list-item", children: [jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.insuranceCancellationReasonOptions, name: `cancellationReason-${index}`, onChange: handleReasonChange(index), defaultValue: cancellationReason, title: "Reason", placeholder: "Select from the list", isRemovable: insuranceCancellationList.length > 1, onIconClick: handleIconClick(index), autoSelectIfValueIsOutOfOptions: false, error: !cancellationReason && driverState.inValidation, errorMessage: getErrorMessage(cancellationReason, driverState.inValidation) }), jsxRuntime.jsx(DateSelectFormBox, { name: `startDate-${index}`, dateNames: [`startYear-${index}`, `startMonth-${index}`], onDateChange: handleStartDateChange(index), defaultValue: defaultStartDate, title: "Start date", errorMessage: getDateErrorMessage(['01', startMonth, startYear], driverState.inValidation), error: driverState.inValidation, minDate: currentMinDate, maxDate: currentEndDate }), jsxRuntime.jsx(DateSelectFormBox, { name: `endDate-${index}`, dateNames: [`endYear-${index}`, `endMonth-${index}`], onDateChange: handleEndDateChange(index), defaultValue: defaultEndDate, title: "End Date", errorMessage: getDateErrorMessage(['01', endMonth, endYear], driverState.inValidation), error: driverState.inValidation, minDate: startMonth && startYear
1569
+ ? mychoiceSdkStore.addDayToDate(`${startYear}-${startMonth}`, days) : currentMinDate })] })] }, `insurance-cancellation-${index}`));
1570
+ }), insuranceCancellationList?.length < 3 && (jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { category: mychoiceSdkComponents.CategoryTypes.Filled, onClick: handleAddButtonClick, size: mychoiceSdkComponents.SizeTypes.Medium, color: mychoiceSdkComponents.ColorTypes.Primary, label: "Add another" }))] }))] }));
1571
+ };
1572
+
1573
+ const BlockDriverSuspension = () => {
1574
+ const { driverState, dispatchDriverSuspensionState } = mychoiceSdkStore.useStoreFormCarDriverSuspension();
1575
+ const { licenceSuspension, licenceSuspensionList = [] } = driverState.items[driverState.activeIndex];
1576
+ const { dispatchDriverBaseState } = mychoiceSdkStore.useStoreFormCarDriverBase();
1577
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
1578
+ const isTheBig = appType === mychoiceSdkComponents.AppTypes.TheBig;
1579
+ const { firstName, birthYear, birthMonth, birthDay, licenceInfo: { firstLicenceAge }, } = driverState.items[driverState.activeIndex];
1580
+ const birthDate = birthYear && birthMonth && birthDay ? `${birthYear}-${birthMonth}-${birthDay}` : '';
1581
+ const handleSuspensionChange = ({ value }) => {
1582
+ dispatchDriverSuspensionState({
1583
+ type: mychoiceSdkStore.StoreFormCarDriverSuspensionActionTypes.FormCarDriverLicenceSuspensionSelect,
1584
+ payload: { licenceSuspension: value },
1585
+ });
1586
+ if (!value) {
1587
+ dispatchDriverBaseState({
1588
+ type: mychoiceSdkStore.StoreFormCarDriverBaseActionTypes.FormCarDriverInitialList,
1589
+ payload: { listKey: mychoiceSdkComponents.DriverListTypes.LicenceSuspension },
1590
+ });
1591
+ }
1592
+ };
1593
+ const handleIconClick = (index) => () => {
1594
+ dispatchDriverSuspensionState({
1595
+ type: mychoiceSdkStore.StoreFormCarDriverSuspensionActionTypes.FormCarDriverLicenceSuspensionDelete,
1596
+ payload: { itemIndex: index },
1597
+ });
1598
+ };
1599
+ const handleAddButtonClick = () => {
1600
+ dispatchDriverSuspensionState({
1601
+ type: mychoiceSdkStore.StoreFormCarDriverSuspensionActionTypes.FormCarDriverLicenceSuspensionAdd,
1602
+ });
1603
+ };
1604
+ const handleReasonChange = (index) => ({ value }) => {
1605
+ dispatchDriverSuspensionState({
1606
+ type: mychoiceSdkStore.StoreFormCarDriverSuspensionActionTypes.FormCarDriverLicenceSuspensionReasonSelect,
1607
+ payload: {
1608
+ reason: value,
1609
+ index,
1610
+ },
1611
+ });
1612
+ };
1613
+ const handleSuspensionDateChange = (index) => (dateType) => ({ value }) => {
1614
+ if (dateType === mychoiceSdkComponents.DateTypes.Month) {
1615
+ dispatchDriverSuspensionState({
1616
+ type: mychoiceSdkStore.StoreFormCarDriverSuspensionActionTypes.FormCarDriverLicenceSuspensionMonthSelect,
1617
+ payload: {
1618
+ suspensionMonth: value,
1619
+ index,
1620
+ },
1621
+ });
1622
+ }
1623
+ if (dateType === mychoiceSdkComponents.DateTypes.Year) {
1624
+ dispatchDriverSuspensionState({
1625
+ type: mychoiceSdkStore.StoreFormCarDriverSuspensionActionTypes.FormCarDriverLicenceSuspensionYearSelect,
1626
+ payload: {
1627
+ suspensionYear: value,
1628
+ index,
1629
+ },
1630
+ });
1631
+ }
1632
+ };
1633
+ const handleReinstatementDateChange = (index) => (dateType) => ({ value }) => {
1634
+ if (dateType === mychoiceSdkComponents.DateTypes.Month) {
1635
+ dispatchDriverSuspensionState({
1636
+ type: mychoiceSdkStore.StoreFormCarDriverSuspensionActionTypes.FormCarDriverLicenceReinstatementMonthSelect,
1637
+ payload: {
1638
+ reinstatementMonth: value,
1639
+ index,
1640
+ },
1641
+ });
1642
+ }
1643
+ if (dateType === mychoiceSdkComponents.DateTypes.Year) {
1644
+ dispatchDriverSuspensionState({
1645
+ type: mychoiceSdkStore.StoreFormCarDriverSuspensionActionTypes.FormCarDriverLicenceReinstatementYearSelect,
1646
+ payload: {
1647
+ reinstatementYear: value,
1648
+ index,
1649
+ },
1650
+ });
1651
+ }
1652
+ };
1653
+ return (jsxRuntime.jsxs("div", { className: "form-block-container", children: [jsxRuntime.jsx("h2", { className: isTheBig ? 'thebig-bold' : '', children: "Licence Suspensions" }), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.yesNoOptions, onChange: handleSuspensionChange, name: "licenceSuspension", defaultValue: getSelectedOption(mychoiceSdkComponents.yesNoOptions, licenceSuspension), title: `Has ${firstName} had a licence suspension within the past 3 years?`, description: "Three licence suspensions are common: 1) driving under the influence, 2) being found guilty of drinking and driving, and 3) a police officer finding reasonable grounds for a driving offence. Licence suspensions are also different from driving prohibitions as part of a criminal sentence." }), licenceSuspension && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [licenceSuspensionList?.map(({ suspensionReason, suspensionYear, suspensionMonth, reinstatementYear, reinstatementMonth, }, index) => {
1654
+ const defaultSuspensionDate = {
1655
+ year: suspensionYear,
1656
+ month: suspensionMonth,
1657
+ };
1658
+ const defaultReinstatementDate = {
1659
+ year: reinstatementYear,
1660
+ month: reinstatementMonth,
1661
+ };
1662
+ const now = mychoiceSdkComponents.getFormattedDate('', 'yyyy-MM-dd');
1663
+ const days = birthDay ? (+birthDay + 1) : 1;
1664
+ const endDate = reinstatementYear && reinstatementMonth ? mychoiceSdkStore.addDayToDate(`${reinstatementYear}-${reinstatementMonth}`, days) : now;
1665
+ const currentMinDate = mychoiceSdkComponents.getMinDateByYears(mychoiceSdkComponents.getMinDate(birthDate, firstLicenceAge), 3);
1666
+ const currentEndDate = mychoiceSdkComponents.compareDates(endDate, currentMinDate) < 0 ? currentMinDate : endDate;
1667
+ return (jsxRuntime.jsxs("div", { className: "list-block", children: [jsxRuntime.jsx("hr", {}), jsxRuntime.jsxs("div", { className: "list-item", children: [jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.licenceSuspensionsReasonOptions, name: `suspensionReason-${index}`, onChange: handleReasonChange(index), defaultValue: suspensionReason, title: "Reason for licence suspension", placeholder: "Select from the list", isRemovable: licenceSuspensionList.length > 1, onIconClick: handleIconClick(index), autoSelectIfValueIsOutOfOptions: false, error: !suspensionReason && driverState.inValidation, errorMessage: getErrorMessage(suspensionReason, driverState.inValidation) }), jsxRuntime.jsx(DateSelectFormBox, { name: `suspensionDate-${index}`, dateNames: [`suspensionYear-${index}`, `suspensionMonth-${index}`], onDateChange: handleSuspensionDateChange(index), defaultValue: defaultSuspensionDate, title: "Start date", errorMessage: getDateErrorMessage(['01', suspensionMonth, suspensionYear], driverState.inValidation), error: driverState.inValidation, minDate: currentMinDate, maxDate: currentEndDate }), jsxRuntime.jsx(DateSelectFormBox, { name: `reinstatementDate-${index}`, dateNames: [`reinstatementYear-${index}`, `reinstatementMonth-${index}`], onDateChange: handleReinstatementDateChange(index), defaultValue: defaultReinstatementDate, title: "End Date", errorMessage: getDateErrorMessage(['01', reinstatementMonth, reinstatementYear], driverState.inValidation), error: driverState.inValidation, minDate: suspensionYear && suspensionMonth
1668
+ ? mychoiceSdkStore.addDayToDate(`${suspensionYear}-${suspensionMonth}`, days) : currentMinDate })] })] }, `suspension-${index}`));
1669
+ }), licenceSuspensionList?.length < 3 && (jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { className: "list-item-add", category: mychoiceSdkComponents.CategoryTypes.Filled, onClick: handleAddButtonClick, size: mychoiceSdkComponents.SizeTypes.Medium, color: mychoiceSdkComponents.ColorTypes.Primary, label: "Add another" }))] }))] }));
1670
+ };
1671
+
1672
+ const BlockDriverAccident = () => {
1673
+ const { driverState, dispatchDriverAccidentState } = mychoiceSdkStore.useStoreFormCarDriverAccident();
1674
+ const { dispatchDriverBaseState } = mychoiceSdkStore.useStoreFormCarDriverBase();
1675
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
1676
+ const isTheBig = appType === mychoiceSdkComponents.AppTypes.TheBig;
1677
+ const { accident, accidentList = [] } = driverState.items[driverState.activeIndex];
1678
+ const { firstName, birthYear, birthMonth, birthDay, licenceInfo: { firstLicenceAge }, } = driverState.items[driverState.activeIndex];
1679
+ const birthDate = birthYear && birthMonth && birthDay ? `${birthYear}-${birthMonth}-${birthDay}` : '';
1680
+ const handleAccidentChange = ({ value }) => {
1681
+ dispatchDriverAccidentState({
1682
+ type: mychoiceSdkStore.StoreFormCarDriverAccidentActionTypes.FormCarDriverAccidentSelect,
1683
+ payload: { accident: value },
1684
+ });
1685
+ if (!value) {
1686
+ dispatchDriverBaseState({
1687
+ type: mychoiceSdkStore.StoreFormCarDriverBaseActionTypes.FormCarDriverInitialList,
1688
+ payload: { listKey: mychoiceSdkComponents.DriverListTypes.Accident },
1689
+ });
1690
+ }
1691
+ };
1692
+ const handleIconClick = (index) => () => {
1693
+ dispatchDriverAccidentState({
1694
+ type: mychoiceSdkStore.StoreFormCarDriverAccidentActionTypes.FormCarDriverAccidentDelete,
1695
+ payload: { itemIndex: index },
1696
+ });
1697
+ };
1698
+ const handleAddButtonClick = () => {
1699
+ dispatchDriverAccidentState({
1700
+ type: mychoiceSdkStore.StoreFormCarDriverAccidentActionTypes.FormCarDriverAccidentAdd,
1701
+ });
1702
+ };
1703
+ const handleAccidentDateChange = (index) => (dateType) => ({ value }) => {
1704
+ if (dateType === mychoiceSdkComponents.DateTypes.Month) {
1705
+ dispatchDriverAccidentState({
1706
+ type: mychoiceSdkStore.StoreFormCarDriverAccidentActionTypes.FormCarDriverAccidentMonthSelect,
1707
+ payload: {
1708
+ accidentMonth: value,
1709
+ index,
1710
+ },
1711
+ });
1712
+ }
1713
+ if (dateType === mychoiceSdkComponents.DateTypes.Year) {
1714
+ dispatchDriverAccidentState({
1715
+ type: mychoiceSdkStore.StoreFormCarDriverAccidentActionTypes.FormCarDriverAccidentYearSelect,
1716
+ payload: {
1717
+ accidentYear: value,
1718
+ index,
1719
+ },
1720
+ });
1721
+ }
1722
+ };
1723
+ return (jsxRuntime.jsxs("div", { className: "form-block-container", children: [jsxRuntime.jsx("h2", { className: isTheBig ? 'thebig-bold' : '', children: "Accidents" }), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.yesNoOptions, onChange: handleAccidentChange, name: "accident", defaultValue: getSelectedOption(mychoiceSdkComponents.yesNoOptions, accident), title: `Has ${firstName} ever been at-fault for any accidents?`, description: "An at-fault accident means you are responsible for the car accident according to the investigative report. Whether you did not obey traffic signals or hit the brakes too late, it will show up on your insurance record for up to ten years. Insurers access at-fault information if one party reports it, so it is best to disclose previous incidents. A clean driving record mitigates additional hikes to your insurance premium." }), accident && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [accidentList?.map(({ accidentYear, accidentMonth, }, index) => {
1724
+ const defaultSuspensionDate = {
1725
+ year: accidentYear,
1726
+ month: accidentMonth,
1727
+ day: '01',
1728
+ };
1729
+ return (jsxRuntime.jsxs("div", { className: "list-block", children: [jsxRuntime.jsx("hr", {}), jsxRuntime.jsx(DateSelectFormBox, { name: `accidentDate-${index}`, dateNames: [`accidentYear-${index}`, `accidentMonth-${index}`], onDateChange: handleAccidentDateChange(index), isRemovable: accidentList.length > 1, onIconClick: handleIconClick(index), defaultValue: defaultSuspensionDate, title: "Accident date", errorMessage: getDateErrorMessage(['01', accidentMonth, accidentYear], driverState.inValidation), error: driverState.inValidation, minDate: mychoiceSdkComponents.getMinDate(birthDate, firstLicenceAge) })] }, `accident-${index}`));
1730
+ }), accidentList?.length < 3 && (jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { category: mychoiceSdkComponents.CategoryTypes.Filled, onClick: handleAddButtonClick, size: mychoiceSdkComponents.SizeTypes.Medium, color: mychoiceSdkComponents.ColorTypes.Primary, label: "Add another" }))] }))] }));
1731
+ };
1732
+
1733
+ const BlockDriverTicket = () => {
1734
+ const { driverState, dispatchDriverTicketState } = mychoiceSdkStore.useStoreFormCarDriverTicket();
1735
+ const { ticket, ticketList = [] } = driverState.items[driverState.activeIndex];
1736
+ const { dispatchDriverBaseState } = mychoiceSdkStore.useStoreFormCarDriverBase();
1737
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
1738
+ const isTheBig = appType === mychoiceSdkComponents.AppTypes.TheBig;
1739
+ const { firstName, minMaxDates, } = driverState.items[driverState.activeIndex];
1740
+ const { gOneMin } = minMaxDates;
1741
+ const handleTicketChange = ({ value }) => {
1742
+ dispatchDriverTicketState({
1743
+ type: mychoiceSdkStore.StoreFormCarDriverTicketActionTypes.FormCarDriverTrafficTicketSelect,
1744
+ payload: { ticket: value },
1745
+ });
1746
+ if (!value) {
1747
+ dispatchDriverBaseState({
1748
+ type: mychoiceSdkStore.StoreFormCarDriverBaseActionTypes.FormCarDriverInitialList,
1749
+ payload: { listKey: mychoiceSdkComponents.DriverListTypes.Ticket },
1750
+ });
1751
+ }
1752
+ };
1753
+ const handleIconClick = (index) => () => {
1754
+ dispatchDriverTicketState({
1755
+ type: mychoiceSdkStore.StoreFormCarDriverTicketActionTypes.FormCarDriverTrafficTicketDelete,
1756
+ payload: { itemIndex: index },
1757
+ });
1758
+ };
1759
+ const handleAddButtonClick = () => {
1760
+ dispatchDriverTicketState({
1761
+ type: mychoiceSdkStore.StoreFormCarDriverTicketActionTypes.FormCarDriverTrafficTicketAdd,
1762
+ });
1763
+ };
1764
+ const handleReasonChange = (index) => ({ value }) => {
1765
+ dispatchDriverTicketState({
1766
+ type: mychoiceSdkStore.StoreFormCarDriverTicketActionTypes.FormCarDriverTrafficTicketReasonSelect,
1767
+ payload: {
1768
+ reason: value,
1769
+ index,
1770
+ },
1771
+ });
1772
+ };
1773
+ const handleTicketDateChange = (index) => (dateType) => ({ value }) => {
1774
+ if (dateType === mychoiceSdkComponents.DateTypes.Month) {
1775
+ dispatchDriverTicketState({
1776
+ type: mychoiceSdkStore.StoreFormCarDriverTicketActionTypes.FormCarDriverTrafficTicketMonthSelect,
1777
+ payload: {
1778
+ ticketMonth: value,
1779
+ index,
1780
+ },
1781
+ });
1782
+ }
1783
+ if (dateType === mychoiceSdkComponents.DateTypes.Year) {
1784
+ dispatchDriverTicketState({
1785
+ type: mychoiceSdkStore.StoreFormCarDriverTicketActionTypes.FormCarDriverTrafficTicketYearSelect,
1786
+ payload: {
1787
+ ticketYear: value,
1788
+ index,
1789
+ },
1790
+ });
1791
+ }
1792
+ };
1793
+ return (jsxRuntime.jsxs("div", { className: "form-block-container", children: [jsxRuntime.jsx("h2", { className: isTheBig ? 'thebig-bold' : '', children: "Traffic Tickets" }), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.yesNoOptions, onChange: handleTicketChange, name: "ticket", defaultValue: getSelectedOption(mychoiceSdkComponents.yesNoOptions, ticket), title: `Except for parking, has ${firstName} had any driving related tickets within the past 3 years?`, description: "Insurers want to make sure drivers are safe, which means minimizing driving infractions and encouraging good behaviour on the roads. Some of the most common liabilities include speeding, failure to stop, running a red light, reckless driving, and seatbelt negligence. It affects your insurance premium for up to three years and may void your policy." }), ticket && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [ticketList?.map(({ ticketReason, ticketYear, ticketMonth, }, index) => {
1794
+ const defaultTicketDate = {
1795
+ year: ticketYear,
1796
+ month: ticketMonth,
1797
+ day: '01',
1798
+ };
1799
+ return (jsxRuntime.jsxs("div", { className: "list-block", children: [jsxRuntime.jsx("hr", {}), jsxRuntime.jsxs("div", { className: "list-item", children: [jsxRuntime.jsx(SelectFormBox, { groupOptions: mychoiceSdkComponents.trafficTicketsGroupOptions, name: `ticketReason-${index}`, onChange: handleReasonChange(index), defaultValue: ticketReason, title: "Reason for traffic ticket", placeholder: "Select from the list", isRemovable: ticketList.length > 1, onIconClick: handleIconClick(index), autoSelectIfValueIsOutOfOptions: false, error: !ticketReason && driverState.inValidation, errorMessage: getErrorMessage(ticketReason, driverState.inValidation) }), jsxRuntime.jsx(DateSelectFormBox, { name: `ticketDate-${index}`, dateNames: [`ticketYear-${index}`, `ticketMonth-${index}`], onDateChange: handleTicketDateChange(index), defaultValue: defaultTicketDate, title: "Ticket date", errorMessage: getDateErrorMessage(['01', ticketMonth, ticketYear], driverState.inValidation), error: driverState.inValidation, minDate: mychoiceSdkComponents.getMinDateByYears(gOneMin, 3) })] })] }, `ticket-${index}`));
1800
+ }), ticketList?.length < 3 && (jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { className: "list-item-add", category: mychoiceSdkComponents.CategoryTypes.Filled, onClick: handleAddButtonClick, size: mychoiceSdkComponents.SizeTypes.Medium, color: mychoiceSdkComponents.ColorTypes.Primary, label: "Add another" }))] }))] }));
1801
+ };
1802
+
1803
+ const SectionDriverHistory = () => (jsxRuntime.jsxs("div", { className: "form-section", children: [jsxRuntime.jsx(BlockDriverSuspension, {}), jsxRuntime.jsx(BlockDriverAccident, {}), jsxRuntime.jsx(BlockDriverTicket, {})] }));
1804
+
1805
+ const PageDriver = () => {
1806
+ const { appConfigState: { appType, localIndex } } = mychoiceSdkStore.useStoreAppConfig();
1807
+ const { driverState: { activeIndex, items }, dispatchDriverBaseState } = mychoiceSdkStore.useStoreFormCarDriverBase();
1808
+ const { vehicleFormValidate, vehicleFormIsValid } = mychoiceSdkStore.useValidationVehicle();
1809
+ const { driverFormIsValid, driverFormValidate } = mychoiceSdkStore.useValidationDriver();
1810
+ mychoiceSdkComponents.useEffectOnce(() => {
1811
+ if (!vehicleFormIsValid) {
1812
+ vehicleFormValidate();
1813
+ }
1814
+ window.scrollTo({
1815
+ top: 0,
1816
+ behavior: 'smooth',
1817
+ });
1818
+ });
1819
+ const [isRender, setIsRender] = React.useState(false);
1820
+ const validateForm = () => driverFormValidate(false);
1821
+ const createDriver = () => {
1822
+ dispatchDriverBaseState({
1823
+ type: mychoiceSdkStore.StoreFormCarDriverBaseActionTypes.FormCarDriverCreate,
1824
+ });
1825
+ window.scrollTo({
1826
+ top: 0,
1827
+ behavior: 'smooth',
1828
+ });
1829
+ };
1830
+ React.useEffect(() => {
1831
+ setIsRender(false);
1832
+ }, [activeIndex]);
1833
+ React.useEffect(() => {
1834
+ setIsRender(true);
1835
+ }, [isRender]);
1836
+ return (jsxRuntime.jsxs("div", { className: "form-container", children: [jsxRuntime.jsx(TabDriver, { createItem: createDriver }), jsxRuntime.jsxs("div", { className: "form-section-container", children: [isRender && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(SectionDriverInfo, {}), jsxRuntime.jsx(SectionDriverLicence, {}), jsxRuntime.jsx(SectionDriverInsurancePolicy, {}), jsxRuntime.jsx(SectionDriverCancellation, {}), jsxRuntime.jsx(SectionDriverHistory, {})] })), appType === mychoiceSdkComponents.AppTypes.TheBig
1837
+ ? (jsxRuntime.jsx(NavigationBottomTheBig, { createItem: createDriver, formSteps: formSteps[mychoiceSdkComponents.InsuranceTypes.Car], itemCount: items.length, validateForm: validateForm, formIsValid: driverFormIsValid }))
1838
+ : (jsxRuntime.jsx(NavigationBottom, { createItem: createDriver, formSteps: formSteps[mychoiceSdkComponents.InsuranceTypes.Car], itemCount: items.length, validateForm: validateForm, formIsValid: driverFormIsValid }))] }), localIndex !== mychoiceSdkComponents.defaultLocalIndex
1839
+ && jsxRuntime.jsx("img", { className: "logo-for-partner", src: myChoicePartnerLogo, alt: "partner logo" })] }));
1840
+ };
1841
+
1842
+ const BlockVehLinks = () => {
1843
+ const { vehicleState: { items: vehicles } } = mychoiceSdkStore.useStoreFormCarVehicle();
1844
+ const { driverState: { items: drivers } } = mychoiceSdkStore.useStoreFormCarDriverBase();
1845
+ const { discountState: { vehlinks }, dispatchDiscountState } = mychoiceSdkStore.useStoreFormCarDiscount();
1846
+ const driverOptions = drivers.map((driver, index) => ({ name: driver.firstName, value: index }));
1847
+ const handleDriverChange = (vehicleIndex) => ({ value }) => {
1848
+ dispatchDiscountState({
1849
+ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountVehlinkSelect,
1850
+ payload: {
1851
+ driverIndex: value,
1852
+ vehicleIndex,
1853
+ },
1854
+ });
1855
+ };
1856
+ if (drivers.length > 1) {
1857
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(LabelFormBox, { title: "Since there are multiple drivers in this quote,\n please tell us who drives which vehicle the most.\n Please provide an answer that best suits your situation." }), vehicles.map((vehicle, index) => {
1858
+ const { year, make, model } = vehicle;
1859
+ const selectedDriver = vehlinks.find((vehlink) => (vehlink.vehicleIndex === index && vehlink.priority === mychoiceSdkComponents.DriverPriorityTypes.Prn));
1860
+ return (jsxRuntime.jsx(SelectFormBox, { title: `Who is the principal driver of the ${year} ${make} ${model} ?`, onChange: handleDriverChange(index), options: driverOptions, defaultValue: selectedDriver?.driverIndex || 0, name: `vehlink-${index}` }, `vehlink-${index}`));
1861
+ })] }));
1862
+ }
1863
+ return null;
1864
+ };
1865
+
1866
+ const BlockNextPageInfo$1 = () => {
1867
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
1868
+ const isTheBig = appType === mychoiceSdkComponents.AppTypes.TheBig;
1869
+ return (jsxRuntime.jsx("div", { className: "next-page-info", children: isTheBig ? (jsxRuntime.jsx("div", { className: "privacy-policy", children: jsxRuntime.jsxs("p", { children: [jsxRuntime.jsx("span", { children: "DISCLAIMER: " }), "As insurance premiums are based on the information you provide it is important that it be 100% accurate and up to date. If you are not sure it is best to check before completing your quote."] }) })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("h5", { children: "On the next page, you will also be able to:" }), jsxRuntime.jsxs("div", { className: "next-page-points", children: [jsxRuntime.jsx("p", { children: "1. See what rates insurance carriers are offering" }), jsxRuntime.jsx("p", { children: "2. Get in touch with a broker and secure your rate" }), jsxRuntime.jsx("p", { children: "3. Potentially save more by speaking with a broker" })] }), jsxRuntime.jsx("div", { className: "privacy-policy", children: jsxRuntime.jsxs("p", { children: ["Once you submit this form, you are agreeing to have your insurance quote sent to you via email and My Choice will provide your contact information to one of our trusted broker partners, who will contact you after your quote is complete to further assist you in securing your best rate. For more details, see our", jsxRuntime.jsx("a", { href: "https://www.mychoice.ca/privacy-policy/", children: " Privacy Policy" }), "."] }) })] })) }));
1870
+ };
1871
+
1872
+ const BlockSubmit$1 = ({ className, label, buttonSize, isRecalc = false, }) => {
1873
+ const { postRequestQuote } = mychoiceSdkStore.QuoteDataHandler();
1874
+ const { carDiscountFormValidate } = mychoiceSdkStore.useValidationCarDiscount();
1875
+ const handleRequest = () => {
1876
+ postRequestQuote(isRecalc);
1877
+ };
1878
+ const handleGetQuotesClick = () => {
1879
+ carDiscountFormValidate(true, handleRequest);
1880
+ };
1881
+ return (jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { className: className, size: buttonSize, category: mychoiceSdkComponents.CategoryTypes.Filled, onClick: handleGetQuotesClick, color: mychoiceSdkComponents.ColorTypes.Primary, label: label }));
1882
+ };
1883
+ BlockSubmit$1.defaultProps = {
1884
+ buttonSize: mychoiceSdkComponents.SizeTypes.Large,
1885
+ label: 'Get Your Quotes',
1886
+ className: '',
1887
+ };
1888
+
1889
+ const SectionDiscountInfo$1 = () => {
1890
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
1891
+ const isTheBig = appType === mychoiceSdkComponents.AppTypes.TheBig;
1892
+ const { discountState, dispatchDiscountState } = mychoiceSdkStore.useStoreFormCarDiscount();
1893
+ const { validateEmail, errorMessage } = mychoiceSdkStore.useHandlerQuoterEmail();
1894
+ const { multiplePoliciesDiscount, appInstallDiscount, caaMemberDiscount, quoterInfo, emailTo: { email, emailStatus }, } = discountState;
1895
+ const { firstName, lastName, phone, driverLicense = '', caslConsent, } = quoterInfo;
1896
+ const handleMultiplePolicyChange = ({ value }) => {
1897
+ dispatchDiscountState({
1898
+ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountMultiplePoliciesSelect,
1899
+ payload: { multiplePoliciesDiscount: value },
1900
+ });
1901
+ };
1902
+ const handleAppInstallChange = ({ value }) => {
1903
+ dispatchDiscountState({
1904
+ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountAppInstallSelect,
1905
+ payload: { appInstallDiscount: value },
1906
+ });
1907
+ };
1908
+ const handleCaaMemberChange = ({ value }) => {
1909
+ dispatchDiscountState({
1910
+ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountCaaMemberSelect,
1911
+ payload: { caaMemberDiscount: value },
1912
+ });
1913
+ };
1914
+ const handleFirstNameChange = ({ value }) => {
1915
+ dispatchDiscountState({
1916
+ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountQuoterFirstNameSet,
1917
+ payload: { firstName: value },
1918
+ });
1919
+ };
1920
+ const handleLastNameChange = ({ value }) => {
1921
+ dispatchDiscountState({
1922
+ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountQuoterLastNameSet,
1923
+ payload: { lastName: value },
1924
+ });
1925
+ };
1926
+ const handleDriverLicenseChange = ({ value }) => {
1927
+ dispatchDiscountState({
1928
+ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountQuoterDriverLicenseSet,
1929
+ payload: { driverLicense: value },
1930
+ });
1931
+ };
1932
+ const handlePhoneNumberChange = ({ value }) => {
1933
+ dispatchDiscountState({
1934
+ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountQuoterPhoneSet,
1935
+ payload: { phone: value },
1936
+ });
1937
+ };
1938
+ const handleEmailChange = ({ value }) => {
1939
+ validateEmail(value);
1940
+ };
1941
+ const handleCaslConsentChange = ({ value }) => {
1942
+ dispatchDiscountState({
1943
+ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountQuoterCaslConsentSet,
1944
+ payload: { caslConsent: value },
1945
+ });
1946
+ };
1947
+ return (jsxRuntime.jsxs("div", { className: "form-section", children: [jsxRuntime.jsx("h5", { className: `${isTheBig ? 'thebig-medium' : ''} hint-message`, children: "You are just seconds away from the best quote" }), jsxRuntime.jsx(LabelFormBox, { title: "You are seconds away from receiving your car insurance quotes,\n please provide your email after completing the discount section so we\n can send you your personalized free car insurance quotes!" }), jsxRuntime.jsx(BlockVehLinks, {}), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.yesNoOptions, onChange: handleMultiplePolicyChange, name: "multiplePoliciesDiscount", defaultValue: getSelectedOption(mychoiceSdkComponents.yesNoOptions, multiplePoliciesDiscount), title: "You could receive a 10-15% discount for bundling insurance with multiple policies with the same insurance company. Does that interest you?", description: "Bundling your home and auto insurance can save you significantly on insurance premiums as a whole package. Do you want to learn more about the benefits of multiple policies for home, tenant, condo, or car insurance? All you have to do is select yes.." }), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.yesNoOptions, onChange: handleCaaMemberChange, name: "caaMemberDiscount", defaultValue: getSelectedOption(mychoiceSdkComponents.yesNoOptions, caaMemberDiscount), title: "Please indicate if you are a member of CAA, you could save up to an additional 20%." }), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.yesNoOptions, onChange: handleAppInstallChange, name: "appInstallDiscount", defaultValue: getSelectedOption(mychoiceSdkComponents.yesNoOptions, appInstallDiscount), title: "You could receive up to a 30% discount by using an app to track driving habits. Does that interest you?", description: "Get rewarded for safe driving with the click of a button. If you install the app, you may be eligible for a 30% discount on your insurance premiums. Typically, you receive 10% of the discount upfront and the balance after six months of good driving." }), isTheBig
1948
+ ? (jsxRuntime.jsxs("div", { className: "input-form-box-container", children: [jsxRuntime.jsx(LabelFormBox, { title: "Complete this form to see all your personalized\n quotes on the next page, you will also be able to:" }), jsxRuntime.jsxs("ol", { className: "ordered-block", children: [jsxRuntime.jsx("li", { children: "See what rates insurance carriers are offering" }), jsxRuntime.jsx("li", { children: "Get in touch with us and secure your rate" }), jsxRuntime.jsx("li", { children: "Potentially save more by speaking with a broker" })] })] }))
1949
+ : jsxRuntime.jsx("h2", { children: "Complete the form below to see which companies are offering your quotes." }), jsxRuntime.jsx(InputFormBox, { name: "firstName", title: "First Name", onChange: handleFirstNameChange, defaultValue: firstName, placeholder: "Your First Name", error: !firstName && discountState.inValidation, errorMessage: getErrorMessage(firstName, discountState.inValidation) }), jsxRuntime.jsx(InputFormBox, { name: "lastname", title: "Last Name", onChange: handleLastNameChange, defaultValue: lastName, placeholder: "Your Last Name", error: !lastName && discountState.inValidation, errorMessage: getErrorMessage(lastName, discountState.inValidation) }), isTheBig
1950
+ && (jsxRuntime.jsx(InputFormLicenceBox, { name: "driverLicense", title: "Driver Licence Number (Optional)", onChange: handleDriverLicenseChange, defaultValue: driverLicense, placeholder: "V1234-12345-12345", maxLength: 17, description: "Enter your drivers licence number in to receive a more accurate, prequalified quote from our broker partners. This will enable you to provide less details over the phone if you choose to have a broker contact you. This is an optional input." })), jsxRuntime.jsx(InputFormPhoneBox, { name: "phone", onChange: handlePhoneNumberChange, defaultValue: phone, title: "Phone Number", placeholder: "(855) 325-8444", error: !phone && discountState.inValidation, errorMessage: getErrorMessage(phone, discountState.inValidation) }), jsxRuntime.jsx(InputFormEmailBox, { validationStatus: emailStatus, errorMessage: emailStatus === mychoiceSdkComponents.ValidationStatusTypes.Declined
1951
+ ? errorMessage : getErrorMessage(email, discountState.inValidation), error: emailStatus === mychoiceSdkComponents.ValidationStatusTypes.Declined || (!email && discountState.inValidation), name: "email", title: "Please provide your email address so we can send you a copy of your quotes", description: "We will provide you with your insurance quotes immediately after this form completion. If you are not ready to apply today, don\u2019t worry as we will be emailing your quotes to you if you\u2019d like to complete at a later date with the help of one of our trusted broker partners.", onChange: handleEmailChange, defaultValue: email, placeholder: "johnsmith@mychoice.ca" }), isTheBig
1952
+ && (jsxRuntime.jsx(mychoiceSdkComponents.CheckboxForm, { className: "casl-consent", name: "caslConsent", label: "Yes, I consent to receiving emails from the Billyard Insurance Group.\n I understand that I can unsubscribe at any time", onChange: handleCaslConsentChange, defaultValue: caslConsent })), jsxRuntime.jsx(BlockSubmit$1, { className: isTheBig ? 'thebig-bold' : '' }), jsxRuntime.jsx(BlockNextPageInfo$1, {})] }));
1953
+ };
1954
+
1955
+ const PageCarDiscount = () => {
1956
+ const { vehicleFormValidate, vehicleFormIsValid } = mychoiceSdkStore.useValidationVehicle();
1957
+ const { driverFormValidate, driverFormIsValid } = mychoiceSdkStore.useValidationDriver();
1958
+ mychoiceSdkComponents.useEffectOnce(() => {
1959
+ if (!vehicleFormIsValid) {
1960
+ vehicleFormValidate();
1961
+ }
1962
+ if (!driverFormIsValid) {
1963
+ driverFormValidate();
1964
+ }
1965
+ window.scrollTo({
1966
+ top: 0,
1967
+ behavior: 'smooth',
1968
+ });
1969
+ });
1970
+ return (jsxRuntime.jsx("div", { className: "form-container", children: jsxRuntime.jsx("div", { className: "form-section-container", children: jsxRuntime.jsx(SectionDiscountInfo$1, {}) }) }));
1971
+ };
1972
+
1973
+ const SectionQuoteEdit = () => {
1974
+ const { appConfigState } = mychoiceSdkStore.useStoreAppConfig();
1975
+ const { driverState, dispatchDriverBaseState } = mychoiceSdkStore.useStoreFormCarDriverBase();
1976
+ const { vehicleState, dispatchVehicleState } = mychoiceSdkStore.useStoreFormCarVehicle();
1977
+ const { discountState: { appInstallDiscount, multiplePoliciesDiscount } } = mychoiceSdkStore.useStoreFormCarDiscount();
1978
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
1979
+ const isTheBig = appType === mychoiceSdkComponents.AppTypes.TheBig;
1980
+ const navigate = reactRouterDom.useNavigate();
1981
+ const vehicles = vehicleState.items.map(({ year, make, model }) => [`${year} ${make} ${model}`]);
1982
+ const drivers = driverState.items.map(({ firstName }) => [`${firstName}`]);
1983
+ const discounts = [[]];
1984
+ if (!appInstallDiscount && !multiplePoliciesDiscount) {
1985
+ discounts[0].push('No discounts');
1986
+ }
1987
+ if (appInstallDiscount) {
1988
+ discounts[0].push('Driving habits scoring app');
1989
+ }
1990
+ if (multiplePoliciesDiscount) {
1991
+ discounts[0].push('Bundle w/ Home');
1992
+ }
1993
+ const vehicleEdit = (vehicleIndex) => () => {
1994
+ dispatchVehicleState({
1995
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarVehicleSelect,
1996
+ payload: {
1997
+ vehicleIndex,
1998
+ },
1999
+ });
2000
+ navigate(`/${appConfigState.localIndex || mychoiceSdkComponents.defaultLocalIndex}/car`);
2001
+ };
2002
+ const driverEdit = (driverIndex) => () => {
2003
+ dispatchDriverBaseState({
2004
+ type: mychoiceSdkStore.StoreFormCarDriverBaseActionTypes.FormCarDriverSelect,
2005
+ payload: {
2006
+ driverIndex,
2007
+ },
2008
+ });
2009
+ navigate(`/${appConfigState.localIndex || mychoiceSdkComponents.defaultLocalIndex}/car/driver`);
2010
+ };
2011
+ const discountEdit = () => () => {
2012
+ navigate(`/${appConfigState.localIndex || mychoiceSdkComponents.defaultLocalIndex}/car/discount`);
2013
+ };
2014
+ return (jsxRuntime.jsxs("div", { className: "edit-quote-section", children: [jsxRuntime.jsx("h3", { className: isTheBig ? 'thebig-bold' : '', children: "Edit Quote" }), jsxRuntime.jsxs("div", { className: "edit-section-content", children: [jsxRuntime.jsx(mychoiceSdkComponents.QuoteEdit, { className: isTheBig ? 'thebig-medium' : '', editClick: vehicleEdit, title: "Vehicle Information", items: vehicles }), jsxRuntime.jsx(mychoiceSdkComponents.QuoteEdit, { className: isTheBig ? 'thebig-medium' : '', editClick: driverEdit, title: "Driver Information", items: drivers }), jsxRuntime.jsx(mychoiceSdkComponents.QuoteEdit, { className: isTheBig ? 'thebig-medium' : '', editClick: discountEdit, title: "Discount Information", items: discounts })] })] }));
2015
+ };
2016
+
2017
+ const BlockEndorsements = () => {
2018
+ const { vehicleState } = mychoiceSdkStore.useStoreFormCarVehicle();
2019
+ const { activeIndex } = vehicleState;
2020
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
2021
+ const isTheBig = appType === mychoiceSdkComponents.AppTypes.TheBig;
2022
+ const [isCoverage, setIsCoverage] = React.useState(vehicleState.items[activeIndex].collision.coverage
2023
+ && vehicleState.items[activeIndex].comprehensive.coverage);
2024
+ React.useEffect(() => {
2025
+ setIsCoverage(vehicleState.items[activeIndex].collision.coverage
2026
+ && vehicleState.items[activeIndex].comprehensive.coverage);
2027
+ }, [activeIndex, vehicleState]);
2028
+ return (jsxRuntime.jsxs("div", { className: "endorsements-container", children: [jsxRuntime.jsx("h4", { className: isTheBig ? 'thebig-bold' : '', children: "Endorsements" }), jsxRuntime.jsxs("div", { className: "labels-block", children: [jsxRuntime.jsx(LabelFormBox, { className: !isCoverage ? 'inActive' : '', name: "loss", title: "Loss of Use", description: "This endorsement will offer you protection in the event you are without use of your vehicle from an accident or it is stolen. You will be provided with a rental or replacement car while your own vehicle is in the process of being repaired or replaced.", isActive: isCoverage }), jsxRuntime.jsx(LabelFormBox, { className: !isCoverage ? 'inActive' : '', name: "liabilityDamage", title: "Liability for Damage for Non-owned Cars", description: "This endorsement will provide coverage and insure you as a driver for vehicles you do not own, for up to $50,000 in physical damages, effectively known as the \u2018rental car endorsement\u2019. This would be applicable throughout all of Canada and the USA.", isActive: isCoverage }), jsxRuntime.jsx(LabelFormBox, { name: "forgiveness", title: "Accident Waiver or Forgiveness", description: "Available to only drivers who have clean record, this endorsement will effectively forgive you and protect your driving record if you were to have your first at-fault accident. This would be beneficial as it would mean that you monthly premiums would not increase if you were to have an at-fault accident.", isActive: true })] })] }));
2029
+ };
2030
+
2031
+ const SectionQuoteRecalc = () => {
2032
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
2033
+ const isTheBig = appType === mychoiceSdkComponents.AppTypes.TheBig;
2034
+ const { vehicleState, dispatchVehicleState } = mychoiceSdkStore.useStoreFormCarVehicle();
2035
+ const { comprehensive, collision, liability } = vehicleState.items[vehicleState.activeIndex];
2036
+ const handleComprehensiveChange = ({ value }) => {
2037
+ dispatchVehicleState({
2038
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarComprehensiveCoverageSelect,
2039
+ payload: { coverage: !!Number(value), deductible: value },
2040
+ });
2041
+ };
2042
+ const handleCollisionChange = ({ value }) => {
2043
+ dispatchVehicleState({
2044
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarCollisionCoverageSelect,
2045
+ payload: { coverage: !!Number(value), deductible: value },
2046
+ });
2047
+ };
2048
+ const handleLiabilityChange = ({ value }) => {
2049
+ dispatchVehicleState({
2050
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarLiabilityCoverageSelect,
2051
+ payload: { coverage: true, limit: value },
2052
+ });
2053
+ };
2054
+ return (jsxRuntime.jsxs("div", { className: "form-container", children: [jsxRuntime.jsx(TabVehicle, { readOnly: true }), jsxRuntime.jsxs("div", { className: "form-section edit-recalc-container", children: [jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.coverageOptions, name: "comprehensive-coverage", onChange: handleComprehensiveChange, defaultValue: getSelectedOption(mychoiceSdkComponents.coverageOptions, comprehensive.coverage ? comprehensive.deductible : 0), title: "Comprehensive coverage", description: "This deductible is the amount of money that you will pay out of your own pocket if your vehicle is damaged in events not covered by collision coverage. This includes events such as falling or flying objects, vandalism, and theft. Your insurance company covers the cost of repair minus the deductible chosen.", placeholder: "Select from the list", autoSelectIfValueIsOutOfOptions: false }), jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.coverageOptions, name: "collision-coverage", onChange: handleCollisionChange, defaultValue: getSelectedOption(mychoiceSdkComponents.coverageOptions, collision.coverage ? collision.deductible : 0), title: "Collision coverage", description: "This deductible is the specific dollar amount you will pay out of your own pocket if your vehicle is damaged in an accident. Your insurance company covers the remaining amount.", placeholder: "Select from the list", autoSelectIfValueIsOutOfOptions: false }), jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.liabilityOptions, name: "liability-limit", onChange: handleLiabilityChange, defaultValue: getSelectedOption(mychoiceSdkComponents.liabilityOptions, liability.coverage ? liability.limit : 1000000), title: "Third Party Liability", description: "This protects you from lawsuits resulting from accidents causing bodily injury or death to others or property damage.", placeholder: "Select from the list", autoSelectIfValueIsOutOfOptions: false }), jsxRuntime.jsx(BlockSubmit$1, { className: `${isTheBig ? 'thebig-bold' : ''} recalculate`, label: "Recalculate Quote", buttonSize: mychoiceSdkComponents.SizeTypes.Medium, isRecalc: true }), isTheBig && jsxRuntime.jsx(BlockEndorsements, {})] })] }));
2055
+ };
2056
+
2057
+ const SplashScreen = () => {
2058
+ const { discountState } = mychoiceSdkStore.useStoreFormCarDiscount();
2059
+ const phoneObject = formatPhoneObject(discountState.quoterInfo.brokerInfo?.phone) || {};
2060
+ return (jsxRuntime.jsxs("div", { className: "splash-screen-wrapper", children: [jsxRuntime.jsx("h2", { children: "We Aren\u2019t Done Yet" }), "This quote requires us to get a bit more information from you, please give", discountState.quoterInfo.brokerInfo?.id
2061
+ && ` ${formatTitleToCapital(discountState.quoterInfo.brokerInfo?.id)} `, !discountState.quoterInfo.brokerInfo?.id && ' us ', "a call at", phoneObject.number
2062
+ && (jsxRuntime.jsx("a", { className: "phoneNumber", target: "_blank", rel: "noreferrer noopener", href: `tel:${phoneObject?.number}`, children: phoneObject?.title })), "and we will be happy to get you the best rate.", jsxRuntime.jsx("div", { className: "logo", children: jsxRuntime.jsx("img", { src: theBigLogotype, alt: "thebig-logotype" }) })] }));
2063
+ };
2064
+
2065
+ const PageQuote = () => {
2066
+ const { vehicleFormValidate, vehicleFormIsValid } = mychoiceSdkStore.useValidationVehicle();
2067
+ const { driverFormValidate, driverFormIsValid } = mychoiceSdkStore.useValidationDriver();
2068
+ const { carDiscountFormValidate, carDiscountFormIsValid } = mychoiceSdkStore.useValidationCarDiscount();
2069
+ const { quoteState } = mychoiceSdkStore.useStoreFormCarQuote();
2070
+ const { postRequestQuote } = mychoiceSdkStore.QuoteDataHandler();
2071
+ const { appLoaderState } = mychoiceSdkStore.useStoreAppLoader();
2072
+ const { appDeviceType } = mychoiceSdkStore.useStoreDeviceType();
2073
+ const { items } = quoteState;
2074
+ mychoiceSdkComponents.useEffectOnce(() => {
2075
+ if (!vehicleFormIsValid) {
2076
+ vehicleFormValidate();
2077
+ }
2078
+ if (vehicleFormIsValid && !driverFormIsValid) {
2079
+ driverFormValidate();
2080
+ }
2081
+ if (vehicleFormIsValid && driverFormIsValid && !carDiscountFormIsValid) {
2082
+ carDiscountFormValidate();
2083
+ }
2084
+ if (!quoteState.isRequested) {
2085
+ postRequestQuote(false);
2086
+ }
2087
+ window.scrollTo({
2088
+ top: 0,
2089
+ behavior: 'smooth',
2090
+ });
2091
+ });
2092
+ return (jsxRuntime.jsx("div", { className: "quote-page-content", children: !appLoaderState.isOpen
2093
+ && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { className: "form-section-container", children: [appDeviceType === mychoiceSdkComponents.DeviceTypes.Mobile && (jsxRuntime.jsx(jsxRuntime.Fragment, { children: !!items?.length && (jsxRuntime.jsx(jsxRuntime.Fragment, { children: !quoteState.showCallMessage
2094
+ ? (jsxRuntime.jsx("div", { className: "offer-container", children: jsxRuntime.jsx(OfferSection, { isBestOffer: true, offerCompany: items[0]?.company, brokerCompany: items[0]?.brokerProfile, offerPrice: {
2095
+ monthly: items[0]?.priceMonthly,
2096
+ yearly: items[0]?.priceYearly,
2097
+ }, operationHours: {
2098
+ saturdayHours: items[0]?.brokerProfile.hoursSaturday,
2099
+ sundayHours: items[0]?.brokerProfile.hoursSunday,
2100
+ weekdayHours: items[0]?.brokerProfile.hoursWorkdays,
2101
+ }, phoneNumber: formatPhoneObject(items[0]?.brokerProfile.phone), redirectUrl: items[0]?.brokerProfile.redirectUrl || '' }) }))
2102
+ : jsxRuntime.jsx(SplashScreen, {}) })) })), jsxRuntime.jsx(SectionQuoteEdit, {}), jsxRuntime.jsx(SectionQuoteRecalc, {})] }), appDeviceType !== mychoiceSdkComponents.DeviceTypes.Mobile && quoteState.showCallMessage
2103
+ && jsxRuntime.jsx(SplashScreen, {}), !quoteState.showCallMessage
2104
+ && (jsxRuntime.jsx("div", { className: "offer-container", children: !!items?.length
2105
+ && items.map(({ company, brokerProfile, priceMonthly, priceYearly, }, index) => (jsxRuntime.jsx("div", { children: (appDeviceType !== mychoiceSdkComponents.DeviceTypes.Mobile || (appDeviceType === mychoiceSdkComponents.DeviceTypes.Mobile && index !== 0)) && (jsxRuntime.jsx(OfferSection, { isBestOffer: index === 0, offerCompany: company, brokerCompany: brokerProfile, offerPrice: {
2106
+ monthly: priceMonthly,
2107
+ yearly: priceYearly,
2108
+ }, operationHours: {
2109
+ saturdayHours: brokerProfile.hoursSaturday,
2110
+ sundayHours: brokerProfile.hoursSunday,
2111
+ weekdayHours: brokerProfile.hoursWorkdays,
2112
+ }, phoneNumber: formatPhoneObject(brokerProfile.phone), redirectUrl: brokerProfile.redirectUrl || '' })) }, index))) }))] })) }));
2113
+ };
2114
+
2115
+ const BlockAddressInfo = () => {
2116
+ const { status, errorMessage, } = mychoiceSdkStore.useHandlerPostal(mychoiceSdkComponents.InsuranceTypes.Home);
2117
+ const { postalState, dispatchPostalState } = mychoiceSdkStore.useStoreFormHomePostal();
2118
+ const { addressState, dispatchAddressState } = mychoiceSdkStore.useStoreFormHomeAddress();
2119
+ const { item: { postalCode, city, provinceCode } } = postalState;
2120
+ const { addressStreet, unitApartmentNumber, inValidation } = addressState;
2121
+ const error = status === mychoiceSdkComponents.RequestStatusTypes.Error;
2122
+ const streetAddressErrMessage = !/\b\s+\b/.test(addressStreet) ? 'The street address should be in the format "123 Streetname Rd."' : '';
2123
+ const handleAddressStreetChange = ({ value }) => {
2124
+ dispatchAddressState({
2125
+ type: mychoiceSdkStore.StoreFormHomeAddressActionTypes.FormHomeAddressStreetSet,
2126
+ payload: { addressStreet: value },
2127
+ });
2128
+ };
2129
+ const handleUnitApartmentNumberChange = ({ value }) => {
2130
+ dispatchAddressState({
2131
+ type: mychoiceSdkStore.StoreFormHomeAddressActionTypes.FormHomeAddressUnitApartmentNumberSet,
2132
+ payload: { unitApartmentNumber: value },
2133
+ });
2134
+ };
2135
+ const handleCityChange = ({ value }) => {
2136
+ dispatchPostalState({
2137
+ type: mychoiceSdkStore.StoreFormHomePostalActionTypes.FormHomePostalCitySet,
2138
+ payload: { city: value },
2139
+ });
2140
+ };
2141
+ const handlePostalCodeChange = ({ value }) => {
2142
+ dispatchPostalState({
2143
+ type: mychoiceSdkStore.StoreFormHomePostalActionTypes.FormHomePostalCodeSet,
2144
+ payload: { postalCode: value },
2145
+ });
2146
+ };
2147
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(InputFormBox, { name: "addressStreet", title: "Street Address", onChange: handleAddressStreetChange, defaultValue: addressStreet, placeholder: "Street Name and Number", error: (!addressStreet || !/\b\s+\b/.test(addressStreet)) && inValidation, errorMessage: getErrorMessage(addressStreet, inValidation, streetAddressErrMessage) }), jsxRuntime.jsx(InputFormBox, { name: "unitApartmentNumber", title: "Unit/Apartment number", onChange: handleUnitApartmentNumberChange, defaultValue: unitApartmentNumber, placeholder: "Unit, Suite or Apartment Number" }), jsxRuntime.jsx(InputFormBox, { name: "city", title: "City", onChange: handleCityChange, defaultValue: city, placeholder: "City", error: !city && inValidation, errorMessage: getErrorMessage(city, inValidation) }), jsxRuntime.jsx(InputFormBox, { name: "postalCode", title: "Postal Code", onChange: handlePostalCodeChange, defaultValue: postalCode, placeholder: "", maxLength: 7, error: !postalCode && inValidation, errorMessage: getErrorMessage(postalCode, inValidation) }), error && jsxRuntime.jsx("p", { className: "error-message", children: errorMessage }), jsxRuntime.jsx(InputFormBox, { name: "province", title: "Province", defaultValue: provinceCode, placeholder: "", error: !provinceCode && inValidation, errorMessage: getErrorMessage(provinceCode, inValidation), disabled: true })] }));
2148
+ };
2149
+
2150
+ const SectionAddress = () => {
2151
+ const { addressState: { type, inValidation }, dispatchAddressState } = mychoiceSdkStore.useStoreFormHomeAddress();
2152
+ const handleOwnerTypeChange = ({ value }) => {
2153
+ dispatchAddressState({
2154
+ type: mychoiceSdkStore.StoreFormHomeAddressActionTypes.FormHomeAddressTypeSelect,
2155
+ payload: { type: value },
2156
+ });
2157
+ };
2158
+ return (jsxRuntime.jsxs("div", { className: "form-section", children: [jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.homeOwnerTypeOptions, name: "ownerType", onChange: handleOwnerTypeChange, defaultValue: type, title: "Type of Insurance", placeholder: "Select Type of Insurance", error: !type && inValidation, errorMessage: getErrorMessage(type, inValidation) }), jsxRuntime.jsx(BlockAddressInfo, {})] }));
2159
+ };
2160
+
2161
+ const PageAddress = () => {
2162
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
2163
+ const { addressFormIsValid, addressFormValidate } = mychoiceSdkStore.useValidationAddress();
2164
+ const validateForm = () => addressFormValidate(false);
2165
+ return (jsxRuntime.jsx("div", { className: "form-container", children: jsxRuntime.jsxs("div", { className: "form-section-container", children: [jsxRuntime.jsx(SectionAddress, {}), appType === mychoiceSdkComponents.AppTypes.TheBig
2166
+ ? (jsxRuntime.jsx(NavigationBottomTheBig, { formSteps: formSteps[mychoiceSdkComponents.InsuranceTypes.Home], validateForm: validateForm, formIsValid: addressFormIsValid }))
2167
+ : (jsxRuntime.jsx(NavigationBottom, { formSteps: formSteps[mychoiceSdkComponents.InsuranceTypes.Home], validateForm: validateForm, formIsValid: addressFormIsValid }))] }) }));
2168
+ };
2169
+
2170
+ const SectionApplicantInfo = () => {
2171
+ const { applicantState, dispatchApplicantInfoState } = mychoiceSdkStore.useStoreFormHomeApplicantInfo();
2172
+ const { dwellingState, dispatchDwellingState } = mychoiceSdkStore.useStoreFormHomeDwelling();
2173
+ const { quoterInfo, insured: { birthDay, birthMonth, birthYear, }, } = applicantState;
2174
+ const { firstName, } = quoterInfo || {};
2175
+ const { familiesCount, occupiedYear } = dwellingState;
2176
+ // VARIABLES =========
2177
+ const birthDate = birthYear ? `${birthYear}-${birthMonth || '01'}-${birthDay || '01'}` : '';
2178
+ const occupiedDate = occupiedYear ? `${occupiedYear}-${birthMonth || '01'}-${birthDay || '01'}` : '';
2179
+ const defaultDateOfBirth = {
2180
+ day: birthDay,
2181
+ month: birthMonth,
2182
+ year: birthYear,
2183
+ };
2184
+ const defaultOccupiedDate = {
2185
+ day: birthDay || '01',
2186
+ month: birthMonth || '01',
2187
+ year: occupiedYear,
2188
+ };
2189
+ const liveYears = mychoiceSdkComponents.getDifferenceInYears('', occupiedDate);
2190
+ const occupiedHintMessage = ((yearsCount) => {
2191
+ if (yearsCount === 0) {
2192
+ return 'You have lived at this location for less then a year.';
2193
+ }
2194
+ if (yearsCount > 0) {
2195
+ return `You have lived at this location for ${liveYears} years.`;
2196
+ }
2197
+ return '';
2198
+ })(liveYears);
2199
+ //= ===========
2200
+ const handleFirstNameChange = ({ value }) => {
2201
+ dispatchApplicantInfoState({
2202
+ type: mychoiceSdkStore.StoreFormHomeApplicantInfoActionTypes.FormHomeApplicantFirstNameSet,
2203
+ payload: { firstName: value },
2204
+ });
2205
+ };
2206
+ const handleDateOfBirthChange = (dateType) => ({ value }) => {
2207
+ if (dateType === mychoiceSdkComponents.DateTypes.Day) {
2208
+ dispatchApplicantInfoState({
2209
+ type: mychoiceSdkStore.StoreFormHomeApplicantInfoActionTypes.FormHomeApplicantBirthDaySelect,
2210
+ payload: { birthDay: value },
2211
+ });
2212
+ }
2213
+ if (dateType === mychoiceSdkComponents.DateTypes.Month) {
2214
+ dispatchApplicantInfoState({
2215
+ type: mychoiceSdkStore.StoreFormHomeApplicantInfoActionTypes.FormHomeApplicantBirthMonthSelect,
2216
+ payload: { birthMonth: value },
2217
+ });
2218
+ }
2219
+ if (dateType === mychoiceSdkComponents.DateTypes.Year) {
2220
+ dispatchApplicantInfoState({
2221
+ type: mychoiceSdkStore.StoreFormHomeApplicantInfoActionTypes.FormHomeApplicantBirthYearSelect,
2222
+ payload: { birthYear: value },
2223
+ });
2224
+ }
2225
+ };
2226
+ const handleFamiliesCountChange = ({ value }) => {
2227
+ dispatchDwellingState({
2228
+ type: mychoiceSdkStore.StoreFormHomeDwellingActionTypes.FormHomeDwellingFamiliesCountSelect,
2229
+ payload: { familiesCount: value },
2230
+ });
2231
+ };
2232
+ const handleOccupiedDateChange = (dateType) => ({ value }) => {
2233
+ if (dateType === mychoiceSdkComponents.DateTypes.Year) {
2234
+ dispatchDwellingState({
2235
+ type: mychoiceSdkStore.StoreFormHomeDwellingActionTypes.FormHomeDwellingOccupiedYearSelect,
2236
+ payload: { occupiedYear: value },
2237
+ });
2238
+ }
2239
+ };
2240
+ return (jsxRuntime.jsxs("div", { className: "form-section", children: [jsxRuntime.jsx(InputFormBox, { name: "firstName", title: "First Name", onChange: handleFirstNameChange, defaultValue: firstName, placeholder: "Applicant First Name", error: !firstName && applicantState.inValidation, errorMessage: getErrorMessage(firstName, applicantState.inValidation) }), jsxRuntime.jsx(DateSelectFormBox, { name: "dateOfBirth", dateNames: ['birthYear', 'birthMonth', 'birthDay'], onDateChange: handleDateOfBirthChange, defaultValue: defaultDateOfBirth, title: "Date of birth of the eldest applicant", description: "If there\u2019s more than one applicant, please use the date of birth of the eldest applicant.", error: applicantState.inValidation, errorMessage: getDateErrorMessage([birthDay || '', birthMonth || '', birthYear || ''], applicantState.inValidation), maxDate: mychoiceSdkComponents.subYearsFromDate('', 14), isDay: true }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.residentsOptions, name: "familiesCount", onChange: handleFamiliesCountChange, defaultValue: getSelectedOption(mychoiceSdkComponents.residentsOptions, familiesCount), title: "Who occupies this residence?", placeholder: "Select", description: "Let us know whether this address is being used for residential or commercial purposes.", autoSelectIfValueIsOutOfOptions: false, error: !familiesCount && applicantState.inValidation, errorMessage: getErrorMessage(`${familiesCount}`.toString(), applicantState.inValidation) }), familiesCount?.toString() === '0' && (jsxRuntime.jsx("p", { className: "warning-message", children: "Please contact a licenced representative at 1-855-331-6933 from Monday \u2013 Saturday: 9:30 AM \u2013 9:30 PM to get an accurate quote. With properties that are used for commercial purpose, speaking with a representative will ensure that the incidents are accurately incorporated into your insurance quote." }))] }), jsxRuntime.jsx(DateSelectFormBox, { name: "occupiedDate", dateNames: ['occupiedYear'], datePlaceholders: ['Select'], onDateChange: handleOccupiedDateChange, defaultValue: defaultOccupiedDate, title: "What year did you move into this property?", hintMessage: occupiedHintMessage, errorMessage: getDateErrorMessage(['01', '01', occupiedYear || ''], applicantState.inValidation), error: applicantState.inValidation, minDate: birthDate, isMonth: false })] }));
2241
+ };
2242
+
2243
+ const getInsuranceYearsOptions = (maxValue) => (mychoiceSdkComponents.insuredYearsOptions.filter((option) => +option.value <= +maxValue));
2244
+
2245
+ const SectionApplicantInsurancePolicy = () => {
2246
+ const { applicantState, dispatchApplicantInsuranceState } = mychoiceSdkStore.useStoreFormHomeApplicantInsurance();
2247
+ const { discountState } = mychoiceSdkStore.useStoreFormHomeDiscount();
2248
+ const { policyStartYear, policyStartMonth } = discountState;
2249
+ const { insuredCurrent, insuredBefore, insured: { dateInsuredCurrent, dateInsuredSince } } = applicantState;
2250
+ // const defaultListedDate: SelectDateInterface = {
2251
+ // year: listedYear as string,
2252
+ // month: listedMonth as string,
2253
+ // day: '01',
2254
+ // };
2255
+ // const defaultInsuredDate: SelectDateInterface = {
2256
+ // year: insuredYear as string,
2257
+ // month: insuredMonth as string,
2258
+ // day: '01',
2259
+ // };
2260
+ //
2261
+ const defaultPolicyStartDate = {
2262
+ year: policyStartYear,
2263
+ month: policyStartMonth,
2264
+ day: '01',
2265
+ };
2266
+ const handleInsuredBeforeChange = ({ value }) => {
2267
+ dispatchApplicantInsuranceState({
2268
+ type: mychoiceSdkStore.StoreFormHomeApplicantInsuranceActionTypes.FormHomeApplicantInsuredBeforeSelect,
2269
+ payload: { insuredBefore: value },
2270
+ });
2271
+ };
2272
+ const handleInsuredCurrentChange = ({ value }) => {
2273
+ dispatchApplicantInsuranceState({
2274
+ type: mychoiceSdkStore.StoreFormHomeApplicantInsuranceActionTypes.FormHomeApplicantInsuredCurrentSelect,
2275
+ payload: { insuredCurrent: value },
2276
+ });
2277
+ };
2278
+ const handlePolicyStartChange = (dateType) => ({ value }) => {
2279
+ if (dateType === mychoiceSdkComponents.DateTypes.Month) {
2280
+ dispatchApplicantInsuranceState({
2281
+ type: mychoiceSdkStore.StoreFormHomeApplicantInsuranceActionTypes.FormHomeApplicantPolicyStartMonthSelect,
2282
+ payload: { policyStartMonth: value },
2283
+ });
2284
+ }
2285
+ if (dateType === mychoiceSdkComponents.DateTypes.Year) {
2286
+ dispatchApplicantInsuranceState({
2287
+ type: mychoiceSdkStore.StoreFormHomeApplicantInsuranceActionTypes.FormHomeApplicantPolicyStartYearSelect,
2288
+ payload: { policyStartYear: value },
2289
+ });
2290
+ }
2291
+ };
2292
+ const handleInsuredSinceDateChange = ({ value }) => {
2293
+ dispatchApplicantInsuranceState({
2294
+ type: mychoiceSdkStore.StoreFormHomeApplicantInsuranceActionTypes.FormHomeApplicantDateInsuredSinceSelect,
2295
+ payload: { dateInsuredSince: value },
2296
+ });
2297
+ };
2298
+ const handleInsuredCurrentDateChange = ({ value }) => {
2299
+ dispatchApplicantInsuranceState({
2300
+ type: mychoiceSdkStore.StoreFormHomeApplicantInsuranceActionTypes.FormHomeApplicantDateInsuredCurrentSelect,
2301
+ payload: { dateInsuredCurrent: value },
2302
+ });
2303
+ };
2304
+ return (jsxRuntime.jsxs("div", { className: "form-section", children: [jsxRuntime.jsx(DateSelectFormBox, { name: "policyStart", dateNames: ['policyStartYear', 'policyStartMonth'], onDateChange: handlePolicyStartChange, defaultValue: defaultPolicyStartDate, title: "When do you want to start the policy?", errorMessage: getDateErrorMessage(['01', policyStartMonth || '', policyStartYear || ''], applicantState.inValidation), error: applicantState.inValidation, minDate: mychoiceSdkComponents.getFormattedDate('', 'yyyy-MM-dd'), maxDate: mychoiceSdkComponents.getFormattedDate(mychoiceSdkComponents.addYearsToDate('', 1), 'yyyy-MM-dd') }), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.yesNoOptions, onChange: handleInsuredCurrentChange, name: "insuredCurrent", defaultValue: getSelectedOption(mychoiceSdkComponents.yesNoOptions, insuredCurrent), title: "Do you have a current active policy?", description: "Insurers offer better rates to customers who have a long history of coverage without any gaps." }), insuredCurrent
2305
+ && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.insuredYearsOptions, name: "dateInsuredSince", onChange: handleInsuredSinceDateChange, defaultValue: getSelectedOption(mychoiceSdkComponents.insuredYearsOptions, dateInsuredSince), title: "How long have you had insurance without gaps?", description: "Let us know how long you\u2019ve had home insurance without letting the policy expire. It\u2019s fine if you\u2019ve changed providers in the past: what matters is that you switched before your coverage expired.", placeholder: "Select", autoSelectIfValueIsOutOfOptions: false, error: !dateInsuredSince && applicantState.inValidation, errorMessage: getErrorMessage(dateInsuredSince, applicantState.inValidation) }), jsxRuntime.jsx(SelectFormBox, { options: getInsuranceYearsOptions(dateInsuredSince || mychoiceSdkComponents.insuredYearsOptions.length.toString()), name: "dateInsuredCurrent", onChange: handleInsuredCurrentDateChange, defaultValue: getSelectedOption(getInsuranceYearsOptions(dateInsuredSince || mychoiceSdkComponents.insuredYearsOptions.length.toString()), dateInsuredCurrent), title: "How long have you been insured with your current company?", placeholder: "Select", autoSelectIfValueIsOutOfOptions: false, error: !dateInsuredCurrent && applicantState.inValidation, errorMessage: getErrorMessage(dateInsuredCurrent, applicantState.inValidation) })] })), (!insuredCurrent && insuredCurrent !== null)
2306
+ && (jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.yesNoOptions, onChange: handleInsuredBeforeChange, name: "insuredBefore", defaultValue: getSelectedOption(mychoiceSdkComponents.yesNoOptions, insuredBefore), title: "Have you ever had a home insurance policy?", description: "The gender on the policy should match your official applicant\u2019s licence. Some insurers analyze a applicant's sex when creating a policy. Men are typically considered higher risk than female applicants, but the statistics supporting this idea vary from province to province. On average, men and women pay roughly the same for insurance, though." }))] }));
2307
+ };
2308
+
2309
+ const SectionApplicantCancellation = () => {
2310
+ const { applicantState, dispatchApplicantCancellationState } = mychoiceSdkStore.useStoreFormHomeApplicantCancellation();
2311
+ const { dispatchApplicantBaseState } = mychoiceSdkStore.useStoreFormHomeApplicantBase();
2312
+ const { insuranceCancellation, insuranceCancellationList } = applicantState;
2313
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
2314
+ const isTheBig = appType === mychoiceSdkComponents.AppTypes.TheBig;
2315
+ const handleIconClick = (index) => () => {
2316
+ dispatchApplicantCancellationState({
2317
+ type: mychoiceSdkStore.StoreFormHomeApplicantCancellationActionTypes.FormHomeApplicantCancellationDelete,
2318
+ payload: { itemIndex: index },
2319
+ });
2320
+ };
2321
+ const handleCancellationChange = ({ value }) => {
2322
+ dispatchApplicantCancellationState({
2323
+ type: mychoiceSdkStore.StoreFormHomeApplicantCancellationActionTypes.FormHomeApplicantCancellationSelect,
2324
+ payload: { insuranceCancellation: value },
2325
+ });
2326
+ if (!value) {
2327
+ dispatchApplicantBaseState({
2328
+ type: mychoiceSdkStore.StoreFormHomeApplicantBaseActionTypes.FormHomeApplicantInitialList,
2329
+ payload: { listKey: mychoiceSdkComponents.ApplicantListTypes.InsuranceCancellation },
2330
+ });
2331
+ }
2332
+ };
2333
+ const handleAddButtonClick = () => {
2334
+ dispatchApplicantCancellationState({
2335
+ type: mychoiceSdkStore.StoreFormHomeApplicantCancellationActionTypes.FormHomeApplicantCancellationAdd,
2336
+ });
2337
+ };
2338
+ const handleCancellationDateChange = (index) => (dateType) => ({ value }) => {
2339
+ if (dateType === mychoiceSdkComponents.DateTypes.Month) {
2340
+ dispatchApplicantCancellationState({
2341
+ type: mychoiceSdkStore.StoreFormHomeApplicantCancellationActionTypes.FormHomeApplicantCancellationMonthSelect,
2342
+ payload: {
2343
+ cancellationMonth: value,
2344
+ index,
2345
+ },
2346
+ });
2347
+ }
2348
+ if (dateType === mychoiceSdkComponents.DateTypes.Year) {
2349
+ dispatchApplicantCancellationState({
2350
+ type: mychoiceSdkStore.StoreFormHomeApplicantCancellationActionTypes.FormHomeApplicantCancellationYearSelect,
2351
+ payload: {
2352
+ cancellationYear: value,
2353
+ index,
2354
+ },
2355
+ });
2356
+ }
2357
+ };
2358
+ return (jsxRuntime.jsxs("div", { className: "form-section", children: [jsxRuntime.jsx("h2", { className: isTheBig ? 'thebig-bold' : '', children: "Cancellations" }), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.yesNoOptions, onChange: handleCancellationChange, name: "insuranceCancellation", defaultValue: getSelectedOption(mychoiceSdkComponents.yesNoOptions, insuranceCancellation), title: "How many cancellations have you had due to non-payment?" }), insuranceCancellation && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [insuranceCancellationList?.map(({ cancellationYear, cancellationMonth, }, index) => {
2359
+ const defaultCancellationDate = {
2360
+ year: cancellationYear,
2361
+ month: cancellationMonth,
2362
+ day: '01',
2363
+ };
2364
+ return (jsxRuntime.jsxs("div", { className: "list-block", children: [jsxRuntime.jsx("hr", {}), jsxRuntime.jsx("div", { className: "list-item", children: jsxRuntime.jsx(DateSelectFormBox, { name: `cancellationDate-${index}`, dateNames: [`cancellationYear-${index}`, `cancellationMonth-${index}`], onDateChange: handleCancellationDateChange(index), defaultValue: defaultCancellationDate, title: "What was the date of the cancellation?", isRemovable: insuranceCancellationList.length > 1, onIconClick: handleIconClick(index), errorMessage: getDateErrorMessage(['01', cancellationMonth, cancellationYear], applicantState.inValidation), error: applicantState.inValidation }) })] }, `insurance-cancellation-${index}`));
2365
+ }), insuranceCancellationList && insuranceCancellationList.length < 3
2366
+ ? (jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { category: mychoiceSdkComponents.CategoryTypes.Filled, onClick: handleAddButtonClick, size: mychoiceSdkComponents.SizeTypes.Medium, color: mychoiceSdkComponents.ColorTypes.Primary, label: "Add another" })) : (jsxRuntime.jsx("p", { className: "warning-message", children: "If You have 3+ Cancellations, please contact a licenced representative at XXXXXXXXXXX from Monday \u2013 Saturday: 9:30 AM \u2013 9:30 PM to get an accurate quote. With quotes that have more than two cancellations, speaking with a representative will ensure that the incidents are accurately incorporated into your insurance quote." }))] }))] }));
2367
+ };
2368
+
2369
+ const SectionApplicantClaim = () => {
2370
+ const { applicantState, dispatchApplicantClaimState } = mychoiceSdkStore.useStoreFormHomeApplicantClaim();
2371
+ const { dispatchApplicantBaseState } = mychoiceSdkStore.useStoreFormHomeApplicantBase();
2372
+ const { insuranceClaim, insuranceClaimList } = applicantState;
2373
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
2374
+ const isTheBig = appType === mychoiceSdkComponents.AppTypes.TheBig;
2375
+ const handleIconClick = (index) => () => {
2376
+ dispatchApplicantClaimState({
2377
+ type: mychoiceSdkStore.StoreFormHomeApplicantClaimActionTypes.FormHomeApplicantClaimDelete,
2378
+ payload: { itemIndex: index },
2379
+ });
2380
+ };
2381
+ const handleClaimChange = ({ value }) => {
2382
+ dispatchApplicantClaimState({
2383
+ type: mychoiceSdkStore.StoreFormHomeApplicantClaimActionTypes.FormHomeApplicantClaimSelect,
2384
+ payload: { insuranceClaim: value },
2385
+ });
2386
+ if (!value) {
2387
+ dispatchApplicantBaseState({
2388
+ type: mychoiceSdkStore.StoreFormHomeApplicantBaseActionTypes.FormHomeApplicantInitialList,
2389
+ payload: { listKey: mychoiceSdkComponents.ApplicantListTypes.InsuranceClaim },
2390
+ });
2391
+ }
2392
+ };
2393
+ const handleAddButtonClick = () => {
2394
+ dispatchApplicantClaimState({
2395
+ type: mychoiceSdkStore.StoreFormHomeApplicantClaimActionTypes.FormHomeApplicantClaimAdd,
2396
+ });
2397
+ };
2398
+ const handleClaimTypeChange = (index) => ({ value }) => {
2399
+ dispatchApplicantClaimState({
2400
+ type: mychoiceSdkStore.StoreFormHomeApplicantClaimActionTypes.FormHomeApplicantClaimTypeSelect,
2401
+ payload: {
2402
+ claimType: value,
2403
+ index,
2404
+ },
2405
+ });
2406
+ };
2407
+ const handleClaimDateChange = (index) => (dateType) => ({ value }) => {
2408
+ if (dateType === mychoiceSdkComponents.DateTypes.Month) {
2409
+ dispatchApplicantClaimState({
2410
+ type: mychoiceSdkStore.StoreFormHomeApplicantClaimActionTypes.FormHomeApplicantClaimMonthSelect,
2411
+ payload: {
2412
+ claimMonth: value,
2413
+ index,
2414
+ },
2415
+ });
2416
+ }
2417
+ if (dateType === mychoiceSdkComponents.DateTypes.Year) {
2418
+ dispatchApplicantClaimState({
2419
+ type: mychoiceSdkStore.StoreFormHomeApplicantClaimActionTypes.FormHomeApplicantClaimYearSelect,
2420
+ payload: {
2421
+ claimYear: value,
2422
+ index,
2423
+ },
2424
+ });
2425
+ }
2426
+ };
2427
+ return (jsxRuntime.jsxs("div", { className: "form-section", children: [jsxRuntime.jsx("h2", { className: isTheBig ? 'thebig-bold' : '', children: "Claims" }), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.yesNoOptions, onChange: handleClaimChange, name: "insuranceClaim", defaultValue: getSelectedOption(mychoiceSdkComponents.yesNoOptions, insuranceClaim), title: "Any claims within the last 5 years?", description: "Your quotes will be more accurate if you let us know your claims history." }), insuranceClaim && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [insuranceClaimList?.map(({ claimYear, claimMonth, claimType, }, index) => {
2428
+ const defaultClaimDate = {
2429
+ year: claimYear,
2430
+ month: claimMonth,
2431
+ day: '01',
2432
+ };
2433
+ return (jsxRuntime.jsxs("div", { className: "list-block", children: [jsxRuntime.jsx("hr", {}), jsxRuntime.jsxs("div", { className: "list-item", children: [jsxRuntime.jsx(DateSelectFormBox, { name: `claimDate-${index}`, dateNames: [`claimYear-${index}`, `claimMonth-${index}`], onDateChange: handleClaimDateChange(index), defaultValue: defaultClaimDate, title: "Claim Date", isRemovable: insuranceClaimList.length > 1, onIconClick: handleIconClick(index), errorMessage: getDateErrorMessage(['01', claimMonth, claimYear], applicantState.inValidation), error: applicantState.inValidation, minDate: mychoiceSdkComponents.subYearsFromDate('', 5) }), jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.claimTypeOptions, name: `claim-type-${index}`, onChange: handleClaimTypeChange(index), defaultValue: claimType, title: "Claim Type", placeholder: "Select", autoSelectIfValueIsOutOfOptions: false, error: !claimType && applicantState.inValidation, errorMessage: getErrorMessage(claimType, applicantState.inValidation) })] })] }, `driver-claim-${index}`));
2434
+ }), insuranceClaimList && insuranceClaimList.length < 3
2435
+ ? (jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { category: mychoiceSdkComponents.CategoryTypes.Filled, onClick: handleAddButtonClick, size: mychoiceSdkComponents.SizeTypes.Medium, color: mychoiceSdkComponents.ColorTypes.Primary, label: "Add another" })) : (jsxRuntime.jsx("p", { className: "warning-message", children: "If You have 3+ Claims, please contact a licenced representative at XXXXXXXXXXX from Monday \u2013 Saturday: 9:30 AM \u2013 9:30 PM to get an accurate quote. With quotes that have more than two claims, speaking with a representative will ensure that the incidents are accurately incorporated into your insurance quote." }))] }))] }));
2436
+ };
2437
+
2438
+ const PageApplicant = () => {
2439
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
2440
+ const { applicantState: { insuredCurrent, insuredBefore }, } = mychoiceSdkStore.useStoreFormHomeApplicantBase();
2441
+ const { addressFormIsValid, addressFormValidate } = mychoiceSdkStore.useValidationAddress();
2442
+ const { applicantFormIsValid, applicantFormValidate } = mychoiceSdkStore.useValidationApplicant();
2443
+ mychoiceSdkComponents.useEffectOnce(() => {
2444
+ if (!addressFormIsValid) {
2445
+ addressFormValidate();
2446
+ }
2447
+ window.scrollTo({
2448
+ top: 0,
2449
+ behavior: 'smooth',
2450
+ });
2451
+ });
2452
+ const validateForm = () => applicantFormValidate(false);
2453
+ return (jsxRuntime.jsx("div", { className: "form-container", children: jsxRuntime.jsxs("div", { className: "form-section-container", children: [jsxRuntime.jsx(SectionApplicantInfo, {}), jsxRuntime.jsx(SectionApplicantInsurancePolicy, {}), (insuredCurrent || insuredBefore)
2454
+ && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(SectionApplicantClaim, {}), jsxRuntime.jsx(SectionApplicantCancellation, {})] })), appType === mychoiceSdkComponents.AppTypes.TheBig
2455
+ ? (jsxRuntime.jsx(NavigationBottomTheBig, { formSteps: formSteps[mychoiceSdkComponents.InsuranceTypes.Home], validateForm: validateForm, formIsValid: applicantFormIsValid }))
2456
+ : (jsxRuntime.jsx(NavigationBottom, { formSteps: formSteps[mychoiceSdkComponents.InsuranceTypes.Home], validateForm: validateForm, formIsValid: applicantFormIsValid }))] }) }));
2457
+ };
2458
+
2459
+ const SectionDwelling = () => {
2460
+ const { dwellingState, dispatchDwellingState } = mychoiceSdkStore.useStoreFormHomeDwelling();
2461
+ const { builtYear, livingArea, exteriorFinish, constructionType, garageType, basementFinishPercent, storeysCount, roofReplaceYear, fireHallDistance, fireHydrantDistance,
2462
+ // replacementCost,
2463
+ heatings, buildingStructure, } = dwellingState;
2464
+ const builtDate = {
2465
+ day: '01',
2466
+ month: '01',
2467
+ year: builtYear,
2468
+ };
2469
+ const roofReplaceDate = {
2470
+ day: '01',
2471
+ month: '01',
2472
+ year: roofReplaceYear,
2473
+ };
2474
+ mychoiceSdkComponents.useEffectOnce(() => {
2475
+ const keys = [
2476
+ 'builtYear',
2477
+ 'livingArea',
2478
+ 'roofReplaceYear',
2479
+ 'fireHallDistance',
2480
+ 'fireHydrantDistance',
2481
+ 'buildingStructure',
2482
+ // 'replacementCost': string, // TODO: need to be approved
2483
+ ];
2484
+ const listKeys = ['heatings'];
2485
+ const errors = [];
2486
+ Object.keys(dwellingState).forEach((key) => {
2487
+ if (keys.includes(key) && !dwellingState[key]) {
2488
+ errors.push(key);
2489
+ }
2490
+ if (listKeys.includes(key)) {
2491
+ dwellingState[key].forEach((listItem, listItemIndex) => {
2492
+ Object.keys(listItem).forEach((objectKey) => {
2493
+ if (!listItem[objectKey]) {
2494
+ errors.push(`heatings-${listItemIndex}`);
2495
+ }
2496
+ });
2497
+ });
2498
+ }
2499
+ });
2500
+ if (errors.length) {
2501
+ const element = document.getElementsByName(errors[0])[0];
2502
+ element?.scrollIntoView({ block: 'center', behavior: 'smooth' });
2503
+ }
2504
+ });
2505
+ const handleBuiltDateChange = (dateType) => ({ value }) => {
2506
+ if (dateType === mychoiceSdkComponents.DateTypes.Year) {
2507
+ dispatchDwellingState({
2508
+ type: mychoiceSdkStore.StoreFormHomeDwellingActionTypes.FormHomeDwellingBuiltYearSelect,
2509
+ payload: { builtYear: value },
2510
+ });
2511
+ }
2512
+ };
2513
+ const handleLivingAreaChange = ({ value }) => {
2514
+ dispatchDwellingState({
2515
+ type: mychoiceSdkStore.StoreFormHomeDwellingActionTypes.FormHomeDwellingLivingAreaSelect,
2516
+ payload: { livingArea: value },
2517
+ });
2518
+ };
2519
+ const handleExteriorFinishChange = ({ value }) => {
2520
+ dispatchDwellingState({
2521
+ type: mychoiceSdkStore.StoreFormHomeDwellingActionTypes.FormHomeDwellingExteriorFinishSelect,
2522
+ payload: { exteriorFinish: value },
2523
+ });
2524
+ };
2525
+ const handleConstructionTypeChange = ({ value }) => {
2526
+ dispatchDwellingState({
2527
+ type: mychoiceSdkStore.StoreFormHomeDwellingActionTypes.FormHomeDwellingConstructionTypeSelect,
2528
+ payload: { constructionType: value },
2529
+ });
2530
+ };
2531
+ const handleGarageTypeChange = ({ value }) => {
2532
+ dispatchDwellingState({
2533
+ type: mychoiceSdkStore.StoreFormHomeDwellingActionTypes.FormHomeDwellingGarageTypeSelect,
2534
+ payload: { garageType: value },
2535
+ });
2536
+ };
2537
+ const handleBasementFinishPercentChange = ({ value }) => {
2538
+ dispatchDwellingState({
2539
+ type: mychoiceSdkStore.StoreFormHomeDwellingActionTypes.FormHomeDwellingBasementFinishPercentSelect,
2540
+ payload: { basementFinishPercent: value },
2541
+ });
2542
+ };
2543
+ const handleStoreysCountChange = ({ value }) => {
2544
+ dispatchDwellingState({
2545
+ type: mychoiceSdkStore.StoreFormHomeDwellingActionTypes.FormHomeDwellingStoreysCountSelect,
2546
+ payload: { storeysCount: value },
2547
+ });
2548
+ };
2549
+ const handleRoofReplaceDateChange = (dateType) => ({ value }) => {
2550
+ if (dateType === mychoiceSdkComponents.DateTypes.Year) {
2551
+ dispatchDwellingState({
2552
+ type: mychoiceSdkStore.StoreFormHomeDwellingActionTypes.FormHomeDwellingRoofReplaceYearSelect,
2553
+ payload: { roofReplaceYear: value },
2554
+ });
2555
+ }
2556
+ };
2557
+ const handleFireHallDistanceChange = ({ value }) => {
2558
+ dispatchDwellingState({
2559
+ type: mychoiceSdkStore.StoreFormHomeDwellingActionTypes.FormHomeDwellingFireHallDistanceSelect,
2560
+ payload: { fireHallDistance: value },
2561
+ });
2562
+ };
2563
+ const handleFireHydrantDistanceChange = ({ value }) => {
2564
+ dispatchDwellingState({
2565
+ type: mychoiceSdkStore.StoreFormHomeDwellingActionTypes.FormHomeDwellingFireHydrantDistanceSelect,
2566
+ payload: { fireHydrantDistance: value },
2567
+ });
2568
+ };
2569
+ const handleHeatingTypeChange = (index) => ({ value }) => {
2570
+ dispatchDwellingState({
2571
+ type: mychoiceSdkStore.StoreFormHomeDwellingActionTypes.FormHomeDwellingHeatingSelect,
2572
+ payload: {
2573
+ type: value,
2574
+ index,
2575
+ },
2576
+ });
2577
+ };
2578
+ const handleBuildingStructureChange = ({ value }) => {
2579
+ dispatchDwellingState({
2580
+ type: mychoiceSdkStore.StoreFormHomeDwellingActionTypes.FormHomeDwellingBuildingStructureSelect,
2581
+ payload: { buildingStructure: value },
2582
+ });
2583
+ };
2584
+ // const handleReplacementCostChange = ({ value }: OnChangeEventInterface) => {
2585
+ // dispatchDwellingState({
2586
+ // type: StoreFormHomeDwellingActionTypes.FormHomeDwellingReplacementCostSelect,
2587
+ // payload: { replacementCost: value as string },
2588
+ // });
2589
+ // };
2590
+ return (jsxRuntime.jsxs("div", { className: "form-section top-section", children: [jsxRuntime.jsx(DateSelectFormBox, { name: "builtDate", dateNames: ['builtYear'], datePlaceholders: ['Select'], onDateChange: handleBuiltDateChange, defaultValue: builtDate, title: "What year was your property built?", errorMessage: getDateErrorMessage(['01', '01', builtYear || ''], dwellingState.inValidation), error: dwellingState.inValidation, isMonth: false }), jsxRuntime.jsx(InputFormBox, { name: "livingArea", title: "What is the total living area of your property (in sq ft)?", type: mychoiceSdkComponents.InputTypes.Number, onChange: handleLivingAreaChange, defaultValue: livingArea, placeholder: "Living area", error: !livingArea && dwellingState.inValidation, errorMessage: getErrorMessage(livingArea, dwellingState.inValidation) }), jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.exteriorFinishOptions, name: "exteriorFinish", onChange: handleExteriorFinishChange, defaultValue: getSelectedOption(mychoiceSdkComponents.exteriorFinishOptions, exteriorFinish), title: "What is the exterior finish of your property?", placeholder: "Select", autoSelectIfValueIsOutOfOptions: false }), jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.constructionTypeOptions, name: "constructionType", onChange: handleConstructionTypeChange, defaultValue: getSelectedOption(mychoiceSdkComponents.constructionTypeOptions, constructionType), title: "What is the construction type of your property?", placeholder: "Select", description: "Insurance companies need to know the construction type of your property in order to provide a quote. Generally, if your property is made with a more solid material such as brick, it is less combustible and the cost of insurance is lower. Most properties built since 1970 are made of wood even though they may have a brick, concrete or stone exterior. Brick and masonry construction was more common in houses built before 1970. Most high-rise buildings are constructed with fire-resistive material. Select \u2018Other\u2019 if you are unsure of your property construction type.", autoSelectIfValueIsOutOfOptions: false }), jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.garageTypeOptions, name: "garageType", onChange: handleGarageTypeChange, defaultValue: getSelectedOption(mychoiceSdkComponents.garageTypeOptions, garageType), title: "What is the type of garage?", placeholder: "Select", autoSelectIfValueIsOutOfOptions: false }), jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.getNumericOptions(0, 100, '%'), name: "basementFinishPercent", onChange: handleBasementFinishPercentChange, defaultValue: getSelectedOption(mychoiceSdkComponents.getNumericOptions(0, 100, '%'), basementFinishPercent), title: "What percentage of the basement is finished?", placeholder: "Select", autoSelectIfValueIsOutOfOptions: false }), jsxRuntime.jsx(InputFormBox, { name: "storeysCount", title: "How many storeys are there in your property?", type: mychoiceSdkComponents.InputTypes.Number, onChange: handleStoreysCountChange, defaultValue: storeysCount, placeholder: "Storeys count", minValue: 1, maxValue: 30 }), jsxRuntime.jsx(DateSelectFormBox, { name: "roofReplaceDate", dateNames: ['roofReplaceYear'], datePlaceholders: ['Select'], onDateChange: handleRoofReplaceDateChange, defaultValue: roofReplaceDate, title: "What year was your roof most recently replaced?", errorMessage: getDateErrorMessage(['01', '01', roofReplaceYear || ''], dwellingState.inValidation), error: dwellingState.inValidation, isMonth: false }), jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.fireHallDistanceOptions, name: "fireHallDistance", onChange: handleFireHallDistanceChange, defaultValue: getSelectedOption(mychoiceSdkComponents.fireHallDistanceOptions, fireHallDistance), title: "What is the approximate distance to the nearest fire hall?", placeholder: "Select", autoSelectIfValueIsOutOfOptions: false, error: !fireHallDistance && dwellingState.inValidation, errorMessage: getErrorMessage(fireHallDistance.toString(), dwellingState.inValidation) }), jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.fireHydrantDistanceOptions, name: "fireHydrantDistance", onChange: handleFireHydrantDistanceChange, defaultValue: getSelectedOption(mychoiceSdkComponents.fireHydrantDistanceOptions, fireHydrantDistance), title: "What is the approximate distance to the nearest fire hydrant?", placeholder: "Select", autoSelectIfValueIsOutOfOptions: false, error: !fireHydrantDistance && dwellingState.inValidation, errorMessage: getErrorMessage(fireHydrantDistance.toString(), dwellingState.inValidation) }), jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.heatingTypeOptions, name: `heatings-${0}`, onChange: handleHeatingTypeChange(0), defaultValue: getSelectedOption(mychoiceSdkComponents.heatingTypeOptions, heatings[0].type), title: "What is the type of the primary heating installed at your property?", placeholder: "Select", autoSelectIfValueIsOutOfOptions: false, error: !heatings[0].type && dwellingState.inValidation, errorMessage: getErrorMessage(heatings[0].type, dwellingState.inValidation) }), jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.heatingTypeOptions, name: `heatings-${1}`, onChange: handleHeatingTypeChange(1), defaultValue: getSelectedOption(mychoiceSdkComponents.heatingTypeOptions, heatings[1].type), title: "What is the type of the secondary heating installed at your property?", placeholder: "Select", autoSelectIfValueIsOutOfOptions: false, error: !heatings[1].type && dwellingState.inValidation, errorMessage: getErrorMessage(heatings[1].type, dwellingState.inValidation) }), jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.buildingStructureOptions, name: "buildingStructure", onChange: handleBuildingStructureChange, defaultValue: getSelectedOption(mychoiceSdkComponents.buildingStructureOptions, buildingStructure), title: "What is the style of the building?", placeholder: "Select", autoSelectIfValueIsOutOfOptions: false, error: !buildingStructure && dwellingState.inValidation, errorMessage: getErrorMessage(buildingStructure, dwellingState.inValidation) })] }));
2591
+ };
2592
+
2593
+ const PageProperty = () => {
2594
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
2595
+ const { addressFormIsValid, addressFormValidate } = mychoiceSdkStore.useValidationAddress();
2596
+ const { applicantFormIsValid, applicantFormValidate } = mychoiceSdkStore.useValidationApplicant();
2597
+ const { dwellingFormIsValid, dwellingFormValidate } = mychoiceSdkStore.useValidationDwelling();
2598
+ const [isOpen, setIsOpen] = React.useState(true);
2599
+ mychoiceSdkComponents.useEffectOnce(() => {
2600
+ if (!addressFormIsValid) {
2601
+ addressFormValidate();
2602
+ }
2603
+ if (!applicantFormIsValid) {
2604
+ applicantFormValidate();
2605
+ }
2606
+ window.scrollTo({
2607
+ top: 0,
2608
+ behavior: 'smooth',
2609
+ });
2610
+ });
2611
+ const validateForm = () => dwellingFormValidate(false);
2612
+ const handleIconClick = () => {
2613
+ setIsOpen(false);
2614
+ };
2615
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [isOpen && jsxRuntime.jsx(mychoiceSdkComponents.InfoMessage, { text: "We have gathered and pre-filled the information below about your property to simplify the quote process. Please review to make sure it is accurate and provide any missing details.", isRemovable: true, onIconClick: handleIconClick }), jsxRuntime.jsx("div", { className: "form-container", children: jsxRuntime.jsxs("div", { className: "form-section-container", children: [jsxRuntime.jsx(SectionDwelling, {}), appType === mychoiceSdkComponents.AppTypes.TheBig
2616
+ ? (jsxRuntime.jsx(NavigationBottomTheBig, { formSteps: formSteps[mychoiceSdkComponents.InsuranceTypes.Home], validateForm: validateForm, formIsValid: dwellingFormIsValid }))
2617
+ : (jsxRuntime.jsx(NavigationBottom, { formSteps: formSteps[mychoiceSdkComponents.InsuranceTypes.Home], validateForm: validateForm, formIsValid: dwellingFormIsValid }))] }) })] }));
2618
+ };
2619
+
2620
+ const dwellingSwitchInfo = [
2621
+ { name: 'burglarAlarm', title: 'a monitored burglar alarm' },
2622
+ { name: 'fireAlarm', title: 'a monitored fire alarm' },
2623
+ { name: 'sprinkler', title: 'a sprinkler system' },
2624
+ { name: 'deadbolt', title: 'deadbolt locks on all entrances' },
2625
+ ];
2626
+ const dwellingSelectInfo = [
2627
+ { name: 'fireExtinguishersCount', title: 'Number of fire extinguishers' },
2628
+ { name: 'mortgageCount', title: 'How many mortgages do you have on the property?' },
2629
+ ];
2630
+ const BlockDwellingInfo = () => {
2631
+ const { dwellingState, } = mychoiceSdkStore.useStoreFormHomeDwelling();
2632
+ const { applicantState: { insured: { nonsmoker } }, dispatchApplicantInfoState } = mychoiceSdkStore.useStoreFormHomeApplicantInfo();
2633
+ const { dispatchDwellingState } = mychoiceSdkStore.useStoreFormHomeDwelling();
2634
+ // const { dispatchDiscountState } = useStoreFormHomeDiscount();
2635
+ const handleChange = (name) => ({ value }) => {
2636
+ dispatchDwellingState({
2637
+ type: mychoiceSdkStore.StoreFormHomeDwellingActionTypes[`FormHomeDwelling${capitalize(name)}Select`],
2638
+ payload: { [name]: value },
2639
+ });
2640
+ };
2641
+ const handleSmokerChange = ({ value }) => {
2642
+ dispatchApplicantInfoState({
2643
+ type: mychoiceSdkStore.StoreFormHomeApplicantInfoActionTypes.FormHomeApplicantNonsmokerSelect,
2644
+ payload: {
2645
+ nonsmoker: value,
2646
+ },
2647
+ });
2648
+ };
2649
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [dwellingSwitchInfo.map(({ name, title }, index) => (jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.yesNoOptions, onChange: handleChange(name), name: name, defaultValue: getSelectedOption(mychoiceSdkComponents.yesNoOptions, dwellingState[name]), title: `Does your property have ${title}?` }, `dwelling-switch-info-${index}`))), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.yesNoOptions, onChange: handleSmokerChange, name: "nonsmoker", defaultValue: getSelectedOption(mychoiceSdkComponents.yesNoOptions, nonsmoker), title: "Are the occupants non-smokers?" }), dwellingSelectInfo.map(({ name, title }, index) => (jsxRuntime.jsx(SelectFormBox, { options: mychoiceSdkComponents.constructionTypeOptions, name: name, onChange: handleChange(name), defaultValue: getSelectedOption(mychoiceSdkComponents.constructionTypeOptions, dwellingState[name]), title: title, placeholder: "Select", autoSelectIfValueIsOutOfOptions: false, error: !dwellingState[name] && dwellingState.inValidation, errorMessage: getErrorMessage(dwellingState[name], dwellingState.inValidation) }, `dwelling-select-info-${index}`)))] }));
2650
+ };
2651
+
2652
+ const BlockNextPageInfo = () => {
2653
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
2654
+ const isTheBig = appType === mychoiceSdkComponents.AppTypes.TheBig;
2655
+ return (jsxRuntime.jsx("div", { className: "next-page-info", children: isTheBig ? (jsxRuntime.jsx("div", { className: "privacy-policy", children: jsxRuntime.jsxs("p", { children: [jsxRuntime.jsx("span", { children: "DISCLAIMER: " }), "As insurance premiums are based on the information you provide it is important that it be 100% accurate and up to date. If you are not sure it is best to check before completing your quote."] }) })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("h5", { children: "On the next page, you will also be able to:" }), jsxRuntime.jsxs("div", { className: "next-page-points", children: [jsxRuntime.jsx("p", { children: "1. See what rates insurance carriers are offering" }), jsxRuntime.jsx("p", { children: "2. Get in touch with a broker and secure your rate" }), jsxRuntime.jsx("p", { children: "3. Potentially save more by speaking with a broker" })] }), jsxRuntime.jsx("div", { className: "privacy-policy", children: jsxRuntime.jsxs("p", { children: ["Once you submit this form, you are agreeing to have your insurance quote sent to you via email and My Choice will provide your contact information to one of our trusted broker partners, who will contact you after your quote is complete to further assist you in securing your best rate. For more details, see our", jsxRuntime.jsx("a", { href: "https://www.mychoice.ca/privacy-policy/", children: " Privacy Policy" }), "."] }) })] })) }));
2656
+ };
2657
+
2658
+ const BlockSubmit = ({ className, label, buttonSize, isRecalc = false, }) => {
2659
+ const { postRequestQuote } = mychoiceSdkStore.QuoteDataHandler();
2660
+ const handleGetQuotesClick = () => {
2661
+ postRequestQuote(isRecalc);
2662
+ };
2663
+ return (jsxRuntime.jsx(mychoiceSdkComponents.ButtonBase, { className: className, size: buttonSize, category: mychoiceSdkComponents.CategoryTypes.Filled, onClick: handleGetQuotesClick, color: mychoiceSdkComponents.ColorTypes.Primary, label: label }));
2664
+ };
2665
+ BlockSubmit.defaultProps = {
2666
+ buttonSize: mychoiceSdkComponents.SizeTypes.Large,
2667
+ label: 'Get Your Quotes',
2668
+ className: '',
2669
+ };
2670
+
2671
+ const SectionDiscountInfo = () => {
2672
+ const { appConfigState: { appType } } = mychoiceSdkStore.useStoreAppConfig();
2673
+ const isTheBig = appType === mychoiceSdkComponents.AppTypes.TheBig;
2674
+ const { discountState, dispatchDiscountState } = mychoiceSdkStore.useStoreFormHomeDiscount();
2675
+ const { applicantState, dispatchApplicantInfoState } = mychoiceSdkStore.useStoreFormHomeApplicantInfo();
2676
+ const { validateEmail, errorMessage } = mychoiceSdkStore.useHandlerQuoterEmail();
2677
+ const { quoterInfo = {}, } = applicantState;
2678
+ const { multiplePoliciesDiscount, emailTo: { email, emailStatus }, } = discountState;
2679
+ const { firstName = '', lastName = '', phone = '', } = quoterInfo;
2680
+ const handleMultiplePolicyChange = ({ value }) => {
2681
+ dispatchDiscountState({
2682
+ type: mychoiceSdkStore.StoreFormHomeDiscountActionTypes.FormHomeDiscountMultiplePoliciesSelect,
2683
+ payload: { multiplePoliciesDiscount: value },
2684
+ });
2685
+ };
2686
+ const handleFirstNameChange = ({ value }) => {
2687
+ dispatchApplicantInfoState({
2688
+ type: mychoiceSdkStore.StoreFormHomeApplicantInfoActionTypes.FormHomeApplicantFirstNameSet,
2689
+ payload: { firstName: value },
2690
+ });
2691
+ };
2692
+ const handleLastNameChange = ({ value }) => {
2693
+ dispatchApplicantInfoState({
2694
+ type: mychoiceSdkStore.StoreFormHomeApplicantInfoActionTypes.FormHomeApplicantLastNameSet,
2695
+ payload: { lastName: value },
2696
+ });
2697
+ };
2698
+ const handlePhoneNumberChange = ({ value }) => {
2699
+ dispatchApplicantInfoState({
2700
+ type: mychoiceSdkStore.StoreFormHomeApplicantInfoActionTypes.FormHomeApplicantPhoneSet,
2701
+ payload: { phone: value },
2702
+ });
2703
+ };
2704
+ const handleEmailChange = ({ value }) => {
2705
+ validateEmail(value);
2706
+ };
2707
+ return (jsxRuntime.jsxs("div", { className: "form-section", children: [jsxRuntime.jsx("h5", { className: `${isTheBig ? 'thebig-medium' : ''} hint-message`, children: "You are just seconds away from the best quote" }), jsxRuntime.jsx(LabelFormBox, { title: "You are seconds away from receiving your home insurance quotes, please provide your email after completing the discount section so we can send you your personalized free home insurance quotes!" }), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.yesNoOptions, onChange: handleMultiplePolicyChange, name: "multiplePoliciesDiscount", defaultValue: getSelectedOption(mychoiceSdkComponents.yesNoOptions, multiplePoliciesDiscount), title: "Save up to 18% more. Are you open to bundling multiple policies (e.g. auto) with the same company?", description: "Most insurers offer discounts to consumers who purchase multiple policies. Select \u2018yes\u2019 if you\u2019d like to bundle your home and auto insurance policies." }), jsxRuntime.jsx(BlockDwellingInfo, {}), jsxRuntime.jsx("h2", { children: "Complete the form below to see which companies are offering your quotes." }), jsxRuntime.jsx(SwitchButtonBox, { items: mychoiceSdkComponents.yesNoOptions, onChange: handleMultiplePolicyChange, name: "multiplePoliciesDiscount", defaultValue: getSelectedOption(mychoiceSdkComponents.yesNoOptions, multiplePoliciesDiscount), title: "Do you authorize us to run a soft credit check and check your claims history so that you can save up to 50% on your insurance? Rest assured, this will not affect your credit score in any way." }), jsxRuntime.jsx(InputFormBox, { name: "firstName", title: "First Name", onChange: handleFirstNameChange, defaultValue: firstName, placeholder: "Your First Name", error: !firstName && discountState.inValidation, errorMessage: getErrorMessage(firstName, discountState.inValidation) }), jsxRuntime.jsx(InputFormBox, { name: "lastName", title: "Last Name", onChange: handleLastNameChange, defaultValue: lastName, placeholder: "Your Last Name", error: !lastName && discountState.inValidation, errorMessage: getErrorMessage(lastName, discountState.inValidation) }), jsxRuntime.jsx(InputFormPhoneBox, { name: "phone", onChange: handlePhoneNumberChange, defaultValue: phone, title: "Phone Number", placeholder: "(855) 325-8444", error: !phone && discountState.inValidation, errorMessage: getErrorMessage(phone, discountState.inValidation) }), jsxRuntime.jsx(InputFormEmailBox, { validationStatus: emailStatus, name: "email", title: "Please provide your email address so we can send you a copy of your quotes", description: "We will provide you with your insurance quotes immediately after this form completion. If you are not ready to apply today, don\u2019t worry as we will be emailing your quotes to you if you\u2019d like to complete at a later date with the help of one of our trusted broker partners.", onChange: handleEmailChange, defaultValue: email, placeholder: "johnsmith@mychoice.ca", errorMessage: emailStatus === mychoiceSdkComponents.ValidationStatusTypes.Declined
2708
+ ? errorMessage : getErrorMessage(email, discountState.inValidation), error: emailStatus === mychoiceSdkComponents.ValidationStatusTypes.Declined || (!email && discountState.inValidation) }), jsxRuntime.jsx(BlockSubmit, { className: isTheBig ? 'thebig-bold' : '' }), jsxRuntime.jsx(BlockNextPageInfo, {})] }));
2709
+ };
2710
+
2711
+ const PageHomeDiscount = () => {
2712
+ const { applicantFormValidate, applicantFormIsValid } = mychoiceSdkStore.useValidationApplicant();
2713
+ const { dwellingFormValidate, dwellingFormIsValid } = mychoiceSdkStore.useValidationDwelling();
2714
+ mychoiceSdkComponents.useEffectOnce(() => {
2715
+ if (!applicantFormIsValid) {
2716
+ applicantFormValidate();
2717
+ }
2718
+ if (!dwellingFormIsValid) {
2719
+ dwellingFormValidate();
2720
+ }
2721
+ window.scrollTo({
2722
+ top: 0,
2723
+ behavior: 'smooth',
2724
+ });
2725
+ });
2726
+ return (jsxRuntime.jsx("div", { className: "form-container", children: jsxRuntime.jsx("div", { className: "form-section-container", children: jsxRuntime.jsx(SectionDiscountInfo, {}) }) }));
2727
+ };
2728
+
2729
+ const AppRouterListener = () => {
2730
+ const routeLocation = reactRouterDom.useLocation();
2731
+ React.useEffect(() => {
2732
+ if (process.env.REACT_APP_ENV === 'production') {
2733
+ TagManager__default["default"].dataLayer({
2734
+ dataLayer: {
2735
+ page: routeLocation.pathname,
2736
+ },
2737
+ dataLayerName: 'PageDataLayer',
2738
+ });
2739
+ }
2740
+ window.scrollTo(0, 0);
2741
+ }, [routeLocation]);
2742
+ return null;
2743
+ };
2744
+
2745
+ const AppRouteWrapper = (props) => {
2746
+ const { children, insuranceType } = props;
2747
+ const { appConfigState: { isReady } } = mychoiceSdkStore.useStoreAppConfig();
2748
+ const { dispatchAppModalState } = mychoiceSdkStore.useStoreAppModal();
2749
+ const { postalState: { item: { postalCode: carPostal } } } = mychoiceSdkStore.useStoreFormCarPostal();
2750
+ // const { postalState: { item: { postalCode: homePostal } } } = useStoreFormHomePostal();
2751
+ // car insurance validation
2752
+ const { vehicleFormValidate, vehicleFormIsValid } = mychoiceSdkStore.useValidationVehicle();
2753
+ const { driverFormValidate, driverFormIsValid } = mychoiceSdkStore.useValidationDriver();
2754
+ const { carDiscountFormValidate, carDiscountFormIsValid } = mychoiceSdkStore.useValidationCarDiscount();
2755
+ // home insurance validation
2756
+ // const { addressFormValidate, addressFormIsValid } = useValidationAddress();
2757
+ // const { applicantFormValidate, applicantFormIsValid } = useValidationApplicant();
2758
+ // const { dwellingFormValidate, dwellingFormIsValid } = useValidationDwelling();
2759
+ // const { homeDiscountFormValidate, homeDiscountFormIsValid } = useValidationHomeDiscount();
2760
+ const { clearFormData, checkIsExpired, checkIsExpiredWithModal } = mychoiceSdkStore.ClearFormDataHandler();
2761
+ const formValidationHooks = {
2762
+ [mychoiceSdkComponents.InsuranceTypes.Car]: [
2763
+ {
2764
+ key: 0,
2765
+ path: '/',
2766
+ name: 'Step 1',
2767
+ validateOptions: { validate: vehicleFormValidate, isValid: vehicleFormIsValid },
2768
+ },
2769
+ {
2770
+ key: 1,
2771
+ path: '/driver',
2772
+ name: 'Step 2',
2773
+ validateOptions: { validate: driverFormValidate, isValid: driverFormIsValid },
2774
+ },
2775
+ {
2776
+ key: 2,
2777
+ path: '/discount',
2778
+ name: 'Step 3',
2779
+ validateOptions: { validate: carDiscountFormValidate, isValid: carDiscountFormIsValid },
2780
+ },
2781
+ ],
2782
+ // [InsuranceTypes.Home]: [
2783
+ // {
2784
+ // key: 0,
2785
+ // path: '/',
2786
+ // name: 'Step 1',
2787
+ // validateOptions: { validate: addressFormValidate, isValid: addressFormIsValid },
2788
+ // },
2789
+ // {
2790
+ // key: 1,
2791
+ // path: '/applicant',
2792
+ // name: 'Step 2',
2793
+ // validateOptions: { validate: applicantFormValidate, isValid: applicantFormIsValid },
2794
+ // },
2795
+ // {
2796
+ // key: 2,
2797
+ // path: '/property',
2798
+ // name: 'Step 3',
2799
+ // validateOptions: { validate: dwellingFormValidate, isValid: dwellingFormIsValid },
2800
+ // },
2801
+ // {
2802
+ // key: 3,
2803
+ // path: '/discount',
2804
+ // name: 'Step 4',
2805
+ // validateOptions: { validate: homeDiscountFormValidate, isValid: homeDiscountFormIsValid },
2806
+ // },
2807
+ // ],
2808
+ };
2809
+ mychoiceSdkComponents.useEffectOnce(() => {
2810
+ if (checkIsExpired()) {
2811
+ checkIsExpiredWithModal();
2812
+ }
2813
+ });
2814
+ React.useEffect(() => {
2815
+ if (isReady) {
2816
+ if (!carPostal && insuranceType === mychoiceSdkComponents.InsuranceTypes.Car) {
2817
+ dispatchAppModalState({
2818
+ type: mychoiceSdkStore.StoreConfigAppModalActionTypes.AppModalPostalModal,
2819
+ payload: {
2820
+ title: 'Please Enter Your Postal Code',
2821
+ },
2822
+ });
2823
+ }
2824
+ // if (!homePostal && insuranceType === InsuranceTypes.Home) {
2825
+ // dispatchAppModalState({
2826
+ // type: StoreConfigAppModalActionTypes.AppModalPostalModal,
2827
+ // payload: {
2828
+ // title: 'Please Enter Your Postal Code',
2829
+ // },
2830
+ // });
2831
+ // }
2832
+ }
2833
+ }, [carPostal, isReady]);
2834
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: isReady && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(AppHeader, {}), jsxRuntime.jsx(AppModal, {}), insuranceType && (jsxRuntime.jsx(NavigationTop, { title: `${insuranceType.replace(/^./, insuranceType[0].toUpperCase())} Insurance Quote`, postalCode: carPostal, formSteps: formSteps[insuranceType], validationHooks: formValidationHooks[insuranceType], clearForm: clearFormData })), jsxRuntime.jsx("div", { className: `${insuranceType ? 'form-page-content' : ''}`, children: children })] })) }));
2835
+ };
2836
+ const NestedRoutes = () => {
2837
+ const insuranceType = getInsuranceType();
2838
+ const { appConfigState, dispatchAppConfigState } = mychoiceSdkStore.useStoreAppConfig();
2839
+ mychoiceSdkComponents.useEffectOnce(() => {
2840
+ dispatchAppConfigState({
2841
+ type: mychoiceSdkStore.StoreConfigAppConfigActionTypes.AppConfigSetDrawWrapper,
2842
+ payload: true,
2843
+ });
2844
+ });
2845
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: appConfigState.drawWrapper && (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs(reactRouterDom.Routes, { children: [jsxRuntime.jsx(reactRouterDom.Route, { path: "*", element: jsxRuntime.jsx(reactRouterDom.Navigate, { to: { pathname: `/${appConfigState.localIndex || mychoiceSdkComponents.defaultLocalIndex}/${mychoiceSdkComponents.InsuranceTypes.Car}` } }) }), insuranceType === mychoiceSdkComponents.InsuranceTypes.Car
2846
+ && (jsxRuntime.jsxs(reactRouterDom.Route, { path: "car", children: [jsxRuntime.jsx(reactRouterDom.Route, { index: true, element: (jsxRuntime.jsx(AppRouteWrapper, { insuranceType: mychoiceSdkComponents.InsuranceTypes.Car, children: jsxRuntime.jsx(RouteWrapperPublic, { children: jsxRuntime.jsx(PageVehicle, {}) }) })) }), jsxRuntime.jsx(reactRouterDom.Route, { path: "driver", element: (jsxRuntime.jsx(AppRouteWrapper, { insuranceType: mychoiceSdkComponents.InsuranceTypes.Car, children: jsxRuntime.jsx(RouteWrapperPublic, { children: jsxRuntime.jsx(PageDriver, {}) }) })) }), jsxRuntime.jsx(reactRouterDom.Route, { path: "discount", element: (jsxRuntime.jsx(AppRouteWrapper, { insuranceType: mychoiceSdkComponents.InsuranceTypes.Car, children: jsxRuntime.jsx(RouteWrapperPublic, { children: jsxRuntime.jsx(PageCarDiscount, {}) }) })) }), jsxRuntime.jsx(reactRouterDom.Route, { path: "quotes", element: (jsxRuntime.jsx(AppRouteWrapper, { insuranceType: mychoiceSdkComponents.InsuranceTypes.Car, children: jsxRuntime.jsx(RouteWrapperPublic, { children: jsxRuntime.jsx(PageQuote, {}) }) })) })] }))] }) })) }));
2847
+ };
2848
+ const RedirectWithSearchParams = ({ to, path }) => {
2849
+ const insuranceType = getInsuranceType();
2850
+ const [isRender, setIsRender] = React.useState(false);
2851
+ const { getPostal } = mychoiceSdkStore.useHandlerPostal(insuranceType);
2852
+ const { dispatchDiscountState } = mychoiceSdkStore.useStoreFormCarDiscount();
2853
+ const queryRoot = reactRouterDom.useLocation().search.split('?');
2854
+ mychoiceSdkComponents.useEffectOnce(() => {
2855
+ if (queryRoot.length > 1) {
2856
+ const query = JSON.parse(`{"${decodeURI(queryRoot[1]).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g, '":"')}"}`);
2857
+ if (!isRender) {
2858
+ if (query.postal_code) {
2859
+ getPostal(query.postal_code).then(() => {
2860
+ setIsRender(true);
2861
+ });
2862
+ }
2863
+ else {
2864
+ setIsRender(true);
2865
+ }
2866
+ if (query.utm_source) {
2867
+ dispatchDiscountState({ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountQuoterUtmSourceSet, payload: { utmSource: query.utm_source } });
2868
+ }
2869
+ if (query.utm_campaign) {
2870
+ dispatchDiscountState({ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountQuoterUtmCampaignSet, payload: { utmCampaign: query.utm_campaign } });
2871
+ }
2872
+ if (path === 'broker') {
2873
+ dispatchDiscountState({ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountQuoterBrokerInfoSet, payload: query });
2874
+ }
2875
+ }
2876
+ }
2877
+ else {
2878
+ setIsRender(true);
2879
+ }
2880
+ });
2881
+ return jsxRuntime.jsx(jsxRuntime.Fragment, { children: isRender && jsxRuntime.jsx(reactRouterDom.Navigate, { to: to }) });
2882
+ };
2883
+ const AppRoutes = (props) => {
2884
+ const { appType } = props;
2885
+ const defaultInsuranceType = getInsuranceType();
2886
+ const { appConfigState: { localIndex } } = mychoiceSdkStore.useStoreAppConfig();
2887
+ return (jsxRuntime.jsxs(reactRouterDom.BrowserRouter, { children: [jsxRuntime.jsx(AppRouterListener, {}), jsxRuntime.jsxs(reactRouterDom.Routes, { children: [jsxRuntime.jsx(reactRouterDom.Route, { path: "/", element: (jsxRuntime.jsx(RedirectWithSearchParams, { to: `/${localIndex}/${defaultInsuranceType}` })) }), jsxRuntime.jsx(reactRouterDom.Route, { path: `/${localIndex}`, element: (jsxRuntime.jsx(RedirectWithSearchParams, { to: `/${localIndex}/${defaultInsuranceType}` })) }), jsxRuntime.jsx(reactRouterDom.Route, { path: "*", element: (jsxRuntime.jsx(RedirectWithSearchParams, { to: `/${localIndex}/${defaultInsuranceType}` })) }), jsxRuntime.jsx(reactRouterDom.Route, { path: "/broker", element: (jsxRuntime.jsx(RedirectWithSearchParams, { to: `/${localIndex}/${defaultInsuranceType}`, path: "broker" })
2888
+ // <BrokerKeys redirectURL={`/${localIndex}/${defaultInsuranceType}`} />
2889
+ ) }), jsxRuntime.jsx(reactRouterDom.Route, { path: `/${localIndex}`, element: (jsxRuntime.jsx(NestedRoutes, { appType: appType })) }), jsxRuntime.jsx(reactRouterDom.Route, { path: `/${localIndex}/*`, element: (jsxRuntime.jsx(NestedRoutes, { appType: appType })) }), jsxRuntime.jsx(reactRouterDom.Route, { path: "/postal/*", element: (jsxRuntime.jsx(RedirectWithSearchParams, { to: `/${localIndex}/${defaultInsuranceType}` })) }), jsxRuntime.jsx(reactRouterDom.Route, { path: "/auto/postal/*", element: (jsxRuntime.jsx(RedirectWithSearchParams, { to: `/${localIndex}/${defaultInsuranceType}` })) })] })] }));
2890
+ };
2891
+
2892
+ const AppLoader = () => {
2893
+ const { appLoaderState } = mychoiceSdkStore.useStoreAppLoader();
2894
+ if (appLoaderState.isOpen) {
2895
+ return (jsxRuntime.jsx("div", { className: "app-loader", children: jsxRuntime.jsx(LoaderPrimary, {}) }));
2896
+ }
2897
+ return null;
2898
+ };
2899
+
2900
+ const setExternalColors = (primaryColor, secondaryColor) => {
2901
+ document.documentElement.style.setProperty('--color-primary', primaryColor);
2902
+ document.documentElement.style.setProperty('--color-secondary', secondaryColor);
2903
+ };
2904
+ const setInsuranceStepsCount = (count) => {
2905
+ document.documentElement.style.setProperty('--steps-count', count);
2906
+ };
2907
+
2908
+ const AppConfig = (props) => {
2909
+ const { appType } = props;
2910
+ const insuranceType = getInsuranceType();
2911
+ const { dispatchDeviceState } = mychoiceSdkStore.useStoreAppDevice();
2912
+ const { dispatchAppLoaderState } = mychoiceSdkStore.useStoreAppLoader();
2913
+ const { appConfigState, dispatchAppConfigState } = mychoiceSdkStore.useStoreAppConfig();
2914
+ const { dispatchClientState } = mychoiceSdkStore.useStoreClient();
2915
+ const { partnerState } = mychoiceSdkStore.useStorePartner();
2916
+ // car insurance steps states
2917
+ const { dispatchPostalState: dispatchCarPostalState, postalState } = mychoiceSdkStore.useStoreFormCarPostal();
2918
+ const { dispatchConfigState } = mychoiceSdkStore.useStoreFormCarConfig();
2919
+ const { dispatchDriverBaseState } = mychoiceSdkStore.useStoreFormCarDriverBase();
2920
+ const { dispatchVehicleState } = mychoiceSdkStore.useStoreFormCarVehicle();
2921
+ const { dispatchDiscountState: dispatchCarDiscountState } = mychoiceSdkStore.useStoreFormCarDiscount();
2922
+ const { dispatchQuoteState } = mychoiceSdkStore.useStoreFormCarQuote();
2923
+ // home insurance steps states
2924
+ const { dispatchPostalState: dispatchHomePostalState } = mychoiceSdkStore.useStoreFormHomePostal();
2925
+ const { dispatchAddressState } = mychoiceSdkStore.useStoreFormHomeAddress();
2926
+ const { dispatchApplicantBaseState } = mychoiceSdkStore.useStoreFormHomeApplicantBase();
2927
+ const { dispatchDwellingState } = mychoiceSdkStore.useStoreFormHomeDwelling();
2928
+ const { dispatchDiscountState: dispatchHomeDiscountState } = mychoiceSdkStore.useStoreFormHomeDiscount();
2929
+ // const { dispatchQuoteState } = useStoreFormCarQuote();
2930
+ const localIndex = window.location.pathname.split('/')[1];
2931
+ const authHandler = mychoiceSdkStore.useHandlerAuth();
2932
+ const partnerHandler = mychoiceSdkStore.useHandlerPartner();
2933
+ const windowResize = () => {
2934
+ dispatchDeviceState({
2935
+ type: mychoiceSdkStore.StoreConfigAppDeviceActionTypes.AppDeviceSetSize,
2936
+ payload: {
2937
+ width: window.innerWidth,
2938
+ height: window.innerHeight,
2939
+ },
2940
+ });
2941
+ };
2942
+ mychoiceSdkComponents.useEffectOnce(() => {
2943
+ if (!appConfigState.isPreloaded && partnerHandler.status === mychoiceSdkComponents.RequestStatusTypes.Waiting) {
2944
+ window.addEventListener('resize', windowResize);
2945
+ windowResize();
2946
+ dispatchAppConfigState({
2947
+ type: mychoiceSdkStore.StoreConfigAppConfigActionTypes.AppConfigSetAppType,
2948
+ payload: appType,
2949
+ });
2950
+ }
2951
+ if (appType !== mychoiceSdkComponents.AppTypes.TheBig && localIndex !== mychoiceSdkComponents.defaultLocalIndex && localIndex !== '') {
2952
+ partnerHandler.getPartner(localIndex);
2953
+ }
2954
+ else {
2955
+ dispatchAppConfigState({
2956
+ type: mychoiceSdkStore.StoreConfigAppConfigActionTypes.AppConfigSetLocalIndex,
2957
+ payload: mychoiceSdkComponents.defaultLocalIndex,
2958
+ });
2959
+ dispatchAppConfigState({
2960
+ type: mychoiceSdkStore.StoreConfigAppConfigActionTypes.AppConfigSetPreloaded,
2961
+ payload: true,
2962
+ });
2963
+ }
2964
+ });
2965
+ React.useEffect(() => {
2966
+ if (appConfigState.isReady) {
2967
+ dispatchAppLoaderState({
2968
+ type: mychoiceSdkStore.StoreConfigAppLoaderActionTypes.AppLoaderClose,
2969
+ });
2970
+ dispatchConfigState({
2971
+ type: mychoiceSdkStore.StoreFormCarConfigActionTypes.FormCarConfigSet,
2972
+ payload: { province: postalState.item.provinceCode },
2973
+ });
2974
+ }
2975
+ }, [appConfigState]);
2976
+ React.useEffect(() => {
2977
+ if (appConfigState.isPreloaded) {
2978
+ if (authHandler.status === mychoiceSdkComponents.RequestStatusTypes.Waiting) {
2979
+ authHandler.checkUser();
2980
+ }
2981
+ if (authHandler.status !== mychoiceSdkComponents.RequestStatusTypes.Waiting
2982
+ && authHandler.status !== mychoiceSdkComponents.RequestStatusTypes.Loading) {
2983
+ if (insuranceType === mychoiceSdkComponents.InsuranceTypes.Car) {
2984
+ dispatchCarPostalState({
2985
+ type: mychoiceSdkStore.StoreFormCarPostalActionTypes.FormCarPostalGetLocal,
2986
+ });
2987
+ dispatchDriverBaseState({
2988
+ type: mychoiceSdkStore.StoreFormCarDriverBaseActionTypes.FormCarDriverGetLocal,
2989
+ });
2990
+ dispatchDriverBaseState({
2991
+ type: mychoiceSdkStore.StoreFormCarDriverBaseActionTypes.FormCarDriverValidate,
2992
+ payload: { inValidation: false },
2993
+ });
2994
+ dispatchVehicleState({
2995
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarVehicleGetLocal,
2996
+ });
2997
+ dispatchVehicleState({
2998
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarVehicleValidate,
2999
+ payload: { inValidation: false },
3000
+ });
3001
+ dispatchCarDiscountState({
3002
+ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountGetLocal,
3003
+ });
3004
+ dispatchCarDiscountState({
3005
+ type: mychoiceSdkStore.StoreFormCarDiscountActionTypes.FormCarDiscountValidate,
3006
+ payload: { inValidation: false },
3007
+ });
3008
+ dispatchQuoteState({
3009
+ type: mychoiceSdkStore.StoreFormCarQuoteActionTypes.FormCarQuoteGetLocal,
3010
+ });
3011
+ }
3012
+ if (insuranceType === mychoiceSdkComponents.InsuranceTypes.Home) {
3013
+ dispatchHomePostalState({
3014
+ type: mychoiceSdkStore.StoreFormHomePostalActionTypes.FormHomePostalGetLocal,
3015
+ });
3016
+ dispatchAddressState({
3017
+ type: mychoiceSdkStore.StoreFormHomeAddressActionTypes.FormHomeAddressGetLocal,
3018
+ });
3019
+ dispatchApplicantBaseState({
3020
+ type: mychoiceSdkStore.StoreFormHomeApplicantBaseActionTypes.FormHomeApplicantGetLocal,
3021
+ });
3022
+ dispatchDwellingState({
3023
+ type: mychoiceSdkStore.StoreFormHomeDwellingActionTypes.FormHomeDwellingGetLocal,
3024
+ });
3025
+ dispatchHomeDiscountState({
3026
+ type: mychoiceSdkStore.StoreFormHomeDiscountActionTypes.FormHomeDiscountGetLocal,
3027
+ });
3028
+ // dispatchQuoteState({
3029
+ // type: StoreFormCarQuoteActionTypes.FormCarQuoteGetLocal,
3030
+ // });
3031
+ }
3032
+ if (authHandler.status === mychoiceSdkComponents.RequestStatusTypes.Success) {
3033
+ dispatchClientState({
3034
+ type: mychoiceSdkStore.StoreClientActionTypes.ClientGetLocal,
3035
+ });
3036
+ }
3037
+ dispatchAppConfigState({
3038
+ type: mychoiceSdkStore.StoreConfigAppConfigActionTypes.AppConfigSetIsReady,
3039
+ payload: true,
3040
+ });
3041
+ }
3042
+ }
3043
+ }, [appConfigState.isPreloaded, authHandler.status]);
3044
+ React.useEffect(() => {
3045
+ if (appType === mychoiceSdkComponents.AppTypes.TheBig) {
3046
+ setExternalColors('#F1642F', '#4C4B4B');
3047
+ dispatchAppConfigState({
3048
+ type: mychoiceSdkStore.StoreConfigAppConfigActionTypes.AppConfigSetPreloaded,
3049
+ payload: true,
3050
+ });
3051
+ }
3052
+ }, [appType]);
3053
+ React.useEffect(() => {
3054
+ const stepCount = `${formSteps[insuranceType].length}`;
3055
+ setInsuranceStepsCount(stepCount);
3056
+ dispatchAppConfigState({
3057
+ type: mychoiceSdkStore.StoreConfigAppConfigActionTypes.AppConfigSetInsuranceType,
3058
+ payload: insuranceType,
3059
+ });
3060
+ }, [insuranceType]);
3061
+ React.useEffect(() => {
3062
+ if (partnerHandler.status === mychoiceSdkComponents.RequestStatusTypes.Success) {
3063
+ setExternalColors(partnerState.primaryColor, partnerState.secondaryColor);
3064
+ dispatchAppConfigState({
3065
+ type: mychoiceSdkStore.StoreConfigAppConfigActionTypes.AppConfigSetPreloaded,
3066
+ payload: true,
3067
+ });
3068
+ }
3069
+ if (partnerHandler.status === mychoiceSdkComponents.RequestStatusTypes.Error) ;
3070
+ }, [partnerHandler.status]);
3071
+ return null;
3072
+ };
3073
+
3074
+ const AppWrapperConfig = (props) => {
3075
+ mychoiceSdkStore.initHttpResponse();
3076
+ const { appType } = props;
3077
+ const { appConfigState: { isReady, drawWrapper }, dispatchAppConfigState } = mychoiceSdkStore.useStoreAppConfig();
3078
+ mychoiceSdkComponents.useEffectOnce(() => {
3079
+ dispatchAppConfigState({
3080
+ type: mychoiceSdkStore.StoreConfigAppConfigActionTypes.AppConfigSetDrawWrapper,
3081
+ payload: true,
3082
+ });
3083
+ });
3084
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(AppLoader, {}), jsxRuntime.jsx(AppConfig, { appType: appType }), drawWrapper && isReady
3085
+ && jsxRuntime.jsx(AppRoutes, { appType: appType })] }));
3086
+ };
3087
+ const AppWrapper = ({ appType }) => (jsxRuntime.jsx(mychoiceSdkStore.StoreProvider, { children: jsxRuntime.jsx(AppWrapperConfig, { appType: appType }) }));
3088
+ AppWrapper.defaultProps = {
3089
+ appType: mychoiceSdkComponents.AppTypes.MyChoice,
3090
+ insuranceType: mychoiceSdkComponents.InsuranceTypes.Car,
3091
+ };
3092
+
3093
+ const StoreConfig = () => {
3094
+ const { dispatchAppConfigState } = mychoiceSdkStore.useStoreAppConfig();
3095
+ const { dispatchDriverBaseState } = mychoiceSdkStore.useStoreFormCarDriverBase();
3096
+ const { dispatchVehicleState } = mychoiceSdkStore.useStoreFormCarVehicle();
3097
+ const { dispatchDeviceState } = mychoiceSdkStore.useStoreAppDevice();
3098
+ const windowResize = () => {
3099
+ dispatchDeviceState({
3100
+ type: mychoiceSdkStore.StoreConfigAppDeviceActionTypes.AppDeviceSetSize,
3101
+ payload: {
3102
+ width: window.innerWidth,
3103
+ height: window.innerHeight,
3104
+ },
3105
+ });
3106
+ };
3107
+ mychoiceSdkComponents.useEffectOnce(() => {
3108
+ dispatchDriverBaseState({
3109
+ type: mychoiceSdkStore.StoreFormCarDriverBaseActionTypes.FormCarDriverGetLocal,
3110
+ });
3111
+ dispatchVehicleState({
3112
+ type: mychoiceSdkStore.StoreFormCarVehicleActionTypes.FormCarVehicleGetLocal,
3113
+ });
3114
+ dispatchAppConfigState({
3115
+ type: mychoiceSdkStore.StoreConfigAppConfigActionTypes.AppConfigSetIsReady,
3116
+ payload: true,
3117
+ });
3118
+ window.addEventListener('resize', windowResize);
3119
+ windowResize();
3120
+ });
3121
+ return null;
3122
+ };
3123
+ const StoryAppWrapperConfig = (props) => {
3124
+ const { children } = props;
3125
+ const { appConfigState, dispatchAppConfigState } = mychoiceSdkStore.useStoreAppConfig();
3126
+ mychoiceSdkComponents.useEffectOnce(() => {
3127
+ dispatchAppConfigState({
3128
+ type: mychoiceSdkStore.StoreConfigAppConfigActionTypes.AppConfigSetDrawWrapper,
3129
+ payload: true,
3130
+ });
3131
+ });
3132
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(StoreConfig, {}), appConfigState.drawWrapper
3133
+ && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(AppModal, {}), children] }))] }));
3134
+ };
3135
+ const StoryAppWrapper = (props) => {
3136
+ const { appType, children } = props;
3137
+ mychoiceSdkComponents.useEffectOnce(() => {
3138
+ mychoiceSdkStore.initHttpResponse();
3139
+ });
3140
+ return (jsxRuntime.jsx(mychoiceSdkStore.StoreProvider, { children: jsxRuntime.jsx(reactRouterDom.BrowserRouter, { children: jsxRuntime.jsx(StoryAppWrapperConfig, { appType: appType, children: children }) }) }));
3141
+ };
3142
+ StoryAppWrapper.defaultProps = {
3143
+ appType: mychoiceSdkComponents.AppTypes.MyChoice,
3144
+ };
3145
+
3146
+ exports.AppWrapper = AppWrapper;
3147
+ exports.DateSelectFormBox = DateSelectFormBox;
3148
+ exports.HeaderMyChoice = HeaderMyChoice;
3149
+ exports.HeaderMyChoiceMobile = HeaderMyChoiceMobile;
3150
+ exports.HeaderPartner = HeaderPartner;
3151
+ exports.HeaderTheBig = HeaderTheBig;
3152
+ exports.InputFormBox = InputFormBox;
3153
+ exports.InputFormEmailBox = InputFormEmailBox;
3154
+ exports.InputFormLicenceBox = InputFormLicenceBox;
3155
+ exports.InputFormPhoneBox = InputFormPhoneBox;
3156
+ exports.LabelFormBox = LabelFormBox;
3157
+ exports.LoaderPrimary = LoaderPrimary;
3158
+ exports.ModalConfirm = ModalConfirm;
3159
+ exports.ModalFinale = ModalFinale;
3160
+ exports.ModalMessage = ModalMessage;
3161
+ exports.ModalPostal = ModalPostal;
3162
+ exports.ModalQuoteRequest = ModalQuoteRequest;
3163
+ exports.NavigationBottom = NavigationBottom;
3164
+ exports.NavigationBottomTheBig = NavigationBottomTheBig;
3165
+ exports.NavigationTab = NavigationTab;
3166
+ exports.NavigationTabMobile = NavigationTabMobile;
3167
+ exports.NavigationTop = NavigationTop;
3168
+ exports.OfferSection = OfferSection;
3169
+ exports.PageAddress = PageAddress;
3170
+ exports.PageApplicant = PageApplicant;
3171
+ exports.PageCarDiscount = PageCarDiscount;
3172
+ exports.PageDriver = PageDriver;
3173
+ exports.PageHomeDiscount = PageHomeDiscount;
3174
+ exports.PageProperty = PageProperty;
3175
+ exports.PageQuote = PageQuote;
3176
+ exports.PageVehicle = PageVehicle;
3177
+ exports.SelectFormBox = SelectFormBox;
3178
+ exports.StoryAppWrapper = StoryAppWrapper;
3179
+ exports.SwitchButtonBox = SwitchButtonBox;
3180
+ exports.capitalize = capitalize;
3181
+ exports.checkDateIsSpecial = checkDateIsSpecial;
3182
+ exports.formSteps = formSteps;
3183
+ exports.formatPhoneObject = formatPhoneObject;
3184
+ exports.formatTitleToCapital = formatTitleToCapital;
3185
+ exports.getDateErrorMessage = getDateErrorMessage;
3186
+ exports.getDisabledLicenceTypes = getDisabledLicenceTypes;
3187
+ exports.getErrorMessage = getErrorMessage;
3188
+ exports.getInsuranceType = getInsuranceType;
3189
+ exports.getLicenceMaxDate = getLicenceMaxDate;
3190
+ exports.getLicenceMinDate = getLicenceMinDate;
3191
+ exports.getLicenceTypeOptions = getLicenceTypeOptions;
3192
+ exports.getSelectedOption = getSelectedOption;
3193
+ exports.usePathGroups = usePathGroups;
3194
+ //# sourceMappingURL=index.js.map