@hhgtech/hhg-components 1.29.365 → 1.29.367-beta-1

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 (531) hide show
  1. package/build/{InputDate-2826cf5c.js → InputDate-8f007275.js} +19 -19
  2. package/build/{LastPeriod-bb33df00.js → LastPeriod-4f73882b.js} +1 -1
  3. package/build/{Locale-2022f5e8.js → Locale-c989d3b7.js} +1 -0
  4. package/build/{MobileBottomNavigationIcon-c88db9fd.js → MobileBottomNavigationIcon-0a69a68a.js} +3 -3
  5. package/build/{Spinner-cf864efb.js → Spinner-d14008da.js} +1 -1
  6. package/build/{WhatsApp-037000e0.js → WhatsApp-84a7f40c.js} +1 -1
  7. package/build/adapters.js +19 -19
  8. package/build/atoms.js +48 -48
  9. package/build/babyGrowth.js +83 -83
  10. package/build/cache.js +2 -2
  11. package/build/care.js +17 -17
  12. package/build/careBookingSearchBar.js +14 -14
  13. package/build/careBookingSearchBarV2.js +15 -15
  14. package/build/components/atoms/logo/index.d.ts +1 -1
  15. package/build/components/mantine/phoneInput/PhoneInput.d.ts +15 -0
  16. package/build/components/mantine/phoneInput/index.d.ts +1 -0
  17. package/build/components/navigationV2/components/molecules/navigationBar/index.styled.d.ts +7 -0
  18. package/build/components/navigationV2/hooks/useNavConfig.d.ts +1 -0
  19. package/build/components.js +96 -96
  20. package/build/{constants-ce0df464.js → constants-9f18c88d.js} +1 -1
  21. package/build/{constants-9d87a694.js → constants-f05b2ff1.js} +1 -0
  22. package/build/constants.js +3 -3
  23. package/build/constantsDomainLocales.js +3 -1
  24. package/build/constantsRiskScreener.js +2 -2
  25. package/build/constantsSite.js +2 -2
  26. package/build/{core-83ce1989.js → core-aa5d6303.js} +1 -1
  27. package/build/{dataTransform-c0878bf7.js → dataTransform-7c508ba9.js} +1 -1
  28. package/build/ecom.js +4 -4
  29. package/build/{editor-344dc019.js → editor-8bec7370.js} +11 -11
  30. package/build/embeddedHeathToolCards_babyGrowth.js +23 -23
  31. package/build/embeddedHeathToolCards_babyPoop.js +19 -19
  32. package/build/embeddedHeathToolCards_babyVaccine.js +22 -22
  33. package/build/embeddedHeathToolCards_bmi_bmi.js +25 -25
  34. package/build/embeddedHeathToolCards_bmrBmr.js +25 -25
  35. package/build/embeddedHeathToolCards_dueDate_dueDate.js +22 -22
  36. package/build/embeddedHeathToolCards_ovulation_ovulation.js +22 -22
  37. package/build/embeddedHeathToolCards_pwg_pwg.js +26 -26
  38. package/build/embeddedHeathToolCards_targetHeartRate.js +27 -27
  39. package/build/esm/{InputDate-b8757a5a.js → InputDate-f2c9d1a1.js} +19 -19
  40. package/build/esm/{LastPeriod-edc8dc39.js → LastPeriod-620972a8.js} +1 -1
  41. package/build/esm/{Locale-2cf2d24e.js → Locale-1699af63.js} +1 -0
  42. package/build/esm/{MobileBottomNavigationIcon-4a6ea924.js → MobileBottomNavigationIcon-12f762d1.js} +3 -3
  43. package/build/esm/{Spinner-512986ff.js → Spinner-7e72d6f0.js} +1 -1
  44. package/build/esm/{WhatsApp-4cc85490.js → WhatsApp-448a0a2a.js} +1 -1
  45. package/build/esm/adapters.js +19 -19
  46. package/build/esm/atoms.js +48 -48
  47. package/build/esm/babyGrowth.js +83 -83
  48. package/build/esm/cache.js +2 -2
  49. package/build/esm/care.js +17 -17
  50. package/build/esm/careBookingSearchBar.js +14 -14
  51. package/build/esm/careBookingSearchBarV2.js +15 -15
  52. package/build/esm/components/atoms/logo/index.d.ts +1 -1
  53. package/build/esm/components/mantine/phoneInput/PhoneInput.d.ts +15 -0
  54. package/build/esm/components/mantine/phoneInput/index.d.ts +1 -0
  55. package/build/esm/components/navigationV2/components/molecules/navigationBar/index.styled.d.ts +7 -0
  56. package/build/esm/components/navigationV2/hooks/useNavConfig.d.ts +1 -0
  57. package/build/esm/components.js +96 -96
  58. package/build/esm/{constants-3598f903.js → constants-28e7560b.js} +1 -0
  59. package/build/esm/{constants-4c2024f8.js → constants-ccd5dbdc.js} +1 -1
  60. package/build/esm/constants.js +3 -3
  61. package/build/esm/constantsDomainLocales.js +3 -1
  62. package/build/esm/constantsRiskScreener.js +2 -2
  63. package/build/esm/constantsSite.js +2 -2
  64. package/build/esm/{core-bfe09c7d.js → core-1d527e2d.js} +1 -1
  65. package/build/esm/{dataTransform-902ed2ea.js → dataTransform-6ef05aff.js} +1 -1
  66. package/build/esm/ecom.js +4 -4
  67. package/build/esm/{editor-cc247f42.js → editor-9951db29.js} +11 -11
  68. package/build/esm/embeddedHeathToolCards_babyGrowth.js +23 -23
  69. package/build/esm/embeddedHeathToolCards_babyPoop.js +19 -19
  70. package/build/esm/embeddedHeathToolCards_babyVaccine.js +22 -22
  71. package/build/esm/embeddedHeathToolCards_bmi_bmi.js +25 -25
  72. package/build/esm/embeddedHeathToolCards_bmrBmr.js +25 -25
  73. package/build/esm/embeddedHeathToolCards_dueDate_dueDate.js +22 -22
  74. package/build/esm/embeddedHeathToolCards_ovulation_ovulation.js +22 -22
  75. package/build/esm/embeddedHeathToolCards_pwg_pwg.js +26 -26
  76. package/build/esm/embeddedHeathToolCards_targetHeartRate.js +27 -27
  77. package/build/esm/footer.js +21 -21
  78. package/build/esm/gAssets.js +2 -2
  79. package/build/esm/{healthTools-66885777.js → healthTools-5381cf22.js} +1 -1
  80. package/build/esm/healthToolsCardWrapper.js +18 -18
  81. package/build/esm/healthToolsForm.js +33 -33
  82. package/build/esm/hooks.js +13 -13
  83. package/build/esm/i18n-values/zh-CN.js +855 -0
  84. package/build/esm/i18n.js +3 -2
  85. package/build/esm/i18nV2.js +2 -2
  86. package/build/esm/{index-07e18a19.js → index-00fda2dd.js} +16 -16
  87. package/build/esm/{index-21e5b287.js → index-011af391.js} +16 -16
  88. package/build/esm/{index-eb362db2.js → index-0b8ce204.js} +4 -4
  89. package/build/esm/{index-362575fc.js → index-0ddcfd37.js} +1 -1
  90. package/build/esm/{index-40225988.js → index-1058eb67.js} +2 -2
  91. package/build/esm/{index-36215bbb.js → index-148c2314.js} +2 -2
  92. package/build/esm/{index-d8793d43.js → index-1e212f93.js} +1 -1
  93. package/build/esm/{index-a434a8b0.js → index-2014e3d8.js} +6 -6
  94. package/build/esm/{index-6aaaa064.js → index-21a9b593.js} +17 -17
  95. package/build/esm/{index-ff4422a9.js → index-21b32fea.js} +1 -1
  96. package/build/esm/{index-033e007f.js → index-3425aed4.js} +2 -2
  97. package/build/esm/{index-113a02c3.js → index-360ef4a1.js} +32 -32
  98. package/build/esm/{index-ca87b257.js → index-3aa3500d.js} +6 -6
  99. package/build/esm/{index-869ee1da.js → index-3c16f896.js} +39 -2
  100. package/build/esm/{index-c8ee8be9.js → index-3e211e7e.js} +2 -2
  101. package/build/esm/{index-70257e2c.js → index-427d835b.js} +1 -1
  102. package/build/esm/{index-ec349ad0.js → index-430a6926.js} +11 -11
  103. package/build/esm/{index-19b06267.js → index-44b79bf4.js} +7 -7
  104. package/build/esm/{index-ac051afc.js → index-482c49c1.js} +1 -1
  105. package/build/esm/{index-e04b0b0c.js → index-4bfaf523.js} +1 -1
  106. package/build/esm/{index-073f4b2d.js → index-51c83600.js} +24 -24
  107. package/build/esm/{index-1a674f0f.js → index-52ca45b5.js} +5 -5
  108. package/build/esm/{index-0114550f.js → index-560a3c2a.js} +18 -18
  109. package/build/esm/{index-4a99d310.js → index-58005197.js} +13 -13
  110. package/build/esm/{index-ce44f804.js → index-652dfc24.js} +2 -2
  111. package/build/esm/{index-84168f61.js → index-714afacb.js} +6 -6
  112. package/build/esm/{index-ad36264b.js → index-72271478.js} +21 -21
  113. package/build/esm/{index-027d9b5d.js → index-789af7ca.js} +2 -2
  114. package/build/esm/{index-bcf513d3.js → index-7aaa2c25.js} +13 -13
  115. package/build/esm/{index-524ee39f.js → index-7d24a7ca.js} +2 -2
  116. package/build/esm/{index-88680aef.js → index-8ad8b3d9.js} +3 -3
  117. package/build/esm/{index-95dd001e.js → index-9092bcdc.js} +17 -17
  118. package/build/esm/{index-5eccb83a.js → index-92797212.js} +2 -2
  119. package/build/esm/{index-efe10888.js → index-93265305.js} +16 -16
  120. package/build/esm/{index-266e57f0.js → index-972bfb0b.js} +7 -7
  121. package/build/esm/{index-d2f3b5a9.js → index-9979e4be.js} +22 -22
  122. package/build/esm/{index-e82453ec.js → index-9a2c8ed6.js} +3 -3
  123. package/build/esm/{index-4ab4dab8.js → index-9bf5d5f2.js} +1 -1
  124. package/build/esm/{index-43d20add.js → index-9d0dbbad.js} +3 -3
  125. package/build/esm/{index-19ef88f1.js → index-9dd19bbf.js} +25 -25
  126. package/build/esm/{index-6ab7141b.js → index-a159df4f.js} +2 -2
  127. package/build/esm/{index-45ccdf7b.js → index-a6fd9c37.js} +10 -10
  128. package/build/esm/{index-8124b117.js → index-a8ef3e1c.js} +1 -1
  129. package/build/esm/{index-e8d868cc.js → index-ac279ce5.js} +17 -17
  130. package/build/esm/{index-bf5b1e52.js → index-af160e51.js} +13 -13
  131. package/build/esm/{index-42454274.js → index-b36d3cf6.js} +3 -3
  132. package/build/esm/{index-fd27d404.js → index-b44926e4.js} +5 -5
  133. package/build/esm/{index-cf4b1a22.js → index-b7f2875d.js} +3 -3
  134. package/build/esm/{index-3e3d575f.js → index-ba0c5634.js} +31 -31
  135. package/build/esm/{index-1fe882a0.js → index-c00d3049.js} +13 -13
  136. package/build/esm/{index-e5ced018.js → index-c0e362ef.js} +17 -17
  137. package/build/esm/{index-f2bbe865.js → index-c122c778.js} +15 -15
  138. package/build/esm/{index-71ba6e70.js → index-c3e074e0.js} +6 -6
  139. package/build/esm/{index-fa2e9cee.js → index-c78ab674.js} +8 -8
  140. package/build/esm/{index-bc3932cc.js → index-c8bd39ba.js} +6 -6
  141. package/build/esm/{index-09393826.js → index-ce1a6956.js} +2 -2
  142. package/build/esm/{index-e272331a.js → index-cfca064e.js} +1 -1
  143. package/build/esm/{index-bd1df05c.js → index-d0f5bb1f.js} +3 -3
  144. package/build/esm/{index-7f10d6a3.js → index-d92ee82e.js} +2 -2
  145. package/build/esm/{index-f9bf90d4.js → index-de6a2d01.js} +52 -36
  146. package/build/esm/{index-a5b3371b.js → index-e1b34140.js} +18 -18
  147. package/build/esm/{index-b14c441b.js → index-e1d349e0.js} +16 -16
  148. package/build/esm/{index-b8acfd8d.js → index-f212d6e1.js} +2 -2
  149. package/build/esm/{index-586b4860.js → index-fe23cd80.js} +2 -2
  150. package/build/esm/index.js +117 -117
  151. package/build/esm/interfaces/constants/domainLocales.d.ts +2 -0
  152. package/build/esm/interfaces/constants/index.d.ts +1 -1
  153. package/build/esm/interfaces/types/Locale.d.ts +2 -1
  154. package/build/esm/interfaces/types/index.d.ts +1 -1
  155. package/build/esm/{labelSorting-e0ad276f.js → labelSorting-09142496.js} +4 -4
  156. package/build/esm/lead/LeadGenForm/LeadGenForm.d.ts +41 -0
  157. package/build/esm/lead/LeadGenForm/LeadGenForm.styled.d.ts +5 -0
  158. package/build/esm/lead/LeadGenForm/LeadGenThankYou.d.ts +20 -0
  159. package/build/esm/lead/LeadGenForm/index.d.ts +1 -0
  160. package/build/esm/lead/LeadGenForm/textField/index.d.ts +13 -0
  161. package/build/esm/lead/LeadGenForm/textField/index.styled.d.ts +11 -0
  162. package/build/esm/lead/LeadGenSubscriptionBox/LeadGenSubscriptionBoxContainer.d.ts +25 -0
  163. package/build/esm/lead/LeadGenSubscriptionBox/LeadGenSubscriptionBoxContext.d.ts +25 -0
  164. package/build/esm/lead/LeadGenSubscriptionBox/LeadGenSubscriptionBoxWrapper.d.ts +30 -0
  165. package/build/esm/lead/LeadGenSubscriptionBox/index.d.ts +1 -0
  166. package/build/esm/lead/helpers.d.ts +51 -1
  167. package/build/esm/lead/index.d.ts +2 -1
  168. package/build/esm/lead/layouts/lightbox/formContext.d.ts +2 -1
  169. package/build/esm/lead/services/index.d.ts +14 -0
  170. package/build/esm/lead.css +1 -1
  171. package/build/esm/lead.js +1438 -443
  172. package/build/esm/{logoIcon-1ba212f1.js → logoIcon-0929cd77.js} +3 -2
  173. package/build/esm/mantine.js +25 -25
  174. package/build/esm/misc.js +17 -17
  175. package/build/esm/miscGetDynamicHealthTool.js +4 -4
  176. package/build/esm/miscGetSocialList.js +8 -8
  177. package/build/esm/miscScreenSizeContext.js +1 -1
  178. package/build/esm/mobileBottomNavigation.js +5 -5
  179. package/build/esm/mobileBottomNavigationIcon.js +5 -5
  180. package/build/esm/molecules.js +73 -73
  181. package/build/esm/moleculesArticleCard.js +6 -6
  182. package/build/esm/moleculesArticleCardV2.js +16 -16
  183. package/build/esm/navigation.js +45 -45
  184. package/build/esm/navigationLogoutPopup.js +9 -9
  185. package/build/esm/navigationProfileButton.js +23 -23
  186. package/build/esm/onboardingV2.js +29 -29
  187. package/build/esm/organisms.js +49 -49
  188. package/build/esm/{post-606f0f2e.js → post-2932fd2f.js} +2 -2
  189. package/build/esm/profileNavigation.js +19 -19
  190. package/build/esm/progressBar.js +1 -1
  191. package/build/esm/pwg.js +22 -22
  192. package/build/esm/ssoV2/api/featureFlag.d.ts +2 -1
  193. package/build/esm/ssoV2.js +51 -39
  194. package/build/esm/{store-2c045631.js → store-6489c9d4.js} +4 -4
  195. package/build/esm/subot/components/userInfoForm/utils.d.ts +22 -0
  196. package/build/esm/subot.js +88 -58
  197. package/build/esm/surveyOrPremiumBanner.js +32 -32
  198. package/build/esm/surveyQuestionCard.js +10 -10
  199. package/build/esm/{surveyThankyouCard-6bb0f764.js → surveyThankyouCard-2f45e762.js} +5 -5
  200. package/build/esm/together.js +55 -55
  201. package/build/esm/togetherApiUtils.js +4 -4
  202. package/build/esm/togetherAtoms.js +30 -30
  203. package/build/esm/togetherComponentGlobalContext.js +4 -4
  204. package/build/esm/togetherMolecules.js +50 -50
  205. package/build/esm/togetherMoleculesCardAuthor.js +28 -28
  206. package/build/esm/togetherMoleculesPostImagePreview.js +11 -11
  207. package/build/esm/togetherMoleculesProfileDetail.js +38 -38
  208. package/build/esm/togetherOrganisms.js +49 -49
  209. package/build/esm/togetherRichTextEditor.js +17 -17
  210. package/build/esm/togetherShareBox.js +10 -10
  211. package/build/esm/{treePopoverMenu-2cff3991.js → treePopoverMenu-f0ea5078.js} +19 -19
  212. package/build/esm/{types-b14fe919.js → types-5c440959.js} +2 -2
  213. package/build/esm/types.js +2 -2
  214. package/build/esm/{useCategory-f18c0ca6.js → useCategory-69dec20b.js} +18 -5
  215. package/build/esm/{useHealthToolCache-429c2a46.js → useHealthToolCache-3d3494e4.js} +1 -1
  216. package/build/esm/{useMantineLocale-5d84852d.js → useMantineLocale-ddbff538.js} +8 -6
  217. package/build/esm/{usePlacesAutocomplete-23b56299.js → usePlacesAutocomplete-67f4d081.js} +1 -1
  218. package/build/esm/{useScreenSize-719df3e3.js → useScreenSize-8a1664ca.js} +2 -2
  219. package/build/esm/useTogetherAuthRequiredAction.js +9 -9
  220. package/build/esm/{utils-05acf47b.js → utils-0325890b.js} +3 -3
  221. package/build/esm/{utils-d3b41fb0.js → utils-05c9cc70.js} +2 -2
  222. package/build/esm/{utils-57c4db5e.js → utils-6a02202a.js} +2 -2
  223. package/build/esm/{utils-8fc44df9.js → utils-b6068392.js} +4 -4
  224. package/build/esm/vaccination.js +21 -21
  225. package/build/footer.js +21 -21
  226. package/build/gAssets.js +2 -2
  227. package/build/{healthTools-600e27a3.js → healthTools-1c9ac306.js} +1 -1
  228. package/build/healthToolsCardWrapper.js +18 -18
  229. package/build/healthToolsForm.js +33 -33
  230. package/build/hooks.js +13 -13
  231. package/build/i18n-values/zh-CN.js +866 -0
  232. package/build/i18n.js +2 -1
  233. package/build/i18nV2.js +1 -1
  234. package/build/{index-c64cca52.js → index-06ff5634.js} +13 -13
  235. package/build/{index-d449b2b3.js → index-074f0cff.js} +2 -2
  236. package/build/{index-d28ba3a1.js → index-0925bf63.js} +24 -24
  237. package/build/{index-930dd016.js → index-0a6b1a7f.js} +16 -16
  238. package/build/{index-a989fca4.js → index-0d05b4ac.js} +17 -17
  239. package/build/{index-334ab8f5.js → index-1319c52e.js} +6 -6
  240. package/build/{index-ca42cae5.js → index-15ad9796.js} +2 -2
  241. package/build/{index-e0765d4d.js → index-19cce73b.js} +3 -3
  242. package/build/{index-ef0d96b0.js → index-1aeccdb5.js} +16 -16
  243. package/build/{index-d10018db.js → index-21676009.js} +6 -6
  244. package/build/{index-69cb3a46.js → index-22ee3a93.js} +1 -1
  245. package/build/{index-80eb1c9e.js → index-24e25dd3.js} +31 -31
  246. package/build/{index-160f427a.js → index-270216ec.js} +39 -2
  247. package/build/{index-e83d44a6.js → index-2c5d233c.js} +2 -2
  248. package/build/{index-2a0d5f4c.js → index-32b697a9.js} +1 -1
  249. package/build/{index-8f95d227.js → index-33be9fbb.js} +3 -3
  250. package/build/{index-cd71e191.js → index-3769f5ab.js} +13 -13
  251. package/build/{index-e5e886f0.js → index-41729dd2.js} +13 -13
  252. package/build/{index-87eaca3f.js → index-45f6f07d.js} +57 -41
  253. package/build/{index-f8674988.js → index-47e2e17f.js} +6 -6
  254. package/build/{index-6953e067.js → index-4c58eb52.js} +17 -17
  255. package/build/{index-02a8d3de.js → index-4d94794e.js} +10 -10
  256. package/build/{index-41861e78.js → index-4eb3226d.js} +2 -2
  257. package/build/{index-0d024513.js → index-540f4ba8.js} +3 -3
  258. package/build/{index-7ba81059.js → index-55546b27.js} +2 -2
  259. package/build/{index-066a8738.js → index-5ec9825e.js} +13 -13
  260. package/build/{index-574f27b6.js → index-61f97c4f.js} +2 -2
  261. package/build/{index-9405f9dc.js → index-6786d1d4.js} +21 -21
  262. package/build/{index-909da5c7.js → index-687de5ad.js} +1 -1
  263. package/build/{index-005761a2.js → index-6dbe37d7.js} +8 -8
  264. package/build/{index-101e6e42.js → index-6efae034.js} +11 -11
  265. package/build/{index-e0e1d8b4.js → index-7173c03f.js} +22 -22
  266. package/build/{index-a0c610b0.js → index-78d0ec39.js} +25 -25
  267. package/build/{index-821c7b1d.js → index-806cb4d2.js} +15 -15
  268. package/build/{index-f13bb2ec.js → index-87478c18.js} +2 -2
  269. package/build/{index-2775b032.js → index-8836d815.js} +2 -2
  270. package/build/{index-527d84f1.js → index-8a694d3f.js} +7 -7
  271. package/build/{index-d3e370e6.js → index-8c4e2b40.js} +32 -32
  272. package/build/{index-9bbc738c.js → index-8fdd49a7.js} +7 -7
  273. package/build/{index-06effe69.js → index-9104a484.js} +3 -3
  274. package/build/{index-835cd587.js → index-951673a2.js} +17 -17
  275. package/build/{index-830bc120.js → index-9dab8630.js} +2 -2
  276. package/build/{index-5285704f.js → index-9f6afa4c.js} +1 -1
  277. package/build/{index-793d3604.js → index-9f9b4773.js} +18 -18
  278. package/build/{index-b2eaaaaf.js → index-a4458688.js} +16 -16
  279. package/build/{index-efdeeaa4.js → index-ab6b3c2e.js} +2 -2
  280. package/build/{index-1281aabe.js → index-b1f66b46.js} +5 -5
  281. package/build/{index-4e926120.js → index-b9bdc00b.js} +18 -18
  282. package/build/{index-a23c592f.js → index-c4148a68.js} +4 -4
  283. package/build/{index-8da23124.js → index-c69389ff.js} +1 -1
  284. package/build/{index-96f74284.js → index-d0fe3330.js} +16 -16
  285. package/build/{index-0a55649a.js → index-d60e395f.js} +17 -17
  286. package/build/{index-97b022b5.js → index-e03863e8.js} +2 -2
  287. package/build/{index-50497506.js → index-e22ae5bc.js} +6 -6
  288. package/build/{index-9cf8241a.js → index-e244eea4.js} +1 -1
  289. package/build/{index-45825aa8.js → index-e40f01b5.js} +2 -2
  290. package/build/{index-c5624ce2.js → index-ea230d8e.js} +1 -1
  291. package/build/{index-b71bc3f2.js → index-f153532b.js} +5 -5
  292. package/build/{index-b1076b31.js → index-f46a6b48.js} +1 -1
  293. package/build/{index-43a5ad56.js → index-f861715c.js} +2 -2
  294. package/build/{index-ab3c66be.js → index-fab31a90.js} +1 -1
  295. package/build/{index-70e73d2d.js → index-fc6e66b4.js} +6 -6
  296. package/build/{index-69c8e0bc.js → index-fec189c9.js} +3 -3
  297. package/build/{index-e1f56494.js → index-fefe9327.js} +3 -3
  298. package/build/index.js +117 -117
  299. package/build/interfaces/constants/domainLocales.d.ts +2 -0
  300. package/build/interfaces/constants/index.d.ts +1 -1
  301. package/build/interfaces/types/Locale.d.ts +2 -1
  302. package/build/interfaces/types/index.d.ts +1 -1
  303. package/build/{labelSorting-77e42304.js → labelSorting-400d479d.js} +4 -4
  304. package/build/lead/LeadGenForm/LeadGenForm.d.ts +41 -0
  305. package/build/lead/LeadGenForm/LeadGenForm.styled.d.ts +5 -0
  306. package/build/lead/LeadGenForm/LeadGenThankYou.d.ts +20 -0
  307. package/build/lead/LeadGenForm/index.d.ts +1 -0
  308. package/build/lead/LeadGenForm/textField/index.d.ts +13 -0
  309. package/build/lead/LeadGenForm/textField/index.styled.d.ts +11 -0
  310. package/build/lead/LeadGenSubscriptionBox/LeadGenSubscriptionBoxContainer.d.ts +25 -0
  311. package/build/lead/LeadGenSubscriptionBox/LeadGenSubscriptionBoxContext.d.ts +25 -0
  312. package/build/lead/LeadGenSubscriptionBox/LeadGenSubscriptionBoxWrapper.d.ts +30 -0
  313. package/build/lead/LeadGenSubscriptionBox/index.d.ts +1 -0
  314. package/build/lead/helpers.d.ts +51 -1
  315. package/build/lead/index.d.ts +2 -1
  316. package/build/lead/layouts/lightbox/formContext.d.ts +2 -1
  317. package/build/lead/services/index.d.ts +14 -0
  318. package/build/lead.css +1 -1
  319. package/build/lead.js +1441 -445
  320. package/build/{logoIcon-46491b88.js → logoIcon-311c7237.js} +3 -2
  321. package/build/mantine.js +22 -22
  322. package/build/misc.js +17 -17
  323. package/build/miscGetDynamicHealthTool.js +4 -4
  324. package/build/miscGetSocialList.js +8 -8
  325. package/build/miscScreenSizeContext.js +1 -1
  326. package/build/mobileBottomNavigation.js +5 -5
  327. package/build/mobileBottomNavigationIcon.js +5 -5
  328. package/build/molecules.js +73 -73
  329. package/build/moleculesArticleCard.js +6 -6
  330. package/build/moleculesArticleCardV2.js +16 -16
  331. package/build/navigation.js +45 -45
  332. package/build/navigationLogoutPopup.js +9 -9
  333. package/build/navigationProfileButton.js +23 -23
  334. package/build/onboardingV2.js +28 -28
  335. package/build/organisms.js +49 -49
  336. package/build/{post-18fda7cb.js → post-5a0c6b07.js} +2 -2
  337. package/build/profileNavigation.js +19 -19
  338. package/build/progressBar.js +1 -1
  339. package/build/pwg.js +22 -22
  340. package/build/ssoV2/api/featureFlag.d.ts +2 -1
  341. package/build/ssoV2.js +49 -37
  342. package/build/{store-3934a4ab.js → store-bc2242d0.js} +4 -4
  343. package/build/subot/components/userInfoForm/utils.d.ts +22 -0
  344. package/build/subot.js +87 -57
  345. package/build/surveyOrPremiumBanner.js +32 -32
  346. package/build/surveyQuestionCard.js +10 -10
  347. package/build/{surveyThankyouCard-e8e8895c.js → surveyThankyouCard-b6e7b178.js} +5 -5
  348. package/build/together.js +55 -55
  349. package/build/togetherApiUtils.js +4 -4
  350. package/build/togetherAtoms.js +30 -30
  351. package/build/togetherComponentGlobalContext.js +4 -4
  352. package/build/togetherMolecules.js +50 -50
  353. package/build/togetherMoleculesCardAuthor.js +28 -28
  354. package/build/togetherMoleculesPostImagePreview.js +11 -11
  355. package/build/togetherMoleculesProfileDetail.js +38 -38
  356. package/build/togetherOrganisms.js +49 -49
  357. package/build/togetherRichTextEditor.js +17 -17
  358. package/build/togetherShareBox.js +10 -10
  359. package/build/{treePopoverMenu-04da21cb.js → treePopoverMenu-ca5e6d41.js} +19 -19
  360. package/build/{types-d7e0c465.js → types-1d4501b1.js} +2 -2
  361. package/build/types.js +2 -2
  362. package/build/{useCategory-b65b09d9.js → useCategory-50b7bbf6.js} +18 -5
  363. package/build/{useHealthToolCache-8533e36a.js → useHealthToolCache-26d98903.js} +1 -1
  364. package/build/{useMantineLocale-95f6b7f6.js → useMantineLocale-d4893aa4.js} +8 -6
  365. package/build/{usePlacesAutocomplete-d9ed9494.js → usePlacesAutocomplete-deb9d3b0.js} +1 -1
  366. package/build/{useScreenSize-ed8f2885.js → useScreenSize-f3ef911a.js} +2 -2
  367. package/build/useTogetherAuthRequiredAction.js +9 -9
  368. package/build/{utils-07c229fa.js → utils-035f2f55.js} +4 -4
  369. package/build/{utils-78d3d391.js → utils-139f3780.js} +2 -2
  370. package/build/{utils-e37940a5.js → utils-1ee9b828.js} +2 -2
  371. package/build/{utils-d96752d9.js → utils-c6f30c1c.js} +3 -3
  372. package/build/vaccination.js +21 -21
  373. package/package.json +3 -3
  374. /package/build/{BMI_BOYS.percentile.monthly-8ebcd968.js → BMI_BOYS.percentile.monthly-50e3281f.js} +0 -0
  375. /package/build/{BMI_BOYS.percentile.weekly-78724d23.js → BMI_BOYS.percentile.weekly-68870cc9.js} +0 -0
  376. /package/build/{BMI_BOYS.percentile.yearly-304e6eb8.js → BMI_BOYS.percentile.yearly-654a54b7.js} +0 -0
  377. /package/build/{BMI_BOYS.zscore.monthly-03a65504.js → BMI_BOYS.zscore.monthly-4927fc92.js} +0 -0
  378. /package/build/{BMI_BOYS.zscore.weekly-6064e5b0.js → BMI_BOYS.zscore.weekly-5ee50e22.js} +0 -0
  379. /package/build/{BMI_BOYS.zscore.yearly-a4533e34.js → BMI_BOYS.zscore.yearly-3e313d86.js} +0 -0
  380. /package/build/{BMI_GIRLS.percentile.monthly-d166c7b7.js → BMI_GIRLS.percentile.monthly-a0431542.js} +0 -0
  381. /package/build/{BMI_GIRLS.percentile.weekly-c1dd82cc.js → BMI_GIRLS.percentile.weekly-db256232.js} +0 -0
  382. /package/build/{BMI_GIRLS.percentile.yearly-1cd5a0b9.js → BMI_GIRLS.percentile.yearly-070dcf14.js} +0 -0
  383. /package/build/{BMI_GIRLS.zscore.monthly-c303f3b7.js → BMI_GIRLS.zscore.monthly-b206d0c9.js} +0 -0
  384. /package/build/{BMI_GIRLS.zscore.weekly-af4f085e.js → BMI_GIRLS.zscore.weekly-1e3b1f60.js} +0 -0
  385. /package/build/{BMI_GIRLS.zscore.yearly-cc45a18e.js → BMI_GIRLS.zscore.yearly-d708ea3b.js} +0 -0
  386. /package/build/{ChevronDown-44def4f4.js → ChevronDown-444a1a5e.js} +0 -0
  387. /package/build/{Close-8bb5c4dd.js → Close-353a5fb0.js} +0 -0
  388. /package/build/{Google-ead487a3.js → Google-fb3b0072.js} +0 -0
  389. /package/build/{HEAD CIRCUM_BOYS.percentile.monthly-a7548f19.js → HEAD CIRCUM_BOYS.percentile.monthly-c22990c8.js} +0 -0
  390. /package/build/{HEAD CIRCUM_BOYS.percentile.weekly-7e5621d8.js → HEAD CIRCUM_BOYS.percentile.weekly-5597f903.js} +0 -0
  391. /package/build/{HEAD CIRCUM_BOYS.percentile.yearly-7a6550b2.js → HEAD CIRCUM_BOYS.percentile.yearly-b1f92710.js} +0 -0
  392. /package/build/{HEAD CIRCUM_BOYS.zscore.monthly-750beb01.js → HEAD CIRCUM_BOYS.zscore.monthly-3c1ec65e.js} +0 -0
  393. /package/build/{HEAD CIRCUM_BOYS.zscore.weekly-74aecc7f.js → HEAD CIRCUM_BOYS.zscore.weekly-7cdc505e.js} +0 -0
  394. /package/build/{HEAD CIRCUM_BOYS.zscore.yearly-7aae2221.js → HEAD CIRCUM_BOYS.zscore.yearly-d6ea6cdc.js} +0 -0
  395. /package/build/{HEAD CIRCUM_GIRLS.percentile.monthly-0123f7bf.js → HEAD CIRCUM_GIRLS.percentile.monthly-1b633861.js} +0 -0
  396. /package/build/{HEAD CIRCUM_GIRLS.percentile.weekly-2df66cb9.js → HEAD CIRCUM_GIRLS.percentile.weekly-f436b8a3.js} +0 -0
  397. /package/build/{HEAD CIRCUM_GIRLS.percentile.yearly-4b1872cb.js → HEAD CIRCUM_GIRLS.percentile.yearly-00fa85db.js} +0 -0
  398. /package/build/{HEAD CIRCUM_GIRLS.zscore.monthly-76352856.js → HEAD CIRCUM_GIRLS.zscore.monthly-78ddd38e.js} +0 -0
  399. /package/build/{HEAD CIRCUM_GIRLS.zscore.weekly-65b0ffbc.js → HEAD CIRCUM_GIRLS.zscore.weekly-dbb21533.js} +0 -0
  400. /package/build/{HEAD CIRCUM_GIRLS.zscore.yearly-8d1e9998.js → HEAD CIRCUM_GIRLS.zscore.yearly-c535621c.js} +0 -0
  401. /package/build/{HEIGHT_BOYS.percentile.monthly-0fbdfd33.js → HEIGHT_BOYS.percentile.monthly-c2bd88e0.js} +0 -0
  402. /package/build/{HEIGHT_BOYS.percentile.weekly-5f139741.js → HEIGHT_BOYS.percentile.weekly-3b91fff1.js} +0 -0
  403. /package/build/{HEIGHT_BOYS.percentile.yearly-b6170225.js → HEIGHT_BOYS.percentile.yearly-86a85843.js} +0 -0
  404. /package/build/{HEIGHT_BOYS.zscore.monthly-4c20dc53.js → HEIGHT_BOYS.zscore.monthly-08883d7a.js} +0 -0
  405. /package/build/{HEIGHT_BOYS.zscore.weekly-3651a335.js → HEIGHT_BOYS.zscore.weekly-56921468.js} +0 -0
  406. /package/build/{HEIGHT_BOYS.zscore.yearly-56200361.js → HEIGHT_BOYS.zscore.yearly-bd7ea889.js} +0 -0
  407. /package/build/{HEIGHT_GIRLS.percentile.monthly-52b548e4.js → HEIGHT_GIRLS.percentile.monthly-e2c129e5.js} +0 -0
  408. /package/build/{HEIGHT_GIRLS.percentile.weekly-6dd74b93.js → HEIGHT_GIRLS.percentile.weekly-8706fa74.js} +0 -0
  409. /package/build/{HEIGHT_GIRLS.percentile.yearly-1ae4bb05.js → HEIGHT_GIRLS.percentile.yearly-fd3cbe5a.js} +0 -0
  410. /package/build/{HEIGHT_GIRLS.zscore.monthly-b96d692c.js → HEIGHT_GIRLS.zscore.monthly-0392fb17.js} +0 -0
  411. /package/build/{HEIGHT_GIRLS.zscore.weekly-60db52e9.js → HEIGHT_GIRLS.zscore.weekly-4548fdbe.js} +0 -0
  412. /package/build/{HEIGHT_GIRLS.zscore.yearly-26faea80.js → HEIGHT_GIRLS.zscore.yearly-eb6c622a.js} +0 -0
  413. /package/build/{Visible-0dc1c8b3.js → Visible-b9f40b39.js} +0 -0
  414. /package/build/{WEIGHT_BOYS.percentile.monthly-d8c67bd8.js → WEIGHT_BOYS.percentile.monthly-f8c771e0.js} +0 -0
  415. /package/build/{WEIGHT_BOYS.percentile.weekly-76c5c713.js → WEIGHT_BOYS.percentile.weekly-e572ae62.js} +0 -0
  416. /package/build/{WEIGHT_BOYS.percentile.yearly-b1ff02cd.js → WEIGHT_BOYS.percentile.yearly-7f9ba3b7.js} +0 -0
  417. /package/build/{WEIGHT_BOYS.zscore.monthly-cf8d722e.js → WEIGHT_BOYS.zscore.monthly-831871e0.js} +0 -0
  418. /package/build/{WEIGHT_BOYS.zscore.weekly-dfd47511.js → WEIGHT_BOYS.zscore.weekly-e42c8cf6.js} +0 -0
  419. /package/build/{WEIGHT_BOYS.zscore.yearly-183207e9.js → WEIGHT_BOYS.zscore.yearly-e700c995.js} +0 -0
  420. /package/build/{WEIGHT_GIRLS.percentile.monthly-6069842a.js → WEIGHT_GIRLS.percentile.monthly-b1322481.js} +0 -0
  421. /package/build/{WEIGHT_GIRLS.percentile.weekly-b3574e5b.js → WEIGHT_GIRLS.percentile.weekly-7e59776e.js} +0 -0
  422. /package/build/{WEIGHT_GIRLS.percentile.yearly-951e1822.js → WEIGHT_GIRLS.percentile.yearly-9d8ab721.js} +0 -0
  423. /package/build/{WEIGHT_GIRLS.zscore.monthly-ccc0b46c.js → WEIGHT_GIRLS.zscore.monthly-f27e6da6.js} +0 -0
  424. /package/build/{WEIGHT_GIRLS.zscore.weekly-9c1ce14e.js → WEIGHT_GIRLS.zscore.weekly-58aa713b.js} +0 -0
  425. /package/build/{WEIGHT_GIRLS.zscore.yearly-8fb369f6.js → WEIGHT_GIRLS.zscore.yearly-cd4f8612.js} +0 -0
  426. /package/build/{animation-2a27f670.js → animation-303859dc.js} +0 -0
  427. /package/build/{constants-b499d6a1.js → constants-15112f5b.js} +0 -0
  428. /package/build/{constants-e35361be.js → constants-dbf23e71.js} +0 -0
  429. /package/build/{dataTransform-4c374340.js → dataTransform-a7bdabc7.js} +0 -0
  430. /package/build/{doctor-efb534a1.js → doctor-79f1faa1.js} +0 -0
  431. /package/build/esm/{BMI_BOYS.percentile.monthly-61892d6d.js → BMI_BOYS.percentile.monthly-712396f5.js} +0 -0
  432. /package/build/esm/{BMI_BOYS.percentile.weekly-859dbb1f.js → BMI_BOYS.percentile.weekly-588d6881.js} +0 -0
  433. /package/build/esm/{BMI_BOYS.percentile.yearly-fe3f7984.js → BMI_BOYS.percentile.yearly-07f33afd.js} +0 -0
  434. /package/build/esm/{BMI_BOYS.zscore.monthly-c540bb57.js → BMI_BOYS.zscore.monthly-522fcd09.js} +0 -0
  435. /package/build/esm/{BMI_BOYS.zscore.weekly-d7ef9cf7.js → BMI_BOYS.zscore.weekly-635a2ff1.js} +0 -0
  436. /package/build/esm/{BMI_BOYS.zscore.yearly-00b95284.js → BMI_BOYS.zscore.yearly-9289a40b.js} +0 -0
  437. /package/build/esm/{BMI_GIRLS.percentile.monthly-fa543787.js → BMI_GIRLS.percentile.monthly-a949ef8a.js} +0 -0
  438. /package/build/esm/{BMI_GIRLS.percentile.weekly-e9510b3b.js → BMI_GIRLS.percentile.weekly-b4974304.js} +0 -0
  439. /package/build/esm/{BMI_GIRLS.percentile.yearly-06d9ce6c.js → BMI_GIRLS.percentile.yearly-a1ebcc6b.js} +0 -0
  440. /package/build/esm/{BMI_GIRLS.zscore.monthly-82a0108a.js → BMI_GIRLS.zscore.monthly-f898d38d.js} +0 -0
  441. /package/build/esm/{BMI_GIRLS.zscore.weekly-683a41c1.js → BMI_GIRLS.zscore.weekly-4071fa05.js} +0 -0
  442. /package/build/esm/{BMI_GIRLS.zscore.yearly-0501a389.js → BMI_GIRLS.zscore.yearly-4f91e100.js} +0 -0
  443. /package/build/esm/{ChevronDown-695014c9.js → ChevronDown-77adad0b.js} +0 -0
  444. /package/build/esm/{Close-1ff84140.js → Close-6fa8820b.js} +0 -0
  445. /package/build/esm/{Google-fb5f1ac3.js → Google-57603941.js} +0 -0
  446. /package/build/esm/{HEAD CIRCUM_BOYS.percentile.monthly-1d66879b.js → HEAD CIRCUM_BOYS.percentile.monthly-36c3595f.js} +0 -0
  447. /package/build/esm/{HEAD CIRCUM_BOYS.percentile.weekly-95c6d579.js → HEAD CIRCUM_BOYS.percentile.weekly-15621f62.js} +0 -0
  448. /package/build/esm/{HEAD CIRCUM_BOYS.percentile.yearly-fbe4eb03.js → HEAD CIRCUM_BOYS.percentile.yearly-658434ed.js} +0 -0
  449. /package/build/esm/{HEAD CIRCUM_BOYS.zscore.monthly-73e1ce21.js → HEAD CIRCUM_BOYS.zscore.monthly-ec823fe2.js} +0 -0
  450. /package/build/esm/{HEAD CIRCUM_BOYS.zscore.weekly-cda8a64d.js → HEAD CIRCUM_BOYS.zscore.weekly-4a92088a.js} +0 -0
  451. /package/build/esm/{HEAD CIRCUM_BOYS.zscore.yearly-1658ca58.js → HEAD CIRCUM_BOYS.zscore.yearly-cc1a86eb.js} +0 -0
  452. /package/build/esm/{HEAD CIRCUM_GIRLS.percentile.monthly-07c7d098.js → HEAD CIRCUM_GIRLS.percentile.monthly-7844f4f9.js} +0 -0
  453. /package/build/esm/{HEAD CIRCUM_GIRLS.percentile.weekly-16bf916d.js → HEAD CIRCUM_GIRLS.percentile.weekly-3d33e3be.js} +0 -0
  454. /package/build/esm/{HEAD CIRCUM_GIRLS.percentile.yearly-e6e86e46.js → HEAD CIRCUM_GIRLS.percentile.yearly-a7be21d4.js} +0 -0
  455. /package/build/esm/{HEAD CIRCUM_GIRLS.zscore.monthly-5a14b9f9.js → HEAD CIRCUM_GIRLS.zscore.monthly-8214aa64.js} +0 -0
  456. /package/build/esm/{HEAD CIRCUM_GIRLS.zscore.weekly-11d6dee5.js → HEAD CIRCUM_GIRLS.zscore.weekly-02d463ad.js} +0 -0
  457. /package/build/esm/{HEAD CIRCUM_GIRLS.zscore.yearly-ffd60c24.js → HEAD CIRCUM_GIRLS.zscore.yearly-2a672219.js} +0 -0
  458. /package/build/esm/{HEIGHT_BOYS.percentile.monthly-6139538d.js → HEIGHT_BOYS.percentile.monthly-7a9cbff5.js} +0 -0
  459. /package/build/esm/{HEIGHT_BOYS.percentile.weekly-07adf705.js → HEIGHT_BOYS.percentile.weekly-e0d73bf9.js} +0 -0
  460. /package/build/esm/{HEIGHT_BOYS.percentile.yearly-5696c375.js → HEIGHT_BOYS.percentile.yearly-fc5e4551.js} +0 -0
  461. /package/build/esm/{HEIGHT_BOYS.zscore.monthly-e6953647.js → HEIGHT_BOYS.zscore.monthly-f8588a3d.js} +0 -0
  462. /package/build/esm/{HEIGHT_BOYS.zscore.weekly-8b4df26d.js → HEIGHT_BOYS.zscore.weekly-57ca6737.js} +0 -0
  463. /package/build/esm/{HEIGHT_BOYS.zscore.yearly-c3365682.js → HEIGHT_BOYS.zscore.yearly-a44a7e21.js} +0 -0
  464. /package/build/esm/{HEIGHT_GIRLS.percentile.monthly-5c3d2128.js → HEIGHT_GIRLS.percentile.monthly-c337a69f.js} +0 -0
  465. /package/build/esm/{HEIGHT_GIRLS.percentile.weekly-8029dc97.js → HEIGHT_GIRLS.percentile.weekly-726310a2.js} +0 -0
  466. /package/build/esm/{HEIGHT_GIRLS.percentile.yearly-2b53f9cd.js → HEIGHT_GIRLS.percentile.yearly-0dfff233.js} +0 -0
  467. /package/build/esm/{HEIGHT_GIRLS.zscore.monthly-0b7c5aef.js → HEIGHT_GIRLS.zscore.monthly-57a9ec16.js} +0 -0
  468. /package/build/esm/{HEIGHT_GIRLS.zscore.weekly-b9a3b493.js → HEIGHT_GIRLS.zscore.weekly-2d1cb750.js} +0 -0
  469. /package/build/esm/{HEIGHT_GIRLS.zscore.yearly-b579546b.js → HEIGHT_GIRLS.zscore.yearly-8c42b226.js} +0 -0
  470. /package/build/esm/{Visible-9f207824.js → Visible-2b8032b7.js} +0 -0
  471. /package/build/esm/{WEIGHT_BOYS.percentile.monthly-aed541ba.js → WEIGHT_BOYS.percentile.monthly-bf497b11.js} +0 -0
  472. /package/build/esm/{WEIGHT_BOYS.percentile.weekly-9735785a.js → WEIGHT_BOYS.percentile.weekly-5a8773a9.js} +0 -0
  473. /package/build/esm/{WEIGHT_BOYS.percentile.yearly-2cf97cbd.js → WEIGHT_BOYS.percentile.yearly-9185c125.js} +0 -0
  474. /package/build/esm/{WEIGHT_BOYS.zscore.monthly-2e2cf9da.js → WEIGHT_BOYS.zscore.monthly-944f6ed2.js} +0 -0
  475. /package/build/esm/{WEIGHT_BOYS.zscore.weekly-46b73ed1.js → WEIGHT_BOYS.zscore.weekly-1fcce1cd.js} +0 -0
  476. /package/build/esm/{WEIGHT_BOYS.zscore.yearly-1199b2b7.js → WEIGHT_BOYS.zscore.yearly-6360c82b.js} +0 -0
  477. /package/build/esm/{WEIGHT_GIRLS.percentile.monthly-8a4c786b.js → WEIGHT_GIRLS.percentile.monthly-3206ea81.js} +0 -0
  478. /package/build/esm/{WEIGHT_GIRLS.percentile.weekly-55c6cd10.js → WEIGHT_GIRLS.percentile.weekly-0a2e092d.js} +0 -0
  479. /package/build/esm/{WEIGHT_GIRLS.percentile.yearly-fc515da9.js → WEIGHT_GIRLS.percentile.yearly-e338c9f6.js} +0 -0
  480. /package/build/esm/{WEIGHT_GIRLS.zscore.monthly-a88b1b4f.js → WEIGHT_GIRLS.zscore.monthly-de11b089.js} +0 -0
  481. /package/build/esm/{WEIGHT_GIRLS.zscore.weekly-e527f3f3.js → WEIGHT_GIRLS.zscore.weekly-0ed8dcbc.js} +0 -0
  482. /package/build/esm/{WEIGHT_GIRLS.zscore.yearly-8d9eba63.js → WEIGHT_GIRLS.zscore.yearly-a3587aa4.js} +0 -0
  483. /package/build/esm/{animation-d057a714.js → animation-a656aa21.js} +0 -0
  484. /package/build/esm/{constants-eae536b0.js → constants-0d1f0bba.js} +0 -0
  485. /package/build/esm/{constants-4fa8928c.js → constants-cdc9434d.js} +0 -0
  486. /package/build/esm/{dataTransform-a0c483da.js → dataTransform-b1dafb7a.js} +0 -0
  487. /package/build/esm/{doctor-5ea4eb1c.js → doctor-dd17f202.js} +0 -0
  488. /package/build/esm/{index-64156480.js → index-48332b16.js} +0 -0
  489. /package/build/esm/{index-9cde0fc3.js → index-4f22aefe.js} +0 -0
  490. /package/build/esm/{index-9afd6a12.js → index-72437f3d.js} +0 -0
  491. /package/build/esm/{index-f14e9f26.js → index-897b7516.js} +0 -0
  492. /package/build/esm/{index-34340a6f.js → index-940870ab.js} +0 -0
  493. /package/build/esm/{index-c6ad42f2.js → index-972c9e3c.js} +0 -0
  494. /package/build/esm/{index-84c4dbe1.js → index-c691f8ca.js} +0 -0
  495. /package/build/esm/{index-6f9822de.js → index-ec683fdf.js} +0 -0
  496. /package/build/esm/{index.styles-7a34124f.js → index.styles-4b266b26.js} +0 -0
  497. /package/build/esm/{localizeNumberFormat-e2de76ea.js → localizeNumberFormat-8bdb6e01.js} +0 -0
  498. /package/build/esm/{normalizeLink-aa34fdb9.js → normalizeLink-748b89a5.js} +0 -0
  499. /package/build/esm/{number-96957210.js → number-e50a5d7a.js} +0 -0
  500. /package/build/esm/{other-118d57f1.js → other-8381a169.js} +0 -0
  501. /package/build/esm/{paths-31e56346.js → paths-1d1da590.js} +0 -0
  502. /package/build/esm/{translationsContext-df39038b.js → translationsContext-4014f1d2.js} +0 -0
  503. /package/build/esm/{tslib.es6-ce986163.js → tslib.es6-efa39344.js} +0 -0
  504. /package/build/esm/{types-d9e1519d.js → types-112add20.js} +0 -0
  505. /package/build/esm/{useIsInit-471ba94b.js → useIsInit-ead7e43f.js} +0 -0
  506. /package/build/esm/{useOutsideClick-c5a3563f.js → useOutsideClick-7c677924.js} +0 -0
  507. /package/build/esm/{useScrollbarSize-69b5c777.js → useScrollbarSize-9ca303bc.js} +0 -0
  508. /package/build/esm/{useUniqueId-5b8eba56.js → useUniqueId-2ffd0996.js} +0 -0
  509. /package/build/esm/{utils-fc064c23.js → utils-4b2bedd2.js} +0 -0
  510. /package/build/{index-8c1be153.js → index-05dd7fd7.js} +0 -0
  511. /package/build/{index-1b707b5a.js → index-0c633eb2.js} +0 -0
  512. /package/build/{index-5d62ab71.js → index-1460921d.js} +0 -0
  513. /package/build/{index-704cc84b.js → index-242a0d97.js} +0 -0
  514. /package/build/{index-0c0bac92.js → index-521b17c3.js} +0 -0
  515. /package/build/{index-e80c86e8.js → index-5c4689a8.js} +0 -0
  516. /package/build/{index-64d0705e.js → index-8519706c.js} +0 -0
  517. /package/build/{index-3ef46574.js → index-f5bf5f98.js} +0 -0
  518. /package/build/{index.styles-6b7ddfb0.js → index.styles-329bf135.js} +0 -0
  519. /package/build/{localizeNumberFormat-cdf374ef.js → localizeNumberFormat-077bd9c6.js} +0 -0
  520. /package/build/{normalizeLink-9c4285b5.js → normalizeLink-51eba006.js} +0 -0
  521. /package/build/{number-19cc9825.js → number-38aaf800.js} +0 -0
  522. /package/build/{other-3ac24826.js → other-ce6caa08.js} +0 -0
  523. /package/build/{paths-91f3f249.js → paths-ac102582.js} +0 -0
  524. /package/build/{translationsContext-4437fa01.js → translationsContext-e0a5e0ed.js} +0 -0
  525. /package/build/{tslib.es6-a6bae155.js → tslib.es6-a12a90ed.js} +0 -0
  526. /package/build/{types-f002aea3.js → types-f9579eb0.js} +0 -0
  527. /package/build/{useIsInit-3e0a2653.js → useIsInit-402a858b.js} +0 -0
  528. /package/build/{useOutsideClick-d2dc246f.js → useOutsideClick-9d836158.js} +0 -0
  529. /package/build/{useScrollbarSize-c5e22515.js → useScrollbarSize-82c049bb.js} +0 -0
  530. /package/build/{useUniqueId-1f3fcb95.js → useUniqueId-c0a45547.js} +0 -0
  531. /package/build/{utils-4f2cfa7e.js → utils-f9f0bbf9.js} +0 -0
