@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/lead.js CHANGED
@@ -2,47 +2,48 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var tslib_es6 = require('./tslib.es6-a6bae155.js');
5
+ var tslib_es6 = require('./tslib.es6-a12a90ed.js');
6
6
  var React = require('react');
7
7
  var core = require('@mantine/core');
8
8
  var dayjs = require('dayjs');
9
9
  var debounce = require('lodash/debounce');
10
10
  var form = require('@mantine/form');
11
- var index = require('./index-c5624ce2.js');
12
- var translationsContext = require('./translationsContext-4437fa01.js');
11
+ var index = require('./index-ea230d8e.js');
12
+ var translationsContext = require('./translationsContext-e0a5e0ed.js');
13
13
  var miscCookieHelper = require('./miscCookieHelper.js');
14
- var utils$1 = require('./utils-4f2cfa7e.js');
15
- var index$1 = require('./index-43a5ad56.js');
16
- var index$2 = require('./index-101e6e42.js');
17
- var index$4 = require('./index-d10018db.js');
18
- var utils = require('./utils-78d3d391.js');
19
- require('@mantine/dates');
20
- var index$8 = require('./index-160f427a.js');
21
- require('./index-909da5c7.js');
22
- require('./index-704cc84b.js');
23
- require('./useMantineLocale-95f6b7f6.js');
24
- var index$5 = require('./index-5285704f.js');
25
- require('./index.styles-6b7ddfb0.js');
14
+ var utils$1 = require('./utils-f9f0bbf9.js');
15
+ var index$1 = require('./index-f861715c.js');
16
+ var index$2 = require('./index-6efae034.js');
17
+ var index$4 = require('./index-21676009.js');
18
+ var utils = require('./utils-139f3780.js');
19
+ var dates = require('@mantine/dates');
20
+ var index$7 = require('./index-270216ec.js');
21
+ var index$9 = require('./index-687de5ad.js');
22
+ require('./index-242a0d97.js');
23
+ require('./useMantineLocale-d4893aa4.js');
24
+ var index$5 = require('./index-9f6afa4c.js');
25
+ require('./index.styles-329bf135.js');
26
26
  var hooks = require('@mantine/hooks');
27
- require('./other-3ac24826.js');
28
- require('./index-8f95d227.js');
29
- var usePlacesAutocomplete = require('./usePlacesAutocomplete-d9ed9494.js');
30
- var index$3 = require('./index-f13bb2ec.js');
31
- var index$6 = require('./index-574f27b6.js');
27
+ require('./other-ce6caa08.js');
28
+ require('./index-33be9fbb.js');
29
+ var usePlacesAutocomplete = require('./usePlacesAutocomplete-deb9d3b0.js');
30
+ var index$3 = require('./index-87478c18.js');
31
+ var index$6 = require('./index-61f97c4f.js');
32
+ var styled = require('@emotion/styled');
32
33
  var uuid = require('uuid');
33
- var index$7 = require('./index-1b707b5a.js');
34
- var index$9 = require('./index-41861e78.js');
35
- var useScreenSize = require('./useScreenSize-ed8f2885.js');
36
- var ReactDOM = require('react-dom');
37
34
  var react = require('@emotion/react');
38
- var styled = require('@emotion/styled');
39
35
  var miscTheme = require('./miscTheme.js');
40
- var Close = require('./Close-8bb5c4dd.js');
36
+ var index$8 = require('./index-0c633eb2.js');
37
+ var index$a = require('./index-4eb3226d.js');
38
+ var useScreenSize = require('./useScreenSize-f3ef911a.js');
39
+ var ReactDOM = require('react-dom');
40
+ var InputDate = require('./InputDate-8f007275.js');
41
+ var Close = require('./Close-353a5fb0.js');
41
42
  require('@hhgtech/icons/other');
42
43
  require('@mantine/carousel');
43
- require('./Locale-2022f5e8.js');
44
+ require('./Locale-c989d3b7.js');
44
45
  require('classnames');
45
- require('./useUniqueId-1f3fcb95.js');
46
+ require('./useUniqueId-c0a45547.js');
46
47
  require('./constantsSite.js');
47
48
  require('@hhgtech/icons/core');
48
49
  require('date-fns/locale');
@@ -101,7 +102,7 @@ if (sessionStorage.getItem('insider_object')) {
101
102
  }
102
103
  const docLang = document.documentElement.lang;
103
104
  // TODO: country code
