@hhgtech/hhg-components 1.29.80 → 1.29.82

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 (370) hide show
  1. package/build/{index-1250dd06.js → WhatsApp-46f4f408.js} +24 -276
  2. package/build/adapters.js +17 -16
  3. package/build/atoms.js +102 -0
  4. package/build/babyGrowth.js +162 -164
  5. package/build/cache.js +3 -3
  6. package/build/care.js +17 -17
  7. package/build/components.js +181 -163
  8. package/build/{constants-ca71f9e5.js → constants-223c01fc.js} +2 -2
  9. package/build/{constants-4e7c419e.js → constants-8743b014.js} +0 -136
  10. package/build/constants-a78fa8b3.js +318 -0
  11. package/build/constants-f182fc32.js +425 -0
  12. package/build/constants.js +3 -3
  13. package/build/{core-bb2587e7.js → core-9d69a722.js} +2 -2
  14. package/build/{dataTransform-469b75eb.js → dataTransform-ded2692d.js} +1 -1
  15. package/build/{index-5d9ad07e.js → dataTransform-e39297c1.js} +3 -52
  16. package/build/defaultClassWrapper-b7719693.js +21 -0
  17. package/build/ecom.js +5 -5
  18. package/build/esm/WhatsApp-c599b715.js +46 -0
  19. package/build/esm/adapters.js +17 -16
  20. package/build/esm/atoms.js +59 -0
  21. package/build/esm/babyGrowth.js +87 -89
  22. package/build/esm/cache.js +3 -3
  23. package/build/esm/care.js +17 -17
  24. package/build/esm/components.js +91 -73
  25. package/build/esm/constants-a5827634.js +307 -0
  26. package/build/esm/{constants-7661ce64.js → constants-bb470362.js} +2 -2
  27. package/build/esm/{constants-508ba335.js → constants-f6b2e49d.js} +1 -127
  28. package/build/esm/constants-fa475b0f.js +417 -0
  29. package/build/esm/constants.js +3 -3
  30. package/build/esm/{core-5a22b83e.js → core-80bfe8b7.js} +2 -2
  31. package/build/esm/{dataTransform-f5db5afb.js → dataTransform-55f67eed.js} +1 -1
  32. package/build/esm/{index-9b54376f.js → dataTransform-623716c3.js} +5 -53
  33. package/build/esm/defaultClassWrapper-00903c00.js +15 -0
  34. package/build/esm/ecom.js +5 -5
  35. package/build/esm/fixedBottomAdBlock-60a5d48f.js +3474 -0
  36. package/build/esm/footer.js +18 -18
  37. package/build/esm/gAssets.js +4 -4
  38. package/build/esm/{getDynamicHealthTool-09fda8b3.js → getDynamicHealthTool-82855adc.js} +4 -4
  39. package/build/esm/{getSocialList-96301dbb.js → getSocialList-7d2cf48d.js} +5 -6
  40. package/build/esm/healthToolsForm.js +40 -0
  41. package/build/esm/healthToolsForms.d.ts +7 -0
  42. package/build/esm/hooks.js +17 -17
  43. package/build/esm/i18n.js +2 -2
  44. package/build/esm/i18nV2.js +2 -2
  45. package/build/esm/{index-da2b8f22.js → index-01405723.js} +12 -11
  46. package/build/esm/index-01b5d2e9.js +202 -0
  47. package/build/esm/index-02d3f05b.js +1681 -0
  48. package/build/esm/{index-82861dba.js → index-046778af.js} +2 -2
  49. package/build/esm/{index-df29c4e0.js → index-049e0270.js} +33 -5
  50. package/build/esm/index-07f3f47e.js +14 -0
  51. package/build/esm/index-0b745f46.js +1349 -0
  52. package/build/esm/{index-e68d4285.js → index-0ca9b175.js} +2 -2
  53. package/build/esm/{index-c4699d44.js → index-0cd3523c.js} +35 -176
  54. package/build/esm/index-0ee66974.js +95 -0
  55. package/build/esm/index-10ab6596.js +489 -0
  56. package/build/esm/{index-5773eb18.js → index-13d8dd4b.js} +6 -6
  57. package/build/esm/{index.styled-9e147e72.js → index-1c9b481b.js} +21 -3
  58. package/build/esm/index-1d3c6ce7.js +195 -0
  59. package/build/esm/{index-474e0ae5.js → index-21256394.js} +2 -13
  60. package/build/esm/{index-2d47a346.js → index-219e3a35.js} +11 -10
  61. package/build/esm/{index-679d5383.js → index-29908d2c.js} +1 -1
  62. package/build/esm/{utils-ff5d88a2.js → index-2dc7803d.js} +71 -105
  63. package/build/esm/{index-4dcdce19.js → index-5723381f.js} +2 -2
  64. package/build/esm/{index-c807ef87.js → index-6210f454.js} +3 -3
  65. package/build/esm/index-7a1ea734.js +100 -0
  66. package/build/esm/{index-53a86337.js → index-7c384ae6.js} +5 -5
  67. package/build/esm/index-8eb04f36.js +130 -0
  68. package/build/esm/index-8fcf671c.js +335 -0
  69. package/build/esm/{index-80f4d7df.js → index-9471fca1.js} +2 -2
  70. package/build/esm/{index-92eedeb0.js → index-9b3a8b6d.js} +12 -201
  71. package/build/esm/{index-3c7f109c.js → index-9b9c1499.js} +2 -2
  72. package/build/esm/index-9f99909b.js +54 -0
  73. package/build/esm/index-ac2a8f95.js +1114 -0
  74. package/build/esm/index-acf8b60e.js +42 -0
  75. package/build/esm/index-ad1c7c38.js +275 -0
  76. package/build/esm/{index-bcd13f1d.js → index-bcedec73.js} +13 -12
  77. package/build/esm/{index-ef855343.js → index-c013ba1b.js} +4 -4
  78. package/build/esm/index-c2584051.js +262 -0
  79. package/build/esm/{types-957334f2.js → index-c430773c.js} +559 -3519
  80. package/build/esm/index-cdc50618.js +25 -0
  81. package/build/esm/{index-77dddeb9.js → index-cfedca38.js} +2 -2
  82. package/build/esm/index-d6a5f5cf.js +557 -0
  83. package/build/esm/index-e0b0d6a2.js +847 -0
  84. package/build/esm/index-ea63e0d2.js +148 -0
  85. package/build/esm/{index-32e2b169.js → index-f22f6e6e.js} +65 -28
  86. package/build/esm/index-f4b938f2.js +18 -0
  87. package/build/esm/index-f660abb7.js +156 -0
  88. package/build/esm/index-fa67d66e.js +789 -0
  89. package/build/esm/index.js +98 -73
  90. package/build/esm/labelSorting-7351409a.js +47 -0
  91. package/build/esm/lead.js +23 -33
  92. package/build/esm/logoIcon-3a581efb.js +104 -0
  93. package/build/esm/mantine.js +22 -20
  94. package/build/esm/misc.js +21 -21
  95. package/build/esm/molecules.js +88 -0
  96. package/build/esm/navigation.js +37 -37
  97. package/build/esm/onboardingV2.js +26 -35
  98. package/build/esm/organisms.js +57 -0
  99. package/build/esm/pwg.js +19 -19
  100. package/build/esm/{routing-7bc3e320.js → routing-9e330438.js} +2 -2
  101. package/build/esm/subot.js +31 -27
  102. package/build/esm/surveyOrPremiumBanner.js +45 -0
  103. package/build/esm/surveyQuestionCard.js +13 -0
  104. package/build/esm/surveyThankyouCard-ec204631.js +446 -0
  105. package/build/esm/together.js +52 -45
  106. package/build/esm/togetherAtoms.js +41 -0
  107. package/build/esm/togetherComponentGlobalContext.js +12 -0
  108. package/build/esm/togetherMolecules.js +53 -0
  109. package/build/esm/togetherOrganisms.js +57 -0
  110. package/build/esm/treePopoverMenu-cb214db6.js +332 -0
  111. package/build/esm/types-721e7a66.js +5 -0
  112. package/build/esm/{types-ee1be1e3.js → types-ffcf5fb4.js} +13 -13
  113. package/build/esm/types.js +1 -1
  114. package/build/esm/{useCategory-7e020652.js → useCategory-553bee0b.js} +5 -5
  115. package/build/esm/{useHealthToolCache-c70e4fd5.js → useHealthToolCache-6ce1724e.js} +2 -2
  116. package/build/esm/{useMantineLocale-1373e175.js → useMantineLocale-453f8013.js} +3 -3
  117. package/build/esm/{usePlacesAutocomplete-4bfe976e.js → usePlacesAutocomplete-8925d4fb.js} +1 -1
  118. package/build/esm/useTogetherAuthRequiredAction.js +60 -0
  119. package/build/esm/{useTranslations-adad3b06.js → useTranslations-b970f667.js} +1 -1
  120. package/build/esm/{utils-dee27bfd.js → utils-3b29eb79.js} +8 -356
  121. package/build/esm/{utils-b14c10f9.js → utils-6d45bdd1.js} +1 -1
  122. package/build/esm/vaccination.js +18 -29
  123. package/build/fixedBottomAdBlock-0129a006.js +3521 -0
  124. package/build/footer.js +18 -18
  125. package/build/gAssets.js +4 -4
  126. package/build/{getDynamicHealthTool-357666f7.js → getDynamicHealthTool-f08b5fab.js} +4 -4
  127. package/build/{getSocialList-c1404aff.js → getSocialList-8cc32f7c.js} +8 -9
  128. package/build/healthToolsForm.js +54 -0
  129. package/build/healthToolsForms.d.ts +7 -0
  130. package/build/hooks.js +17 -17
  131. package/build/i18n.js +1 -1
  132. package/build/i18nV2.js +1 -1
  133. package/build/index-00a78d81.js +565 -0
  134. package/build/index-077bf48f.js +803 -0
  135. package/build/{index-bf6e5e4e.js → index-0b727664.js} +5 -5
  136. package/build/{index-917c975c.js → index-10760994.js} +37 -9
  137. package/build/index-130e0f35.js +1693 -0
  138. package/build/{index-82a3ba38.js → index-16ed0d98.js} +68 -33
  139. package/build/{index-040620f6.js → index-1e1d8eb1.js} +13 -12
  140. package/build/{index-e60c98f8.js → index-1fdf2f01.js} +2 -2
  141. package/build/{index-61ef343d.js → index-206afefb.js} +4 -4
  142. package/build/{types-c8956642.js → index-2afbeb3d.js} +761 -3727
  143. package/build/{index.styled-8aca5145.js → index-2fd9063e.js} +22 -4
  144. package/build/index-33432b02.js +270 -0
  145. package/build/index-3eb666e6.js +202 -0
  146. package/build/{index-94a2b0f9.js → index-405faafa.js} +2 -2
  147. package/build/index-4357a324.js +136 -0
  148. package/build/index-466a2c32.js +1362 -0
  149. package/build/index-4b7d4b5b.js +156 -0
  150. package/build/{index-5029b5d8.js → index-4bc690c9.js} +1 -1
  151. package/build/index-4cdcdbbe.js +498 -0
  152. package/build/index-53e14542.js +102 -0
  153. package/build/{index-91027d35.js → index-54aeefca.js} +2 -2
  154. package/build/index-60f6d762.js +1127 -0
  155. package/build/{index-858f60e0.js → index-64d8db08.js} +2 -2
  156. package/build/index-6aeb5ff5.js +866 -0
  157. package/build/index-71843eb4.js +61 -0
  158. package/build/index-765ed75d.js +209 -0
  159. package/build/index-7953fb8e.js +167 -0
  160. package/build/{index-d710511f.js → index-7ecc69af.js} +12 -11
  161. package/build/index-82c85f9d.js +277 -0
  162. package/build/index-9e8877c0.js +25 -0
  163. package/build/index-a2664204.js +107 -0
  164. package/build/{index-c67602d7.js → index-a6a9855f.js} +1 -13
  165. package/build/index-a8680a58.js +49 -0
  166. package/build/{index-ed587907.js → index-a9bbb5aa.js} +11 -10
  167. package/build/{utils-263a60f7.js → index-a9bdf889.js} +76 -120
  168. package/build/{index-f0a532c7.js → index-b66ae554.js} +6 -6
  169. package/build/index-ca616373.js +20 -0
  170. package/build/{index-b0414701.js → index-d9919cd2.js} +57 -200
  171. package/build/index-dd074159.js +32 -0
  172. package/build/{index-94fd9ea6.js → index-dff7ee1b.js} +32 -222
  173. package/build/{index-3a03bb34.js → index-e3bbd009.js} +2 -2
  174. package/build/index-ec34e358.js +343 -0
  175. package/build/{index-8c826f3e.js → index-f222ee45.js} +2 -2
  176. package/build/{index-2b32b21e.js → index-fd3e1d16.js} +2 -2
  177. package/build/index.js +251 -226
  178. package/build/labelSorting-f86081b7.js +53 -0
  179. package/build/lead.js +29 -39
  180. package/build/logoIcon-21a16853.js +110 -0
  181. package/build/mantine.js +24 -23
  182. package/build/misc.js +21 -21
  183. package/build/molecules.js +149 -0
  184. package/build/navigation.js +37 -37
  185. package/build/onboardingV2.js +45 -54
  186. package/build/organisms.js +74 -0
  187. package/build/pwg.js +19 -19
  188. package/build/{routing-bc8197d8.js → routing-d6c9099a.js} +2 -2
  189. package/build/subot.js +115 -111
  190. package/build/surveyOrPremiumBanner.js +53 -0
  191. package/build/surveyQuestionCard.js +22 -0
  192. package/build/surveyThankyouCard-5b23b8f6.js +454 -0
  193. package/build/together.js +100 -93
  194. package/build/togetherAtoms.js +55 -0
  195. package/build/togetherComponentGlobalContext.js +26 -0
  196. package/build/togetherMolecules.js +86 -0
  197. package/build/togetherOrganisms.js +71 -0
  198. package/build/treePopoverMenu-c0cb395f.js +343 -0
  199. package/build/{types-6996fb20.js → types-8d9c5f21.js} +13 -13
  200. package/build/types-b25ffde0.js +7 -0
  201. package/build/types.js +1 -1
  202. package/build/{useCategory-7d1f8a7d.js → useCategory-b695fd3a.js} +5 -5
  203. package/build/{useHealthToolCache-b7dea4aa.js → useHealthToolCache-048807ea.js} +2 -2
  204. package/build/{useMantineLocale-b243f628.js → useMantineLocale-0d63dfea.js} +3 -3
  205. package/build/{usePlacesAutocomplete-08b86d2d.js → usePlacesAutocomplete-9520e525.js} +1 -1
  206. package/build/useTogetherAuthRequiredAction.js +70 -0
  207. package/build/{useTranslations-d5456a98.js → useTranslations-685f989b.js} +1 -1
  208. package/build/{utils-9f62698f.js → utils-169c6a7d.js} +16 -375
  209. package/build/{utils-d421a448.js → utils-1a00c0f8.js} +1 -1
  210. package/build/vaccination.js +58 -69
  211. package/package.json +1 -1
  212. package/build/Instagram-91ba1e26.js +0 -32
  213. package/build/esm/Instagram-319a8e34.js +0 -26
  214. package/build/esm/index-13bf84f4.js +0 -298
  215. package/build/esm/index-1a3f36c3.js +0 -1086
  216. package/build/esm/index-800b956a.js +0 -7245
  217. package/build/esm/index-aebf96f3.js +0 -33
  218. package/build/esm/index-d48b5db6.js +0 -71
  219. package/build/esm/index-d5b66388.js +0 -23
  220. package/build/esm/index.styles-0ef0135c.js +0 -1322
  221. package/build/index-0523771b.js +0 -7324
  222. package/build/index-20ebc0bd.js +0 -30
  223. package/build/index-dbf560f2.js +0 -1100
  224. package/build/index-efcbac97.js +0 -39
  225. package/build/index-f5103542.js +0 -77
  226. package/build/index.styles-2bdfde5f.js +0 -1361
  227. /package/build/{BMI_BOYS.percentile.monthly-c38ce03a.js → BMI_BOYS.percentile.monthly-1aa95e30.js} +0 -0
  228. /package/build/{BMI_BOYS.percentile.weekly-1eccee42.js → BMI_BOYS.percentile.weekly-61d78e1c.js} +0 -0
  229. /package/build/{BMI_BOYS.percentile.yearly-0e7d5cb6.js → BMI_BOYS.percentile.yearly-f80e040e.js} +0 -0
  230. /package/build/{BMI_BOYS.zscore.monthly-f72f392f.js → BMI_BOYS.zscore.monthly-a6c7c8ff.js} +0 -0
  231. /package/build/{BMI_BOYS.zscore.weekly-94fd04e6.js → BMI_BOYS.zscore.weekly-742f7028.js} +0 -0
  232. /package/build/{BMI_BOYS.zscore.yearly-90d5e091.js → BMI_BOYS.zscore.yearly-c19cccd5.js} +0 -0
  233. /package/build/{BMI_GIRLS.percentile.monthly-de3a9a14.js → BMI_GIRLS.percentile.monthly-089d3981.js} +0 -0
  234. /package/build/{BMI_GIRLS.percentile.weekly-1e1ce2b7.js → BMI_GIRLS.percentile.weekly-0cc52cda.js} +0 -0
  235. /package/build/{BMI_GIRLS.percentile.yearly-70a44f31.js → BMI_GIRLS.percentile.yearly-10bc603f.js} +0 -0
  236. /package/build/{BMI_GIRLS.zscore.monthly-be4399a5.js → BMI_GIRLS.zscore.monthly-c3fe57f3.js} +0 -0
  237. /package/build/{BMI_GIRLS.zscore.weekly-6121376b.js → BMI_GIRLS.zscore.weekly-b83a54db.js} +0 -0
  238. /package/build/{BMI_GIRLS.zscore.yearly-822e7686.js → BMI_GIRLS.zscore.yearly-5f13cda2.js} +0 -0
  239. /package/build/{ChevronDown-f9d31306.js → ChevronDown-2fd86d66.js} +0 -0
  240. /package/build/{Close-27e0dcf1.js → Close-711196b0.js} +0 -0
  241. /package/build/{HEAD CIRCUM_BOYS.percentile.monthly-5e094c3e.js → HEAD CIRCUM_BOYS.percentile.monthly-03b8d7fb.js} +0 -0
  242. /package/build/{HEAD CIRCUM_BOYS.percentile.weekly-24f827d8.js → HEAD CIRCUM_BOYS.percentile.weekly-9ebd3eb6.js} +0 -0
  243. /package/build/{HEAD CIRCUM_BOYS.percentile.yearly-d7478410.js → HEAD CIRCUM_BOYS.percentile.yearly-8e97b738.js} +0 -0
  244. /package/build/{HEAD CIRCUM_BOYS.zscore.monthly-1123cad6.js → HEAD CIRCUM_BOYS.zscore.monthly-e7892261.js} +0 -0
  245. /package/build/{HEAD CIRCUM_BOYS.zscore.weekly-a5b55615.js → HEAD CIRCUM_BOYS.zscore.weekly-47c5af84.js} +0 -0
  246. /package/build/{HEAD CIRCUM_BOYS.zscore.yearly-0d818764.js → HEAD CIRCUM_BOYS.zscore.yearly-9a1bc325.js} +0 -0
  247. /package/build/{HEAD CIRCUM_GIRLS.percentile.monthly-dddf5ad9.js → HEAD CIRCUM_GIRLS.percentile.monthly-d84491d7.js} +0 -0
  248. /package/build/{HEAD CIRCUM_GIRLS.percentile.weekly-a80d6989.js → HEAD CIRCUM_GIRLS.percentile.weekly-a6f38c3e.js} +0 -0
  249. /package/build/{HEAD CIRCUM_GIRLS.percentile.yearly-01850b67.js → HEAD CIRCUM_GIRLS.percentile.yearly-5771d277.js} +0 -0
  250. /package/build/{HEAD CIRCUM_GIRLS.zscore.monthly-82890053.js → HEAD CIRCUM_GIRLS.zscore.monthly-e3633bcc.js} +0 -0
  251. /package/build/{HEAD CIRCUM_GIRLS.zscore.weekly-069f8c8f.js → HEAD CIRCUM_GIRLS.zscore.weekly-23b0ab1a.js} +0 -0
  252. /package/build/{HEAD CIRCUM_GIRLS.zscore.yearly-ae5ef237.js → HEAD CIRCUM_GIRLS.zscore.yearly-20f29cf1.js} +0 -0
  253. /package/build/{HEIGHT_BOYS.percentile.monthly-d0da1664.js → HEIGHT_BOYS.percentile.monthly-57cc12ee.js} +0 -0
  254. /package/build/{HEIGHT_BOYS.percentile.weekly-55446b8a.js → HEIGHT_BOYS.percentile.weekly-c788506a.js} +0 -0
  255. /package/build/{HEIGHT_BOYS.percentile.yearly-f2f5b19f.js → HEIGHT_BOYS.percentile.yearly-ac56c1f2.js} +0 -0
  256. /package/build/{HEIGHT_BOYS.zscore.monthly-e6ed98ef.js → HEIGHT_BOYS.zscore.monthly-1bb78253.js} +0 -0
  257. /package/build/{HEIGHT_BOYS.zscore.weekly-d0d37479.js → HEIGHT_BOYS.zscore.weekly-22737c43.js} +0 -0
  258. /package/build/{HEIGHT_BOYS.zscore.yearly-4023b808.js → HEIGHT_BOYS.zscore.yearly-90f6cd0a.js} +0 -0
  259. /package/build/{HEIGHT_GIRLS.percentile.monthly-6d9aeadc.js → HEIGHT_GIRLS.percentile.monthly-019f80d2.js} +0 -0
  260. /package/build/{HEIGHT_GIRLS.percentile.weekly-2087c9b4.js → HEIGHT_GIRLS.percentile.weekly-ceed9817.js} +0 -0
  261. /package/build/{HEIGHT_GIRLS.percentile.yearly-f98d8b05.js → HEIGHT_GIRLS.percentile.yearly-3e5192ac.js} +0 -0
  262. /package/build/{HEIGHT_GIRLS.zscore.monthly-99d299e3.js → HEIGHT_GIRLS.zscore.monthly-f8fca0b6.js} +0 -0
  263. /package/build/{HEIGHT_GIRLS.zscore.weekly-c46ed349.js → HEIGHT_GIRLS.zscore.weekly-827b17e8.js} +0 -0
  264. /package/build/{HEIGHT_GIRLS.zscore.yearly-fddefca4.js → HEIGHT_GIRLS.zscore.yearly-3cdb483d.js} +0 -0
  265. /package/build/{Visible-01dfaec9.js → Visible-515a4eec.js} +0 -0
  266. /package/build/{WEIGHT_BOYS.percentile.monthly-cead8ece.js → WEIGHT_BOYS.percentile.monthly-2ecbd498.js} +0 -0
  267. /package/build/{WEIGHT_BOYS.percentile.weekly-a97fa31a.js → WEIGHT_BOYS.percentile.weekly-75c9c25c.js} +0 -0
  268. /package/build/{WEIGHT_BOYS.percentile.yearly-c2c41945.js → WEIGHT_BOYS.percentile.yearly-03e7cea6.js} +0 -0
  269. /package/build/{WEIGHT_BOYS.zscore.monthly-d8de7dc2.js → WEIGHT_BOYS.zscore.monthly-2ff9fb56.js} +0 -0
  270. /package/build/{WEIGHT_BOYS.zscore.weekly-41a6f6bf.js → WEIGHT_BOYS.zscore.weekly-e9f7fe2d.js} +0 -0
  271. /package/build/{WEIGHT_BOYS.zscore.yearly-5762fa8a.js → WEIGHT_BOYS.zscore.yearly-4a96f34f.js} +0 -0
  272. /package/build/{WEIGHT_GIRLS.percentile.monthly-526fb18a.js → WEIGHT_GIRLS.percentile.monthly-5bf09e30.js} +0 -0
  273. /package/build/{WEIGHT_GIRLS.percentile.weekly-6c63ed2b.js → WEIGHT_GIRLS.percentile.weekly-f737ae23.js} +0 -0
  274. /package/build/{WEIGHT_GIRLS.percentile.yearly-0ecdbd3a.js → WEIGHT_GIRLS.percentile.yearly-56ebc8eb.js} +0 -0
  275. /package/build/{WEIGHT_GIRLS.zscore.monthly-0c353536.js → WEIGHT_GIRLS.zscore.monthly-4697d3b5.js} +0 -0
  276. /package/build/{WEIGHT_GIRLS.zscore.weekly-97898ff6.js → WEIGHT_GIRLS.zscore.weekly-3633820e.js} +0 -0
  277. /package/build/{WEIGHT_GIRLS.zscore.yearly-cbebe807.js → WEIGHT_GIRLS.zscore.yearly-a9a04790.js} +0 -0
  278. /package/build/{animation-8605b5bb.js → animation-85d012ee.js} +0 -0
  279. /package/build/{cart-ab5762b8.js → cart-8877bd63.js} +0 -0
  280. /package/build/{cookieHelper-b2132ffc.js → cookieHelper-86ae022e.js} +0 -0
  281. /package/build/{doctor-f121fd79.js → doctor-2c14fed1.js} +0 -0
  282. /package/build/esm/{BMI_BOYS.percentile.monthly-e507536d.js → BMI_BOYS.percentile.monthly-42ff2c64.js} +0 -0
  283. /package/build/esm/{BMI_BOYS.percentile.weekly-3cbf7392.js → BMI_BOYS.percentile.weekly-b4a6c521.js} +0 -0
  284. /package/build/esm/{BMI_BOYS.percentile.yearly-c7d54bc3.js → BMI_BOYS.percentile.yearly-d3bc1a77.js} +0 -0
  285. /package/build/esm/{BMI_BOYS.zscore.monthly-4d09aca0.js → BMI_BOYS.zscore.monthly-c4506dfa.js} +0 -0
  286. /package/build/esm/{BMI_BOYS.zscore.weekly-319b78c5.js → BMI_BOYS.zscore.weekly-ddf3b3f9.js} +0 -0
  287. /package/build/esm/{BMI_BOYS.zscore.yearly-764732c5.js → BMI_BOYS.zscore.yearly-e0e3139e.js} +0 -0
  288. /package/build/esm/{BMI_GIRLS.percentile.monthly-5a8e4069.js → BMI_GIRLS.percentile.monthly-96686bcc.js} +0 -0
  289. /package/build/esm/{BMI_GIRLS.percentile.weekly-a2fe6df1.js → BMI_GIRLS.percentile.weekly-c3106a65.js} +0 -0
  290. /package/build/esm/{BMI_GIRLS.percentile.yearly-810fe911.js → BMI_GIRLS.percentile.yearly-b38c1f1f.js} +0 -0
  291. /package/build/esm/{BMI_GIRLS.zscore.monthly-afab03b0.js → BMI_GIRLS.zscore.monthly-f8a7836f.js} +0 -0
  292. /package/build/esm/{BMI_GIRLS.zscore.weekly-8f4e7198.js → BMI_GIRLS.zscore.weekly-4c1fc771.js} +0 -0
  293. /package/build/esm/{BMI_GIRLS.zscore.yearly-7f043621.js → BMI_GIRLS.zscore.yearly-dce5e66a.js} +0 -0
  294. /package/build/esm/{ChevronDown-d24fd24b.js → ChevronDown-31ea3e19.js} +0 -0
  295. /package/build/esm/{Close-6243d246.js → Close-40d598bc.js} +0 -0
  296. /package/build/esm/{HEAD CIRCUM_BOYS.percentile.monthly-91c12176.js → HEAD CIRCUM_BOYS.percentile.monthly-34e3fa1c.js} +0 -0
  297. /package/build/esm/{HEAD CIRCUM_BOYS.percentile.weekly-40e77c68.js → HEAD CIRCUM_BOYS.percentile.weekly-d3f3568f.js} +0 -0
  298. /package/build/esm/{HEAD CIRCUM_BOYS.percentile.yearly-1a284ec4.js → HEAD CIRCUM_BOYS.percentile.yearly-dfae3ad2.js} +0 -0
  299. /package/build/esm/{HEAD CIRCUM_BOYS.zscore.monthly-16f716a6.js → HEAD CIRCUM_BOYS.zscore.monthly-95840c2f.js} +0 -0
  300. /package/build/esm/{HEAD CIRCUM_BOYS.zscore.weekly-07d20112.js → HEAD CIRCUM_BOYS.zscore.weekly-8b198c1c.js} +0 -0
  301. /package/build/esm/{HEAD CIRCUM_BOYS.zscore.yearly-1201a10a.js → HEAD CIRCUM_BOYS.zscore.yearly-b7d639ad.js} +0 -0
  302. /package/build/esm/{HEAD CIRCUM_GIRLS.percentile.monthly-a6348baf.js → HEAD CIRCUM_GIRLS.percentile.monthly-47caa070.js} +0 -0
  303. /package/build/esm/{HEAD CIRCUM_GIRLS.percentile.weekly-af26363f.js → HEAD CIRCUM_GIRLS.percentile.weekly-bae46665.js} +0 -0
  304. /package/build/esm/{HEAD CIRCUM_GIRLS.percentile.yearly-e7637928.js → HEAD CIRCUM_GIRLS.percentile.yearly-81989cdd.js} +0 -0
  305. /package/build/esm/{HEAD CIRCUM_GIRLS.zscore.monthly-9be0e0ca.js → HEAD CIRCUM_GIRLS.zscore.monthly-f2f7d985.js} +0 -0
  306. /package/build/esm/{HEAD CIRCUM_GIRLS.zscore.weekly-3ffe9dcd.js → HEAD CIRCUM_GIRLS.zscore.weekly-e287ddb7.js} +0 -0
  307. /package/build/esm/{HEAD CIRCUM_GIRLS.zscore.yearly-d7226db1.js → HEAD CIRCUM_GIRLS.zscore.yearly-8790b62a.js} +0 -0
  308. /package/build/esm/{HEIGHT_BOYS.percentile.monthly-c2e21892.js → HEIGHT_BOYS.percentile.monthly-5d2b6466.js} +0 -0
  309. /package/build/esm/{HEIGHT_BOYS.percentile.weekly-22018f1e.js → HEIGHT_BOYS.percentile.weekly-a38ad13e.js} +0 -0
  310. /package/build/esm/{HEIGHT_BOYS.percentile.yearly-391cd377.js → HEIGHT_BOYS.percentile.yearly-e4841712.js} +0 -0
  311. /package/build/esm/{HEIGHT_BOYS.zscore.monthly-e11f50f4.js → HEIGHT_BOYS.zscore.monthly-d8e722f8.js} +0 -0
  312. /package/build/esm/{HEIGHT_BOYS.zscore.weekly-8e2c8306.js → HEIGHT_BOYS.zscore.weekly-a92ea3ca.js} +0 -0
  313. /package/build/esm/{HEIGHT_BOYS.zscore.yearly-78e974bb.js → HEIGHT_BOYS.zscore.yearly-3af1adce.js} +0 -0
  314. /package/build/esm/{HEIGHT_GIRLS.percentile.monthly-0a49ff89.js → HEIGHT_GIRLS.percentile.monthly-c5203801.js} +0 -0
  315. /package/build/esm/{HEIGHT_GIRLS.percentile.weekly-5e158a8e.js → HEIGHT_GIRLS.percentile.weekly-4c25d07f.js} +0 -0
  316. /package/build/esm/{HEIGHT_GIRLS.percentile.yearly-f5544ab2.js → HEIGHT_GIRLS.percentile.yearly-f91e2e27.js} +0 -0
  317. /package/build/esm/{HEIGHT_GIRLS.zscore.monthly-92f67ec2.js → HEIGHT_GIRLS.zscore.monthly-b2a60aca.js} +0 -0
  318. /package/build/esm/{HEIGHT_GIRLS.zscore.weekly-f5d11f32.js → HEIGHT_GIRLS.zscore.weekly-0a98c520.js} +0 -0
  319. /package/build/esm/{HEIGHT_GIRLS.zscore.yearly-4fe6aad9.js → HEIGHT_GIRLS.zscore.yearly-8070d58f.js} +0 -0
  320. /package/build/esm/{Visible-7f408f98.js → Visible-e3e4fb6f.js} +0 -0
  321. /package/build/esm/{WEIGHT_BOYS.percentile.monthly-b09ae73a.js → WEIGHT_BOYS.percentile.monthly-b262b97d.js} +0 -0
  322. /package/build/esm/{WEIGHT_BOYS.percentile.weekly-733a24a9.js → WEIGHT_BOYS.percentile.weekly-7e817f9f.js} +0 -0
  323. /package/build/esm/{WEIGHT_BOYS.percentile.yearly-2bfcfc93.js → WEIGHT_BOYS.percentile.yearly-b7f1786a.js} +0 -0
  324. /package/build/esm/{WEIGHT_BOYS.zscore.monthly-c0d3a746.js → WEIGHT_BOYS.zscore.monthly-014af835.js} +0 -0
  325. /package/build/esm/{WEIGHT_BOYS.zscore.weekly-b41ff498.js → WEIGHT_BOYS.zscore.weekly-4577f724.js} +0 -0
  326. /package/build/esm/{WEIGHT_BOYS.zscore.yearly-15bb7570.js → WEIGHT_BOYS.zscore.yearly-08fd3f13.js} +0 -0
  327. /package/build/esm/{WEIGHT_GIRLS.percentile.monthly-5b79dea8.js → WEIGHT_GIRLS.percentile.monthly-a6e1aa0d.js} +0 -0
  328. /package/build/esm/{WEIGHT_GIRLS.percentile.weekly-33052637.js → WEIGHT_GIRLS.percentile.weekly-4c0b6f94.js} +0 -0
  329. /package/build/esm/{WEIGHT_GIRLS.percentile.yearly-64382b53.js → WEIGHT_GIRLS.percentile.yearly-bf689a3a.js} +0 -0
  330. /package/build/esm/{WEIGHT_GIRLS.zscore.monthly-63f19584.js → WEIGHT_GIRLS.zscore.monthly-f82fc3c8.js} +0 -0
  331. /package/build/esm/{WEIGHT_GIRLS.zscore.weekly-938ebce2.js → WEIGHT_GIRLS.zscore.weekly-854ce987.js} +0 -0
  332. /package/build/esm/{WEIGHT_GIRLS.zscore.yearly-016e1cfc.js → WEIGHT_GIRLS.zscore.yearly-2a3b869a.js} +0 -0
  333. /package/build/esm/{animation-bf170ee9.js → animation-85d9a0ed.js} +0 -0
  334. /package/build/esm/{cart-5bdb4fa5.js → cart-1ac23ce7.js} +0 -0
  335. /package/build/esm/{cookieHelper-ff6c13b4.js → cookieHelper-6c3b4790.js} +0 -0
  336. /package/build/esm/{doctor-f4cadffb.js → doctor-e0c2476d.js} +0 -0
  337. /package/build/esm/{index-eeedf0f0.js → index-189d7601.js} +0 -0
  338. /package/build/esm/{index-b87433a0.js → index-21bca818.js} +0 -0
  339. /package/build/esm/{index-6c0f560b.js → index-266a32ff.js} +0 -0
  340. /package/build/esm/{index-528e64f4.js → index-8684181f.js} +0 -0
  341. /package/build/esm/{isProduction-2838b9ae.js → isProduction-1937d355.js} +0 -0
  342. /package/build/esm/{localizeNumberFormat-9303c122.js → localizeNumberFormat-1f000110.js} +0 -0
  343. /package/build/esm/{normalizeLink-38ab69f4.js → normalizeLink-7a93ebb9.js} +0 -0
  344. /package/build/esm/{number-fcae69c7.js → number-1d1ba14a.js} +0 -0
  345. /package/build/esm/{paths-d1c61fa8.js → paths-b83be1a0.js} +0 -0
  346. /package/build/esm/{theme-0af1cc3d.js → theme-7dadf4a1.js} +0 -0
  347. /package/build/esm/{translationsContext-036458b7.js → translationsContext-42a1fa63.js} +0 -0
  348. /package/build/esm/{tslib.es6-2673b49d.js → tslib.es6-06ba3978.js} +0 -0
  349. /package/build/esm/{useIsInit-2c5ff93d.js → useIsInit-f4dec279.js} +0 -0
  350. /package/build/esm/{useOutsideClick-7023de23.js → useOutsideClick-210c1134.js} +0 -0
  351. /package/build/esm/{useScrollbarSize-dfdab229.js → useScrollbarSize-909ae7ec.js} +0 -0
  352. /package/build/esm/{useUniqueId-d4b0bdd3.js → useUniqueId-5885911d.js} +0 -0
  353. /package/build/esm/{utils-511a24f4.js → utils-d7bbdb52.js} +0 -0
  354. /package/build/{index-18ddaa1b.js → index-1f3fc2e3.js} +0 -0
  355. /package/build/{index-5c400e5e.js → index-2de1eb4a.js} +0 -0
  356. /package/build/{index-bced434a.js → index-6fdcd09d.js} +0 -0
  357. /package/build/{index-c524c362.js → index-bc9e8eae.js} +0 -0
  358. /package/build/{isProduction-2e55aee3.js → isProduction-20cd663d.js} +0 -0
  359. /package/build/{localizeNumberFormat-2befc6e4.js → localizeNumberFormat-7ff6bd3a.js} +0 -0
  360. /package/build/{normalizeLink-0fd36e61.js → normalizeLink-d307f624.js} +0 -0
  361. /package/build/{number-92da0262.js → number-dddf656c.js} +0 -0
  362. /package/build/{paths-350514c4.js → paths-7da79c64.js} +0 -0
  363. /package/build/{theme-f410baf6.js → theme-be20929b.js} +0 -0
  364. /package/build/{translationsContext-11cafcfc.js → translationsContext-00fdb62e.js} +0 -0
  365. /package/build/{tslib.es6-4bc45883.js → tslib.es6-bd3f8718.js} +0 -0
  366. /package/build/{useIsInit-0f6d1879.js → useIsInit-e06b96f5.js} +0 -0
  367. /package/build/{useOutsideClick-e067cc79.js → useOutsideClick-d95a32b6.js} +0 -0
  368. /package/build/{useScrollbarSize-ed50b4a6.js → useScrollbarSize-1499b1c3.js} +0 -0
  369. /package/build/{useUniqueId-4ce69bff.js → useUniqueId-1af8848e.js} +0 -0
  370. /package/build/{utils-4849d92a.js → utils-15a9772e.js} +0 -0