package/build/esm/lead.js CHANGED
@@ -1,44 +1,45 @@
1
- import { _ as __rest, a as __awaiter } from './tslib.es6-ce986163.js';
2
- import React__default, { createContext, useMemo, useEffect, useRef, useState, useContext, useCallback } from 'react';
3
- import { createStyles, Box, Button as Button$2, Autocomplete, clsx, Input as Input$1, TextInput, NumberInput as NumberInput$1, Portal, Transition, Overlay } from '@mantine/core';
1
+ import { _ as __rest, a as __awaiter } from './tslib.es6-efa39344.js';
2
+ import React__default, { createContext, useMemo, useEffect, useRef, useState, useContext, forwardRef, useCallback, useImperativeHandle, memo } from 'react';
3
+ import { createStyles, Box, Input as Input$1, clsx, Autocomplete, Checkbox as Checkbox$1, Radio as Radio$1, Select as Select$1, TextInput, NumberInput as NumberInput$1, Button as Button$2, Portal, Transition, Overlay } from '@mantine/core';
4
4
  import dayjs from 'dayjs';
5
5
  import debounce from 'lodash/debounce';
6
- import { createFormContext } from '@mantine/form';
7
- import { u as useTranslations } from './index-ac051afc.js';
8
- import { T as TranslationsContext } from './translationsContext-df39038b.js';
6
+ import { createFormContext, useForm } from '@mantine/form';
7
+ import { u as useTranslations } from './index-482c49c1.js';
8
+ import { T as TranslationsContext } from './translationsContext-4014f1d2.js';
9
9
  import { getCookie, setCookie } from './miscCookieHelper.js';
