@hhgtech/hhg-components 1.29.316 → 1.29.318

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 (473) hide show
  1. package/build/{LastPeriod-28012483.js → LastPeriod-eb5b7f5b.js} +1 -1
  2. package/build/{MobileBottomNavigationIcon-103c54da.js → MobileBottomNavigationIcon-ed929a7d.js} +3 -3
  3. package/build/{Spinner-cb1157d0.js → Spinner-4cc2918f.js} +1 -1
  4. package/build/{WhatsApp-fdbf2438.js → WhatsApp-b6d4323f.js} +1 -1
  5. package/build/adapters.js +19 -19
  6. package/build/atoms.js +46 -46
  7. package/build/babyGrowth.js +83 -83
  8. package/build/cache.js +2 -2
  9. package/build/care.js +17 -17
  10. package/build/careBookingSearchBar.js +14 -14
  11. package/build/careBookingSearchBarV2.js +15 -15
  12. package/build/components/molecules/index.d.ts +1 -0
  13. package/build/components/molecules/widgetChatbotAi/index.d.ts +6 -0
  14. package/build/components/molecules/widgetChatbotAi/index.styled.d.ts +25 -0
  15. package/build/components.js +133 -130
  16. package/build/{constants-9411ff92.js → constants-cb31aec2.js} +1 -1
  17. package/build/constants.js +3 -3
  18. package/build/constantsDomainLocales.js +1 -1
  19. package/build/constantsRiskScreener.js +2 -2
  20. package/build/constantsSite.js +2 -2
  21. package/build/{core-54e5ab4a.js → core-7ab2e37e.js} +1 -1
  22. package/build/{dataTransform-f8e4af51.js → dataTransform-76abaf26.js} +1 -1
  23. package/build/ecom.js +4 -4
  24. package/build/{editor-640a044e.js → editor-128221ce.js} +11 -11
  25. package/build/embeddedHeathToolCards_babyGrowth.js +23 -23
  26. package/build/embeddedHeathToolCards_babyPoop.js +19 -19
  27. package/build/embeddedHeathToolCards_babyVaccine.js +22 -22
  28. package/build/embeddedHeathToolCards_bmi_bmi.js +25 -25
  29. package/build/embeddedHeathToolCards_bmrBmr.js +25 -25
  30. package/build/embeddedHeathToolCards_dueDate_dueDate.js +22 -22
  31. package/build/embeddedHeathToolCards_ovulation_ovulation.js +22 -22
  32. package/build/embeddedHeathToolCards_pwg_pwg.js +26 -26
  33. package/build/embeddedHeathToolCards_targetHeartRate.js +27 -27
  34. package/build/esm/{LastPeriod-161f3229.js → LastPeriod-c1bfd6f3.js} +1 -1
  35. package/build/esm/{MobileBottomNavigationIcon-bd56b13a.js → MobileBottomNavigationIcon-3557ca62.js} +3 -3
  36. package/build/esm/{Spinner-77099ede.js → Spinner-1eb79715.js} +1 -1
  37. package/build/esm/{WhatsApp-a42ea7f7.js → WhatsApp-ff7a45dc.js} +1 -1
  38. package/build/esm/adapters.js +19 -19
  39. package/build/esm/atoms.js +46 -46
  40. package/build/esm/babyGrowth.js +83 -83
  41. package/build/esm/cache.js +2 -2
  42. package/build/esm/care.js +17 -17
  43. package/build/esm/careBookingSearchBar.js +14 -14
  44. package/build/esm/careBookingSearchBarV2.js +15 -15
  45. package/build/esm/components/molecules/index.d.ts +1 -0
  46. package/build/esm/components/molecules/widgetChatbotAi/index.d.ts +6 -0
  47. package/build/esm/components/molecules/widgetChatbotAi/index.styled.d.ts +25 -0
  48. package/build/esm/components.js +92 -90
  49. package/build/esm/{constants-0f7360e3.js → constants-119c2e9e.js} +1 -1
  50. package/build/esm/constants.js +3 -3
  51. package/build/esm/constantsDomainLocales.js +1 -1
  52. package/build/esm/constantsRiskScreener.js +2 -2
  53. package/build/esm/constantsSite.js +2 -2
  54. package/build/esm/{core-43ea4f81.js → core-92f6a073.js} +1 -1
  55. package/build/esm/{dataTransform-ff13d637.js → dataTransform-5838fbad.js} +1 -1
  56. package/build/esm/ecom.js +4 -4
  57. package/build/esm/{editor-5ed1435e.js → editor-47619564.js} +11 -11
  58. package/build/esm/embeddedHeathToolCards_babyGrowth.js +23 -23
  59. package/build/esm/embeddedHeathToolCards_babyPoop.js +19 -19
  60. package/build/esm/embeddedHeathToolCards_babyVaccine.js +22 -22
  61. package/build/esm/embeddedHeathToolCards_bmi_bmi.js +25 -25
  62. package/build/esm/embeddedHeathToolCards_bmrBmr.js +25 -25
  63. package/build/esm/embeddedHeathToolCards_dueDate_dueDate.js +22 -22
  64. package/build/esm/embeddedHeathToolCards_ovulation_ovulation.js +22 -22
  65. package/build/esm/embeddedHeathToolCards_pwg_pwg.js +26 -26
  66. package/build/esm/embeddedHeathToolCards_targetHeartRate.js +27 -27
  67. package/build/esm/footer.js +21 -21
  68. package/build/esm/gAssets.js +2 -2
  69. package/build/esm/healthToolsCardWrapper.js +18 -18
  70. package/build/esm/healthToolsForm.js +33 -33
  71. package/build/esm/hooks.js +13 -13
  72. package/build/esm/i18n.js +2 -2
  73. package/build/esm/i18nV2.js +2 -2
  74. package/build/esm/{index-c284fe46.js → index-05d501eb.js} +16 -16
  75. package/build/esm/{index-49326a1f.js → index-0b104eaf.js} +1 -1
  76. package/build/esm/{index-9e5ea0a9.js → index-0db9db10.js} +3 -3
  77. package/build/esm/{index-df4b6075.js → index-1177ed36.js} +3 -3
  78. package/build/esm/{index-198e05e4.js → index-17b6fb47.js} +3 -3
  79. package/build/esm/{index-a8149756.js → index-19ba9b1a.js} +1 -1
  80. package/build/esm/{index-c0d03cca.js → index-1f153660.js} +18 -18
  81. package/build/esm/{index-98480e86.js → index-28e54056.js} +3 -3
  82. package/build/esm/{index-3523c368.js → index-2c96a9f3.js} +16 -16
  83. package/build/esm/{index-db450d51.js → index-2f614912.js} +17 -17
  84. package/build/esm/{index-86b36ec2.js → index-30af8d19.js} +1 -1
  85. package/build/esm/{index-bf36df68.js → index-37ed0fbc.js} +16 -16
  86. package/build/esm/{index-a526e163.js → index-3bf56bc0.js} +16 -16
  87. package/build/esm/{index-60b1b2ae.js → index-463bd2ce.js} +2 -2
  88. package/build/esm/{index-0fb456ed.js → index-473bb517.js} +6 -6
  89. package/build/esm/{index-f69eff6c.js → index-47f4e182.js} +1 -1
  90. package/build/esm/{index-5cefe06c.js → index-494381b5.js} +17 -17
  91. package/build/esm/{index-69970766.js → index-54c2ee14.js} +2 -2
  92. package/build/esm/{index-fe677fdb.js → index-55acf473.js} +2 -2
  93. package/build/esm/{index-30b72382.js → index-57319f8c.js} +26 -26
  94. package/build/esm/{index-49249e81.js → index-5fb93eae.js} +30 -30
  95. package/build/esm/{index-f14b40a2.js → index-60916e42.js} +13 -13
  96. package/build/esm/{index-be091cbb.js → index-62ca5221.js} +7 -7
  97. package/build/esm/{index-f3e6fe75.js → index-635c01b6.js} +2 -2
  98. package/build/esm/{index-e9d043e3.js → index-66b70820.js} +5 -5
  99. package/build/esm/{index-a2b5b4b6.js → index-6ce82548.js} +3 -3
  100. package/build/esm/{index-7469c49c.js → index-70b0672f.js} +2 -2
  101. package/build/esm/{index-6f2d1d9f.js → index-72a3e0fe.js} +2 -2
  102. package/build/esm/{index-5163c2f4.js → index-7d69ca4f.js} +32 -32
  103. package/build/esm/{index-f5ae1d2c.js → index-80f65dae.js} +2 -2
  104. package/build/esm/{index-160a9243.js → index-84362781.js} +1 -1
  105. package/build/esm/{index-8e61c946.js → index-860da07e.js} +13 -13
  106. package/build/esm/{index-50c64846.js → index-8786bc02.js} +5 -5
  107. package/build/esm/{index-4cdaf83c.js → index-8dccc778.js} +2 -2
  108. package/build/esm/{index-4bd797dc.js → index-95b92e71.js} +20 -20
  109. package/build/esm/index-9f131fef.js +4035 -0
  110. package/build/esm/{index-6af7bc44.js → index-a335ec24.js} +13 -13
  111. package/build/esm/{index-4dcdd823.js → index-a37ded29.js} +2 -2
  112. package/build/esm/{index-2a639b6d.js → index-a9188d6d.js} +2 -2
  113. package/build/esm/{index-ec5e78f9.js → index-a95f66cb.js} +17 -17
  114. package/build/esm/{index-d245941f.js → index-a9da67ee.js} +6 -6
  115. package/build/esm/{index-3396f092.js → index-ab710282.js} +6 -6
  116. package/build/esm/{index-d37f1ad9.js → index-ad979bbc.js} +6 -6
  117. package/build/esm/{index-e8668b22.js → index-b1e9d0c5.js} +1 -1
  118. package/build/esm/{index-9c00de4a.js → index-b3e98ec5.js} +4 -4
  119. package/build/esm/{index-619d1b85.js → index-bee25443.js} +3 -3
  120. package/build/esm/{index-c11b8dff.js → index-bf8999ee.js} +1 -1
  121. package/build/esm/{index-1beaeca3.js → index-c366b0f5.js} +11 -11
  122. package/build/esm/{index-23c5757d.js → index-c4efc6a7.js} +10 -10
  123. package/build/esm/{index-9bfb5726.js → index-c5727170.js} +15 -15
  124. package/build/esm/{index-02c3924e.js → index-c9c30eb3.js} +7 -7
  125. package/build/esm/{index-2685a519.js → index-ca5289d0.js} +2 -2
  126. package/build/esm/{index-4436c06c.js → index-ca767624.js} +3 -3
  127. package/build/esm/{index-081f45ad.js → index-ceef1d76.js} +15 -15
  128. package/build/esm/{index-2db2c539.js → index-d74c1eba.js} +21 -21
  129. package/build/esm/{index-61f48508.js → index-de0e40cd.js} +18 -18
  130. package/build/esm/{index-ef1803bf.js → index-f35a7221.js} +24 -24
  131. package/build/esm/{index-3ac3a157.js → index-f8370fbc.js} +2 -2
  132. package/build/esm/{index-cbbb6273.js → index-f97fe744.js} +1 -1
  133. package/build/esm/{index-a8312f28.js → index-fa093689.js} +1 -1
  134. package/build/esm/{index-c60ce954.js → index-fc9536f0.js} +13 -13
  135. package/build/esm/index.js +114 -112
  136. package/build/esm/{labelSorting-c08dfa2b.js → labelSorting-72cb85b6.js} +4 -4
  137. package/build/esm/lead.js +24 -24
  138. package/build/esm/{logoIcon-186ece4b.js → logoIcon-998e428e.js} +2 -2
  139. package/build/esm/mantine.js +25 -25
  140. package/build/esm/misc.js +16 -16
  141. package/build/esm/miscGetDynamicHealthTool.js +4 -4
  142. package/build/esm/miscGetSocialList.js +8 -8
  143. package/build/esm/miscScreenSizeContext.js +1 -1
  144. package/build/esm/mobileBottomNavigation.js +5 -5
  145. package/build/esm/mobileBottomNavigationIcon.js +5 -5
  146. package/build/esm/molecules.js +71 -69
  147. package/build/esm/moleculesArticleCard.js +6 -6
  148. package/build/esm/moleculesArticleCardV2.js +16 -16
  149. package/build/esm/navigation.js +40 -40
  150. package/build/esm/navigationLogoutPopup.js +9 -9
  151. package/build/esm/navigationProfileButton.js +23 -23
  152. package/build/esm/onboardingV2.js +29 -29
  153. package/build/esm/organisms.js +44 -44
  154. package/build/esm/{post-a95cc055.js → post-a33ab665.js} +2 -2
  155. package/build/esm/profileNavigation.js +19 -19
  156. package/build/esm/progressBar.js +1 -1
  157. package/build/esm/pwg.js +22 -22
  158. package/build/esm/ssoV2.js +26 -26
  159. package/build/esm/{store-06d36cd3.js → store-6b5c5b80.js} +3 -3
  160. package/build/esm/subot.js +33 -33
  161. package/build/esm/surveyOrPremiumBanner.js +31 -31
  162. package/build/esm/surveyQuestionCard.js +10 -10
  163. package/build/esm/{surveyThankyouCard-b7af6ab1.js → surveyThankyouCard-1e5636c5.js} +5 -5
  164. package/build/esm/together.js +53 -53
  165. package/build/esm/togetherApiUtils.js +4 -4
  166. package/build/esm/togetherAtoms.js +30 -30
  167. package/build/esm/togetherComponentGlobalContext.js +4 -4
  168. package/build/esm/togetherMolecules.js +48 -48
  169. package/build/esm/togetherMoleculesCardAuthor.js +27 -27
  170. package/build/esm/togetherMoleculesPostImagePreview.js +11 -11
  171. package/build/esm/togetherMoleculesProfileDetail.js +37 -37
  172. package/build/esm/togetherOrganisms.js +47 -47
  173. package/build/esm/togetherRichTextEditor.js +17 -17
  174. package/build/esm/togetherShareBox.js +10 -10
  175. package/build/esm/{treePopoverMenu-9c9db858.js → treePopoverMenu-83101023.js} +19 -19
  176. package/build/esm/{types-d7965ea4.js → types-e406ce99.js} +2 -2
  177. package/build/esm/types.js +2 -2
  178. package/build/esm/{useCategory-fb9f9993.js → useCategory-a411b149.js} +5 -5
  179. package/build/esm/{useHealthToolCache-0d81f4db.js → useHealthToolCache-a557d921.js} +1 -1
  180. package/build/esm/{useMantineLocale-ae231834.js → useMantineLocale-f5749437.js} +6 -6
  181. package/build/esm/{usePlacesAutocomplete-f2837fad.js → usePlacesAutocomplete-b54bd959.js} +1 -1
  182. package/build/esm/{useScreenSize-231312d5.js → useScreenSize-20d68a30.js} +2 -2
  183. package/build/esm/useTogetherAuthRequiredAction.js +9 -9
  184. package/build/esm/{utils-c03aaad7.js → utils-21c869bd.js} +2 -2
  185. package/build/esm/{utils-c68a6653.js → utils-8ad1c346.js} +3 -3
  186. package/build/esm/{utils-d2e70d07.js → utils-f990ac10.js} +2 -2
  187. package/build/esm/vaccination.js +21 -21
  188. package/build/footer.js +21 -21
  189. package/build/gAssets.js +2 -2
  190. package/build/healthToolsCardWrapper.js +18 -18
  191. package/build/healthToolsForm.js +33 -33
  192. package/build/hooks.js +13 -13
  193. package/build/i18n.js +1 -1
  194. package/build/i18nV2.js +1 -1
  195. package/build/{index-194b3937.js → index-00cfad28.js} +1 -1
  196. package/build/{index-e75ce8b8.js → index-02de3d5e.js} +18 -18
  197. package/build/{index-b5a32d07.js → index-0478e991.js} +17 -17
  198. package/build/{index-ebf55320.js → index-05dd1ea8.js} +1 -1
  199. package/build/{index-002e7f77.js → index-0b21c437.js} +17 -17
  200. package/build/{index-402e4965.js → index-0e11488b.js} +3 -3
  201. package/build/{index-3f608758.js → index-119ce6e9.js} +6 -6
  202. package/build/{index-c6d5c682.js → index-16e10242.js} +16 -16
  203. package/build/{index-10b9bb86.js → index-18e9b49f.js} +6 -6
  204. package/build/{index-28b42eac.js → index-1b522f9a.js} +15 -15
  205. package/build/{index-0345f9fd.js → index-24dfb523.js} +2 -2
  206. package/build/{index-3ea06191.js → index-356a260e.js} +2 -2
  207. package/build/{index-11b2ae85.js → index-42d09d4e.js} +16 -16
  208. package/build/{index-a6cce705.js → index-47f680a6.js} +10 -10
  209. package/build/{index-cd787bea.js → index-495c5975.js} +3 -3
  210. package/build/{index-9872c17a.js → index-4b5ef117.js} +4 -4
  211. package/build/{index-17c42b37.js → index-4ca7e4c9.js} +6 -6
  212. package/build/{index-8227f4b5.js → index-4d2f797a.js} +7 -7
  213. package/build/{index-b6657e7b.js → index-52b52279.js} +13 -13
  214. package/build/{index-cf99a404.js → index-56787966.js} +13 -13
  215. package/build/{index-1a36a3e7.js → index-5cddedce.js} +2 -2
  216. package/build/{index-547bed24.js → index-625ec5b1.js} +2 -2
  217. package/build/{index-b017971b.js → index-62fad5d0.js} +15 -15
  218. package/build/{index-030a568b.js → index-67d77ba9.js} +1 -1
  219. package/build/{index-2d6e4242.js → index-681433ef.js} +11 -11
  220. package/build/{index-f64e91fe.js → index-6879d3c4.js} +1 -1
  221. package/build/{index-0d8eb373.js → index-6e703a9f.js} +13 -13
  222. package/build/{index-a6da3552.js → index-71a67efb.js} +2 -2
  223. package/build/{index-9254bb42.js → index-722ec0b3.js} +16 -16
  224. package/build/{index-1153054e.js → index-7457d221.js} +5 -5
  225. package/build/{index-b8309ebf.js → index-7aabe478.js} +2 -2
  226. package/build/{index-74cd2f94.js → index-7b881db9.js} +16 -16
  227. package/build/{index-646146c1.js → index-7fcec533.js} +2 -2
  228. package/build/{index-bef123f1.js → index-863876ea.js} +3 -3
  229. package/build/{index-dd2172ef.js → index-8ae7cc54.js} +1 -1
  230. package/build/{index-e8d3ca66.js → index-91d06b57.js} +21 -21
  231. package/build/{index-e3a692fc.js → index-98196fb9.js} +13 -13
  232. package/build/{index-84f0313f.js → index-9b0fb224.js} +2 -2
  233. package/build/{index-57a68463.js → index-9f66a0eb.js} +32 -32
  234. package/build/{index-d66e09a2.js → index-a1547798.js} +20 -20
  235. package/build/{index-6d76b00b.js → index-a2abfcf1.js} +30 -30
  236. package/build/{index-70bd382f.js → index-a5e1e0e3.js} +1 -1
  237. package/build/{index-704e8e4b.js → index-a6b5ac63.js} +2 -2
  238. package/build/{index-cf548509.js → index-a722e3d2.js} +7 -7
  239. package/build/{index-d666d2f3.js → index-a9364756.js} +3 -3
  240. package/build/{index-d3dc890f.js → index-b0418c19.js} +6 -6
  241. package/build/{index-119b5300.js → index-b06fad29.js} +2 -2
  242. package/build/{index-f3c0ac8b.js → index-b4c981d9.js} +17 -17
  243. package/build/{index-d0c11567.js → index-b4e918ab.js} +26 -26
  244. package/build/{index-3efc1a59.js → index-bc17de65.js} +18 -18
  245. package/build/{index-9e303daa.js → index-bdeb2b66.js} +5 -5
  246. package/build/{index-4c121a3e.js → index-c006fab8.js} +1 -1
  247. package/build/{index-567722e7.js → index-ce959275.js} +1 -1
  248. package/build/{index-6b35741d.js → index-dd532acc.js} +3 -3
  249. package/build/index-e2aa14a3.js +4068 -0
  250. package/build/{index-ae463375.js → index-e472be0e.js} +3 -3
  251. package/build/{index-fef5b6e1.js → index-f56caa77.js} +3 -3
  252. package/build/{index-856d1966.js → index-f6c359e7.js} +1 -1
  253. package/build/{index-c717196a.js → index-f8a548a9.js} +2 -2
  254. package/build/{index-5aeea721.js → index-f970ad34.js} +2 -2
  255. package/build/{index-fa204550.js → index-fee41b98.js} +24 -24
  256. package/build/index.js +176 -173
  257. package/build/{labelSorting-d2e79a09.js → labelSorting-176cc040.js} +4 -4
  258. package/build/lead.js +24 -24
  259. package/build/{logoIcon-65e59e87.js → logoIcon-c4102462.js} +2 -2
  260. package/build/mantine.js +22 -22
  261. package/build/misc.js +16 -16
  262. package/build/miscGetDynamicHealthTool.js +4 -4
  263. package/build/miscGetSocialList.js +8 -8
  264. package/build/miscScreenSizeContext.js +1 -1
  265. package/build/mobileBottomNavigation.js +5 -5
  266. package/build/mobileBottomNavigationIcon.js +5 -5
  267. package/build/molecules.js +105 -102
  268. package/build/moleculesArticleCard.js +6 -6
  269. package/build/moleculesArticleCardV2.js +16 -16
  270. package/build/navigation.js +40 -40
  271. package/build/navigationLogoutPopup.js +9 -9
  272. package/build/navigationProfileButton.js +23 -23
  273. package/build/onboardingV2.js +28 -28
  274. package/build/organisms.js +44 -44
  275. package/build/{post-7d0b0b4f.js → post-90ff8fb8.js} +2 -2
  276. package/build/profileNavigation.js +19 -19
  277. package/build/progressBar.js +1 -1
  278. package/build/pwg.js +22 -22
  279. package/build/ssoV2.js +25 -25
  280. package/build/{store-e6852dfb.js → store-1647f86d.js} +3 -3
  281. package/build/subot.js +32 -32
  282. package/build/surveyOrPremiumBanner.js +31 -31
  283. package/build/surveyQuestionCard.js +10 -10
  284. package/build/{surveyThankyouCard-70e7c07b.js → surveyThankyouCard-a9228471.js} +5 -5
  285. package/build/together.js +53 -53
  286. package/build/togetherApiUtils.js +4 -4
  287. package/build/togetherAtoms.js +30 -30
  288. package/build/togetherComponentGlobalContext.js +4 -4
  289. package/build/togetherMolecules.js +48 -48
  290. package/build/togetherMoleculesCardAuthor.js +27 -27
  291. package/build/togetherMoleculesPostImagePreview.js +11 -11
  292. package/build/togetherMoleculesProfileDetail.js +37 -37
  293. package/build/togetherOrganisms.js +47 -47
  294. package/build/togetherRichTextEditor.js +17 -17
  295. package/build/togetherShareBox.js +10 -10
  296. package/build/{treePopoverMenu-fe343fc3.js → treePopoverMenu-e858bd06.js} +19 -19
  297. package/build/{types-dd018df0.js → types-976e25a0.js} +2 -2
  298. package/build/types.js +2 -2
  299. package/build/{useCategory-9f44eb9a.js → useCategory-9276d8a3.js} +5 -5
  300. package/build/{useHealthToolCache-2301cb00.js → useHealthToolCache-ee483219.js} +1 -1
  301. package/build/{useMantineLocale-5f5b3daa.js → useMantineLocale-de288253.js} +6 -6
  302. package/build/{usePlacesAutocomplete-056ea0be.js → usePlacesAutocomplete-75403812.js} +1 -1
  303. package/build/{useScreenSize-f4a19b58.js → useScreenSize-6f077571.js} +2 -2
  304. package/build/useTogetherAuthRequiredAction.js +9 -9
  305. package/build/{utils-a24acca8.js → utils-73764c13.js} +2 -2
  306. package/build/{utils-d125dbb9.js → utils-7c04a142.js} +3 -3
  307. package/build/{utils-43990644.js → utils-c7769379.js} +2 -2
  308. package/build/vaccination.js +21 -21
  309. package/package.json +2 -2
  310. package/build/esm/fixedBottomAdBlock-9884e4b5.js +0 -2464
  311. package/build/fixedBottomAdBlock-a8476a3f.js +0 -2495
  312. /package/build/{BMI_BOYS.percentile.monthly-fe11d994.js → BMI_BOYS.percentile.monthly-2fbab972.js} +0 -0
  313. /package/build/{BMI_BOYS.percentile.weekly-9a751f6a.js → BMI_BOYS.percentile.weekly-5cb69d0c.js} +0 -0
  314. /package/build/{BMI_BOYS.percentile.yearly-1fcc4870.js → BMI_BOYS.percentile.yearly-58ec8caa.js} +0 -0
  315. /package/build/{BMI_BOYS.zscore.monthly-99bdedcc.js → BMI_BOYS.zscore.monthly-11932cc9.js} +0 -0
  316. /package/build/{BMI_BOYS.zscore.weekly-29acb54d.js → BMI_BOYS.zscore.weekly-2c4c885c.js} +0 -0
  317. /package/build/{BMI_BOYS.zscore.yearly-694c78b9.js → BMI_BOYS.zscore.yearly-d699a261.js} +0 -0
  318. /package/build/{BMI_GIRLS.percentile.monthly-6b4d531c.js → BMI_GIRLS.percentile.monthly-a8de51b2.js} +0 -0
  319. /package/build/{BMI_GIRLS.percentile.weekly-e4f4449f.js → BMI_GIRLS.percentile.weekly-857def81.js} +0 -0
  320. /package/build/{BMI_GIRLS.percentile.yearly-db8f3812.js → BMI_GIRLS.percentile.yearly-e1d5bbb8.js} +0 -0
  321. /package/build/{BMI_GIRLS.zscore.monthly-f96f96ec.js → BMI_GIRLS.zscore.monthly-65643107.js} +0 -0
  322. /package/build/{BMI_GIRLS.zscore.weekly-3acb5b52.js → BMI_GIRLS.zscore.weekly-1aa78b86.js} +0 -0
  323. /package/build/{BMI_GIRLS.zscore.yearly-7622f3b3.js → BMI_GIRLS.zscore.yearly-8ff381c6.js} +0 -0
  324. /package/build/{ChevronDown-87da998f.js → ChevronDown-b186e7ae.js} +0 -0
  325. /package/build/{Close-3cf656ad.js → Close-df815190.js} +0 -0
  326. /package/build/{Google-42c7d620.js → Google-3e0ae101.js} +0 -0
  327. /package/build/{HEAD CIRCUM_BOYS.percentile.monthly-d72e6e5c.js → HEAD CIRCUM_BOYS.percentile.monthly-25337403.js} +0 -0
  328. /package/build/{HEAD CIRCUM_BOYS.percentile.weekly-d16bd70a.js → HEAD CIRCUM_BOYS.percentile.weekly-283a7fd4.js} +0 -0
  329. /package/build/{HEAD CIRCUM_BOYS.percentile.yearly-6eb33da0.js → HEAD CIRCUM_BOYS.percentile.yearly-f31c6058.js} +0 -0
  330. /package/build/{HEAD CIRCUM_BOYS.zscore.monthly-0f90ee4f.js → HEAD CIRCUM_BOYS.zscore.monthly-f5fac871.js} +0 -0
  331. /package/build/{HEAD CIRCUM_BOYS.zscore.weekly-fd17ffda.js → HEAD CIRCUM_BOYS.zscore.weekly-406af111.js} +0 -0
  332. /package/build/{HEAD CIRCUM_BOYS.zscore.yearly-bae33478.js → HEAD CIRCUM_BOYS.zscore.yearly-aa59e07d.js} +0 -0
  333. /package/build/{HEAD CIRCUM_GIRLS.percentile.monthly-fc05bdec.js → HEAD CIRCUM_GIRLS.percentile.monthly-5a01e11b.js} +0 -0
  334. /package/build/{HEAD CIRCUM_GIRLS.percentile.weekly-9a58aff3.js → HEAD CIRCUM_GIRLS.percentile.weekly-545a867a.js} +0 -0
  335. /package/build/{HEAD CIRCUM_GIRLS.percentile.yearly-8c0a98c1.js → HEAD CIRCUM_GIRLS.percentile.yearly-c4d5cc78.js} +0 -0
  336. /package/build/{HEAD CIRCUM_GIRLS.zscore.monthly-cdd4c4eb.js → HEAD CIRCUM_GIRLS.zscore.monthly-4c529100.js} +0 -0
  337. /package/build/{HEAD CIRCUM_GIRLS.zscore.weekly-ae93e693.js → HEAD CIRCUM_GIRLS.zscore.weekly-232372ad.js} +0 -0
  338. /package/build/{HEAD CIRCUM_GIRLS.zscore.yearly-8f4776a9.js → HEAD CIRCUM_GIRLS.zscore.yearly-755f8a4b.js} +0 -0
  339. /package/build/{HEIGHT_BOYS.percentile.monthly-4339be56.js → HEIGHT_BOYS.percentile.monthly-f10af6a4.js} +0 -0
  340. /package/build/{HEIGHT_BOYS.percentile.weekly-c3ff6a5b.js → HEIGHT_BOYS.percentile.weekly-7e378bbc.js} +0 -0
  341. /package/build/{HEIGHT_BOYS.percentile.yearly-80c5fbd7.js → HEIGHT_BOYS.percentile.yearly-004692ce.js} +0 -0
  342. /package/build/{HEIGHT_BOYS.zscore.monthly-4db0334b.js → HEIGHT_BOYS.zscore.monthly-f84d3d9b.js} +0 -0
  343. /package/build/{HEIGHT_BOYS.zscore.weekly-f394dba3.js → HEIGHT_BOYS.zscore.weekly-7e80de34.js} +0 -0
  344. /package/build/{HEIGHT_BOYS.zscore.yearly-a0714144.js → HEIGHT_BOYS.zscore.yearly-378d2a50.js} +0 -0
  345. /package/build/{HEIGHT_GIRLS.percentile.monthly-704aec97.js → HEIGHT_GIRLS.percentile.monthly-ba475a77.js} +0 -0
  346. /package/build/{HEIGHT_GIRLS.percentile.weekly-75b4b073.js → HEIGHT_GIRLS.percentile.weekly-f07a65fb.js} +0 -0
  347. /package/build/{HEIGHT_GIRLS.percentile.yearly-9ea7f39b.js → HEIGHT_GIRLS.percentile.yearly-4a156534.js} +0 -0
  348. /package/build/{HEIGHT_GIRLS.zscore.monthly-dca7465e.js → HEIGHT_GIRLS.zscore.monthly-dd9d2b6e.js} +0 -0
  349. /package/build/{HEIGHT_GIRLS.zscore.weekly-72fb2331.js → HEIGHT_GIRLS.zscore.weekly-9a58bb69.js} +0 -0
  350. /package/build/{HEIGHT_GIRLS.zscore.yearly-a7c3e556.js → HEIGHT_GIRLS.zscore.yearly-077ba077.js} +0 -0
  351. /package/build/{Locale-3692c391.js → Locale-32ec864c.js} +0 -0
  352. /package/build/{Visible-8521c210.js → Visible-38fee470.js} +0 -0
  353. /package/build/{WEIGHT_BOYS.percentile.monthly-02afadfe.js → WEIGHT_BOYS.percentile.monthly-56f23870.js} +0 -0
  354. /package/build/{WEIGHT_BOYS.percentile.weekly-22881aa8.js → WEIGHT_BOYS.percentile.weekly-52b0ca8d.js} +0 -0
  355. /package/build/{WEIGHT_BOYS.percentile.yearly-52cbc5d2.js → WEIGHT_BOYS.percentile.yearly-e1a07e21.js} +0 -0
  356. /package/build/{WEIGHT_BOYS.zscore.monthly-f743ae44.js → WEIGHT_BOYS.zscore.monthly-75e2347b.js} +0 -0
  357. /package/build/{WEIGHT_BOYS.zscore.weekly-f736f07b.js → WEIGHT_BOYS.zscore.weekly-b9f43d95.js} +0 -0
  358. /package/build/{WEIGHT_BOYS.zscore.yearly-2a48c9a6.js → WEIGHT_BOYS.zscore.yearly-30d60d81.js} +0 -0
  359. /package/build/{WEIGHT_GIRLS.percentile.monthly-47906ca0.js → WEIGHT_GIRLS.percentile.monthly-0120540a.js} +0 -0
  360. /package/build/{WEIGHT_GIRLS.percentile.weekly-a28a0c98.js → WEIGHT_GIRLS.percentile.weekly-390e2301.js} +0 -0
  361. /package/build/{WEIGHT_GIRLS.percentile.yearly-633c99e3.js → WEIGHT_GIRLS.percentile.yearly-56b6f747.js} +0 -0
  362. /package/build/{WEIGHT_GIRLS.zscore.monthly-006f2c01.js → WEIGHT_GIRLS.zscore.monthly-82345b7d.js} +0 -0
  363. /package/build/{WEIGHT_GIRLS.zscore.weekly-ac305318.js → WEIGHT_GIRLS.zscore.weekly-8cacc97c.js} +0 -0
  364. /package/build/{WEIGHT_GIRLS.zscore.yearly-e08e406d.js → WEIGHT_GIRLS.zscore.yearly-bdd9706d.js} +0 -0
  365. /package/build/{animation-7f15eab3.js → animation-1ad3e9b9.js} +0 -0
  366. /package/build/{constants-1c12d9dc.js → constants-1991bf05.js} +0 -0
  367. /package/build/{constants-865fc956.js → constants-78c8202c.js} +0 -0
  368. /package/build/{constants-9119125f.js → constants-838514c5.js} +0 -0
  369. /package/build/{dataTransform-4cc5f3c2.js → dataTransform-317e6dc8.js} +0 -0
  370. /package/build/{doctor-ba862f80.js → doctor-99c6cc23.js} +0 -0
  371. /package/build/esm/{BMI_BOYS.percentile.monthly-c25826af.js → BMI_BOYS.percentile.monthly-7f458762.js} +0 -0
  372. /package/build/esm/{BMI_BOYS.percentile.weekly-fa6268c3.js → BMI_BOYS.percentile.weekly-22b45855.js} +0 -0
  373. /package/build/esm/{BMI_BOYS.percentile.yearly-068e1383.js → BMI_BOYS.percentile.yearly-e4dbc866.js} +0 -0
  374. /package/build/esm/{BMI_BOYS.zscore.monthly-1f56648d.js → BMI_BOYS.zscore.monthly-e48893a4.js} +0 -0
  375. /package/build/esm/{BMI_BOYS.zscore.weekly-c7e17693.js → BMI_BOYS.zscore.weekly-19da3eec.js} +0 -0
  376. /package/build/esm/{BMI_BOYS.zscore.yearly-e75e8235.js → BMI_BOYS.zscore.yearly-0874fc27.js} +0 -0
  377. /package/build/esm/{BMI_GIRLS.percentile.monthly-7a5dbbbf.js → BMI_GIRLS.percentile.monthly-c566de70.js} +0 -0
  378. /package/build/esm/{BMI_GIRLS.percentile.weekly-ca56e3fd.js → BMI_GIRLS.percentile.weekly-ac79b3a0.js} +0 -0
  379. /package/build/esm/{BMI_GIRLS.percentile.yearly-3e1056b6.js → BMI_GIRLS.percentile.yearly-fa277f7b.js} +0 -0
  380. /package/build/esm/{BMI_GIRLS.zscore.monthly-05d3f3bd.js → BMI_GIRLS.zscore.monthly-d782ea56.js} +0 -0
  381. /package/build/esm/{BMI_GIRLS.zscore.weekly-3d4130bb.js → BMI_GIRLS.zscore.weekly-db5bde15.js} +0 -0
  382. /package/build/esm/{BMI_GIRLS.zscore.yearly-96fe909e.js → BMI_GIRLS.zscore.yearly-49753a80.js} +0 -0
  383. /package/build/esm/{ChevronDown-73ee5062.js → ChevronDown-9338686e.js} +0 -0
  384. /package/build/esm/{Close-da7839f9.js → Close-56595611.js} +0 -0
  385. /package/build/esm/{Google-8c53d579.js → Google-429be631.js} +0 -0
  386. /package/build/esm/{HEAD CIRCUM_BOYS.percentile.monthly-711d7d2d.js → HEAD CIRCUM_BOYS.percentile.monthly-38989a2e.js} +0 -0
  387. /package/build/esm/{HEAD CIRCUM_BOYS.percentile.weekly-3d58fd33.js → HEAD CIRCUM_BOYS.percentile.weekly-8f20ccf2.js} +0 -0
  388. /package/build/esm/{HEAD CIRCUM_BOYS.percentile.yearly-90cec9cf.js → HEAD CIRCUM_BOYS.percentile.yearly-01477763.js} +0 -0
  389. /package/build/esm/{HEAD CIRCUM_BOYS.zscore.monthly-008a6ea3.js → HEAD CIRCUM_BOYS.zscore.monthly-c8563ec3.js} +0 -0
  390. /package/build/esm/{HEAD CIRCUM_BOYS.zscore.weekly-237415f7.js → HEAD CIRCUM_BOYS.zscore.weekly-2bec7711.js} +0 -0
  391. /package/build/esm/{HEAD CIRCUM_BOYS.zscore.yearly-43a8dabf.js → HEAD CIRCUM_BOYS.zscore.yearly-26671493.js} +0 -0
  392. /package/build/esm/{HEAD CIRCUM_GIRLS.percentile.monthly-d457307d.js → HEAD CIRCUM_GIRLS.percentile.monthly-860d1cf4.js} +0 -0
  393. /package/build/esm/{HEAD CIRCUM_GIRLS.percentile.weekly-f6f43558.js → HEAD CIRCUM_GIRLS.percentile.weekly-5f62aa55.js} +0 -0
  394. /package/build/esm/{HEAD CIRCUM_GIRLS.percentile.yearly-187cbca2.js → HEAD CIRCUM_GIRLS.percentile.yearly-44cf6bf9.js} +0 -0
  395. /package/build/esm/{HEAD CIRCUM_GIRLS.zscore.monthly-a6509d36.js → HEAD CIRCUM_GIRLS.zscore.monthly-9fac9f1f.js} +0 -0
  396. /package/build/esm/{HEAD CIRCUM_GIRLS.zscore.weekly-6683c57b.js → HEAD CIRCUM_GIRLS.zscore.weekly-2f957927.js} +0 -0
  397. /package/build/esm/{HEAD CIRCUM_GIRLS.zscore.yearly-b2ad613b.js → HEAD CIRCUM_GIRLS.zscore.yearly-ef3c08d0.js} +0 -0
  398. /package/build/esm/{HEIGHT_BOYS.percentile.monthly-080e6f9a.js → HEIGHT_BOYS.percentile.monthly-5375e01e.js} +0 -0
  399. /package/build/esm/{HEIGHT_BOYS.percentile.weekly-ad67cb21.js → HEIGHT_BOYS.percentile.weekly-117ef887.js} +0 -0
  400. /package/build/esm/{HEIGHT_BOYS.percentile.yearly-53b51404.js → HEIGHT_BOYS.percentile.yearly-a70a168b.js} +0 -0
  401. /package/build/esm/{HEIGHT_BOYS.zscore.monthly-8b2875fc.js → HEIGHT_BOYS.zscore.monthly-a32fb04d.js} +0 -0
  402. /package/build/esm/{HEIGHT_BOYS.zscore.weekly-17494fcf.js → HEIGHT_BOYS.zscore.weekly-169de22c.js} +0 -0
  403. /package/build/esm/{HEIGHT_BOYS.zscore.yearly-3d35289a.js → HEIGHT_BOYS.zscore.yearly-d4bd9bdc.js} +0 -0
  404. /package/build/esm/{HEIGHT_GIRLS.percentile.monthly-358d90c6.js → HEIGHT_GIRLS.percentile.monthly-e7b87518.js} +0 -0
  405. /package/build/esm/{HEIGHT_GIRLS.percentile.weekly-caa08bd3.js → HEIGHT_GIRLS.percentile.weekly-8a2073ba.js} +0 -0
  406. /package/build/esm/{HEIGHT_GIRLS.percentile.yearly-cc91f072.js → HEIGHT_GIRLS.percentile.yearly-79598ec6.js} +0 -0
  407. /package/build/esm/{HEIGHT_GIRLS.zscore.monthly-07af99da.js → HEIGHT_GIRLS.zscore.monthly-058970aa.js} +0 -0
  408. /package/build/esm/{HEIGHT_GIRLS.zscore.weekly-40348a63.js → HEIGHT_GIRLS.zscore.weekly-cc2ac411.js} +0 -0
  409. /package/build/esm/{HEIGHT_GIRLS.zscore.yearly-a5d3785a.js → HEIGHT_GIRLS.zscore.yearly-42d63937.js} +0 -0
  410. /package/build/esm/{Locale-26277c1c.js → Locale-fa2bd089.js} +0 -0
  411. /package/build/esm/{Visible-3461aa49.js → Visible-61c46319.js} +0 -0
  412. /package/build/esm/{WEIGHT_BOYS.percentile.monthly-245dc94f.js → WEIGHT_BOYS.percentile.monthly-c9561206.js} +0 -0
  413. /package/build/esm/{WEIGHT_BOYS.percentile.weekly-7dcdc947.js → WEIGHT_BOYS.percentile.weekly-287292ce.js} +0 -0
  414. /package/build/esm/{WEIGHT_BOYS.percentile.yearly-cae454b9.js → WEIGHT_BOYS.percentile.yearly-8aaa37ae.js} +0 -0
  415. /package/build/esm/{WEIGHT_BOYS.zscore.monthly-53f7a32a.js → WEIGHT_BOYS.zscore.monthly-24d35a82.js} +0 -0
  416. /package/build/esm/{WEIGHT_BOYS.zscore.weekly-0760233f.js → WEIGHT_BOYS.zscore.weekly-5ba0ad7a.js} +0 -0
  417. /package/build/esm/{WEIGHT_BOYS.zscore.yearly-80fd44aa.js → WEIGHT_BOYS.zscore.yearly-44385da8.js} +0 -0
  418. /package/build/esm/{WEIGHT_GIRLS.percentile.monthly-cb6c8f61.js → WEIGHT_GIRLS.percentile.monthly-35e8b865.js} +0 -0
  419. /package/build/esm/{WEIGHT_GIRLS.percentile.weekly-644038ce.js → WEIGHT_GIRLS.percentile.weekly-f9af7a81.js} +0 -0
  420. /package/build/esm/{WEIGHT_GIRLS.percentile.yearly-42e4cc6c.js → WEIGHT_GIRLS.percentile.yearly-ddbba90c.js} +0 -0
  421. /package/build/esm/{WEIGHT_GIRLS.zscore.monthly-8db88dc7.js → WEIGHT_GIRLS.zscore.monthly-c3d557f2.js} +0 -0
  422. /package/build/esm/{WEIGHT_GIRLS.zscore.weekly-1d948020.js → WEIGHT_GIRLS.zscore.weekly-47295162.js} +0 -0
  423. /package/build/esm/{WEIGHT_GIRLS.zscore.yearly-b8dec8ef.js → WEIGHT_GIRLS.zscore.yearly-f1ca2606.js} +0 -0
  424. /package/build/esm/{animation-97f0cd8e.js → animation-b08c9149.js} +0 -0
  425. /package/build/esm/{constants-65f5f62a.js → constants-3af34ec1.js} +0 -0
  426. /package/build/esm/{constants-e5548712.js → constants-e1bd2965.js} +0 -0
  427. /package/build/esm/{constants-a7a99553.js → constants-e59c3cda.js} +0 -0
  428. /package/build/esm/{dataTransform-768f6fb5.js → dataTransform-205ecd86.js} +0 -0
  429. /package/build/esm/{doctor-d3ab6b5a.js → doctor-70663306.js} +0 -0
  430. /package/build/esm/{index-e91ee268.js → index-08b7c8b3.js} +0 -0
  431. /package/build/esm/{index-03bc30b7.js → index-0ae638b0.js} +0 -0
  432. /package/build/esm/{index-4bb948af.js → index-128046b1.js} +0 -0
  433. /package/build/esm/{index-d8ffa35e.js → index-308dd3ee.js} +0 -0
  434. /package/build/esm/{index-5629a220.js → index-3292ef03.js} +0 -0
  435. /package/build/esm/{index-9b00e9be.js → index-40a06265.js} +0 -0
  436. /package/build/esm/{index-367974a1.js → index-779651ab.js} +0 -0
  437. /package/build/esm/{index-bad999c9.js → index-aa4a3619.js} +0 -0
  438. /package/build/esm/{index-47bb701e.js → index-e906d083.js} +0 -0
  439. /package/build/esm/{index.styles-55399ea5.js → index.styles-2eac8e1b.js} +0 -0
  440. /package/build/esm/{localizeNumberFormat-9400d459.js → localizeNumberFormat-3c6f5204.js} +0 -0
  441. /package/build/esm/{normalizeLink-d72c8a53.js → normalizeLink-725b4c4c.js} +0 -0
  442. /package/build/esm/{other-4932cd4d.js → other-dd57fa34.js} +0 -0
  443. /package/build/esm/{paths-ee706f49.js → paths-05b98f20.js} +0 -0
  444. /package/build/esm/{translationsContext-4395f3a7.js → translationsContext-8326d764.js} +0 -0
  445. /package/build/esm/{tslib.es6-7b679571.js → tslib.es6-ff12acb0.js} +0 -0
  446. /package/build/esm/{types-7846937a.js → types-cb3e7121.js} +0 -0
  447. /package/build/esm/{useIsInit-bea464d8.js → useIsInit-e3dbb57b.js} +0 -0
  448. /package/build/esm/{useOutsideClick-5e19773a.js → useOutsideClick-1fb017de.js} +0 -0
  449. /package/build/esm/{useScrollbarSize-ba6c5f02.js → useScrollbarSize-bc8c29a0.js} +0 -0
  450. /package/build/esm/{useUniqueId-99843636.js → useUniqueId-a0f2cfb4.js} +0 -0
  451. /package/build/esm/{utils-5a447836.js → utils-766963a7.js} +0 -0
  452. /package/build/{index-8341901b.js → index-3febe8b7.js} +0 -0
  453. /package/build/{index-0dca77d3.js → index-58bf7d13.js} +0 -0
  454. /package/build/{index-f24c76d2.js → index-88a9b2c7.js} +0 -0
  455. /package/build/{index-a762bd5a.js → index-9fbaabbe.js} +0 -0
  456. /package/build/{index-ed19cc3b.js → index-ab5260a6.js} +0 -0
  457. /package/build/{index-eedbe43c.js → index-ad895cec.js} +0 -0
  458. /package/build/{index-3e0d4609.js → index-ca10d8e5.js} +0 -0
  459. /package/build/{index-4280f765.js → index-cbddba4f.js} +0 -0
  460. /package/build/{index-a977d0e6.js → index-f0391ce6.js} +0 -0
  461. /package/build/{index.styles-83b26700.js → index.styles-de4dacfd.js} +0 -0
  462. /package/build/{localizeNumberFormat-3fc2d561.js → localizeNumberFormat-91cc4c15.js} +0 -0
  463. /package/build/{normalizeLink-7661c702.js → normalizeLink-800430d5.js} +0 -0
  464. /package/build/{other-b9f2f936.js → other-aa2d3862.js} +0 -0
  465. /package/build/{paths-95c9126c.js → paths-332bd4eb.js} +0 -0
  466. /package/build/{translationsContext-31df6b06.js → translationsContext-887d6e63.js} +0 -0
  467. /package/build/{tslib.es6-a8daf8ae.js → tslib.es6-0e12bd43.js} +0 -0
  468. /package/build/{types-7d533064.js → types-114d8059.js} +0 -0
  469. /package/build/{useIsInit-57f8e61f.js → useIsInit-59a78843.js} +0 -0
  470. /package/build/{useOutsideClick-74039eb7.js → useOutsideClick-a8e0f16d.js} +0 -0
  471. /package/build/{useScrollbarSize-837fb2cf.js → useScrollbarSize-6b8eaf3b.js} +0 -0
  472. /package/build/{useUniqueId-2f6855df.js → useUniqueId-13974804.js} +0 -0
  473. /package/build/{utils-d88ee6a6.js → utils-884afa6c.js} +0 -0