@@ -0,0 +1,3521 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var other = require('@hhgtech/icons/other');
5
+ var index$4 = require('./index-64d8db08.js');
6
+ var index$2 = require('./index-1fdf2f01.js');
7
+ var index$3 = require('./index-54aeefca.js');
8
+ var theme = require('./theme-be20929b.js');
9
+ var tslib_es6 = require('./tslib.es6-bd3f8718.js');
10
+ var core = require('@mantine/core');
11
+ var innertext = require('innertext');
12
+ var index$5 = require('./index-dff7ee1b.js');
13
+ require('@mantine/dates');
14
+ var index$9 = require('./index-e3bbd009.js');
15
+ var index$g = require('./index-1f3fc2e3.js');
16
+ require('./useMantineLocale-0d63dfea.js');
17
+ require('./index-3eb666e6.js');
18
+ require('./translationsContext-00fdb62e.js');
19
+ require('string-format');
20
+ require('@mantine/hooks');
21
+ var utils = require('./utils-15a9772e.js');
22
+ var index$6 = require('./index-4b7d4b5b.js');
23
+ var styled = require('@emotion/styled');
24
+ var index$7 = require('./index-33432b02.js');
25
+ var throttle = require('lodash/throttle');
26
+ var index$8 = require('./index-a9bdf889.js');
27
+ var react = require('@emotion/react');
28
+ var parse = require('html-react-parser');
29
+ var isProduction = require('./isProduction-20cd663d.js');
30
+ var useTranslations = require('./useTranslations-685f989b.js');
31
+ var index$a = require('./index-60f6d762.js');
32
+ var index$b = require('./index-00a78d81.js');
33
+ var dataTransform = require('./dataTransform-e39297c1.js');
34
+ var defaultClassWrapper = require('./defaultClassWrapper-b7719693.js');
35
+ var dateFns = require('date-fns');
36
+ var useOutsideClick = require('./useOutsideClick-d95a32b6.js');
37
+ var enUS = require('date-fns/locale/en-US');
38
+ var id = require('date-fns/locale/id');
39
+ var vi = require('date-fns/locale/vi');
40
+ var zhTW = require('date-fns/locale/zh-TW');
41
+ var index$c = require('./index-f222ee45.js');
42
+ var index$d = require('./index-4bc690c9.js');
43
+ var getSocialList = require('./getSocialList-8cc32f7c.js');
44
+ var index$f = require('./index-7953fb8e.js');
45
+ var index$e = require('./index-765ed75d.js');
46
+ var uuid = require('uuid');
47
+
48
+ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
49
+
50
+ var React__default = /*#__PURE__*/_interopDefault(React);
51
+ var innertext__default = /*#__PURE__*/_interopDefault(innertext);
52
+ var styled__default = /*#__PURE__*/_interopDefault(styled);
53
+ var throttle__default = /*#__PURE__*/_interopDefault(throttle);
54
+ var parse__default = /*#__PURE__*/_interopDefault(parse);
55
+ var enUS__default = /*#__PURE__*/_interopDefault(enUS);
56
+ var id__default = /*#__PURE__*/_interopDefault(id);
57
+ var vi__default = /*#__PURE__*/_interopDefault(vi);
58
+ var zhTW__default = /*#__PURE__*/_interopDefault(zhTW);
59
+
60
+ var styles$1 = {"expertName":"PiqKaXk","anchor":"HgbW6-m","card":"_6lkfLYy","author":"j7c-onH","pointer":"wwI1--d"};
61
+
62
+ const CardAuthor = ({ avatarImg, authorName, authorLink, uploadTime, size, }) => {
63
+ return (React__default["default"].createElement("div", { className: styles$1.author },
64
+ React__default["default"].createElement("div", { className: "author" },
65
+ React__default["default"].createElement("div", { className: "avatar", "data-size": size }, avatarImg),
66
+ React__default["default"].createElement("div", { className: "poster", "data-is-disabled-url": !!!authorLink },
67
+ React__default["default"].createElement(index$2.Text, { size: size === 'lg' ? 'p3' : 'p4' },
68
+ React__default["default"].createElement("a", { href: authorLink },
69
+ React__default["default"].createElement("span", { className: "name" }, authorName),
70
+ "\u2022",
71
+ ' '),
72
+ React__default["default"].createElement("span", null, uploadTime))))));
73
+ };
74
+
75
+ const CardExpert = ({ isMobile, avatarImg, name, link, size = 'lg', specialty, }) => {
76
+ return (React__default["default"].createElement("div", { className: styles$1.author },
77
+ React__default["default"].createElement("div", { className: "author" },
78
+ React__default["default"].createElement("div", { className: "expert-avatar", "data-size": size }, avatarImg),
79
+ React__default["default"].createElement("div", { className: "expert", "data-is-disabled-url": !!!link }, isMobile ? (React__default["default"].createElement("a", { href: link }, size === 'lg' ? (React__default["default"].createElement(React__default["default"].Fragment, null,
80
+ React__default["default"].createElement(index$3.Heading, { tag: "h6", className: "expert__name", color: theme.theme.colors.gray600 }, name),
81
+ React__default["default"].createElement(index$2.Text, { color: theme.theme.colors.gray500, size: "p3", className: "specialty" }, specialty))) : (React__default["default"].createElement(React__default["default"].Fragment, null,
82
+ React__default["default"].createElement(index$3.Heading, { tag: "h6", className: "expert__name", color: theme.theme.colors.gray600 }, name))))) : (React__default["default"].createElement("a", { href: link }, size === 'lg' ? (React__default["default"].createElement(React__default["default"].Fragment, null,
83
+ React__default["default"].createElement(index$3.Heading, { tag: "h6", className: "expert__name", color: theme.theme.colors.gray600 }, name),
84
+ React__default["default"].createElement(index$2.Text, { color: theme.theme.colors.gray500, size: "p3", className: "specialty" }, specialty))) : (React__default["default"].createElement(React__default["default"].Fragment, null,
85
+ React__default["default"].createElement("h6", { color: theme.theme.colors.gray600, className: `${styles$1.expertName} expert__name` }, name),
86
+ React__default["default"].createElement(index$2.Text, { color: theme.theme.colors.gray500, size: "p4", className: "specialty" }, specialty)))))))));
87
+ };
88
+
89
+ const AffiliateIcon = React.memo(() => {
90
+ return (React__default["default"].createElement("div", { className: "shoppable" },
91
+ React__default["default"].createElement("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" },
92
+ React__default["default"].createElement("rect", { width: "24", height: "24", rx: "12", fill: "#1B3250" }),
93
+ React__default["default"].createElement("path", { d: "M16.6667 8.00033H15.3333C15.3333 6.16033 13.84 4.66699 12 4.66699C10.16 4.66699 8.66667 6.16033 8.66667 8.00033H7.33333C6.6 8.00033 6 8.60033 6 9.33366V17.3337C6 18.067 6.6 18.667 7.33333 18.667H16.6667C17.4 18.667 18 18.067 18 17.3337V9.33366C18 8.60033 17.4 8.00033 16.6667 8.00033ZM12 6.00033C13.1067 6.00033 14 6.89366 14 8.00033H10C10 6.89366 10.8933 6.00033 12 6.00033ZM12 12.667C10.4467 12.667 9.14 11.607 8.77333 10.167C8.66 9.74699 8.98667 9.33366 9.42 9.33366C9.73333 9.33366 9.98667 9.56033 10.0733 9.86699C10.3067 10.7137 11.08 11.3337 12 11.3337C12.92 11.3337 13.6933 10.7137 13.9267 9.86699C14.0133 9.56033 14.2667 9.33366 14.58 9.33366C15.0133 9.33366 15.3333 9.74699 15.2267 10.167C14.86 11.607 13.5533 12.667 12 12.667Z", fill: "white" }))));
94
+ });
95
+
96
+ const ArticleCard$1 = ({ articleLink, authorLink, authorName, avatarImg, banner, categoryLink, categoryName, className, dataEventActionForBanner, dataEventActionForBookmark, dataEventActionForCategory, dataEventActionForTitle, dataEventCategoryForBanner, dataEventCategoryForBookmark, dataEventCategoryForCategory, dataEventCategoryForTitle, dataEventLabelForBanner, dataEventLabelForBookmark, dataEventLabelForCategory, dataEventLabelForTitle, direction = 'horizontal', hasAffiliate, isBookmark = false, isBookmarkDisplayed = true, isMobile = true, onBookmark, onClickCategoryName, section = 'normal', size = 'md', specialty, style, styleBanner, styleLabel, styleTitle, text, title, type = 'author', uploadTime, articleLinkTarget, isPremium, headingAs, }) => {
97
+ const handleClick = (e) => {
98
+ e.stopPropagation();
99
+ onBookmark === null || onBookmark === void 0 ? void 0 : onBookmark();
100
+ };
101
+ const headingTag = size === 'lg' && type === 'expert'
102
+ ? 'h4'
103
+ : size === 'lg' && section === 'home'
104
+ ? isMobile
105
+ ? 'h4'
106
+ : 'h3'
107
+ : size === 'lg'
108
+ ? 'h4'
109
+ : 'h5';
110
+ const descriptionTag = size === 'lg' ? 'p3' : 'p4';
111
+ const categoryLabelTag = !isMobile && section === 'home' && size === 'lg' && type === 'author'
112
+ ? 'c1'
113
+ : 'c2';
114
+ return (React__default["default"].createElement("article", { className: `${styles$1.card} ${className || ''}`, "data-size": size, style: style, "data-direction": direction, "data-is-expert": type === 'expert' || undefined },
115
+ React__default["default"].createElement("div", { className: "banner", style: styleBanner },
116
+ React__default["default"].createElement("a", { className: styles$1.anchor, "data-event-category": dataEventCategoryForBanner, "data-event-action": dataEventActionForBanner, "data-event-label": dataEventLabelForBanner, href: articleLink || '#', target: articleLinkTarget }, banner),
117
+ isPremium && (React__default["default"].createElement("img", { loading: "lazy", className: "premium", src: index$4.CommonGAssets.getAssetPath('premium-crown.svg') })),
118
+ hasAffiliate && React__default["default"].createElement(AffiliateIcon, null)),
119
+ React__default["default"].createElement("div", { className: "content" },
120
+ React__default["default"].createElement("div", { className: "inner-content" },
121
+ React__default["default"].createElement(index$2.Text, { style: styleLabel, className: "label", size: categoryLabelTag, weight: "caption" },
122
+ React__default["default"].createElement("a", { className: styles$1.anchor, "data-event-category": dataEventCategoryForCategory, "data-event-action": dataEventActionForCategory, "data-event-label": dataEventLabelForCategory, href: categoryLink || '#', onClick: onClickCategoryName }, categoryName),
123
+ isBookmarkDisplayed && (React__default["default"].createElement("a", { className: "bookmark", onClick: handleClick }, !isBookmark ? (React__default["default"].createElement(other.Bookmark, { size: 18, "data-event-category": dataEventCategoryForBookmark, "data-event-action": dataEventActionForBookmark, "data-event-label": dataEventLabelForBookmark })) : (React__default["default"].createElement(other.Bookmark, { size: 18, isActive: true, "data-event-category": dataEventCategoryForBookmark, "data-event-action": dataEventActionForBookmark, "data-event-label": dataEventLabelForBookmark, activeColor: "#2ED69E" }))))),
124
+ React__default["default"].createElement(index$3.Heading, { tag: headingTag, style: styleTitle, className: "title", as: headingAs || (size === 'lg' ? 'h2' : 'h3') },
125
+ React__default["default"].createElement("a", { className: styles$1.anchor, "data-event-category": dataEventCategoryForTitle, "data-event-action": dataEventActionForTitle, "data-event-label": dataEventLabelForTitle, href: articleLink || '#', target: articleLinkTarget }, title)),
126
+ text && (React__default["default"].createElement("a", { href: articleLink || '#', target: articleLinkTarget },
127
+ React__default["default"].createElement(index$2.Text, { size: descriptionTag, className: "text" }, text)))),
128
+ React__default["default"].createElement("div", { className: "footer" }, type === 'author' ? (React__default["default"].createElement(CardAuthor, { size: size, avatarImg: avatarImg, authorName: authorName, authorLink: authorLink, uploadTime: uploadTime, handleClick: handleClick, isBookmarked: isBookmark, dataEventCategoryForBookmark: dataEventCategoryForBookmark, dataEventActionForBookmark: dataEventActionForBookmark, dataEventLabelForBookmark: dataEventLabelForBookmark })) : (React__default["default"].createElement(CardExpert, { size: size, isMobile: isMobile, avatarImg: avatarImg, specialty: specialty, name: authorName, link: authorLink, handleClick: handleClick, isBookmarked: isBookmark, dataEventCategoryForBookmark: dataEventCategoryForBookmark, dataEventActionForBookmark: dataEventActionForBookmark, dataEventLabelForBookmark: dataEventLabelForBookmark }))))));
129
+ };
130
+
131
+ const _Horizontal = (_a) => {
132
+ var _b, _c, _d;
133
+ var { article, author, authorAvatar, badge = '', hideDescription = false, isBookmarked = false, onBookmark, time, tracking } = _a,
134
+ // size = 'lg',
135
+ rest = tslib_es6.__rest(_a, ["article", "author", "authorAvatar", "badge", "hideDescription", "isBookmarked", "onBookmark", "time", "tracking"]);
136
+ const { isMobile } = index$5.useScreenSize();
137
+ console.log({ article });
138
+ // const maw = useMemo(() => {
139
+ // switch (size) {
140
+ // case 'lg':
141
+ // return 648
142
+ // case 'md':
143
+ // return 456
144
+ // case 'sm':
145
+ // return 264
146
+ // default:
147
+ // return 648
148
+ // }
149
+ // }, [size])
150
+ return (React__default["default"].createElement(core.Card, Object.assign({ padding: 0, radius: 0,
151
+ // maw={maw}
152
+ sx: {
153
+ display: 'flex',
154
+ flexDirection: 'row',
155
+ gap: 24,
156
+ } }, rest),
157
+ React__default["default"].createElement(core.Card.Section, { w: "100%", h: "100%", miw: 264, m: 0, className: "pointer" },
158
+ React__default["default"].createElement("img", { src: (isMobile ? article.featureImageMobile : article.featureImage) ||
159
+ article.featureImage, alt: article.postName, style: {
160
+ width: '100%',
161
+ }, loading: "lazy" })),
162
+ React__default["default"].createElement(core.Card.Section, null,
163
+ React__default["default"].createElement(core.Group, { position: "apart", mt: 16, mb: 4 },
164
+ React__default["default"].createElement(index$5.Anchor, { href: ((_b = article === null || article === void 0 ? void 0 : article.primaryCategory) === null || _b === void 0 ? void 0 : _b.permalink) || '#' },
165
+ React__default["default"].createElement(index$2.Text, { size: "p4", color: "blue.6" }, (_c = article === null || article === void 0 ? void 0 : article.primaryCategory) === null || _c === void 0 ? void 0 : _c.displayName)),
166
+ React__default["default"].createElement(core.Box, { sx: { cursor: 'pointer' }, role: "button", onClick: onBookmark }, !isBookmarked ? (React__default["default"].createElement("svg", Object.assign({ width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" }, tracking === null || tracking === void 0 ? void 0 : tracking.bookmark),
167
+ React__default["default"].createElement("path", { d: "M7 17.95L12 15.8L17 17.95V5.3C17 5.23333 16.9667 5.16667 16.9 5.1C16.8333 5.03333 16.7667 5 16.7 5H7.3C7.23333 5 7.16667 5.03333 7.1 5.1C7.03333 5.16667 7 5.23333 7 5.3V17.95ZM6.775 19.7C6.475 19.8333 6.18733 19.8123 5.912 19.637C5.63733 19.4623 5.5 19.2083 5.5 18.875V5.3C5.5 4.8 5.675 4.375 6.025 4.025C6.375 3.675 6.8 3.5 7.3 3.5H16.7C17.2 3.5 17.625 3.675 17.975 4.025C18.325 4.375 18.5 4.8 18.5 5.3V18.875C18.5 19.2083 18.3623 19.4623 18.087 19.637C17.8123 19.8123 17.525 19.8333 17.225 19.7L12 17.45L6.775 19.7ZM7 5H17H12H7Z", fill: "#595959" }))) : (React__default["default"].createElement("svg", Object.assign({ width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" }, tracking === null || tracking === void 0 ? void 0 : tracking.bookmark),
168
+ React__default["default"].createElement("path", { d: "M6.775 19.7C6.475 19.8333 6.18733 19.8123 5.912 19.637C5.63733 19.4623 5.5 19.2083 5.5 18.875V5.3C5.5 4.8 5.675 4.375 6.025 4.025C6.375 3.675 6.8 3.5 7.3 3.5H16.7C17.2 3.5 17.625 3.675 17.975 4.025C18.325 4.375 18.5 4.8 18.5 5.3V18.875C18.5 19.2083 18.3623 19.4623 18.087 19.637C17.8123 19.8123 17.525 19.8333 17.225 19.7L12 17.45L6.775 19.7Z", fill: "#595959" }))))),
169
+ React__default["default"].createElement(index$2.Text, { size: hideDescription ? 's2' : 's1', mb: 8, weight: "semiBold", className: "pointer" }, article.postTitle || article.postName || ''),
170
+ !hideDescription && (React__default["default"].createElement(index$2.Text, { size: "p2", mb: 16, lineClamp: 3, className: "pointer" }, innertext__default["default"](article.excerpt ||
171
+ article.description ||
172
+ ((_d = article.postContent) === null || _d === void 0 ? void 0 : _d.split('\r\n')[0]) ||
173
+ ''))),
174
+ React__default["default"].createElement(core.Flex, { gap: 12, align: 'center' },
175
+ React__default["default"].createElement(index$5.Avatar, { size: 32, src: authorAvatar, withIndicator: true, indicatorConfig: {
176
+ offset: 5,
177
+ size: 18,
178
+ label: React__default["default"].createElement("img", { loading: "lazy", src: badge, alt: "" }),
179
+ } }, "A"),
180
+ React__default["default"].createElement(index$2.Text, { size: "n1", c: "gray.6" },
181
+ author,
182
+ " \u2022 ",
183
+ time)))));
184
+ };
185
+
186
+ // MyComponent.styles.ts
187
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
188
+ var useStyles$4 = core.createStyles((_theme, {}) => ({
189
+ // add all styles as usual
190
+ root: {},
191
+ image: {},
192
+ title: {},
193
+ category: {},
194
+ description: {},
195
+ author: {},
196
+ }));
197
+
198
+ const RATIO = {
199
+ DEFAULT: 648 / 440,
200
+ NO_DESCRIPTION: 456 / 304,
201
+ };
202
+ const _Vertical = (_a) => {
203
+ var _b, _c, _d;
204
+ var { article, author, authorAvatar, badge = '', bannerImageWrapProps, hideDescription = false, isBookmarked = false, onBookmark, time, tracking,
205
+ // size = 'lg',
206
+ classNames, styles, unstyled, className } = _a, rest = tslib_es6.__rest(_a, ["article", "author", "authorAvatar", "badge", "bannerImageWrapProps", "hideDescription", "isBookmarked", "onBookmark", "time", "tracking", "classNames", "styles", "unstyled", "className"]);
207
+ const { isMobile } = index$5.useScreenSize();
208
+ const { classes, cx } = useStyles$4(
209
+ // First argument of useStyles is styles params
210
+ {},
211
+ // Second argument is responsible for styles api integration
212
+ { name: 'ArticleCard', classNames, styles, unstyled });
213
+ const type = React.useMemo(() => {
214
+ if (hideDescription) {
215
+ return RATIO.NO_DESCRIPTION;
216
+ }
217
+ else {
218
+ return RATIO.DEFAULT;
219
+ }
220
+ }, [hideDescription]);
221
+ // const maw = useMemo(() => {
222
+ // switch (size) {
223
+ // case 'lg':
224
+ // return 648
225
+ // case 'md':
226
+ // return 456
227
+ // case 'sm':
228
+ // return 264
229
+ // default:
230
+ // return 648
231
+ // }
232
+ // }, [size])
233
+ return (React__default["default"].createElement(core.Card, Object.assign({ className: cx(classes.root, className), padding: 'lg', radius: 0 }, rest),
234
+ React__default["default"].createElement(core.Card.Section, { className: cx(classes.image, 'pointer') },
235
+ React__default["default"].createElement(index$5.AspectRatio, Object.assign({ ratio: type }, bannerImageWrapProps),
236
+ React__default["default"].createElement("img", { src: (isMobile ? article.featureImageMobile : article.featureImage) ||
237
+ article.featureImage, alt: article.postName, style: { objectFit: 'cover' } }))),
238
+ React__default["default"].createElement(core.Card.Section, null,
239
+ React__default["default"].createElement(core.Group, { position: "apart", mt: 16, mb: 4 },
240
+ React__default["default"].createElement(index$5.Anchor, { className: classes.category, href: ((_b = article === null || article === void 0 ? void 0 : article.primaryCategory) === null || _b === void 0 ? void 0 : _b.permalink) || '#' },
241
+ React__default["default"].createElement(index$2.Text, { size: "p4", color: "blue.6" }, (_c = article === null || article === void 0 ? void 0 : article.primaryCategory) === null || _c === void 0 ? void 0 : _c.displayName)),
242
+ React__default["default"].createElement(core.Box, { sx: { cursor: 'pointer' }, role: "button", onClick: onBookmark }, !isBookmarked ? (React__default["default"].createElement("svg", Object.assign({ width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" }, tracking === null || tracking === void 0 ? void 0 : tracking.bookmark),
243
+ React__default["default"].createElement("path", { d: "M7 17.95L12 15.8L17 17.95V5.3C17 5.23333 16.9667 5.16667 16.9 5.1C16.8333 5.03333 16.7667 5 16.7 5H7.3C7.23333 5 7.16667 5.03333 7.1 5.1C7.03333 5.16667 7 5.23333 7 5.3V17.95ZM6.775 19.7C6.475 19.8333 6.18733 19.8123 5.912 19.637C5.63733 19.4623 5.5 19.2083 5.5 18.875V5.3C5.5 4.8 5.675 4.375 6.025 4.025C6.375 3.675 6.8 3.5 7.3 3.5H16.7C17.2 3.5 17.625 3.675 17.975 4.025C18.325 4.375 18.5 4.8 18.5 5.3V18.875C18.5 19.2083 18.3623 19.4623 18.087 19.637C17.8123 19.8123 17.525 19.8333 17.225 19.7L12 17.45L6.775 19.7ZM7 5H17H12H7Z", fill: "#595959" }))) : (React__default["default"].createElement("svg", Object.assign({ width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" }, tracking === null || tracking === void 0 ? void 0 : tracking.bookmark),
244
+ React__default["default"].createElement("path", { d: "M6.775 19.7C6.475 19.8333 6.18733 19.8123 5.912 19.637C5.63733 19.4623 5.5 19.2083 5.5 18.875V5.3C5.5 4.8 5.675 4.375 6.025 4.025C6.375 3.675 6.8 3.5 7.3 3.5H16.7C17.2 3.5 17.625 3.675 17.975 4.025C18.325 4.375 18.5 4.8 18.5 5.3V18.875C18.5 19.2083 18.3623 19.4623 18.087 19.637C17.8123 19.8123 17.525 19.8333 17.225 19.7L12 17.45L6.775 19.7Z", fill: "#595959" }))))),
245
+ React__default["default"].createElement(index$2.Text, { className: cx(classes.title, 'pointer'), size: hideDescription ? 's2' : 's1', mb: 8, weight: "semiBold" }, article.postTitle || article.postName || ''),
246
+ !hideDescription && (React__default["default"].createElement(index$2.Text, { className: cx(classes.description, 'pointer'), size: "p2", mb: 16, lineClamp: 3 }, innertext__default["default"](article.excerpt ||
247
+ article.description ||
248
+ ((_d = article.postContent) === null || _d === void 0 ? void 0 : _d.split('\r\n')[0]) ||
249
+ ''))),
250
+ React__default["default"].createElement(core.Flex, { className: classes.author, gap: 12, align: 'center' },
251
+ React__default["default"].createElement(index$5.Avatar, { size: 32, src: authorAvatar, withIndicator: true, indicatorConfig: {
252
+ offset: 5,
253
+ size: 18,
254
+ label: React__default["default"].createElement("img", { loading: "lazy", src: badge, alt: "" }),
255
+ } }, "A"),
256
+ React__default["default"].createElement(index$2.Text, { size: "n1", c: "gray.6" },
257
+ author,
258
+ " \u2022 ",
259
+ time)))));
260
+ };
261
+
262
+ const ArticleCard = (_a) => {
263
+ var { variant = 'vertical' } = _a, rest = tslib_es6.__rest(_a, ["variant"]);
264
+ return variant === 'horizontal' ? (React__default["default"].createElement(_Horizontal, Object.assign({}, rest))) : (React__default["default"].createElement(_Vertical, Object.assign({}, rest)));
265
+ };
266
+
267
+ const StyledCategoryCard = styled__default["default"].a `
268
+ display: flex;
269
+ height: 125px;
270
+
271
+ box-sizing: border-box;
272
+ flex-direction: column;
273
+ align-items: center;
274
+ padding: 8px;
275
+
276
+ border: 1px solid ${theme.theme.colors.neutral100};
277
+ background-color: white;
278
+ border-radius: ${theme.theme.borderRadius};
279
+ box-shadow: 0px 5px 12px rgba(40, 74, 117, 0.08);
280
+ cursor: pointer;
281
+ text-decoration: none;
282
+
283
+ & > .banner {
284
+ width: 100%;
285
+ height: 63px;
286
+ text-align: center;
287
+ }
288
+
289
+ & > .content {
290
+ display: -webkit-box;
291
+ overflow: hidden;
292
+ -webkit-box-orient: vertical;
293
+ -webkit-line-clamp: 2;
294
+ text-align: center;
295
+ word-break: break-word;
296
+ }
297
+
298
+ * {
299
+ pointer-events: none;
300
+ }
301
+ `;
302
+
303
+ const CategoryCard = (_a) => {
304
+ var { category, imgBanner, label, className, style, href = '', dataEventCategory, dataEventAction, dataEventLabel } = _a, rest = tslib_es6.__rest(_a, ["category", "imgBanner", "label", "className", "style", "href", "dataEventCategory", "dataEventAction", "dataEventLabel"]);
305
+ const url = (category === null || category === void 0 ? void 0 : category.customizedUrl) || (category === null || category === void 0 ? void 0 : category.permalink) || href || '';
306
+ return (React__default["default"].createElement(StyledCategoryCard, Object.assign({ "data-event-category": dataEventCategory, "data-event-action": dataEventAction, "data-event-label": dataEventLabel, className: className, style: style, href: url }, ((category === null || category === void 0 ? void 0 : category.customizedUrl) &&
307
+ !index$6.isInternalLink(category.customizedUrl) && {
308
+ target: '_blank',
309
+ }), { onClick: (e) => {
310
+ if (url === '') {
311
+ e.preventDefault();
312
+ }
313
+ } }, rest),
314
+ React__default["default"].createElement("div", { className: "banner" }, imgBanner),
315
+ React__default["default"].createElement("div", { className: "content" },
316
+ React__default["default"].createElement(index$2.Text, { className: "category_name", size: "sm", weight: "bold" }, (category === null || category === void 0 ? void 0 : category.displayName) || label || ''))));
317
+ };
318
+
319
+ const StyledCheckboxGroup = styled__default["default"].div `
320
+ display: flex;
321
+
322
+ &[data-type='vertical'] {
323
+ flex-direction: column;
324
+
325
+ div {
326
+ margin-bottom: 20px;
327
+ }
328
+ }
329
+
330
+ &[data-type='horizontal'] {
331
+ flex-wrap: wrap;
332
+
333
+ div {
334
+ margin-right: 25px;
335
+ }
336
+
337
+ &[data-is-rectangle] {
338
+ div {
339
+ margin-right: 14px;
340
+ }
341
+ }
342
+ }
343
+ `;
344
+
345
+ const CheckboxGroup = ({ name, values = [], onChanges, options = [], className, type = 'vertical', isDisabled, isRectangle, }) => {
346
+ const onChange = (value, checked) => {
347
+ const newValues = values.slice();
348
+ if (checked) {
349
+ newValues.push(value);
350
+ }
351
+ else {
352
+ const removeIndex = newValues.findIndex((item) => item === value);
353
+ newValues.splice(removeIndex, 1);
354
+ }
355
+ if (onChanges) {
356
+ onChanges(newValues);
357
+ }
358
+ };
359
+ return (React__default["default"].createElement(StyledCheckboxGroup, { className: className, "data-type": type, "data-is-rectangle": isRectangle || undefined }, options.map((option, index) => (React__default["default"].createElement(index$7.Checkbox, { label: option.label, name: name, key: `${index}-${option.value}`, checked: values.includes(option.value), value: option.value, isDisabled: isDisabled || option.disabled, onChange: !isDisabled && onChange, isRectangle: isRectangle })))));
360
+ };
361
+
362
+ const StyledIconText = styled__default["default"].div `
363
+ display: flex;
364
+ align-items: center;
365
+ --font-weight-lg: ${theme.theme.sizes.fwBold};
366
+ --font-weight-md: ${theme.theme.sizes.fwRegular};
367
+ --font-weight-sm: ${theme.theme.sizes.fwRegular};
368
+
369
+ &[data-icon-position='left'] {
370
+ & > *:first-child {
371
+ margin-right: 8px;
372
+ }
373
+
374
+ & > *:last-child {
375
+ width: calc(100% - 24px);
376
+ }
377
+ }
378
+ &[data-icon-position='right'] {
379
+ & > *:first-child {
380
+ width: calc(100% - 24px);
381
+ }
382
+ & > *:last-child {
383
+ margin-left: 8px;
384
+ }
385
+ }
386
+
387
+ ${utils.MediaQueries.mbDown} {
388
+ &[data-size='lg'] {
389
+ font-size: 16px;
390
+ line-height: 24px;
391
+ font-weight: var(--font-weight-lg);
392
+ }
393
+ &[data-size='md'] {
394
+ font-size: 14px;
395
+ line-height: 22px;
396
+ font-weight: var(--font-weight-md);
397
+ }
398
+ &[data-size='sm'] {
399
+ font-size: 13px;
400
+ line-height: 20px;
401
+ font-weight: var(----font-weight-sm);
402
+ }
403
+ }
404
+ `;
405
+
406
+ const IconText = ({ size, iconPosition, className, children, icon: Icon, }) => {
407
+ return (React__default["default"].createElement(StyledIconText, { className: className, "data-size": size, "data-icon-position": iconPosition },
408
+ iconPosition === 'left' && Icon,
409
+ children,
410
+ iconPosition === 'right' && Icon));
411
+ };
412
+
413
+ const StyledSlider = styled__default["default"].div `
414
+ position: relative;
415
+ width: 100%;
416
+
417
+ & div[role='slider'] {
418
+ -webkit-text-size-adjust: none;
419
+ -webkit-user-select: none;
420
+ &:focus {
421
+ outline: none;
422
+ }
423
+ }
424
+ `;
425
+ const StyledStep = styled__default["default"].div `
426
+ position: absolute;
427
+ top: 19px;
428
+ width: 24px;
429
+ height: 24px;
430
+ color: ${theme.theme.colors.white};
431
+ border: 2px solid ${theme.theme.colors.white};
432
+ border-radius: 50%;
433
+ transform: translateY(-50%) translateX(-50%);
434
+ display: flex;
435
+ align-items: center;
436
+ justify-content: center;
437
+ cursor: pointer;
438
+
439
+ background-color: ${theme.theme.colors.white};
440
+ color: ${theme.theme.colors.gray300};
441
+ border: 1px solid ${theme.theme.colors.gray300};
442
+
443
+ &[data-is-active='true'] {
444
+ background-color: ${theme.theme.colors.primaryBase};
445
+ color: ${theme.theme.colors.white};
446
+ border: none;
447
+ }
448
+ `;
449
+ const StyledTrackContainer = styled__default["default"].div `
450
+ display: flex;
451
+ width: 100%;
452
+ height: 36px;
453
+
454
+ &[data-track-type='detail'] {
455
+ margin-top: 0;
456
+ }
457
+
458
+ &[data-track-type='detail'][data-step-passed='true'] > div {
459
+ border: 1px solid ${theme.theme.colors.primaryBase};
460
+ height: 0px;
461
+ }
462
+
463
+ &[data-track-type='detail'] > div {
464
+ border: 1px solid ${theme.theme.colors.gray200};
465
+ height: 0px;
466
+ }
467
+ `;
468
+ const StyledTrack = styled__default["default"].div `
469
+ width: 100%;
470
+ height: 5px;
471
+ align-self: center;
472
+ border-radius: 4px;
473
+ background-color: ${theme.theme.colors.gray200};
474
+ `;
475
+ const StyledStepLabel = styled__default["default"].div `
476
+ position: absolute;
477
+ top: 32px;
478
+ min-width: 100px;
479
+ text-align: center;
480
+ color: ${theme.theme.colors.gray500};
481
+ font-size: ${theme.theme.sizes.fsCaption2};
482
+ font-weight: ${theme.theme.sizes.fwBold};
483
+
484
+ &[data-step-passed='true'] {
485
+ color: ${theme.theme.colors.gray800};
486
+ }
487
+ `;
488
+ const StyledBreadcrumbContainer = styled__default["default"].div `
489
+ display: flex;
490
+ align-items: center;
491
+ `;
492
+ const StyledBreadcrumbWrapper = styled__default["default"].div `
493
+ display: flex;
494
+ align-items: center;
495
+ font-size: ${theme.theme.sizes.fsCaption2};
496
+ font-weight: ${theme.theme.sizes.fwBold};
497
+ color: ${theme.theme.colors.gray500};
498
+ cursor: pointer;
499
+
500
+ & > svg {
501
+ height: 10px;
502
+ width: 10px;
503
+ margin: 0 14px;
504
+ }
505
+
506
+ & > svg > path {
507
+ stroke: ${theme.theme.colors.gray500};
508
+ }
509
+
510
+ &[data-selected='true'] {
511
+ color: ${theme.theme.colors.primaryBase};
512
+ }
513
+ `;
514
+ const StyledDetailStep = styled__default["default"].div `
515
+ position: absolute;
516
+ left: 0;
517
+ top: 19px;
518
+ height: 24px;
519
+ cursor: pointer;
520
+
521
+ transform: translateY(-50%);
522
+ display: flex;
523
+ align-items: center;
524
+
525
+ padding: 8px;
526
+ background-color: ${theme.theme.colors.white};
527
+ `;
528
+ const StyledDetailStepIndicator = styled__default["default"].div `
529
+ min-width: 24px;
530
+ height: 24px;
531
+ border: 2px solid ${theme.theme.colors.white};
532
+ border-radius: 50%;
533
+ margin-right: 8px;
534
+ display: flex;
535
+ align-items: center;
536
+ justify-content: center;
537
+ cursor: pointer;
538
+
539
+ background-color: ${theme.theme.colors.white};
540
+ color: ${theme.theme.colors.gray300};
541
+ border: 1px solid ${theme.theme.colors.gray300};
542
+
543
+ &[data-is-active='true'] {
544
+ border: none;
545
+ background-color: ${theme.theme.colors.primaryBase};
546
+ color: ${theme.theme.colors.white};
547
+ }
548
+ `;
549
+ const StyledDetailStepIndicatorExternal = styled__default["default"].div `
550
+ display: flex;
551
+ align-items: center;
552
+ justify-content: center;
553
+
554
+ & > svg {
555
+ height: 20px;
556
+ width: 20px;
557
+ margin-right: 8px;
558
+
559
+ & > path {
560
+ stroke: ${theme.theme.colors.gray500};
561
+ }
562
+ }
563
+ `;
564
+ const StyledDetailStepLabel = styled__default["default"].div `
565
+ color: ${theme.theme.colors.gray400};
566
+ font-size: ${theme.theme.sizes.fsCaption2};
567
+ font-weight: ${theme.theme.sizes.fwBold};
568
+ margin-right: 8px;
569
+ flex: 0 0 auto;
570
+
571
+ &[data-step-passed='true'] {
572
+ color: ${theme.theme.colors.gray800};
573
+ }
574
+ `;
575
+ const StyledDetailStepDescription = styled__default["default"].div `
576
+ position: absolute;
577
+ top: 32px;
578
+ font-weight: ${theme.theme.sizes.fwRegular};
579
+ color: ${theme.theme.colors.gray400};
580
+ padding-right: 16px;
581
+ `;
582
+
583
+ const ProgressBar = ({ type, numberOfStep, activeStep, labelPrefix, detailSteps, className, onChange, }) => {
584
+ const [trackLength, setTrackLength] = React.useState(0);
585
+ const Track = (_a) => {
586
+ var { trackClassName } = _a, props = tslib_es6.__rest(_a, ["trackClassName"]);
587
+ return (React__default["default"].createElement(StyledTrackContainer, Object.assign({}, props, { className: trackClassName }),
588
+ React__default["default"].createElement(StyledTrack, null)));
589
+ };
590
+ // step track
591
+ const Steps = ({ trackLength, activeStep, labelPrefix = 'Step', onChange, }) => {
592
+ return (React__default["default"].createElement(React__default["default"].Fragment, null, Array.from({ length: numberOfStep }, (v, i) => i).map((_, step) => (React__default["default"].createElement(StyledStep, { "data-is-active": step === activeStep, "data-label": step, style: { left: (step * trackLength) / (numberOfStep - 1) }, onClick: () => {
593
+ onChange && onChange(step);
594
+ }, key: step },
595
+ step + 1,
596
+ React__default["default"].createElement(StyledStepLabel, { "data-step-passed": step <= activeStep }, labelPrefix + ' ' + (step + 1)))))));
597
+ };
598
+ const stepTrack = (React__default["default"].createElement(StyledSlider, { className: className + ' progress-bar' },
599
+ React__default["default"].createElement(Track, null),
600
+ React__default["default"].createElement(Steps, { trackLength: trackLength, activeStep: activeStep, labelPrefix: labelPrefix, onChange: onChange })));
601
+ // breadcrumb
602
+ const breadcrumbIcon = (React__default["default"].createElement("svg", { "data-name": "Layer 1", viewBox: "0 0 5.5 9.5" },
603
+ React__default["default"].createElement("title", null, 'chevron-right'),
604
+ React__default["default"].createElement("path", { d: "M.75 8.75l4-4-4-4", fill: "none",
605
+ // stroke="#000"
606
+ strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5 })));
607
+ const breadcrumb = (React__default["default"].createElement(StyledBreadcrumbContainer, null, detailSteps &&
608
+ Array.from({ length: detailSteps.length }, (v, i) => i).map((_, step_index) => {
609
+ var _a;
610
+ return (React__default["default"].createElement(StyledBreadcrumbWrapper, { key: step_index, "data-selected": step_index === activeStep, onClick: () => {
611
+ onChange && onChange(step_index);
612
+ } }, (_a = detailSteps[step_index]) === null || _a === void 0 ? void 0 :
613
+ _a.text,
614
+ ' ',
615
+ step_index < detailSteps.length - 1 && breadcrumbIcon));
616
+ })));
617
+ // detail track
618
+ const DetailStepsGroup = ({ detailSteps, activeStep, onChange, }) => {
619
+ return (React__default["default"].createElement(React__default["default"].Fragment, null, Array.from({ length: detailSteps.length }, (v, i) => i).map((step, step_index) => (React__default["default"].createElement(StyledDetailStep, { key: step_index, style: {
620
+ left: (100 / detailSteps.length) * step_index + '%',
621
+ width: 100 / detailSteps.length + '%',
622
+ }, onClick: () => {
623
+ onChange && onChange(step_index);
624
+ } },
625
+ detailSteps[step_index].icon ? (React__default["default"].createElement(StyledDetailStepIndicatorExternal, { onClick: () => {
626
+ onChange && onChange(step_index);
627
+ } }, detailSteps[step_index].icon)) : (React__default["default"].createElement(StyledDetailStepIndicator, { "data-is-active": step_index === activeStep, "data-label": step, onClick: () => {
628
+ onChange && onChange(step_index);
629
+ }, key: step_index }, step_index + 1)),
630
+ React__default["default"].createElement(StyledDetailStepLabel, { "data-step-passed": step_index < activeStep + 1 },
631
+ detailSteps[step_index].text,
632
+ React__default["default"].createElement(StyledDetailStepDescription, null, detailSteps[step_index].description)),
633
+ step_index < detailSteps.length - 1 && (React__default["default"].createElement(Track, { "data-step-passed": step_index < activeStep, trackClassName: 'progress-track', "data-track-type": "detail" })))))));
634
+ };
635
+ const detailTrack = (React__default["default"].createElement(StyledSlider, { className: className + ' progress-bar' },
636
+ React__default["default"].createElement(DetailStepsGroup, { activeStep: activeStep, detailSteps: detailSteps, onChange: onChange })));
637
+ const resizeTrack = React.useCallback(throttle__default["default"](() => {
638
+ const progressTrack = document.querySelector('.progress-bar');
639
+ progressTrack && setTrackLength(progressTrack.offsetWidth);
640
+ }, 1000), []);
641
+ React.useEffect(() => {
642
+ const track = document.querySelector('.progress-bar');
643
+ setTrackLength(track === null || track === void 0 ? void 0 : track.offsetWidth);
644
+ window.addEventListener('resize', resizeTrack, {
645
+ passive: true,
646
+ });
647
+ return () => {
648
+ window.removeEventListener('resize', resizeTrack);
649
+ };
650
+ }, []);
651
+ return ((type === 'step-track' && stepTrack) ||
652
+ (type === 'breadcrumb' && breadcrumb) ||
653
+ (type === 'detail-track' && detailTrack));
654
+ };
655
+
656
+ const RadioGroup = React__default["default"].forwardRef(({ id, value, options, className, isDisabled, size: sizeProp = 'small', direction = 'vertical', onChange, dataEventCategory, dataEventAction, dataEventLabel, }, ref) => {
657
+ const [check, setCheck] = React.useState(value);
658
+ React.useImperativeHandle(ref, () => ({
659
+ reset() {
660
+ setCheck(value);
661
+ },
662
+ }));
663
+ const handleOnChange = (v) => {
664
+ setCheck(v);
665
+ onChange === null || onChange === void 0 ? void 0 : onChange(v);
666
+ };
667
+ const size = sizeProp === 'small' ? 'md' : 'lg';
668
+ const DirectionComp = direction === 'vertical' ? core.Stack : core.Group;
669
+ return (React__default["default"].createElement(index$5.Radio.Group, { name: id, className: className, size: size, value: String(check), defaultValue: value, onChange: handleOnChange },
670
+ React__default["default"].createElement(DirectionComp, { spacing: "xl" }, options.map((option) => (React__default["default"].createElement(index$5.Radio, { key: option.value, value: option.value, label: option.label, disabled: isDisabled, "data-event-category": dataEventCategory, "data-event-action": dataEventAction, "data-event-label": dataEventLabel }))))));
671
+ });
672
+
673
+ const StyledSideMenu = styled__default["default"].div `
674
+ --menu-width: 240px;
675
+ --menu-spacing: 28px 16px;
676
+ width: var(--menu-width);
677
+ height: 100vh;
678
+ padding: var(--menu-spacing);
679
+ background-color: ${theme.theme.colors.neutral50};
680
+ transition: ease-in-out 0.5s;
681
+
682
+ &[data-is-collapsed] {
683
+ --menu-width: 64px;
684
+ --menu-spacing: 28px 8px;
685
+ }
686
+ `;
687
+ const SideMenu = ({ isCollapsed, className, style, children }) => {
688
+ return (React__default["default"].createElement(StyledSideMenu, { style: style, className: className, "data-is-collapsed": isCollapsed || undefined }, children));
689
+ };
690
+
691
+ const StyledSideHeader = styled__default["default"].div `
692
+ display: flex;
693
+ align-items: baseline;
694
+ justify-content: space-between;
695
+
696
+ svg {
697
+ transition: 0.4s ease-in-out;
698
+ }
699
+ `;
700
+ const StyledArrow = styled__default["default"].div `
701
+ cursor: pointer;
702
+ &[data-is-collapsed] {
703
+ transform: rotate(180deg);
704
+ }
705
+ `;
706
+ const SideHeader = ({ isCollapsed, defaultLogo, onBackClick, customIcon, }) => {
707
+ return (React__default["default"].createElement(StyledSideHeader, null,
708
+ React__default["default"].createElement(index$8.Logo, { type: isCollapsed ? 'logomark' : defaultLogo || 'hellocare', customSize: {
709
+ width: isCollapsed ? '24px' : '77px',
710
+ height: '24px',
711
+ } }),
712
+ React__default["default"].createElement(StyledArrow, { "data-is-collapsed": isCollapsed || undefined, onClick: onBackClick }, customIcon ? (customIcon) : (React__default["default"].createElement("svg", { "data-name": "Layer 1", viewBox: "0 0 20 20", width: "20px", height: "20px" },
713
+ React__default["default"].createElement("path", { d: "M10 .75A9.25 9.25 0 1019.25 10 9.25 9.25 0 0010 .75z", fill: "none", stroke: "#d2d6dc", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "1.5" }),
714
+ React__default["default"].createElement("path", { d: "M11.44 6.53L8 10l3.48 3.47", fill: "none", stroke: "#737373", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "1.5" }))))));
715
+ };
716
+
717
+ const StyledDoctorInfo = styled__default["default"].figure `
718
+ display: flex;
719
+
720
+ > img,
721
+ svg,
722
+ picture {
723
+ width: 40px;
724
+ height: 40px;
725
+ margin-right: 1rem;
726
+ border-radius: 6px;
727
+ object-fit: cover;
728
+ }
729
+
730
+ > figcaption {
731
+ p + p {
732
+ margin-top: 2px;
733
+ }
734
+ }
735
+ `;
736
+ const DoctorInfo = ({ name, description, image, isDescriptionHidden, }) => {
737
+ return (React__default["default"].createElement(StyledDoctorInfo, null,
738
+ image,
739
+ !isDescriptionHidden && (React__default["default"].createElement("figcaption", null,
740
+ React__default["default"].createElement(index$2.Text, { size: "p4", weight: "bold" }, name),
741
+ React__default["default"].createElement(index$2.Text, { size: "p4" }, description)))));
742
+ };
743
+
744
+ const StyledUserInfo = styled__default["default"].div `
745
+ display: flex;
746
+ align-items: center;
747
+ margin-top: 24px;
748
+ margin-bottom: 36px;
749
+
750
+ figcaption {
751
+ white-space: nowrap;
752
+ }
753
+
754
+ &[data-is-collapsed='true'] {
755
+ img {
756
+ max-width: 2rem;
757
+ max-height: 2rem;
758
+ }
759
+ }
760
+ `;
761
+ const UserInfo = ({ isCollapsed, userName, role, avatar }) => {
762
+ return (React__default["default"].createElement(StyledUserInfo, { "data-is-collapsed": isCollapsed || undefined },
763
+ React__default["default"].createElement(DoctorInfo, { image: avatar, name: userName, description: role, isDescriptionHidden: isCollapsed })));
764
+ };
765
+
766
+ const StyledMenuLink = styled__default["default"].div `
767
+ display: flex;
768
+ align-items: center;
769
+ padding: 9px 21px;
770
+ margin-bottom: 4px;
771
+ border-radius: 6px;
772
+
773
+ &:not([data-is-link-active]) {
774
+ cursor: pointer;
775
+ }
776
+
777
+ p {
778
+ margin-left: 12px;
779
+ }
780
+
781
+ &[data-is-link-active] {
782
+ background: ${theme.theme.colors.primaryBase};
783
+ }
784
+
785
+ &[data-is-link-collapsed] {
786
+ justify-content: center;
787
+ margin-right: -14px;
788
+ margin-left: -14px;
789
+ }
790
+ `;
791
+ const MenuLink = ({ icon, isActive, children, isCollapsed, activeIcon, onLinkClick, textSize = 'base', textType = 'bold', textColorActive = '#fff', textColor = '#595959', }) => {
792
+ return (React__default["default"].createElement(StyledMenuLink, { "data-is-link-active": isActive || undefined, onClick: onLinkClick, "data-is-link-collapsed": isCollapsed || undefined },
793
+ !(isActive && activeIcon) ? icon : activeIcon,
794
+ !isCollapsed && (React__default["default"].createElement(index$2.Text, { size: textSize, weight: textType, color: isActive ? textColorActive : textColor }, children))));
795
+ };
796
+
797
+ var index$1 = /*#__PURE__*/Object.freeze({
798
+ __proto__: null,
799
+ SideMenu: SideMenu,
800
+ SideHeader: SideHeader,
801
+ UserInfo: UserInfo,
802
+ MenuLink: MenuLink
803
+ });
804
+
805
+ const StyledScrollList = styled__default["default"].div `
806
+ position: relative;
807
+ width: 100%;
808
+ > .container {
809
+ display: flex;
810
+ width: 100%;
811
+ -ms-overflow-style: none;
812
+ overflow-x: auto;
813
+ scrollbar-width: none;
814
+
815
+ &::-webkit-scrollbar {
816
+ display: none;
817
+ }
818
+
819
+ .section {
820
+ display: flex;
821
+ width: 100%;
822
+ flex-direction: column;
823
+ flex-shrink: 0;
824
+ margin: auto;
825
+
826
+ > .grid-layout {
827
+ display: grid;
828
+ width: 100%;
829
+ grid-row-gap: 8px;
830
+
831
+ > .item-grid {
832
+ width: 100%;
833
+
834
+ > * {
835
+ margin: 0 auto;
836
+ }
837
+ }
838
+ }
839
+
840
+ .progress-bar {
841
+ display: grid;
842
+ height: 15px;
843
+ margin-bottom: 10px;
844
+
845
+ .items-progress {
846
+ position: relative;
847
+ display: flex;
848
+ width: 100%;
849
+ align-items: center;
850
+ justify-content: center;
851
+
852
+ .icon-status {
853
+ position: absolute;
854
+ display: flex;
855
+ }
856
+
857
+ .line {
858
+ width: 50%;
859
+ height: 2px;
860
+ background-color: ${theme.theme.colors.gray600};
861
+ }
862
+ }
863
+ }
864
+ }
865
+ }
866
+
867
+ .bullet-nav {
868
+ position: absolute;
869
+ z-index: ${theme.theme.zIndexes.belowHeader};
870
+ bottom: -30px;
871
+ left: 50%;
872
+ display: flex;
873
+ transform: translate(-50%, -50%);
874
+ }
875
+
876
+ .bullet-nav__link {
877
+ display: block;
878
+ width: 8px;
879
+ height: 8px;
880
+ padding: 0;
881
+ margin-right: 8px;
882
+ backface-visibility: hidden;
883
+ background-color: #e4e8ec;
884
+ border-radius: 50%;
885
+ cursor: pointer;
886
+ transition: all 0.3s;
887
+ &.active {
888
+ &[data-scheme='hellosites'] {
889
+ background-color: ${theme.theme.colors.primary600};
890
+ }
891
+ &[data-scheme='marrybaby'] {
892
+ background-color: ${theme.theme.mbColors.pink};
893
+ }
894
+ }
895
+ }
896
+
897
+ .arrow-left {
898
+ position: absolute;
899
+ z-index: 10;
900
+ top: 50%;
901
+ left: -35px;
902
+ transform: translateY(-50%);
903
+ &[data-event-category] > * {
904
+ pointer-events: none;
905
+ }
906
+ }
907
+
908
+ .arrow-right {
909
+ position: absolute;
910
+ z-index: 10;
911
+ top: 50%;
912
+ right: -35px;
913
+ transform: translateY(-50%);
914
+ &[data-event-category] > * {
915
+ pointer-events: none;
916
+ }
917
+ }
918
+
919
+ .image-gallery-wrapper {
920
+ display: flex;
921
+ position: relative;
922
+ margin-top: 16px;
923
+ justify-content: center;
924
+ gap: 16px;
925
+ .image-block {
926
+ display: block;
927
+ width: 100%;
928
+ border: 2px solid transparent;
929
+ border-radius: 4px;
930
+ }
931
+ .image-block.active {
932
+ border-color: ${theme.theme.colors.primaryBase};
933
+ }
934
+ img {
935
+ height: 40px;
936
+ width: auto;
937
+ max-width: 100%;
938
+ }
939
+ }
940
+ `;
941
+
942
+ const RenderIconStatus = ({ status }) => {
943
+ if (status === 'inActive') {
944
+ return (React__default["default"].createElement("svg", { width: "6", height: "6", viewBox: "0 0 6 6", fill: "none" },
945
+ React__default["default"].createElement("circle", { cx: "3", cy: "3", r: "3", fill: "#ADB3BC" })));
946
+ }
947
+ else if (status === 'active') {
948
+ return (React__default["default"].createElement("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none" },
949
+ React__default["default"].createElement("circle", { cx: "6", cy: "6", r: "4", fill: "#2D87F3" }),
950
+ React__default["default"].createElement("circle", { cx: "6", cy: "6", r: "5.5", stroke: "#2D87F3" })));
951
+ }
952
+ else if (status === 'done') {
953
+ return (React__default["default"].createElement("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none" },
954
+ React__default["default"].createElement("path", { d: "M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12Z", fill: "#00B16A" }),
955
+ React__default["default"].createElement("path", { d: "M8.76061 4.20029L4.80061 7.80029L3.00061 6.16392", stroke: "white", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" })));
956
+ }
957
+ return (React__default["default"].createElement("svg", { width: "6", height: "6", viewBox: "0 0 6 6", fill: "none" },
958
+ React__default["default"].createElement("circle", { cx: "3", cy: "3", r: "3", fill: "#ADB3BC" })));
959
+ };
960
+ /**
961
+ * @deprecated Consider to use at '@hhgtech/hhg-components/mantine'
962
+ */
963
+ const ScrollList = ({ row = 2, column = 3, isDotsShown = true, isImageGalleryShown = false, mode = 'infinity', type = 'separated', distanceOverlappedLeft = {
964
+ amount: 0,
965
+ unit: 'pixel',
966
+ }, children, className, isProgressShown = false, statusChildren, isArrowShown = false, classNameLeftArrow, classNameRightArrow, dataEventCategory, dataEventAction, dataEventLabel, onChangePage, page, customPageWidth, scheme = 'hellosites', arrowType = 'Discover', }) => {
967
+ const hasPageProps = typeof page === 'number';
968
+ const [section, setSection] = React.useState(hasPageProps ? page : 0);
969
+ //Create groups
970
+ const groups = [];
971
+ React__default["default"].Children.map(children, (element, idx) => {
972
+ if (idx % (row * column) === 0) {
973
+ groups.push([]);
974
+ }
975
+ groups[groups.length - 1].push(React__default["default"].cloneElement(element));
976
+ });
977
+ const scrollRef = React.useRef();
978
+ const currentPage = React.useRef(0);
979
+ const scrollToPage = (index) => {
980
+ if (!scrollRef.current)
981
+ return;
982
+ const { clientWidth } = scrollRef.current;
983
+ const pageWidth = customPageWidth || clientWidth;
984
+ const distance = type === 'intertwined'
985
+ ? distanceOverlappedLeft.unit === 'percentage'
986
+ ? index * pageWidth +
987
+ (distanceOverlappedLeft.amount / 100) * pageWidth * index
988
+ : index * pageWidth +
989
+ distanceOverlappedLeft.amount * pageWidth * index
990
+ : index * pageWidth;
991
+ scrollRef.current.scrollTo({
992
+ top: 0,
993
+ left: distance,
994
+ behavior: 'smooth',
995
+ });
996
+ currentPage.current = index;
997
+ setSection(index);
998
+ };
999
+ const handleClick = (index) => {
1000
+ if (!scrollRef.current)
1001
+ return;
1002
+ const { clientWidth } = scrollRef.current;
1003
+ const pageWidth = customPageWidth || clientWidth;
1004
+ const distance = type === 'intertwined'
1005
+ ? distanceOverlappedLeft.unit === 'percentage'
1006
+ ? index * pageWidth +
1007
+ (distanceOverlappedLeft.amount / 100) * pageWidth * index
1008
+ : index * pageWidth +
1009
+ distanceOverlappedLeft.amount * pageWidth * index
1010
+ : index * pageWidth;
1011
+ scrollRef.current.scrollTo({
1012
+ top: 0,
1013
+ left: distance,
1014
+ behavior: 'smooth',
1015
+ });
1016
+ currentPage.current = index;
1017
+ setSection(index);
1018
+ onChangePage && onChangePage(index);
1019
+ };
1020
+ React.useEffect(() => {
1021
+ if (typeof page === 'number')
1022
+ scrollToPage(page);
1023
+ }, [page]);
1024
+ const handleClickArrow = (type) => {
1025
+ if (!scrollRef.current)
1026
+ return;
1027
+ const { clientWidth } = scrollRef.current;
1028
+ const pageWidth = customPageWidth || clientWidth;
1029
+ let distance;
1030
+ section === 0 ? (distance = 0) : (distance = section * pageWidth);
1031
+ if (type === 'forward') {
1032
+ if (distance === pageWidth * (groups.length - 1)) {
1033
+ setSection(groups.length - 1);
1034
+ distance = pageWidth * (groups.length - 1);
1035
+ onChangePage && onChangePage(groups.length - 1);
1036
+ }
1037
+ else {
1038
+ setSection(section + 1);
1039
+ distance += pageWidth;
1040
+ onChangePage && onChangePage(section + 1);
1041
+ }
1042
+ scrollRef.current.scrollTo({
1043
+ top: 0,
1044
+ left: distance,
1045
+ behavior: 'smooth',
1046
+ });
1047
+ }
1048
+ if (type === 'back') {
1049
+ if (distance === 0) {
1050
+ setSection(0);
1051
+ onChangePage && onChangePage(0);
1052
+ distance = 0;
1053
+ }
1054
+ else {
1055
+ setSection(section - 1);
1056
+ onChangePage && onChangePage(section - 1);
1057
+ distance -= pageWidth;
1058
+ }
1059
+ scrollRef.current.scrollTo({
1060
+ top: 0,
1061
+ left: distance,
1062
+ behavior: 'smooth',
1063
+ });
1064
+ }
1065
+ };
1066
+ const handleScroll = () => {
1067
+ if (mode === 'infinity') {
1068
+ if (!scrollRef.current)
1069
+ return;
1070
+ const { clientWidth, scrollLeft } = scrollRef.current;
1071
+ const pageWidth = customPageWidth || clientWidth;
1072
+ const page = Math.floor(scrollLeft / pageWidth);
1073
+ setSection(page);
1074
+ onChangePage && onChangePage(page);
1075
+ }
1076
+ };
1077
+ const handleScrollThrottle = throttle__default["default"](handleScroll, 400);
1078
+ React.useEffect(() => {
1079
+ if (mode === 'snapped') {
1080
+ let isDown = false;
1081
+ let startX;
1082
+ let startY;
1083
+ let isSlidingY;
1084
+ let isSlidingX;
1085
+ let scrollLeft;
1086
+ let direction;
1087
+ const slider = scrollRef.current;
1088
+ const start = (pageX, pageY) => {
1089
+ isDown = true;
1090
+ isSlidingY = false;
1091
+ isSlidingX = false;
1092
+ startX = pageX - slider.offsetLeft;
1093
+ startY = pageY - slider.offsetTop;
1094
+ scrollLeft = slider.scrollLeft;
1095
+ };
1096
+ const startMouse = (e) => {
1097
+ start(e.pageX, e.pageY);
1098
+ };
1099
+ const startTouch = (e) => {
1100
+ start(e.touches[0].pageX, e.touches[0].pageY);
1101
+ };
1102
+ const end = () => {
1103
+ isDown = false;
1104
+ isSlidingY = false;
1105
+ isSlidingX = false;
1106
+ if (!scrollRef.current)
1107
+ return;
1108
+ const { clientWidth } = scrollRef.current;
1109
+ const pageWidth = customPageWidth || clientWidth;
1110
+ const page = direction === 'ltr'
1111
+ ? currentPage.current !== 0
1112
+ ? currentPage.current - 1
1113
+ : currentPage.current
1114
+ : direction === 'rtl'
1115
+ ? currentPage.current < groups.length - 1
1116
+ ? currentPage.current + 1
1117
+ : currentPage.current
1118
+ : currentPage.current;
1119
+ const distance = type === 'intertwined'
1120
+ ? distanceOverlappedLeft.unit === 'percentage'
1121
+ ? page * pageWidth +
1122
+ (distanceOverlappedLeft.amount / 100) * pageWidth * page
1123
+ : page * pageWidth +
1124
+ distanceOverlappedLeft.amount * pageWidth * page
1125
+ : page * pageWidth;
1126
+ scrollRef.current.scrollTo({
1127
+ top: 0,
1128
+ left: distance,
1129
+ behavior: 'smooth',
1130
+ });
1131
+ direction = 'none';
1132
+ if (currentPage.current !== page) {
1133
+ currentPage.current = page;
1134
+ setSection(page);
1135
+ onChangePage && onChangePage(page);
1136
+ }
1137
+ };
1138
+ const move = (pageX, pageY) => {
1139
+ if (!isDown)
1140
+ return;
1141
+ const x = pageX - slider.offsetLeft;
1142
+ const y = pageY - slider.offsetTop;
1143
+ const walkX = x - startX;
1144
+ const walkY = y - startY;
1145
+ if (!isSlidingY && !isSlidingX && (walkY > 20 || walkY < -20)) {
1146
+ isSlidingY = true;
1147
+ }
1148
+ if (!isSlidingY && (walkX > 20 || walkX < -20)) {
1149
+ isSlidingX = true;
1150
+ slider.scrollLeft = scrollLeft - walkX;
1151
+ if (walkX > 0) {
1152
+ direction = 'ltr';
1153
+ }
1154
+ if (walkX < 0) {
1155
+ direction = 'rtl';
1156
+ }
1157
+ if (walkX === 0) {
1158
+ direction = 'none';
1159
+ }
1160
+ }
1161
+ };
1162
+ const moveMouse = (e) => {
1163
+ if (isSlidingX) {
1164
+ e.preventDefault();
1165
+ }
1166
+ move(e.pageX, e.pageY);
1167
+ };
1168
+ const moveTouch = (e) => {
1169
+ if (isSlidingX) {
1170
+ e.preventDefault();
1171
+ }
1172
+ move(e.touches[0].pageX, e.touches[0].pageY);
1173
+ };
1174
+ slider === null || slider === void 0 ? void 0 : slider.addEventListener('mousedown', startMouse, {
1175
+ passive: true,
1176
+ });
1177
+ slider === null || slider === void 0 ? void 0 : slider.addEventListener('touchstart', startTouch, {
1178
+ passive: true,
1179
+ });
1180
+ window.addEventListener('mouseup', end, {
1181
+ passive: true,
1182
+ });
1183
+ window.addEventListener('touchend', end, {
1184
+ passive: true,
1185
+ });
1186
+ slider === null || slider === void 0 ? void 0 : slider.addEventListener('mousemove', moveMouse, {
1187
+ passive: true,
1188
+ });
1189
+ slider === null || slider === void 0 ? void 0 : slider.addEventListener('touchmove', moveTouch, {
1190
+ passive: true,
1191
+ });
1192
+ return () => {
1193
+ slider === null || slider === void 0 ? void 0 : slider.removeEventListener('mousedown', startMouse);
1194
+ slider === null || slider === void 0 ? void 0 : slider.removeEventListener('touchstart', startTouch);
1195
+ window.removeEventListener('mouseup', end);
1196
+ window.removeEventListener('touchend', end);
1197
+ slider === null || slider === void 0 ? void 0 : slider.removeEventListener('mousemove', moveMouse);
1198
+ slider === null || slider === void 0 ? void 0 : slider.removeEventListener('touchmove', moveTouch);
1199
+ };
1200
+ }
1201
+ }, []);
1202
+ return (React__default["default"].createElement(StyledScrollList, { className: className, "data-row": row, onScroll: handleScrollThrottle },
1203
+ isArrowShown && section > 0 && (React__default["default"].createElement("div", { className: `${classNameLeftArrow} arrow-left`, onClick: () => handleClickArrow('back'), "data-event-category": dataEventCategory, "data-event-action": dataEventAction, "data-event-label": dataEventLabel }, arrowType === 'Care' ? (React__default["default"].createElement("svg", { width: "42", height: "42", viewBox: "0 0 42 42", fill: "none" },
1204
+ React__default["default"].createElement("g", { filter: "url(#filter0_dd_12599_34420)" },
1205
+ React__default["default"].createElement("path", { d: "M7.00024 19C7.00024 10.1634 14.1637 3 23.0002 3V3C31.8368 3 39.0002 10.1634 39.0002 19V19C39.0002 27.8366 31.8368 35 23.0002 35V35C14.1637 35 7.00024 27.8366 7.00024 19V19Z", fill: "white" }),
1206
+ React__default["default"].createElement("path", { d: "M20.9293 19L24.7503 15.179C25.1643 14.765 25.1643 14.093 24.7503 13.679C24.3363 13.265 23.6643 13.265 23.2503 13.679L18.6363 18.293C18.2453 18.684 18.2453 19.317 18.6363 19.707L23.2503 24.321C23.6643 24.735 24.3363 24.735 24.7503 24.321C25.1643 23.907 25.1643 23.235 24.7503 22.821L20.9293 19Z", fill: "#595959" }),
1207
+ React__default["default"].createElement("path", { d: "M23.0002 34C14.716 34 8.00024 27.2843 8.00024 19H6.00024C6.00024 28.3888 13.6114 36 23.0002 36V34ZM38.0002 19C38.0002 27.2843 31.2845 34 23.0002 34V36C32.3891 36 40.0002 28.3888 40.0002 19H38.0002ZM23.0002 4C31.2845 4 38.0002 10.7157 38.0002 19H40.0002C40.0002 9.61116 32.3891 2 23.0002 2V4ZM23.0002 2C13.6114 2 6.00024 9.61116 6.00024 19H8.00024C8.00024 10.7157 14.716 4 23.0002 4V2Z", fill: "#DBDFE5" })),
1208
+ React__default["default"].createElement("defs", null,
1209
+ React__default["default"].createElement("filter", { id: "filter0_dd_12599_34420", x: "0.000244141", y: "0", width: "42", height: "42", filterUnits: "userSpaceOnUse", colorInterpolationFilters: "sRGB" },
1210
+ React__default["default"].createElement("feFlood", { floodOpacity: "0", result: "BackgroundImageFix" }),
1211
+ React__default["default"].createElement("feColorMatrix", { in: "SourceAlpha", type: "matrix", values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0", result: "hardAlpha" }),
1212
+ React__default["default"].createElement("feOffset", { dx: "-2", dy: "2" }),
1213
+ React__default["default"].createElement("feGaussianBlur", { stdDeviation: "2.5" }),
1214
+ React__default["default"].createElement("feColorMatrix", { type: "matrix", values: "0 0 0 0 0.263201 0 0 0 0 0.335725 0 0 0 0 0.393257 0 0 0 0.123689 0" }),
1215
+ React__default["default"].createElement("feBlend", { mode: "normal", in2: "BackgroundImageFix", result: "effect1_dropShadow_12599_34420" }),
1216
+ React__default["default"].createElement("feColorMatrix", { in: "SourceAlpha", type: "matrix", values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0", result: "hardAlpha" }),
1217
+ React__default["default"].createElement("feOffset", { dx: "-1", dy: "1" }),
1218
+ React__default["default"].createElement("feGaussianBlur", { stdDeviation: "1" }),
1219
+ React__default["default"].createElement("feColorMatrix", { type: "matrix", values: "0 0 0 0 0.264489 0 0 0 0 0.275745 0 0 0 0 0.28861 0 0 0 0.01 0" }),
1220
+ React__default["default"].createElement("feBlend", { mode: "normal", in2: "effect1_dropShadow_12599_34420", result: "effect2_dropShadow_12599_34420" }),
1221
+ React__default["default"].createElement("feBlend", { mode: "normal", in: "SourceGraphic", in2: "effect2_dropShadow_12599_34420", result: "shape" }))))) : (React__default["default"].createElement("svg", { width: "32", height: "32", viewBox: "0 0 32 32", fill: "none" },
1222
+ React__default["default"].createElement("path", { d: "M15.9996 28.2218C22.7497 28.2218 28.2218 22.7497 28.2218 15.9996C28.2218 9.24942 22.7497 3.77734 15.9996 3.77734C9.24942 3.77734 3.77734 9.24942 3.77734 15.9996C3.77734 22.7497 9.24942 28.2218 15.9996 28.2218Z", stroke: scheme === 'hellosites' ? '#2D87F3' : '#e85388', strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }),
1223
+ React__default["default"].createElement("path", { d: "M15.9997 11.1109L11.1108 15.9998L15.9997 20.8887", stroke: scheme === 'hellosites' ? '#2D87F3' : '#e85388', strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }),
1224
+ React__default["default"].createElement("path", { d: "M20.8886 15.999L11.1108 15.999", stroke: scheme === 'hellosites' ? '#2D87F3' : '#e85388', strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }))))),
1225
+ React__default["default"].createElement("div", { ref: scrollRef, className: "container", style: {
1226
+ overflowX: mode === 'snapped' || isArrowShown ? 'hidden' : 'scroll',
1227
+ } }, groups.map((group, groupIndex) => {
1228
+ let baseIndex = 0;
1229
+ for (let i = 0; i < groupIndex; i++) {
1230
+ baseIndex += groups[i].length;
1231
+ }
1232
+ return (React__default["default"].createElement("div", { key: groupIndex, className: "section", style: {
1233
+ marginLeft: type === 'intertwined' && groupIndex !== 0
1234
+ ? distanceOverlappedLeft.amount +
1235
+ '' +
1236
+ (distanceOverlappedLeft.unit === 'percentage'
1237
+ ? '%'
1238
+ : 'px')
1239
+ : '0px',
1240
+ } },
1241
+ row === 1 && isProgressShown && (React__default["default"].createElement("div", { className: "progress-bar", style: {
1242
+ gridTemplateColumns: `repeat(${column}, 1fr)`,
1243
+ } }, group.map((item, itemIndex) => {
1244
+ const realIndex = baseIndex + itemIndex;
1245
+ const foundStatusItem = statusChildren.find((statusItem) => statusItem.index === realIndex);
1246
+ return (React__default["default"].createElement("div", { className: "items-progress", key: itemIndex },
1247
+ itemIndex === 0 && groupIndex === 0 ? (React__default["default"].createElement("div", { className: "line", style: { visibility: 'hidden' } })) : (React__default["default"].createElement("div", { className: "line" })),
1248
+ React__default["default"].createElement("div", { className: "icon-status" },
1249
+ React__default["default"].createElement(RenderIconStatus, { status: foundStatusItem === null || foundStatusItem === void 0 ? void 0 : foundStatusItem.status })),
1250
+ groupIndex === groups.length - 1 &&
1251
+ itemIndex === group.length - 1 ? (React__default["default"].createElement("div", { className: "line", style: { visibility: 'hidden' } })) : (React__default["default"].createElement("div", { className: "line" }))));
1252
+ }))),
1253
+ React__default["default"].createElement("div", { className: "grid-layout", "data-index": groupIndex, style: {
1254
+ gridTemplateColumns: `repeat(${column}, 1fr)`,
1255
+ gridTemplateRows: `repeat(${row}, 1fr)`,
1256
+ } }, group.map((item, itemIndex) => (React__default["default"].createElement(React__default["default"].Fragment, { key: itemIndex },
1257
+ React__default["default"].createElement("div", { className: "item-grid", key: itemIndex }, item)))))));
1258
+ })),
1259
+ isArrowShown && section < groups.length - 1 && (React__default["default"].createElement("div", { className: `${classNameRightArrow} arrow-right`, onClick: () => handleClickArrow('forward'), "data-event-category": dataEventCategory, "data-event-action": dataEventAction, "data-event-label": dataEventLabel },
1260
+ ' ',
1261
+ arrowType === 'Care' ? (React__default["default"].createElement("svg", { width: "42", height: "42", viewBox: "0 0 42 42", fill: "none" },
1262
+ React__default["default"].createElement("g", { filter: "url(#filter0_dd_12597_34423)" },
1263
+ React__default["default"].createElement("path", { d: "M7.00024 19C7.00024 10.1634 14.1637 3 23.0002 3C31.8368 3 39.0002 10.1634 39.0002 19C39.0002 27.8366 31.8368 35 23.0002 35C14.1637 35 7.00024 27.8366 7.00024 19Z", fill: "white" }),
1264
+ React__default["default"].createElement("path", { d: "M24.0712 19L20.2502 15.179C19.8362 14.765 19.8362 14.093 20.2502 13.679C20.6642 13.265 21.3362 13.265 21.7502 13.679L26.3642 18.293C26.7552 18.684 26.7552 19.317 26.3642 19.707L21.7502 24.321C21.3362 24.735 20.6642 24.735 20.2502 24.321C19.8362 23.907 19.8362 23.235 20.2502 22.821L24.0712 19Z", fill: "#595959" }),
1265
+ React__default["default"].createElement("path", { d: "M23.0002 34C14.716 34 8.00024 27.2843 8.00024 19H6.00024C6.00024 28.3888 13.6114 36 23.0002 36V34ZM38.0002 19C38.0002 27.2843 31.2845 34 23.0002 34V36C32.3891 36 40.0002 28.3888 40.0002 19H38.0002ZM23.0002 4C31.2845 4 38.0002 10.7157 38.0002 19H40.0002C40.0002 9.61116 32.3891 2 23.0002 2V4ZM23.0002 2C13.6114 2 6.00024 9.61116 6.00024 19H8.00024C8.00024 10.7157 14.716 4 23.0002 4V2Z", fill: "#DBDFE5" })),
1266
+ React__default["default"].createElement("defs", null,
1267
+ React__default["default"].createElement("filter", { id: "filter0_dd_12597_34423", x: "0.000244141", y: "0", width: "42", height: "42", filterUnits: "userSpaceOnUse", colorInterpolationFilters: "sRGB" },
1268
+ React__default["default"].createElement("feFlood", { floodOpacity: "0", result: "BackgroundImageFix" }),
1269
+ React__default["default"].createElement("feColorMatrix", { in: "SourceAlpha", type: "matrix", values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0", result: "hardAlpha" }),
1270
+ React__default["default"].createElement("feOffset", { dx: "-2", dy: "2" }),
1271
+ React__default["default"].createElement("feGaussianBlur", { stdDeviation: "2.5" }),
1272
+ React__default["default"].createElement("feColorMatrix", { type: "matrix", values: "0 0 0 0 0.263201 0 0 0 0 0.335725 0 0 0 0 0.393257 0 0 0 0.123689 0" }),
1273
+ React__default["default"].createElement("feBlend", { mode: "normal", in2: "BackgroundImageFix", result: "effect1_dropShadow_12597_34423" }),
1274
+ React__default["default"].createElement("feColorMatrix", { in: "SourceAlpha", type: "matrix", values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0", result: "hardAlpha" }),
1275
+ React__default["default"].createElement("feOffset", { dx: "-1", dy: "1" }),
1276
+ React__default["default"].createElement("feGaussianBlur", { stdDeviation: "1" }),
1277
+ React__default["default"].createElement("feColorMatrix", { type: "matrix", values: "0 0 0 0 0.264489 0 0 0 0 0.275745 0 0 0 0 0.28861 0 0 0 0.01 0" }),
1278
+ React__default["default"].createElement("feBlend", { mode: "normal", in2: "effect1_dropShadow_12597_34423", result: "effect2_dropShadow_12597_34423" }),
1279
+ React__default["default"].createElement("feBlend", { mode: "normal", in: "SourceGraphic", in2: "effect2_dropShadow_12597_34423", result: "shape" }))))) : (React__default["default"].createElement("svg", { width: "32", height: "32", viewBox: "0 0 32 32", fill: "none" },
1280
+ React__default["default"].createElement("path", { d: "M15.9996 28.2218C22.7497 28.2218 28.2218 22.7497 28.2218 15.9996C28.2218 9.24942 22.7497 3.77734 15.9996 3.77734C9.24942 3.77734 3.77734 9.24942 3.77734 15.9996C3.77734 22.7497 9.24942 28.2218 15.9996 28.2218Z", stroke: scheme === 'hellosites' ? '#2D87F3' : '#e85388', strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }),
1281
+ React__default["default"].createElement("path", { d: "M15.9998 20.8891L20.8887 16.0002L15.9998 11.1113", stroke: scheme === 'hellosites' ? '#2D87F3' : '#e85388', strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }),
1282
+ React__default["default"].createElement("path", { d: "M11.1109 16L20.8887 16", stroke: scheme === 'hellosites' ? '#2D87F3' : '#e85388', strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }))))),
1283
+ isDotsShown && (React__default["default"].createElement("ul", { className: "bullet-nav" }, groups.map((group, index) => (React__default["default"].createElement("li", { key: index, className: "bullet-nav__item " },
1284
+ React__default["default"].createElement("p", { onClick: () => handleClick(index), className: `bullet-nav__link scroll ${section == index ? 'active' : null}`, "data-scheme": scheme })))))),
1285
+ isImageGalleryShown && (React__default["default"].createElement("div", { className: "image-gallery-wrapper", "data-test": groups.length }, groups.slice(0, 3).map((item, itemIndex) => (React__default["default"].createElement("div", { className: `image-block ${section == itemIndex ? 'active' : null}`, key: itemIndex, onClick: () => handleClick(itemIndex), "data-scheme": scheme }, item)))))));
1286
+ };
1287
+
1288
+ const StyledStatisticContainer = styled__default["default"].div `
1289
+ border-radius: ${theme.theme.borderRadius};
1290
+ ${(props) => props['data-is-in-card'] &&
1291
+ `
1292
+ padding: 12px;
1293
+ background-color: ${props['data-card-color']};`}
1294
+ `;
1295
+ const StyledDot = styled__default["default"].div `
1296
+ width: 13px;
1297
+ height: 13px;
1298
+ margin-right: 10px;
1299
+ background-color: ${(props) => props['data-color']};
1300
+ border-radius: 50%;
1301
+ `;
1302
+ const StyledDescriptionWrapper = styled__default["default"].div `
1303
+ display: flex;
1304
+ align-items: center;
1305
+ color: ${theme.theme.colors.gray800};
1306
+ font-size: ${theme.theme.sizes.fsParagraph4};
1307
+ font-weight: ${theme.theme.sizes.fwRegular};
1308
+ `;
1309
+ const StyledStatisticNumberWrapper = styled__default["default"].div `
1310
+ display: flex;
1311
+ align-items: center;
1312
+ margin-top: 4px;
1313
+ color: ${theme.theme.colors.gray800};
1314
+ font-size: ${theme.theme.sizes.fsHeading2};
1315
+ font-weight: ${theme.theme.sizes.fwSemiBold};
1316
+
1317
+ & > svg {
1318
+ width: 24px;
1319
+ height: 24px;
1320
+ margin-right: 12px;
1321
+ }
1322
+
1323
+ &[data-size='small'] {
1324
+ margin-left: 23px;
1325
+ font-size: ${theme.theme.sizes.fsParagraph4};
1326
+ font-weight: ${theme.theme.sizes.fwBold};
1327
+ }
1328
+ `;
1329
+
1330
+ const StatisticCard = ({ type, description, value, withIcon, isInACard, cardColor, className, }) => {
1331
+ return (React__default["default"].createElement(StyledStatisticContainer, { className: className, "data-size": type, "data-is-in-card": type === 'big' && isInACard, "data-card-color": cardColor },
1332
+ React__default["default"].createElement(StyledDescriptionWrapper, null,
1333
+ type === 'small' && React__default["default"].createElement(StyledDot, { "data-color": cardColor }),
1334
+ description),
1335
+ React__default["default"].createElement(StyledStatisticNumberWrapper, { "data-size": type },
1336
+ type !== 'small' && withIcon,
1337
+ value)));
1338
+ };
1339
+
1340
+ const StyledTable = styled__default["default"].table `
1341
+ width: 100%;
1342
+ position: relative;
1343
+ `;
1344
+ const Table = ({ children, className, style, horizontalPadding, verticalPadding, }) => {
1345
+ return (React__default["default"].createElement(StyledTable, { className: className, style: Object.assign({ '--horizontal-spacing': horizontalPadding || '19px', '--vertical-spacing': verticalPadding || '26px' }, style) }, children));
1346
+ };
1347
+
1348
+ const StyledTableCell = styled__default["default"].td `
1349
+ padding: var(--vertical-spacing) var(--horizontal-spacing);
1350
+ vertical-align: middle;
1351
+
1352
+ &[data-text-align='left'] {
1353
+ text-align: left;
1354
+ }
1355
+ &[data-text-align='right'] {
1356
+ text-align: right;
1357
+ }
1358
+ &[data-text-align='center'] {
1359
+ text-align: center;
1360
+ }
1361
+ `;
1362
+ const Cell = ({ children, className, style, textAlign, isTableHead, }) => {
1363
+ return (React__default["default"].createElement(StyledTableCell, { className: className, style: style, "data-text-align": textAlign ? textAlign : 'left', as: isTableHead ? 'th' : 'td' }, children));
1364
+ };
1365
+
1366
+ const StyledTableRow = styled__default["default"].tr `
1367
+ border-bottom: 1px solid ${theme.theme.colors.gray100};
1368
+
1369
+ &[data-is-active='true'] {
1370
+ background-color: ${theme.theme.colors.gray200};
1371
+ }
1372
+ `;
1373
+ const Row = ({ children, className, style, isActive, onRowClicked, rowId, }) => {
1374
+ return (React__default["default"].createElement(StyledTableRow, { className: className, "data-is-active": isActive, style: style, onClick: () => {
1375
+ onRowClicked && onRowClicked(rowId);
1376
+ } }, children));
1377
+ };
1378
+
1379
+ const StyledTableHead = styled__default["default"].thead `
1380
+ th {
1381
+ padding: var(--vertical-spacing) var(--horizontal-spacing);
1382
+ text-align: left;
1383
+
1384
+ color: ${theme.theme.colors.gray500};
1385
+ font-weight: ${theme.theme.sizes.fwBold};
1386
+ }
1387
+ &[data-is-sticky] {
1388
+ th {
1389
+ position: sticky;
1390
+ top: 0;
1391
+ background: white;
1392
+ border-bottom: 2px solid ${theme.theme.colors.gray200};
1393
+ }
1394
+ }
1395
+ `;
1396
+ const Head = ({ isSticky, children, className, style }) => {
1397
+ return (React__default["default"].createElement(StyledTableHead, { className: className, "data-is-sticky": isSticky || undefined, style: style },
1398
+ React__default["default"].createElement(Row, null, children)));
1399
+ };
1400
+
1401
+ const StyledTableBody = styled__default["default"].tbody `
1402
+ position: relative;
1403
+ &[data-is-striped] {
1404
+ > tr:nth-child(odd) {
1405
+ background-color: ${theme.theme.colors.neutral50};
1406
+ }
1407
+ }
1408
+ &[data-is-hoverable] {
1409
+ > tr:hover {
1410
+ background-color: ${theme.theme.colors.neutral100};
1411
+ }
1412
+ }
1413
+ `;
1414
+ const Body$1 = ({ children, className, style, isHoverable, isStriped, }) => {
1415
+ return (React__default["default"].createElement(StyledTableBody, { className: className, style: style, "data-is-striped": isStriped || undefined, "data-is-hoverable": isHoverable || undefined }, children));
1416
+ };
1417
+
1418
+ var index = /*#__PURE__*/Object.freeze({
1419
+ __proto__: null,
1420
+ Table: Table,
1421
+ Cell: Cell,
1422
+ Head: Head,
1423
+ Row: Row,
1424
+ Body: Body$1
1425
+ });
1426
+
1427
+ var useStyles$3 = core.createStyles((theme) => {
1428
+ const itemLabelRef = core.getStylesRef('itemLabel');
1429
+ return {
1430
+ root: {
1431
+ display: 'inline-flex',
1432
+ maxWidth: '100%',
1433
+ borderBottom: `1px solid ${theme.colors.neutral[1]}`,
1434
+ '-webkit-overflow-scrolling': 'touch',
1435
+ overflowX: 'auto',
1436
+ overflowY: 'hidden',
1437
+ '-ms-overflow-style': 'none' /* for Internet Explorer, Edge */,
1438
+ 'scrollbar-width': 'none' /* for Firefox */,
1439
+ '&::-webkit-scrollbar': {
1440
+ display: 'none',
1441
+ },
1442
+ columnGap: theme.spacing.lg,
1443
+ },
1444
+ item: {
1445
+ display: 'flex',
1446
+ alignItems: 'center',
1447
+ paddingBottom: '4px',
1448
+ '&:hover': {
1449
+ cursor: 'pointer',
1450
+ },
1451
+ '&.active': {
1452
+ color: theme.fn.primaryColor(),
1453
+ borderBottom: `3px solid ${theme.fn.primaryColor()}`,
1454
+ bottom: '-1px',
1455
+ position: 'relative',
1456
+ [`& .${itemLabelRef}`]: {},
1457
+ },
1458
+ },
1459
+ itemInner: {
1460
+ display: 'flex',
1461
+ alignItems: 'center',
1462
+ },
1463
+ label: {
1464
+ ref: itemLabelRef,
1465
+ },
1466
+ icon: {
1467
+ marginRight: theme.spacing.xs,
1468
+ },
1469
+ };
1470
+ });
1471
+
1472
+ /**
1473
+ * @deprecated Consider to use mantine
1474
+ */
1475
+ const Tabs = ({ style, initialTab, tabContent, onChange, className, dataEventCategory, dataEventAction, dataEventLabel, id, styles, }) => {
1476
+ const { classes, cx, theme } = useStyles$3(undefined, { name: 'Tabs', styles });
1477
+ const [activeTab, setActiveTab] = React.useState(initialTab || 0);
1478
+ React.useEffect(() => {
1479
+ setActiveTab(initialTab);
1480
+ }, [initialTab]);
1481
+ return (React__default["default"].createElement("ul", { style: style, className: cx(classes.root, className), role: "tablist", id: id }, tabContent.map((tab, i) => (React__default["default"].createElement("li", { className: `${classes.item} ${activeTab === i ? 'active' : ''} ${tab.className}`, "aria-selected": activeTab === i, role: "tab", onClick: () => {
1482
+ setActiveTab(i);
1483
+ onChange && onChange(i);
1484
+ }, onKeyDown: (e) => {
1485
+ if (e.key === 'Enter') {
1486
+ setActiveTab(i);
1487
+ onChange && onChange(i);
1488
+ }
1489
+ }, key: i, "data-event-category": tab.dataEventCategory || dataEventCategory, "data-event-action": tab.dataEventAction || dataEventAction, "data-event-label": tab.dataEventLabel || dataEventLabel, tabIndex: 0, "data-testid": tab.dataTestid },
1490
+ React__default["default"].createElement("div", { className: classes.itemInner },
1491
+ tab.icon && React__default["default"].createElement("div", { className: classes.icon }, tab.icon),
1492
+ React__default["default"].createElement(index$2.Text, { className: classes.label, size: tab.textSize || 'sm', weight: tab.textType || 'bold', color: activeTab === i
1493
+ ? theme.fn.primaryColor()
1494
+ : tab.textColor || theme.colors.gray[4], dataEventCategory: tab.dataEventCategory, dataEventAction: tab.dataEventAction, dataEventLabel: tab.dataEventLabel }, tab.name)))))));
1495
+ };
1496
+
1497
+ const TRANSITION_TIMING = 200;
1498
+ const StyledFloatButtonGroup = styled__default["default"].div ``;
1499
+ const StyledFloatButtonGroupBackgroundPanel = styled__default["default"].div `
1500
+ width: 100vw;
1501
+ height: 100vh;
1502
+ position: fixed;
1503
+ bottom: 0;
1504
+ right: 0;
1505
+ background-color: ${theme.theme.colors.white};
1506
+ opacity: 0.83;
1507
+ transition: display ${TRANSITION_TIMING}ms linear;
1508
+
1509
+ [data-floatmenu-open='true'] & {
1510
+ animation: showBackgroundPanel ${TRANSITION_TIMING}ms linear 0s normal
1511
+ forwards;
1512
+ }
1513
+
1514
+ [data-floatmenu-open='false'] & {
1515
+ animation: hideBackgroundPanel ${TRANSITION_TIMING}ms linear 0s normal
1516
+ forwards;
1517
+ }
1518
+
1519
+ @keyframes showBackgroundPanel {
1520
+ 0% {
1521
+ opacity: 0;
1522
+ width: 100vw;
1523
+ height: 100vh;
1524
+ }
1525
+ 100% {
1526
+ opacity: 0.83;
1527
+ }
1528
+ }
1529
+
1530
+ @keyframes hideBackgroundPanel {
1531
+ 0% {
1532
+ width: 100vw;
1533
+ height: 100vh;
1534
+ }
1535
+ 99% {
1536
+ width: 100vw;
1537
+ height: 100vh;
1538
+ }
1539
+ 100% {
1540
+ opacity: 0;
1541
+ width: 0;
1542
+ height: 0;
1543
+ }
1544
+ }
1545
+ `;
1546
+ const StyledFloatButtonGroupContent = styled__default["default"].div `
1547
+ position: fixed;
1548
+ right: 16px;
1549
+ bottom: 40px;
1550
+ `;
1551
+ const StyledFloatButtonGroupItemsWrapper = styled__default["default"].div `
1552
+ display: flex;
1553
+ flex-direction: column;
1554
+ gap: 16px;
1555
+ transition: all ${TRANSITION_TIMING}ms ease-in-out;
1556
+ position: fixed;
1557
+ bottom: 112px;
1558
+ right: 16px;
1559
+
1560
+ // scale
1561
+ [data-animation-type='scale'] & {
1562
+ transform-origin: 100% 100%;
1563
+ }
1564
+
1565
+ [data-animation-type='scale'][data-floatmenu-open='true'] & {
1566
+ transform: scale(1);
1567
+ }
1568
+
1569
+ [data-animation-type='scale'][data-floatmenu-open='false'] & {
1570
+ transform: scale(0);
1571
+ bottom: 46px;
1572
+ right: 36px;
1573
+ }
1574
+ `;
1575
+ const StyledFloatButtonGroupToggleIcon = styled__default["default"].div `
1576
+ border-radius: 50%;
1577
+ width: 56px;
1578
+ height: 56px;
1579
+ position: relative;
1580
+ cursor: pointer;
1581
+ margin-left: auto;
1582
+ transition: all 0.1s linear;
1583
+ -webkit-tap-highlight-color: transparent;
1584
+ [data-site-type='hb'] & {
1585
+ background-color: ${theme.theme.colors.primaryBase};
1586
+ &:hover {
1587
+ background-color: ${theme.theme.colors.primaryHover};
1588
+ }
1589
+ }
1590
+ [data-site-type='mb'] & {
1591
+ background-color: #2d87f3;
1592
+ &:hover {
1593
+ background-color: #2c74df;
1594
+ }
1595
+ }
1596
+
1597
+ &:before {
1598
+ content: '';
1599
+ width: 2px;
1600
+ height: 20px;
1601
+ background-color: ${theme.theme.colors.white};
1602
+ border-radius: 2px;
1603
+ position: absolute;
1604
+ top: 50%;
1605
+ left: 50%;
1606
+ transform: translate(-50%, -50%);
1607
+ }
1608
+
1609
+ &:after {
1610
+ content: '';
1611
+ width: 20px;
1612
+ height: 2px;
1613
+ background-color: ${theme.theme.colors.white};
1614
+ border-radius: 2px;
1615
+ position: absolute;
1616
+ top: 50%;
1617
+ left: 50%;
1618
+ transform: translate(-50%, -50%);
1619
+ }
1620
+
1621
+ [data-floatmenu-open='true'] &:before,
1622
+ [data-floatmenu-open='true'] &:after {
1623
+ animation: toX ${TRANSITION_TIMING}ms linear 0s normal forwards;
1624
+ }
1625
+
1626
+ [data-floatmenu-open='false'] &:before,
1627
+ [data-floatmenu-open='false'] &:after {
1628
+ animation: toPlus ${TRANSITION_TIMING}ms linear 0s normal forwards;
1629
+ }
1630
+
1631
+ @keyframes toX {
1632
+ 0% {
1633
+ transform: translate(-50%, -50%) rotateZ(0deg);
1634
+ }
1635
+ 49% {
1636
+ transform: translate(-50%, -50%) rotateZ(0deg);
1637
+ }
1638
+ 50% {
1639
+ width: 2px;
1640
+ height: 2px;
1641
+ transform: translate(-50%, -50%) rotateZ(45deg);
1642
+ }
1643
+ 100% {
1644
+ transform: translate(-50%, -50%) rotateZ(45deg);
1645
+ }
1646
+ }
1647
+
1648
+ @keyframes toPlus {
1649
+ 0% {
1650
+ transform: translate(-50%, -50%) rotateZ(45deg);
1651
+ }
1652
+ 49% {
1653
+ transform: translate(-50%, -50%) rotateZ(45deg);
1654
+ }
1655
+ 50% {
1656
+ width: 2px;
1657
+ height: 2px;
1658
+ transform: translate(-50%, -50%) rotateZ(0deg);
1659
+ }
1660
+ 100% {
1661
+ transform: translate(-50%, -50%) rotateZ(0deg);
1662
+ }
1663
+ }
1664
+ `;
1665
+ const StyledFloatButtonGroupButton = styled__default["default"].div `
1666
+ display: flex;
1667
+ gap: 8px;
1668
+ align-items: center;
1669
+ justify-content: flex-end;
1670
+
1671
+ width: fit-content;
1672
+ margin-left: auto;
1673
+
1674
+ [data-floatmenu-open='true'] {
1675
+ cursor: pointer;
1676
+ }
1677
+ [data-floatmenu-open='false'] {
1678
+ pointer-events: none;
1679
+ }
1680
+
1681
+ [data-animation-type='zoom'] &,
1682
+ [data-animation-type='slide'] & {
1683
+ position: absolute;
1684
+ right: 0;
1685
+ width: max-content;
1686
+ }
1687
+ // slide
1688
+ [data-animation-type='slide'] & {
1689
+ transition: all ${TRANSITION_TIMING}ms ease-in;
1690
+ }
1691
+
1692
+ [data-animation-type='slide'][data-floatmenu-open='true'] & {
1693
+ animation: showItem ${TRANSITION_TIMING}ms;
1694
+ }
1695
+ [data-animation-type='slide'][data-floatmenu-open='false'] & {
1696
+ bottom: -64px !important;
1697
+ animation: hideItemOnZoom ${TRANSITION_TIMING + 50}ms normal forwards;
1698
+ }
1699
+
1700
+ // zoom
1701
+ [data-animation-type='zoom'][data-floatmenu-open='false'] & {
1702
+ animation: hideItemOnZoom ${TRANSITION_TIMING + 50}ms normal forwards;
1703
+ }
1704
+
1705
+ @keyframes showItem {
1706
+ 0% {
1707
+ opacity: 0;
1708
+ }
1709
+
1710
+ 100% {
1711
+ opacity: 1;
1712
+ }
1713
+ }
1714
+
1715
+ @keyframes hideItemOnZoom {
1716
+ 0% {
1717
+ transform: translateX(0);
1718
+ opacity: 1;
1719
+ }
1720
+
1721
+ 99% {
1722
+ transform: translateX(0);
1723
+ opacity: 0.5;
1724
+ }
1725
+
1726
+ 100% {
1727
+ transform: translateX(calc(100% + 16px));
1728
+ opacity: 0;
1729
+ }
1730
+ }
1731
+ `;
1732
+ const StyledFloatButtonGroupButtonLabel = styled__default["default"].div `
1733
+ font-size: 14px;
1734
+
1735
+ // zoom
1736
+ [data-animation-type='zoom'] & {
1737
+ transition: transform ${TRANSITION_TIMING}ms ease-in-out;
1738
+ transform-origin: 100% 0;
1739
+ }
1740
+
1741
+ [data-animation-type='zoom'][data-floatmenu-open='true'] & {
1742
+ transform: scale(1);
1743
+ }
1744
+
1745
+ [data-animation-type='zoom'][data-floatmenu-open='false'] & {
1746
+ transform: scale(0);
1747
+ }
1748
+
1749
+ // slide
1750
+ [data-animation-type='slide'] & {
1751
+ transition: opacity ${TRANSITION_TIMING}ms;
1752
+ }
1753
+ [data-animation-type='slide'][data-floatmenu-open='true'] & {
1754
+ opacity: 1;
1755
+ }
1756
+ [data-animation-type='slide'][data-floatmenu-open='false'] & {
1757
+ opacity: 0;
1758
+ }
1759
+ `;
1760
+ const StyledFloatButtonGroupButtonIcon = styled__default["default"].div `
1761
+ border-radius: 50%;
1762
+ box-shadow: 0px 16px 24px rgba(0, 0, 0, 0.06), 0px 2px 8px rgba(0, 0, 0, 0.04),
1763
+ 0px 0px 1px rgba(0, 0, 0, 0.04);
1764
+ width: 48px;
1765
+ height: 48px;
1766
+ display: flex;
1767
+ align-items: center;
1768
+ justify-content: center;
1769
+ background-color: ${theme.theme.colors.white};
1770
+
1771
+ // zoom
1772
+ [data-animation-type='zoom'] & {
1773
+ transition: transform ${TRANSITION_TIMING}ms ease-in-out;
1774
+ }
1775
+
1776
+ [data-animation-type='zoom'][data-floatmenu-open='true'] & {
1777
+ transform: scale(1);
1778
+ }
1779
+
1780
+ [data-animation-type='zoom'][data-floatmenu-open='false'] & {
1781
+ transform: scale(0);
1782
+ }
1783
+
1784
+ > img {
1785
+ width: 24px;
1786
+ height: 24px;
1787
+ object-fit: contain;
1788
+ }
1789
+ `;
1790
+
1791
+ const FloatButtonGroup = ({ items, className, style, backgroundPanelStyle, isOpen: isOpenProp, onOpen, onClose, disableBackdropClick, siteType = 'hb', animationType = 'zoom', zIndex = 300, }) => {
1792
+ const [isOpen, setIsOpen] = React.useState(!!isOpenProp);
1793
+ React.useEffect(() => {
1794
+ setIsOpen(!!isOpenProp);
1795
+ }, [isOpenProp]);
1796
+ const handleOpen = () => {
1797
+ setIsOpen(true);
1798
+ if (onOpen) {
1799
+ onOpen();
1800
+ }
1801
+ };
1802
+ const handleClose = () => {
1803
+ setIsOpen(false);
1804
+ if (onClose) {
1805
+ onClose();
1806
+ }
1807
+ };
1808
+ return (React__default["default"].createElement(StyledFloatButtonGroup, { style: style, className: className, "data-floatmenu-open": isOpen, "data-site-type": siteType, "data-animation-type": animationType },
1809
+ React__default["default"].createElement(StyledFloatButtonGroupBackgroundPanel, { className: "float-button-group__panel", style: Object.assign({ zIndex }, backgroundPanelStyle), onClick: !disableBackdropClick ? handleClose : undefined }),
1810
+ React__default["default"].createElement(StyledFloatButtonGroupContent, { className: "float-button-group___content", style: { zIndex } },
1811
+ React__default["default"].createElement(StyledFloatButtonGroupItemsWrapper, null, items.map((item, index) => {
1812
+ return (React__default["default"].createElement(StyledFloatButtonGroupButton, { className: `float-item-button-${index}`, style: Object.assign(Object.assign({}, (animationType === 'zoom' && {
1813
+ bottom: (items.length - 1 - index) * (48 + 16),
1814
+ transitionDelay: `${(TRANSITION_TIMING / items.length) *
1815
+ (isOpen ? items.length - 1 - index : index)}ms`,
1816
+ })), (animationType === 'slide' && {
1817
+ bottom: (items.length - 1 - index) * (48 + 16),
1818
+ transitionDelay: `${(TRANSITION_TIMING / items.length) *
1819
+ (!isOpen ? items.length - 1 - index : index)}ms`,
1820
+ })), key: index, onClick: () => {
1821
+ item.onClick();
1822
+ if (!item.keepMenuOnClick) {
1823
+ setIsOpen(false);
1824
+ }
1825
+ } },
1826
+ React__default["default"].createElement(StyledFloatButtonGroupButtonLabel, { style: Object.assign({}, (animationType === 'zoom' && {
1827
+ transitionDelay: `${(TRANSITION_TIMING / items.length) *
1828
+ (isOpen ? items.length - 1 - index : index)}ms`,
1829
+ })) }, item.label),
1830
+ React__default["default"].createElement(StyledFloatButtonGroupButtonIcon, { className: "float-item-button__icon-wrapper", style: Object.assign({}, ((animationType === 'zoom' ||
1831
+ animationType === 'slide') && {
1832
+ transitionDelay: `${(TRANSITION_TIMING / items.length) *
1833
+ (isOpen ? items.length - 1 - index : index)}ms`,
1834
+ })) }, item.icon)));
1835
+ })),
1836
+ React__default["default"].createElement(StyledFloatButtonGroupToggleIcon, { onClick: isOpen ? handleClose : handleOpen }))));
1837
+ };
1838
+
1839
+ const StyledAcceptCardContainer = styled__default["default"].div `
1840
+ padding: 16px;
1841
+ width: 375px;
1842
+ word-wrap: break-word;
1843
+ word-break: break-word;
1844
+ ${utils.MediaQueries.mbDown} {
1845
+ width: 100%;
1846
+ }
1847
+ &[data-theme='helloSites'] {
1848
+ background: ${theme.theme.colors.secondaryBase};
1849
+ box-shadow: 0px 8px 40px rgba(0, 0, 0, 0.1);
1850
+ }
1851
+ &[data-theme='marryBaby'] {
1852
+ border: none;
1853
+ background: ${theme.theme.mbColors.pink};
1854
+ border-radius: 12px 12px 0 0;
1855
+ }
1856
+ &[data-is-open='false'] {
1857
+ display: none;
1858
+ }
1859
+ &[data-default-position='true'] {
1860
+ position: fixed;
1861
+ z-index: 1000;
1862
+ bottom: 0;
1863
+ right: 0;
1864
+ ${utils.MediaQueries.mbDown} {
1865
+ left: 0;
1866
+ right: unset;
1867
+ }
1868
+ }
1869
+ `;
1870
+ const StyledTitleSection = styled__default["default"].p `
1871
+ position: relative;
1872
+ padding-left: 24px;
1873
+ color: ${theme.theme.colors.white};
1874
+ font-size: 14px;
1875
+ font-weight: 600;
1876
+ line-height: 22px;
1877
+ &[data-has-content='true'] {
1878
+ ::before {
1879
+ position: absolute;
1880
+ top: 0;
1881
+ bottom: 0;
1882
+ left: 0;
1883
+ width: 16px;
1884
+ height: 16px;
1885
+ margin: auto 0;
1886
+ content: url("data:image/svg+xml,%3csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M8.00001 1.33331C4.32001 1.33331 1.33334 4.31998 1.33334 7.99998C1.33334 11.68 4.32001 14.6666 8.00001 14.6666C11.68 14.6666 14.6667 11.68 14.6667 7.99998C14.6667 4.31998 11.68 1.33331 8.00001 1.33331ZM8.00001 11.3333C7.63334 11.3333 7.33334 11.0333 7.33334 10.6666V7.99998C7.33334 7.63331 7.63334 7.33331 8.00001 7.33331C8.36668 7.33331 8.66668 7.63331 8.66668 7.99998V10.6666C8.66668 11.0333 8.36668 11.3333 8.00001 11.3333ZM7.33334 5.99998H8.66668V4.66665H7.33334V5.99998Z' fill='white'/%3e%3c/svg%3e");
1887
+ }
1888
+ }
1889
+ `;
1890
+ const StyledDescription = styled__default["default"].p `
1891
+ margin-top: 2px;
1892
+ color: ${theme.theme.colors.white};
1893
+ font-size: 12px;
1894
+ font-weight: 400;
1895
+ line-height: 18px;
1896
+ a {
1897
+ color: ${theme.theme.colors.white};
1898
+ text-decoration: none;
1899
+ text-decoration-line: underline;
1900
+ }
1901
+ `;
1902
+ const StyledButtonGroup = styled__default["default"].div `
1903
+ display: flex;
1904
+ align-items: center;
1905
+ margin-top: 8px;
1906
+ gap: 16px;
1907
+ `;
1908
+ const StyledAcceptButton = styled__default["default"].div `
1909
+ padding: 7px 28px;
1910
+ background: ${theme.theme.colors.white};
1911
+ border-radius: ${theme.theme.borderRadius};
1912
+ color: ${theme.theme.colors.secondaryBase};
1913
+ cursor: pointer;
1914
+ font-size: 12px;
1915
+ font-weight: 600;
1916
+ line-height: 18px;
1917
+ `;
1918
+ const StyledPoliciesButton = styled__default["default"].a `
1919
+ color: ${theme.theme.colors.white};
1920
+ font-size: 12px;
1921
+ font-weight: 600;
1922
+ line-height: 22px;
1923
+ text-decoration: none;
1924
+ text-decoration-line: underline;
1925
+ `;
1926
+
1927
+ const CookieAcceptConfirm = ({ className, policiesUrl, onAcceptClick, translations = {
1928
+ acceptButton: 'Accept',
1929
+ policiesButton: 'Our Policies',
1930
+ }, title = '', description = '', theme = 'helloSites', isOpen = true, useDefaultPosition = true, trackingAttributes, }) => {
1931
+ return (React__default["default"].createElement(StyledAcceptCardContainer, { className: className, "data-theme": theme, "data-is-open": isOpen, "data-default-position": useDefaultPosition },
1932
+ React__default["default"].createElement(StyledTitleSection, { "data-has-content": !!title }, title),
1933
+ React__default["default"].createElement(StyledDescription, { dangerouslySetInnerHTML: {
1934
+ __html: description,
1935
+ } }),
1936
+ React__default["default"].createElement(StyledButtonGroup, null,
1937
+ React__default["default"].createElement(StyledAcceptButton, { role: "button", tabIndex: 0, onClick: onAcceptClick, "data-event-category": trackingAttributes === null || trackingAttributes === void 0 ? void 0 : trackingAttributes.dataEventCategory, "data-event-action": trackingAttributes === null || trackingAttributes === void 0 ? void 0 : trackingAttributes.dataEventAction, "data-event-label": trackingAttributes === null || trackingAttributes === void 0 ? void 0 : trackingAttributes.dataEventLabel }, translations.acceptButton),
1938
+ React__default["default"].createElement(StyledPoliciesButton, { href: policiesUrl }, translations.policiesButton))));
1939
+ };
1940
+
1941
+ const slideInUp = react.keyframes `
1942
+ from {
1943
+ transform: translateY(100%);
1944
+ visibility: visible;
1945
+ }
1946
+
1947
+ to {
1948
+ transform: translateY(0);
1949
+ }
1950
+ `;
1951
+ const slideOutDown = react.keyframes `
1952
+ from {
1953
+ transform: translate(0, 0);
1954
+ }
1955
+
1956
+ to {
1957
+ visibility: hidden;
1958
+ transform: translate(0, 100%);
1959
+ }
1960
+ `;
1961
+ const StyledMobileBottomNavigationIcon = styled__default["default"].div `
1962
+ cursor: pointer;
1963
+ display: flex;
1964
+ flex-direction: column;
1965
+ align-items: center;
1966
+ justify-items: center;
1967
+ gap: 4px;
1968
+
1969
+ .mobile-navigation-label {
1970
+ font-weight: 500;
1971
+ font-size: 10px;
1972
+ line-height: 16px;
1973
+ color: ${theme.theme.colors.gray600};
1974
+ overflow: hidden;
1975
+ text-overflow: ellipsis;
1976
+ white-space: nowrap;
1977
+ width: 60px;
1978
+ text-align: center;
1979
+ ${utils.MediaQueries.mbDown} {
1980
+ max-width: 60px;
1981
+ }
1982
+ }
1983
+
1984
+ .mobile-navigation-icon {
1985
+ position: relative;
1986
+ height: 24px;
1987
+ &[data-no-label='true'] {
1988
+ border-radius: 50%;
1989
+ display: flex;
1990
+ flex-direction: column;
1991
+ justify-content: center;
1992
+ align-items: center;
1993
+ padding: 0px;
1994
+ gap: 16px;
1995
+ width: 40px;
1996
+ height: 40px;
1997
+ }
1998
+ }
1999
+
2000
+ &[data-is-special='true'] {
2001
+ display: flex;
2002
+ flex-direction: row;
2003
+ align-items: center;
2004
+ padding: 4px 12px 4px 6px;
2005
+ gap: 4px;
2006
+
2007
+ min-width: 152px;
2008
+ height: 32px;
2009
+ /* Neutral/Neutral-50 */
2010
+ background: ${theme.theme.colors.primary50};
2011
+ border-radius: 20px;
2012
+ flex-grow: 1;
2013
+ .mobile-navigation-icon {
2014
+ &[data-no-label='true'] {
2015
+ width: 24px;
2016
+ height: 24px;
2017
+ }
2018
+ }
2019
+ .mobile-navigation-label {
2020
+ max-width: max-content;
2021
+ color: ${theme.theme.colors.primaryBase};
2022
+ }
2023
+ }
2024
+
2025
+ &[data-is-active='true'] {
2026
+ .mobile-navigation-label {
2027
+ color: ${theme.theme.colors.primaryBase};
2028
+ }
2029
+ }
2030
+
2031
+ &[data-is-disabled='true'] {
2032
+ opacity: 0.2;
2033
+ }
2034
+ `;
2035
+ const StyledMobileBottomNavigation = styled__default["default"].div `
2036
+ z-index: 100;
2037
+ position: fixed;
2038
+ bottom: 0;
2039
+ left: 0;
2040
+ width: 100%;
2041
+ height: 100%;
2042
+ max-height: 56px;
2043
+ min-height: 56px;
2044
+ display: flex;
2045
+ height: 100%;
2046
+ align-items: center;
2047
+ justify-content: space-evenly;
2048
+ background-color: ${theme.theme.colors.white};
2049
+ @supports (padding-bottom: env(safe-area-inset-bottom)) {
2050
+ min-height: calc(56px + env(safe-area-inset-bottom));
2051
+ max-height: calc(56px + env(safe-area-inset-bottom));
2052
+ padding-bottom: env(safe-area-inset-bottom);
2053
+ }
2054
+ a {
2055
+ text-decoration: none;
2056
+ }
2057
+ &[data-is-collapsed='true'] {
2058
+ animation: ${slideOutDown} 500ms ease-in-out forwards;
2059
+ }
2060
+
2061
+ &[data-is-collapsed='false'] {
2062
+ animation: ${slideInUp} 500ms ease-in-out forwards;
2063
+ }
2064
+ &[data-template='health-tool'] {
2065
+ height: 44px;
2066
+ max-height: 44px;
2067
+ min-height: 44px;
2068
+ justify-content: space-between;
2069
+ & > div {
2070
+ flex: 0;
2071
+ }
2072
+ }
2073
+ `;
2074
+ const StyledBadge = styled__default["default"].span `
2075
+ position: absolute;
2076
+ left: 100%;
2077
+ transform: translate(-10px, calc(-50% + 3px));
2078
+ background-color: ${theme.theme.colors.green800};
2079
+ border-radius: 32px;
2080
+ border: 2px solid ${theme.theme.colors.white};
2081
+ padding: 1px 4px;
2082
+ display: flex;
2083
+ flex-direction: column;
2084
+ justify-content: center;
2085
+ align-items: center;
2086
+ height: 20px;
2087
+ aspect-ratio: 1;
2088
+ &[data-no-label='true'] {
2089
+ left: 0;
2090
+ transform: translate(22px, -50%);
2091
+ }
2092
+ `;
2093
+ styled__default["default"].div `
2094
+ position: absolute;
2095
+ top: 0;
2096
+ left: 0;
2097
+ height: 3px;
2098
+ background-color: ${theme.theme.colors.primaryBase};
2099
+ transition: width 150ms linear;
2100
+ `;
2101
+ styled__default["default"].div `
2102
+ a {
2103
+ text-decoration: none;
2104
+ }
2105
+ `;
2106
+
2107
+ const MobileBottomNavigationIcon = (_a) => {
2108
+ var { badgeAmount, disabled = false, hasBadge = false, icon, isActive = false, isSpecial = false, label } = _a, props = tslib_es6.__rest(_a, ["badgeAmount", "disabled", "hasBadge", "icon", "isActive", "isSpecial", "label"]);
2109
+ return (React__default["default"].createElement(StyledMobileBottomNavigationIcon, Object.assign({ "data-is-special": isSpecial, "data-is-active": isActive, "data-is-disabled": disabled }, props),
2110
+ React__default["default"].createElement("div", { className: "mobile-navigation-icon", "data-no-label": !Boolean(label) },
2111
+ hasBadge && (React__default["default"].createElement(StyledBadge, { "data-no-label": !Boolean(label) },
2112
+ React__default["default"].createElement(index$2.Text, { size: "s5", weight: "semiBold", color: isSpecial ? theme.theme.colors.primaryBase : theme.theme.colors.white }, badgeAmount))),
2113
+ icon),
2114
+ label && React__default["default"].createElement("span", { className: "mobile-navigation-label" }, label)));
2115
+ };
2116
+
2117
+ const MobileBottomNavigationWrapper = (_a) => {
2118
+ var { children, isCollapsed = false, template = 'homepage' } = _a, rest = tslib_es6.__rest(_a, ["children", "isCollapsed", "template"]);
2119
+ return (React__default["default"].createElement(StyledMobileBottomNavigation, Object.assign({ "data-is-collapsed": isCollapsed, "data-template": template }, rest), children));
2120
+ };
2121
+ const MobileBottomNavigation = MobileBottomNavigationWrapper;
2122
+ MobileBottomNavigation.Icon = MobileBottomNavigationIcon;
2123
+
2124
+ const SeoHead = ({ SEOData = {}, locale = 'vi-VN', routerPathname: pathname, routerQuery: query, nextHead: Head, siteType, seoCustom, userId, forcedCanonicalUrl, }) => {
2125
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
2126
+ const { totalPages, currentPage, SEOTitle = '', SEODescription = '', SEOImage, seoType, SEOImageWidth, SEOImageHeight, customMetaData = [], isIndexable = true, hasNoCanonical = false, } = SEOData;
2127
+ const robotIndex = isIndexable && isProduction.isProduction
2128
+ ? 'index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1'
2129
+ : 'noindex';
2130
+ // const { locale = 'vi-VN', pathname, query } = router
2131
+ const { NEXT_PUBLIC_BASE_API_URL } = process.env;
2132
+ let newPath = SEOData.canonicalUrl || pathname;
2133
+ Object.keys(query).forEach((key) => {
2134
+ const queryItem = query[key];
2135
+ if (queryItem && Array.isArray(queryItem)) {
2136
+ newPath = newPath.replace(`[...${key}]`, queryItem.join('/'));
2137
+ }
2138
+ });
2139
+ const sL = locale || 'en-PH'; // standardized locale
2140
+ const siteUrl = siteType === 'helloSites' ? index$9.domainLocales[sL] : 'www.marrybaby.vn';
2141
+ const hasSlash = newPath.endsWith('/') ? '' : '/';
2142
+ // TODO: remove or replace html-react-parser
2143
+ const metaData = React.useMemo(() => {
2144
+ var _a, _b, _c, _d, _e, _f, _g;
2145
+ let resMetaData = '';
2146
+ if (SEOData.apiMetaData && typeof SEOData.apiMetaData === 'string') {
2147
+ const paginatedTitle = (_a = SEOData.apiMetaData) === null || _a === void 0 ? void 0 : _a.match(/<title.*?>(.*)<\/title>/);
2148
+ const paginatedNumber = ` - Page ${currentPage} of ${totalPages}`;
2149
+ const fD = currentPage && currentPage !== 1 && paginatedTitle
2150
+ ? SEOData.apiMetaData
2151
+ .replace(paginatedTitle[0], paginatedTitle[0].includes('-')
2152
+ ? paginatedTitle[0].replace('-', paginatedNumber + ' - ')
2153
+ : `<title>${paginatedTitle[1].concat(paginatedNumber)}</title>`)
2154
+ .replace(`<link rel="canonical" href="https://${siteUrl}${newPath}${hasSlash}" />`, `<link rel="canonical" href="https://${siteUrl}${newPath}${hasSlash}?page=${currentPage}" />`)
2155
+ : SEOData.apiMetaData;
2156
+ resMetaData = parse__default["default"](fD, { trim: true });
2157
+ if (!resMetaData.find((data) => {
2158
+ var _a, _b;
2159
+ return ((_a = data.props) === null || _a === void 0 ? void 0 : _a.property) === 'og:image' ||
2160
+ ((_b = data.props) === null || _b === void 0 ? void 0 : _b.property) === 'og:image:secure_url';
2161
+ })) {
2162
+ const DefaultOgImage = `https://${siteUrl}/images/${locale}.png`;
2163
+ resMetaData = [
2164
+ ...resMetaData,
2165
+ React__default["default"].createElement("meta", { key: 'og:image', property: "og:image", content: ((_b = SEOData.openGraph) === null || _b === void 0 ? void 0 : _b.image) || SEOImage || DefaultOgImage || '' }),
2166
+ React__default["default"].createElement("meta", { key: 'og:image:secure_url', property: "og:image:secure_url", content: ((_c = SEOData.openGraph) === null || _c === void 0 ? void 0 : _c.image) || SEOImage || DefaultOgImage }),
2167
+ React__default["default"].createElement("meta", { key: 'og:image:width', property: "og:image:width", content: (((_d = SEOData.openGraph) === null || _d === void 0 ? void 0 : _d.imageWidth) &&
2168
+ String((_e = SEOData.openGraph) === null || _e === void 0 ? void 0 : _e.imageWidth)) ||
2169
+ (SEOImageWidth && String(SEOImageWidth)) ||
2170
+ '1200' }),
2171
+ React__default["default"].createElement("meta", { key: 'og:image:height', property: "og:image:height", content: (((_f = SEOData.openGraph) === null || _f === void 0 ? void 0 : _f.imageHeight) &&
2172
+ String((_g = SEOData.openGraph) === null || _g === void 0 ? void 0 : _g.imageHeight)) ||
2173
+ (SEOImageHeight && String(SEOImageHeight)) ||
2174
+ '630' }),
2175
+ ];
2176
+ }
2177
+ }
2178
+ return resMetaData;
2179
+ }, [
2180
+ SEOData.apiMetaData,
2181
+ SEOData.openGraph,
2182
+ SEOImage,
2183
+ SEOImageHeight,
2184
+ SEOImageWidth,
2185
+ currentPage,
2186
+ newPath,
2187
+ totalPages,
2188
+ locale,
2189
+ siteUrl,
2190
+ ]);
2191
+ const defaultImage = `https://${siteUrl}/images/${locale}.png`;
2192
+ const fontUrl = siteType === 'marryBaby'
2193
+ ? 'https://fonts.googleapis.com/css2?family=Inter:wght@400..800&display=swap'
2194
+ : locale === 'km-KH'
2195
+ ? 'https://fonts.googleapis.com/css2?family=Battambang:wght@400;700&display=swap'
2196
+ : locale === 'th-TH'
2197
+ ? 'https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wdth,wght@62.5..100,100..900&display=swap'
2198
+ : 'https://fonts.googleapis.com/css2?family=Inter:wght@400..800&display=swap';
2199
+ return (React__default["default"].createElement(Head, null,
2200
+ React__default["default"].createElement("link", { rel: "preconnect", href: "https://fonts.gstatic.com" }),
2201
+ React__default["default"].createElement("link", { rel: "preload", href: fontUrl, as: "style" }),
2202
+ React__default["default"].createElement("link", { rel: "stylesheet", href: fontUrl }),
2203
+ React__default["default"].createElement("link", { rel: "preconnect", href: NEXT_PUBLIC_BASE_API_URL }),
2204
+ React__default["default"].createElement("meta", { charSet: "UTF-8" }),
2205
+ React__default["default"].createElement("meta", { name: "viewport", content: "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" }),
2206
+ React__default["default"].createElement("meta", { name: "google", content: "notranslate" }),
2207
+ React__default["default"].createElement("meta", { name: "robots", content: robotIndex }),
2208
+ React__default["default"].createElement("meta", { property: "fb:app_id", content: "653713035016537" }),
2209
+ customMetaData.map((customMeta, index) => {
2210
+ return React__default["default"].createElement("meta", Object.assign({ key: index }, customMeta));
2211
+ }),
2212
+ React__default["default"].createElement("meta", { name: "theme-color", content: siteType === 'helloSites' ? '#2c87f3' : '#e85388' }),
2213
+ React__default["default"].createElement("meta", { name: "page_type", content: "Home" }),
2214
+ React__default["default"].createElement("meta", { name: "page_platform", content: "WEB" }),
2215
+ React__default["default"].createElement("meta", { name: "page_language", content: sL }),
2216
+ React__default["default"].createElement("meta", { name: "ahrefs-site-verification", content: "46e7521a2b89a1013149c4685bbe02a1d36a4732fef98655142b829bc87cba4d" }),
2217
+ !metaData && (React__default["default"].createElement(React__default["default"].Fragment, null,
2218
+ siteType === 'helloSites' ? (React__default["default"].createElement("title", null, seoCustom
2219
+ ? SEOTitle
2220
+ : SEOTitle + ' - ' + ((_a = index$9.LOCALE_SPECS[locale]) === null || _a === void 0 ? void 0 : _a.SITE_NAME))) : (React__default["default"].createElement("title", null, SEOTitle)),
2221
+ !hasNoCanonical && (React__default["default"].createElement("link", { rel: "canonical", href: `https://${siteUrl}${newPath}` })),
2222
+ React__default["default"].createElement("meta", { name: "description", content: SEODescription || ((_b = SEOData.openGraph) === null || _b === void 0 ? void 0 : _b.description) }),
2223
+ SEOData.schemaData && (React__default["default"].createElement("script", { type: "application/ld+json", className: "yoast-schema-graph", dangerouslySetInnerHTML: { __html: SEOData.schemaData } })),
2224
+ React__default["default"].createElement("meta", { property: "og:locale", content: locale }),
2225
+ React__default["default"].createElement("meta", { property: "og:type", content: seoType || 'website' }),
2226
+ React__default["default"].createElement("meta", { property: "og:title", content: ((_c = SEOData.openGraph) === null || _c === void 0 ? void 0 : _c.title) || SEOTitle }),
2227
+ React__default["default"].createElement("meta", { property: "og:description", content: ((_d = SEOData.openGraph) === null || _d === void 0 ? void 0 : _d.description) || SEODescription }),
2228
+ React__default["default"].createElement("meta", { property: "og:url", content: `https://${siteUrl}${newPath}` }),
2229
+ React__default["default"].createElement("meta", { property: "og:site_name", content: `https://${siteUrl}` }),
2230
+ React__default["default"].createElement("meta", { property: "og:image", content: ((_e = SEOData.openGraph) === null || _e === void 0 ? void 0 : _e.image) || SEOImage || defaultImage || '' }),
2231
+ React__default["default"].createElement("meta", { property: "og:image:secure_url", content: ((_f = SEOData.openGraph) === null || _f === void 0 ? void 0 : _f.image) || SEOImage || defaultImage }),
2232
+ React__default["default"].createElement("meta", { property: "og:image:width", content: (((_g = SEOData.openGraph) === null || _g === void 0 ? void 0 : _g.imageWidth) &&
2233
+ String((_h = SEOData.openGraph) === null || _h === void 0 ? void 0 : _h.imageWidth)) ||
2234
+ (SEOImageWidth && String(SEOImageWidth)) ||
2235
+ '1200' }),
2236
+ React__default["default"].createElement("meta", { property: "og:image:height", content: (((_j = SEOData.openGraph) === null || _j === void 0 ? void 0 : _j.imageHeight) &&
2237
+ String((_k = SEOData.openGraph) === null || _k === void 0 ? void 0 : _k.imageHeight)) ||
2238
+ (SEOImageHeight && String(SEOImageHeight)) ||
2239
+ '630' }),
2240
+ React__default["default"].createElement("meta", { name: "twitter:card", content: "summary_large_image" }),
2241
+ React__default["default"].createElement("meta", { name: "twitter:title", content: ((_l = SEOData.twitter) === null || _l === void 0 ? void 0 : _l.title) || SEOTitle }),
2242
+ React__default["default"].createElement("meta", { name: "twitter:description", content: SEODescription }),
2243
+ React__default["default"].createElement("meta", { name: "twitter:image", content: ((_m = SEOData.twitter) === null || _m === void 0 ? void 0 : _m.image) || SEOImage }))),
2244
+ (siteType === 'helloSites'
2245
+ ? index$9.FAVICONS[sL] || []
2246
+ : index$9.FAVICONS.marryBaby).map((item, index) => {
2247
+ if (item.type === 'link') {
2248
+ return (React__default["default"].createElement("link", { key: `favicon-${index}`, rel: item.rel, href: item.href, sizes: item.sizes }));
2249
+ }
2250
+ if (item.type === 'meta') {
2251
+ return React__default["default"].createElement("meta", { key: index, name: item.name, content: item.content });
2252
+ }
2253
+ return null;
2254
+ }),
2255
+ Array.isArray(metaData) && !!forcedCanonicalUrl
2256
+ ? metaData.filter((d) => d.props.name !== 'canonical' && d.props.rel !== 'canonical')
2257
+ : metaData,
2258
+ forcedCanonicalUrl && React__default["default"].createElement("link", { rel: "canonical", href: forcedCanonicalUrl }),
2259
+ !SEOData.hasNoAmp && locale !== 'vi-VN' && (React__default["default"].createElement("link", { rel: "amphtml", href: `https://${siteUrl}${newPath}${hasSlash}?amp=1` })),
2260
+ userId && typeof window !== 'undefined' ? (React__default["default"].createElement("script", { dangerouslySetInnerHTML: {
2261
+ __html: `window.dataLayer = window.dataLayer || []; window.dataLayer.push({'userID': '${userId}'});`,
2262
+ } })) : null));
2263
+ };
2264
+
2265
+ const StyledIconContainerClass = 'hhgcomp-toolbanner-iconcontainer';
2266
+ const StyledInnerClass = 'hhgcomp-toolbanner-inner';
2267
+ const StyledWrapper$1 = defaultClassWrapper.setDefaultClass(styled__default["default"].div `
2268
+ position: relative;
2269
+ width: 100%;
2270
+ height: 100%;
2271
+ `, 'hhgcomp-toolbanner-wrapper');
2272
+ const StyledContainer = styled__default["default"].div `
2273
+ width: 100%;
2274
+ a {
2275
+ text-decoration: none;
2276
+ color: inherit;
2277
+ }
2278
+
2279
+ background-color: ${(props) => props['data-banner-color'] || index$5.themeColors.blue[1]};
2280
+
2281
+ &[data-site='marryBaby'] {
2282
+ a {
2283
+ text-decoration: underline;
2284
+ }
2285
+ ${utils.MediaQueries.mbDown} {
2286
+ padding-bottom: 0;
2287
+ }
2288
+ }
2289
+
2290
+ ${utils.MediaQueries.tdDown} {
2291
+ height: auto;
2292
+ ${StyledWrapper$1.classSelector} {
2293
+ .${StyledInnerClass} {
2294
+ display: flex;
2295
+ align-items: center;
2296
+ ${utils.MediaQueries.mbDown} {
2297
+ justify-content: space-between;
2298
+ }
2299
+ .${StyledIconContainerClass} {
2300
+ position: relative;
2301
+ right: -50px;
2302
+ bottom: -20px;
2303
+ width: 110px;
2304
+ min-width: 0;
2305
+ height: auto;
2306
+ min-height: 0;
2307
+ align-self: flex-end;
2308
+ margin-bottom: -20px;
2309
+ ${utils.MediaQueries.mbDown} {
2310
+ right: unset;
2311
+ }
2312
+ }
2313
+ }
2314
+ }
2315
+ }
2316
+ `;
2317
+
2318
+ const ToolsBannerCard = ({ className, heading, bannerColor, medicalReview = {
2319
+ link: '#',
2320
+ reviewer: '',
2321
+ date: '',
2322
+ }, icon, style, isPregTool, }) => {
2323
+ const { t } = useTranslations.useTranslations();
2324
+ const theme = core.useMantineTheme();
2325
+ const isMarryBaby = theme.other.template === 'mb';
2326
+ const siteType = isMarryBaby ? 'marryBaby' : 'helloSites';
2327
+ const headingAs = 'h2';
2328
+ const medicalReviewEle = (medicalReview === null || medicalReview === void 0 ? void 0 : medicalReview.reviewer) ? (React__default["default"].createElement(index$2.Text, { size: "label2", as: "div", className: "embedded-review", sx: {
2329
+ a: {
2330
+ textUnderlineOffset: '2px',
2331
+ textDecoration: 'underline',
2332
+ },
2333
+ } },
2334
+ React__default["default"].createElement("div", { dangerouslySetInnerHTML: {
2335
+ __html: t('toolPage.toolReviewer', {
2336
+ expert_name: `<a href="${medicalReview.link}">${medicalReview.reviewer.trim()}</a>`,
2337
+ date: medicalReview.date,
2338
+ }),
2339
+ } }))) : null;
2340
+ return (React__default["default"].createElement(StyledContainer, { className: className, style: style, "data-site": siteType, "data-banner-color": bannerColor ||
2341
+ (isMarryBaby
2342
+ ? theme.colors.mb[1]
2343
+ : isPregTool
2344
+ ? theme.colors.pink[1]
2345
+ : theme.colors.blue[1]) },
2346
+ React__default["default"].createElement(StyledWrapper$1, null,
2347
+ React__default["default"].createElement(core.Flex, { gap: core.rem(24), align: 'center', justify: 'space-between', sx: { padding: core.rem(16), gap: core.rem(24), '.heading': {} } },
2348
+ React__default["default"].createElement(core.Box, null,
2349
+ React__default["default"].createElement(index$2.Text, { size: isMarryBaby ? 'h4' : 'h3', as: headingAs, className: 'heading' }, heading),
2350
+ medicalReview && (React__default["default"].createElement(index$2.Text, { size: "n1", as: "div" }, medicalReviewEle))),
2351
+ React__default["default"].createElement(core.Flex, { justify: 'center', align: 'center', sx: (theme) => ({
2352
+ width: core.rem(80),
2353
+ height: core.rem(80),
2354
+ borderRadius: isMarryBaby ? '24px' : '50%',
2355
+ backgroundColor: '#fff',
2356
+ flexShrink: 0,
2357
+ img: {
2358
+ maxWidth: core.rem(48),
2359
+ maxHeight: core.rem(48),
2360
+ },
2361
+ [theme.fn.smallerThan('sm')]: {
2362
+ width: core.rem(64),
2363
+ height: core.rem(64),
2364
+ img: {
2365
+ maxWidth: core.rem(40),
2366
+ maxHeight: core.rem(40),
2367
+ },
2368
+ },
2369
+ }) }, icon)))));
2370
+ };
2371
+
2372
+ var useStyles$2 = core.createStyles(() => {
2373
+ return {
2374
+ root: {
2375
+ borderTopLeftRadius: 'inherit',
2376
+ borderTopRightRadius: 'inherit',
2377
+ },
2378
+ };
2379
+ });
2380
+
2381
+ const CardWrapperContext = React.createContext({});
2382
+
2383
+ const Banner = (_a) => {
2384
+ var { styles, classNames, className } = _a, rest = tslib_es6.__rest(_a, ["styles", "classNames", "className"]);
2385
+ const { classes, cx } = useStyles$2(undefined, {
2386
+ name: 'HealthToolCardWrapper__Banner',
2387
+ styles,
2388
+ classNames,
2389
+ });
2390
+ const { isPregTool } = React.useContext(CardWrapperContext);
2391
+ return (React__default["default"].createElement(ToolsBannerCard, Object.assign({ isPregTool: isPregTool, className: cx(className, classes.root) }, rest)));
2392
+ };
2393
+
2394
+ var useStyles$1 = core.createStyles(() => {
2395
+ return {
2396
+ root: {
2397
+ padding: core.rem(16),
2398
+ },
2399
+ };
2400
+ });
2401
+
2402
+ const Body = (_a) => {
2403
+ var { children, styles, classNames, className } = _a, rest = tslib_es6.__rest(_a, ["children", "styles", "classNames", "className"]);
2404
+ const { classes, cx } = useStyles$1(undefined, {
2405
+ name: 'HealthToolCardWrapper',
2406
+ styles,
2407
+ classNames,
2408
+ });
2409
+ return (React__default["default"].createElement(core.Box, Object.assign({ className: cx(className, classes.root) }, rest), children));
2410
+ };
2411
+
2412
+ var useStyles = core.createStyles((theme, { isPregTool }) => {
2413
+ const isMarryBaby = theme.other.template === 'mb';
2414
+ return {
2415
+ root: {
2416
+ display: 'flex',
2417
+ flexDirection: 'column',
2418
+ borderRadius: core.rem(isMarryBaby ? 16 : 8),
2419
+ backgroundColor: '#fff',
2420
+ border: `1px solid ${isMarryBaby
2421
+ ? theme.colors.mb[2]
2422
+ : isPregTool
2423
+ ? theme.colors.pink[1]
2424
+ : theme.colors.blue[2]}`,
2425
+ },
2426
+ row: {
2427
+ display: 'flex',
2428
+ alignItems: 'stretch',
2429
+ justifyContent: 'space-between',
2430
+ gap: core.rem(16),
2431
+ },
2432
+ labelWrapper: {
2433
+ flex: '1 1 0px',
2434
+ display: 'flex',
2435
+ alignItems: 'center',
2436
+ borderBottom: `1px solid ${theme.colors.neutral[1]}`,
2437
+ },
2438
+ label: {
2439
+ fontSize: core.rem(14),
2440
+ color: theme.colors.gray[6],
2441
+ },
2442
+ control: {
2443
+ width: core.rem(180),
2444
+ flexShrink: 1,
2445
+ '&.error': {
2446
+ 'button, input': {
2447
+ borderColor: theme.colors.red[7],
2448
+ },
2449
+ },
2450
+ },
2451
+ radioLabel: {
2452
+ fontSize: core.rem(16),
2453
+ },
2454
+ radioRoot: {
2455
+ padding: `${core.rem(10)} 0`,
2456
+ margin: 0,
2457
+ },
2458
+ bmiVal: {
2459
+ display: 'inline-block',
2460
+ },
2461
+ inputWithUnit__wrapper: {
2462
+ position: 'relative',
2463
+ },
2464
+ inputWithUnit__unit: {
2465
+ position: 'absolute',
2466
+ top: 0,
2467
+ right: 0,
2468
+ bottom: 0,
2469
+ paddingRight: core.rem(10),
2470
+ display: 'flex',
2471
+ alignItems: 'center',
2472
+ },
2473
+ inputWithUnit__unitText: {
2474
+ color: theme.colors.gray[6],
2475
+ },
2476
+ inputWithUnit__input: {
2477
+ input: {
2478
+ paddingRight: core.rem(30),
2479
+ '::-webkit-inner-spin-button': { '-webkit-appearance': 'none' },
2480
+ },
2481
+ },
2482
+ submitBtn: {},
2483
+ switchRoot: {
2484
+ padding: '16px 0',
2485
+ },
2486
+ };
2487
+ });
2488
+
2489
+ const _HealthToolCardWrapper = (_a) => {
2490
+ var { children, styles, classNames, className, isPregTool } = _a, rest = tslib_es6.__rest(_a, ["children", "styles", "classNames", "className", "isPregTool"]);
2491
+ const { classes, cx } = useStyles({ isPregTool }, {
2492
+ name: 'HealthToolCardWrapper',
2493
+ styles,
2494
+ classNames,
2495
+ });
2496
+ return (React__default["default"].createElement(CardWrapperContext.Provider, { value: {
2497
+ isPregTool,
2498
+ } },
2499
+ React__default["default"].createElement(core.Box, Object.assign({ className: cx(className, classes.root) }, rest), children)));
2500
+ };
2501
+ const HealthToolCardWrapper = _HealthToolCardWrapper;
2502
+ HealthToolCardWrapper.Body = Body;
2503
+ HealthToolCardWrapper.Banner = Banner;
2504
+
2505
+ const DueDateCardEmbed = (_a) => {
2506
+ var _b;
2507
+ var { dueDatePageInfo, expertUrl, formProps } = _a, props = tslib_es6.__rest(_a, ["dueDatePageInfo", "expertUrl", "formProps"]);
2508
+ const { t } = useTranslations.useTranslations();
2509
+ return (React__default["default"].createElement(HealthToolCardWrapper, Object.assign({ isPregTool: true }, props),
2510
+ React__default["default"].createElement(HealthToolCardWrapper.Banner, { color: "pink", icon: React__default["default"].createElement("img", { alt: "health-tool-icon", src: (dueDatePageInfo === null || dueDatePageInfo === void 0 ? void 0 : dueDatePageInfo.featured_image) ||
2511
+ index$4.CommonGAssets.getAssetPath('health-tools/due-date-icon.svg'), loading: "lazy" }), heading: t('healthTools.dueDateCalculator'), medicalReview: {
2512
+ link: expertUrl,
2513
+ reviewer: (_b = dueDatePageInfo === null || dueDatePageInfo === void 0 ? void 0 : dueDatePageInfo.reviewed_by) === null || _b === void 0 ? void 0 : _b.display_name,
2514
+ date: dueDatePageInfo === null || dueDatePageInfo === void 0 ? void 0 : dueDatePageInfo.reviewed_date,
2515
+ } }),
2516
+ React__default["default"].createElement(HealthToolCardWrapper.Body, null,
2517
+ React__default["default"].createElement(index$a.DueDateForm, Object.assign({}, formProps)))));
2518
+ };
2519
+
2520
+ const BMICardEmbed = (_a) => {
2521
+ var _b, _c, _d;
2522
+ var { bmiContent, bmiGenerated, bmiUnit, formProps } = _a, props = tslib_es6.__rest(_a, ["bmiContent", "bmiGenerated", "bmiUnit", "formProps"]);
2523
+ const { t } = useTranslations.useTranslations();
2524
+ return (React__default["default"].createElement(HealthToolCardWrapper, Object.assign({}, props),
2525
+ React__default["default"].createElement(HealthToolCardWrapper.Banner, { icon: React__default["default"].createElement("img", { alt: "health-tool-icon", src: (bmiContent === null || bmiContent === void 0 ? void 0 : bmiContent.featured_image) ||
2526
+ index$4.CommonGAssets.getAssetPath('health-tools/bmi.svg'), loading: "lazy" }), heading: t('bmi.heading'), medicalReview: {
2527
+ link: (_b = bmiContent === null || bmiContent === void 0 ? void 0 : bmiContent.reviewBy) === null || _b === void 0 ? void 0 : _b.link,
2528
+ reviewer: (_c = bmiContent === null || bmiContent === void 0 ? void 0 : bmiContent.reviewBy) === null || _c === void 0 ? void 0 : _c.reviewer,
2529
+ date: (_d = bmiContent === null || bmiContent === void 0 ? void 0 : bmiContent.reviewBy) === null || _d === void 0 ? void 0 : _d.date,
2530
+ } }),
2531
+ React__default["default"].createElement(HealthToolCardWrapper.Body, null,
2532
+ React__default["default"].createElement(index$a.BmiForm, Object.assign({ bmiGenerated: bmiGenerated, bmiUnit: bmiUnit }, formProps)))));
2533
+ };
2534
+
2535
+ const BabyGrowthCardEmbed = (_a) => {
2536
+ var _b, _c, _d;
2537
+ var { babyGrowthContent, formProps } = _a, props = tslib_es6.__rest(_a, ["babyGrowthContent", "formProps"]);
2538
+ return (React__default["default"].createElement(HealthToolCardWrapper, Object.assign({}, props),
2539
+ React__default["default"].createElement(HealthToolCardWrapper.Banner, { icon: React__default["default"].createElement("img", { className: "embedded-icon", alt: "health-tool-icon", src: (babyGrowthContent === null || babyGrowthContent === void 0 ? void 0 : babyGrowthContent.featuredImage) ||
2540
+ index$4.CommonGAssets.getAssetPath('health-tools/toolsIconBabyGrowth.svg'), loading: "lazy" }), heading: (babyGrowthContent === null || babyGrowthContent === void 0 ? void 0 : babyGrowthContent.title) || '', medicalReview: {
2541
+ link: (_b = babyGrowthContent === null || babyGrowthContent === void 0 ? void 0 : babyGrowthContent.reviewBy) === null || _b === void 0 ? void 0 : _b.link,
2542
+ reviewer: (_c = babyGrowthContent === null || babyGrowthContent === void 0 ? void 0 : babyGrowthContent.reviewBy) === null || _c === void 0 ? void 0 : _c.reviewer.trim(),
2543
+ date: (_d = babyGrowthContent === null || babyGrowthContent === void 0 ? void 0 : babyGrowthContent.reviewBy) === null || _d === void 0 ? void 0 : _d.date,
2544
+ } }),
2545
+ React__default["default"].createElement(HealthToolCardWrapper.Body, null,
2546
+ React__default["default"].createElement(index$b.BabyGrowthForm, Object.assign({}, formProps)))));
2547
+ };
2548
+
2549
+ const BabyPoopEmbed = (_a) => {
2550
+ var { babyPoopPage, formProps } = _a, props = tslib_es6.__rest(_a, ["babyPoopPage", "formProps"]);
2551
+ const { reviewedBy, reviewedDate } = babyPoopPage || {};
2552
+ return (React__default["default"].createElement(HealthToolCardWrapper, Object.assign({}, props),
2553
+ React__default["default"].createElement(HealthToolCardWrapper.Banner, { icon: React__default["default"].createElement("img", { alt: "health-tool-icon", src: babyPoopPage === null || babyPoopPage === void 0 ? void 0 : babyPoopPage.featuredImage, loading: "lazy" }), heading: babyPoopPage.title, medicalReview: {
2554
+ link: reviewedBy === null || reviewedBy === void 0 ? void 0 : reviewedBy.profileUrl,
2555
+ reviewer: reviewedBy === null || reviewedBy === void 0 ? void 0 : reviewedBy.displayName,
2556
+ date: reviewedDate,
2557
+ } }),
2558
+ React__default["default"].createElement(HealthToolCardWrapper.Body, null,
2559
+ React__default["default"].createElement(index$a.BabyPoopForm, Object.assign({ babyPoopPage: babyPoopPage }, formProps)))));
2560
+ };
2561
+
2562
+ const THRCardEmbed = (_a) => {
2563
+ var _b, _c;
2564
+ var { thrContent, formProps } = _a, props = tslib_es6.__rest(_a, ["thrContent", "formProps"]);
2565
+ const { t } = useTranslations.useTranslations();
2566
+ return (React__default["default"].createElement(HealthToolCardWrapper, Object.assign({}, props),
2567
+ React__default["default"].createElement(HealthToolCardWrapper.Banner, { icon: React__default["default"].createElement("img", { alt: "health-tool-icon", src: (thrContent === null || thrContent === void 0 ? void 0 : thrContent.featured_image) ||
2568
+ index$4.CommonGAssets.getAssetPath('health-tools/target-heart-rate-icon.svg'), loading: "lazy" }), heading: t('targetHearRate.heading'), medicalReview: ((_b = thrContent === null || thrContent === void 0 ? void 0 : thrContent.reviewedBy) === null || _b === void 0 ? void 0 : _b.display_name)
2569
+ ? {
2570
+ link: dataTransform.formatUserProfileUrl(thrContent === null || thrContent === void 0 ? void 0 : thrContent.reviewedBy),
2571
+ reviewer: (_c = thrContent === null || thrContent === void 0 ? void 0 : thrContent.reviewedBy) === null || _c === void 0 ? void 0 : _c.display_name,
2572
+ date: thrContent === null || thrContent === void 0 ? void 0 : thrContent.reviewedDate,
2573
+ }
2574
+ : undefined }),
2575
+ React__default["default"].createElement(HealthToolCardWrapper.Body, null,
2576
+ React__default["default"].createElement(index$a.ThrForm, Object.assign({}, formProps)))));
2577
+ };
2578
+
2579
+ const BMRCardEmbed = (_a) => {
2580
+ var _b, _c, _d;
2581
+ var { bmrContent, bmiGenerated, bmiUnit, formProps } = _a, props = tslib_es6.__rest(_a, ["bmrContent", "bmiGenerated", "bmiUnit", "formProps"]);
2582
+ const { t } = useTranslations.useTranslations();
2583
+ return (React__default["default"].createElement(HealthToolCardWrapper, Object.assign({}, props),
2584
+ React__default["default"].createElement(HealthToolCardWrapper.Banner, { icon: React__default["default"].createElement("img", { alt: "health-tool-icon", src: (bmrContent === null || bmrContent === void 0 ? void 0 : bmrContent.featured_image) ||
2585
+ index$4.CommonGAssets.getAssetPath('health-tools/bmr.svg'), loading: "lazy" }), heading: t('bmr.heading'), medicalReview: {
2586
+ link: (_b = bmrContent === null || bmrContent === void 0 ? void 0 : bmrContent.reviewBy) === null || _b === void 0 ? void 0 : _b.link,
2587
+ reviewer: (_c = bmrContent === null || bmrContent === void 0 ? void 0 : bmrContent.reviewBy) === null || _c === void 0 ? void 0 : _c.reviewer,
2588
+ date: (_d = bmrContent === null || bmrContent === void 0 ? void 0 : bmrContent.reviewBy) === null || _d === void 0 ? void 0 : _d.date,
2589
+ } }),
2590
+ React__default["default"].createElement(HealthToolCardWrapper.Body, null,
2591
+ React__default["default"].createElement(index$a.BmiForm, Object.assign({ bmiGenerated: bmiGenerated, bmiUnit: bmiUnit }, formProps, { submitProps: Object.assign(Object.assign({}, formProps === null || formProps === void 0 ? void 0 : formProps.submitProps), { dataEventAction: 'BMR' }) })))));
2592
+ };
2593
+
2594
+ const OvulationCardEmbed = (_a) => {
2595
+ var _b;
2596
+ var { ovulationPageInfo, expertUrl, formProps, isMobile } = _a, props = tslib_es6.__rest(_a, ["ovulationPageInfo", "expertUrl", "formProps", "isMobile"]);
2597
+ const { t } = useTranslations.useTranslations();
2598
+ return (React__default["default"].createElement(HealthToolCardWrapper, Object.assign({ isPregTool: true }, props),
2599
+ React__default["default"].createElement(HealthToolCardWrapper.Banner, { icon: React__default["default"].createElement("img", { alt: "health-tool-icon", src: (ovulationPageInfo === null || ovulationPageInfo === void 0 ? void 0 : ovulationPageInfo.featured_image) ||
2600
+ index$4.CommonGAssets.getAssetPath('health-tools/ovulation-icon.svg'), loading: "lazy" }), heading: t('healthTools.ovulationCalculator'), medicalReview: {
2601
+ link: expertUrl,
2602
+ reviewer: (_b = ovulationPageInfo === null || ovulationPageInfo === void 0 ? void 0 : ovulationPageInfo.reviewed_by) === null || _b === void 0 ? void 0 : _b.display_name,
2603
+ date: ovulationPageInfo === null || ovulationPageInfo === void 0 ? void 0 : ovulationPageInfo.reviewed_date,
2604
+ } }),
2605
+ React__default["default"].createElement(HealthToolCardWrapper.Body, null,
2606
+ React__default["default"].createElement(index$a.OvulationForm, Object.assign({ isMobile: isMobile }, formProps)))));
2607
+ };
2608
+
2609
+ const BabyVaccineCardEmbed = (_a) => {
2610
+ var _b, _c, _d;
2611
+ var { babyVaccineContent, formProps } = _a, props = tslib_es6.__rest(_a, ["babyVaccineContent", "formProps"]);
2612
+ const { t } = useTranslations.useTranslations();
2613
+ return (React__default["default"].createElement(HealthToolCardWrapper, Object.assign({}, props),
2614
+ React__default["default"].createElement(HealthToolCardWrapper.Banner, { icon: React__default["default"].createElement("img", { alt: "health-tool-icon", src: (babyVaccineContent === null || babyVaccineContent === void 0 ? void 0 : babyVaccineContent.featuredImage) ||
2615
+ index$4.CommonGAssets.getAssetPath('health-tools/baby-vaccine-icon.svg'), loading: "lazy" }), heading: t('babyVaccineTool.heading'), medicalReview: {
2616
+ link: ((_b = babyVaccineContent === null || babyVaccineContent === void 0 ? void 0 : babyVaccineContent.reviewBy) === null || _b === void 0 ? void 0 : _b.link) || '',
2617
+ reviewer: ((_c = babyVaccineContent === null || babyVaccineContent === void 0 ? void 0 : babyVaccineContent.reviewBy) === null || _c === void 0 ? void 0 : _c.reviewer) || '',
2618
+ date: ((_d = babyVaccineContent === null || babyVaccineContent === void 0 ? void 0 : babyVaccineContent.reviewBy) === null || _d === void 0 ? void 0 : _d.date) || '',
2619
+ } }),
2620
+ React__default["default"].createElement(HealthToolCardWrapper.Body, null,
2621
+ React__default["default"].createElement(index$a.BabyVaccineForm, Object.assign({}, formProps)))));
2622
+ };
2623
+
2624
+ const PWGCardEmbed = (_a) => {
2625
+ var _b;
2626
+ var { pwgContent, formProps } = _a, props = tslib_es6.__rest(_a, ["pwgContent", "formProps"]);
2627
+ const { t } = useTranslations.useTranslations();
2628
+ return (React__default["default"].createElement(HealthToolCardWrapper, Object.assign({ isPregTool: true }, props),
2629
+ React__default["default"].createElement(HealthToolCardWrapper.Banner, { icon: React__default["default"].createElement("img", { alt: "health-tool-icon", src: (pwgContent === null || pwgContent === void 0 ? void 0 : pwgContent.featuredImage) ||
2630
+ index$4.CommonGAssets.getAssetPath('health-tools/pwg-icon.svg'), loading: "lazy" }), heading: t('pregnancyWeightGain.heading'), medicalReview: {
2631
+ link: dataTransform.formatUserProfileUrl(pwgContent === null || pwgContent === void 0 ? void 0 : pwgContent.reviewedBy),
2632
+ reviewer: (_b = pwgContent === null || pwgContent === void 0 ? void 0 : pwgContent.reviewedBy) === null || _b === void 0 ? void 0 : _b.display_name,
2633
+ date: pwgContent === null || pwgContent === void 0 ? void 0 : pwgContent.reviewedDate,
2634
+ } }),
2635
+ React__default["default"].createElement(HealthToolCardWrapper.Body, null,
2636
+ React__default["default"].createElement(index$a.PWGForm, Object.assign({}, formProps)))));
2637
+ };
2638
+
2639
+ const StyledCalendarWrapper$1 = styled__default["default"].div `
2640
+ flex: 1;
2641
+ `;
2642
+ const StyledCalendarCellsWrapper = styled__default["default"].div `
2643
+ padding: 0 10px;
2644
+ `;
2645
+ const StyledCalendarHead = styled__default["default"].div `
2646
+ display: flex;
2647
+ height: 80px;
2648
+ align-items: center;
2649
+ .calendar-month {
2650
+ font-size: 16px;
2651
+ flex: 1;
2652
+ text-align: center;
2653
+ strong {
2654
+ margin-left: 5px;
2655
+ }
2656
+ }
2657
+ ${utils.MediaQueries.mbDown} {
2658
+ height: 70px;
2659
+ }
2660
+ `;
2661
+ const StyledCalendarGrid = styled__default["default"].div `
2662
+ display: grid;
2663
+ grid-template-columns: repeat(7, 1fr);
2664
+ row-gap: 2px;
2665
+ `;
2666
+ const StyledCalendarDaysOfWeek = styled__default["default"](StyledCalendarGrid) `
2667
+ margin-bottom: 8px;
2668
+ `;
2669
+ styled__default["default"].div `
2670
+ height: 40px;
2671
+ width: 40px;
2672
+ display: flex;
2673
+ align-items: center;
2674
+ justify-content: center;
2675
+ `;
2676
+ const StyledCalendarDayLabel = styled__default["default"].div `
2677
+ font-size: 14px;
2678
+ display: flex;
2679
+ justify-content: center;
2680
+ align-items: center;
2681
+ color: 1px solid ${theme.theme.colors.gray800};
2682
+ font-weight: 300;
2683
+ `;
2684
+ const StyledCalendarMonthSeparator = styled__default["default"].div `
2685
+ width: 18px;
2686
+ position: relative;
2687
+ &::before {
2688
+ content: '';
2689
+ position: absolute;
2690
+ inset: 16px 0 0 0;
2691
+ width: 1px;
2692
+ left: 50%;
2693
+ right: 50%;
2694
+ background: ${theme.theme.colors.neutral100};
2695
+ }
2696
+ `;
2697
+ const StyledCalendarDaysWrapper = styled__default["default"].div `
2698
+ margin: 0 auto;
2699
+ `;
2700
+ const StyledCalendarMonthWrapper = styled__default["default"].div `
2701
+ position: relative;
2702
+ `;
2703
+ const StyledCalendarDateGrid = StyledCalendarGrid;
2704
+ const StyledCalendarDayNumberWrapper = styled__default["default"].div `
2705
+ position: relative;
2706
+ display: flex;
2707
+ justify-content: center;
2708
+ align-items: center;
2709
+ height: 34px;
2710
+ ${utils.MediaQueries.mbUp} {
2711
+ height: 38px;
2712
+ }
2713
+ &[data-is-disabled='true'] {
2714
+ opacity: 0.3;
2715
+ }
2716
+ &[data-in-range='true']:not([data-is-from='true'][data-is-to='true']) {
2717
+ background-color: ${theme.theme.colors.gray100};
2718
+ }
2719
+ &:before {
2720
+ position: absolute;
2721
+ top: 0;
2722
+ bottom: 0;
2723
+ right: 0;
2724
+ background-color: ${theme.theme.colors.gray100};
2725
+ }
2726
+ &[data-is-from='true'][data-in-range='true'][data-is-to='false'] {
2727
+ background-color: transparent;
2728
+ &:before {
2729
+ content: '';
2730
+ left: 50%;
2731
+ right: 0;
2732
+ }
2733
+ }
2734
+
2735
+ &[data-is-to='true'][data-in-range='true'][data-is-from='false'],
2736
+ &:hover[data-in-range='true']:is([data-has-range='false'] &) {
2737
+ background-color: transparent;
2738
+ &:before {
2739
+ content: '';
2740
+ left: 0;
2741
+ right: 50%;
2742
+ }
2743
+ }
2744
+ `;
2745
+ const StyledCalendarDayNumber = styled__default["default"].div `
2746
+ position: relative;
2747
+ font-weight: 600;
2748
+ ${utils.MediaQueries.mbDown} {
2749
+ width: 32px;
2750
+ height: 32px;
2751
+ }
2752
+ ${utils.MediaQueries.mbUp} {
2753
+ width: 36px;
2754
+ height: 36px;
2755
+ }
2756
+ display: flex;
2757
+ justify-content: center;
2758
+ align-items: center;
2759
+ cursor: pointer;
2760
+ [data-is-disabled='true'] & {
2761
+ cursor: not-allowed;
2762
+ }
2763
+ line-height: 1;
2764
+ color: 1px solid ${theme.theme.colors.gray800};
2765
+ [data-is-selected='true'] &,
2766
+ [data-is-today='true'] &,
2767
+ [data-is-selected='false']:hover & {
2768
+ border-radius: 32px;
2769
+ }
2770
+ [data-is-selected='true'] & {
2771
+ background-color: ${theme.theme.colors.primaryBase};
2772
+ color: white;
2773
+ }
2774
+ [data-is-selected='false']:hover & {
2775
+ background-color: ${theme.theme.colors.primary50};
2776
+ }
2777
+ [data-is-today='true'][data-is-selected='false'] & {
2778
+ background-color: transparent;
2779
+ border-radius: 32px;
2780
+ border: 1px solid ${theme.theme.colors.primaryBase};
2781
+ }
2782
+ `;
2783
+
2784
+ function handleClickDay(d, range) {
2785
+ if (!range.from && !range.to) {
2786
+ return Object.assign(Object.assign({}, range), { from: d });
2787
+ }
2788
+ if (range.from && range.to) {
2789
+ return { from: d, to: null };
2790
+ }
2791
+ if (range.from) {
2792
+ if (dateFns.isBefore(d, range.from)) {
2793
+ return Object.assign(Object.assign({}, range), { from: d });
2794
+ }
2795
+ else {
2796
+ return Object.assign(Object.assign({}, range), { to: d });
2797
+ }
2798
+ }
2799
+ return range;
2800
+ }
2801
+
2802
+ const dateLocaleByLocale = {
2803
+ 'en-PH': enUS__default["default"],
2804
+ 'vi-VN': vi__default["default"],
2805
+ 'zh-TW': zhTW__default["default"],
2806
+ 'id-ID': id__default["default"],
2807
+ };
2808
+ function DateRangePickerCalendar(props) {
2809
+ const { value = { from: null, to: null } } = props;
2810
+ const [hoverDay, setHoverDay] = React.useState(null);
2811
+ const { isMobile } = index$5.useScreenSize();
2812
+ const [range, setRange] = React.useState(() => value);
2813
+ const [date, setDate] = React.useState(() => { var _a; return dateFns.startOfMonth((_a = value.from) !== null && _a !== void 0 ? _a : new Date()); });
2814
+ const nextMonth = React.useMemo(() => dateFns.addMonths(date, 1), [date]);
2815
+ function goToPreviousMonth() {
2816
+ setDate((d) => dateFns.subMonths(d, 1));
2817
+ }
2818
+ function goToNextMonth() {
2819
+ setDate((d) => dateFns.addMonths(d, 1));
2820
+ }
2821
+ const monthProps = Object.assign(Object.assign({}, props), { goToNextMonth,
2822
+ goToPreviousMonth,
2823
+ range,
2824
+ setRange,
2825
+ hoverDay,
2826
+ setHoverDay });
2827
+ return (React__default["default"].createElement(React__default["default"].Fragment, null,
2828
+ React__default["default"].createElement(DateRangePickerCalendarMonth, Object.assign({}, monthProps, { date: date })),
2829
+ !isMobile && React__default["default"].createElement(StyledCalendarMonthSeparator, null),
2830
+ !isMobile && (React__default["default"].createElement(DateRangePickerCalendarMonth, Object.assign({}, monthProps, { date: nextMonth })))));
2831
+ }
2832
+ function DateRangePickerCalendarMonth({ date,
2833
+ // value,
2834
+ range, setRange, onChange, goToPreviousMonth, goToNextMonth, minDate, maxDate, close = () => undefined, autoClose = false, hoverDay, setHoverDay, }) {
2835
+ const { locale } = useTranslations.useTranslations();
2836
+ const dateLocale = React.useMemo(() => { var _a; return (_a = dateLocaleByLocale[locale]) !== null && _a !== void 0 ? _a : dateLocaleByLocale['en-PH']; }, [locale]);
2837
+ const monthLabel = React.useMemo(() => dateFns.format(date, 'MMMM', { locale: dateLocale }), [date, dateLocale]);
2838
+ const weekDays = React.useMemo(() => {
2839
+ if (!dateLocale) {
2840
+ return [];
2841
+ }
2842
+ return [1, 2, 3, 4, 5, 6, 0].map((i) => dateLocale.localize.day(i, { width: 'narrow' }));
2843
+ }, [dateLocale]);
2844
+ React.useEffect(() => {
2845
+ if (range.from && range.to) {
2846
+ onChange(range);
2847
+ }
2848
+ }, [range]);
2849
+ function renderWeekDays() {
2850
+ return (React__default["default"].createElement(StyledCalendarDaysOfWeek, null, weekDays.map((d, i) => (React__default["default"].createElement(StyledCalendarDayLabel, { key: `${d}-${i}` }, d)))));
2851
+ }
2852
+ function renderMonth() {
2853
+ const year = date.getFullYear();
2854
+ const monthIndex = date.getMonth();
2855
+ const daysInMonth = dateFns.getDaysInMonth(date);
2856
+ const days = [];
2857
+ for (let i = 1; i <= daysInMonth; i++) {
2858
+ days.push(new Date(year, monthIndex, i));
2859
+ }
2860
+ const weekDayIndex = days[0] ? days[0].getDay() : 0;
2861
+ if (weekDayIndex !== 1) {
2862
+ const idx = weekDayIndex === 0 ? 6 : weekDayIndex - 1;
2863
+ for (let i = 0; i < idx; i++) {
2864
+ days.unshift(null);
2865
+ }
2866
+ }
2867
+ return (React__default["default"].createElement(StyledCalendarMonthWrapper, { key: `month-${monthIndex}`, "data-month-index": monthIndex, "data-has-range": Boolean(range.from && range.to) },
2868
+ React__default["default"].createElement(StyledCalendarDaysWrapper, null,
2869
+ React__default["default"].createElement(StyledCalendarDateGrid, null, days.map(renderDay)))));
2870
+ }
2871
+ function renderDay(d, index) {
2872
+ if (d === null) {
2873
+ return (React__default["default"].createElement(StyledCalendarDayNumberWrapper, { key: `idx-${index}`, "data-empty": "true" }));
2874
+ }
2875
+ const day = d.getDate();
2876
+ const isDateToday = dateFns.isToday(d);
2877
+ const isFrom = range.from ? dateFns.isSameDay(range.from, d) : false;
2878
+ const isTo = range.to ? dateFns.isSameDay(range.to, d) : false;
2879
+ const isSelected = isFrom || isTo;
2880
+ const hasHoveredDay = hoverDay !== null;
2881
+ let inRange = false;
2882
+ if (hasHoveredDay &&
2883
+ range.from &&
2884
+ dateFns.isBefore(range.from, hoverDay) &&
2885
+ !range.to) {
2886
+ inRange = dateFns.isWithinInterval(d, { start: range.from, end: hoverDay });
2887
+ }
2888
+ else if (range.from && range.to) {
2889
+ inRange = dateFns.isWithinInterval(d, { start: range.from, end: range.to });
2890
+ }
2891
+ let isDisabled = false;
2892
+ if (minDate && maxDate) {
2893
+ isDisabled = !dateFns.isWithinInterval(d, { start: minDate, end: maxDate });
2894
+ }
2895
+ else if (minDate) {
2896
+ isDisabled = dateFns.isBefore(d, minDate);
2897
+ }
2898
+ else if (maxDate) {
2899
+ isDisabled = dateFns.isAfter(d, maxDate);
2900
+ }
2901
+ return (React__default["default"].createElement(StyledCalendarDayNumberWrapper, { key: day, "data-is-today": isDateToday, "data-is-past": !isDateToday && dateFns.isPast(d), "data-is-selected": isSelected, "data-is-disabled": isDisabled, "data-in-range": inRange, "data-is-from": isFrom, "data-is-to": isTo, onMouseEnter: () => {
2902
+ setHoverDay(d);
2903
+ }, onMouseLeave: () => setHoverDay(null), onClick: () => {
2904
+ if (isDisabled) {
2905
+ return;
2906
+ }
2907
+ setRange((r) => {
2908
+ if (autoClose && range.from && !range.to) {
2909
+ close();
2910
+ }
2911
+ return handleClickDay(d, r);
2912
+ });
2913
+ } },
2914
+ React__default["default"].createElement(StyledCalendarDayNumber, { onClick: () => undefined },
2915
+ React__default["default"].createElement("p", null, day))));
2916
+ }
2917
+ return (React__default["default"].createElement(StyledCalendarWrapper$1, { className: "calendar-wrapper" },
2918
+ React__default["default"].createElement(StyledCalendarHead, null,
2919
+ React__default["default"].createElement(index$c.Button, { onClick: goToPreviousMonth, size: "md", color: "ghost", icon: React__default["default"].createElement("img", { src: index$4.CommonGAssets.getAssetPath('calendarArrowLeft.svg'), loading: "lazy" }) }),
2920
+ React__default["default"].createElement("div", { className: "calendar-month" },
2921
+ monthLabel,
2922
+ React__default["default"].createElement("strong", null, dateFns.format(date, 'yyyy'))),
2923
+ React__default["default"].createElement(index$c.Button, { onClick: goToNextMonth, size: "md", color: "ghost", icon: React__default["default"].createElement("img", { src: index$4.CommonGAssets.getAssetPath('calendarArrowRight.svg'), loading: "lazy" }) })),
2924
+ React__default["default"].createElement(StyledCalendarCellsWrapper, null,
2925
+ React__default["default"].createElement("div", null, renderWeekDays()),
2926
+ React__default["default"].createElement("div", null, renderMonth()))));
2927
+ }
2928
+
2929
+ const StyledWrapper = styled__default["default"].div `
2930
+ display: block;
2931
+ position: relative;
2932
+ width: 270px;
2933
+ input {
2934
+ pointer-events: none;
2935
+ caret-color: transparent;
2936
+ }
2937
+ ${utils.MediaQueries.mbDown} {
2938
+ width: 100%;
2939
+ }
2940
+ `;
2941
+ const StyledCalendarWrapper = styled__default["default"].div `
2942
+ display: flex;
2943
+ position: absolute;
2944
+ top: 46px;
2945
+ left: 0;
2946
+ width: 684px;
2947
+ border: 1px solid ${theme.theme.colors.gray200};
2948
+ filter: drop-shadow(0px 10px 16px rgba(0, 0, 0, 0.04))
2949
+ drop-shadow(0px 2px 8px rgba(0, 0, 0, 0.04))
2950
+ drop-shadow(0px 0px 1px rgba(0, 0, 0, 0.04));
2951
+ border-radius: ${theme.theme.borderRadius};
2952
+ background-color: white;
2953
+ z-index: 100;
2954
+ padding-bottom: 16px;
2955
+ align-items: stretch;
2956
+ user-select: none;
2957
+ ${utils.MediaQueries.mbDown} {
2958
+ width: 100%;
2959
+ }
2960
+ `;
2961
+
2962
+ /**
2963
+ * @deprecated Consider to use at '@hhgtech/hhg-components/mantine'
2964
+ */
2965
+ function DateRangePicker({ inputSize = 'md', name = 'date-range-picker', value, minDate, maxDate, onChange, className, autoClose = false, }) {
2966
+ if (!value) {
2967
+ value = { from: null, to: null };
2968
+ }
2969
+ const [opened, setOpened] = React.useState(false);
2970
+ function close() {
2971
+ setOpened(false);
2972
+ }
2973
+ const ref = React.useRef(null);
2974
+ useOutsideClick.useOutsideClick(ref, () => {
2975
+ close();
2976
+ });
2977
+ function handleChange(nextValue) {
2978
+ if (onChange) {
2979
+ onChange(nextValue);
2980
+ }
2981
+ }
2982
+ function formatDate(d) {
2983
+ return dateFns.format(d, 'dd/MM/yyyy');
2984
+ }
2985
+ const fieldValue = React.useMemo(() => {
2986
+ if (value.from && value.to) {
2987
+ if (dateFns.isSameDay(value.from, value.to)) {
2988
+ return formatDate(value.from);
2989
+ }
2990
+ return `${formatDate(value.from)} - ${formatDate(value.to)}`;
2991
+ }
2992
+ return '';
2993
+ }, [value.from, value.to]);
2994
+ function renderCalendar() {
2995
+ return (React__default["default"].createElement(DateRangePickerCalendar, { value: value, onChange: handleChange, minDate: minDate, maxDate: maxDate, close: close, autoClose: autoClose }));
2996
+ }
2997
+ return (React__default["default"].createElement(StyledWrapper, { className: [className, opened && 'focused'].filter(Boolean).join(' '), ref: ref },
2998
+ React__default["default"].createElement("label", { htmlFor: name },
2999
+ React__default["default"].createElement(index$7.PureInput, { size: inputSize, value: fieldValue, name: name, actionIcon: React__default["default"].createElement("img", { src: index$4.CommonGAssets.getAssetPath('calendar.svg'), loading: "lazy" }), onFocus: () => setOpened(true) })),
3000
+ opened ? (React__default["default"].createElement(StyledCalendarWrapper, { onMouseDown: (e) => {
3001
+ e.stopPropagation();
3002
+ } }, renderCalendar())) : null));
3003
+ }
3004
+
3005
+ var styles = {"breadcrumb":"WUqzfRb","separator":"MnVGtSY","textLink":"NclbhXQ"};
3006
+
3007
+ const BreadcrumbItem = ({ LinkComponent, page, isLast, onChangePage, }) => {
3008
+ const { label, value, isDropdown, dropdownItems, dataEventCategory, dataEventAction, dataEventLabel, } = page;
3009
+ if (isDropdown) {
3010
+ return (React__default["default"].createElement(index$d.Dropdown, { options: dropdownItems, placeholder: "...", id: "", placeholderIcon: null, onChange: onChangePage, className: "collapsed-breadcrumb" }));
3011
+ }
3012
+ return (React__default["default"].createElement("div", { className: styles.textLink, title: typeof label !== 'string' ? value : label, "data-last": isLast }, LinkComponent && (React__default["default"].createElement(LinkComponent, { "data-event-category": dataEventCategory, "data-event-action": dataEventAction, "data-event-label": dataEventLabel, href: value || '#' }, label))));
3013
+ };
3014
+ /**
3015
+ * @deprecated
3016
+ */
3017
+ const Breadcrumbs = ({ className, pages, size, LinkComponent = 'a', onChangePage, separator, }) => {
3018
+ const mappedList = React.useMemo(() => pages
3019
+ .map((item, index) => {
3020
+ if (pages.length > 4) {
3021
+ if (index > 1 && index < pages.length - 2)
3022
+ return null;
3023
+ if (index === 1) {
3024
+ return Object.assign(Object.assign({}, item), { isDropdown: index === 1, dropdownItems: pages.slice(1, pages.length - 2) });
3025
+ }
3026
+ return item;
3027
+ }
3028
+ return item;
3029
+ })
3030
+ .filter(Boolean), [pages]);
3031
+ return (React__default["default"].createElement("div", { "data-size": size, className: `${styles.breadcrumb} ${className || ''}` }, mappedList.map((page, index) => {
3032
+ const isLast = index + 1 === mappedList.length;
3033
+ return (React__default["default"].createElement(React.Fragment, { key: index },
3034
+ React__default["default"].createElement(BreadcrumbItem, { LinkComponent: LinkComponent, page: page, isLast: isLast, onChangePage: onChangePage }),
3035
+ !isLast &&
3036
+ (page.separator || separator || (React__default["default"].createElement("div", { className: styles.separator, "data-size": size })))));
3037
+ })));
3038
+ };
3039
+
3040
+ const StyledShareContainer = styled__default["default"].div `
3041
+ display: flex;
3042
+ gap: 20px;
3043
+ width: 100%;
3044
+ align-items: center;
3045
+ justify-content: center;
3046
+ .icon-group {
3047
+ display: flex;
3048
+ align-items: center;
3049
+ gap: 10px;
3050
+ a,
3051
+ svg {
3052
+ width: 32px;
3053
+ height: 32px;
3054
+ }
3055
+ .share {
3056
+ width: 32px;
3057
+ height: 32px;
3058
+ padding: 8px;
3059
+
3060
+ &:hover {
3061
+ background-color: ${theme.theme.colors.neutral50};
3062
+ }
3063
+
3064
+ svg {
3065
+ margin: 0;
3066
+ width: 16px;
3067
+ height: 16px;
3068
+ }
3069
+ }
3070
+ }
3071
+ `;
3072
+
3073
+ const AttachIcon = () => {
3074
+ return (React__default["default"].createElement("svg", { width: "17", height: "16", viewBox: "0 0 17 16", fill: "none" },
3075
+ React__default["default"].createElement("path", { d: "M6.86364 10.6666H5.22727C4.86912 10.6666 4.51448 10.5977 4.18359 10.4637C3.8527 10.3296 3.55205 10.1332 3.2988 9.8856C2.78734 9.3855 2.5 8.70722 2.5 7.99998C2.5 7.29274 2.78734 6.61446 3.2988 6.11436C3.81026 5.61426 4.50396 5.33331 5.22727 5.33331H6.86364M9.78374 5.33331H11.7727C12.1309 5.33331 12.4855 5.40229 12.8164 5.5363C13.1473 5.67031 13.4479 5.86674 13.7012 6.11436C13.9545 6.36198 14.1553 6.65596 14.2924 6.97949C14.4295 7.30303 14.5 7.64979 14.5 7.99998C14.5 8.35017 14.4295 8.69693 14.2924 9.02047C14.1553 9.344 13.9545 9.63798 13.7012 9.8856C13.4479 10.1332 13.1473 10.3296 12.8164 10.4637C12.4855 10.5977 12.1309 10.6666 11.7727 10.6666H9.78374", stroke: "#595959", strokeLinecap: "round", strokeLinejoin: "round" }),
3076
+ React__default["default"].createElement("path", { d: "M6.5 8H10.5", stroke: "#595959", strokeLinecap: "round", strokeLinejoin: "round" })));
3077
+ };
3078
+ const ShareContainer = ({ url, onCopied, locale, siteType, }) => {
3079
+ const { t } = useTranslations.useTranslations();
3080
+ const socialList = getSocialList.getSocialList({ shareUrl: url || '', locale }).filter((s) => !s.allowedLocales || s.allowedLocales.includes(locale));
3081
+ const copyToClipboard = () => tslib_es6.__awaiter(void 0, void 0, void 0, function* () {
3082
+ var _a;
3083
+ yield ((_a = navigator === null || navigator === void 0 ? void 0 : navigator.clipboard) === null || _a === void 0 ? void 0 : _a.writeText(url));
3084
+ onCopied === null || onCopied === void 0 ? void 0 : onCopied();
3085
+ });
3086
+ const currentUrl = React.useMemo(() => {
3087
+ if (typeof window !== 'undefined') {
3088
+ return window.location.href;
3089
+ }
3090
+ else
3091
+ return '';
3092
+ }, []);
3093
+ return (React__default["default"].createElement(StyledShareContainer, null,
3094
+ React__default["default"].createElement(index$2.Text, { size: "p3", color: theme.theme.colors.gray800 }, t('shareContainer.title')),
3095
+ React__default["default"].createElement("div", { className: "icon-group" },
3096
+ socialList.map((social, index) => (React__default["default"].createElement("a", { key: index, href: social.href, target: "_blank", rel: "noreferrer", "data-event-category": "Health Tool", "data-event-action": `Social Share - ${social.name}`, "data-event-label": currentUrl }, social.icon))),
3097
+ React__default["default"].createElement(index$c.Button, { theme: siteType, size: "sm", type: "button", color: "tertiary", className: "share", style: {}, icon: React__default["default"].createElement(AttachIcon, null), onClick: copyToClipboard, "data-event-category": "Health Tool", "data-event-action": "Copy Link", "data-event-label": currentUrl }))));
3098
+ };
3099
+
3100
+ const StyledShareDrawer = styled__default["default"](index$e.Drawer) `
3101
+ padding-bottom: 24px;
3102
+ .share-container {
3103
+ display: flex;
3104
+ flex-direction: column;
3105
+ gap: 24px;
3106
+ }
3107
+ .icon-group {
3108
+ margin-top: 12px;
3109
+ display: flex;
3110
+ gap: 16px;
3111
+ img {
3112
+ border-radius: 8px;
3113
+ }
3114
+ }
3115
+ .input-group {
3116
+ margin-top: 8px;
3117
+ display: flex;
3118
+ gap: 8px;
3119
+ button {
3120
+ padding: 10px;
3121
+ &:hover {
3122
+ background-color: ${theme.theme.colors.neutral50};
3123
+ }
3124
+ }
3125
+ svg {
3126
+ margin: 0;
3127
+ }
3128
+ a,
3129
+ svg:not(.copy) {
3130
+ width: 32px;
3131
+ height: 32px;
3132
+ }
3133
+ }
3134
+ `;
3135
+
3136
+ const CopyIcon = () => {
3137
+ return (React__default["default"].createElement("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", className: "copy" },
3138
+ React__default["default"].createElement("path", { d: "M4 2.5C3.17125 2.5 2.5 3.17125 2.5 4V13.75C2.5 14.164 2.836 14.5 3.25 14.5C3.664 14.5 4 14.164 4 13.75V4H13.75C14.164 4 14.5 3.664 14.5 3.25C14.5 2.836 14.164 2.5 13.75 2.5H4ZM7 5.5C6.17125 5.5 5.5 6.17125 5.5 7V16C5.5 16.8287 6.17125 17.5 7 17.5H16C16.8287 17.5 17.5 16.8287 17.5 16V7C17.5 6.17125 16.8287 5.5 16 5.5H7ZM7 7H16V16H7V7Z", fill: "#595959" })));
3139
+ };
3140
+ const ShareDrawer = (_a) => {
3141
+ var { open, title, onClose, onCopied, onShared, url, locale } = _a, rest = tslib_es6.__rest(_a, ["open", "title", "onClose", "onCopied", "onShared", "url", "locale"]);
3142
+ const { t } = useTranslations.useTranslations();
3143
+ const copyToClipboard = React.useCallback(() => tslib_es6.__awaiter(void 0, void 0, void 0, function* () {
3144
+ var _b;
3145
+ yield ((_b = navigator === null || navigator === void 0 ? void 0 : navigator.clipboard) === null || _b === void 0 ? void 0 : _b.writeText(url));
3146
+ onCopied === null || onCopied === void 0 ? void 0 : onCopied();
3147
+ }), [url, onCopied]);
3148
+ const socialList = getSocialList.getSocialList({ shareUrl: url || '', locale }).filter((platform) => !platform.allowedLocales || platform.allowedLocales.includes(locale));
3149
+ React.useEffect(() => {
3150
+ if (open && navigator.share) {
3151
+ navigator
3152
+ .share({
3153
+ title: title !== null && title !== void 0 ? title : 'Read This Post',
3154
+ url,
3155
+ })
3156
+ .then(() => {
3157
+ onShared === null || onShared === void 0 ? void 0 : onShared();
3158
+ })
3159
+ .catch(() => {
3160
+ onClose === null || onClose === void 0 ? void 0 : onClose();
3161
+ });
3162
+ }
3163
+ }, [url, title, onShared, open]);
3164
+ if (typeof navigator !== 'undefined' && navigator.share) {
3165
+ return null;
3166
+ }
3167
+ else {
3168
+ return (React__default["default"].createElement(StyledShareDrawer, Object.assign({ title: t('share.title'), onClose: onClose, open: open, placement: "bottom" }, rest),
3169
+ React__default["default"].createElement("div", { className: "share-container" },
3170
+ React__default["default"].createElement("div", { className: "icon-container" },
3171
+ React__default["default"].createElement(index$2.Text, { weight: "semiBold", size: "s3", color: theme.theme.colors.gray600 }, t('share.title')),
3172
+ React__default["default"].createElement("div", { className: "icon-group" }, socialList.map((social, index) => (React__default["default"].createElement("a", { key: index, href: social.href, target: "_blank", rel: "noreferrer" }, social.icon))))),
3173
+ React__default["default"].createElement("div", { className: "link-container" },
3174
+ React__default["default"].createElement(index$2.Text, { weight: "semiBold", size: "s3", color: theme.theme.colors.gray600 }, t('share.copyLink')),
3175
+ React__default["default"].createElement("div", { className: "input-group" },
3176
+ React__default["default"].createElement(index$f.Input, { name: "link", size: "md", value: url, isDisabled: true }),
3177
+ React__default["default"].createElement(index$c.Button, { size: "md", type: "button", color: "tertiary", icon: React__default["default"].createElement(CopyIcon, null), onClick: copyToClipboard }))))));
3178
+ }
3179
+ };
3180
+
3181
+ const StyledFixedAdBlock = styled__default["default"].div `
3182
+ position: fixed;
3183
+ z-index: 48;
3184
+ bottom: 0;
3185
+ left: 50%;
3186
+ width: fit-content;
3187
+ max-width: 100%;
3188
+ background: none;
3189
+ transform: translateX(-50%);
3190
+ .close-sticky-button {
3191
+ position: absolute;
3192
+ display: flex;
3193
+ width: 16px;
3194
+ height: 16px;
3195
+ align-items: center;
3196
+ justify-content: center;
3197
+ background: #bfbfbf;
3198
+ border-radius: 50%;
3199
+ color: white;
3200
+
3201
+ cursor: pointer;
3202
+ font-size: 12px;
3203
+ line-height: 12px;
3204
+ transform: translate(50%, -50%);
3205
+ top: 0;
3206
+ right: 0;
3207
+ }
3208
+ opacity: 0;
3209
+ pointer-events: none;
3210
+ &[data-visible='true'] {
3211
+ opacity: 1;
3212
+ pointer-events: auto;
3213
+ }
3214
+ `;
3215
+ const StyledAdContainer = styled__default["default"].div `
3216
+ display: flex;
3217
+ justify-content: center;
3218
+ align-items: center;
3219
+ flex-direction: column;
3220
+ max-width: 100%;
3221
+ width: fit-content;
3222
+ height: fit-content;
3223
+ margin-inline: auto;
3224
+ /* margin: 1rem auto; */
3225
+ &[data-no-wrapper='false'] {
3226
+ border: 1px solid ${theme.theme.colors.neutral50};
3227
+ background: ${theme.theme.colors.neutral50};
3228
+ }
3229
+ &[data-no-wrapper='true'] {
3230
+ line-height: 0;
3231
+ }
3232
+ &[data-header-bottom='true'] {
3233
+ flex-direction: column-reverse;
3234
+ background: none;
3235
+ border: none;
3236
+ }
3237
+ `;
3238
+ /* background: ${theme.colors.neutral50}; */
3239
+ const StyledAdHeader = styled__default["default"].div `
3240
+ width: 100%;
3241
+ padding: 0 5px 1.5px;
3242
+ display: flex;
3243
+ align-items: center;
3244
+ justify-content: center;
3245
+ gap: 5px;
3246
+ text-transform: capitalize;
3247
+ img {
3248
+ height: 12px;
3249
+ width: 12px;
3250
+ max-width: 12px;
3251
+ max-height: 12px;
3252
+ }
3253
+ &[data-header-bottom='true'] {
3254
+ background: ${theme.theme.colors.neutral50};
3255
+ }
3256
+ span {
3257
+ font-size: 10px;
3258
+ line-height: 12px;
3259
+ color: ${theme.theme.colors.gray400};
3260
+ font-weight: 400;
3261
+ }
3262
+ `;
3263
+ const StyledCloseBtn = styled__default["default"].div `
3264
+ background-color: white;
3265
+ background-image: url(${index$4.CommonGAssets.getAssetPath('close-blue.svg')});
3266
+ background-repeat: no-repeat;
3267
+ background-size: 10px;
3268
+ background-position: center;
3269
+ width: 12px;
3270
+ height: 12px;
3271
+ position: absolute;
3272
+ top: 1px;
3273
+ right: 1px;
3274
+ cursor: pointer;
3275
+ `;
3276
+
3277
+ const SlotsById = {};
3278
+ const displayAd = ({ contentId, adUnitPath, size, divId, pos, sizeMapping, hideIfHasSubot, customTargetings, onSuccess, }) => {
3279
+ if (!divId || !document.getElementById(divId))
3280
+ return console.error('divId is required');
3281
+ destroyAdSlot(divId);
3282
+ window.googletag = window.googletag || { cmd: [] };
3283
+ const { googletag } = window;
3284
+ googletag.cmd.push(function () {
3285
+ const $content_id_container = document.querySelector('meta[name="content_id"]');
3286
+ const $content_id = typeof contentId === 'string' ? contentId : $content_id_container === null || $content_id_container === void 0 ? void 0 : $content_id_container.content;
3287
+ const newSlot = googletag.defineSlot(adUnitPath, size, divId);
3288
+ if (newSlot) {
3289
+ try {
3290
+ if (customTargetings) {
3291
+ Object.keys(customTargetings).forEach((k) => {
3292
+ if (k)
3293
+ newSlot === null || newSlot === void 0 ? void 0 : newSlot.setTargeting(k, customTargetings[k]);
3294
+ });
3295
+ }
3296
+ }
3297
+ catch (e) {
3298
+ console.error(e);
3299
+ }
3300
+ SlotsById[divId] = newSlot;
3301
+ newSlot.setTargeting('Pos', pos);
3302
+ newSlot.addService(googletag.pubads());
3303
+ if ($content_id)
3304
+ newSlot.setTargeting('Content_ID', $content_id);
3305
+ if (sizeMapping)
3306
+ newSlot.defineSizeMapping(sizeMapping);
3307
+ if (hideIfHasSubot && document.getElementById('subot--container')) {
3308
+ newSlot.setTargeting('chatbot', true);
3309
+ }
3310
+ googletag.display(divId);
3311
+ onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
3312
+ }
3313
+ });
3314
+ };
3315
+ const destroyAdSlot = (divId) => {
3316
+ if (SlotsById[divId]) {
3317
+ window.googletag = window.googletag || { cmd: [] };
3318
+ const { googletag } = window;
3319
+ googletag.cmd.push(function () {
3320
+ googletag.destroySlots([SlotsById[divId]]);
3321
+ delete SlotsById[divId];
3322
+ });
3323
+ }
3324
+ };
3325
+ const DEFAULT_30S_AD_POS = [
3326
+ 'TopBanner',
3327
+ 'MidBanner1',
3328
+ 'MidBanner2',
3329
+ 'EndBanner',
3330
+ 'Sticky',
3331
+ ];
3332
+ const ForwaredAdBlock = React.forwardRef(function InfinityAdBlock({ className, adUnitPath, size, divId, pos, sizeMapping, contentId, isHidden, hideIfHasSubot, isSticky, refreshInterval, // seconds
3333
+ customTargetings, style, adDefaultSize, noWrapper, showCloseBtn, onCloseAd, headerBottom, wrapperProps, locale, isMarryBaby, }, ref) {
3334
+ const defaultRefreshInterval = refreshInterval ||
3335
+ (locale === index$g.LOCALE.Vietnam
3336
+ ? pos.some((p) => DEFAULT_30S_AD_POS.includes(p))
3337
+ ? 30
3338
+ : undefined
3339
+ : undefined);
3340
+ const { t } = useTranslations.useTranslations();
3341
+ const containerRef = React.useRef(null);
3342
+ const adRefreshIntervalRef = React.useRef(null);
3343
+ const refreshIntervalRef = React.useRef(defaultRefreshInterval);
3344
+ refreshIntervalRef.current = defaultRefreshInterval;
3345
+ const [localCloseAd, setLocalCloseAd] = React.useState(false);
3346
+ const adSlotChanged = () => {
3347
+ if (refreshIntervalRef.current) {
3348
+ if (adRefreshIntervalRef.current !== null) {
3349
+ clearInterval(adRefreshIntervalRef.current);
3350
+ }
3351
+ adRefreshIntervalRef.current = window.setInterval(() => {
3352
+ window.googletag = window.googletag || { cmd: [] };
3353
+ const { googletag } = window;
3354
+ googletag.cmd.push(function () {
3355
+ if (SlotsById[divId]) {
3356
+ googletag.pubads().refresh([SlotsById[divId]]);
3357
+ }
3358
+ });
3359
+ }, refreshIntervalRef.current * 1000);
3360
+ }
3361
+ };
3362
+ React.useEffect(() => {
3363
+ return () => {
3364
+ destroyAdSlot(divId);
3365
+ if (adRefreshIntervalRef.current)
3366
+ clearInterval(adRefreshIntervalRef.current);
3367
+ };
3368
+ }, []);
3369
+ React.useEffect(() => {
3370
+ adSlotChanged();
3371
+ }, [defaultRefreshInterval]);
3372
+ React.useEffect(() => {
3373
+ if (!isHidden) {
3374
+ displayAd({
3375
+ contentId,
3376
+ adUnitPath,
3377
+ size,
3378
+ divId,
3379
+ pos,
3380
+ sizeMapping,
3381
+ hideIfHasSubot,
3382
+ customTargetings,
3383
+ onSuccess: adSlotChanged,
3384
+ });
3385
+ }
3386
+ }, [isHidden]);
3387
+ if (localCloseAd)
3388
+ return null;
3389
+ const AdContent = (React__default["default"].createElement("div", { style: {
3390
+ position: 'relative',
3391
+ width: 'fit-content',
3392
+ height: 'fit-content',
3393
+ overflow: 'hidden',
3394
+ maxWidth: '100%',
3395
+ display: 'flex',
3396
+ alignItems: 'center',
3397
+ justifyContent: 'center',
3398
+ } },
3399
+ React__default["default"].createElement("div", { ref: ref, id: divId }),
3400
+ showCloseBtn && (React__default["default"].createElement(StyledCloseBtn, { onClick: () => {
3401
+ onCloseAd === null || onCloseAd === void 0 ? void 0 : onCloseAd();
3402
+ setLocalCloseAd(true);
3403
+ } }))));
3404
+ if (isSticky)
3405
+ return AdContent;
3406
+ const minWidth = adDefaultSize
3407
+ ? adDefaultSize[0]
3408
+ : size
3409
+ ? Array.isArray(size[0])
3410
+ ? size[0][0]
3411
+ : size[0]
3412
+ : undefined;
3413
+ const minHeight = adDefaultSize
3414
+ ? adDefaultSize[1]
3415
+ : size
3416
+ ? Array.isArray(size[0])
3417
+ ? size[0][1]
3418
+ : size[1]
3419
+ : undefined;
3420
+ return (React__default["default"].createElement(core.Box, Object.assign({}, wrapperProps, { className: className }),
3421
+ React__default["default"].createElement(StyledAdContainer, { ref: containerRef, className: className, style: style, "data-no-wrapper": !!noWrapper, "data-header-bottom": !!headerBottom }, noWrapper ? (AdContent) : (React__default["default"].createElement(React__default["default"].Fragment, null,
3422
+ React__default["default"].createElement(StyledAdHeader, { "data-header-bottom": !!headerBottom },
3423
+ React__default["default"].createElement("img", { src: isMarryBaby
3424
+ ? index$4.CommonGAssets.getAssetPath('adsIcon-mb.svg')
3425
+ : index$4.CommonGAssets.getAssetPath('adsIcon.svg'), alt: "", loading: "lazy" }),
3426
+ React__default["default"].createElement("span", null, t('adBanner.title'))),
3427
+ React__default["default"].createElement("div", { style: {
3428
+ minWidth: minWidth || '100%',
3429
+ minHeight: minHeight || '100%',
3430
+ position: 'relative',
3431
+ } }, AdContent))))));
3432
+ });
3433
+ const AdBlock = React.memo(ForwaredAdBlock, (prevProps, nextProps) => {
3434
+ return (prevProps.adUnitPath === nextProps.adUnitPath &&
3435
+ prevProps.divId === nextProps.divId &&
3436
+ prevProps.className === nextProps.className);
3437
+ });
3438
+
3439
+ const FixedBottomAdBlock = ({ className, adUnitPath, divId, isMobile, contentId, customTargetings, locale, isMarryBaby, }) => {
3440
+ const [hideAd, setHideAd] = React.useState(true);
3441
+ const [userHideAd, setUserHideAd] = React.useState(false);
3442
+ const [hidden, setHidden] = React.useState(true);
3443
+ const adRef = React.useRef(null);
3444
+ const mountRandRef = React.useRef(uuid.v4());
3445
+ const fixedAdRef = React.useRef(null);
3446
+ const timeoutRef = React.useRef();
3447
+ const closeBtnTimeoutRef = React.useRef();
3448
+ React.useEffect(() => {
3449
+ const checkAdShowing = () => {
3450
+ if (closeBtnTimeoutRef.current)
3451
+ clearTimeout(closeBtnTimeoutRef.current);
3452
+ closeBtnTimeoutRef.current = setTimeout(() => {
3453
+ var _a;
3454
+ if (document.getElementById('subot--container')) {
3455
+ setHideAd(true);
3456
+ }
3457
+ else {
3458
+ setHideAd(false);
3459
+ if (!((_a = adRef.current) === null || _a === void 0 ? void 0 : _a.clientHeight)) {
3460
+ setHidden(true);
3461
+ }
3462
+ else {
3463
+ setHidden(false);
3464
+ }
3465
+ }
3466
+ checkAdShowing();
3467
+ }, 4000);
3468
+ };
3469
+ checkAdShowing();
3470
+ return () => {
3471
+ timeoutRef.current && clearTimeout(timeoutRef.current);
3472
+ closeBtnTimeoutRef.current && clearTimeout(closeBtnTimeoutRef.current);
3473
+ };
3474
+ }, []);
3475
+ if (hideAd || userHideAd)
3476
+ return null;
3477
+ return (React__default["default"].createElement(StyledFixedAdBlock, { key: isMobile ? 'mobile' : 'desktop', ref: fixedAdRef, className: className, "data-visible": !hidden }, adUnitPath && (React__default["default"].createElement(AdBlock, { wrapperProps: { m: 0 }, ref: adRef, adUnitPath: adUnitPath, size: isMobile
3478
+ ? [
3479
+ [320, 50],
3480
+ [320, 100],
3481
+ ]
3482
+ : [728, 90], divId: (divId || 'div-gpt-ad-sticky') +
3483
+ (isMobile ? '-mobile' : '') +
3484
+ contentId +
3485
+ String(mountRandRef.current), pos: ['Sticky'], contentId: contentId, hideIfHasSubot: isMobile, customTargetings: customTargetings, adDefaultSize: isMobile ? [320, 50] : [728, 90], showCloseBtn: true, onCloseAd: () => setUserHideAd(true), refreshInterval: 60, locale: locale, isMarryBaby: isMarryBaby }))));
3486
+ };
3487
+
3488
+ exports.AdBlock = AdBlock;
3489
+ exports.ArticleCard = ArticleCard$1;
3490
+ exports.ArticleCard$1 = ArticleCard;
3491
+ exports.BMICardEmbed = BMICardEmbed;
3492
+ exports.BMRCardEmbed = BMRCardEmbed;
3493
+ exports.BabyGrowthCardEmbed = BabyGrowthCardEmbed;
3494
+ exports.BabyPoopEmbed = BabyPoopEmbed;
3495
+ exports.BabyVaccineCardEmbed = BabyVaccineCardEmbed;
3496
+ exports.Breadcrumbs = Breadcrumbs;
3497
+ exports.CategoryCard = CategoryCard;
3498
+ exports.CheckboxGroup = CheckboxGroup;
3499
+ exports.CookieAcceptConfirm = CookieAcceptConfirm;
3500
+ exports.DateRangePicker = DateRangePicker;
3501
+ exports.DoctorInfo = DoctorInfo;
3502
+ exports.DueDateCardEmbed = DueDateCardEmbed;
3503
+ exports.FixedBottomAdBlock = FixedBottomAdBlock;
3504
+ exports.FloatButtonGroup = FloatButtonGroup;
3505
+ exports.IconText = IconText;
3506
+ exports.MobileBottomNavigation = MobileBottomNavigation;
3507
+ exports.MobileBottomNavigationIcon = MobileBottomNavigationIcon;
3508
+ exports.OvulationCardEmbed = OvulationCardEmbed;
3509
+ exports.PWGCardEmbed = PWGCardEmbed;
3510
+ exports.ProgressBar = ProgressBar;
3511
+ exports.RadioGroup = RadioGroup;
3512
+ exports.ScrollList = ScrollList;
3513
+ exports.SeoHead = SeoHead;
3514
+ exports.ShareContainer = ShareContainer;
3515
+ exports.ShareDrawer = ShareDrawer;
3516
+ exports.StatisticCard = StatisticCard;
3517
+ exports.THRCardEmbed = THRCardEmbed;
3518
+ exports.Tabs = Tabs;
3519
+ exports.ToolsBannerCard = ToolsBannerCard;
3520
+ exports.index = index$1;
3521
+ exports.index$1 = index;