10
- import { b as getWrapperDomWithSelector, a as getPopupWrapperDom } from './utils-fc064c23.js';
11
- import { T as Text } from './index-36215bbb.js';
12
- import { S as Select, d as Checkbox, I as Input, R as Radio, P as Phone, N as NumberInput, O as OTP } from './index-ec349ad0.js';
13
- import { D as DatePicker } from './index-71ba6e70.js';
14
- import { M as MAPPED_LOCALE } from './utils-d3b41fb0.js';
15
- import '@mantine/dates';
16
- import { Z as ZINDEX_SSO } from './index-869ee1da.js';
17
- import './index-362575fc.js';
18
- import './index-9afd6a12.js';
19
- import './useMantineLocale-5d84852d.js';
20
- import { B as Button$1 } from './index-e272331a.js';
21
- import './index.styles-7a34124f.js';
10
+ import { b as getWrapperDomWithSelector, a as getPopupWrapperDom } from './utils-4b2bedd2.js';
11
+ import { T as Text } from './index-148c2314.js';
12
+ import { S as Select, d as Checkbox, I as Input, R as Radio, P as Phone, N as NumberInput, O as OTP } from './index-430a6926.js';
13
+ import { D as DatePicker } from './index-c3e074e0.js';
14
+ import { M as MAPPED_LOCALE } from './utils-05c9cc70.js';
15
+ import { DateInput } from '@mantine/dates';
16
+ import { Z as ZINDEX_SSO, I as ISO_FORMAT } from './index-3c16f896.js';
17
+ import { C as COMMON_DATE_TRANSLATE_KEY } from './index-0ddcfd37.js';
18
+ import './index-72437f3d.js';
19
+ import './useMantineLocale-ddbff538.js';
20
+ import { B as Button$1 } from './index-cfca064e.js';
21
+ import './index.styles-4b266b26.js';
22
22
  import { useClickOutside } from '@mantine/hooks';
23
- import './other-118d57f1.js';
24
- import './index-cf4b1a22.js';
25
- import { u as usePlacesAutocomplete, G as GOOGLE_API_KEY } from './usePlacesAutocomplete-23b56299.js';
26
- import { B as Button } from './index-c8ee8be9.js';
27
- import { H as Heading$1 } from './index-40225988.js';
23
+ import './other-8381a169.js';
24
+ import './index-b7f2875d.js';
25
+ import { u as usePlacesAutocomplete, G as GOOGLE_API_KEY } from './usePlacesAutocomplete-67f4d081.js';
26
+ import { B as Button } from './index-3e211e7e.js';
27
+ import { H as Heading$1 } from './index-1058eb67.js';
28
+ import styled from '@emotion/styled';
28
29
  import { v1 } from 'uuid';
29
- import { i as isVideo } from './index-9cde0fc3.js';
30
- import { D as DrawerComponent } from './index-ce44f804.js';
31
- import { u as useScreenSize } from './useScreenSize-719df3e3.js';
32
- import { createPortal } from 'react-dom';
33
30
  import { css } from '@emotion/react';
34
- import styled from '@emotion/styled';
35
31
  import { theme } from './miscTheme.js';
36
- import { C as Close } from './Close-1ff84140.js';
32
+ import { i as isVideo } from './index-4f22aefe.js';
33
+ import { D as DrawerComponent } from './index-652dfc24.js';
34
+ import { u as useScreenSize } from './useScreenSize-8a1664ca.js';
35
+ import { createPortal } from 'react-dom';
36
+ import { I as InputDate } from './InputDate-f2c9d1a1.js';
37
+ import { C as Close } from './Close-6fa8820b.js';
37
38
  import '@hhgtech/icons/other';
38
39
  import '@mantine/carousel';
39
- import './Locale-2cf2d24e.js';
40
+ import './Locale-1699af63.js';
40
41
  import 'classnames';
41
- import './useUniqueId-5b8eba56.js';
42
+ import './useUniqueId-2ffd0996.js';
42
43
  import './constantsSite.js';
43
44
  import '@hhgtech/icons/core';
44
45
  import 'date-fns/locale';
@@ -72,7 +73,7 @@ if (sessionStorage.getItem('insider_object')) {
72
73
  }
73
74
  const docLang = document.documentElement.lang;
74
75
  // TODO: country code