104
- const LEAD_LOCALE_DATA = {
105
+ const LEAD_LOCALE_DATA$1 = {
105
106
  'vi-VN': {
106
107
  popupLang: 'vi',
107
108
  countryCode: 'vn',
@@ -143,7 +144,7 @@ const LEAD_LOCALE_DATA = {
143
144
  countryCodeNumber: 91,
144
145
  },
145
146
  };
146
- const LEAD_LOCALE = LEAD_LOCALE_DATA[docLang] || LEAD_LOCALE_DATA['vi-VN'];
147
+ const LEAD_LOCALE = LEAD_LOCALE_DATA$1[docLang] || LEAD_LOCALE_DATA$1['vi-VN'];
147
148
  function LEAD_RESET_VAR() {
148
149
  // LEAD_CURRENT_URL = location.href.toLowerCase();
149
150
  LEAD_CURRENT_URL =
@@ -164,6 +165,11 @@ const LEAD_TIMEZONE_DATA = {
164
165
  9: 'Asia/Manila', // Philippines / Filipinos Site
165
166
  };
166
167
 
168
+ const LEADGEN_ACTIONS = {
169
+ SHOW: 'SHOW',
170
+ SCROLL: 'SCROLL',
171
+ TIME: 'TIME',
172
+ };
167
173
  const LEADGEN_LAYOUT = {
168
174
  LightBoxA: 'LightBoxA',
169
175
  LightBoxB: 'LightBoxB',
@@ -193,8 +199,10 @@ const LEADGEN_BLOCK = {
193
199
  DropdownBlock: 'DropdownBlock',
194
200
  CheckboxBlock: 'CheckboxBlock',
195
201
  TncBlock: 'TncBlock',
202
+ TitleBlock: 'TitleBlock',
203
+ SubtitleBlock: 'SubtitleBlock',
196
204
  };
197
- const LEADGEN_BLOCK_IN_FORM = [
205
+ const LEADGEN_BLOCK_INPUT = [
198
206
  LEADGEN_BLOCK.TextBlock,
199
207
  LEADGEN_BLOCK.NumberBlock,
200
208
  LEADGEN_BLOCK.DateBlock,
@@ -210,6 +218,48 @@ const LEADGEN_BLOCK_IN_FORM = [
210
218
  LEADGEN_BLOCK.TncBlock,
211
219
  ];
212
220
  const SSO_MAP_LEAD = ['name', 'email', 'birthday', 'phone', 'gender'];
221
+ const LEAD_LOCALE_DATA = {
222
+ 'vi-VN': {
223
+ popupLang: 'vi',
224
+ countryCode: 'vn',
225
+ countryCodeNumber: 84,
226
+ },
227
+ 'id-ID': {
228
+ popupLang: 'id',
229
+ countryCode: 'id',
230
+ countryCodeNumber: 62,
231
+ },
232
+ 'th-TH': {
233
+ popupLang: 'th',
234
+ countryCode: 'th',
235
+ countryCodeNumber: 66,
236
+ },
237
+ 'ms-MY': {
238
+ popupLang: 'ms',
239
+ countryCode: 'my',
240
+ countryCodeNumber: 60,
241
+ },
242
+ 'zh-TW': {
243
+ popupLang: 'zh',
244
+ countryCode: 'tw',
245
+ countryCodeNumber: 886,
246
+ },
247
+ 'km-KH': {
248
+ popupLang: 'km',
249
+ countryCode: 'kh',
250
+ countryCodeNumber: 855,
251
+ },
252
+ 'my-MM': {
253
+ popupLang: 'my',
254
+ countryCode: 'mm',
255
+ countryCodeNumber: 95,
256
+ },
257
+ 'hi-IN': {
258
+ popupLang: 'hi',
259
+ countryCode: 'in',
260
+ countryCodeNumber: 91,
261
+ },
262
+ };
213
263
  const mappingSSOToLead = (userInfoProps) => {
214
264
  var _a, _b;
215
265
  try {
@@ -225,7 +275,7 @@ const mappingSSOToLead = (userInfoProps) => {
225
275
  if (ssoKey === 'birthday') {
226
276
  const dob = dayjs__default["default"](initValue, 'YYYY-MM-DD', true);
227
277
  if (dob.isValid()) {
228
- user.birthday = dob;
278
+ user.birthday = dob.toDate();
229
279
  }
230
280
  }
231
281
  else if (ssoKey === 'gender') {
@@ -248,6 +298,46 @@ const mappingSSOToLead = (userInfoProps) => {
248
298
  catch (error) {
249
299
  return;
250
300
  }
301
+ };
302
+ const formatCampaignDetail = (campaign) => {
303
+ if (!campaign) {
304
+ return {};
305
+ }
306
+ try {
307
+ const { extra_fields, thank_you_image } = campaign || {};
308
+ const { textBlocks: exTextBlocks, imageBlocks: exImageBlocks, listBlockAdded: exListBlockAdded, listBlockThankyou: exListBlockThankyou, actionBlocks: exActionBlocks, } = extra_fields;
309
+ const textBlocks = JSON.parse(exTextBlocks);
310
+ const imageBlocks = JSON.parse(exImageBlocks);
311
+ const listBlockAdded = JSON.parse(exListBlockAdded);
312
+ const listBlockThankyou = JSON.parse(exListBlockThankyou);
313
+ const actionBlocks = JSON.parse(exActionBlocks);
314
+ const ThankYouBlock = {
315
+ image: { src: thank_you_image },
316
+ };
317
+ listBlockThankyou.forEach((block) => {
318
+ const { name, data } = block || {};
319
+ const { value: htmlText, align, newtab, url } = data || {};
320
+ switch (name) {
321
+ case LEADGEN_BLOCK.TitleBlock: {
322
+ ThankYouBlock.title = { htmlText, align };
323
+ }
324
+ case LEADGEN_BLOCK.SubtitleBlock: {
325
+ ThankYouBlock.description = { htmlText, align };
326
+ }
327
+ case LEADGEN_BLOCK.LinkButtonBlock: {
328
+ ThankYouBlock.button = { htmlText, newtab, url };
329
+ }
330
+ }
331
+ });
332
+ return Object.assign(Object.assign({}, campaign), { extra_fields: Object.assign(Object.assign({}, extra_fields), { textBlocks,
333
+ imageBlocks,
334
+ listBlockAdded,
335
+ listBlockThankyou,
336
+ actionBlocks }), ThankYouBlock });
337
+ }
338
+ catch (error) {
339
+ return {};
340
+ }
251
341
  };
252
342
 
253
343
  class Store {
@@ -258,6 +348,13 @@ class Store {
258
348
  }
259
349
  const leadStore = new Store();
260
350
 
351
+ const LEADGEN_API_METHOD = {
352
+ GET: 'get',
353
+ POST: 'POST',
354
+ };
355
+ const LEADGEN_API_PATH = {
356
+ V2_CAMPAIGN: 'api/v2/campaign',
357
+ };
261
358
  const leadApi = {
262
359
  call(_a) {
263
360
  var { url, data = undefined } = _a, config = tslib_es6.__rest(_a, ["url", "data"]);
@@ -361,8 +458,39 @@ const verifyOtpLead = ({ phone, otp, type, }) => {
361
458
  },
362
459
  });
363
460
  };
461
+ const campaignGetByCode = (campaign_code) => {
462
+ return leadApi.call({
463
+ url: `${LEADGEN_API_PATH.V2_CAMPAIGN}/${campaign_code}`,
464
+ method: LEADGEN_API_METHOD.GET,
465
+ });
466
+ };
467
+ const campaignPostLead = ({ data }) => {
468
+ return leadApi.call({
469
+ url: 'api/v2/subscription-box',
470
+ method: LEADGEN_API_METHOD.POST,
471
+ data,
472
+ });
473
+ };
474
+ const campaignPostImpression = ({ code, action, title_article, ga_client_id, cookie_id, extra, url, referrer, }) => {
475
+ return leadApi.call({
476
+ url: `api/campaign/${code}/impression`,
477
+ method: LEADGEN_API_METHOD.POST,
478
+ data: {
479
+ action,
480
+ title_article,
481
+ cookie_id,
482
+ ga_client_id,
483
+ url,
484
+ extra,
485
+ referrer,
486
+ },
487
+ });
488
+ };
364
489
  const Service = {
365
490
  campaignGetById,
491
+ campaignGetByCode,
492
+ campaignPostLead,
493
+ campaignPostImpression,
366
494
  validateEmailOrPhoneOnSubot,
367
495
  validateEmailOrPhoneOnLeadGen,
368
496
  validatePhoneNumberOnLeadGen,
@@ -1154,6 +1282,7 @@ var enPH = {
1154
1282
  "validator.min": "jQuery.validator.format('Please enter a value greater than or equal to {0}.",
1155
1283
  "validator.emailUsed": "Email already in use for this campaign.",
1156
1284
  "validator.phoneUsed": "Your phone number already in use for this campaign.",
1285
+ "validator.dateInvalid": "This date is not valid, please update.",
1157
1286
  "lead.otp.title": "Enter OTP",
1158
1287
  "lead.otp.desc": "We have sent an OTP to your mobile number {phone}",
1159
1288
  "lead.otp.verify": "Verify",
@@ -1162,7 +1291,10 @@ var enPH = {
1162
1291
  "lead.otp.phonePlaceholder": "Enter OTP",
1163
1292
  "lead.empty.title": "Oops, seem your information is empty, do you want to submit the information again?",
1164
1293
  "lead.empty.cancel": "Cancel",
1165
- "lead.empty.submitAgain": "Submit again"
1294
+ "lead.empty.submitAgain": "Submit again",
1295
+ "common.day": "Day",
1296
+ "common.month": "Month",
1297
+ "common.year": "Year"
1166
1298
  };
1167
1299
 
1168
1300
  var hiIN = {
@@ -1173,6 +1305,7 @@ var hiIN = {
1173
1305
  "validator.maxlength": "कृपया {0} अक्षर से अधिक दर्ज न करें",
1174
1306
  "validator.minlength": "कृपया कम से कम {0} अक्षर दर्ज करें",
1175
1307
  "validator.phone": "कृपया एक वैध संख्या दर्ज करें",
1308
+ "validator.dateInvalid": "यह तिथि मान्य नहीं है, कृपया अपडेट करें।",
1176
1309
  "validator.emailUsed": "Email already in use for this campaign.",
1177
1310
  "validator.phoneUsed": "Your phone number already in use for this campaign.",
1178
1311
  "lead.otp.title": "Enter OTP",
@@ -1181,7 +1314,10 @@ var hiIN = {
1181
1314
  "lead.otp.resend": "Resend OTP{timer}",
1182
1315
  "lead.empty.title": "ऊप्स! लगता है आपकी जानकारी खाली है। क्या आप जानकारी फिर से सबमिट करना चाहते हैं?",
1183
1316
  "lead.empty.cancel": "रद्द करें",
1184
- "lead.empty.submitAgain": "फिर से सबमिट करें"
1317
+ "lead.empty.submitAgain": "फिर से सबमिट करें",
1318
+ "common.day": "साल",
1319
+ "common.month": "महीना",
1320
+ "common.year": ""
1185
1321
  };
1186
1322
 
1187
1323
  var idID = {
@@ -1194,6 +1330,7 @@ var idID = {
1194
1330
  "validator.phone": "Tolong daftarkan nomor telepon yang valid",
1195
1331
  "validator.emailUsed": "Email sudah digunakan untuk kampanye ini.",
1196
1332
  "validator.phoneUsed": "Nomor telepon Anda sudah digunakan untuk kampanye ini.",
1333
+ "validator.dateInvalid": "Tanggal ini tidak valid, silakan perbarui",
1197
1334
  "lead.otp.title": "Masukkan OTP",
1198
1335
  "lead.otp.desc": "Kami telah mengirimkan OTP ke nomor ponsel Anda {phone}",
1199
1336
  "lead.otp.verify": "Verifikasi",
@@ -1202,7 +1339,10 @@ var idID = {
1202
1339
  "lead.otp.phonePlaceholder": "Masukkan OTP",
1203
1340
  "lead.empty.title": "Oops, sepertinya informasi Anda kosong. Apakah Anda ingin mengirimkan informasi lagi?",
1204
1341
  "lead.empty.cancel": "Batal",
1205
- "lead.empty.submitAgain": "Kirim lagi"
1342
+ "lead.empty.submitAgain": "Kirim lagi",
1343
+ "common.day": "Hari",
1344
+ "common.month": "Bulan",
1345
+ "common.year": "Tahun"
1206
1346
  };
1207
1347
 
1208
1348
  var kmKH = {
@@ -1215,6 +1355,7 @@ var kmKH = {
1215
1355
  "validator.phone": "សូម​វាយបញ្ចូល​លេខ​ឲ្យ​បាន​ត្រឹមត្រូវ",
1216
1356
  "validator.emailUsed": "អ៊ីមែលត្រូវបានប្រើប្រាស់សម្រាប់យុទ្ធនាការនេះរួចហើយ។",
1217
1357
  "validator.phoneUsed": "លេខទូរស័ព្ទរបស់អ្នកត្រូវបានប្រើប្រាស់សម្រាប់យុទ្ធនាការនេះរួចហើយ។",
1358
+ "validator.dateInvalid": "កាលបរិច្ឆេទនេះមិនត្រឹមត្រូវទេ សូមធ្វើបច្ចុប្បន្នភាព។",
1218
1359
  "lead.otp.title": "បញ្ចូល OTP",
1219
1360
  "lead.otp.desc": "យើងបានផ្ញើ OTP ទៅកាន់លេខទូរសព្ទរបស់អ្នក {phone}",
1220
1361
  "lead.otp.verify": "ផ្ទៀងផ្ទាត់",
@@ -1223,7 +1364,10 @@ var kmKH = {
1223
1364
  "lead.otp.phonePlaceholder": "បញ្ចូល OTP",
1224
1365
  "lead.empty.title": "អូុបស! ហាក់ដូចជាព័ត៌មានរបស់អ្នកទទេ។ តើអ្នកចង់ដាក់ស្នើព័ត៌មានម្តងទៀតទេ?",
1225
1366
  "lead.empty.cancel": "លុប​ចោល",
1226
- "lead.empty.submitAgain": "ដាក់ស្នើម្ដងទៀត"
1367
+ "lead.empty.submitAgain": "ដាក់ស្នើម្ដងទៀត",
1368
+ "common.day": "ឆ្នាំ",
1369
+ "common.month": "ខែ",
1370
+ "common.year": "ថ្ងៃ"
1227
1371
  };
1228
1372
 
1229
1373
  var msMY = {
@@ -1236,6 +1380,7 @@ var msMY = {
1236
1380
  "validator.phone": "Sila masukkan no telefon yang sah.",
1237
1381
  "validator.emailUsed": "Emel sudah digunakan untuk kempen ini.",
1238
1382
  "validator.phoneUsed": "Nombor telefon anda sudah digunakan untuk kempen ini.",
1383
+ "validator.dateInvalid": "Tarikh ini tidak sah, sila kemas kini",
1239
1384
  "lead.otp.title": "Masukkan OTP",
1240
1385
  "lead.otp.desc": "Kami telah menghantar OTP ke nombor telefon bimbit anda {phone}",
1241
1386
  "lead.otp.verify": "Sahkan",
@@ -1244,7 +1389,10 @@ var msMY = {
1244
1389
  "lead.otp.phonePlaceholder": "Masukkan OTP",
1245
1390
  "lead.empty.title": "Oops, nampaknya maklumat anda kosong. Adakah anda ingin menghantar maklumat semula?",
1246
1391
  "lead.empty.cancel": "Batal",
1247
- "lead.empty.submitAgain": "Hantar semula"
1392
+ "lead.empty.submitAgain": "Hantar semula",
1393
+ "common.day": "Hari",
1394
+ "common.month": "Bulan",
1395
+ "common.year": "Tahun"
1248
1396
  };
1249
1397
 
1250
1398
  var myMM = {
@@ -1257,6 +1405,7 @@ var myMM = {
1257
1405
  "validator.phone": "မှန်ကန်သော ဖုန်းနံပါတ်ထည့်သွင်းပါ",
1258
1406
  "validator.emailUsed": "ဤအေကာင့်အတွက် အီးမေးလ်ကို အသုံးပြုပြီးဖြစ်ပါသည်။",
1259
1407
  "validator.phoneUsed": "ဤအေကာင့်အတွက် သင့်ဖုန်းနံပါတ်ကို အသုံးပြုပြီးဖြစ်ပါသည်။",
1408
+ "validator.dateInvalid": "ယနေ့စွဲမှားနေသည်၊ ကျေးဇူးပြု၍ ပြင်ဆင်ပါ။",
1260
1409
  "lead.otp.title": "OTP ကိုထည့်ပါ",
1261
1410
  "lead.otp.desc": "ကျွန်ုပ်တို့သည် OTP ကိုသင့်ဖုန်းနံပါတ် {phone} သို့ပို့ခဲ့သည်",
1262
1411
  "lead.otp.verify": "အတည်ပြုပါ",
@@ -1265,7 +1414,10 @@ var myMM = {
1265
1414
  "lead.otp.phonePlaceholder": "OTP ကိုထည့်ပါ",
1266
1415
  "lead.empty.title": "အုပ်စ်! သင့်အချက်အလက်သည် ဗလာဖြစ်နေသလိုဖြစ်သည်။ ထပ်မံတင်သွင်းလိုပါသလား?",
1267
1416
  "lead.empty.cancel": "မလုပ်ဆောင်ပါ",
1268
- "lead.empty.submitAgain": "ထပ်မံတင်သွင်းပါ"
1417
+ "lead.empty.submitAgain": "ထပ်မံတင်သွင်းပါ",
1418
+ "common.day": "ရက်",
1419
+ "common.month": "လ",
1420
+ "common.year": "နှစ်"
1269
1421
  };
1270
1422
 
1271
1423
  var thTH = {
@@ -1278,6 +1430,7 @@ var thTH = {
1278
1430
  "validator.phone": "กรุณาใส่ตัวเลขที่ถูกต้อง",
1279
1431
  "validator.emailUsed": "อีเมลนี้ถูกใช้สำหรับแคมเปญนี้แล้ว",
1280
1432
  "validator.phoneUsed": "หมายเลขโทรศัพท์ของคุณถูกใช้สำหรับแคมเปญนี้แล้ว",
1433
+ "validator.dateInvalid": "วันที่นี้ไม่ถูกต้อง โปรดอัปเดต",
1281
1434
  "lead.otp.title": "ป้อน OTP",
1282
1435
  "lead.otp.desc": "เราได้ส่ง OTP ไปยังหมายเลขโทรศัพท์มือถือของคุณ {phone}",
1283
1436
  "lead.otp.verify": "ยืนยัน",
@@ -1286,7 +1439,10 @@ var thTH = {
1286
1439
  "lead.otp.phonePlaceholder": "ป้อน OTP",
1287
1440
  "lead.empty.title": "อุ๊ปส์! ดูเหมือนว่าข้อมูลของคุณว่างเปล่า คุณต้องการส่งข้อมูลอีกครั้งหรือไม่?",
1288
1441
  "lead.empty.cancel": "ยกเลิก",
1289
- "lead.empty.submitAgain": "ส่งอีกครั้ง"
1442
+ "lead.empty.submitAgain": "ส่งอีกครั้ง",
1443
+ "common.day": "วัน",
1444
+ "common.month": "เดือน",
1445
+ "common.year": "ปี"
1290
1446
  };
1291
1447
 
1292
1448
  var viVN = {
@@ -1310,6 +1466,7 @@ var viVN = {
1310
1466
  "validator.phone": "Nhập đúng định dạng số điện thoại",
1311
1467
  "validator.emailUsed": "Email này đã được sử dụng.",
1312
1468
  "validator.phoneUsed": "Số điện thoại này đã được sử dụng.",
1469
+ "validator.dateInvalid": "Ngày này không hợp lệ, vui lòng cập nhật.",
1313
1470
  "lead.otp.title": "Nhập OTP",
1314
1471
  "lead.otp.desc": "Chúng tôi đã gửi OTP đến số điện thoại của bạn {phone}",
1315
1472
  "lead.otp.verify": "Xác minh",
@@ -1318,7 +1475,10 @@ var viVN = {
1318
1475
  "lead.otp.phonePlaceholder": "Nhập OTP",
1319
1476
  "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?",
1320
1477
  "lead.empty.cancel": "Hủy",
1321
- "lead.empty.submitAgain": "Gửi lại"
1478
+ "lead.empty.submitAgain": "Gửi lại",
1479
+ "common.day": "Ngày",
1480
+ "common.month": "Tháng",
1481
+ "common.year": "Năm"
1322
1482
  };
1323
1483
 
1324
1484
  var zhTW = {
@@ -1331,6 +1491,7 @@ var zhTW = {
1331
1491
  "validator.phone": "請填入有效的電話號碼",
1332
1492
  "validator.emailUsed": "此電子郵件已被使用於此活動。",
1333
1493
  "validator.phoneUsed": "您的手機號碼已被使用於此活動。",
1494
+ "validator.dateInvalid": "此日期無效,請更新.",
1334
1495
  "lead.otp.title": "輸入 OTP",
1335
1496
  "lead.otp.desc": "我們已將 OTP 發送到您的手機號碼 {phone}",
1336
1497
  "lead.otp.verify": "驗證",
@@ -1339,7 +1500,10 @@ var zhTW = {
1339
1500
  "lead.otp.phonePlaceholder": "輸入 OTP",
1340
1501
  "lead.empty.title": "哎呀,您的資訊似乎是空的,您想要重新提交資訊嗎?",
1341
1502
  "lead.empty.cancel": "取消",
1342
- "lead.empty.submitAgain": "重新提交"
1503
+ "lead.empty.submitAgain": "重新提交",
1504
+ "common.day": "日",
1505
+ "common.month": "月",
1506
+ "common.year": "年"
1343
1507
  };
1344
1508
 
1345
1509
  const translationsMap = {
@@ -1351,6 +1515,7 @@ const translationsMap = {
1351
1515
  'my-MM': myMM,
1352
1516
  'km-KH': kmKH,
1353
1517
  'zh-TW': zhTW,
1518
+ 'zh-CN': zhTW,
1354
1519
  'th-TH': thTH,
1355
1520
  'tl-PH': enPH,
1356
1521
  };
@@ -1364,190 +1529,1210 @@ const getTranslations = (locale) => {
1364
1529
 
1365
1530
  const LeadGenContext = React.createContext({});
1366
1531
 
1367
- const useImageSize = (src) => {
1368
- const [width, setWidth] = React.useState(16);
1369
- const [height, setHeight] = React.useState(9);
1370
- const [loaded, setLoaded] = React.useState(false);
1371
- // load src image to get its width and height
1532
+ const LeadGenSubscriptionBoxContext = React.createContext({});
1533
+ const LeadGenSubscriptionBoxProvider = (props) => {
1534
+ const { campaign_code, apiUrl: apiUrlProps, apiSubotUrl, locale, forceCampaign: forceCampaignProps, children, } = props;
1535
+ const [forceCampaign, setForceCampaign] = React.useState(forceCampaignProps);
1536
+ const leadGenSubscriptionBoxValue = React.useMemo(() => (Object.assign(Object.assign({}, props), { forceCampaign })), [campaign_code, locale, forceCampaign]);
1537
+ const translationContextValue = { locale, values: getTranslations(locale) };
1372
1538
  React.useEffect(() => {
1373
- setLoaded(false);
1374
- if (src) {
1375
- const img = new Image();
1376
- img.addEventListener('load', () => {
1377
- setWidth(img.naturalWidth);
1378
- setHeight(img.naturalHeight);
1379
- setLoaded(true);
1380
- });
1381
- img.addEventListener('error', () => {
1382
- setWidth(16);
1383
- setHeight(9);
1384
- setLoaded(true);
1385
- });
1386
- img.src = src;
1539
+ if (forceCampaignProps) {
1540
+ setForceCampaign(forceCampaignProps);
1541
+ return;
1387
1542
  }
1388
- else {
1389
- setWidth(16);
1390
- setHeight(9);
1391
- setLoaded(true);
1543
+ if (campaign_code) {
1544
+ Service.campaignGetByCode(campaign_code).then((res) => {
1545
+ const { _data } = res || {};
1546
+ const { campaigns } = _data || {};
1547
+ setForceCampaign(formatCampaignDetail(campaigns));
1548
+ });
1392
1549
  }
1393
- }, [src]);
1394
- return {
1395
- loaded,
1396
- width,
1397
- height,
1398
- };
1399
- };
1400
-
1401
- const CloseButton = ({ onClose, containerClassName, svgClassName, }) => (React__default["default"].createElement("button", { onClick: onClose, className: `le-newbuilder-close-button js-modal__close ${containerClassName || ''}` },
1402
- React__default["default"].createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 20 20", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", className: svgClassName },
1403
- React__default["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" }))));
1404
-
1405
- // url: imageBlocks.imageMobile.data.url
1406
- // newTab: imageBlocks.imageMobile.data.newtab
1407
- // imageMobile: campaignShow.image
1408
- // imageDestkop: campaignShow.image_desktop
1409
- const CenterTabLayout = ({ popupId, url, newTab, imageDestkop, imageMobile, onClose, onOtherSubmit, }) => {
1410
- const { width: imageMobileWidth, height: imageMobileHeight, loaded: imageMobileLoaded, } = useImageSize(imageMobile);
1411
- const { width: imageDestkopWidth, height: imageDestkopHeight, loaded: imageDestkopLoaded, } = useImageSize(imageDestkop);
1412
- if (!imageMobileLoaded || !imageDestkopLoaded)
1413
- return null;
1414
- return (React__default["default"].createElement("div", { id: popupId, className: "lead-modal-wrapper", "data-popup-url": location.pathname, "data-popup-type": "center_tab" },
1415
- React__default["default"].createElement("div", { className: "le-center-tab-popup" },
1416
- React__default["default"].createElement("div", { style: { position: 'relative' } },
1417
- React__default["default"].createElement("a", { className: "js-popup-other-submit", href: url, target: newTab ? 'blank' : '_parent', onClick: onOtherSubmit },
1418
- index$7.isVideo(imageMobile) ? (React__default["default"].createElement("video", { loop: true, muted: true, autoPlay: true, className: "le-only-mobile" },
1419
- React__default["default"].createElement("source", { src: imageMobile }))) : (React__default["default"].createElement("img", { className: "le-only-mobile", src: imageMobile, style: {
1420
- aspectRatio: `${imageMobileWidth}/${imageMobileHeight}`,
1421
- } })),
1422
- index$7.isVideo(imageDestkop) ? (React__default["default"].createElement("video", { loop: true, muted: true, autoPlay: true, className: "le-only-desktop" },
1423
- React__default["default"].createElement("source", { src: imageDestkop }))) : (React__default["default"].createElement("img", { className: "le-only-desktop", src: imageDestkop, style: {
1424
- aspectRatio: `${imageDestkopWidth}/${imageDestkopHeight}`,
1425
- } }))),
1426
- React__default["default"].createElement(CloseButton, { onClose: onClose, containerClassName: "close-button-top-right" })))));
1427
- };
1428
-
1429
- // title: titleText
1430
- // titleAlign: textBlocks.titleBlock.data.align
1431
- // subtitle: textBlocks.subtitleBlock.data.value
1432
- // subtitleAlign: textBlocks.subtitleBlock.data.align
1433
- // url: actionBlocks.linkButtonBlock.data.url
1434
- // urlText: actionBlocks.linkButtonBlock.data.value
1435
- // newTab: actionBlocks.linkButtonBlock.data.newtab
1436
- // imageMobile: campaignShow.image
1437
- // imageDesktop: campaignShow.image_desktop
1438
- const FloatingLayout = ({ popupId, url, title, urlText, titleAlign, subtitle, subtitleAlign, newTab, imageDesktop, imageMobile, onClose, onOtherSubmit, }) => {
1439
- const { width: imageMobileWidth, height: imageMobileHeight, loaded: imageMobileLoaded, } = useImageSize(imageMobile);
1440
- const { width: imageDesktopWidth, height: imageDesktopHeight, loaded: imageDesktopLoaded, } = useImageSize(imageDesktop);
1441
- if (!imageMobileLoaded || !imageDesktopLoaded)
1442
- return null;
1443
- return (React__default["default"].createElement("div", { id: popupId, className: "lead-modal-wrapper lead-floating-wrapper", "data-popup-url": location.pathname, "data-popup-type": "floating" },
1444
- React__default["default"].createElement("aside", { className: "le-only-desktop" },
1445
- React__default["default"].createElement("div", { className: "le-floating-desktop" },
1446
- React__default["default"].createElement("div", { className: "le-floating-desktop-wrap", style: { position: 'relative', background: '#fff' } },
1447
- imageDesktop ? (React__default["default"].createElement("div", null,
1448
- React__default["default"].createElement("img", { style: {
1449
- maxWidth: 120,
1450
- borderTopLeftRadius: 5,
1451
- borderBottomLeftRadius: 5,
1452
- aspectRatio: `${imageDesktopWidth}/${imageDesktopHeight}`,
1453
- }, src: imageDesktop }))) : null,
1454
- React__default["default"].createElement("div", { style: { padding: 20 } },
1455
- React__default["default"].createElement("div", { className: `le-floating-desktop-title le-text-align-${titleAlign}` }, title),
1456
- React__default["default"].createElement("div", { className: `le-floating-desktop-desc le-text-align-${subtitleAlign}` }, subtitle)),
1457
- React__default["default"].createElement("a", { target: newTab ? 'blank' : '_parent', style: { marginLeft: 35, textDecoration: 'none' }, href: url },
1458
- React__default["default"].createElement("button", { className: "le-joinbow-floating-btn js-popup-other-submit", onClick: onOtherSubmit }, urlText)),
1459
- React__default["default"].createElement(CloseButton, { onClose: onClose, containerClassName: "close-button-top-right" })))),
1460
- React__default["default"].createElement("aside", { className: "le-only-mobile" },
1461
- React__default["default"].createElement("div", { className: "le-floating-mobile" },
1462
- React__default["default"].createElement("div", { className: "le-floating-mobile-wrap", style: { position: 'relative', background: '#fff' } },
1463
- React__default["default"].createElement("aside", { style: { display: 'flex', justifyContent: 'space-between' } },
1464
- React__default["default"].createElement("div", null,
1465
- React__default["default"].createElement("div", { className: `le-floating-mobile-title le-text-align-${titleAlign}` }, title),
1466
- React__default["default"].createElement("div", { className: `le-floating-mobile-desc le-text-align-${subtitleAlign}` }, subtitle)),
1467
- imageMobile ? (React__default["default"].createElement("div", null,
1468
- React__default["default"].createElement("img", { style: {
1469
- marginLeft: 15,
1470
- marginTop: 4,
1471
- maxWidth: 100,
1472
- aspectRatio: `${imageMobileWidth}/${imageMobileHeight}`,
1473
- }, src: imageMobile }))) : null),
1474
- React__default["default"].createElement("div", { style: { textAlign: 'center', marginTop: 10 } },
1475
- React__default["default"].createElement("a", { target: newTab ? 'blank' : '_parent', href: url, style: { textDecoration: 'none' } },
1476
- React__default["default"].createElement("button", { className: "le-joinbow-floating-btn js-popup-other-submit", onClick: onOtherSubmit }, urlText))),
1477
- React__default["default"].createElement(CloseButton, { onClose: onClose, containerClassName: "close-button-top-right" }))))));
1478
- };
1479
-
1480
- const ThankyouPopup = ({ title, titleAlign, subtitle, subtitleAlign, link, linkNewTab, linkText, image, }) => {
1481
- const { width: imageWidth, height: imageHeight, loaded: imageLoaded, } = useImageSize(image);
1482
- if (!imageLoaded)
1550
+ }, [campaign_code]);
1551
+ React.useEffect(() => {
1552
+ leadStore.apiLeadUrl = apiUrlProps;
1553
+ leadStore.apiSubotUrl = apiSubotUrl;
1554
+ return () => {
1555
+ setForceCampaign(null);
1556
+ };
1557
+ }, []);
1558
+ if (!forceCampaign || !(forceCampaign === null || forceCampaign === void 0 ? void 0 : forceCampaign.id)) {
1483
1559
  return null;
1484
- return (React__default["default"].createElement("div", { className: "lead-modal__thank-you leadgen-inner_thankyou" },
1485
- React__default["default"].createElement("div", { style: { width: '100%' } },
1486
- React__default["default"].createElement("img", { src: image, style: {
1487
- maxHeight: 162,
1488
- objectFit: 'cover',
1489
- aspectRatio: `${imageWidth}/${imageHeight}`,
1490
- }, loading: "lazy" }),
1491
- title && (React__default["default"].createElement("h1", { className: `le-thankyou-title le-text-align-${titleAlign}` }, title)),
1492
- subtitle && (React__default["default"].createElement("p", { className: `le-thankyou-subtitle le-text-align-${subtitleAlign}` }, subtitle.split('\n').map((text, idx, list) => {
1493
- const isShowBr = idx < list.length - 1;
1494
- return (React__default["default"].createElement(React__default["default"].Fragment, null,
1495
- text,
1496
- isShowBr && React__default["default"].createElement("br", null)));
1497
- }))),
1498
- linkText && (React__default["default"].createElement("div", null,
1499
- React__default["default"].createElement("a", { href: link, target: linkNewTab ? '_blank' : 'parrent', rel: "noreferrer" },
1500
- React__default["default"].createElement("button", { className: `lead-modal__btn ${LEAD_CLASS}` }, linkText)))))));
1560
+ }
1561
+ return (React__default["default"].createElement(LeadGenSubscriptionBoxContext.Provider, { value: leadGenSubscriptionBoxValue },
1562
+ React__default["default"].createElement(translationsContext.TranslationsContext.Provider, { value: translationContextValue }, children)));
1501
1563
  };
1502
1564
 
1503
- const InlineLayout = ({ content, inlinePosition, }) => {
1504
- const target = React.useMemo(() => {
1505
- if (!inlinePosition)
1506
- return null;
1507
- const parents = document.querySelectorAll(`[data-url="${location.pathname}"] .body-content`);
1508
- const allChildren = Array.from(parents).reduce((r, p) => {
1509
- return [...r, ...Array.from(p.children)];
1510
- }, []);
1511
- if (allChildren === null || allChildren === void 0 ? void 0 : allChildren.length) {
1512
- // find the third p tag in the body content, some other tags might mix in between
1513
- const allPTags = allChildren.filter((c) => c.nodeName === 'P');
1514
- const allH2Tags = allChildren.filter((c) => c.nodeName === 'H2');
1515
- let target = null;
1516
- switch (inlinePosition) {
1517
- case '1th':
1518
- target = allPTags[0];
1519
- break;
1520
- case '2th':
1521
- target = allPTags[1];
1522
- break;
1523
- case '3th':
1524
- target = allPTags[2];
1525
- break;
1526
- case '4th':
1527
- target = allPTags[3];
1528
- break;
1529
- case '5th':
1530
- target = allPTags[4];
1531
- break;
1532
- case '6th':
1533
- target = allPTags[5];
1534
- break;
1535
- case '7th':
1536
- target = allPTags[6];
1537
- break;
1538
- case '8th':
1539
- target = allPTags[7];
1540
- break;
1541
- case '9th':
1542
- target = allPTags[8];
1543
- break;
1544
- case '10th':
1545
- target = allPTags[9];
1546
- break;
1547
- case '11th':
1548
- target = allPTags[10];
1549
- break;
1550
- case '12th':
1565
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
1566
+ const customParseFormat = require('dayjs/plugin/customParseFormat');
1567
+ dayjs__default["default"].extend(customParseFormat);
1568
+ // You can give context variables any name
1569
+ const [LeadFormProvider, useLeadFormContext, useLeadForm] = form.createFormContext();
1570
+ const useLeadFormConfig = ({ listBlockAdded = [], validatingPhoneRef, validatingEmailRef, campaignId, campaign_subot_id = [], userInfo, format, }) => {
1571
+ var _a;
1572
+ const { t } = index.useTranslations();
1573
+ const initialValues = React.useMemo(() => mappingSSOToLead(userInfo), [userInfo === null || userInfo === void 0 ? void 0 : userInfo.id]);
1574
+ const LEAD_LOCALE = LEAD_LOCALE_DATA[(_a = document === null || document === void 0 ? void 0 : document.documentElement) === null || _a === void 0 ? void 0 : _a.lang] ||
1575
+ LEAD_LOCALE_DATA['vi-VN'];
1576
+ const validateObj = React.useMemo(() => {
1577
+ const InputBlocks = [
1578
+ 'TextBlock',
1579
+ 'NumberBlock',
1580
+ 'EmailBlock',
1581
+ 'PhoneBlock',
1582
+ 'DateBlock',
1583
+ 'CheckboxBlock',
1584
+ 'RadioBlock',
1585
+ 'DropdownBlock',
1586
+ 'PhoneOtpBlock',
1587
+ 'WhatsappOtpBlock',
1588
+ 'ZaloOtpBlock',
1589
+ 'LocationBlock',
1590
+ 'TncBlock',
1591
+ ];
1592
+ // ALL are required and can skip if not touched yet
1593
+ const withSharedCheck = (name, cb,
1594
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1595
+ block) => {
1596
+ return (value) => {
1597
+ var _a;
1598
+ const isBLockRequired = (_a = block === null || block === void 0 ? void 0 : block.data) === null || _a === void 0 ? void 0 : _a.required;
1599
+ if (!formRef.current.isTouched(name))
1600
+ return;
1601
+ if ((typeof value === 'string' && value.trim() === '') ||
1602
+ typeof value === 'undefined' ||
1603
+ (Array.isArray(value) && value.length === 0)) {
1604
+ return isBLockRequired
1605
+ ? t('validator.required')
1606
+ : cb === null || cb === void 0 ? void 0 : cb(value);
1607
+ }
1608
+ return cb === null || cb === void 0 ? void 0 : cb(value);
1609
+ };
1610
+ };
1611
+ return listBlockAdded
1612
+ .filter((b) => InputBlocks.includes(b.name))
1613
+ .reduce((r, b) => {
1614
+ const { name: fieldType, data } = b || {};
1615
+ const { value: fieldName, required } = data || {};
1616
+ const isRequired = required !== null && required !== void 0 ? required : true;
1617
+ if (fieldType === 'NumberBlock') {
1618
+ return Object.assign(Object.assign({}, r), { [fieldName]: withSharedCheck(fieldName, (value) => {
1619
+ if (value && isNaN(Number(value))) {
1620
+ return t('validator.number');
1621
+ }
1622
+ }, b) });
1623
+ }
1624
+ else if (fieldType === 'EmailBlock') {
1625
+ return Object.assign(Object.assign({}, r), { [fieldName]: withSharedCheck(fieldName, (value) => {
1626
+ if (value && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value)) {
1627
+ return t('validator.email');
1628
+ }
1629
+ if (!value)
1630
+ return;
1631
+ validatingEmailRef.current = true;
1632
+ setTimeout(() => {
1633
+ formRef.current.setFieldError(fieldName, 'Validating...');
1634
+ checkUsedEmailOrPhoneWithCache(campaignId, campaign_subot_id, {
1635
+ email: value,
1636
+ })
1637
+ .then((tKey) => {
1638
+ if (tKey) {
1639
+ formRef.current.setFieldError(fieldName, t(tKey));
1640
+ }
1641
+ else {
1642
+ formRef.current.clearFieldError(fieldName);
1643
+ }
1644
+ validatingEmailRef.current = false;
1645
+ })
1646
+ .catch((e) => {
1647
+ console.error(e);
1648
+ formRef.current.setFieldError(fieldName, e.message || 'Something went wrong');
1649
+ validatingEmailRef.current = false;
1650
+ });
1651
+ }, 200);
1652
+ }, b) });
1653
+ }
1654
+ else if (fieldType === 'PhoneBlock' ||
1655
+ fieldType === 'PhoneOtpBlock' ||
1656
+ fieldType === 'ZaloOtpBlock' ||
1657
+ fieldType === 'WhatsappOtpBlock') {
1658
+ return Object.assign(Object.assign({}, r), { [fieldName]: withSharedCheck(fieldName, (value) => {
1659
+ if (value &&
1660
+ window.intlTelInputUtils &&
1661
+ !window.intlTelInputUtils.isValidNumber(String(value), LEAD_LOCALE.countryCode)) {
1662
+ return t('validator.phone');
1663
+ }
1664
+ if (!value)
1665
+ return;
1666
+ validatingPhoneRef.current = true;
1667
+ setTimeout(() => {
1668
+ formRef.current.setFieldError(fieldName, 'Validating...');
1669
+ if (b.data.singleSubmission) {
1670
+ checkUsedPhoneOnlyWithCache(campaignId, value)
1671
+ .then((tKey) => {
1672
+ if (tKey) {
1673
+ formRef.current.setFieldError(fieldName, t(tKey));
1674
+ }
1675
+ else {
1676
+ formRef.current.clearFieldError(fieldName);
1677
+ }
1678
+ validatingPhoneRef.current = false;
1679
+ })
1680
+ .catch((err) => {
1681
+ console.error(err);
1682
+ formRef.current.setFieldError(fieldName, err.message || 'Something went wrong');
1683
+ validatingPhoneRef.current = false;
1684
+ });
1685
+ }
1686
+ else {
1687
+ checkUsedEmailOrPhoneWithCache(campaignId, campaign_subot_id, {
1688
+ phone: value,
1689
+ })
1690
+ .then((tKey) => {
1691
+ if (tKey) {
1692
+ formRef.current.setFieldError(fieldName, t(tKey));
1693
+ }
1694
+ else {
1695
+ formRef.current.clearFieldError(fieldName);
1696
+ }
1697
+ validatingPhoneRef.current = false;
1698
+ })
1699
+ .catch((e) => {
1700
+ console.error(e);
1701
+ formRef.current.setFieldError(fieldName, e.message || 'Something went wrong');
1702
+ validatingPhoneRef.current = false;
1703
+ });
1704
+ }
1705
+ }, 200);
1706
+ }, b) });
1707
+ }
1708
+ else if (fieldType === 'DateBlock') {
1709
+ return Object.assign(Object.assign({}, r), { [fieldName]: withSharedCheck(fieldName, (value) => {
1710
+ const errMsg = t('validator.dateInvalid');
1711
+ const isDirty = formRef.current.isDirty(fieldName);
1712
+ const isTouched = formRef.current.isTouched(fieldName);
1713
+ if (typeof value === 'string') {
1714
+ const valueArr = value.split('/');
1715
+ if (valueArr.length < 3) {
1716
+ return;
1717
+ }
1718
+ if (valueArr.length === 3) {
1719
+ return errMsg;
1720
+ }
1721
+ const dayInJS = dayjs__default["default"](value, format, true);
1722
+ return !dayInJS.isValid() && isDirty && isTouched
1723
+ ? errMsg
1724
+ : undefined;
1725
+ }
1726
+ const dayInJS = dayjs__default["default"](value);
1727
+ if (!dayInJS.isValid()) {
1728
+ return errMsg;
1729
+ }
1730
+ }, b) });
1731
+ }
1732
+ else if (fieldType === 'TncBlock') {
1733
+ return Object.assign(Object.assign({}, r), { [`TNC-` + b.id]: withSharedCheck('TNC-' + b.id, (value) => {
1734
+ if (isRequired && !value) {
1735
+ return t('validator.required');
1736
+ }
1737
+ }, b) });
1738
+ }
1739
+ else {
1740
+ return Object.assign(Object.assign({}, r), { [fieldName]: withSharedCheck(fieldName, undefined, b) });
1741
+ }
1742
+ }, {});
1743
+ }, [listBlockAdded.map((b) => b.name).join(',')]);
1744
+ const form = useLeadForm({
1745
+ validateInputOnChange: true,
1746
+ validateInputOnBlur: true,
1747
+ clearInputErrorOnChange: true,
1748
+ validate: validateObj,
1749
+ initialValues,
1750
+ });
1751
+ const formRef = React.useRef(form);
1752
+ formRef.current = form;
1753
+ return { form, validateObj };
1754
+ };
1755
+
1756
+ const PhoneInput = React.forwardRef((props, ref) => {
1757
+ const { defaultCountry, id: idProps, name, placeholder, label, labelElement, labelProps, description, descriptionProps, withAsterisk, inputMode, inputContainer, inputWrapperOrder, error, className, classNames, style, styles } = props, restProps = tslib_es6.__rest(props, ["defaultCountry", "id", "name", "placeholder", "label", "labelElement", "labelProps", "description", "descriptionProps", "withAsterisk", "inputMode", "inputContainer", "inputWrapperOrder", "error", "className", "classNames", "style", "styles"]);
1758
+ const id = idProps || uuid.v1() + name;
1759
+ return (React__default["default"].createElement(core.Input.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 },
1760
+ React__default["default"].createElement("div", { className: "mantine-Input-wrapper" },
1761
+ React__default["default"].createElement(index$2.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" })))));
1762
+ });
1763
+
1764
+ const StyledLeadGenFormInner = styled__default["default"].div `
1765
+ display: flex;
1766
+ flex-wrap: wrap;
1767
+ gap: 8px;
1768
+ .leadgen-form_input {
1769
+ width: calc(50% - 4px);
1770
+ }
1771
+
1772
+ .leadgen-form_input_checkbox {
1773
+ width: 100%;
1774
+ }
1775
+ `;
1776
+
1777
+ const cssInputNotShrink$1 = react.css `
1778
+ height: 100% !important;
1779
+ min-height: calc(var(--container-height, 56px) * 22 / 56);
1780
+ color: ${miscTheme.theme.colors.gray800};
1781
+ font-size: var(--input, 16px);
1782
+ line-height: calc(var(--container-height, 56px) * 22 / 56);
1783
+ border: none !important;
1784
+ border-radius: 0 !important;
1785
+ outline: none !important;
1786
+ box-shadow: none !important;
1787
+ padding: 0;
1788
+ cursor: pointer;
1789
+ opacity: 0;
1790
+
1791
+ ::placeholder {
1792
+ color: ${miscTheme.theme.colors.gray400};
1793
+ }
1794
+ `;
1795
+ const cssInputShrink$1 = react.css `
1796
+ height: auto !important;
1797
+ cursor: text;
1798
+ opacity: 1;
1799
+ transition: 0.1s ease-in-out all;
1800
+ `;
1801
+ const cssLabelNotShrink$1 = react.css `
1802
+ position: absolute;
1803
+ top: calc(var(--container-height) / 2);
1804
+ left: var(--space-x, 16px);
1805
+ color: ${miscTheme.theme.colors.gray400};
1806
+ font-size: var(--label-not-shrink, 16px);
1807
+ font-weight: 400;
1808
+ line-height: calc(var(--container-height, 56px) * 18 / 56);
1809
+ margin: 0;
1810
+ z-index: 1;
1811
+ cursor: pointer;
1812
+ transform: translateY(-50%);
1813
+ transition: 0.125s ease-in all;
1814
+ `;
1815
+ const cssLabelShrink$1 = react.css `
1816
+ color: ${miscTheme.theme.colors.gray600};
1817
+ font-weight: 600;
1818
+ font-size: var(--label-shrink, 12px);
1819
+ top: calc(var(--container-height) * 7 / 56);
1820
+ transform: none;
1821
+ transition: 0.125s ease-out all;
1822
+ `;
1823
+ const cssWrapperInputNotShrink$1 = react.css `
1824
+ min-height: var(--container-height, 56px);
1825
+ display: flex;
1826
+ align-items: flex-end;
1827
+ border: 1px solid ${miscTheme.theme.colors.gray200};
1828
+ border-radius: 8px;
1829
+ background-color: #fff;
1830
+ padding-inline: var(--space-x, 16px);
1831
+ padding-block: var(--space-y-not-shrink, 16px);
1832
+ cursor: pointer;
1833
+ pointer-events: none;
1834
+
1835
+ &:has(.mantine-Input-rightSection) {
1836
+ padding-right: var(--container-height, 56px);
1837
+ }
1838
+
1839
+ .mantine-Input-icon {
1840
+ display: none;
1841
+ }
1842
+
1843
+ .mantine-NumberInput-control {
1844
+ border-color: ${miscTheme.theme.colors.gray200};
1845
+ }
1846
+ `;
1847
+ const cssWrapperInputShrink$1 = react.css `
1848
+ height: auto;
1849
+ min-height: var(--container-height, 56px);
1850
+ padding-block: var(--space-y-shrink, 7px);
1851
+ cursor: text;
1852
+ pointer-events: auto;
1853
+ `;
1854
+ const cssInputWrapperError$1 = react.css `
1855
+ color: ${miscTheme.theme.colors.red800};
1856
+ font-size: 12px;
1857
+ line-height: 1.5;
1858
+ `;
1859
+ const StyledTextFieldContainer$1 = styled__default["default"].div `
1860
+ --space-x: 16px;
1861
+ --space-y-not-shrink: 16px;
1862
+ --space-y-shrink: 7px;
1863
+ --container-height: 56px;
1864
+ --label-not-shrink: 16px;
1865
+ --label-shrink: 12px;
1866
+ --input: 16px;
1867
+
1868
+ position: relative;
1869
+ min-width: 100px;
1870
+ max-width: 100%;
1871
+ display: inline-block;
1872
+
1873
+ .textField_wrapper {
1874
+ display: inline-block;
1875
+ width: 100%;
1876
+ cursor: pointer;
1877
+ }
1878
+
1879
+ .mantine-InputWrapper-root {
1880
+ &[data-invalid='true'] {
1881
+ .mantine-Input-wrapper {
1882
+ border-color: ${miscTheme.theme.colors.red400};
1883
+ }
1884
+ }
1885
+
1886
+ .mantine-Input-wrapper {
1887
+ &:has([data-invalid]) {
1888
+ border-color: ${miscTheme.theme.colors.red400};
1889
+ }
1890
+ }
1891
+ }
1892
+
1893
+ .mantine-InputWrapper-label {
1894
+ ${cssLabelNotShrink$1}
1895
+ }
1896
+
1897
+ .mantine-Input-wrapper {
1898
+ ${cssWrapperInputNotShrink$1}
1899
+
1900
+ + .mantine-Popover-dropdown[data-position="bottom-start"] {
1901
+ left: 0 !important;
1902
+ }
1903
+ + .mantine-Popover-dropdown[data-position='top-start'] {
1904
+ top: unset !important;
1905
+ left: 0 !important;
1906
+ bottom: 100% !important;
1907
+ }
1908
+ }
1909
+
1910
+ .mantine-Input-input {
1911
+ ${cssInputNotShrink$1}
1912
+ }
1913
+
1914
+ &.textField_shrink,
1915
+ &:focus-within {
1916
+ .mantine-InputWrapper-label {
1917
+ ${cssLabelShrink$1}
1918
+ }
1919
+
1920
+ .mantine-Input-wrapper {
1921
+ ${cssWrapperInputShrink$1}
1922
+ &.mantine-Select-wrapper {
1923
+ .mantine-Select-rightSection {
1924
+ pointer-events: auto !important;
1925
+ }
1926
+ }
1927
+ }
1928
+
1929
+ .mantine-Input-input {
1930
+ ${cssInputShrink$1}
1931
+ }
1932
+
1933
+ &:has(.PhoneInput) {
1934
+ .mantine-InputWrapper-label {
1935
+ left: var(--space-x, 16px);
1936
+ }
1937
+ .PhoneInput {
1938
+ .PhoneInputInput {
1939
+ opacity: 1;
1940
+ }
1941
+ }
1942
+ }
1943
+ }
1944
+
1945
+ .PhoneInput {
1946
+ --phone-select: 75px;
1947
+ --phone-input-space-x: 8px;
1948
+ width: 100%;
1949
+ opacity: 1;
1950
+ border: none;
1951
+ .PhoneInputCountry {
1952
+ background-color: transparent;
1953
+ border: none;
1954
+ padding: 0;
1955
+ width: var(--phone-select, 75px);
1956
+ }
1957
+ .PhoneInputInput {
1958
+ flex: 1;
1959
+ min-width: 0;
1960
+ line-height: 1.5;
1961
+ outline: none !important;
1962
+ border: none;
1963
+ box-shadow: none;
1964
+ padding: 0 var(--phone-input-space-x, 8px);
1965
+ opacity: 0;
1966
+ color: ${miscTheme.theme.colors.gray800} !important;
1967
+ :focus {
1968
+ color: ${miscTheme.theme.colors.gray800} !important;
1969
+ }
1970
+ }
1971
+ }
1972
+
1973
+ &:has(.PhoneInput) {
1974
+ .mantine-InputWrapper-label {
1975
+ left: calc(
1976
+ var(--space-x, 16px) + var(--phone-select, 75px) +
1977
+ var(--phone-input-space-x, 8px)
1978
+ );
1979
+ }
1980
+ }
1981
+ `;
1982
+ const StyledChoiceFieldContainer$1 = styled__default["default"].div `
1983
+ &.leadgen-form_checkbox,
1984
+ &.leadgen-form_radio {
1985
+ width: 100%;
1986
+ }
1987
+
1988
+ &.leadgen-form_dropdown {
1989
+ width: calc(50% - 12px);
1990
+ }
1991
+
1992
+ .mantine-InputWrapper-root {
1993
+ display: block;
1994
+ }
1995
+
1996
+ .mantine-InputWrapper-label {
1997
+ margin-bottom: 0.5rem;
1998
+ color: ${miscTheme.theme.colors.gray800};
1999
+ font-size: 16px;
2000
+ font-weight: 400;
2001
+ line-height: 1.5;
2002
+ }
2003
+
2004
+ .mantine-Radio-root,
2005
+ .mantine-Checkbox-root {
2006
+ gap: 8px;
2007
+ min-width: calc(50% - 4px);
2008
+
2009
+ input[type='radio'],
2010
+ input[type='checkbox'] {
2011
+ border-color: ${miscTheme.theme.colors.gray600};
2012
+ width: 18px;
2013
+ height: 18px;
2014
+ }
2015
+ input[type='checkbox'] {
2016
+ border-radius: 4px;
2017
+ }
2018
+
2019
+ &[data-checked='true'] {
2020
+ input[type='radio'],
2021
+ input[type='checkbox'] {
2022
+ border-color: ${miscTheme.theme.colors.primary600};
2023
+ + svg {
2024
+ color: ${miscTheme.theme.colors.primary600};
2025
+ }
2026
+ }
2027
+
2028
+ input[type='radio'] {
2029
+ background-color: white;
2030
+ }
2031
+ }
2032
+
2033
+ .mantine-Checkbox-input {
2034
+ &:checked {
2035
+ border-color: ${miscTheme.theme.colors.primary600};
2036
+ }
2037
+ }
2038
+ }
2039
+
2040
+ .mantine-Radio-inner,
2041
+ .mantine-Checkbox-inner {
2042
+ width: 24px;
2043
+ height: 24px;
2044
+ display: flex;
2045
+ align-items: center;
2046
+ justify-content: center;
2047
+ }
2048
+
2049
+ .mantine-Radio-body,
2050
+ .mantine-Checkbox-body {
2051
+ display: flex;
2052
+ align-items: center;
2053
+ }
2054
+
2055
+ .mantine-Radio-label,
2056
+ .mantine-Checkbox-label {
2057
+ padding-left: 8px;
2058
+ color: ${miscTheme.theme.colors.gray800};
2059
+ font-size: 14px;
2060
+ line-height: 1.4;
2061
+ letter-spacing: -0.2px;
2062
+ }
2063
+
2064
+ .leadgen-choiceContainer {
2065
+ display: flex;
2066
+ flex-wrap: wrap;
2067
+ align-items: flex-start;
2068
+ gap: 8px;
2069
+ }
2070
+
2071
+ .mantine-InputWrapper-error {
2072
+ ${cssInputWrapperError$1}
2073
+ }
2074
+ `;
2075
+
2076
+ const TextField$1 = (props) => {
2077
+ const { shrink: shrinkProps, onChangeShrink, className, children } = props, restProps = tslib_es6.__rest(props, ["shrink", "onChangeShrink", "className", "children"]);
2078
+ const containerRef = hooks.useClickOutside(() => {
2079
+ if (shrinkProps) {
2080
+ return;
2081
+ }
2082
+ setShrink(false);
2083
+ onChangeShrink === null || onChangeShrink === void 0 ? void 0 : onChangeShrink(false);
2084
+ });
2085
+ const [shrink, setShrink] = React.useState(shrinkProps);
2086
+ const onClick = React.useCallback((e) => {
2087
+ setShrink(true);
2088
+ onChangeShrink === null || onChangeShrink === void 0 ? void 0 : onChangeShrink(true);
2089
+ if (shrink) {
2090
+ return;
2091
+ }
2092
+ const $textEl = e.currentTarget.querySelectorAll('input:not([disabled]):not([type="submit"]),select:not([disabled]),textarea:not([disabled])');
2093
+ const $focusEl = $textEl.item($textEl.length - 1);
2094
+ if ($focusEl) {
2095
+ $focusEl.focus();
2096
+ setTimeout(() => {
2097
+ $focusEl.scrollIntoView({
2098
+ behavior: 'auto',
2099
+ block: 'center',
2100
+ inline: 'start',
2101
+ });
2102
+ }, 100);
2103
+ }
2104
+ }, [shrink]);
2105
+ React.useEffect(() => {
2106
+ setShrink(shrinkProps);
2107
+ }, [shrinkProps]);
2108
+ return (React__default["default"].createElement(StyledTextFieldContainer$1, Object.assign({ shrink: shrink, className: core.clsx(className, 'textField', { textField_shrink: !!shrink }) }, restProps),
2109
+ React__default["default"].createElement("div", { ref: containerRef, onClick: onClick, className: "textField_wrapper" }, children)));
2110
+ };
2111
+ const ChoiceField$1 = (props) => {
2112
+ const { children, className } = props, restProps = tslib_es6.__rest(props, ["children", "className"]);
2113
+ return (React__default["default"].createElement(StyledChoiceFieldContainer$1, Object.assign({ className: core.clsx(className, 'choiceField') }, restProps), children));
2114
+ };
2115
+
2116
+ const libraries = ['places'];
2117
+ const GoogleLocationBlock = (props) => {
2118
+ var _a;
2119
+ const { inputWrapperOrder = ['label', 'input', 'description', 'error'], defaultValue, value: valueProps, onChange: onChangeProps, locale } = props, restProps = tslib_es6.__rest(props, ["inputWrapperOrder", "defaultValue", "value", "onChange", "locale"]);
2120
+ const [LoadScript, setLoadScript] = React.useState(null);
2121
+ const [value, setValue] = React.useState(defaultValue || valueProps);
2122
+ const { predictions } = usePlacesAutocomplete.usePlacesAutocomplete(value, '', locale === 'tl-PH' ? 'en' : (_a = locale === null || locale === void 0 ? void 0 : locale.split('-')) === null || _a === void 0 ? void 0 : _a[0]);
2123
+ const onChangeAutocomplete = React.useCallback((s) => {
2124
+ setValue(s);
2125
+ onChangeProps === null || onChangeProps === void 0 ? void 0 : onChangeProps(s);
2126
+ }, []);
2127
+ const onClickItem = React.useCallback((item) => {
2128
+ /** For sure get value */
2129
+ setValue(item.value);
2130
+ const predCur = predictions === null || predictions === void 0 ? void 0 : predictions.find(({ description }) => description === item.value);
2131
+ onChangeProps === null || onChangeProps === void 0 ? void 0 : onChangeProps(item.value, predCur === null || predCur === void 0 ? void 0 : predCur.rawData);
2132
+ }, [onChangeProps, predictions]);
2133
+ React.useEffect(() => {
2134
+ setValue(valueProps);
2135
+ }, [valueProps]);
2136
+ React.useEffect(() => {
2137
+ var _a, _b, _c;
2138
+ // only load extra google script when not yet loaded
2139
+ 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) {
2140
+ Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@react-google-maps/api')); }).then((m) => {
2141
+ setLoadScript(() => m.LoadScript);
2142
+ });
2143
+ }
2144
+ }, []);
2145
+ return (React__default["default"].createElement(core.Autocomplete, Object.assign({ defaultValue: defaultValue, value: value, onChange: onChangeAutocomplete, data: predictions.map((pred) => {
2146
+ return { value: pred.description, label: pred.description };
2147
+ }), filter: () => true, onItemSubmit: onClickItem, inputWrapperOrder: inputWrapperOrder, zIndex: index$7.ZINDEX_SSO - 9e6 + 2, withinPortal: true, styles: { dropdown: { pointerEvents: 'auto' } }, inputContainer: (children) => {
2148
+ return (React__default["default"].createElement(React__default["default"].Fragment, null,
2149
+ LoadScript && (React__default["default"].createElement(LoadScript, { googleMapsApiKey: usePlacesAutocomplete.GOOGLE_API_KEY, libraries: libraries, loadingElement: React__default["default"].createElement(React__default["default"].Fragment, null), style: { width: '100%' } })),
2150
+ children));
2151
+ } }, restProps)));
2152
+ };
2153
+
2154
+ const LEADGEN_ORDER_INPUT_WRAPPER = [
2155
+ 'label',
2156
+ 'input',
2157
+ 'description',
2158
+ 'error',
2159
+ ];
2160
+ const LeadGenForm = React.forwardRef((props, ref) => {
2161
+ const { locale, blocks, scrollToErrorField = true, form: formProps, rules: validate, initialValues, onFinish, onFinishFailed, className, style, } = props;
2162
+ const formRef = React.useRef(null);
2163
+ const form$1 = formProps || form.useForm({ initialValues, validate });
2164
+ const middlewareFinish = (values, event) => {
2165
+ onFinish === null || onFinish === void 0 ? void 0 : onFinish(values, event);
2166
+ };
2167
+ const middlewareFinishFailed = (errors, values, events) => {
2168
+ if (scrollToErrorField && errors) {
2169
+ const firstErrorKey = Object.keys(errors)[0];
2170
+ const firstErrorElement = document.querySelector(`[name="${firstErrorKey}"]`);
2171
+ if (firstErrorElement && (firstErrorElement === null || firstErrorElement === void 0 ? void 0 : firstErrorElement.focus)) {
2172
+ setTimeout(() => {
2173
+ firstErrorElement === null || firstErrorElement === void 0 ? void 0 : firstErrorElement.focus();
2174
+ firstErrorElement.scrollIntoView({
2175
+ behavior: 'auto',
2176
+ block: 'center',
2177
+ inline: 'center',
2178
+ });
2179
+ }, 100);
2180
+ }
2181
+ }
2182
+ onFinishFailed === null || onFinishFailed === void 0 ? void 0 : onFinishFailed(errors, values, events);
2183
+ };
2184
+ React.useEffect(() => {
2185
+ (() => tslib_es6.__awaiter(void 0, void 0, void 0, function* () {
2186
+ if (!window.intlTelInputUtils) {
2187
+ yield require('intl-tel-input/build/js/utils');
2188
+ }
2189
+ }))();
2190
+ }, []);
2191
+ React.useImperativeHandle(ref, () => (Object.assign(Object.assign({}, form$1), { submit: () => formRef.current.requestSubmit() })), [form$1, formRef]);
2192
+ if (!blocks || !blocks.length) {
2193
+ return null;
2194
+ }
2195
+ return (React__default["default"].createElement("form", { ref: formRef, onSubmit: form$1.onSubmit(middlewareFinish, middlewareFinishFailed), className: className, style: style },
2196
+ React__default["default"].createElement(StyledLeadGenFormInner, { className: "leadgen-form_inputs" }, blocks.map((block, idx) => {
2197
+ const { id, name: blockName, data } = block;
2198
+ const { placeholder, value: name, required, listQuestion, valueHTML, isSendMailChimp = false, } = data;
2199
+ const formInputProps = form$1.getInputProps(name);
2200
+ const { value, error } = formInputProps;
2201
+ const reactKey = `${id}-${idx}`;
2202
+ switch (blockName) {
2203
+ case LEADGEN_BLOCK.TextBlock: {
2204
+ return (React__default["default"].createElement(TextField$1, { key: reactKey, shrink: !!value, className: "leadgen-form_input" },
2205
+ React__default["default"].createElement(core.TextInput, Object.assign({ name: name, spellCheck: false, withAsterisk: required, label: placeholder, placeholder: placeholder, inputWrapperOrder: LEADGEN_ORDER_INPUT_WRAPPER, type: "text", "data-control": "text" }, formInputProps))));
2206
+ }
2207
+ case LEADGEN_BLOCK.NumberBlock: {
2208
+ return (React__default["default"].createElement(TextField$1, { key: reactKey, shrink: !!value, className: "leadgen-form_input" },
2209
+ React__default["default"].createElement(core.NumberInput, Object.assign({ name: value, spellCheck: false, withAsterisk: required, label: placeholder, placeholder: placeholder, inputWrapperOrder: LEADGEN_ORDER_INPUT_WRAPPER, type: "number", "data-control": "number" }, formInputProps))));
2210
+ }
2211
+ case LEADGEN_BLOCK.EmailBlock: {
2212
+ return (React__default["default"].createElement(TextField$1, { key: reactKey, shrink: !!value, className: "leadgen-form_input" },
2213
+ React__default["default"].createElement(core.TextInput, Object.assign({ name: name, spellCheck: false, withAsterisk: required, label: placeholder, placeholder: placeholder, inputWrapperOrder: LEADGEN_ORDER_INPUT_WRAPPER, "data-control": "email" }, formInputProps))));
2214
+ }
2215
+ case LEADGEN_BLOCK.PhoneOtpBlock:
2216
+ case LEADGEN_BLOCK.WhatsappOtpBlock:
2217
+ case LEADGEN_BLOCK.ZaloOtpBlock:
2218
+ case LEADGEN_BLOCK.PhoneBlock: {
2219
+ return (React__default["default"].createElement(TextField$1, { key: reactKey, shrink: !!value, className: "leadgen-form_input" },
2220
+ React__default["default"].createElement(PhoneInput, Object.assign({ name: name, spellCheck: false, withAsterisk: required, label: placeholder, placeholder: placeholder, inputWrapperOrder: LEADGEN_ORDER_INPUT_WRAPPER, defaultCountry: (locale ? utils.MAPPED_LOCALE[locale] || 'VN' : 'VN'), type: "text", "data-control": "text" }, formInputProps))));
2221
+ }
2222
+ case LEADGEN_BLOCK.LocationBlock: {
2223
+ return (React__default["default"].createElement(TextField$1, { key: reactKey, shrink: !!value, className: "leadgen-form_input" },
2224
+ React__default["default"].createElement(GoogleLocationBlock, Object.assign({ name: name, withAsterisk: required, label: placeholder, placeholder: placeholder, inputWrapperOrder: LEADGEN_ORDER_INPUT_WRAPPER, locale: locale, "data-control": "text" }, formInputProps))));
2225
+ }
2226
+ case LEADGEN_BLOCK.DateBlock: {
2227
+ return (React__default["default"].createElement(TextField$1, { key: reactKey, shrink: !!value, className: "leadgen-form_input" },
2228
+ React__default["default"].createElement(dates.DateInput, Object.assign({ locale: (utils.MAPPED_LOCALE === null || utils.MAPPED_LOCALE === void 0 ? void 0 : utils.MAPPED_LOCALE[locale]) || utils.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))));
2229
+ }
2230
+ case LEADGEN_BLOCK.DropdownBlock:
2231
+ return (React__default["default"].createElement(TextField$1, { key: reactKey, shrink: !!value, className: "leadgen-form_input" },
2232
+ React__default["default"].createElement("div", { style: { display: 'none' }, "data-extra": true, "data-name": value, "data-control": 'dropdown' }),
2233
+ React__default["default"].createElement(core.Select, Object.assign({ name: name, withAsterisk: required, label: placeholder, placeholder: placeholder, data: listQuestion.map((l) => ({
2234
+ value: l.value,
2235
+ label: l.placeholder,
2236
+ })) }, formInputProps))));
2237
+ case LEADGEN_BLOCK.CheckboxBlock: {
2238
+ const formInputCheckboxProps = form$1.getInputProps(name, {
2239
+ type: 'checkbox',
2240
+ });
2241
+ return (React__default["default"].createElement(ChoiceField$1, { className: "leadgen-form_input leadgen-form_input_checkbox", key: reactKey },
2242
+ isSendMailChimp && (React__default["default"].createElement("div", { style: { display: 'none' }, "data-name": name + '-mailchimp' })),
2243
+ React__default["default"].createElement(core.Checkbox.Group, Object.assign({ size: "md", withAsterisk: required, label: placeholder, value: value, sx: {
2244
+ display: 'flex',
2245
+ flexDirection: 'column',
2246
+ flexWrap: 'wrap',
2247
+ gap: 8,
2248
+ }, inputWrapperOrder: LEADGEN_ORDER_INPUT_WRAPPER, inputContainer: (children) => {
2249
+ return (React__default["default"].createElement("div", { className: "leadgen-choiceContainer" }, children));
2250
+ } }, formInputCheckboxProps), listQuestion.map((l, _idx) => (React__default["default"].createElement(core.Checkbox, { name: name, key: _idx, value: l.value, label: l.placeholder, "data-control": "checkbox" }))))));
2251
+ }
2252
+ case LEADGEN_BLOCK.RadioBlock: {
2253
+ return (React__default["default"].createElement(ChoiceField$1, { className: "leadgen-form_input leadgen-form_input_checkbox", key: reactKey },
2254
+ isSendMailChimp && (React__default["default"].createElement("div", { style: { display: 'none' }, "data-name": name + '-mailchimp' })),
2255
+ React__default["default"].createElement(core.Radio.Group, Object.assign({ size: "md", withAsterisk: required, label: placeholder, value: value, spellCheck: true, inputWrapperOrder: LEADGEN_ORDER_INPUT_WRAPPER, inputContainer: (children) => {
2256
+ return (React__default["default"].createElement("div", { className: "leadgen-choiceContainer" }, children));
2257
+ } }, formInputProps), listQuestion.map((l, _index) => (React__default["default"].createElement(core.Radio, { name: name, key: _index, value: l.value, label: l.placeholder, "data-control": "radio" }))))));
2258
+ }
2259
+ case 'TncBlock':
2260
+ return (React__default["default"].createElement(ChoiceField$1, { className: "leadgen-form_input leadgen-form_input_checkbox", key: reactKey },
2261
+ React__default["default"].createElement(core.Input.Wrapper, { error: error },
2262
+ React__default["default"].createElement(core.Checkbox, Object.assign({ value: value, name: 'TNC-' + id, label: React__default["default"].createElement("p", { className: "lead-modal__tnc-link", dangerouslySetInnerHTML: { __html: valueHTML } }), className: "tnc-block", "data-control": "checkbox" }, formInputProps)))));
2263
+ default: {
2264
+ return null;
2265
+ }
2266
+ }
2267
+ }))));
2268
+ });
2269
+
2270
+ const StyledLeadGenThankYou = styled__default["default"].div `
2271
+ display: flex;
2272
+ gap: 8px;
2273
+ flex-direction: column;
2274
+ padding-block: 24px;
2275
+
2276
+ .leadgen-image {
2277
+ width: 120px;
2278
+ height: 120px;
2279
+ margin-inline: auto;
2280
+ object-fit: contain;
2281
+ object-position: center;
2282
+ text-align: center;
2283
+ }
2284
+
2285
+ .leadgen-title {
2286
+ margin-block: 0;
2287
+ color: ${miscTheme.theme.colors.gray900};
2288
+ font-weight: 700;
2289
+ font-size: 18px;
2290
+ line-height: 28px;
2291
+ letter-spacing: -0.2px;
2292
+ }
2293
+
2294
+ .leadgen-description {
2295
+ margin-block: 0;
2296
+ color: ${miscTheme.theme.colors.gray600};
2297
+ font-weight: 400;
2298
+ font-size: 14px;
2299
+ line-height: 22px;
2300
+ letter-spacing: -0.2px;
2301
+ text-align: center;
2302
+ }
2303
+
2304
+ > [data-align] {
2305
+ &[data-align='right'] {
2306
+ text-align: right;
2307
+ }
2308
+ &[data-align='center'] {
2309
+ text-align: center;
2310
+ }
2311
+ }
2312
+ `;
2313
+ const LeadGenThankYou = ({ image, title, description, showButton = false, button, className, style, }) => {
2314
+ const { src } = image;
2315
+ const { htmlText: titleText, align: titleAlign } = title;
2316
+ const { htmlText: descriptionText, align: descriptionAlign } = description;
2317
+ const { htmlText: buttonText, newtab, url, onClick } = button;
2318
+ return (React__default["default"].createElement(StyledLeadGenThankYou, { className: className, style: style },
2319
+ React__default["default"].createElement("img", { src: src, alt: "", className: "leadgen-thankyou_image leadgen-image" }),
2320
+ React__default["default"].createElement("p", { className: "leadgen-thankyou_title leadgen-title", "data-align": titleAlign }, titleText),
2321
+ React__default["default"].createElement("p", { className: "leadgen-thankyou_description leadgen-description", "data-align": descriptionAlign }, descriptionText),
2322
+ !!buttonText && showButton && (React__default["default"].createElement(core.Button, { component: url ? 'a' : 'button', target: newtab ? '_blank' : undefined, href: url, size: "lg", variant: "filled", className: "leadgen-thankyoue_btn leadgen-btn", onClick: onClick }, buttonText))));
2323
+ };
2324
+
2325
+ const StyledLeadGenSubscriptionBoxBody = styled__default["default"].div `
2326
+ margin-top: 16px;
2327
+ .leadgen-btn {
2328
+ margin-top: 16px;
2329
+ }
2330
+ `;
2331
+ const StyledLeadGenSubscriptionBoxHeaderImage = styled__default["default"].div `
2332
+ margin-top: 3px;
2333
+ margin-right: 20px;
2334
+ width: 44px;
2335
+ height: 44px;
2336
+
2337
+ img {
2338
+ width: 100%;
2339
+ height: 100%;
2340
+ object-fix: contain;
2341
+ onject-position: center;
2342
+ }
2343
+
2344
+ :has(img[src='']) {
2345
+ display: none;
2346
+ }
2347
+ `;
2348
+ const StyledLeadGenSubscriptionBoxHeader = styled__default["default"].div `
2349
+ display: flex;
2350
+ align-items: center;
2351
+ margin-bottom: 16px;
2352
+ .leadgen-title {
2353
+ margin-bottom: 0;
2354
+ flex: 1;
2355
+ min-width: 0;
2356
+ color: ${miscTheme.theme.colors.gray900};
2357
+ font-size: 18px;
2358
+ font-weight: 600;
2359
+ line-height: 1.4;
2360
+ letter-spacing: -0.8px;
2361
+ }
2362
+ `;
2363
+ const StyledLeadGenSubscriptionBox = styled__default["default"].div `
2364
+ padding: 16px;
2365
+ border: 1px solid ${miscTheme.theme.colors.neutral100};
2366
+ border-radius: 12px;
2367
+ margin-inline: auto;
2368
+ .leadgen-form_inputs {
2369
+ .leadgen-form_input {
2370
+ width: 100%;
2371
+ }
2372
+ }
2373
+
2374
+ .leadgen-form_input {
2375
+ .mantine-Input-wrapper {
2376
+ max-height: 56px;
2377
+ }
2378
+ }
2379
+
2380
+ @media screen and (min-width: 768px) {
2381
+ .leadgen-subscription_box_body {
2382
+ display: flex;
2383
+ > form {
2384
+ flex: 1;
2385
+ min-width: 0;
2386
+
2387
+ .leadgen-form_inputs {
2388
+ .leadgen-form_input {
2389
+ width: calc(50% - 4px);
2390
+ }
2391
+ }
2392
+ }
2393
+
2394
+ .leadgen-btn {
2395
+ margin-top: 0;
2396
+ margin-left: 8px;
2397
+ width: auto;
2398
+ min-height: 56px;
2399
+ }
2400
+ }
2401
+ }
2402
+ `;
2403
+ const LeadGenSubscriptionBoxWithoutMemo = ({ locale, userInfo, siteId, siteDomain, forceCampaign, campaign_code, article_id, subscription_title: subscriptionTitleProps, }) => {
2404
+ var _a, _b, _c;
2405
+ const refContainer = React.useRef(null);
2406
+ const validatingEmailRef = React.useRef(false);
2407
+ const validatingPhoneRef = React.useRef(false);
2408
+ const { image, extra_fields, id: campaign_id, bot_id: campaign_subot_id = [], ThankYouBlock, } = forceCampaign || {};
2409
+ const { textBlocks, listBlockAdded, actionBlocks } = extra_fields || {};
2410
+ const { submitBlock } = actionBlocks || {};
2411
+ const [loading, setLoading] = React.useState(false);
2412
+ const [showThankyou, setShowThankyou] = React.useState(false);
2413
+ const formRef = React.useRef(null);
2414
+ const { form, validateObj } = useLeadFormConfig({
2415
+ listBlockAdded,
2416
+ campaignId: campaign_id,
2417
+ campaign_subot_id,
2418
+ validatingEmailRef,
2419
+ validatingPhoneRef,
2420
+ userInfo,
2421
+ });
2422
+ const subscription_title = React.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]);
2423
+ const { image: thankyouImage, title: thankyouTitle, description: thankyouDescription, button: thankyouButton, } = ThankYouBlock || {};
2424
+ const { apiUrl } = React.useMemo(() => {
2425
+ let apiUrl = leadStore.apiLeadUrl;
2426
+ if (apiUrl.includes('localhost')) {
2427
+ apiUrl = 'https://dev.leadgen.hellobacsi.com/';
2428
+ }
2429
+ return {
2430
+ apiUrl,
2431
+ };
2432
+ }, [siteDomain, siteId]);
2433
+ const url = React.useMemo(() => location.href.toLowerCase() || '', []);
2434
+ const article_title = React.useMemo(() => document.title || '', []);
2435
+ const cookie_id = React.useMemo(() => miscCookieHelper.getCookie('hhg-id') || null, []);
2436
+ const ga_client_id = React.useMemo(() => miscCookieHelper.getCookie('_ga') || null, []);
2437
+ const leadgenImpression = React.useCallback(() => {
2438
+ Service.campaignPostImpression({
2439
+ url,
2440
+ action: LEADGEN_ACTIONS.SCROLL,
2441
+ code: campaign_code,
2442
+ title_article: article_title,
2443
+ cookie_id,
2444
+ ga_client_id,
2445
+ extra: { cookie_id, article_id, subscription_title },
2446
+ });
2447
+ }, [
2448
+ article_id,
2449
+ article_title,
2450
+ cookie_id,
2451
+ ga_client_id,
2452
+ campaign_code,
2453
+ subscription_title,
2454
+ ]);
2455
+ const intersectionObserverCallback = React.useCallback((entries) => {
2456
+ entries.forEach((entry) => {
2457
+ const { isIntersecting, target } = entry;
2458
+ if (isIntersecting && target === refContainer.current) {
2459
+ leadgenImpression();
2460
+ }
2461
+ });
2462
+ }, [leadgenImpression]);
2463
+ const IObserver = new IntersectionObserver(intersectionObserverCallback);
2464
+ const middlewareOnSubmit = React.useCallback((value) => tslib_es6.__awaiter(void 0, void 0, void 0, function* () {
2465
+ const newValue = {
2466
+ url,
2467
+ article_title,
2468
+ cookie_id,
2469
+ ga_client_id,
2470
+ article_id,
2471
+ campaign_id,
2472
+ campaign_code,
2473
+ subscription_title: subscription_title,
2474
+ };
2475
+ listBlockAdded.forEach(({ data: { value: k } }) => {
2476
+ newValue[k] = value[k];
2477
+ });
2478
+ setLoading(true);
2479
+ try {
2480
+ const { _data } = (yield Service.campaignPostLead({ data: newValue })) || {};
2481
+ const { model } = _data;
2482
+ if (model && model.id) {
2483
+ setShowThankyou(true);
2484
+ }
2485
+ }
2486
+ catch (error) {
2487
+ console.log('** Error : ', error);
2488
+ }
2489
+ setLoading(false);
2490
+ }), [
2491
+ url,
2492
+ article_id,
2493
+ article_title,
2494
+ cookie_id,
2495
+ ga_client_id,
2496
+ campaign_code,
2497
+ subscription_title,
2498
+ listBlockAdded,
2499
+ ]);
2500
+ React.useEffect(() => {
2501
+ if (refContainer.current) {
2502
+ IObserver.observe(refContainer.current);
2503
+ }
2504
+ return () => {
2505
+ IObserver.disconnect();
2506
+ };
2507
+ }, [
2508
+ url,
2509
+ article_id,
2510
+ article_title,
2511
+ ga_client_id,
2512
+ campaign_id,
2513
+ campaign_code,
2514
+ subscription_title,
2515
+ ]);
2516
+ return (React__default["default"].createElement("div", { ref: refContainer },
2517
+ React__default["default"].createElement(StyledLeadGenSubscriptionBox, null,
2518
+ showThankyou && (React__default["default"].createElement(LeadGenThankYou, { image: Object.assign(Object.assign({}, thankyouImage), { src: thankyouImage.src || `${apiUrl}admin/img/thanksyou.png` }), title: thankyouTitle, description: thankyouDescription, button: thankyouButton })),
2519
+ !showThankyou && (React__default["default"].createElement(React__default["default"].Fragment, null,
2520
+ React__default["default"].createElement(StyledLeadGenSubscriptionBoxHeader, null,
2521
+ !!image && (React__default["default"].createElement(StyledLeadGenSubscriptionBoxHeaderImage, null,
2522
+ React__default["default"].createElement("img", { src: image, alt: "" }))),
2523
+ React__default["default"].createElement("p", { className: "leadgen-title" }, subscription_title)),
2524
+ React__default["default"].createElement(StyledLeadGenSubscriptionBoxBody, { className: "leadgen-subscription_box_body" },
2525
+ React__default["default"].createElement(LeadGenForm, { ref: formRef, form: form, rules: validateObj, blocks: listBlockAdded, locale: locale, onFinish: middlewareOnSubmit }),
2526
+ React__default["default"].createElement(core.Button, { 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)))))));
2527
+ };
2528
+ const LeadGenSubscriptionBoxWithMemo = React.memo(LeadGenSubscriptionBoxWithoutMemo);
2529
+
2530
+ const Container = () => {
2531
+ const context = React.useContext(LeadGenSubscriptionBoxContext);
2532
+ const {
2533
+ // apiUrl: apiUrlProps,
2534
+ // apiSubotUrl,
2535
+ campaign_code, article_id, subscription_title, locale, siteId, siteDomain, userInfo, forceCampaign, } = context;
2536
+ if (!forceCampaign || !(forceCampaign === null || forceCampaign === void 0 ? void 0 : forceCampaign.id)) {
2537
+ return null;
2538
+ }
2539
+ return (React__default["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 }));
2540
+ };
2541
+ Container.displayName = 'LeadGenSubscriptionBox';
2542
+ const LeadGenSubscriptionBoxContainer = (props) => {
2543
+ const { campaign_code } = props;
2544
+ if (!campaign_code) {
2545
+ return null;
2546
+ }
2547
+ return (React__default["default"].createElement(LeadGenSubscriptionBoxProvider, Object.assign({}, props),
2548
+ React__default["default"].createElement(Container, null)));
2549
+ };
2550
+ const LeadGenSubscriptionBox = LeadGenSubscriptionBoxContainer;
2551
+
2552
+ const useImageSize = (src) => {
2553
+ const [width, setWidth] = React.useState(16);
2554
+ const [height, setHeight] = React.useState(9);
2555
+ const [loaded, setLoaded] = React.useState(false);
2556
+ // load src image to get its width and height
2557
+ React.useEffect(() => {
2558
+ setLoaded(false);
2559
+ if (src) {
2560
+ const img = new Image();
2561
+ img.addEventListener('load', () => {
2562
+ setWidth(img.naturalWidth);
2563
+ setHeight(img.naturalHeight);
2564
+ setLoaded(true);
2565
+ });
2566
+ img.addEventListener('error', () => {
2567
+ setWidth(16);
2568
+ setHeight(9);
2569
+ setLoaded(true);
2570
+ });
2571
+ img.src = src;
2572
+ }
2573
+ else {
2574
+ setWidth(16);
2575
+ setHeight(9);
2576
+ setLoaded(true);
2577
+ }
2578
+ }, [src]);
2579
+ return {
2580
+ loaded,
2581
+ width,
2582
+ height,
2583
+ };
2584
+ };
2585
+
2586
+ const CloseButton = ({ onClose, containerClassName, svgClassName, }) => (React__default["default"].createElement("button", { onClick: onClose, className: `le-newbuilder-close-button js-modal__close ${containerClassName || ''}` },
2587
+ React__default["default"].createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 20 20", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", className: svgClassName },
2588
+ React__default["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" }))));
2589
+
2590
+ // url: imageBlocks.imageMobile.data.url
2591
+ // newTab: imageBlocks.imageMobile.data.newtab
2592
+ // imageMobile: campaignShow.image
2593
+ // imageDestkop: campaignShow.image_desktop
2594
+ const CenterTabLayout = ({ popupId, url, newTab, imageDestkop, imageMobile, onClose, onOtherSubmit, }) => {
2595
+ const { width: imageMobileWidth, height: imageMobileHeight, loaded: imageMobileLoaded, } = useImageSize(imageMobile);
2596
+ const { width: imageDestkopWidth, height: imageDestkopHeight, loaded: imageDestkopLoaded, } = useImageSize(imageDestkop);
2597
+ if (!imageMobileLoaded || !imageDestkopLoaded)
2598
+ return null;
2599
+ return (React__default["default"].createElement("div", { id: popupId, className: "lead-modal-wrapper", "data-popup-url": location.pathname, "data-popup-type": "center_tab" },
2600
+ React__default["default"].createElement("div", { className: "le-center-tab-popup" },
2601
+ React__default["default"].createElement("div", { style: { position: 'relative' } },
2602
+ React__default["default"].createElement("a", { className: "js-popup-other-submit", href: url, target: newTab ? 'blank' : '_parent', onClick: onOtherSubmit },
2603
+ index$8.isVideo(imageMobile) ? (React__default["default"].createElement("video", { loop: true, muted: true, autoPlay: true, className: "le-only-mobile" },
2604
+ React__default["default"].createElement("source", { src: imageMobile }))) : (React__default["default"].createElement("img", { className: "le-only-mobile", src: imageMobile, style: {
2605
+ aspectRatio: `${imageMobileWidth}/${imageMobileHeight}`,
2606
+ } })),
2607
+ index$8.isVideo(imageDestkop) ? (React__default["default"].createElement("video", { loop: true, muted: true, autoPlay: true, className: "le-only-desktop" },
2608
+ React__default["default"].createElement("source", { src: imageDestkop }))) : (React__default["default"].createElement("img", { className: "le-only-desktop", src: imageDestkop, style: {
2609
+ aspectRatio: `${imageDestkopWidth}/${imageDestkopHeight}`,
2610
+ } }))),
2611
+ React__default["default"].createElement(CloseButton, { onClose: onClose, containerClassName: "close-button-top-right" })))));
2612
+ };
2613
+
2614
+ // title: titleText
2615
+ // titleAlign: textBlocks.titleBlock.data.align
2616
+ // subtitle: textBlocks.subtitleBlock.data.value
2617
+ // subtitleAlign: textBlocks.subtitleBlock.data.align
2618
+ // url: actionBlocks.linkButtonBlock.data.url
2619
+ // urlText: actionBlocks.linkButtonBlock.data.value
2620
+ // newTab: actionBlocks.linkButtonBlock.data.newtab
2621
+ // imageMobile: campaignShow.image
2622
+ // imageDesktop: campaignShow.image_desktop
2623
+ const FloatingLayout = ({ popupId, url, title, urlText, titleAlign, subtitle, subtitleAlign, newTab, imageDesktop, imageMobile, onClose, onOtherSubmit, }) => {
2624
+ const { width: imageMobileWidth, height: imageMobileHeight, loaded: imageMobileLoaded, } = useImageSize(imageMobile);
2625
+ const { width: imageDesktopWidth, height: imageDesktopHeight, loaded: imageDesktopLoaded, } = useImageSize(imageDesktop);
2626
+ if (!imageMobileLoaded || !imageDesktopLoaded)
2627
+ return null;
2628
+ return (React__default["default"].createElement("div", { id: popupId, className: "lead-modal-wrapper lead-floating-wrapper", "data-popup-url": location.pathname, "data-popup-type": "floating" },
2629
+ React__default["default"].createElement("aside", { className: "le-only-desktop" },
2630
+ React__default["default"].createElement("div", { className: "le-floating-desktop" },
2631
+ React__default["default"].createElement("div", { className: "le-floating-desktop-wrap", style: { position: 'relative', background: '#fff' } },
2632
+ imageDesktop ? (React__default["default"].createElement("div", null,
2633
+ React__default["default"].createElement("img", { style: {
2634
+ maxWidth: 120,
2635
+ borderTopLeftRadius: 5,
2636
+ borderBottomLeftRadius: 5,
2637
+ aspectRatio: `${imageDesktopWidth}/${imageDesktopHeight}`,
2638
+ }, src: imageDesktop }))) : null,
2639
+ React__default["default"].createElement("div", { style: { padding: 20 } },
2640
+ React__default["default"].createElement("div", { className: `le-floating-desktop-title le-text-align-${titleAlign}` }, title),
2641
+ React__default["default"].createElement("div", { className: `le-floating-desktop-desc le-text-align-${subtitleAlign}` }, subtitle)),
2642
+ React__default["default"].createElement("a", { target: newTab ? 'blank' : '_parent', style: { marginLeft: 35, textDecoration: 'none' }, href: url },
2643
+ React__default["default"].createElement("button", { className: "le-joinbow-floating-btn js-popup-other-submit", onClick: onOtherSubmit }, urlText)),
2644
+ React__default["default"].createElement(CloseButton, { onClose: onClose, containerClassName: "close-button-top-right" })))),
2645
+ React__default["default"].createElement("aside", { className: "le-only-mobile" },
2646
+ React__default["default"].createElement("div", { className: "le-floating-mobile" },
2647
+ React__default["default"].createElement("div", { className: "le-floating-mobile-wrap", style: { position: 'relative', background: '#fff' } },
2648
+ React__default["default"].createElement("aside", { style: { display: 'flex', justifyContent: 'space-between' } },
2649
+ React__default["default"].createElement("div", null,
2650
+ React__default["default"].createElement("div", { className: `le-floating-mobile-title le-text-align-${titleAlign}` }, title),
2651
+ React__default["default"].createElement("div", { className: `le-floating-mobile-desc le-text-align-${subtitleAlign}` }, subtitle)),
2652
+ imageMobile ? (React__default["default"].createElement("div", null,
2653
+ React__default["default"].createElement("img", { style: {
2654
+ marginLeft: 15,
2655
+ marginTop: 4,
2656
+ maxWidth: 100,
2657
+ aspectRatio: `${imageMobileWidth}/${imageMobileHeight}`,
2658
+ }, src: imageMobile }))) : null),
2659
+ React__default["default"].createElement("div", { style: { textAlign: 'center', marginTop: 10 } },
2660
+ React__default["default"].createElement("a", { target: newTab ? 'blank' : '_parent', href: url, style: { textDecoration: 'none' } },
2661
+ React__default["default"].createElement("button", { className: "le-joinbow-floating-btn js-popup-other-submit", onClick: onOtherSubmit }, urlText))),
2662
+ React__default["default"].createElement(CloseButton, { onClose: onClose, containerClassName: "close-button-top-right" }))))));
2663
+ };
2664
+
2665
+ const ThankyouPopup = ({ title, titleAlign, subtitle, subtitleAlign, link, linkNewTab, linkText, image, }) => {
2666
+ const { width: imageWidth, height: imageHeight, loaded: imageLoaded, } = useImageSize(image);
2667
+ if (!imageLoaded)
2668
+ return null;
2669
+ return (React__default["default"].createElement("div", { className: "lead-modal__thank-you leadgen-inner_thankyou" },
2670
+ React__default["default"].createElement("div", { style: { width: '100%' } },
2671
+ React__default["default"].createElement("img", { src: image, style: {
2672
+ maxHeight: 162,
2673
+ objectFit: 'cover',
2674
+ aspectRatio: `${imageWidth}/${imageHeight}`,
2675
+ }, loading: "lazy" }),
2676
+ title && (React__default["default"].createElement("h1", { className: `le-thankyou-title le-text-align-${titleAlign}` }, title)),
2677
+ subtitle && (React__default["default"].createElement("p", { className: `le-thankyou-subtitle le-text-align-${subtitleAlign}` }, subtitle.split('\n').map((text, idx, list) => {
2678
+ const isShowBr = idx < list.length - 1;
2679
+ return (React__default["default"].createElement(React__default["default"].Fragment, null,
2680
+ text,
2681
+ isShowBr && React__default["default"].createElement("br", null)));
2682
+ }))),
2683
+ linkText && (React__default["default"].createElement("div", null,
2684
+ React__default["default"].createElement("a", { href: link, target: linkNewTab ? '_blank' : 'parrent', rel: "noreferrer" },
2685
+ React__default["default"].createElement("button", { className: `lead-modal__btn ${LEAD_CLASS}` }, linkText)))))));
2686
+ };
2687
+
2688
+ const InlineLayout = ({ content, inlinePosition, }) => {
2689
+ const target = React.useMemo(() => {
2690
+ if (!inlinePosition)
2691
+ return null;
2692
+ const parents = document.querySelectorAll(`[data-url="${location.pathname}"] .body-content`);
2693
+ const allChildren = Array.from(parents).reduce((r, p) => {
2694
+ return [...r, ...Array.from(p.children)];
2695
+ }, []);
2696
+ if (allChildren === null || allChildren === void 0 ? void 0 : allChildren.length) {
2697
+ // find the third p tag in the body content, some other tags might mix in between
2698
+ const allPTags = allChildren.filter((c) => c.nodeName === 'P');
2699
+ const allH2Tags = allChildren.filter((c) => c.nodeName === 'H2');
2700
+ let target = null;
2701
+ switch (inlinePosition) {
2702
+ case '1th':
2703
+ target = allPTags[0];
2704
+ break;
2705
+ case '2th':
2706
+ target = allPTags[1];
2707
+ break;
2708
+ case '3th':
2709
+ target = allPTags[2];
2710
+ break;
2711
+ case '4th':
2712
+ target = allPTags[3];
2713
+ break;
2714
+ case '5th':
2715
+ target = allPTags[4];
2716
+ break;
2717
+ case '6th':
2718
+ target = allPTags[5];
2719
+ break;
2720
+ case '7th':
2721
+ target = allPTags[6];
2722
+ break;
2723
+ case '8th':
2724
+ target = allPTags[7];
2725
+ break;
2726
+ case '9th':
2727
+ target = allPTags[8];
2728
+ break;
2729
+ case '10th':
2730
+ target = allPTags[9];
2731
+ break;
2732
+ case '11th':
2733
+ target = allPTags[10];
2734
+ break;
2735
+ case '12th':
1551
2736
  target = allPTags[11];
1552
2737
  break;
1553
2738
  case 'lastP':
@@ -1645,211 +2830,6 @@ const EmptyComponent = ({ onClose, onContinue, }) => {
1645
2830
  React__default["default"].createElement(core.Button, { onClick: onContinue, size: "lg", variant: "filled", fullWidth: false, className: "leadgen-btn leadgen-btn_empty_again" }, t('lead.empty.submitAgain')))));
1646
2831
  };
1647
2832
 
1648
- const libraries = ['places'];
1649
- const GoogleLocationBlock = (props) => {
1650
- var _a;
1651
- const { inputWrapperOrder = ['label', 'input', 'description', 'error'], defaultValue, value: valueProps, onChange: onChangeProps, locale } = props, restProps = tslib_es6.__rest(props, ["inputWrapperOrder", "defaultValue", "value", "onChange", "locale"]);
1652
- const [LoadScript, setLoadScript] = React.useState(null);
1653
- const [value, setValue] = React.useState(defaultValue || valueProps);
1654
- const { predictions } = usePlacesAutocomplete.usePlacesAutocomplete(value, '', locale === 'tl-PH' ? 'en' : (_a = locale === null || locale === void 0 ? void 0 : locale.split('-')) === null || _a === void 0 ? void 0 : _a[0]);
1655
- const onChangeAutocomplete = React.useCallback((s) => {
1656
- setValue(s);
1657
- onChangeProps === null || onChangeProps === void 0 ? void 0 : onChangeProps(s);
1658
- }, []);
1659
- const onClickItem = React.useCallback((item) => {
1660
- /** For sure get value */
1661
- setValue(item.value);
1662
- const predCur = predictions === null || predictions === void 0 ? void 0 : predictions.find(({ description }) => description === item.value);
1663
- onChangeProps === null || onChangeProps === void 0 ? void 0 : onChangeProps(item.value, predCur === null || predCur === void 0 ? void 0 : predCur.rawData);
1664
- }, [onChangeProps, predictions]);
1665
- React.useEffect(() => {
1666
- setValue(valueProps);
1667
- }, [valueProps]);
1668
- React.useEffect(() => {
1669
- var _a, _b, _c;
1670
- // only load extra google script when not yet loaded
1671
- 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) {
1672
- Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@react-google-maps/api')); }).then((m) => {
1673
- setLoadScript(() => m.LoadScript);
1674
- });
1675
- }
1676
- }, []);
1677
- return (React__default["default"].createElement(core.Autocomplete, Object.assign({ defaultValue: defaultValue, value: value, onChange: onChangeAutocomplete, data: predictions.map((pred) => {
1678
- return { value: pred.description, label: pred.description };
1679
- }), filter: () => true, onItemSubmit: onClickItem, inputWrapperOrder: inputWrapperOrder, zIndex: index$8.ZINDEX_SSO - 9e6 + 2, withinPortal: true, styles: { dropdown: { pointerEvents: 'auto' } }, inputContainer: (children) => {
1680
- return (React__default["default"].createElement(React__default["default"].Fragment, null,
1681
- LoadScript && (React__default["default"].createElement(LoadScript, { googleMapsApiKey: usePlacesAutocomplete.GOOGLE_API_KEY, libraries: libraries, loadingElement: React__default["default"].createElement(React__default["default"].Fragment, null), style: { width: '100%' } })),
1682
- children));
1683
- } }, restProps)));
1684
- };
1685
-
1686
- // You can give context variables any name
1687
- const [LeadFormProvider, useLeadFormContext, useLeadForm] = form.createFormContext();
1688
- const useLeadFormConfig = ({ listBlockAdded = [], validatingPhoneRef, validatingEmailRef, campaignId, campaign_subot_id = [], userInfo, }) => {
1689
- const { t } = index.useTranslations();
1690
- const initialValues = React.useMemo(() => mappingSSOToLead(userInfo), [userInfo === null || userInfo === void 0 ? void 0 : userInfo.id]);
1691
- const validateObj = React.useMemo(() => {
1692
- const InputBlocks = [
1693
- 'TextBlock',
1694
- 'NumberBlock',
1695
- 'EmailBlock',
1696
- 'PhoneBlock',
1697
- 'DateBlock',
1698
- 'CheckboxBlock',
1699
- 'RadioBlock',
1700
- 'DropdownBlock',
1701
- 'PhoneOtpBlock',
1702
- 'WhatsappOtpBlock',
1703
- 'ZaloOtpBlock',
1704
- 'LocationBlock',
1705
- 'TncBlock',
1706
- ];
1707
- // ALL are required and can skip if not touched yet
1708
- const withSharedCheck = (name, cb,
1709
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1710
- block) => {
1711
- return (value) => {
1712
- var _a;
1713
- const isBLockRequired = (_a = block === null || block === void 0 ? void 0 : block.data) === null || _a === void 0 ? void 0 : _a.required;
1714
- if (!formRef.current.isTouched(name))
1715
- return;
1716
- if ((typeof value === 'string' && value.replace(' ', '') === '') ||
1717
- typeof value === 'undefined' ||
1718
- value === '' ||
1719
- (Array.isArray(value) && value.length === 0)) {
1720
- return isBLockRequired
1721
- ? t('validator.required')
1722
- : cb === null || cb === void 0 ? void 0 : cb(value);
1723
- }
1724
- return cb === null || cb === void 0 ? void 0 : cb(value);
1725
- };
1726
- };
1727
- return listBlockAdded
1728
- .filter((b) => InputBlocks.includes(b.name))
1729
- .reduce((r, b) => {
1730
- var _a;
1731
- const isRequired = (_a = b.data.required) !== null && _a !== void 0 ? _a : true;
1732
- if (b.name === 'NumberBlock') {
1733
- return Object.assign(Object.assign({}, r), { [b.data.value]: withSharedCheck(b.data.value, (value) => {
1734
- if (value && isNaN(Number(value))) {
1735
- return t('validator.number');
1736
- }
1737
- }, b) });
1738
- }
1739
- else if (b.name === 'EmailBlock') {
1740
- return Object.assign(Object.assign({}, r), { [b.data.value]: withSharedCheck(b.data.value, (value) => {
1741
- if (value && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value)) {
1742
- return t('validator.email');
1743
- }
1744
- if (!value)
1745
- return;
1746
- validatingEmailRef.current = true;
1747
- setTimeout(() => {
1748
- formRef.current.setFieldError(b.data.value, 'Validating...');
1749
- checkUsedEmailOrPhoneWithCache(campaignId, campaign_subot_id, {
1750
- email: value,
1751
- })
1752
- .then((tKey) => {
1753
- if (tKey) {
1754
- formRef.current.setFieldError(b.data.value, t(tKey));
1755
- }
1756
- else {
1757
- formRef.current.clearFieldError(b.data.value);
1758
- }
1759
- validatingEmailRef.current = false;
1760
- })
1761
- .catch((e) => {
1762
- console.error(e);
1763
- formRef.current.setFieldError(b.data.value, e.message || 'Something went wrong');
1764
- validatingEmailRef.current = false;
1765
- });
1766
- }, 200);
1767
- }, b) });
1768
- }
1769
- else if (b.name === 'PhoneBlock' ||
1770
- b.name === 'PhoneOtpBlock' ||
1771
- b.name === 'ZaloOtpBlock' ||
1772
- b.name === 'WhatsappOtpBlock') {
1773
- return Object.assign(Object.assign({}, r), { [b.data.value]: withSharedCheck(b.data.value, (value) => {
1774
- if (value &&
1775
- window.intlTelInputUtils &&
1776
- !window.intlTelInputUtils.isValidNumber(String(value), LEAD_LOCALE.countryCode)) {
1777
- return t('validator.phone');
1778
- }
1779
- if (!value)
1780
- return;
1781
- validatingPhoneRef.current = true;
1782
- setTimeout(() => {
1783
- formRef.current.setFieldError(b.data.value, 'Validating...');
1784
- if (b.data.singleSubmission) {
1785
- checkUsedPhoneOnlyWithCache(campaignId, value)
1786
- .then((tKey) => {
1787
- if (tKey) {
1788
- formRef.current.setFieldError(b.data.value, t(tKey));
1789
- }
1790
- else {
1791
- formRef.current.clearFieldError(b.data.value);
1792
- }
1793
- validatingPhoneRef.current = false;
1794
- })
1795
- .catch((err) => {
1796
- console.error(err);
1797
- formRef.current.setFieldError(b.data.value, err.message || 'Something went wrong');
1798
- validatingPhoneRef.current = false;
1799
- });
1800
- }
1801
- else {
1802
- checkUsedEmailOrPhoneWithCache(campaignId, campaign_subot_id, {
1803
- phone: value,
1804
- })
1805
- .then((tKey) => {
1806
- if (tKey) {
1807
- formRef.current.setFieldError(b.data.value, t(tKey));
1808
- }
1809
- else {
1810
- formRef.current.clearFieldError(b.data.value);
1811
- }
1812
- validatingPhoneRef.current = false;
1813
- })
1814
- .catch((e) => {
1815
- console.error(e);
1816
- formRef.current.setFieldError(b.data.value, e.message || 'Something went wrong');
1817
- validatingPhoneRef.current = false;
1818
- });
1819
- }
1820
- }, 200);
1821
- }, b) });
1822
- }
1823
- else if (b.name === 'DateBlock') {
1824
- return Object.assign(Object.assign({}, r), { [b.data.value]: withSharedCheck(b.data.value, (value) => {
1825
- if (value && isNaN(Date.parse(value))) {
1826
- return t('validator.date');
1827
- }
1828
- }, b) });
1829
- }
1830
- else if (b.name === 'TncBlock') {
1831
- return Object.assign(Object.assign({}, r), { [`TNC-` + b.id]: withSharedCheck('TNC-' + b.id, (value) => {
1832
- if (isRequired && !value) {
1833
- return t('validator.required');
1834
- }
1835
- }, b) });
1836
- }
1837
- else {
1838
- return Object.assign(Object.assign({}, r), { [b.data.value]: withSharedCheck(b.data.value, undefined, b) });
1839
- }
1840
- }, {});
1841
- }, [listBlockAdded.map((b) => b.name).join(',')]);
1842
- const form = useLeadForm({
1843
- validateInputOnChange: true,
1844
- clearInputErrorOnChange: true,
1845
- validate: validateObj,
1846
- initialValues,
1847
- });
1848
- const formRef = React.useRef(form);
1849
- formRef.current = form;
1850
- return { form, validateObj };
1851
- };
1852
-
1853
2833
  const SubtitleBlock = ({ children, align, }) => (React__default["default"].createElement("p", { className: `lead-modal__description ${'le-text-align-' + (align || '')} ${LEAD_CLASS}` }, children));
1854
2834
 
1855
2835
  const cssInputNotShrink = react.css `
@@ -2168,11 +3148,13 @@ const TextField = (props) => {
2168
3148
  const $focusEl = $textEl.item($textEl.length - 1);
2169
3149
  if ($focusEl) {
2170
3150
  $focusEl.focus();
2171
- $focusEl.scrollIntoView({
2172
- behavior: 'auto',
2173
- block: 'center',
2174
- inline: 'start',
2175
- });
3151
+ setTimeout(() => {
3152
+ $focusEl.scrollIntoView({
3153
+ behavior: 'auto',
3154
+ block: 'center',
3155
+ inline: 'start',
3156
+ });
3157
+ }, 100);
2176
3158
  }
2177
3159
  }, [shrink]);
2178
3160
  React.useEffect(() => {
@@ -2189,8 +3171,14 @@ const ChoiceField = (props) => {
2189
3171
  const TitleBlock = ({ children, align, }) => (React__default["default"].createElement("h2", { className: `lead-modal__title ${'le-text-align-' + (align || '')} ${LEAD_CLASS}` }, children));
2190
3172
 
2191
3173
  const LightboxFields = ({ listBlockAdded, popupId, locale, onClose, onOtherSubmit, }) => {
3174
+ const { t } = index.useTranslations();
2192
3175
  const form = useLeadFormContext();
2193
3176
  const formValues = form.values;
3177
+ const labelTuples = React.useMemo(() => {
3178
+ return ((index$7.ISO_FORMAT === null || index$7.ISO_FORMAT === void 0 ? void 0 : index$7.ISO_FORMAT[locale]) || index$7.ISO_FORMAT['vi-VN']).dateFormat
3179
+ .split('/')
3180
+ .map((key) => { var _a; return t((_a = index$9.COMMON_DATE_TRANSLATE_KEY === null || index$9.COMMON_DATE_TRANSLATE_KEY === void 0 ? void 0 : index$9.COMMON_DATE_TRANSLATE_KEY[key]) === null || _a === void 0 ? void 0 : _a.id); });
3181
+ }, [locale]);
2194
3182
  return (React__default["default"].createElement(React__default["default"].Fragment, null, listBlockAdded.map((b, index) => {
2195
3183
  var _a;
2196
3184
  const { name = '', data = {}, id } = b || {};
@@ -2240,13 +3228,11 @@ const LightboxFields = ({ listBlockAdded, popupId, locale, onClose, onOtherSubmi
2240
3228
  return (React__default["default"].createElement(TextField, { key: index, shrink: !!formValue, className: "lead-modal__form-control leadgen-form_field" },
2241
3229
  React__default["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)))));
2242
3230
  }
2243
- case 'DateBlock':
2244
- return (React__default["default"].createElement(TextField, { key: index, shrink: !!formValue, className: "lead-modal__form-control leadgen-form_field" },
2245
- React__default["default"].createElement(index$4.DatePicker, Object.assign({ clearable: true, withAsterisk: required, type: "default", name: value, placeholder: placeholder, label: placeholder, inputWrapperOrder: ['label', 'input', 'description', 'error'], inputContainer: (children) => {
2246
- return (React__default["default"].createElement(React__default["default"].Fragment, null,
2247
- children,
2248
- React__default["default"].createElement("input", { type: "hidden", "data-control": "date", name: value, value: formValue })));
2249
- } }, form.getInputProps(value)))));
3231
+ case 'DateBlock': {
3232
+ const _c = form.getInputProps(value), { error } = _c, formInputProps = tslib_es6.__rest(_c, ["error"]);
3233
+ return (React__default["default"].createElement(core.Input.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" },
3234
+ React__default["default"].createElement(InputDate.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))));
3235
+ }
2250
3236
  case 'LinkButtonBlock':
2251
3237
  return (React__default["default"].createElement("div", { key: index },
2252
3238
  React__default["default"].createElement("a", { target: newtab ? 'blank' : 'parrent', href: url, style: { textDecoration: 'none' } },
@@ -2289,7 +3275,7 @@ const LightboxFields = ({ listBlockAdded, popupId, locale, onClose, onOtherSubmi
2289
3275
  label: l.placeholder,
2290
3276
  })) }, form.getInputProps(value)))));
2291
3277
  case 'TncBlock':
2292
- const _c = form.getInputProps(`TNC-${id}`), { error } = _c, tncInputProps = tslib_es6.__rest(_c, ["error"]);
3278
+ const _d = form.getInputProps(`TNC-${id}`), { error } = _d, tncInputProps = tslib_es6.__rest(_d, ["error"]);
2293
3279
  return (React__default["default"].createElement(ChoiceField, { className: "leadgen-form_checkbox", key: id },
2294
3280
  React__default["default"].createElement(core.Input.Wrapper, { error: error },
2295
3281
  React__default["default"].createElement(index$2.Checkbox, Object.assign({ name: 'TNC-' + id, label: React__default["default"].createElement("p", { className: "lead-modal__tnc-link", dangerouslySetInnerHTML: { __html: data.valueHTML } }), className: "tnc-block", "data-control": "checkbox" }, tncInputProps)))));
@@ -2395,7 +3381,7 @@ const HeaderImage = ({ src, ratio = 3 / 2, className, style, }) => {
2395
3381
  if (!src) {
2396
3382
  return null;
2397
3383
  }
2398
- return (React__default["default"].createElement(StyleHeaderImage, { paddingTop: (1 / ratio) * 100, className: core.clsx(className, 'leadgen-header_image'), style: style }, index$7.isVideo(src) ? (React__default["default"].createElement("video", { muted: true, autoPlay: true, loop: true, className: "leadgen-header_image_feature leadgen-header_image_video", src: src })) : (React__default["default"].createElement("img", { src: src, draggable: "false", alt: "", className: "leadgen-header_image_feature leadgen-header_image_image" }))));
3384
+ return (React__default["default"].createElement(StyleHeaderImage, { paddingTop: (1 / ratio) * 100, className: core.clsx(className, 'leadgen-header_image'), style: style }, index$8.isVideo(src) ? (React__default["default"].createElement("video", { muted: true, autoPlay: true, loop: true, className: "leadgen-header_image_feature leadgen-header_image_video", src: src })) : (React__default["default"].createElement("img", { src: src, draggable: "false", alt: "", className: "leadgen-header_image_feature leadgen-header_image_image" }))));
2399
3385
  };
2400
3386
 
2401
3387
  const OtpBlock = ({ otpData, onSuccess, autoSendWhenOpen, }) => {
@@ -2539,7 +3525,7 @@ const LEADGEN_SHOW_HEADER = [
2539
3525
  LEADGEN_LAYOUT.Slider,
2540
3526
  ];
2541
3527
  const LightboxLayout = ({ popupId, extraFields, onClose: onCloseProp, onOtherSubmit, imageMobile, imageDesktop, imageOverlayMobile, imageOverlayDesktop, imageBackground, currentLayout, title, onSubmit, showThankyou, campaignId, campaign_subot_id, locale, showEmpty, setShowEmpty, userInfo, }) => {
2542
- var _a;
3528
+ var _a, _b;
2543
3529
  const { isMobile } = useScreenSize.useScreenSize();
2544
3530
  const [open, setOpen] = React.useState(!!campaignId);
2545
3531
  const [showOtpPhone, setShowOtpPhone] = React.useState(null);
@@ -2572,7 +3558,7 @@ const LightboxLayout = ({ popupId, extraFields, onClose: onCloseProp, onOtherSub
2572
3558
  const isDrawer = isLightBoxB && isMobile;
2573
3559
  const limitFieldsLightBoxB = isLightBoxB && listBlockAdded.length <= LEADGEN_LIMIT_LIGHTBOXB;
2574
3560
  const hasForm = isLightBoxA
2575
- ? listBlockAdded.some((item) => LEADGEN_BLOCK_IN_FORM.some((k) => k === (item === null || item === void 0 ? void 0 : item.name)))
3561
+ ? listBlockAdded.some((item) => LEADGEN_BLOCK_INPUT.some((k) => k === (item === null || item === void 0 ? void 0 : item.name)))
2576
3562
  : true;
2577
3563
  const headerInsideFormContainer = isSlider || isLightBoxA || isFullscreen;
2578
3564
  const showHeader = !!imageMobile || !!imageDesktop;
@@ -2601,7 +3587,16 @@ const LightboxLayout = ({ popupId, extraFields, onClose: onCloseProp, onOtherSub
2601
3587
  campaignId,
2602
3588
  campaign_subot_id,
2603
3589
  userInfo,
3590
+ format: (_a = (index$7.ISO_FORMAT[locale] || index$7.ISO_FORMAT['vi-VN'])) === null || _a === void 0 ? void 0 : _a.dateFormat,
2604
3591
  });
3592
+ const onFocus = (e) => {
3593
+ const target = e.target;
3594
+ target.scrollIntoView({
3595
+ block: 'center',
3596
+ inline: 'nearest',
3597
+ behavior: 'auto',
3598
+ });
3599
+ };
2605
3600
  const middlewareOnSubmit = (e) => {
2606
3601
  e.preventDefault();
2607
3602
  // mark all as touched to allow validation
@@ -2683,7 +3678,7 @@ const LightboxLayout = ({ popupId, extraFields, onClose: onCloseProp, onOtherSub
2683
3678
  const renderAfterImageSizes = imageMobileLoaded &&
2684
3679
  imageDesktopLoaded &&
2685
3680
  (isFullscreen ? imageBackgroundLoaded : true);
2686
- const ButtonSubmit = !((_a = actionBlocks === null || actionBlocks === void 0 ? void 0 : actionBlocks.submitBlock) === null || _a === void 0 ? void 0 : _a.isHide) && (React__default["default"].createElement(core.Button, { size: "lg", id: "lead-submit", type: "submit", variant: "filled", className: "leadgen-btn leadgen-btn_action", loading: isSubmitLoading }, popUpSubmitText));
3681
+ const ButtonSubmit = !((_b = actionBlocks === null || actionBlocks === void 0 ? void 0 : actionBlocks.submitBlock) === null || _b === void 0 ? void 0 : _b.isHide) && (React__default["default"].createElement(core.Button, { size: "lg", id: "lead-submit", type: "submit", variant: "filled", className: "leadgen-btn leadgen-btn_action", loading: isSubmitLoading }, popUpSubmitText));
2687
3682
  const LinkButtonBlock = listBlockAdded.filter(({ name }) => name == LEADGEN_BLOCK.LinkButtonBlock);
2688
3683
  const ButtonLink = !!(LinkButtonBlock === null || LinkButtonBlock === void 0 ? void 0 : LinkButtonBlock.length) && (React__default["default"].createElement(React__default["default"].Fragment, null, LinkButtonBlock.map((item, index) => {
2689
3684
  var _a, _b, _c;
@@ -2697,7 +3692,7 @@ const LightboxLayout = ({ popupId, extraFields, onClose: onCloseProp, onOtherSub
2697
3692
  React__default["default"].createElement(HeaderImage, { src: imageMobile, className: "le-only-mobile lead-modal__image" })))));
2698
3693
  const PopupEmpty = showEmpty && (React__default["default"].createElement(EmptyComponent, { onClose: onClose, onContinue: () => setShowEmpty(false) }));
2699
3694
  const PopupForm = (React__default["default"].createElement(LeadFormProvider, { form: form },
2700
- React__default["default"].createElement("form", { ref: formRef, className: "leadgen-form", onSubmit: middlewareOnSubmit },
3695
+ React__default["default"].createElement("form", { ref: formRef, className: "leadgen-form", onFocus: onFocus, onSubmit: middlewareOnSubmit },
2701
3696
  React__default["default"].createElement(FormContainer, { title: title, titleAlign: titleAlign, description: description, descriptionAlign: descriptionAlign, header: headerInsideFormContainer && PopupHeader, footer: hasForm ? ButtonSubmit : ButtonLink, "data-hidden-form": !hasForm },
2702
3697
  React__default["default"].createElement("div", { className: "leadgen-form_inner" },
2703
3698
  React__default["default"].createElement(LightboxFields, { listBlockAdded: listBlockAdded, popupId: popupId, locale: locale, onClose: onClose, onOtherSubmit: onOtherSubmit }))))));
@@ -2738,7 +3733,7 @@ const LightboxLayout = ({ popupId, extraFields, onClose: onCloseProp, onOtherSub
2738
3733
  'leadgen-inline': isInPage,
2739
3734
  'leadgen-slider': isSlider,
2740
3735
  });
2741
- const PopupContainer = isDrawer ? (React__default["default"].createElement(index$9.DrawerComponent, { fadeFromIndex: index$8.ZINDEX_SSO - 9e6, open: open, snapPoints: [0.8, 1], activeSnapPoint: snap, setActiveSnapPoint: setSnap, onOpenChange: onOpenChange, overlayClassName: popupContainerClassName, className: "leadgen-drawer" },
3736
+ const PopupContainer = isDrawer ? (React__default["default"].createElement(index$a.DrawerComponent, { fadeFromIndex: index$7.ZINDEX_SSO - 9e6, open: open, snapPoints: [0.8, 1], activeSnapPoint: snap, setActiveSnapPoint: setSnap, onOpenChange: onOpenChange, overlayClassName: popupContainerClassName, className: "leadgen-drawer" },
2742
3737
  PopupWrapper,
2743
3738
  React__default["default"].createElement("div", { style: { position: 'absolute', inset: 0, zIndex: snap === 1 ? -1 : 1 }, onClick: () => setSnap(1) }))) : (React__default["default"].createElement("div", { id: popupId, "data-popup-url": currentPath, "data-popup-type": "lightbox-inline", className: popupContainerClassName },
2744
3739
  isFullscreen ? (React__default["default"].createElement("img", { className: "le-only-desktop le-fullscreen-img", draggable: false, src: imageBackground || '', style: {
@@ -2801,7 +3796,7 @@ const SkinLayout = ({ popupId, link, linkText, linkNewTab, onClose, imageMobile,
2801
3796
  React__default["default"].createElement("aside", { className: "le-only-mobile" },
2802
3797
  React__default["default"].createElement("div", { className: "le-skin-mobile" },
2803
3798
  React__default["default"].createElement("div", { style: { position: 'relative' } },
2804
- index$7.isVideo(imageMobile) ? (React__default["default"].createElement("video", { muted: true, autoPlay: true, loop: true },
3799
+ index$8.isVideo(imageMobile) ? (React__default["default"].createElement("video", { muted: true, autoPlay: true, loop: true },
2805
3800
  React__default["default"].createElement("source", { src: imageMobile, type: "video/mp4" }))) : (React__default["default"].createElement("img", { src: imageMobile, style: {
2806
3801
  width: '100%',
2807
3802
  aspectRatio: `${imageMobileWidth}/${imageMobileHeight}`,
@@ -3598,7 +4593,7 @@ const _LeadGen = ({ apiUrl: apiUrlProp, siteDomain, siteId, locale, apiSubotUrl,
3598
4593
  }, [showCampaign]);
3599
4594
  return (React__default["default"].createElement(LeadGenContext.Provider, { value: { apiUrl, siteDomain, siteId, locale } },
3600
4595
  React__default["default"].createElement(translationsContext.TranslationsContext.Provider, { value: { locale, values: getTranslations(locale) } }, children ? (React__default["default"].createElement(Component, { campaign: showCampaign, onSubmit: onSubmit, onClose: onClose, showThankyou: showThankyou, setShowThankyou: setShowThankyou, locale: locale, showEmpty: showEmpty, setShowEmpty: setShowEmpty, userInfo: userInfo }, children)) : (React__default["default"].createElement(core.Portal, { target: utils$1.getPopupWrapperDom() },
3601
- React__default["default"].createElement(core.Box, { sx: { position: 'fixed', zIndex: index$8.ZINDEX_SSO - 9e6 } },
4596
+ React__default["default"].createElement(core.Box, { sx: { position: 'fixed', zIndex: index$7.ZINDEX_SSO - 9e6 } },
3602
4597
  React__default["default"].createElement(core.Transition, { mounted: Boolean(((_a = showCampaign === null || showCampaign === void 0 ? void 0 : showCampaign.extra_fields) === null || _a === void 0 ? void 0 : _a.popupVersion) === '2.1'), transition: "fade", duration: 600, timingFunction: "ease" }, (styles) => {
3603
4598
  var _a;
3604
4599
  return (React__default["default"].createElement(core.Box, { style: styles }, ((_a = showCampaign === null || showCampaign === void 0 ? void 0 : showCampaign.extra_fields) === null || _a === void 0 ? void 0 : _a.popupVersion) === '2.1' && (React__default["default"].createElement(React__default["default"].Fragment, null,
@@ -3617,3 +4612,4 @@ LeadGen.OtpForm = OtpBlock$1;
3617
4612
  LeadGen.Close = Close.Close;
3618
4613
 
3619
4614
  exports.LeadGen = LeadGen;
4615
+ exports.LeadGenSubscriptionBox = LeadGenSubscriptionBox;