@@ -1,2464 +0,0 @@
1
- import { _ as __rest, a as __awaiter } from './tslib.es6-7b679571.js';
2
- import React__default, { useState, useImperativeHandle, useRef, useEffect, useMemo, Fragment, useCallback, forwardRef, memo } from 'react';
3
- import { R as Radio } from './index-1beaeca3.js';
4
- import { Stack, Group, createStyles, getStylesRef, Box } from '@mantine/core';
5
- import '@mantine/dates';
6
- import { L as LOCALE_SPECS, F as FAVICONS } from './index-69970766.js';
7
- import './index-c11b8dff.js';
8
- import { C as CommonGAssets } from './index-47bb701e.js';
9
- import './useMantineLocale-ae231834.js';
10
- import { T as Text } from './index-fe677fdb.js';
11
- import './index-a8149756.js';
12
- import './index.styles-55399ea5.js';
13
- import './translationsContext-4395f3a7.js';
14
- import '@mantine/hooks';
15
- import { M as MediaQueries } from './utils-5a447836.js';
16
- import './other-4932cd4d.js';
17
- import './index-4436c06c.js';
18
- import { i as isInternalLink } from './index-9e5ea0a9.js';
19
- import styled from '@emotion/styled';
20
- import { theme } from './miscTheme.js';
21
- import { C as Checkbox, P as PureInput } from './index-a2b5b4b6.js';
22
- import { L as Logo } from './index-d245941f.js';
23
- import throttle from 'lodash/throttle';
24
- import parse from 'html-react-parser';
25
- import { domainLocales } from './constantsDomainLocales.js';
26
- import { isProduction } from './constantsIsProduction.js';
27
- import { isBefore, startOfMonth, addMonths, format, subMonths, getDaysInMonth, isToday, isSameDay, isWithinInterval, isAfter, isPast } from 'date-fns';
28
- import { a as useOutsideClick } from './useOutsideClick-5e19773a.js';
29
- import enUS from 'date-fns/locale/en-US';
30
- import id from 'date-fns/locale/id';
31
- import vi from 'date-fns/locale/vi';
32
- import zhTW from 'date-fns/locale/zh-TW';
33
- import { B as Button } from './index-2a639b6d.js';
34
- import { u as useScreenSize } from './useScreenSize-231312d5.js';
35
- import { u as useTranslations } from './index-a8312f28.js';
36
- import { D as Dropdown } from './index-9b00e9be.js';
37
- import { getSocialList } from './miscGetSocialList.js';
38
- import { I as Input } from './index-f3e6fe75.js';
39
- import { D as Drawer } from './index-df4b6075.js';
40
- import { v4 } from 'uuid';
41
- import { L as LOCALE } from './Locale-26277c1c.js';
42
-
43
- const StyledCategoryCard = styled.a `
44
- display: flex;
45
- height: 125px;
46
-
47
- box-sizing: border-box;
48
- flex-direction: column;
49
- align-items: center;
50
- padding: 8px;
51
-
52
- border: 1px solid ${theme.colors.neutral100};
53
- background-color: white;
54
- border-radius: ${theme.borderRadius};
55
- box-shadow: 0px 5px 12px rgba(40, 74, 117, 0.08);
56
- cursor: pointer;
57
- text-decoration: none;
58
-
59
- & > .banner {
60
- width: 100%;
61
- height: 63px;
62
- text-align: center;
63
- }
64
-
65
- & > .content {
66
- display: -webkit-box;
67
- overflow: hidden;
68
- -webkit-box-orient: vertical;
69
- -webkit-line-clamp: 2;
70
- text-align: center;
71
- word-break: break-word;
72
- }
73
-
74
- * {
75
- pointer-events: none;
76
- }
77
- `;
78
-
79
- const CategoryCard = (_a) => {
80
- var { category, imgBanner, label, className, style, href = '', dataEventCategory, dataEventAction, dataEventLabel } = _a, rest = __rest(_a, ["category", "imgBanner", "label", "className", "style", "href", "dataEventCategory", "dataEventAction", "dataEventLabel"]);
81
- const url = (category === null || category === void 0 ? void 0 : category.customizedUrl) || (category === null || category === void 0 ? void 0 : category.permalink) || href || '';
82
- return (React__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) &&
83
- !isInternalLink(category.customizedUrl) && {
84
- target: '_blank',
85
- }), { onClick: (e) => {
86
- if (url === '') {
87
- e.preventDefault();
88
- }
89
- } }, rest),
90
- React__default.createElement("div", { className: "banner" }, imgBanner),
91
- React__default.createElement("div", { className: "content" },
92
- React__default.createElement(Text, { className: "category_name", size: "sm", weight: "bold" }, (category === null || category === void 0 ? void 0 : category.displayName) || label || ''))));
93
- };
94
-
95
- const StyledCheckboxGroup = styled.div `
96
- display: flex;
97
-
98
- &[data-type='vertical'] {
99
- flex-direction: column;
100
-
101
- div {
102
- margin-bottom: 20px;
103
- }
104
- }
105
-
106
- &[data-type='horizontal'] {
107
- flex-wrap: wrap;
108
-
109
- div {
110
- margin-right: 25px;
111
- }
112
-
113
- &[data-is-rectangle] {
114
- div {
115
- margin-right: 14px;
116
- }
117
- }
118
- }
119
- `;
120
-
121
- const CheckboxGroup = ({ name, values = [], onChanges, options = [], className, type = 'vertical', isDisabled, isRectangle, }) => {
122
- const onChange = (value, checked) => {
123
- const newValues = values.slice();
124
- if (checked) {
125
- newValues.push(value);
126
- }
127
- else {
128
- const removeIndex = newValues.findIndex((item) => item === value);
129
- newValues.splice(removeIndex, 1);
130
- }
131
- if (onChanges) {
132
- onChanges(newValues);
133
- }
134
- };
135
- return (React__default.createElement(StyledCheckboxGroup, { className: className, "data-type": type, "data-is-rectangle": isRectangle || undefined }, options.map((option, index) => (React__default.createElement(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 })))));
136
- };
137
-
138
- const StyledIconText = styled.div `
139
- display: flex;
140
- align-items: center;
141
- --font-weight-lg: ${theme.sizes.fwBold};
142
- --font-weight-md: ${theme.sizes.fwRegular};
143
- --font-weight-sm: ${theme.sizes.fwRegular};
144
-
145
- &[data-icon-position='left'] {
146
- & > *:first-child {
147
- margin-right: 8px;
148
- }
149
-
150
- & > *:last-child {
151
- width: calc(100% - 24px);
152
- }
153
- }
154
- &[data-icon-position='right'] {
155
- & > *:first-child {
156
- width: calc(100% - 24px);
157
- }
158
- & > *:last-child {
159
- margin-left: 8px;
160
- }
161
- }
162
-
163
- ${MediaQueries.mbDown} {
164
- &[data-size='lg'] {
165
- font-size: 16px;
166
- line-height: 24px;
167
- font-weight: var(--font-weight-lg);
168
- }
169
- &[data-size='md'] {
170
- font-size: 14px;
171
- line-height: 22px;
172
- font-weight: var(--font-weight-md);
173
- }
174
- &[data-size='sm'] {
175
- font-size: 13px;
176
- line-height: 20px;
177
- font-weight: var(----font-weight-sm);
178
- }
179
- }
180
- `;
181
-
182
- const IconText = ({ size, iconPosition, className, children, icon: Icon, }) => {
183
- return (React__default.createElement(StyledIconText, { className: className, "data-size": size, "data-icon-position": iconPosition },
184
- iconPosition === 'left' && Icon,
185
- children,
186
- iconPosition === 'right' && Icon));
187
- };
188
-
189
- const RadioGroup = React__default.forwardRef(({ id, value, options, className, isDisabled, size: sizeProp = 'small', direction = 'vertical', onChange, dataEventCategory, dataEventAction, dataEventLabel, }, ref) => {
190
- const [check, setCheck] = useState(value);
191
- useImperativeHandle(ref, () => ({
192
- reset() {
193
- setCheck(value);
194
- },
195
- }));
196
- const handleOnChange = (v) => {
197
- setCheck(v);
198
- onChange === null || onChange === void 0 ? void 0 : onChange(v);
199
- };
200
- const size = sizeProp === 'small' ? 'md' : 'lg';
201
- const DirectionComp = direction === 'vertical' ? Stack : Group;
202
- return (React__default.createElement(Radio.Group, { name: id, className: className, size: size, value: String(check), defaultValue: value, onChange: handleOnChange },
203
- React__default.createElement(DirectionComp, { spacing: "xl" }, options.map((option) => (React__default.createElement(Radio, { key: option.value, value: option.value, label: option.label, disabled: isDisabled, "data-event-category": dataEventCategory, "data-event-action": dataEventAction, "data-event-label": dataEventLabel }))))));
204
- });
205
-
206
- const StyledSideMenu = styled.div `
207
- --menu-width: 240px;
208
- --menu-spacing: 28px 16px;
209
- width: var(--menu-width);
210
- height: 100vh;
211
- padding: var(--menu-spacing);
212
- background-color: ${theme.colors.neutral50};
213
- transition: ease-in-out 0.5s;
214
-
215
- &[data-is-collapsed] {
216
- --menu-width: 64px;
217
- --menu-spacing: 28px 8px;
218
- }
219
- `;
220
- const SideMenu = ({ isCollapsed, className, style, children }) => {
221
- return (React__default.createElement(StyledSideMenu, { style: style, className: className, "data-is-collapsed": isCollapsed || undefined }, children));
222
- };
223
-
224
- const StyledSideHeader = styled.div `
225
- display: flex;
226
- align-items: baseline;
227
- justify-content: space-between;
228
-
229
- svg {
230
- transition: 0.4s ease-in-out;
231
- }
232
- `;
233
- const StyledArrow = styled.div `
234
- cursor: pointer;
235
- &[data-is-collapsed] {
236
- transform: rotate(180deg);
237
- }
238
- `;
239
- const SideHeader = ({ isCollapsed, defaultLogo, onBackClick, customIcon, }) => {
240
- return (React__default.createElement(StyledSideHeader, null,
241
- React__default.createElement(Logo, { type: isCollapsed ? 'logomark' : defaultLogo || 'hellocare', customSize: {
242
- width: isCollapsed ? '24px' : '77px',
243
- height: '24px',
244
- } }),
245
- React__default.createElement(StyledArrow, { "data-is-collapsed": isCollapsed || undefined, onClick: onBackClick }, customIcon ? (customIcon) : (React__default.createElement("svg", { "data-name": "Layer 1", viewBox: "0 0 20 20", width: "20px", height: "20px" },
246
- React__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" }),
247
- React__default.createElement("path", { d: "M11.44 6.53L8 10l3.48 3.47", fill: "none", stroke: "#737373", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "1.5" }))))));
248
- };
249
-
250
- const StyledDoctorInfo = styled.figure `
251
- display: flex;
252
-
253
- > img,
254
- svg,
255
- picture {
256
- width: 40px;
257
- height: 40px;
258
- margin-right: 1rem;
259
- border-radius: 6px;
260
- object-fit: cover;
261
- }
262
-
263
- > figcaption {
264
- p + p {
265
- margin-top: 2px;
266
- }
267
- }
268
- `;
269
- const DoctorInfo = ({ name, description, image, isDescriptionHidden, }) => {
270
- return (React__default.createElement(StyledDoctorInfo, null,
271
- image,
272
- !isDescriptionHidden && (React__default.createElement("figcaption", null,
273
- React__default.createElement(Text, { size: "p4", weight: "bold" }, name),
274
- React__default.createElement(Text, { size: "p4" }, description)))));
275
- };
276
-
277
- const StyledUserInfo = styled.div `
278
- display: flex;
279
- align-items: center;
280
- margin-top: 24px;
281
- margin-bottom: 36px;
282
-
283
- figcaption {
284
- white-space: nowrap;
285
- }
286
-
287
- &[data-is-collapsed='true'] {
288
- img {
289
- max-width: 2rem;
290
- max-height: 2rem;
291
- }
292
- }
293
- `;
294
- const UserInfo = ({ isCollapsed, userName, role, avatar }) => {
295
- return (React__default.createElement(StyledUserInfo, { "data-is-collapsed": isCollapsed || undefined },
296
- React__default.createElement(DoctorInfo, { image: avatar, name: userName, description: role, isDescriptionHidden: isCollapsed })));
297
- };
298
-
299
- const StyledMenuLink = styled.div `
300
- display: flex;
301
- align-items: center;
302
- padding: 9px 21px;
303
- margin-bottom: 4px;
304
- border-radius: 6px;
305
-
306
- &:not([data-is-link-active]) {
307
- cursor: pointer;
308
- }
309
-
310
- p {
311
- margin-left: 12px;
312
- }
313
-
314
- &[data-is-link-active] {
315
- background: ${theme.colors.primaryBase};
316
- }
317
-
318
- &[data-is-link-collapsed] {
319
- justify-content: center;
320
- margin-right: -14px;
321
- margin-left: -14px;
322
- }
323
- `;
324
- const MenuLink = ({ icon, isActive, children, isCollapsed, activeIcon, onLinkClick, textSize = 'base', textType = 'bold', textColorActive = '#fff', textColor = '#595959', }) => {
325
- return (React__default.createElement(StyledMenuLink, { "data-is-link-active": isActive || undefined, onClick: onLinkClick, "data-is-link-collapsed": isCollapsed || undefined },
326
- !(isActive && activeIcon) ? icon : activeIcon,
327
- !isCollapsed && (React__default.createElement(Text, { size: textSize, weight: textType, color: isActive ? textColorActive : textColor }, children))));
328
- };
329
-
330
- var index$1 = /*#__PURE__*/Object.freeze({
331
- __proto__: null,
332
- SideMenu: SideMenu,
333
- SideHeader: SideHeader,
334
- UserInfo: UserInfo,
335
- MenuLink: MenuLink
336
- });
337
-
338
- const StyledScrollList = styled.div `
339
- position: relative;
340
- width: 100%;
341
- > .container {
342
- display: flex;
343
- width: 100%;
344
- -ms-overflow-style: none;
345
- overflow-x: auto;
346
- scrollbar-width: none;
347
-
348
- &::-webkit-scrollbar {
349
- display: none;
350
- }
351
-
352
- .section {
353
- display: flex;
354
- width: 100%;
355
- flex-direction: column;
356
- flex-shrink: 0;
357
- margin: auto;
358
-
359
- > .grid-layout {
360
- display: grid;
361
- width: 100%;
362
- grid-row-gap: 8px;
363
-
364
- > .item-grid {
365
- width: 100%;
366
-
367
- > * {
368
- margin: 0 auto;
369
- }
370
- }
371
- }
372
-
373
- .progress-bar {
374
- display: grid;
375
- height: 15px;
376
- margin-bottom: 10px;
377
-
378
- .items-progress {
379
- position: relative;
380
- display: flex;
381
- width: 100%;
382
- align-items: center;
383
- justify-content: center;
384
-
385
- .icon-status {
386
- position: absolute;
387
- display: flex;
388
- }
389
-
390
- .line {
391
- width: 50%;
392
- height: 2px;
393
- background-color: ${theme.colors.gray600};
394
- }
395
- }
396
- }
397
- }
398
- }
399
-
400
- .bullet-nav {
401
- position: absolute;
402
- z-index: ${theme.zIndexes.belowHeader};
403
- bottom: -30px;
404
- left: 50%;
405
- display: flex;
406
- transform: translate(-50%, -50%);
407
- }
408
-
409
- .bullet-nav__link {
410
- display: block;
411
- width: 8px;
412
- height: 8px;
413
- padding: 0;
414
- margin-right: 8px;
415
- backface-visibility: hidden;
416
- background-color: #e4e8ec;
417
- border-radius: 50%;
418
- cursor: pointer;
419
- transition: all 0.3s;
420
- &.active {
421
- &[data-scheme='hellosites'] {
422
- background-color: ${theme.colors.primary600};
423
- }
424
- &[data-scheme='marrybaby'] {
425
- background-color: ${theme.mbColors.pink};
426
- }
427
- }
428
- }
429
-
430
- .arrow-left {
431
- position: absolute;
432
- z-index: 10;
433
- top: 50%;
434
- left: -35px;
435
- transform: translateY(-50%);
436
- &[data-event-category] > * {
437
- pointer-events: none;
438
- }
439
- }
440
-
441
- .arrow-right {
442
- position: absolute;
443
- z-index: 10;
444
- top: 50%;
445
- right: -35px;
446
- transform: translateY(-50%);
447
- &[data-event-category] > * {
448
- pointer-events: none;
449
- }
450
- }
451
-
452
- .image-gallery-wrapper {
453
- display: flex;
454
- position: relative;
455
- margin-top: 16px;
456
- justify-content: center;
457
- gap: 16px;
458
- .image-block {
459
- display: block;
460
- width: 100%;
461
- border: 2px solid transparent;
462
- border-radius: 4px;
463
- }
464
- .image-block.active {
465
- border-color: ${theme.colors.primaryBase};
466
- }
467
- img {
468
- height: 40px;
469
- width: auto;
470
- max-width: 100%;
471
- }
472
- }
473
- `;
474
-
475
- const RenderIconStatus = ({ status }) => {
476
- if (status === 'inActive') {
477
- return (React__default.createElement("svg", { width: "6", height: "6", viewBox: "0 0 6 6", fill: "none" },
478
- React__default.createElement("circle", { cx: "3", cy: "3", r: "3", fill: "#ADB3BC" })));
479
- }
480
- else if (status === 'active') {
481
- return (React__default.createElement("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none" },
482
- React__default.createElement("circle", { cx: "6", cy: "6", r: "4", fill: "#2D87F3" }),
483
- React__default.createElement("circle", { cx: "6", cy: "6", r: "5.5", stroke: "#2D87F3" })));
484
- }
485
- else if (status === 'done') {
486
- return (React__default.createElement("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none" },
487
- React__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" }),
488
- React__default.createElement("path", { d: "M8.76061 4.20029L4.80061 7.80029L3.00061 6.16392", stroke: "white", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" })));
489
- }
490
- return (React__default.createElement("svg", { width: "6", height: "6", viewBox: "0 0 6 6", fill: "none" },
491
- React__default.createElement("circle", { cx: "3", cy: "3", r: "3", fill: "#ADB3BC" })));
492
- };
493
- /**
494
- * @deprecated Consider to use at '@hhgtech/hhg-components/mantine'
495
- */
496
- const ScrollList = ({ row = 2, column = 3, isDotsShown = true, isImageGalleryShown = false, mode = 'infinity', type = 'separated', distanceOverlappedLeft = {
497
- amount: 0,
498
- unit: 'pixel',
499
- }, children, className, isProgressShown = false, statusChildren, isArrowShown = false, classNameLeftArrow, classNameRightArrow, dataEventCategory, dataEventAction, dataEventLabel, onChangePage, page, customPageWidth, scheme = 'hellosites', arrowType = 'Discover', }) => {
500
- const hasPageProps = typeof page === 'number';
501
- const [section, setSection] = useState(hasPageProps ? page : 0);
502
- //Create groups
503
- const groups = [];
504
- React__default.Children.map(children, (element, idx) => {
505
- if (idx % (row * column) === 0) {
506
- groups.push([]);
507
- }
508
- groups[groups.length - 1].push(React__default.cloneElement(element));
509
- });
510
- const scrollRef = useRef();
511
- const currentPage = useRef(0);
512
- const scrollToPage = (index) => {
513
- if (!scrollRef.current)
514
- return;
515
- const { clientWidth } = scrollRef.current;
516
- const pageWidth = customPageWidth || clientWidth;
517
- const distance = type === 'intertwined'
518
- ? distanceOverlappedLeft.unit === 'percentage'
519
- ? index * pageWidth +
520
- (distanceOverlappedLeft.amount / 100) * pageWidth * index
521
- : index * pageWidth +
522
- distanceOverlappedLeft.amount * pageWidth * index
523
- : index * pageWidth;
524
- scrollRef.current.scrollTo({
525
- top: 0,
526
- left: distance,
527
- behavior: 'smooth',
528
- });
529
- currentPage.current = index;
530
- setSection(index);
531
- };
532
- const handleClick = (index) => {
533
- if (!scrollRef.current)
534
- return;
535
- const { clientWidth } = scrollRef.current;
536
- const pageWidth = customPageWidth || clientWidth;
537
- const distance = type === 'intertwined'
538
- ? distanceOverlappedLeft.unit === 'percentage'
539
- ? index * pageWidth +
540
- (distanceOverlappedLeft.amount / 100) * pageWidth * index
541
- : index * pageWidth +
542
- distanceOverlappedLeft.amount * pageWidth * index
543
- : index * pageWidth;
544
- scrollRef.current.scrollTo({
545
- top: 0,
546
- left: distance,
547
- behavior: 'smooth',
548
- });
549
- currentPage.current = index;
550
- setSection(index);
551
- onChangePage && onChangePage(index);
552
- };
553
- useEffect(() => {
554
- if (typeof page === 'number')
555
- scrollToPage(page);
556
- }, [page]);
557
- const handleClickArrow = (type) => {
558
- if (!scrollRef.current)
559
- return;
560
- const { clientWidth } = scrollRef.current;
561
- const pageWidth = customPageWidth || clientWidth;
562
- let distance;
563
- section === 0 ? (distance = 0) : (distance = section * pageWidth);
564
- if (type === 'forward') {
565
- if (distance === pageWidth * (groups.length - 1)) {
566
- setSection(groups.length - 1);
567
- distance = pageWidth * (groups.length - 1);
568
- onChangePage && onChangePage(groups.length - 1);
569
- }
570
- else {
571
- setSection(section + 1);
572
- distance += pageWidth;
573
- onChangePage && onChangePage(section + 1);
574
- }
575
- scrollRef.current.scrollTo({
576
- top: 0,
577
- left: distance,
578
- behavior: 'smooth',
579
- });
580
- }
581
- if (type === 'back') {
582
- if (distance === 0) {
583
- setSection(0);
584
- onChangePage && onChangePage(0);
585
- distance = 0;
586
- }
587
- else {
588
- setSection(section - 1);
589
- onChangePage && onChangePage(section - 1);
590
- distance -= pageWidth;
591
- }
592
- scrollRef.current.scrollTo({
593
- top: 0,
594
- left: distance,
595
- behavior: 'smooth',
596
- });
597
- }
598
- };
599
- const handleScroll = () => {
600
- if (mode === 'infinity') {
601
- if (!scrollRef.current)
602
- return;
603
- const { clientWidth, scrollLeft } = scrollRef.current;
604
- const pageWidth = customPageWidth || clientWidth;
605
- const page = Math.floor(scrollLeft / pageWidth);
606
- setSection(page);
607
- onChangePage && onChangePage(page);
608
- }
609
- };
610
- const handleScrollThrottle = throttle(handleScroll, 400);
611
- useEffect(() => {
612
- if (mode === 'snapped') {
613
- let isDown = false;
614
- let startX;
615
- let startY;
616
- let isSlidingY;
617
- let isSlidingX;
618
- let scrollLeft;
619
- let direction;
620
- const slider = scrollRef.current;
621
- const start = (pageX, pageY) => {
622
- isDown = true;
623
- isSlidingY = false;
624
- isSlidingX = false;
625
- startX = pageX - slider.offsetLeft;
626
- startY = pageY - slider.offsetTop;
627
- scrollLeft = slider.scrollLeft;
628
- };
629
- const startMouse = (e) => {
630
- start(e.pageX, e.pageY);
631
- };
632
- const startTouch = (e) => {
633
- start(e.touches[0].pageX, e.touches[0].pageY);
634
- };
635
- const end = () => {
636
- isDown = false;
637
- isSlidingY = false;
638
- isSlidingX = false;
639
- if (!scrollRef.current)
640
- return;
641
- const { clientWidth } = scrollRef.current;
642
- const pageWidth = customPageWidth || clientWidth;
643
- const page = direction === 'ltr'
644
- ? currentPage.current !== 0
645
- ? currentPage.current - 1
646
- : currentPage.current
647
- : direction === 'rtl'
648
- ? currentPage.current < groups.length - 1
649
- ? currentPage.current + 1
650
- : currentPage.current
651
- : currentPage.current;
652
- const distance = type === 'intertwined'
653
- ? distanceOverlappedLeft.unit === 'percentage'
654
- ? page * pageWidth +
655
- (distanceOverlappedLeft.amount / 100) * pageWidth * page
656
- : page * pageWidth +
657
- distanceOverlappedLeft.amount * pageWidth * page
658
- : page * pageWidth;
659
- scrollRef.current.scrollTo({
660
- top: 0,
661
- left: distance,
662
- behavior: 'smooth',
663
- });
664
- direction = 'none';
665
- if (currentPage.current !== page) {
666
- currentPage.current = page;
667
- setSection(page);
668
- onChangePage && onChangePage(page);
669
- }
670
- };
671
- const move = (pageX, pageY) => {
672
- if (!isDown)
673
- return;
674
- const x = pageX - slider.offsetLeft;
675
- const y = pageY - slider.offsetTop;
676
- const walkX = x - startX;
677
- const walkY = y - startY;
678
- if (!isSlidingY && !isSlidingX && (walkY > 20 || walkY < -20)) {
679
- isSlidingY = true;
680
- }
681
- if (!isSlidingY && (walkX > 20 || walkX < -20)) {
682
- isSlidingX = true;
683
- slider.scrollLeft = scrollLeft - walkX;
684
- if (walkX > 0) {
685
- direction = 'ltr';
686
- }
687
- if (walkX < 0) {
688
- direction = 'rtl';
689
- }
690
- if (walkX === 0) {
691
- direction = 'none';
692
- }
693
- }
694
- };
695
- const moveMouse = (e) => {
696
- if (isSlidingX) {
697
- e.preventDefault();
698
- }
699
- move(e.pageX, e.pageY);
700
- };
701
- const moveTouch = (e) => {
702
- if (isSlidingX) {
703
- e.preventDefault();
704
- }
705
- move(e.touches[0].pageX, e.touches[0].pageY);
706
- };
707
- slider === null || slider === void 0 ? void 0 : slider.addEventListener('mousedown', startMouse, {
708
- passive: true,
709
- });
710
- slider === null || slider === void 0 ? void 0 : slider.addEventListener('touchstart', startTouch, {
711
- passive: true,
712
- });
713
- window.addEventListener('mouseup', end, {
714
- passive: true,
715
- });
716
- window.addEventListener('touchend', end, {
717
- passive: true,
718
- });
719
- slider === null || slider === void 0 ? void 0 : slider.addEventListener('mousemove', moveMouse, {
720
- passive: true,
721
- });
722
- slider === null || slider === void 0 ? void 0 : slider.addEventListener('touchmove', moveTouch, {
723
- passive: true,
724
- });
725
- return () => {
726
- slider === null || slider === void 0 ? void 0 : slider.removeEventListener('mousedown', startMouse);
727
- slider === null || slider === void 0 ? void 0 : slider.removeEventListener('touchstart', startTouch);
728
- window.removeEventListener('mouseup', end);
729
- window.removeEventListener('touchend', end);
730
- slider === null || slider === void 0 ? void 0 : slider.removeEventListener('mousemove', moveMouse);
731
- slider === null || slider === void 0 ? void 0 : slider.removeEventListener('touchmove', moveTouch);
732
- };
733
- }
734
- }, []);
735
- return (React__default.createElement(StyledScrollList, { className: className, "data-row": row, onScroll: handleScrollThrottle },
736
- isArrowShown && section > 0 && (React__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.createElement("svg", { width: "42", height: "42", viewBox: "0 0 42 42", fill: "none" },
737
- React__default.createElement("g", { filter: "url(#filter0_dd_12599_34420)" },
738
- React__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" }),
739
- React__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" }),
740
- React__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" })),
741
- React__default.createElement("defs", null,
742
- React__default.createElement("filter", { id: "filter0_dd_12599_34420", x: "0.000244141", y: "0", width: "42", height: "42", filterUnits: "userSpaceOnUse", colorInterpolationFilters: "sRGB" },
743
- React__default.createElement("feFlood", { floodOpacity: "0", result: "BackgroundImageFix" }),
744
- React__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" }),
745
- React__default.createElement("feOffset", { dx: "-2", dy: "2" }),
746
- React__default.createElement("feGaussianBlur", { stdDeviation: "2.5" }),
747
- React__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" }),
748
- React__default.createElement("feBlend", { mode: "normal", in2: "BackgroundImageFix", result: "effect1_dropShadow_12599_34420" }),
749
- React__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" }),
750
- React__default.createElement("feOffset", { dx: "-1", dy: "1" }),
751
- React__default.createElement("feGaussianBlur", { stdDeviation: "1" }),
752
- React__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" }),
753
- React__default.createElement("feBlend", { mode: "normal", in2: "effect1_dropShadow_12599_34420", result: "effect2_dropShadow_12599_34420" }),
754
- React__default.createElement("feBlend", { mode: "normal", in: "SourceGraphic", in2: "effect2_dropShadow_12599_34420", result: "shape" }))))) : (React__default.createElement("svg", { width: "32", height: "32", viewBox: "0 0 32 32", fill: "none" },
755
- React__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" }),
756
- React__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" }),
757
- React__default.createElement("path", { d: "M20.8886 15.999L11.1108 15.999", stroke: scheme === 'hellosites' ? '#2D87F3' : '#e85388', strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }))))),
758
- React__default.createElement("div", { ref: scrollRef, className: "container", style: {
759
- overflowX: mode === 'snapped' || isArrowShown ? 'hidden' : 'scroll',
760
- } }, groups.map((group, groupIndex) => {
761
- let baseIndex = 0;
762
- for (let i = 0; i < groupIndex; i++) {
763
- baseIndex += groups[i].length;
764
- }
765
- return (React__default.createElement("div", { key: groupIndex, className: "section", style: {
766
- marginLeft: type === 'intertwined' && groupIndex !== 0
767
- ? distanceOverlappedLeft.amount +
768
- '' +
769
- (distanceOverlappedLeft.unit === 'percentage'
770
- ? '%'
771
- : 'px')
772
- : '0px',
773
- } },
774
- row === 1 && isProgressShown && (React__default.createElement("div", { className: "progress-bar", style: {
775
- gridTemplateColumns: `repeat(${column}, 1fr)`,
776
- } }, group.map((item, itemIndex) => {
777
- const realIndex = baseIndex + itemIndex;
778
- const foundStatusItem = statusChildren.find((statusItem) => statusItem.index === realIndex);
779
- return (React__default.createElement("div", { className: "items-progress", key: itemIndex },
780
- itemIndex === 0 && groupIndex === 0 ? (React__default.createElement("div", { className: "line", style: { visibility: 'hidden' } })) : (React__default.createElement("div", { className: "line" })),
781
- React__default.createElement("div", { className: "icon-status" },
782
- React__default.createElement(RenderIconStatus, { status: foundStatusItem === null || foundStatusItem === void 0 ? void 0 : foundStatusItem.status })),
783
- groupIndex === groups.length - 1 &&
784
- itemIndex === group.length - 1 ? (React__default.createElement("div", { className: "line", style: { visibility: 'hidden' } })) : (React__default.createElement("div", { className: "line" }))));
785
- }))),
786
- React__default.createElement("div", { className: "grid-layout", "data-index": groupIndex, style: {
787
- gridTemplateColumns: `repeat(${column}, 1fr)`,
788
- gridTemplateRows: `repeat(${row}, 1fr)`,
789
- } }, group.map((item, itemIndex) => (React__default.createElement(React__default.Fragment, { key: itemIndex },
790
- React__default.createElement("div", { className: "item-grid", key: itemIndex }, item)))))));
791
- })),
792
- isArrowShown && section < groups.length - 1 && (React__default.createElement("div", { className: `${classNameRightArrow} arrow-right`, onClick: () => handleClickArrow('forward'), "data-event-category": dataEventCategory, "data-event-action": dataEventAction, "data-event-label": dataEventLabel },
793
- ' ',
794
- arrowType === 'Care' ? (React__default.createElement("svg", { width: "42", height: "42", viewBox: "0 0 42 42", fill: "none" },
795
- React__default.createElement("g", { filter: "url(#filter0_dd_12597_34423)" },
796
- React__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" }),
797
- React__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" }),
798
- React__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" })),
799
- React__default.createElement("defs", null,
800
- React__default.createElement("filter", { id: "filter0_dd_12597_34423", x: "0.000244141", y: "0", width: "42", height: "42", filterUnits: "userSpaceOnUse", colorInterpolationFilters: "sRGB" },
801
- React__default.createElement("feFlood", { floodOpacity: "0", result: "BackgroundImageFix" }),
802
- React__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" }),
803
- React__default.createElement("feOffset", { dx: "-2", dy: "2" }),
804
- React__default.createElement("feGaussianBlur", { stdDeviation: "2.5" }),
805
- React__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" }),
806
- React__default.createElement("feBlend", { mode: "normal", in2: "BackgroundImageFix", result: "effect1_dropShadow_12597_34423" }),
807
- React__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" }),
808
- React__default.createElement("feOffset", { dx: "-1", dy: "1" }),
809
- React__default.createElement("feGaussianBlur", { stdDeviation: "1" }),
810
- React__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" }),
811
- React__default.createElement("feBlend", { mode: "normal", in2: "effect1_dropShadow_12597_34423", result: "effect2_dropShadow_12597_34423" }),
812
- React__default.createElement("feBlend", { mode: "normal", in: "SourceGraphic", in2: "effect2_dropShadow_12597_34423", result: "shape" }))))) : (React__default.createElement("svg", { width: "32", height: "32", viewBox: "0 0 32 32", fill: "none" },
813
- React__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" }),
814
- React__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" }),
815
- React__default.createElement("path", { d: "M11.1109 16L20.8887 16", stroke: scheme === 'hellosites' ? '#2D87F3' : '#e85388', strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }))))),
816
- isDotsShown && (React__default.createElement("ul", { className: "bullet-nav" }, groups.map((group, index) => (React__default.createElement("li", { key: index, className: "bullet-nav__item " },
817
- React__default.createElement("p", { onClick: () => handleClick(index), className: `bullet-nav__link scroll ${section == index ? 'active' : null}`, "data-scheme": scheme })))))),
818
- isImageGalleryShown && (React__default.createElement("div", { className: "image-gallery-wrapper", "data-test": groups.length }, groups.slice(0, 3).map((item, itemIndex) => (React__default.createElement("div", { className: `image-block ${section == itemIndex ? 'active' : null}`, key: itemIndex, onClick: () => handleClick(itemIndex), "data-scheme": scheme }, item)))))));
819
- };
820
-
821
- const StyledStatisticContainer = styled.div `
822
- border-radius: ${theme.borderRadius};
823
- ${(props) => props['data-is-in-card'] &&
824
- `
825
- padding: 12px;
826
- background-color: ${props['data-card-color']};`}
827
- `;
828
- const StyledDot = styled.div `
829
- width: 13px;
830
- height: 13px;
831
- margin-right: 10px;
832
- background-color: ${(props) => props['data-color']};
833
- border-radius: 50%;
834
- `;
835
- const StyledDescriptionWrapper = styled.div `
836
- display: flex;
837
- align-items: center;
838
- color: ${theme.colors.gray800};
839
- font-size: ${theme.sizes.fsParagraph4};
840
- font-weight: ${theme.sizes.fwRegular};
841
- `;
842
- const StyledStatisticNumberWrapper = styled.div `
843
- display: flex;
844
- align-items: center;
845
- margin-top: 4px;
846
- color: ${theme.colors.gray800};
847
- font-size: ${theme.sizes.fsHeading2};
848
- font-weight: ${theme.sizes.fwSemiBold};
849
-
850
- & > svg {
851
- width: 24px;
852
- height: 24px;
853
- margin-right: 12px;
854
- }
855
-
856
- &[data-size='small'] {
857
- margin-left: 23px;
858
- font-size: ${theme.sizes.fsParagraph4};
859
- font-weight: ${theme.sizes.fwBold};
860
- }
861
- `;
862
-
863
- const StatisticCard = ({ type, description, value, withIcon, isInACard, cardColor, className, }) => {
864
- return (React__default.createElement(StyledStatisticContainer, { className: className, "data-size": type, "data-is-in-card": type === 'big' && isInACard, "data-card-color": cardColor },
865
- React__default.createElement(StyledDescriptionWrapper, null,
866
- type === 'small' && React__default.createElement(StyledDot, { "data-color": cardColor }),
867
- description),
868
- React__default.createElement(StyledStatisticNumberWrapper, { "data-size": type },
869
- type !== 'small' && withIcon,
870
- value)));
871
- };
872
-
873
- const StyledTable = styled.table `
874
- width: 100%;
875
- position: relative;
876
- `;
877
- const Table = ({ children, className, style, horizontalPadding, verticalPadding, }) => {
878
- return (React__default.createElement(StyledTable, { className: className, style: Object.assign({ '--horizontal-spacing': horizontalPadding || '19px', '--vertical-spacing': verticalPadding || '26px' }, style) }, children));
879
- };
880
-
881
- const StyledTableCell = styled.td `
882
- padding: var(--vertical-spacing) var(--horizontal-spacing);
883
- vertical-align: middle;
884
-
885
- &[data-text-align='left'] {
886
- text-align: left;
887
- }
888
- &[data-text-align='right'] {
889
- text-align: right;
890
- }
891
- &[data-text-align='center'] {
892
- text-align: center;
893
- }
894
- `;
895
- const Cell = ({ children, className, style, textAlign, isTableHead, }) => {
896
- return (React__default.createElement(StyledTableCell, { className: className, style: style, "data-text-align": textAlign ? textAlign : 'left', as: isTableHead ? 'th' : 'td' }, children));
897
- };
898
-
899
- const StyledTableRow = styled.tr `
900
- border-bottom: 1px solid ${theme.colors.gray100};
901
-
902
- &[data-is-active='true'] {
903
- background-color: ${theme.colors.gray200};
904
- }
905
- `;
906
- const Row = ({ children, className, style, isActive, onRowClicked, rowId, }) => {
907
- return (React__default.createElement(StyledTableRow, { className: className, "data-is-active": isActive, style: style, onClick: () => {
908
- onRowClicked && onRowClicked(rowId);
909
- } }, children));
910
- };
911
-
912
- const StyledTableHead = styled.thead `
913
- th {
914
- padding: var(--vertical-spacing) var(--horizontal-spacing);
915
- text-align: left;
916
-
917
- color: ${theme.colors.gray500};
918
- font-weight: ${theme.sizes.fwBold};
919
- }
920
- &[data-is-sticky] {
921
- th {
922
- position: sticky;
923
- top: 0;
924
- background: white;
925
- border-bottom: 2px solid ${theme.colors.gray200};
926
- }
927
- }
928
- `;
929
- const Head = ({ isSticky, children, className, style }) => {
930
- return (React__default.createElement(StyledTableHead, { className: className, "data-is-sticky": isSticky || undefined, style: style },
931
- React__default.createElement(Row, null, children)));
932
- };
933
-
934
- const StyledTableBody = styled.tbody `
935
- position: relative;
936
- &[data-is-striped] {
937
- > tr:nth-child(odd) {
938
- background-color: ${theme.colors.neutral50};
939
- }
940
- }
941
- &[data-is-hoverable] {
942
- > tr:hover {
943
- background-color: ${theme.colors.neutral100};
944
- }
945
- }
946
- `;
947
- const Body = ({ children, className, style, isHoverable, isStriped, }) => {
948
- return (React__default.createElement(StyledTableBody, { className: className, style: style, "data-is-striped": isStriped || undefined, "data-is-hoverable": isHoverable || undefined }, children));
949
- };
950
-
951
- var index = /*#__PURE__*/Object.freeze({
952
- __proto__: null,
953
- Table: Table,
954
- Cell: Cell,
955
- Head: Head,
956
- Row: Row,
957
- Body: Body
958
- });
959
-
960
- var useStyles = createStyles((theme) => {
961
- const itemLabelRef = getStylesRef('itemLabel');
962
- return {
963
- root: {
964
- display: 'inline-flex',
965
- maxWidth: '100%',
966
- borderBottom: `1px solid ${theme.colors.neutral[1]}`,
967
- '-webkit-overflow-scrolling': 'touch',
968
- overflowX: 'auto',
969
- overflowY: 'hidden',
970
- '-ms-overflow-style': 'none' /* for Internet Explorer, Edge */,
971
- 'scrollbar-width': 'none' /* for Firefox */,
972
- '&::-webkit-scrollbar': {
973
- display: 'none',
974
- },
975
- columnGap: theme.spacing.lg,
976
- },
977
- item: {
978
- display: 'flex',
979
- alignItems: 'center',
980
- paddingBottom: '4px',
981
- '&:hover': {
982
- cursor: 'pointer',
983
- },
984
- '&.active': {
985
- color: theme.fn.primaryColor(),
986
- borderBottom: `3px solid ${theme.fn.primaryColor()}`,
987
- bottom: '-1px',
988
- position: 'relative',
989
- [`& .${itemLabelRef}`]: {},
990
- },
991
- },
992
- itemInner: {
993
- display: 'flex',
994
- alignItems: 'center',
995
- },
996
- label: {
997
- ref: itemLabelRef,
998
- },
999
- icon: {
1000
- marginRight: theme.spacing.xs,
1001
- },
1002
- };
1003
- });
1004
-
1005
- /**
1006
- * @deprecated Consider to use mantine
1007
- */
1008
- const Tabs = ({ style, initialTab, tabContent, onChange, className, dataEventCategory, dataEventAction, dataEventLabel, id, styles, }) => {
1009
- const { classes, cx, theme } = useStyles(undefined, { name: 'Tabs', styles });
1010
- const [activeTab, setActiveTab] = useState(initialTab || 0);
1011
- useEffect(() => {
1012
- setActiveTab(initialTab);
1013
- }, [initialTab]);
1014
- return (React__default.createElement("ul", { style: style, className: cx(classes.root, className), role: "tablist", id: id }, tabContent.map((tab, i) => (React__default.createElement("li", { className: `${classes.item} ${activeTab === i ? 'active' : ''} ${tab.className}`, "aria-selected": activeTab === i, role: "tab", onClick: () => {
1015
- setActiveTab(i);
1016
- onChange && onChange(i);
1017
- }, onKeyDown: (e) => {
1018
- if (e.key === 'Enter') {
1019
- setActiveTab(i);
1020
- onChange && onChange(i);
1021
- }
1022
- }, 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 },
1023
- React__default.createElement("div", { className: classes.itemInner },
1024
- tab.icon && React__default.createElement("div", { className: classes.icon }, tab.icon),
1025
- React__default.createElement(Text, { className: classes.label, size: tab.textSize || 'sm', weight: tab.textType || 'bold', color: activeTab === i
1026
- ? theme.fn.primaryColor()
1027
- : tab.textColor || theme.colors.gray[4], dataEventCategory: tab.dataEventCategory, dataEventAction: tab.dataEventAction, dataEventLabel: tab.dataEventLabel }, tab.name)))))));
1028
- };
1029
-
1030
- const TRANSITION_TIMING = 200;
1031
- const StyledFloatButtonGroup = styled.div ``;
1032
- const StyledFloatButtonGroupBackgroundPanel = styled.div `
1033
- width: 100vw;
1034
- height: 100vh;
1035
- position: fixed;
1036
- bottom: 0;
1037
- right: 0;
1038
- background-color: ${theme.colors.white};
1039
- opacity: 0.83;
1040
- transition: display ${TRANSITION_TIMING}ms linear;
1041
-
1042
- [data-floatmenu-open='true'] & {
1043
- animation: showBackgroundPanel ${TRANSITION_TIMING}ms linear 0s normal
1044
- forwards;
1045
- }
1046
-
1047
- [data-floatmenu-open='false'] & {
1048
- animation: hideBackgroundPanel ${TRANSITION_TIMING}ms linear 0s normal
1049
- forwards;
1050
- }
1051
-
1052
- @keyframes showBackgroundPanel {
1053
- 0% {
1054
- opacity: 0;
1055
- width: 100vw;
1056
- height: 100vh;
1057
- }
1058
- 100% {
1059
- opacity: 0.83;
1060
- }
1061
- }
1062
-
1063
- @keyframes hideBackgroundPanel {
1064
- 0% {
1065
- width: 100vw;
1066
- height: 100vh;
1067
- }
1068
- 99% {
1069
- width: 100vw;
1070
- height: 100vh;
1071
- }
1072
- 100% {
1073
- opacity: 0;
1074
- width: 0;
1075
- height: 0;
1076
- }
1077
- }
1078
- `;
1079
- const StyledFloatButtonGroupContent = styled.div `
1080
- position: fixed;
1081
- right: 16px;
1082
- bottom: 40px;
1083
- `;
1084
- const StyledFloatButtonGroupItemsWrapper = styled.div `
1085
- display: flex;
1086
- flex-direction: column;
1087
- gap: 16px;
1088
- transition: all ${TRANSITION_TIMING}ms ease-in-out;
1089
- position: fixed;
1090
- bottom: 112px;
1091
- right: 16px;
1092
-
1093
- // scale
1094
- [data-animation-type='scale'] & {
1095
- transform-origin: 100% 100%;
1096
- }
1097
-
1098
- [data-animation-type='scale'][data-floatmenu-open='true'] & {
1099
- transform: scale(1);
1100
- }
1101
-
1102
- [data-animation-type='scale'][data-floatmenu-open='false'] & {
1103
- transform: scale(0);
1104
- bottom: 46px;
1105
- right: 36px;
1106
- }
1107
- `;
1108
- const StyledFloatButtonGroupToggleIcon = styled.div `
1109
- border-radius: 50%;
1110
- width: 56px;
1111
- height: 56px;
1112
- position: relative;
1113
- cursor: pointer;
1114
- margin-left: auto;
1115
- transition: all 0.1s linear;
1116
- -webkit-tap-highlight-color: transparent;
1117
- [data-site-type='hb'] & {
1118
- background-color: ${theme.colors.primaryBase};
1119
- &:hover {
1120
- background-color: ${theme.colors.primaryHover};
1121
- }
1122
- }
1123
- [data-site-type='mb'] & {
1124
- background-color: #2d87f3;
1125
- &:hover {
1126
- background-color: #2c74df;
1127
- }
1128
- }
1129
-
1130
- &:before {
1131
- content: '';
1132
- width: 2px;
1133
- height: 20px;
1134
- background-color: ${theme.colors.white};
1135
- border-radius: 2px;
1136
- position: absolute;
1137
- top: 50%;
1138
- left: 50%;
1139
- transform: translate(-50%, -50%);
1140
- }
1141
-
1142
- &:after {
1143
- content: '';
1144
- width: 20px;
1145
- height: 2px;
1146
- background-color: ${theme.colors.white};
1147
- border-radius: 2px;
1148
- position: absolute;
1149
- top: 50%;
1150
- left: 50%;
1151
- transform: translate(-50%, -50%);
1152
- }
1153
-
1154
- [data-floatmenu-open='true'] &:before,
1155
- [data-floatmenu-open='true'] &:after {
1156
- animation: toX ${TRANSITION_TIMING}ms linear 0s normal forwards;
1157
- }
1158
-
1159
- [data-floatmenu-open='false'] &:before,
1160
- [data-floatmenu-open='false'] &:after {
1161
- animation: toPlus ${TRANSITION_TIMING}ms linear 0s normal forwards;
1162
- }
1163
-
1164
- @keyframes toX {
1165
- 0% {
1166
- transform: translate(-50%, -50%) rotateZ(0deg);
1167
- }
1168
- 49% {
1169
- transform: translate(-50%, -50%) rotateZ(0deg);
1170
- }
1171
- 50% {
1172
- width: 2px;
1173
- height: 2px;
1174
- transform: translate(-50%, -50%) rotateZ(45deg);
1175
- }
1176
- 100% {
1177
- transform: translate(-50%, -50%) rotateZ(45deg);
1178
- }
1179
- }
1180
-
1181
- @keyframes toPlus {
1182
- 0% {
1183
- transform: translate(-50%, -50%) rotateZ(45deg);
1184
- }
1185
- 49% {
1186
- transform: translate(-50%, -50%) rotateZ(45deg);
1187
- }
1188
- 50% {
1189
- width: 2px;
1190
- height: 2px;
1191
- transform: translate(-50%, -50%) rotateZ(0deg);
1192
- }
1193
- 100% {
1194
- transform: translate(-50%, -50%) rotateZ(0deg);
1195
- }
1196
- }
1197
- `;
1198
- const StyledFloatButtonGroupButton = styled.div `
1199
- display: flex;
1200
- gap: 8px;
1201
- align-items: center;
1202
- justify-content: flex-end;
1203
-
1204
- width: fit-content;
1205
- margin-left: auto;
1206
-
1207
- [data-floatmenu-open='true'] {
1208
- cursor: pointer;
1209
- }
1210
- [data-floatmenu-open='false'] {
1211
- pointer-events: none;
1212
- }
1213
-
1214
- [data-animation-type='zoom'] &,
1215
- [data-animation-type='slide'] & {
1216
- position: absolute;
1217
- right: 0;
1218
- width: max-content;
1219
- }
1220
- // slide
1221
- [data-animation-type='slide'] & {
1222
- transition: all ${TRANSITION_TIMING}ms ease-in;
1223
- }
1224
-
1225
- [data-animation-type='slide'][data-floatmenu-open='true'] & {
1226
- animation: showItem ${TRANSITION_TIMING}ms;
1227
- }
1228
- [data-animation-type='slide'][data-floatmenu-open='false'] & {
1229
- bottom: -64px !important;
1230
- animation: hideItemOnZoom ${TRANSITION_TIMING + 50}ms normal forwards;
1231
- }
1232
-
1233
- // zoom
1234
- [data-animation-type='zoom'][data-floatmenu-open='false'] & {
1235
- animation: hideItemOnZoom ${TRANSITION_TIMING + 50}ms normal forwards;
1236
- }
1237
-
1238
- @keyframes showItem {
1239
- 0% {
1240
- opacity: 0;
1241
- }
1242
-
1243
- 100% {
1244
- opacity: 1;
1245
- }
1246
- }
1247
-
1248
- @keyframes hideItemOnZoom {
1249
- 0% {
1250
- transform: translateX(0);
1251
- opacity: 1;
1252
- }
1253
-
1254
- 99% {
1255
- transform: translateX(0);
1256
- opacity: 0.5;
1257
- }
1258
-
1259
- 100% {
1260
- transform: translateX(calc(100% + 16px));
1261
- opacity: 0;
1262
- }
1263
- }
1264
- `;
1265
- const StyledFloatButtonGroupButtonLabel = styled.div `
1266
- font-size: 14px;
1267
-
1268
- // zoom
1269
- [data-animation-type='zoom'] & {
1270
- transition: transform ${TRANSITION_TIMING}ms ease-in-out;
1271
- transform-origin: 100% 0;
1272
- }
1273
-
1274
- [data-animation-type='zoom'][data-floatmenu-open='true'] & {
1275
- transform: scale(1);
1276
- }
1277
-
1278
- [data-animation-type='zoom'][data-floatmenu-open='false'] & {
1279
- transform: scale(0);
1280
- }
1281
-
1282
- // slide
1283
- [data-animation-type='slide'] & {
1284
- transition: opacity ${TRANSITION_TIMING}ms;
1285
- }
1286
- [data-animation-type='slide'][data-floatmenu-open='true'] & {
1287
- opacity: 1;
1288
- }
1289
- [data-animation-type='slide'][data-floatmenu-open='false'] & {
1290
- opacity: 0;
1291
- }
1292
- `;
1293
- const StyledFloatButtonGroupButtonIcon = styled.div `
1294
- border-radius: 50%;
1295
- box-shadow: 0px 16px 24px rgba(0, 0, 0, 0.06), 0px 2px 8px rgba(0, 0, 0, 0.04),
1296
- 0px 0px 1px rgba(0, 0, 0, 0.04);
1297
- width: 48px;
1298
- height: 48px;
1299
- display: flex;
1300
- align-items: center;
1301
- justify-content: center;
1302
- background-color: ${theme.colors.white};
1303
-
1304
- // zoom
1305
- [data-animation-type='zoom'] & {
1306
- transition: transform ${TRANSITION_TIMING}ms ease-in-out;
1307
- }
1308
-
1309
- [data-animation-type='zoom'][data-floatmenu-open='true'] & {
1310
- transform: scale(1);
1311
- }
1312
-
1313
- [data-animation-type='zoom'][data-floatmenu-open='false'] & {
1314
- transform: scale(0);
1315
- }
1316
-
1317
- > img {
1318
- width: 24px;
1319
- height: 24px;
1320
- object-fit: contain;
1321
- }
1322
- `;
1323
-
1324
- const FloatButtonGroup = ({ items, className, style, backgroundPanelStyle, isOpen: isOpenProp, onOpen, onClose, disableBackdropClick, siteType = 'hb', animationType = 'zoom', zIndex = 300, }) => {
1325
- const [isOpen, setIsOpen] = useState(!!isOpenProp);
1326
- useEffect(() => {
1327
- setIsOpen(!!isOpenProp);
1328
- }, [isOpenProp]);
1329
- const handleOpen = () => {
1330
- setIsOpen(true);
1331
- if (onOpen) {
1332
- onOpen();
1333
- }
1334
- };
1335
- const handleClose = () => {
1336
- setIsOpen(false);
1337
- if (onClose) {
1338
- onClose();
1339
- }
1340
- };
1341
- return (React__default.createElement(StyledFloatButtonGroup, { style: style, className: className, "data-floatmenu-open": isOpen, "data-site-type": siteType, "data-animation-type": animationType },
1342
- React__default.createElement(StyledFloatButtonGroupBackgroundPanel, { className: "float-button-group__panel", style: Object.assign({ zIndex }, backgroundPanelStyle), onClick: !disableBackdropClick ? handleClose : undefined }),
1343
- React__default.createElement(StyledFloatButtonGroupContent, { className: "float-button-group___content", style: { zIndex } },
1344
- React__default.createElement(StyledFloatButtonGroupItemsWrapper, null, items.map((item, index) => {
1345
- return (React__default.createElement(StyledFloatButtonGroupButton, { className: `float-item-button-${index}`, style: Object.assign(Object.assign({}, (animationType === 'zoom' && {
1346
- bottom: (items.length - 1 - index) * (48 + 16),
1347
- transitionDelay: `${(TRANSITION_TIMING / items.length) *
1348
- (isOpen ? items.length - 1 - index : index)}ms`,
1349
- })), (animationType === 'slide' && {
1350
- bottom: (items.length - 1 - index) * (48 + 16),
1351
- transitionDelay: `${(TRANSITION_TIMING / items.length) *
1352
- (!isOpen ? items.length - 1 - index : index)}ms`,
1353
- })), key: index, onClick: () => {
1354
- item.onClick();
1355
- if (!item.keepMenuOnClick) {
1356
- setIsOpen(false);
1357
- }
1358
- } },
1359
- React__default.createElement(StyledFloatButtonGroupButtonLabel, { style: Object.assign({}, (animationType === 'zoom' && {
1360
- transitionDelay: `${(TRANSITION_TIMING / items.length) *
1361
- (isOpen ? items.length - 1 - index : index)}ms`,
1362
- })) }, item.label),
1363
- React__default.createElement(StyledFloatButtonGroupButtonIcon, { className: "float-item-button__icon-wrapper", style: Object.assign({}, ((animationType === 'zoom' ||
1364
- animationType === 'slide') && {
1365
- transitionDelay: `${(TRANSITION_TIMING / items.length) *
1366
- (isOpen ? items.length - 1 - index : index)}ms`,
1367
- })) }, item.icon)));
1368
- })),
1369
- React__default.createElement(StyledFloatButtonGroupToggleIcon, { onClick: isOpen ? handleClose : handleOpen }))));
1370
- };
1371
-
1372
- const StyledAcceptCardContainer = styled.div `
1373
- padding: 16px;
1374
- width: 375px;
1375
- word-wrap: break-word;
1376
- word-break: break-word;
1377
- ${MediaQueries.mbDown} {
1378
- width: 100%;
1379
- }
1380
- &[data-theme='helloSites'] {
1381
- background: ${theme.colors.secondaryBase};
1382
- box-shadow: 0px 8px 40px rgba(0, 0, 0, 0.1);
1383
- }
1384
- &[data-theme='marryBaby'] {
1385
- border: none;
1386
- background: ${theme.mbColors.pink};
1387
- border-radius: 12px 12px 0 0;
1388
- }
1389
- &[data-is-open='false'] {
1390
- display: none;
1391
- }
1392
- &[data-default-position='true'] {
1393
- position: fixed;
1394
- z-index: 1000;
1395
- bottom: 0;
1396
- right: 0;
1397
- ${MediaQueries.mbDown} {
1398
- left: 0;
1399
- right: unset;
1400
- }
1401
- }
1402
- `;
1403
- const StyledTitleSection = styled.p `
1404
- position: relative;
1405
- padding-left: 24px;
1406
- color: ${theme.colors.white};
1407
- font-size: 14px;
1408
- font-weight: 600;
1409
- line-height: 22px;
1410
- &[data-has-content='true'] {
1411
- ::before {
1412
- position: absolute;
1413
- top: 0;
1414
- bottom: 0;
1415
- left: 0;
1416
- width: 16px;
1417
- height: 16px;
1418
- margin: auto 0;
1419
- 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");
1420
- }
1421
- }
1422
- `;
1423
- const StyledDescription = styled.p `
1424
- margin-top: 2px;
1425
- color: ${theme.colors.white};
1426
- font-size: 12px;
1427
- font-weight: 400;
1428
- line-height: 18px;
1429
- a {
1430
- color: ${theme.colors.white};
1431
- text-decoration: none;
1432
- text-decoration-line: underline;
1433
- }
1434
- `;
1435
- const StyledButtonGroup = styled.div `
1436
- display: flex;
1437
- align-items: center;
1438
- margin-top: 8px;
1439
- gap: 16px;
1440
- `;
1441
- const StyledAcceptButton = styled.div `
1442
- padding: 7px 28px;
1443
- background: ${theme.colors.white};
1444
- border-radius: ${theme.borderRadius};
1445
- color: ${theme.colors.secondaryBase};
1446
- cursor: pointer;
1447
- font-size: 12px;
1448
- font-weight: 600;
1449
- line-height: 18px;
1450
- `;
1451
- const StyledPoliciesButton = styled.a `
1452
- color: ${theme.colors.white};
1453
- font-size: 12px;
1454
- font-weight: 600;
1455
- line-height: 22px;
1456
- text-decoration: none;
1457
- text-decoration-line: underline;
1458
- `;
1459
-
1460
- const CookieAcceptConfirm = ({ className, policiesUrl, onAcceptClick, translations = {
1461
- acceptButton: 'Accept',
1462
- policiesButton: 'Our Policies',
1463
- }, title = '', description = '', theme = 'helloSites', isOpen = true, useDefaultPosition = true, trackingAttributes, }) => {
1464
- return (React__default.createElement(StyledAcceptCardContainer, { className: className, "data-theme": theme, "data-is-open": isOpen, "data-default-position": useDefaultPosition },
1465
- React__default.createElement(StyledTitleSection, { "data-has-content": !!title }, title),
1466
- React__default.createElement(StyledDescription, { dangerouslySetInnerHTML: {
1467
- __html: description,
1468
- } }),
1469
- React__default.createElement(StyledButtonGroup, null,
1470
- React__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),
1471
- React__default.createElement(StyledPoliciesButton, { href: policiesUrl }, translations.policiesButton))));
1472
- };
1473
-
1474
- const SeoHead = ({ SEOData = {}, locale = 'vi-VN', routerPathname: pathname, routerQuery: query, nextHead: Head, siteType, seoCustom, userId, forcedCanonicalUrl, }) => {
1475
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
1476
- const { totalPages, currentPage, SEOTitle = '', SEODescription = '', SEOImage, seoType, SEOImageWidth, SEOImageHeight, customMetaData = [], isIndexable = true, hasNoCanonical = false, } = SEOData;
1477
- const robotIndex = isIndexable && isProduction
1478
- ? 'index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1'
1479
- : 'noindex';
1480
- // const { locale = 'vi-VN', pathname, query } = router
1481
- const { NEXT_PUBLIC_BASE_API_URL } = process.env;
1482
- let newPath = SEOData.canonicalUrl || pathname;
1483
- Object.keys(query).forEach((key) => {
1484
- const queryItem = query[key];
1485
- if (queryItem && Array.isArray(queryItem)) {
1486
- newPath = newPath.replace(`[...${key}]`, queryItem.join('/'));
1487
- }
1488
- });
1489
- const sL = locale || 'en-PH'; // standardized locale
1490
- const siteUrl = siteType === 'helloSites' ? domainLocales[sL] : 'www.marrybaby.vn';
1491
- const hasSlash = newPath.endsWith('/') ? '' : '/';
1492
- // TODO: remove or replace html-react-parser
1493
- const metaData = useMemo(() => {
1494
- var _a, _b, _c, _d, _e, _f, _g;
1495
- let resMetaData = '';
1496
- if (SEOData.apiMetaData && typeof SEOData.apiMetaData === 'string') {
1497
- const paginatedTitle = (_a = SEOData.apiMetaData) === null || _a === void 0 ? void 0 : _a.match(/<title.*?>(.*)<\/title>/);
1498
- const paginatedNumber = ` - Page ${currentPage} of ${totalPages}`;
1499
- const fD = currentPage && currentPage !== 1 && paginatedTitle
1500
- ? SEOData.apiMetaData
1501
- .replace(paginatedTitle[0], paginatedTitle[0].includes('-')
1502
- ? paginatedTitle[0].replace('-', paginatedNumber + ' - ')
1503
- : `<title>${paginatedTitle[1].concat(paginatedNumber)}</title>`)
1504
- .replace(`<link rel="canonical" href="https://${siteUrl}${newPath}${hasSlash}" />`, `<link rel="canonical" href="https://${siteUrl}${newPath}${hasSlash}?page=${currentPage}" />`)
1505
- : SEOData.apiMetaData;
1506
- resMetaData = parse(fD, { trim: true });
1507
- if (!resMetaData.find((data) => {
1508
- var _a, _b;
1509
- return ((_a = data.props) === null || _a === void 0 ? void 0 : _a.property) === 'og:image' ||
1510
- ((_b = data.props) === null || _b === void 0 ? void 0 : _b.property) === 'og:image:secure_url';
1511
- })) {
1512
- const DefaultOgImage = `https://${siteUrl}/images/${locale}.png`;
1513
- resMetaData = [
1514
- ...resMetaData,
1515
- React__default.createElement("meta", { key: 'og:image', property: "og:image", content: ((_b = SEOData.openGraph) === null || _b === void 0 ? void 0 : _b.image) || SEOImage || DefaultOgImage || '' }),
1516
- React__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 }),
1517
- React__default.createElement("meta", { key: 'og:image:width', property: "og:image:width", content: (((_d = SEOData.openGraph) === null || _d === void 0 ? void 0 : _d.imageWidth) &&
1518
- String((_e = SEOData.openGraph) === null || _e === void 0 ? void 0 : _e.imageWidth)) ||
1519
- (SEOImageWidth && String(SEOImageWidth)) ||
1520
- '1200' }),
1521
- React__default.createElement("meta", { key: 'og:image:height', property: "og:image:height", content: (((_f = SEOData.openGraph) === null || _f === void 0 ? void 0 : _f.imageHeight) &&
1522
- String((_g = SEOData.openGraph) === null || _g === void 0 ? void 0 : _g.imageHeight)) ||
1523
- (SEOImageHeight && String(SEOImageHeight)) ||
1524
- '630' }),
1525
- ];
1526
- }
1527
- }
1528
- return resMetaData;
1529
- }, [
1530
- SEOData.apiMetaData,
1531
- SEOData.openGraph,
1532
- SEOImage,
1533
- SEOImageHeight,
1534
- SEOImageWidth,
1535
- currentPage,
1536
- newPath,
1537
- totalPages,
1538
- locale,
1539
- siteUrl,
1540
- ]);
1541
- const defaultImage = `https://${siteUrl}/images/${locale}.png`;
1542
- const fontUrl = siteType === 'marryBaby'
1543
- ? 'https://fonts.googleapis.com/css2?family=Inter:wght@400..800&display=swap'
1544
- : locale === 'km-KH'
1545
- ? 'https://fonts.googleapis.com/css2?family=Battambang:wght@400;700&display=swap'
1546
- : locale === 'th-TH'
1547
- ? 'https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wdth,wght@62.5..100,100..900&display=swap'
1548
- : 'https://fonts.googleapis.com/css2?family=Inter:wght@400..800&display=swap';
1549
- return (React__default.createElement(Head, null,
1550
- React__default.createElement("link", { rel: "preconnect", href: "https://fonts.gstatic.com" }),
1551
- React__default.createElement("link", { rel: "preload", href: fontUrl, as: "style" }),
1552
- React__default.createElement("link", { rel: "stylesheet", href: fontUrl }),
1553
- React__default.createElement("link", { rel: "preconnect", href: NEXT_PUBLIC_BASE_API_URL }),
1554
- React__default.createElement("meta", { charSet: "UTF-8" }),
1555
- React__default.createElement("meta", { name: "viewport", content: "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" }),
1556
- React__default.createElement("meta", { name: "google", content: "notranslate" }),
1557
- React__default.createElement("meta", { name: "robots", content: robotIndex }),
1558
- React__default.createElement("meta", { property: "fb:app_id", content: "653713035016537" }),
1559
- customMetaData.map((customMeta, index) => {
1560
- return React__default.createElement("meta", Object.assign({ key: index }, customMeta));
1561
- }),
1562
- React__default.createElement("meta", { name: "theme-color", content: siteType === 'helloSites' ? '#2c87f3' : '#e85388' }),
1563
- React__default.createElement("meta", { name: "page_type", content: "Home" }),
1564
- React__default.createElement("meta", { name: "page_platform", content: "WEB" }),
1565
- React__default.createElement("meta", { name: "page_language", content: sL }),
1566
- React__default.createElement("meta", { name: "ahrefs-site-verification", content: "46e7521a2b89a1013149c4685bbe02a1d36a4732fef98655142b829bc87cba4d" }),
1567
- !metaData && (React__default.createElement(React__default.Fragment, null,
1568
- siteType === 'helloSites' ? (React__default.createElement("title", null, seoCustom
1569
- ? SEOTitle
1570
- : SEOTitle + ' - ' + ((_a = LOCALE_SPECS[locale]) === null || _a === void 0 ? void 0 : _a.SITE_NAME))) : (React__default.createElement("title", null, SEOTitle)),
1571
- !hasNoCanonical && (React__default.createElement("link", { rel: "canonical", href: `https://${siteUrl}${newPath}` })),
1572
- React__default.createElement("meta", { name: "description", content: SEODescription || ((_b = SEOData.openGraph) === null || _b === void 0 ? void 0 : _b.description) }),
1573
- SEOData.schemaData && (React__default.createElement("script", { type: "application/ld+json", className: "yoast-schema-graph", dangerouslySetInnerHTML: { __html: SEOData.schemaData } })),
1574
- React__default.createElement("meta", { property: "og:locale", content: locale }),
1575
- React__default.createElement("meta", { property: "og:type", content: seoType || 'website' }),
1576
- React__default.createElement("meta", { property: "og:title", content: ((_c = SEOData.openGraph) === null || _c === void 0 ? void 0 : _c.title) || SEOTitle }),
1577
- React__default.createElement("meta", { property: "og:description", content: ((_d = SEOData.openGraph) === null || _d === void 0 ? void 0 : _d.description) || SEODescription }),
1578
- React__default.createElement("meta", { property: "og:url", content: `https://${siteUrl}${newPath}` }),
1579
- React__default.createElement("meta", { property: "og:site_name", content: `https://${siteUrl}` }),
1580
- React__default.createElement("meta", { property: "og:image", content: ((_e = SEOData.openGraph) === null || _e === void 0 ? void 0 : _e.image) || SEOImage || defaultImage || '' }),
1581
- React__default.createElement("meta", { property: "og:image:secure_url", content: ((_f = SEOData.openGraph) === null || _f === void 0 ? void 0 : _f.image) || SEOImage || defaultImage }),
1582
- React__default.createElement("meta", { property: "og:image:width", content: (((_g = SEOData.openGraph) === null || _g === void 0 ? void 0 : _g.imageWidth) &&
1583
- String((_h = SEOData.openGraph) === null || _h === void 0 ? void 0 : _h.imageWidth)) ||
1584
- (SEOImageWidth && String(SEOImageWidth)) ||
1585
- '1200' }),
1586
- React__default.createElement("meta", { property: "og:image:height", content: (((_j = SEOData.openGraph) === null || _j === void 0 ? void 0 : _j.imageHeight) &&
1587
- String((_k = SEOData.openGraph) === null || _k === void 0 ? void 0 : _k.imageHeight)) ||
1588
- (SEOImageHeight && String(SEOImageHeight)) ||
1589
- '630' }),
1590
- React__default.createElement("meta", { name: "twitter:card", content: "summary_large_image" }),
1591
- React__default.createElement("meta", { name: "twitter:title", content: ((_l = SEOData.twitter) === null || _l === void 0 ? void 0 : _l.title) || SEOTitle }),
1592
- React__default.createElement("meta", { name: "twitter:description", content: SEODescription }),
1593
- React__default.createElement("meta", { name: "twitter:image", content: ((_m = SEOData.twitter) === null || _m === void 0 ? void 0 : _m.image) || SEOImage }))),
1594
- (siteType === 'helloSites'
1595
- ? FAVICONS[sL] || []
1596
- : FAVICONS.marryBaby).map((item, index) => {
1597
- if (item.type === 'link') {
1598
- return (React__default.createElement("link", { key: `favicon-${index}`, rel: item.rel, href: item.href, sizes: item.sizes }));
1599
- }
1600
- if (item.type === 'meta') {
1601
- return React__default.createElement("meta", { key: index, name: item.name, content: item.content });
1602
- }
1603
- return null;
1604
- }),
1605
- Array.isArray(metaData) && !!forcedCanonicalUrl
1606
- ? metaData.filter((d) => d.props.name !== 'canonical' && d.props.rel !== 'canonical')
1607
- : metaData,
1608
- forcedCanonicalUrl && React__default.createElement("link", { rel: "canonical", href: forcedCanonicalUrl }),
1609
- !SEOData.hasNoAmp && locale !== 'vi-VN' && (React__default.createElement("link", { rel: "amphtml", href: `https://${siteUrl}${newPath}${hasSlash}?amp=1` })),
1610
- userId && typeof window !== 'undefined' ? (React__default.createElement("script", { dangerouslySetInnerHTML: {
1611
- __html: `window.dataLayer = window.dataLayer || []; window.dataLayer.push({'userID': '${userId}'});`,
1612
- } })) : null));
1613
- };
1614
-
1615
- const StyledCalendarWrapper$1 = styled.div `
1616
- flex: 1;
1617
- `;
1618
- const StyledCalendarCellsWrapper = styled.div `
1619
- padding: 0 10px;
1620
- `;
1621
- const StyledCalendarHead = styled.div `
1622
- display: flex;
1623
- height: 80px;
1624
- align-items: center;
1625
- .calendar-month {
1626
- font-size: 16px;
1627
- flex: 1;
1628
- text-align: center;
1629
- strong {
1630
- margin-left: 5px;
1631
- }
1632
- }
1633
- ${MediaQueries.mbDown} {
1634
- height: 70px;
1635
- }
1636
- `;
1637
- const StyledCalendarGrid = styled.div `
1638
- display: grid;
1639
- grid-template-columns: repeat(7, 1fr);
1640
- row-gap: 2px;
1641
- `;
1642
- const StyledCalendarDaysOfWeek = styled(StyledCalendarGrid) `
1643
- margin-bottom: 8px;
1644
- `;
1645
- styled.div `
1646
- height: 40px;
1647
- width: 40px;
1648
- display: flex;
1649
- align-items: center;
1650
- justify-content: center;
1651
- `;
1652
- const StyledCalendarDayLabel = styled.div `
1653
- font-size: 14px;
1654
- display: flex;
1655
- justify-content: center;
1656
- align-items: center;
1657
- color: 1px solid ${theme.colors.gray800};
1658
- font-weight: 300;
1659
- `;
1660
- const StyledCalendarMonthSeparator = styled.div `
1661
- width: 18px;
1662
- position: relative;
1663
- &::before {
1664
- content: '';
1665
- position: absolute;
1666
- inset: 16px 0 0 0;
1667
- width: 1px;
1668
- left: 50%;
1669
- right: 50%;
1670
- background: ${theme.colors.neutral100};
1671
- }
1672
- `;
1673
- const StyledCalendarDaysWrapper = styled.div `
1674
- margin: 0 auto;
1675
- `;
1676
- const StyledCalendarMonthWrapper = styled.div `
1677
- position: relative;
1678
- `;
1679
- const StyledCalendarDateGrid = StyledCalendarGrid;
1680
- const StyledCalendarDayNumberWrapper = styled.div `
1681
- position: relative;
1682
- display: flex;
1683
- justify-content: center;
1684
- align-items: center;
1685
- height: 34px;
1686
- ${MediaQueries.mbUp} {
1687
- height: 38px;
1688
- }
1689
- &[data-is-disabled='true'] {
1690
- opacity: 0.3;
1691
- }
1692
- &[data-in-range='true']:not([data-is-from='true'][data-is-to='true']) {
1693
- background-color: ${theme.colors.gray100};
1694
- }
1695
- &:before {
1696
- position: absolute;
1697
- top: 0;
1698
- bottom: 0;
1699
- right: 0;
1700
- background-color: ${theme.colors.gray100};
1701
- }
1702
- &[data-is-from='true'][data-in-range='true'][data-is-to='false'] {
1703
- background-color: transparent;
1704
- &:before {
1705
- content: '';
1706
- left: 50%;
1707
- right: 0;
1708
- }
1709
- }
1710
-
1711
- &[data-is-to='true'][data-in-range='true'][data-is-from='false'],
1712
- &:hover[data-in-range='true']:is([data-has-range='false'] &) {
1713
- background-color: transparent;
1714
- &:before {
1715
- content: '';
1716
- left: 0;
1717
- right: 50%;
1718
- }
1719
- }
1720
- `;
1721
- const StyledCalendarDayNumber = styled.div `
1722
- position: relative;
1723
- font-weight: 600;
1724
- ${MediaQueries.mbDown} {
1725
- width: 32px;
1726
- height: 32px;
1727
- }
1728
- ${MediaQueries.mbUp} {
1729
- width: 36px;
1730
- height: 36px;
1731
- }
1732
- display: flex;
1733
- justify-content: center;
1734
- align-items: center;
1735
- cursor: pointer;
1736
- [data-is-disabled='true'] & {
1737
- cursor: not-allowed;
1738
- }
1739
- line-height: 1;
1740
- color: 1px solid ${theme.colors.gray800};
1741
- [data-is-selected='true'] &,
1742
- [data-is-today='true'] &,
1743
- [data-is-selected='false']:hover & {
1744
- border-radius: 32px;
1745
- }
1746
- [data-is-selected='true'] & {
1747
- background-color: ${theme.colors.primaryBase};
1748
- color: white;
1749
- }
1750
- [data-is-selected='false']:hover & {
1751
- background-color: ${theme.colors.primary50};
1752
- }
1753
- [data-is-today='true'][data-is-selected='false'] & {
1754
- background-color: transparent;
1755
- border-radius: 32px;
1756
- border: 1px solid ${theme.colors.primaryBase};
1757
- }
1758
- `;
1759
-
1760
- function handleClickDay(d, range) {
1761
- if (!range.from && !range.to) {
1762
- return Object.assign(Object.assign({}, range), { from: d });
1763
- }
1764
- if (range.from && range.to) {
1765
- return { from: d, to: null };
1766
- }
1767
- if (range.from) {
1768
- if (isBefore(d, range.from)) {
1769
- return Object.assign(Object.assign({}, range), { from: d });
1770
- }
1771
- else {
1772
- return Object.assign(Object.assign({}, range), { to: d });
1773
- }
1774
- }
1775
- return range;
1776
- }
1777
-
1778
- const dateLocaleByLocale = {
1779
- 'en-PH': enUS,
1780
- 'vi-VN': vi,
1781
- 'zh-TW': zhTW,
1782
- 'id-ID': id,
1783
- };
1784
- function DateRangePickerCalendar(props) {
1785
- const { value = { from: null, to: null } } = props;
1786
- const [hoverDay, setHoverDay] = useState(null);
1787
- const { isMobile } = useScreenSize();
1788
- const [range, setRange] = useState(() => value);
1789
- const [date, setDate] = useState(() => { var _a; return startOfMonth((_a = value.from) !== null && _a !== void 0 ? _a : new Date()); });
1790
- const nextMonth = useMemo(() => addMonths(date, 1), [date]);
1791
- function goToPreviousMonth() {
1792
- setDate((d) => subMonths(d, 1));
1793
- }
1794
- function goToNextMonth() {
1795
- setDate((d) => addMonths(d, 1));
1796
- }
1797
- const monthProps = Object.assign(Object.assign({}, props), { goToNextMonth,
1798
- goToPreviousMonth,
1799
- range,
1800
- setRange,
1801
- hoverDay,
1802
- setHoverDay });
1803
- return (React__default.createElement(React__default.Fragment, null,
1804
- React__default.createElement(DateRangePickerCalendarMonth, Object.assign({}, monthProps, { date: date })),
1805
- !isMobile && React__default.createElement(StyledCalendarMonthSeparator, null),
1806
- !isMobile && (React__default.createElement(DateRangePickerCalendarMonth, Object.assign({}, monthProps, { date: nextMonth })))));
1807
- }
1808
- function DateRangePickerCalendarMonth({ date,
1809
- // value,
1810
- range, setRange, onChange, goToPreviousMonth, goToNextMonth, minDate, maxDate, close = () => undefined, autoClose = false, hoverDay, setHoverDay, }) {
1811
- const { locale } = useTranslations();
1812
- const dateLocale = useMemo(() => { var _a; return (_a = dateLocaleByLocale[locale]) !== null && _a !== void 0 ? _a : dateLocaleByLocale['en-PH']; }, [locale]);
1813
- const monthLabel = useMemo(() => format(date, 'MMMM', { locale: dateLocale }), [date, dateLocale]);
1814
- const weekDays = useMemo(() => {
1815
- if (!dateLocale) {
1816
- return [];
1817
- }
1818
- return [1, 2, 3, 4, 5, 6, 0].map((i) => dateLocale.localize.day(i, { width: 'narrow' }));
1819
- }, [dateLocale]);
1820
- useEffect(() => {
1821
- if (range.from && range.to) {
1822
- onChange(range);
1823
- }
1824
- }, [range]);
1825
- function renderWeekDays() {
1826
- return (React__default.createElement(StyledCalendarDaysOfWeek, null, weekDays.map((d, i) => (React__default.createElement(StyledCalendarDayLabel, { key: `${d}-${i}` }, d)))));
1827
- }
1828
- function renderMonth() {
1829
- const year = date.getFullYear();
1830
- const monthIndex = date.getMonth();
1831
- const daysInMonth = getDaysInMonth(date);
1832
- const days = [];
1833
- for (let i = 1; i <= daysInMonth; i++) {
1834
- days.push(new Date(year, monthIndex, i));
1835
- }
1836
- const weekDayIndex = days[0] ? days[0].getDay() : 0;
1837
- if (weekDayIndex !== 1) {
1838
- const idx = weekDayIndex === 0 ? 6 : weekDayIndex - 1;
1839
- for (let i = 0; i < idx; i++) {
1840
- days.unshift(null);
1841
- }
1842
- }
1843
- return (React__default.createElement(StyledCalendarMonthWrapper, { key: `month-${monthIndex}`, "data-month-index": monthIndex, "data-has-range": Boolean(range.from && range.to) },
1844
- React__default.createElement(StyledCalendarDaysWrapper, null,
1845
- React__default.createElement(StyledCalendarDateGrid, null, days.map(renderDay)))));
1846
- }
1847
- function renderDay(d, index) {
1848
- if (d === null) {
1849
- return (React__default.createElement(StyledCalendarDayNumberWrapper, { key: `idx-${index}`, "data-empty": "true" }));
1850
- }
1851
- const day = d.getDate();
1852
- const isDateToday = isToday(d);
1853
- const isFrom = range.from ? isSameDay(range.from, d) : false;
1854
- const isTo = range.to ? isSameDay(range.to, d) : false;
1855
- const isSelected = isFrom || isTo;
1856
- const hasHoveredDay = hoverDay !== null;
1857
- let inRange = false;
1858
- if (hasHoveredDay &&
1859
- range.from &&
1860
- isBefore(range.from, hoverDay) &&
1861
- !range.to) {
1862
- inRange = isWithinInterval(d, { start: range.from, end: hoverDay });
1863
- }
1864
- else if (range.from && range.to) {
1865
- inRange = isWithinInterval(d, { start: range.from, end: range.to });
1866
- }
1867
- let isDisabled = false;
1868
- if (minDate && maxDate) {
1869
- isDisabled = !isWithinInterval(d, { start: minDate, end: maxDate });
1870
- }
1871
- else if (minDate) {
1872
- isDisabled = isBefore(d, minDate);
1873
- }
1874
- else if (maxDate) {
1875
- isDisabled = isAfter(d, maxDate);
1876
- }
1877
- return (React__default.createElement(StyledCalendarDayNumberWrapper, { key: day, "data-is-today": isDateToday, "data-is-past": !isDateToday && isPast(d), "data-is-selected": isSelected, "data-is-disabled": isDisabled, "data-in-range": inRange, "data-is-from": isFrom, "data-is-to": isTo, onMouseEnter: () => {
1878
- setHoverDay(d);
1879
- }, onMouseLeave: () => setHoverDay(null), onClick: () => {
1880
- if (isDisabled) {
1881
- return;
1882
- }
1883
- setRange((r) => {
1884
- if (autoClose && range.from && !range.to) {
1885
- close();
1886
- }
1887
- return handleClickDay(d, r);
1888
- });
1889
- } },
1890
- React__default.createElement(StyledCalendarDayNumber, { onClick: () => undefined },
1891
- React__default.createElement("p", null, day))));
1892
- }
1893
- return (React__default.createElement(StyledCalendarWrapper$1, { className: "calendar-wrapper" },
1894
- React__default.createElement(StyledCalendarHead, null,
1895
- React__default.createElement(Button, { onClick: goToPreviousMonth, size: "md", color: "ghost", icon: React__default.createElement("img", { src: CommonGAssets.getAssetPath('calendarArrowLeft.svg'), loading: "lazy" }) }),
1896
- React__default.createElement("div", { className: "calendar-month" },
1897
- monthLabel,
1898
- React__default.createElement("strong", null, format(date, 'yyyy'))),
1899
- React__default.createElement(Button, { onClick: goToNextMonth, size: "md", color: "ghost", icon: React__default.createElement("img", { src: CommonGAssets.getAssetPath('calendarArrowRight.svg'), loading: "lazy" }) })),
1900
- React__default.createElement(StyledCalendarCellsWrapper, null,
1901
- React__default.createElement("div", null, renderWeekDays()),
1902
- React__default.createElement("div", null, renderMonth()))));
1903
- }
1904
-
1905
- const StyledWrapper = styled.div `
1906
- display: block;
1907
- position: relative;
1908
- width: 270px;
1909
- input {
1910
- pointer-events: none;
1911
- caret-color: transparent;
1912
- }
1913
- ${MediaQueries.mbDown} {
1914
- width: 100%;
1915
- }
1916
- `;
1917
- const StyledCalendarWrapper = styled.div `
1918
- display: flex;
1919
- position: absolute;
1920
- top: 46px;
1921
- left: 0;
1922
- width: 684px;
1923
- border: 1px solid ${theme.colors.gray200};
1924
- filter: drop-shadow(0px 10px 16px rgba(0, 0, 0, 0.04))
1925
- drop-shadow(0px 2px 8px rgba(0, 0, 0, 0.04))
1926
- drop-shadow(0px 0px 1px rgba(0, 0, 0, 0.04));
1927
- border-radius: ${theme.borderRadius};
1928
- background-color: white;
1929
- z-index: 100;
1930
- padding-bottom: 16px;
1931
- align-items: stretch;
1932
- user-select: none;
1933
- ${MediaQueries.mbDown} {
1934
- width: 100%;
1935
- }
1936
- `;
1937
-
1938
- /**
1939
- * @deprecated Consider to use at '@hhgtech/hhg-components/mantine'
1940
- */
1941
- function DateRangePicker({ inputSize = 'md', name = 'date-range-picker', value, minDate, maxDate, onChange, className, autoClose = false, }) {
1942
- if (!value) {
1943
- value = { from: null, to: null };
1944
- }
1945
- const [opened, setOpened] = useState(false);
1946
- function close() {
1947
- setOpened(false);
1948
- }
1949
- const ref = useRef(null);
1950
- useOutsideClick(ref, () => {
1951
- close();
1952
- });
1953
- function handleChange(nextValue) {
1954
- if (onChange) {
1955
- onChange(nextValue);
1956
- }
1957
- }
1958
- function formatDate(d) {
1959
- return format(d, 'dd/MM/yyyy');
1960
- }
1961
- const fieldValue = useMemo(() => {
1962
- if (value.from && value.to) {
1963
- if (isSameDay(value.from, value.to)) {
1964
- return formatDate(value.from);
1965
- }
1966
- return `${formatDate(value.from)} - ${formatDate(value.to)}`;
1967
- }
1968
- return '';
1969
- }, [value.from, value.to]);
1970
- function renderCalendar() {
1971
- return (React__default.createElement(DateRangePickerCalendar, { value: value, onChange: handleChange, minDate: minDate, maxDate: maxDate, close: close, autoClose: autoClose }));
1972
- }
1973
- return (React__default.createElement(StyledWrapper, { className: [className, opened && 'focused'].filter(Boolean).join(' '), ref: ref },
1974
- React__default.createElement("label", { htmlFor: name },
1975
- React__default.createElement(PureInput, { size: inputSize, value: fieldValue, name: name, actionIcon: React__default.createElement("img", { src: CommonGAssets.getAssetPath('calendar.svg'), loading: "lazy" }), onFocus: () => setOpened(true) })),
1976
- opened ? (React__default.createElement(StyledCalendarWrapper, { onMouseDown: (e) => {
1977
- e.stopPropagation();
1978
- } }, renderCalendar())) : null));
1979
- }
1980
-
1981
- var styles = {"breadcrumb":"WUqzfRb","separator":"MnVGtSY","textLink":"NclbhXQ"};
1982
-
1983
- const BreadcrumbItem = ({ LinkComponent, page, isLast, onChangePage, }) => {
1984
- const { label, value, isDropdown, dropdownItems, dataEventCategory, dataEventAction, dataEventLabel, } = page;
1985
- if (isDropdown) {
1986
- return (React__default.createElement(Dropdown, { options: dropdownItems, placeholder: "...", id: "", placeholderIcon: null, onChange: onChangePage, className: "collapsed-breadcrumb" }));
1987
- }
1988
- return (React__default.createElement("div", { className: styles.textLink, title: typeof label !== 'string' ? value : label, "data-last": isLast }, LinkComponent && (React__default.createElement(LinkComponent, { "data-event-category": dataEventCategory, "data-event-action": dataEventAction, "data-event-label": dataEventLabel, href: value || '#' }, label))));
1989
- };
1990
- /**
1991
- * @deprecated
1992
- */
1993
- const Breadcrumbs = ({ className, pages, size, LinkComponent = 'a', onChangePage, separator, }) => {
1994
- const mappedList = useMemo(() => pages
1995
- .map((item, index) => {
1996
- if (pages.length > 4) {
1997
- if (index > 1 && index < pages.length - 2)
1998
- return null;
1999
- if (index === 1) {
2000
- return Object.assign(Object.assign({}, item), { isDropdown: index === 1, dropdownItems: pages.slice(1, pages.length - 2) });
2001
- }
2002
- return item;
2003
- }
2004
- return item;
2005
- })
2006
- .filter(Boolean), [pages]);
2007
- return (React__default.createElement("div", { "data-size": size, className: `${styles.breadcrumb} ${className || ''}` }, mappedList.map((page, index) => {
2008
- const isLast = index + 1 === mappedList.length;
2009
- return (React__default.createElement(Fragment, { key: index },
2010
- React__default.createElement(BreadcrumbItem, { LinkComponent: LinkComponent, page: page, isLast: isLast, onChangePage: onChangePage }),
2011
- !isLast &&
2012
- (page.separator || separator || (React__default.createElement("div", { className: styles.separator, "data-size": size })))));
2013
- })));
2014
- };
2015
-
2016
- const StyledShareContainer = styled.div `
2017
- display: flex;
2018
- gap: 20px;
2019
- width: 100%;
2020
- align-items: center;
2021
- justify-content: center;
2022
- .icon-group {
2023
- display: flex;
2024
- align-items: center;
2025
- gap: 10px;
2026
- a,
2027
- svg {
2028
- width: 32px;
2029
- height: 32px;
2030
- }
2031
- .share {
2032
- width: 32px;
2033
- height: 32px;
2034
- padding: 8px;
2035
-
2036
- &:hover {
2037
- background-color: ${theme.colors.neutral50};
2038
- }
2039
-
2040
- svg {
2041
- margin: 0;
2042
- width: 16px;
2043
- height: 16px;
2044
- }
2045
- }
2046
- }
2047
- `;
2048
-
2049
- const AttachIcon = () => {
2050
- return (React__default.createElement("svg", { width: "17", height: "16", viewBox: "0 0 17 16", fill: "none" },
2051
- React__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" }),
2052
- React__default.createElement("path", { d: "M6.5 8H10.5", stroke: "#595959", strokeLinecap: "round", strokeLinejoin: "round" })));
2053
- };
2054
- const ShareContainer = ({ url, onCopied, locale, siteType, }) => {
2055
- const { t } = useTranslations();
2056
- const socialList = getSocialList({ shareUrl: url || '', locale }).filter((s) => !s.allowedLocales || s.allowedLocales.includes(locale));
2057
- const copyToClipboard = () => __awaiter(void 0, void 0, void 0, function* () {
2058
- var _a;
2059
- yield ((_a = navigator === null || navigator === void 0 ? void 0 : navigator.clipboard) === null || _a === void 0 ? void 0 : _a.writeText(url));
2060
- onCopied === null || onCopied === void 0 ? void 0 : onCopied();
2061
- });
2062
- const currentUrl = useMemo(() => {
2063
- if (typeof window !== 'undefined') {
2064
- return window.location.href;
2065
- }
2066
- else
2067
- return '';
2068
- }, []);
2069
- return (React__default.createElement(StyledShareContainer, null,
2070
- React__default.createElement(Text, { size: "p3", color: theme.colors.gray800 }, t('shareContainer.title')),
2071
- React__default.createElement("div", { className: "icon-group" },
2072
- socialList.map((social, index) => (React__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))),
2073
- React__default.createElement(Button, { theme: siteType, size: "sm", type: "button", color: "tertiary", className: "share", style: {}, icon: React__default.createElement(AttachIcon, null), onClick: copyToClipboard, "data-event-category": "Health Tool", "data-event-action": "Copy Link", "data-event-label": currentUrl }))));
2074
- };
2075
-
2076
- const StyledShareDrawer = styled(Drawer) `
2077
- padding-bottom: 24px;
2078
- .share-container {
2079
- display: flex;
2080
- flex-direction: column;
2081
- gap: 24px;
2082
- }
2083
- .icon-group {
2084
- margin-top: 12px;
2085
- display: flex;
2086
- gap: 16px;
2087
- img {
2088
- border-radius: 8px;
2089
- }
2090
- }
2091
- .input-group {
2092
- margin-top: 8px;
2093
- display: flex;
2094
- gap: 8px;
2095
- button {
2096
- padding: 10px;
2097
- &:hover {
2098
- background-color: ${theme.colors.neutral50};
2099
- }
2100
- }
2101
- svg {
2102
- margin: 0;
2103
- }
2104
- a,
2105
- svg:not(.copy) {
2106
- width: 32px;
2107
- height: 32px;
2108
- }
2109
- }
2110
- `;
2111
-
2112
- const CopyIcon = () => {
2113
- return (React__default.createElement("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", className: "copy" },
2114
- React__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" })));
2115
- };
2116
- const ShareDrawer = (_a) => {
2117
- var { open, title, onClose, onCopied, onShared, url, locale } = _a, rest = __rest(_a, ["open", "title", "onClose", "onCopied", "onShared", "url", "locale"]);
2118
- const { t } = useTranslations();
2119
- const copyToClipboard = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
2120
- var _b;
2121
- yield ((_b = navigator === null || navigator === void 0 ? void 0 : navigator.clipboard) === null || _b === void 0 ? void 0 : _b.writeText(url));
2122
- onCopied === null || onCopied === void 0 ? void 0 : onCopied();
2123
- }), [url, onCopied]);
2124
- const socialList = getSocialList({ shareUrl: url || '', locale }).filter((platform) => !platform.allowedLocales || platform.allowedLocales.includes(locale));
2125
- useEffect(() => {
2126
- if (open && navigator.share) {
2127
- navigator
2128
- .share({
2129
- title: title !== null && title !== void 0 ? title : 'Read This Post',
2130
- url,
2131
- })
2132
- .then(() => {
2133
- onShared === null || onShared === void 0 ? void 0 : onShared();
2134
- })
2135
- .catch(() => {
2136
- onClose === null || onClose === void 0 ? void 0 : onClose();
2137
- });
2138
- }
2139
- }, [url, title, onShared, open]);
2140
- if (typeof navigator !== 'undefined' && navigator.share) {
2141
- return null;
2142
- }
2143
- else {
2144
- return (React__default.createElement(StyledShareDrawer, Object.assign({ title: t('share.title'), onClose: onClose, open: open, placement: "bottom" }, rest),
2145
- React__default.createElement("div", { className: "share-container" },
2146
- React__default.createElement("div", { className: "icon-container" },
2147
- React__default.createElement(Text, { weight: "semiBold", size: "s3", color: theme.colors.gray600 }, t('share.title')),
2148
- React__default.createElement("div", { className: "icon-group" }, socialList.map((social, index) => (React__default.createElement("a", { key: index, href: social.href, target: "_blank", rel: "noreferrer" }, social.icon))))),
2149
- React__default.createElement("div", { className: "link-container" },
2150
- React__default.createElement(Text, { weight: "semiBold", size: "s3", color: theme.colors.gray600 }, t('share.copyLink')),
2151
- React__default.createElement("div", { className: "input-group" },
2152
- React__default.createElement(Input, { name: "link", size: "md", value: url, isDisabled: true }),
2153
- React__default.createElement(Button, { size: "md", type: "button", color: "tertiary", icon: React__default.createElement(CopyIcon, null), onClick: copyToClipboard }))))));
2154
- }
2155
- };
2156
-
2157
- const StyledFixedAdBlock = styled.div `
2158
- position: fixed;
2159
- z-index: 48;
2160
- bottom: 0;
2161
- left: 50%;
2162
- width: fit-content;
2163
- max-width: 100%;
2164
- background: none;
2165
- transform: translateX(-50%);
2166
- .close-sticky-button {
2167
- position: absolute;
2168
- display: flex;
2169
- width: 16px;
2170
- height: 16px;
2171
- align-items: center;
2172
- justify-content: center;
2173
- background: #bfbfbf;
2174
- border-radius: 50%;
2175
- color: white;
2176
-
2177
- cursor: pointer;
2178
- font-size: 12px;
2179
- line-height: 12px;
2180
- transform: translate(50%, -50%);
2181
- top: 0;
2182
- right: 0;
2183
- }
2184
- opacity: 0;
2185
- pointer-events: none;
2186
- &[data-visible='true'] {
2187
- opacity: 1;
2188
- pointer-events: auto;
2189
- }
2190
- `;
2191
- const StyledAdContainer = styled.div `
2192
- display: flex;
2193
- justify-content: center;
2194
- align-items: center;
2195
- flex-direction: column;
2196
- max-width: 100%;
2197
- width: fit-content;
2198
- height: fit-content;
2199
- margin-inline: auto;
2200
- /* margin: 1rem auto; */
2201
- &[data-no-wrapper='false'] {
2202
- border: 1px solid ${theme.colors.neutral50};
2203
- background: ${theme.colors.neutral50};
2204
- }
2205
- &[data-no-wrapper='true'] {
2206
- line-height: 0;
2207
- }
2208
- &[data-header-bottom='true'] {
2209
- flex-direction: column-reverse;
2210
- background: none;
2211
- border: none;
2212
- }
2213
- `;
2214
- /* background: ${theme.colors.neutral50}; */
2215
- const StyledAdHeader = styled.div `
2216
- width: 100%;
2217
- padding: 0 5px 1.5px;
2218
- display: flex;
2219
- align-items: center;
2220
- justify-content: center;
2221
- gap: 5px;
2222
- text-transform: capitalize;
2223
- img {
2224
- height: 12px;
2225
- width: 12px;
2226
- max-width: 12px;
2227
- max-height: 12px;
2228
- }
2229
- &[data-header-bottom='true'] {
2230
- background: ${theme.colors.neutral50};
2231
- }
2232
- span {
2233
- font-size: 10px;
2234
- line-height: 12px;
2235
- color: ${theme.colors.gray400};
2236
- font-weight: 400;
2237
- }
2238
- `;
2239
- const StyledCloseBtn = styled.div `
2240
- background-color: white;
2241
- background-image: url(${CommonGAssets.getAssetPath('close-blue.svg')});
2242
- background-repeat: no-repeat;
2243
- background-size: 10px;
2244
- background-position: center;
2245
- width: 12px;
2246
- height: 12px;
2247
- position: absolute;
2248
- top: 1px;
2249
- right: 1px;
2250
- cursor: pointer;
2251
- `;
2252
-
2253
- const SlotsById = {};
2254
- const displayAd = ({ contentId, adUnitPath, size, divId, pos, sizeMapping, hideIfHasSubot, customTargetings, onSuccess, }) => {
2255
- if (!divId || !document.getElementById(divId))
2256
- return console.error('divId is required');
2257
- destroyAdSlot(divId);
2258
- window.googletag = window.googletag || { cmd: [] };
2259
- const { googletag } = window;
2260
- googletag.cmd.push(function () {
2261
- const $content_id_container = document.querySelector('meta[name="content_id"]');
2262
- const $content_id = typeof contentId === 'string' ? contentId : $content_id_container === null || $content_id_container === void 0 ? void 0 : $content_id_container.content;
2263
- const newSlot = googletag.defineSlot(adUnitPath, size, divId);
2264
- if (newSlot) {
2265
- try {
2266
- if (customTargetings) {
2267
- Object.keys(customTargetings).forEach((k) => {
2268
- if (k)
2269
- newSlot === null || newSlot === void 0 ? void 0 : newSlot.setTargeting(k, customTargetings[k]);
2270
- });
2271
- }
2272
- }
2273
- catch (e) {
2274
- console.error(e);
2275
- }
2276
- SlotsById[divId] = newSlot;
2277
- newSlot.setTargeting('Pos', pos);
2278
- newSlot.addService(googletag.pubads());
2279
- if ($content_id)
2280
- newSlot.setTargeting('Content_ID', $content_id);
2281
- if (sizeMapping)
2282
- newSlot.defineSizeMapping(sizeMapping);
2283
- if (hideIfHasSubot && document.getElementById('subot--container')) {
2284
- newSlot.setTargeting('chatbot', true);
2285
- }
2286
- googletag.display(divId);
2287
- onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
2288
- }
2289
- });
2290
- };
2291
- const destroyAdSlot = (divId) => {
2292
- if (SlotsById[divId]) {
2293
- window.googletag = window.googletag || { cmd: [] };
2294
- const { googletag } = window;
2295
- googletag.cmd.push(function () {
2296
- googletag.destroySlots([SlotsById[divId]]);
2297
- delete SlotsById[divId];
2298
- });
2299
- }
2300
- };
2301
- const DEFAULT_30S_AD_POS = [
2302
- 'TopBanner',
2303
- 'MidBanner1',
2304
- 'MidBanner2',
2305
- 'EndBanner',
2306
- 'Sticky',
2307
- ];
2308
- const ForwaredAdBlock = forwardRef(function InfinityAdBlock({ className, adUnitPath, size, divId, pos, sizeMapping, contentId, isHidden, hideIfHasSubot, isSticky, refreshInterval, // seconds
2309
- customTargetings, style, adDefaultSize, noWrapper, showCloseBtn, onCloseAd, headerBottom, wrapperProps, locale, isMarryBaby, }, ref) {
2310
- const defaultRefreshInterval = refreshInterval ||
2311
- (locale === LOCALE.Vietnam
2312
- ? pos.some((p) => DEFAULT_30S_AD_POS.includes(p))
2313
- ? 30
2314
- : undefined
2315
- : undefined);
2316
- const { t } = useTranslations();
2317
- const containerRef = useRef(null);
2318
- const adRefreshIntervalRef = useRef(null);
2319
- const refreshIntervalRef = useRef(defaultRefreshInterval);
2320
- refreshIntervalRef.current = defaultRefreshInterval;
2321
- const [localCloseAd, setLocalCloseAd] = useState(false);
2322
- const adSlotChanged = () => {
2323
- if (refreshIntervalRef.current) {
2324
- if (adRefreshIntervalRef.current !== null) {
2325
- clearInterval(adRefreshIntervalRef.current);
2326
- }
2327
- adRefreshIntervalRef.current = window.setInterval(() => {
2328
- window.googletag = window.googletag || { cmd: [] };
2329
- const { googletag } = window;
2330
- googletag.cmd.push(function () {
2331
- if (SlotsById[divId]) {
2332
- googletag.pubads().refresh([SlotsById[divId]]);
2333
- }
2334
- });
2335
- }, refreshIntervalRef.current * 1000);
2336
- }
2337
- };
2338
- useEffect(() => {
2339
- return () => {
2340
- destroyAdSlot(divId);
2341
- if (adRefreshIntervalRef.current)
2342
- clearInterval(adRefreshIntervalRef.current);
2343
- };
2344
- }, []);
2345
- useEffect(() => {
2346
- adSlotChanged();
2347
- }, [defaultRefreshInterval]);
2348
- useEffect(() => {
2349
- if (!isHidden) {
2350
- displayAd({
2351
- contentId,
2352
- adUnitPath,
2353
- size,
2354
- divId,
2355
- pos,
2356
- sizeMapping,
2357
- hideIfHasSubot,
2358
- customTargetings,
2359
- onSuccess: adSlotChanged,
2360
- });
2361
- }
2362
- }, [isHidden]);
2363
- if (localCloseAd)
2364
- return null;
2365
- const AdContent = (React__default.createElement("div", { style: {
2366
- position: 'relative',
2367
- width: 'fit-content',
2368
- height: 'fit-content',
2369
- overflow: 'hidden',
2370
- maxWidth: '100%',
2371
- display: 'flex',
2372
- alignItems: 'center',
2373
- justifyContent: 'center',
2374
- } },
2375
- React__default.createElement("div", { ref: ref, id: divId }),
2376
- showCloseBtn && (React__default.createElement(StyledCloseBtn, { onClick: () => {
2377
- onCloseAd === null || onCloseAd === void 0 ? void 0 : onCloseAd();
2378
- setLocalCloseAd(true);
2379
- } }))));
2380
- if (isSticky)
2381
- return AdContent;
2382
- const minWidth = adDefaultSize
2383
- ? adDefaultSize[0]
2384
- : size
2385
- ? Array.isArray(size[0])
2386
- ? size[0][0]
2387
- : size[0]
2388
- : undefined;
2389
- const minHeight = adDefaultSize
2390
- ? adDefaultSize[1]
2391
- : size
2392
- ? Array.isArray(size[0])
2393
- ? size[0][1]
2394
- : size[1]
2395
- : undefined;
2396
- return (React__default.createElement(Box, Object.assign({}, wrapperProps, { className: className }),
2397
- React__default.createElement(StyledAdContainer, { ref: containerRef, className: className, style: style, "data-no-wrapper": !!noWrapper, "data-header-bottom": !!headerBottom }, noWrapper ? (AdContent) : (React__default.createElement(React__default.Fragment, null,
2398
- React__default.createElement(StyledAdHeader, { "data-header-bottom": !!headerBottom },
2399
- React__default.createElement("img", { src: isMarryBaby
2400
- ? CommonGAssets.getAssetPath('adsIcon-mb.svg')
2401
- : CommonGAssets.getAssetPath('adsIcon.svg'), alt: "", loading: "lazy" }),
2402
- React__default.createElement("span", null, t('adBanner.title'))),
2403
- React__default.createElement("div", { style: {
2404
- minWidth: minWidth || '100%',
2405
- minHeight: minHeight || '100%',
2406
- position: 'relative',
2407
- } }, AdContent))))));
2408
- });
2409
- const AdBlock = memo(ForwaredAdBlock, (prevProps, nextProps) => {
2410
- return (prevProps.adUnitPath === nextProps.adUnitPath &&
2411
- prevProps.divId === nextProps.divId &&
2412
- prevProps.className === nextProps.className);
2413
- });
2414
-
2415
- const FixedBottomAdBlock = ({ className, adUnitPath, divId, isMobile, contentId, customTargetings, locale, isMarryBaby, }) => {
2416
- const [hideAd, setHideAd] = useState(true);
2417
- const [userHideAd, setUserHideAd] = useState(false);
2418
- const [hidden, setHidden] = useState(true);
2419
- const adRef = useRef(null);
2420
- const mountRandRef = useRef(v4());
2421
- const fixedAdRef = useRef(null);
2422
- const timeoutRef = useRef();
2423
- const closeBtnTimeoutRef = useRef();
2424
- useEffect(() => {
2425
- const checkAdShowing = () => {
2426
- if (closeBtnTimeoutRef.current)
2427
- clearTimeout(closeBtnTimeoutRef.current);
2428
- closeBtnTimeoutRef.current = setTimeout(() => {
2429
- var _a;
2430
- if (document.getElementById('subot--container')) {
2431
- setHideAd(true);
2432
- }
2433
- else {
2434
- setHideAd(false);
2435
- if (!((_a = adRef.current) === null || _a === void 0 ? void 0 : _a.clientHeight)) {
2436
- setHidden(true);
2437
- }
2438
- else {
2439
- setHidden(false);
2440
- }
2441
- }
2442
- checkAdShowing();
2443
- }, 4000);
2444
- };
2445
- checkAdShowing();
2446
- return () => {
2447
- timeoutRef.current && clearTimeout(timeoutRef.current);
2448
- closeBtnTimeoutRef.current && clearTimeout(closeBtnTimeoutRef.current);
2449
- };
2450
- }, []);
2451
- if (hideAd || userHideAd)
2452
- return null;
2453
- return (React__default.createElement(StyledFixedAdBlock, { key: isMobile ? 'mobile' : 'desktop', ref: fixedAdRef, className: className, "data-visible": !hidden }, adUnitPath && (React__default.createElement(AdBlock, { wrapperProps: { m: 0 }, ref: adRef, adUnitPath: adUnitPath, size: isMobile
2454
- ? [
2455
- [320, 50],
2456
- [320, 100],
2457
- ]
2458
- : [728, 90], divId: (divId || 'div-gpt-ad-sticky') +
2459
- (isMobile ? '-mobile' : '') +
2460
- contentId +
2461
- 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 }))));
2462
- };
2463
-
2464
- export { AdBlock as A, Breadcrumbs as B, CategoryCard as C, DoctorInfo as D, FloatButtonGroup as F, IconText as I, RadioGroup as R, ScrollList as S, Tabs as T, CheckboxGroup as a, StatisticCard as b, index as c, CookieAcceptConfirm as d, SeoHead as e, DateRangePicker as f, ShareContainer as g, ShareDrawer as h, index$1 as i, FixedBottomAdBlock as j };