75
- const LEAD_LOCALE_DATA = {
76
+ const LEAD_LOCALE_DATA$1 = {
76
77
  'vi-VN': {
77
78
  popupLang: 'vi',
78
79
  countryCode: 'vn',
@@ -114,7 +115,7 @@ const LEAD_LOCALE_DATA = {
114
115
  countryCodeNumber: 91,
115
116
  },
116
117
  };
117
- const LEAD_LOCALE = LEAD_LOCALE_DATA[docLang] || LEAD_LOCALE_DATA['vi-VN'];
118
+ const LEAD_LOCALE = LEAD_LOCALE_DATA$1[docLang] || LEAD_LOCALE_DATA$1['vi-VN'];
118
119
  function LEAD_RESET_VAR() {
119
120
  // LEAD_CURRENT_URL = location.href.toLowerCase();
120
121
  LEAD_CURRENT_URL =
@@ -135,6 +136,11 @@ const LEAD_TIMEZONE_DATA = {
135
136
  9: 'Asia/Manila', // Philippines / Filipinos Site
136
137
  };
137
138
 
139
+ const LEADGEN_ACTIONS = {
140
+ SHOW: 'SHOW',
141
+ SCROLL: 'SCROLL',
142
+ TIME: 'TIME',
143
+ };
138
144
  const LEADGEN_LAYOUT = {
139
145
  LightBoxA: 'LightBoxA',
140
146
  LightBoxB: 'LightBoxB',
@@ -164,8 +170,10 @@ const LEADGEN_BLOCK = {
164
170
  DropdownBlock: 'DropdownBlock',
165
171
  CheckboxBlock: 'CheckboxBlock',
166
172
  TncBlock: 'TncBlock',
173
+ TitleBlock: 'TitleBlock',
174
+ SubtitleBlock: 'SubtitleBlock',
167
175
  };
168
- const LEADGEN_BLOCK_IN_FORM = [
176
+ const LEADGEN_BLOCK_INPUT = [
169
177
  LEADGEN_BLOCK.TextBlock,
170
178
  LEADGEN_BLOCK.NumberBlock,
171
179
  LEADGEN_BLOCK.DateBlock,
@@ -181,6 +189,48 @@ const LEADGEN_BLOCK_IN_FORM = [
181
189
  LEADGEN_BLOCK.TncBlock,
182
190
  ];
183
191
  const SSO_MAP_LEAD = ['name', 'email', 'birthday', 'phone', 'gender'];
192
+ const LEAD_LOCALE_DATA = {
193
+ 'vi-VN': {
194
+ popupLang: 'vi',
195
+ countryCode: 'vn',
196
+ countryCodeNumber: 84,
197
+ },
198
+ 'id-ID': {
199
+ popupLang: 'id',
200
+ countryCode: 'id',
201
+ countryCodeNumber: 62,
202
+ },
203
+ 'th-TH': {
204
+ popupLang: 'th',
205
+ countryCode: 'th',
206
+ countryCodeNumber: 66,
207
+ },
208
+ 'ms-MY': {
209
+ popupLang: 'ms',
210
+ countryCode: 'my',
211
+ countryCodeNumber: 60,
212
+ },
213
+ 'zh-TW': {
214
+ popupLang: 'zh',
215
+ countryCode: 'tw',
216
+ countryCodeNumber: 886,
217
+ },
218
+ 'km-KH': {
219
+ popupLang: 'km',
220
+ countryCode: 'kh',
221
+ countryCodeNumber: 855,
222
+ },
223
+ 'my-MM': {
224
+ popupLang: 'my',
225
+ countryCode: 'mm',
226
+ countryCodeNumber: 95,
227
+ },
228
+ 'hi-IN': {
229
+ popupLang: 'hi',
230
+ countryCode: 'in',
231
+ countryCodeNumber: 91,
232
+ },
233
+ };
184
234
  const mappingSSOToLead = (userInfoProps) => {
185
235
  var _a, _b;
186
236
  try {
@@ -196,7 +246,7 @@ const mappingSSOToLead = (userInfoProps) => {
196
246
  if (ssoKey === 'birthday') {
197
247
  const dob = dayjs(initValue, 'YYYY-MM-DD', true);
198
248
  if (dob.isValid()) {
199
- user.birthday = dob;
249
+ user.birthday = dob.toDate();
200
250
  }
201
251
  }
202
252
  else if (ssoKey === 'gender') {
@@ -219,6 +269,46 @@ const mappingSSOToLead = (userInfoProps) => {
219
269
  catch (error) {
220
270
  return;
221
271
  }
272
+ };
273
+ const formatCampaignDetail = (campaign) => {
274
+ if (!campaign) {
275
+ return {};
276
+ }
277
+ try {
278
+ const { extra_fields, thank_you_image } = campaign || {};
279
+ const { textBlocks: exTextBlocks, imageBlocks: exImageBlocks, listBlockAdded: exListBlockAdded, listBlockThankyou: exListBlockThankyou, actionBlocks: exActionBlocks, } = extra_fields;
280
+ const textBlocks = JSON.parse(exTextBlocks);
281
+ const imageBlocks = JSON.parse(exImageBlocks);
282
+ const listBlockAdded = JSON.parse(exListBlockAdded);
283
+ const listBlockThankyou = JSON.parse(exListBlockThankyou);
284
+ const actionBlocks = JSON.parse(exActionBlocks);
285
+ const ThankYouBlock = {
286
+ image: { src: thank_you_image },
287
+ };
288
+ listBlockThankyou.forEach((block) => {
289
+ const { name, data } = block || {};
290
+ const { value: htmlText, align, newtab, url } = data || {};
291
+ switch (name) {
292
+ case LEADGEN_BLOCK.TitleBlock: {
293
+ ThankYouBlock.title = { htmlText, align };
294
+ }
295
+ case LEADGEN_BLOCK.SubtitleBlock: {
296
+ ThankYouBlock.description = { htmlText, align };
297
+ }
298
+ case LEADGEN_BLOCK.LinkButtonBlock: {
299
+ ThankYouBlock.button = { htmlText, newtab, url };
300
+ }
301
+ }
302
+ });
303
+ return Object.assign(Object.assign({}, campaign), { extra_fields: Object.assign(Object.assign({}, extra_fields), { textBlocks,
304
+ imageBlocks,
305
+ listBlockAdded,
306
+ listBlockThankyou,
307
+ actionBlocks }), ThankYouBlock });
308
+ }
309
+ catch (error) {
310
+ return {};
311
+ }
222
312
  };
223
313
 
224
314
  class Store {
@@ -229,6 +319,13 @@ class Store {
229
319
  }
230
320
  const leadStore = new Store();
231
321
 
322
+ const LEADGEN_API_METHOD = {
323
+ GET: 'get',
324
+ POST: 'POST',
325
+ };
326
+ const LEADGEN_API_PATH = {
327
+ V2_CAMPAIGN: 'api/v2/campaign',
328
+ };
232
329
  const leadApi = {
233
330
  call(_a) {
234
331
  var { url, data = undefined } = _a, config = __rest(_a, ["url", "data"]);
@@ -332,8 +429,39 @@ const verifyOtpLead = ({ phone, otp, type, }) => {
332
429
  },
333
430
  });
334
431
  };
432
+ const campaignGetByCode = (campaign_code) => {
433
+ return leadApi.call({
434
+ url: `${LEADGEN_API_PATH.V2_CAMPAIGN}/${campaign_code}`,
435
+ method: LEADGEN_API_METHOD.GET,
436
+ });
437
+ };
438
+ const campaignPostLead = ({ data }) => {
439
+ return leadApi.call({
440
+ url: 'api/v2/subscription-box',
441
+ method: LEADGEN_API_METHOD.POST,
442
+ data,
443
+ });
444
+ };
445
+ const campaignPostImpression = ({ code, action, title_article, ga_client_id, cookie_id, extra, url, referrer, }) => {
446
+ return leadApi.call({
447
+ url: `api/campaign/${code}/impression`,
448
+ method: LEADGEN_API_METHOD.POST,
449
+ data: {
450
+ action,
451
+ title_article,
452
+ cookie_id,
453
+ ga_client_id,
454
+ url,
455
+ extra,
456
+ referrer,
457
+ },
458
+ });
459
+ };
335
460
  const Service = {
336
461
  campaignGetById,
462
+ campaignGetByCode,
463
+ campaignPostLead,
464
+ campaignPostImpression,
337
465
  validateEmailOrPhoneOnSubot,
338
466
  validateEmailOrPhoneOnLeadGen,
339
467
  validatePhoneNumberOnLeadGen,
@@ -1125,6 +1253,7 @@ var enPH = {
1125
1253
  "validator.min": "jQuery.validator.format('Please enter a value greater than or equal to {0}.",
1126
1254
  "validator.emailUsed": "Email already in use for this campaign.",
1127
1255
  "validator.phoneUsed": "Your phone number already in use for this campaign.",
1256
+ "validator.dateInvalid": "This date is not valid, please update.",
1128
1257
  "lead.otp.title": "Enter OTP",
1129
1258
  "lead.otp.desc": "We have sent an OTP to your mobile number {phone}",
1130
1259
  "lead.otp.verify": "Verify",
@@ -1133,7 +1262,10 @@ var enPH = {
1133
1262
  "lead.otp.phonePlaceholder": "Enter OTP",
1134
1263
  "lead.empty.title": "Oops, seem your information is empty, do you want to submit the information again?",
1135
1264
  "lead.empty.cancel": "Cancel",
1136
- "lead.empty.submitAgain": "Submit again"
1265
+ "lead.empty.submitAgain": "Submit again",
1266
+ "common.day": "Day",
1267
+ "common.month": "Month",
1268
+ "common.year": "Year"
1137
1269
  };
1138
1270
 
1139
1271
  var hiIN = {
@@ -1144,6 +1276,7 @@ var hiIN = {
1144
1276
  "validator.maxlength": "कृपया {0} अक्षर से अधिक दर्ज न करें",
1145
1277
  "validator.minlength": "कृपया कम से कम {0} अक्षर दर्ज करें",
1146
1278
  "validator.phone": "कृपया एक वैध संख्या दर्ज करें",
1279
+ "validator.dateInvalid": "यह तिथि मान्य नहीं है, कृपया अपडेट करें।",
1147
1280
  "validator.emailUsed": "Email already in use for this campaign.",
1148
1281
  "validator.phoneUsed": "Your phone number already in use for this campaign.",
1149
1282
  "lead.otp.title": "Enter OTP",
@@ -1152,7 +1285,10 @@ var hiIN = {
1152
1285
  "lead.otp.resend": "Resend OTP{timer}",
1153
1286
  "lead.empty.title": "ऊप्स! लगता है आपकी जानकारी खाली है। क्या आप जानकारी फिर से सबमिट करना चाहते हैं?",
1154
1287
  "lead.empty.cancel": "रद्द करें",
1155
- "lead.empty.submitAgain": "फिर से सबमिट करें"
1288
+ "lead.empty.submitAgain": "फिर से सबमिट करें",
1289
+ "common.day": "साल",
1290
+ "common.month": "महीना",
1291
+ "common.year": ""
1156
1292
  };
1157
1293
 
1158
1294
  var idID = {
@@ -1165,6 +1301,7 @@ var idID = {
1165
1301
  "validator.phone": "Tolong daftarkan nomor telepon yang valid",
1166
1302
  "validator.emailUsed": "Email sudah digunakan untuk kampanye ini.",
1167
1303
  "validator.phoneUsed": "Nomor telepon Anda sudah digunakan untuk kampanye ini.",
1304
+ "validator.dateInvalid": "Tanggal ini tidak valid, silakan perbarui",
1168
1305
  "lead.otp.title": "Masukkan OTP",
1169
1306
  "lead.otp.desc": "Kami telah mengirimkan OTP ke nomor ponsel Anda {phone}",
1170
1307
  "lead.otp.verify": "Verifikasi",
@@ -1173,7 +1310,10 @@ var idID = {
1173
1310
  "lead.otp.phonePlaceholder": "Masukkan OTP",
1174
1311
  "lead.empty.title": "Oops, sepertinya informasi Anda kosong. Apakah Anda ingin mengirimkan informasi lagi?",
1175
1312
  "lead.empty.cancel": "Batal",
1176
- "lead.empty.submitAgain": "Kirim lagi"
1313
+ "lead.empty.submitAgain": "Kirim lagi",
1314
+ "common.day": "Hari",
1315
+ "common.month": "Bulan",
1316
+ "common.year": "Tahun"
1177
1317
  };
1178
1318
 
1179
1319
  var kmKH = {
@@ -1186,6 +1326,7 @@ var kmKH = {
1186
1326
  "validator.phone": "សូម​វាយបញ្ចូល​លេខ​ឲ្យ​បាន​ត្រឹមត្រូវ",
1187
1327
  "validator.emailUsed": "អ៊ីមែលត្រូវបានប្រើប្រាស់សម្រាប់យុទ្ធនាការនេះរួចហើយ។",
1188
1328
  "validator.phoneUsed": "លេខទូរស័ព្ទរបស់អ្នកត្រូវបានប្រើប្រាស់សម្រាប់យុទ្ធនាការនេះរួចហើយ។",
1329
+ "validator.dateInvalid": "កាលបរិច្ឆេទនេះមិនត្រឹមត្រូវទេ សូមធ្វើបច្ចុប្បន្នភាព។",
1189
1330
  "lead.otp.title": "បញ្ចូល OTP",
1190
1331
  "lead.otp.desc": "យើងបានផ្ញើ OTP ទៅកាន់លេខទូរសព្ទរបស់អ្នក {phone}",
1191
1332
  "lead.otp.verify": "ផ្ទៀងផ្ទាត់",
@@ -1194,7 +1335,10 @@ var kmKH = {
1194
1335
  "lead.otp.phonePlaceholder": "បញ្ចូល OTP",
1195
1336
  "lead.empty.title": "អូុបស! ហាក់ដូចជាព័ត៌មានរបស់អ្នកទទេ។ តើអ្នកចង់ដាក់ស្នើព័ត៌មានម្តងទៀតទេ?",
1196
1337
  "lead.empty.cancel": "លុប​ចោល",
1197
- "lead.empty.submitAgain": "ដាក់ស្នើម្ដងទៀត"
1338
+ "lead.empty.submitAgain": "ដាក់ស្នើម្ដងទៀត",
1339
+ "common.day": "ឆ្នាំ",
1340
+ "common.month": "ខែ",
1341
+ "common.year": "ថ្ងៃ"
1198
1342
  };
1199
1343
 
1200
1344
  var msMY = {
@@ -1207,6 +1351,7 @@ var msMY = {
1207
1351
  "validator.phone": "Sila masukkan no telefon yang sah.",
1208
1352
  "validator.emailUsed": "Emel sudah digunakan untuk kempen ini.",
1209
1353
  "validator.phoneUsed": "Nombor telefon anda sudah digunakan untuk kempen ini.",
1354
+ "validator.dateInvalid": "Tarikh ini tidak sah, sila kemas kini",
1210
1355
  "lead.otp.title": "Masukkan OTP",
1211
1356
  "lead.otp.desc": "Kami telah menghantar OTP ke nombor telefon bimbit anda {phone}",
1212
1357
  "lead.otp.verify": "Sahkan",
@@ -1215,7 +1360,10 @@ var msMY = {
1215
1360
  "lead.otp.phonePlaceholder": "Masukkan OTP",
1216
1361
  "lead.empty.title": "Oops, nampaknya maklumat anda kosong. Adakah anda ingin menghantar maklumat semula?",
1217
1362
  "lead.empty.cancel": "Batal",
1218
- "lead.empty.submitAgain": "Hantar semula"
1363
+ "lead.empty.submitAgain": "Hantar semula",
1364
+ "common.day": "Hari",
1365
+ "common.month": "Bulan",
1366
+ "common.year": "Tahun"
1219
1367
  };
1220
1368
 
1221
1369
  var myMM = {
@@ -1228,6 +1376,7 @@ var myMM = {
1228
1376
  "validator.phone": "မှန်ကန်သော ဖုန်းနံပါတ်ထည့်သွင်းပါ",
1229
1377
  "validator.emailUsed": "ဤအေကာင့်အတွက် အီးမေးလ်ကို အသုံးပြုပြီးဖြစ်ပါသည်။",
1230
1378
  "validator.phoneUsed": "ဤအေကာင့်အတွက် သင့်ဖုန်းနံပါတ်ကို အသုံးပြုပြီးဖြစ်ပါသည်။",
1379
+ "validator.dateInvalid": "ယနေ့စွဲမှားနေသည်၊ ကျေးဇူးပြု၍ ပြင်ဆင်ပါ။",
1231
1380
  "lead.otp.title": "OTP ကိုထည့်ပါ",
1232
1381
  "lead.otp.desc": "ကျွန်ုပ်တို့သည် OTP ကိုသင့်ဖုန်းနံပါတ် {phone} သို့ပို့ခဲ့သည်",
1233
1382
  "lead.otp.verify": "အတည်ပြုပါ",
@@ -1236,7 +1385,10 @@ var myMM = {
1236
1385
  "lead.otp.phonePlaceholder": "OTP ကိုထည့်ပါ",
1237
1386
  "lead.empty.title": "အုပ်စ်! သင့်အချက်အလက်သည် ဗလာဖြစ်နေသလိုဖြစ်သည်။ ထပ်မံတင်သွင်းလိုပါသလား?",
1238
1387
  "lead.empty.cancel": "မလုပ်ဆောင်ပါ",
1239
- "lead.empty.submitAgain": "ထပ်မံတင်သွင်းပါ"
1388
+ "lead.empty.submitAgain": "ထပ်မံတင်သွင်းပါ",
1389
+ "common.day": "ရက်",
1390
+ "common.month": "လ",
1391
+ "common.year": "နှစ်"
1240
1392
  };
1241
1393
 
1242
1394
  var thTH = {
@@ -1249,6 +1401,7 @@ var thTH = {
1249
1401
  "validator.phone": "กรุณาใส่ตัวเลขที่ถูกต้อง",
1250
1402
  "validator.emailUsed": "อีเมลนี้ถูกใช้สำหรับแคมเปญนี้แล้ว",
1251
1403
  "validator.phoneUsed": "หมายเลขโทรศัพท์ของคุณถูกใช้สำหรับแคมเปญนี้แล้ว",
1404
+ "validator.dateInvalid": "วันที่นี้ไม่ถูกต้อง โปรดอัปเดต",
1252
1405
  "lead.otp.title": "ป้อน OTP",
1253
1406
  "lead.otp.desc": "เราได้ส่ง OTP ไปยังหมายเลขโทรศัพท์มือถือของคุณ {phone}",
1254
1407
  "lead.otp.verify": "ยืนยัน",
@@ -1257,7 +1410,10 @@ var thTH = {
1257
1410
  "lead.otp.phonePlaceholder": "ป้อน OTP",
1258
1411
  "lead.empty.title": "อุ๊ปส์! ดูเหมือนว่าข้อมูลของคุณว่างเปล่า คุณต้องการส่งข้อมูลอีกครั้งหรือไม่?",
1259
1412
  "lead.empty.cancel": "ยกเลิก",
1260
- "lead.empty.submitAgain": "ส่งอีกครั้ง"
1413
+ "lead.empty.submitAgain": "ส่งอีกครั้ง",
1414
+ "common.day": "วัน",
1415
+ "common.month": "เดือน",
1416
+ "common.year": "ปี"
1261
1417
  };
1262
1418
 
1263
1419
  var viVN = {
@@ -1281,6 +1437,7 @@ var viVN = {
1281
1437
  "validator.phone": "Nhập đúng định dạng số điện thoại",
1282
1438
  "validator.emailUsed": "Email này đã được sử dụng.",
1283
1439
  "validator.phoneUsed": "Số điện thoại này đã được sử dụng.",
1440
+ "validator.dateInvalid": "Ngày này không hợp lệ, vui lòng cập nhật.",
1284
1441
  "lead.otp.title": "Nhập OTP",
1285
1442
  "lead.otp.desc": "Chúng tôi đã gửi OTP đến số điện thoại của bạn {phone}",
1286
1443
  "lead.otp.verify": "Xác minh",
@@ -1289,7 +1446,10 @@ var viVN = {
1289
1446
  "lead.otp.phonePlaceholder": "Nhập OTP",
1290
1447
  "lead.empty.title": "Oops, có vẻ như thông tin của bạn đang trống. Bạn có muốn gửi lại thông tin không?",
1291
1448
  "lead.empty.cancel": "Hủy",
1292
- "lead.empty.submitAgain": "Gửi lại"
1449
+ "lead.empty.submitAgain": "Gửi lại",
1450
+ "common.day": "Ngày",
1451
+ "common.month": "Tháng",
1452
+ "common.year": "Năm"
1293
1453
  };
1294
1454
 
1295
1455
  var zhTW = {
@@ -1302,6 +1462,7 @@ var zhTW = {
1302
1462
  "validator.phone": "請填入有效的電話號碼",
1303
1463
  "validator.emailUsed": "此電子郵件已被使用於此活動。",
1304
1464
  "validator.phoneUsed": "您的手機號碼已被使用於此活動。",
1465
+ "validator.dateInvalid": "此日期無效,請更新.",
1305
1466
  "lead.otp.title": "輸入 OTP",
1306
1467
  "lead.otp.desc": "我們已將 OTP 發送到您的手機號碼 {phone}",
1307
1468
  "lead.otp.verify": "驗證",
@@ -1310,7 +1471,10 @@ var zhTW = {
1310
1471
  "lead.otp.phonePlaceholder": "輸入 OTP",
1311
1472
  "lead.empty.title": "哎呀,您的資訊似乎是空的,您想要重新提交資訊嗎?",
1312
1473
  "lead.empty.cancel": "取消",
1313
- "lead.empty.submitAgain": "重新提交"
1474
+ "lead.empty.submitAgain": "重新提交",
1475
+ "common.day": "日",
1476
+ "common.month": "月",
1477
+ "common.year": "年"
1314
1478
  };
1315
1479
 
1316
1480
  const translationsMap = {
@@ -1322,6 +1486,7 @@ const translationsMap = {
1322
1486
  'my-MM': myMM,
1323
1487
  'km-KH': kmKH,
1324
1488
  'zh-TW': zhTW,
1489
+ 'zh-CN': zhTW,
1325
1490
  'th-TH': thTH,
1326
1491
  'tl-PH': enPH,
1327
1492
  };
@@ -1335,188 +1500,1208 @@ const getTranslations = (locale) => {
1335
1500
 
1336
1501
  const LeadGenContext = createContext({});
1337
1502
 
1338
- const useImageSize = (src) => {
1339
- const [width, setWidth] = useState(16);
1340
- const [height, setHeight] = useState(9);
1341
- const [loaded, setLoaded] = useState(false);
1342
- // load src image to get its width and height
1503
+ const LeadGenSubscriptionBoxContext = createContext({});
1504
+ const LeadGenSubscriptionBoxProvider = (props) => {
1505
+ const { campaign_code, apiUrl: apiUrlProps, apiSubotUrl, locale, forceCampaign: forceCampaignProps, children, } = props;
1506
+ const [forceCampaign, setForceCampaign] = useState(forceCampaignProps);
1507
+ const leadGenSubscriptionBoxValue = useMemo(() => (Object.assign(Object.assign({}, props), { forceCampaign })), [campaign_code, locale, forceCampaign]);
1508
+ const translationContextValue = { locale, values: getTranslations(locale) };
1343
1509
  useEffect(() => {
1344
- setLoaded(false);
1345
- if (src) {
1346
- const img = new Image();
1347
- img.addEventListener('load', () => {
1348
- setWidth(img.naturalWidth);
1349
- setHeight(img.naturalHeight);
1350
- setLoaded(true);
1351
- });
1352
- img.addEventListener('error', () => {
1353
- setWidth(16);
1354
- setHeight(9);
1355
- setLoaded(true);
1356
- });
1357
- img.src = src;
1510
+ if (forceCampaignProps) {
1511
+ setForceCampaign(forceCampaignProps);
1512
+ return;
1358
1513
  }
1359
- else {
1360
- setWidth(16);
1361
- setHeight(9);
1362
- setLoaded(true);
1514
+ if (campaign_code) {
1515
+ Service.campaignGetByCode(campaign_code).then((res) => {
1516
+ const { _data } = res || {};
1517
+ const { campaigns } = _data || {};
1518
+ setForceCampaign(formatCampaignDetail(campaigns));
1519
+ });
1363
1520
  }
1364
- }, [src]);
1365
- return {
1366
- loaded,
1367
- width,
1368
- height,
1369
- };
1370
- };
1371
-
1372
- const CloseButton = ({ onClose, containerClassName, svgClassName, }) => (React__default.createElement("button", { onClick: onClose, className: `le-newbuilder-close-button js-modal__close ${containerClassName || ''}` },
1373
- React__default.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 20 20", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", className: svgClassName },
1374
- React__default.createElement("path", { d: "M9.99981 10.8432L14.0583 14.9017C14.1691 15.0125 14.3083 15.0691 14.476 15.0717C14.6437 15.0743 14.7854 15.0176 14.9013 14.9017C15.0172 14.7858 15.0752 14.6453 15.0752 14.4802C15.0752 14.3151 15.0172 14.1746 14.9013 14.0587L10.8429 10.0002L14.9013 5.9417C15.0121 5.83094 15.0688 5.69172 15.0713 5.52402C15.0739 5.35634 15.0172 5.21456 14.9013 5.09866C14.7854 4.98276 14.6449 4.9248 14.4798 4.9248C14.3147 4.9248 14.1742 4.98276 14.0583 5.09866L9.99981 9.15712L5.94133 5.09866C5.83057 4.98789 5.69135 4.93122 5.52365 4.92866C5.35598 4.92609 5.21419 4.98276 5.09829 5.09866C4.98239 5.21456 4.92444 5.35506 4.92444 5.52018C4.92444 5.6853 4.98239 5.82581 5.09829 5.9417L9.15675 10.0002L5.09829 14.0587C4.98752 14.1694 4.93085 14.3087 4.9283 14.4763C4.92572 14.644 4.98239 14.7858 5.09829 14.9017C5.21419 15.0176 5.3547 15.0756 5.51982 15.0756C5.68493 15.0756 5.82544 15.0176 5.94133 14.9017L9.99981 10.8432Z" }))));
1375
-
1376
- // url: imageBlocks.imageMobile.data.url
1377
- // newTab: imageBlocks.imageMobile.data.newtab
1378
- // imageMobile: campaignShow.image
1379
- // imageDestkop: campaignShow.image_desktop
1380
- const CenterTabLayout = ({ popupId, url, newTab, imageDestkop, imageMobile, onClose, onOtherSubmit, }) => {
1381
- const { width: imageMobileWidth, height: imageMobileHeight, loaded: imageMobileLoaded, } = useImageSize(imageMobile);
1382
- const { width: imageDestkopWidth, height: imageDestkopHeight, loaded: imageDestkopLoaded, } = useImageSize(imageDestkop);
1383
- if (!imageMobileLoaded || !imageDestkopLoaded)
1384
- return null;
1385
- return (React__default.createElement("div", { id: popupId, className: "lead-modal-wrapper", "data-popup-url": location.pathname, "data-popup-type": "center_tab" },
1386
- React__default.createElement("div", { className: "le-center-tab-popup" },
1387
- React__default.createElement("div", { style: { position: 'relative' } },
1388
- React__default.createElement("a", { className: "js-popup-other-submit", href: url, target: newTab ? 'blank' : '_parent', onClick: onOtherSubmit },
1389
- isVideo(imageMobile) ? (React__default.createElement("video", { loop: true, muted: true, autoPlay: true, className: "le-only-mobile" },
1390
- React__default.createElement("source", { src: imageMobile }))) : (React__default.createElement("img", { className: "le-only-mobile", src: imageMobile, style: {
1391
- aspectRatio: `${imageMobileWidth}/${imageMobileHeight}`,
1392
- } })),
1393
- isVideo(imageDestkop) ? (React__default.createElement("video", { loop: true, muted: true, autoPlay: true, className: "le-only-desktop" },
1394
- React__default.createElement("source", { src: imageDestkop }))) : (React__default.createElement("img", { className: "le-only-desktop", src: imageDestkop, style: {
1395
- aspectRatio: `${imageDestkopWidth}/${imageDestkopHeight}`,
1396
- } }))),
1397
- React__default.createElement(CloseButton, { onClose: onClose, containerClassName: "close-button-top-right" })))));
1398
- };
1399
-
1400
- // title: titleText
1401
- // titleAlign: textBlocks.titleBlock.data.align
1402
- // subtitle: textBlocks.subtitleBlock.data.value
1403
- // subtitleAlign: textBlocks.subtitleBlock.data.align
1404
- // url: actionBlocks.linkButtonBlock.data.url
1405
- // urlText: actionBlocks.linkButtonBlock.data.value
1406
- // newTab: actionBlocks.linkButtonBlock.data.newtab
1407
- // imageMobile: campaignShow.image
1408
- // imageDesktop: campaignShow.image_desktop
1409
- const FloatingLayout = ({ popupId, url, title, urlText, titleAlign, subtitle, subtitleAlign, newTab, imageDesktop, imageMobile, onClose, onOtherSubmit, }) => {
1410
- const { width: imageMobileWidth, height: imageMobileHeight, loaded: imageMobileLoaded, } = useImageSize(imageMobile);
1411
- const { width: imageDesktopWidth, height: imageDesktopHeight, loaded: imageDesktopLoaded, } = useImageSize(imageDesktop);
1412
- if (!imageMobileLoaded || !imageDesktopLoaded)
1413
- return null;
1414
- return (React__default.createElement("div", { id: popupId, className: "lead-modal-wrapper lead-floating-wrapper", "data-popup-url": location.pathname, "data-popup-type": "floating" },
1415
- React__default.createElement("aside", { className: "le-only-desktop" },
1416
- React__default.createElement("div", { className: "le-floating-desktop" },
1417
- React__default.createElement("div", { className: "le-floating-desktop-wrap", style: { position: 'relative', background: '#fff' } },
1418
- imageDesktop ? (React__default.createElement("div", null,
1419
- React__default.createElement("img", { style: {
1420
- maxWidth: 120,
1421
- borderTopLeftRadius: 5,
1422
- borderBottomLeftRadius: 5,
1423
- aspectRatio: `${imageDesktopWidth}/${imageDesktopHeight}`,
1424
- }, src: imageDesktop }))) : null,
1425
- React__default.createElement("div", { style: { padding: 20 } },
1426
- React__default.createElement("div", { className: `le-floating-desktop-title le-text-align-${titleAlign}` }, title),
1427
- React__default.createElement("div", { className: `le-floating-desktop-desc le-text-align-${subtitleAlign}` }, subtitle)),
1428
- React__default.createElement("a", { target: newTab ? 'blank' : '_parent', style: { marginLeft: 35, textDecoration: 'none' }, href: url },
1429
- React__default.createElement("button", { className: "le-joinbow-floating-btn js-popup-other-submit", onClick: onOtherSubmit }, urlText)),
1430
- React__default.createElement(CloseButton, { onClose: onClose, containerClassName: "close-button-top-right" })))),
1431
- React__default.createElement("aside", { className: "le-only-mobile" },
1432
- React__default.createElement("div", { className: "le-floating-mobile" },
1433
- React__default.createElement("div", { className: "le-floating-mobile-wrap", style: { position: 'relative', background: '#fff' } },
1434
- React__default.createElement("aside", { style: { display: 'flex', justifyContent: 'space-between' } },
1435
- React__default.createElement("div", null,
1436
- React__default.createElement("div", { className: `le-floating-mobile-title le-text-align-${titleAlign}` }, title),
1437
- React__default.createElement("div", { className: `le-floating-mobile-desc le-text-align-${subtitleAlign}` }, subtitle)),
1438
- imageMobile ? (React__default.createElement("div", null,
1439
- React__default.createElement("img", { style: {
1440
- marginLeft: 15,
1441
- marginTop: 4,
1442
- maxWidth: 100,
1443
- aspectRatio: `${imageMobileWidth}/${imageMobileHeight}`,
1444
- }, src: imageMobile }))) : null),
1445
- React__default.createElement("div", { style: { textAlign: 'center', marginTop: 10 } },
1446
- React__default.createElement("a", { target: newTab ? 'blank' : '_parent', href: url, style: { textDecoration: 'none' } },
1447
- React__default.createElement("button", { className: "le-joinbow-floating-btn js-popup-other-submit", onClick: onOtherSubmit }, urlText))),
1448
- React__default.createElement(CloseButton, { onClose: onClose, containerClassName: "close-button-top-right" }))))));
1449
- };
1450
-
1451
- const ThankyouPopup = ({ title, titleAlign, subtitle, subtitleAlign, link, linkNewTab, linkText, image, }) => {
1452
- const { width: imageWidth, height: imageHeight, loaded: imageLoaded, } = useImageSize(image);
1453
- if (!imageLoaded)
1521
+ }, [campaign_code]);
1522
+ useEffect(() => {
1523
+ leadStore.apiLeadUrl = apiUrlProps;
1524
+ leadStore.apiSubotUrl = apiSubotUrl;
1525
+ return () => {
1526
+ setForceCampaign(null);
1527
+ };
1528
+ }, []);
1529
+ if (!forceCampaign || !(forceCampaign === null || forceCampaign === void 0 ? void 0 : forceCampaign.id)) {
1454
1530
  return null;
1455
- return (React__default.createElement("div", { className: "lead-modal__thank-you leadgen-inner_thankyou" },
1456
- React__default.createElement("div", { style: { width: '100%' } },
1457
- React__default.createElement("img", { src: image, style: {
1458
- maxHeight: 162,
1459
- objectFit: 'cover',
1460
- aspectRatio: `${imageWidth}/${imageHeight}`,
1461
- }, loading: "lazy" }),
1462
- title && (React__default.createElement("h1", { className: `le-thankyou-title le-text-align-${titleAlign}` }, title)),
1463
- subtitle && (React__default.createElement("p", { className: `le-thankyou-subtitle le-text-align-${subtitleAlign}` }, subtitle.split('\n').map((text, idx, list) => {
1464
- const isShowBr = idx < list.length - 1;
1465
- return (React__default.createElement(React__default.Fragment, null,
1466
- text,
1467
- isShowBr && React__default.createElement("br", null)));
1468
- }))),
1469
- linkText && (React__default.createElement("div", null,
1470
- React__default.createElement("a", { href: link, target: linkNewTab ? '_blank' : 'parrent', rel: "noreferrer" },
1471
- React__default.createElement("button", { className: `lead-modal__btn ${LEAD_CLASS}` }, linkText)))))));
1531
+ }
1532
+ return (React__default.createElement(LeadGenSubscriptionBoxContext.Provider, { value: leadGenSubscriptionBoxValue },
1533
+ React__default.createElement(TranslationsContext.Provider, { value: translationContextValue }, children)));
1472
1534
  };
1473
1535
 
1474
- const InlineLayout = ({ content, inlinePosition, }) => {
1475
- const target = useMemo(() => {
1476
- if (!inlinePosition)
1477
- return null;
1478
- const parents = document.querySelectorAll(`[data-url="${location.pathname}"] .body-content`);
1479
- const allChildren = Array.from(parents).reduce((r, p) => {
1480
- return [...r, ...Array.from(p.children)];
1481
- }, []);
1482
- if (allChildren === null || allChildren === void 0 ? void 0 : allChildren.length) {
1483
- // find the third p tag in the body content, some other tags might mix in between
1484
- const allPTags = allChildren.filter((c) => c.nodeName === 'P');
1485
- const allH2Tags = allChildren.filter((c) => c.nodeName === 'H2');
1486
- let target = null;
1487
- switch (inlinePosition) {
1488
- case '1th':
1489
- target = allPTags[0];
1490
- break;
1491
- case '2th':
1492
- target = allPTags[1];
1493
- break;
1494
- case '3th':
1495
- target = allPTags[2];
1496
- break;
1497
- case '4th':
1498
- target = allPTags[3];
1499
- break;
1500
- case '5th':
1501
- target = allPTags[4];
1502
- break;
1503
- case '6th':
1504
- target = allPTags[5];
1505
- break;
1506
- case '7th':
1507
- target = allPTags[6];
1508
- break;
1509
- case '8th':
1510
- target = allPTags[7];
1511
- break;
1512
- case '9th':
1513
- target = allPTags[8];
1514
- break;
1515
- case '10th':
1516
- target = allPTags[9];
1517
- break;
1518
- case '11th':
1519
- target = allPTags[10];
1536
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
1537
+ const customParseFormat = require('dayjs/plugin/customParseFormat');
1538
+ dayjs.extend(customParseFormat);
1539
+ // You can give context variables any name
1540
+ const [LeadFormProvider, useLeadFormContext, useLeadForm] = createFormContext();
1541
+ const useLeadFormConfig = ({ listBlockAdded = [], validatingPhoneRef, validatingEmailRef, campaignId, campaign_subot_id = [], userInfo, format, }) => {
1542
+ var _a;
1543
+ const { t } = useTranslations();
1544
+ const initialValues = useMemo(() => mappingSSOToLead(userInfo), [userInfo === null || userInfo === void 0 ? void 0 : userInfo.id]);
1545
+ const LEAD_LOCALE = LEAD_LOCALE_DATA[(_a = document === null || document === void 0 ? void 0 : document.documentElement) === null || _a === void 0 ? void 0 : _a.lang] ||
1546
+ LEAD_LOCALE_DATA['vi-VN'];
1547
+ const validateObj = useMemo(() => {
1548
+ const InputBlocks = [
1549
+ 'TextBlock',
1550
+ 'NumberBlock',
1551
+ 'EmailBlock',
1552
+ 'PhoneBlock',
1553
+ 'DateBlock',
1554
+ 'CheckboxBlock',
1555
+ 'RadioBlock',
1556
+ 'DropdownBlock',
1557
+ 'PhoneOtpBlock',
1558
+ 'WhatsappOtpBlock',
1559
+ 'ZaloOtpBlock',
1560
+ 'LocationBlock',
1561
+ 'TncBlock',
1562
+ ];
1563
+ // ALL are required and can skip if not touched yet
1564
+ const withSharedCheck = (name, cb,
1565
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1566
+ block) => {
1567
+ return (value) => {
1568
+ var _a;
1569
+ const isBLockRequired = (_a = block === null || block === void 0 ? void 0 : block.data) === null || _a === void 0 ? void 0 : _a.required;
1570
+ if (!formRef.current.isTouched(name))
1571
+ return;
1572
+ if ((typeof value === 'string' && value.trim() === '') ||
1573
+ typeof value === 'undefined' ||
1574
+ (Array.isArray(value) && value.length === 0)) {
1575
+ return isBLockRequired
1576
+ ? t('validator.required')
1577
+ : cb === null || cb === void 0 ? void 0 : cb(value);
1578
+ }
1579
+ return cb === null || cb === void 0 ? void 0 : cb(value);
1580
+ };
1581
+ };
1582
+ return listBlockAdded
1583
+ .filter((b) => InputBlocks.includes(b.name))
1584
+ .reduce((r, b) => {
1585
+ const { name: fieldType, data } = b || {};
1586
+ const { value: fieldName, required } = data || {};
1587
+ const isRequired = required !== null && required !== void 0 ? required : true;
1588
+ if (fieldType === 'NumberBlock') {
1589
+ return Object.assign(Object.assign({}, r), { [fieldName]: withSharedCheck(fieldName, (value) => {
1590
+ if (value && isNaN(Number(value))) {
1591
+ return t('validator.number');
1592
+ }
1593
+ }, b) });
1594
+ }
1595
+ else if (fieldType === 'EmailBlock') {
1596
+ return Object.assign(Object.assign({}, r), { [fieldName]: withSharedCheck(fieldName, (value) => {
1597
+ if (value && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value)) {
1598
+ return t('validator.email');
1599
+ }
1600
+ if (!value)
1601
+ return;
1602
+ validatingEmailRef.current = true;
1603
+ setTimeout(() => {
1604
+ formRef.current.setFieldError(fieldName, 'Validating...');
1605
+ checkUsedEmailOrPhoneWithCache(campaignId, campaign_subot_id, {
1606
+ email: value,
1607
+ })
1608
+ .then((tKey) => {
1609
+ if (tKey) {
1610
+ formRef.current.setFieldError(fieldName, t(tKey));
1611
+ }
1612
+ else {
1613
+ formRef.current.clearFieldError(fieldName);
1614
+ }
1615
+ validatingEmailRef.current = false;
1616
+ })
1617
+ .catch((e) => {
1618
+ console.error(e);
1619
+ formRef.current.setFieldError(fieldName, e.message || 'Something went wrong');
1620
+ validatingEmailRef.current = false;
1621
+ });
1622
+ }, 200);
1623
+ }, b) });
1624
+ }
1625
+ else if (fieldType === 'PhoneBlock' ||
1626
+ fieldType === 'PhoneOtpBlock' ||
1627
+ fieldType === 'ZaloOtpBlock' ||
1628
+ fieldType === 'WhatsappOtpBlock') {
1629
+ return Object.assign(Object.assign({}, r), { [fieldName]: withSharedCheck(fieldName, (value) => {
1630
+ if (value &&
1631
+ window.intlTelInputUtils &&
1632
+ !window.intlTelInputUtils.isValidNumber(String(value), LEAD_LOCALE.countryCode)) {
1633
+ return t('validator.phone');
1634
+ }
1635
+ if (!value)
1636
+ return;
1637
+ validatingPhoneRef.current = true;
1638
+ setTimeout(() => {
1639
+ formRef.current.setFieldError(fieldName, 'Validating...');
1640
+ if (b.data.singleSubmission) {
1641
+ checkUsedPhoneOnlyWithCache(campaignId, value)
1642
+ .then((tKey) => {
1643
+ if (tKey) {
1644
+ formRef.current.setFieldError(fieldName, t(tKey));
1645
+ }
1646
+ else {
1647
+ formRef.current.clearFieldError(fieldName);
1648
+ }
1649
+ validatingPhoneRef.current = false;
1650
+ })
1651
+ .catch((err) => {
1652
+ console.error(err);
1653
+ formRef.current.setFieldError(fieldName, err.message || 'Something went wrong');
1654
+ validatingPhoneRef.current = false;
1655
+ });
1656
+ }
1657
+ else {
1658
+ checkUsedEmailOrPhoneWithCache(campaignId, campaign_subot_id, {
1659
+ phone: value,
1660
+ })
1661
+ .then((tKey) => {
1662
+ if (tKey) {
1663
+ formRef.current.setFieldError(fieldName, t(tKey));
1664
+ }
1665
+ else {
1666
+ formRef.current.clearFieldError(fieldName);
1667
+ }
1668
+ validatingPhoneRef.current = false;
1669
+ })
1670
+ .catch((e) => {
1671
+ console.error(e);
1672
+ formRef.current.setFieldError(fieldName, e.message || 'Something went wrong');
1673
+ validatingPhoneRef.current = false;
1674
+ });
1675
+ }
1676
+ }, 200);
1677
+ }, b) });
1678
+ }
1679
+ else if (fieldType === 'DateBlock') {
1680
+ return Object.assign(Object.assign({}, r), { [fieldName]: withSharedCheck(fieldName, (value) => {
1681
+ const errMsg = t('validator.dateInvalid');
1682
+ const isDirty = formRef.current.isDirty(fieldName);
1683
+ const isTouched = formRef.current.isTouched(fieldName);
1684
+ if (typeof value === 'string') {
1685
+ const valueArr = value.split('/');
1686
+ if (valueArr.length < 3) {
1687
+ return;
1688
+ }
1689
+ if (valueArr.length === 3) {
1690
+ return errMsg;
1691
+ }
1692
+ const dayInJS = dayjs(value, format, true);
1693
+ return !dayInJS.isValid() && isDirty && isTouched
1694
+ ? errMsg
1695
+ : undefined;
1696
+ }
1697
+ const dayInJS = dayjs(value);
1698
+ if (!dayInJS.isValid()) {
1699
+ return errMsg;
1700
+ }
1701
+ }, b) });
1702
+ }
1703
+ else if (fieldType === 'TncBlock') {
1704
+ return Object.assign(Object.assign({}, r), { [`TNC-` + b.id]: withSharedCheck('TNC-' + b.id, (value) => {
1705
+ if (isRequired && !value) {
1706
+ return t('validator.required');
1707
+ }
1708
+ }, b) });
1709
+ }
1710
+ else {
1711
+ return Object.assign(Object.assign({}, r), { [fieldName]: withSharedCheck(fieldName, undefined, b) });
1712
+ }
1713
+ }, {});
1714
+ }, [listBlockAdded.map((b) => b.name).join(',')]);
1715
+ const form = useLeadForm({
1716
+ validateInputOnChange: true,
1717
+ validateInputOnBlur: true,
1718
+ clearInputErrorOnChange: true,
1719
+ validate: validateObj,
1720
+ initialValues,
1721
+ });
1722
+ const formRef = useRef(form);
1723
+ formRef.current = form;
1724
+ return { form, validateObj };
1725
+ };
1726
+
1727
+ const PhoneInput = forwardRef((props, ref) => {
1728
+ const { defaultCountry, id: idProps, name, placeholder, label, labelElement, labelProps, description, descriptionProps, withAsterisk, inputMode, inputContainer, inputWrapperOrder, error, className, classNames, style, styles } = props, restProps = __rest(props, ["defaultCountry", "id", "name", "placeholder", "label", "labelElement", "labelProps", "description", "descriptionProps", "withAsterisk", "inputMode", "inputContainer", "inputWrapperOrder", "error", "className", "classNames", "style", "styles"]);
1729
+ const id = idProps || v1() + name;
1730
+ return (React__default.createElement(Input$1.Wrapper, { size: "md", label: label, labelElement: labelElement, labelProps: Object.assign({ htmlFor: id }, labelProps), description: description, descriptionProps: descriptionProps, withAsterisk: withAsterisk, inputMode: inputMode, inputContainer: inputContainer, inputWrapperOrder: inputWrapperOrder, error: error, "data-invalid": !!error, className: className, classNames: classNames, style: style, styles: styles },
1731
+ React__default.createElement("div", { className: "mantine-Input-wrapper" },
1732
+ React__default.createElement(Phone, Object.assign({}, restProps, { id: id, ref: ref, name: name, spellCheck: false, placeholder: placeholder, defaultCountry: defaultCountry, className: "mantine-Input-input", type: "tel", "data-control": "tel" })))));
1733
+ });
1734
+
1735
+ const StyledLeadGenFormInner = styled.div `
1736
+ display: flex;
1737
+ flex-wrap: wrap;
1738
+ gap: 8px;
1739
+ .leadgen-form_input {
1740
+ width: calc(50% - 4px);
1741
+ }
1742
+
1743
+ .leadgen-form_input_checkbox {
1744
+ width: 100%;
1745
+ }
1746
+ `;
1747
+
1748
+ const cssInputNotShrink$1 = css `
1749
+ height: 100% !important;
1750
+ min-height: calc(var(--container-height, 56px) * 22 / 56);
1751
+ color: ${theme.colors.gray800};
1752
+ font-size: var(--input, 16px);
1753
+ line-height: calc(var(--container-height, 56px) * 22 / 56);
1754
+ border: none !important;
1755
+ border-radius: 0 !important;
1756
+ outline: none !important;
1757
+ box-shadow: none !important;
1758
+ padding: 0;
1759
+ cursor: pointer;
1760
+ opacity: 0;
1761
+
1762
+ ::placeholder {
1763
+ color: ${theme.colors.gray400};
1764
+ }
1765
+ `;
1766
+ const cssInputShrink$1 = css `
1767
+ height: auto !important;
1768
+ cursor: text;
1769
+ opacity: 1;
1770
+ transition: 0.1s ease-in-out all;
1771
+ `;
1772
+ const cssLabelNotShrink$1 = css `
1773
+ position: absolute;
1774
+ top: calc(var(--container-height) / 2);
1775
+ left: var(--space-x, 16px);
1776
+ color: ${theme.colors.gray400};
1777
+ font-size: var(--label-not-shrink, 16px);
1778
+ font-weight: 400;
1779
+ line-height: calc(var(--container-height, 56px) * 18 / 56);
1780
+ margin: 0;
1781
+ z-index: 1;
1782
+ cursor: pointer;
1783
+ transform: translateY(-50%);
1784
+ transition: 0.125s ease-in all;
1785
+ `;
1786
+ const cssLabelShrink$1 = css `
1787
+ color: ${theme.colors.gray600};
1788
+ font-weight: 600;
1789
+ font-size: var(--label-shrink, 12px);
1790
+ top: calc(var(--container-height) * 7 / 56);
1791
+ transform: none;
1792
+ transition: 0.125s ease-out all;
1793
+ `;
1794
+ const cssWrapperInputNotShrink$1 = css `
1795
+ min-height: var(--container-height, 56px);
1796
+ display: flex;
1797
+ align-items: flex-end;
1798
+ border: 1px solid ${theme.colors.gray200};
1799
+ border-radius: 8px;
1800
+ background-color: #fff;
1801
+ padding-inline: var(--space-x, 16px);
1802
+ padding-block: var(--space-y-not-shrink, 16px);
1803
+ cursor: pointer;
1804
+ pointer-events: none;
1805
+
1806
+ &:has(.mantine-Input-rightSection) {
1807
+ padding-right: var(--container-height, 56px);
1808
+ }
1809
+
1810
+ .mantine-Input-icon {
1811
+ display: none;
1812
+ }
1813
+
1814
+ .mantine-NumberInput-control {
1815
+ border-color: ${theme.colors.gray200};
1816
+ }
1817
+ `;
1818
+ const cssWrapperInputShrink$1 = css `
1819
+ height: auto;
1820
+ min-height: var(--container-height, 56px);
1821
+ padding-block: var(--space-y-shrink, 7px);
1822
+ cursor: text;
1823
+ pointer-events: auto;
1824
+ `;
1825
+ const cssInputWrapperError$1 = css `
1826
+ color: ${theme.colors.red800};
1827
+ font-size: 12px;
1828
+ line-height: 1.5;
1829
+ `;
1830
+ const StyledTextFieldContainer$1 = styled.div `
1831
+ --space-x: 16px;
1832
+ --space-y-not-shrink: 16px;
1833
+ --space-y-shrink: 7px;
1834
+ --container-height: 56px;
1835
+ --label-not-shrink: 16px;
1836
+ --label-shrink: 12px;
1837
+ --input: 16px;
1838
+
1839
+ position: relative;
1840
+ min-width: 100px;
1841
+ max-width: 100%;
1842
+ display: inline-block;
1843
+
1844
+ .textField_wrapper {
1845
+ display: inline-block;
1846
+ width: 100%;
1847
+ cursor: pointer;
1848
+ }
1849
+
1850
+ .mantine-InputWrapper-root {
1851
+ &[data-invalid='true'] {
1852
+ .mantine-Input-wrapper {
1853
+ border-color: ${theme.colors.red400};
1854
+ }
1855
+ }
1856
+
1857
+ .mantine-Input-wrapper {
1858
+ &:has([data-invalid]) {
1859
+ border-color: ${theme.colors.red400};
1860
+ }
1861
+ }
1862
+ }
1863
+
1864
+ .mantine-InputWrapper-label {
1865
+ ${cssLabelNotShrink$1}
1866
+ }
1867
+
1868
+ .mantine-Input-wrapper {
1869
+ ${cssWrapperInputNotShrink$1}
1870
+
1871
+ + .mantine-Popover-dropdown[data-position="bottom-start"] {
1872
+ left: 0 !important;
1873
+ }
1874
+ + .mantine-Popover-dropdown[data-position='top-start'] {
1875
+ top: unset !important;
1876
+ left: 0 !important;
1877
+ bottom: 100% !important;
1878
+ }
1879
+ }
1880
+
1881
+ .mantine-Input-input {
1882
+ ${cssInputNotShrink$1}
1883
+ }
1884
+
1885
+ &.textField_shrink,
1886
+ &:focus-within {
1887
+ .mantine-InputWrapper-label {
1888
+ ${cssLabelShrink$1}
1889
+ }
1890
+
1891
+ .mantine-Input-wrapper {
1892
+ ${cssWrapperInputShrink$1}
1893
+ &.mantine-Select-wrapper {
1894
+ .mantine-Select-rightSection {
1895
+ pointer-events: auto !important;
1896
+ }
1897
+ }
1898
+ }
1899
+
1900
+ .mantine-Input-input {
1901
+ ${cssInputShrink$1}
1902
+ }
1903
+
1904
+ &:has(.PhoneInput) {
1905
+ .mantine-InputWrapper-label {
1906
+ left: var(--space-x, 16px);
1907
+ }
1908
+ .PhoneInput {
1909
+ .PhoneInputInput {
1910
+ opacity: 1;
1911
+ }
1912
+ }
1913
+ }
1914
+ }
1915
+
1916
+ .PhoneInput {
1917
+ --phone-select: 75px;
1918
+ --phone-input-space-x: 8px;
1919
+ width: 100%;
1920
+ opacity: 1;
1921
+ border: none;
1922
+ .PhoneInputCountry {
1923
+ background-color: transparent;
1924
+ border: none;
1925
+ padding: 0;
1926
+ width: var(--phone-select, 75px);
1927
+ }
1928
+ .PhoneInputInput {
1929
+ flex: 1;
1930
+ min-width: 0;
1931
+ line-height: 1.5;
1932
+ outline: none !important;
1933
+ border: none;
1934
+ box-shadow: none;
1935
+ padding: 0 var(--phone-input-space-x, 8px);
1936
+ opacity: 0;
1937
+ color: ${theme.colors.gray800} !important;
1938
+ :focus {
1939
+ color: ${theme.colors.gray800} !important;
1940
+ }
1941
+ }
1942
+ }
1943
+
1944
+ &:has(.PhoneInput) {
1945
+ .mantine-InputWrapper-label {
1946
+ left: calc(
1947
+ var(--space-x, 16px) + var(--phone-select, 75px) +
1948
+ var(--phone-input-space-x, 8px)
1949
+ );
1950
+ }
1951
+ }
1952
+ `;
1953
+ const StyledChoiceFieldContainer$1 = styled.div `
1954
+ &.leadgen-form_checkbox,
1955
+ &.leadgen-form_radio {
1956
+ width: 100%;
1957
+ }
1958
+
1959
+ &.leadgen-form_dropdown {
1960
+ width: calc(50% - 12px);
1961
+ }
1962
+
1963
+ .mantine-InputWrapper-root {
1964
+ display: block;
1965
+ }
1966
+
1967
+ .mantine-InputWrapper-label {
1968
+ margin-bottom: 0.5rem;
1969
+ color: ${theme.colors.gray800};
1970
+ font-size: 16px;
1971
+ font-weight: 400;
1972
+ line-height: 1.5;
1973
+ }
1974
+
1975
+ .mantine-Radio-root,
1976
+ .mantine-Checkbox-root {
1977
+ gap: 8px;
1978
+ min-width: calc(50% - 4px);
1979
+
1980
+ input[type='radio'],
1981
+ input[type='checkbox'] {
1982
+ border-color: ${theme.colors.gray600};
1983
+ width: 18px;
1984
+ height: 18px;
1985
+ }
1986
+ input[type='checkbox'] {
1987
+ border-radius: 4px;
1988
+ }
1989
+
1990
+ &[data-checked='true'] {
1991
+ input[type='radio'],
1992
+ input[type='checkbox'] {
1993
+ border-color: ${theme.colors.primary600};
1994
+ + svg {
1995
+ color: ${theme.colors.primary600};
1996
+ }
1997
+ }
1998
+
1999
+ input[type='radio'] {
2000
+ background-color: white;
2001
+ }
2002
+ }
2003
+
2004
+ .mantine-Checkbox-input {
2005
+ &:checked {
2006
+ border-color: ${theme.colors.primary600};
2007
+ }
2008
+ }
2009
+ }
2010
+
2011
+ .mantine-Radio-inner,
2012
+ .mantine-Checkbox-inner {
2013
+ width: 24px;
2014
+ height: 24px;
2015
+ display: flex;
2016
+ align-items: center;
2017
+ justify-content: center;
2018
+ }
2019
+
2020
+ .mantine-Radio-body,
2021
+ .mantine-Checkbox-body {
2022
+ display: flex;
2023
+ align-items: center;
2024
+ }
2025
+
2026
+ .mantine-Radio-label,
2027
+ .mantine-Checkbox-label {
2028
+ padding-left: 8px;
2029
+ color: ${theme.colors.gray800};
2030
+ font-size: 14px;
2031
+ line-height: 1.4;
2032
+ letter-spacing: -0.2px;
2033
+ }
2034
+
2035
+ .leadgen-choiceContainer {
2036
+ display: flex;
2037
+ flex-wrap: wrap;
2038
+ align-items: flex-start;
2039
+ gap: 8px;
2040
+ }
2041
+
2042
+ .mantine-InputWrapper-error {
2043
+ ${cssInputWrapperError$1}
2044
+ }
2045
+ `;
2046
+
2047
+ const TextField$1 = (props) => {
2048
+ const { shrink: shrinkProps, onChangeShrink, className, children } = props, restProps = __rest(props, ["shrink", "onChangeShrink", "className", "children"]);
2049
+ const containerRef = useClickOutside(() => {
2050
+ if (shrinkProps) {
2051
+ return;
2052
+ }
2053
+ setShrink(false);
2054
+ onChangeShrink === null || onChangeShrink === void 0 ? void 0 : onChangeShrink(false);
2055
+ });
2056
+ const [shrink, setShrink] = useState(shrinkProps);
2057
+ const onClick = useCallback((e) => {
2058
+ setShrink(true);
2059
+ onChangeShrink === null || onChangeShrink === void 0 ? void 0 : onChangeShrink(true);
2060
+ if (shrink) {
2061
+ return;
2062
+ }
2063
+ const $textEl = e.currentTarget.querySelectorAll('input:not([disabled]):not([type="submit"]),select:not([disabled]),textarea:not([disabled])');
2064
+ const $focusEl = $textEl.item($textEl.length - 1);
2065
+ if ($focusEl) {
2066
+ $focusEl.focus();
2067
+ setTimeout(() => {
2068
+ $focusEl.scrollIntoView({
2069
+ behavior: 'auto',
2070
+ block: 'center',
2071
+ inline: 'start',
2072
+ });
2073
+ }, 100);
2074
+ }
2075
+ }, [shrink]);
2076
+ useEffect(() => {
2077
+ setShrink(shrinkProps);
2078
+ }, [shrinkProps]);
2079
+ return (React__default.createElement(StyledTextFieldContainer$1, Object.assign({ shrink: shrink, className: clsx(className, 'textField', { textField_shrink: !!shrink }) }, restProps),
2080
+ React__default.createElement("div", { ref: containerRef, onClick: onClick, className: "textField_wrapper" }, children)));
2081
+ };
2082
+ const ChoiceField$1 = (props) => {
2083
+ const { children, className } = props, restProps = __rest(props, ["children", "className"]);
2084
+ return (React__default.createElement(StyledChoiceFieldContainer$1, Object.assign({ className: clsx(className, 'choiceField') }, restProps), children));
2085
+ };
2086
+
2087
+ const libraries = ['places'];
2088
+ const GoogleLocationBlock = (props) => {
2089
+ var _a;
2090
+ const { inputWrapperOrder = ['label', 'input', 'description', 'error'], defaultValue, value: valueProps, onChange: onChangeProps, locale } = props, restProps = __rest(props, ["inputWrapperOrder", "defaultValue", "value", "onChange", "locale"]);
2091
+ const [LoadScript, setLoadScript] = useState(null);
2092
+ const [value, setValue] = useState(defaultValue || valueProps);
2093
+ const { predictions } = usePlacesAutocomplete(value, '', locale === 'tl-PH' ? 'en' : (_a = locale === null || locale === void 0 ? void 0 : locale.split('-')) === null || _a === void 0 ? void 0 : _a[0]);
2094
+ const onChangeAutocomplete = useCallback((s) => {
2095
+ setValue(s);
2096
+ onChangeProps === null || onChangeProps === void 0 ? void 0 : onChangeProps(s);
2097
+ }, []);
2098
+ const onClickItem = useCallback((item) => {
2099
+ /** For sure get value */
2100
+ setValue(item.value);
2101
+ const predCur = predictions === null || predictions === void 0 ? void 0 : predictions.find(({ description }) => description === item.value);
2102
+ onChangeProps === null || onChangeProps === void 0 ? void 0 : onChangeProps(item.value, predCur === null || predCur === void 0 ? void 0 : predCur.rawData);
2103
+ }, [onChangeProps, predictions]);
2104
+ useEffect(() => {
2105
+ setValue(valueProps);
2106
+ }, [valueProps]);
2107
+ useEffect(() => {
2108
+ var _a, _b, _c;
2109
+ // only load extra google script when not yet loaded
2110
+ if (!((_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.places) === null || _c === void 0 ? void 0 : _c.AutocompleteService) && !LoadScript) {
2111
+ import('@react-google-maps/api').then((m) => {
2112
+ setLoadScript(() => m.LoadScript);
2113
+ });
2114
+ }
2115
+ }, []);
2116
+ return (React__default.createElement(Autocomplete, Object.assign({ defaultValue: defaultValue, value: value, onChange: onChangeAutocomplete, data: predictions.map((pred) => {
2117
+ return { value: pred.description, label: pred.description };
2118
+ }), filter: () => true, onItemSubmit: onClickItem, inputWrapperOrder: inputWrapperOrder, zIndex: ZINDEX_SSO - 9e6 + 2, withinPortal: true, styles: { dropdown: { pointerEvents: 'auto' } }, inputContainer: (children) => {
2119
+ return (React__default.createElement(React__default.Fragment, null,
2120
+ LoadScript && (React__default.createElement(LoadScript, { googleMapsApiKey: GOOGLE_API_KEY, libraries: libraries, loadingElement: React__default.createElement(React__default.Fragment, null), style: { width: '100%' } })),
2121
+ children));
2122
+ } }, restProps)));
2123
+ };
2124
+
2125
+ const LEADGEN_ORDER_INPUT_WRAPPER = [
2126
+ 'label',
2127
+ 'input',
2128
+ 'description',
2129
+ 'error',
2130
+ ];
2131
+ const LeadGenForm = forwardRef((props, ref) => {
2132
+ const { locale, blocks, scrollToErrorField = true, form: formProps, rules: validate, initialValues, onFinish, onFinishFailed, className, style, } = props;
2133
+ const formRef = useRef(null);
2134
+ const form = formProps || useForm({ initialValues, validate });
2135
+ const middlewareFinish = (values, event) => {
2136
+ onFinish === null || onFinish === void 0 ? void 0 : onFinish(values, event);
2137
+ };
2138
+ const middlewareFinishFailed = (errors, values, events) => {
2139
+ if (scrollToErrorField && errors) {
2140
+ const firstErrorKey = Object.keys(errors)[0];
2141
+ const firstErrorElement = document.querySelector(`[name="${firstErrorKey}"]`);
2142
+ if (firstErrorElement && (firstErrorElement === null || firstErrorElement === void 0 ? void 0 : firstErrorElement.focus)) {
2143
+ setTimeout(() => {
2144
+ firstErrorElement === null || firstErrorElement === void 0 ? void 0 : firstErrorElement.focus();
2145
+ firstErrorElement.scrollIntoView({
2146
+ behavior: 'auto',
2147
+ block: 'center',
2148
+ inline: 'center',
2149
+ });
2150
+ }, 100);
2151
+ }
2152
+ }
2153
+ onFinishFailed === null || onFinishFailed === void 0 ? void 0 : onFinishFailed(errors, values, events);
2154
+ };
2155
+ useEffect(() => {
2156
+ (() => __awaiter(void 0, void 0, void 0, function* () {
2157
+ if (!window.intlTelInputUtils) {
2158
+ yield require('intl-tel-input/build/js/utils');
2159
+ }
2160
+ }))();
2161
+ }, []);
2162
+ useImperativeHandle(ref, () => (Object.assign(Object.assign({}, form), { submit: () => formRef.current.requestSubmit() })), [form, formRef]);
2163
+ if (!blocks || !blocks.length) {
2164
+ return null;
2165
+ }
2166
+ return (React__default.createElement("form", { ref: formRef, onSubmit: form.onSubmit(middlewareFinish, middlewareFinishFailed), className: className, style: style },
2167
+ React__default.createElement(StyledLeadGenFormInner, { className: "leadgen-form_inputs" }, blocks.map((block, idx) => {
2168
+ const { id, name: blockName, data } = block;
2169
+ const { placeholder, value: name, required, listQuestion, valueHTML, isSendMailChimp = false, } = data;
2170
+ const formInputProps = form.getInputProps(name);
2171
+ const { value, error } = formInputProps;
2172
+ const reactKey = `${id}-${idx}`;
2173
+ switch (blockName) {
2174
+ case LEADGEN_BLOCK.TextBlock: {
2175
+ return (React__default.createElement(TextField$1, { key: reactKey, shrink: !!value, className: "leadgen-form_input" },
2176
+ React__default.createElement(TextInput, Object.assign({ name: name, spellCheck: false, withAsterisk: required, label: placeholder, placeholder: placeholder, inputWrapperOrder: LEADGEN_ORDER_INPUT_WRAPPER, type: "text", "data-control": "text" }, formInputProps))));
2177
+ }
2178
+ case LEADGEN_BLOCK.NumberBlock: {
2179
+ return (React__default.createElement(TextField$1, { key: reactKey, shrink: !!value, className: "leadgen-form_input" },
2180
+ React__default.createElement(NumberInput$1, Object.assign({ name: value, spellCheck: false, withAsterisk: required, label: placeholder, placeholder: placeholder, inputWrapperOrder: LEADGEN_ORDER_INPUT_WRAPPER, type: "number", "data-control": "number" }, formInputProps))));
2181
+ }
2182
+ case LEADGEN_BLOCK.EmailBlock: {
2183
+ return (React__default.createElement(TextField$1, { key: reactKey, shrink: !!value, className: "leadgen-form_input" },
2184
+ React__default.createElement(TextInput, Object.assign({ name: name, spellCheck: false, withAsterisk: required, label: placeholder, placeholder: placeholder, inputWrapperOrder: LEADGEN_ORDER_INPUT_WRAPPER, "data-control": "email" }, formInputProps))));
2185
+ }
2186
+ case LEADGEN_BLOCK.PhoneOtpBlock:
2187
+ case LEADGEN_BLOCK.WhatsappOtpBlock:
2188
+ case LEADGEN_BLOCK.ZaloOtpBlock:
2189
+ case LEADGEN_BLOCK.PhoneBlock: {
2190
+ return (React__default.createElement(TextField$1, { key: reactKey, shrink: !!value, className: "leadgen-form_input" },
2191
+ React__default.createElement(PhoneInput, Object.assign({ name: name, spellCheck: false, withAsterisk: required, label: placeholder, placeholder: placeholder, inputWrapperOrder: LEADGEN_ORDER_INPUT_WRAPPER, defaultCountry: (locale ? MAPPED_LOCALE[locale] || 'VN' : 'VN'), type: "text", "data-control": "text" }, formInputProps))));
2192
+ }
2193
+ case LEADGEN_BLOCK.LocationBlock: {
2194
+ return (React__default.createElement(TextField$1, { key: reactKey, shrink: !!value, className: "leadgen-form_input" },
2195
+ React__default.createElement(GoogleLocationBlock, Object.assign({ name: name, withAsterisk: required, label: placeholder, placeholder: placeholder, inputWrapperOrder: LEADGEN_ORDER_INPUT_WRAPPER, locale: locale, "data-control": "text" }, formInputProps))));
2196
+ }
2197
+ case LEADGEN_BLOCK.DateBlock: {
2198
+ return (React__default.createElement(TextField$1, { key: reactKey, shrink: !!value, className: "leadgen-form_input" },
2199
+ React__default.createElement(DateInput, Object.assign({ locale: (MAPPED_LOCALE === null || MAPPED_LOCALE === void 0 ? void 0 : MAPPED_LOCALE[locale]) || MAPPED_LOCALE['vi-VN'], valueFormat: "DD/MM/YYYY", name: name, withAsterisk: required, label: placeholder, placeholder: placeholder, inputWrapperOrder: LEADGEN_ORDER_INPUT_WRAPPER, type: "default", "data-control": "date" }, formInputProps))));
2200
+ }
2201
+ case LEADGEN_BLOCK.DropdownBlock:
2202
+ return (React__default.createElement(TextField$1, { key: reactKey, shrink: !!value, className: "leadgen-form_input" },
2203
+ React__default.createElement("div", { style: { display: 'none' }, "data-extra": true, "data-name": value, "data-control": 'dropdown' }),
2204
+ React__default.createElement(Select$1, Object.assign({ name: name, withAsterisk: required, label: placeholder, placeholder: placeholder, data: listQuestion.map((l) => ({
2205
+ value: l.value,
2206
+ label: l.placeholder,
2207
+ })) }, formInputProps))));
2208
+ case LEADGEN_BLOCK.CheckboxBlock: {
2209
+ const formInputCheckboxProps = form.getInputProps(name, {
2210
+ type: 'checkbox',
2211
+ });
2212
+ return (React__default.createElement(ChoiceField$1, { className: "leadgen-form_input leadgen-form_input_checkbox", key: reactKey },
2213
+ isSendMailChimp && (React__default.createElement("div", { style: { display: 'none' }, "data-name": name + '-mailchimp' })),
2214
+ React__default.createElement(Checkbox$1.Group, Object.assign({ size: "md", withAsterisk: required, label: placeholder, value: value, sx: {
2215
+ display: 'flex',
2216
+ flexDirection: 'column',
2217
+ flexWrap: 'wrap',
2218
+ gap: 8,
2219
+ }, inputWrapperOrder: LEADGEN_ORDER_INPUT_WRAPPER, inputContainer: (children) => {
2220
+ return (React__default.createElement("div", { className: "leadgen-choiceContainer" }, children));
2221
+ } }, formInputCheckboxProps), listQuestion.map((l, _idx) => (React__default.createElement(Checkbox$1, { name: name, key: _idx, value: l.value, label: l.placeholder, "data-control": "checkbox" }))))));
2222
+ }
2223
+ case LEADGEN_BLOCK.RadioBlock: {
2224
+ return (React__default.createElement(ChoiceField$1, { className: "leadgen-form_input leadgen-form_input_checkbox", key: reactKey },
2225
+ isSendMailChimp && (React__default.createElement("div", { style: { display: 'none' }, "data-name": name + '-mailchimp' })),
2226
+ React__default.createElement(Radio$1.Group, Object.assign({ size: "md", withAsterisk: required, label: placeholder, value: value, spellCheck: true, inputWrapperOrder: LEADGEN_ORDER_INPUT_WRAPPER, inputContainer: (children) => {
2227
+ return (React__default.createElement("div", { className: "leadgen-choiceContainer" }, children));
2228
+ } }, formInputProps), listQuestion.map((l, _index) => (React__default.createElement(Radio$1, { name: name, key: _index, value: l.value, label: l.placeholder, "data-control": "radio" }))))));
2229
+ }
2230
+ case 'TncBlock':
2231
+ return (React__default.createElement(ChoiceField$1, { className: "leadgen-form_input leadgen-form_input_checkbox", key: reactKey },
2232
+ React__default.createElement(Input$1.Wrapper, { error: error },
2233
+ React__default.createElement(Checkbox$1, Object.assign({ value: value, name: 'TNC-' + id, label: React__default.createElement("p", { className: "lead-modal__tnc-link", dangerouslySetInnerHTML: { __html: valueHTML } }), className: "tnc-block", "data-control": "checkbox" }, formInputProps)))));
2234
+ default: {
2235
+ return null;
2236
+ }
2237
+ }
2238
+ }))));
2239
+ });
2240
+
2241
+ const StyledLeadGenThankYou = styled.div `
2242
+ display: flex;
2243
+ gap: 8px;
2244
+ flex-direction: column;
2245
+ padding-block: 24px;
2246
+
2247
+ .leadgen-image {
2248
+ width: 120px;
2249
+ height: 120px;
2250
+ margin-inline: auto;
2251
+ object-fit: contain;
2252
+ object-position: center;
2253
+ text-align: center;
2254
+ }
2255
+
2256
+ .leadgen-title {
2257
+ margin-block: 0;
2258
+ color: ${theme.colors.gray900};
2259
+ font-weight: 700;
2260
+ font-size: 18px;
2261
+ line-height: 28px;
2262
+ letter-spacing: -0.2px;
2263
+ }
2264
+
2265
+ .leadgen-description {
2266
+ margin-block: 0;
2267
+ color: ${theme.colors.gray600};
2268
+ font-weight: 400;
2269
+ font-size: 14px;
2270
+ line-height: 22px;
2271
+ letter-spacing: -0.2px;
2272
+ text-align: center;
2273
+ }
2274
+
2275
+ > [data-align] {
2276
+ &[data-align='right'] {
2277
+ text-align: right;
2278
+ }
2279
+ &[data-align='center'] {
2280
+ text-align: center;
2281
+ }
2282
+ }
2283
+ `;
2284
+ const LeadGenThankYou = ({ image, title, description, showButton = false, button, className, style, }) => {
2285
+ const { src } = image;
2286
+ const { htmlText: titleText, align: titleAlign } = title;
2287
+ const { htmlText: descriptionText, align: descriptionAlign } = description;
2288
+ const { htmlText: buttonText, newtab, url, onClick } = button;
2289
+ return (React__default.createElement(StyledLeadGenThankYou, { className: className, style: style },
2290
+ React__default.createElement("img", { src: src, alt: "", className: "leadgen-thankyou_image leadgen-image" }),
2291
+ React__default.createElement("p", { className: "leadgen-thankyou_title leadgen-title", "data-align": titleAlign }, titleText),
2292
+ React__default.createElement("p", { className: "leadgen-thankyou_description leadgen-description", "data-align": descriptionAlign }, descriptionText),
2293
+ !!buttonText && showButton && (React__default.createElement(Button$2, { component: url ? 'a' : 'button', target: newtab ? '_blank' : undefined, href: url, size: "lg", variant: "filled", className: "leadgen-thankyoue_btn leadgen-btn", onClick: onClick }, buttonText))));
2294
+ };
2295
+
2296
+ const StyledLeadGenSubscriptionBoxBody = styled.div `
2297
+ margin-top: 16px;
2298
+ .leadgen-btn {
2299
+ margin-top: 16px;
2300
+ }
2301
+ `;
2302
+ const StyledLeadGenSubscriptionBoxHeaderImage = styled.div `
2303
+ margin-top: 3px;
2304
+ margin-right: 20px;
2305
+ width: 44px;
2306
+ height: 44px;
2307
+
2308
+ img {
2309
+ width: 100%;
2310
+ height: 100%;
2311
+ object-fix: contain;
2312
+ onject-position: center;
2313
+ }
2314
+
2315
+ :has(img[src='']) {
2316
+ display: none;
2317
+ }
2318
+ `;
2319
+ const StyledLeadGenSubscriptionBoxHeader = styled.div `
2320
+ display: flex;
2321
+ align-items: center;
2322
+ margin-bottom: 16px;
2323
+ .leadgen-title {
2324
+ margin-bottom: 0;
2325
+ flex: 1;
2326
+ min-width: 0;
2327
+ color: ${theme.colors.gray900};
2328
+ font-size: 18px;
2329
+ font-weight: 600;
2330
+ line-height: 1.4;
2331
+ letter-spacing: -0.8px;
2332
+ }
2333
+ `;
2334
+ const StyledLeadGenSubscriptionBox = styled.div `
2335
+ padding: 16px;
2336
+ border: 1px solid ${theme.colors.neutral100};
2337
+ border-radius: 12px;
2338
+ margin-inline: auto;
2339
+ .leadgen-form_inputs {
2340
+ .leadgen-form_input {
2341
+ width: 100%;
2342
+ }
2343
+ }
2344
+
2345
+ .leadgen-form_input {
2346
+ .mantine-Input-wrapper {
2347
+ max-height: 56px;
2348
+ }
2349
+ }
2350
+
2351
+ @media screen and (min-width: 768px) {
2352
+ .leadgen-subscription_box_body {
2353
+ display: flex;
2354
+ > form {
2355
+ flex: 1;
2356
+ min-width: 0;
2357
+
2358
+ .leadgen-form_inputs {
2359
+ .leadgen-form_input {
2360
+ width: calc(50% - 4px);
2361
+ }
2362
+ }
2363
+ }
2364
+
2365
+ .leadgen-btn {
2366
+ margin-top: 0;
2367
+ margin-left: 8px;
2368
+ width: auto;
2369
+ min-height: 56px;
2370
+ }
2371
+ }
2372
+ }
2373
+ `;
2374
+ const LeadGenSubscriptionBoxWithoutMemo = ({ locale, userInfo, siteId, siteDomain, forceCampaign, campaign_code, article_id, subscription_title: subscriptionTitleProps, }) => {
2375
+ var _a, _b, _c;
2376
+ const refContainer = useRef(null);
2377
+ const validatingEmailRef = useRef(false);
2378
+ const validatingPhoneRef = useRef(false);
2379
+ const { image, extra_fields, id: campaign_id, bot_id: campaign_subot_id = [], ThankYouBlock, } = forceCampaign || {};
2380
+ const { textBlocks, listBlockAdded, actionBlocks } = extra_fields || {};
2381
+ const { submitBlock } = actionBlocks || {};
2382
+ const [loading, setLoading] = useState(false);
2383
+ const [showThankyou, setShowThankyou] = useState(false);
2384
+ const formRef = useRef(null);
2385
+ const { form, validateObj } = useLeadFormConfig({
2386
+ listBlockAdded,
2387
+ campaignId: campaign_id,
2388
+ campaign_subot_id,
2389
+ validatingEmailRef,
2390
+ validatingPhoneRef,
2391
+ userInfo,
2392
+ });
2393
+ const subscription_title = useMemo(() => { var _a, _b; return subscriptionTitleProps || ((_b = (_a = textBlocks === null || textBlocks === void 0 ? void 0 : textBlocks.titleBlock) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.value); }, [subscriptionTitleProps, (_b = (_a = textBlocks === null || textBlocks === void 0 ? void 0 : textBlocks.titleBlock) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.value]);
2394
+ const { image: thankyouImage, title: thankyouTitle, description: thankyouDescription, button: thankyouButton, } = ThankYouBlock || {};
2395
+ const { apiUrl } = useMemo(() => {
2396
+ let apiUrl = leadStore.apiLeadUrl;
2397
+ if (apiUrl.includes('localhost')) {
2398
+ apiUrl = 'https://dev.leadgen.hellobacsi.com/';
2399
+ }
2400
+ return {
2401
+ apiUrl,
2402
+ };
2403
+ }, [siteDomain, siteId]);
2404
+ const url = useMemo(() => location.href.toLowerCase() || '', []);
2405
+ const article_title = useMemo(() => document.title || '', []);
2406
+ const cookie_id = useMemo(() => getCookie('hhg-id') || null, []);
2407
+ const ga_client_id = useMemo(() => getCookie('_ga') || null, []);
2408
+ const leadgenImpression = useCallback(() => {
2409
+ Service.campaignPostImpression({
2410
+ url,
2411
+ action: LEADGEN_ACTIONS.SCROLL,
2412
+ code: campaign_code,
2413
+ title_article: article_title,
2414
+ cookie_id,
2415
+ ga_client_id,
2416
+ extra: { cookie_id, article_id, subscription_title },
2417
+ });
2418
+ }, [
2419
+ article_id,
2420
+ article_title,
2421
+ cookie_id,
2422
+ ga_client_id,
2423
+ campaign_code,
2424
+ subscription_title,
2425
+ ]);
2426
+ const intersectionObserverCallback = useCallback((entries) => {
2427
+ entries.forEach((entry) => {
2428
+ const { isIntersecting, target } = entry;
2429
+ if (isIntersecting && target === refContainer.current) {
2430
+ leadgenImpression();
2431
+ }
2432
+ });
2433
+ }, [leadgenImpression]);
2434
+ const IObserver = new IntersectionObserver(intersectionObserverCallback);
2435
+ const middlewareOnSubmit = useCallback((value) => __awaiter(void 0, void 0, void 0, function* () {
2436
+ const newValue = {
2437
+ url,
2438
+ article_title,
2439
+ cookie_id,
2440
+ ga_client_id,
2441
+ article_id,
2442
+ campaign_id,
2443
+ campaign_code,
2444
+ subscription_title: subscription_title,
2445
+ };
2446
+ listBlockAdded.forEach(({ data: { value: k } }) => {
2447
+ newValue[k] = value[k];
2448
+ });
2449
+ setLoading(true);
2450
+ try {
2451
+ const { _data } = (yield Service.campaignPostLead({ data: newValue })) || {};
2452
+ const { model } = _data;
2453
+ if (model && model.id) {
2454
+ setShowThankyou(true);
2455
+ }
2456
+ }
2457
+ catch (error) {
2458
+ console.log('** Error : ', error);
2459
+ }
2460
+ setLoading(false);
2461
+ }), [
2462
+ url,
2463
+ article_id,
2464
+ article_title,
2465
+ cookie_id,
2466
+ ga_client_id,
2467
+ campaign_code,
2468
+ subscription_title,
2469
+ listBlockAdded,
2470
+ ]);
2471
+ useEffect(() => {
2472
+ if (refContainer.current) {
2473
+ IObserver.observe(refContainer.current);
2474
+ }
2475
+ return () => {
2476
+ IObserver.disconnect();
2477
+ };
2478
+ }, [
2479
+ url,
2480
+ article_id,
2481
+ article_title,
2482
+ ga_client_id,
2483
+ campaign_id,
2484
+ campaign_code,
2485
+ subscription_title,
2486
+ ]);
2487
+ return (React__default.createElement("div", { ref: refContainer },
2488
+ React__default.createElement(StyledLeadGenSubscriptionBox, null,
2489
+ showThankyou && (React__default.createElement(LeadGenThankYou, { image: Object.assign(Object.assign({}, thankyouImage), { src: thankyouImage.src || `${apiUrl}admin/img/thanksyou.png` }), title: thankyouTitle, description: thankyouDescription, button: thankyouButton })),
2490
+ !showThankyou && (React__default.createElement(React__default.Fragment, null,
2491
+ React__default.createElement(StyledLeadGenSubscriptionBoxHeader, null,
2492
+ !!image && (React__default.createElement(StyledLeadGenSubscriptionBoxHeaderImage, null,
2493
+ React__default.createElement("img", { src: image, alt: "" }))),
2494
+ React__default.createElement("p", { className: "leadgen-title" }, subscription_title)),
2495
+ React__default.createElement(StyledLeadGenSubscriptionBoxBody, { className: "leadgen-subscription_box_body" },
2496
+ React__default.createElement(LeadGenForm, { ref: formRef, form: form, rules: validateObj, blocks: listBlockAdded, locale: locale, onFinish: middlewareOnSubmit }),
2497
+ React__default.createElement(Button$2, { disabled: loading, loading: loading, variant: "filled", size: "lg", onClick: () => { var _a; return (_a = formRef.current) === null || _a === void 0 ? void 0 : _a.submit(); }, className: "leadgen-btn leadgen-btn_action", fullWidth: true }, (_c = submitBlock === null || submitBlock === void 0 ? void 0 : submitBlock.data) === null || _c === void 0 ? void 0 : _c.value)))))));
2498
+ };
2499
+ const LeadGenSubscriptionBoxWithMemo = memo(LeadGenSubscriptionBoxWithoutMemo);
2500
+
2501
+ const Container = () => {
2502
+ const context = useContext(LeadGenSubscriptionBoxContext);
2503
+ const {
2504
+ // apiUrl: apiUrlProps,
2505
+ // apiSubotUrl,
2506
+ campaign_code, article_id, subscription_title, locale, siteId, siteDomain, userInfo, forceCampaign, } = context;
2507
+ if (!forceCampaign || !(forceCampaign === null || forceCampaign === void 0 ? void 0 : forceCampaign.id)) {
2508
+ return null;
2509
+ }
2510
+ return (React__default.createElement(LeadGenSubscriptionBoxWithMemo, { locale: locale, userInfo: userInfo, siteId: siteId, siteDomain: siteDomain, forceCampaign: forceCampaign, campaign_code: campaign_code, article_id: article_id, subscription_title: subscription_title }));
2511
+ };
2512
+ Container.displayName = 'LeadGenSubscriptionBox';
2513
+ const LeadGenSubscriptionBoxContainer = (props) => {
2514
+ const { campaign_code } = props;
2515
+ if (!campaign_code) {
2516
+ return null;
2517
+ }
2518
+ return (React__default.createElement(LeadGenSubscriptionBoxProvider, Object.assign({}, props),
2519
+ React__default.createElement(Container, null)));
2520
+ };
2521
+ const LeadGenSubscriptionBox = LeadGenSubscriptionBoxContainer;
2522
+
2523
+ const useImageSize = (src) => {
2524
+ const [width, setWidth] = useState(16);
2525
+ const [height, setHeight] = useState(9);
2526
+ const [loaded, setLoaded] = useState(false);
2527
+ // load src image to get its width and height
2528
+ useEffect(() => {
2529
+ setLoaded(false);
2530
+ if (src) {
2531
+ const img = new Image();
2532
+ img.addEventListener('load', () => {
2533
+ setWidth(img.naturalWidth);
2534
+ setHeight(img.naturalHeight);
2535
+ setLoaded(true);
2536
+ });
2537
+ img.addEventListener('error', () => {
2538
+ setWidth(16);
2539
+ setHeight(9);
2540
+ setLoaded(true);
2541
+ });
2542
+ img.src = src;
2543
+ }
2544
+ else {
2545
+ setWidth(16);
2546
+ setHeight(9);
2547
+ setLoaded(true);
2548
+ }
2549
+ }, [src]);
2550
+ return {
2551
+ loaded,
2552
+ width,
2553
+ height,
2554
+ };
2555
+ };
2556
+
2557
+ const CloseButton = ({ onClose, containerClassName, svgClassName, }) => (React__default.createElement("button", { onClick: onClose, className: `le-newbuilder-close-button js-modal__close ${containerClassName || ''}` },
2558
+ React__default.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 20 20", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", className: svgClassName },
2559
+ React__default.createElement("path", { d: "M9.99981 10.8432L14.0583 14.9017C14.1691 15.0125 14.3083 15.0691 14.476 15.0717C14.6437 15.0743 14.7854 15.0176 14.9013 14.9017C15.0172 14.7858 15.0752 14.6453 15.0752 14.4802C15.0752 14.3151 15.0172 14.1746 14.9013 14.0587L10.8429 10.0002L14.9013 5.9417C15.0121 5.83094 15.0688 5.69172 15.0713 5.52402C15.0739 5.35634 15.0172 5.21456 14.9013 5.09866C14.7854 4.98276 14.6449 4.9248 14.4798 4.9248C14.3147 4.9248 14.1742 4.98276 14.0583 5.09866L9.99981 9.15712L5.94133 5.09866C5.83057 4.98789 5.69135 4.93122 5.52365 4.92866C5.35598 4.92609 5.21419 4.98276 5.09829 5.09866C4.98239 5.21456 4.92444 5.35506 4.92444 5.52018C4.92444 5.6853 4.98239 5.82581 5.09829 5.9417L9.15675 10.0002L5.09829 14.0587C4.98752 14.1694 4.93085 14.3087 4.9283 14.4763C4.92572 14.644 4.98239 14.7858 5.09829 14.9017C5.21419 15.0176 5.3547 15.0756 5.51982 15.0756C5.68493 15.0756 5.82544 15.0176 5.94133 14.9017L9.99981 10.8432Z" }))));
2560
+
2561
+ // url: imageBlocks.imageMobile.data.url
2562
+ // newTab: imageBlocks.imageMobile.data.newtab
2563
+ // imageMobile: campaignShow.image
2564
+ // imageDestkop: campaignShow.image_desktop
2565
+ const CenterTabLayout = ({ popupId, url, newTab, imageDestkop, imageMobile, onClose, onOtherSubmit, }) => {
2566
+ const { width: imageMobileWidth, height: imageMobileHeight, loaded: imageMobileLoaded, } = useImageSize(imageMobile);
2567
+ const { width: imageDestkopWidth, height: imageDestkopHeight, loaded: imageDestkopLoaded, } = useImageSize(imageDestkop);
2568
+ if (!imageMobileLoaded || !imageDestkopLoaded)
2569
+ return null;
2570
+ return (React__default.createElement("div", { id: popupId, className: "lead-modal-wrapper", "data-popup-url": location.pathname, "data-popup-type": "center_tab" },
2571
+ React__default.createElement("div", { className: "le-center-tab-popup" },
2572
+ React__default.createElement("div", { style: { position: 'relative' } },
2573
+ React__default.createElement("a", { className: "js-popup-other-submit", href: url, target: newTab ? 'blank' : '_parent', onClick: onOtherSubmit },
2574
+ isVideo(imageMobile) ? (React__default.createElement("video", { loop: true, muted: true, autoPlay: true, className: "le-only-mobile" },
2575
+ React__default.createElement("source", { src: imageMobile }))) : (React__default.createElement("img", { className: "le-only-mobile", src: imageMobile, style: {
2576
+ aspectRatio: `${imageMobileWidth}/${imageMobileHeight}`,
2577
+ } })),
2578
+ isVideo(imageDestkop) ? (React__default.createElement("video", { loop: true, muted: true, autoPlay: true, className: "le-only-desktop" },
2579
+ React__default.createElement("source", { src: imageDestkop }))) : (React__default.createElement("img", { className: "le-only-desktop", src: imageDestkop, style: {
2580
+ aspectRatio: `${imageDestkopWidth}/${imageDestkopHeight}`,
2581
+ } }))),
2582
+ React__default.createElement(CloseButton, { onClose: onClose, containerClassName: "close-button-top-right" })))));
2583
+ };
2584
+
2585
+ // title: titleText
2586
+ // titleAlign: textBlocks.titleBlock.data.align
2587
+ // subtitle: textBlocks.subtitleBlock.data.value
2588
+ // subtitleAlign: textBlocks.subtitleBlock.data.align
2589
+ // url: actionBlocks.linkButtonBlock.data.url
2590
+ // urlText: actionBlocks.linkButtonBlock.data.value
2591
+ // newTab: actionBlocks.linkButtonBlock.data.newtab
2592
+ // imageMobile: campaignShow.image
2593
+ // imageDesktop: campaignShow.image_desktop
2594
+ const FloatingLayout = ({ popupId, url, title, urlText, titleAlign, subtitle, subtitleAlign, newTab, imageDesktop, imageMobile, onClose, onOtherSubmit, }) => {
2595
+ const { width: imageMobileWidth, height: imageMobileHeight, loaded: imageMobileLoaded, } = useImageSize(imageMobile);
2596
+ const { width: imageDesktopWidth, height: imageDesktopHeight, loaded: imageDesktopLoaded, } = useImageSize(imageDesktop);
2597
+ if (!imageMobileLoaded || !imageDesktopLoaded)
2598
+ return null;
2599
+ return (React__default.createElement("div", { id: popupId, className: "lead-modal-wrapper lead-floating-wrapper", "data-popup-url": location.pathname, "data-popup-type": "floating" },
2600
+ React__default.createElement("aside", { className: "le-only-desktop" },
2601
+ React__default.createElement("div", { className: "le-floating-desktop" },
2602
+ React__default.createElement("div", { className: "le-floating-desktop-wrap", style: { position: 'relative', background: '#fff' } },
2603
+ imageDesktop ? (React__default.createElement("div", null,
2604
+ React__default.createElement("img", { style: {
2605
+ maxWidth: 120,
2606
+ borderTopLeftRadius: 5,
2607
+ borderBottomLeftRadius: 5,
2608
+ aspectRatio: `${imageDesktopWidth}/${imageDesktopHeight}`,
2609
+ }, src: imageDesktop }))) : null,
2610
+ React__default.createElement("div", { style: { padding: 20 } },
2611
+ React__default.createElement("div", { className: `le-floating-desktop-title le-text-align-${titleAlign}` }, title),
2612
+ React__default.createElement("div", { className: `le-floating-desktop-desc le-text-align-${subtitleAlign}` }, subtitle)),
2613
+ React__default.createElement("a", { target: newTab ? 'blank' : '_parent', style: { marginLeft: 35, textDecoration: 'none' }, href: url },
2614
+ React__default.createElement("button", { className: "le-joinbow-floating-btn js-popup-other-submit", onClick: onOtherSubmit }, urlText)),
2615
+ React__default.createElement(CloseButton, { onClose: onClose, containerClassName: "close-button-top-right" })))),
2616
+ React__default.createElement("aside", { className: "le-only-mobile" },
2617
+ React__default.createElement("div", { className: "le-floating-mobile" },
2618
+ React__default.createElement("div", { className: "le-floating-mobile-wrap", style: { position: 'relative', background: '#fff' } },
2619
+ React__default.createElement("aside", { style: { display: 'flex', justifyContent: 'space-between' } },
2620
+ React__default.createElement("div", null,
2621
+ React__default.createElement("div", { className: `le-floating-mobile-title le-text-align-${titleAlign}` }, title),
2622
+ React__default.createElement("div", { className: `le-floating-mobile-desc le-text-align-${subtitleAlign}` }, subtitle)),
2623
+ imageMobile ? (React__default.createElement("div", null,
2624
+ React__default.createElement("img", { style: {
2625
+ marginLeft: 15,
2626
+ marginTop: 4,
2627
+ maxWidth: 100,
2628
+ aspectRatio: `${imageMobileWidth}/${imageMobileHeight}`,
2629
+ }, src: imageMobile }))) : null),
2630
+ React__default.createElement("div", { style: { textAlign: 'center', marginTop: 10 } },
2631
+ React__default.createElement("a", { target: newTab ? 'blank' : '_parent', href: url, style: { textDecoration: 'none' } },
2632
+ React__default.createElement("button", { className: "le-joinbow-floating-btn js-popup-other-submit", onClick: onOtherSubmit }, urlText))),
2633
+ React__default.createElement(CloseButton, { onClose: onClose, containerClassName: "close-button-top-right" }))))));
2634
+ };
2635
+
2636
+ const ThankyouPopup = ({ title, titleAlign, subtitle, subtitleAlign, link, linkNewTab, linkText, image, }) => {
2637
+ const { width: imageWidth, height: imageHeight, loaded: imageLoaded, } = useImageSize(image);
2638
+ if (!imageLoaded)
2639
+ return null;
2640
+ return (React__default.createElement("div", { className: "lead-modal__thank-you leadgen-inner_thankyou" },
2641
+ React__default.createElement("div", { style: { width: '100%' } },
2642
+ React__default.createElement("img", { src: image, style: {
2643
+ maxHeight: 162,
2644
+ objectFit: 'cover',
2645
+ aspectRatio: `${imageWidth}/${imageHeight}`,
2646
+ }, loading: "lazy" }),
2647
+ title && (React__default.createElement("h1", { className: `le-thankyou-title le-text-align-${titleAlign}` }, title)),
2648
+ subtitle && (React__default.createElement("p", { className: `le-thankyou-subtitle le-text-align-${subtitleAlign}` }, subtitle.split('\n').map((text, idx, list) => {
2649
+ const isShowBr = idx < list.length - 1;
2650
+ return (React__default.createElement(React__default.Fragment, null,
2651
+ text,
2652
+ isShowBr && React__default.createElement("br", null)));
2653
+ }))),
2654
+ linkText && (React__default.createElement("div", null,
2655
+ React__default.createElement("a", { href: link, target: linkNewTab ? '_blank' : 'parrent', rel: "noreferrer" },
2656
+ React__default.createElement("button", { className: `lead-modal__btn ${LEAD_CLASS}` }, linkText)))))));
2657
+ };
2658
+
2659
+ const InlineLayout = ({ content, inlinePosition, }) => {
2660
+ const target = useMemo(() => {
2661
+ if (!inlinePosition)
2662
+ return null;
2663
+ const parents = document.querySelectorAll(`[data-url="${location.pathname}"] .body-content`);
2664
+ const allChildren = Array.from(parents).reduce((r, p) => {
2665
+ return [...r, ...Array.from(p.children)];
2666
+ }, []);
2667
+ if (allChildren === null || allChildren === void 0 ? void 0 : allChildren.length) {
2668
+ // find the third p tag in the body content, some other tags might mix in between
2669
+ const allPTags = allChildren.filter((c) => c.nodeName === 'P');
2670
+ const allH2Tags = allChildren.filter((c) => c.nodeName === 'H2');
2671
+ let target = null;
2672
+ switch (inlinePosition) {
2673
+ case '1th':
2674
+ target = allPTags[0];
2675
+ break;
2676
+ case '2th':
2677
+ target = allPTags[1];
2678
+ break;
2679
+ case '3th':
2680
+ target = allPTags[2];
2681
+ break;
2682
+ case '4th':
2683
+ target = allPTags[3];
2684
+ break;
2685
+ case '5th':
2686
+ target = allPTags[4];
2687
+ break;
2688
+ case '6th':
2689
+ target = allPTags[5];
2690
+ break;
2691
+ case '7th':
2692
+ target = allPTags[6];
2693
+ break;
2694
+ case '8th':
2695
+ target = allPTags[7];
2696
+ break;
2697
+ case '9th':
2698
+ target = allPTags[8];
2699
+ break;
2700
+ case '10th':
2701
+ target = allPTags[9];
2702
+ break;
2703
+ case '11th':
2704
+ target = allPTags[10];
1520
2705
  break;
1521
2706
  case '12th':
1522
2707
  target = allPTags[11];
@@ -1616,211 +2801,6 @@ const EmptyComponent = ({ onClose, onContinue, }) => {
1616
2801
  React__default.createElement(Button$2, { onClick: onContinue, size: "lg", variant: "filled", fullWidth: false, className: "leadgen-btn leadgen-btn_empty_again" }, t('lead.empty.submitAgain')))));
1617
2802
  };
1618
2803
 
1619
- const libraries = ['places'];
1620
- const GoogleLocationBlock = (props) => {
1621
- var _a;
1622
- const { inputWrapperOrder = ['label', 'input', 'description', 'error'], defaultValue, value: valueProps, onChange: onChangeProps, locale } = props, restProps = __rest(props, ["inputWrapperOrder", "defaultValue", "value", "onChange", "locale"]);
1623
- const [LoadScript, setLoadScript] = useState(null);
1624
- const [value, setValue] = useState(defaultValue || valueProps);
1625
- const { predictions } = usePlacesAutocomplete(value, '', locale === 'tl-PH' ? 'en' : (_a = locale === null || locale === void 0 ? void 0 : locale.split('-')) === null || _a === void 0 ? void 0 : _a[0]);
1626
- const onChangeAutocomplete = useCallback((s) => {
1627
- setValue(s);
1628
- onChangeProps === null || onChangeProps === void 0 ? void 0 : onChangeProps(s);
1629
- }, []);
1630
- const onClickItem = useCallback((item) => {
1631
- /** For sure get value */
1632
- setValue(item.value);
1633
- const predCur = predictions === null || predictions === void 0 ? void 0 : predictions.find(({ description }) => description === item.value);
1634
- onChangeProps === null || onChangeProps === void 0 ? void 0 : onChangeProps(item.value, predCur === null || predCur === void 0 ? void 0 : predCur.rawData);
1635
- }, [onChangeProps, predictions]);
1636
- useEffect(() => {
1637
- setValue(valueProps);
1638
- }, [valueProps]);
1639
- useEffect(() => {
1640
- var _a, _b, _c;
1641
- // only load extra google script when not yet loaded
1642
- if (!((_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.places) === null || _c === void 0 ? void 0 : _c.AutocompleteService) && !LoadScript) {
1643
- import('@react-google-maps/api').then((m) => {
1644
- setLoadScript(() => m.LoadScript);
1645
- });
1646
- }
1647
- }, []);
1648
- return (React__default.createElement(Autocomplete, Object.assign({ defaultValue: defaultValue, value: value, onChange: onChangeAutocomplete, data: predictions.map((pred) => {
1649
- return { value: pred.description, label: pred.description };
1650
- }), filter: () => true, onItemSubmit: onClickItem, inputWrapperOrder: inputWrapperOrder, zIndex: ZINDEX_SSO - 9e6 + 2, withinPortal: true, styles: { dropdown: { pointerEvents: 'auto' } }, inputContainer: (children) => {
1651
- return (React__default.createElement(React__default.Fragment, null,
1652
- LoadScript && (React__default.createElement(LoadScript, { googleMapsApiKey: GOOGLE_API_KEY, libraries: libraries, loadingElement: React__default.createElement(React__default.Fragment, null), style: { width: '100%' } })),
1653
- children));
1654
- } }, restProps)));
1655
- };
1656
-
1657
- // You can give context variables any name
1658
- const [LeadFormProvider, useLeadFormContext, useLeadForm] = createFormContext();
1659
- const useLeadFormConfig = ({ listBlockAdded = [], validatingPhoneRef, validatingEmailRef, campaignId, campaign_subot_id = [], userInfo, }) => {
1660
- const { t } = useTranslations();
1661
- const initialValues = useMemo(() => mappingSSOToLead(userInfo), [userInfo === null || userInfo === void 0 ? void 0 : userInfo.id]);
1662
- const validateObj = useMemo(() => {
1663
- const InputBlocks = [
1664
- 'TextBlock',
1665
- 'NumberBlock',
1666
- 'EmailBlock',
1667
- 'PhoneBlock',
1668
- 'DateBlock',
1669
- 'CheckboxBlock',
1670
- 'RadioBlock',
1671
- 'DropdownBlock',
1672
- 'PhoneOtpBlock',
1673
- 'WhatsappOtpBlock',
1674
- 'ZaloOtpBlock',
1675
- 'LocationBlock',
1676
- 'TncBlock',
1677
- ];
1678
- // ALL are required and can skip if not touched yet
1679
- const withSharedCheck = (name, cb,
1680
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1681
- block) => {
1682
- return (value) => {
1683
- var _a;
1684
- const isBLockRequired = (_a = block === null || block === void 0 ? void 0 : block.data) === null || _a === void 0 ? void 0 : _a.required;
1685
- if (!formRef.current.isTouched(name))
1686
- return;
1687
- if ((typeof value === 'string' && value.replace(' ', '') === '') ||
1688
- typeof value === 'undefined' ||
1689
- value === '' ||
1690
- (Array.isArray(value) && value.length === 0)) {
1691
- return isBLockRequired
1692
- ? t('validator.required')
1693
- : cb === null || cb === void 0 ? void 0 : cb(value);
1694
- }
1695
- return cb === null || cb === void 0 ? void 0 : cb(value);
1696
- };
1697
- };
1698
- return listBlockAdded
1699
- .filter((b) => InputBlocks.includes(b.name))
1700
- .reduce((r, b) => {
1701
- var _a;
1702
- const isRequired = (_a = b.data.required) !== null && _a !== void 0 ? _a : true;
1703
- if (b.name === 'NumberBlock') {
1704
- return Object.assign(Object.assign({}, r), { [b.data.value]: withSharedCheck(b.data.value, (value) => {
1705
- if (value && isNaN(Number(value))) {
1706
- return t('validator.number');
1707
- }
1708
- }, b) });
1709
- }
1710
- else if (b.name === 'EmailBlock') {
1711
- return Object.assign(Object.assign({}, r), { [b.data.value]: withSharedCheck(b.data.value, (value) => {
1712
- if (value && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value)) {
1713
- return t('validator.email');
1714
- }
1715
- if (!value)
1716
- return;
1717
- validatingEmailRef.current = true;
1718
- setTimeout(() => {
1719
- formRef.current.setFieldError(b.data.value, 'Validating...');
1720
- checkUsedEmailOrPhoneWithCache(campaignId, campaign_subot_id, {
1721
- email: value,
1722
- })
1723
- .then((tKey) => {
1724
- if (tKey) {
1725
- formRef.current.setFieldError(b.data.value, t(tKey));
1726
- }
1727
- else {
1728
- formRef.current.clearFieldError(b.data.value);
1729
- }
1730
- validatingEmailRef.current = false;
1731
- })
1732
- .catch((e) => {
1733
- console.error(e);
1734
- formRef.current.setFieldError(b.data.value, e.message || 'Something went wrong');
1735
- validatingEmailRef.current = false;
1736
- });
1737
- }, 200);
1738
- }, b) });
1739
- }
1740
- else if (b.name === 'PhoneBlock' ||
1741
- b.name === 'PhoneOtpBlock' ||
1742
- b.name === 'ZaloOtpBlock' ||
1743
- b.name === 'WhatsappOtpBlock') {
1744
- return Object.assign(Object.assign({}, r), { [b.data.value]: withSharedCheck(b.data.value, (value) => {
1745
- if (value &&
1746
- window.intlTelInputUtils &&
1747
- !window.intlTelInputUtils.isValidNumber(String(value), LEAD_LOCALE.countryCode)) {
1748
- return t('validator.phone');
1749
- }
1750
- if (!value)
1751
- return;
1752
- validatingPhoneRef.current = true;
1753
- setTimeout(() => {
1754
- formRef.current.setFieldError(b.data.value, 'Validating...');
1755
- if (b.data.singleSubmission) {
1756
- checkUsedPhoneOnlyWithCache(campaignId, value)
1757
- .then((tKey) => {
1758
- if (tKey) {
1759
- formRef.current.setFieldError(b.data.value, t(tKey));
1760
- }
1761
- else {
1762
- formRef.current.clearFieldError(b.data.value);
1763
- }
1764
- validatingPhoneRef.current = false;
1765
- })
1766
- .catch((err) => {
1767
- console.error(err);
1768
- formRef.current.setFieldError(b.data.value, err.message || 'Something went wrong');
1769
- validatingPhoneRef.current = false;
1770
- });
1771
- }
1772
- else {
1773
- checkUsedEmailOrPhoneWithCache(campaignId, campaign_subot_id, {
1774
- phone: value,
1775
- })
1776
- .then((tKey) => {
1777
- if (tKey) {
1778
- formRef.current.setFieldError(b.data.value, t(tKey));
1779
- }
1780
- else {
1781
- formRef.current.clearFieldError(b.data.value);
1782
- }
1783
- validatingPhoneRef.current = false;
1784
- })
1785
- .catch((e) => {
1786
- console.error(e);
1787
- formRef.current.setFieldError(b.data.value, e.message || 'Something went wrong');
1788
- validatingPhoneRef.current = false;
1789
- });
1790
- }
1791
- }, 200);
1792
- }, b) });
1793
- }
1794
- else if (b.name === 'DateBlock') {
1795
- return Object.assign(Object.assign({}, r), { [b.data.value]: withSharedCheck(b.data.value, (value) => {
1796
- if (value && isNaN(Date.parse(value))) {
1797
- return t('validator.date');
1798
- }
1799
- }, b) });
1800
- }
1801
- else if (b.name === 'TncBlock') {
1802
- return Object.assign(Object.assign({}, r), { [`TNC-` + b.id]: withSharedCheck('TNC-' + b.id, (value) => {
1803
- if (isRequired && !value) {
1804
- return t('validator.required');
1805
- }
1806
- }, b) });
1807
- }
1808
- else {
1809
- return Object.assign(Object.assign({}, r), { [b.data.value]: withSharedCheck(b.data.value, undefined, b) });
1810
- }
1811
- }, {});
1812
- }, [listBlockAdded.map((b) => b.name).join(',')]);
1813
- const form = useLeadForm({
1814
- validateInputOnChange: true,
1815
- clearInputErrorOnChange: true,
1816
- validate: validateObj,
1817
- initialValues,
1818
- });
1819
- const formRef = useRef(form);
1820
- formRef.current = form;
1821
- return { form, validateObj };
1822
- };
1823
-
1824
2804
  const SubtitleBlock = ({ children, align, }) => (React__default.createElement("p", { className: `lead-modal__description ${'le-text-align-' + (align || '')} ${LEAD_CLASS}` }, children));
1825
2805
 
1826
2806
  const cssInputNotShrink = css `
@@ -2139,11 +3119,13 @@ const TextField = (props) => {
2139
3119
  const $focusEl = $textEl.item($textEl.length - 1);
2140
3120
  if ($focusEl) {
2141
3121
  $focusEl.focus();
2142
- $focusEl.scrollIntoView({
2143
- behavior: 'auto',
2144
- block: 'center',
2145
- inline: 'start',
2146
- });
3122
+ setTimeout(() => {
3123
+ $focusEl.scrollIntoView({
3124
+ behavior: 'auto',
3125
+ block: 'center',
3126
+ inline: 'start',
3127
+ });
3128
+ }, 100);
2147
3129
  }
2148
3130
  }, [shrink]);
2149
3131
  useEffect(() => {
@@ -2160,8 +3142,14 @@ const ChoiceField = (props) => {
2160
3142
  const TitleBlock = ({ children, align, }) => (React__default.createElement("h2", { className: `lead-modal__title ${'le-text-align-' + (align || '')} ${LEAD_CLASS}` }, children));
2161
3143
 
2162
3144
  const LightboxFields = ({ listBlockAdded, popupId, locale, onClose, onOtherSubmit, }) => {
3145
+ const { t } = useTranslations();
2163
3146
  const form = useLeadFormContext();
2164
3147
  const formValues = form.values;
3148
+ const labelTuples = useMemo(() => {
3149
+ return ((ISO_FORMAT === null || ISO_FORMAT === void 0 ? void 0 : ISO_FORMAT[locale]) || ISO_FORMAT['vi-VN']).dateFormat
3150
+ .split('/')
3151
+ .map((key) => { var _a; return t((_a = COMMON_DATE_TRANSLATE_KEY === null || COMMON_DATE_TRANSLATE_KEY === void 0 ? void 0 : COMMON_DATE_TRANSLATE_KEY[key]) === null || _a === void 0 ? void 0 : _a.id); });
3152
+ }, [locale]);
2165
3153
  return (React__default.createElement(React__default.Fragment, null, listBlockAdded.map((b, index) => {
2166
3154
  var _a;
2167
3155
  const { name = '', data = {}, id } = b || {};
@@ -2211,13 +3199,11 @@ const LightboxFields = ({ listBlockAdded, popupId, locale, onClose, onOtherSubmi
2211
3199
  return (React__default.createElement(TextField, { key: index, shrink: !!formValue, className: "lead-modal__form-control leadgen-form_field" },
2212
3200
  React__default.createElement(GoogleLocationBlock, Object.assign({ withAsterisk: required, name: value, placeholder: placeholder, label: placeholder, "data-control": "text", locale: locale, inputWrapperOrder: ['label', 'input', 'description', 'error'] }, form.getInputProps(value)))));
2213
3201
  }
2214
- case 'DateBlock':
2215
- return (React__default.createElement(TextField, { key: index, shrink: !!formValue, className: "lead-modal__form-control leadgen-form_field" },
2216
- React__default.createElement(DatePicker, Object.assign({ clearable: true, withAsterisk: required, type: "default", name: value, placeholder: placeholder, label: placeholder, inputWrapperOrder: ['label', 'input', 'description', 'error'], inputContainer: (children) => {
2217
- return (React__default.createElement(React__default.Fragment, null,
2218
- children,
2219
- React__default.createElement("input", { type: "hidden", "data-control": "date", name: value, value: formValue })));
2220
- } }, form.getInputProps(value)))));
3202
+ case 'DateBlock': {
3203
+ const _c = form.getInputProps(value), { error } = _c, formInputProps = __rest(_c, ["error"]);
3204
+ return (React__default.createElement(Input$1.Wrapper, { key: index, size: "md", withAsterisk: required, label: placeholder, "data-invalid": !!error, inputWrapperOrder: ['label', 'input', 'description', 'error'], error: error, className: "lead-modal__form-control leadgen-form_field" },
3205
+ React__default.createElement(InputDate, Object.assign({ name: value, error: Boolean(error), locale: locale, "data-extra": true, "data-name": value, "data-control": "date", className: "leadgen-form_field_date", labelTuples: labelTuples }, formInputProps))));
3206
+ }
2221
3207
  case 'LinkButtonBlock':
2222
3208
  return (React__default.createElement("div", { key: index },
2223
3209
  React__default.createElement("a", { target: newtab ? 'blank' : 'parrent', href: url, style: { textDecoration: 'none' } },
@@ -2260,7 +3246,7 @@ const LightboxFields = ({ listBlockAdded, popupId, locale, onClose, onOtherSubmi
2260
3246
  label: l.placeholder,
2261
3247
  })) }, form.getInputProps(value)))));
2262
3248
  case 'TncBlock':
2263
- const _c = form.getInputProps(`TNC-${id}`), { error } = _c, tncInputProps = __rest(_c, ["error"]);
3249
+ const _d = form.getInputProps(`TNC-${id}`), { error } = _d, tncInputProps = __rest(_d, ["error"]);
2264
3250
  return (React__default.createElement(ChoiceField, { className: "leadgen-form_checkbox", key: id },
2265
3251
  React__default.createElement(Input$1.Wrapper, { error: error },
2266
3252
  React__default.createElement(Checkbox, Object.assign({ name: 'TNC-' + id, label: React__default.createElement("p", { className: "lead-modal__tnc-link", dangerouslySetInnerHTML: { __html: data.valueHTML } }), className: "tnc-block", "data-control": "checkbox" }, tncInputProps)))));
@@ -2510,7 +3496,7 @@ const LEADGEN_SHOW_HEADER = [
2510
3496
  LEADGEN_LAYOUT.Slider,
2511
3497
  ];
2512
3498
  const LightboxLayout = ({ popupId, extraFields, onClose: onCloseProp, onOtherSubmit, imageMobile, imageDesktop, imageOverlayMobile, imageOverlayDesktop, imageBackground, currentLayout, title, onSubmit, showThankyou, campaignId, campaign_subot_id, locale, showEmpty, setShowEmpty, userInfo, }) => {
2513
- var _a;
3499
+ var _a, _b;
2514
3500
  const { isMobile } = useScreenSize();
2515
3501
  const [open, setOpen] = useState(!!campaignId);
2516
3502
  const [showOtpPhone, setShowOtpPhone] = useState(null);
@@ -2543,7 +3529,7 @@ const LightboxLayout = ({ popupId, extraFields, onClose: onCloseProp, onOtherSub
2543
3529
  const isDrawer = isLightBoxB && isMobile;
2544
3530
  const limitFieldsLightBoxB = isLightBoxB && listBlockAdded.length <= LEADGEN_LIMIT_LIGHTBOXB;
2545
3531
  const hasForm = isLightBoxA
2546
- ? listBlockAdded.some((item) => LEADGEN_BLOCK_IN_FORM.some((k) => k === (item === null || item === void 0 ? void 0 : item.name)))
3532
+ ? listBlockAdded.some((item) => LEADGEN_BLOCK_INPUT.some((k) => k === (item === null || item === void 0 ? void 0 : item.name)))
2547
3533
  : true;
2548
3534
  const headerInsideFormContainer = isSlider || isLightBoxA || isFullscreen;
2549
3535
  const showHeader = !!imageMobile || !!imageDesktop;
@@ -2572,7 +3558,16 @@ const LightboxLayout = ({ popupId, extraFields, onClose: onCloseProp, onOtherSub
2572
3558
  campaignId,
2573
3559
  campaign_subot_id,
2574
3560
  userInfo,
3561
+ format: (_a = (ISO_FORMAT[locale] || ISO_FORMAT['vi-VN'])) === null || _a === void 0 ? void 0 : _a.dateFormat,
2575
3562
  });
3563
+ const onFocus = (e) => {
3564
+ const target = e.target;
3565
+ target.scrollIntoView({
3566
+ block: 'center',
3567
+ inline: 'nearest',
3568
+ behavior: 'auto',
3569
+ });
3570
+ };
2576
3571
  const middlewareOnSubmit = (e) => {
2577
3572
  e.preventDefault();
2578
3573
  // mark all as touched to allow validation
@@ -2654,7 +3649,7 @@ const LightboxLayout = ({ popupId, extraFields, onClose: onCloseProp, onOtherSub
2654
3649
  const renderAfterImageSizes = imageMobileLoaded &&
2655
3650
  imageDesktopLoaded &&
2656
3651
  (isFullscreen ? imageBackgroundLoaded : true);
2657
- const ButtonSubmit = !((_a = actionBlocks === null || actionBlocks === void 0 ? void 0 : actionBlocks.submitBlock) === null || _a === void 0 ? void 0 : _a.isHide) && (React__default.createElement(Button$2, { size: "lg", id: "lead-submit", type: "submit", variant: "filled", className: "leadgen-btn leadgen-btn_action", loading: isSubmitLoading }, popUpSubmitText));
3652
+ const ButtonSubmit = !((_b = actionBlocks === null || actionBlocks === void 0 ? void 0 : actionBlocks.submitBlock) === null || _b === void 0 ? void 0 : _b.isHide) && (React__default.createElement(Button$2, { size: "lg", id: "lead-submit", type: "submit", variant: "filled", className: "leadgen-btn leadgen-btn_action", loading: isSubmitLoading }, popUpSubmitText));
2658
3653
  const LinkButtonBlock = listBlockAdded.filter(({ name }) => name == LEADGEN_BLOCK.LinkButtonBlock);
2659
3654
  const ButtonLink = !!(LinkButtonBlock === null || LinkButtonBlock === void 0 ? void 0 : LinkButtonBlock.length) && (React__default.createElement(React__default.Fragment, null, LinkButtonBlock.map((item, index) => {
2660
3655
  var _a, _b, _c;
@@ -2668,7 +3663,7 @@ const LightboxLayout = ({ popupId, extraFields, onClose: onCloseProp, onOtherSub
2668
3663
  React__default.createElement(HeaderImage, { src: imageMobile, className: "le-only-mobile lead-modal__image" })))));
2669
3664
  const PopupEmpty = showEmpty && (React__default.createElement(EmptyComponent, { onClose: onClose, onContinue: () => setShowEmpty(false) }));
2670
3665
  const PopupForm = (React__default.createElement(LeadFormProvider, { form: form },
2671
- React__default.createElement("form", { ref: formRef, className: "leadgen-form", onSubmit: middlewareOnSubmit },
3666
+ React__default.createElement("form", { ref: formRef, className: "leadgen-form", onFocus: onFocus, onSubmit: middlewareOnSubmit },
2672
3667
  React__default.createElement(FormContainer, { title: title, titleAlign: titleAlign, description: description, descriptionAlign: descriptionAlign, header: headerInsideFormContainer && PopupHeader, footer: hasForm ? ButtonSubmit : ButtonLink, "data-hidden-form": !hasForm },
2673
3668
  React__default.createElement("div", { className: "leadgen-form_inner" },
2674
3669
  React__default.createElement(LightboxFields, { listBlockAdded: listBlockAdded, popupId: popupId, locale: locale, onClose: onClose, onOtherSubmit: onOtherSubmit }))))));
@@ -3587,4 +4582,4 @@ LeadGen.Thankyou = Thankyou;
3587
4582
  LeadGen.OtpForm = OtpBlock$1;
3588
4583
  LeadGen.Close = Close;
3589
4584
 
3590
- export { LeadGen };
4585
+ export { LeadGen, LeadGenSubscriptionBox };