@frankieone/one-sdk 1.4.4-beta → 1.5.0-beta

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 (515) hide show
  1. package/dist/commit.txt +2 -2
  2. package/dist/esm/modules/biometrics/vendors/Incode/index.d.ts +2 -2
  3. package/dist/esm/modules/biometrics/vendors/OcrLabs/index.d.ts +2 -2
  4. package/dist/esm/modules/biometrics/vendors/Onfido/index.d.ts +2 -2
  5. package/dist/esm/modules/biometrics/vendors/common/createSession.d.ts.map +1 -1
  6. package/dist/esm/modules/biometrics/vendors/common/createSession.js +3 -0
  7. package/dist/esm/modules/biometrics/vendors/common/createSession.js.map +1 -1
  8. package/dist/esm/modules/biometrics/vendors/common/initProcess.d.ts.map +1 -1
  9. package/dist/esm/modules/biometrics/vendors/common/initProcess.js +2 -0
  10. package/dist/esm/modules/biometrics/vendors/common/initProcess.js.map +1 -1
  11. package/dist/esm/modules/biometrics/vendors/dummy-biometrics/index.d.ts +2 -2
  12. package/dist/esm/modules/common/shared/models/Address.d.ts +5 -6
  13. package/dist/esm/modules/common/shared/models/Address.d.ts.map +1 -1
  14. package/dist/esm/modules/common/shared/models/Address.js +15 -11
  15. package/dist/esm/modules/common/shared/models/Address.js.map +1 -1
  16. package/dist/esm/modules/common/shared/models/Document.d.ts +7 -7
  17. package/dist/esm/modules/common/shared/models/Document.d.ts.map +1 -1
  18. package/dist/esm/modules/common/shared/models/Document.js +10 -6
  19. package/dist/esm/modules/common/shared/models/Document.js.map +1 -1
  20. package/dist/esm/modules/common/shared/models/UBOData.d.ts +2 -2
  21. package/dist/esm/modules/common/shared/utils/getCountryDetails.d.ts +2 -1
  22. package/dist/esm/modules/common/shared/utils/getCountryDetails.d.ts.map +1 -1
  23. package/dist/esm/modules/common/shared/utils/getCountryDetails.js +3 -2
  24. package/dist/esm/modules/common/shared/utils/getCountryDetails.js.map +1 -1
  25. package/dist/esm/modules/common/shared/utils/sanitiser.d.ts.map +1 -1
  26. package/dist/esm/modules/common/vendors/incode/createEventHandlers.d.ts.map +1 -1
  27. package/dist/esm/modules/common/vendors/incode/index.d.ts.map +1 -1
  28. package/dist/esm/modules/config/modules.d.ts +1 -1
  29. package/dist/esm/modules/form/definition.d.ts +4 -1
  30. package/dist/esm/modules/form/definition.d.ts.map +1 -1
  31. package/dist/esm/modules/form/events.d.ts +51 -7
  32. package/dist/esm/modules/form/events.d.ts.map +1 -1
  33. package/dist/esm/modules/form/events.js +66 -9
  34. package/dist/esm/modules/form/events.js.map +1 -1
  35. package/dist/esm/modules/form/index.d.ts.map +1 -1
  36. package/dist/esm/modules/form/index.js +13 -5
  37. package/dist/esm/modules/form/index.js.map +1 -1
  38. package/dist/esm/modules/form/vendors/react/App.d.ts +2 -1
  39. package/dist/esm/modules/form/vendors/react/App.d.ts.map +1 -1
  40. package/dist/esm/modules/form/vendors/react/App.js +3 -3
  41. package/dist/esm/modules/form/vendors/react/App.js.map +1 -1
  42. package/dist/esm/modules/form/vendors/react/appConfig.type.d.ts +138 -152
  43. package/dist/esm/modules/form/vendors/react/appConfig.type.d.ts.map +1 -1
  44. package/dist/esm/modules/form/vendors/react/appConfig.type.js +18 -118
  45. package/dist/esm/modules/form/vendors/react/appConfig.type.js.map +1 -1
  46. package/dist/esm/modules/form/vendors/react/components/base/FrankieActionField/FrankieActionField.d.ts +12 -0
  47. package/dist/esm/modules/form/vendors/react/components/base/FrankieActionField/FrankieActionField.d.ts.map +1 -0
  48. package/dist/esm/modules/form/vendors/react/components/base/FrankieActionField/FrankieActionField.js +10 -0
  49. package/dist/esm/modules/form/vendors/react/components/base/FrankieActionField/FrankieActionField.js.map +1 -0
  50. package/dist/esm/modules/form/vendors/react/components/base/FrankieButton/BaseButton.d.ts.map +1 -1
  51. package/dist/esm/modules/form/vendors/react/components/base/FrankieButton/BaseButton.js +2 -1
  52. package/dist/esm/modules/form/vendors/react/components/base/FrankieButton/BaseButton.js.map +1 -1
  53. package/dist/esm/modules/form/vendors/react/components/base/FrankieButton/FrankieButton.d.ts +3 -3
  54. package/dist/esm/modules/form/vendors/react/components/base/FrankieButton/FrankieButton.d.ts.map +1 -1
  55. package/dist/esm/modules/form/vendors/react/components/base/FrankieButton/FrankieButton.js +1 -1
  56. package/dist/esm/modules/form/vendors/react/components/base/FrankieButton/FrankieButton.js.map +1 -1
  57. package/dist/esm/modules/form/vendors/react/components/base/FrankieTextArea/FrankieTextArea.d.ts +4 -0
  58. package/dist/esm/modules/form/vendors/react/components/base/FrankieTextArea/FrankieTextArea.d.ts.map +1 -0
  59. package/dist/esm/modules/form/vendors/react/components/base/FrankieTextArea/FrankieTextArea.js +164 -0
  60. package/dist/esm/modules/form/vendors/react/components/base/FrankieTextArea/FrankieTextArea.js.map +1 -0
  61. package/dist/esm/modules/form/vendors/react/components/base/SelectField/SelectField.d.ts +4 -0
  62. package/dist/esm/modules/form/vendors/react/components/base/SelectField/SelectField.d.ts.map +1 -0
  63. package/dist/esm/modules/form/vendors/react/components/base/SelectField/SelectField.js +148 -0
  64. package/dist/esm/modules/form/vendors/react/components/base/SelectField/SelectField.js.map +1 -0
  65. package/dist/esm/modules/form/vendors/react/components/base/SharedInput/Input.d.ts +10 -0
  66. package/dist/esm/modules/form/vendors/react/components/base/SharedInput/Input.d.ts.map +1 -0
  67. package/dist/esm/modules/form/vendors/react/components/base/SharedInput/Input.js +31 -0
  68. package/dist/esm/modules/form/vendors/react/components/base/SharedInput/Input.js.map +1 -0
  69. package/dist/esm/modules/form/vendors/react/components/base/SharedSelect/Select.d.ts +11 -0
  70. package/dist/esm/modules/form/vendors/react/components/base/SharedSelect/Select.d.ts.map +1 -0
  71. package/dist/esm/modules/form/vendors/react/components/base/SharedSelect/Select.js +26 -0
  72. package/dist/esm/modules/form/vendors/react/components/base/SharedSelect/Select.js.map +1 -0
  73. package/dist/esm/modules/form/vendors/react/components/base/SharedTextArea/TextArea.d.ts +9 -0
  74. package/dist/esm/modules/form/vendors/react/components/base/SharedTextArea/TextArea.d.ts.map +1 -0
  75. package/dist/esm/modules/form/vendors/react/components/base/SharedTextArea/TextArea.js +26 -0
  76. package/dist/esm/modules/form/vendors/react/components/base/SharedTextArea/TextArea.js.map +1 -0
  77. package/dist/esm/modules/form/vendors/react/components/base/StandardDate/StandardDate.d.ts +46 -0
  78. package/dist/esm/modules/form/vendors/react/components/base/StandardDate/StandardDate.d.ts.map +1 -0
  79. package/dist/esm/modules/form/vendors/react/components/base/StandardDate/StandardDate.js +135 -0
  80. package/dist/esm/modules/form/vendors/react/components/base/StandardDate/StandardDate.js.map +1 -0
  81. package/dist/esm/modules/form/vendors/react/components/base/TextField/TextSelectField.d.ts +4 -0
  82. package/dist/esm/modules/form/vendors/react/components/base/TextField/TextSelectField.d.ts.map +1 -0
  83. package/dist/esm/modules/form/vendors/react/components/base/TextField/TextSelectField.js +41 -0
  84. package/dist/esm/modules/form/vendors/react/components/base/TextField/TextSelectField.js.map +1 -0
  85. package/dist/esm/modules/form/vendors/react/components/base/baseComponent.key.d.ts +2 -0
  86. package/dist/esm/modules/form/vendors/react/components/base/baseComponent.key.d.ts.map +1 -0
  87. package/dist/esm/modules/form/vendors/react/components/base/baseComponent.key.js +2 -0
  88. package/dist/esm/modules/form/vendors/react/components/base/baseComponent.key.js.map +1 -0
  89. package/dist/esm/modules/form/vendors/react/components/base/index.d.ts.map +1 -1
  90. package/dist/esm/modules/form/vendors/react/components/base/index.js.map +1 -1
  91. package/dist/esm/modules/form/vendors/react/components/base/qa/base.qa.d.ts +61 -0
  92. package/dist/esm/modules/form/vendors/react/components/base/qa/base.qa.d.ts.map +1 -0
  93. package/dist/esm/modules/form/vendors/react/components/base/qa/base.qa.js +68 -0
  94. package/dist/esm/modules/form/vendors/react/components/base/qa/base.qa.js.map +1 -0
  95. package/dist/esm/modules/form/vendors/react/components/view/ActionFormField/ActionFormField.d.ts +13 -0
  96. package/dist/esm/modules/form/vendors/react/components/view/ActionFormField/ActionFormField.d.ts.map +1 -0
  97. package/dist/esm/modules/form/vendors/react/components/view/ActionFormField/ActionFormField.js +42 -0
  98. package/dist/esm/modules/form/vendors/react/components/view/ActionFormField/ActionFormField.js.map +1 -0
  99. package/dist/esm/modules/form/vendors/react/components/view/FrankieAddress/FrankieAddress.d.ts +13 -0
  100. package/dist/esm/modules/form/vendors/react/components/view/FrankieAddress/FrankieAddress.d.ts.map +1 -0
  101. package/dist/esm/modules/form/vendors/react/components/view/FrankieAddress/FrankieAddress.js +19 -0
  102. package/dist/esm/modules/form/vendors/react/components/view/FrankieAddress/FrankieAddress.js.map +1 -0
  103. package/dist/esm/modules/form/vendors/react/components/view/FrankieCardList/FrankieCardList.d.ts +11 -0
  104. package/dist/esm/modules/form/vendors/react/components/view/FrankieCardList/FrankieCardList.d.ts.map +1 -0
  105. package/dist/esm/modules/form/vendors/react/components/view/FrankieCardList/FrankieCardList.js +20 -0
  106. package/dist/esm/modules/form/vendors/react/components/view/FrankieCardList/FrankieCardList.js.map +1 -0
  107. package/dist/esm/modules/form/vendors/react/components/view/FrankieCheckbox/FrankieCheckbox.d.ts +7 -1
  108. package/dist/esm/modules/form/vendors/react/components/view/FrankieCheckbox/FrankieCheckbox.d.ts.map +1 -1
  109. package/dist/esm/modules/form/vendors/react/components/view/FrankieCheckbox/FrankieCheckbox.js +8 -3
  110. package/dist/esm/modules/form/vendors/react/components/view/FrankieCheckbox/FrankieCheckbox.js.map +1 -1
  111. package/dist/esm/modules/form/vendors/react/components/view/FrankieDescription/FrankieDescription.d.ts +4 -1
  112. package/dist/esm/modules/form/vendors/react/components/view/FrankieDescription/FrankieDescription.d.ts.map +1 -1
  113. package/dist/esm/modules/form/vendors/react/components/view/FrankieDescription/FrankieDescription.js +8 -3
  114. package/dist/esm/modules/form/vendors/react/components/view/FrankieDescription/FrankieDescription.js.map +1 -1
  115. package/dist/esm/modules/form/vendors/react/components/view/FrankieFormMapper/FrankieFormMapper.d.ts +10 -0
  116. package/dist/esm/modules/form/vendors/react/components/view/FrankieFormMapper/FrankieFormMapper.d.ts.map +1 -0
  117. package/dist/esm/modules/form/vendors/react/components/view/FrankieFormMapper/FrankieFormMapper.js +48 -0
  118. package/dist/esm/modules/form/vendors/react/components/view/FrankieFormMapper/FrankieFormMapper.js.map +1 -0
  119. package/dist/esm/modules/form/vendors/react/components/view/FrankieHeading/Heading.d.ts +5 -1
  120. package/dist/esm/modules/form/vendors/react/components/view/FrankieHeading/Heading.d.ts.map +1 -1
  121. package/dist/esm/modules/form/vendors/react/components/view/FrankieHeading/Heading.js +2 -2
  122. package/dist/esm/modules/form/vendors/react/components/view/FrankieHeading/Heading.js.map +1 -1
  123. package/dist/esm/modules/form/vendors/react/components/view/FrankieInstructionList/FrankieInstructionList.d.ts +12 -4
  124. package/dist/esm/modules/form/vendors/react/components/view/FrankieInstructionList/FrankieInstructionList.d.ts.map +1 -1
  125. package/dist/esm/modules/form/vendors/react/components/view/FrankieInstructionList/FrankieInstructionList.js +10 -6
  126. package/dist/esm/modules/form/vendors/react/components/view/FrankieInstructionList/FrankieInstructionList.js.map +1 -1
  127. package/dist/esm/modules/form/vendors/react/components/view/ManualAddress/ManualAddress.d.ts +26 -0
  128. package/dist/esm/modules/form/vendors/react/components/view/ManualAddress/ManualAddress.d.ts.map +1 -0
  129. package/dist/esm/modules/form/vendors/react/components/view/ManualAddress/ManualAddress.js +17 -0
  130. package/dist/esm/modules/form/vendors/react/components/view/ManualAddress/ManualAddress.js.map +1 -0
  131. package/dist/esm/modules/form/vendors/react/components/view/Progress/Progress.d.ts +8 -0
  132. package/dist/esm/modules/form/vendors/react/components/view/Progress/Progress.d.ts.map +1 -0
  133. package/dist/esm/modules/form/vendors/react/components/view/Progress/Progress.js +16 -0
  134. package/dist/esm/modules/form/vendors/react/components/view/Progress/Progress.js.map +1 -0
  135. package/dist/esm/modules/form/vendors/react/components/view/SearchableAddress/SearchableAddress.d.ts +14 -0
  136. package/dist/esm/modules/form/vendors/react/components/view/SearchableAddress/SearchableAddress.d.ts.map +1 -0
  137. package/dist/esm/modules/form/vendors/react/components/view/SearchableAddress/SearchableAddress.js +16 -0
  138. package/dist/esm/modules/form/vendors/react/components/view/SearchableAddress/SearchableAddress.js.map +1 -0
  139. package/dist/esm/modules/form/vendors/react/components/view/Wrapper/Wrapper.d.ts +1 -1
  140. package/dist/esm/modules/form/vendors/react/components/view/Wrapper/Wrapper.d.ts.map +1 -1
  141. package/dist/esm/modules/form/vendors/react/components/view/Wrapper/Wrapper.js +5 -9
  142. package/dist/esm/modules/form/vendors/react/components/view/Wrapper/Wrapper.js.map +1 -1
  143. package/dist/esm/modules/form/vendors/react/components/view/qa/view.qa.d.ts +22 -0
  144. package/dist/esm/modules/form/vendors/react/components/view/qa/view.qa.d.ts.map +1 -0
  145. package/dist/esm/modules/form/vendors/react/components/view/qa/view.qa.js +28 -0
  146. package/dist/esm/modules/form/vendors/react/components/view/qa/view.qa.js.map +1 -0
  147. package/dist/esm/modules/form/vendors/react/components/view/viewComponent.key.d.ts +2 -0
  148. package/dist/esm/modules/form/vendors/react/components/view/viewComponent.key.d.ts.map +1 -0
  149. package/dist/esm/modules/form/vendors/react/components/view/viewComponent.key.js +2 -0
  150. package/dist/esm/modules/form/vendors/react/components/view/viewComponent.key.js.map +1 -0
  151. package/dist/esm/modules/form/vendors/react/constants/address.const.d.ts +12 -0
  152. package/dist/esm/modules/form/vendors/react/constants/address.const.d.ts.map +1 -0
  153. package/dist/esm/modules/form/vendors/react/constants/address.const.js +13 -0
  154. package/dist/esm/modules/form/vendors/react/constants/address.const.js.map +1 -0
  155. package/dist/esm/modules/form/vendors/react/constants/form.const.d.ts +76 -0
  156. package/dist/esm/modules/form/vendors/react/constants/form.const.d.ts.map +1 -0
  157. package/dist/esm/modules/form/vendors/react/constants/form.const.js +96 -0
  158. package/dist/esm/modules/form/vendors/react/constants/form.const.js.map +1 -0
  159. package/dist/esm/modules/form/vendors/react/constants/icons.d.ts +16 -2
  160. package/dist/esm/modules/form/vendors/react/constants/icons.d.ts.map +1 -1
  161. package/dist/esm/modules/form/vendors/react/constants/icons.js +17 -4
  162. package/dist/esm/modules/form/vendors/react/constants/icons.js.map +1 -1
  163. package/dist/esm/modules/form/vendors/react/constants/layoutMapper.const.d.ts +91 -0
  164. package/dist/esm/modules/form/vendors/react/constants/layoutMapper.const.d.ts.map +1 -0
  165. package/dist/esm/modules/form/vendors/react/constants/layoutMapper.const.js +49 -0
  166. package/dist/esm/modules/form/vendors/react/constants/layoutMapper.const.js.map +1 -0
  167. package/dist/esm/modules/form/vendors/react/constants/staticScreenMapper.const.d.ts +56 -0
  168. package/dist/esm/modules/form/vendors/react/constants/staticScreenMapper.const.d.ts.map +1 -0
  169. package/dist/esm/modules/form/vendors/react/constants/staticScreenMapper.const.js +8 -0
  170. package/dist/esm/modules/form/vendors/react/constants/staticScreenMapper.const.js.map +1 -0
  171. package/dist/esm/modules/form/vendors/react/features/Consent/Consent.d.ts.map +1 -1
  172. package/dist/esm/modules/form/vendors/react/features/Consent/Consent.js +15 -3
  173. package/dist/esm/modules/form/vendors/react/features/Consent/Consent.js.map +1 -1
  174. package/dist/esm/modules/form/vendors/react/features/Consent/consent.config.d.ts +1 -0
  175. package/dist/esm/modules/form/vendors/react/features/Consent/consent.config.d.ts.map +1 -1
  176. package/dist/esm/modules/form/vendors/react/features/Consent/consent.config.js +1 -0
  177. package/dist/esm/modules/form/vendors/react/features/Consent/consent.config.js.map +1 -1
  178. package/dist/esm/modules/form/vendors/react/features/Consent/manualConsent.config.d.ts +30 -0
  179. package/dist/esm/modules/form/vendors/react/features/Consent/manualConsent.config.d.ts.map +1 -0
  180. package/dist/esm/modules/form/vendors/react/features/Consent/manualConsent.config.js +39 -0
  181. package/dist/esm/modules/form/vendors/react/features/Consent/manualConsent.config.js.map +1 -0
  182. package/dist/esm/modules/form/vendors/react/features/IdPreps/IdPrep.d.ts +8 -0
  183. package/dist/esm/modules/form/vendors/react/features/IdPreps/IdPrep.d.ts.map +1 -0
  184. package/dist/esm/modules/form/vendors/react/features/IdPreps/IdPrep.js +16 -0
  185. package/dist/esm/modules/form/vendors/react/features/IdPreps/IdPrep.js.map +1 -0
  186. package/dist/esm/modules/form/vendors/react/features/IdPreps/driversLicense.config.d.ts +19 -0
  187. package/dist/esm/modules/form/vendors/react/features/IdPreps/driversLicense.config.d.ts.map +1 -0
  188. package/dist/esm/modules/form/vendors/react/features/IdPreps/driversLicense.config.js +21 -0
  189. package/dist/esm/modules/form/vendors/react/features/IdPreps/driversLicense.config.js.map +1 -0
  190. package/dist/esm/modules/form/vendors/react/features/IdPreps/mediCare.config.d.ts +19 -0
  191. package/dist/esm/modules/form/vendors/react/features/IdPreps/mediCare.config.d.ts.map +1 -0
  192. package/dist/esm/modules/form/vendors/react/features/IdPreps/mediCare.config.js +19 -0
  193. package/dist/esm/modules/form/vendors/react/features/IdPreps/mediCare.config.js.map +1 -0
  194. package/dist/esm/modules/form/vendors/react/features/IdPreps/passport.config.d.ts +18 -0
  195. package/dist/esm/modules/form/vendors/react/features/IdPreps/passport.config.d.ts.map +1 -0
  196. package/dist/esm/modules/form/vendors/react/features/IdPreps/passport.config.js +19 -0
  197. package/dist/esm/modules/form/vendors/react/features/IdPreps/passport.config.js.map +1 -0
  198. package/dist/esm/modules/form/vendors/react/features/IdSelection/IdSelection.d.ts +3 -0
  199. package/dist/esm/modules/form/vendors/react/features/IdSelection/IdSelection.d.ts.map +1 -0
  200. package/dist/esm/modules/form/vendors/react/features/IdSelection/IdSelection.js +37 -0
  201. package/dist/esm/modules/form/vendors/react/features/IdSelection/IdSelection.js.map +1 -0
  202. package/dist/esm/modules/form/vendors/react/features/IdSelection/idSelection.config.d.ts +33 -0
  203. package/dist/esm/modules/form/vendors/react/features/IdSelection/idSelection.config.d.ts.map +1 -0
  204. package/dist/esm/modules/form/vendors/react/features/IdSelection/idSelection.config.js +38 -0
  205. package/dist/esm/modules/form/vendors/react/features/IdSelection/idSelection.config.js.map +1 -0
  206. package/dist/esm/modules/form/vendors/react/features/Loading/Loading.d.ts +3 -0
  207. package/dist/esm/modules/form/vendors/react/features/Loading/Loading.d.ts.map +1 -0
  208. package/dist/esm/modules/form/vendors/react/features/Loading/Loading.js +12 -0
  209. package/dist/esm/modules/form/vendors/react/features/Loading/Loading.js.map +1 -0
  210. package/dist/esm/modules/form/vendors/react/features/Loading/loading.config.d.ts +3 -0
  211. package/dist/esm/modules/form/vendors/react/features/Loading/loading.config.d.ts.map +1 -0
  212. package/dist/esm/modules/form/vendors/react/features/Loading/loading.config.js +10 -0
  213. package/dist/esm/modules/form/vendors/react/features/Loading/loading.config.js.map +1 -0
  214. package/dist/esm/modules/form/vendors/react/features/PersonalDetails/PersonalDetails.d.ts +3 -0
  215. package/dist/esm/modules/form/vendors/react/features/PersonalDetails/PersonalDetails.d.ts.map +1 -0
  216. package/dist/esm/modules/form/vendors/react/features/PersonalDetails/PersonalDetails.js +39 -0
  217. package/dist/esm/modules/form/vendors/react/features/PersonalDetails/PersonalDetails.js.map +1 -0
  218. package/dist/esm/modules/form/vendors/react/features/PersonalDetails/personalDetails.config.d.ts +4 -0
  219. package/dist/esm/modules/form/vendors/react/features/PersonalDetails/personalDetails.config.d.ts.map +1 -0
  220. package/dist/esm/modules/form/vendors/react/features/PersonalDetails/personalDetails.config.js +107 -0
  221. package/dist/esm/modules/form/vendors/react/features/PersonalDetails/personalDetails.config.js.map +1 -0
  222. package/dist/esm/modules/form/vendors/react/features/Review/Review.d.ts +2 -0
  223. package/dist/esm/modules/form/vendors/react/features/Review/Review.d.ts.map +1 -0
  224. package/dist/esm/modules/form/vendors/react/features/Review/Review.js +62 -0
  225. package/dist/esm/modules/form/vendors/react/features/Review/Review.js.map +1 -0
  226. package/dist/esm/modules/form/vendors/react/features/Review/review.config.d.ts +4 -0
  227. package/dist/esm/modules/form/vendors/react/features/Review/review.config.d.ts.map +1 -0
  228. package/dist/esm/modules/form/vendors/react/features/Review/review.config.js +847 -0
  229. package/dist/esm/modules/form/vendors/react/features/Review/review.config.js.map +1 -0
  230. package/dist/esm/modules/form/vendors/react/features/Review/review.constants.d.ts +5 -0
  231. package/dist/esm/modules/form/vendors/react/features/Review/review.constants.d.ts.map +1 -0
  232. package/dist/esm/modules/form/vendors/react/features/Review/review.constants.js +139 -0
  233. package/dist/esm/modules/form/vendors/react/features/Review/review.constants.js.map +1 -0
  234. package/dist/esm/modules/form/vendors/react/features/Welcome/Welcome.d.ts.map +1 -1
  235. package/dist/esm/modules/form/vendors/react/features/Welcome/Welcome.js +6 -3
  236. package/dist/esm/modules/form/vendors/react/features/Welcome/Welcome.js.map +1 -1
  237. package/dist/esm/modules/form/vendors/react/features/Welcome/manualWelcome.config.d.ts +127 -0
  238. package/dist/esm/modules/form/vendors/react/features/Welcome/manualWelcome.config.d.ts.map +1 -0
  239. package/dist/esm/modules/form/vendors/react/features/Welcome/manualWelcome.config.js +170 -0
  240. package/dist/esm/modules/form/vendors/react/features/Welcome/manualWelcome.config.js.map +1 -0
  241. package/dist/esm/modules/form/vendors/react/features/Welcome/welcome.config.d.ts +2 -1
  242. package/dist/esm/modules/form/vendors/react/features/Welcome/welcome.config.d.ts.map +1 -1
  243. package/dist/esm/modules/form/vendors/react/features/Welcome/welcome.config.js +8 -3
  244. package/dist/esm/modules/form/vendors/react/features/Welcome/welcome.config.js.map +1 -1
  245. package/dist/esm/modules/form/vendors/react/features/features.key.d.ts +2 -0
  246. package/dist/esm/modules/form/vendors/react/features/features.key.d.ts.map +1 -0
  247. package/dist/esm/modules/form/vendors/react/features/features.key.js +2 -0
  248. package/dist/esm/modules/form/vendors/react/features/features.key.js.map +1 -0
  249. package/dist/esm/modules/form/vendors/react/features/index.d.ts +12 -0
  250. package/dist/esm/modules/form/vendors/react/features/index.d.ts.map +1 -0
  251. package/dist/esm/modules/form/vendors/react/features/index.js +12 -0
  252. package/dist/esm/modules/form/vendors/react/features/index.js.map +1 -0
  253. package/dist/esm/modules/form/vendors/react/features/qa/features.qa.d.ts +10 -0
  254. package/dist/esm/modules/form/vendors/react/features/qa/features.qa.d.ts.map +1 -0
  255. package/dist/esm/modules/form/vendors/react/features/qa/features.qa.js +14 -0
  256. package/dist/esm/modules/form/vendors/react/features/qa/features.qa.js.map +1 -0
  257. package/dist/esm/modules/form/vendors/react/hooks/menu.hooks.d.ts +3 -0
  258. package/dist/esm/modules/form/vendors/react/hooks/menu.hooks.d.ts.map +1 -0
  259. package/dist/esm/modules/form/vendors/react/hooks/menu.hooks.js +19 -0
  260. package/dist/esm/modules/form/vendors/react/hooks/menu.hooks.js.map +1 -0
  261. package/dist/esm/modules/form/vendors/react/hooks/useAddressSearch.d.ts +11 -0
  262. package/dist/esm/modules/form/vendors/react/hooks/useAddressSearch.d.ts.map +1 -0
  263. package/dist/esm/modules/form/vendors/react/hooks/useAddressSearch.js +72 -0
  264. package/dist/esm/modules/form/vendors/react/hooks/useAddressSearch.js.map +1 -0
  265. package/dist/esm/modules/form/vendors/react/hooks/useConfigFactory.hooks.d.ts +16 -0
  266. package/dist/esm/modules/form/vendors/react/hooks/useConfigFactory.hooks.d.ts.map +1 -0
  267. package/dist/esm/modules/form/vendors/react/hooks/useConfigFactory.hooks.js +130 -0
  268. package/dist/esm/modules/form/vendors/react/hooks/useConfigFactory.hooks.js.map +1 -0
  269. package/dist/esm/modules/form/vendors/react/hooks/useEventContext.d.ts +11 -6
  270. package/dist/esm/modules/form/vendors/react/hooks/useEventContext.d.ts.map +1 -1
  271. package/dist/esm/modules/form/vendors/react/hooks/useEventContext.js +25 -1
  272. package/dist/esm/modules/form/vendors/react/hooks/useEventContext.js.map +1 -1
  273. package/dist/esm/modules/form/vendors/react/hooks/useFormMapper.hook.d.ts +168 -0
  274. package/dist/esm/modules/form/vendors/react/hooks/useFormMapper.hook.d.ts.map +1 -0
  275. package/dist/esm/modules/form/vendors/react/hooks/useFormMapper.hook.js +13 -0
  276. package/dist/esm/modules/form/vendors/react/hooks/useFormMapper.hook.js.map +1 -0
  277. package/dist/esm/modules/form/vendors/react/hooks/usePersonalDetailsUpdateFactory.hook.d.ts +7 -0
  278. package/dist/esm/modules/form/vendors/react/hooks/usePersonalDetailsUpdateFactory.hook.d.ts.map +1 -0
  279. package/dist/esm/modules/form/vendors/react/hooks/usePersonalDetailsUpdateFactory.hook.js +30 -0
  280. package/dist/esm/modules/form/vendors/react/hooks/usePersonalDetailsUpdateFactory.hook.js.map +1 -0
  281. package/dist/esm/modules/form/vendors/react/hooks/useReviewUpdateFactory.hook.d.ts +51 -0
  282. package/dist/esm/modules/form/vendors/react/hooks/useReviewUpdateFactory.hook.d.ts.map +1 -0
  283. package/dist/esm/modules/form/vendors/react/hooks/useReviewUpdateFactory.hook.js +139 -0
  284. package/dist/esm/modules/form/vendors/react/hooks/useReviewUpdateFactory.hook.js.map +1 -0
  285. package/dist/esm/modules/form/vendors/react/index.d.ts +3 -2
  286. package/dist/esm/modules/form/vendors/react/index.d.ts.map +1 -1
  287. package/dist/esm/modules/form/vendors/react/index.js +15 -18
  288. package/dist/esm/modules/form/vendors/react/index.js.map +1 -1
  289. package/dist/esm/modules/form/vendors/react/layout/Main/MainLayout.d.ts.map +1 -1
  290. package/dist/esm/modules/form/vendors/react/layout/Main/MainLayout.js +10 -10
  291. package/dist/esm/modules/form/vendors/react/layout/Main/MainLayout.js.map +1 -1
  292. package/dist/esm/modules/form/vendors/react/model/address.model.d.ts +7 -0
  293. package/dist/esm/modules/form/vendors/react/model/address.model.d.ts.map +1 -0
  294. package/dist/esm/modules/form/vendors/react/model/address.model.js +13 -0
  295. package/dist/esm/modules/form/vendors/react/model/address.model.js.map +1 -0
  296. package/dist/esm/modules/form/vendors/react/model/address.type.d.ts +46 -0
  297. package/dist/esm/modules/form/vendors/react/model/address.type.d.ts.map +1 -0
  298. package/dist/esm/modules/form/vendors/react/model/address.type.js +85 -0
  299. package/dist/esm/modules/form/vendors/react/model/address.type.js.map +1 -0
  300. package/dist/esm/modules/form/vendors/react/model/dateTime.model.d.ts +8 -0
  301. package/dist/esm/modules/form/vendors/react/model/dateTime.model.d.ts.map +1 -0
  302. package/dist/esm/modules/form/vendors/react/model/dateTime.model.js +9 -0
  303. package/dist/esm/modules/form/vendors/react/model/dateTime.model.js.map +1 -0
  304. package/dist/esm/modules/form/vendors/react/model/error.model.d.ts +7 -0
  305. package/dist/esm/modules/form/vendors/react/model/error.model.d.ts.map +1 -0
  306. package/dist/esm/modules/form/vendors/react/model/error.model.js +27 -0
  307. package/dist/esm/modules/form/vendors/react/model/error.model.js.map +1 -0
  308. package/dist/esm/modules/form/vendors/react/model/index.d.ts +2 -0
  309. package/dist/esm/modules/form/vendors/react/model/index.d.ts.map +1 -0
  310. package/dist/esm/modules/form/vendors/react/model/index.js +2 -0
  311. package/dist/esm/modules/form/vendors/react/model/index.js.map +1 -0
  312. package/dist/esm/modules/form/vendors/react/model/personalDetails.model.d.ts +12 -0
  313. package/dist/esm/modules/form/vendors/react/model/personalDetails.model.d.ts.map +1 -0
  314. package/dist/esm/modules/form/vendors/react/model/personalDetails.model.js +17 -0
  315. package/dist/esm/modules/form/vendors/react/model/personalDetails.model.js.map +1 -0
  316. package/dist/esm/modules/form/vendors/react/model/review.model.d.ts +17 -0
  317. package/dist/esm/modules/form/vendors/react/model/review.model.d.ts.map +1 -0
  318. package/dist/esm/modules/form/vendors/react/model/review.model.js +102 -0
  319. package/dist/esm/modules/form/vendors/react/model/review.model.js.map +1 -0
  320. package/dist/esm/modules/form/vendors/react/pages/ScreenWrapper/ScreenWrapper.d.ts +1 -2
  321. package/dist/esm/modules/form/vendors/react/pages/ScreenWrapper/ScreenWrapper.d.ts.map +1 -1
  322. package/dist/esm/modules/form/vendors/react/pages/ScreenWrapper/ScreenWrapper.js +8 -43
  323. package/dist/esm/modules/form/vendors/react/pages/ScreenWrapper/ScreenWrapper.js.map +1 -1
  324. package/dist/esm/modules/form/vendors/react/redux/slices/loaderSlice.d.ts +5 -5
  325. package/dist/esm/modules/form/vendors/react/redux/slices/loaderSlice.d.ts.map +1 -1
  326. package/dist/esm/modules/form/vendors/react/redux/slices/moduleSlice.d.ts +2 -2
  327. package/dist/esm/modules/form/vendors/react/redux/slices/moduleSlice.d.ts.map +1 -1
  328. package/dist/esm/modules/form/vendors/react/redux/slices/moduleSlice.js +4 -3
  329. package/dist/esm/modules/form/vendors/react/redux/slices/moduleSlice.js.map +1 -1
  330. package/dist/esm/modules/form/vendors/react/types/form/formDataType/defaultType.d.ts +23 -0
  331. package/dist/esm/modules/form/vendors/react/types/form/formDataType/defaultType.d.ts.map +1 -0
  332. package/dist/esm/modules/form/vendors/react/types/form/formDataType/defaultType.js +22 -0
  333. package/dist/esm/modules/form/vendors/react/types/form/formDataType/defaultType.js.map +1 -0
  334. package/dist/esm/modules/form/vendors/react/types/form/formTypes/ButtonProp.d.ts +73 -0
  335. package/dist/esm/modules/form/vendors/react/types/form/formTypes/ButtonProp.d.ts.map +1 -0
  336. package/dist/esm/modules/form/vendors/react/types/form/formTypes/ButtonProp.js +2 -0
  337. package/dist/esm/modules/form/vendors/react/types/form/formTypes/ButtonProp.js.map +1 -0
  338. package/dist/esm/modules/form/vendors/react/types/form/formTypes/IFrankieTextAreaProps.d.ts +132 -0
  339. package/dist/esm/modules/form/vendors/react/types/form/formTypes/IFrankieTextAreaProps.d.ts.map +1 -0
  340. package/dist/esm/modules/form/vendors/react/types/form/formTypes/IFrankieTextAreaProps.js +2 -0
  341. package/dist/esm/modules/form/vendors/react/types/form/formTypes/IFrankieTextAreaProps.js.map +1 -0
  342. package/dist/esm/modules/form/vendors/react/types/form/formTypes/MenuType.d.ts +24 -0
  343. package/dist/esm/modules/form/vendors/react/types/form/formTypes/MenuType.d.ts.map +1 -0
  344. package/dist/esm/modules/form/vendors/react/types/form/formTypes/MenuType.js +2 -0
  345. package/dist/esm/modules/form/vendors/react/types/form/formTypes/MenuType.js.map +1 -0
  346. package/dist/esm/modules/form/vendors/react/types/form/formTypes/ruleValidator.d.ts +7 -0
  347. package/dist/esm/modules/form/vendors/react/types/form/formTypes/ruleValidator.d.ts.map +1 -0
  348. package/dist/esm/modules/form/vendors/react/types/form/formTypes/ruleValidator.js +4 -0
  349. package/dist/esm/modules/form/vendors/react/types/form/formTypes/ruleValidator.js.map +1 -0
  350. package/dist/esm/modules/form/vendors/react/types/form/formTypes/select.types.d.ts +122 -0
  351. package/dist/esm/modules/form/vendors/react/types/form/formTypes/select.types.d.ts.map +1 -0
  352. package/dist/esm/modules/form/vendors/react/types/form/formTypes/select.types.js +2 -0
  353. package/dist/esm/modules/form/vendors/react/types/form/formTypes/select.types.js.map +1 -0
  354. package/dist/esm/modules/form/vendors/react/types/form/formTypes/standardDate.type.d.ts +4 -0
  355. package/dist/esm/modules/form/vendors/react/types/form/formTypes/standardDate.type.d.ts.map +1 -0
  356. package/dist/esm/modules/form/vendors/react/types/form/formTypes/standardDate.type.js +2 -0
  357. package/dist/esm/modules/form/vendors/react/types/form/formTypes/standardDate.type.js.map +1 -0
  358. package/dist/esm/modules/form/vendors/react/types/form/formTypes/textFields.types.d.ts +124 -0
  359. package/dist/esm/modules/form/vendors/react/types/form/formTypes/textFields.types.d.ts.map +1 -0
  360. package/dist/esm/modules/form/vendors/react/types/form/formTypes/textFields.types.js +2 -0
  361. package/dist/esm/modules/form/vendors/react/types/form/formTypes/textFields.types.js.map +1 -0
  362. package/dist/esm/modules/form/vendors/react/types/form/index.d.ts +12 -0
  363. package/dist/esm/modules/form/vendors/react/types/form/index.d.ts.map +1 -0
  364. package/dist/esm/modules/form/vendors/react/types/form/index.js +4 -0
  365. package/dist/esm/modules/form/vendors/react/types/form/index.js.map +1 -0
  366. package/dist/esm/modules/form/vendors/react/types/pages.type.d.ts +21 -4
  367. package/dist/esm/modules/form/vendors/react/types/pages.type.d.ts.map +1 -1
  368. package/dist/esm/modules/form/vendors/react/types/pages.type.js +4 -0
  369. package/dist/esm/modules/form/vendors/react/types/pages.type.js.map +1 -1
  370. package/dist/esm/modules/form/vendors/react/utils/layout.util.d.ts +12 -0
  371. package/dist/esm/modules/form/vendors/react/utils/layout.util.d.ts.map +1 -0
  372. package/dist/esm/modules/form/vendors/react/utils/layout.util.js +17 -0
  373. package/dist/esm/modules/form/vendors/react/utils/layout.util.js.map +1 -0
  374. package/dist/esm/modules/form/vendors/react/utils/object.util.d.ts +6 -0
  375. package/dist/esm/modules/form/vendors/react/utils/object.util.d.ts.map +1 -0
  376. package/dist/esm/modules/form/vendors/react/utils/object.util.js +47 -0
  377. package/dist/esm/modules/form/vendors/react/utils/object.util.js.map +1 -0
  378. package/dist/esm/modules/frankie-client/mocks/ocr/ocrSubmission.d.ts.map +1 -1
  379. package/dist/esm/modules/frankie-client/mocks/ocr/ocrSubmission.js +13 -3
  380. package/dist/esm/modules/frankie-client/mocks/ocr/ocrSubmission.js.map +1 -1
  381. package/dist/esm/modules/idv/actions/mount.d.ts.map +1 -1
  382. package/dist/esm/modules/idv/actions/mount.js +0 -1
  383. package/dist/esm/modules/idv/actions/mount.js.map +1 -1
  384. package/dist/esm/modules/idv/vendors/Incode/index.d.ts +3 -3
  385. package/dist/esm/modules/idv/vendors/Mastercard/index.d.ts +3 -3
  386. package/dist/esm/modules/idv/vendors/OcrLabs/index.d.ts +3 -3
  387. package/dist/esm/modules/idv/vendors/Onfido/index.d.ts +3 -3
  388. package/dist/esm/modules/idv/vendors/Onfido/index.d.ts.map +1 -1
  389. package/dist/esm/modules/idv/vendors/Onfido/index.js +3 -0
  390. package/dist/esm/modules/idv/vendors/Onfido/index.js.map +1 -1
  391. package/dist/esm/modules/idv/vendors/common/iframeUtils/defineIframeIDVWrapper.d.ts +3 -3
  392. package/dist/esm/modules/idv/vendors/common/iframeUtils/defineIframeIDVWrapper.js +2 -2
  393. package/dist/esm/modules/idv/vendors/common/iframeUtils/defineIframeIDVWrapper.js.map +1 -1
  394. package/dist/esm/modules/meta.json +1 -1
  395. package/dist/esm/modules/ocr/vendors/Incode/index.d.ts +1 -1
  396. package/dist/esm/modules/ocr/vendors/Incode/index.d.ts.map +1 -1
  397. package/dist/esm/modules/ocr/vendors/Incode/index.js +4 -0
  398. package/dist/esm/modules/ocr/vendors/Incode/index.js.map +1 -1
  399. package/dist/esm/modules/ocr/vendors/Onfido/index.d.ts +1 -1
  400. package/dist/esm/modules/ocr/vendors/dummy-ocr/index.d.ts +1 -1
  401. package/dist/esm/node_modules/@reduxjs/toolkit/dist/uncheckedindexed.d.ts +6 -0
  402. package/dist/esm/node_modules/@reduxjs/toolkit/dist/uncheckedindexed.d.ts.map +1 -0
  403. package/dist/esm/styles/f1-style.css +1 -1
  404. package/dist/esm/styles/fonts/fonts.css +6 -1
  405. package/dist/esm/styles/images/alertCircleOutline.svg +5 -0
  406. package/dist/esm/styles/images/checkbox.svg +13 -0
  407. package/dist/esm/styles/images/chevronDown.svg +4 -0
  408. package/dist/esm/styles/images/chevronDownError.svg +4 -0
  409. package/dist/esm/styles/images/close.svg +5 -0
  410. package/dist/esm/styles/images/closeError.svg +5 -0
  411. package/dist/esm/styles/images/driverLicenseIcon.svg +5 -0
  412. package/dist/esm/styles/images/driversLicenseBanner.svg +30 -0
  413. package/dist/esm/styles/images/index.d.ts +18 -0
  414. package/dist/esm/styles/images/index.d.ts.map +1 -0
  415. package/dist/esm/styles/images/index.js +18 -0
  416. package/dist/esm/styles/images/index.js.map +1 -0
  417. package/dist/esm/styles/images/index.ts +35 -0
  418. package/dist/esm/styles/images/loader.svg +15 -0
  419. package/dist/esm/styles/images/magnify.svg +5 -0
  420. package/dist/esm/styles/images/magnifyError.svg +5 -0
  421. package/dist/esm/styles/images/mediCareBanner.svg +80 -0
  422. package/dist/esm/styles/images/medicalIcon.svg +5 -0
  423. package/dist/esm/styles/images/passportBanner.svg +195 -0
  424. package/dist/esm/styles/images/passportIcon.svg +5 -0
  425. package/dist/esm/styles/images/rightArrowIcon.svg +5 -0
  426. package/dist/release.txt +2 -2
  427. package/dist/umd/10183d99573bcd186235.svg +5 -0
  428. package/dist/umd/24c67c1821feba22f3f7.svg +5 -0
  429. package/dist/umd/2546128ef2e2d56276b7.svg +5 -0
  430. package/dist/umd/287.js +3 -0
  431. package/dist/umd/{955.js.LICENSE.txt → 287.js.LICENSE.txt} +11 -0
  432. package/dist/umd/287.js.map +1 -0
  433. package/dist/umd/2cdf2caea505aad8cb2b.svg +30 -0
  434. package/dist/umd/396cc7cc5e61acfa8fc8.svg +15 -0
  435. package/dist/umd/3b687e48c6bb765ed976.svg +5 -0
  436. package/dist/umd/8f10666ff21ef0238370.svg +13 -0
  437. package/dist/umd/9dee3446081d7d47623b.svg +4 -0
  438. package/dist/umd/bc42b55176ae1021b9e4.svg +80 -0
  439. package/dist/umd/biometrics-dummy.js +1 -1
  440. package/dist/umd/biometrics-dummy.js.map +1 -1
  441. package/dist/umd/biometrics-incode.js +1 -1
  442. package/dist/umd/biometrics-incode.js.map +1 -1
  443. package/dist/umd/biometrics-ocrlabs.js +1 -1
  444. package/dist/umd/biometrics-ocrlabs.js.map +1 -1
  445. package/dist/umd/biometrics-onfido.js +1 -1
  446. package/dist/umd/biometrics-onfido.js.map +1 -1
  447. package/dist/umd/c16900512bb2f899c7eb.svg +5 -0
  448. package/dist/umd/ce5b46abe62641bddb20.svg +5 -0
  449. package/dist/umd/dddc2581e578cfb3b997.svg +195 -0
  450. package/dist/umd/e84075ff43e508e4fbd5.svg +5 -0
  451. package/dist/umd/f4a5163b8f91c2c66892.svg +4 -0
  452. package/dist/umd/f670207e1feb7ec4f6d4.svg +5 -0
  453. package/dist/umd/fc7c8869af28cb1b9c21.svg +5 -0
  454. package/dist/umd/form-formio.js +1 -1
  455. package/dist/umd/form-formio.js.map +1 -1
  456. package/dist/umd/form-legacy.js +1 -1
  457. package/dist/umd/form-legacy.js.map +1 -1
  458. package/dist/umd/form-react.js +1 -1
  459. package/dist/umd/form-react.js.map +1 -1
  460. package/dist/umd/idv-incode.js +1 -1
  461. package/dist/umd/idv-incode.js.map +1 -1
  462. package/dist/umd/idv-mastercard.js +1 -1
  463. package/dist/umd/idv-mastercard.js.map +1 -1
  464. package/dist/umd/idv-ocrlabs.js +1 -1
  465. package/dist/umd/idv-ocrlabs.js.map +1 -1
  466. package/dist/umd/idv-onfido.js +1 -1
  467. package/dist/umd/idv-onfido.js.map +1 -1
  468. package/dist/umd/ocr-dummy.js +1 -1
  469. package/dist/umd/ocr-dummy.js.map +1 -1
  470. package/dist/umd/ocr-incode.js +1 -1
  471. package/dist/umd/ocr-incode.js.map +1 -1
  472. package/dist/umd/ocr-onfido.js +1 -1
  473. package/dist/umd/ocr-onfido.js.map +1 -1
  474. package/dist/umd/oneSdk.umd.js +1 -1
  475. package/dist/umd/oneSdk.umd.js.map +1 -1
  476. package/dist/version.txt +2 -2
  477. package/package.json +19 -4
  478. package/dist/esm/modules/form/vendors/react/components/view/Loader/Loader.d.ts +0 -3
  479. package/dist/esm/modules/form/vendors/react/components/view/Loader/Loader.d.ts.map +0 -1
  480. package/dist/esm/modules/form/vendors/react/components/view/Loader/Loader.js +0 -16
  481. package/dist/esm/modules/form/vendors/react/components/view/Loader/Loader.js.map +0 -1
  482. package/dist/esm/modules/form/vendors/react/constants/layout-mapper.const.d.ts +0 -54
  483. package/dist/esm/modules/form/vendors/react/constants/layout-mapper.const.d.ts.map +0 -1
  484. package/dist/esm/modules/form/vendors/react/constants/layout-mapper.const.js +0 -22
  485. package/dist/esm/modules/form/vendors/react/constants/layout-mapper.const.js.map +0 -1
  486. package/dist/esm/modules/form/vendors/react/features/Consent/consent.types.d.ts +0 -3
  487. package/dist/esm/modules/form/vendors/react/features/Consent/consent.types.d.ts.map +0 -1
  488. package/dist/esm/modules/form/vendors/react/features/Consent/consent.types.js +0 -2
  489. package/dist/esm/modules/form/vendors/react/features/Consent/consent.types.js.map +0 -1
  490. package/dist/esm/modules/form/vendors/react/features/Welcome/welcome.type.d.ts +0 -3
  491. package/dist/esm/modules/form/vendors/react/features/Welcome/welcome.type.d.ts.map +0 -1
  492. package/dist/esm/modules/form/vendors/react/features/Welcome/welcome.type.js +0 -2
  493. package/dist/esm/modules/form/vendors/react/features/Welcome/welcome.type.js.map +0 -1
  494. package/dist/esm/modules/form/vendors/react/layout/Main/utils.d.ts +0 -4
  495. package/dist/esm/modules/form/vendors/react/layout/Main/utils.d.ts.map +0 -1
  496. package/dist/esm/modules/form/vendors/react/layout/Main/utils.js +0 -13
  497. package/dist/esm/modules/form/vendors/react/layout/Main/utils.js.map +0 -1
  498. package/dist/umd/094b58729ef1af71dc5b.woff +0 -1
  499. package/dist/umd/369d1ed7fecb9baee970.woff2 +0 -1
  500. package/dist/umd/484bb29af46b36504acc.woff2 +0 -1
  501. package/dist/umd/4ef689ab7e6d52b7a907.woff2 +0 -1
  502. package/dist/umd/5c6cd9522ae574c0aaf0.woff +0 -1
  503. package/dist/umd/70e1b18ec7d6f3e4ea13.woff +0 -1
  504. package/dist/umd/781e1c7a245cdcdc4ca8.woff2 +0 -1
  505. package/dist/umd/955.js +0 -3
  506. package/dist/umd/955.js.map +0 -1
  507. package/dist/umd/d0065c2d121111eb6143.woff +0 -1
  508. /package/dist/umd/{1c9c1ef03c6dd661b89b274e0eac38e0.woff → 1c9c1ef03c6dd661b89b.woff} +0 -0
  509. /package/dist/umd/{26a8e1ce5e55788744200ea5421806df.woff2 → 26a8e1ce5e5578874420.woff2} +0 -0
  510. /package/dist/umd/{58b74e594849c43b2248b93a572bcb1f.woff2 → 58b74e594849c43b2248.woff2} +0 -0
  511. /package/dist/umd/{5ddf80d7ddb1d1c5a0bcfe99fac6ff26.woff → 5ddf80d7ddb1d1c5a0bc.woff} +0 -0
  512. /package/dist/umd/{6c874e1a72a4fa9eeed83a59cf07bfae.woff2 → 6c874e1a72a4fa9eeed8.woff2} +0 -0
  513. /package/dist/umd/{7f6d57b96337c21c053dbcaf67e74b6d.woff → 7f6d57b96337c21c053d.woff} +0 -0
  514. /package/dist/umd/{af823d3a76ce1e2e36afd5868421f454.woff → af823d3a76ce1e2e36af.woff} +0 -0
  515. /package/dist/umd/{d216030199c873b0bf411ff675d9e59d.woff2 → d216030199c873b0bf41.woff2} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"form-react.js","mappings":"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","sources":["webpack://OneSdk/./styles/f1-style.css","webpack://OneSdk/./styles/fonts/fonts.css","webpack://OneSdk/./styles/styles.css","webpack://OneSdk/./modules/form/vendors/react/redux/constants/stateKey.enum.ts","webpack://OneSdk/./modules/form/vendors/react/redux/slices/loaderSlice.tsx","webpack://OneSdk/./modules/form/vendors/react/appConfig.type.ts","webpack://OneSdk/./modules/form/vendors/react/components/view/FrankieCheckbox/FrankieCheckbox.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/FrankieDescription/FrankieDescription.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/FrankieHeading/Heading.tsx","webpack://OneSdk/./modules/form/vendors/react/hooks/useEventContext.tsx","webpack://OneSdk/./modules/form/vendors/react/types/pages.type.ts","webpack://OneSdk/./modules/form/vendors/react/layout/Main/utils.tsx","webpack://OneSdk/./modules/form/vendors/react/components/base/FrankieButton/BaseButton.tsx","webpack://OneSdk/./modules/form/vendors/react/components/base/FrankieButton/FrankieButton.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/Wrapper/Wrapper.tsx","webpack://OneSdk/./modules/form/vendors/react/constants/icons.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/FrankieInstructionList/FrankieInstructionList.tsx","webpack://OneSdk/./modules/form/vendors/react/constants/layout-mapper.const.ts","webpack://OneSdk/./modules/form/vendors/react/features/Welcome/Welcome.tsx","webpack://OneSdk/./modules/form/vendors/react/features/Consent/Consent.tsx","webpack://OneSdk/./modules/form/vendors/react/redux/slices/moduleSlice.tsx","webpack://OneSdk/./modules/form/vendors/react/features/Welcome/welcome.config.ts","webpack://OneSdk/./modules/form/vendors/react/features/Consent/consent.config.tsx","webpack://OneSdk/./modules/form/vendors/react/redux/store.ts","webpack://OneSdk/./modules/form/vendors/react/components/view/Loader/Loader.tsx","webpack://OneSdk/./modules/form/vendors/react/layout/Main/MainLayout.tsx","webpack://OneSdk/./modules/form/vendors/react/pages/ScreenWrapper/ScreenWrapper.tsx","webpack://OneSdk/./modules/form/vendors/react/App.tsx","webpack://OneSdk/./styles/f1-style.css?2333","webpack://OneSdk/./styles/fonts/fonts.css?9b38","webpack://OneSdk/./styles/styles.css?6bc6","webpack://OneSdk/./modules/form/vendors/react/constants/styles.const.tsx","webpack://OneSdk/./modules/form/vendors/react/index.tsx"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: \n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: \n}\n\n.f1-fixed {\n position: fixed\n}\n\n.f1-absolute {\n position: absolute\n}\n\n.f1-sticky {\n position: sticky\n}\n\n.f1-bottom-0 {\n bottom: 0px\n}\n\n.f1-left-0 {\n left: 0px\n}\n\n.f1-right-0 {\n right: 0px\n}\n\n.f1-top-0 {\n top: 0px\n}\n\n.f1-z-50 {\n z-index: 50\n}\n\n.\\\\!f1-mr-0 {\n margin-right: 0px !important\n}\n\n.f1-mb-1 {\n margin-bottom: 0.25rem\n}\n\n.f1-mb-2 {\n margin-bottom: 8px\n}\n\n.f1-mb-4 {\n margin-bottom: 1rem\n}\n\n.f1-mb-5 {\n margin-bottom: 1.25rem\n}\n\n.f1-ml-3 {\n margin-left: 0.75rem\n}\n\n.f1-mt-0 {\n margin-top: 0px\n}\n\n.f1-mt-2 {\n margin-top: 8px\n}\n\n.f1-mt-3 {\n margin-top: 0.75rem\n}\n\n.f1-mt-5 {\n margin-top: 1.25rem\n}\n\n.f1-mt-\\\\[32px\\\\] {\n margin-top: 32px\n}\n\n.f1-box-border {\n box-sizing: border-box\n}\n\n.f1-inline-block {\n display: inline-block\n}\n\n.f1-inline {\n display: inline\n}\n\n.f1-flex {\n display: flex\n}\n\n.\\\\!f1-h-5 {\n height: 1.25rem !important\n}\n\n.f1-h-12 {\n height: 3rem\n}\n\n.f1-h-24 {\n height: 6rem\n}\n\n.f1-h-auto {\n height: auto\n}\n\n.f1-h-full {\n height: 100%\n}\n\n.\\\\!f1-w-5 {\n width: 1.25rem !important\n}\n\n.f1-w-24 {\n width: 6rem\n}\n\n.f1-w-56 {\n width: 14rem\n}\n\n.f1-w-full {\n width: 100%\n}\n\n.f1-flex-initial {\n flex: 0 1 auto\n}\n\n@keyframes f1-spin {\n to {\n transform: rotate(360deg)\n }\n}\n\n.f1-animate-spin {\n animation: f1-spin 1s linear infinite\n}\n\n.f1-cursor-not-allowed {\n cursor: not-allowed\n}\n\n.f1-cursor-pointer {\n cursor: pointer\n}\n\n.f1-cursor-text {\n cursor: text\n}\n\n.f1-flex-col {\n flex-direction: column\n}\n\n.f1-content-center {\n align-content: center\n}\n\n.f1-items-start {\n align-items: flex-start\n}\n\n.f1-items-center {\n align-items: center\n}\n\n.f1-justify-center {\n justify-content: center\n}\n\n.f1-justify-between {\n justify-content: space-between\n}\n\n.f1-space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(8px * var(--tw-space-x-reverse));\n margin-left: calc(8px * calc(1 - var(--tw-space-x-reverse)))\n}\n\n.f1-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap\n}\n\n.f1-rounded-full {\n border-radius: 9999px\n}\n\n.f1-rounded-sm {\n border-radius: 4px\n}\n\n.f1-border {\n border-width: 1px\n}\n\n.f1-border-solid {\n border-style: solid\n}\n\n.f1-border-none {\n border-style: none\n}\n\n.f1-bg-mono-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity))\n}\n\n.f1-bg-primary-800 {\n --tw-bg-opacity: 1;\n background-color: rgb(43 103 249 / var(--tw-bg-opacity))\n}\n\n.f1-fill-primary-600 {\n fill: #3c7cfa\n}\n\n.f1-p-6 {\n padding: 1.5rem\n}\n\n.f1-px-4 {\n padding-left: 1rem;\n padding-right: 1rem\n}\n\n.f1-px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem\n}\n\n.f1-py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem\n}\n\n.f1-py-\\\\[49px\\\\] {\n padding-top: 49px;\n padding-bottom: 49px\n}\n\n.f1-px-3xl {\n padding-left: 24px;\n padding-right: 24px\n}\n\n.f1-pr-3 {\n padding-right: 0.75rem\n}\n\n.f1-text-left {\n text-align: left\n}\n\n.f1-text-center {\n text-align: center\n}\n\n.f1-text-3xl {\n font-size: 1.875rem\n}\n\n.f1-text-md {\n font-size: 1rem\n}\n\n.f1-text-sm {\n font-size: 0.875rem\n}\n\n.f1-font-bold {\n font-weight: 700\n}\n\n.f1-font-medium {\n font-weight: 500\n}\n\n.f1-font-normal {\n font-weight: 400\n}\n\n.f1-font-semibold {\n font-weight: 600\n}\n\n.f1-leading-6 {\n line-height: 1.5rem\n}\n\n.f1-text-mono-90 {\n --tw-text-opacity: 1;\n color: rgb(52 58 64 / var(--tw-text-opacity))\n}\n\n.f1-text-mono-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity))\n}\n\n.f1-text-tertiary-grey-700 {\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity))\n}\n\n.f1-text-tertiary-grey-800 {\n --tw-text-opacity: 1;\n color: rgb(31 42 55 / var(--tw-text-opacity))\n}\n\n.f1-outline {\n outline-style: solid\n}\n\n.f1-outline-0 {\n outline-width: 0px\n}\n\n.f1-outline-primary-200 {\n outline-color: #a1c2fd\n}\n\n.placeholder\\\\:f1-text-mono-60::-moz-placeholder {\n --tw-text-opacity: 1;\n color: rgb(141 149 157 / var(--tw-text-opacity))\n}\n\n.placeholder\\\\:f1-text-mono-60::placeholder {\n --tw-text-opacity: 1;\n color: rgb(141 149 157 / var(--tw-text-opacity))\n}\n\n.hover\\\\:f1-bg-primary-900:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\n}\n\n.focus-visible\\\\:f1-border-primary-800:focus-visible {\n --tw-border-opacity: 1;\n border-color: rgb(43 103 249 / var(--tw-border-opacity))\n}\n\n.focus-visible\\\\:f1-bg-primary-900:focus-visible {\n --tw-bg-opacity: 1;\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\n}\n\n.focus-visible\\\\:f1-outline-0:focus-visible {\n outline-width: 0px\n}\n\n.focus-visible\\\\:f1-outline-3:focus-visible {\n outline-width: 3px\n}\n\n.active\\\\:f1-bg-primary-900:active {\n --tw-bg-opacity: 1;\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\n}\n\n.active\\\\:f1-outline-3:active {\n outline-width: 3px\n}\n\n.disabled\\\\:f1-border-tertiary-grey-300:disabled {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity))\n}\n\n.disabled\\\\:f1-bg-tertiary-grey-200:disabled {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity))\n}\n\n.disabled\\\\:f1-bg-tertiary-grey-50:disabled {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity))\n}\n\n.disabled\\\\:f1-text-tertiary-grey-400:disabled {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity))\n}\n\n.disabled\\\\:f1-outline-0:disabled {\n outline-width: 0px\n}\n\n@media (min-width: 640px) {\n .tablet\\\\:f1-static {\n position: static\n }\n\n .tablet\\\\:f1-mb-\\\\[120px\\\\] {\n margin-bottom: 120px\n }\n\n .tablet\\\\:f1-w-auto {\n width: auto\n }\n\n .tablet\\\\:f1-min-w-\\\\[210px\\\\] {\n min-width: 210px\n }\n\n .tablet\\\\:f1-max-w-\\\\[442px\\\\] {\n max-width: 442px\n }\n\n .tablet\\\\:f1-justify-normal {\n justify-content: normal\n }\n\n .tablet\\\\:f1-px-3xl {\n padding-left: 24px;\n padding-right: 24px\n }\n\n .tablet\\\\:f1-px-0 {\n padding-left: 0px;\n padding-right: 0px\n }\n\n .tablet\\\\:f1-pb-4xl {\n padding-bottom: 32px\n }\n\n .tablet\\\\:f1-pt-0 {\n padding-top: 0px\n }\n\n .tablet\\\\:f1-pt-\\\\[64px\\\\] {\n padding-top: 64px\n }\n\n .tablet\\\\:\\\\!f1-shadow-none {\n --tw-shadow: 0 0 #0000 !important;\n --tw-shadow-colored: 0 0 #0000 !important;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important\n }\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./styles/f1-style.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,wBAAwB;EACxB,wBAAwB;EACxB,mBAAmB;EACnB,mBAAmB;EACnB,cAAc;EACd,cAAc;EACd,cAAc;EACd,eAAe;EACf,eAAe;EACf,aAAa;EACb,aAAa;EACb,kBAAkB;EAClB,sCAAsC;EACtC,8BAA8B;EAC9B,6BAA6B;EAC7B,4BAA4B;EAC5B,eAAe;EACf,oBAAoB;EACpB,sBAAsB;EACtB,uBAAuB;EACvB,wBAAwB;EACxB,kBAAkB;EAClB,2BAA2B;EAC3B,4BAA4B;EAC5B,sCAAsC;EACtC,kCAAkC;EAClC,2BAA2B;EAC3B,sBAAsB;EACtB,8BAA8B;EAC9B,YAAY;EACZ,kBAAkB;EAClB,gBAAgB;EAChB,iBAAiB;EACjB,kBAAkB;EAClB,cAAc;EACd,gBAAgB;EAChB,aAAa;EACb,mBAAmB;EACnB,qBAAqB;EACrB,2BAA2B;EAC3B,yBAAyB;EACzB,0BAA0B;EAC1B,2BAA2B;EAC3B,uBAAuB;EACvB,wBAAwB;EACxB,yBAAyB;EACzB;AACF;;AAEA;EACE,wBAAwB;EACxB,wBAAwB;EACxB,mBAAmB;EACnB,mBAAmB;EACnB,cAAc;EACd,cAAc;EACd,cAAc;EACd,eAAe;EACf,eAAe;EACf,aAAa;EACb,aAAa;EACb,kBAAkB;EAClB,sCAAsC;EACtC,8BAA8B;EAC9B,6BAA6B;EAC7B,4BAA4B;EAC5B,eAAe;EACf,oBAAoB;EACpB,sBAAsB;EACtB,uBAAuB;EACvB,wBAAwB;EACxB,kBAAkB;EAClB,2BAA2B;EAC3B,4BAA4B;EAC5B,sCAAsC;EACtC,kCAAkC;EAClC,2BAA2B;EAC3B,sBAAsB;EACtB,8BAA8B;EAC9B,YAAY;EACZ,kBAAkB;EAClB,gBAAgB;EAChB,iBAAiB;EACjB,kBAAkB;EAClB,cAAc;EACd,gBAAgB;EAChB,aAAa;EACb,mBAAmB;EACnB,qBAAqB;EACrB,2BAA2B;EAC3B,yBAAyB;EACzB,0BAA0B;EAC1B,2BAA2B;EAC3B,uBAAuB;EACvB,wBAAwB;EACxB,yBAAyB;EACzB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;IACE;EACF;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,uBAAuB;EACvB,mDAAmD;EACnD;AACF;;AAEA;EACE,gBAAgB;EAChB,uBAAuB;EACvB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,qBAAqB;EACrB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,iBAAiB;EACjB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,sBAAsB;EACtB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE;AACF;;AAEA;EACE,sBAAsB;EACtB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE,kBAAkB;IAClB;EACF;;EAEA;IACE,iBAAiB;IACjB;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE,iCAAiC;IACjC,yCAAyC;IACzC;EACF;AACF\",\"sourcesContent\":[\"*, ::before, ::after {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: \\n}\\n\\n::backdrop {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: \\n}\\n\\n.f1-fixed {\\n position: fixed\\n}\\n\\n.f1-absolute {\\n position: absolute\\n}\\n\\n.f1-sticky {\\n position: sticky\\n}\\n\\n.f1-bottom-0 {\\n bottom: 0px\\n}\\n\\n.f1-left-0 {\\n left: 0px\\n}\\n\\n.f1-right-0 {\\n right: 0px\\n}\\n\\n.f1-top-0 {\\n top: 0px\\n}\\n\\n.f1-z-50 {\\n z-index: 50\\n}\\n\\n.\\\\!f1-mr-0 {\\n margin-right: 0px !important\\n}\\n\\n.f1-mb-1 {\\n margin-bottom: 0.25rem\\n}\\n\\n.f1-mb-2 {\\n margin-bottom: 8px\\n}\\n\\n.f1-mb-4 {\\n margin-bottom: 1rem\\n}\\n\\n.f1-mb-5 {\\n margin-bottom: 1.25rem\\n}\\n\\n.f1-ml-3 {\\n margin-left: 0.75rem\\n}\\n\\n.f1-mt-0 {\\n margin-top: 0px\\n}\\n\\n.f1-mt-2 {\\n margin-top: 8px\\n}\\n\\n.f1-mt-3 {\\n margin-top: 0.75rem\\n}\\n\\n.f1-mt-5 {\\n margin-top: 1.25rem\\n}\\n\\n.f1-mt-\\\\[32px\\\\] {\\n margin-top: 32px\\n}\\n\\n.f1-box-border {\\n box-sizing: border-box\\n}\\n\\n.f1-inline-block {\\n display: inline-block\\n}\\n\\n.f1-inline {\\n display: inline\\n}\\n\\n.f1-flex {\\n display: flex\\n}\\n\\n.\\\\!f1-h-5 {\\n height: 1.25rem !important\\n}\\n\\n.f1-h-12 {\\n height: 3rem\\n}\\n\\n.f1-h-24 {\\n height: 6rem\\n}\\n\\n.f1-h-auto {\\n height: auto\\n}\\n\\n.f1-h-full {\\n height: 100%\\n}\\n\\n.\\\\!f1-w-5 {\\n width: 1.25rem !important\\n}\\n\\n.f1-w-24 {\\n width: 6rem\\n}\\n\\n.f1-w-56 {\\n width: 14rem\\n}\\n\\n.f1-w-full {\\n width: 100%\\n}\\n\\n.f1-flex-initial {\\n flex: 0 1 auto\\n}\\n\\n@keyframes f1-spin {\\n to {\\n transform: rotate(360deg)\\n }\\n}\\n\\n.f1-animate-spin {\\n animation: f1-spin 1s linear infinite\\n}\\n\\n.f1-cursor-not-allowed {\\n cursor: not-allowed\\n}\\n\\n.f1-cursor-pointer {\\n cursor: pointer\\n}\\n\\n.f1-cursor-text {\\n cursor: text\\n}\\n\\n.f1-flex-col {\\n flex-direction: column\\n}\\n\\n.f1-content-center {\\n align-content: center\\n}\\n\\n.f1-items-start {\\n align-items: flex-start\\n}\\n\\n.f1-items-center {\\n align-items: center\\n}\\n\\n.f1-justify-center {\\n justify-content: center\\n}\\n\\n.f1-justify-between {\\n justify-content: space-between\\n}\\n\\n.f1-space-x-2 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-x-reverse: 0;\\n margin-right: calc(8px * var(--tw-space-x-reverse));\\n margin-left: calc(8px * calc(1 - var(--tw-space-x-reverse)))\\n}\\n\\n.f1-truncate {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap\\n}\\n\\n.f1-rounded-full {\\n border-radius: 9999px\\n}\\n\\n.f1-rounded-sm {\\n border-radius: 4px\\n}\\n\\n.f1-border {\\n border-width: 1px\\n}\\n\\n.f1-border-solid {\\n border-style: solid\\n}\\n\\n.f1-border-none {\\n border-style: none\\n}\\n\\n.f1-bg-mono-white {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity))\\n}\\n\\n.f1-bg-primary-800 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(43 103 249 / var(--tw-bg-opacity))\\n}\\n\\n.f1-fill-primary-600 {\\n fill: #3c7cfa\\n}\\n\\n.f1-p-6 {\\n padding: 1.5rem\\n}\\n\\n.f1-px-4 {\\n padding-left: 1rem;\\n padding-right: 1rem\\n}\\n\\n.f1-px-5 {\\n padding-left: 1.25rem;\\n padding-right: 1.25rem\\n}\\n\\n.f1-py-3 {\\n padding-top: 0.75rem;\\n padding-bottom: 0.75rem\\n}\\n\\n.f1-py-\\\\[49px\\\\] {\\n padding-top: 49px;\\n padding-bottom: 49px\\n}\\n\\n.f1-px-3xl {\\n padding-left: 24px;\\n padding-right: 24px\\n}\\n\\n.f1-pr-3 {\\n padding-right: 0.75rem\\n}\\n\\n.f1-text-left {\\n text-align: left\\n}\\n\\n.f1-text-center {\\n text-align: center\\n}\\n\\n.f1-text-3xl {\\n font-size: 1.875rem\\n}\\n\\n.f1-text-md {\\n font-size: 1rem\\n}\\n\\n.f1-text-sm {\\n font-size: 0.875rem\\n}\\n\\n.f1-font-bold {\\n font-weight: 700\\n}\\n\\n.f1-font-medium {\\n font-weight: 500\\n}\\n\\n.f1-font-normal {\\n font-weight: 400\\n}\\n\\n.f1-font-semibold {\\n font-weight: 600\\n}\\n\\n.f1-leading-6 {\\n line-height: 1.5rem\\n}\\n\\n.f1-text-mono-90 {\\n --tw-text-opacity: 1;\\n color: rgb(52 58 64 / var(--tw-text-opacity))\\n}\\n\\n.f1-text-mono-white {\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity))\\n}\\n\\n.f1-text-tertiary-grey-700 {\\n --tw-text-opacity: 1;\\n color: rgb(55 65 81 / var(--tw-text-opacity))\\n}\\n\\n.f1-text-tertiary-grey-800 {\\n --tw-text-opacity: 1;\\n color: rgb(31 42 55 / var(--tw-text-opacity))\\n}\\n\\n.f1-outline {\\n outline-style: solid\\n}\\n\\n.f1-outline-0 {\\n outline-width: 0px\\n}\\n\\n.f1-outline-primary-200 {\\n outline-color: #a1c2fd\\n}\\n\\n.placeholder\\\\:f1-text-mono-60::-moz-placeholder {\\n --tw-text-opacity: 1;\\n color: rgb(141 149 157 / var(--tw-text-opacity))\\n}\\n\\n.placeholder\\\\:f1-text-mono-60::placeholder {\\n --tw-text-opacity: 1;\\n color: rgb(141 149 157 / var(--tw-text-opacity))\\n}\\n\\n.hover\\\\:f1-bg-primary-900:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\\n}\\n\\n.focus-visible\\\\:f1-border-primary-800:focus-visible {\\n --tw-border-opacity: 1;\\n border-color: rgb(43 103 249 / var(--tw-border-opacity))\\n}\\n\\n.focus-visible\\\\:f1-bg-primary-900:focus-visible {\\n --tw-bg-opacity: 1;\\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\\n}\\n\\n.focus-visible\\\\:f1-outline-0:focus-visible {\\n outline-width: 0px\\n}\\n\\n.focus-visible\\\\:f1-outline-3:focus-visible {\\n outline-width: 3px\\n}\\n\\n.active\\\\:f1-bg-primary-900:active {\\n --tw-bg-opacity: 1;\\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\\n}\\n\\n.active\\\\:f1-outline-3:active {\\n outline-width: 3px\\n}\\n\\n.disabled\\\\:f1-border-tertiary-grey-300:disabled {\\n --tw-border-opacity: 1;\\n border-color: rgb(209 213 219 / var(--tw-border-opacity))\\n}\\n\\n.disabled\\\\:f1-bg-tertiary-grey-200:disabled {\\n --tw-bg-opacity: 1;\\n background-color: rgb(229 231 235 / var(--tw-bg-opacity))\\n}\\n\\n.disabled\\\\:f1-bg-tertiary-grey-50:disabled {\\n --tw-bg-opacity: 1;\\n background-color: rgb(249 250 251 / var(--tw-bg-opacity))\\n}\\n\\n.disabled\\\\:f1-text-tertiary-grey-400:disabled {\\n --tw-text-opacity: 1;\\n color: rgb(156 163 175 / var(--tw-text-opacity))\\n}\\n\\n.disabled\\\\:f1-outline-0:disabled {\\n outline-width: 0px\\n}\\n\\n@media (min-width: 640px) {\\n .tablet\\\\:f1-static {\\n position: static\\n }\\n\\n .tablet\\\\:f1-mb-\\\\[120px\\\\] {\\n margin-bottom: 120px\\n }\\n\\n .tablet\\\\:f1-w-auto {\\n width: auto\\n }\\n\\n .tablet\\\\:f1-min-w-\\\\[210px\\\\] {\\n min-width: 210px\\n }\\n\\n .tablet\\\\:f1-max-w-\\\\[442px\\\\] {\\n max-width: 442px\\n }\\n\\n .tablet\\\\:f1-justify-normal {\\n justify-content: normal\\n }\\n\\n .tablet\\\\:f1-px-3xl {\\n padding-left: 24px;\\n padding-right: 24px\\n }\\n\\n .tablet\\\\:f1-px-0 {\\n padding-left: 0px;\\n padding-right: 0px\\n }\\n\\n .tablet\\\\:f1-pb-4xl {\\n padding-bottom: 32px\\n }\\n\\n .tablet\\\\:f1-pt-0 {\\n padding-top: 0px\\n }\\n\\n .tablet\\\\:f1-pt-\\\\[64px\\\\] {\\n padding-top: 64px\\n }\\n\\n .tablet\\\\:\\\\!f1-shadow-none {\\n --tw-shadow: 0 0 #0000 !important;\\n --tw-shadow-colored: 0 0 #0000 !important;\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important\\n }\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./ProximaNova/ProximaNovaBold/bold-font.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./ProximaNova/ProximaNovaBold/bold-font.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"./ProximaNova/ProximaNovaSemibold/semibold-font.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"./ProximaNova/ProximaNovaSemibold/semibold-font.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(\"./ProximaNova/ProximaNovaMedium/medium-font.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_5___ = new URL(\"./ProximaNova/ProximaNovaMedium/medium-font.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_6___ = new URL(\"./ProximaNova/ProximaNovaRegular/regular-font.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_7___ = new URL(\"./ProximaNova/ProximaNovaRegular/regular-font.woff\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);\nvar ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.form.react.ff-react-form{\n font-family: proxima-nova, sans-serif;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'proxima-nova';\n src: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_1___}) format('woff');\n font-display: auto;\n font-style: normal;\n font-weight: 700;\n}\n\n@font-face {\n font-family: 'proxima-nova';\n src: url(${___CSS_LOADER_URL_REPLACEMENT_2___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_3___}) format('woff');\n font-display: auto;\n font-style: normal;\n font-weight: 600;\n}\n\n@font-face {\n font-family: 'proxima-nova';\n src: url(${___CSS_LOADER_URL_REPLACEMENT_4___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_5___}) format('woff');\n font-display: auto;\n font-style: normal;\n font-weight: 500;\n}\n\n@font-face {\n font-family: 'proxima-nova';\n src: url(${___CSS_LOADER_URL_REPLACEMENT_6___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_7___}) format('woff');\n font-display: auto;\n font-style: normal;\n font-weight: 400;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./styles/fonts/fonts.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,qCAAqC;EACrC,kBAAkB;AACpB;;AAEA;EACE,2BAA2B;EAC3B;0DACoE;EACpE,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,2BAA2B;EAC3B;0DAC4E;EAC5E,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,2BAA2B;EAC3B;0DACwE;EACxE,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,2BAA2B;EAC3B;0DAC0E;EAC1E,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;AAClB\",\"sourcesContent\":[\".form.react.ff-react-form{\\n font-family: proxima-nova, sans-serif;\\n font-style: normal;\\n}\\n\\n@font-face {\\n font-family: 'proxima-nova';\\n src: url('./ProximaNova/ProximaNovaBold/bold-font.woff2') format('woff2'),\\n url('./ProximaNova/ProximaNovaBold/bold-font.woff') format('woff');\\n font-display: auto;\\n font-style: normal;\\n font-weight: 700;\\n}\\n\\n@font-face {\\n font-family: 'proxima-nova';\\n src: url('./ProximaNova/ProximaNovaSemibold/semibold-font.woff2') format('woff2'),\\n url('./ProximaNova/ProximaNovaSemibold/semibold-font.woff') format('woff');\\n font-display: auto;\\n font-style: normal;\\n font-weight: 600;\\n}\\n\\n@font-face {\\n font-family: 'proxima-nova';\\n src: url('./ProximaNova/ProximaNovaMedium/medium-font.woff2') format('woff2'),\\n url('./ProximaNova/ProximaNovaMedium/medium-font.woff') format('woff');\\n font-display: auto;\\n font-style: normal;\\n font-weight: 500;\\n}\\n\\n@font-face {\\n font-family: 'proxima-nova';\\n src: url('./ProximaNova/ProximaNovaRegular/regular-font.woff2') format('woff2'),\\n url('./ProximaNova/ProximaNovaRegular/regular-font.woff') format('woff');\\n font-display: auto;\\n font-style: normal;\\n font-weight: 400;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.f1-leading-12 {\n line-height: 2.625rem;\n}\n\n.f1-h-26 {\n height: 100px;\n}\n\n.f1-w-26 {\n width: 100px;\n}\n\n.f1-shadow-top {\n box-shadow: 0px -2px 4px -2px rgba(0, 0, 0, 0.05), 0px -10px 7px -7px rgba(0, 0, 0, 0.1);\n}\n\n.f1-max-w-65 {\n max-width: 20rem;\n}\n \n.f1-link-text a{\n color: #374151\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./styles/styles.css\"],\"names\":[],\"mappings\":\";AACA;EACE,qBAAqB;AACvB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,wFAAwF;AAC1F;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE;AACF\",\"sourcesContent\":[\"\\n.f1-leading-12 {\\n line-height: 2.625rem;\\n}\\n\\n.f1-h-26 {\\n height: 100px;\\n}\\n\\n.f1-w-26 {\\n width: 100px;\\n}\\n\\n.f1-shadow-top {\\n box-shadow: 0px -2px 4px -2px rgba(0, 0, 0, 0.05), 0px -10px 7px -7px rgba(0, 0, 0, 0.1);\\n}\\n\\n.f1-max-w-65 {\\n max-width: 20rem;\\n}\\n \\n.f1-link-text a{\\n color: #374151\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","export enum REDUX_KEYS {\n LOADER = \"loader\",\n PAGE_CONFIG = \"page-config\",\n}\n","import { createSlice } from \"@reduxjs/toolkit\";\n\nimport { REDUX_KEYS } from \"../constants/stateKey.enum\";\n\nimport type { PayloadAction } from \"@reduxjs/toolkit\";\n\nexport type LoaderDetails = {\n label?: string;\n descriptions?: string[];\n};\n\nexport interface LoaderState extends LoaderDetails {\n loading: boolean;\n}\n\ntype ActionPayloadProps = Partial<LoaderDetails>;\n\nconst initialState: LoaderState = {\n loading: false,\n label: \"Loading...\",\n};\n\nexport const loaderSlice = createSlice({\n name: REDUX_KEYS.LOADER,\n initialState,\n reducers: {\n startLoading: (state, action: PayloadAction<ActionPayloadProps>) => {\n state.loading = true;\n state.label = action?.payload?.label ?? state.label;\n state.descriptions = action?.payload?.descriptions;\n },\n\n stopLoading: (state) => {\n state.loading = false;\n state.label = undefined;\n state.descriptions = undefined;\n },\n },\n});\n\nexport const { startLoading, stopLoading } = loaderSlice.actions;\n\nexport const selectLoading = (state: { loader: LoaderState }) => state.loader;\n\nexport default loaderSlice.reducer;\n","/**\n * Defines the structure for styles used throughout the application.\n * @typedef {Object} Styles - Tailwind+CustomStyle object.\n */\n\nimport type { ReactFormIdsKeys } from './types/pages.type';\nimport type { CSSProperties } from 'react';\n\nexport enum ConfigCSSKeys {\n wrapper = 'ff-wrapper',\n description = 'ff-description',\n instructions = 'ff-instructions',\n checkbox = 'ff-checkbox',\n label = 'ff-label',\n title = 'ff-title',\n button = 'ff-button',\n checkboxItem = 'ff-checkbox-item',\n descriptionItem = 'ff-description-item',\n instructionItem = 'ff-instruction-item',\n font = 'font'\n}\n\n// export type Styles = Partial<Record<ConfigCSSKeys, CSSProperties>>;\n\nexport type Styles<T extends ConfigCSSKeys = ConfigCSSKeys> = T extends ConfigCSSKeys.font ? Partial<Record<T, FontConfig>> : Partial<Record<T, CSSProperties>>;\n\n\nexport type FontConfig = {\n name?: string;\n url?: string;\n}\n\n/**\n * Represents the content of a page.\n * @typedef {Object} Content\n * @property {string} label - The label content.\n * @property {string} [icon] - The icon associated with the content.\n * @property {Styles} style - The styles for the content.\n */\nexport type Content = {\n icon?: string;\n label: string;\n style?: Styles;\n};\n\nexport type ListInfo = {\n label?: string;\n content: Content[];\n style?: Styles;\n};\n\n/**\n * Represents list content for a page.\n * @typedef {Object} LisContent\n * @property {boolean} [isRoundedCheckbox] - Indicates whether the list item has a circular checkbox.\n * @property {string} label - The label content.\n * @property {Styles} style - The styles for the list content.\n */\ntype LisContent = ListInfo & NonNullable<unknown>;\n\ntype Checkbox = Omit<ListInfo, 'label'> & NonNullable<unknown>;\n\n/**\n * Represents ID card content for a page.\n * @typedef {Object} IdCardContent\n * @property {string} postFixIcon - The post-fix icon associated with the ID card content.\n * @property {string} label - The label content.\n * @property {Styles} style - The styles for the ID card content.\n */\n\ntype IdCardContent = Content & {\n postFixIcon: string;\n};\n\n/**\n * Represents action content for a page.\n * @typedef {Object} ActionContent\n * @property {string} [redirectTo] - The URL to redirect to upon action.\n * @property {string} label - The label content.\n * @property {Styles} style - The styles for the action content.\n */\n\ntype ActionContent = Content & {\n redirectTo?: string;\n};\n\n/**\n * Represents the possible types for input configuration.\n * @typedef {'label' | 'number' | 'date' | 'select' | 'multiselect' | 'textarea' | 'checkbox' | 'radio' | 'contact-number' | 'address'} InputConfigType\n */\ntype InputConfigType =\n | 'label'\n | 'number'\n | 'date'\n | 'select'\n | 'multiselect'\n | 'textarea'\n | 'checkbox'\n | 'radio'\n | 'contact-number'\n | 'address';\n\n/**\n * Represents configuration for a number input type.\n * @typedef {Object} NumberConfig\n * @property {number} [min] - The minimum value allowed.\n * @property {number} [max] - The maximum value allowed.\n */\ntype NumberConfig<NType extends InputConfigType> = {\n type: NType;\n min?: number;\n max?: number;\n};\n\n/**\n * Represents configuration for a date input type.\n * @typedef {Object} DateConfig\n * @property {number} [minDate] - The minimum date allowed.\n * @property {number} [maxDate] - The maximum date allowed.\n */\ntype DateConfig<NType extends InputConfigType> = {\n type: NType;\n minDate?: number;\n maxDate?: number | string | Date;\n};\n\n/**\n * Represents configuration for a textarea input type.\n * @typedef {Object} TextareaConfig\n * @property {number} [maxTextLimit] - The maximum label limit.\n */\ntype TextareaConfig<NType extends InputConfigType> = {\n type: NType;\n maxTextLimit?: number;\n};\n\n/**\n * Represents input configuration, with variations based on type.\n * @typedef {Object} FormField\n * @property {InputConfigType} type - Input type.\n * @property {boolean} [isRequired] - Indicates if input is required.\n * @property {boolean} [isDisabled] - Indicates if input is disabled.\n * @property {boolean} [isWordCount] - Indicates if word count is enabled for textarea.\n * @property {boolean} [isDropdownCTA] - Indicates if input has a dropdown CTA.\n * @property {boolean} [isSearchable] - Indicates if input field is searchable.\n * @property {string} [tooltip] - Tooltip text for input.\n * @property {Styles} [style] - Styles for input.\n * @property {NumberConfig} [min] - Min and max values for number type.\n * @property {DateConfig} [minDate] - Min and max dates for date type.\n * @property {TextareaConfig} [maxTextLimit] - Max label limit for textarea type.\n */\ntype FormField<NType extends InputConfigType> = {\n type: NType;\n label?: string;\n placeholder?: string;\n isRequired?: boolean;\n isDisabled?: boolean;\n isWordCount?: boolean;\n isDropdownCTA?: boolean;\n isSearchable?: boolean;\n tooltip?: string;\n style?: Styles;\n} & (NType extends 'number' ? NumberConfig<'number'> : NonNullable<unknown>) &\n (NType extends 'date' ? DateConfig<'date'> : NonNullable<unknown>) &\n (NType extends 'textarea'\n ? TextareaConfig<'textarea'>\n : NonNullable<unknown>);\n\n/**\n * Represents configuration for a static page.\n * @typedef {Object} IStaticPageConfig\n * @property {Content} title - The title of the static page.\n * @property {Content[]} descriptions - The paragraphs of the static page.\n * @property {LisContent[]} instructions - The list items of the static page.\n * @property {ActionContent} cta - The action content of the static page.\n * @property {Styles} style - The styles for the static page.\n */\ninterface IBasicInfo<NType extends ReactFormIdsKeys = ReactFormIdsKeys> extends FontConfig {\n name: NType;\n title: Content;\n descriptions: Content[];\n style?: Styles;\n}\n\n/**\n * Defines the type for instructions associated with a specific form ID.\n * @template NType - Type parameter representing the form ID.\n * @property {NType} name - The form ID.\n * @property {LisContent} [instructions] - Instructions for the form.\n */\ntype Instructions<NType extends ReactFormIdsKeys> = {\n name: NType;\n instructions?: LisContent;\n};\n\n/**\n * Defines the type for checkboxes associated with a specific form ID.\n * @template NType - Type parameter representing the form ID.\n * @typedef {object} CheckboxType\n * @property {NType} name - The form ID.\n * @property {Checkbox} checkbox - The checkbox configuration.\n */\ntype CheckboxType<NType extends ReactFormIdsKeys> = {\n name: NType;\n checkbox: Checkbox;\n};\n\n/**\n * Defines a type that represents the exclusion of a type from another.\n * @template NType - Type parameter representing the form ID.\n * @template EType - Type parameter representing the excluded form ID.\n * @typedef {Exclude<NType, EType>} Excluded\n */\ntype Excluded<\n NType extends ReactFormIdsKeys,\n EType extends ReactFormIdsKeys\n> = Exclude<NType, EType>;\n\n/**\n * Defines conditional instructions based on the form ID.\n * @template NType - Type parameter representing the form ID.\n */\ntype ConditionalInstructions<NType extends ReactFormIdsKeys> =\n NType extends 'WELCOME' ? Instructions<'WELCOME'> : NonNullable<unknown>;\n\n/**\n * Defines conditional checkboxes based on the form ID.\n * @template NType - Type parameter representing the form ID.\n */\ntype ConditionalCheckbox<NType extends ReactFormIdsKeys> =\n NType extends 'CONSENT' ? CheckboxType<'CONSENT'> : NonNullable<unknown>;\n\n/**\n * Defines other conditional fields based on the form ID.\n * @template NType - Type parameter representing the form ID.\n */\ntype OtherConditionalFields<NType extends ReactFormIdsKeys> = NType extends\n | 'WELCOME'\n | 'CONSENT'\n ? NonNullable<unknown>\n : Instructions<Excluded<NType, 'WELCOME' | 'CONSENT'>> &\n CheckboxType<Excluded<NType, 'WELCOME' | 'CONSENT'>>;\n\n/**\n * Defines the type for static page configuration based on the form ID.\n * @template NType - Type parameter representing the form ID.\n */\nexport type IStaticPageConfig<\n NType extends ReactFormIdsKeys = ReactFormIdsKeys\n> = (IBasicInfo<NType> & { cta: ActionContent }) &\n (\n | ConditionalInstructions<NType>\n | ConditionalCheckbox<NType>\n | OtherConditionalFields<NType>\n )\n\n/**\n * Represents configuration for an ID card page.\n * @property {Content} title - The title of the ID card page.\n * @property {Content[]} descriptions - The paragraphs of the ID card page.\n * @property {IdCardContent[]} idCardList - The ID card list of the ID card page.\n */\nexport interface IIdCardPageConfig extends IBasicInfo {\n idCardList: IdCardContent[];\n}\n\n/**\n * Represents configuration for a progress page.\n * @typedef {Object} IProgressPageConfig\n * @property {string} icon - The icon for the progress page.\n * @property {Content} title - The title of the progress page.\n * @property {Content[]} descriptions - The paragraphs of the progress page.\n * @property {ActionContent} action - The action content of the progress page.\n * @property {Styles} style - The styles for the progress page.\n * @property {boolean} [isTransparent] - Indicates whether the progress page is transparent.\n */\nexport interface IProgressPageConfig extends IBasicInfo {\n icon: string;\n cta: ActionContent;\n isTransparent?: boolean;\n}\n\n/**\n * Represents configuration for a form page.\n * @typedef {Object} IFormPageConfig\n * @property {Content} label - The label of the form page.\n * @property {FormField[]} formFields - The form fields of the form page.\n * @property {ActionContent} cta - The action content of the form page.\n * @property {Styles} style - The styles for the form page.\n */\nexport interface IFormPageConfig extends Pick<IBasicInfo, 'name' | 'style'> {\n label: Content;\n formFields: FormField<InputConfigType>[];\n cta: ActionContent;\n}\n\n/**\n * Represents the page configuration.\n * @typedef {IStaticPageConfig | IIdCardPageConfig | IProgressPageConfig | IFormPageConfig} TPageConfig\n */\nexport type TPageConfig = Partial<\n IStaticPageConfig & IIdCardPageConfig & IProgressPageConfig & IFormPageConfig\n>;\n\n// Conditional type to extract keys based on value type\nexport type KeysMatching<T, V> = {\n [K in keyof T]: T[K] extends V ? K : never;\n}[keyof T];\n\n// ################### Example of it ###################\n\n// Mock data for page 1 (IStaticPageConfig)\nconst welcomePage = {\n name: 'WELCOME',\n title: { label: 'Welcome', style: {} },\n descriptions: [\n { label: 'This is a sample static page.', style: {} },\n { label: 'It can contain multiple paragraphs.', style: {} },\n ],\n instructions: {\n label: 'label goes here...',\n content: [\n { label: 'Item 1', style: {} },\n { label: 'Item 2', style: {} },\n ],\n },\n cta: { label: 'Continue', style: {} },\n style: {},\n} satisfies IStaticPageConfig;\n// use satisfied for avoiding global runtime errors\n// it will impact WELCOME component if you will be [const obj: IStaticPageConfig = { ... }]\n\n// Mock data for consentPage (IStaticPageConfig)\nconst consentPage = {\n name: 'CONSENT',\n title: { label: 'Welcome', style: {} },\n descriptions: [\n { label: 'This is a sample static page.', style: {} },\n { label: 'It can contain multiple paragraphs.', style: {} },\n ],\n checkbox: {\n content: [{ label: 'Item 1', style: {} }],\n },\n cta: { label: 'Continue', style: {} },\n style: {},\n} satisfies IStaticPageConfig;\n// use satisfied for avoiding global runtime errors\n// it will impact CONSENT component if you will be [const obj: IStaticPageConfig = { ... }]\n\n// Mock data for page 2 (IIdCardPageConfig)\nconst idCardPageConfig: IIdCardPageConfig = {\n name: 'CONSENT',\n title: { label: 'ID Card Page', style: {} },\n descriptions: [{ label: 'Details on ID cards:', style: {} }],\n idCardList: [\n { label: 'ID Card 1', style: {}, postFixIcon: 'icon1' },\n { label: 'ID Card 2', style: {}, postFixIcon: 'icon2' },\n ],\n style: {},\n};\n\n// Mock data for progress (IProgressPageConfig)\n// const progress: IProgressPageConfig = {\n// name: 'PROGRESS',\n// title: { label: 'Progress Page', style: {} },\n// descriptions: [{ label: 'Track your progress here:', style: {} }],\n// cta: { label: 'Finish', style: {} },\n// style: {},\n// icon: 'progress-icon',\n// isTransparent: true,\n// };\n\n// Mock data for formPage1 (IFormPageConfig)\n// const formPage1: IFormPageConfig = {\n// name: 'REVIEW',\n// label: { label: 'Form', style: {} },\n// formFields: [\n// {\n// type: 'number',\n// label: 'Name',\n// placeholder: 'Enter your name',\n// isRequired: true,\n// },\n// {\n// type: 'textarea',\n// label: 'Address',\n// placeholder: 'Enter your Address',\n// maxTextLimit: 100,\n// },\n// ],\n// cta: { label: 'Submit', style: {}, redirectTo: '/submit-page' },\n// style: {},\n// };\n\n// Mock data for formPage2 (IFormPageConfig)\n// const formPage2: IFormPageConfig = {\n// name: 'REVIEW2',\n// label: { label: 'Form', style: {} },\n// formFields: [\n// {\n// type: 'label',\n// label: 'Name',\n// placeholder: 'Enter your name',\n// isRequired: true,\n// },\n// {\n// type: 'date',\n// label: 'DOB',\n// placeholder: 'Enter your dob',\n// },\n// ],\n// cta: { label: 'Submit', style: {}, redirectTo: '/submit-page' },\n// style: {},\n// };\n\n/**\n * Example of an array containing page configurations.\n * @type {TPageConfig[]}\n */\nexport const pageConfigurations: TPageConfig[] = [\n welcomePage,\n consentPage,\n idCardPageConfig,\n // progress,\n // formPage1,\n // formPage2,\n];\n\n// NOTE: Simply we will pass the pageConfigurations to the component\n// and it will render the page based on the configuration.\n// it can be welcome page, consent page, progress page, form page, etc.\n","import clsx from 'clsx';\n\nimport {\n ConfigCSSKeys,\n type Content,\n type ListInfo,\n type Styles,\n} from '../../../appConfig.type';\n\nexport interface CheckboxFnProps {\n item: Content;\n isSelected: boolean;\n}\n\ninterface CheckboxProps extends ListInfo {\n content: Content[];\n style?: Styles;\n onChange?: (item: CheckboxFnProps) => void;\n}\n\nconst FrankieCheckbox = ({ content, style, onChange }: CheckboxProps) => {\n const handleCheckboxChange = (event, item: Content) => {\n onChange && onChange({ item: item, isSelected: event.target.checked });\n };\n\n return (\n <div\n className={clsx('f1-mt-5', ConfigCSSKeys.checkbox)}\n style={style?.[ConfigCSSKeys.checkbox]}\n >\n {content?.map((instruction, index) => {\n return (\n <div\n key={`f1-checkbox-${index}`}\n className={clsx(\n 'f1-flex',\n 'f1-items-center',\n ConfigCSSKeys.checkboxItem\n )}\n style={instruction?.style?.[ConfigCSSKeys.checkboxItem]}\n >\n <input\n className={clsx(\n '!f1-mr-0',\n 'f1-rounded-sm',\n '!f1-w-5',\n '!f1-h-5'\n )}\n id={`instructions-id-${index}`}\n type=\"checkbox\"\n onChange={(e) => handleCheckboxChange(e, instruction)}\n />\n <label\n htmlFor={`instructions-id-${index}`}\n className={clsx(\n 'f1-font-normal',\n 'f1-text-md',\n 'f1-leading-6',\n 'f1-text-tertiary-grey-700',\n 'f1-ml-3'\n )}\n >\n {instruction.label}\n </label>\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default FrankieCheckbox;\n","import clsx from 'clsx';\n\nimport { ConfigCSSKeys, type Content } from '../../../appConfig.type';\n\ntype FrankieDescriptionProps = {\n descriptions: Content[];\n};\n\nconst FrankieDescription = ({ descriptions }: FrankieDescriptionProps) => {\n return (\n <>\n {descriptions.map((description, index) => {\n return (\n <div\n key={`f1-description-${index}`}\n className={clsx(\n 'f1-mb-2',\n 'f1-text-tertiary-grey-700',\n 'f1-font-normal',\n 'f1-text-md',\n 'f1-leading-6',\n 'f1-link-text',\n ConfigCSSKeys.description\n )}\n style={description?.style?.[ConfigCSSKeys.description]}\n dangerouslySetInnerHTML={{ __html: description.label }}\n ></div>\n );\n })}\n </>\n );\n};\n\nexport default FrankieDescription;\n","import clsx from 'clsx';\n\nimport { ConfigCSSKeys, type Styles } from '../../../appConfig.type';\n\ntype HeadingProps = {\n label: string;\n style?: Styles;\n};\n\nconst Heading = ({ label, style }: HeadingProps) => {\n return (\n <h1\n className={clsx(\n 'f1-font-bold',\n 'f1-text-3xl',\n 'f1-leading-12',\n 'f1-text-tertiary-grey-800',\n 'f1-mb-4',\n 'f1-mt-0',\n ConfigCSSKeys.title\n )}\n style={style?.[ConfigCSSKeys.title]}\n >\n {label}\n </h1>\n );\n};\n\nexport default Heading;\n","import { EventHub } from '@module/common';\nimport { FormEvents } from '@module/form/events';\nimport { OneSdkContext } from '@module/types';\nimport { createContext } from 'react';\nimport { ConfigType } from '../App';\n\ntype EventContextType = {\n oneSDK: OneSdkContext;\n eventHub: EventHub<FormEvents>;\n config: ConfigType;\n};\n\nexport const EventContext = createContext<EventContextType | undefined>(\n undefined\n);\n","import type { consentPage } from '../features/Consent/consent.config';\nimport type { welcomePage } from '../features/Welcome/welcome.config';\nimport type { LoaderDetails } from '../redux/slices/loaderSlice';\n\nexport enum React_Form_IDS {\n WELCOME = 'welcome',\n CONSENT = 'consent',\n}\n\nexport type ReactFormIdsKeys = keyof typeof React_Form_IDS;\nexport type ReactFormIdsValues = typeof React_Form_IDS;\n\nexport type WrapperProps = {\n renderScreen: (props: {\n onValidate: (isValid: boolean) => void;\n }) => JSX.Element;\n loader?: LoaderDetails;\n onSubmit?: () => void;\n};\n\nexport type NewPageConfig = Partial<\n Record<React_Form_IDS.WELCOME, typeof welcomePage> &\n Record<React_Form_IDS.CONSENT, typeof consentPage>\n> & {\n currentModule?: React_Form_IDS;\n};\n\nexport type ModuleInfo = {\n element: () => JSX.Element;\n disabled: boolean;\n id: React_Form_IDS;\n};\n","import { EventPayload } from '@module/form/events';\nimport { modules } from '../../constants/layout-mapper.const';\nimport { NewPageConfig, React_Form_IDS } from '../../types/pages.type';\n\nexport function getEventConfig(pageConfigs: NewPageConfig): EventPayload {\n const currentModule = modules[pageConfigs.currentModule]?.id;\n const excludeTypes: React_Form_IDS[] = [React_Form_IDS.CONSENT];\n return {\n componentName: 'form',\n provider: 'react',\n inputInfo: {\n formName: currentModule,\n ...(!excludeTypes.includes(currentModule) && { type: 'ocr' }),\n },\n };\n}\n","import clsx from 'clsx';\n\nexport const BaseButton = ({ className, disabled, ...props }: {\n className: string;\n disabled: boolean;\n}) => {\n return (\n <button\n disabled={disabled}\n className={clsx(\n 'f1-flex',\n 'f1-flex-initial',\n 'f1-font-semibold',\n 'f1-items-center',\n 'f1-justify-center',\n 'f1-border-none',\n 'f1-outline',\n 'f1-outline-0',\n 'focus-visible:f1-outline-3',\n 'active:f1-outline-3',\n 'disabled:f1-text-tertiary-grey-400',\n 'disabled:f1-outline-0',\n 'f1-h-12',\n 'f1-w-full',\n 'f1-text-md',\n 'f1-space-x-2',\n 'f1-px-5',\n 'f1-py-3',\n 'f1-rounded-full',\n 'f1-text-mono-white',\n 'f1-bg-primary-800',\n 'hover:f1-bg-primary-900',\n 'focus-visible:f1-bg-primary-900',\n 'active:f1-bg-primary-900',\n 'disabled:f1-bg-tertiary-grey-200',\n 'f1-outline-primary-200',\n disabled ? 'f1-cursor-not-allowed' : 'f1-cursor-pointer',\n className,\n )}\n {...props}\n />\n );\n};\n","import { BaseButton } from './BaseButton';\n\nexport const FrankieButton = ({ className, disabled, ...props }) => {\n return <BaseButton className={className} disabled={disabled} {...props} />;\n};\n","import clsx from 'clsx';\nimport { useContext, useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { ConfigCSSKeys } from '../../../appConfig.type';\nimport { modules } from '../../../constants/layout-mapper.const';\nimport { EventContext } from '../../../hooks/useEventContext';\nimport { getEventConfig } from '../../../layout/Main/utils';\nimport { selectPageConfig } from '../../../redux/slices/moduleSlice';\nimport { FrankieButton } from '../../base';\n\nimport type { ModuleInfo, WrapperProps } from '../../../types/pages.type';\n\nconst Wrapper = ({ renderScreen, onSubmit }: WrapperProps) => {\n const { pageConfigs } = useSelector(selectPageConfig);\n\n const [currModule, setModule] = useState<ModuleInfo>(\n modules[pageConfigs.currentModule],\n );\n\n useEffect(() => {\n setModule(modules[pageConfigs.currentModule]);\n }, [pageConfigs]);\n\n const { eventHub } = useContext(EventContext);\n\n /**\n * load the next module when the current module is ready\n * Emit event builtin_ready to OneSDK when the form is ready,\n * and dispatch stopLoading action to hide the loader\n */\n const handleSubmit = () => {\n onSubmit && onSubmit();\n\n eventHub.emit('builtin_ready', getEventConfig(pageConfigs));\n };\n\n const onValidate = (isValid: boolean) => {\n setModule((prevModule) => ({\n ...prevModule,\n disabled: !isValid,\n }));\n };\n\n const configInfo = pageConfigs[pageConfigs.currentModule];\n\n return (\n <>\n <div\n className={clsx(\n 'f1-py-[49px]',\n 'f1-px-3xl',\n 'tablet:f1-px-0',\n 'tablet:f1-pt-[64px]',\n 'tablet:f1-pb-4xl',\n )}\n >\n {renderScreen({ onValidate })}\n </div>\n <div\n className={clsx(\n 'f1-left-0',\n 'f1-right-0',\n 'f1-bottom-0',\n 'f1-p-6',\n 'tablet:f1-pt-0',\n 'tablet:f1-mb-[120px]',\n 'f1-shadow-top',\n 'tablet:!f1-shadow-none',\n 'f1-flex',\n 'f1-justify-center',\n 'f1-sticky',\n 'tablet:f1-static',\n 'f1-bg-mono-white',\n )}\n >\n <FrankieButton\n disabled={currModule?.disabled}\n onClick={handleSubmit}\n className={clsx(\n 'f1-w-full',\n 'tablet:f1-w-auto',\n 'tablet:f1-min-w-[210px]',\n 'f1-h-auto',\n ConfigCSSKeys.button,\n )}\n style={configInfo?.cta?.style?.[ConfigCSSKeys.button]}\n >\n {configInfo?.cta?.icon}\n {configInfo?.cta?.label}\n </FrankieButton>\n </div>\n </>\n );\n};\n\nexport default Wrapper;\n","import clsx from \"clsx\";\n\nexport const icons = {\n loader: (\n <svg\n aria-hidden=\"true\"\n className={clsx(\n \"f1-inline\",\n \"f1-animate-spin\",\n \"f1-fill-primary-600\",\n \"f1-h-24\",\n \"f1-w-24\"\n )}\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n fill=\"#e5e7eb\"\n />\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n fill=\"currentFill\"\n />\n </svg>\n ),\n checkbox: (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"24\" height=\"24\" rx=\"12\" fill=\"#1D54F8\" />\n <path\n d=\"M18 8.66656L9.99998 16.6666L6.33331 12.9999L7.27331 12.0599L9.99998 14.7799L17.06 7.72656L18 8.66656Z\"\n fill=\"white\"\n />\n </svg>\n ),\n};\n","import clsx from 'clsx';\n\nimport { ConfigCSSKeys, type ListInfo } from '../../../appConfig.type';\nimport { icons } from '../../../constants/icons';\n\ninterface InstructionProps extends ListInfo {}\n\nconst FrankieInstructionList = ({\n content,\n label,\n style,\n}: InstructionProps) => {\n return (\n <div\n className={clsx(\n 'f1-text-tertiary-grey-700',\n 'f1-mt-[32px]',\n ConfigCSSKeys.instructions\n )}\n style={style?.[ConfigCSSKeys.instructions]}\n >\n <p\n className={clsx(\n 'f1-font-semibold',\n 'f1-text-md',\n 'f1-leading-6',\n 'f1-mb-4',\n 'f1-text-tertiary-grey-700'\n )}\n >\n {label}\n </p>\n {content?.map((instruction, index) => {\n return (\n <div\n key={`instructions-list-${index}`}\n className={clsx(\n 'f1-flex',\n 'f1-items-start',\n 'f1-mb-4',\n ConfigCSSKeys.instructionItem\n )}\n style={instruction?.style?.[ConfigCSSKeys.instructionItem]}\n >\n <div className={clsx('f1-pr-3')}>\n {instruction?.icon ?? icons.checkbox}\n </div>\n <div\n className={clsx(\n 'f1-font-normal',\n 'f1-text-md',\n 'f1-leading-6',\n 'f1-text-tertiary-grey-800',\n 'f1-text-left',\n 'f1-link-text'\n )}\n dangerouslySetInnerHTML={{ __html: instruction.label }}\n ></div>\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default FrankieInstructionList;\n","import Consent from \"../features/Consent/Consent\";\nimport { consentPage } from \"../features/Consent/consent.config\";\nimport Welcome from \"../features/Welcome/Welcome\";\nimport { welcomePage } from \"../features/Welcome/welcome.config\";\nimport { React_Form_IDS } from \"../types/pages.type\";\n\nimport type { ModuleInfo, NewPageConfig } from \"../types/pages.type\";\n\nexport const modules: Partial<Record<React_Form_IDS, ModuleInfo>> = {\n [React_Form_IDS.WELCOME]: {\n element: Welcome,\n disabled: false,\n id: React_Form_IDS.WELCOME,\n },\n [React_Form_IDS.CONSENT]: {\n element: Consent,\n disabled: true,\n id: React_Form_IDS.CONSENT,\n },\n};\n\nexport const pagesConfig = {\n [React_Form_IDS.WELCOME]: welcomePage,\n [React_Form_IDS.CONSENT]: consentPage,\n} satisfies NewPageConfig;\n","import { useSelector } from 'react-redux';\n\nimport FrankieDescription from '../../components/view/FrankieDescription/FrankieDescription';\nimport Heading from '../../components/view/FrankieHeading/Heading';\nimport FrankieInstructionList from '../../components/view/FrankieInstructionList/FrankieInstructionList';\n\nimport { selectPageConfig } from '../../redux/slices/moduleSlice';\nimport { React_Form_IDS } from '../../types/pages.type';\nimport Wrapper from '../../components/view/Wrapper/Wrapper';\n\nconst Welcome = () => {\n const { pageConfigs } = useSelector(selectPageConfig);\n const config = pageConfigs[React_Form_IDS.WELCOME];\n\n return (\n <Wrapper\n renderScreen={() => {\n return (\n <>\n <Heading label={config.title?.label} style={config?.title?.style} />\n <FrankieDescription descriptions={config.descriptions} />\n <FrankieInstructionList {...config?.instructions} />\n </>\n );\n }}\n />\n );\n};\n\nexport default Welcome;\n","import { useContext } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport FrankieCheckbox from '../../components/view/FrankieCheckbox/FrankieCheckbox';\nimport FrankieDescription from '../../components/view/FrankieDescription/FrankieDescription';\nimport Heading from '../../components/view/FrankieHeading/Heading';\nimport Wrapper from '../../components/view/Wrapper/Wrapper';\nimport { EventContext } from '../../hooks/useEventContext';\nimport { selectPageConfig } from '../../redux/slices/moduleSlice';\nimport { React_Form_IDS } from '../../types/pages.type';\n\nimport type { CheckboxFnProps } from '../../components/view/FrankieCheckbox/FrankieCheckbox';\n\nconst Consent = () => {\n const { pageConfigs } = useSelector(selectPageConfig);\n const config = pageConfigs[React_Form_IDS.CONSENT];\n\n const eventContext = useContext(EventContext);\n const { oneSDK } = eventContext;\n const individual = oneSDK.individual();\n\n const handleSubmit = () => {\n const allConsent: string[] = individual.access('consentsGiven').getValue();\n const myConsent: string[] = ['general', 'docs', 'creditheader'];\n myConsent.forEach((consent) => {\n if (!allConsent.includes(consent)) {\n individual.addConsent(consent);\n }\n });\n };\n\n return (\n <Wrapper\n renderScreen={({ onValidate }) => {\n const handleChange = (selectedItem: CheckboxFnProps) => {\n onValidate(selectedItem.isSelected);\n };\n\n return (\n <>\n <Heading label={config.title.label} style={config.title?.style} />\n <FrankieDescription descriptions={config?.descriptions} />\n <FrankieCheckbox\n content={config.checkbox?.content}\n style={config.checkbox?.style}\n onChange={handleChange}\n />\n </>\n );\n }}\n onSubmit={handleSubmit}\n />\n );\n};\n\nexport default Consent;\n","import { createSlice } from \"@reduxjs/toolkit\";\n\nimport { pagesConfig } from \"../../constants/layout-mapper.const\";\nimport { REDUX_KEYS } from \"../constants/stateKey.enum\";\n\nimport type { NewPageConfig } from \"../../types/pages.type\";\nimport type { PayloadAction } from \"@reduxjs/toolkit\";\n\nexport interface PageConfigState {\n pageConfigs: NewPageConfig;\n}\n\nconst initialState: PageConfigState = {\n pageConfigs: pagesConfig,\n};\n\nconst pageConfigSlice = createSlice({\n name: REDUX_KEYS.PAGE_CONFIG,\n initialState,\n reducers: {\n addPageConfig: (state, action: PayloadAction<NewPageConfig>) => {\n state.pageConfigs = { ...state.pageConfigs, ...action.payload };\n },\n },\n});\n\nexport const { addPageConfig } = pageConfigSlice.actions;\n\nexport const selectPageConfig = (state: {\n [REDUX_KEYS.PAGE_CONFIG]: PageConfigState;\n}) => state[REDUX_KEYS.PAGE_CONFIG];\n\nexport default pageConfigSlice.reducer;\n","import type { IStaticPageConfig } from './welcome.type';\n\nexport const welcomePage = {\n name: 'WELCOME',\n title: { label: `Let's verify your identity`, style: {} },\n descriptions: [\n {\n label:\n 'We need to collect some personal information to verify your identity. It’s important you enter your details as accurately as possible.',\n style: {},\n },\n ],\n instructions: {\n label: 'You will need',\n content: [\n {\n label:\n 'An ID on you (this could be a driver’s licence, passport or Medicare card',\n style: {},\n },\n {\n label:\n 'Grant access permission on the camera of your phone so we can capture your ID ',\n style: {},\n },\n {\n label:\n 'You must be an Australian citizen, permanent resident or Visa holder.',\n style: {},\n },\n ],\n },\n cta: { icon: '', label: 'Start identification verification', style: {} },\n style: {},\n} satisfies IStaticPageConfig;\n// use satisfied for avoiding global runtime errors\n// it will impact WELCOME component if you will be [const obj: IStaticPageConfig = { ... }]\n","import type IStaticPageConfig from './consent.types';\n\nexport const consentPage = {\n name: 'CONSENT',\n title: { label: 'Your consent matters', style: {} },\n descriptions: [\n {\n label:\n `Your personal information being collected and used in accordance with FrankieOne's <a href=\"https://www.frankieone.com/privacy\" target=\"_blank\">Privacy Policy</a>.`,\n style: {},\n },\n {\n label:\n 'In addition, for the purposes of verifying your identity, you consent to: a) the verification of my personal information with credit bureau header files (for verification only); b) against records held by official document issues or official record holders via third party systems; and c) verification agent(s) acting as a nominated intermediary in accordance with Australian Privacy Principles.',\n style: {},\n },\n {\n label:\n 'You consent to the use by third parties of the results of any verification checks on my identity for the purposes of monitoring and improving their verification services.',\n style: {},\n },\n ],\n checkbox: {\n content: [\n {\n label: 'I have read and agree the above disclosure',\n style: {},\n },\n ],\n style: {},\n },\n cta: { icon: '', label: 'Continue', style: {} },\n style: {},\n} satisfies IStaticPageConfig;\n// use satisfied for avoiding global runtime errors\n// it will impact consent component if you will be [const obj: IStaticPageConfig = { ... }]\n","import { configureStore } from '@reduxjs/toolkit';\n\nimport { REDUX_KEYS } from './constants/stateKey.enum';\nimport loaderReducer from './slices/loaderSlice';\nimport pagesConfigReducer from './slices/moduleSlice';\n\n\nexport const store = configureStore({\n reducer: {\n [REDUX_KEYS.LOADER]: loaderReducer,\n [REDUX_KEYS.PAGE_CONFIG]: pagesConfigReducer,\n },\n});\n","import clsx from 'clsx';\nimport { useCallback } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { icons } from '../../../constants/icons';\nimport { selectLoading } from '../../../redux/slices/loaderSlice';\n\nconst Loader = () => {\n const loadingState = useSelector(selectLoading);\n const { label, descriptions, loading } = loadingState;\n const renderDescription = useCallback(\n (description: string, idx: number) => (\n <div key={`fallback-list-${idx}`} className=\"f1-mb-1\">\n {description}\n </div>\n ),\n []\n );\n\n if (!loading) return null;\n\n return (\n <div\n className={clsx(\n 'f1-fixed',\n 'f1-top-0',\n 'f1-left-0',\n 'f1-text-tertiary-grey-800',\n 'f1-w-full',\n 'f1-h-full',\n 'f1-flex',\n 'f1-justify-center',\n 'f1-items-center',\n 'f1-absolute',\n 'f1-z-50',\n 'f1-bg-mono-white'\n )}\n >\n <div\n className={clsx(\n 'f1-flex',\n 'f1-flex-col',\n 'f1-content-center',\n 'f1-items-center',\n 'f1-w-56',\n 'f1-text-center'\n )}\n >\n {icons.loader}\n <div className={clsx('f1-font-bold', 'f1-mt-3')}>{label}</div>\n <div className={clsx('f1-mt-2', 'f1-text-ter')}>\n {descriptions?.map(renderDescription)}\n </div>\n </div>\n </div>\n );\n};\n\nexport default Loader;\n","import clsx from 'clsx';\nimport { useContext, useEffect } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { ConfigCSSKeys } from '../../appConfig.type';\nimport Loader from '../../components/view/Loader/Loader';\nimport { modules } from '../../constants/layout-mapper.const';\nimport { EventContext } from '../../hooks/useEventContext';\nimport { selectPageConfig } from '../../redux/slices/moduleSlice';\n\nimport { getEventConfig } from './utils';\n\nconst MainLayout = () => {\n const { pageConfigs } = useSelector(selectPageConfig);\n const { eventHub } = useContext(EventContext);\n\n useEffect(() => {\n if (pageConfigs.currentModule) {\n eventHub.emit('builtin_loaded', getEventConfig(pageConfigs));\n }\n }, [pageConfigs]);\n\n const ActiveComponent = modules[pageConfigs.currentModule]?.element;\n\n if (!ActiveComponent) return null;\n\n return (\n <div\n className={clsx(\n 'f1-flex',\n 'f1-flex-col',\n 'f1-justify-between',\n 'tablet:f1-justify-normal',\n 'f1-h-full',\n 'f1-w-full',\n 'tablet:f1-max-w-[442px]',\n ConfigCSSKeys.wrapper\n )}\n style={\n pageConfigs[pageConfigs.currentModule]?.style?.[ConfigCSSKeys.wrapper]\n }\n >\n <ActiveComponent />\n <Loader />\n </div>\n );\n};\n\nexport default MainLayout;\n","import { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { MainLayout } from '../../layout';\nimport {\n addPageConfig,\n selectPageConfig,\n} from '../../redux/slices/moduleSlice';\nimport { React_Form_IDS } from '../../types/pages.type';\n\nimport type { ConfigType } from '../../App';\nimport type { NewPageConfig } from '../../types/pages.type';\n\nconst ScreenWrapper = ({ config }: { config: Partial<ConfigType> }) => {\n const { pageConfigs } = useSelector(selectPageConfig);\n\n const dispatch = useDispatch();\n\n const currModuleName = React_Form_IDS[config?.name] ?? React_Form_IDS.WELCOME;\n\n useEffect(() => {\n dispatch(\n addPageConfig({\n currentModule: currModuleName,\n [currModuleName]: mergeAndReplace(\n pageConfigs[currModuleName] as NewPageConfig,\n getFilteredConfig({ pageConfigs, currModuleName, config })\n ),\n })\n );\n }, []);\n\n return <MainLayout />;\n};\n\n/**\n *\n * @param defaultConfig if we have => { name:default, descriptions: [ { ..default.. }, { ..default.. }, { ..default.. } ], checkbox: {label:default, content: [...default,...default]}})\n * @param newConfig we need to replace & merge => { descriptions: [ { ..new.. }, { ..new.. }, ],checkbox: {content: [...new]})\n * @returns then it will return newConfig: { name:default, descriptions: [ { ..new.. }, { ..new.. } ], checkbox: {label:default, content: [...new]}})\n */\nfunction mergeAndReplace(\n defaultConfig: NewPageConfig,\n newConfig: NewPageConfig\n): NewPageConfig {\n const mergedConfig = { ...defaultConfig };\n\n // Merge newConfig with defaultConfig and replace arrays if needed\n for (const key in newConfig) {\n if (Array.isArray(defaultConfig[key]) && newConfig[key]) {\n mergedConfig[key] = newConfig[key];\n } else if (typeof newConfig[key] === 'object') {\n mergedConfig[key] = { ...mergedConfig[key], ...newConfig[key] };\n } else {\n mergedConfig[key] = newConfig[key];\n }\n }\n\n return mergedConfig;\n}\n\n/**\n *\n * @param required arguments to filter the config object\n * @returns return filter the config object based on the current module\n */\nfunction getFilteredConfig({\n pageConfigs,\n currModuleName,\n config,\n}: {\n pageConfigs: NewPageConfig;\n currModuleName: React_Form_IDS;\n config: Partial<ConfigType>;\n}): NewPageConfig {\n const currentKeys = Object.keys(pageConfigs[currModuleName]);\n const filteredConfig = Object.keys(config).reduce((acc, key) => {\n if (currentKeys.includes(key)) {\n acc[key] = config[key];\n }\n return acc;\n }, {});\n\n return filteredConfig;\n}\n\nexport default ScreenWrapper;\n","import { Provider } from 'react-redux';\n\nimport type { EventHub } from '@module/common';\nimport type { OneSdkContext } from '@module/types';\n\n// redux store is required to initialise first\n// eslint-disable-next-line import/order\nimport { store } from './redux/store';\nimport { EventContext } from './hooks/useEventContext';\n\nimport type { ReactFormIdsKeys } from './types/pages.type';\nimport type { PartialObjectDeep } from 'type-fest/source/partial-deep';\nimport ScreenWrapper from './pages/ScreenWrapper/ScreenWrapper';\n\nexport type ScreenInfo = {\n name: ReactFormIdsKeys;\n};\n\nexport type ConfigType = PartialObjectDeep<\n PartialObjectDeep<ScreenInfo, Record<string, never>>,\n Record<string, never>\n> &\n ScreenInfo;\n\nexport interface AppProps {\n oneSDK: OneSdkContext;\n eventHub: EventHub;\n config: ConfigType;\n}\n\nconst App = ({ oneSDK, eventHub, config }: AppProps) => {\n return (\n <Provider store={store}>\n <EventContext.Provider value={{ oneSDK, eventHub, config }}>\n <ScreenWrapper config={config} />\n </EventContext.Provider>\n </Provider>\n );\n};\n\nexport default App;\n","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!./f1-style.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!./f1-style.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!./fonts.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!./fonts.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!./styles.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!./styles.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { CSSProperties } from 'react';\n\nexport const formStyle: CSSProperties = {\n height: '100%',\n textAlign: 'left',\n background: 'white',\n display: 'flex',\n justifyContent: 'center',\n overflow: 'auto',\n};\n","// eslint-disable-next-line check-file/filename-naming-convention\nimport React from 'react';\nimport ReactDOM from 'react-dom/client';\n\nimport { feat } from '@feature-flags';\nimport { loadAsyncAsset } from '@module/common';\nimport { defineWrapper } from '@module/common/modules/defineModule';\nimport type { FormModule } from '@module/form/definition';\n\nimport App from './App';\n\nimport '../../../../styles/f1-style.css';\nimport '../../../../styles/fonts/fonts.css';\nimport '../../../../styles/styles.css';\nimport { formStyle } from './constants/styles.const';\n\nimport type { FontConfig } from './appConfig.type';\n\n// Classlist for the form container\nconst CONTAINER_CLASSLIST = ['form', 'react', 'ff-react-form'];\n\nexport const initialise = defineWrapper<FormModule>(\n 'react',\n async (shared, options) => {\n const { mountElement, eventHub } = options;\n const {\n oneSdkInstance,\n localEventHub,\n recipe: { form: { provider } },\n } = shared;\n // Retrieving the screen info from the recipe, default to WELCOME\n const config = provider.name === 'react' && provider?.config;\n\n try {\n // Clearing the mount element before attaching the form\n mountElement.innerHTML = '';\n\n // Adding specified class list to the mount element\n mountElement.classList.add(...CONTAINER_CLASSLIST);\n\n // Load font dynamically based on config\n const {\n name: fontName,\n url: fontUrl,\n } = config?.style?.['font'] as FontConfig ?? {};\n\n await downloadFont(fontUrl);\n\n // Retrieving the wrapping mode from the feature flag\n const wrappingMode = feat('modules.form.wrappingMode');\n\n // Dynamically attaching the required elements based on wrapping mode\n const [styledMountElement, wrapperElement, _windowContainer] =\n await ((): Promise<[HTMLElement, Node, Window]> => {\n if (wrappingMode === 'shadow')\n return attachShadow(mountElement, fontName);\n return attachDiv(mountElement, fontName);\n })();\n\n // Rendering the React app using styledMountElement\n const reactRoot = ReactDOM.createRoot(styledMountElement);\n reactRoot.render(\n <React.StrictMode>\n <App oneSDK={oneSdkInstance} eventHub={eventHub} config={config} />\n </React.StrictMode>,\n );\n\n // Emitting a 'loaded' event after rendering\n eventHub.emit('loaded', {\n //TODO: make domElement take Node instead of HTMLElement\n domElement: wrapperElement as HTMLElement,\n provider: 'react',\n });\n\n // We are removing the previous instance of the form and cleaning up\n eventHub.on('builtin_ready', (payload) => {\n mountElement.innerHTML = '';\n reactRoot.unmount();\n // escalate private events to component events\n localEventHub.emit('builtin_ready', payload);\n });\n } catch (error) {\n // Emitting a 'failed_loading' event in case of an error\n eventHub.emit('builtin_failed_loading', { message: error });\n }\n\n return {\n cleanup: () => {\n },\n };\n },\n);\n\nconst downloadFont = async (fontUrl: string) => {\n if (fontUrl) {\n const isFontLoaded = Array.from(\n document.querySelectorAll('link[rel=\"stylesheet\"]'),\n ).some((link: HTMLLinkElement) => link?.href === fontUrl);\n\n // Load font if it's not already loaded\n if (!isFontLoaded) {\n await loadAsyncAsset(fontUrl, 'style');\n }\n }\n};\n\nconst attachStyles = (mountElement: HTMLElement, fontName?: string) => {\n // Creating an internal mount element as a child of the provided mount element\n const internalMountElement = document.createElement('div');\n mountElement.appendChild(internalMountElement);\n Object.assign(internalMountElement.style, {\n ...formStyle,\n ...(fontName && { fontFamily: fontName }),\n });\n return internalMountElement;\n};\n\n// Function to attach the mount element to a div\nconst attachDiv = async (\n mountElement: HTMLElement,\n fontName?: string,\n): Promise<[HTMLElement, Node, Window]> => {\n const internalMountElement = attachStyles(mountElement, fontName);\n return [internalMountElement, mountElement, window];\n};\n\n// Function to attach the mount element to a shadow root\nconst attachShadow = async (\n mountElement: HTMLElement,\n fontName?: string,\n): Promise<[HTMLElement, Node, Window]> => {\n // Creating a shadow root for the provided mount element\n const shadowRoot = mountElement.attachShadow({ mode: 'open' });\n const internalMountElement = attachStyles(mountElement, fontName);\n return [internalMountElement, shadowRoot, window];\n};\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_IMPORT_3___","___CSS_LOADER_URL_IMPORT_4___","___CSS_LOADER_URL_IMPORT_5___","___CSS_LOADER_URL_IMPORT_6___","___CSS_LOADER_URL_IMPORT_7___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","___CSS_LOADER_URL_REPLACEMENT_4___","___CSS_LOADER_URL_REPLACEMENT_5___","___CSS_LOADER_URL_REPLACEMENT_6___","___CSS_LOADER_URL_REPLACEMENT_7___","REDUX_KEYS","loaderSlice","name","LOADER","initialState","loading","label","reducers","startLoading","state","action","payload","descriptions","stopLoading","undefined","actions","selectLoading","loader","ConfigCSSKeys","content","style","onChange","className","clsx","checkbox","map","instruction","index","checkboxItem","type","e","item","isSelected","target","checked","htmlFor","description","dangerouslySetInnerHTML","__html","title","EventContext","createContext","React_Form_IDS","getEventConfig","pageConfigs","currentModule","modules","excludeTypes","CONSENT","componentName","provider","inputInfo","formName","includes","BaseButton","disabled","props","FrankieButton","renderScreen","onSubmit","selectPageConfig","currModule","setModule","useState","useEffect","eventHub","useContext","configInfo","onValidate","isValid","prevModule","onClick","emit","button","cta","icon","icons","viewBox","fill","xmlns","d","width","height","rx","instructions","instructionItem","WELCOME","element","config","eventContext","oneSDK","individual","selectedItem","allConsent","access","getValue","forEach","consent","addConsent","pageConfigSlice","PAGE_CONFIG","addPageConfig","store","reducer","loadingState","renderDescription","useCallback","idx","ActiveComponent","wrapper","mergeAndReplace","defaultConfig","newConfig","mergedConfig","key","Array","isArray","getFilteredConfig","currModuleName","currentKeys","Object","keys","reduce","acc","dispatch","Provider","value","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","formStyle","textAlign","background","display","justifyContent","overflow","CONTAINER_CLASSLIST","initialise","shared","mountElement","oneSdkInstance","localEventHub","recipe","form","innerHTML","classList","add","fontName","url","fontUrl","downloadFont","wrappingMode","styledMountElement","wrapperElement","_windowContainer","attachShadow","attachDiv","reactRoot","render","domElement","on","unmount","error","message","cleanup","from","document","querySelectorAll","some","link","href","loadAsyncAsset","attachStyles","internalMountElement","createElement","appendChild","assign","fontFamily","window","shadowRoot","mode"],"sourceRoot":""}
1
+ {"version":3,"file":"form-react.js","mappings":"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","sources":["webpack://OneSdk/./styles/f1-style.css","webpack://OneSdk/./styles/fonts/fonts.css","webpack://OneSdk/./styles/styles.css","webpack://OneSdk/./modules/form/vendors/formio/transformers/countryData.ts","webpack://OneSdk/./modules/form/vendors/react/constants/icons.tsx","webpack://OneSdk/./modules/form/vendors/react/features/IdPreps/passport.config.ts","webpack://OneSdk/./modules/form/vendors/react/features/IdPreps/mediCare.config.ts","webpack://OneSdk/./modules/form/vendors/react/appConfig.type.ts","webpack://OneSdk/./modules/form/vendors/react/components/view/FrankieCheckbox/FrankieCheckbox.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/FrankieDescription/FrankieDescription.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/FrankieHeading/Heading.tsx","webpack://OneSdk/./modules/form/vendors/react/components/base/FrankieButton/BaseButton.tsx","webpack://OneSdk/./modules/form/vendors/react/components/base/FrankieButton/FrankieButton.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/Wrapper/Wrapper.tsx","webpack://OneSdk/./modules/form/vendors/react/features/Consent/Consent.tsx","webpack://OneSdk/./modules/form/vendors/react/features/IdPreps/driversLicense.config.ts","webpack://OneSdk/./modules/form/vendors/react/components/view/FrankieInstructionList/FrankieInstructionList.tsx","webpack://OneSdk/./modules/form/vendors/react/constants/staticScreenMapper.const.ts","webpack://OneSdk/./modules/form/vendors/react/features/IdPreps/IdPrep.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/FrankieCardList/FrankieCardList.tsx","webpack://OneSdk/./modules/form/vendors/react/features/qa/features.qa.ts","webpack://OneSdk/./modules/form/vendors/react/features/IdSelection/idSelection.config.tsx","webpack://OneSdk/./modules/form/vendors/react/features/Welcome/welcome.config.ts","webpack://OneSdk/./modules/form/vendors/react/components/view/Progress/Progress.tsx","webpack://OneSdk/./modules/form/vendors/react/hooks/useFormMapper.hook.ts","webpack://OneSdk/./modules/form/vendors/react/components/base/TextField/TextSelectField.tsx","webpack://OneSdk/./modules/form/vendors/react/components/base/SharedInput/Input.tsx","webpack://OneSdk/./modules/form/vendors/react/model/error.model.tsx","webpack://OneSdk/./modules/form/vendors/react/hooks/menu.hooks.tsx","webpack://OneSdk/./modules/form/vendors/react/components/base/SelectField/SelectField.tsx","webpack://OneSdk/./modules/form/vendors/react/components/base/SharedSelect/Select.tsx","webpack://OneSdk/./modules/form/vendors/react/constants/form.const.tsx","webpack://OneSdk/./modules/form/vendors/react/components/base/StandardDate/StandardDate.tsx","webpack://OneSdk/./modules/form/vendors/react/components/base/FrankieActionField/FrankieActionField.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/ManualAddress/ManualAddress.tsx","webpack://OneSdk/./modules/form/vendors/react/constants/address.const.ts","webpack://OneSdk/./modules/form/vendors/react/model/address.type.ts","webpack://OneSdk/./modules/form/vendors/react/hooks/useAddressSearch.tsx","webpack://OneSdk/./modules/form/vendors/react/components/base/FrankieTextArea/FrankieTextArea.tsx","webpack://OneSdk/./modules/form/vendors/react/components/base/SharedTextArea/TextArea.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/SearchableAddress/SearchableAddress.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/FrankieAddress/FrankieAddress.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/ActionFormField/ActionFormField.tsx","webpack://OneSdk/./modules/form/vendors/react/components/view/FrankieFormMapper/FrankieFormMapper.tsx","webpack://OneSdk/./modules/form/vendors/react/utils/object.util.ts","webpack://OneSdk/./modules/form/vendors/react/model/address.model.ts","webpack://OneSdk/./modules/form/vendors/react/model/review.model.ts","webpack://OneSdk/./modules/form/vendors/react/features/Consent/manualConsent.config.tsx","webpack://OneSdk/./modules/form/vendors/react/features/Welcome/manualWelcome.config.ts","webpack://OneSdk/./modules/form/vendors/react/hooks/useConfigFactory.hooks.tsx","webpack://OneSdk/./modules/form/vendors/react/hooks/useReviewUpdateFactory.hook.tsx","webpack://OneSdk/./modules/form/vendors/react/model/personalDetails.model.ts","webpack://OneSdk/./modules/form/vendors/react/features/PersonalDetails/PersonalDetails.tsx","webpack://OneSdk/./modules/form/vendors/react/features/Review/review.constants.ts","webpack://OneSdk/./modules/form/vendors/react/features/PersonalDetails/personalDetails.config.ts","webpack://OneSdk/./modules/form/vendors/react/features/Review/Review.tsx","webpack://OneSdk/./modules/form/vendors/react/features/Review/review.config.tsx","webpack://OneSdk/./modules/form/vendors/react/constants/layoutMapper.const.ts","webpack://OneSdk/./modules/form/vendors/react/features/Welcome/Welcome.tsx","webpack://OneSdk/./modules/form/vendors/react/features/IdSelection/IdSelection.tsx","webpack://OneSdk/./modules/form/vendors/react/hooks/usePersonalDetailsUpdateFactory.hook.tsx","webpack://OneSdk/./modules/form/vendors/react/features/Loading/Loading.tsx","webpack://OneSdk/./modules/form/vendors/react/features/Consent/consent.config.tsx","webpack://OneSdk/./modules/form/vendors/react/features/Loading/loading.config.tsx","webpack://OneSdk/./modules/form/vendors/react/redux/constants/stateKey.enum.ts","webpack://OneSdk/./modules/form/vendors/react/redux/slices/moduleSlice.tsx","webpack://OneSdk/./modules/form/vendors/react/utils/layout.util.tsx","webpack://OneSdk/./modules/form/vendors/react/hooks/useEventContext.tsx","webpack://OneSdk/./modules/form/vendors/react/layout/Main/MainLayout.tsx","webpack://OneSdk/./modules/form/vendors/react/pages/ScreenWrapper/ScreenWrapper.tsx","webpack://OneSdk/./modules/form/vendors/react/redux/slices/loaderSlice.tsx","webpack://OneSdk/./modules/form/vendors/react/redux/store.ts","webpack://OneSdk/./modules/form/vendors/react/App.tsx","webpack://OneSdk/./styles/f1-style.css?2333","webpack://OneSdk/./styles/fonts/fonts.css?9b38","webpack://OneSdk/./styles/styles.css?6bc6","webpack://OneSdk/./modules/form/vendors/react/constants/styles.const.tsx","webpack://OneSdk/./modules/form/vendors/react/index.tsx"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: \n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: \n}\n\n.f1-pointer-events-none {\n pointer-events: none\n}\n\n.f1-fixed {\n position: fixed\n}\n\n.f1-absolute {\n position: absolute\n}\n\n.f1-relative {\n position: relative\n}\n\n.f1-sticky {\n position: sticky\n}\n\n.f1-bottom-0 {\n bottom: 0px\n}\n\n.f1-bottom-\\\\[13px\\\\] {\n bottom: 13px\n}\n\n.f1-left-0 {\n left: 0px\n}\n\n.f1-right-0 {\n right: 0px\n}\n\n.f1-right-2 {\n right: 8px\n}\n\n.f1-right-3 {\n right: 0.75rem\n}\n\n.f1--top-1 {\n top: -0.25rem\n}\n\n.f1-top-0 {\n top: 0px\n}\n\n.f1-top-\\\\[10px\\\\] {\n top: 10px\n}\n\n.f1-top-\\\\[25\\\\.5\\\\%\\\\] {\n top: 25.5%\n}\n\n.f1-z-10 {\n z-index: 10\n}\n\n.f1-z-20 {\n z-index: 20\n}\n\n.f1-z-50 {\n z-index: 50\n}\n\n.f1-m-0 {\n margin: 0px\n}\n\n.f1-mx-auto {\n margin-left: auto;\n margin-right: auto\n}\n\n.f1-my-3 {\n margin-top: 0.75rem;\n margin-bottom: 0.75rem\n}\n\n.f1-my-6 {\n margin-top: 1.5rem;\n margin-bottom: 1.5rem\n}\n\n.\\\\!f1-mr-0 {\n margin-right: 0px !important\n}\n\n.f1-mb-1 {\n margin-bottom: 0.25rem\n}\n\n.f1-mb-2 {\n margin-bottom: 8px\n}\n\n.f1-mb-3 {\n margin-bottom: 0.75rem\n}\n\n.f1-mb-4 {\n margin-bottom: 1rem\n}\n\n.f1-ml-3 {\n margin-left: 0.75rem\n}\n\n.f1-mr-1 {\n margin-right: 0.25rem\n}\n\n.f1-mt-0 {\n margin-top: 0px\n}\n\n.f1-mt-1 {\n margin-top: 0.25rem\n}\n\n.f1-mt-2 {\n margin-top: 8px\n}\n\n.f1-mt-3 {\n margin-top: 0.75rem\n}\n\n.f1-mt-5 {\n margin-top: 1.25rem\n}\n\n.f1-mt-9 {\n margin-top: 2.25rem\n}\n\n.f1-mt-\\\\[-4px\\\\] {\n margin-top: -4px\n}\n\n.f1-mt-\\\\[32px\\\\] {\n margin-top: 32px\n}\n\n.f1-box-border {\n box-sizing: border-box\n}\n\n.f1-inline {\n display: inline\n}\n\n.f1-flex {\n display: flex\n}\n\n.\\\\!f1-h-5 {\n height: 1.25rem !important\n}\n\n.f1-h-12 {\n height: 3rem\n}\n\n.f1-h-24 {\n height: 6rem\n}\n\n.f1-h-5 {\n height: 1.25rem\n}\n\n.f1-h-\\\\[48px\\\\] {\n height: 48px\n}\n\n.f1-h-\\\\[73px\\\\] {\n height: 73px\n}\n\n.f1-h-auto {\n height: auto\n}\n\n.f1-h-full {\n height: 100%\n}\n\n.f1-max-h-64 {\n max-height: 16rem\n}\n\n.f1-max-h-\\\\[150px\\\\] {\n max-height: 150px\n}\n\n.f1-max-h-\\\\[193px\\\\] {\n max-height: 193px\n}\n\n.\\\\!f1-w-5 {\n width: 1.25rem !important\n}\n\n.f1-w-24 {\n width: 6rem\n}\n\n.f1-w-56 {\n width: 14rem\n}\n\n.f1-w-\\\\[48\\\\%\\\\] {\n width: 48%\n}\n\n.f1-w-auto {\n width: auto\n}\n\n.f1-w-full {\n width: 100%\n}\n\n.f1-flex-initial {\n flex: 0 1 auto\n}\n\n.f1-grow {\n flex-grow: 1\n}\n\n@keyframes f1-spin {\n to {\n transform: rotate(360deg)\n }\n}\n\n.f1-animate-spin {\n animation: f1-spin 1s linear infinite\n}\n\n.f1-cursor-not-allowed {\n cursor: not-allowed\n}\n\n.f1-cursor-pointer {\n cursor: pointer\n}\n\n.f1-cursor-text {\n cursor: text\n}\n\n.f1-resize-none {\n resize: none\n}\n\n.f1-list-none {\n list-style-type: none\n}\n\n.f1-appearance-none {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none\n}\n\n.f1-flex-col {\n flex-direction: column\n}\n\n.f1-content-center {\n align-content: center\n}\n\n.f1-items-start {\n align-items: flex-start\n}\n\n.f1-items-center {\n align-items: center\n}\n\n.f1-justify-start {\n justify-content: flex-start\n}\n\n.f1-justify-end {\n justify-content: flex-end\n}\n\n.f1-justify-center {\n justify-content: center\n}\n\n.f1-justify-between {\n justify-content: space-between\n}\n\n.f1-justify-evenly {\n justify-content: space-evenly\n}\n\n.f1-gap-1 {\n gap: 0.25rem\n}\n\n.f1-gap-2 {\n gap: 8px\n}\n\n.f1-gap-3 {\n gap: 0.75rem\n}\n\n.f1-gap-6 {\n gap: 1.5rem\n}\n\n.f1-gap-\\\\[8px\\\\] {\n gap: 8px\n}\n\n.f1-space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(8px * var(--tw-space-x-reverse));\n margin-left: calc(8px * calc(1 - var(--tw-space-x-reverse)))\n}\n\n.f1-overflow-scroll {\n overflow: scroll\n}\n\n.f1-overflow-y-auto {\n overflow-y: auto\n}\n\n.f1-overflow-x-hidden {\n overflow-x: hidden\n}\n\n.f1-rounded-\\\\[6px\\\\] {\n border-radius: 6px\n}\n\n.f1-rounded-full {\n border-radius: 9999px\n}\n\n.f1-rounded-sm {\n border-radius: 4px\n}\n\n.f1-border {\n border-width: 1px\n}\n\n.f1-border-2 {\n border-width: 2px\n}\n\n.f1-border-\\\\[1px\\\\] {\n border-width: 1px\n}\n\n.f1-border-solid {\n border-style: solid\n}\n\n.f1-border-none {\n border-style: none\n}\n\n.f1-border-tertiary-grey-200 {\n --tw-border-opacity: 1;\n border-color: rgb(229 231 235 / var(--tw-border-opacity))\n}\n\n.f1-border-tertiary-grey-300 {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity))\n}\n\n.f1-border-tertiary-red-500 {\n --tw-border-opacity: 1;\n border-color: rgb(240 82 82 / var(--tw-border-opacity))\n}\n\n.f1-border-tertiary-red-700 {\n --tw-border-opacity: 1;\n border-color: rgb(200 30 30 / var(--tw-border-opacity))\n}\n\n.f1-bg-\\\\[\\\\#FDF2F2\\\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(253 242 242 / var(--tw-bg-opacity))\n}\n\n.f1-bg-\\\\[\\\\#e8f0ff\\\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(232 240 255 / var(--tw-bg-opacity))\n}\n\n.f1-bg-mono-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity))\n}\n\n.f1-bg-primary-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(232 240 255 / var(--tw-bg-opacity))\n}\n\n.f1-bg-primary-800 {\n --tw-bg-opacity: 1;\n background-color: rgb(43 103 249 / var(--tw-bg-opacity))\n}\n\n.f1-bg-tertiary-grey-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity))\n}\n\n.f1-fill-primary-600 {\n fill: #3c7cfa\n}\n\n.f1-fill-tertiary-red-600 {\n fill: #e02424\n}\n\n.f1-p-0 {\n padding: 0px\n}\n\n.f1-p-1 {\n padding: 0.25rem\n}\n\n.f1-p-4 {\n padding: 1rem\n}\n\n.f1-p-6 {\n padding: 1.5rem\n}\n\n.f1-px-3xl {\n padding-left: 24px;\n padding-right: 24px\n}\n\n.f1-px-4 {\n padding-left: 1rem;\n padding-right: 1rem\n}\n\n.f1-px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem\n}\n\n.f1-px-\\\\[16px\\\\] {\n padding-left: 16px;\n padding-right: 16px\n}\n\n.f1-py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem\n}\n\n.f1-py-2 {\n padding-top: 8px;\n padding-bottom: 8px\n}\n\n.f1-py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem\n}\n\n.f1-py-\\\\[14px\\\\] {\n padding-top: 14px;\n padding-bottom: 14px\n}\n\n.f1-py-\\\\[49px\\\\] {\n padding-top: 49px;\n padding-bottom: 49px\n}\n\n.f1-pb-2 {\n padding-bottom: 8px\n}\n\n.f1-pl-4 {\n padding-left: 1rem\n}\n\n.f1-pr-10 {\n padding-right: 2.5rem\n}\n\n.f1-pr-3 {\n padding-right: 0.75rem\n}\n\n.f1-pt-1 {\n padding-top: 0.25rem\n}\n\n.f1-text-left {\n text-align: left\n}\n\n.f1-text-center {\n text-align: center\n}\n\n.f1-text-2xl {\n font-size: 1.5rem\n}\n\n.f1-text-3xl {\n font-size: 1.875rem\n}\n\n.f1-text-\\\\[14px\\\\] {\n font-size: 14px\n}\n\n.f1-text-\\\\[16px\\\\] {\n font-size: 16px\n}\n\n.f1-text-md {\n font-size: 1rem\n}\n\n.f1-text-sm {\n font-size: 0.875rem\n}\n\n.f1-text-xs {\n font-size: 0.75rem\n}\n\n.f1-font-bold {\n font-weight: 700\n}\n\n.f1-font-medium {\n font-weight: 500\n}\n\n.f1-font-normal {\n font-weight: 400\n}\n\n.f1-font-semibold {\n font-weight: 600\n}\n\n.f1-capitalize {\n text-transform: capitalize\n}\n\n.f1-leading-6 {\n line-height: 1.5rem\n}\n\n.f1-leading-9 {\n line-height: 2.25rem\n}\n\n.f1-leading-\\\\[42px\\\\] {\n line-height: 42px\n}\n\n.\\\\!f1-text-tertiary-red-600 {\n --tw-text-opacity: 1 !important;\n color: rgb(224 36 36 / var(--tw-text-opacity)) !important\n}\n\n.f1-text-\\\\[\\\\#1F2A37\\\\] {\n --tw-text-opacity: 1;\n color: rgb(31 42 55 / var(--tw-text-opacity))\n}\n\n.f1-text-\\\\[\\\\#306ef9\\\\] {\n --tw-text-opacity: 1;\n color: rgb(48 110 249 / var(--tw-text-opacity))\n}\n\n.f1-text-\\\\[\\\\#374151\\\\] {\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity))\n}\n\n.f1-text-\\\\[red\\\\] {\n --tw-text-opacity: 1;\n color: rgb(255 0 0 / var(--tw-text-opacity))\n}\n\n.f1-text-mono-70 {\n --tw-text-opacity: 1;\n color: rgb(108 117 125 / var(--tw-text-opacity))\n}\n\n.f1-text-mono-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity))\n}\n\n.f1-text-primary-700 {\n --tw-text-opacity: 1;\n color: rgb(51 113 250 / var(--tw-text-opacity))\n}\n\n.f1-text-tertiary-grey-500 {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity))\n}\n\n.f1-text-tertiary-grey-700 {\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity))\n}\n\n.f1-text-tertiary-grey-800 {\n --tw-text-opacity: 1;\n color: rgb(31 42 55 / var(--tw-text-opacity))\n}\n\n.f1-placeholder-tertiary-red-600::-moz-placeholder {\n --tw-placeholder-opacity: 1;\n color: rgb(224 36 36 / var(--tw-placeholder-opacity))\n}\n\n.f1-placeholder-tertiary-red-600::placeholder {\n --tw-placeholder-opacity: 1;\n color: rgb(224 36 36 / var(--tw-placeholder-opacity))\n}\n\n.f1-shadow-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)\n}\n\n.f1-outline {\n outline-style: solid\n}\n\n.f1-outline-0 {\n outline-width: 0px\n}\n\n.f1-outline-primary-200 {\n outline-color: #a1c2fd\n}\n\n.hover\\\\:f1-bg-\\\\[\\\\#e8f0ff\\\\]:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(232 240 255 / var(--tw-bg-opacity))\n}\n\n.hover\\\\:f1-bg-primary-900:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\n}\n\n.hover\\\\:f1-bg-tertiary-grey-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity))\n}\n\n.hover\\\\:f1-text-tertiary-grey-600:hover {\n --tw-text-opacity: 1;\n color: rgb(75 85 99 / var(--tw-text-opacity))\n}\n\n.focus\\\\:f1-border-\\\\[3px\\\\]:focus {\n border-width: 3px\n}\n\n.focus\\\\:f1-bg-\\\\[\\\\#E7F0FF\\\\]:focus {\n --tw-bg-opacity: 1;\n background-color: rgb(231 240 255 / var(--tw-bg-opacity))\n}\n\n.focus\\\\:f1-bg-primary-50:focus {\n --tw-bg-opacity: 1;\n background-color: rgb(232 240 255 / var(--tw-bg-opacity))\n}\n\n.focus-visible\\\\:f1-bg-primary-900:focus-visible {\n --tw-bg-opacity: 1;\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\n}\n\n.focus-visible\\\\:f1-outline-3:focus-visible {\n outline-width: 3px\n}\n\n.active\\\\:f1-bg-primary-900:active {\n --tw-bg-opacity: 1;\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\n}\n\n.active\\\\:f1-outline-3:active {\n outline-width: 3px\n}\n\n.disabled\\\\:f1-bg-tertiary-grey-200:disabled {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity))\n}\n\n.disabled\\\\:f1-text-tertiary-grey-400:disabled {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity))\n}\n\n.disabled\\\\:f1-outline-0:disabled {\n outline-width: 0px\n}\n\n@media (min-width: 640px) {\n .tablet\\\\:f1-static {\n position: static\n }\n\n .tablet\\\\:f1-mb-\\\\[120px\\\\] {\n margin-bottom: 120px\n }\n\n .tablet\\\\:f1-w-auto {\n width: auto\n }\n\n .tablet\\\\:f1-min-w-\\\\[210px\\\\] {\n min-width: 210px\n }\n\n .tablet\\\\:f1-max-w-\\\\[442px\\\\] {\n max-width: 442px\n }\n\n .tablet\\\\:f1-justify-normal {\n justify-content: normal\n }\n\n .tablet\\\\:f1-px-0 {\n padding-left: 0px;\n padding-right: 0px\n }\n\n .tablet\\\\:f1-pb-4xl {\n padding-bottom: 32px\n }\n\n .tablet\\\\:f1-pt-0 {\n padding-top: 0px\n }\n\n .tablet\\\\:f1-pt-\\\\[64px\\\\] {\n padding-top: 64px\n }\n\n .tablet\\\\:\\\\!f1-shadow-none {\n --tw-shadow: 0 0 #0000 !important;\n --tw-shadow-colored: 0 0 #0000 !important;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important\n }\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./styles/f1-style.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,wBAAwB;EACxB,wBAAwB;EACxB,mBAAmB;EACnB,mBAAmB;EACnB,cAAc;EACd,cAAc;EACd,cAAc;EACd,eAAe;EACf,eAAe;EACf,aAAa;EACb,aAAa;EACb,kBAAkB;EAClB,sCAAsC;EACtC,8BAA8B;EAC9B,6BAA6B;EAC7B,4BAA4B;EAC5B,eAAe;EACf,oBAAoB;EACpB,sBAAsB;EACtB,uBAAuB;EACvB,wBAAwB;EACxB,kBAAkB;EAClB,2BAA2B;EAC3B,4BAA4B;EAC5B,sCAAsC;EACtC,kCAAkC;EAClC,2BAA2B;EAC3B,sBAAsB;EACtB,8BAA8B;EAC9B,YAAY;EACZ,kBAAkB;EAClB,gBAAgB;EAChB,iBAAiB;EACjB,kBAAkB;EAClB,cAAc;EACd,gBAAgB;EAChB,aAAa;EACb,mBAAmB;EACnB,qBAAqB;EACrB,2BAA2B;EAC3B,yBAAyB;EACzB,0BAA0B;EAC1B,2BAA2B;EAC3B,uBAAuB;EACvB,wBAAwB;EACxB,yBAAyB;EACzB;AACF;;AAEA;EACE,wBAAwB;EACxB,wBAAwB;EACxB,mBAAmB;EACnB,mBAAmB;EACnB,cAAc;EACd,cAAc;EACd,cAAc;EACd,eAAe;EACf,eAAe;EACf,aAAa;EACb,aAAa;EACb,kBAAkB;EAClB,sCAAsC;EACtC,8BAA8B;EAC9B,6BAA6B;EAC7B,4BAA4B;EAC5B,eAAe;EACf,oBAAoB;EACpB,sBAAsB;EACtB,uBAAuB;EACvB,wBAAwB;EACxB,kBAAkB;EAClB,2BAA2B;EAC3B,4BAA4B;EAC5B,sCAAsC;EACtC,kCAAkC;EAClC,2BAA2B;EAC3B,sBAAsB;EACtB,8BAA8B;EAC9B,YAAY;EACZ,kBAAkB;EAClB,gBAAgB;EAChB,iBAAiB;EACjB,kBAAkB;EAClB,cAAc;EACd,gBAAgB;EAChB,aAAa;EACb,mBAAmB;EACnB,qBAAqB;EACrB,2BAA2B;EAC3B,yBAAyB;EACzB,0BAA0B;EAC1B,2BAA2B;EAC3B,uBAAuB;EACvB,wBAAwB;EACxB,yBAAyB;EACzB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,iBAAiB;EACjB;AACF;;AAEA;EACE,mBAAmB;EACnB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;IACE;EACF;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,wBAAwB;KACrB,qBAAqB;UAChB;AACV;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,uBAAuB;EACvB,mDAAmD;EACnD;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,sBAAsB;EACtB;AACF;;AAEA;EACE,sBAAsB;EACtB;AACF;;AAEA;EACE,sBAAsB;EACtB;AACF;;AAEA;EACE,sBAAsB;EACtB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,qBAAqB;EACrB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,gBAAgB;EAChB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,iBAAiB;EACjB;AACF;;AAEA;EACE,iBAAiB;EACjB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,+BAA+B;EAC/B;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE,2BAA2B;EAC3B;AACF;;AAEA;EACE,2BAA2B;EAC3B;AACF;;AAEA;EACE,6EAA6E;EAC7E,iGAAiG;EACjG;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE;AACF;;AAEA;EACE,kBAAkB;EAClB;AACF;;AAEA;EACE,oBAAoB;EACpB;AACF;;AAEA;EACE;AACF;;AAEA;EACE;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE,iBAAiB;IACjB;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE;EACF;;EAEA;IACE,iCAAiC;IACjC,yCAAyC;IACzC;EACF;AACF\",\"sourcesContent\":[\"*, ::before, ::after {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: \\n}\\n\\n::backdrop {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: \\n}\\n\\n.f1-pointer-events-none {\\n pointer-events: none\\n}\\n\\n.f1-fixed {\\n position: fixed\\n}\\n\\n.f1-absolute {\\n position: absolute\\n}\\n\\n.f1-relative {\\n position: relative\\n}\\n\\n.f1-sticky {\\n position: sticky\\n}\\n\\n.f1-bottom-0 {\\n bottom: 0px\\n}\\n\\n.f1-bottom-\\\\[13px\\\\] {\\n bottom: 13px\\n}\\n\\n.f1-left-0 {\\n left: 0px\\n}\\n\\n.f1-right-0 {\\n right: 0px\\n}\\n\\n.f1-right-2 {\\n right: 8px\\n}\\n\\n.f1-right-3 {\\n right: 0.75rem\\n}\\n\\n.f1--top-1 {\\n top: -0.25rem\\n}\\n\\n.f1-top-0 {\\n top: 0px\\n}\\n\\n.f1-top-\\\\[10px\\\\] {\\n top: 10px\\n}\\n\\n.f1-top-\\\\[25\\\\.5\\\\%\\\\] {\\n top: 25.5%\\n}\\n\\n.f1-z-10 {\\n z-index: 10\\n}\\n\\n.f1-z-20 {\\n z-index: 20\\n}\\n\\n.f1-z-50 {\\n z-index: 50\\n}\\n\\n.f1-m-0 {\\n margin: 0px\\n}\\n\\n.f1-mx-auto {\\n margin-left: auto;\\n margin-right: auto\\n}\\n\\n.f1-my-3 {\\n margin-top: 0.75rem;\\n margin-bottom: 0.75rem\\n}\\n\\n.f1-my-6 {\\n margin-top: 1.5rem;\\n margin-bottom: 1.5rem\\n}\\n\\n.\\\\!f1-mr-0 {\\n margin-right: 0px !important\\n}\\n\\n.f1-mb-1 {\\n margin-bottom: 0.25rem\\n}\\n\\n.f1-mb-2 {\\n margin-bottom: 8px\\n}\\n\\n.f1-mb-3 {\\n margin-bottom: 0.75rem\\n}\\n\\n.f1-mb-4 {\\n margin-bottom: 1rem\\n}\\n\\n.f1-ml-3 {\\n margin-left: 0.75rem\\n}\\n\\n.f1-mr-1 {\\n margin-right: 0.25rem\\n}\\n\\n.f1-mt-0 {\\n margin-top: 0px\\n}\\n\\n.f1-mt-1 {\\n margin-top: 0.25rem\\n}\\n\\n.f1-mt-2 {\\n margin-top: 8px\\n}\\n\\n.f1-mt-3 {\\n margin-top: 0.75rem\\n}\\n\\n.f1-mt-5 {\\n margin-top: 1.25rem\\n}\\n\\n.f1-mt-9 {\\n margin-top: 2.25rem\\n}\\n\\n.f1-mt-\\\\[-4px\\\\] {\\n margin-top: -4px\\n}\\n\\n.f1-mt-\\\\[32px\\\\] {\\n margin-top: 32px\\n}\\n\\n.f1-box-border {\\n box-sizing: border-box\\n}\\n\\n.f1-inline {\\n display: inline\\n}\\n\\n.f1-flex {\\n display: flex\\n}\\n\\n.\\\\!f1-h-5 {\\n height: 1.25rem !important\\n}\\n\\n.f1-h-12 {\\n height: 3rem\\n}\\n\\n.f1-h-24 {\\n height: 6rem\\n}\\n\\n.f1-h-5 {\\n height: 1.25rem\\n}\\n\\n.f1-h-\\\\[48px\\\\] {\\n height: 48px\\n}\\n\\n.f1-h-\\\\[73px\\\\] {\\n height: 73px\\n}\\n\\n.f1-h-auto {\\n height: auto\\n}\\n\\n.f1-h-full {\\n height: 100%\\n}\\n\\n.f1-max-h-64 {\\n max-height: 16rem\\n}\\n\\n.f1-max-h-\\\\[150px\\\\] {\\n max-height: 150px\\n}\\n\\n.f1-max-h-\\\\[193px\\\\] {\\n max-height: 193px\\n}\\n\\n.\\\\!f1-w-5 {\\n width: 1.25rem !important\\n}\\n\\n.f1-w-24 {\\n width: 6rem\\n}\\n\\n.f1-w-56 {\\n width: 14rem\\n}\\n\\n.f1-w-\\\\[48\\\\%\\\\] {\\n width: 48%\\n}\\n\\n.f1-w-auto {\\n width: auto\\n}\\n\\n.f1-w-full {\\n width: 100%\\n}\\n\\n.f1-flex-initial {\\n flex: 0 1 auto\\n}\\n\\n.f1-grow {\\n flex-grow: 1\\n}\\n\\n@keyframes f1-spin {\\n to {\\n transform: rotate(360deg)\\n }\\n}\\n\\n.f1-animate-spin {\\n animation: f1-spin 1s linear infinite\\n}\\n\\n.f1-cursor-not-allowed {\\n cursor: not-allowed\\n}\\n\\n.f1-cursor-pointer {\\n cursor: pointer\\n}\\n\\n.f1-cursor-text {\\n cursor: text\\n}\\n\\n.f1-resize-none {\\n resize: none\\n}\\n\\n.f1-list-none {\\n list-style-type: none\\n}\\n\\n.f1-appearance-none {\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none\\n}\\n\\n.f1-flex-col {\\n flex-direction: column\\n}\\n\\n.f1-content-center {\\n align-content: center\\n}\\n\\n.f1-items-start {\\n align-items: flex-start\\n}\\n\\n.f1-items-center {\\n align-items: center\\n}\\n\\n.f1-justify-start {\\n justify-content: flex-start\\n}\\n\\n.f1-justify-end {\\n justify-content: flex-end\\n}\\n\\n.f1-justify-center {\\n justify-content: center\\n}\\n\\n.f1-justify-between {\\n justify-content: space-between\\n}\\n\\n.f1-justify-evenly {\\n justify-content: space-evenly\\n}\\n\\n.f1-gap-1 {\\n gap: 0.25rem\\n}\\n\\n.f1-gap-2 {\\n gap: 8px\\n}\\n\\n.f1-gap-3 {\\n gap: 0.75rem\\n}\\n\\n.f1-gap-6 {\\n gap: 1.5rem\\n}\\n\\n.f1-gap-\\\\[8px\\\\] {\\n gap: 8px\\n}\\n\\n.f1-space-x-2 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-x-reverse: 0;\\n margin-right: calc(8px * var(--tw-space-x-reverse));\\n margin-left: calc(8px * calc(1 - var(--tw-space-x-reverse)))\\n}\\n\\n.f1-overflow-scroll {\\n overflow: scroll\\n}\\n\\n.f1-overflow-y-auto {\\n overflow-y: auto\\n}\\n\\n.f1-overflow-x-hidden {\\n overflow-x: hidden\\n}\\n\\n.f1-rounded-\\\\[6px\\\\] {\\n border-radius: 6px\\n}\\n\\n.f1-rounded-full {\\n border-radius: 9999px\\n}\\n\\n.f1-rounded-sm {\\n border-radius: 4px\\n}\\n\\n.f1-border {\\n border-width: 1px\\n}\\n\\n.f1-border-2 {\\n border-width: 2px\\n}\\n\\n.f1-border-\\\\[1px\\\\] {\\n border-width: 1px\\n}\\n\\n.f1-border-solid {\\n border-style: solid\\n}\\n\\n.f1-border-none {\\n border-style: none\\n}\\n\\n.f1-border-tertiary-grey-200 {\\n --tw-border-opacity: 1;\\n border-color: rgb(229 231 235 / var(--tw-border-opacity))\\n}\\n\\n.f1-border-tertiary-grey-300 {\\n --tw-border-opacity: 1;\\n border-color: rgb(209 213 219 / var(--tw-border-opacity))\\n}\\n\\n.f1-border-tertiary-red-500 {\\n --tw-border-opacity: 1;\\n border-color: rgb(240 82 82 / var(--tw-border-opacity))\\n}\\n\\n.f1-border-tertiary-red-700 {\\n --tw-border-opacity: 1;\\n border-color: rgb(200 30 30 / var(--tw-border-opacity))\\n}\\n\\n.f1-bg-\\\\[\\\\#FDF2F2\\\\] {\\n --tw-bg-opacity: 1;\\n background-color: rgb(253 242 242 / var(--tw-bg-opacity))\\n}\\n\\n.f1-bg-\\\\[\\\\#e8f0ff\\\\] {\\n --tw-bg-opacity: 1;\\n background-color: rgb(232 240 255 / var(--tw-bg-opacity))\\n}\\n\\n.f1-bg-mono-white {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity))\\n}\\n\\n.f1-bg-primary-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(232 240 255 / var(--tw-bg-opacity))\\n}\\n\\n.f1-bg-primary-800 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(43 103 249 / var(--tw-bg-opacity))\\n}\\n\\n.f1-bg-tertiary-grey-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(243 244 246 / var(--tw-bg-opacity))\\n}\\n\\n.f1-fill-primary-600 {\\n fill: #3c7cfa\\n}\\n\\n.f1-fill-tertiary-red-600 {\\n fill: #e02424\\n}\\n\\n.f1-p-0 {\\n padding: 0px\\n}\\n\\n.f1-p-1 {\\n padding: 0.25rem\\n}\\n\\n.f1-p-4 {\\n padding: 1rem\\n}\\n\\n.f1-p-6 {\\n padding: 1.5rem\\n}\\n\\n.f1-px-3xl {\\n padding-left: 24px;\\n padding-right: 24px\\n}\\n\\n.f1-px-4 {\\n padding-left: 1rem;\\n padding-right: 1rem\\n}\\n\\n.f1-px-5 {\\n padding-left: 1.25rem;\\n padding-right: 1.25rem\\n}\\n\\n.f1-px-\\\\[16px\\\\] {\\n padding-left: 16px;\\n padding-right: 16px\\n}\\n\\n.f1-py-1 {\\n padding-top: 0.25rem;\\n padding-bottom: 0.25rem\\n}\\n\\n.f1-py-2 {\\n padding-top: 8px;\\n padding-bottom: 8px\\n}\\n\\n.f1-py-3 {\\n padding-top: 0.75rem;\\n padding-bottom: 0.75rem\\n}\\n\\n.f1-py-\\\\[14px\\\\] {\\n padding-top: 14px;\\n padding-bottom: 14px\\n}\\n\\n.f1-py-\\\\[49px\\\\] {\\n padding-top: 49px;\\n padding-bottom: 49px\\n}\\n\\n.f1-pb-2 {\\n padding-bottom: 8px\\n}\\n\\n.f1-pl-4 {\\n padding-left: 1rem\\n}\\n\\n.f1-pr-10 {\\n padding-right: 2.5rem\\n}\\n\\n.f1-pr-3 {\\n padding-right: 0.75rem\\n}\\n\\n.f1-pt-1 {\\n padding-top: 0.25rem\\n}\\n\\n.f1-text-left {\\n text-align: left\\n}\\n\\n.f1-text-center {\\n text-align: center\\n}\\n\\n.f1-text-2xl {\\n font-size: 1.5rem\\n}\\n\\n.f1-text-3xl {\\n font-size: 1.875rem\\n}\\n\\n.f1-text-\\\\[14px\\\\] {\\n font-size: 14px\\n}\\n\\n.f1-text-\\\\[16px\\\\] {\\n font-size: 16px\\n}\\n\\n.f1-text-md {\\n font-size: 1rem\\n}\\n\\n.f1-text-sm {\\n font-size: 0.875rem\\n}\\n\\n.f1-text-xs {\\n font-size: 0.75rem\\n}\\n\\n.f1-font-bold {\\n font-weight: 700\\n}\\n\\n.f1-font-medium {\\n font-weight: 500\\n}\\n\\n.f1-font-normal {\\n font-weight: 400\\n}\\n\\n.f1-font-semibold {\\n font-weight: 600\\n}\\n\\n.f1-capitalize {\\n text-transform: capitalize\\n}\\n\\n.f1-leading-6 {\\n line-height: 1.5rem\\n}\\n\\n.f1-leading-9 {\\n line-height: 2.25rem\\n}\\n\\n.f1-leading-\\\\[42px\\\\] {\\n line-height: 42px\\n}\\n\\n.\\\\!f1-text-tertiary-red-600 {\\n --tw-text-opacity: 1 !important;\\n color: rgb(224 36 36 / var(--tw-text-opacity)) !important\\n}\\n\\n.f1-text-\\\\[\\\\#1F2A37\\\\] {\\n --tw-text-opacity: 1;\\n color: rgb(31 42 55 / var(--tw-text-opacity))\\n}\\n\\n.f1-text-\\\\[\\\\#306ef9\\\\] {\\n --tw-text-opacity: 1;\\n color: rgb(48 110 249 / var(--tw-text-opacity))\\n}\\n\\n.f1-text-\\\\[\\\\#374151\\\\] {\\n --tw-text-opacity: 1;\\n color: rgb(55 65 81 / var(--tw-text-opacity))\\n}\\n\\n.f1-text-\\\\[red\\\\] {\\n --tw-text-opacity: 1;\\n color: rgb(255 0 0 / var(--tw-text-opacity))\\n}\\n\\n.f1-text-mono-70 {\\n --tw-text-opacity: 1;\\n color: rgb(108 117 125 / var(--tw-text-opacity))\\n}\\n\\n.f1-text-mono-white {\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity))\\n}\\n\\n.f1-text-primary-700 {\\n --tw-text-opacity: 1;\\n color: rgb(51 113 250 / var(--tw-text-opacity))\\n}\\n\\n.f1-text-tertiary-grey-500 {\\n --tw-text-opacity: 1;\\n color: rgb(107 114 128 / var(--tw-text-opacity))\\n}\\n\\n.f1-text-tertiary-grey-700 {\\n --tw-text-opacity: 1;\\n color: rgb(55 65 81 / var(--tw-text-opacity))\\n}\\n\\n.f1-text-tertiary-grey-800 {\\n --tw-text-opacity: 1;\\n color: rgb(31 42 55 / var(--tw-text-opacity))\\n}\\n\\n.f1-placeholder-tertiary-red-600::-moz-placeholder {\\n --tw-placeholder-opacity: 1;\\n color: rgb(224 36 36 / var(--tw-placeholder-opacity))\\n}\\n\\n.f1-placeholder-tertiary-red-600::placeholder {\\n --tw-placeholder-opacity: 1;\\n color: rgb(224 36 36 / var(--tw-placeholder-opacity))\\n}\\n\\n.f1-shadow-md {\\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)\\n}\\n\\n.f1-outline {\\n outline-style: solid\\n}\\n\\n.f1-outline-0 {\\n outline-width: 0px\\n}\\n\\n.f1-outline-primary-200 {\\n outline-color: #a1c2fd\\n}\\n\\n.hover\\\\:f1-bg-\\\\[\\\\#e8f0ff\\\\]:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(232 240 255 / var(--tw-bg-opacity))\\n}\\n\\n.hover\\\\:f1-bg-primary-900:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\\n}\\n\\n.hover\\\\:f1-bg-tertiary-grey-100:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(243 244 246 / var(--tw-bg-opacity))\\n}\\n\\n.hover\\\\:f1-text-tertiary-grey-600:hover {\\n --tw-text-opacity: 1;\\n color: rgb(75 85 99 / var(--tw-text-opacity))\\n}\\n\\n.focus\\\\:f1-border-\\\\[3px\\\\]:focus {\\n border-width: 3px\\n}\\n\\n.focus\\\\:f1-bg-\\\\[\\\\#E7F0FF\\\\]:focus {\\n --tw-bg-opacity: 1;\\n background-color: rgb(231 240 255 / var(--tw-bg-opacity))\\n}\\n\\n.focus\\\\:f1-bg-primary-50:focus {\\n --tw-bg-opacity: 1;\\n background-color: rgb(232 240 255 / var(--tw-bg-opacity))\\n}\\n\\n.focus-visible\\\\:f1-bg-primary-900:focus-visible {\\n --tw-bg-opacity: 1;\\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\\n}\\n\\n.focus-visible\\\\:f1-outline-3:focus-visible {\\n outline-width: 3px\\n}\\n\\n.active\\\\:f1-bg-primary-900:active {\\n --tw-bg-opacity: 1;\\n background-color: rgb(29 84 248 / var(--tw-bg-opacity))\\n}\\n\\n.active\\\\:f1-outline-3:active {\\n outline-width: 3px\\n}\\n\\n.disabled\\\\:f1-bg-tertiary-grey-200:disabled {\\n --tw-bg-opacity: 1;\\n background-color: rgb(229 231 235 / var(--tw-bg-opacity))\\n}\\n\\n.disabled\\\\:f1-text-tertiary-grey-400:disabled {\\n --tw-text-opacity: 1;\\n color: rgb(156 163 175 / var(--tw-text-opacity))\\n}\\n\\n.disabled\\\\:f1-outline-0:disabled {\\n outline-width: 0px\\n}\\n\\n@media (min-width: 640px) {\\n .tablet\\\\:f1-static {\\n position: static\\n }\\n\\n .tablet\\\\:f1-mb-\\\\[120px\\\\] {\\n margin-bottom: 120px\\n }\\n\\n .tablet\\\\:f1-w-auto {\\n width: auto\\n }\\n\\n .tablet\\\\:f1-min-w-\\\\[210px\\\\] {\\n min-width: 210px\\n }\\n\\n .tablet\\\\:f1-max-w-\\\\[442px\\\\] {\\n max-width: 442px\\n }\\n\\n .tablet\\\\:f1-justify-normal {\\n justify-content: normal\\n }\\n\\n .tablet\\\\:f1-px-0 {\\n padding-left: 0px;\\n padding-right: 0px\\n }\\n\\n .tablet\\\\:f1-pb-4xl {\\n padding-bottom: 32px\\n }\\n\\n .tablet\\\\:f1-pt-0 {\\n padding-top: 0px\\n }\\n\\n .tablet\\\\:f1-pt-\\\\[64px\\\\] {\\n padding-top: 64px\\n }\\n\\n .tablet\\\\:\\\\!f1-shadow-none {\\n --tw-shadow: 0 0 #0000 !important;\\n --tw-shadow-colored: 0 0 #0000 !important;\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important\\n }\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./ProximaNova/ProximaNovaBold/bold-font.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./ProximaNova/ProximaNovaBold/bold-font.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"./ProximaNova/ProximaNovaSemibold/semibold-font.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"./ProximaNova/ProximaNovaSemibold/semibold-font.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(\"./ProximaNova/ProximaNovaMedium/medium-font.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_5___ = new URL(\"./ProximaNova/ProximaNovaMedium/medium-font.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_6___ = new URL(\"./ProximaNova/ProximaNovaRegular/regular-font.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_7___ = new URL(\"./ProximaNova/ProximaNovaRegular/regular-font.woff\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);\nvar ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.form.react.ff-react-form {\n font-family: proxima-nova, sans-serif;\n font-style: normal;\n}\n\n.form.react.ff-react-form .f1-font-proxima-nova {\n font-family: proxima-nova, sans-serif;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'proxima-nova';\n src: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_1___}) format('woff');\n font-display: auto;\n font-style: normal;\n font-weight: 700;\n}\n\n@font-face {\n font-family: 'proxima-nova';\n src: url(${___CSS_LOADER_URL_REPLACEMENT_2___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_3___}) format('woff');\n font-display: auto;\n font-style: normal;\n font-weight: 600;\n}\n\n@font-face {\n font-family: 'proxima-nova';\n src: url(${___CSS_LOADER_URL_REPLACEMENT_4___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_5___}) format('woff');\n font-display: auto;\n font-style: normal;\n font-weight: 500;\n}\n\n@font-face {\n font-family: 'proxima-nova';\n src: url(${___CSS_LOADER_URL_REPLACEMENT_6___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_7___}) format('woff');\n font-display: auto;\n font-style: normal;\n font-weight: 400;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./styles/fonts/fonts.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,qCAAqC;EACrC,kBAAkB;AACpB;;AAEA;EACE,qCAAqC;EACrC,kBAAkB;AACpB;;AAEA;EACE,2BAA2B;EAC3B;0DACoE;EACpE,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,2BAA2B;EAC3B;0DAC4E;EAC5E,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,2BAA2B;EAC3B;0DACwE;EACxE,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,2BAA2B;EAC3B;0DAC0E;EAC1E,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;AAClB\",\"sourcesContent\":[\".form.react.ff-react-form {\\n font-family: proxima-nova, sans-serif;\\n font-style: normal;\\n}\\n\\n.form.react.ff-react-form .f1-font-proxima-nova {\\n font-family: proxima-nova, sans-serif;\\n font-style: normal;\\n}\\n\\n@font-face {\\n font-family: 'proxima-nova';\\n src: url('./ProximaNova/ProximaNovaBold/bold-font.woff2') format('woff2'),\\n url('./ProximaNova/ProximaNovaBold/bold-font.woff') format('woff');\\n font-display: auto;\\n font-style: normal;\\n font-weight: 700;\\n}\\n\\n@font-face {\\n font-family: 'proxima-nova';\\n src: url('./ProximaNova/ProximaNovaSemibold/semibold-font.woff2') format('woff2'),\\n url('./ProximaNova/ProximaNovaSemibold/semibold-font.woff') format('woff');\\n font-display: auto;\\n font-style: normal;\\n font-weight: 600;\\n}\\n\\n@font-face {\\n font-family: 'proxima-nova';\\n src: url('./ProximaNova/ProximaNovaMedium/medium-font.woff2') format('woff2'),\\n url('./ProximaNova/ProximaNovaMedium/medium-font.woff') format('woff');\\n font-display: auto;\\n font-style: normal;\\n font-weight: 500;\\n}\\n\\n@font-face {\\n font-family: 'proxima-nova';\\n src: url('./ProximaNova/ProximaNovaRegular/regular-font.woff2') format('woff2'),\\n url('./ProximaNova/ProximaNovaRegular/regular-font.woff') format('woff');\\n font-display: auto;\\n font-style: normal;\\n font-weight: 400;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.f1-leading-12 {\n line-height: 2.625rem;\n}\n\n.f1-h-26 {\n height: 100px;\n}\n\n.f1-w-26 {\n width: 100px;\n}\n\n.f1-shadow-top {\n box-shadow: 0px -2px 4px -2px rgba(0, 0, 0, 0.05), 0px -10px 7px -7px rgba(0, 0, 0, 0.1);\n}\n\n.f1-max-w-65 {\n max-width: 20rem;\n}\n \n.f1-link-text a{\n color: #374151\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./styles/styles.css\"],\"names\":[],\"mappings\":\";AACA;EACE,qBAAqB;AACvB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,wFAAwF;AAC1F;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE;AACF\",\"sourcesContent\":[\"\\n.f1-leading-12 {\\n line-height: 2.625rem;\\n}\\n\\n.f1-h-26 {\\n height: 100px;\\n}\\n\\n.f1-w-26 {\\n width: 100px;\\n}\\n\\n.f1-shadow-top {\\n box-shadow: 0px -2px 4px -2px rgba(0, 0, 0, 0.05), 0px -10px 7px -7px rgba(0, 0, 0, 0.1);\\n}\\n\\n.f1-max-w-65 {\\n max-width: 20rem;\\n}\\n \\n.f1-link-text a{\\n color: #374151\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { countries } from 'country-data';\n\nexport function alpha2ToAlpha3(alpha2: string): string | null {\n const country = countries[alpha2];\n return country ? country.alpha3 : null;\n}\nexport function alpha3ToAlpha2(alpha3: string): string | null {\n const country = countries[alpha3];\n return country ? country.alpha2 : null;\n}\nexport function alpha3ToName(alpha3: string): string | null {\n const country = countries[alpha3];\n return country ? country.name : null;\n}\n\nexport const allCountries = Object.keys(countries)\n .filter((code: string) => code.length === 3)\n .map((alpha3) => ({ value: alpha3, label: alpha3ToName(alpha3) }));\n","import {\n alertCircleOutline,\n checkbox,\n chevronDown,\n close,\n driverLicenseIcon,\n driversLicenseBanner,\n loader,\n magnify,\n mediCareBanner,\n medicalIcon,\n passportBanner,\n passportIcon,\n rightArrowIcon,\n chevronDownError,\n magnifyError,\n closeError,\n} from '../../../../../styles/images';\n\nexport const icons = {\n loader,\n checkbox,\n rightArrowIcon,\n driverLicenseIcon,\n passportIcon,\n medicalIcon,\n driversLicenseBanner,\n passportBanner,\n mediCareBanner,\n magnify,\n magnifyError,\n alertCircleOutline,\n close,\n chevronDown,\n chevronDownError,\n closeError,\n} satisfies Record<string, string>;\n","import { DocumentTypes, IStaticPageConfig } from '../../appConfig.type';\nimport { icons } from '../../constants/icons';\n\nexport const passportPage = {\n name: 'PASSPORT',\n title: { label: `Get your passport ready` },\n descriptions: [\n {\n label:\n 'Please grant access to your camera so we can take a photo of your passport. Make sure you are in a well-lit room and the details on your ID are clear.',\n },\n ],\n instructions: {\n content: [\n {\n image: icons.passportBanner,\n },\n ],\n },\n cta: { label: 'Ready' },\n} satisfies IStaticPageConfig<DocumentTypes>;\n","import { DocumentTypes, IStaticPageConfig } from '../../appConfig.type';\nimport { icons } from '../../constants/icons';\n\nexport const mediCarePage = {\n name: 'NATIONAL_HEALTH_ID',\n title: { label: `Get your Medicare card ready` },\n descriptions: [\n {\n label:\n 'Please grant access to your camera so we can take a photo of your Medicare card. Make sure you are in a well-lit room and the details on your ID are clear.',\n },\n ],\n instructions: {\n content: [\n {\n image: icons.mediCareBanner,\n },\n ],\n },\n cta: { icon: '', label: 'Ready' },\n} satisfies IStaticPageConfig<DocumentTypes>;\n","import type { ConfigCategory } from \"@module/form/definition\";\n\n/**\n * Defines the structure for styles used throughout the application.\n * @typedef {Object} Styles - Tailwind+CustomStyle object.\n */\n\nimport type { InputProps } from './components/base/SharedInput/Input';\nimport type { SelectProps } from './components/base/SharedSelect/Select';\nimport type { CalendarConfig } from './components/base/StandardDate/StandardDate';\nimport type { FrankieAddressProps } from './components/view/FrankieAddress/FrankieAddress';\nimport type { PersonalDetailsDocumentKeys } from './model/personalDetails.model';\nimport type { ReviewDocument } from './model/review.model';\nimport type { ReactFormIdsKeys } from './types/pages.type';\nimport type { CSSProperties } from 'react';\nimport type { FieldValues, Path, RegisterOptions } from 'react-hook-form';\n\n/*########################################################################################*/\n/*############################ Constants & Common Types ############################*/\n/*########################################################################################*/\nexport enum ConfigCSSKeys {\n wrapper = \"ff-wrapper\",\n description = \"ff-description\",\n instructions = \"ff-instructions\",\n documents = \"ff-documents\",\n checkbox = \"ff-checkbox\",\n label = \"ff-label\",\n title = \"ff-title\",\n subtitle = \"ff-subtitle\",\n button = \"ff-button\",\n checkboxItem = \"ff-checkbox-item\",\n descriptionItem = \"ff-description-item\",\n instructionItem = \"ff-instruction-item\",\n documentItem = \"ff-document-item\",\n font = \"font\",\n formWrapper = \"ff-form-wrapper\",\n formField = \"ff-form-field\",\n progressWrapper = \"ff-progress-wrapper\",\n progressItem = \"ff-progress-item\",\n}\n\nexport enum DocumentKeys {\n DRIVERS_LICENCE = \"DRIVERS_LICENCE\",\n PASSPORT = \"PASSPORT\",\n NATIONAL_HEALTH_ID = \"NATIONAL_HEALTH_ID\",\n}\nexport const documentKeysList = Object.values(DocumentKeys);\nexport type DocumentTypes = keyof typeof DocumentKeys;\nexport type ConfigNames = DocumentTypes | ReactFormIdsKeys;\nexport type FormFieldConfigProps =\n | Path<ReviewDocument>\n | Path<PersonalDetailsDocumentKeys>;\nconst exclusiveScreens: ReactFormIdsKeys[] = ['WELCOME', 'CONSENT'];\ntype ExclusiveScreens = (typeof exclusiveScreens)[number];\n\ntype Screen<NType extends ConfigNames> = NType;\n\n/*########################################################################################*/\n/*############################ Common Configuration Types ############################*/\n/*########################################################################################*/\nexport type Styles<T extends ConfigCSSKeys = ConfigCSSKeys> =\n T extends ConfigCSSKeys.font\n ? Partial<Record<T, FontConfig>>\n : Partial<Record<T, CSSProperties>>;\n\nexport type FontConfig = {\n name?: string;\n url?: string;\n};\n\n/**\n * Represents the content of a page.\n * @typedef {Object} Content\n * @property {string} label - The label content.\n * @property {string} [icon] - The icon associated with the content.\n * @property {Styles} style - The styles for the content.\n */\nexport type Content<NType extends ConfigNames = ConfigNames> = {\n icon?: string;\n label?: string;\n style?: Styles;\n} & (NType extends DocumentTypes\n ? {\n image: string;\n }\n : NonNullable<unknown>);\n\nexport type ListInfo<NType extends ConfigNames = ConfigNames> = {\n label?: string;\n content: Content<NType>[];\n style?: Styles;\n};\n\n/**\n * Static Configuration for Document Type Content\n * @typedef {Object} DocumentTypeContent\n */\nexport interface DocumentTypeContent {\n label?: string;\n image: string;\n style?: Styles;\n}\n\n/**\n * Represents list content for a page.\n * @typedef {Object} LisContent\n * @property {boolean} [isRoundedCheckbox] - Indicates whether the list item has a circular checkbox.\n * @property {string} label - The label content.\n * @property {Styles} style - The styles for the list content.\n */\nexport type LisContent<NType extends ConfigNames = ConfigNames> =\n ListInfo<NType>;\n\ntype Checkbox = Omit<ListInfo, \"label\"> & NonNullable<unknown>;\n\n/**\n * Represents ID card content for a page.\n * @typedef {Object} IDocuments\n * @property {string} postIcon - The post-fix icon associated with the ID card content.\n * @property {string} label - The label content.\n * @property {Styles} style - The styles for the ID card content.\n */\n\nexport type IDocuments = Content & {\n icon: string;\n type: DocumentTypes;\n subtitle?: string;\n postIcon?: string;\n};\n\n/**\n * Represents action content for a page.\n * @typedef {Object} ActionContent\n * @property {string} [redirectTo] - The URL to redirect to upon action.\n * @property {string} label - The label content.\n * @property {Styles} style - The styles for the action content.\n */\n\nexport type ActionContent = Content & {\n redirectTo?: string;\n};\n\n/**\n * Represents configuration for a static page.\n * @typedef {Object} IStaticPageConfig\n * @property {Content} title - The title of the static page.\n * @property {Content[]} descriptions - The paragraphs of the static page.\n * @property {LisContent[]} instructions - The list items of the static page.\n * @property {ActionContent} cta - The action content of the static page.\n * @property {Styles} style - The styles for the static page.\n */\ntype IBasicInfo<\n NType extends ConfigNames = ReactFormIdsKeys,\n FType extends ConfigCategory = ConfigCategory\n> = FontConfig & {\n name: NType;\n title: Content;\n subtitle?: Content;\n descriptions: Content[];\n style?: Styles;\n type?: FType;\n} & (FType extends \"manual\"\n ? {\n type: \"manual\";\n numberOfIDs?: number;\n }\n : NonNullable<unknown>);\n\n/*########################################################################################*/\n/*############################ Static Field Configuration Types ############################*/\n/*########################################################################################*/\nexport type Instructions<NType extends ConfigNames> = {\n name: NType;\n instructions?: LisContent<NType>;\n};\n\ntype CheckboxType<NType extends ConfigNames> = {\n name: NType;\n checkbox: Checkbox;\n};\n\ntype Excluded<NType extends ConfigNames, EType extends ConfigNames> = Exclude<\n NType,\n EType\n>;\n\ntype ConditionalInstructions<NType extends ConfigNames | DocumentTypes> =\n NType extends \"WELCOME\" | DocumentTypes\n ? Instructions<\"WELCOME\" | DocumentTypes>\n : NonNullable<unknown>;\n\ntype ConditionalCheckbox<NType extends ConfigNames> = NType extends \"CONSENT\"\n ? CheckboxType<\"CONSENT\">\n : NonNullable<unknown>;\n\ntype OtherConditionalFields<NType extends ConfigNames> =\n NType extends ExclusiveScreens\n ? NonNullable<unknown>\n : Instructions<Excluded<NType, \"WELCOME\" | \"CONSENT\">> &\n CheckboxType<Excluded<NType, \"WELCOME\" | \"CONSENT\">>;\n\ntype StaticScreen = Screen<\"WELCOME\" | \"CONSENT\" | DocumentTypes>;\n\n/**\n * Defines the type for static page configuration based on the form ID.\n * @template NType - Type parameter representing the form ID.\n */\nexport type IStaticPageConfig<NType extends StaticScreen = StaticScreen> =\n (IBasicInfo<NType> & { cta: ActionContent }) &\n (\n | ConditionalInstructions<NType>\n | ConditionalCheckbox<NType>\n | OtherConditionalFields<NType>\n );\n\n/*########################################################################################*/\n/*############################ ID Card Configuration Types ############################*/\n/*########################################################################################*/\nexport type IDCardScreen = Screen<DocumentTypes | \"DOCUMENT\">;\nexport type IIdCardPageConfig<NType extends IDCardScreen = IDCardScreen> =\n IBasicInfo<NType> & {\n showPreps?: boolean;\n documents: IDocuments[];\n };\n\n/*########################################################################################*/\n/*############################ Progress Configuration Types ############################*/\n/*########################################################################################*/\nexport type IProgressScreen = Screen<\"LOADING\">;\n\nexport type IProgressPageConfig<\n PType extends IProgressScreen = IProgressScreen\n> = Pick<IBasicInfo<PType>, \"name\" | \"descriptions\" | \"title\" | \"style\"> & {\n icon?: string;\n};\n\n/*########################################################################################*/\n/*############################ Form Field Configuration Types ############################*/\n/*########################################################################################*/\nexport type InputConfigType =\n | \"input\"\n | \"label\"\n | \"number\"\n | \"date\"\n | \"select\"\n | \"multiselect\"\n | \"textarea\"\n | \"checkbox\"\n | \"radio\"\n | \"contact-number\"\n | \"address\";\n\nexport type FormFieldDataType =\n | \"phone\"\n | \"email\"\n | \"individual_extra\"\n | \"document_extra\"\n | \"previous_addr\"\n | \"current_addr\"\n | \"text\"\n | \"number\";\n\nexport type FormField<\n FType extends InputConfigType,\n NType extends FormFieldConfigProps = FormFieldConfigProps\n> = {\n name: NType | (string & NonNullable<unknown>);\n fieldType: FType;\n dataType?: FormFieldDataType;\n hide?: boolean;\n style?: Styles;\n showToggle?: boolean;\n} & FieldProps<FType, NType>;\n\ntype FieldProps<FType extends InputConfigType, NType> = {\n fieldType: FType;\n} & ConditionalFormFields<FType, NType>;\n\nexport type FieldRules<TFieldValues> = {\n rules?: Omit<\n RegisterOptions<TFieldValues, Path<TFieldValues>>,\n \"disabled\" | \"valueAsNumber\" | \"valueAsDate\" | \"setValueAs\" | \"pattern\"\n > & {\n pattern?: {\n value?: string;\n message?: string;\n };\n };\n};\n\ntype ConditionalFormFields<FType, NType> = ((FType extends\n | \"input\"\n | \"date\"\n | \"textarea\"\n ? InputFieldProps<FType>\n : NonNullable<unknown>) &\n (FType extends \"select\" | \"multiselect\"\n ? SelectFieldProps<FType>\n : NonNullable<unknown>) &\n (FType extends \"address\"\n ? AddressFieldProps<FType, NType>\n : NonNullable<unknown>)) &\n FieldRules<FType>;\n\nexport type CountryConfig<\n FType extends InputConfigType,\n CType extends FormFieldConfigProps = FormFieldConfigProps\n> = {\n // country AUS | NZ | UK | IND | USA| 'default' ....\n [key: string]: {\n //state NSW | VIC | QLD | WA | SA | TAS | NT | ACT | 'default'\n [key: string]: {\n fields: FormField<FType, CType>[];\n };\n };\n};\n\ntype InputFieldProps<FType> = {\n fieldType: FType;\n} & (FType extends \"date\"\n ? Omit<InputProps<FieldValues>, \"control\" & \"rules\">\n : Omit<InputProps<FieldValues>, \"control\">) &\n (FType extends \"date\"\n ? { calendarConfig?: Partial<CalendarConfig> }\n : NonNullable<unknown>);\n\ntype SelectFieldProps<FType> = {\n fieldType: FType;\n} & Omit<SelectProps<FieldValues, string | number>, \"control\">;\n\ntype AddressFieldProps<FType, AType> = {\n fieldType: FType;\n} & Omit<FrankieAddressProps<AType>, \"control\">;\n\n/**\n * Represents configuration for a form page.\n * @typedef {Object} IFormPageConfig\n * @property {Content} label - The label of the form page.\n * @property {FormField[]} fields - The form fields of the form page.\n * @property {ActionContent} cta - The action content of the form page.\n * @property {Styles} style - The styles for the form page.\n */\nexport type FormPageScreen = Screen<'REVIEW' | 'PERSONAL_DETAILS'>;\ntype PersonalDetails<CType extends FormFieldConfigProps> = {\n personal: {\n countries?: CountryConfig<InputConfigType, CType>;\n };\n};\n\ntype DocumentDetails<CType extends FormFieldConfigProps> = {\n documents: {\n type: DocumentTypes;\n countries?: CountryConfig<InputConfigType, CType>;\n }[];\n instruction: CheckboxType<'REVIEW'>['checkbox'];\n} & Partial<PersonalDetails<CType>>;\n\nexport type IFormPageConfig<\n NType extends FormPageScreen = FormPageScreen,\n CType extends FormFieldConfigProps = FormFieldConfigProps\n> =\n | (Pick<IBasicInfo, 'name' | 'style' | 'type'> & {\n title: Content;\n cta: ActionContent;\n descriptions?: Content[];\n }) &\n (NType extends Screen<'REVIEW'>\n ? DocumentDetails<CType>\n : NType extends Screen<'PERSONAL_DETAILS'>\n ? PersonalDetails<CType>\n : NType extends FormPageScreen\n ? DocumentDetails<CType> & PersonalDetails<CType>\n : NonNullable<unknown>);\n\n/*########################################################################################*/\n/*############################ Main Types Types ############################*/\n/*########################################################################################*/\n\n/**\n * Represents the page configuration.\n * @typedef {IStaticPageConfig | IIdCardPageConfig | IProgressPageConfig | IFormPageConfig} TPageConfig\n */\n\nexport type TPageConfig =\n | IStaticPageConfig\n | IIdCardPageConfig\n | IProgressPageConfig\n | IFormPageConfig;\n\n// Conditional type to extract keys based on value type\nexport type KeysMatching<T, V> = {\n [K in keyof T]: T[K] extends V ? K : never;\n}[keyof T];\n","import clsx from 'clsx';\n\nimport {\n ConfigCSSKeys,\n type Content,\n type ListInfo,\n type Styles,\n} from '../../../appConfig.type';\n\nexport interface CheckboxFnProps {\n item: Content;\n isSelected: boolean;\n \n}\n\ninterface CheckboxProps extends ListInfo {\n content: Content[];\n style?: Styles;\n testId?:{\n container?:string;\n inputWrapper?:string;\n input?:string;\n label?:string;\n };\n onChange?: (item: CheckboxFnProps) => void;\n}\n\nconst FrankieCheckbox = ({ content, style, onChange ,testId={\n container:\"\",\n input:\"\",\n inputWrapper:\"\",\n label:\"\",\n}}: CheckboxProps) => {\n const handleCheckboxChange = (event, item: Content) => {\n onChange && onChange({ item: item, isSelected: event.target.checked });\n };\n\n return (\n <div\n className={clsx('f1-mt-5', ConfigCSSKeys.checkbox)}\n style={style?.[ConfigCSSKeys.checkbox]}\n data-testid={testId?.container}\n >\n {content?.map((instruction, index) => {\n return (\n <div\n key={`f1-checkbox-${index}`}\n className={clsx(\n 'f1-flex', \n ConfigCSSKeys.checkboxItem,\n )}\n data-testid = {testId?.inputWrapper}\n style={instruction?.style?.[ConfigCSSKeys.checkboxItem]}\n >\n <input\n className={clsx(\n '!f1-mr-0',\n 'f1-rounded-sm',\n '!f1-w-5',\n '!f1-h-5', \n )}\n id={`frankie-checkbox-id-${index}`}\n type=\"checkbox\"\n onChange={(e) => handleCheckboxChange(e, instruction)}\n data-testid = {testId?.input}\n />\n <label\n htmlFor={`frankie-checkbox-id-${index}`}\n className={clsx(\n 'f1-font-normal',\n 'f1-text-md',\n 'f1-leading-6',\n 'f1-text-tertiary-grey-700',\n 'f1-ml-3',\n )}\n data-testid = {testId.label}\n >\n {instruction.label}\n </label>\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default FrankieCheckbox;\n","import clsx from 'clsx';\nimport DOMPurify from 'dompurify';\n\nimport { ConfigCSSKeys, type Content } from '../../../appConfig.type';\n\ntype FrankieDescriptionProps = {\n descriptions: Content[];\n testId?:{\n container:string;\n };\n};\n\nconst FrankieDescription = ({ descriptions , testId }: FrankieDescriptionProps) => {\n return (\n <>\n {descriptions.map((description, index) => {\n return (\n <div\n data-testid = {testId?.container}\n key={`f1-description-${index}`}\n className={clsx(\n 'f1-mb-2',\n 'f1-text-tertiary-grey-700',\n 'f1-font-normal',\n 'f1-text-md',\n 'f1-leading-6',\n 'f1-link-text',\n ConfigCSSKeys.description,\n )}\n \n style={description?.style?.[ConfigCSSKeys.description]}\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(description?.label ?? '', {\n sanitize: true,\n }),\n }}\n ></div>\n );\n })}\n </>\n );\n};\n\nexport default FrankieDescription;\n","import clsx from 'clsx';\n\nimport { ConfigCSSKeys, type Styles } from '../../../appConfig.type';\n\ntype HeadingProps = {\n label: string;\n style?: Styles;\n testId?:{\n header:string;\n };\n className?:string;\n};\n\n\n\nconst Heading = ({ label, style,className , testId }: HeadingProps) => {\n return (\n <h1\n className={clsx(\n 'f1-font-bold',\n 'f1-text-2xl',\n 'f1-leading-9',\n 'f1-text-tertiary-grey-800',\n 'f1-mt-0',\n className,\n ConfigCSSKeys.title,\n )}\n style={style?.[ConfigCSSKeys.title]}\n data-testid = {testId?.header}\n >\n {label}\n </h1>\n );\n};\n\nexport default Heading;\n","import clsx from 'clsx';\n\nexport const BaseButton = ({ className, disabled, ...props }: {\n className: string;\n disabled: boolean;\n}) => {\n return (\n <button\n disabled={disabled}\n className={clsx(\n 'f1-flex',\n 'f1-flex-initial',\n 'f1-font-semibold',\n 'f1-font-proxima-nova',\n 'f1-items-center',\n 'f1-justify-center',\n 'f1-border-none',\n 'f1-outline',\n 'f1-outline-0',\n 'focus-visible:f1-outline-3',\n 'active:f1-outline-3',\n 'disabled:f1-text-tertiary-grey-400',\n 'disabled:f1-outline-0',\n 'f1-h-12',\n 'f1-w-full',\n 'f1-text-md',\n 'f1-space-x-2',\n 'f1-px-5',\n 'f1-py-3',\n 'f1-rounded-full',\n 'f1-text-mono-white',\n 'f1-bg-primary-800',\n 'hover:f1-bg-primary-900',\n 'focus-visible:f1-bg-primary-900',\n 'active:f1-bg-primary-900',\n 'disabled:f1-bg-tertiary-grey-200',\n 'f1-outline-primary-200',\n disabled ? 'f1-cursor-not-allowed' : 'f1-cursor-pointer',\n className,\n )}\n {...props}\n data-testid={props?.['testId']?.['button']}\n />\n );\n};\n","import { BaseButton } from './BaseButton';\n\nexport const FrankieButton = ({ className, disabled = false, ...props }: {\n [_x: string]: unknown;\n className?: string;\n disabled?: boolean;\n}) => {\n return <BaseButton className={className} disabled={disabled} {...props} />;\n};\n","import clsx from 'clsx';\nimport { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { ConfigCSSKeys } from '../../../appConfig.type';\nimport { modules } from '../../../constants/layoutMapper.const';\nimport { selectPageConfig } from '../../../redux/slices/moduleSlice';\nimport { FrankieButton } from '../../base';\n\nimport type { ModuleInfo, WrapperProps } from '../../../types/pages.type';\n\nconst Wrapper = ({ disabled = false, renderScreen, onSubmit, ctaInfo }: WrapperProps) => {\n const { pageConfigs } = useSelector(selectPageConfig);\n\n const [currModule, setModule] = useState<ModuleInfo>(\n modules[pageConfigs.currentModule],\n );\n\n useEffect(() => {\n setModule(modules[pageConfigs.currentModule]);\n }, [pageConfigs]);\n \n /**\n * load the next module when the current module is ready\n * Emit event builtin_ready to OneSDK when the form is ready,\n * and dispatch stopLoading action to hide the loader\n */\n const handleSubmit = () => {\n onSubmit && onSubmit();\n };\n\n const onValidate = (isValid: boolean) => {\n setModule((prevModule) => ({\n ...prevModule,\n disabled: !isValid ,\n }));\n };\n\n const configInfo = ctaInfo || pageConfigs[pageConfigs.currentModule];\n\n return (\n <>\n <div\n className={clsx(\n 'f1-py-[49px]',\n 'f1-px-3xl',\n 'tablet:f1-px-0',\n 'tablet:f1-pt-[64px]',\n 'tablet:f1-pb-4xl',\n )}\n >\n {renderScreen({ onValidate })} \n </div>\n {configInfo?.['cta'] && (\n <div\n className={clsx(\n 'f1-left-0',\n 'f1-right-0',\n 'f1-bottom-0',\n 'f1-p-6',\n 'tablet:f1-pt-0',\n 'tablet:f1-mb-[120px]',\n 'f1-shadow-top',\n 'tablet:!f1-shadow-none',\n 'f1-flex',\n 'f1-justify-center',\n 'f1-sticky',\n 'tablet:f1-static',\n 'f1-bg-mono-white',\n 'f1-z-20',\n )}\n > \n <FrankieButton\n disabled={currModule?.disabled || disabled}\n onClick={handleSubmit}\n className={clsx(\n 'f1-w-full',\n 'tablet:f1-w-auto',\n 'tablet:f1-min-w-[210px]',\n 'f1-h-auto',\n ConfigCSSKeys.button,\n )}\n style={configInfo?.['cta']?.style?.[ConfigCSSKeys.button]}\n >\n \n {configInfo?.['cta']?.icon}\n {configInfo?.['cta']?.label}\n </FrankieButton>\n </div>\n )}\n </>\n );\n};\n\nexport default Wrapper;\n","import { useContext } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport FrankieCheckbox\n from '../../components/view/FrankieCheckbox/FrankieCheckbox';\nimport FrankieDescription\n from '../../components/view/FrankieDescription/FrankieDescription';\nimport Heading from '../../components/view/FrankieHeading/Heading';\nimport Wrapper from '../../components/view/Wrapper/Wrapper';\nimport { EventContext, useEventHandler } from '../../hooks/useEventContext';\nimport { selectPageConfig } from '../../redux/slices/moduleSlice';\nimport { React_Form_IDS } from '../../types/pages.type';\n\nimport type {\n CheckboxFnProps,\n} from '../../components/view/FrankieCheckbox/FrankieCheckbox';\n\nconst Consent = () => {\n const { pageConfigs } = useSelector(selectPageConfig);\n const config = pageConfigs[React_Form_IDS.CONSENT];\n\n const eventContext = useContext(EventContext);\n const { oneSDK } = eventContext;\n const individual = oneSDK.individual();\n const { documentReady } = useEventHandler();\n\n const handleSubmit = async () => {\n const allConsent: string[] = individual.access('consentsGiven').getValue();\n const myConsent: string[] = ['general', 'docs', 'creditheader'];\n myConsent.forEach((consent) => {\n if (!allConsent.includes(consent)) {\n individual.addConsent(consent);\n }\n });\n await individual.submit();\n documentReady();\n };\n\n return (\n <Wrapper\n renderScreen={({ onValidate }) => {\n const handleChange = (selectedItem: CheckboxFnProps) => {\n onValidate(selectedItem.isSelected);\n };\n\n return (\n <>\n <Heading label={config.title.label} style={config.title?.style} />\n <FrankieDescription descriptions={config?.descriptions} />\n <FrankieCheckbox\n content={config.checkbox?.content}\n style={config.checkbox?.style}\n onChange={handleChange}\n />\n </>\n );\n }}\n onSubmit={handleSubmit}\n />\n );\n};\n\nexport default Consent;\n","import { DocumentTypes, IStaticPageConfig } from '../../appConfig.type';\nimport { icons } from '../../constants/icons';\n\nexport const driversLicensePage = {\n name: 'DRIVERS_LICENCE',\n title: {\n label: `Get your driver’s licence ready.`,\n },\n descriptions: [\n {\n label:\n 'We need to collect some personal information to verify your identity. It’s important you enter your details as accurately as possible.',\n },\n ],\n instructions: {\n content: [\n {\n image: icons.driversLicenseBanner,\n },\n ],\n },\n cta: { icon: '', label: 'Ready' },\n} satisfies IStaticPageConfig<DocumentTypes>;\n","import clsx from \"clsx\";\nimport DOMPurify from \"dompurify\";\n\nimport { ConfigCSSKeys, type ListInfo } from \"../../../appConfig.type\";\n\nimport type { DocumentTypes } from \"../../../appConfig.type\";\nimport type { ReactFormIdsKeys } from \"../../../types/pages.type\";\n\ntype TestIdType = {\n container: string;\n label: string;\n contentWrapper: string;\n};\n\ntype InstructionProps = ListInfo<ReactFormIdsKeys> | ListInfo<DocumentTypes>;\nconst FrankieInstructionList = ({\n content,\n label,\n style,\n testId,\n}: InstructionProps & {\n testId?: TestIdType;\n}) => {\n return (\n <div\n className={clsx(\n \"f1-text-tertiary-grey-700\",\n \"f1-mt-[32px]\",\n ConfigCSSKeys.instructions,\n )}\n style={style?.[ConfigCSSKeys.instructions]}\n data-testid={testId?.container}\n >\n <p\n className={clsx(\n \"f1-font-semibold\",\n \"f1-text-md\",\n \"f1-leading-6\",\n \"f1-mb-4\",\n \"f1-text-tertiary-grey-700\",\n )}\n data-testid={testId?.label}\n >\n {label}\n </p>\n {content?.map((instruction, index) => {\n return (\n <div\n key={`instructions-list-${index}`}\n className={clsx(\n \"f1-flex\",\n \"f1-items-start\",\n \"f1-mb-4\",\n\n !instruction?.icon && \"f1-justify-center\",\n ConfigCSSKeys.instructionItem,\n )}\n style={instruction?.style?.[ConfigCSSKeys.instructionItem]}\n data-testid={testId?.contentWrapper}\n\n >\n {instruction?.icon && (\n <img\n className={clsx(\"f1-pr-3\")}\n src={instruction?.icon}\n alt={instruction?.label}\n />\n )}\n\n {instruction?.label && (\n <div\n className={clsx(\n \"f1-font-normal\",\n \"f1-text-md\",\n \"f1-leading-6\",\n \"f1-text-tertiary-grey-800\",\n \"f1-text-left\",\n \"f1-link-text\",\n )}\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(instruction?.label ?? \"\", {\n sanitize: true,\n }),\n }}\n ></div>\n )}\n\n {instruction?.image && (\n <img src={instruction.image} alt={`instruction-image-${index}`} />\n )}\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default FrankieInstructionList;\n","import { StaticScreenConfig } from '../types/pages.type';\nimport { driversLicensePage, passportPage, mediCarePage } from '../features';\nimport { DocumentKeys } from '../appConfig.type';\n\nexport const staticScreenConfig = {\n [DocumentKeys.DRIVERS_LICENCE]: driversLicensePage,\n [DocumentKeys.PASSPORT]: passportPage,\n [DocumentKeys.NATIONAL_HEALTH_ID]: mediCarePage,\n} satisfies StaticScreenConfig;\n","import { DocumentKeys } from '../../appConfig.type';\nimport FrankieDescription from '../../components/view/FrankieDescription/FrankieDescription';\nimport Heading from '../../components/view/FrankieHeading/Heading';\nimport FrankieInstructionList from '../../components/view/FrankieInstructionList/FrankieInstructionList';\nimport Wrapper from '../../components/view/Wrapper/Wrapper';\nimport { staticScreenConfig } from '../../constants/staticScreenMapper.const';\n\nimport type { DocumentTypes, IStaticPageConfig } from '../../appConfig.type';\n\ntype IdPrepProps = {\n id: DocumentTypes;\n onSubmit: () => void;\n};\nconst IdPrep = ({ id, onSubmit }: IdPrepProps) => {\n const configData = staticScreenConfig[\n DocumentKeys[id]\n ] satisfies IStaticPageConfig<`${typeof id}`>;\n\n return (\n <Wrapper\n renderScreen={() => {\n return (\n <>\n <Heading\n label={configData.title?.label}\n style={configData?.title?.['style']}\n />\n <FrankieDescription descriptions={configData.descriptions} />\n <FrankieInstructionList {...configData?.instructions} />\n </>\n );\n }}\n ctaInfo={configData}\n onSubmit={onSubmit}\n />\n );\n};\n\nexport default IdPrep;\n","import clsx from 'clsx';\r\nimport DOMPurify from 'dompurify';\r\nimport { useCallback } from 'react';\r\n\r\nimport { ConfigCSSKeys } from '../../../appConfig.type';\r\nimport { icons } from '../../../constants/icons';\r\n\r\nimport type { Content, IDocuments, Styles } from '../../../appConfig.type';\r\ninterface IdSelectionProps {\r\n content: IDocuments[];\r\n onSelect?: (instruction: IDocuments) => void;\r\n subtitle?: Content;\r\n style?: Styles;\r\n testId?: string;\r\n}\r\n\r\nconst FrankieCardList = ({\r\n content,\r\n subtitle,\r\n onSelect,\r\n style,\r\n testId,\r\n}: IdSelectionProps) => {\r\n const frankieCard = useCallback(\r\n (instruction: IDocuments, index: number) => (\r\n <div\r\n key={`instructions-list-${index}`}\r\n data-testid={`${testId}-${index}`}\r\n className={clsx(\r\n 'f1-flex',\r\n 'f1-justify-between',\r\n 'f1-items-center',\r\n 'f1-px-4',\r\n 'f1-h-[73px]',\r\n 'f1-cursor-pointer',\r\n 'f1-rounded-[6px]',\r\n 'f1-border-solid',\r\n 'f1-border-[1px]',\r\n 'f1-text-tertiary-grey-700',\r\n 'hover:f1-bg-tertiary-grey-100',\r\n 'f1-border-tertiary-grey-200',\r\n 'focus:f1-bg-[#E7F0FF]',\r\n 'focus:f1-border-[3px]',\r\n ConfigCSSKeys.documentItem\r\n )}\r\n style={instruction?.style?.[ConfigCSSKeys.documentItem]}\r\n tabIndex={0}\r\n onClick={() => onSelect(instruction)}\r\n >\r\n <div\r\n className={clsx(\r\n 'f1-w-auto',\r\n 'f1-flex',\r\n 'f1-justify-evenly',\r\n 'f1-items-center',\r\n 'f1-h-full',\r\n 'f1-gap-2'\r\n )}\r\n >\r\n {instruction?.icon && <img src={instruction?.icon} />}\r\n\r\n <div\r\n className={clsx(\r\n 'f1-h-full',\r\n 'f1-flex',\r\n 'f1-flex-col',\r\n 'f1-justify-center',\r\n 'f1-gap-1'\r\n )}\r\n >\r\n <h5\r\n className={clsx(\r\n 'f1-text-md',\r\n 'f1-m-0',\r\n 'f1-p-0',\r\n 'f1-text-tertiary-grey-700'\r\n )}\r\n >\r\n {instruction.label}\r\n </h5>\r\n {instruction?.subtitle && (\r\n <p\r\n className={clsx(\r\n 'f1-font-semibold',\r\n 'f1-text-xs',\r\n 'f1-m-0',\r\n 'f1-p-0',\r\n 'f1-text-tertiary-grey-500',\r\n 'hover:f1-text-tertiary-grey-600'\r\n )}\r\n >\r\n {instruction?.subtitle}\r\n </p>\r\n )}\r\n </div>\r\n </div>\r\n <div className={clsx('my-auto')}>\r\n <img src={instruction?.postIcon ?? icons.rightArrowIcon} />\r\n </div>\r\n </div>\r\n ),\r\n [content]\r\n );\r\n\r\n return (\r\n <>\r\n <div\r\n className={clsx(\r\n 'f1-flex',\r\n 'f1-gap-6',\r\n 'f1-flex-col',\r\n 'f1-justify-between',\r\n 'f1-my-6',\r\n ConfigCSSKeys.documents\r\n )}\r\n style={style?.[ConfigCSSKeys.documents]}\r\n >\r\n {content?.map(frankieCard)}\r\n </div>\r\n {subtitle?.label && (\r\n <p\r\n className={clsx(\r\n 'f1-text-sm',\r\n 'f1-text-tertiary-grey-500',\r\n ConfigCSSKeys.subtitle\r\n )}\r\n style={subtitle?.style?.[ConfigCSSKeys.subtitle]}\r\n dangerouslySetInnerHTML={{\r\n __html: DOMPurify.sanitize(subtitle?.label ?? '', {\r\n sanitize: true,\r\n }),\r\n }}\r\n />\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default FrankieCardList;\r\n","import { FEATURES_KEY as FK } from \"../features.key\";\n\nconst ConsentPage = `${FK}-consent-page-qa`;\nconst WelcomePage = `${FK}-consent-page-qa`;\nconst FrankieCard = `${FK}-frankie-card-qa`;\n\nexport const consentPageQa = {\n wrapper: `${ConsentPage}-wrapper`,\n} satisfies Record<string, `${typeof ConsentPage}-${string}`>;\n\nexport const welcomePageQa = {\n wrapper: `${WelcomePage}-wrapper`,\n} satisfies Record<string, `${typeof WelcomePage}-${string}`>;\n\nexport const FrankieCardQa = {\n wrapper: `${FrankieCard}-wrapper`,\n} satisfies Record<string, `${typeof FrankieCard}-${string}`>;\n","import { icons } from '../../constants/icons';\n\nimport type { IIdCardPageConfig } from '../../appConfig.type';\n\nexport const idSelectionPage = {\n name: 'DOCUMENT',\n type: 'ocr',\n title: {\n label: 'Choose Your ID',\n },\n subtitle: {\n label: 'Your ID must be valid and not expired',\n },\n descriptions: [\n {\n label:\n \"We'll need at least one of the following documents to verify your identity.\",\n },\n ],\n documents: [\n {\n type: 'DRIVERS_LICENCE',\n label: \"Driver's licence\",\n subtitle: '(recommended)',\n postIcon: icons.rightArrowIcon,\n icon: icons.driverLicenseIcon,\n },\n {\n type: 'PASSPORT',\n label: 'Passport',\n postIcon: icons.rightArrowIcon,\n icon: icons.passportIcon,\n },\n {\n type: 'NATIONAL_HEALTH_ID',\n label: 'Medicare card',\n postIcon: icons.rightArrowIcon,\n icon: icons.medicalIcon,\n },\n ],\n} satisfies IIdCardPageConfig;\n","import { icons } from '../../constants/icons';\n\nimport type { IStaticPageConfig } from '../../appConfig.type';\n\nexport const welcomePage = {\n name: 'WELCOME',\n title: { label: `Let's verify your identity`, style: {} },\n type: 'ocr',\n descriptions: [\n {\n label:\n 'We need to collect some personal information to verify your identity. It’s important you enter your details as accurately as possible.',\n style: {},\n },\n ],\n instructions: {\n label: 'You will need',\n content: [\n {\n icon: icons.checkbox,\n label:\n `An ID on you (this could be a driver’s licence, passport or Medicare card)`,\n style: {},\n },\n {\n icon: icons.checkbox,\n label:\n 'Grant access permission on the camera of your phone so we can capture your ID',\n style: {},\n },\n {\n icon: icons.checkbox,\n label:\n 'You must be an Australian citizen, permanent resident or Visa holder.',\n style: {},\n },\n ],\n },\n cta: { label: 'Start identification verification', style: {} },\n style: {},\n} satisfies IStaticPageConfig;\n// use satisfied for avoiding global runtime errors\n// it will impact WELCOME component if you will be [const obj: IStaticPageConfig = { ... }]\n","import clsx from 'clsx';\nimport { useCallback } from 'react';\n\nimport { ConfigCSSKeys } from '../../../appConfig.type';\n\nimport type { IProgressPageConfig } from '../../../appConfig.type';\n\nexport type ProgressProps = Partial<IProgressPageConfig> & { isLoading?: boolean; isSuccess?: boolean };\n\nconst Progress = ({\n descriptions,\n style,\n title,\n isLoading = true,\n}: ProgressProps) => {\n const renderDescription = useCallback(\n (description: ProgressProps['descriptions'][0], idx: number) => (\n <div\n key={`fallback-list-${idx}`}\n className={clsx('f1-mb-1', ConfigCSSKeys.progressItem)}\n style={description?.style?.[ConfigCSSKeys.progressItem]}\n >\n {description?.label}\n </div>\n ),\n [],\n );\n\n if (!isLoading) return null;\n\n return (\n <div\n className={clsx(\n 'f1-fixed',\n 'f1-top-0',\n 'f1-left-0',\n 'f1-text-tertiary-grey-800',\n 'f1-w-full',\n 'f1-h-full',\n 'f1-flex',\n 'f1-justify-center',\n 'f1-items-center',\n 'f1-absolute',\n 'f1-z-50',\n 'f1-bg-mono-white',\n ConfigCSSKeys.progressWrapper,\n )}\n style={style?.[ConfigCSSKeys.progressWrapper]}\n >\n <div\n className={clsx(\n 'f1-flex',\n 'f1-flex-col',\n 'f1-content-center',\n 'f1-items-center',\n 'f1-w-56',\n 'f1-text-center',\n )}\n >\n {/* We can use image directly, because we are using class in it */}\n <svg\n aria-hidden=\"true\"\n className=\"f1-inline f1-animate-spin f1-fill-primary-600 f1-h-24 f1-w-24\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n fill=\"#e5e7eb\"\n />\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n fill=\"currentFill\"\n />\n </svg>\n\n <div\n className={clsx(\n 'f1-font-bold',\n 'f1-mt-3',\n title?.style?.[ConfigCSSKeys.title],\n )}\n >\n {title?.label}\n </div>\n <div\n className={clsx(\n 'f1-mt-2',\n 'f1-text-ter',\n title?.style?.[ConfigCSSKeys.subtitle],\n )}\n >\n {descriptions?.map(renderDescription)}\n </div>\n </div>\n </div>\n );\n};\n\nexport default Progress;\n","import type {\n FormField,\n FormPageScreen,\n IFormPageConfig,\n InputConfigType,\n} from '../appConfig.type';\nimport type { ReviewDocumentKeys } from '../model/review.model';\n\nexport const useFormMapper = () => {\n const getFormConfig = <PType extends FormPageScreen = FormPageScreen>(data: {\n config: IFormPageConfig<PType>;\n idType: string;\n country: string;\n region: string;\n }) => {\n const { config, idType, country, region } = data;\n const documentConfig = (\n config?.['documents'] as IFormPageConfig<\n 'REVIEW',\n ReviewDocumentKeys\n >['documents']\n )?.find((item) => item.type === idType)?.countries;\n const documentFields = (\n documentConfig?.[country]?.[region] ??\n documentConfig?.[country]?.default ??\n documentConfig?.default?.default ?? { fields: [] }\n ).fields as FormField<InputConfigType>[];\n\n const personalConfig = (\n config?.['personal'] as IFormPageConfig<\n 'REVIEW',\n ReviewDocumentKeys\n >['personal']\n )?.countries;\n const personalFields = (\n personalConfig?.[country]?.[region] ??\n personalConfig?.[country]?.default ??\n personalConfig?.default?.default ?? { fields: [] }\n ).fields as FormField<InputConfigType>[];\n\n return { documentFields, personalFields };\n };\n return { getFormConfig };\n};\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport clsx from \"clsx\";\r\nimport React, { forwardRef, useState } from \"react\";\r\n\r\nimport { icons } from \"../../../constants/icons\";\r\nimport { FrankieButton } from \"../FrankieButton\";\r\n\r\nimport type { IFrankieTextFieldProps } from \"../../../types/form\";\r\nimport type { FormEvent } from \"react\";\r\n\r\nexport const FrankieTextField = forwardRef(function FrankieTextField(\r\n {\r\n className = \"\",\r\n inputClassName = \"\",\r\n counter,\r\n disabled = false,\r\n error = false,\r\n errorText = \"\",\r\n label,\r\n name,\r\n placeholder = \"\",\r\n readOnly = false,\r\n helperText = \"\",\r\n tag,\r\n badge,\r\n closeButton,\r\n isSearchIcon,\r\n testId = {\r\n container: \"\",\r\n input: \"\",\r\n label: \"\",\r\n tag: \"\",\r\n showPassword: \"\",\r\n helperText: \"\",\r\n counter: \"\",\r\n closeCta: \"\",\r\n },\r\n type = \"text\",\r\n value,\r\n onBlur,\r\n onChange,\r\n onClick,\r\n onFocus,\r\n onKeyDown,\r\n min,\r\n max,\r\n minLength,\r\n maxLength,\r\n pattern,\r\n required,\r\n autoComplete,\r\n configYear,\r\n hideError = false,\r\n }: IFrankieTextFieldProps,\r\n ref: React.ForwardedRef<HTMLInputElement>,\r\n): JSX.Element {\r\n const [inputLength, setInputLength] = useState(0);\r\n const [passwordVisibility, setPasswordVisibility] = useState(false);\r\n\r\n const handleInput = (e: FormEvent<HTMLInputElement>) => {\r\n setInputLength(e.currentTarget?.value?.length);\r\n };\r\n\r\n return (\r\n <div\r\n className={clsx(\r\n \"f1-w-full\",\r\n `${!errorText?.length && error && \"f1-mb-3\"}`,\r\n className,\r\n )}\r\n data-testid={testId?.container}\r\n >\r\n {(label || tag) && (\r\n <div\r\n className={clsx(\r\n \"f1-w-full\",\r\n \"f1-h-5\",\r\n \"f1-bg-white\",\r\n \"f1-border\",\r\n \"f1-rounded-sm\",\r\n \"f1-py-2\",\r\n \"f1-focus:outline-none\",\r\n )}\r\n >\r\n <div className={clsx(\"grow\")}>\r\n <label\r\n htmlFor={name}\r\n className={clsx( \r\n \"f1-text-sm\",\r\n \"f1-font-medium\",\r\n \"f1-w-full\", \r\n 'f1-text-[#1F2A37]',\r\n )}\r\n data-testid={testId?.label}\r\n >\r\n {label}\r\n </label>\r\n </div>\r\n <div\r\n className={clsx(\r\n \"f1-flex\",\r\n \"f1-flex-initial\",\r\n \"f1-grow\",\r\n \"f1-justify-end\",\r\n 'f1-text-[#1F2A37]',\r\n )}\r\n data-testid={testId?.tag}\r\n >\r\n {tag}\r\n </div>\r\n </div>\r\n )}\r\n <div className={clsx(`\"f1-relative\"`, \"frankie-text-field-container\")}>\r\n <input\r\n id={name}\r\n name={name}\r\n aria-label={name}\r\n ref={ref}\r\n className={clsx(\r\n \"f1-w-full\",\r\n \"f1-rounded-sm\",\r\n \"f1-px-[16px]\",\r\n \"f1-py-[14px]\",\r\n \"f1-focus:outline-none\",\r\n \"f1-box-border\", \r\n \"f1-border\",\r\n \"f1-border-solid\",\r\n inputClassName,\r\n 'f1-text-md',\r\n 'f1-font-normal',\r\n 'f1-text-[#374151]',\r\n {\r\n \"f1-border-tertiary-red-500\": error,\r\n 'f1-placeholder-tertiary-red-600': error,\r\n '!f1-text-tertiary-red-600':error,\r\n \"f1-bg-[#FDF2F2]\": error,\r\n \"f1-border-tertiary-grey-300\": !error,\r\n },\r\n )}\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n type={passwordVisibility ? \"text\" : type}\r\n onInput={handleInput}\r\n value={value ?? \"\"}\r\n data-testid={testId.input}\r\n onBlur={onBlur}\r\n onChange={onChange}\r\n onClick={onClick}\r\n onFocus={onFocus}\r\n min={min}\r\n max={max}\r\n minLength={minLength}\r\n maxLength={maxLength}\r\n pattern={pattern}\r\n required={required}\r\n autoComplete={autoComplete}\r\n onKeyDown={onKeyDown}\r\n />\r\n {type === \"search\" && isSearchIcon && (\r\n <img\r\n onClick={onClick}\r\n className={clsx(\"f1-absolute\", \"f1-top-[10px]\", \"f1-cursor-text\")}\r\n src={icons.magnify}\r\n />\r\n )}\r\n {!!badge && badge}\r\n {type === \"password\" && (\r\n <div className={clsx(\"f1-absolute\", \"f1-top-0\", \"f1-right-2\")}>\r\n <FrankieButton\r\n intent=\"subtle\"\r\n size=\"md\"\r\n testId={{ button: testId?.showPassword }}\r\n className={clsx(\"f1-text-tertiary-grey-500\")}\r\n onClick={() => setPasswordVisibility(!passwordVisibility)}\r\n singleIcon={{\r\n size: \"xs\",\r\n name: passwordVisibility ? \"mdiEyeOffOutline\" : \"mdiEyeOutline\",\r\n }}\r\n />\r\n </div>\r\n )}\r\n\r\n {closeButton && (\r\n <FrankieButton\r\n noStyles\r\n testId={{ button: testId.closeCta }}\r\n className={clsx(\"f1-text-tertiary-grey-500\")}\r\n onClick={closeButton.onClick}\r\n singleIcon={{\r\n size: \"xs\",\r\n name: \"mdiClose\",\r\n }}\r\n />\r\n )}\r\n </div>\r\n <div\r\n className={clsx(\r\n \"f1-flex\",\r\n `${configYear && \"f1-absolute , f1-left-0\"}`,\r\n )}\r\n >\r\n {(helperText || errorText) && !hideError && (\r\n <div>\r\n <div\r\n className={clsx(\r\n \"f1-flex\",\r\n \"f1-flex-col\",\r\n \"f1-gap-1\",\r\n \"f1-mt-1\",\r\n \"f1-text-[14px]\",\r\n )}\r\n >\r\n <div\r\n data-testid={testId.helperText}\r\n className={clsx(\"f1-flex\", \"f1-text-[red]\")}\r\n >\r\n {error && errorText?.length > 1\r\n? (\r\n <img\r\n className={clsx(\"f1-mr-1\")}\r\n src={icons.alertCircleOutline}\r\n />\r\n )\r\n: (\r\n \"\"\r\n )}\r\n {error && errorText}\r\n </div>\r\n <div className={clsx(\"f1-text-tertiary-grey-500\")}>\r\n {helperText}\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n <div data-testid={testId.counter}>\r\n {typeof counter === \"number\" && counter > 0\r\n? (\r\n <div\r\n className={clsx(inputLength > counter ? \"f1-text-red-700\" : \"\")}\r\n >\r\n {inputLength}/{counter}\r\n </div>\r\n )\r\n: (\r\n counter\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n});\r\n","import { Controller } from \"react-hook-form\";\r\n\r\nimport { FrankieTextField } from \"../TextField/TextSelectField\";\r\n\r\nimport type { IFrankieTextFieldProps } from \"../../../types/form\";\r\nimport type { ChangeEvent } from \"react\";\r\nimport type {\r\n ControllerProps,\r\n ControllerRenderProps,\r\n FieldValues,\r\n Path,\r\n PathValue,\r\n ValidateResult,\r\n} from \"react-hook-form\";\r\n\r\ntype FieldProperties = keyof ControllerRenderProps;\r\n\r\ntype ValidateFunction<TFieldValues extends FieldValues> = (\r\n value: PathValue<TFieldValues, Path<TFieldValues>>\r\n) => boolean | ValidateResult;\r\n\r\nexport type InputProps<TFieldValues extends FieldValues> = Omit<\r\n IFrankieTextFieldProps,\r\n FieldProperties | \"error\"\r\n \r\n> &\r\n Omit<ControllerProps<TFieldValues>, \"render\" | \"readOnly\"> &{\r\n onChange?: (event: ChangeEvent<HTMLInputElement>) => void;\r\n }\r\n\r\nconst Input = <TFieldValues extends FieldValues>({\r\n name,\r\n control,\r\n rules,\r\n label,\r\n defaultValue,\r\n disabled,\r\n shouldUnregister,\r\n helperText,\r\n min,\r\n type,\r\n onChange,\r\n ...textProps\r\n}: InputProps<TFieldValues>) => {\r\n return (\r\n <Controller\r\n control={control}\r\n name={name}\r\n render={({ field, fieldState: { error } }) => {\r\n const validateResult =\r\n rules &&\r\n rules?.validate &&\r\n typeof rules?.validate === \"function\" &&\r\n min !== undefined &&\r\n (rules?.validate as ValidateFunction<TFieldValues>)(field?.value);\r\n\r\n const isValid =\r\n typeof validateResult === \"boolean\" ? validateResult : false;\r\n\r\n return (\r\n \r\n \r\n <FrankieTextField\r\n type={type}\r\n label={label}\r\n readOnly={isValid}\r\n errorText={error?.message}\r\n error={!!error?.message}\r\n helperText={helperText} \r\n {...field}\r\n {...(textProps ?? {})}\r\n onChange={(e)=>{\r\n field.onChange(e);\r\n onChange&&onChange(e);\r\n }}\r\n /> \r\n );\r\n }}\r\n rules={rules}\r\n defaultValue={defaultValue}\r\n disabled={disabled}\r\n shouldUnregister={shouldUnregister}\r\n />\r\n );\r\n};\r\n\r\nexport default Input;\r\n","import type { FieldErrors } from 'react-hook-form';\r\n\r\n\r\nexport const getError = (name: string, errors: FieldErrors) => {\r\n if (!Object.keys(errors).length) return undefined;\r\n\r\n const error = name\r\n .split('.')\r\n .map(item => item.replace('[', '').replace(']', ''))\r\n .reduce(\r\n (prev: object | string | undefined, curr) =>\r\n prev ? prev[curr as keyof typeof prev] : prev,\r\n errors,\r\n ) as string;\r\n\r\n return error;\r\n};\r\n \r\n\r\n/**\r\n * for MM-YYYY date format\r\n */\r\nexport const isDateValid = (value: string) => {\r\n const splitData = value.split('-');\r\n if (splitData.length === 2) {\r\n const month = parseInt(splitData[0], 10);\r\n const year = parseInt(splitData[1], 10);\r\n const isValidDate =\r\n !Number.isNaN(month) &&\r\n !Number.isNaN(year) &&\r\n month >= 1 &&\r\n month <= 12 &&\r\n `${year}`.length === 4;\r\n return isValidDate;\r\n }\r\n return false;\r\n};\r\n","/* eslint-disable check-file/filename-naming-convention */\r\nimport { useRef, useState } from 'react';\r\n\r\nimport { useOnClickOutside } from 'usehooks-ts';\r\nimport { IUseFrankieMenuReturn } from '../types/form';\r\n\r\nexport function useFrankieMenu(): IUseFrankieMenuReturn {\r\n const parentRef = useRef(null);\r\n const [isOpen, setIsOpen] = useState<boolean>(false);\r\n const handleOpen = () => setIsOpen(true);\r\n const handleClose = () => setIsOpen(false);\r\n const handleToggle = () => setIsOpen((prev) => !prev);\r\n\r\n useOnClickOutside(parentRef, handleClose);\r\n\r\n return {\r\n parentRef,\r\n isOpen,\r\n handleOpen,\r\n handleClose,\r\n handleToggle,\r\n };\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\r\nimport clsx from \"clsx\";\r\nimport React, { forwardRef, useEffect, useMemo, useRef, useState } from \"react\";\r\n\r\nimport { icons } from \"../../../constants/icons\";\r\nimport { useFrankieMenu } from \"../../../hooks/menu.hooks\";\r\n\r\nimport type {\r\n FrankieSelectOptions,\r\n IFrankieTextSelectFieldProps,\r\n} from \"../../../types/form\";\r\nexport const FrankieSelectField = forwardRef(function FrankieSelectField<\r\n T extends string | number\r\n>(\r\n {\r\n className = \"\",\r\n inputClassName = \"\",\r\n disabled = false,\r\n error = false,\r\n errorText = \"\",\r\n label,\r\n name,\r\n placeholder = \"\",\r\n supportingText = \"\",\r\n tag,\r\n badge,\r\n options,\r\n testId = {\r\n container: \"\",\r\n input: \"\",\r\n label: \"\",\r\n tag: \"\",\r\n supportingText: \"\",\r\n closeCta: \"\",\r\n },\r\n value,\r\n onBlur,\r\n onChange,\r\n onClick,\r\n onFocus,\r\n autocomplete = false,\r\n clearable = false,\r\n required,\r\n emptyText = \"No record\",\r\n hideError = false,\r\n }: IFrankieTextSelectFieldProps<T>,\r\n ref: React.LegacyRef<HTMLInputElement>,\r\n): JSX.Element {\r\n // To keep track of the selected index\r\n const [selectedIndex, setSelectedIndex] = useState<number | null>(null);\r\n\r\n // To keep track of value input - usually in case of autocomplete\r\n const [filterText, setFilterText] = useState(\"\");\r\n\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n const { parentRef, isOpen, handleOpen, handleToggle, handleClose } =\r\n useFrankieMenu();\r\n\r\n const selectedValueLabel = useMemo(\r\n () => options.find((item) => item.value === value)?.label,\r\n [value, options],\r\n );\r\n\r\n /**\r\n * Final option if autocomplete\r\n * Filtering option when autocomplete is on and filterText should no be equal to already selected value\r\n */\r\n const filteredOptions = useMemo(\r\n () =>\r\n autocomplete && filterText && filterText !== selectedValueLabel\r\n ? options.filter((item) =>\r\n item?.label\r\n ?.toLowerCase()\r\n ?.trim()\r\n ?.startsWith(filterText.toLowerCase().trim()),\r\n )\r\n : options,\r\n [options, filterText, autocomplete, selectedValueLabel],\r\n );\r\n\r\n /**\r\n * On option click\r\n */\r\n const handleSelectOption = (option: FrankieSelectOptions<T>) => () => {\r\n const { value, label } = option;\r\n onChange({ target: { value } });\r\n setFilterText(label);\r\n handleClose();\r\n };\r\n\r\n /**\r\n * On Input change\r\n */\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n setFilterText(e.target.value);\r\n if (!isOpen) handleOpen();\r\n };\r\n\r\n useEffect(() => {\r\n const currentIndex = filteredOptions.findIndex(\r\n (option) => option.value === value,\r\n );\r\n\r\n if (isOpen) {\r\n setSelectedIndex(currentIndex);\r\n } else {\r\n setFilterText(\r\n currentIndex === -1 ? \"\" : filteredOptions[currentIndex].label,\r\n );\r\n }\r\n }, [isOpen, filteredOptions, value]);\r\n\r\n const handleOptionToggle = (\r\n e: React.MouseEvent<HTMLInputElement, MouseEvent>,\r\n ) => {\r\n if (onClick) onClick(e);\r\n if (disabled) return;\r\n handleToggle();\r\n };\r\n\r\n /**\r\n * To handle clearing of data from cross button\r\n */\r\n const handleClear = () => {\r\n onChange({ target: { value: undefined as unknown as T } });\r\n setFilterText(\"\");\r\n };\r\n\r\n const handleKeyDown = (\r\n e: React.KeyboardEvent<HTMLInputElement | HTMLLIElement>,\r\n ) => {\r\n switch (e.key) {\r\n case \"ArrowUp\":\r\n case \"ArrowDown\":\r\n e.preventDefault();\r\n if (isOpen) {\r\n setSelectedIndex((prevIndex) => {\r\n let newIdx = 0;\r\n if (prevIndex !== null) {\r\n newIdx =\r\n e.key === \"ArrowDown\"\r\n ? Math.min(filteredOptions.length - 1, prevIndex + 1)\r\n : Math.max(0, prevIndex - 1);\r\n }\r\n\r\n const selectedOption = document.querySelector(\r\n `.frankie-select-option-${newIdx}`,\r\n );\r\n\r\n selectedOption?.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"nearest\",\r\n });\r\n\r\n return newIdx;\r\n });\r\n } else handleOpen();\r\n\r\n break;\r\n case \"Enter\":\r\n if (selectedIndex !== null) {\r\n const { value, label } = filteredOptions[selectedIndex];\r\n onChange({ target: { value } });\r\n setFilterText(label);\r\n handleClose();\r\n setSelectedIndex(null);\r\n }\r\n break;\r\n case \"Escape\":\r\n handleClose();\r\n break;\r\n default:\r\n if (!autocomplete) e.preventDefault();\r\n break;\r\n }\r\n };\r\n\r\n /**\r\n * To focus on the input when the when opening from toggle btn\r\n */\r\n\r\n const handleDropdown = () => {\r\n if (!isOpen && inputRef.current) {\r\n inputRef.current.focus();\r\n }\r\n handleToggle();\r\n };\r\n\r\n return (\r\n <div\r\n className={clsx(\"f1-w-full\", className, {\r\n \"f1-pointer-events-none\": disabled,\r\n })}\r\n data-testid={testId.container}\r\n ref={parentRef}\r\n >\r\n {(label || tag) && (\r\n <div className={clsx(\"f1-mb-2\")}>\r\n <div className=\"grow\">\r\n <label\r\n htmlFor={name}\r\n className={clsx( \r\n \"f1-text-sm\",\r\n \"f1-font-medium\", \r\n 'f1-text-[#1F2A37]',\r\n )}\r\n data-testid={testId.label}\r\n >\r\n {label}\r\n </label>\r\n </div>\r\n <div\r\n className={clsx(\r\n \"f1-flex\",\r\n \"f1-flex-initial\",\r\n \"f1-grow\",\r\n \"f1-justify-end\",\r\n \r\n 'f1-text-[#1F2A37]',\r\n )}\r\n data-testid={testId.tag}\r\n >\r\n {tag}\r\n </div>\r\n </div>\r\n )}\r\n <div className={clsx(\"f1-relative\", \"frankie-select-field-container\")}>\r\n <input\r\n id={name}\r\n name={name}\r\n aria-label={name}\r\n ref={(input) => {\r\n (inputRef as any).current = input;\r\n if (typeof ref === \"function\") {\r\n ref(input);\r\n } else if (ref) {\r\n (ref as any).current = input;\r\n }\r\n }}\r\n className={clsx(\r\n \"f1-w-full\",\r\n \"f1-px-[16px]\",\r\n \"f1-py-[14px]\",\r\n \"border-slate-300\",\r\n \"rounded-xl\",\r\n \"f1-border\",\r\n \"f1-border-solid\",\r\n \"f1-rounded-sm\",\r\n \"f1-pl-4\",\r\n \"f1-box-border\",\r\n inputClassName,\r\n 'f1-text-md',\r\n 'f1-font-normal', \r\n 'f1-text-[#374151]', \r\n {\r\n \"f1-border-tertiary-red-500\": error,\r\n \"f1-placeholder-tertiary-red-600\": error,\r\n \"!f1-text-tertiary-red-600\": error,\r\n \"f1-bg-[#FDF2F2]\": error,\r\n \"f1-border-tertiary-grey-300\": !error,\r\n },\r\n )}\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n type=\"text\"\r\n value={filterText}\r\n data-testid={testId.input}\r\n onBlur={onBlur}\r\n onChange={handleChange}\r\n onClick={handleOptionToggle}\r\n onFocus={onFocus}\r\n required={required}\r\n onKeyDown={handleKeyDown}\r\n autoComplete=\"off\"\r\n />\r\n\r\n <div className=\"f1-relative \">\r\n {isOpen && (\r\n <ul\r\n className={clsx(\r\n \"frankie-select-options\",\r\n \"f1-max-h-64\",\r\n \"f1-overflow-scroll\",\r\n \"f1-absolute\",\r\n \"f1-z-10\",\r\n \"f1-bg-mono-white\",\r\n \"f1-shadow-md\",\r\n \"f1-rounded-sm\",\r\n \"f1-p-0\",\r\n \"f1-w-full\",\r\n \"f1-scrollbar-sm\",\r\n \"f1-overflow-x-hidden\",\r\n \"f1-mt-0\",\r\n )}\r\n >\r\n {filteredOptions.length > 0\r\n? (\r\n filteredOptions.map((option, index) => (\r\n <li\r\n role=\"option\"\r\n aria-selected={index === selectedIndex}\r\n key={option.value}\r\n onClick={handleSelectOption(option)}\r\n onKeyDown={handleKeyDown}\r\n className={clsx(\r\n \"f1-list-none\",\r\n \"f1-p-4\",\r\n \"f1-hover:bg-grey-300\",\r\n \"f1-text-sm\",\r\n \"text-gray-800\",\r\n \"cursor-pointer\",\r\n \"f1-m-0\",\r\n \"focus:f1-bg-primary-50\",\r\n { \"f1-bg-primary-50\": index === selectedIndex },\r\n {\r\n \"hover:f1-bg-tertiary-grey-100\":\r\n index !== selectedIndex,\r\n },\r\n `frankie-select-option-${index}`,\r\n )}\r\n data-testid={option.testId}\r\n >\r\n {option.label}\r\n </li>\r\n ))\r\n )\r\n: (\r\n <li className={clsx(\"f1-text-sm\", \"f1-py-2\", \"f1-px-4\")}>\r\n {emptyText}\r\n </li>\r\n )}\r\n </ul>\r\n )}\r\n </div>\r\n\r\n {!(clearable && !!filterText) && (\r\n <img\r\n onClick={handleDropdown}\r\n className={clsx(\r\n \"f1-absolute\",\r\n \"f1-bottom-[13px]\",\r\n \"f1-right-3\",\r\n \"text-tertiary-grey-500\",\r\n \"f1-cursor-pointer\",\r\n \"f1-fill-tertiary-red-600\",\r\n )}\r\n src={error ? icons?.chevronDownError : icons.chevronDown}\r\n />\r\n )}\r\n\r\n {!!badge && badge}\r\n\r\n {clearable && !!filterText && (\r\n <img\r\n data-testid={testId.closeCta}\r\n onClick={handleClear}\r\n className={clsx(\r\n \"f1-absolute\",\r\n \"f1-bottom-[13px]\",\r\n \"f1-right-3\",\r\n \"f1-cursor-pointer\",\r\n )}\r\n src={error ? icons.closeError : icons.close}\r\n />\r\n )}\r\n </div>\r\n <div className={clsx(\"f1-flex\")}>\r\n {(supportingText || errorText) && !hideError && (\r\n <div\r\n className={clsx(\r\n \"f1-grow\",\r\n \"f1-text-mono-70\",\r\n \"f1-pt-1\",\r\n \"f1-text-sm\",\r\n )}\r\n >\r\n <div\r\n className={clsx(\"f1-flex\", \"f1-flex-initial\", \"f1-items-center\", {\r\n \"f1-text-[red]\": error,\r\n })}\r\n >\r\n <div\r\n data-testid={testId.supportingText}\r\n className={clsx(\"f1-flex\", \"f1-text-[red]\", \"f1-text-[14px]\")}\r\n >\r\n {error && (\r\n <img\r\n className={clsx(\"f1-mr-1\")}\r\n src={icons.alertCircleOutline}\r\n />\r\n )}\r\n {error ? errorText : supportingText}\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n});\r\n","import { Controller } from \"react-hook-form\";\r\n\r\nimport { getError } from \"../../../model/error.model\";\r\nimport { FrankieSelectField } from \"../SelectField/SelectField\";\r\n\r\nimport type { IFrankieTextSelectFieldProps } from \"../../../types/form\";\r\nimport type {\r\n ControllerRenderProps,\r\n ControllerProps,\r\n FieldValues,\r\n} from \"react-hook-form\";\r\n\r\nexport type SelectProps<\r\n TFormValues extends FieldValues,\r\n TOption extends string | number\r\n> = Omit<IFrankieTextSelectFieldProps<TOption>, keyof ControllerRenderProps> &\r\n Omit<ControllerProps<TFormValues>, \"render\"> & {\r\n onChange?: (event: { target: { value: string | number } }) => void;\r\n };\r\n\r\nexport function SelectFormField<\r\n TFormValues extends FieldValues,\r\n TOption extends string | number\r\n>({\r\n name,\r\n control,\r\n defaultValue,\r\n options,\r\n rules,\r\n shouldUnregister,\r\n onChange,\r\n ...selectProps\r\n}: SelectProps<TFormValues, TOption>) {\r\n return (\r\n <Controller\r\n render={({ field, formState: { errors } }) => (\r\n <FrankieSelectField\r\n errorText={errors[name]?.message as string}\r\n options={options}\r\n {...selectProps}\r\n {...field}\r\n error={!!getError(name, errors)}\r\n onChange={(e) => {\r\n field.onChange(e);\r\n onChange && onChange(e);\r\n }}\r\n />\r\n )}\r\n control={control}\r\n name={name}\r\n defaultValue={defaultValue}\r\n rules={rules}\r\n shouldUnregister={shouldUnregister}\r\n />\r\n );\r\n}\r\n","// eslint-disable-next-line check-file/filename-naming-convention\nimport type { FormValues } from \"../types/form\";\nimport type { ValidationRule } from \"react-hook-form\";\n\nexport type customValidator = (\n value: number,\n data: string | number | Date | FormValues\n) => boolean;\n\nexport const ValidationRulesForForm = {\n required: {\n value: true,\n message: \"This field is required\",\n },\n minLength: {\n value: 6,\n message: \"min value is 6\",\n },\n maxLength: {\n value: 10,\n message: \"Max value is 10\",\n },\n validateLength: (value, data) => {\n return data?.toString().length === value;\n },\n onlyAlphabets: {\n value: `^[a-zA-Z]+(\\\\s+[a-zA-Z]+)*$`,\n message: 'Please enter alphabetic characters only',\n },\n onlyNumbers: {\n value: `^[0-9]+$`,\n message: \"Please enter numeric values only\",\n },\n alphaNumeric: {\n value: `^[a-zA-Z0-9]+$`,\n message: `Please enter alphanumeric values only`,\n },\n} satisfies Record<string, ValidationRule | customValidator>;\n \nexport enum MonthNameLength {\n LONG = \"long\",\n SHORT = \"short\",\n}\n\ntype monthGeneratorType = {\n calenderType?: CalendarType;\n localeType?: LocaleType;\n monthNameLength?: MonthNameLength;\n};\n\ntype ReturnType = {\n label: string;\n value: string;\n};\n\nexport enum CalendarType {\n Gregorian = \"gregory\",\n Buddhist = \"buddhist\",\n Chinese = \"chinese\",\n Coptic = \"coptic\",\n EthiopicAmeteAlem = \"ethioaa\",\n Ethiopic = \"ethiopic\",\n Hebrew = \"hebrew\",\n Islamic = \"islamic\",\n IslamicUmalqura = \"islamic-umalqura\",\n Persian = \"persian\",\n BikramSambat = \"bikram-sambat\",\n}\n\nexport enum LocaleType {\n English = \"en\",\n Spanish = \"es\",\n French = \"fr\",\n German = \"de\",\n Italian = \"it\",\n Japanese = \"ja\",\n Korean = \"ko\",\n Chinese = \"zh\",\n Arabic = \"ar\",\n Russian = \"ru\",\n}\n\ntype GetMaxDaysInMonthProp = {\n month: number;\n year: number;\n calendarType: CalendarType;\n};\n\ntype DateTimeFormatOptionsWithCalendar = Intl.DateTimeFormatOptions & {\n calendar?: string;\n};\n\nexport function getMaxDaysInMonth({\n month=0,\n year=0,\n calendarType = CalendarType.Gregorian,\n}: GetMaxDaysInMonthProp): number {\n \n month = isNaN(month) ? 0 :month;\n year = isNaN(year) ? 0 :year;\n const options: DateTimeFormatOptionsWithCalendar = {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n };\n\n const lastDayOfMonth = new Date(year, month, 0);\n const formattedDate = new Intl.DateTimeFormat(undefined, {\n ...options,\n calendar: calendarType,\n })\n .formatToParts(lastDayOfMonth)\n .find((part) => part.type === \"day\").value;\n return parseInt(formattedDate, 10);\n}\n\n\nexport const monthGenerator = ({\n calenderType = CalendarType.Gregorian,\n localeType = LocaleType.English,\n monthNameLength = MonthNameLength.SHORT,\n}: monthGeneratorType): ReturnType[] => {\n const months = [];\n let value = 1;\n const totalMonths =\n calenderType === CalendarType.Islamic ||\n calenderType === CalendarType.IslamicUmalqura\n ? 13\n : 12;\n for (let month = 0; month < totalMonths; month++) {\n const date = new Date(2000, month, 1);\n\n const monthName = new Intl.DateTimeFormat(localeType, {\n month: monthNameLength,\n calendar: calenderType,\n })\n .formatToParts(date)\n .find((part) => part.type === \"month\").value;\n months.push({ label: monthName, value: +value });\n value++;\n }\n return months;\n};","import clsx from \"clsx\";\r\nimport React, { useEffect } from \"react\";\r\nimport { useForm, type FieldValues, Controller } from \"react-hook-form\";\r\n\r\nimport {\r\n MonthNameLength,\r\n ValidationRulesForForm,\r\n getMaxDaysInMonth,\r\n monthGenerator,\r\n} from \"../../../constants/form.const\";\r\nimport { icons } from \"../../../constants/icons\";\r\nimport Input from \"../../base/SharedInput/Input\";\r\nimport { SelectFormField } from \"../../base/SharedSelect/Select\";\r\n\r\nimport type { LocaleType, CalendarType } from \"../../../constants/form.const\";\r\nimport type { Control } from \"react-hook-form\";\r\n\r\ntype CommonComponentProps = {\r\n label: string;\r\n isExpiry?: boolean;\r\n helperText?: string;\r\n calendarConfig?: CalendarConfig;\r\n name?: string;\r\n control?: Control<FieldValues>;\r\n testId?: {\r\n container?: string;\r\n error?: string;\r\n };\r\n};\r\n\r\nexport type CalendarConfig = {\r\n type: CalendarType;\r\n locale: LocaleType;\r\n day?: {\r\n value?: number;\r\n required?: boolean;\r\n };\r\n month?: {\r\n value?: number;\r\n required?: boolean;\r\n };\r\n year?: {\r\n value?: number;\r\n required: boolean;\r\n };\r\n age?: {\r\n max?: number;\r\n min?: number;\r\n message: string;\r\n };\r\n message?: string;\r\n};\r\n\r\nexport type StandardDateType = {\r\n dd?: string;\r\n mm: number;\r\n yyyy: string;\r\n};\r\n\r\nconst StandardDate: React.FC<CommonComponentProps> = ({\r\n label,\r\n isExpiry = false,\r\n helperText,\r\n calendarConfig,\r\n name,\r\n control,\r\n testId = {\r\n container: \"\",\r\n error: \"\",\r\n },\r\n}) => {\r\n return (\r\n <Controller\r\n control={control}\r\n name={name}\r\n render={({ field, fieldState: { isValidating } }) => {\r\n const standardForm = useForm<StandardDateType>({\r\n defaultValues: { dd: \"\", mm: 0, yyyy: \"\" },\r\n mode: \"onTouched\",\r\n });\r\n const { control: standardController } = standardForm;\r\n const day = standardForm.watch(\"dd\");\r\n const month = +standardForm.watch(\"mm\");\r\n\r\n const year = parseInt(standardForm.watch(\"yyyy\"));\r\n\r\n const getErrors = () => {\r\n return (\r\n standardForm?.formState?.errors?.yyyy?.message ||\r\n standardForm?.formState?.errors?.dd?.message ||\r\n standardForm?.formState?.errors?.mm?.message\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n const fieldMonth = field.value\r\n ?.split(\"-\")\r\n ?.[`${isExpiry ? 0 : 1}`]?.replace(\"null\", \"\");\r\n const date = (\r\n field.value?.split(\"-\")?.[0] ?? calendarConfig?.day?.value\r\n )?.replace(\"null\", \"\");\r\n const year = (\r\n field.value?.split(\"-\")?.[`${isExpiry ? 1 : 2}`] ??\r\n calendarConfig?.year?.value\r\n )?.replace(\"null\", \"\");\r\n const month = fieldMonth ? +fieldMonth : calendarConfig?.month?.value;\r\n\r\n if (field.value != `${day}-${month}-${year}`) {\r\n standardForm.setValue(\"dd\", date);\r\n standardForm.setValue(\"mm\", month);\r\n standardForm.setValue(\"yyyy\", year);\r\n }\r\n }, [field.value]);\r\n\r\n useEffect(() => {\r\n const message = getErrors();\r\n control.setError(field.name, message ? { message } : null);\r\n }, [getErrors()]);\r\n\r\n useEffect(() => {\r\n if (\r\n isValidating &&\r\n !standardForm.formState.isDirty &&\r\n !standardForm.formState.isValidating\r\n ) {\r\n standardForm.trigger();\r\n }\r\n }, [isValidating, standardForm.formState]);\r\n\r\n const options = monthGenerator({\r\n calenderType: calendarConfig?.type,\r\n localeType: calendarConfig?.locale,\r\n monthNameLength: MonthNameLength.SHORT,\r\n });\r\n\r\n return (\r\n <div>\r\n <div\r\n className={clsx(\"f1-w-full\", \"f1-py-2\")}\r\n data-testid={testId.container}\r\n >\r\n <label\r\n htmlFor={name}\r\n className={clsx(\r\n \"f1-text-tertiary-grey-800\",\r\n \"f1-text-sm\",\r\n \"f1-font-medium\",\r\n \"f1-w-full\",\r\n \"f1-py-2\"\r\n )}\r\n >\r\n {label}\r\n </label>\r\n </div>\r\n <div\r\n className={clsx(\r\n \"f1-w-full\",\r\n \"f1-h-auto\",\r\n \"f1-flex\",\r\n \"f1-justify-between\",\r\n \"f1-gap-3\",\r\n \"f1-relative\",\r\n `${getErrors() && \"f1-mb-2\"}`\r\n )}\r\n >\r\n {!isExpiry && (\r\n <Input\r\n type=\"number\"\r\n control={standardController}\r\n name=\"dd\"\r\n placeholder=\"Day\"\r\n hideError={true}\r\n rules={{\r\n required: {\r\n value: !!calendarConfig?.day?.required,\r\n message:\r\n calendarConfig?.message || \"Please enter valid date\",\r\n },\r\n maxLength: {\r\n value: 2,\r\n message:\r\n calendarConfig?.message || \"Please enter valid date\",\r\n },\r\n pattern: {\r\n value: new RegExp(\r\n ValidationRulesForForm.onlyNumbers.value\r\n ),\r\n message:\r\n calendarConfig?.message || \"Please enter valid date\",\r\n },\r\n validate: (value: string) => {\r\n const maxDays = getMaxDaysInMonth({\r\n month: month,\r\n year: year,\r\n calendarType: calendarConfig?.type,\r\n });\r\n return (\r\n (parseInt(value) > 0 && parseInt(value) <= maxDays) ||\r\n calendarConfig?.message ||\r\n \"Please enter valid date\"\r\n );\r\n },\r\n }}\r\n onChange={(e) =>\r\n field.onChange(\r\n `${e.target.value || \"\"}-${month || \"\"}-${year || \"\"}`\r\n )\r\n }\r\n />\r\n )}\r\n\r\n <SelectFormField\r\n control={standardController}\r\n name=\"mm\"\r\n options={options}\r\n rules={{\r\n required: {\r\n value: calendarConfig?.month?.required,\r\n message:\r\n calendarConfig?.message ||\r\n \"Please enter your date of birth\",\r\n },\r\n }}\r\n placeholder=\"Month\"\r\n emptyText=\"No record found\"\r\n hideError={true}\r\n onChange={(e) =>\r\n field.onChange(\r\n `${day || \"\"}-${e.target.value || \"\"}-${year || \"\"}`\r\n )\r\n }\r\n autocomplete\r\n />\r\n\r\n <Input\r\n type=\"number\"\r\n control={standardController}\r\n placeholder=\"Year\"\r\n hideError={true}\r\n name=\"yyyy\"\r\n // inputClassName={clsx(\"f1-mt-9\")}\r\n rules={{\r\n required: {\r\n value: !!calendarConfig?.year?.required,\r\n message: calendarConfig?.message || \"Year is required\",\r\n },\r\n minLength: {\r\n value: 4,\r\n message: calendarConfig?.message || \"Invalid Year\",\r\n },\r\n maxLength: {\r\n value: 4,\r\n message: calendarConfig?.message || \"Invalid Year\",\r\n },\r\n\r\n pattern: {\r\n value: new RegExp(ValidationRulesForForm.onlyNumbers.value),\r\n message:\r\n calendarConfig?.message || \"only numbers are allowed\",\r\n },\r\n\r\n validate: (value) => {\r\n const inputYear = +value;\r\n const min = calendarConfig?.age?.min;\r\n const max = calendarConfig?.age?.max;\r\n const currentYear = new Date().getFullYear();\r\n\r\n const isValidAge = () => {\r\n if (\r\n currentYear < inputYear &&\r\n inputYear - currentYear > max\r\n ) {\r\n return true;\r\n } else if (\r\n currentYear > inputYear &&\r\n currentYear - inputYear > min\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n return (\r\n !isValidAge() ||\r\n isExpiry ||\r\n (calendarConfig?.message ?? \"Invalid Age\")\r\n );\r\n },\r\n }}\r\n onChange={(e) =>\r\n field.onChange(\r\n `${day || \"\"}-${month || \"\"}-${e.target.value || \"\"}`,\r\n )\r\n }\r\n />\r\n </div>\r\n\r\n {(helperText || getErrors()) && (\r\n <div>\r\n <div\r\n data-testid={testId.error}\r\n className={clsx(\r\n \"f1-flex\",\r\n \"f1-flex-col\",\r\n \"f1-gap-1\",\r\n \"f1-mt-[-4px]\",\r\n \"f1-text-[14px]\"\r\n )}\r\n >\r\n <div className={clsx(\"f1-flex\", \"f1-text-[red]\")}>\r\n {getErrors() && (\r\n <img\r\n className={clsx(\"f1-mr-1\")}\r\n src={icons.alertCircleOutline}\r\n />\r\n )}\r\n\r\n {(getErrors() &&\r\n standardForm?.formState?.errors?.yyyy?.message) ||\r\n standardForm?.formState?.errors?.dd?.message ||\r\n standardForm?.formState?.errors?.mm?.message}\r\n </div>\r\n <div className={clsx(\"f1-text-tertiary-grey-500\")}>\r\n {helperText}\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default StandardDate;\r\n","import clsx from \"clsx\";\n\nimport { icons } from \"../../../constants/icons\";\n\nimport type { FrankieSelectOptions } from \"../../../types/form\";\n\nexport type FrankieActionFieldProps<AType> = {\n label: string;\n options: FrankieSelectOptions<boolean>[];\n onChange?:(value:boolean)=>void;\n helperText?: string; \n error?:null | string; \n currentValue?:AType;\n};\n\n\nconst FrankieActionField = <AType extends string | number | boolean>({\n label,\n options=[{label:\"Yes\",value:true},{label:\"No\",value:false}],\n onChange,\n error,\n helperText,\n currentValue,\n}: FrankieActionFieldProps<AType>) => {\n return (\n <div className={clsx(\"f1-w-full\")}>\n {label && (\n <div\n className={clsx(\n \"f1-w-full\",\n \"f1-h-5\",\n \"f1-bg-white\",\n \"f1-border\",\n \"f1-rounded-sm\",\n \"f1-py-2\",\n \"f1-focus:outline-none\",\n \"f1-mb-1\",\n )}\n >\n <div className={clsx(\"grow\")}>\n <label\n className={clsx(\n \"f1-text-tertiary-grey-800\",\n \"f1-text-sm\",\n \"f1-font-medium\",\n \"f1-capitalize\",\n \"f1-w-full\",\n )}\n >\n {label}\n </label>\n </div>\n </div>\n )}\n\n <div\n className={clsx(\n \"frankie-text-field-container\",\n \"f1-flex\",\n \"f1-justify-between\",\n \"f1-items-center\",\n )}\n >\n {options?.map((option) => (\n <div\n key={option.label}\n tabIndex={0}\n className={clsx(\n \"f1-border\",\n \"f1-border-solid\",\n { \"f1-border-tertiary-grey-300\": !error },\n { \"f1-border-tertiary-red-700\": error },\n \"f1-w-[48%]\",\n \"f1-h-[48px]\",\n \"f1-flex\",\n \"f1-justify-center\",\n \"f1-items-center\",\n \"hover:f1-bg-[#e8f0ff]\",\n \"f1-cursor-pointer\",\n {\"f1-bg-[#e8f0ff]\":option.value === currentValue},\n )}\n onClick={()=> onChange && onChange(option.value)}\n >\n {option.label}\n </div>\n ))}\n </div>\n\n <div className={clsx(\"f1-flex\")}>\n {(helperText || error) && (\n <div>\n <div\n className={clsx(\n \"f1-flex\",\n \"f1-flex-col\",\n \"f1-gap-1\",\n \"f1-mt-1\",\n \"f1-capitalize\",\n \"f1-text-[14px]\",\n )}\n >\n <div className={clsx(\"f1-flex\", \"f1-text-[red]\")}>\n {error\n? (\n <img\n className={clsx(\"f1-mr-1\")}\n src={icons.alertCircleOutline}\n />\n )\n: (\n \"\"\n )}\n {error && error}\n </div>\n {/* <div className={clsx(\"f1-text-tertiary-grey-500\")}>\n {helperText}\n </div> */}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default FrankieActionField;\n","import clsx from 'clsx';\nimport { useMemo } from 'react';\n\nimport Input from '../../base/SharedInput/Input';\nimport { SelectFormField } from '../../base/SharedSelect/Select';\n\nimport type {\n FrankieSelectOptions,\n IFrankieTextFieldProps,\n} from '../../../types/form';\nimport type { Dispatch, SetStateAction } from 'react';\nimport type {\n Control,\n FieldValues,\n Path,\n RegisterOptions,\n} from 'react-hook-form';\n\n\ntype ControlType<MType> = {\n label?: string;\n name: Path<MType>;\n placeholder?: string;\n rules?: RegisterOptions<MType, Path<MType>>;\n options?: FrankieSelectOptions[];\n};\n\nexport type ManualAddressControlName<MType> = {\n unitNumber: ControlType<MType>;\n streetNumber: ControlType<MType>;\n streetName: ControlType<MType>;\n town: ControlType<MType>;\n state: ControlType<MType>;\n postcode: ControlType<MType>;\n};\n\ntype PropsType<MType extends FieldValues> = {\n onActionChange: Dispatch<SetStateAction<boolean>>;\n control: Control<MType>;\n config?: ManualAddressControlName<MType>;\n};\n\nconst ManualAddress = <MType extends FieldValues>({\n onActionChange,\n control,\n config,\n}: PropsType<MType>) => {\n\n const addressFields: (IFrankieTextFieldProps & {\n name: Path<MType>;\n })[] = useMemo(() => ([\n { type: 'text', ...config.unitNumber },\n { type: 'text', ...config.streetNumber },\n { type: 'text', ...config.streetName },\n { type: 'text', ...config.town },\n ]), [config]);\n\n return (\n <div className={clsx('f1-flex', 'f1-flex-col', 'f1-gap-2')}>\n\n {addressFields.map((field) => (\n <div key={field.name} className=\"f1-w-full\">\n <Input control={control} {...field} />\n </div>\n ))}\n\n <div className=\"f1-w-full\">\n <SelectFormField\n autocomplete={true}\n label={config.state?.label}\n placeholder={config.state?.placeholder}\n emptyText=\"No record found\"\n control={control}\n name={config.state.name}\n options={config.state?.options ?? []}\n rules={config.state?.rules}\n />\n </div>\n\n <div className=\"f1-w-full\">\n <Input\n control={control}\n type=\"number\"\n name={config.postcode.name}\n label={config.postcode?.label}\n placeholder={config.postcode?.placeholder}\n rules={config.postcode?.rules}\n />\n </div>\n\n <div className=\"f1-w-full\">\n <p\n className={clsx(\n 'f1-text-[16px]',\n 'f1-text-primary-700',\n 'f1-cursor-pointer',\n 'f1-my-3',\n )}\n onClick={() => onActionChange(false)}\n >\n Use address search\n </p>\n </div>\n </div>\n );\n};\n\nexport default ManualAddress;\n","export enum ADDRESS_INFO_ENUM {\n PREMISE = 'premise',\n FLOOR = 'floor',\n SUBLOCALITY_LEVEL_1 = 'sublocality_level_1',\n ROUTE = 'route',\n STREET_ADDRESS = 'street_address',\n LOCALITY = 'locality',\n ADMINISTRATIVE_AREA_LEVEL_1 = 'administrative_area_level_1',\n COUNTRY = 'country',\n POSTAL_CODE = 'postal_code',\n}\n","import { ADDRESS_INFO_ENUM } from '../constants/address.const';\n\nexport interface AddressDetails {\n address_components: {\n long_name: string;\n short_name: string;\n types: string[];\n }[];\n formatted_address: string;\n geometry: {\n location: { lat: number; lng: number };\n location_type: string;\n viewport: {\n northeast: { lat: number; lng: number };\n southwest: { lat: number; lng: number };\n };\n };\n place_id: string;\n plus_code: {\n compound_code: string;\n global_code: string;\n };\n types: string[];\n description: string;\n}\n\nexport class AddressType {\n buildingName: string;\n city: string;\n country: string;\n floor: string;\n formattedAddress: string;\n placeId: string;\n postalCode: string;\n sector: string;\n state: string;\n street: string;\n\n constructor(result: AddressDetails) {\n const addressComponents = result.address_components;\n const formattedAddress = result.formatted_address;\n const getAddressComponent = (type: string) => {\n const component = addressComponents.find((c) => c.types.includes(type));\n return component ? component.long_name : '';\n };\n\n Object.assign(this, {\n placeId: result.place_id,\n formattedAddress: formattedAddress || '',\n buildingName: getAddressComponent(ADDRESS_INFO_ENUM.PREMISE),\n floor: getAddressComponent(ADDRESS_INFO_ENUM.FLOOR),\n sector: getAddressComponent(ADDRESS_INFO_ENUM.SUBLOCALITY_LEVEL_1),\n street:\n getAddressComponent(ADDRESS_INFO_ENUM.ROUTE) ||\n getAddressComponent(ADDRESS_INFO_ENUM.STREET_ADDRESS),\n city: getAddressComponent(ADDRESS_INFO_ENUM.LOCALITY),\n state: getAddressComponent(ADDRESS_INFO_ENUM.ADMINISTRATIVE_AREA_LEVEL_1),\n country: getAddressComponent(ADDRESS_INFO_ENUM.COUNTRY),\n postalCode: getAddressComponent(ADDRESS_INFO_ENUM.POSTAL_CODE),\n });\n }\n}\n","// eslint-disable-next-line check-file/filename-naming-convention\nimport { debounce } from 'lodash';\nimport { useContext } from 'react';\n\nimport { loadAsyncAsset } from '@module/common';\nimport { EventContext } from '@module/form/vendors/react/hooks/useEventContext';\n\nimport { AddressType } from '../model/address.type';\n\nimport type { AddressDetails } from '../model/address.type';\nimport type { FrankieSelectOptions } from '../types/form';\nimport type { Dispatch, SetStateAction } from 'react';\n\ndeclare let google;\n\nexport type AddressList = AddressType & AddressDetails & FrankieSelectOptions;\n\nexport const useAddressSearch = () => {\n const { googleApiKey } = useContext(EventContext);\n\n const getAddressList = debounce(\n async (\n text: string | number,\n setAddressOptions: Dispatch<SetStateAction<AddressList[]>>,\n country: 'AU' | 'IND' | 'NZ' = 'AU',\n ) => {\n await initializeGoogleMaps();\n return new Promise<AddressList[]>((resolve) => {\n let addressList: AddressList[] = [];\n if (text) {\n const placeServiceRequest = {\n input: text,\n componentRestrictions: { country },\n };\n const service = new google.maps.places.AutocompleteService();\n\n service.getPlacePredictions(\n placeServiceRequest,\n (predictions: AddressDetails[], status: string) => {\n if (status == google.maps.places.PlacesServiceStatus.OK) {\n addressList = predictions.map((item) => ({\n ...item,\n ...getFullAddress(item.place_id),\n label: item.description,\n value: item.place_id,\n }));\n }\n setAddressOptions(addressList);\n resolve(addressList);\n },\n );\n } else {\n setAddressOptions(addressList);\n resolve(addressList);\n }\n });\n },\n 500,\n );\n\n const getFullAddress = (placeId: string) => {\n let address: AddressType;\n const geocoder = new google.maps.Geocoder();\n const geocodeRequest = {\n placeId: placeId,\n };\n geocoder.geocode(\n geocodeRequest,\n (results: AddressDetails[], status: unknown) => {\n if (status === google.maps.GeocoderStatus.OK) {\n address = new AddressType(results[0]);\n }\n },\n );\n\n return address;\n };\n\n const isScriptAlreadyIncluded = (src: string) => {\n const scripts = document.getElementsByTagName('script');\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].getAttribute('src') === src) {\n return true;\n }\n }\n\n return false;\n };\n\n const initializeGoogleMaps = async () => {\n const source = `https://maps.googleapis.com/maps/api/js?key=${googleApiKey}&libraries=places`;\n if (!isScriptAlreadyIncluded(source)) {\n await loadAsyncAsset(source, 'script');\n }\n };\n\n return { getAddressList, getFullAddress };\n};\n","import clsx from \"clsx\";\nimport React, { forwardRef, useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { icons } from \"../../../constants/icons\";\nimport { useFrankieMenu } from \"../../../hooks/menu.hooks\";\n\nimport type {\n FrankieSelectOptions,\n IFrankieTextAreaProps,\n} from \"../../../types/form\";\n\nexport const FrankieTextArea = forwardRef(function FrankieSelectField<\n T extends string | number\n>(\n {\n className = \"\",\n inputClassName = \"\",\n disabled = false,\n error = false,\n errorText = \"\",\n label,\n name,\n placeholder = \"\",\n helperText = \"\",\n tag,\n badge,\n options,\n testId = {\n container: \"\",\n input: \"\",\n label: \"\",\n tag: \"\",\n supportingText: \"\",\n closeCta: \"\",\n actionBtn: \" \",\n },\n value,\n onBlur,\n onChange,\n onClick,\n onFocus,\n autocomplete = false,\n clearable = false,\n required,\n onActionChange,\n icon,\n autoSuggestion,\n autoSuggestShowAfter,\n }: IFrankieTextAreaProps<T>,\n ref: React.LegacyRef<HTMLTextAreaElement>,\n): JSX.Element {\n // To keep track of the selected index\n const [selectedIndex, setSelectedIndex] = useState<number | null>(null);\n\n // To keep track of value input - usually in case of autocomplete\n const [filterText, setFilterText] = useState(\"\");\n\n const textAreaRef = useRef<HTMLTextAreaElement>(null);\n\n const { parentRef, isOpen, handleOpen, handleToggle, handleClose } =\n useFrankieMenu();\n\n const selectedValueLabel = useMemo(\n () => options.find((item) => item.value === value)?.label,\n [value, options],\n );\n\n /**\n * Final option if autocomplete\n * Filtering option when autocomplete is on and filterText should no be equal to already selected value\n */\n const filteredOptions = useMemo(\n () =>\n autocomplete && filterText && filterText !== selectedValueLabel\n ? options.filter((item) =>\n item.label\n .toLowerCase()\n .trim()\n .startsWith(filterText.toLowerCase().trim()),\n )\n : options,\n [options, filterText, autocomplete, selectedValueLabel],\n );\n\n /**\n * On option click\n */\n const handleSelectOption = (option: FrankieSelectOptions<T>) => () => {\n const { label } = option;\n onChange({ target: { value: label as T } });\n setFilterText(label);\n handleClose();\n };\n\n /**\n * On Input change\n */\n\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n setFilterText(e.target.value);\n const text = e.target.value;\n onChange({ target: { value: text as T } });\n if (!isOpen) handleOpen();\n };\n\n useEffect(() => {\n const currentIndex = filteredOptions.findIndex(\n (option) => option.value === value,\n );\n\n if (isOpen) {\n setSelectedIndex(currentIndex);\n }\n }, [isOpen, filteredOptions, value]);\n\n const handleOptionToggle = (\n e: React.MouseEvent<HTMLTextAreaElement, MouseEvent>,\n ) => {\n if (onClick) onClick(e);\n if (disabled) return;\n handleToggle();\n };\n\n /**\n * To handle clearing of data from cross button\n */\n const handleClear = () => {\n onChange({ target: { value: '' as T } });\n setFilterText('');\n };\n\n const handleKeyDown = (\n e: React.KeyboardEvent<HTMLTextAreaElement | HTMLLIElement>,\n ) => {\n switch (e.key) {\n case \"ArrowUp\":\n case \"ArrowDown\":\n e.preventDefault();\n if (isOpen) {\n setSelectedIndex((prevIndex) => {\n let newIdx = 0;\n if (prevIndex !== null) {\n newIdx =\n e.key === \"ArrowDown\"\n ? Math.min(filteredOptions.length - 1, prevIndex + 1)\n : Math.max(0, prevIndex - 1);\n }\n\n const selectedOption = document.querySelector(\n `.frankie-select-option-${newIdx}`,\n );\n\n selectedOption?.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n });\n\n return newIdx;\n });\n } else handleOpen();\n\n break;\n case \"Enter\":\n if (selectedIndex !== null && filteredOptions?.[selectedIndex]) {\n const { value, label } = filteredOptions?.[selectedIndex] ?? {};\n onChange({ target: { value } });\n setFilterText(label);\n handleClose();\n setSelectedIndex(null);\n }\n break;\n case \"Escape\":\n handleClose();\n break;\n default:\n if (!autocomplete) e.preventDefault();\n break;\n }\n };\n\n const handleClick = () => {\n onActionChange && onActionChange(true);\n };\n\n function autoResize() {\n if (textAreaRef.current) {\n textAreaRef.current.style.height = \"40px\";\n textAreaRef.current.style.height =\n textAreaRef.current.scrollHeight + \"px\";\n\n const maxHeight = 156;\n\n if (parseInt(textAreaRef.current.style.height) >= maxHeight) {\n textAreaRef.current.style.overflowY = \"scroll\";\n } else {\n textAreaRef.current.style.overflowY = \"hidden\";\n }\n }\n }\n\n useEffect(() => {\n autoResize();\n }, [textAreaRef.current?.value, handleClear]);\n\n return (\n <div\n className={clsx(\n \"f1-w-full\",\n \"f1-mt-2\",\n className,\n disabled ? \"pointer-events-none\" : \"\",\n )}\n data-testid={testId.container}\n ref={parentRef}\n >\n {(label || tag) && (\n <div className={clsx(\"f1-flex\", \"f1-flex-initial\", \"f1-py-2\")}>\n <div className=\"grow\">\n <label\n htmlFor={name}\n className={clsx( \n 'f1-text-sm',\n 'f1-font-medium',\n 'f1-text-[#1F2A37]',\n )}\n data-testid={testId.label}\n >\n {label}\n </label>\n </div>\n <div\n className={clsx(\n 'flex',\n 'flex-initial',\n 'grow',\n 'justify-end', \n 'f1-text-[#1F2A37]',\n )}\n data-testid={testId.tag}\n >\n {tag}\n </div>\n </div>\n )}\n <div className={clsx(\"f1-relative\", \"frankie-select-field-container\")}>\n <textarea\n id={name}\n name={name}\n aria-label={name}\n ref={(textarea) => {\n textAreaRef.current = textarea;\n if (typeof ref === \"function\") {\n ref(textarea);\n } else if (typeof ref === \"object\") {\n Object.assign(ref.current, textarea);\n }\n }}\n className={clsx(\n 'f1-appearance-none',\n 'f1-w-full',\n 'f1-bg-white',\n 'f1-border',\n 'f1-rounded-sm',\n 'f1-px-[16px]',\n 'f1-py-[14px]',\n 'f1-focus:outline-none',\n 'f1-box-border',\n 'f1-border',\n 'f1-border-solid',\n 'f1-pr-10',\n 'f1-max-h-[150px]', \n 'f1-resize-none',\n 'f1-font-proxima-nova', \n inputClassName,\n 'f1-text-md',\n 'f1-font-medium', \n 'f1-text-[#374151]',\n {\n \"f1-border-tertiary-red-500\": error,\n 'f1-placeholder-tertiary-red-600': error,\n '!f1-text-tertiary-red-600':error,\n 'f1-bg-[#FDF2F2]': error,\n 'f1-border-tertiary-grey-300': !error,\n },\n )}\n placeholder={placeholder}\n disabled={disabled}\n value={filterText?.length ? filterText : value ?? ''}\n data-testid={testId.input}\n onBlur={onBlur}\n onChange={handleChange}\n onClick={handleOptionToggle}\n onFocus={onFocus}\n required={required}\n onKeyDown={handleKeyDown}\n autoComplete=\"off\"\n />\n <div className=\"f1-relative\">\n {isOpen &&\n (autoSuggestShowAfter\n ? filterText.length >= autoSuggestShowAfter\n : true) && (\n <ul\n className={clsx(\n \"frankie-select-options\",\n \"f1-p-1\",\n \"f1-absolute\",\n \"f1-z-10\",\n \"f1-bg-mono-white\",\n \"f1-m-0\",\n \"f1-shadow-md\",\n \"f1-rounded-sm\",\n \"f1-top--1\",\n \"f1-w-full\",\n \"f1-box-border\",\n \"f1-max-h-[193px]\",\n \"f1-py-1\",\n \"f1-overflow-y-auto\",\n \"f1-scrollbar-sm\",\n \"f1-overflow-x-hidden\",\n )}\n >\n {(\n autoSuggestion\n ? options?.length > 0\n : filteredOptions.length > 0\n )\n? (\n (autoSuggestion ? options : filteredOptions).map(\n (option, index) => (\n <li\n role=\"option\"\n aria-selected={index === selectedIndex}\n key={option.value}\n onClick={handleSelectOption(option)}\n onKeyDown={handleKeyDown}\n className={clsx(\n \"f1-list-none\",\n \"f1-text-sm\",\n \"f1-text-gray-800\",\n \"f1-py-2\",\n \"f1-px-4\",\n \"f1-cursor-pointer\",\n {\n \"f1-bg-primary-50\": index === selectedIndex,\n \"f1-hover:bg-gray-100\": index !== selectedIndex,\n },\n `frankie-select-option-${index}`,\n )}\n data-testid={option?.testId}\n >\n {option.label}\n </li>\n ),\n )\n )\n: (\n <li\n className={clsx(\n \"f1-text-sm\",\n \"f1-py-2\",\n \"f1-px-4\",\n \"f1-list-none\",\n )}\n >\n {!options.length && \"No Results Available\"}\n </li>\n )}\n\n <li\n className={clsx(\n \"f1-text-[16px]\",\n \"f1-py-2\",\n \"f1-px-4\",\n \"f1-text-[#306ef9]\",\n \"f1-cursor-pointer\",\n \"f1-list-none\",\n )}\n data-testid={testId.actionBtn}\n onClick={handleClick}\n >\n {/* REVIEW POINT: need to pass it as props */}\n Enter address manually\n </li>\n </ul>\n )}\n </div>\n {icon && !(clearable && !!filterText) && (\n <img\n onClick={onClick}\n className={clsx(\n \"f1-absolute\",\n \"f1-top-[25.5%]\",\n \"f1-right-3\",\n \"text-tertiary-grey-500\",\n \"f1-cursor-pointer\",\n )}\n src={error ? icons.magnifyError : icons.magnify}\n />\n )}\n\n {!!badge && badge}\n {clearable && !!filterText && (\n <img\n onClick={handleClear}\n className={clsx(\n \"f1-absolute\",\n \"f1-top-[25.5%]\",\n \"f1-right-3\",\n \"f1-text-tertiary-grey-500\",\n \"f1-cursor-pointer\",\n )}\n data-testid={testId.closeCta}\n src={error ? icons.closeError : icons.close}\n />\n )}\n </div>\n <div className=\"f1-flex\">\n {(helperText || errorText) && (\n <div\n className={clsx(\n \"f1-grow\",\n \"f1-text-mono-70\",\n \"f1-pb-2\",\n \"f1-text-sm\",\n )}\n >\n <div className={clsx(\"f1-flex\", \"f1-flex-col\", \"f1-gap-1\")}>\n <div\n data-testid={testId.supportingText}\n className={clsx(\n \"f1-flex\",\n error ? \"f1-text-[red]\" : \"f1-text-tertiary-grey-500\",\n \"f1-text-[14px]\",\n )}\n >\n {error\n? (\n <img\n className={clsx(\"f1-mr-1\")}\n src={icons.alertCircleOutline}\n alt=\"error\"\n />\n )\n: (\n \"\"\n )}\n {error && errorText}\n </div>\n\n <div className={clsx(\"f1-text-tertiary-grey-500\")}>\n {helperText}\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n );\n});\n","import { Controller } from \"react-hook-form\";\n\nimport { getError } from \"../../../model/error.model\";\nimport { FrankieTextArea } from \"../FrankieTextArea/FrankieTextArea\";\n\nimport type { IFrankieTextAreaProps } from \"../../../types/form\";\nimport type {\n ControllerRenderProps,\n ControllerProps,\n FieldValues,\n Path,\n} from \"react-hook-form\";\n\ntype Props<\n FType extends FieldValues,\n TFormValues extends FieldValues,\n TOption extends string | number\n> = Omit<IFrankieTextAreaProps<TOption>, keyof ControllerRenderProps> &\n Omit<ControllerProps<TFormValues>, \"render\"> & {\n name: Path<FType>;\n onChange?: (data: string | number) => void;\n };\n\nexport const TextArea = <\n FType extends FieldValues,\n TFormValues extends FieldValues,\n TOption extends string | number\n>({\n name,\n control,\n defaultValue,\n options,\n rules,\n isManual,\n shouldUnregister,\n autoSuggestion,\n onChange,\n ...selectProps\n}: Props<FType, TFormValues, TOption>) => {\n return (\n <Controller\n render={({ field, formState: { errors } }) => {\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n onChange && onChange(e.target.value);\n field.onChange(e.target.value);\n };\n\n return (\n <FrankieTextArea\n options={options}\n error={isManual ? false : !!getError(name, errors)}\n autoSuggestion={autoSuggestion}\n {...selectProps}\n {...field}\n onChange={handleChange}\n />\n );\n }}\n control={control}\n name={name}\n defaultValue={defaultValue}\n rules={rules}\n shouldUnregister={shouldUnregister}\n />\n );\n};\n","import { useState, type Dispatch, type SetStateAction } from \"react\";\n\nimport { ValidationRulesForForm } from \"../../../constants/form.const\";\nimport { useAddressSearch } from \"../../../hooks/useAddressSearch\";\nimport { TextArea } from \"../../base/SharedTextArea/TextArea\";\n\nimport type { AddressList } from \"../../../hooks/useAddressSearch\";\nimport type { Control, FieldValues, Path } from \"react-hook-form\";\n\ntype PropsType<SType extends FieldValues> = {\n isManual: boolean;\n onActionChange: Dispatch<SetStateAction<boolean>>;\n autoSuggestShowAfter?: number;\n autoSuggestion?: boolean;\n control: Control<SType>;\n name: Path<SType>;\n label: string;\n};\n\nconst SearchableAddress = <SType extends FieldValues>({\n onActionChange,\n isManual,\n control,\n label,\n autoSuggestShowAfter,\n autoSuggestion = false,\n name,\n}: PropsType<SType>) => {\n const [addressOptions, setAddressOptions] = useState<AddressList[]>([]);\n\n const { getAddressList } = useAddressSearch();\n\n return (\n <div className=\"f1-w-full\">\n <TextArea\n control={control}\n name={name}\n options={addressOptions}\n label={label}\n autocomplete\n clearable={true}\n onActionChange={onActionChange}\n isManual={isManual}\n icon={true}\n errorText=\"Please enter your residential address\"\n helperText=\"Cannot be a PO Box\"\n rules={{\n required: ValidationRulesForForm.required,\n }}\n onChange={(data) => {\n getAddressList(data, setAddressOptions);\n }}\n autoSuggestion={autoSuggestion}\n autoSuggestShowAfter={autoSuggestShowAfter}\n />\n </div>\n );\n};\n\nexport default SearchableAddress;\n","import React, { useEffect } from \"react\";\n\nimport ManualAddress from \"../ManualAddress/ManualAddress\";\nimport SearchableAddress from \"../SearchableAddress/SearchableAddress\";\n\nimport type { ManualAddressControlName } from \"../ManualAddress/ManualAddress\";\nimport type {\n Control,\n FieldValues,\n Path,\n RegisterOptions,\n} from \"react-hook-form\";\n\nexport type FrankieAddressProps<AType extends FieldValues> = {\n control: Control<AType>;\n name: Path<AType>;\n manualAddressConfig: ManualAddressControlName<AType>;\n label: string;\n isManual?: boolean;\n rules?: RegisterOptions<AType, Path<AType>>;\n};\n\nconst FrankieAddress = <AType extends FieldValues>({\n control,\n name,\n manualAddressConfig,\n isManual,\n label,\n}: FrankieAddressProps<AType>) => {\n const [manual, setIsManual] = React.useState(false);\n\n useEffect(() => {\n setIsManual(isManual);\n }, [isManual]);\n\n // a flag to determine which format (auto/manual) to submit\n useEffect(() => {\n control._formValues.address.isAddedByCustomer = manual;\n }, [manual]);\n\n return (\n <>\n {!manual\n ? (\n <SearchableAddress\n label={label}\n onActionChange={setIsManual}\n control={control}\n isManual={manual}\n name={name}\n autoSuggestShowAfter={3}\n autoSuggestion\n />\n )\n : (\n <ManualAddress\n control={control}\n config={manualAddressConfig}\n onActionChange={setIsManual}\n />\n )}\n </>\n );\n};\n\nexport default FrankieAddress;\n","import { useController } from 'react-hook-form';\n\nimport FrankieActionField from '../../base/FrankieActionField/FrankieActionField';\nimport Input from '../../base/SharedInput/Input';\nimport { SelectFormField } from '../../base/SharedSelect/Select';\nimport FrankieAddress from '../FrankieAddress/FrankieAddress';\n\nimport type { FrankieActionFieldProps } from '../../base/FrankieActionField/FrankieActionField';\nimport type { InputProps } from '../../base/SharedInput/Input';\nimport type { SelectProps } from '../../base/SharedSelect/Select';\nimport type { FrankieAddressProps } from '../FrankieAddress/FrankieAddress';\nimport type { ReactNode } from 'react';\nimport type { FieldValues } from 'react-hook-form';\n\ntype ControlType<\n CType extends FieldTypes,\n FValues extends FieldValues\n> = (CType extends 'input'\n ? Omit<InputProps<FValues>, 'options'>\n : NonNullable<unknown>) &\n (CType extends 'select'\n ? SelectProps<FValues, string>\n : NonNullable<unknown>) &\n (CType extends 'address'\n ? FrankieAddressProps<FValues>\n : NonNullable<unknown>);\n\ntype FieldTypes = 'input' | 'select' | 'address';\n\nexport type ActionFormFieldProps<\n FValues extends FieldValues,\n FType extends FieldTypes = FieldTypes\n> = {\n config: FrankieActionFieldProps<boolean>;\n} & ControlType<FType, FValues>;\n\nconst ActionFormField = <FValues extends FieldValues>({\n config,\n ...restProps\n}: ActionFormFieldProps<FValues>) => {\n const { field, fieldState } = useController({\n control: config?.['control'],\n name: `${config?.['name']}ShowToggle`,\n defaultValue: null,\n rules: {\n required: 'Please let us know if you have any middle names',\n },\n });\n\n const handleSelectValue = (value: boolean) => {\n field.onChange(field.value === value ? null : value);\n };\n\n const fields: Record<FieldTypes, ReactNode> = {\n input: (\n <Input\n {...(config as unknown as InputProps<FValues>)}\n {...(restProps as InputProps<FValues>)}\n />\n ),\n address: (\n <FrankieAddress\n {...config}\n {...(restProps as unknown as FrankieAddressProps<FValues>)}\n />\n ),\n select: (\n <SelectFormField\n {...(config as unknown as SelectProps<FValues, string>)}\n {...(restProps as unknown as SelectProps<FValues, string>)}\n />\n ),\n };\n\n return (\n <>\n <FrankieActionField\n {...config}\n onChange={handleSelectValue}\n currentValue={field.value}\n // error={fieldState === null ? config.error : null}\n error={fieldState.error?.message}\n />\n\n {field.value && <>{fields[config?.['fieldType']]}</>}\n </>\n );\n};\n\nexport default ActionFormField;\n","import clsx from 'clsx';\nimport { useCallback } from 'react';\n\nimport type { ReviewDocument } from '@module/form/vendors/react/model/review.model';\n\nimport { ConfigCSSKeys } from '../../../appConfig.type';\nimport { useFormMapper } from '../../../hooks/useFormMapper.hook';\nimport Input from '../../base/SharedInput/Input';\nimport { SelectFormField } from '../../base/SharedSelect/Select';\nimport StandardDate from '../../base/StandardDate/StandardDate';\nimport ActionFormField from '../ActionFormField/ActionFormField';\nimport FrankieAddress from '../FrankieAddress/FrankieAddress';\n\nimport type { FormPageScreen, IFormPageConfig } from '../../../appConfig.type';\nimport type { UseFormReturn } from 'react-hook-form';\n\nexport type FrankieFormMapperProps<PType extends FormPageScreen, FType> = {\n form: UseFormReturn<FType>;\n config: IFormPageConfig<PType>;\n};\n\nconst FrankieFormMapper = <PType extends FormPageScreen = FormPageScreen>({\n form,\n config,\n}: FrankieFormMapperProps<PType, ReviewDocument>) => {\n const { control } = form;\n\n const { getFormConfig } = useFormMapper();\n const { documentFields, personalFields } = getFormConfig({\n config,\n idType: form.getValues('idType'),\n country: form.getValues('country'),\n region: form.getValues('region'),\n });\n\n const documentInfo = [...personalFields, ...documentFields];\n\n const formFields = useCallback(\n (configField) => {\n const formConfig = {\n ...configField,\n rules: {\n ...(configField?.rules ?? {}),\n ...(configField?.rules?.pattern && {\n pattern: {\n ...configField?.rules?.pattern,\n value: new RegExp(configField?.rules?.pattern?.value),\n },\n }),\n },\n };\n\n return {\n input: formConfig?.['showToggle']\n? (\n <ActionFormField\n config={formConfig}\n type={formConfig?.['type'] ?? 'text'}\n />\n )\n: (\n <Input {...formConfig} type={formConfig?.['type'] ?? 'text'} />\n ),\n date: <StandardDate {...formConfig} />,\n select: <SelectFormField {...formConfig} autocomplete />,\n address: <FrankieAddress {...formConfig} />,\n //TODO: make phoneNo component, and map it here\n //formConfig has key = 'phone' | 'email'| 'individual_extra' | 'document_extra'| 'previous_addr'| 'current_addr'| 'text'| 'number,\n //map based on that\n };\n },\n [config],\n );\n\n return (\n <form\n className={clsx(\n 'f1-w-full',\n 'f1-h-auto',\n 'f1-flex',\n 'f1-flex-col',\n 'f1-justify-start',\n 'f1-items-start',\n 'f1-mx-auto',\n 'f1-border-2',\n 'f1-border-grey-100',\n 'f1-gap-[8px]',\n 'f1-box-border',\n ConfigCSSKeys.formWrapper,\n )}\n style={config?.['style']?.[ConfigCSSKeys.formWrapper]}\n >\n {documentInfo?.map((field, index: number) => {\n const configField = {\n ...field,\n control,\n inputClassName: clsx(ConfigCSSKeys.formField),\n };\n\n if (field?.hide) return null;\n\n return (\n <div\n className={clsx('f1-w-full', ConfigCSSKeys.formField)}\n key={index}\n style={{\n ...(config?.['style']?.[ConfigCSSKeys.formField] ?? {}),\n ...field?.style?.[ConfigCSSKeys.formField],\n }}\n >\n {formFields(configField)[field.fieldType]}\n </div>\n );\n })}\n </form>\n );\n};\n\nexport default FrankieFormMapper;\n","import cloneDeep from 'lodash.clonedeep';\nimport merge from 'lodash.merge';\n\nimport { allAustralianStates } from '@module/common/shared/utils';\n\nimport { allCountries } from '../../formio/transformers/countryData';\n\nimport type { FrankieSelectOptions } from '../types/form';\n\n/* @function getUniqueList give a list of objects and return a list of unique objects\n based on the name property\n EX : [{name: 'name1',...},\n {name: 'name1',...},\n {name: 'name2',...}]\n\n ===> [{name: 'name1',....},\n {name: 'name2',....}]\n */\nexport const getUniqueList = <DType>(\n combinedList: DType[],\n key: keyof DType,\n) => {\n const uniqueList: DType[] = [];\n\n combinedList.forEach((item) => {\n const searchedIndex = uniqueList?.findIndex(\n (uniqueItem) => uniqueItem?.[key] === item?.[key],\n );\n\n if (searchedIndex >= 0) {\n uniqueList[searchedIndex] = merge(\n cloneDeep(uniqueList[searchedIndex]),\n cloneDeep(item),\n );\n } else {\n uniqueList.push(item);\n }\n });\n return uniqueList;\n};\n\nexport type AllCountries =\n 'AUS'\n | 'NZL'\n | 'USA'\n | 'CAN'\n | 'GBR'\n | 'IND'\n | 'SGP';\nconst countriesInfo = {\n AUS: allAustralianStates.map((state) => ({\n label: state.name,\n value: state.alpha3Code,\n })),\n} satisfies Partial<Record<AllCountries, FrankieSelectOptions[]>>;\n\nexport const getStates = (country?: AllCountries): FrankieSelectOptions[] => {\n const defaultCountry = 'AUS';\n const options =\n countriesInfo?.[country] || countriesInfo[defaultCountry] || [];\n return [...options]?.sort((a, b) =>\n (a?.label?.toLowerCase() || '').localeCompare(b?.label?.toLowerCase() || ''),\n );\n};\n\nexport const getAllCountries = (): FrankieSelectOptions[] => {\n return [...allCountries]\n .sort((a, b) =>\n (a?.label?.toLowerCase() || '').localeCompare(\n b?.label?.toLowerCase() || '',\n ),\n )\n .filter((country) => country?.value && country?.label);\n};\n","import type { IAddressConstructor } from '@module/common/shared/models/Address';\nimport { Address } from '@module/common/shared/models/Address';\n\nexport class AddressInfo extends Address {\n fullAddress: string;\n constructor(input: IAddressConstructor) {\n super(input);\n }\n}\n","import type { Address } from '@module/common/shared/models/Address';\nimport type { Core } from '@module/common/shared/models/Core';\nimport type { AcceptableType } from '@module/common/shared/models/Document';\nimport { Document } from '@module/common/shared/models/Document';\nimport { breakDateToObject } from '@module/common/shared/utils';\nimport { getStates } from '@module/form/vendors/react/utils/object.util';\n\nimport { AddressInfo } from './address.model';\n\nexport class ReviewModelRecords {\n records: ReviewDocument;\n\n constructor(input: Document[], address?: Address) {\n const sortedData = [...input].sort((a, b) => {\n const getDate = (data) => {\n // Use optional chaining to access nested properties safely\n return new Date(data?.ocrResult?.runDate ?? data?.extraData?.ocr_process_run_date);\n };\n\n const dateA = getDate(a);\n const dateB = getDate(b);\n\n // Handle missing dates by putting them at the end\n if (!dateA && !dateB) return 0;\n if (!dateA) return 1;\n if (!dateB) return -1;\n\n // Sort by date in descending order (newest to oldest)\n return dateB.getTime() - dateA.getTime();\n });\n\n this.records = new ReviewDocument(sortedData?.[0], address);\n }\n}\n\nexport class ReviewDocument extends Document {\n givenName: string;\n middleName: string;\n familyName: string;\n address: AddressInfo;\n\n constructor(input: Document, address?: Address) {\n super(input);\n // value could be empty string, empty string is truly value\n const str = (value: AcceptableType): string =>\n value?.toString()?.length ? value?.toString() : null;\n\n const dob = breakDateToObject(\n input?.dateOfBirth ?? str(input?.ocrResult?.dateOfBirth as AcceptableType),\n );\n\n const expiryDate = breakDateToObject(\n this.idExpiry ?? str(input?.ocrResult?.dateOfExpiry as AcceptableType),\n );\n\n this.givenName = str(input?.ocrResult?.firstName as AcceptableType) ?? '';\n this.middleName = str(input?.ocrResult?.middleName as AcceptableType) ?? '';\n this.familyName = str(input?.ocrResult?.lastName as AcceptableType) ?? '';\n this.dateOfBirth = `${dob.dd ?? ''}-${dob.mm ?? ''}-${dob.yyyy ?? ''}`;\n this.idExpiry = expiryDate\n ? `${expiryDate.dd ?? ''}-${expiryDate.mm ?? ''}-${expiryDate.yyyy ?? ''}`\n : '';\n\n this.idType = (input?.idType as Core['enumIdType']) ?? 'DRIVERS_LICENCE';\n this.region =\n // convert state name to code\n getStates().find((state) =>\n state.label.toLowerCase() === str(input?.region)?.toLowerCase())?.value ??\n str(input?.region) ??\n str(input?.ocrResult?.issuingState as AcceptableType) ??\n str(address?.state) ??\n str(input?.ocrResult?.state as AcceptableType) ??\n '';\n\n this.country =\n str(input?.country) ??\n str(input?.ocrResult?.issuingCountry as AcceptableType) ??\n 'AUS';\n\n this.idNumber =\n str(input?.idNumber) ??\n str(input?.ocrResult?.idNumber as AcceptableType) ??\n '';\n\n this.extraData['reference'] =\n str(input?.extraData?.reference) ??\n str(input?.ocrResult?.reference as AcceptableType);\n\n this.extraData['document_number'] =\n str(input?.extraData?.document_number) ?? '';\n\n this.address = new AddressInfo({\n addressId:\n str(address?.addressId) ??\n str(input?.ocrResult?.addressId as AcceptableType),\n addressType:\n str(address?.addressType) ??\n str(input?.ocrResult?.addressType as AcceptableType) ??\n 'RESIDENTIAL1',\n buildingName:\n str(address?.buildingName) ??\n str(input?.ocrResult?.buildingName as AcceptableType),\n postalCode:\n str(address?.postalCode) ??\n str(input?.ocrResult?.postcode as AcceptableType),\n state:\n str(address?.state) ?? str(input?.ocrResult?.state as AcceptableType),\n streetName:\n str(address?.streetName) ??\n str(input?.ocrResult?.street as AcceptableType),\n streetNumber:\n str(address?.streetNumber) ??\n str(input?.ocrResult?.streetNumber as AcceptableType),\n suburb:\n str(address?.suburb) ?? str(input?.ocrResult?.suburb as AcceptableType),\n town: str(address?.town) ?? str(input?.ocrResult?.town as AcceptableType),\n unitNumber:\n str(address?.unitNumber) ??\n str(input?.ocrResult?.unitNumber as AcceptableType),\n country:\n str(address?.country) ??\n str(input?.ocrResult?.issuingCountry as AcceptableType),\n } as AddressInfo);\n\n this.address.fullAddress =\n str(address?.longForm) ??\n str(input?.ocrResult?.address as AcceptableType) ??\n str(input?.ocrResult?.address1 as AcceptableType);\n }\n}\n\nexport type ReviewDocumentKeys = keyof ReviewDocument;\n\nexport type ReviewDocumentForm = ReviewDocument & AddressInfo;\n","import type { IStaticPageConfig } from '../../appConfig.type';\n\nexport const manualConsentPage = {\n name: 'CONSENT',\n type: 'manual',\n title: { label: 'Your consent matters', style: {} },\n descriptions: [\n {\n label: `Your personal information being collected and used in accordance with [Company]'s <a href=\"https://www.frankieone.com/privacy\" target=\"_blank\">Privacy Policy</a>.`,\n style: {\n 'ff-description-item':{},\n },\n },\n {\n label:\n 'In addition, for the purposes of verifying your identity, you consent to: a) the verification of my personal information with credit bureau header files (for verification only); b) against records held by official document issues or official record holders via third party systems; and c) verification agent(s) acting as a nominated intermediary in accordance with Australian Privacy Principles.',\n style:{\n 'ff-description-item':{},\n },\n },\n {\n label:\n 'You consent to the use by third parties of the results of any verification checks on my identity for the purposes of monitoring and improving their verification services.',\n style:{\n 'ff-description-item':{},\n },\n },\n ],\n checkbox: {\n content: [\n {\n label: 'I have read and agree the above disclosure',\n style:{\n 'ff-description-item':{},\n },\n },\n ],\n style: {},\n },\n cta: { icon: '', label: 'Continue', style: {} },\n style: {},\n} satisfies IStaticPageConfig;","import { icons } from '../../constants/icons';\n\nimport type { IStaticPageConfig } from '../../appConfig.type';\n\nexport const manualWelcomePageAU1D = {\n name: 'WELCOME',\n title: { label: `Let's verify your identity`, style: {} },\n type: 'manual',\n numberOfIDs: 1,\n descriptions: [\n {\n label:\n 'We need to collect some personal information to verify your identity. All fields must be filled and it is important you enter your details accurately.',\n style: {},\n },\n ],\n instructions: {\n label: 'You will need',\n content: [\n {\n icon: icons.checkbox,\n label: 'A few mins to complete this application',\n style: {\n 'ff-instruction-item': {},\n },\n },\n {\n icon: icons.checkbox,\n label:\n 'An ID on you (this could be a driver’s licence, passport or Medicare card)',\n style: {\n 'ff-instruction-item': {},\n },\n },\n {\n icon: icons.checkbox,\n label: 'You must be over 18 years of age',\n style: {\n 'ff-instruction-item': {},\n },\n },\n {\n icon: icons.checkbox,\n label:\n 'You must be an Australian citizen, permanent resident or Visa holder.',\n style: {\n 'ff-instruction-item': {},\n },\n },\n ],\n },\n cta: {\n label: 'Start identity verification',\n style: {\n 'ff-button': {},\n },\n },\n style: {},\n} satisfies IStaticPageConfig;\n\nconst manualWelcomePageNZ1D = {\n name: 'WELCOME',\n title: { label: `Let's verify your identity`, style: {} },\n type: 'manual',\n descriptions: [\n {\n label:\n 'We need to collect some personal information to verify your identity. All fields must be filled and it is important you enter your details accurately.',\n style: {},\n },\n ],\n instructions: {\n label: 'You will need',\n content: [\n {\n icon: icons.checkbox,\n label: 'A few mins to complete this application',\n style: {\n 'ff-instruction-item': {},\n },\n },\n {\n icon: icons.checkbox,\n label:\n 'An ID on you (this could be a driver’s licence, passport or Medicare card)',\n style: {\n 'ff-instruction-item': {},\n },\n },\n {\n icon: icons.checkbox,\n label: 'You must be over 18 years of age',\n style: {\n 'ff-instruction-item': {},\n },\n },\n {\n icon: icons.checkbox,\n label:\n 'You must be an Australian citizen, permanent resident or Visa holder.',\n style: {\n 'ff-instruction-item': {},\n },\n },\n ],\n },\n cta: {\n label: 'Start identity verification',\n style: {\n 'ff-button': {},\n },\n },\n style: {},\n} satisfies IStaticPageConfig;\n\nconst manualWelcomePageAU2ID = {\n name: 'WELCOME',\n title: {\n label: `Let's verify your identity`,\n style: {\n 'ff-title': {},\n },\n },\n type: 'manual',\n descriptions: [\n {\n label:\n 'We need to collect some personal information to verify your identity. All fields must be filled and it is important you enter your details accurately.',\n style: {},\n },\n ],\n instructions: {\n label: 'You will need',\n content: [\n {\n icon: icons.checkbox,\n label: 'A few mins to complete this application',\n style: {\n 'ff-instruction-item': {},\n },\n },\n {\n icon: icons.checkbox,\n label:\n 'Two IDs on you (this could be a driver’s licence, passport or Medicare card)',\n style: {\n 'ff-instruction-item': {},\n },\n },\n {\n icon: icons.checkbox,\n label: 'You must be over 18 years of age',\n style: {\n 'ff-instruction-item': {},\n },\n },\n {\n icon: icons.checkbox,\n label:\n 'You must be an Australian citizen, permanent resident or Visa holder',\n style: {\n 'ff-instruction-item': {},\n },\n },\n ],\n },\n cta: {\n label: 'Start identity verification',\n style: {\n 'ff-button': {},\n },\n },\n style: {},\n} satisfies IStaticPageConfig;\n\nexport const manualWelcomePage = {\n AU: {\n 1: manualWelcomePageAU1D,\n 2: manualWelcomePageAU2ID,\n },\n NZ: {\n 1: manualWelcomePageNZ1D,\n },\n};\n","/* eslint-disable check-file/filename-naming-convention */\nimport mergeWith from \"lodash/mergeWith\";\nimport cloneDeep from \"lodash.clonedeep\";\nimport { useContext } from \"react\";\n\nimport { DocumentKeys } from \"../appConfig.type\";\nimport { manualConsentPage } from \"../features/Consent/manualConsent.config\";\nimport { manualWelcomePage } from \"../features/Welcome/manualWelcome.config\";\nimport { ReviewModelRecords } from \"../model/review.model\";\nimport { React_Form_IDS } from \"../types/pages.type\";\nimport { getUniqueList } from \"../utils/object.util\";\n\nimport { EventContext } from \"./useEventContext\";\n\nimport type {\n IFormPageConfig,\n IIdCardPageConfig,\n TPageConfig,\n} from '../appConfig.type';\nimport type { ReviewDocument } from '../model/review.model';\nimport type { FormProps, FieldValues } from 'react-hook-form';\n\n/**\n * @function mergeAndReplaceConfig\n * @param defaultConfig if we have => { name:default, descriptions: [ { ..default.. }, { ..default.. }, { ..default.. } ], checkbox: {label:default, content: [...default,...default]}})\n * @param newConfig we need to replace & merge => { descriptions: [ { ..new.. }, { ..new.. }, ],checkbox: {content: [...new]})\n * @returns then it will return newConfig: { name:default, descriptions: [ { ..new.. }, { ..new.. } ], checkbox: {label:default, content: [...new]}})\n */\nexport const useConfigFactory = () => {\n const { oneSDK } = useContext(EventContext);\n const individual = oneSDK.individual();\n\n const addGlobalRules = (\n docConfig: IFormPageConfig<'REVIEW'>['documents'][number],\n country: string,\n region: string,\n ) => {\n const additionalFields = (\n countries: IFormPageConfig<'REVIEW'>['documents'][number]['countries'],\n ) =>\n countries?.[country]?.[region]?.['fields'] ||\n countries?.['default']?.[region]?.['fields'] ||\n countries?.[country]?.['default']?.['fields'] ||\n countries?.['default']?.['default']?.['fields'] ||\n [];\n\n if (docConfig?.countries?.['default']?.['default']?.['fields']) {\n docConfig.countries['default']['default']['fields'] = getUniqueList(\n [\n ...(docConfig?.countries?.['default']?.['default']?.fields ?? []),\n ...additionalFields(docConfig?.['countries']),\n ],\n 'name',\n );\n }\n\n return docConfig;\n };\n\n const addFieldsRestrictions = (\n config: TPageConfig,\n pKey: keyof IIdCardPageConfig,\n ) => {\n const documents = individual\n .access('documents')\n .getValue() as ReviewDocument[];\n const { country, region } = new ReviewModelRecords(documents).records;\n\n if (pKey == 'documents') {\n Object.entries(DocumentKeys).forEach(([key]) => {\n const docConfig =\n config?.[pKey] ?? ([] as IFormPageConfig<'REVIEW'>['documents']);\n const filteredConfig = docConfig?.find((item) => item.type === key);\n addGlobalRules(filteredConfig, country, region);\n });\n } else { \n addGlobalRules(config[pKey], country, region);\n }\n };\n\n const pickManualConfig = (defaultConfig: TPageConfig, numberOfIDs = 1) => {\n switch (defaultConfig?.name) {\n case \"WELCOME\":\n return (\n manualWelcomePage[\"AU\"]?.[numberOfIDs ?? 1] ||\n manualWelcomePage[\"AU\"][1]\n );\n case \"CONSENT\":\n return manualConsentPage;\n default:\n return defaultConfig;\n }\n };\n\n const mergeAndReplaceConfig = (\n defaultConfig: TPageConfig,\n newConfig: TPageConfig,\n currModuleName: React_Form_IDS\n ): TPageConfig => {\n const mergedConfig: TPageConfig =\n newConfig?.['type'] == 'manual'\n ? { ...pickManualConfig(defaultConfig, newConfig?.['numberOfIDs']) }\n : { ...defaultConfig };\n\n /** ###### REVIEW CONFIGURATION ###### */\n const excludeScreens: React_Form_IDS[] = [React_Form_IDS.REVIEW];\n const needToMergeList = excludeScreens.includes(currModuleName);\n \n const getMergeReview = (key:keyof IIdCardPageConfig) => {\n const config1 = newConfig as IFormPageConfig<'REVIEW'>;\n const config2 = mergedConfig as IFormPageConfig<'REVIEW'>;\n\n if (key == 'documents') {\n if (!config1?.[key]?.length) return config2?.[key];\n if (!config2?.[key]?.length && !config1?.[key]?.length) return [];\n if (config1?.[key]?.length) {\n config1[key] = config2?.[key]?.map((item) => {\n const newDoc = config1?.[key]?.find(\n (doc) => doc.type === item.type,\n );\n if (newDoc) return newDoc;\n return { type: item.type };\n });\n }\n }\n \n return mergeWith(\n cloneDeep(config1?.[key]),\n cloneDeep(config2?.[key]),\n (objValue, srcValue) => {\n if (Array.isArray(objValue)) {\n const combinedList: FormProps<FieldValues>[] = [\n ...srcValue,\n ...objValue,\n ]; \n return getUniqueList(combinedList, 'name');\n }\n },\n );\n };\n\n // @Remarks : Master loop to merge and replace the default config with new config\n for (const key in newConfig) {\n // targeting to merge documents and personal keys\n if (\n needToMergeList &&\n ['documents', 'personal'].includes(key) &&\n (newConfig?.['documents'] || newConfig?.['personal'])\n ) {\n mergedConfig[key] = getMergeReview(key as keyof IIdCardPageConfig);\n addFieldsRestrictions(\n cloneDeep(mergedConfig),\n key as keyof IIdCardPageConfig,\n ); \n continue;\n }\n\n // mapping others keys\n if (\n !needToMergeList &&\n Array.isArray(defaultConfig[key]) &&\n newConfig[key]\n ) {\n mergedConfig[key] = cloneDeep(newConfig[key]);\n } else if (typeof newConfig[key] === 'object') {\n mergedConfig[key] = {\n ...mergedConfig[key],\n ...cloneDeep(newConfig[key]),\n };\n } else {\n mergedConfig[key] = cloneDeep(newConfig[key]);\n }\n }\n return mergedConfig;\n };\n\n return { mergeAndReplaceConfig, addGlobalRules };\n};\n","// eslint-disable-next-line check-file/filename-naming-convention\nimport cloneDeep from 'lodash.clonedeep';\nimport { DateTime } from 'luxon';\nimport { useContext, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport type { Address } from '@module/common/shared/models/Address';\nimport type { FullNameFields } from '@module/common/shared/models/Applicant';\nimport type { Document } from '@module/common/shared/models/Document';\n\nimport { ReviewModelRecords } from '../model/review.model';\nimport { selectPageConfig } from '../redux/slices/moduleSlice';\nimport { React_Form_IDS } from '../types/pages.type';\n\nimport { useConfigFactory } from './useConfigFactory.hooks';\nimport { EventContext } from './useEventContext';\nimport { useFormMapper } from './useFormMapper.hook';\n\nimport type {\n FormField,\n IFormPageConfig,\n InputConfigType,\n} from '../appConfig.type';\nimport type { AddressInfo } from '../model/address.model';\nimport type { ReviewDocument } from '../model/review.model';\nimport type { UseFormReturn } from 'react-hook-form';\n\nexport const useReviewUpdateFactory = () => {\n const { pageConfigs } = useSelector(selectPageConfig);\n const config = pageConfigs[\n React_Form_IDS.REVIEW\n ] as IFormPageConfig<'REVIEW'>;\n\n const { addGlobalRules } = useConfigFactory();\n\n const { oneSDK } = useContext(EventContext);\n const individual = oneSDK.individual();\n\n const getScannedData = useMemo(() => {\n const { givenName, middleName, familyName } = individual\n .access('name')\n .getValue();\n\n const documents = individual\n .access('documents')\n .getValue() as ReviewDocument[];\n\n const addresses = individual.access('addresses').getValue()[0];\n return {\n ...new ReviewModelRecords(documents, addresses).records,\n givenName,\n middleName,\n familyName,\n };\n }, []);\n\n const { idType, country, region } = getScannedData;\n const { getFormConfig } = useFormMapper();\n\n const fieldIsVisible = (\n name: keyof ReviewDocument | 'address.fullAddress',\n ) => {\n const { personalFields, documentFields } = getFormConfig({\n config,\n idType,\n country,\n region,\n });\n\n const status = (\n [...personalFields, ...documentFields] as FormField<InputConfigType>[]\n ).find((item) => item?.name === name)?.hide;\n\n return status === undefined || status === null ? true : !status;\n };\n\n const updateAddress = (data: AddressInfo) => {\n const address: Partial<Address> = {\n buildingName: data.buildingName,\n postalCode: data.postalCode,\n state: data.state,\n streetName: data.streetName,\n streetNumber: data.streetNumber,\n streetType: data.streetType,\n suburb: data.suburb,\n town: data.town,\n unitNumber: data.unitNumber,\n addressType: data.addressType,\n longForm: data.fullAddress,\n country: data.country,\n };\n\n const addressRefactored = Object.keys(address).reduce(\n (acc, curr: keyof ReviewDocument) =>\n !!fieldIsVisible(curr) && { ...acc, [curr]: address[curr] },\n {},\n );\n\n const addOrUpdateAddress = (address: Address) => {\n if (data?.addressId && data?.addressId?.length) {\n individual.updateAddress(data.addressId, address);\n } else {\n individual.addAddress(address);\n }\n };\n if (data.isAddedByCustomer) {\n addOrUpdateAddress(addressRefactored as Address);\n } else {\n addOrUpdateAddress({\n data: {\n longForm: data.fullAddress,\n } as unknown,\n country: data.country,\n } as Address);\n }\n };\n\n const updateModule = (data: ReviewDocument) => {\n // Names\n const namesObj = {\n givenName: data?.givenName,\n familyName: data?.familyName,\n middleName: data?.middleName,\n displayName: data?.givenName + ' ' + data?.familyName,\n };\n\n const namesRefactored = Object.keys(namesObj).reduce(\n (acc, curr: keyof ReviewDocument) =>\n fieldIsVisible(curr) && { ...acc, [curr]: namesObj[curr] },\n {} as FullNameFields,\n );\n\n return new Promise<boolean>((resolve) => {\n individual.access('name').setValue(namesRefactored);\n const dateOfBirth = DateTime.fromFormat(\n data.dateOfBirth,\n 'd-L-yyyy',\n ).toFormat('yyyy-LL-dd');\n\n fieldIsVisible('dateOfBirth') &&\n individual.access('dateOfBirth').setValue(dateOfBirth);\n\n // Address\n fieldIsVisible('address') && updateAddress(data.address);\n\n // Documents\n const documentObj = {\n dateOfBirth,\n idNumber: data.idNumber,\n idSubType: data.idSubType,\n idType: data.idType,\n idExpiry: data?.idExpiry?.split('-')?.reverse()?.join('-') ?? '',\n country: data.country,\n region: data.region,\n extraData: data.extraData,\n };\n\n const docsRefactored = Object.keys(documentObj).reduce(\n (acc, curr: keyof ReviewDocument) =>\n fieldIsVisible(curr) && { ...acc, [curr]: documentObj[curr] },\n {},\n );\n\n if (data?.documentId && data?.documentId?.length) {\n individual.updateDocument(data.documentId, docsRefactored as Document);\n }\n\n // REMARKS : Verifying the updated data\n // console.log('Updated Individual', individual.access('name').getValue());\n // console.log(\"Updated Address\", individual.access('addresses').getValue());\n // console.log(\"Updated Document\", individual.access('documents').getValue());\n\n resolve(true);\n });\n };\n\n const updateForm = (form: UseFormReturn<ReviewDocument>) => {\n const { reset } = form;\n const scannedData = getScannedData;\n reset({ ...scannedData, address: scannedData.address });\n };\n\n const getUpdatedGlobalConfig = (form: UseFormReturn<ReviewDocument>) => {\n return config.documents.map((item) => {\n return item.type === form.getValues('idType')\n ? addGlobalRules(\n cloneDeep(item),\n form.getValues('country'),\n form.getValues('region'),\n )\n : item;\n });\n };\n\n return {\n getScannedData,\n updateModule,\n updateForm,\n updateAddress,\n getUpdatedGlobalConfig,\n };\n};\n","import type { Document } from '@module/common/shared/models/Document';\n\nimport { ReviewDocument } from './review.model';\n\nimport type { AddressInfo } from './address.model';\n\nexport class PersonalDetailsModelRecords {\n records: PersonalDetailsDocument;\n}\nexport class PersonalDetailsDocument extends ReviewDocument {\n constructor(input: Document) {\n super(input);\n }\n}\n\nexport type PersonalDetailsDocumentKeys = keyof PersonalDetailsDocument;\n\nexport type PersonalDetailsDocumentForm = PersonalDetailsDocument & AddressInfo;\n","import { useEffect } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { useSelector } from \"react-redux\";\n\nimport FrankieDescription from \"../../components/view/FrankieDescription/FrankieDescription\";\nimport FrankieFormMapper from \"../../components/view/FrankieFormMapper/FrankieFormMapper\";\nimport Heading from \"../../components/view/FrankieHeading/Heading\";\nimport Wrapper from \"../../components/view/Wrapper/Wrapper\";\nimport { useEventHandler } from \"../../hooks/useEventContext\";\nimport { usePersonalDetailsUpdateFactory } from \"../../hooks/usePersonalDetailsUpdateFactory.hook\";\nimport { PersonalDetailsDocument } from \"../../model/personalDetails.model\";\nimport { selectPageConfig } from \"../../redux/slices/moduleSlice\";\nimport { React_Form_IDS } from \"../../types/pages.type\";\n\nimport type { IFormPageConfig } from \"../../appConfig.type\";\n\nconst PersonalDetails = () => {\n const { pageConfigs } = useSelector(selectPageConfig);\n const config = pageConfigs[\n React_Form_IDS.PERSONAL_DETAILS\n ] as IFormPageConfig<'PERSONAL_DETAILS'>;\n\n const form = useForm<PersonalDetailsDocument>({\n defaultValues: new PersonalDetailsDocument({} as PersonalDetailsDocument),\n mode: 'onChange',\n });\n\n const { handleSubmit } = form;\n\n const {updateModule,updateForm} = usePersonalDetailsUpdateFactory();\n\n const { documentReady } = useEventHandler();\n\n const handleFormSubmit = () => { \n const individualData = form.getValues();\n updateModule(individualData).then(() => {\n documentReady();\n });\n };\n\n useEffect(()=>{\n updateForm(form);\n },[]);\n\n return (\n <Wrapper\n onSubmit={handleSubmit(handleFormSubmit)}\n renderScreen={() => {\n\n return (\n <>\n <Heading label={config.title.label} style={config.title?.style} />\n <FrankieDescription descriptions={config?.descriptions} />\n <FrankieFormMapper form={form} config={config} />\n </>\n );\n }}\n />\n );\n};\n\nexport default PersonalDetails;\n","import {\n CalendarType,\n LocaleType,\n ValidationRulesForForm,\n} from '../../constants/form.const';\nimport { getStates } from '../../utils/object.util';\n\nimport type { FormField, InputConfigType } from '../../appConfig.type';\nimport type { ReviewDocument } from '../../model/review.model';\nimport type { Path } from 'react-hook-form';\n\nexport const commonReviewFieldConfig: FormField<\n InputConfigType,\n Path<ReviewDocument>\n>[] = [\n {\n fieldType: 'input',\n dataType: 'text',\n hide: false,\n label: 'Given Name',\n name: 'givenName',\n rules: {\n required: {\n value: true,\n message: 'Please enter your given name',\n },\n pattern: ValidationRulesForForm.onlyAlphabets,\n },\n },\n {\n fieldType: 'input',\n dataType: 'text',\n hide: false,\n label: 'Middle Name(s)',\n name: 'middleName',\n rules: {\n pattern: ValidationRulesForForm.onlyAlphabets,\n },\n helperText: 'As displayed on your ID',\n },\n {\n fieldType: 'input',\n dataType: 'text',\n hide: false,\n label: 'Family Name',\n name: 'familyName',\n rules: {\n required: {\n value: true,\n message: 'Please enter your family name',\n },\n pattern: ValidationRulesForForm.onlyAlphabets,\n },\n },\n\n {\n fieldType: 'date',\n dataType: 'text',\n hide: false,\n label: 'Date of Birth',\n name: 'dateOfBirth',\n\n calendarConfig: {\n type: CalendarType.Gregorian,\n locale: LocaleType.English,\n day: {\n required: true,\n },\n month: {\n required: true,\n },\n year: {\n required: true,\n },\n\n //NOTE: Please do not uncomment, it is not restrictions in figma,\n // use it only for testing purpose...\n // age: {\n // max: 30,\n // min: 5,\n // message: 'Gap between the year should be between 5 and 10',\n // },\n message: 'Please enter your date of birth',\n },\n standardDate: true,\n required: true,\n configYear: true,\n },\n\n {\n fieldType: 'address',\n name: 'address.fullAddress',\n hide: false,\n dataType: 'current_addr',\n label: 'Residential Address',\n manualAddressConfig: {\n unitNumber: {\n label: 'Unit Number (optional)',\n name: 'address.unitNumber',\n },\n postcode: {\n label: 'Postcode',\n name: 'address.postalCode',\n rules: {\n required: {\n value: true,\n message: 'Please enter your postal code',\n },\n },\n },\n state: {\n label: 'State',\n name: 'address.state',\n options: getStates('AUS'),\n rules: {\n required: {\n value: true,\n message: 'Please enter your state',\n },\n },\n },\n streetNumber: {\n label: 'Street Number',\n name: 'address.streetNumber',\n rules: {\n required: {\n value: true,\n message: 'Please enter your street number',\n },\n },\n },\n streetName: {\n label: 'Street Name',\n name: 'address.streetName',\n rules: {\n required: {\n value: true,\n message: 'Please enter your street name',\n },\n },\n },\n town: {\n label: 'Suburb / Town',\n name: 'address.town',\n rules: {\n required: {\n value: true,\n message: 'Please enter your suburb/town.',\n },\n },\n },\n },\n },\n];\n","import {\n CalendarType,\n LocaleType,\n ValidationRulesForForm,\n} from '../../constants/form.const';\nimport { commonReviewFieldConfig } from '../Review/review.constants';\n\nimport type { IFormPageConfig } from '../../appConfig.type';\nimport type { PersonalDetailsDocumentKeys } from '../../model/personalDetails.model';\n\nexport const personalDetailsPage: IFormPageConfig<\n 'PERSONAL_DETAILS',\n PersonalDetailsDocumentKeys\n> = {\n name: 'PERSONAL_DETAILS',\n title: {\n label: 'Personal details',\n style: {\n 'ff-title': {},\n },\n },\n descriptions: [\n {\n label:\n 'The details you provide below will be used to verify your identity – make sure they match your ID documents.',\n style: {},\n },\n ],\n\n personal: {\n countries: {\n default: {\n default: {\n fields: [\n {\n fieldType: 'input',\n hide: false,\n label: 'Given Name',\n dataType: 'text',\n name: 'givenName',\n rules: {\n required: {\n value: true,\n message: 'Please enter your given name',\n },\n pattern: ValidationRulesForForm.onlyAlphabets,\n },\n },\n {\n fieldType: 'input',\n hide: false,\n label: 'Middle Name(s)',\n name: 'middleName',\n dataType: 'text',\n showToggle: true,\n rules: {\n pattern: ValidationRulesForForm.onlyAlphabets,\n },\n helperText: 'As displayed on your ID',\n },\n {\n fieldType: 'input',\n hide: false,\n label: 'Family Name',\n dataType: 'text',\n name: 'familyName',\n rules: {\n required: {\n value: true,\n message: 'Please enter your family name',\n },\n pattern: ValidationRulesForForm.onlyAlphabets,\n },\n },\n {\n fieldType: 'date',\n hide: false,\n label: 'Date of Birth',\n dataType: 'text',\n name: 'dateOfBirth',\n calendarConfig: {\n type: CalendarType.Gregorian,\n locale: LocaleType.English,\n day: {\n required: true,\n },\n month: {\n required: true,\n },\n year: {\n required: true,\n },\n\n //NOTE: Please do not uncomment, it is not restrictions in figma,\n // use it only for testing purpose...\n // age: {\n // max: 30,\n // min: 5,\n // message: 'Gap between the year should be between 5 and 10',\n // },\n message: 'Please enter your date of birth',\n },\n standardDate: true,\n required: true,\n configYear: true,\n },\n\n {\n ...commonReviewFieldConfig?.find(\n (item) => item.fieldType === 'address'\n ),\n },\n ],\n },\n },\n },\n },\n cta: {\n label: 'Next',\n },\n style: {\n 'ff-form-wrapper': {},\n 'ff-form-field': {},\n },\n};\n","import { useContext, useEffect, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useSelector } from 'react-redux';\n\nimport FrankieCheckbox from '../../components/view/FrankieCheckbox/FrankieCheckbox';\nimport FrankieFormMapper from '../../components/view/FrankieFormMapper/FrankieFormMapper';\nimport Heading from '../../components/view/FrankieHeading/Heading';\nimport Wrapper from '../../components/view/Wrapper/Wrapper';\nimport { EventContext, useEventHandler } from '../../hooks/useEventContext';\nimport { useReviewUpdateFactory } from '../../hooks/useReviewUpdateFactory.hook';\nimport { selectPageConfig } from '../../redux/slices/moduleSlice';\nimport { React_Form_IDS } from '../../types/pages.type';\n\nimport type { IFormPageConfig } from '../../appConfig.type';\nimport type { CheckboxFnProps } from '../../components/view/FrankieCheckbox/FrankieCheckbox';\nimport type { ReviewDocument } from '../../model/review.model';\n\nexport const Review = () => {\n const { pageConfigs } = useSelector(selectPageConfig);\n const eventContext = useContext(EventContext);\n const config = pageConfigs[\n React_Form_IDS.REVIEW\n ] as IFormPageConfig<'REVIEW'>;\n\n const [currentConfig, setCurrentConfig] =\n useState<IFormPageConfig<'REVIEW'>>();\n\n const { updateForm, updateModule, getUpdatedGlobalConfig } =\n useReviewUpdateFactory();\n\n const { documentReady } = useEventHandler();\n\n const form = useForm<ReviewDocument>({\n mode: 'onChange',\n });\n\n const { handleSubmit, watch } = form;\n\n const handleFormSubmit = async () => {\n const individualData = form.getValues();\n updateModule(individualData).then(async () => {\n const { oneSDK } = eventContext;\n await oneSDK.individual().submit();\n documentReady();\n });\n };\n\n useEffect(() => {\n setCurrentConfig(config);\n }, [config]);\n\n useEffect(() => {\n setCurrentConfig((prev) => ({\n ...prev,\n documents: getUpdatedGlobalConfig(form),\n }));\n }, [watch('region'), watch('country')]);\n\n useEffect(() => {\n form.clearErrors();\n form.trigger();\n }, [currentConfig]);\n\n useEffect(() => {\n updateForm(form);\n }, []);\n\n return (\n <Wrapper\n onSubmit={handleSubmit(handleFormSubmit)}\n renderScreen={({ onValidate }) => {\n const handleChange = (selectedItem: CheckboxFnProps) => {\n onValidate(selectedItem.isSelected);\n };\n\n return (\n <>\n <Heading label={config.title.label} style={config.title?.style} />\n <FrankieFormMapper form={form} config={currentConfig} />\n <div className=\"f1-w-full\">\n <FrankieCheckbox\n content={config?.instruction.content}\n style={config?.instruction.style}\n onChange={handleChange}\n />\n </div>\n </>\n );\n }}\n />\n );\n};\n","/* eslint-disable check-file/filename-naming-convention */\n\nimport {\n CalendarType,\n LocaleType,\n ValidationRulesForForm,\n} from '../../constants/form.const';\nimport { getAllCountries, getStates } from '../../utils/object.util';\n\nimport { commonReviewFieldConfig } from './review.constants';\n\nimport type { IFormPageConfig } from '../../appConfig.type';\nimport type { ReviewDocumentKeys } from '../../model/review.model';\n\nexport const reviewPage: IFormPageConfig<'REVIEW', ReviewDocumentKeys> = {\n name: 'REVIEW',\n title: {\n label: 'Are your details correct?',\n style: {\n 'ff-title': {},\n },\n },\n personal: {\n countries: {\n default: {\n default: {\n fields: [...commonReviewFieldConfig],\n },\n },\n },\n },\n documents: [\n {\n type: 'DRIVERS_LICENCE',\n countries: {\n default: {\n default: {\n fields: [\n {\n fieldType: 'select',\n hide: false,\n dataType: 'text',\n label: `Driver's Licence State or Territory`,\n name: 'region',\n rules: {\n required: {\n value: true,\n message: `Please select your driver's licence state or territory`,\n },\n pattern: {\n value: `^(NSW|ACT|NT|QLD|SA|TAS|VIC|WA)$`,\n message: `Please select your driver's licence state or territory`,\n },\n },\n options: getStates('AUS'),\n placeholder: 'Select DL State or Territory',\n },\n {\n fieldType: 'input',\n hide: false,\n dataType: 'text',\n label: 'Licence Number',\n name: 'idNumber',\n rules: {\n required: {\n value: true,\n message: `Please enter your driver's licence number`,\n },\n minLength: {\n value: 1,\n message: `Licence number must be at least 1 characters`,\n },\n maxLength: {\n value: 15,\n message: `Licence number must not exceed 15 characters`,\n },\n pattern: { ...ValidationRulesForForm.alphaNumeric },\n },\n },\n {\n fieldType: 'input',\n hide: false,\n dataType: 'text',\n label: 'Card Number',\n name: 'extraData.document_number',\n rules: {\n required: {\n value: true,\n message: `Please enter your driver's licence card number`,\n },\n minLength: {\n value: 1,\n message: `Card number must be at least 1 characters`,\n },\n maxLength: {\n value: 15,\n message: `Card number must not exceed 15 character`,\n },\n pattern: { ...ValidationRulesForForm.alphaNumeric },\n },\n },\n ],\n },\n },\n AUS: {\n ACT: {\n fields: [\n {\n fieldType: 'select',\n hide: false,\n dataType: 'text',\n label: `Driver's Licence State or Territory`,\n name: 'region',\n rules: {\n required: {\n value: true,\n message: `Please select your driver's licence state or territory`,\n },\n pattern: {\n value: `^(NSW|ACT|NT|QLD|SA|TAS|VIC|WA)$`,\n message: `Please select your driver's licence state or territory`,\n },\n },\n options: getStates('AUS'),\n placeholder: 'Select DL State or Territory',\n },\n {\n fieldType: 'input',\n name: 'idNumber',\n dataType: 'number',\n label: 'Licence Number',\n rules: {\n required: {\n value: true,\n message: `Please enter your driver's licence number`,\n },\n minLength: {\n value: 1,\n message: `Licence number must be at least 1 digits`,\n },\n maxLength: {\n value: 10,\n message: `Licence number must not exceed 10 digits`,\n },\n pattern: { ...ValidationRulesForForm.onlyNumbers },\n },\n style: {\n 'ff-form-field': {},\n },\n },\n {\n fieldType: 'input',\n label: 'Card Number',\n name: 'extraData.document_number',\n dataType: 'number',\n rules: {\n required: {\n value: true,\n message: `Please enter your driver's licence card number`,\n },\n minLength: {\n value: 10,\n message: `Card number must be at least 10 characters`,\n },\n maxLength: {\n value: 10,\n message: `Card number must not exceed 10 characters`,\n },\n pattern: { ...ValidationRulesForForm.alphaNumeric },\n },\n },\n ],\n },\n NSW: {\n fields: [\n {\n fieldType: 'select',\n hide: false,\n dataType: 'text',\n label: `Driver's Licence State or Territory`,\n name: 'region',\n rules: {\n required: {\n value: true,\n message: `Please select your driver's licence state or territory`,\n },\n pattern: {\n value: `^(NSW|ACT|NT|QLD|SA|TAS|VIC|WA)$`,\n message: `Please select your driver's licence state or territory`,\n },\n },\n options: getStates('AUS'),\n placeholder: 'Select DL State or Territory',\n },\n {\n fieldType: 'input',\n dataType: 'number',\n label: 'Licence Number',\n name: 'idNumber',\n rules: {\n required: {\n value: true,\n message: `Please enter your driver's licence number`,\n },\n minLength: {\n value: 6,\n message: `Licence number must be at least 6 characters`,\n },\n maxLength: {\n value: 8,\n message: `Licence number must not exceed 8 characters`,\n },\n pattern: { ...ValidationRulesForForm.alphaNumeric },\n },\n },\n {\n fieldType: 'input',\n dataType: 'number',\n label: 'Card Number',\n name: 'extraData.document_number',\n rules: {\n required: {\n value: true,\n message: `Please enter your driver's licence card number`,\n },\n minLength: {\n value: 10,\n message: `Card number must be at least 10 digits`,\n },\n maxLength: {\n value: 10,\n message: `Card number must not exceed 10 digits`,\n },\n pattern: { ...ValidationRulesForForm.onlyNumbers },\n },\n },\n ],\n },\n NT: {\n fields: [\n {\n fieldType: 'select',\n hide: false,\n dataType: 'text',\n label: `Driver's Licence State or Territory`,\n name: 'region',\n rules: {\n required: {\n value: true,\n message: `Please select your driver's licence state or territory`,\n },\n pattern: {\n value: `^(NSW|ACT|NT|QLD|SA|TAS|VIC|WA)$`,\n message: `Please select your driver's licence state or territory`,\n },\n },\n options: getStates('AUS'),\n placeholder: 'Select DL State or Territory',\n },\n {\n fieldType: 'input',\n dataType: 'number',\n label: 'Licence Number',\n name: 'idNumber',\n rules: {\n required: {\n value: true,\n message: `Please enter your driver's licence number`,\n },\n minLength: {\n value: 1,\n message: `Licence number must be at least 1 digits`,\n },\n maxLength: {\n value: 10,\n message: `Licence number must not exceed 10 digits`,\n },\n pattern: { ...ValidationRulesForForm.onlyNumbers },\n },\n },\n {\n fieldType: 'input',\n dataType: 'number',\n label: 'Card Number',\n name: 'extraData.document_number',\n rules: {\n required: {\n value: true,\n message: `Please enter your driver's licence card number`,\n },\n minLength: {\n value: 6,\n message: `Card number must be at least 6 digits`,\n },\n maxLength: {\n value: 8,\n message: `Card number must not exceed 8 digits`,\n },\n pattern: { ...ValidationRulesForForm.onlyNumbers },\n },\n },\n ],\n },\n QLD: {\n fields: [\n {\n fieldType: 'select',\n hide: false,\n dataType: 'text',\n label: `Driver's Licence State or Territory`,\n name: 'region',\n rules: {\n required: {\n value: true,\n message: `Please select your driver's licence state or territory`,\n },\n pattern: {\n value: `^(NSW|ACT|NT|QLD|SA|TAS|VIC|WA)$`,\n message: `Please select your driver's licence state or territory`,\n },\n },\n options: getStates('AUS'),\n placeholder: 'Select DL State or Territory',\n },\n {\n fieldType: 'input',\n dataType: 'number',\n label: 'Licence Number',\n name: 'idNumber',\n rules: {\n required: {\n value: true,\n message: `Please enter your driver's licence number`,\n },\n minLength: {\n value: 8,\n message: `Licence number must be at least 8 characters`,\n },\n maxLength: {\n value: 9,\n message: `Licence number must not exceed 9 characters`,\n },\n pattern: { ...ValidationRulesForForm.alphaNumeric },\n },\n },\n {\n fieldType: 'input',\n dataType: 'number',\n label: 'Card Number',\n name: 'extraData.document_number',\n rules: {\n required: {\n value: true,\n message: `Please enter your driver's licence card number`,\n },\n minLength: {\n value: 10,\n message: `Card number must be at least 10 characters`,\n },\n maxLength: {\n value: 10,\n message: `Card number must not exceed 10 characters`,\n },\n pattern: { ...ValidationRulesForForm.alphaNumeric },\n },\n },\n ],\n },\n SA: {\n fields: [\n {\n fieldType: 'select',\n hide: false,\n dataType: 'text',\n label: `Driver's Licence State or Territory`,\n name: 'region',\n rules: {\n required: {\n value: true,\n message: `Please select your driver's licence state or territory`,\n },\n pattern: {\n value: `^(NSW|ACT|NT|QLD|SA|TAS|VIC|WA)$`,\n message: `Please select your driver's licence state or territory`,\n },\n },\n options: getStates('AUS'),\n placeholder: 'Select DL State or Territory',\n },\n {\n fieldType: 'input',\n dataType: 'number',\n label: 'Licence Number',\n name: 'idNumber',\n rules: {\n required: {\n value: true,\n message: `Please enter your driver's licence number`,\n },\n minLength: {\n value: 6,\n message: `Licence number must be at least 6 characters`,\n },\n maxLength: {\n value: 6,\n message: `Licence number must not exceed 6 characters`,\n },\n pattern: { ...ValidationRulesForForm.alphaNumeric },\n },\n },\n {\n fieldType: 'input',\n dataType: 'number',\n label: 'Card Number',\n name: 'extraData.document_number',\n rules: {\n required: {\n value: true,\n message: `Please enter your driver's licence card number`,\n },\n minLength: {\n value: 9,\n message: `Card number must be at least 9 characters`,\n },\n maxLength: {\n value: 9,\n message: `Card number must not exceed 9 characters`,\n },\n pattern: { ...ValidationRulesForForm.alphaNumeric },\n },\n },\n ],\n },\n TAS: {\n fields: [\n {\n fieldType: 'select',\n hide: false,\n dataType: 'text',\n label: `Driver's Licence State or Territory`,\n name: 'region',\n rules: {\n required: {\n value: true,\n message: `Please select your driver's licence state or territory`,\n },\n pattern: {\n value: `^(NSW|ACT|NT|QLD|SA|TAS|VIC|WA)$`,\n message: `Please select your driver's licence state or territory`,\n },\n },\n options: getStates('AUS'),\n placeholder: 'Select DL State or Territory',\n },\n {\n fieldType: 'input',\n dataType: 'number',\n label: 'Licence Number',\n name: 'idNumber',\n rules: {\n required: {\n value: true,\n message: `Please enter your driver's licence number`,\n },\n minLength: {\n value: 6,\n message: `Licence number must be at least 6 characters`,\n },\n maxLength: {\n value: 8,\n message: `Licence number must not exceed 8 characters`,\n },\n pattern: { ...ValidationRulesForForm.alphaNumeric },\n },\n },\n {\n fieldType: 'input',\n dataType: 'number',\n label: 'Card Number',\n name: 'extraData.document_number',\n rules: {\n required: {\n value: true,\n message: `Please enter your driver's licence card number`,\n },\n minLength: {\n value: 9,\n message: `Card number must be at least 9 characters`,\n },\n maxLength: {\n value: 9,\n message: `Card number must not exceed 9 characters`,\n },\n pattern: { ...ValidationRulesForForm.alphaNumeric },\n },\n },\n ],\n },\n VIC: {\n fields: [\n {\n fieldType: 'select',\n hide: false,\n dataType: 'text',\n label: `Driver's Licence State or Territory`,\n name: 'region',\n rules: {\n required: {\n value: true,\n message: `Please select your driver's licence state or territory`,\n },\n pattern: {\n value: `^(NSW|ACT|NT|QLD|SA|TAS|VIC|WA)$`,\n message: `Please select your driver's licence state or territory`,\n },\n },\n options: getStates('AUS'),\n placeholder: 'Select DL State or Territory',\n },\n {\n fieldType: 'input',\n dataType: 'number',\n label: 'Licence Number',\n name: 'idNumber',\n rules: {\n required: {\n value: true,\n message: `Please enter your driver's licence number`,\n },\n minLength: {\n value: 1,\n message: `Licence number must be at least 1 digits`,\n },\n maxLength: {\n value: 10,\n message: `Licence number must not exceed 10 digits`,\n },\n pattern: { ...ValidationRulesForForm.onlyNumbers },\n },\n },\n {\n fieldType: 'input',\n dataType: 'number',\n label: 'Card Number',\n name: 'extraData.document_number',\n rules: {\n required: {\n value: true,\n message: `Please enter your driver's licence card number`,\n },\n minLength: {\n value: 8,\n message: `Card number must be at least 8 characters`,\n },\n maxLength: {\n value: 8,\n message: `Card number must not exceed 8 characters`,\n },\n pattern: { ...ValidationRulesForForm.alphaNumeric },\n },\n },\n ],\n },\n WA: {\n fields: [\n {\n fieldType: 'select',\n hide: false,\n dataType: 'text',\n label: `Driver's Licence State or Territory`,\n name: 'region',\n rules: {\n required: {\n value: true,\n message: `Please select your driver's licence state or territory`,\n },\n pattern: {\n value: `^(NSW|ACT|NT|QLD|SA|TAS|VIC|WA)$`,\n message: `Please select your driver's licence state or territory`,\n },\n },\n options: getStates('AUS'),\n placeholder: 'Select DL State or Territory',\n },\n {\n fieldType: 'input',\n dataType: 'number',\n label: 'Licence Number',\n name: 'idNumber',\n rules: {\n required: {\n value: true,\n message: `Please enter your driver's licence number`,\n },\n minLength: {\n value: 7,\n message: `Licence number must be at least 7 digits`,\n },\n maxLength: {\n value: 7,\n message: `Licence number must not exceed 7 characters`,\n },\n },\n },\n {\n fieldType: 'input',\n dataType: 'number',\n label: 'Card Number',\n name: 'extraData.document_number',\n rules: {\n required: {\n value: true,\n message: `Please enter your driver's licence card number`,\n },\n minLength: {\n value: 8,\n message: `Card number must be at least 8 characters`,\n },\n maxLength: {\n value: 10,\n message: `Card number must not exceed 10 characters`,\n },\n pattern: { ...ValidationRulesForForm.alphaNumeric },\n },\n },\n ],\n },\n },\n },\n },\n {\n type: 'NATIONAL_HEALTH_ID',\n countries: {\n default: {\n default: {\n fields: [\n {\n fieldType: 'select',\n dataType: 'text',\n hide: false,\n label: 'Medicare Card Colour',\n name: 'idSubType',\n rules: {\n required: {\n value: true,\n message: `Please select your Medicare card colour`,\n },\n },\n options: [\n { label: 'Green', value: 'G' },\n { label: 'Blue', value: 'B' },\n { label: 'Yellow', value: 'Y' },\n ],\n placeholder: 'Select Medicare Card Colour',\n autocomplete: true,\n },\n {\n fieldType: 'input',\n hide: false,\n label: 'Medicare Card Number',\n dataType: 'text',\n name: 'idNumber',\n rules: {\n required: {\n value: true,\n message: `Please enter your Medicare card number`,\n },\n pattern: ValidationRulesForForm.onlyNumbers,\n minLength: {\n value: 10,\n message: `Medicare card number must be at least 10 digits`,\n },\n maxLength: {\n value: 10,\n message: `Medicare card number must be not exceed 10 digits`,\n },\n },\n },\n {\n fieldType: 'input',\n hide: false,\n label: 'Position on Card',\n dataType: 'document_extra',\n name: 'extraData.reference',\n rules: {\n required: {\n value: true,\n message: `Please enter your position on card`,\n },\n pattern: ValidationRulesForForm.onlyNumbers,\n maxLength: {\n value: 1,\n message: `Position on card must not exceed 1 digit`,\n },\n },\n },\n {\n fieldType: 'date',\n hide: false,\n dataType: 'text',\n label: 'Medicare Date of Expiry',\n name: 'idExpiry',\n rules: {\n required: {\n value: true,\n message: `Please select your Medicare expiry date`,\n },\n min: {\n value: 1,\n message: 'Minimum Days to be one',\n },\n max: {\n value: 31,\n message: 'Maximum Days to be 31 only',\n },\n },\n calendarConfig: {\n type: CalendarType.Gregorian,\n locale: LocaleType.English,\n day: {\n required: true,\n },\n month: {\n required: true,\n },\n year: {\n required: true,\n },\n\n //NOTE: Please do not uncomment, it is not restrictions in figma,\n // use it only for testing purpose...\n // age: {\n // max: 30,\n // min: 5,\n // message: 'Gap between the year should be between 5 and 10',\n // },\n message: 'Please select your Medicare expiry date',\n },\n },\n ],\n },\n },\n },\n },\n {\n type: 'PASSPORT',\n countries: {\n default: {\n default: {\n fields: [\n {\n fieldType: 'select',\n hide: false,\n dataType: 'text',\n label: 'Passport Issuing Country',\n name: 'country',\n rules: {\n required: {\n value: true,\n message: `Please select your passport issuing country`,\n },\n },\n options: getAllCountries(),\n placeholder: 'Select Issuing Country',\n style: {\n 'ff-form-field': {},\n },\n },\n {\n fieldType: 'input',\n hide: false,\n dataType: 'number',\n label: 'Passport Number',\n name: 'idNumber',\n rules: {\n required: {\n value: true,\n message: `Please enter your passport number`,\n },\n pattern: ValidationRulesForForm.alphaNumeric,\n minLength: {\n value: 1,\n message: `Passport number must be at least 1 character`,\n },\n maxLength: {\n value: 99,\n message: `Passport number must not exceed 99 characters`,\n },\n },\n },\n ],\n },\n },\n AUS: {\n default: {\n fields: [\n {\n fieldType: 'select',\n hide: false,\n dataType: 'text',\n label: 'Passport Issuing Country',\n name: 'country',\n rules: {\n required: {\n value: true,\n message: `Please select your passport issuing country`,\n },\n },\n options: getAllCountries(),\n placeholder: 'Select Issuing Country',\n style: {\n 'ff-form-field': {},\n },\n },\n {\n fieldType: 'input',\n hide: false,\n dataType: 'number',\n label: 'Passport Number',\n name: 'idNumber',\n rules: {\n required: {\n value: true,\n message: `Please enter your passport number`,\n },\n pattern: ValidationRulesForForm.alphaNumeric,\n minLength: {\n value: 8,\n message: `Passport number must be at least 8 characters`,\n },\n maxLength: {\n value: 9,\n message: `Passport number must not exceed 9 characters`,\n },\n },\n },\n ],\n },\n },\n },\n },\n ],\n\n instruction: {\n content: [\n {\n label: 'I confirm that all provided information is accurate.',\n },\n ],\n },\n cta: {\n label: 'Looks good, submit',\n },\n style: {\n 'ff-form-wrapper': {},\n 'ff-form-field': {},\n },\n};\n","import {\n Consent,\n IdSelection,\n Welcome,\n consentPage,\n idSelectionPage,\n welcomePage,\n} from '../features';\nimport Loading from '../features/Loading/Loading';\nimport { loadingPage } from '../features/Loading/loading.config';\nimport PersonalDetails from '../features/PersonalDetails/PersonalDetails';\nimport { personalDetailsPage } from '../features/PersonalDetails/personalDetails.config';\nimport { Review } from '../features/Review/Review';\nimport { reviewPage } from '../features/Review/review.config';\nimport { React_Form_IDS } from '../types/pages.type';\n\nimport type { ModuleInfo, NewPageConfig } from '../types/pages.type';\n\nexport const modules: Partial<Record<React_Form_IDS, ModuleInfo>> = {\n [React_Form_IDS.WELCOME]: {\n element: Welcome,\n disabled: false,\n id: React_Form_IDS.WELCOME,\n },\n [React_Form_IDS.CONSENT]: {\n element: Consent,\n disabled: true,\n id: React_Form_IDS.CONSENT,\n },\n [React_Form_IDS.DOCUMENT]: {\n element: IdSelection,\n disabled: false,\n id: React_Form_IDS.DOCUMENT,\n },\n [React_Form_IDS.REVIEW]: {\n element: Review,\n disabled: true,\n id: React_Form_IDS.REVIEW,\n },\n [React_Form_IDS.PERSONAL_DETAILS]: {\n element: PersonalDetails,\n disabled: false,\n id: React_Form_IDS.PERSONAL_DETAILS,\n },\n [React_Form_IDS.LOADING]: {\n element: Loading,\n disabled: true,\n id: React_Form_IDS.LOADING,\n },\n};\n\nexport const pagesConfig = {\n [React_Form_IDS.WELCOME]: welcomePage,\n [React_Form_IDS.CONSENT]: consentPage,\n [React_Form_IDS.DOCUMENT]: idSelectionPage,\n [React_Form_IDS.REVIEW]: reviewPage,\n [React_Form_IDS.PERSONAL_DETAILS]: personalDetailsPage,\n [React_Form_IDS.LOADING]: loadingPage,\n} satisfies NewPageConfig;\n","import clsx from 'clsx';\nimport { useSelector } from 'react-redux';\n\nimport FrankieDescription from '../../components/view/FrankieDescription/FrankieDescription';\nimport Heading from '../../components/view/FrankieHeading/Heading';\nimport FrankieInstructionList from '../../components/view/FrankieInstructionList/FrankieInstructionList';\nimport Wrapper from '../../components/view/Wrapper/Wrapper';\nimport { useEventHandler } from '../../hooks/useEventContext';\nimport { selectPageConfig } from '../../redux/slices/moduleSlice';\nimport { React_Form_IDS } from '../../types/pages.type';\n\nconst Welcome = () => {\n const { pageConfigs } = useSelector(selectPageConfig);\n const config = pageConfigs[React_Form_IDS.WELCOME];\n const { documentReady } = useEventHandler();\n\n return (\n <Wrapper\n onSubmit={documentReady}\n renderScreen={() => {\n return (\n <>\n <Heading\n label={config.title?.label}\n style={config?.title?.style}\n className={clsx('f1-text-3xl', 'f1-mb-2', 'f1-leading-[42px]')}\n />\n <FrankieDescription descriptions={config.descriptions} />\n <FrankieInstructionList {...config?.instructions} />\n </>\n );\n }}\n />\n );\n};\n\nexport default Welcome;\n","import { useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport FrankieCardList from '../../components/view/FrankieCardList/FrankieCardList';\r\nimport FrankieDescription from '../../components/view/FrankieDescription/FrankieDescription';\r\nimport Heading from '../../components/view/FrankieHeading/Heading';\r\nimport Wrapper from '../../components/view/Wrapper/Wrapper';\r\nimport { useEventHandler } from '../../hooks/useEventContext';\r\nimport { selectPageConfig } from '../../redux/slices/moduleSlice';\r\nimport { React_Form_IDS } from '../../types/pages.type';\r\nimport IdPrep from '../IdPreps/IdPrep';\r\nimport { FrankieCardQa } from '../qa/features.qa';\r\n\r\nimport type {\r\n DocumentTypes,\r\n IDocuments,\r\n IIdCardPageConfig,\r\n} from '../../appConfig.type';\r\n\r\nconst IdSelection = () => {\r\n const { pageConfigs } = useSelector(selectPageConfig);\r\n const config = pageConfigs[React_Form_IDS.DOCUMENT] as IIdCardPageConfig;\r\n\r\n const [prepScreen, setPrepScreen] = useState<DocumentTypes>();\r\n\r\n const { documentReady } = useEventHandler();\r\n\r\n const handlePrepScreen = (id: IDocuments) => {\r\n if (config?.showPreps) {\r\n setPrepScreen(id.type);\r\n } else {\r\n documentReady(id.type);\r\n }\r\n };\r\n\r\n const handleSubmit = () => {\r\n documentReady(prepScreen);\r\n };\r\n\r\n if (prepScreen) return <IdPrep onSubmit={handleSubmit} id={prepScreen} />;\r\n\r\n return (\r\n <Wrapper\r\n renderScreen={() => {\r\n return (\r\n <>\r\n <Heading\r\n label={config.title?.label}\r\n style={config?.title?.['style']}\r\n />\r\n <FrankieDescription descriptions={config.descriptions} />\r\n <FrankieCardList\r\n content={config?.documents}\r\n subtitle={config?.subtitle}\r\n onSelect={handlePrepScreen}\r\n testId={FrankieCardQa.wrapper}\r\n />\r\n </>\r\n );\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default IdSelection;\r\n","/* eslint-disable check-file/filename-naming-convention */\nimport { useContext } from 'react';\n\n\nimport { EventContext } from './useEventContext';\nimport { useReviewUpdateFactory } from './useReviewUpdateFactory.hook';\n\nimport type { PersonalDetailsDocument } from '../model/personalDetails.model';\nimport type { UseFormReturn } from 'react-hook-form';\n\n\nexport const usePersonalDetailsUpdateFactory = () => {\n\n const { oneSDK } = useContext(EventContext);\n const individual = oneSDK.individual();\n const { updateAddress, getScannedData } = useReviewUpdateFactory();\n const updateModule = (data: PersonalDetailsDocument) => {\n return new Promise<boolean>((resolve) => {\n const { setValue } = individual.access('name');\n setValue({\n givenName: data?.givenName?.toString(),\n familyName: data?.familyName?.toString(),\n middleName: data?.middleName?.toString(),\n displayName: data?.givenName + ' ' + data?.familyName,\n });\n updateAddress(data.address);\n resolve(true);\n });\n };\n\n const updateForm = (form: UseFormReturn<PersonalDetailsDocument>) => {\n const { reset } = form;\n const scannedData = getScannedData;\n reset({ ...scannedData, address: scannedData.address });\n };\n\n return { updateModule, updateForm };\n};\n","import { useSelector } from 'react-redux';\n\nimport Progress from '../../components/view/Progress/Progress';\nimport { selectPageConfig } from '../../redux/slices/moduleSlice';\nimport { React_Form_IDS } from '../../types/pages.type';\n\nimport type { IProgressPageConfig } from '../../appConfig.type';\n\nconst Loading = () => {\n const { pageConfigs } = useSelector(selectPageConfig);\n const config = pageConfigs[\n React_Form_IDS.LOADING\n ] as IProgressPageConfig;\n\n return (\n <Progress {...config}/>\n );\n};\n\nexport default Loading;","import { IStaticPageConfig } from '../../appConfig.type';\n\nexport const consentPage = {\n name: 'CONSENT',\n type: 'ocr',\n title: { label: 'Your consent matters', style: {} },\n descriptions: [\n {\n label: `Your personal information being collected and used in accordance with FrankieOne's <a href=\"https://www.frankieone.com/privacy\" target=\"_blank\">Privacy Policy</a>.`,\n style: {},\n },\n {\n label:\n 'In addition, for the purposes of verifying your identity, you consent to: a) the verification of my personal information with credit bureau header files (for verification only); b) against records held by official document issues or official record holders via third party systems; and c) verification agent(s) acting as a nominated intermediary in accordance with Australian Privacy Principles.',\n style: {},\n },\n {\n label:\n 'You consent to the use by third parties of the results of any verification checks on my identity for the purposes of monitoring and improving their verification services.',\n style: {},\n },\n ],\n checkbox: {\n content: [\n {\n label: 'I have read and agree the above disclosure',\n style: {},\n },\n ],\n style: {},\n },\n cta: { icon: '', label: 'Continue', style: {} },\n style: {},\n} satisfies IStaticPageConfig;\n// use satisfied for avoiding global runtime errors\n// it will impact consent component if you will be [const obj: IStaticPageConfig = { ... }]\n","import type { IProgressPageConfig } from \"../../appConfig.type\";\n\nexport const loadingPage:IProgressPageConfig = {\n name: 'LOADING',\n title: { label: 'Loading...' },\n descriptions: [\n {\n label: 'Data extracting...',\n },\n ],\n};","export enum REDUX_KEYS {\n LOADER = \"loader\",\n PAGE_CONFIG = \"page-config\",\n}\n","// eslint-disable-next-line check-file/filename-naming-convention\nimport { createSlice } from '@reduxjs/toolkit';\n\nimport { pagesConfig } from '../../constants/layoutMapper.const';\nimport { REDUX_KEYS } from '../constants/stateKey.enum';\n\nimport type { NewPageConfig } from '../../types/pages.type';\nimport type { PayloadAction } from '@reduxjs/toolkit';\n\nexport interface PageConfigState {\n pageConfigs: NewPageConfig;\n}\n\nconst initialState: PageConfigState = {\n pageConfigs: pagesConfig,\n};\n\nconst pageConfigSlice = createSlice({\n name: REDUX_KEYS.PAGE_CONFIG,\n initialState,\n reducers: {\n addPageConfig: (state, action: PayloadAction<NewPageConfig>) => {\n state.pageConfigs = { ...state.pageConfigs, ...action.payload };\n },\n },\n});\n\nexport const { addPageConfig } = pageConfigSlice.actions;\n\nexport const selectPageConfig = (state: {\n [REDUX_KEYS.PAGE_CONFIG]: PageConfigState;\n}) => state[REDUX_KEYS.PAGE_CONFIG];\n\nexport default pageConfigSlice.reducer;\n","// eslint-disable-next-line check-file/filename-naming-convention\nimport type {\n EventPayload,\n FormEvents,\n ScreenEventType,\n} from '@module/form/events';\nimport { screenEventMaps } from '@module/form/events';\n\nimport { React_Form_IDS } from '../types/pages.type';\n\nimport type { DocumentTypes } from '../appConfig.type';\nimport type { NewPageConfig } from '../types/pages.type';\n\nexport function getEventConfig(eventConfig: {\n pageConfigs: NewPageConfig;\n documentType?: DocumentTypes;\n eventType: keyof ScreenEventType;\n}): {\n eventConfig: EventPayload;\n eventName: keyof FormEvents;\n} {\n const currentModule =\n eventConfig.pageConfigs[eventConfig.pageConfigs.currentModule];\n const excludeTypes: React_Form_IDS[] = [React_Form_IDS.CONSENT];\n\n return {\n eventConfig: {\n inputInfo: {\n name: React_Form_IDS[currentModule?.name],\n ...(!excludeTypes.includes(React_Form_IDS[currentModule?.name]) && {\n type: currentModule?.['type'] || 'ocr',\n }),\n ...(eventConfig?.documentType && {\n documentType: eventConfig.documentType,\n }),\n },\n },\n eventName:\n screenEventMaps[React_Form_IDS[currentModule?.name]][\n eventConfig.eventType\n ],\n };\n}\n","// eslint-disable-next-line check-file/filename-naming-convention\nimport { createContext, useContext } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport type { EventHub } from '@module/common';\nimport type { FormEvents } from '@module/form/events';\nimport type { OneSdkContext } from '@module/types';\n\nimport { selectPageConfig } from '../redux/slices/moduleSlice';\nimport { getEventConfig } from '../utils/layout.util';\n\nimport type { ConfigType } from '../App';\nimport type { DocumentTypes } from '../appConfig.type';\n\nexport type EventContextType = {\n oneSDK: OneSdkContext;\n eventHub: EventHub<FormEvents>;\n config: ConfigType;\n googleApiKey: string;\n};\n\nexport const EventContext = createContext<EventContextType | undefined>(\n undefined,\n);\n\nexport const useEventHandler = () => {\n const { pageConfigs } = useSelector(selectPageConfig);\n\n const { eventHub } = useContext(EventContext);\n\n const documentReady = (documentType?: DocumentTypes) => {\n const { eventName, eventConfig } = getEventConfig({\n pageConfigs: pageConfigs,\n documentType: documentType,\n eventType: 'ready',\n });\n eventHub.emit(eventName, eventConfig);\n };\n\n const documentLoaded = () => {\n const { eventName, eventConfig } = getEventConfig({\n pageConfigs: pageConfigs,\n eventType: 'loaded',\n });\n\n eventHub.emit(eventName, eventConfig);\n };\n\n return { documentReady, documentLoaded };\n};\n","import clsx from 'clsx';\nimport { useEffect } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { ConfigCSSKeys } from '../../appConfig.type';\nimport { modules } from '../../constants/layoutMapper.const';\nimport { useEventHandler } from '../../hooks/useEventContext';\nimport { selectPageConfig } from '../../redux/slices/moduleSlice';\nimport { React_Form_IDS } from '../../types/pages.type';\n\nconst MainLayout = () => {\n const { pageConfigs } = useSelector(selectPageConfig);\n\n const { documentLoaded } = useEventHandler();\n\n const eventExcludeIn = [React_Form_IDS.LOADING];\n\n useEffect(() => {\n if (pageConfigs?.currentModule && !eventExcludeIn.includes(pageConfigs.currentModule)) {\n documentLoaded();\n }\n }, [pageConfigs]);\n\n const ActiveComponent = modules[pageConfigs.currentModule]?.element;\n \n if (!ActiveComponent) return null;\n\n return (\n <div\n className={clsx(\n 'f1-flex',\n 'f1-flex-col',\n 'f1-justify-between',\n 'tablet:f1-justify-normal',\n 'f1-h-full',\n 'f1-w-full',\n 'tablet:f1-max-w-[442px]',\n ConfigCSSKeys.wrapper,\n )}\n style={\n pageConfigs[pageConfigs.currentModule]?.['style']?.[\n ConfigCSSKeys.wrapper\n ]\n }\n >\n <ActiveComponent />\n </div>\n );\n};\n\nexport default MainLayout;\n","import { useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { useConfigFactory } from \"../../hooks/useConfigFactory.hooks\";\nimport { MainLayout } from \"../../layout\";\nimport {\n addPageConfig,\n selectPageConfig,\n} from \"../../redux/slices/moduleSlice\";\nimport { React_Form_IDS } from \"../../types/pages.type\";\n\nconst ScreenWrapper = ({ config }) => {\n \n const { pageConfigs } = useSelector(selectPageConfig);\n\n const dispatch = useDispatch();\n\n const currModuleName = React_Form_IDS[config?.name] ?? React_Form_IDS.WELCOME;\n\n const { mergeAndReplaceConfig } = useConfigFactory();\n\n useEffect(() => {\n dispatch(\n addPageConfig({\n currentModule: currModuleName,\n [currModuleName]: mergeAndReplaceConfig(\n pageConfigs[currModuleName] ,\n config,\n currModuleName,\n ),\n })\n );\n }, []);\n\n return <MainLayout />;\n};\n\nexport default ScreenWrapper;\n","import { createSlice } from \"@reduxjs/toolkit\";\n\nimport { REDUX_KEYS } from \"../constants/stateKey.enum\";\n\nimport type { PayloadAction } from \"@reduxjs/toolkit\";\n\nexport type LoaderDetails = {\n label?: string;\n descriptions?: string[];\n};\n\nexport type LoaderState = LoaderDetails & {\n loading?: boolean;\n}\n\ntype ActionPayloadProps = Partial<LoaderDetails>;\n\nconst initialState: LoaderState = {\n loading: false,\n label: \"Loading...\",\n};\n\nexport const loaderSlice = createSlice({\n name: REDUX_KEYS.LOADER,\n initialState,\n reducers: {\n startLoading: (state, action: PayloadAction<ActionPayloadProps>) => {\n state.loading = true;\n state.label = action?.payload?.label ?? state.label;\n state.descriptions = action?.payload?.descriptions;\n },\n\n stopLoading: (state) => {\n state.loading = false;\n state.label = undefined;\n state.descriptions = undefined;\n },\n },\n});\n\nexport const { startLoading, stopLoading } = loaderSlice.actions;\n\nexport const selectLoading = (state: { loader: LoaderState }) => state.loader;\n\nexport default loaderSlice.reducer;\n","import { configureStore } from '@reduxjs/toolkit';\n\nimport { REDUX_KEYS } from './constants/stateKey.enum';\nimport loaderReducer from './slices/loaderSlice';\nimport pagesConfigReducer from './slices/moduleSlice';\n\n\nexport const store = configureStore({\n reducer: {\n [REDUX_KEYS.LOADER]: loaderReducer,\n [REDUX_KEYS.PAGE_CONFIG]: pagesConfigReducer,\n },\n});\n","import { Provider } from 'react-redux';\n\nimport type { EventHub } from '@module/common';\nimport type { OneSdkContext } from '@module/types';\n\n// redux store is required to initialise first\n// eslint-disable-next-line import/order\nimport { EventContext } from './hooks/useEventContext';\nimport ScreenWrapper from './pages/ScreenWrapper/ScreenWrapper';\nimport { store } from './redux/store';\n\nimport type { ReactFormIdsKeys } from './types/pages.type';\nimport type { PartialObjectDeep } from 'type-fest/source/partial-deep';\n\nexport type ScreenInfo = {\n name: ReactFormIdsKeys;\n};\n\nexport type ConfigType = PartialObjectDeep<\n PartialObjectDeep<ScreenInfo, Record<string, never>>,\n Record<string, never>\n> &\n ScreenInfo;\n\nexport interface AppProps {\n oneSDK: OneSdkContext;\n eventHub: EventHub;\n config: ConfigType;\n googleApiKey: string;\n}\n\nconst App = ({ oneSDK, eventHub, config, googleApiKey }: AppProps) => {\n return (\n <Provider store={store}>\n <EventContext.Provider value={{ oneSDK, eventHub, config, googleApiKey }}>\n <ScreenWrapper config={config} />\n </EventContext.Provider>\n </Provider>\n );\n};\n\nexport default App;\n","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!./f1-style.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!./f1-style.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!./fonts.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!./fonts.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!./styles.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!./styles.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { CSSProperties } from 'react';\n\nexport const formStyle: CSSProperties = {\n height: '100%',\n textAlign: 'left',\n background: 'white',\n display: 'flex',\n justifyContent: 'center',\n overflow: 'auto',\n};\n","// eslint-disable-next-line check-file/filename-naming-convention\nimport ReactDOM from 'react-dom/client';\n\nimport { feat } from '@feature-flags';\nimport { loadAsyncAsset } from '@module/common';\nimport { defineWrapper } from '@module/common/modules/defineModule';\nimport type { FormModule } from '@module/form/definition';\nimport type { FormEvents, ScreenEventType } from '@module/form/events';\n\nimport App from './App';\n\nimport '../../../../styles/f1-style.css';\nimport '../../../../styles/fonts/fonts.css';\nimport '../../../../styles/styles.css';\nimport { formStyle } from './constants/styles.const';\nimport { React_Form_IDS } from './types/pages.type';\n\nimport type { FontConfig } from './appConfig.type';\n\n// Classlist for the form container\nconst CONTAINER_CLASSLIST = ['form', 'react', 'ff-react-form'];\n\nexport const initialise = defineWrapper<FormModule>(\n 'react',\n async (shared, options) => {\n const { mountElement, eventHub } = options;\n const {\n oneSdkInstance,\n localEventHub,\n recipe: {\n form: { provider },\n },\n } = shared;\n // Retrieving the screen info from the recipe, default to WELCOME\n const config = provider.name === 'react' && provider?.config;\n const googleApiKey =\n (provider.name === 'react' && provider?.googleApiKey) ??\n process.env.PUBLIC_GOOGLE_MAP_API ??\n '';\n const currentScreenEvent = (type: keyof ScreenEventType = 'ready') =>\n `form:${\n React_Form_IDS[config.name ?? 'WELCOME']\n }:${type}` as keyof FormEvents;\n\n try {\n // Clearing the mount element before attaching the form\n mountElement.innerHTML = '';\n\n // Adding specified class list to the mount element\n mountElement.classList.add(...CONTAINER_CLASSLIST);\n\n // Load font dynamically based on config\n const { name: fontName, url: fontUrl } =\n (config?.style?.['font'] as FontConfig) ?? {};\n\n await downloadFont(fontUrl);\n\n // Retrieving the wrapping mode from the feature flag\n const wrappingMode = feat('modules.form.wrappingMode');\n\n // Dynamically attaching the required elements based on wrapping mode\n const [styledMountElement, _wrapperElement, _windowContainer] =\n await ((): Promise<[HTMLElement, Node, Window]> => {\n if (wrappingMode === 'shadow')\n return attachShadow(mountElement, fontName);\n return attachDiv(mountElement, fontName);\n })();\n\n // Rendering the React app using styledMountElement\n const reactRoot = ReactDOM.createRoot(styledMountElement);\n reactRoot.render(\n <App\n oneSDK={oneSdkInstance}\n eventHub={eventHub}\n config={config}\n googleApiKey={googleApiKey}\n />,\n );\n\n // We are removing the previous instance of the form and cleaning up\n eventHub.on(currentScreenEvent(), () => {\n mountElement.innerHTML = '';\n reactRoot.unmount();\n });\n eventHub.map(\n [currentScreenEvent('loaded'), currentScreenEvent()],\n localEventHub,\n );\n } catch (error) {\n // Emitting a 'failed_loading' event in case of an error\n localEventHub.emit(currentScreenEvent('failed'), { message: error });\n }\n\n return {\n cleanup: () => {},\n };\n },\n);\n\nconst downloadFont = async (fontUrl: string) => {\n if (fontUrl) {\n const isFontLoaded = Array.from(\n document.querySelectorAll('link[rel=\"stylesheet\"]'),\n ).some((link: HTMLLinkElement) => link?.href === fontUrl);\n\n // Load font if it's not already loaded\n if (!isFontLoaded) {\n await loadAsyncAsset(fontUrl, 'style');\n }\n }\n};\n\nconst attachStyles = (mountElement: HTMLElement, fontName?: string) => {\n // Creating an internal mount element as a child of the provided mount element\n const internalMountElement = document.createElement('div');\n mountElement.appendChild(internalMountElement);\n Object.assign(internalMountElement.style, {\n ...formStyle,\n ...(fontName && { fontFamily: fontName }),\n });\n return internalMountElement;\n};\n\n// Function to attach the mount element to a div\nconst attachDiv = async (\n mountElement: HTMLElement,\n fontName?: string,\n): Promise<[HTMLElement, Node, Window]> => {\n const internalMountElement = attachStyles(mountElement, fontName);\n return [internalMountElement, mountElement, window];\n};\n\n// Function to attach the mount element to a shadow root\nconst attachShadow = async (\n mountElement: HTMLElement,\n fontName?: string,\n): Promise<[HTMLElement, Node, Window]> => {\n // Creating a shadow root for the provided mount element\n const shadowRoot = mountElement.attachShadow({ mode: 'open' });\n const internalMountElement = attachStyles(mountElement, fontName);\n return [internalMountElement, shadowRoot, window];\n};\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_IMPORT_3___","___CSS_LOADER_URL_IMPORT_4___","___CSS_LOADER_URL_IMPORT_5___","___CSS_LOADER_URL_IMPORT_6___","___CSS_LOADER_URL_IMPORT_7___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","___CSS_LOADER_URL_REPLACEMENT_4___","___CSS_LOADER_URL_REPLACEMENT_5___","___CSS_LOADER_URL_REPLACEMENT_6___","___CSS_LOADER_URL_REPLACEMENT_7___","alpha2ToAlpha3","alpha2","country","alpha3","alpha3ToAlpha2","alpha3ToName","name","allCountries","Object","keys","filter","code","length","map","value","label","icons","loader","checkbox","rightArrowIcon","driverLicenseIcon","passportIcon","medicalIcon","driversLicenseBanner","passportBanner","mediCareBanner","magnify","magnifyError","alertCircleOutline","close","chevronDown","chevronDownError","closeError","passportPage","title","descriptions","instructions","content","image","cta","mediCarePage","icon","ConfigCSSKeys","DocumentKeys","values","style","onChange","testId","container","input","inputWrapper","className","clsx","instruction","index","checkboxItem","type","e","item","isSelected","target","checked","htmlFor","description","dangerouslySetInnerHTML","__html","sanitize","header","BaseButton","disabled","props","FrankieButton","renderScreen","onSubmit","ctaInfo","pageConfigs","selectPageConfig","currModule","setModule","useState","modules","currentModule","useEffect","configInfo","onValidate","isValid","prevModule","onClick","button","driversLicensePage","instructionItem","contentWrapper","src","alt","staticScreenConfig","DRIVERS_LICENCE","PASSPORT","NATIONAL_HEALTH_ID","configData","subtitle","onSelect","frankieCard","useCallback","documentItem","tabIndex","postIcon","documents","FrankieCardQa","wrapper","idSelectionPage","welcomePage","isLoading","renderDescription","idx","progressItem","progressWrapper","viewBox","fill","xmlns","d","FrankieTextField","forwardRef","inputClassName","counter","error","errorText","placeholder","readOnly","helperText","tag","badge","closeButton","isSearchIcon","showPassword","closeCta","onBlur","onFocus","onKeyDown","min","max","minLength","maxLength","pattern","required","autoComplete","configYear","hideError","ref","inputLength","setInputLength","passwordVisibility","setPasswordVisibility","onInput","currentTarget","intent","size","singleIcon","noStyles","control","rules","defaultValue","shouldUnregister","textProps","render","field","fieldState","validateResult","validate","undefined","message","getError","errors","split","replace","reduce","prev","curr","useFrankieMenu","parentRef","useRef","isOpen","setIsOpen","handleClose","handleOpen","handleToggle","FrankieSelectField","supportingText","options","autocomplete","clearable","emptyText","selectedIndex","setSelectedIndex","filterText","setFilterText","inputRef","selectedValueLabel","useMemo","find","filteredOptions","toLowerCase","trim","startsWith","handleSelectOption","option","currentIndex","findIndex","handleKeyDown","key","preventDefault","prevIndex","newIdx","Math","selectedOption","document","querySelector","scrollIntoView","behavior","block","current","role","focus","SelectFormField","selectProps","formState","ValidationRulesForForm","validateLength","data","toString","onlyAlphabets","onlyNumbers","alphaNumeric","MonthNameLength","CalendarType","LocaleType","isExpiry","calendarConfig","isValidating","standardForm","defaultValues","dd","mm","yyyy","mode","standardController","day","watch","month","year","parseInt","getErrors","fieldMonth","date","setValue","setError","isDirty","trigger","calenderType","Gregorian","localeType","English","monthNameLength","SHORT","months","totalMonths","Islamic","IslamicUmalqura","Date","monthName","Intl","DateTimeFormat","calendar","formatToParts","part","monthGenerator","locale","RegExp","maxDays","calendarType","isNaN","lastDayOfMonth","formattedDate","getMaxDaysInMonth","inputYear","age","currentYear","getFullYear","currentValue","onActionChange","config","addressFields","unitNumber","streetNumber","streetName","town","state","postcode","ADDRESS_INFO_ENUM","AddressType","constructor","result","addressComponents","address_components","formattedAddress","formatted_address","getAddressComponent","component","c","types","includes","long_name","assign","this","placeId","place_id","buildingName","PREMISE","floor","FLOOR","sector","SUBLOCALITY_LEVEL_1","street","ROUTE","STREET_ADDRESS","city","LOCALITY","ADMINISTRATIVE_AREA_LEVEL_1","COUNTRY","postalCode","POSTAL_CODE","FrankieTextArea","actionBtn","autoSuggestion","autoSuggestShowAfter","textAreaRef","handleClear","height","scrollHeight","maxHeight","overflowY","autoResize","textarea","text","TextArea","isManual","addressOptions","setAddressOptions","getAddressList","googleApiKey","useContext","EventContext","debounce","initializeGoogleMaps","Promise","resolve","addressList","placeServiceRequest","componentRestrictions","google","maps","places","AutocompleteService","getPlacePredictions","predictions","status","PlacesServiceStatus","OK","getFullAddress","address","geocodeRequest","Geocoder","geocode","results","GeocoderStatus","source","scripts","getElementsByTagName","i","getAttribute","isScriptAlreadyIncluded","loadAsyncAsset","useAddressSearch","manualAddressConfig","manual","setIsManual","_formValues","isAddedByCustomer","restProps","fields","select","form","getFormConfig","idType","region","documentConfig","countries","documentFields","default","personalConfig","personalFields","getValues","documentInfo","formFields","configField","formConfig","formWrapper","formField","hide","fieldType","getUniqueList","combinedList","uniqueList","forEach","searchedIndex","uniqueItem","countriesInfo","AUS","alpha3Code","getStates","sort","a","b","localeCompare","getAllCountries","AddressInfo","Address","super","ReviewModelRecords","sortedData","getDate","ocrResult","runDate","extraData","ocr_process_run_date","dateA","dateB","getTime","records","ReviewDocument","Document","str","dob","dateOfBirth","expiryDate","idExpiry","dateOfExpiry","givenName","firstName","middleName","familyName","lastName","issuingState","issuingCountry","idNumber","reference","document_number","addressId","addressType","suburb","fullAddress","longForm","address1","manualConsentPage","manualWelcomePage","AU","numberOfIDs","NZ","useConfigFactory","oneSDK","individual","addGlobalRules","docConfig","additionalFields","addFieldsRestrictions","pKey","access","getValue","entries","filteredConfig","mergeAndReplaceConfig","defaultConfig","newConfig","currModuleName","mergedConfig","pickManualConfig","needToMergeList","REVIEW","getMergeReview","config1","config2","doc","objValue","srcValue","Array","isArray","useReviewUpdateFactory","getScannedData","addresses","fieldIsVisible","updateAddress","streetType","addressRefactored","acc","addOrUpdateAddress","addAddress","updateModule","namesObj","displayName","namesRefactored","fromFormat","toFormat","documentObj","idSubType","reverse","join","docsRefactored","documentId","updateDocument","updateForm","reset","scannedData","getUpdatedGlobalConfig","PersonalDetailsDocument","commonReviewFieldConfig","dataType","standardDate","personalDetailsPage","personal","showToggle","reviewPage","ACT","NSW","NT","QLD","SA","TAS","VIC","WA","WELCOME","element","documentReady","useEventHandler","CONSENT","eventContext","selectedItem","allConsent","consent","addConsent","submit","DOCUMENT","prepScreen","setPrepScreen","handlePrepScreen","showPreps","currentConfig","setCurrentConfig","handleSubmit","clearErrors","individualData","then","PERSONAL_DETAILS","usePersonalDetailsUpdateFactory","LOADING","pagesConfig","REDUX_KEYS","initialState","pageConfigSlice","PAGE_CONFIG","reducers","addPageConfig","action","payload","actions","getEventConfig","eventConfig","excludeTypes","inputInfo","documentType","eventName","eventType","createContext","eventHub","emit","documentLoaded","eventExcludeIn","ActiveComponent","dispatch","loaderSlice","LOADER","loading","startLoading","stopLoading","store","reducer","Provider","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","formStyle","textAlign","background","display","justifyContent","overflow","CONTAINER_CLASSLIST","initialise","shared","mountElement","oneSdkInstance","localEventHub","recipe","provider","currentScreenEvent","innerHTML","classList","add","fontName","url","fontUrl","downloadFont","wrappingMode","styledMountElement","_wrapperElement","_windowContainer","attachShadow","attachDiv","reactRoot","on","unmount","cleanup","from","querySelectorAll","some","link","href","attachStyles","internalMountElement","createElement","appendChild","fontFamily","window","shadowRoot"],"sourceRoot":""}