@hhgtech/hhg-components 1.19.0-beta-7 → 1.19.0

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 (855) hide show
  1. package/README.md +8 -0
  2. package/build/care.js +1 -1
  3. package/build/components/molecules/index.d.ts +0 -2
  4. package/build/components/organisms/navigationLayout/utils.d.ts +0 -2
  5. package/build/components.js +1 -1
  6. package/build/cookieHelper-fc4e507c.js +2 -0
  7. package/build/{cookieHelper-40ab50eb.js.map → cookieHelper-fc4e507c.js.map} +1 -1
  8. package/build/core.js +1 -1
  9. package/build/esm/care.js +1 -1
  10. package/build/esm/components/molecules/index.d.ts +0 -2
  11. package/build/esm/components/organisms/navigationLayout/utils.d.ts +0 -2
  12. package/build/esm/components.js +1 -1
  13. package/build/esm/{cookieHelper-caf76f93.js → cookieHelper-42a68fdf.js} +2 -2
  14. package/build/esm/{cookieHelper-caf76f93.js.map → cookieHelper-42a68fdf.js.map} +1 -1
  15. package/build/esm/core.js +1 -1
  16. package/build/esm/{index-0348b56b.js → index-7084e1a2.js} +2 -2
  17. package/build/esm/{index-0348b56b.js.map → index-7084e1a2.js.map} +1 -1
  18. package/build/esm/index-7c43a515.js +2 -0
  19. package/build/esm/index-7c43a515.js.map +1 -0
  20. package/build/esm/index-f6c281af.js +2 -0
  21. package/build/esm/index-f6c281af.js.map +1 -0
  22. package/build/esm/{index-f799fba8.js → index-fb3aea4c.js} +2 -2
  23. package/build/esm/{index-f799fba8.js.map → index-fb3aea4c.js.map} +1 -1
  24. package/build/esm/index.js +1 -1
  25. package/build/esm/{index.styled-64f8f6e8.js → index.styled-4d602105.js} +2 -2
  26. package/build/esm/{index.styled-64f8f6e8.js.map → index.styled-4d602105.js.map} +1 -1
  27. package/build/esm/misc/utils.d.ts +5 -53
  28. package/build/esm/navigation.js +1 -1
  29. package/build/esm/together.js +1 -1
  30. package/build/esm/{types-5c8ce743.js → types-2d902fee.js} +2 -2
  31. package/build/esm/{types-5c8ce743.js.map → types-2d902fee.js.map} +1 -1
  32. package/build/esm/types-91439763.js +2 -0
  33. package/build/esm/types-91439763.js.map +1 -0
  34. package/build/esm/useTranslations-f3eec98c.js +2 -0
  35. package/build/esm/useTranslations-f3eec98c.js.map +1 -0
  36. package/build/index-205e279e.js +2 -0
  37. package/build/index-205e279e.js.map +1 -0
  38. package/build/index-21ad911e.js +2 -0
  39. package/build/index-21ad911e.js.map +1 -0
  40. package/build/{index-8b1e9d3e.js → index-b3a14f60.js} +2 -2
  41. package/build/{index-8b1e9d3e.js.map → index-b3a14f60.js.map} +1 -1
  42. package/build/{index-eed59e93.js → index-f951cab2.js} +2 -2
  43. package/build/{index-eed59e93.js.map → index-f951cab2.js.map} +1 -1
  44. package/build/index.js +1 -1
  45. package/build/{index.styled-89837cca.js → index.styled-e5088bb1.js} +2 -2
  46. package/build/{index.styled-89837cca.js.map → index.styled-e5088bb1.js.map} +1 -1
  47. package/build/misc/utils.d.ts +5 -53
  48. package/build/navigation.js +1 -1
  49. package/build/together.js +1 -1
  50. package/build/{types-5985800a.js → types-06d1c33e.js} +2 -2
  51. package/build/{types-5985800a.js.map → types-06d1c33e.js.map} +1 -1
  52. package/build/types-9b704e38.js +2 -0
  53. package/build/types-9b704e38.js.map +1 -0
  54. package/build/useTranslations-41d2f908.js +2 -0
  55. package/build/useTranslations-41d2f908.js.map +1 -0
  56. package/package.json +9 -9
  57. package/.eslintrc.json +0 -53
  58. package/build/components/molecules/dateRangePicker/calendar/index.d.ts +0 -9
  59. package/build/components/molecules/dateRangePicker/calendar/index.styled.d.ts +0 -13
  60. package/build/components/molecules/dateRangePicker/index.d.ts +0 -13
  61. package/build/components/molecules/dateRangePicker/index.styled.d.ts +0 -2
  62. package/build/components/molecules/dateRangePicker/types.d.ts +0 -4
  63. package/build/components/molecules/dateRangePicker/utils.d.ts +0 -2
  64. package/build/cookieHelper-40ab50eb.js +0 -2
  65. package/build/esm/components/molecules/dateRangePicker/calendar/index.d.ts +0 -9
  66. package/build/esm/components/molecules/dateRangePicker/calendar/index.styled.d.ts +0 -13
  67. package/build/esm/components/molecules/dateRangePicker/index.d.ts +0 -13
  68. package/build/esm/components/molecules/dateRangePicker/index.styled.d.ts +0 -2
  69. package/build/esm/components/molecules/dateRangePicker/types.d.ts +0 -4
  70. package/build/esm/components/molecules/dateRangePicker/utils.d.ts +0 -2
  71. package/build/esm/index-680f53de.js +0 -2
  72. package/build/esm/index-680f53de.js.map +0 -1
  73. package/build/esm/index-dda5ff2a.js +0 -2
  74. package/build/esm/index-dda5ff2a.js.map +0 -1
  75. package/build/esm/types-26f12b26.js +0 -2
  76. package/build/esm/types-26f12b26.js.map +0 -1
  77. package/build/esm/useOutsideClick-6004483a.js +0 -2
  78. package/build/esm/useOutsideClick-6004483a.js.map +0 -1
  79. package/build/esm/useTranslations-0c13f2cb.js +0 -2
  80. package/build/esm/useTranslations-0c13f2cb.js.map +0 -1
  81. package/build/index-4fa610b1.js +0 -2
  82. package/build/index-4fa610b1.js.map +0 -1
  83. package/build/index-5b032a36.js +0 -2
  84. package/build/index-5b032a36.js.map +0 -1
  85. package/build/types-df74aec0.js +0 -2
  86. package/build/types-df74aec0.js.map +0 -1
  87. package/build/useOutsideClick-528bfd6c.js +0 -2
  88. package/build/useOutsideClick-528bfd6c.js.map +0 -1
  89. package/build/useTranslations-29326df5.js +0 -2
  90. package/build/useTranslations-29326df5.js.map +0 -1
  91. package/src/assets/svg/Spotlight.svg +0 -12
  92. package/src/assets/svg/StarEmptyIcon.tsx +0 -19
  93. package/src/assets/svg/StarFullIcon.tsx +0 -21
  94. package/src/assets/svg/StarHalfIcon.tsx +0 -35
  95. package/src/assets/svg/arrowDoor.svg +0 -9
  96. package/src/assets/svg/calendar.svg +0 -3
  97. package/src/assets/svg/calendarArrowLeft.svg +0 -3
  98. package/src/assets/svg/calendarArrowRight.svg +0 -3
  99. package/src/assets/svg/check.svg +0 -3
  100. package/src/assets/svg/chevronDown.svg +0 -3
  101. package/src/assets/svg/chevronRight.svg +0 -3
  102. package/src/assets/svg/chevronRightActive.svg +0 -3
  103. package/src/assets/svg/chevronRightWhite.svg +0 -3
  104. package/src/assets/svg/chevronUpBlue.svg +0 -3
  105. package/src/assets/svg/closeLight.svg +0 -4
  106. package/src/assets/svg/closeWhite.svg +0 -4
  107. package/src/assets/svg/community.svg +0 -1
  108. package/src/assets/svg/discover.png +0 -0
  109. package/src/assets/svg/facebook.svg +0 -4
  110. package/src/assets/svg/hamburgerMenu.svg +0 -5
  111. package/src/assets/svg/hamburgerMenuNew.svg +0 -1
  112. package/src/assets/svg/hamburgerMenuNewWithSearch.svg +0 -1
  113. package/src/assets/svg/healthTools.png +0 -0
  114. package/src/assets/svg/helloCare-thumbnail.png +0 -0
  115. package/src/assets/svg/index.ts +0 -63
  116. package/src/assets/svg/info-light.svg +0 -5
  117. package/src/assets/svg/instagram.svg +0 -1
  118. package/src/assets/svg/linkedin.svg +0 -1
  119. package/src/assets/svg/lock.png +0 -0
  120. package/src/assets/svg/login.svg +0 -1
  121. package/src/assets/svg/sehat-badge.png +0 -0
  122. package/src/assets/svg/together.png +0 -0
  123. package/src/assets/svg/youtube.svg +0 -4
  124. package/src/assets/svg/zalo.png +0 -0
  125. package/src/cache/core.ts +0 -52
  126. package/src/cache/index.ts +0 -1
  127. package/src/care/api/paths.ts +0 -11
  128. package/src/care/api/utils.ts +0 -32
  129. package/src/care/components/atoms/icons/index.tsx +0 -170
  130. package/src/care/components/organisms/bookingSearchBar/constants.ts +0 -9
  131. package/src/care/components/organisms/bookingSearchBar/index.stories.tsx +0 -127
  132. package/src/care/components/organisms/bookingSearchBar/index.styled.ts +0 -51
  133. package/src/care/components/organisms/bookingSearchBar/index.test.tsx +0 -556
  134. package/src/care/components/organisms/bookingSearchBar/index.tsx +0 -448
  135. package/src/care/components/organisms/bookingSearchBar/locationResults/index.styled.ts +0 -94
  136. package/src/care/components/organisms/bookingSearchBar/locationResults/index.tsx +0 -132
  137. package/src/care/components/organisms/bookingSearchBar/locationResults/liSkeleton.tsx +0 -52
  138. package/src/care/components/organisms/bookingSearchBar/mobileFakeInput/index.tsx +0 -68
  139. package/src/care/components/organisms/bookingSearchBar/mobileTopbar/index.stories.tsx +0 -22
  140. package/src/care/components/organisms/bookingSearchBar/mobileTopbar/index.styled.ts +0 -41
  141. package/src/care/components/organisms/bookingSearchBar/mobileTopbar/index.tsx +0 -48
  142. package/src/care/components/organisms/bookingSearchBar/reducer.ts +0 -293
  143. package/src/care/components/organisms/bookingSearchBar/resultSection/icons.tsx +0 -37
  144. package/src/care/components/organisms/bookingSearchBar/resultSection/index.stories.tsx +0 -155
  145. package/src/care/components/organisms/bookingSearchBar/resultSection/index.styled.ts +0 -89
  146. package/src/care/components/organisms/bookingSearchBar/resultSection/index.tsx +0 -234
  147. package/src/care/components/organisms/bookingSearchBar/resultSectionItem/index.stories.tsx +0 -55
  148. package/src/care/components/organisms/bookingSearchBar/resultSectionItem/index.styled.ts +0 -75
  149. package/src/care/components/organisms/bookingSearchBar/resultSectionItem/index.tsx +0 -86
  150. package/src/care/components/organisms/bookingSearchBar/searchInputs/index.styled.ts +0 -42
  151. package/src/care/components/organisms/bookingSearchBar/searchInputs/index.tsx +0 -219
  152. package/src/care/components/organisms/bookingSearchBar/searchResults/index.stories.tsx +0 -55
  153. package/src/care/components/organisms/bookingSearchBar/searchResults/index.tsx +0 -62
  154. package/src/care/components/organisms/bookingSearchBar/searchResults/mockData.ts +0 -169
  155. package/src/care/components/organisms/bookingSearchBar/searchSubmitIcon/index.tsx +0 -73
  156. package/src/care/components/organisms/bookingSearchBar/types.ts +0 -12
  157. package/src/care/components/organisms/bookingSearchBar/useAnimatedPlaceholder.ts +0 -86
  158. package/src/care/components/organisms/bookingSearchBar/useSearchBarApi.ts +0 -150
  159. package/src/care/components/organisms/bookingSearchBar/utils/Typewriter.ts +0 -437
  160. package/src/care/index.ts +0 -6
  161. package/src/care/interfaces/constants.ts +0 -75
  162. package/src/care/interfaces/types.ts +0 -258
  163. package/src/components/atoms/alert/__snapshots__/index.test.tsx.snap +0 -130
  164. package/src/components/atoms/alert/index.stories.tsx +0 -21
  165. package/src/components/atoms/alert/index.styled.tsx +0 -44
  166. package/src/components/atoms/alert/index.test.tsx +0 -28
  167. package/src/components/atoms/alert/index.tsx +0 -47
  168. package/src/components/atoms/avatar/index.stories.tsx +0 -49
  169. package/src/components/atoms/avatar/index.styled.tsx +0 -96
  170. package/src/components/atoms/avatar/index.tsx +0 -91
  171. package/src/components/atoms/badge/__snapshots__/index.test.tsx.snap +0 -61
  172. package/src/components/atoms/badge/index.stories.tsx +0 -71
  173. package/src/components/atoms/badge/index.styled.tsx +0 -138
  174. package/src/components/atoms/badge/index.test.tsx +0 -27
  175. package/src/components/atoms/badge/index.tsx +0 -45
  176. package/src/components/atoms/borderHeading/index.stories.tsx +0 -38
  177. package/src/components/atoms/borderHeading/index.styled.tsx +0 -50
  178. package/src/components/atoms/borderHeading/index.tsx +0 -39
  179. package/src/components/atoms/button/__snapshots__/index.test.tsx.snap +0 -57
  180. package/src/components/atoms/button/index.stories.tsx +0 -107
  181. package/src/components/atoms/button/index.styled.tsx +0 -335
  182. package/src/components/atoms/button/index.test.tsx +0 -25
  183. package/src/components/atoms/button/index.tsx +0 -207
  184. package/src/components/atoms/checkbox/__snapshots__/index.test.tsx.snap +0 -120
  185. package/src/components/atoms/checkbox/index.stories.tsx +0 -30
  186. package/src/components/atoms/checkbox/index.styled.tsx +0 -90
  187. package/src/components/atoms/checkbox/index.test.tsx +0 -31
  188. package/src/components/atoms/checkbox/index.tsx +0 -48
  189. package/src/components/atoms/container/index.styled.tsx +0 -16
  190. package/src/components/atoms/container/index.tsx +0 -21
  191. package/src/components/atoms/displayWrapper/index.styled.tsx +0 -19
  192. package/src/components/atoms/displayWrapper/index.tsx +0 -66
  193. package/src/components/atoms/divider/__snapshots__/index.test.tsx.snap +0 -14
  194. package/src/components/atoms/divider/index.stories.tsx +0 -19
  195. package/src/components/atoms/divider/index.styled.tsx +0 -10
  196. package/src/components/atoms/divider/index.test.tsx +0 -22
  197. package/src/components/atoms/divider/index.tsx +0 -34
  198. package/src/components/atoms/fileDropdown/__snapshots__/index.test.tsx.snap +0 -143
  199. package/src/components/atoms/fileDropdown/index.stories.tsx +0 -41
  200. package/src/components/atoms/fileDropdown/index.styled.tsx +0 -112
  201. package/src/components/atoms/fileDropdown/index.test.tsx +0 -46
  202. package/src/components/atoms/fileDropdown/index.tsx +0 -200
  203. package/src/components/atoms/flag/__snapshots__/index.test.tsx.snap +0 -59
  204. package/src/components/atoms/flag/icons/cambodia.tsx +0 -24
  205. package/src/components/atoms/flag/icons/english.tsx +0 -195
  206. package/src/components/atoms/flag/icons/india.tsx +0 -24
  207. package/src/components/atoms/flag/icons/indonesia.tsx +0 -55
  208. package/src/components/atoms/flag/icons/malaysia.tsx +0 -89
  209. package/src/components/atoms/flag/icons/myanmar.tsx +0 -105
  210. package/src/components/atoms/flag/icons/philippines.tsx +0 -24
  211. package/src/components/atoms/flag/icons/taiwan.tsx +0 -154
  212. package/src/components/atoms/flag/icons/thailand.tsx +0 -55
  213. package/src/components/atoms/flag/icons/vietnam.tsx +0 -57
  214. package/src/components/atoms/flag/index.stories.tsx +0 -30
  215. package/src/components/atoms/flag/index.styled.tsx +0 -18
  216. package/src/components/atoms/flag/index.test.tsx +0 -21
  217. package/src/components/atoms/flag/index.tsx +0 -150
  218. package/src/components/atoms/grid/__snapshots__/index.test.tsx.snap +0 -38
  219. package/src/components/atoms/grid/index.stories.tsx +0 -50
  220. package/src/components/atoms/grid/index.styled.tsx +0 -34
  221. package/src/components/atoms/grid/index.test.tsx +0 -26
  222. package/src/components/atoms/grid/index.tsx +0 -61
  223. package/src/components/atoms/heading/__snapshots__/index.test.tsx.snap +0 -38
  224. package/src/components/atoms/heading/index.stories.tsx +0 -27
  225. package/src/components/atoms/heading/index.styled.tsx +0 -108
  226. package/src/components/atoms/heading/index.test.tsx +0 -23
  227. package/src/components/atoms/heading/index.tsx +0 -59
  228. package/src/components/atoms/icons/Ask.tsx +0 -54
  229. package/src/components/atoms/icons/BarChart.tsx +0 -39
  230. package/src/components/atoms/icons/Booking.tsx +0 -37
  231. package/src/components/atoms/icons/Bookmark.tsx +0 -44
  232. package/src/components/atoms/icons/Community.tsx +0 -46
  233. package/src/components/atoms/icons/EditSpecial.tsx +0 -30
  234. package/src/components/atoms/icons/Family.tsx +0 -37
  235. package/src/components/atoms/icons/Font.tsx +0 -37
  236. package/src/components/atoms/icons/Heart.tsx +0 -37
  237. package/src/components/atoms/icons/Home.tsx +0 -54
  238. package/src/components/atoms/icons/Like.tsx +0 -49
  239. package/src/components/atoms/icons/MyCommunity.tsx +0 -37
  240. package/src/components/atoms/icons/PlusSpecial.tsx +0 -30
  241. package/src/components/atoms/icons/Recalculate.tsx +0 -37
  242. package/src/components/atoms/icons/Scale.tsx +0 -44
  243. package/src/components/atoms/icons/Share.tsx +0 -37
  244. package/src/components/atoms/icons/Stethoscope.tsx +0 -37
  245. package/src/components/atoms/icons/index.stories.tsx +0 -50
  246. package/src/components/atoms/icons/index.ts +0 -46
  247. package/src/components/atoms/index.ts +0 -33
  248. package/src/components/atoms/input/__snapshots__/index.test.tsx.snap +0 -137
  249. package/src/components/atoms/input/delete.svg +0 -3
  250. package/src/components/atoms/input/index.stories.tsx +0 -50
  251. package/src/components/atoms/input/index.styled.tsx +0 -124
  252. package/src/components/atoms/input/index.test.tsx +0 -23
  253. package/src/components/atoms/input/index.tsx +0 -140
  254. package/src/components/atoms/label/__snapshots__/index.test.tsx.snap +0 -21
  255. package/src/components/atoms/label/index.stories.tsx +0 -16
  256. package/src/components/atoms/label/index.test.tsx +0 -25
  257. package/src/components/atoms/label/index.tsx +0 -37
  258. package/src/components/atoms/logo/__snapshots__/index.test.tsx.snap +0 -99
  259. package/src/components/atoms/logo/index.stories.tsx +0 -84
  260. package/src/components/atoms/logo/index.test.tsx +0 -18
  261. package/src/components/atoms/logo/index.tsx +0 -1915
  262. package/src/components/atoms/marryBabyText/index.styled.tsx +0 -86
  263. package/src/components/atoms/marryBabyText/index.tsx +0 -57
  264. package/src/components/atoms/pagination/__snapshots__/index.test.tsx.snap +0 -185
  265. package/src/components/atoms/pagination/index.stories.tsx +0 -92
  266. package/src/components/atoms/pagination/index.styled.tsx +0 -73
  267. package/src/components/atoms/pagination/index.test.tsx +0 -26
  268. package/src/components/atoms/pagination/index.tsx +0 -286
  269. package/src/components/atoms/progress/index.stories.tsx +0 -55
  270. package/src/components/atoms/progress/index.styled.tsx +0 -30
  271. package/src/components/atoms/progress/index.tsx +0 -29
  272. package/src/components/atoms/pureInput/__snapshots__/index.test.tsx.snap +0 -135
  273. package/src/components/atoms/pureInput/delete.svg +0 -3
  274. package/src/components/atoms/pureInput/index.stories.tsx +0 -54
  275. package/src/components/atoms/pureInput/index.styled.tsx +0 -123
  276. package/src/components/atoms/pureInput/index.test.tsx +0 -29
  277. package/src/components/atoms/pureInput/index.tsx +0 -162
  278. package/src/components/atoms/radio/__snapshots__/index.test.tsx.snap +0 -163
  279. package/src/components/atoms/radio/index.stories.tsx +0 -48
  280. package/src/components/atoms/radio/index.styled.tsx +0 -133
  281. package/src/components/atoms/radio/index.test.tsx +0 -31
  282. package/src/components/atoms/radio/index.tsx +0 -66
  283. package/src/components/atoms/rateStars/index.stories.tsx +0 -71
  284. package/src/components/atoms/rateStars/index.styled.tsx +0 -17
  285. package/src/components/atoms/rateStars/index.tsx +0 -101
  286. package/src/components/atoms/shadow/__snapshots__/index.test.tsx.snap +0 -37
  287. package/src/components/atoms/shadow/index.stories.tsx +0 -55
  288. package/src/components/atoms/shadow/index.styled.tsx +0 -31
  289. package/src/components/atoms/shadow/index.test.tsx +0 -25
  290. package/src/components/atoms/shadow/index.tsx +0 -20
  291. package/src/components/atoms/slider/__snapshots__/index.test.tsx.snap +0 -172
  292. package/src/components/atoms/slider/index.stories.tsx +0 -22
  293. package/src/components/atoms/slider/index.styled.tsx +0 -68
  294. package/src/components/atoms/slider/index.test.tsx +0 -27
  295. package/src/components/atoms/slider/index.tsx +0 -140
  296. package/src/components/atoms/tag/__snapshots__/index.test.tsx.snap +0 -72
  297. package/src/components/atoms/tag/index.stories.tsx +0 -54
  298. package/src/components/atoms/tag/index.styled.tsx +0 -184
  299. package/src/components/atoms/tag/index.test.tsx +0 -23
  300. package/src/components/atoms/tag/index.tsx +0 -72
  301. package/src/components/atoms/text/index.stories.tsx +0 -24
  302. package/src/components/atoms/text/index.styled.tsx +0 -231
  303. package/src/components/atoms/text/index.tsx +0 -99
  304. package/src/components/atoms/textArea/index.stories.tsx +0 -30
  305. package/src/components/atoms/textArea/index.tsx +0 -86
  306. package/src/components/atoms/textDivider/index.tsx +0 -48
  307. package/src/components/atoms/toggle/__snapshots__/index.test.tsx.snap +0 -73
  308. package/src/components/atoms/toggle/index.stories.tsx +0 -38
  309. package/src/components/atoms/toggle/index.styled.tsx +0 -55
  310. package/src/components/atoms/toggle/index.test.tsx +0 -27
  311. package/src/components/atoms/toggle/index.tsx +0 -28
  312. package/src/components/atoms/underlinedLink/index.stories.tsx +0 -35
  313. package/src/components/atoms/underlinedLink/index.styled.tsx +0 -66
  314. package/src/components/atoms/underlinedLink/index.text.tsx +0 -23
  315. package/src/components/atoms/underlinedLink/index.tsx +0 -30
  316. package/src/components/atoms/uploader/__snapshots__/index.test.tsx.snap +0 -170
  317. package/src/components/atoms/uploader/index.stories.tsx +0 -128
  318. package/src/components/atoms/uploader/index.styled.tsx +0 -53
  319. package/src/components/atoms/uploader/index.test.tsx +0 -96
  320. package/src/components/atoms/uploader/index.tsx +0 -107
  321. package/src/components/index.ts +0 -3
  322. package/src/components/molecules/ampNextPage/index.tsx +0 -48
  323. package/src/components/molecules/articleCard/bookmark.png +0 -0
  324. package/src/components/molecules/articleCard/bookmarked.png +0 -0
  325. package/src/components/molecules/articleCard/index.stories.tsx +0 -222
  326. package/src/components/molecules/articleCard/index.styled.tsx +0 -391
  327. package/src/components/molecules/articleCard/index.tsx +0 -430
  328. package/src/components/molecules/breadcrumbs/__snapshots__/index.test.tsx.snap +0 -173
  329. package/src/components/molecules/breadcrumbs/index.stories.tsx +0 -79
  330. package/src/components/molecules/breadcrumbs/index.styled.tsx +0 -99
  331. package/src/components/molecules/breadcrumbs/index.test.tsx +0 -45
  332. package/src/components/molecules/breadcrumbs/index.tsx +0 -141
  333. package/src/components/molecules/carousel/index.stories.tsx +0 -40
  334. package/src/components/molecules/carousel/index.styled.tsx +0 -115
  335. package/src/components/molecules/carousel/index.tsx +0 -178
  336. package/src/components/molecules/categoryCard/index.stories.tsx +0 -19
  337. package/src/components/molecules/categoryCard/index.styled.tsx +0 -38
  338. package/src/components/molecules/categoryCard/index.tsx +0 -51
  339. package/src/components/molecules/checkboxGroup/__snapshots__/index.test.tsx.snap +0 -214
  340. package/src/components/molecules/checkboxGroup/index.stories.tsx +0 -118
  341. package/src/components/molecules/checkboxGroup/index.styled.tsx +0 -27
  342. package/src/components/molecules/checkboxGroup/index.test.tsx +0 -36
  343. package/src/components/molecules/checkboxGroup/index.tsx +0 -66
  344. package/src/components/molecules/cookieAcceptConfirm/__snapshots__/index.test.tsx.snap +0 -152
  345. package/src/components/molecules/cookieAcceptConfirm/index.stories.tsx +0 -23
  346. package/src/components/molecules/cookieAcceptConfirm/index.styled.tsx +0 -101
  347. package/src/components/molecules/cookieAcceptConfirm/index.test.tsx +0 -23
  348. package/src/components/molecules/cookieAcceptConfirm/index.tsx +0 -78
  349. package/src/components/molecules/cookieAcceptConfirm/info.svg +0 -3
  350. package/src/components/molecules/datePicker/__snapshots__/index.test.tsx.snap +0 -377
  351. package/src/components/molecules/datePicker/index.stories.tsx +0 -55
  352. package/src/components/molecules/datePicker/index.styled.tsx +0 -374
  353. package/src/components/molecules/datePicker/index.test.tsx +0 -46
  354. package/src/components/molecules/datePicker/index.tsx +0 -361
  355. package/src/components/molecules/dateRangePicker/calendar/index.styled.ts +0 -122
  356. package/src/components/molecules/dateRangePicker/calendar/index.tsx +0 -247
  357. package/src/components/molecules/dateRangePicker/index.stories.tsx +0 -45
  358. package/src/components/molecules/dateRangePicker/index.styled.ts +0 -36
  359. package/src/components/molecules/dateRangePicker/index.tsx +0 -103
  360. package/src/components/molecules/dateRangePicker/types.ts +0 -4
  361. package/src/components/molecules/dateRangePicker/utils.ts +0 -26
  362. package/src/components/molecules/doctorInfo/index.stories.tsx +0 -20
  363. package/src/components/molecules/doctorInfo/index.tsx +0 -54
  364. package/src/components/molecules/dropdown/__snapshots__/index.test.tsx.snap +0 -133
  365. package/src/components/molecules/dropdown/index.stories.tsx +0 -158
  366. package/src/components/molecules/dropdown/index.styled.tsx +0 -149
  367. package/src/components/molecules/dropdown/index.test.tsx +0 -45
  368. package/src/components/molecules/dropdown/index.tsx +0 -143
  369. package/src/components/molecules/dropdownSearch/index.stories.tsx +0 -66
  370. package/src/components/molecules/dropdownSearch/index.styled.tsx +0 -157
  371. package/src/components/molecules/dropdownSearch/index.tsx +0 -169
  372. package/src/components/molecules/dropdownSearch/search.svg +0 -4
  373. package/src/components/molecules/floatButtonGroup/add-period.svg +0 -9
  374. package/src/components/molecules/floatButtonGroup/index.stories.tsx +0 -72
  375. package/src/components/molecules/floatButtonGroup/index.styled.tsx +0 -310
  376. package/src/components/molecules/floatButtonGroup/index.tsx +0 -155
  377. package/src/components/molecules/iconText/__snapshots__/index.test.tsx.snap +0 -64
  378. package/src/components/molecules/iconText/index.stories.tsx +0 -22
  379. package/src/components/molecules/iconText/index.styled.tsx +0 -47
  380. package/src/components/molecules/iconText/index.test.tsx +0 -31
  381. package/src/components/molecules/iconText/index.tsx +0 -33
  382. package/src/components/molecules/index.ts +0 -39
  383. package/src/components/molecules/languageSwitcher/index.stories.tsx +0 -32
  384. package/src/components/molecules/languageSwitcher/index.styled.tsx +0 -23
  385. package/src/components/molecules/languageSwitcher/index.tsx +0 -68
  386. package/src/components/molecules/languageSwitcher/tooltipSelection/index.styled.tsx +0 -69
  387. package/src/components/molecules/languageSwitcher/tooltipSelection/index.tsx +0 -84
  388. package/src/components/molecules/mobileBottomNavigation/MobileBottomNavigationIcon.tsx +0 -51
  389. package/src/components/molecules/mobileBottomNavigation/index.stories.tsx +0 -173
  390. package/src/components/molecules/mobileBottomNavigation/index.styled.tsx +0 -150
  391. package/src/components/molecules/mobileBottomNavigation/index.tsx +0 -41
  392. package/src/components/molecules/modal/__snapshots__/index.test.tsx.snap +0 -3
  393. package/src/components/molecules/modal/index.stories.tsx +0 -139
  394. package/src/components/molecules/modal/index.styled.tsx +0 -146
  395. package/src/components/molecules/modal/index.test.tsx +0 -26
  396. package/src/components/molecules/modal/index.tsx +0 -147
  397. package/src/components/molecules/popup/__snapshots__/index.test.tsx.snap +0 -102
  398. package/src/components/molecules/popup/index.stories.tsx +0 -21
  399. package/src/components/molecules/popup/index.styled.tsx +0 -90
  400. package/src/components/molecules/popup/index.test.tsx +0 -26
  401. package/src/components/molecules/popup/index.tsx +0 -45
  402. package/src/components/molecules/progressBar/__snapshots__/index.test.tsx.snap +0 -167
  403. package/src/components/molecules/progressBar/index.stories.tsx +0 -72
  404. package/src/components/molecules/progressBar/index.styled.tsx +0 -182
  405. package/src/components/molecules/progressBar/index.test.tsx +0 -75
  406. package/src/components/molecules/progressBar/index.tsx +0 -245
  407. package/src/components/molecules/radioGroup/__snapshots__/index.test.tsx.snap +0 -290
  408. package/src/components/molecules/radioGroup/index.stories.tsx +0 -131
  409. package/src/components/molecules/radioGroup/index.styled.tsx +0 -75
  410. package/src/components/molecules/radioGroup/index.test.tsx +0 -33
  411. package/src/components/molecules/radioGroup/index.tsx +0 -80
  412. package/src/components/molecules/scrollList/index.stories.tsx +0 -113
  413. package/src/components/molecules/scrollList/index.styled.tsx +0 -140
  414. package/src/components/molecules/scrollList/index.tsx +0 -786
  415. package/src/components/molecules/seoHead/index.tsx +0 -382
  416. package/src/components/molecules/sidemenu/__snapshots__/index.test.tsx.snap +0 -273
  417. package/src/components/molecules/sidemenu/index.stories.tsx +0 -156
  418. package/src/components/molecules/sidemenu/index.test.tsx +0 -56
  419. package/src/components/molecules/sidemenu/index.tsx +0 -4
  420. package/src/components/molecules/sidemenu/menuLink.tsx +0 -78
  421. package/src/components/molecules/sidemenu/sideHeader.tsx +0 -85
  422. package/src/components/molecules/sidemenu/sideMenu.tsx +0 -39
  423. package/src/components/molecules/sidemenu/test.tsx +0 -94
  424. package/src/components/molecules/sidemenu/userInfo.tsx +0 -44
  425. package/src/components/molecules/starsRatingBox/index.stories.tsx +0 -121
  426. package/src/components/molecules/starsRatingBox/index.styled.tsx +0 -23
  427. package/src/components/molecules/starsRatingBox/index.tsx +0 -83
  428. package/src/components/molecules/statisticCard/__snapshots__/index.test.tsx.snap +0 -86
  429. package/src/components/molecules/statisticCard/index.stories.tsx +0 -40
  430. package/src/components/molecules/statisticCard/index.styled.tsx +0 -47
  431. package/src/components/molecules/statisticCard/index.test.tsx +0 -44
  432. package/src/components/molecules/statisticCard/index.tsx +0 -48
  433. package/src/components/molecules/surveyQuestionCard/__snapshots__/index.test.tsx.snap +0 -743
  434. package/src/components/molecules/surveyQuestionCard/index.stories.tsx +0 -115
  435. package/src/components/molecules/surveyQuestionCard/index.styled.tsx +0 -220
  436. package/src/components/molecules/surveyQuestionCard/index.test.tsx +0 -53
  437. package/src/components/molecules/surveyQuestionCard/index.tsx +0 -2
  438. package/src/components/molecules/surveyQuestionCard/surveyQuestionCard.tsx +0 -213
  439. package/src/components/molecules/surveyQuestionCard/surveyQuestionContent.tsx +0 -200
  440. package/src/components/molecules/surveyQuestionCard/surveyRadio.tsx +0 -69
  441. package/src/components/molecules/surveyQuestionCard/surveyThankyouCard.tsx +0 -129
  442. package/src/components/molecules/table/__snapshots__/index.test.tsx.snap +0 -56
  443. package/src/components/molecules/table/index.stories.tsx +0 -264
  444. package/src/components/molecules/table/index.test.tsx +0 -29
  445. package/src/components/molecules/table/index.tsx +0 -5
  446. package/src/components/molecules/table/table.tsx +0 -38
  447. package/src/components/molecules/table/tableBody.tsx +0 -46
  448. package/src/components/molecules/table/tableCell.tsx +0 -47
  449. package/src/components/molecules/table/tableHead.tsx +0 -46
  450. package/src/components/molecules/table/tableRow.tsx +0 -45
  451. package/src/components/molecules/tabs/__snapshots__/index.test.tsx.snap +0 -104
  452. package/src/components/molecules/tabs/index.stories.tsx +0 -45
  453. package/src/components/molecules/tabs/index.styled.tsx +0 -58
  454. package/src/components/molecules/tabs/index.test.tsx +0 -49
  455. package/src/components/molecules/tabs/index.tsx +0 -89
  456. package/src/components/organisms/footer/discoverFooter/index.styled.tsx +0 -286
  457. package/src/components/organisms/footer/discoverFooter/index.tsx +0 -448
  458. package/src/components/organisms/footer/index.stories.tsx +0 -207
  459. package/src/components/organisms/footer/index.tsx +0 -70
  460. package/src/components/organisms/footer/maryBabyFooter/index.styled.tsx +0 -502
  461. package/src/components/organisms/footer/maryBabyFooter/index.tsx +0 -393
  462. package/src/components/organisms/index.ts +0 -31
  463. package/src/components/organisms/navigationBookingButton/index.styled.tsx +0 -11
  464. package/src/components/organisms/navigationBookingButton/index.tsx +0 -53
  465. package/src/components/organisms/navigationLayout/CustomFooter.tsx +0 -154
  466. package/src/components/organisms/navigationLayout/ampSideBar/index.styled.tsx +0 -151
  467. package/src/components/organisms/navigationLayout/ampSideBar/index.tsx +0 -276
  468. package/src/components/organisms/navigationLayout/assets/check.svg +0 -3
  469. package/src/components/organisms/navigationLayout/assets/chevronDown.svg +0 -3
  470. package/src/components/organisms/navigationLayout/assets/chevronRightWhite.svg +0 -3
  471. package/src/components/organisms/navigationLayout/assets/chevronUpBlue.svg +0 -3
  472. package/src/components/organisms/navigationLayout/assets/closeLight.svg +0 -4
  473. package/src/components/organisms/navigationLayout/assets/closeWhite.svg +0 -4
  474. package/src/components/organisms/navigationLayout/assets/hamburgerMenu.svg +0 -5
  475. package/src/components/organisms/navigationLayout/assets/index.js +0 -19
  476. package/src/components/organisms/navigationLayout/assets/info-light.svg +0 -5
  477. package/src/components/organisms/navigationLayout/constants.ts +0 -958
  478. package/src/components/organisms/navigationLayout/footer/index.styled.tsx +0 -286
  479. package/src/components/organisms/navigationLayout/footer/index.tsx +0 -449
  480. package/src/components/organisms/navigationLayout/index.stories.tsx +0 -273
  481. package/src/components/organisms/navigationLayout/index.styled.tsx +0 -153
  482. package/src/components/organisms/navigationLayout/index.tsx +0 -1272
  483. package/src/components/organisms/navigationLayout/languageWrapper.tsx +0 -19
  484. package/src/components/organisms/navigationLayout/languages/default.ts +0 -63
  485. package/src/components/organisms/navigationLayout/layout.tsx +0 -406
  486. package/src/components/organisms/navigationLayout/marryBabyText/index.styled.tsx +0 -86
  487. package/src/components/organisms/navigationLayout/marryBabyText/index.tsx +0 -57
  488. package/src/components/organisms/navigationLayout/maryBabyFooter/index.styled.tsx +0 -502
  489. package/src/components/organisms/navigationLayout/maryBabyFooter/index.tsx +0 -383
  490. package/src/components/organisms/navigationLayout/menuCareList/categorySkeleton.tsx +0 -25
  491. package/src/components/organisms/navigationLayout/menuCareList/index.styled.tsx +0 -156
  492. package/src/components/organisms/navigationLayout/menuCareList/index.tsx +0 -266
  493. package/src/components/organisms/navigationLayout/menuCategoriesList/categorySkeleton.tsx +0 -25
  494. package/src/components/organisms/navigationLayout/menuCategoriesList/helloSites.tsx +0 -419
  495. package/src/components/organisms/navigationLayout/menuCategoriesList/index.styled.tsx +0 -196
  496. package/src/components/organisms/navigationLayout/menuCategoriesList/index.tsx +0 -92
  497. package/src/components/organisms/navigationLayout/menuCategoriesList/marryBaby.styled.tsx +0 -151
  498. package/src/components/organisms/navigationLayout/menuCategoriesList/marryBaby.tsx +0 -409
  499. package/src/components/organisms/navigationLayout/menuCategoriesList/spotlightsList/index.styled.tsx +0 -147
  500. package/src/components/organisms/navigationLayout/menuCategoriesList/spotlightsList/index.tsx +0 -141
  501. package/src/components/organisms/navigationLayout/menuCategoriesList/spotlightsList/spotlightSkeleton.tsx +0 -25
  502. package/src/components/organisms/navigationLayout/menuCommunitiesList/categorySkeleton.tsx +0 -25
  503. package/src/components/organisms/navigationLayout/menuCommunitiesList/helloSites.tsx +0 -309
  504. package/src/components/organisms/navigationLayout/menuCommunitiesList/index.styled.tsx +0 -162
  505. package/src/components/organisms/navigationLayout/menuCommunitiesList/index.tsx +0 -80
  506. package/src/components/organisms/navigationLayout/menuCommunitiesList/marryBaby.styled.tsx +0 -119
  507. package/src/components/organisms/navigationLayout/menuCommunitiesList/marryBaby.tsx +0 -181
  508. package/src/components/organisms/navigationLayout/menuHealthToolsList/categorySkeleton.tsx +0 -25
  509. package/src/components/organisms/navigationLayout/menuHealthToolsList/helloSites.tsx +0 -364
  510. package/src/components/organisms/navigationLayout/menuHealthToolsList/index.styled.tsx +0 -176
  511. package/src/components/organisms/navigationLayout/menuHealthToolsList/index.tsx +0 -83
  512. package/src/components/organisms/navigationLayout/menuHealthToolsList/marryBaby.tsx +0 -166
  513. package/src/components/organisms/navigationLayout/menuHealthToolsList/marrybaby.styled.tsx +0 -118
  514. package/src/components/organisms/navigationLayout/menuSectionCard/cardSkeleton.tsx +0 -32
  515. package/src/components/organisms/navigationLayout/menuSectionCard/index.styled.tsx +0 -46
  516. package/src/components/organisms/navigationLayout/menuSectionCard/index.tsx +0 -52
  517. package/src/components/organisms/navigationLayout/menuServiceList/categoriesSubList.tsx +0 -121
  518. package/src/components/organisms/navigationLayout/menuServiceList/communitySubList.tsx +0 -143
  519. package/src/components/organisms/navigationLayout/menuServiceList/index.styled.tsx +0 -460
  520. package/src/components/organisms/navigationLayout/menuServiceList/index.tsx +0 -746
  521. package/src/components/organisms/navigationLayout/menuServiceList/marryBabyMobileMenuSection.tsx +0 -239
  522. package/src/components/organisms/navigationLayout/navigationBar/ArrowLeftPopupIcon.tsx +0 -21
  523. package/src/components/organisms/navigationLayout/navigationBar/ClosePopupIcon.tsx +0 -20
  524. package/src/components/organisms/navigationLayout/navigationBar/HamburgerIcon.tsx +0 -43
  525. package/src/components/organisms/navigationLayout/navigationBar/NavigationBar.types.ts +0 -99
  526. package/src/components/organisms/navigationLayout/navigationBar/NavigationBarMobile.tsx +0 -503
  527. package/src/components/organisms/navigationLayout/navigationBar/SearchIcon.tsx +0 -22
  528. package/src/components/organisms/navigationLayout/navigationBar/index.styled.tsx +0 -540
  529. package/src/components/organisms/navigationLayout/navigationBar/index.tsx +0 -798
  530. package/src/components/organisms/navigationLayout/navigationLogoutPopup/index.styled.tsx +0 -87
  531. package/src/components/organisms/navigationLayout/navigationLogoutPopup/index.tsx +0 -95
  532. package/src/components/organisms/navigationLayout/profilePopup/index.tsx +0 -102
  533. package/src/components/organisms/navigationLayout/profilePopupWrapper/index.styled.tsx +0 -164
  534. package/src/components/organisms/navigationLayout/profilePopupWrapper/index.tsx +0 -58
  535. package/src/components/organisms/navigationLayout/siteWide/index.styled.tsx +0 -116
  536. package/src/components/organisms/navigationLayout/siteWide/index.tsx +0 -162
  537. package/src/components/organisms/navigationLayout/sponsoredBy/index.styled.tsx +0 -119
  538. package/src/components/organisms/navigationLayout/sponsoredBy/index.tsx +0 -254
  539. package/src/components/organisms/navigationLayout/tooltipSelection/index.styled.tsx +0 -66
  540. package/src/components/organisms/navigationLayout/tooltipSelection/index.tsx +0 -81
  541. package/src/components/organisms/navigationLayout/types.ts +0 -322
  542. package/src/components/organisms/navigationLayout/utils.tsx +0 -424
  543. package/src/components/organisms/navigationLogoutPopup/index.stories.tsx +0 -34
  544. package/src/components/organisms/navigationLogoutPopup/index.styled.tsx +0 -87
  545. package/src/components/organisms/navigationLogoutPopup/index.tsx +0 -78
  546. package/src/components/organisms/navigationProfileButton/index.stories.tsx +0 -51
  547. package/src/components/organisms/navigationProfileButton/index.styled.tsx +0 -254
  548. package/src/components/organisms/navigationProfileButton/index.tsx +0 -217
  549. package/src/components/organisms/navigationProfileButton/popupWrapper.tsx +0 -58
  550. package/src/components/organisms/navigationProfileButton/profilePopup.tsx +0 -97
  551. package/src/components/organisms/navigationV2/components/atoms/ArrowLeftPopupIcon.tsx +0 -21
  552. package/src/components/organisms/navigationV2/components/atoms/ClosePopupIcon.tsx +0 -21
  553. package/src/components/organisms/navigationV2/components/atoms/HamburgerIcon.tsx +0 -58
  554. package/src/components/organisms/navigationV2/components/atoms/ItemNav/index.styled.tsx +0 -63
  555. package/src/components/organisms/navigationV2/components/atoms/ItemNav/index.tsx +0 -71
  556. package/src/components/organisms/navigationV2/components/atoms/PopupWrapper/btnClosePopup.tsx +0 -30
  557. package/src/components/organisms/navigationV2/components/atoms/PopupWrapper/index.styled.tsx +0 -62
  558. package/src/components/organisms/navigationV2/components/atoms/PopupWrapper/index.tsx +0 -45
  559. package/src/components/organisms/navigationV2/components/atoms/SearchIcon.tsx +0 -22
  560. package/src/components/organisms/navigationV2/components/atoms/searchInput/index.tsx +0 -45
  561. package/src/components/organisms/navigationV2/components/molecules/Categories/index.styled.tsx +0 -74
  562. package/src/components/organisms/navigationV2/components/molecules/Categories/index.tsx +0 -115
  563. package/src/components/organisms/navigationV2/components/molecules/Spotlights/index.styled.tsx +0 -40
  564. package/src/components/organisms/navigationV2/components/molecules/Spotlights/index.tsx +0 -60
  565. package/src/components/organisms/navigationV2/components/molecules/menuCareList/Item/index.styled.tsx +0 -155
  566. package/src/components/organisms/navigationV2/components/molecules/menuCareList/Item/index.tsx +0 -103
  567. package/src/components/organisms/navigationV2/components/molecules/menuCareList/careSpotlights.tsx +0 -40
  568. package/src/components/organisms/navigationV2/components/molecules/menuCareList/index.styled.tsx +0 -29
  569. package/src/components/organisms/navigationV2/components/molecules/menuCareList/index.tsx +0 -65
  570. package/src/components/organisms/navigationV2/components/molecules/menuCategoriesList/Item/index.styled.tsx +0 -46
  571. package/src/components/organisms/navigationV2/components/molecules/menuCategoriesList/Item/index.tsx +0 -50
  572. package/src/components/organisms/navigationV2/components/molecules/menuCategoriesList/categorySpotlights.tsx +0 -59
  573. package/src/components/organisms/navigationV2/components/molecules/menuCategoriesList/index.styled.tsx +0 -30
  574. package/src/components/organisms/navigationV2/components/molecules/menuCategoriesList/index.tsx +0 -64
  575. package/src/components/organisms/navigationV2/components/molecules/menuCommunitiesList/Item/index.styled.tsx +0 -89
  576. package/src/components/organisms/navigationV2/components/molecules/menuCommunitiesList/Item/index.tsx +0 -91
  577. package/src/components/organisms/navigationV2/components/molecules/menuCommunitiesList/communitySpotlights.tsx +0 -49
  578. package/src/components/organisms/navigationV2/components/molecules/menuCommunitiesList/index.styled.tsx +0 -42
  579. package/src/components/organisms/navigationV2/components/molecules/menuCommunitiesList/index.tsx +0 -56
  580. package/src/components/organisms/navigationV2/components/molecules/menuHealthToolsList/Item/index.styled.tsx +0 -104
  581. package/src/components/organisms/navigationV2/components/molecules/menuHealthToolsList/Item/index.tsx +0 -99
  582. package/src/components/organisms/navigationV2/components/molecules/menuHealthToolsList/index.styled.tsx +0 -18
  583. package/src/components/organisms/navigationV2/components/molecules/menuHealthToolsList/index.tsx +0 -65
  584. package/src/components/organisms/navigationV2/components/molecules/menuHealthToolsList/toolSpotlights.tsx +0 -41
  585. package/src/components/organisms/navigationV2/components/molecules/menuServiceList/index.styled.tsx +0 -358
  586. package/src/components/organisms/navigationV2/components/molecules/menuServiceList/index.tsx +0 -88
  587. package/src/components/organisms/navigationV2/components/molecules/navigationBar/hamburgerMenu.tsx +0 -74
  588. package/src/components/organisms/navigationV2/components/molecules/navigationBar/index.styled.tsx +0 -214
  589. package/src/components/organisms/navigationV2/components/molecules/navigationBar/index.tsx +0 -283
  590. package/src/components/organisms/navigationV2/components/molecules/navigationBar/navigationProfileButtonWithContext.tsx +0 -50
  591. package/src/components/organisms/navigationV2/components/molecules/spotlightNoData/index.styled.tsx +0 -70
  592. package/src/components/organisms/navigationV2/components/molecules/spotlightNoData/index.tsx +0 -74
  593. package/src/components/organisms/navigationV2/constants.ts +0 -277
  594. package/src/components/organisms/navigationV2/hooks/useHeaderHeight.tsx +0 -84
  595. package/src/components/organisms/navigationV2/hooks/useInsider.tsx +0 -67
  596. package/src/components/organisms/navigationV2/hooks/useNavConfig.tsx +0 -99
  597. package/src/components/organisms/navigationV2/hooks/useNavServices.tsx +0 -73
  598. package/src/components/organisms/navigationV2/index.stories.tsx +0 -287
  599. package/src/components/organisms/navigationV2/index.styled.tsx +0 -30
  600. package/src/components/organisms/navigationV2/index.tsx +0 -320
  601. package/src/components/organisms/navigationV2/navigationContext.tsx +0 -38
  602. package/src/components/organisms/navigationV2/types.ts +0 -307
  603. package/src/components/organisms/navigationV2/utils.tsx +0 -400
  604. package/src/components/organisms/userProfileNavigation/assets/helloSites/icon-chevronDown.svg +0 -3
  605. package/src/components/organisms/userProfileNavigation/assets/helloSites/icon-chevronRight.svg +0 -3
  606. package/src/components/organisms/userProfileNavigation/assets/helloSites/icon-eCom.svg +0 -22
  607. package/src/components/organisms/userProfileNavigation/assets/helloSites/icon-helpCircle.svg +0 -3
  608. package/src/components/organisms/userProfileNavigation/assets/helloSites/icon-logOut.svg +0 -3
  609. package/src/components/organisms/userProfileNavigation/assets/helloSites/icon-myBooking.svg +0 -36
  610. package/src/components/organisms/userProfileNavigation/assets/helloSites/icon-myCommunity.svg +0 -19
  611. package/src/components/organisms/userProfileNavigation/assets/helloSites/icon-myFamily.svg +0 -15
  612. package/src/components/organisms/userProfileNavigation/assets/helloSites/icon-myHealth.svg +0 -13
  613. package/src/components/organisms/userProfileNavigation/assets/helloSites/icon-mySaved.svg +0 -3
  614. package/src/components/organisms/userProfileNavigation/assets/helloSites/icon-rank-ambassador.svg +0 -4
  615. package/src/components/organisms/userProfileNavigation/assets/helloSites/icon-rank-doctor.svg +0 -4
  616. package/src/components/organisms/userProfileNavigation/assets/helloSites/icon-rank-expert.svg +0 -4
  617. package/src/components/organisms/userProfileNavigation/assets/helloSites/icon-rank-influencer.svg +0 -4
  618. package/src/components/organisms/userProfileNavigation/assets/helloSites/icon-rank-member.svg +0 -8
  619. package/src/components/organisms/userProfileNavigation/assets/helloSites/icon-settingsWheel.svg +0 -3
  620. package/src/components/organisms/userProfileNavigation/assets/marryBaby/icon-arrowRight.svg +0 -3
  621. package/src/components/organisms/userProfileNavigation/assets/marryBaby/icon-lock.svg +0 -4
  622. package/src/components/organisms/userProfileNavigation/assets/marryBaby/icon-logOut.svg +0 -4
  623. package/src/components/organisms/userProfileNavigation/assets/marryBaby/icon-myCommunity.svg +0 -4
  624. package/src/components/organisms/userProfileNavigation/assets/marryBaby/icon-myHealth.svg +0 -6
  625. package/src/components/organisms/userProfileNavigation/assets/marryBaby/icon-mySaved.svg +0 -3
  626. package/src/components/organisms/userProfileNavigation/assets/marryBaby/icon-rank-ambassador.svg +0 -40
  627. package/src/components/organisms/userProfileNavigation/assets/marryBaby/icon-rank-doctor.svg +0 -40
  628. package/src/components/organisms/userProfileNavigation/assets/marryBaby/icon-rank-expert.svg +0 -27
  629. package/src/components/organisms/userProfileNavigation/assets/marryBaby/icon-rank-influencer.svg +0 -33
  630. package/src/components/organisms/userProfileNavigation/assets/marryBaby/icon-rank-member.svg +0 -33
  631. package/src/components/organisms/userProfileNavigation/constants.ts +0 -23
  632. package/src/components/organisms/userProfileNavigation/index.stories.tsx +0 -79
  633. package/src/components/organisms/userProfileNavigation/index.styled.ts +0 -60
  634. package/src/components/organisms/userProfileNavigation/index.tsx +0 -219
  635. package/src/components/organisms/userProfileNavigation/navHeader/index.styled.ts +0 -76
  636. package/src/components/organisms/userProfileNavigation/navHeader/index.tsx +0 -68
  637. package/src/components/organisms/userProfileNavigation/navMenu/index.styled.ts +0 -115
  638. package/src/components/organisms/userProfileNavigation/navMenu/index.tsx +0 -79
  639. package/src/components/organisms/userProfileNavigation/navMenu/items.ts +0 -38
  640. package/src/components/organisms/userProfileNavigation/navigationCard/index.styled.ts +0 -51
  641. package/src/components/organisms/userProfileNavigation/navigationCard/index.tsx +0 -96
  642. package/src/components/organisms/userProfileNavigation/types.ts +0 -35
  643. package/src/components/organisms/userProfileNavigation/userStats/index.styled.ts +0 -110
  644. package/src/components/organisms/userProfileNavigation/userStats/index.tsx +0 -78
  645. package/src/core.ts +0 -7
  646. package/src/docs/releases/getReleases.js +0 -56
  647. package/src/docs/releases/index.stories.mdx +0 -9
  648. package/src/ecom/dataFormatter/index.ts +0 -933
  649. package/src/ecom/dataFormatter/lib/apiTypes.ts +0 -623
  650. package/src/ecom/dataFormatter/lib/dataTypes.ts +0 -571
  651. package/src/ecom/dataFormatter/lib/utils.ts +0 -40
  652. package/src/ecom/index.tsx +0 -5
  653. package/src/ecom/interfaces/constants.ts +0 -1000
  654. package/src/ecom/interfaces/types.ts +0 -194
  655. package/src/hooks/useCSSFocusPopupHelper.ts +0 -32
  656. package/src/hooks/useDragScroll.ts +0 -55
  657. package/src/hooks/useDropdownSearch.tsx +0 -52
  658. package/src/hooks/useFbDataLayer.tsx +0 -49
  659. package/src/hooks/useGeolocation.ts +0 -86
  660. package/src/hooks/useGetIsMobile.ts +0 -20
  661. package/src/hooks/useImagesPicker.ts +0 -56
  662. package/src/hooks/useIsInit.ts +0 -9
  663. package/src/hooks/useOutsideClick.ts +0 -20
  664. package/src/hooks/useScreenSize.ts +0 -35
  665. package/src/hooks/useScrollbarSize.ts +0 -74
  666. package/src/hooks/useTranslations.tsx +0 -41
  667. package/src/i18n/en-PH.json +0 -235
  668. package/src/i18n/hi-IN.json +0 -235
  669. package/src/i18n/id-ID.json +0 -235
  670. package/src/i18n/index.ts +0 -3
  671. package/src/i18n/km-KH.json +0 -235
  672. package/src/i18n/ms-MY.json +0 -235
  673. package/src/i18n/my-MM.json +0 -235
  674. package/src/i18n/th-TH.json +0 -235
  675. package/src/i18n/tl-PH.json +0 -235
  676. package/src/i18n/translations.ts +0 -47
  677. package/src/i18n/translationsContext.ts +0 -12
  678. package/src/i18n/translationsProvider.tsx +0 -66
  679. package/src/i18n/vi-VN.json +0 -242
  680. package/src/i18n/zh-TW.json +0 -235
  681. package/src/index.ts +0 -12
  682. package/src/interfaces/constants.ts +0 -402
  683. package/src/interfaces/types.ts +0 -85
  684. package/src/misc/cookieHelper.tsx +0 -31
  685. package/src/misc/lazyLoad.ts +0 -7
  686. package/src/misc/mockTheme.tsx +0 -11
  687. package/src/misc/number.ts +0 -24
  688. package/src/misc/routing.tsx +0 -45
  689. package/src/misc/theme.ts +0 -186
  690. package/src/misc/utils.ts +0 -214
  691. package/src/test/testTranslationProvider.tsx +0 -14
  692. package/src/together/api/dataTransform.ts +0 -650
  693. package/src/together/api/paths.ts +0 -163
  694. package/src/together/api/utils.ts +0 -399
  695. package/src/together/assets/images/avatar-default.png +0 -0
  696. package/src/together/assets/images/icon-whatsapp.png +0 -0
  697. package/src/together/assets/images/icon-zalo.png +0 -0
  698. package/src/together/assets/marrybaby/svg/comment.svg +0 -4
  699. package/src/together/assets/marrybaby/svg/commentSolid.svg +0 -5
  700. package/src/together/assets/marrybaby/svg/commentWhite.svg +0 -4
  701. package/src/together/assets/marrybaby/svg/copy.svg +0 -1
  702. package/src/together/assets/marrybaby/svg/facebook.svg +0 -9
  703. package/src/together/assets/marrybaby/svg/heart.svg +0 -4
  704. package/src/together/assets/marrybaby/svg/heartSolid.svg +0 -4
  705. package/src/together/assets/marrybaby/svg/linkedin.svg +0 -6
  706. package/src/together/assets/marrybaby/svg/loading.svg +0 -15
  707. package/src/together/assets/marrybaby/svg/messenger.svg +0 -17
  708. package/src/together/assets/marrybaby/svg/more.svg +0 -6
  709. package/src/together/assets/marrybaby/svg/moreSolid.svg +0 -6
  710. package/src/together/assets/marrybaby/svg/pin.svg +0 -6
  711. package/src/together/assets/marrybaby/svg/pinOrange.svg +0 -6
  712. package/src/together/assets/marrybaby/svg/share.svg +0 -5
  713. package/src/together/assets/marrybaby/svg/share2.svg +0 -5
  714. package/src/together/assets/marrybaby/svg/sortBy.svg +0 -5
  715. package/src/together/assets/marrybaby/svg/twitter.svg +0 -4
  716. package/src/together/assets/marrybaby/svg/zalo.png +0 -0
  717. package/src/together/assets/svg/bullet-point.svg +0 -3
  718. package/src/together/assets/svg/chevronRightActive.svg +0 -3
  719. package/src/together/assets/svg/close-circle-line.svg +0 -5
  720. package/src/together/assets/svg/closeLight copy.svg +0 -4
  721. package/src/together/assets/svg/closeLight.svg +0 -4
  722. package/src/together/assets/svg/delete.svg +0 -13
  723. package/src/together/assets/svg/icon-alert-circle-primary.svg +0 -5
  724. package/src/together/assets/svg/icon-alert-circle-warning.svg +0 -5
  725. package/src/together/assets/svg/icon-alert-circle.svg +0 -5
  726. package/src/together/assets/svg/icon-arrow-circle-upgrade.svg +0 -3
  727. package/src/together/assets/svg/icon-arrow-left.svg +0 -4
  728. package/src/together/assets/svg/icon-arrow-right-circle.svg +0 -5
  729. package/src/together/assets/svg/icon-bell-off.svg +0 -7
  730. package/src/together/assets/svg/icon-bell-on.svg +0 -4
  731. package/src/together/assets/svg/icon-bookmark-fill.svg +0 -3
  732. package/src/together/assets/svg/icon-bookmark.svg +0 -3
  733. package/src/together/assets/svg/icon-cancel.svg +0 -13
  734. package/src/together/assets/svg/icon-check-gray.svg +0 -3
  735. package/src/together/assets/svg/icon-check-pink.svg +0 -3
  736. package/src/together/assets/svg/icon-check-success.svg +0 -4
  737. package/src/together/assets/svg/icon-check.svg +0 -4
  738. package/src/together/assets/svg/icon-chevron-left-dark.svg +0 -3
  739. package/src/together/assets/svg/icon-chevron-right-dark.svg +0 -3
  740. package/src/together/assets/svg/icon-chevron-right-white.svg +0 -3
  741. package/src/together/assets/svg/icon-chevron-right.svg +0 -3
  742. package/src/together/assets/svg/icon-close-circle-line.svg +0 -5
  743. package/src/together/assets/svg/icon-close-circle.svg +0 -5
  744. package/src/together/assets/svg/icon-close.svg +0 -4
  745. package/src/together/assets/svg/icon-edit.svg +0 -3
  746. package/src/together/assets/svg/icon-enter.svg +0 -4
  747. package/src/together/assets/svg/icon-facebook.svg +0 -3
  748. package/src/together/assets/svg/icon-heart-empty.svg +0 -3
  749. package/src/together/assets/svg/icon-heart-fill-red.svg +0 -3
  750. package/src/together/assets/svg/icon-heart-fill.svg +0 -3
  751. package/src/together/assets/svg/icon-kebab.svg +0 -5
  752. package/src/together/assets/svg/icon-link.svg +0 -4
  753. package/src/together/assets/svg/icon-linkedin.svg +0 -4
  754. package/src/together/assets/svg/icon-pin-gray.svg +0 -4
  755. package/src/together/assets/svg/icon-pin-yellow.svg +0 -4
  756. package/src/together/assets/svg/icon-pin.svg +0 -4
  757. package/src/together/assets/svg/icon-reply-arrow.svg +0 -3
  758. package/src/together/assets/svg/icon-reply-circle-empty.svg +0 -3
  759. package/src/together/assets/svg/icon-reply-circle-fill.svg +0 -3
  760. package/src/together/assets/svg/icon-share-on-media.svg +0 -7
  761. package/src/together/assets/svg/icon-sort-arrow.svg +0 -4
  762. package/src/together/assets/svg/icon-tab-edit-2.svg +0 -4
  763. package/src/together/assets/svg/icon-tab-edit-primary.svg +0 -4
  764. package/src/together/assets/svg/icon-trash-bin.svg +0 -6
  765. package/src/together/assets/svg/icon-twitter.svg +0 -4
  766. package/src/together/assets/svg/loading.svg +0 -7
  767. package/src/together/assets/svg/reviewer-author.svg +0 -12
  768. package/src/together/assets/svg/reviewer-editor.svg +0 -12
  769. package/src/together/assets/svg/reviewer-expert.svg +0 -5
  770. package/src/together/assets/svg/reviewer-fact-check.svg +0 -4
  771. package/src/together/assets/svg/reviewer-medical.svg +0 -4
  772. package/src/together/components/atoms/cardLink/index.styled.tsx +0 -64
  773. package/src/together/components/atoms/cardLink/index.tsx +0 -149
  774. package/src/together/components/atoms/cardReactions/index.styled.tsx +0 -96
  775. package/src/together/components/atoms/cardReactions/index.tsx +0 -221
  776. package/src/together/components/atoms/index.tsx +0 -8
  777. package/src/together/components/atoms/labelSortPin/index.styled.tsx +0 -78
  778. package/src/together/components/atoms/labelSortPin/index.tsx +0 -50
  779. package/src/together/components/atoms/labelSortPin/labelPin.tsx +0 -47
  780. package/src/together/components/atoms/labelSortPin/labelSorting.tsx +0 -127
  781. package/src/together/components/atoms/loading/index.styled.tsx +0 -42
  782. package/src/together/components/atoms/loading/index.tsx +0 -25
  783. package/src/together/components/atoms/loading/loadingCard.tsx +0 -38
  784. package/src/together/components/atoms/tagTopic/index.styled.tsx +0 -33
  785. package/src/together/components/atoms/tagTopic/index.tsx +0 -57
  786. package/src/together/components/atoms/userAvatar/index.styled.tsx +0 -39
  787. package/src/together/components/atoms/userAvatar/index.tsx +0 -62
  788. package/src/together/components/molecules/cardAuthor/customMMLocale/formatDistance.ts +0 -112
  789. package/src/together/components/molecules/cardAuthor/customMMLocale/index.ts +0 -16
  790. package/src/together/components/molecules/cardAuthor/customMMLocale/types.ts +0 -37
  791. package/src/together/components/molecules/cardAuthor/index.styled.tsx +0 -164
  792. package/src/together/components/molecules/cardAuthor/index.tsx +0 -314
  793. package/src/together/components/molecules/createNewPostContent/index.stories.tsx +0 -114
  794. package/src/together/components/molecules/createNewPostContent/index.styled.tsx +0 -73
  795. package/src/together/components/molecules/createNewPostContent/index.tsx +0 -351
  796. package/src/together/components/molecules/createPostDescription/editor.tsx +0 -915
  797. package/src/together/components/molecules/createPostDescription/index.styled.tsx +0 -328
  798. package/src/together/components/molecules/createPostDescription/index.tsx +0 -163
  799. package/src/together/components/molecules/createPostTitle/index.styled.tsx +0 -62
  800. package/src/together/components/molecules/createPostTitle/index.tsx +0 -133
  801. package/src/together/components/molecules/index.tsx +0 -18
  802. package/src/together/components/molecules/inputCommentBar/index.styled.tsx +0 -227
  803. package/src/together/components/molecules/inputCommentBar/index.tsx +0 -341
  804. package/src/together/components/molecules/inputCommentBar/mainInputTriggerContext.tsx +0 -26
  805. package/src/together/components/molecules/popupDanger/index.styled.tsx +0 -174
  806. package/src/together/components/molecules/popupDanger/index.tsx +0 -113
  807. package/src/together/components/molecules/popupDoctor/index.styled.tsx +0 -185
  808. package/src/together/components/molecules/popupDoctor/index.tsx +0 -271
  809. package/src/together/components/molecules/popupExpert/index.styled.tsx +0 -175
  810. package/src/together/components/molecules/popupExpert/index.tsx +0 -216
  811. package/src/together/components/molecules/popupFrame/index.styled.tsx +0 -76
  812. package/src/together/components/molecules/popupFrame/index.tsx +0 -43
  813. package/src/together/components/molecules/popupFrame/popupShare.tsx +0 -178
  814. package/src/together/components/molecules/popupHospital/index.styled.tsx +0 -173
  815. package/src/together/components/molecules/popupHospital/index.tsx +0 -249
  816. package/src/together/components/molecules/postContent/index.styled.tsx +0 -66
  817. package/src/together/components/molecules/postContent/index.tsx +0 -125
  818. package/src/together/components/molecules/postImagePreview/imagePreviewPopup.tsx +0 -73
  819. package/src/together/components/molecules/postImagePreview/index.styled.tsx +0 -154
  820. package/src/together/components/molecules/postImagePreview/index.tsx +0 -115
  821. package/src/together/components/molecules/postImagePreview/postSingleImageViewPopup/index.styled.tsx +0 -84
  822. package/src/together/components/molecules/postImagePreview/postSingleImageViewPopup/index.tsx +0 -83
  823. package/src/together/components/molecules/shareBox/index.stories.tsx +0 -36
  824. package/src/together/components/molecules/shareBox/index.styled.tsx +0 -141
  825. package/src/together/components/molecules/shareBox/index.tsx +0 -188
  826. package/src/together/components/molecules/socialLinkPreview/index.styled.tsx +0 -39
  827. package/src/together/components/molecules/socialLinkPreview/index.tsx +0 -206
  828. package/src/together/components/molecules/submitReportForm/index.styled.tsx +0 -34
  829. package/src/together/components/molecules/submitReportForm/index.tsx +0 -84
  830. package/src/together/components/molecules/topicSelectList/index.stories.tsx +0 -93
  831. package/src/together/components/molecules/topicSelectList/index.styled.tsx +0 -53
  832. package/src/together/components/molecules/topicSelectList/index.tsx +0 -186
  833. package/src/together/components/organisms/cardPost/cardPostPopover.tsx +0 -293
  834. package/src/together/components/organisms/cardPost/index.stories.tsx +0 -212
  835. package/src/together/components/organisms/cardPost/index.styled.tsx +0 -181
  836. package/src/together/components/organisms/cardPost/index.tsx +0 -458
  837. package/src/together/components/organisms/cardReply/cardReplyPopover.tsx +0 -122
  838. package/src/together/components/organisms/cardReply/index.styled.tsx +0 -199
  839. package/src/together/components/organisms/cardReply/index.tsx +0 -362
  840. package/src/together/components/organisms/index.tsx +0 -5
  841. package/src/together/components/organisms/popoverMenu/index.styled.tsx +0 -313
  842. package/src/together/components/organisms/popoverMenu/index.tsx +0 -102
  843. package/src/together/components/organisms/popoverMenu/treePopoverMenu.tsx +0 -156
  844. package/src/together/hooks/useTogetherAuthRequiredAction.tsx +0 -124
  845. package/src/together/index.ts +0 -12
  846. package/src/together/interfaces/constants.ts +0 -306
  847. package/src/together/interfaces/types.ts +0 -1418
  848. package/src/together/togetherComponentGlobalContext.tsx +0 -150
  849. package/src/together/utils/apiActions/comment.tsx +0 -168
  850. package/src/together/utils/apiActions/community.ts +0 -59
  851. package/src/together/utils/apiActions/post.ts +0 -234
  852. package/src/together/utils/apiActions/topic.ts +0 -40
  853. package/src/together/utils/notification.ts +0 -20
  854. package/src/together/utils/post.ts +0 -351
  855. package/tsconfig.json +0 -28
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("./tslib.es6-f7929e76.js"),t=require("react"),n=require("./constants-ea7b35a2.js"),a=require("./theme-79e84625.js"),o=require("./cookieHelper-40ab50eb.js"),i=require("./useTranslations-29326df5.js"),r=require("lodash/debounce");require("react-range");var l=require("styled-components"),s=require("react-loading-skeleton"),c=require("react-id-generator"),u=require("lodash/shuffle"),d=require("./useOutsideClick-528bfd6c.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var h=p(t),f=p(r),g=p(l),m=p(s),C=p(u);var v,x,y,b,_,w,E,k,L,S,T,O,I=g.default.div(v||(v=e.__makeTemplateObject([""],[""]))),M=g.default.div(x||(x=e.__makeTemplateObject(["\n --searchbar-z-index: 305;\n &[data-is-modal='true'] {\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n height: var(--mobile-care-searchbar-height, 100%);\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n background-color: white;\n z-index: var(--searchbar-z-index);\n }\n"],["\n --searchbar-z-index: 305;\n &[data-is-modal='true'] {\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n height: var(--mobile-care-searchbar-height, 100%);\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n background-color: white;\n z-index: var(--searchbar-z-index);\n }\n"]))),R=g.default.section(y||(y=e.__makeTemplateObject([""],[""]))),A=g.default.input(b||(b=e.__makeTemplateObject(["\n position: fixed;\n left: -100%;\n top: -100%;\n"],["\n position: fixed;\n left: -100%;\n top: -100%;\n"]))),N=g.default(o.Input)(_||(_=e.__makeTemplateObject(["\n #booking-search-bar & {\n input {\n font-size: 16px;\n }\n }\n"],["\n #booking-search-bar & {\n input {\n font-size: 16px;\n }\n }\n"]))),P=l.createGlobalStyle(w||(w=e.__makeTemplateObject(["\n .care-popup-open {\n overflow: hidden;\n position: fixed;\n &::before {\n content: '';\n inset: 0;\n position: absolute;\n background-color: white;\n min-height: 100vh;\n min-width: 100vw;\n z-index: 2;\n }\n }\n"],["\n .care-popup-open {\n overflow: hidden;\n position: fixed;\n &::before {\n content: '';\n inset: 0;\n position: absolute;\n background-color: white;\n min-height: 100vh;\n min-width: 100vw;\n z-index: 2;\n }\n }\n"]))),F=function(e){var t=e.className,n=e.color;return h.default.createElement("svg",{className:t,width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h.default.createElement("path",{d:"M18 6L6 18",stroke:n||"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),h.default.createElement("path",{d:"M6 6L18 18",stroke:n||"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}))},z=function(e){var t=e.className,n=e.color;return h.default.createElement("svg",{width:"14",height:"20",viewBox:"0 0 14 20",className:t},h.default.createElement("path",{d:"M7 0C3.134 0 0 3.134 0 7C0 10.966 4.404 16.82 6.226 19.071C6.626 19.565 7.374 19.565 7.774 19.071C9.596 16.82 14 10.966 14 7C14 3.134 10.866 0 7 0ZM7 9.5C5.619 9.5 4.5 8.381 4.5 7C4.5 5.619 5.619 4.5 7 4.5C8.381 4.5 9.5 5.619 9.5 7C9.5 8.381 8.381 9.5 7 9.5Z",fill:n||"currentColor"}))},j=function(e){var t=e.className,n=e.color;return h.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",className:t},h.default.createElement("path",{d:"M9.99967 6.66658C8.15801 6.66658 6.66634 8.15825 6.66634 9.99992C6.66634 11.8416 8.15801 13.3333 9.99967 13.3333C11.8413 13.3333 13.333 11.8416 13.333 9.99992C13.333 8.15825 11.8413 6.66658 9.99967 6.66658ZM17.4497 9.16658C17.0663 5.69158 14.308 2.93325 10.833 2.54992V1.66659C10.833 1.20825 10.458 0.833252 9.99967 0.833252C9.54134 0.833252 9.16634 1.20825 9.16634 1.66659V2.54992C5.69134 2.93325 2.93301 5.69158 2.54967 9.16658H1.66634C1.20801 9.16658 0.833008 9.54158 0.833008 9.99992C0.833008 10.4583 1.20801 10.8333 1.66634 10.8333H2.54967C2.93301 14.3083 5.69134 17.0666 9.16634 17.4499V18.3333C9.16634 18.7916 9.54134 19.1666 9.99967 19.1666C10.458 19.1666 10.833 18.7916 10.833 18.3333V17.4499C14.308 17.0666 17.0663 14.3083 17.4497 10.8333H18.333C18.7913 10.8333 19.1663 10.4583 19.1663 9.99992C19.1663 9.54158 18.7913 9.16658 18.333 9.16658H17.4497ZM9.99967 15.8333C6.77467 15.8333 4.16634 13.2249 4.16634 9.99992C4.16634 6.77492 6.77467 4.16658 9.99967 4.16658C13.2247 4.16658 15.833 6.77492 15.833 9.99992C15.833 13.2249 13.2247 15.8333 9.99967 15.8333Z",fill:n||"currentColor"}))},D=function(e){var t=e.className,n=e.color;return h.default.createElement("svg",{className:t,width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h.default.createElement("path",{d:"M11 18C14.866 18 18 14.866 18 11C18 7.13401 14.866 4 11 4C7.13401 4 4 7.13401 4 11C4 14.866 7.13401 18 11 18Z",stroke:n||"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),h.default.createElement("path",{d:"M20 20L16 16",stroke:n||"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}))},H=function(e){var t=e.width,n=e.height;return h.default.createElement("svg",{width:t||30,height:n||30,viewBox:"0 0 30 30",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h.default.createElement("circle",{cx:"15",cy:"15",r:"15",fill:"#F7F9FC"}))},V=g.default.li(E||(E=e.__makeTemplateObject(["\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 8px 16px;\n\n > :first-child {\n flex: 1;\n }\n\n > :nth-child(2) {\n flex: 6;\n }\n\n & + li::before {\n content: '';\n position: absolute;\n left: 18px;\n right: 18px;\n top: 0;\n height: 1px;\n background-color: ",";\n }\n"],["\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 8px 16px;\n\n > :first-child {\n flex: 1;\n }\n\n > :nth-child(2) {\n flex: 6;\n }\n\n & + li::before {\n content: '';\n position: absolute;\n left: 18px;\n right: 18px;\n top: 0;\n height: 1px;\n background-color: ",";\n }\n"])),a.theme.colors.neutral100),B=g.default.div(k||(k=e.__makeTemplateObject(["\n display: flex;\n position: absolute;\n top: 48px;\n min-width: 100%;\n box-shadow: 0px 24px 32px rgba(0, 0, 0, 0.04),\n 0px 16px 24px rgba(0, 0, 0, 0.04), 0px 4px 8px rgba(0, 0, 0, 0.04),\n 0px 0px 1px rgba(0, 0, 0, 0.04);\n border-radius: 6px;\n background-color: white;\n z-index: 30;\n\n "," {\n position: relative;\n top: 0;\n box-shadow: initial;\n }\n"],["\n display: flex;\n position: absolute;\n top: 48px;\n min-width: 100%;\n box-shadow: 0px 24px 32px rgba(0, 0, 0, 0.04),\n 0px 16px 24px rgba(0, 0, 0, 0.04), 0px 4px 8px rgba(0, 0, 0, 0.04),\n 0px 0px 1px rgba(0, 0, 0, 0.04);\n border-radius: 6px;\n background-color: white;\n z-index: 30;\n\n "," {\n position: relative;\n top: 0;\n box-shadow: initial;\n }\n"])),i.MediaQueries.mbDown),K=g.default.ul(L||(L=e.__makeTemplateObject(["\n width: 100%;\n max-height: 600px;\n overflow-y: auto;\n"],["\n width: 100%;\n max-height: 600px;\n overflow-y: auto;\n"]))),Z=g.default(z)(S||(S=e.__makeTemplateObject(["\n width: 12px;\n height: 18px;\n"],["\n width: 12px;\n height: 18px;\n"]))),G=g.default.li(T||(T=e.__makeTemplateObject(["\n position: relative;\n cursor: pointer;\n padding: 12px 18px;\n display: flex;\n align-items: center;\n gap: 14px;\n overflow: hidden;\n\n ","\n\n & + li::before {\n content: '';\n position: absolute;\n left: 18px;\n right: 18px;\n top: 0;\n height: 1px;\n background-color: ",";\n }\n\n &:not([data-is-denied='true']):hover {\n background-color: ",";\n }\n\n &:last-child:hover {\n border-bottom-right-radius: 6px;\n border-bottom-left-radius: 6px;\n }\n\n &:first-child:hover {\n border-top-right-radius: 6px;\n border-top-left-radius: 6px;\n }\n\n &[data-is-denied='true'] {\n cursor: not-allowed;\n }\n"],["\n position: relative;\n cursor: pointer;\n padding: 12px 18px;\n display: flex;\n align-items: center;\n gap: 14px;\n overflow: hidden;\n\n ","\n\n & + li::before {\n content: '';\n position: absolute;\n left: 18px;\n right: 18px;\n top: 0;\n height: 1px;\n background-color: ",";\n }\n\n &:not([data-is-denied='true']):hover {\n background-color: ",";\n }\n\n &:last-child:hover {\n border-bottom-right-radius: 6px;\n border-bottom-left-radius: 6px;\n }\n\n &:first-child:hover {\n border-top-right-radius: 6px;\n border-top-left-radius: 6px;\n }\n\n &[data-is-denied='true'] {\n cursor: not-allowed;\n }\n"])),(function(e){return e.isSelected&&"\n &::after {\n content: ".concat("url(\"data:image/svg+xml,%3Csvg width='19' height='14' viewBox='0 0 19 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16.9803 0.990669C16.7205 0.99841 16.4739 1.10699 16.2928 1.2934L5.99984 11.5864L2.70687 8.2934C2.61473 8.19743 2.50436 8.12081 2.38223 8.06802C2.2601 8.01524 2.12867 7.98735 1.99563 7.986C1.86259 7.98464 1.73061 8.00985 1.60743 8.06014C1.48426 8.11043 1.37235 8.18479 1.27827 8.27887C1.1842 8.37295 1.10983 8.48485 1.05954 8.60803C1.00926 8.73121 0.98405 8.86318 0.985403 8.99622C0.986757 9.12926 1.01464 9.26069 1.06743 9.38282C1.12021 9.50495 1.19684 9.61532 1.29281 9.70747L5.29281 13.7075C5.48035 13.8949 5.73467 14.0002 5.99984 14.0002C6.26501 14.0002 6.51933 13.8949 6.70687 13.7075L17.7069 2.70747C17.8514 2.567 17.9501 2.38616 17.99 2.18864C18.03 1.99112 18.0093 1.78614 17.9308 1.60055C17.8523 1.41497 17.7195 1.25744 17.5499 1.14861C17.3803 1.03978 17.1817 0.984729 16.9803 0.990669Z' fill='%232685F1'/%3E%3C/svg%3E%0A\")",";\n top: 50%;\n right: 18px;\n position: absolute;\n transform: translateY(-50%);\n }\n ")}),a.theme.colors.neutral100,a.theme.colors.neutral50),U=g.default((function(t){var n=t.count,a=t.className,o=c.useId(n);return h.default.createElement(h.default.Fragment,null,e.__spreadArray([],Array(n),!0).map((function(e,t){return h.default.createElement(V,{className:a,key:o[t]},h.default.createElement(m.default,{count:1,height:32}),h.default.createElement(m.default,{count:1,height:24}))})))}))(O||(O=e.__makeTemplateObject(["\n &:first-child {\n padding-top: 18px;\n }\n"],["\n &:first-child {\n padding-top: 18px;\n }\n"]))),Q=function(e){var t=e.cities,n=e.isLoading,r=e.onLocationClick,l=e.onCurrentLocationClick,s=e.geoLocationPermission,c=void 0===s?"unset":s,u=e.isLocationLoading,d=e.selectedLocation,p=i.useTranslations().t,f="denied"===c,g=function(){return h.default.createElement(G,{role:"button",tabIndex:0,onClick:function(e){f||(e.nativeEvent.stopImmediatePropagation(),u||l())},"data-is-denied":f},f?h.default.createElement(o.Text,{color:"var(--gray600)",size:"md"},"x"):u?h.default.createElement(m.default,{height:20,width:20}):h.default.createElement(j,{color:a.theme.colors.primaryBase}),h.default.createElement("div",null,f?h.default.createElement(o.Text,{color:"var(--gray600)",size:"sm",style:{lineHeight:1.5}},p("booking.searchBar.grantLocation")):u?h.default.createElement(m.default,{height:20,style:{width:"calc(100% - 16px)"}}):h.default.createElement(o.Text,{size:"md"},p("booking.searchBar.useCurrentLocation"))))};return h.default.createElement(B,{"data-testid":"location-search-results"},h.default.createElement(K,null,n?h.default.createElement(U,{count:5}):!t||t.length<1?h.default.createElement(h.default.Fragment,null,g(),h.default.createElement(G,{"data-is-denied":"true"},h.default.createElement(o.Text,{size:"sm",color:"#ccc"},p("booking.searchBar.noResults")))):h.default.createElement(h.default.Fragment,null,g(),t.map((function(e){return h.default.createElement(G,{key:e.id,onClick:function(t){t.nativeEvent.stopImmediatePropagation(),r&&r(e)},role:"button",tabIndex:0,"aria-label":"Select ".concat(e.name," as location"),isSelected:(null==d?void 0:d.id)===e.id},h.default.createElement(Z,{color:a.theme.colors.neutral400}),h.default.createElement(o.Text,{size:"md"},e.name))})))))},q="TYPE_CHARACTER",W="REMOVE_CHARACTER",Y="REMOVE_ALL",J="REMOVE_LAST_VISIBLE_NODE",X="PAUSE_FOR",$="CHANGE_DELETE_SPEED",ee="CHANGE_DELAY",te="PASTE_STRING",ne=function(e,t){return Math.floor(Math.random()*(t-e+1))+e},ae="TEXT_NODE",oe=function(){function t(t){var n=this;this.state={lastFrameTime:null,pauseUntil:null,eventQueue:[],eventLoop:null,eventLoopPaused:!1,reverseCalledEvents:[],calledEvents:[],visibleNodes:[],initialOptions:null},this.options={strings:null,delay:"natural",pauseFor:1500,deleteSpeed:"natural",loop:!1,autoStart:!1,stringSplitter:null,onCreateTextNode:null,onRemoveNode:null},this.start=function(){return n.state.eventLoopPaused=!1,n.runEventLoop(),n},this.pause=function(){return n.state.eventLoopPaused=!0,n},this.stop=function(){return n.state.eventLoop&&(window.cancelAnimationFrame(n.state.eventLoop),n.state.eventLoop=null),n},this.pauseFor=function(e){return n.addEventToQueue(X,{ms:e}),n},this.typeOutAllStrings=function(){return"string"==typeof n.options.strings?(n.typeString(n.options.strings).pauseFor(n.options.pauseFor),n):(n.options.strings.forEach((function(e){n.typeString(e).pauseFor(n.options.pauseFor).deleteAll(n.options.deleteSpeed)})),n)},this.typeString=function(e,t){if(void 0===t&&(t=null),e){var a=(n.options||{}).stringSplitter,o="function"==typeof a?a(e):e.split("");n.typeCharacters(o,t)}return n},this.pasteString=function(e,t){return void 0===t&&(t=null),e&&n.addEventToQueue(te,{character:e,node:t}),n},this.deleteAll=function(e){return void 0===e&&(e="natural"),n.addEventToQueue(Y,{speed:e}),n},this.changeDeleteSpeed=function(e){if(!e)throw new Error("Must provide new delete speed");return n.addEventToQueue($,{speed:e}),n},this.changeDelay=function(e){if(!e)throw new Error("Must provide new delay");return n.addEventToQueue(ee,{delay:e}),n},this.deleteChars=function(e){if(!e)throw new Error("Must provide amount of characters to delete");for(var t=0;t<e;t++)n.addEventToQueue(W);return n},this.typeCharacters=function(e,t){if(void 0===t&&(t=null),!e||!Array.isArray(e))throw new Error("Characters must be an array");return e.forEach((function(e){n.addEventToQueue(q,{character:e,node:t})})),n},this.removeCharacters=function(e){if(!e||!Array.isArray(e))throw new Error("Characters must be an array");return e.forEach((function(){n.addEventToQueue(W)})),n},this.addEventToQueue=function(e,t,a){return void 0===a&&(a=!1),n.addEventToStateProperty(e,t,a,"eventQueue")},this.addReverseCalledEvent=function(e,t,a){return void 0===a&&(a=!1),n.options.loop?n.addEventToStateProperty(e,t,a,"reverseCalledEvents"):n},this.addEventToStateProperty=function(t,a,o,i){void 0===o&&(o=!1);var r={eventName:t,eventArgs:a||{}};return n.state[i]=o?e.__spreadArray([r],n.state[i],!0):e.__spreadArray(e.__spreadArray([],n.state[i],!0),[r],!1),n},this.runEventLoop=function(){n.state.lastFrameTime||(n.state.lastFrameTime=Date.now());var t=Date.now(),a=t-n.state.lastFrameTime;if(!n.state.eventQueue.length){if(!n.options.loop)return;n.state.eventQueue=e.__spreadArray([],n.state.calledEvents,!0),n.state.calledEvents=[],n.options=e.__assign({},n.state.initialOptions)}if(n.state.eventLoop=window.requestAnimationFrame(n.runEventLoop),!n.state.eventLoopPaused){if(n.state.pauseUntil){if(t<n.state.pauseUntil)return;n.state.pauseUntil=null}var o=e.__spreadArray([],n.state.eventQueue,!0),i=o.shift();if(!(a<=(i.eventName===J||i.eventName===W?"natural"===n.options.deleteSpeed?ne(40,80):n.options.deleteSpeed:"natural"===n.options.delay?ne(120,160):n.options.delay))){var r=i.eventName,l=i.eventArgs;switch(r){case te:case q:var s=l.character,c=document.createTextNode(s),u=c;n.options.onCreateTextNode&&"function"==typeof n.options.onCreateTextNode&&(u=n.options.onCreateTextNode(s,c)),n.state.visibleNodes=e.__spreadArray(e.__spreadArray([],n.state.visibleNodes,!0),[{type:ae,character:s,node:u}],!1);break;case W:o.unshift({eventName:J,eventArgs:{removingCharacterNode:!0}});break;case X:var d=i.eventArgs.ms;n.state.pauseUntil=Date.now()+parseInt(d);break;case Y:var p=n.state.visibleNodes,h=l.speed,f=[];h&&f.push({eventName:$,eventArgs:{speed:h,temp:!0}});for(var g=0,m=p.length;g<m;g++)f.push({eventName:J,eventArgs:{removingCharacterNode:!1}});h&&f.push({eventName:$,eventArgs:{speed:n.options.deleteSpeed,temp:!0}}),o.unshift.apply(o,f);break;case J:if(n.state.visibleNodes.length){var C=n.state.visibleNodes.pop(),v=C.node;s=C.character;n.options.onRemoveNode&&"function"==typeof n.options.onRemoveNode&&n.options.onRemoveNode({node:v,character:s}),v&&v.parentNode.removeChild(v)}break;case $:n.options.deleteSpeed=i.eventArgs.speed;break;case ee:n.options.delay=i.eventArgs.delay}n.options.loop&&(i.eventName===J||i.eventArgs&&i.eventArgs.temp||(n.state.calledEvents=e.__spreadArray(e.__spreadArray([],n.state.calledEvents,!0),[i],!1))),n.state.eventQueue=o,n.state.lastFrameTime=t}}},t&&(this.options=e.__assign(e.__assign({},this.options),t)),this.state.initialOptions=e.__assign({},this.options),this.init()}return t.prototype.init=function(){this.addEventToQueue(Y,null,!0),!0===this.options.autoStart&&this.options.strings&&this.typeOutAllStrings().start()},t}();function ie(e){var n=e.inputRef,a=e.wrapperRef,o=e.disabled,r=i.useTranslations(),l=r.t,s=r.locale,c=t.useMemo((function(){if(o)return[];var e=["booking.searchBar.placeholder.hospital","booking.searchBar.placeholder.doctor"];return"zh-TW"!==s&&e.push("booking.searchBar.placeholder.specialty","booking.searchBar.placeholder.service"),C.default(e).map((function(e){return l(e)}))}),[l,s]);function u(e){var t=p();return t&&(t.placeholder=t.placeholder+e),null}function d(){var e=p();e&&(e.placeholder=e.placeholder.slice(0,-1))}function p(){return n&&n.current?n.current:a&&a.current&&a.current.querySelector("input")||null}t.useEffect((function(){if(!o){var e=p();e&&(e.placeholder="",new oe({strings:c,autoStart:!0,loop:!0,delay:32,deleteSpeed:32,pauseFor:1500,onCreateTextNode:u,onRemoveNode:d}))}}),[n,a])}var re,le=g.default.div(re||(re=e.__makeTemplateObject(["\n user-select: none;\n input {\n pointer-events: none;\n background-color: white;\n }\n"],["\n user-select: none;\n input {\n pointer-events: none;\n background-color: white;\n }\n"])));function se(n){var o=n.focused,r=n.value,l=void 0===r?"":r,s=n.onClick,c=n.trackingAttributes,u=n.inputSearchPlaceholder,d=i.useTranslations().t,p=t.useRef(null);ie({wrapperRef:p,disabled:!!u});var f=t.useMemo((function(){return c?{"data-event-category":c.dataEventCategory,"data-event-action":c.dataEventAction,"data-event-label":c.dataEventLabel}:{}}),[c]);return h.default.createElement(le,e.__assign({onClick:function(){return s&&s()},ref:p},f),h.default.createElement(N,{inputClassName:"location"===o?"focused":void 0,name:"booking-search-placeholder",displayIcon:h.default.createElement(D,{color:a.theme.colors.gray400}),placeholder:d("booking.searchBar.searchInput.placeholder"),value:l,size:"md"}))}var ce,ue,de,pe,he,fe,ge=g.default.header(ce||(ce=e.__makeTemplateObject(["\n display: flex;\n height: 64px;\n align-items: center;\n justify-content: space-between;\n margin: 0 auto;\n position: sticky;\n z-index: 99;\n background-color: white;\n top: 0;\n left: 0;\n"],["\n display: flex;\n height: 64px;\n align-items: center;\n justify-content: space-between;\n margin: 0 auto;\n position: sticky;\n z-index: 99;\n background-color: white;\n top: 0;\n left: 0;\n"]))),me=g.default.div(ue||(ue=e.__makeTemplateObject(["\n display: inline-flex;\n flex: 1;\n justify-content: flex-end;\n cursor: pointer;\n text-decoration: underline;\n"],["\n display: inline-flex;\n flex: 1;\n justify-content: flex-end;\n cursor: pointer;\n text-decoration: underline;\n"]))),Ce=g.default.div(de||(de=e.__makeTemplateObject(["\n display: flex;\n align-items: center;\n margin-left: 16px;\n cursor: pointer;\n"],["\n display: flex;\n align-items: center;\n margin-left: 16px;\n cursor: pointer;\n"]))),ve=g.default.div(pe||(pe=e.__makeTemplateObject(["\n width: 100%;\n margin-left: 24px;\n"],["\n width: 100%;\n margin-left: 24px;\n"]))),xe=g.default(o.Text)(he||(he=e.__makeTemplateObject(["\n color: ",";\n text-align: start;\n"],["\n color: ",";\n text-align: start;\n"])),a.theme.colors.secondaryDark),ye=function(e){var t=e.className,n=e.onLeftClick,o=e.headingText,i=e.onRightClick,r=e.iconLeft,l=e.textRight;return h.default.createElement(ge,{className:t},h.default.createElement(Ce,{onClick:n},r||h.default.createElement(F,{color:a.theme.colors.gray800})),h.default.createElement(ve,null,h.default.createElement(xe,{size:"md",type:"bold"},o)),h.default.createElement(me,{onClick:i},l&&h.default.createElement("p",null,l)))},be={"en-PH":3,"tl-PH":2,"id-ID":3,"vi-VN":2,"zh-TW":0},_e={isMobile:!1,isDebug:!1,navigateTo:null,geoLocationPermission:"unset",geoLocationCoordinates:null,focused:"none",searchLocationKeywords:"",searchKeywords:"",selectedLocation:null,defaultCity:null,initialCities:[],cities:[],searchResults:[],initialSearchResults:[],isLoadingCities:!1,isLoadingSearchResults:!1,isMobileModalOpened:!1,initialSelectedCity:null,autoCompleteDisabled:!1,inputSearchPlaceholder:"",locale:"vi-VN"};function we(t){var n=t.selectedLocation,a=t.searchLocationKeywords;return n&&a!==n.name?e.__assign(e.__assign({},t),{searchLocationKeywords:n.name}):t}function Ee(t,a){var o;switch(t.isDebug&&console.log("bookingSearchBar",{action:a,state:t}),a.type){case fe.NavigateTo:return e.__assign(e.__assign({},t),{navigateTo:a.payload,focused:"none",isMobileModalOpened:!1});case fe.ClickOutsideInputLocation:return t.isMobile||"location"!==t.focused?t:we(e.__assign(e.__assign({},t),{focused:"none"}));case fe.ClickOutsideInputSearch:return t.isMobile||"search"!==t.focused?t:e.__assign(e.__assign({},t),{focused:"none"});case fe.FocusInputLocation:var i=e.__assign(e.__assign({},t),{focused:"location"});return(null===(o=t.selectedLocation)||void 0===o?void 0:o.id)===n.ID_OPTION_CURRENT_LOCATION&&(i.searchLocationKeywords=""),i;case fe.FocusInputSearch:var r=e.__assign(e.__assign({},t),{focused:"search"});return t.isMobile?we(r):r;case fe.ChangeInputLocation:return e.__assign(e.__assign({},t),{searchLocationKeywords:a.payload});case fe.ChangeInputSearch:var l=a.payload;return e.__assign(e.__assign({},t),{searchKeywords:l,isLoadingSearchResults:l.trim().length>be[t.locale]});case fe.SelectCurrentLocation:return e.__assign(e.__assign({},t),{focused:"none",selectedLocation:a.payload,searchLocationKeywords:a.payload.name});case fe.ClearInputLocation:return e.__assign(e.__assign({},t),{focused:"location",cities:t.initialCities,searchLocationKeywords:""});case fe.ClearInputSearch:return e.__assign(e.__assign({},t),{focused:"search",searchKeywords:""});case fe.SelectLocation:return e.__assign(e.__assign({},t),{focused:"none",selectedLocation:a.payload,searchLocationKeywords:a.payload.name});case fe.SelectSearchResult:return e.__assign(e.__assign({},t),{searchKeywords:a.payload.name,isMobileModalOpened:!1,focused:"none",navigateTo:a.payload.url});case fe.FetchCitiesStart:return e.__assign(e.__assign({},t),{isLoadingCities:!0});case fe.FetchCitiesFinish:return e.__assign(e.__assign({},t),{isLoadingCities:!1});case fe.FetchSearchResultsStart:return e.__assign(e.__assign({},t),{isLoadingSearchResults:!0});case fe.FetchSearchResultsFinish:return e.__assign(e.__assign({},t),{isLoadingSearchResults:!1});case fe.FetchSearchResultsComplete:var s=e.__assign(e.__assign({},t),{searchResults:a.payload});return 0===t.initialSearchResults.length&&(s.initialSearchResults=a.payload),s;case fe.FetchCitiesByGeoIpComplete:var c=a.payload.cities,u=a.payload.default;(c=c.filter((function(e){return e.id!==u.id}))).unshift(u),t.initialSelectedCity&&!c.find((function(e){return e.id===t.initialSelectedCity.id}))&&c.unshift(t.initialSelectedCity);var d=e.__assign(e.__assign({},t),{defaultCity:u,initialCities:c,cities:c});return"denied"!==t.geoLocationPermission||t.initialSelectedCity||(d.selectedLocation=u,d.searchLocationKeywords=u.name),d;case fe.FetchCitiesByKeywordComplete:return e.__assign(e.__assign({},t),{cities:a.payload});case fe.DisplayInitialCities:return e.__assign(e.__assign({},t),{cities:t.initialCities});case fe.DisplayInitialSearchResults:return e.__assign(e.__assign({},t),{searchResults:t.initialSearchResults,isLoadingSearchResults:!1});case fe.GrantGeoLocationPermission:return e.__assign(e.__assign({},t),{geoLocationPermission:"granted",geoLocationCoordinates:a.payload});case fe.DenyGeoLocationPermission:return e.__assign(e.__assign({},t),{geoLocationPermission:"denied",geoLocationCoordinates:null});case fe.OpenMobileModal:return e.__assign(e.__assign({},t),{isMobileModalOpened:!0});case fe.CloseMobileModal:return e.__assign(e.__assign({},t),{isMobileModalOpened:!1});case fe.UpdateInitialSearchValue:return e.__assign(e.__assign({},t),{searchKeywords:a.payload});case fe.SetInputSearchPlaceholder:return e.__assign(e.__assign({},t),{inputSearchPlaceholder:a.payload});default:return t}}!function(e){e.NavigateTo="navigate to url",e.ClickOutsideInputLocation="click outside input location",e.ClickOutsideInputSearch="click outside input search",e.SelectCurrentLocation="select current location",e.FocusInputLocation="focus input location",e.FocusInputSearch="focus input search",e.ChangeInputLocation="change input location",e.ChangeInputSearch="change input search",e.ClearInputLocation="clear input location",e.ClearInputSearch="clear input search",e.SelectLocation="select location",e.FetchCitiesStart="fetch cities start",e.FetchCitiesFinish="fetch cities finish",e.FetchSearchResultsStart="fetch search results start",e.FetchSearchResultsComplete="fetch search results complete",e.FetchSearchResultsFinish="fetch search results finish",e.FetchCitiesByGeoIpComplete="fetch cities by geo IP finish",e.FetchCitiesByKeywordComplete="fetch cities by keyword finish",e.DisplayInitialCities="display initial cities",e.DisplayInitialSearchResults="display initial search results",e.GrantGeoLocationPermission="grant geolocation permission",e.DenyGeoLocationPermission="deny geolocation permission",e.OpenMobileModal="open mobile modal",e.CloseMobileModal="close mobile modal",e.UpdateInitialSearchValue="update initial search value",e.SelectSearchResult="select search result",e.SetInputSearchPlaceholder="set input search placeholder"}(fe||(fe={}));var ke,Le,Se,Te,Oe,Ie,Me,Re=function(){return h.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 18 18"},h.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.97887 8.15493C2.97887 5.29627 5.29627 2.97887 8.15493 2.97887C11.0136 2.97887 13.331 5.29627 13.331 8.15493C13.331 11.0136 11.0136 13.331 8.15493 13.331C5.29627 13.331 2.97887 11.0136 2.97887 8.15493ZM8.15493 1.5C4.47951 1.5 1.5 4.47951 1.5 8.15493C1.5 11.8303 4.47951 14.8099 8.15493 14.8099C9.72624 14.8099 11.1704 14.2653 12.3089 13.3546L15.2377 16.2834C15.5265 16.5722 15.9947 16.5722 16.2834 16.2834C16.5722 15.9947 16.5722 15.5265 16.2834 15.2377L13.3546 12.3089C14.2653 11.1704 14.8099 9.72624 14.8099 8.15493C14.8099 4.47951 11.8303 1.5 8.15493 1.5Z",fill:"white"}))},Ae=g.default.button(ke||(ke=e.__makeTemplateObject(["\n min-height: 100%;\n border-radius: 6px;\n background-color: ",";\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 11px;\n cursor: pointer;\n flex: 0.3;\n\n "," {\n --margin: 16px;\n min-height: 32px;\n margin: var(--margin);\n width: calc(100% - var(--margin) * 2);\n position: absolute;\n bottom: 0;\n }\n\n &:hover {\n background-color: ",";\n }\n\n &:active {\n background-color: ",";\n }\n\n &:focus-visible {\n outline: 1px solid black;\n }\n"],["\n min-height: 100%;\n border-radius: 6px;\n background-color: ",";\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 11px;\n cursor: pointer;\n flex: 0.3;\n\n "," {\n --margin: 16px;\n min-height: 32px;\n margin: var(--margin);\n width: calc(100% - var(--margin) * 2);\n position: absolute;\n bottom: 0;\n }\n\n &:hover {\n background-color: ",";\n }\n\n &:active {\n background-color: ",";\n }\n\n &:focus-visible {\n outline: 1px solid black;\n }\n"])),(function(e){return e.theme.colors.primaryBase}),i.MediaQueries.mbDown,(function(e){return e.theme.colors.primaryHover}),(function(e){return e.theme.colors.primaryActive})),Ne=g.default(o.Text)(Le||(Le=e.__makeTemplateObject(["\n font-weight: ",";\n"],["\n font-weight: ",";\n"])),(function(e){return e.theme.sizes.fwSemiBold})),Pe=function(e){var t=e.onClick,n=(0,i.useTranslations().t)("booking.searchBar.searchButton");return h.default.createElement(Ae,{onClick:t,title:n},h.default.createElement(Re,null),h.default.createElement(Ne,{size:"s3",color:"white"},n))},Fe=g.default.div(Se||(Se=e.__makeTemplateObject(["\n display: flex;\n gap: 16px;\n "," {\n flex-direction: column;\n padding: 14px;\n background-color: ",";\n\n input {\n filter: drop-shadow(0px 4px 8px rgba(0, 0, 0, 0.04))\n drop-shadow(0px 0px 2px rgba(0, 0, 0, 0.06))\n drop-shadow(0px 0px 1px rgba(0, 0, 0, 0.04));\n }\n }\n\n input {\n background-color: white;\n }\n"],["\n display: flex;\n gap: 16px;\n "," {\n flex-direction: column;\n padding: 14px;\n background-color: ",";\n\n input {\n filter: drop-shadow(0px 4px 8px rgba(0, 0, 0, 0.04))\n drop-shadow(0px 0px 2px rgba(0, 0, 0, 0.06))\n drop-shadow(0px 0px 1px rgba(0, 0, 0, 0.04));\n }\n }\n\n input {\n background-color: white;\n }\n"])),i.MediaQueries.mbDown,a.theme.colors.blue50),ze=g.default.div(Te||(Te=e.__makeTemplateObject(["\n position: relative;\n"],["\n position: relative;\n"]))),je=g.default(ze)(Oe||(Oe=e.__makeTemplateObject(["\n flex: 1;\n"],["\n flex: 1;\n"]))),De=g.default(ze)(Ie||(Ie=e.__makeTemplateObject(["\n flex: 2;\n"],["\n flex: 2;\n"]))),He=g.default((function(e){var t=e.className,n=e.color;return h.default.createElement("svg",{className:t,width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h.default.createElement("rect",{x:"4",y:"4",width:"16",height:"16",rx:"8",fill:"white"}),h.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM8.29289 8.29289C8.68342 7.90237 9.31658 7.90237 9.70711 8.29289L12 10.5858L14.2929 8.29289C14.6834 7.90237 15.3166 7.90237 15.7071 8.29289C16.0976 8.68342 16.0976 9.31658 15.7071 9.70711L13.4142 12L15.7071 14.2929C16.0976 14.6834 16.0976 15.3166 15.7071 15.7071C15.3166 16.0976 14.6834 16.0976 14.2929 15.7071L12 13.4142L9.70711 15.7071C9.31658 16.0976 8.68342 16.0976 8.29289 15.7071C7.90237 15.3166 7.90237 14.6834 8.29289 14.2929L10.5858 12L8.29289 9.70711C7.90237 9.31658 7.90237 8.68342 8.29289 8.29289Z",fill:n||"currentColor"}))}))(Me||(Me=e.__makeTemplateObject(["\n display: none;\n &.shown {\n display: block;\n }\n"],["\n display: none;\n &.shown {\n display: block;\n }\n"])));function Ve(e){var o=e.isMobile,r=e.state,l=e.dispatch,s=e.debouncedFetchCitiesByKeyword,c=e.debouncedFetchSearchResults,u=e.focusLocationInput,p=e.focusSearchInput,f=e.renderLocationResults,g=e.renderSearchResults,m=e.trackingAttributes,C=e.onSearch,v=e.initalSearchValue,x=t.useRef(null),y=t.useRef(null),b=r.focused,_=r.searchLocationKeywords,w=r.geoLocationPermission,E=r.selectedLocation,k=r.searchKeywords,L=r.inputSearchPlaceholder,S=i.useTranslations().t;ie({wrapperRef:y,disabled:!!L}),d.useOutsideClick(x,(function(){l({type:fe.ClickOutsideInputLocation})})),d.useOutsideClick(y,(function(){l({type:fe.ClickOutsideInputSearch})}));var T=t.useMemo((function(){return"granted"===w&&(null==E?void 0:E.id)===n.ID_OPTION_CURRENT_LOCATION?a.theme.colors.primaryBase:a.theme.colors.gray400}),[w,E]),O=t.useCallback((function(e){l({type:fe.ChangeInputSearch,payload:e}),"function"!=typeof C&&(e.trim().length>be[r.locale]||v?c(e.trim(),r):(c.cancel(),l({type:fe.DisplayInitialSearchResults})))}),[l,r]),I=t.useCallback((function(e){l({type:fe.ChangeInputLocation,payload:e}),e.trim().length>be[r.locale]?s(e.trim()):(s.cancel(),l({type:fe.DisplayInitialCities}))}),[s,l]);return h.default.createElement(Fe,null,h.default.createElement(je,{ref:x},h.default.createElement(N,{inputClassName:"location"===b?"focused":void 0,placeholder:S("booking.searchBar.locationPlaceholder"),autoComplete:"off",name:"search-location",displayIcon:h.default.createElement(z,{className:"location-pin-icon",color:T}),actionIcon:h.default.createElement(He,{color:a.theme.colors.gray300,className:""!==_?"shown":""}),onActionClick:function(){l({type:fe.ClearInputLocation}),s.cancel(),u()},value:_,onChange:I,onFocus:function(){return l({type:fe.FocusInputLocation})},size:"md"}),!o&&f()),h.default.createElement(De,{ref:y},h.default.createElement(N,{placeholder:L||S("booking.searchBar.searchInput.placeholder"),autoComplete:"off",name:"search-results",actionIcon:h.default.createElement(He,{color:a.theme.colors.gray300,className:""!==k?"shown":""}),onActionClick:function(){l({type:fe.ClearInputSearch}),c.cancel(),c("",r),p()},value:k,onChange:O,onFocus:function(){return l({type:fe.FocusInputSearch})},inputClassName:"search"===b?"focused":void 0,size:"md",trackingAttributes:m,onKeyPress:function(e){r.autoCompleteDisabled&&"Enter"===e.key&&C&&C({cityId:r.selectedLocation.id,keyword:k})},enterKeyHint:r.autoCompleteDisabled?"search":void 0}),!o&&g()),r.autoCompleteDisabled&&!r.isMobile&&h.default.createElement(Pe,{onClick:function(){C({cityId:r.selectedLocation.id,keyword:k})}}))}var Be,Ke,Ze,Ge,Ue,Qe,qe,We,Ye,Je,Xe,$e,et,tt,nt=g.default.li(Be||(Be=e.__makeTemplateObject(["\n display: flex;\n align-items: center;\n gap: var(--rowGap);\n cursor: pointer;\n"],["\n display: flex;\n align-items: center;\n gap: var(--rowGap);\n cursor: pointer;\n"]))),at=g.default.div(Ke||(Ke=e.__makeTemplateObject(["\n --wrapper-size: var(--graphicSize);\n border-radius: calc(var(--wrapper-size) / 2);\n background-color: var(--neutral50);\n width: var(--wrapper-size);\n height: var(--wrapper-size);\n aspect-ratio: 1/1;\n overflow: hidden;\n\n ","\n\n img {\n width: var(--graphicSize);\n height: var(--graphicSize);\n ","\n }\n\n &:focus-visible {\n outline: 1px solid ",";\n }\n"],["\n --wrapper-size: var(--graphicSize);\n border-radius: calc(var(--wrapper-size) / 2);\n background-color: var(--neutral50);\n width: var(--wrapper-size);\n height: var(--wrapper-size);\n aspect-ratio: 1/1;\n overflow: hidden;\n\n ","\n\n img {\n width: var(--graphicSize);\n height: var(--graphicSize);\n ","\n }\n\n &:focus-visible {\n outline: 1px solid ",";\n }\n"])),(function(e){var t=e.type;return t&&"doctors"===t&&"\n border-radius: calc(var(--graphicSize) / 2);\n "}),(function(e){var t=e.type;return t&&"doctors"===t?"\n\n object-fit: cover; \n ":"\n object-fit: contain;\n "}),a.theme.colors.gray600),ot=g.default(o.Text)(Ze||(Ze=e.__makeTemplateObject(["\n line-height: 22px;\n letter-spacing: -0.2px;\n\n "," {\n &[data-size='p3'] {\n font-size: 14px;\n }\n }\n"],["\n line-height: 22px;\n letter-spacing: -0.2px;\n\n "," {\n &[data-size='p3'] {\n font-size: 14px;\n }\n }\n"])),i.MediaQueries.tdUp),it=g.default.figure(Ge||(Ge=e.__makeTemplateObject(["\n max-width: var(--graphicSize);\n min-width: var(--graphicSize);\n"],["\n max-width: var(--graphicSize);\n min-width: var(--graphicSize);\n"]))),rt=g.default.svg(Ue||(Ue=e.__makeTemplateObject(["\n margin: 0 auto;\n display: block;\n"],["\n margin: 0 auto;\n display: block;\n"]))),lt=g.default.div(Qe||(Qe=e.__makeTemplateObject(["\n display: grid;\n place-items: center;\n"],["\n display: grid;\n place-items: center;\n"]))),st={doctors:function(e){var t=e.width,n=e.height;return h.default.createElement("svg",{width:t||32,height:n||32,viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h.default.createElement("g",{clipPath:"url(#clip0_14712_400114)"},h.default.createElement("rect",{width:"32",height:"32",rx:"16",fill:"#E4E8EC"}),h.default.createElement("path",{d:"M22.065 9.58305C22.1108 9.80952 22.1431 10.0396 22.1614 10.2722C22.3769 13.0522 22.5858 16.1276 22.5727 17.618C22.5306 20.5688 19.708 21.1325 19.4564 21.1769L19.4495 21.5357L19.5228 23.9014C20.8688 23.9341 22.203 24.1759 23.4772 24.6196C24.5264 24.9739 25.4827 25.5591 26.2757 26.332C27.0688 27.105 27.6783 28.0461 28.0594 29.0858L31.9886 39.2068C31.91 39.3048 30.6939 39.6356 29.4888 39.944C30.1695 42.3315 30.4582 44.8142 30.3432 47.2953C30.2991 48.2666 30.1816 49.264 29.7245 50.1211C29.4508 50.6342 29.0319 51.0912 28.5296 51.3753C28.5099 51.4347 28.4864 51.4928 28.4593 51.5495C28.4293 51.6146 28.3908 51.6756 28.3448 51.7307C28.3293 51.7772 28.3232 51.8406 28.3162 51.9135C28.3004 52.0779 28.2799 52.2909 28.1362 52.4685C28.001 52.6373 27.8519 52.7945 27.6905 52.9386C27.6905 52.9386 27.092 52.9667 26.4133 52.9845L26.458 58.4088H5.7492L6.30965 52.9523L5.66093 53.1637C5.07664 53.3528 4.45628 53.4028 3.84925 53.3099C3.24222 53.2169 2.66526 52.9835 2.1643 52.6283C1.61489 52.2388 1.17445 51.715 0.884966 51.1068C0.595484 50.4987 0.46662 49.8266 0.510669 49.1545L0.644528 47.1369L1.41503 38.3366L1.81323 38.4135L-0.914307 37.8437L-0.402886 36.5663C-0.407359 36.5645 -0.411803 36.5627 -0.416214 36.5608C-0.410804 36.56 -0.40538 36.5594 -0.399946 36.5589L2.05995 30.4146C3.00034 28.0825 4.7421 26.1624 6.97187 24.9999C8.56171 24.176 10.3028 23.6861 12.0882 23.5597L11.788 16.5865C11.1882 16.6507 10.0095 16.5266 9.96087 14.954C9.91229 13.3824 11.0457 13.3171 11.6507 13.3961L11.6445 13.2523C11.5785 12.8433 11.5088 12.439 11.4577 12.2132C11.3782 11.8628 11.2611 11.4953 11.1419 11.1207C10.8794 10.2967 10.6061 9.43855 10.697 8.65293C10.697 8.65293 10.6909 8.00438 11.4565 7.24044C11.3707 6.86644 11.3686 6.47786 11.4507 6.10258C11.5366 5.70965 11.7125 5.34199 11.9645 5.02848C12.2165 4.71497 12.5377 4.46414 12.9029 4.29569C13.2682 4.12725 13.6675 4.04577 14.0696 4.05766C14.2277 4.06393 14.3849 4.08493 14.5418 4.10589C14.7932 4.13945 15.0439 4.17294 15.2971 4.14581C15.7708 4.09409 16.177 3.83884 16.5862 3.58167C16.8357 3.42492 17.0863 3.26745 17.354 3.15494C17.9119 2.93744 18.5266 2.91281 19.1002 3.08497C19.6738 3.25713 20.1733 3.61619 20.5192 4.105C20.5943 4.21716 20.6621 4.33678 20.7298 4.45631C20.9035 4.76299 21.077 5.06915 21.373 5.24769C21.5927 5.38236 21.8482 5.42658 22.1057 5.47114C22.2633 5.49842 22.4216 5.52582 22.5728 5.57417C23.0267 5.71015 23.3999 6.0411 23.6319 6.45436C23.6327 6.40753 23.6317 6.36062 23.629 6.31374C23.6502 6.3657 23.6623 6.42092 23.6649 6.47698C23.6661 6.49165 23.667 6.50632 23.6677 6.521C23.8246 6.82609 23.9058 7.17114 23.8885 7.51347C23.8544 7.93447 23.7053 8.33801 23.4574 8.68001C23.2096 9.02201 22.8725 9.28933 22.483 9.45278C22.3469 9.50712 22.2071 9.55061 22.065 9.58305Z",fill:"white"})),h.default.createElement("defs",null,h.default.createElement("clipPath",{id:"clip0_14712_400114"},h.default.createElement("rect",{width:"32",height:"32",rx:"16",fill:"white"}))))},services:function(e){var t=e.width,n=e.height;return h.default.createElement("svg",{width:t||30,height:n||30,viewBox:"0 0 30 30",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h.default.createElement("circle",{cx:"15",cy:"15",r:"15",fill:"#F7F9FC"}),h.default.createElement("path",{d:"M14.9998 6.66663C12.2752 6.66663 9.85335 7.97848 8.33317 9.99996H10.5988C11.8 8.94527 13.3625 8.33329 14.9998 8.33329C16.6372 8.33329 18.1997 8.94527 19.4009 9.99996H21.6665C20.1463 7.97848 17.7244 6.66663 14.9998 6.66663ZM7.7863 10.8333C7.07666 13.0403 6.6665 15.5989 6.6665 18.3333C6.6665 20.0846 6.82601 21.7675 7.13525 23.3333H22.8644C23.1737 21.7675 23.3332 20.0846 23.3332 18.3333C23.3332 15.5989 22.923 13.0403 22.2134 10.8333H7.7863ZM14.9998 13.3333C17.3013 13.3333 19.1665 15.1985 19.1665 17.5C19.1665 19.8014 17.3013 21.6666 14.9998 21.6666C12.6984 21.6666 10.8332 19.8014 10.8332 17.5C10.8332 15.1985 12.6984 13.3333 14.9998 13.3333ZM14.1665 15V16.6666H12.4998V18.3333H14.1665V20H15.8332V18.3333H17.4998V16.6666H15.8332V15H14.1665Z",fill:"#BFC5CC"}))}},ct=function(e){var n=e.type,o=e.item,i=e.imageUrl,r=e.onClickItem,l=t.useMemo((function(){var e=st[n]||H;return h.default.createElement(e,{width:32,height:"services"===n?32:24})}),[n]);return h.default.createElement(nt,{onClick:function(){return r&&r(o)},onKeyDown:function(e){"Enter"!==e.key&&"Space"!==e.key||r&&r(o)},tabIndex:0,role:"button"},h.default.createElement(it,null,"hospitals"===n?h.default.createElement(rt,{width:"12",height:"16",viewBox:"0 0 12 16"},h.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0.75 5.94873C0.75 3.04623 3.0975 0.69873 6 0.69873C8.9025 0.69873 11.25 3.04623 11.25 5.94873C11.25 9.07623 7.935 13.3887 6.5775 15.0312C6.2775 15.3912 5.73 15.3912 5.43 15.0312C4.065 13.3887 0.75 9.07623 0.75 5.94873ZM4.125 5.94873C4.125 6.98373 4.965 7.82373 6 7.82373C7.035 7.82373 7.875 6.98373 7.875 5.94873C7.875 4.91373 7.035 4.07373 6 4.07373C4.965 4.07373 4.125 4.91373 4.125 5.94873Z",fill:"#9AA2AC"})):h.default.createElement(at,{type:n},i?h.default.createElement("img",{src:i,width:32,height:"services"===n?32:24}):l)),h.default.createElement(ot,{color:a.theme.colors.gray800,size:"p3"},o.name))},ut=function(){return h.default.createElement("svg",{width:"14",height:"18",viewBox:"0 0 14 18"},h.default.createElement("path",{d:"M7.00004 0.666992C5.29757 0.666992 3.64067 0.813476 2.52087 1.03158C1.73311 1.18457 1.16671 1.86816 1.16671 2.6722V4.83366C1.16671 5.29264 1.54106 5.66699 2.00004 5.66699H12C12.459 5.66699 12.8334 5.29264 12.8334 4.83366V2.69824C12.8334 1.89421 12.267 1.21061 11.4792 1.05762C10.3562 0.839518 8.69275 0.666992 7.00004 0.666992ZM6.16671 1.50033H7.83337V2.33366H8.66671V4.00033H7.83337V4.83366H6.16671V4.00033H5.33337V2.33366H6.16671V1.50033ZM1.42712 6.50033C1.3197 6.89421 1.24158 7.32389 1.19275 7.77637C1.14718 8.18001 1.05603 9.25423 1.06254 9.36491C0.603556 9.72624 0.333374 10.2861 0.333374 10.9014C0.333374 11.8356 0.977906 12.6364 1.84379 12.8285C2.74548 15.0192 4.55212 17.3337 7.00004 17.3337C9.44796 17.3337 11.2546 14.9964 12.1563 12.8024C13.0222 12.6136 13.6667 11.8356 13.6667 10.9014C13.6667 10.2861 13.3965 9.72624 12.9375 9.36491C12.9441 9.25423 12.8562 8.16048 12.8073 7.75033C12.7552 7.30436 12.6804 6.89095 12.573 6.50033H5.35942C6.52804 8.20606 9.27543 7.18717 11.0365 7.62012C11.5736 8.79199 11.1667 10.4326 11.1667 10.4326L11.8177 10.641C11.9121 10.6702 12 10.7549 12 10.9014C12 11.0576 11.8861 11.1943 11.6875 11.1878L11.0105 11.0837L10.7761 11.7347C9.96554 14.0492 8.4128 15.667 7.00004 15.667C5.58728 15.667 4.03455 14.0492 3.224 11.7347L2.96358 11.0837L2.26046 11.1878C2.11723 11.1878 2.00004 11.0576 2.00004 10.9014C2.00004 10.7549 2.08793 10.6702 2.18233 10.641L2.83337 10.4326C2.73246 10.5531 2.4102 8.7041 2.83337 8.03678C3.59184 7.5127 4.2266 7.87728 5.12504 6.50033H1.42712ZM5.17712 9.05241C4.57166 9.05241 4.08337 9.55371 4.08337 10.1722C4.08337 10.7907 4.57166 11.292 5.17712 11.292C5.78259 11.292 6.27087 10.7907 6.27087 10.1722C6.27087 9.55371 5.78259 9.05241 5.17712 9.05241ZM8.82296 9.05241C8.21749 9.05241 7.72921 9.55371 7.72921 10.1722C7.72921 10.7907 8.21749 11.292 8.82296 11.292C9.42843 11.292 9.91671 10.7907 9.91671 10.1722C9.91671 9.55371 9.42843 9.05241 8.82296 9.05241Z",fill:"#9AA2AC"}))},dt=function(){return h.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 18 18"},h.default.createElement("path",{d:"M8.99996 0.666992C6.27535 0.666992 3.85348 1.97884 2.33329 4.00033H4.59892C5.80009 2.94564 7.36259 2.33366 8.99996 2.33366C10.6373 2.33366 12.1998 2.94564 13.401 4.00033H15.6666C14.1464 1.97884 11.7246 0.666992 8.99996 0.666992ZM1.78642 4.83366C1.07678 7.04069 0.666626 9.59928 0.666626 12.3337C0.666626 14.085 0.826131 15.7679 1.13538 17.3337H16.8645C17.1738 15.7679 17.3333 14.085 17.3333 12.3337C17.3333 9.59928 16.9231 7.04069 16.2135 4.83366H1.78642ZM8.99996 7.33366C11.3014 7.33366 13.1666 9.19889 13.1666 11.5003C13.1666 13.8018 11.3014 15.667 8.99996 15.667C6.69853 15.667 4.83329 13.8018 4.83329 11.5003C4.83329 9.19889 6.69853 7.33366 8.99996 7.33366ZM8.16663 9.00033V10.667H6.49996V12.3337H8.16663V14.0003H9.83329V12.3337H11.5V10.667H9.83329V9.00033H8.16663Z",fill:"#9AA2AC"}))},pt=function(){return h.default.createElement("svg",{width:"16",height:"17",viewBox:"0 0 16 17"},h.default.createElement("path",{d:"M8 0.666992L0.5 5.63533V14.8337C0.5 15.7545 1.24583 16.5003 2.16667 16.5003H13.8333C14.7542 16.5003 15.5 15.7545 15.5 14.8337V5.63533L8 0.666992ZM11.3333 10.667H8.83333V13.167H7.16667V10.667H4.66667V9.00033H7.16667V6.50033H8.83333V9.00033H11.3333V10.667Z",fill:"#9AA2AC"}))},ht=function(){return h.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16"},h.default.createElement("path",{d:"M3.83333 0.5C2.94928 0.5 2.10143 0.851189 1.47631 1.47631C0.851189 2.10143 0.5 2.94928 0.5 3.83333C0.5 4.71739 0.851189 5.56523 1.47631 6.19036C2.10143 6.81548 2.94928 7.16667 3.83333 7.16667C4.71739 7.16667 5.56523 6.81548 6.19036 6.19036C6.81548 5.56523 7.16667 4.71739 7.16667 3.83333C7.16667 2.94928 6.81548 2.10143 6.19036 1.47631C5.56523 0.851189 4.71739 0.5 3.83333 0.5V0.5ZM10.5 0.5C9.57917 0.5 8.83333 1.24583 8.83333 2.16667V5.5C8.83333 6.42083 9.57917 7.16667 10.5 7.16667H13.8333C14.7542 7.16667 15.5 6.42083 15.5 5.5V2.16667C15.5 1.24583 14.7542 0.5 13.8333 0.5H10.5ZM3.83333 8.83333C2.94928 8.83333 2.10143 9.18452 1.47631 9.80964C0.851189 10.4348 0.5 11.2826 0.5 12.1667C0.5 13.0507 0.851189 13.8986 1.47631 14.5237C2.10143 15.1488 2.94928 15.5 3.83333 15.5C4.71739 15.5 5.56523 15.1488 6.19036 14.5237C6.81548 13.8986 7.16667 13.0507 7.16667 12.1667C7.16667 11.2826 6.81548 10.4348 6.19036 9.80964C5.56523 9.18452 4.71739 8.83333 3.83333 8.83333V8.83333ZM12.1667 8.83333C11.2826 8.83333 10.4348 9.18452 9.80964 9.80964C9.18452 10.4348 8.83333 11.2826 8.83333 12.1667C8.83333 13.0507 9.18452 13.8986 9.80964 14.5237C10.4348 15.1488 11.2826 15.5 12.1667 15.5C13.0507 15.5 13.8986 15.1488 14.5237 14.5237C15.1488 13.8986 15.5 13.0507 15.5 12.1667C15.5 11.2826 15.1488 10.4348 14.5237 9.80964C13.8986 9.18452 13.0507 8.83333 12.1667 8.83333V8.83333Z",fill:"#9AA2AC"}))},ft=g.default.header(qe||(qe=e.__makeTemplateObject(["\n display: flex;\n justify-content: space-between;\n padding: 12px 24px;\n background-color: ",";\n box-shadow: inset 0px 1px 0px #e4e8ec;\n"],["\n display: flex;\n justify-content: space-between;\n padding: 12px 24px;\n background-color: ",";\n box-shadow: inset 0px 1px 0px #e4e8ec;\n"])),a.theme.colors.neutral50),gt=g.default.div(We||(We=e.__makeTemplateObject(["\n display: grid;\n flex: 2;\n align-items: center;\n gap: 16px;\n grid-template-columns: 16px 1fr;\n"],["\n display: grid;\n flex: 2;\n align-items: center;\n gap: 16px;\n grid-template-columns: 16px 1fr;\n"]))),mt=g.default.p(Ye||(Ye=e.__makeTemplateObject(["\n color: ",";\n font-size: 14px;\n font-weight: ",";\n letter-spacing: -0.2px;\n line-height: 22px;\n"],["\n color: ",";\n font-size: 14px;\n font-weight: ",";\n letter-spacing: -0.2px;\n line-height: 22px;\n"])),a.theme.colors.neutral800,a.theme.sizes.fwSemiBold),Ct=g.default.button(Je||(Je=e.__makeTemplateObject(["\n flex: 1;\n cursor: pointer;\n text-align: end;\n"],["\n flex: 1;\n cursor: pointer;\n text-align: end;\n"]))),vt=g.default.section(Xe||(Xe=e.__makeTemplateObject(["\n padding: 12px 16px;\n --rowGap: 16px;\n --graphicSize: 32px;\n\n "," {\n --rowGap: 8px;\n }\n"],["\n padding: 12px 16px;\n --rowGap: 16px;\n --graphicSize: 32px;\n\n "," {\n --rowGap: 8px;\n }\n"])),i.MediaQueries.tdUp),xt=g.default.ul($e||($e=e.__makeTemplateObject(["\n --gap: 16px;\n "," {\n --gap: 8px;\n }\n\n display: grid;\n overflow: hidden;\n gap: var(--gap);\n transition: max-height 0.8s ease-out;\n\n ","\n\n ","\n\n@media (prefers-reduced-motion) {\n transition: none;\n }\n\n "," {\n grid-template-columns: 1fr 1fr;\n } ;\n"],["\n --gap: 16px;\n "," {\n --gap: 8px;\n }\n\n display: grid;\n overflow: hidden;\n gap: var(--gap);\n transition: max-height 0.8s ease-out;\n\n ","\n\n ","\n\n@media (prefers-reduced-motion) {\n transition: none;\n }\n\n "," {\n grid-template-columns: 1fr 1fr;\n } ;\n"])),i.MediaQueries.tdUp,(function(e){return e.isMore&&"\n height: auto;\n max-height: 0;\n margin-top: var(--gap);\n "}),(function(e){return e.isShown&&"\n max-height: 600px;\n "}),i.MediaQueries.tdUp),yt=g.default(o.Text)(et||(et=e.__makeTemplateObject(["\n margin-top: 12px;\n margin-bottom: 8px;\n cursor: pointer;\n text-align: start;\n text-transform: capitalize;\n"],["\n margin-top: 12px;\n margin-bottom: 8px;\n cursor: pointer;\n text-align: start;\n text-transform: capitalize;\n"]))),bt=function(e){var r=e.type,l=e.data,s=e.state,c=e.dispatch,u=e.itemsToShow,d=e.itemsToShowDesktop,p=e.isMobile,f=e.isLoading,g=e.keyword,C=t.useState(!1),v=C[0],x=C[1],y=i.useTranslations(),b=y.t,_=y.locale,w=s.selectedLocation,E=s.searchKeywords,k=t.useMemo((function(){return n.LOCALIZED_SLUGS[_]}),[_]),L=t.useMemo((function(){return{doctors:{name:b("booking.searchPopup.doctors"),icon:h.default.createElement(ut,null),slug:k.DOCTOR},services:{name:b("booking.searchPopup.services"),icon:h.default.createElement(dt,null),slug:k.SERVICE},hospitals:{name:b("booking.searchPopup.hospitals"),icon:h.default.createElement(pt,null),slug:k.HOSPITAL},specialties:{name:b("booking.searchPopup.specialties"),icon:h.default.createElement(ht,null),slug:k.SPECIALTIES}}}),[r,k]),S=t.useMemo((function(){return L[r].slug}),[L]),T=p?u:d;function O(e){var t="";switch(r){case"specialties":t="/".concat(w.slug,"/").concat(L.doctors.slug,"/").concat(e.slug);break;case"services":t="/".concat(w.slug,"/").concat(S,"/").concat(e.slug);break;case"doctors":case"hospitals":t="/".concat(S,"/").concat(e.slug,"-").concat(e.id)}t&&c({type:fe.SelectSearchResult,payload:{name:e.name,url:t}})}function I(e){return h.default.createElement(ct,{key:e.id,item:e,type:r,imageUrl:e.logo||e.avatar||e.thumbnail,onClickItem:O})}return h.default.createElement("section",null,h.default.createElement(ft,null,h.default.createElement(gt,null,L[r].icon,h.default.createElement(mt,null,L[r].name)),h.default.createElement(Ct,{onClick:function(){var e="";switch(r){case"specialties":e="/".concat(S);break;case"services":case"doctors":case"hospitals":e="/".concat(w.slug,"/").concat(S)}e&&c({type:fe.NavigateTo,payload:e})}},h.default.createElement(o.Text,{size:"p3",color:a.theme.colors.primaryBase},b("booking.searchPopup.seeAll")))),(f||l&&l.length>0)&&h.default.createElement(vt,null,h.default.createElement(xt,null,f&&Array(2).fill(void 0).map((function(e,t){return h.default.createElement(nt,{key:r+"loading"+t},h.default.createElement(it,null,h.default.createElement(lt,null,h.default.createElement(m.default,{height:14,width:"hospitals"===r?12:32,style:{maxWidth:"var(--graphicSize)",minHeight:"var(--graphicSize)"}}))),h.default.createElement(m.default,{width:120,height:24}))})),!f&&l&&l.length>0&&l.slice(0,T).map(I)),h.default.createElement(xt,{isShown:v,isMore:!0},l.slice(T,-1).map(I)),"specialties"===r&&T<l.length&&!f&&h.default.createElement("button",{onClick:function(){return x(!v)}},h.default.createElement(yt,{size:"p3",color:a.theme.colors.primaryBase},b(v?"booking.searchPopup.seeLessSpecialties":"booking.searchPopup.seeMoreSpecialties"))),"specialties"!==r&&T<l.length&&!f&&g.trim().length>be[_]&&h.default.createElement("button",{onClick:function(){var e=L[r].slug,t="/".concat(w.slug,"/").concat(e,"?q=").concat(E);c({type:fe.NavigateTo,payload:t})}},h.default.createElement(yt,{size:"p3",color:a.theme.colors.primaryBase},b("booking.searchPopup.searchIn.".concat(r),{name:g})))),!f&&0===(null==l?void 0:l.length)&&h.default.createElement(vt,null,h.default.createElement(o.Text,{size:"sm",color:a.theme.colors.gray400},b("booking.searchBar.noResults"))))},_t=g.default.section(tt||(tt=e.__makeTemplateObject(["\n background-color: white;\n border-radius: 4px;\n position: absolute;\n width: 100%;\n z-index: 30;\n\n "," {\n box-shadow: 0px 24px 32px rgba(0, 0, 0, 0.04),\n 0px 16px 24px rgba(0, 0, 0, 0.04), 0px 4px 8px rgba(0, 0, 0, 0.04),\n 0px 0px 1px rgba(0, 0, 0, 0.04);\n }\n"],["\n background-color: white;\n border-radius: 4px;\n position: absolute;\n width: 100%;\n z-index: 30;\n\n "," {\n box-shadow: 0px 24px 32px rgba(0, 0, 0, 0.04),\n 0px 16px 24px rgba(0, 0, 0, 0.04), 0px 4px 8px rgba(0, 0, 0, 0.04),\n 0px 0px 1px rgba(0, 0, 0, 0.04);\n }\n"])),i.MediaQueries.tdUp),wt=function(e){var t=e.data,n=e.state,a=e.dispatch,o=e.isMobile,i=e.isLoading,r=e.keyword;return h.default.createElement(_t,null,t&&t.map((function(e){return h.default.createElement(bt,{type:e.type,state:n,dispatch:a,itemsToShow:2,itemsToShowDesktop:4,key:e.type,data:e.results,isMobile:o,isLoading:i,keyword:r})})))},Et="api/lists/cities?keyword={keyword}&country_id={countryId}&site={domain}&_nopaging={nopaging}",kt="api/v2/search/?site={domain}&type={searchType}&keyword={keyword}&city_id={city}&latitude={lat}&longitude={lng}",Lt="api/geobyip?site={domain}&latitude={lat}&longitude={lng}",St=function(t,a,o){return i.stringFormat(t,e.__assign(e.__assign({},a),{domain:n.domainLocales[o||"en-PH"]}))};var Tt;!function(e){e[e.SPECIALTY=1]="SPECIALTY",e[e.DOCTOR=2]="DOCTOR",e[e.CLINIC=3]="CLINIC",e[e.SERVICE=4]="SERVICE"}(Tt||(Tt={}));var Ot=Object.freeze({__proto__:null,get RedirectType(){return Tt}});exports.BookingSearchBar=function(r){var l=r.isMobile,s=r.careApiDomain,c=r.geoLocationPermission,u=r.geoLocationCoordinates,d=r.initialSelectedCity,p=r.initialSearchValue,g=void 0===p?"":p,m=r.careFrontDomain,C=void 0===m?"/care":m,v=r.isDebug,x=void 0!==v&&v,y=r.askForGeolocationPermission,b=void 0!==y&&y,_=r.gaTrackingSearchBar,w=r.autoCompleteDisabled,E=void 0!==w&&w,k=r.inputSearchPlaceholder,L=void 0===k?"":k,S=r.routerPush,T=r.onGeoLocationPermissionChange,O=r.onSearch,N=r.onChangeLocation,F=i.useTranslations(),z=F.t,j=F.locale,D=t.useRef(null),H=t.useRef(null),V=t.useState(void 0),B=V[0],K=V[1],Z=function(){var e=t.useState((function(){if("undefined"==typeof window)return"unset";if(o.getCookie(a.USER_GEOLOCATION_COORDINATES_COOKIE))return"granted";var e=!location.protocol.includes("https")&&"localhost"!==location.hostname;return!navigator.geolocation||e?"denied":"unset"})),n=e[0],i=e[1],r=t.useState((function(){if("undefined"==typeof window)return null;var e=o.getCookie(a.USER_GEOLOCATION_COORDINATES_COOKIE);if(e)try{return JSON.parse(e)}catch(e){console.log(e)}return null})),l=r[0],s=r[1],c=t.useCallback((function(){navigator.geolocation&&navigator.geolocation.getCurrentPosition((function(e){var t={lat:"".concat(Math.round(1e7*e.coords.latitude)/1e7),lng:"".concat(Math.round(1e7*e.coords.longitude)/1e7)};o.setCookie(a.USER_GEOLOCATION_COORDINATES_COOKIE,JSON.stringify(t),0,15),s(t),i("granted")}),(function(){o.deleteCookie(a.USER_GEOLOCATION_COORDINATES_COOKIE),i("denied")}))}),[]);return t.useMemo((function(){return{geoLocationPermission:n,geoLocationCoordinates:l,requestGeoLocation:c}}),[n,l])}(),G=Z.geoLocationPermission,U=Z.geoLocationCoordinates,q=Z.requestGeoLocation,W=t.useReducer(Ee,_e,(function(t){return e.__assign(e.__assign({},t),{isDebug:x,isMobile:l,geoLocationPermission:c||G||"unset",geoLocationCoordinates:u||U||null,searchKeywords:g,initialSelectedCity:d||null,selectedLocation:d||t.selectedLocation||null,searchLocationKeywords:(null==d?void 0:d.name)||t.searchLocationKeywords,autoCompleteDisabled:E,inputSearchPlaceholder:L,locale:j})})),Y=W[0],J=W[1],X=Y.navigateTo,$=Y.focused,ee=Y.isLoadingCities,te=Y.cities,ne=Y.searchKeywords,ae=Y.geoLocationPermission,oe=Y.selectedLocation,ie=Y.initialSelectedCity,re=Y.defaultCity,le=Y.searchResults,ce=Y.isLoadingSearchResults,ue=Y.isMobileModalOpened,de=Y.inputSearchPlaceholder,pe=function(e){var a=e.dispatch,o=e.careApiDomain,i=e.locale,r=void 0===i?"vi-VN":i,l=t.useCallback((function(e,t){void 0===t&&(t={});var n="".concat(o).concat(e);return a({type:fe.FetchCitiesStart}),fetch(St(n,t,r),{method:"GET"}).then((function(e){return e.json()})).then((function(e){return 1===e._status&&e._data?null==e?void 0:e._data:(console.log("error loading cities",e),Promise.reject(e))})).finally((function(){return a({type:fe.FetchCitiesFinish})}))}),[r]),s=t.useCallback((function(e){var t=e.coordinates,n={};return t&&(n={lat:t.lat,lng:t.lng}),l(Lt,n).then((function(e){a({type:fe.FetchCitiesByGeoIpComplete,payload:e})})).catch((function(e){return console.error("error loading cities by location",e)}))}),[r,o,a]);return{fetchCitiesByLocation:s,fetchCitiesByKeyword:t.useCallback((function(e){return l(Et,{keyword:e}).then((function(e){a({type:fe.FetchCitiesByKeywordComplete,payload:e.cities})})).catch((function(e){return console.error("error loading cities by keyword",e)}))}),[r,o,a]),fetchSearchResults:t.useCallback((function(e,t){var i="".concat(o).concat(kt);a({type:fe.FetchSearchResultsStart});var l=t.defaultCity,s=t.selectedLocation,c=t.geoLocationCoordinates,u="";if(s&&l){s.id===n.ID_OPTION_CURRENT_LOCATION?c||(u=l.id):u=s.id;var d=(null==c?void 0:c.lat)||"",p=(null==c?void 0:c.lng)||"";return fetch(St(i,{domain:o,searchType:"global",keyword:e.trim().length>be[r]?e.trim():"",city:u===n.ID_OPTION_CURRENT_LOCATION?"":u,lat:d,lng:p},r),{method:"GET",headers:{accept:"version=2.0.0.0"}}).then((function(e){return e.json()})).then((function(e){return 1===e._status&&e._data?null==e?void 0:e._data:Promise.reject(e)})).then((function(e){return a({type:fe.FetchSearchResultsComplete,payload:e})})).catch((function(e){console.log("error loading search results",{url:i,error:e})})).finally((function(){return a({type:fe.FetchSearchResultsFinish})}))}a({type:fe.FetchSearchResultsFinish})}),[r,o,a])}}({dispatch:J,locale:j,careApiDomain:s}),he=pe.fetchCitiesByLocation,ge=pe.fetchCitiesByKeyword,me=pe.fetchSearchResults,Ce=t.useMemo((function(){var e;return{id:n.ID_OPTION_CURRENT_LOCATION,name:z("booking.searchBar.currentLocation"),slug:null===(e=n.LOCALIZED_SLUGS[j])||void 0===e?void 0:e.CURRENT}}),[z,j]),ve=t.useMemo((function(){return f.default(ge,400)}),[ge]),xe=t.useMemo((function(){return f.default(me,400)}),[me]);t.useEffect((function(){""!==g&&g!==Y.searchKeywords&&J({type:fe.UpdateInitialSearchValue,payload:g})}),[g]),t.useEffect((function(){b&&(null==oe?void 0:oe.id)===n.ID_OPTION_CURRENT_LOCATION&&"unset"===ae&&q()}),[b,oe,ae]),t.useEffect((function(){c||ae===G||("granted"===G&&U?J({type:fe.GrantGeoLocationPermission,payload:U}):"denied"===G&&J({type:fe.DenyGeoLocationPermission}))}),[ae,G,U,c]),t.useEffect((function(){X&&(S?S(X):window.location.href="".concat(C).concat(X))}),[X]);var we=t.useCallback((function(){J({type:fe.SelectCurrentLocation,payload:Ce})}),[z,J]);t.useEffect((function(){"denied"===ae||ie||we(),T&&T(ae,Y.geoLocationCoordinates),l&&"granted"===ae&&oe&&J({type:fe.FocusInputSearch}),he({coordinates:Y.geoLocationCoordinates})}),[ae]),t.useEffect((function(){oe&&re&&me(Y.searchKeywords,Y)}),[oe,re]),t.useEffect((function(){L!==de&&J({type:fe.SetInputSearchPlaceholder,payload:L})}),[L,de]),t.useEffect((function(){ue?document.body.classList.add("care-popup-open"):document.body.classList.remove("care-popup-open")}),[ue]);var ke=t.useCallback((function(e){J({type:fe.SelectLocation,payload:e}),Te(),N&&N(e)}),[z,J]);function Le(){l&&"granted"!==Y.geoLocationPermission?q():(we(),Te())}function Se(){var e;D.current&&(null===(e=D.current.querySelector('input[name="search-location"]'))||void 0===e||e.focus())}function Te(){var e;D.current&&(null===(e=D.current.querySelector('input[name="search-results"]'))||void 0===e||e.focus())}function Oe(){return"location"!==$?null:h.default.createElement(Q,{isLoading:ee,cities:te,onLocationClick:ke,onCurrentLocationClick:Le,isLocationLoading:ee,geoLocationPermission:ae,selectedLocation:oe})}function Ie(){return"search"!==$?null:Y.autoCompleteDisabled?l?h.default.createElement(Pe,{onClick:function(){O({cityId:Y.selectedLocation.id,keyword:ne})}}):null:h.default.createElement(wt,{data:le,state:Y,dispatch:J,isMobile:!1,keyword:ne,isLoading:ce})}function Me(){return h.default.createElement(Ve,{isMobile:l,state:Y,dispatch:J,debouncedFetchCitiesByKeyword:ve,debouncedFetchSearchResults:xe,focusLocationInput:Se,focusSearchInput:Te,renderLocationResults:Oe,renderSearchResults:Ie,trackingAttributes:_,onSearch:O,initalSearchValue:g})}return t.useEffect((function(){if(window.visualViewport){var e=function(e){var t=e.target;K(null==t?void 0:t.height)};return window.visualViewport.addEventListener("resize",e),function(){window.visualViewport.removeEventListener("resize",e)}}}),[K]),l?h.default.createElement(h.default.Fragment,null,h.default.createElement(P,null),h.default.createElement(A,{ref:H}),h.default.createElement(M,{id:"booking-search-bar",ref:D,"data-is-modal":l&&ue,style:{"--mobile-care-searchbar-height":ue&&B?"".concat(B,"px"):"100%"}},ue?h.default.createElement(h.default.Fragment,null,h.default.createElement(R,null,h.default.createElement(ye,{headingText:"Search",onLeftClick:function(){J({type:fe.CloseMobileModal})}}),Me()),Oe(),Ie()):h.default.createElement(se,{onClick:function(){var t;return e.__awaiter(this,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return H.current&&H.current.focus(),J({type:fe.OpenMobileModal}),[4,Promise.resolve()];case 1:return e.sent(),D.current&&(null===(t=D.current.querySelector('input[name="search-location"]'))||void 0===t||t.focus()),[2]}}))}))},focused:$,value:ne,trackingAttributes:_,inputSearchPlaceholder:L}))):h.default.createElement(I,{id:"booking-search-bar",ref:D},Me())},exports.types=Ot;
2
- //# sourceMappingURL=types-df74aec0.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-df74aec0.js","sources":["../src/care/components/organisms/bookingSearchBar/index.styled.ts","../src/care/components/atoms/icons/index.tsx","../src/care/components/organisms/bookingSearchBar/locationResults/liSkeleton.tsx","../src/care/components/organisms/bookingSearchBar/locationResults/index.styled.ts","../src/care/components/organisms/bookingSearchBar/locationResults/index.tsx","../src/care/components/organisms/bookingSearchBar/utils/Typewriter.ts","../src/care/components/organisms/bookingSearchBar/useAnimatedPlaceholder.ts","../src/care/components/organisms/bookingSearchBar/mobileFakeInput/index.tsx","../src/care/components/organisms/bookingSearchBar/mobileTopbar/index.styled.ts","../src/care/components/organisms/bookingSearchBar/reducer.ts","../src/care/components/organisms/bookingSearchBar/mobileTopbar/index.tsx","../src/care/components/organisms/bookingSearchBar/constants.ts","../src/care/components/organisms/bookingSearchBar/searchSubmitIcon/index.tsx","../src/care/components/organisms/bookingSearchBar/searchInputs/index.styled.ts","../src/care/components/organisms/bookingSearchBar/searchInputs/index.tsx","../src/care/components/organisms/bookingSearchBar/resultSectionItem/index.styled.ts","../src/care/components/organisms/bookingSearchBar/resultSectionItem/index.tsx","../src/care/components/organisms/bookingSearchBar/resultSection/icons.tsx","../src/care/components/organisms/bookingSearchBar/resultSection/index.styled.ts","../src/care/components/organisms/bookingSearchBar/resultSection/index.tsx","../src/care/components/organisms/bookingSearchBar/searchResults/index.tsx","../src/care/api/paths.ts","../src/care/api/utils.ts","../src/care/components/organisms/bookingSearchBar/index.tsx","../src/care/interfaces/types.ts","../src/hooks/useGeolocation.ts","../src/care/components/organisms/bookingSearchBar/useSearchBarApi.ts"],"sourcesContent":["import { Input } from 'components/atoms'\nimport styled, { createGlobalStyle } from 'styled-components'\n\nexport const StyledSearchBarWrapper = styled.div``\n\nexport const StyledSearchBarMobileWrapper = styled.div`\n --searchbar-z-index: 305;\n &[data-is-modal='true'] {\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n height: var(--mobile-care-searchbar-height, 100%);\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n background-color: white;\n z-index: var(--searchbar-z-index);\n }\n`\n\nexport const StyledSearchBarMobileModalHeader = styled.section``\n\nexport const StyledHiddenInputMobile = styled.input`\n position: fixed;\n left: -100%;\n top: -100%;\n`\n\nexport const StyledInput = styled(Input)`\n #booking-search-bar & {\n input {\n font-size: 16px;\n }\n }\n`\n\nexport const CareSearchGlobalStyles = createGlobalStyle`\n .care-popup-open {\n overflow: hidden;\n position: fixed;\n &::before {\n content: '';\n inset: 0;\n position: absolute;\n background-color: white;\n min-height: 100vh;\n min-width: 100vw;\n z-index: 2;\n }\n }\n`\n","import React from 'react'\n\ntype IconProps = {\n className?: string\n color?: string\n}\n\nexport const ClearIcon = ({ className, color }: IconProps) => (\n <svg\n className={className}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"8\" fill=\"white\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM8.29289 8.29289C8.68342 7.90237 9.31658 7.90237 9.70711 8.29289L12 10.5858L14.2929 8.29289C14.6834 7.90237 15.3166 7.90237 15.7071 8.29289C16.0976 8.68342 16.0976 9.31658 15.7071 9.70711L13.4142 12L15.7071 14.2929C16.0976 14.6834 16.0976 15.3166 15.7071 15.7071C15.3166 16.0976 14.6834 16.0976 14.2929 15.7071L12 13.4142L9.70711 15.7071C9.31658 16.0976 8.68342 16.0976 8.29289 15.7071C7.90237 15.3166 7.90237 14.6834 8.29289 14.2929L10.5858 12L8.29289 9.70711C7.90237 9.31658 7.90237 8.68342 8.29289 8.29289Z\"\n fill={color || 'currentColor'}\n />\n </svg>\n)\n\nexport const CloseIcon = ({ className, color }: IconProps) => (\n <svg\n className={className}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18 6L6 18\"\n stroke={color || 'currentColor'}\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M6 6L18 18\"\n stroke={color || 'currentColor'}\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nexport const PinIcon = ({ className, color }: IconProps) => (\n <svg width=\"14\" height=\"20\" viewBox=\"0 0 14 20\" className={className}>\n <path\n d=\"M7 0C3.134 0 0 3.134 0 7C0 10.966 4.404 16.82 6.226 19.071C6.626 19.565 7.374 19.565 7.774 19.071C9.596 16.82 14 10.966 14 7C14 3.134 10.866 0 7 0ZM7 9.5C5.619 9.5 4.5 8.381 4.5 7C4.5 5.619 5.619 4.5 7 4.5C8.381 4.5 9.5 5.619 9.5 7C9.5 8.381 8.381 9.5 7 9.5Z\"\n fill={color || 'currentColor'}\n />\n </svg>\n)\n\nexport const GetLocationIcon = ({ className, color }: IconProps) => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n className={className}\n >\n <path\n d=\"M9.99967 6.66658C8.15801 6.66658 6.66634 8.15825 6.66634 9.99992C6.66634 11.8416 8.15801 13.3333 9.99967 13.3333C11.8413 13.3333 13.333 11.8416 13.333 9.99992C13.333 8.15825 11.8413 6.66658 9.99967 6.66658ZM17.4497 9.16658C17.0663 5.69158 14.308 2.93325 10.833 2.54992V1.66659C10.833 1.20825 10.458 0.833252 9.99967 0.833252C9.54134 0.833252 9.16634 1.20825 9.16634 1.66659V2.54992C5.69134 2.93325 2.93301 5.69158 2.54967 9.16658H1.66634C1.20801 9.16658 0.833008 9.54158 0.833008 9.99992C0.833008 10.4583 1.20801 10.8333 1.66634 10.8333H2.54967C2.93301 14.3083 5.69134 17.0666 9.16634 17.4499V18.3333C9.16634 18.7916 9.54134 19.1666 9.99967 19.1666C10.458 19.1666 10.833 18.7916 10.833 18.3333V17.4499C14.308 17.0666 17.0663 14.3083 17.4497 10.8333H18.333C18.7913 10.8333 19.1663 10.4583 19.1663 9.99992C19.1663 9.54158 18.7913 9.16658 18.333 9.16658H17.4497ZM9.99967 15.8333C6.77467 15.8333 4.16634 13.2249 4.16634 9.99992C4.16634 6.77492 6.77467 4.16658 9.99967 4.16658C13.2247 4.16658 15.833 6.77492 15.833 9.99992C15.833 13.2249 13.2247 15.8333 9.99967 15.8333Z\"\n fill={color || 'currentColor'}\n />\n </svg>\n)\n\nexport const MagnifierIcon = ({ className, color }: IconProps) => (\n <svg\n className={className}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11 18C14.866 18 18 14.866 18 11C18 7.13401 14.866 4 11 4C7.13401 4 4 7.13401 4 11C4 14.866 7.13401 18 11 18Z\"\n stroke={color || 'currentColor'}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M20 20L16 16\"\n stroke={color || 'currentColor'}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nexport const DefaultThumbnailAny = ({\n width,\n height,\n}: {\n width?: number\n height?: number\n}) => (\n <svg\n width={width || 30}\n height={height || 30}\n viewBox=\"0 0 30 30\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"15\" cy=\"15\" r=\"15\" fill=\"#F7F9FC\" />\n </svg>\n)\n\nexport const DefaultThumbnailDoctor = ({\n width,\n height,\n}: {\n width?: number\n height?: number\n}) => (\n <svg\n width={width || 32}\n height={height || 32}\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_14712_400114)\">\n <rect width=\"32\" height=\"32\" rx=\"16\" fill=\"#E4E8EC\" />\n <path\n d=\"M22.065 9.58305C22.1108 9.80952 22.1431 10.0396 22.1614 10.2722C22.3769 13.0522 22.5858 16.1276 22.5727 17.618C22.5306 20.5688 19.708 21.1325 19.4564 21.1769L19.4495 21.5357L19.5228 23.9014C20.8688 23.9341 22.203 24.1759 23.4772 24.6196C24.5264 24.9739 25.4827 25.5591 26.2757 26.332C27.0688 27.105 27.6783 28.0461 28.0594 29.0858L31.9886 39.2068C31.91 39.3048 30.6939 39.6356 29.4888 39.944C30.1695 42.3315 30.4582 44.8142 30.3432 47.2953C30.2991 48.2666 30.1816 49.264 29.7245 50.1211C29.4508 50.6342 29.0319 51.0912 28.5296 51.3753C28.5099 51.4347 28.4864 51.4928 28.4593 51.5495C28.4293 51.6146 28.3908 51.6756 28.3448 51.7307C28.3293 51.7772 28.3232 51.8406 28.3162 51.9135C28.3004 52.0779 28.2799 52.2909 28.1362 52.4685C28.001 52.6373 27.8519 52.7945 27.6905 52.9386C27.6905 52.9386 27.092 52.9667 26.4133 52.9845L26.458 58.4088H5.7492L6.30965 52.9523L5.66093 53.1637C5.07664 53.3528 4.45628 53.4028 3.84925 53.3099C3.24222 53.2169 2.66526 52.9835 2.1643 52.6283C1.61489 52.2388 1.17445 51.715 0.884966 51.1068C0.595484 50.4987 0.46662 49.8266 0.510669 49.1545L0.644528 47.1369L1.41503 38.3366L1.81323 38.4135L-0.914307 37.8437L-0.402886 36.5663C-0.407359 36.5645 -0.411803 36.5627 -0.416214 36.5608C-0.410804 36.56 -0.40538 36.5594 -0.399946 36.5589L2.05995 30.4146C3.00034 28.0825 4.7421 26.1624 6.97187 24.9999C8.56171 24.176 10.3028 23.6861 12.0882 23.5597L11.788 16.5865C11.1882 16.6507 10.0095 16.5266 9.96087 14.954C9.91229 13.3824 11.0457 13.3171 11.6507 13.3961L11.6445 13.2523C11.5785 12.8433 11.5088 12.439 11.4577 12.2132C11.3782 11.8628 11.2611 11.4953 11.1419 11.1207C10.8794 10.2967 10.6061 9.43855 10.697 8.65293C10.697 8.65293 10.6909 8.00438 11.4565 7.24044C11.3707 6.86644 11.3686 6.47786 11.4507 6.10258C11.5366 5.70965 11.7125 5.34199 11.9645 5.02848C12.2165 4.71497 12.5377 4.46414 12.9029 4.29569C13.2682 4.12725 13.6675 4.04577 14.0696 4.05766C14.2277 4.06393 14.3849 4.08493 14.5418 4.10589C14.7932 4.13945 15.0439 4.17294 15.2971 4.14581C15.7708 4.09409 16.177 3.83884 16.5862 3.58167C16.8357 3.42492 17.0863 3.26745 17.354 3.15494C17.9119 2.93744 18.5266 2.91281 19.1002 3.08497C19.6738 3.25713 20.1733 3.61619 20.5192 4.105C20.5943 4.21716 20.6621 4.33678 20.7298 4.45631C20.9035 4.76299 21.077 5.06915 21.373 5.24769C21.5927 5.38236 21.8482 5.42658 22.1057 5.47114C22.2633 5.49842 22.4216 5.52582 22.5728 5.57417C23.0267 5.71015 23.3999 6.0411 23.6319 6.45436C23.6327 6.40753 23.6317 6.36062 23.629 6.31374C23.6502 6.3657 23.6623 6.42092 23.6649 6.47698C23.6661 6.49165 23.667 6.50632 23.6677 6.521C23.8246 6.82609 23.9058 7.17114 23.8885 7.51347C23.8544 7.93447 23.7053 8.33801 23.4574 8.68001C23.2096 9.02201 22.8725 9.28933 22.483 9.45278C22.3469 9.50712 22.2071 9.55061 22.065 9.58305Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_14712_400114\">\n <rect width=\"32\" height=\"32\" rx=\"16\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n)\n\nexport const DefaultThumbnailService = ({\n width,\n height,\n}: {\n width?: number\n height?: number\n}) => (\n <svg\n width={width || 30}\n height={height || 30}\n viewBox=\"0 0 30 30\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"15\" cy=\"15\" r=\"15\" fill=\"#F7F9FC\" />\n <path\n d=\"M14.9998 6.66663C12.2752 6.66663 9.85335 7.97848 8.33317 9.99996H10.5988C11.8 8.94527 13.3625 8.33329 14.9998 8.33329C16.6372 8.33329 18.1997 8.94527 19.4009 9.99996H21.6665C20.1463 7.97848 17.7244 6.66663 14.9998 6.66663ZM7.7863 10.8333C7.07666 13.0403 6.6665 15.5989 6.6665 18.3333C6.6665 20.0846 6.82601 21.7675 7.13525 23.3333H22.8644C23.1737 21.7675 23.3332 20.0846 23.3332 18.3333C23.3332 15.5989 22.923 13.0403 22.2134 10.8333H7.7863ZM14.9998 13.3333C17.3013 13.3333 19.1665 15.1985 19.1665 17.5C19.1665 19.8014 17.3013 21.6666 14.9998 21.6666C12.6984 21.6666 10.8332 19.8014 10.8332 17.5C10.8332 15.1985 12.6984 13.3333 14.9998 13.3333ZM14.1665 15V16.6666H12.4998V18.3333H14.1665V20H15.8332V18.3333H17.4998V16.6666H15.8332V15H14.1665Z\"\n fill=\"#BFC5CC\"\n />\n </svg>\n)\n","import React from 'react'\n\nimport { theme } from 'misc/theme'\nimport { useId } from 'react-id-generator'\nimport Skeleton from 'react-loading-skeleton'\nimport styled from 'styled-components'\n\ntype Props = {\n count: number\n className?: string\n}\n\nconst StyledLiSkeleton = styled.li`\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 8px 16px;\n\n > :first-child {\n flex: 1;\n }\n\n > :nth-child(2) {\n flex: 6;\n }\n\n & + li::before {\n content: '';\n position: absolute;\n left: 18px;\n right: 18px;\n top: 0;\n height: 1px;\n background-color: ${theme.colors.neutral100};\n }\n`\n\nconst LiSkeleton = ({ count, className }: Props) => {\n const idList = useId(count)\n return (\n <>\n {[...Array(count)].map((__v, i) => (\n <StyledLiSkeleton className={className} key={idList[i]}>\n <Skeleton count={1} height={32} />\n <Skeleton count={1} height={24} />\n </StyledLiSkeleton>\n ))}\n </>\n )\n}\n\nexport default LiSkeleton\n","import { PinIcon } from 'care/components/atoms/icons'\nimport { theme } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nimport LiSkeleton from './liSkeleton'\n\nconst checkMarkIconUrl = `url(\"data:image/svg+xml,%3Csvg width='19' height='14' viewBox='0 0 19 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16.9803 0.990669C16.7205 0.99841 16.4739 1.10699 16.2928 1.2934L5.99984 11.5864L2.70687 8.2934C2.61473 8.19743 2.50436 8.12081 2.38223 8.06802C2.2601 8.01524 2.12867 7.98735 1.99563 7.986C1.86259 7.98464 1.73061 8.00985 1.60743 8.06014C1.48426 8.11043 1.37235 8.18479 1.27827 8.27887C1.1842 8.37295 1.10983 8.48485 1.05954 8.60803C1.00926 8.73121 0.98405 8.86318 0.985403 8.99622C0.986757 9.12926 1.01464 9.26069 1.06743 9.38282C1.12021 9.50495 1.19684 9.61532 1.29281 9.70747L5.29281 13.7075C5.48035 13.8949 5.73467 14.0002 5.99984 14.0002C6.26501 14.0002 6.51933 13.8949 6.70687 13.7075L17.7069 2.70747C17.8514 2.567 17.9501 2.38616 17.99 2.18864C18.03 1.99112 18.0093 1.78614 17.9308 1.60055C17.8523 1.41497 17.7195 1.25744 17.5499 1.14861C17.3803 1.03978 17.1817 0.984729 16.9803 0.990669Z' fill='%232685F1'/%3E%3C/svg%3E%0A\")`\n\nexport const StyledLocationResultsWrapper = styled.div`\n display: flex;\n position: absolute;\n top: 48px;\n min-width: 100%;\n box-shadow: 0px 24px 32px rgba(0, 0, 0, 0.04),\n 0px 16px 24px rgba(0, 0, 0, 0.04), 0px 4px 8px rgba(0, 0, 0, 0.04),\n 0px 0px 1px rgba(0, 0, 0, 0.04);\n border-radius: 6px;\n background-color: white;\n z-index: 30;\n\n ${MediaQueries.mbDown} {\n position: relative;\n top: 0;\n box-shadow: initial;\n }\n`\n\nexport const StyledLocationResultsList = styled.ul`\n width: 100%;\n max-height: 600px;\n overflow-y: auto;\n`\n\nexport const StyledPinIcon = styled(PinIcon)`\n width: 12px;\n height: 18px;\n`\n\nexport const StyledLocationItem = styled.li<{ isSelected?: boolean }>`\n position: relative;\n cursor: pointer;\n padding: 12px 18px;\n display: flex;\n align-items: center;\n gap: 14px;\n overflow: hidden;\n\n ${({ isSelected }) =>\n isSelected &&\n `\n &::after {\n content: ${checkMarkIconUrl};\n top: 50%;\n right: 18px;\n position: absolute;\n transform: translateY(-50%);\n }\n `}\n\n & + li::before {\n content: '';\n position: absolute;\n left: 18px;\n right: 18px;\n top: 0;\n height: 1px;\n background-color: ${theme.colors.neutral100};\n }\n\n &:not([data-is-denied='true']):hover {\n background-color: ${theme.colors.neutral50};\n }\n\n &:last-child:hover {\n border-bottom-right-radius: 6px;\n border-bottom-left-radius: 6px;\n }\n\n &:first-child:hover {\n border-top-right-radius: 6px;\n border-top-left-radius: 6px;\n }\n\n &[data-is-denied='true'] {\n cursor: not-allowed;\n }\n`\n\nexport const StyledLiSkeleton = styled(LiSkeleton)`\n &:first-child {\n padding-top: 18px;\n }\n`\n","import React from 'react'\n\nimport { GetLocationIcon } from 'care/components/atoms/icons'\nimport { City } from 'care/interfaces/types'\nimport { Text } from 'components/atoms/text'\nimport { useTranslations } from 'hooks/useTranslations'\nimport { GeoLocationPermission } from 'interfaces/types'\nimport { theme } from 'misc/theme'\nimport Skeleton from 'react-loading-skeleton'\n\nimport {\n StyledLocationItem,\n StyledLocationResultsList,\n StyledLocationResultsWrapper,\n StyledPinIcon,\n StyledLiSkeleton,\n} from './index.styled'\n\ntype Props = {\n cities?: Array<City>\n isLoading: boolean\n onLocationClick: (c: City) => void\n onCurrentLocationClick: () => void\n isMobile?: boolean\n geoLocationPermission: GeoLocationPermission\n isLocationLoading?: boolean\n selectedLocation?: City | null\n}\n\nconst LocationResults = ({\n cities,\n isLoading,\n onLocationClick,\n onCurrentLocationClick,\n geoLocationPermission = 'unset',\n isLocationLoading,\n selectedLocation,\n}: Props) => {\n const { t } = useTranslations()\n\n const isGeoPermissionDenied = geoLocationPermission === 'denied'\n\n const renderCurrentLocationItem = () => (\n <StyledLocationItem\n role=\"button\"\n tabIndex={0}\n onClick={(evt) => {\n if (isGeoPermissionDenied) {\n return\n }\n evt.nativeEvent.stopImmediatePropagation()\n if (!isLocationLoading) {\n onCurrentLocationClick()\n }\n }}\n data-is-denied={isGeoPermissionDenied}\n >\n {isGeoPermissionDenied ? (\n <Text color=\"var(--gray600)\" size=\"md\">\n x\n </Text>\n ) : isLocationLoading ? (\n <Skeleton height={20} width={20} />\n ) : (\n <GetLocationIcon color={theme.colors.primaryBase} />\n )}\n\n <div>\n {isGeoPermissionDenied ? (\n <Text color=\"var(--gray600)\" size=\"sm\" style={{ lineHeight: 1.5 }}>\n {t('booking.searchBar.grantLocation')}\n </Text>\n ) : isLocationLoading ? (\n <Skeleton height={20} style={{ width: 'calc(100% - 16px)' }} />\n ) : (\n <Text size=\"md\">{t('booking.searchBar.useCurrentLocation')}</Text>\n )}\n </div>\n </StyledLocationItem>\n )\n\n const renderContent = () => {\n if (isLoading) {\n return <StyledLiSkeleton count={5} />\n }\n\n if (!cities || cities.length < 1) {\n return (\n <>\n {renderCurrentLocationItem()}\n <StyledLocationItem data-is-denied=\"true\">\n <Text size=\"sm\" color=\"#ccc\">\n {t('booking.searchBar.noResults')}\n </Text>\n </StyledLocationItem>\n </>\n )\n }\n\n return (\n <>\n {renderCurrentLocationItem()}\n {cities.map((city: City) => (\n <StyledLocationItem\n key={city.id}\n onClick={(evt) => {\n evt.nativeEvent.stopImmediatePropagation()\n if (onLocationClick) {\n onLocationClick(city)\n }\n }}\n role=\"button\"\n tabIndex={0}\n aria-label={`Select ${city.name} as location`}\n isSelected={selectedLocation?.id === city.id}\n >\n <StyledPinIcon color={theme.colors.neutral400} />\n <Text size=\"md\">{city.name}</Text>\n </StyledLocationItem>\n ))}\n </>\n )\n }\n\n return (\n <StyledLocationResultsWrapper data-testid=\"location-search-results\">\n <StyledLocationResultsList>{renderContent()}</StyledLocationResultsList>\n </StyledLocationResultsWrapper>\n )\n}\n\nexport default LocationResults\n","export const EVENT_NAMES = {\n TYPE_CHARACTER: 'TYPE_CHARACTER',\n REMOVE_CHARACTER: 'REMOVE_CHARACTER',\n REMOVE_ALL: 'REMOVE_ALL',\n REMOVE_LAST_VISIBLE_NODE: 'REMOVE_LAST_VISIBLE_NODE',\n PAUSE_FOR: 'PAUSE_FOR',\n CHANGE_DELETE_SPEED: 'CHANGE_DELETE_SPEED',\n CHANGE_DELAY: 'CHANGE_DELAY',\n PASTE_STRING: 'PASTE_STRING',\n}\n\nconst getRandomInteger = (min, max) => {\n return Math.floor(Math.random() * (max - min + 1)) + min\n}\n\nexport const VISIBLE_NODE_TYPES = {\n TEXT_NODE: 'TEXT_NODE',\n}\n\nclass Typewriter {\n state = {\n lastFrameTime: null,\n pauseUntil: null,\n eventQueue: [],\n eventLoop: null,\n eventLoopPaused: false,\n reverseCalledEvents: [],\n calledEvents: [],\n visibleNodes: [],\n initialOptions: null,\n }\n\n options = {\n strings: null,\n delay: 'natural',\n pauseFor: 1500,\n deleteSpeed: 'natural',\n loop: false,\n autoStart: false,\n stringSplitter: null,\n onCreateTextNode: null,\n onRemoveNode: null,\n }\n\n constructor(options) {\n if (options) {\n this.options = {\n ...this.options,\n ...options,\n }\n }\n\n this.state.initialOptions = { ...this.options }\n\n this.init()\n }\n\n init() {\n this.addEventToQueue(EVENT_NAMES.REMOVE_ALL, null, true)\n\n if (this.options.autoStart === true && this.options.strings) {\n this.typeOutAllStrings().start()\n }\n }\n\n start = () => {\n this.state.eventLoopPaused = false\n this.runEventLoop()\n\n return this\n }\n\n pause = () => {\n this.state.eventLoopPaused = true\n\n return this\n }\n\n stop = () => {\n if (this.state.eventLoop) {\n window.cancelAnimationFrame(this.state.eventLoop)\n this.state.eventLoop = null\n }\n\n return this\n }\n\n pauseFor = (ms) => {\n this.addEventToQueue(EVENT_NAMES.PAUSE_FOR, { ms })\n\n return this\n }\n\n typeOutAllStrings = () => {\n if (typeof this.options.strings === 'string') {\n this.typeString(this.options.strings).pauseFor(this.options.pauseFor)\n return this\n }\n\n this.options.strings.forEach((string) => {\n this.typeString(string)\n .pauseFor(this.options.pauseFor)\n .deleteAll(this.options.deleteSpeed)\n })\n\n return this\n }\n\n typeString = (string, node = null) => {\n if (string) {\n const { stringSplitter } = this.options || {}\n const characters =\n typeof stringSplitter === 'function'\n ? stringSplitter(string)\n : string.split('')\n this.typeCharacters(characters, node)\n }\n\n return this\n }\n\n pasteString = (string, node = null) => {\n if (string) {\n this.addEventToQueue(EVENT_NAMES.PASTE_STRING, {\n character: string,\n node,\n })\n }\n\n return this\n }\n\n deleteAll = (speed = 'natural') => {\n this.addEventToQueue(EVENT_NAMES.REMOVE_ALL, { speed })\n return this\n }\n\n changeDeleteSpeed = (speed) => {\n if (!speed) {\n throw new Error('Must provide new delete speed')\n }\n\n this.addEventToQueue(EVENT_NAMES.CHANGE_DELETE_SPEED, { speed })\n\n return this\n }\n\n changeDelay = (delay) => {\n if (!delay) {\n throw new Error('Must provide new delay')\n }\n\n this.addEventToQueue(EVENT_NAMES.CHANGE_DELAY, { delay })\n\n return this\n }\n\n deleteChars = (amount) => {\n if (!amount) {\n throw new Error('Must provide amount of characters to delete')\n }\n\n for (let i = 0; i < amount; i++) {\n this.addEventToQueue(EVENT_NAMES.REMOVE_CHARACTER)\n }\n\n return this\n }\n\n typeCharacters = (characters, node = null) => {\n if (!characters || !Array.isArray(characters)) {\n throw new Error('Characters must be an array')\n }\n\n characters.forEach((character) => {\n this.addEventToQueue(EVENT_NAMES.TYPE_CHARACTER, { character, node })\n })\n\n return this\n }\n\n removeCharacters = (characters) => {\n if (!characters || !Array.isArray(characters)) {\n throw new Error('Characters must be an array')\n }\n\n characters.forEach(() => {\n this.addEventToQueue(EVENT_NAMES.REMOVE_CHARACTER)\n })\n\n return this\n }\n\n addEventToQueue = (eventName, eventArgs?, prepend = false) => {\n return this.addEventToStateProperty(\n eventName,\n eventArgs,\n prepend,\n 'eventQueue',\n )\n }\n\n addReverseCalledEvent = (eventName, eventArgs, prepend = false) => {\n const { loop } = this.options\n\n if (!loop) {\n return this\n }\n\n return this.addEventToStateProperty(\n eventName,\n eventArgs,\n prepend,\n 'reverseCalledEvents',\n )\n }\n\n addEventToStateProperty = (\n eventName,\n eventArgs,\n prepend = false,\n property,\n ) => {\n const eventItem = {\n eventName,\n eventArgs: eventArgs || {},\n }\n\n if (prepend) {\n this.state[property] = [eventItem, ...this.state[property]]\n } else {\n this.state[property] = [...this.state[property], eventItem]\n }\n\n return this\n }\n\n runEventLoop = () => {\n if (!this.state.lastFrameTime) {\n this.state.lastFrameTime = Date.now()\n }\n\n // Setup variables to calculate if this frame should run\n const nowTime = Date.now()\n const delta = nowTime - this.state.lastFrameTime\n\n if (!this.state.eventQueue.length) {\n if (!this.options.loop) {\n return\n }\n\n // Reset event queue if we are looping\n this.state.eventQueue = [...this.state.calledEvents]\n this.state.calledEvents = []\n this.options = { ...this.state.initialOptions }\n }\n\n // Request next frame\n this.state.eventLoop = window.requestAnimationFrame(this.runEventLoop)\n\n // Check if event loop is paused\n if (this.state.eventLoopPaused) {\n return\n }\n\n // Check if state has pause until time\n if (this.state.pauseUntil) {\n // Check if event loop should be paused\n if (nowTime < this.state.pauseUntil) {\n return\n }\n\n // Reset pause time\n this.state.pauseUntil = null\n }\n\n // Make a clone of event queue\n const eventQueue = [...this.state.eventQueue]\n\n // Get first event from queue\n const currentEvent = eventQueue.shift()\n\n // Setup delay variable\n let delay = 0\n\n // Check if frame should run or be\n // skipped based on fps interval\n if (\n currentEvent.eventName === EVENT_NAMES.REMOVE_LAST_VISIBLE_NODE ||\n currentEvent.eventName === EVENT_NAMES.REMOVE_CHARACTER\n ) {\n delay =\n this.options.deleteSpeed === 'natural'\n ? getRandomInteger(40, 80)\n : this.options.deleteSpeed\n } else {\n delay =\n this.options.delay === 'natural'\n ? getRandomInteger(120, 160)\n : this.options.delay\n }\n\n if (delta <= delay) {\n return\n }\n\n // Get current event args\n const { eventName, eventArgs } = currentEvent\n\n // Run item from event loop\n switch (eventName) {\n case EVENT_NAMES.PASTE_STRING:\n case EVENT_NAMES.TYPE_CHARACTER: {\n const { character } = eventArgs\n const textNode = document.createTextNode(character)\n\n let textNodeToUse = textNode\n\n if (\n this.options.onCreateTextNode &&\n typeof this.options.onCreateTextNode === 'function'\n ) {\n textNodeToUse = this.options.onCreateTextNode(character, textNode)\n }\n\n this.state.visibleNodes = [\n ...this.state.visibleNodes,\n {\n type: VISIBLE_NODE_TYPES.TEXT_NODE,\n character,\n node: textNodeToUse,\n },\n ]\n\n break\n }\n\n case EVENT_NAMES.REMOVE_CHARACTER: {\n eventQueue.unshift({\n eventName: EVENT_NAMES.REMOVE_LAST_VISIBLE_NODE,\n eventArgs: { removingCharacterNode: true },\n })\n break\n }\n\n case EVENT_NAMES.PAUSE_FOR: {\n const { ms } = currentEvent.eventArgs\n this.state.pauseUntil = Date.now() + parseInt(ms)\n break\n }\n\n case EVENT_NAMES.REMOVE_ALL: {\n const { visibleNodes } = this.state\n const { speed } = eventArgs\n const removeAllEventItems = []\n\n if (speed) {\n removeAllEventItems.push({\n eventName: EVENT_NAMES.CHANGE_DELETE_SPEED,\n eventArgs: { speed, temp: true },\n })\n }\n\n for (let i = 0, length = visibleNodes.length; i < length; i++) {\n removeAllEventItems.push({\n eventName: EVENT_NAMES.REMOVE_LAST_VISIBLE_NODE,\n eventArgs: { removingCharacterNode: false },\n })\n }\n\n if (speed) {\n removeAllEventItems.push({\n eventName: EVENT_NAMES.CHANGE_DELETE_SPEED,\n eventArgs: { speed: this.options.deleteSpeed, temp: true },\n })\n }\n\n eventQueue.unshift(...removeAllEventItems)\n\n break\n }\n\n case EVENT_NAMES.REMOVE_LAST_VISIBLE_NODE: {\n if (this.state.visibleNodes.length) {\n const { node, character } = this.state.visibleNodes.pop()\n\n if (\n this.options.onRemoveNode &&\n typeof this.options.onRemoveNode === 'function'\n ) {\n this.options.onRemoveNode({\n node,\n character,\n })\n }\n\n if (node) {\n node.parentNode.removeChild(node)\n }\n }\n break\n }\n\n case EVENT_NAMES.CHANGE_DELETE_SPEED: {\n this.options.deleteSpeed = currentEvent.eventArgs.speed\n break\n }\n\n case EVENT_NAMES.CHANGE_DELAY: {\n this.options.delay = currentEvent.eventArgs.delay\n break\n }\n\n default: {\n break\n }\n }\n\n // Add que item to called queue if we are looping\n if (this.options.loop) {\n if (\n currentEvent.eventName !== EVENT_NAMES.REMOVE_LAST_VISIBLE_NODE &&\n !(currentEvent.eventArgs && currentEvent.eventArgs.temp)\n ) {\n this.state.calledEvents = [...this.state.calledEvents, currentEvent]\n }\n }\n\n // Replace state event queue with cloned queue\n this.state.eventQueue = eventQueue\n\n // Set last frame time so it can be used to calculate next frame\n this.state.lastFrameTime = nowTime\n }\n}\n\nexport default Typewriter\n","import React, { useEffect, useMemo } from 'react'\n\nimport { useTranslations } from 'hooks/useTranslations'\nimport { TranslationsKey } from 'i18n/translations'\nimport shuffle from 'lodash/shuffle'\n\nimport Typewriter from './utils/Typewriter'\n\ntype UseAnimatedPlaceholderParams = {\n inputRef?: React.MutableRefObject<HTMLInputElement>\n wrapperRef?: React.MutableRefObject<HTMLDivElement>\n disabled?: boolean\n}\n\nexport function useAnimatedPlaceholder({\n inputRef,\n wrapperRef,\n disabled,\n}: UseAnimatedPlaceholderParams): void {\n const { t, locale } = useTranslations()\n\n const values = useMemo(() => {\n if (disabled) {\n return []\n }\n\n const shuffleKeys: TranslationsKey[] = [\n 'booking.searchBar.placeholder.hospital',\n 'booking.searchBar.placeholder.doctor',\n ]\n if (locale !== 'zh-TW') {\n shuffleKeys.push(\n 'booking.searchBar.placeholder.specialty',\n 'booking.searchBar.placeholder.service',\n )\n }\n\n return shuffle(shuffleKeys).map((s) => t(s))\n }, [t, locale])\n\n useEffect(() => {\n if (disabled) {\n return\n }\n const input = getInput()\n if (input) {\n input.placeholder = ''\n new Typewriter({\n strings: values,\n autoStart: true,\n loop: true,\n delay: 32,\n deleteSpeed: 32,\n pauseFor: 1500,\n onCreateTextNode: customNodeCreator,\n onRemoveNode: onRemoveNode,\n })\n }\n }, [inputRef, wrapperRef])\n\n function customNodeCreator(character: string) {\n const input = getInput()\n if (input) {\n input.placeholder = input.placeholder + character\n }\n return null\n }\n\n function onRemoveNode() {\n const input = getInput()\n if (input) {\n input.placeholder = input.placeholder.slice(0, -1)\n }\n }\n\n function getInput(): HTMLInputElement | null {\n if (inputRef && inputRef.current) {\n return inputRef.current\n } else if (wrapperRef && wrapperRef.current) {\n return wrapperRef.current.querySelector('input') || null\n }\n return null\n }\n\n return\n}\n","import React, { useMemo, useRef } from 'react'\n\nimport { MagnifierIcon } from 'care/components/atoms/icons'\nimport { useTranslations } from 'hooks/useTranslations'\nimport { theme } from 'misc/theme'\nimport styled from 'styled-components'\n\nimport { StyledInput } from '../index.styled'\nimport { FocusedType, GATrackingCode } from '../types'\nimport { useAnimatedPlaceholder } from '../useAnimatedPlaceholder'\n\nexport const StyledFakeInputSearchMobile = styled.div`\n user-select: none;\n input {\n pointer-events: none;\n background-color: white;\n }\n`\n\ntype Props = {\n focused: FocusedType\n onClick?: () => void\n value?: string\n trackingAttributes?: GATrackingCode\n inputSearchPlaceholder?: string\n}\n\nexport function MobileFakeInput({\n focused,\n value = '',\n onClick,\n trackingAttributes,\n inputSearchPlaceholder,\n}: Props) {\n const { t } = useTranslations()\n const wrapperRef = useRef<HTMLDivElement>(null)\n\n useAnimatedPlaceholder({ wrapperRef, disabled: !!inputSearchPlaceholder })\n\n const gaAttributes = useMemo(() => {\n if (trackingAttributes) {\n return {\n 'data-event-category': trackingAttributes.dataEventCategory,\n 'data-event-action': trackingAttributes.dataEventAction,\n 'data-event-label': trackingAttributes.dataEventLabel,\n }\n } else {\n return {}\n }\n }, [trackingAttributes])\n\n return (\n <StyledFakeInputSearchMobile\n onClick={() => onClick && onClick()}\n ref={wrapperRef}\n {...gaAttributes}\n >\n <StyledInput\n inputClassName={focused === 'location' ? 'focused' : undefined}\n name=\"booking-search-placeholder\"\n displayIcon={<MagnifierIcon color={theme.colors.gray400} />}\n placeholder={t('booking.searchBar.searchInput.placeholder')}\n value={value}\n size=\"md\"\n />\n </StyledFakeInputSearchMobile>\n )\n}\n","import { Text } from 'components/atoms/text'\nimport { theme } from 'misc/theme'\nimport styled from 'styled-components'\n\nexport const StyledTopBar = styled.header`\n display: flex;\n height: 64px;\n align-items: center;\n justify-content: space-between;\n margin: 0 auto;\n position: sticky;\n z-index: 99;\n background-color: white;\n top: 0;\n left: 0;\n`\n\nexport const StyledTopBarHeaderRight = styled.div`\n display: inline-flex;\n flex: 1;\n justify-content: flex-end;\n cursor: pointer;\n text-decoration: underline;\n`\n\nexport const StyledTopBarIcon = styled.div`\n display: flex;\n align-items: center;\n margin-left: 16px;\n cursor: pointer;\n`\n\nexport const StyledTopbarHeading = styled.div`\n width: 100%;\n margin-left: 24px;\n`\n\nexport const StyledTopbarHeadingText = styled(Text)`\n color: ${theme.colors.secondaryDark};\n text-align: start;\n`\n","import { ID_OPTION_CURRENT_LOCATION } from 'care/interfaces/constants'\nimport {\n CareLocaleType,\n City,\n SearchBarSectionApi,\n SearchCityByGeoIpApi,\n} from 'care/interfaces/types'\nimport { GeoLocationPermission, GPSType } from 'interfaces/types'\n\nimport { SEARCH_KEYWORD_MIN_LENGTH } from './constants'\nimport { FocusedType } from './types'\n\nexport type ReducerState = {\n isMobile: boolean\n isDebug: boolean\n navigateTo: null | string\n geoLocationPermission: GeoLocationPermission\n geoLocationCoordinates: null | GPSType\n searchLocationKeywords: string\n searchKeywords: string\n focused: FocusedType\n selectedLocation: City | null\n defaultCity: City | null\n initialCities: City[]\n cities: City[]\n searchResults: SearchBarSectionApi[]\n initialSearchResults: SearchBarSectionApi[]\n isLoadingCities: boolean\n isLoadingSearchResults: boolean\n isMobileModalOpened: boolean\n initialSelectedCity: City | null\n autoCompleteDisabled: boolean\n inputSearchPlaceholder: string\n locale: CareLocaleType\n}\n\nexport const initialState: ReducerState = {\n isMobile: false,\n isDebug: false,\n navigateTo: null,\n geoLocationPermission: 'unset',\n geoLocationCoordinates: null,\n focused: 'none',\n searchLocationKeywords: '',\n searchKeywords: '',\n selectedLocation: null,\n defaultCity: null,\n initialCities: [],\n cities: [],\n searchResults: [],\n initialSearchResults: [],\n isLoadingCities: false,\n isLoadingSearchResults: false,\n isMobileModalOpened: false,\n initialSelectedCity: null,\n autoCompleteDisabled: false,\n inputSearchPlaceholder: '',\n locale: 'vi-VN',\n}\n\nexport enum ActionTypes {\n NavigateTo = 'navigate to url',\n ClickOutsideInputLocation = 'click outside input location',\n ClickOutsideInputSearch = 'click outside input search',\n SelectCurrentLocation = 'select current location',\n FocusInputLocation = 'focus input location',\n FocusInputSearch = 'focus input search',\n ChangeInputLocation = 'change input location',\n ChangeInputSearch = 'change input search',\n ClearInputLocation = 'clear input location',\n ClearInputSearch = 'clear input search',\n SelectLocation = 'select location',\n FetchCitiesStart = 'fetch cities start',\n FetchCitiesFinish = 'fetch cities finish',\n FetchSearchResultsStart = 'fetch search results start',\n FetchSearchResultsComplete = 'fetch search results complete',\n FetchSearchResultsFinish = 'fetch search results finish',\n FetchCitiesByGeoIpComplete = 'fetch cities by geo IP finish',\n FetchCitiesByKeywordComplete = 'fetch cities by keyword finish',\n DisplayInitialCities = 'display initial cities',\n DisplayInitialSearchResults = 'display initial search results',\n GrantGeoLocationPermission = 'grant geolocation permission',\n DenyGeoLocationPermission = 'deny geolocation permission',\n OpenMobileModal = 'open mobile modal',\n CloseMobileModal = 'close mobile modal',\n UpdateInitialSearchValue = 'update initial search value',\n SelectSearchResult = 'select search result',\n SetInputSearchPlaceholder = 'set input search placeholder',\n}\n\nexport type Action =\n | { type: ActionTypes.NavigateTo; payload: string }\n | { type: ActionTypes.ClickOutsideInputLocation }\n | { type: ActionTypes.ClickOutsideInputSearch }\n | { type: ActionTypes.FocusInputLocation }\n | { type: ActionTypes.FocusInputSearch }\n | { type: ActionTypes.ChangeInputLocation; payload: string }\n | { type: ActionTypes.ChangeInputSearch; payload: string }\n | { type: ActionTypes.ClearInputLocation }\n | { type: ActionTypes.ClearInputSearch }\n | { type: ActionTypes.SelectCurrentLocation; payload: City }\n | { type: ActionTypes.SelectLocation; payload: City }\n | { type: ActionTypes.FetchCitiesStart }\n | { type: ActionTypes.FetchCitiesFinish }\n | { type: ActionTypes.FetchSearchResultsStart }\n | {\n type: ActionTypes.FetchSearchResultsComplete\n payload: SearchBarSectionApi[]\n }\n | { type: ActionTypes.FetchSearchResultsFinish }\n | {\n type: ActionTypes.FetchCitiesByGeoIpComplete\n payload: SearchCityByGeoIpApi\n }\n | { type: ActionTypes.FetchCitiesByKeywordComplete; payload: City[] }\n | { type: ActionTypes.DisplayInitialCities }\n | { type: ActionTypes.DisplayInitialSearchResults }\n | { type: ActionTypes.GrantGeoLocationPermission; payload: GPSType }\n | { type: ActionTypes.DenyGeoLocationPermission }\n | { type: ActionTypes.OpenMobileModal }\n | { type: ActionTypes.CloseMobileModal }\n | { type: ActionTypes.UpdateInitialSearchValue; payload: string }\n | {\n type: ActionTypes.SelectSearchResult\n payload: { name: string; url: string }\n }\n | { type: ActionTypes.SetInputSearchPlaceholder; payload: string }\n\nfunction resetSearchLocationKeywords(state: ReducerState): ReducerState {\n const { selectedLocation, searchLocationKeywords } = state\n if (selectedLocation && searchLocationKeywords !== selectedLocation.name) {\n return { ...state, searchLocationKeywords: selectedLocation.name }\n }\n return state\n}\n\nexport function reducer(state: ReducerState, action: Action): ReducerState {\n if (state.isDebug) {\n console.log('bookingSearchBar', { action, state })\n }\n switch (action.type) {\n case ActionTypes.NavigateTo:\n return {\n ...state,\n navigateTo: action.payload,\n focused: 'none',\n isMobileModalOpened: false,\n }\n case ActionTypes.ClickOutsideInputLocation: {\n if (state.isMobile || state.focused !== 'location') {\n return state\n }\n return resetSearchLocationKeywords({ ...state, focused: 'none' })\n }\n case ActionTypes.ClickOutsideInputSearch: {\n if (state.isMobile || state.focused !== 'search') {\n return state\n }\n return { ...state, focused: 'none' }\n }\n case ActionTypes.FocusInputLocation: {\n const nextState: ReducerState = { ...state, focused: 'location' }\n if (state.selectedLocation?.id === ID_OPTION_CURRENT_LOCATION) {\n nextState.searchLocationKeywords = ''\n }\n return nextState\n }\n case ActionTypes.FocusInputSearch:\n const nextState: ReducerState = { ...state, focused: 'search' }\n if (state.isMobile) {\n return resetSearchLocationKeywords(nextState)\n }\n return nextState\n case ActionTypes.ChangeInputLocation:\n return { ...state, searchLocationKeywords: action.payload }\n case ActionTypes.ChangeInputSearch: {\n const keyword = action.payload\n return {\n ...state,\n searchKeywords: keyword,\n isLoadingSearchResults:\n keyword.trim().length > SEARCH_KEYWORD_MIN_LENGTH[state.locale],\n }\n }\n case ActionTypes.SelectCurrentLocation:\n return {\n ...state,\n focused: 'none',\n selectedLocation: action.payload,\n searchLocationKeywords: action.payload.name,\n }\n case ActionTypes.ClearInputLocation:\n return {\n ...state,\n focused: 'location',\n cities: state.initialCities,\n searchLocationKeywords: '',\n }\n case ActionTypes.ClearInputSearch:\n return { ...state, focused: 'search', searchKeywords: '' }\n case ActionTypes.SelectLocation:\n return {\n ...state,\n focused: 'none',\n selectedLocation: action.payload,\n searchLocationKeywords: action.payload.name,\n }\n case ActionTypes.SelectSearchResult:\n return {\n ...state,\n searchKeywords: action.payload.name,\n isMobileModalOpened: false,\n focused: 'none',\n navigateTo: action.payload.url,\n }\n case ActionTypes.FetchCitiesStart:\n return { ...state, isLoadingCities: true }\n case ActionTypes.FetchCitiesFinish:\n return { ...state, isLoadingCities: false }\n case ActionTypes.FetchSearchResultsStart:\n return { ...state, isLoadingSearchResults: true }\n case ActionTypes.FetchSearchResultsFinish:\n return { ...state, isLoadingSearchResults: false }\n case ActionTypes.FetchSearchResultsComplete: {\n const nextState: ReducerState = {\n ...state,\n searchResults: action.payload,\n }\n if (state.initialSearchResults.length === 0) {\n nextState.initialSearchResults = action.payload\n }\n return nextState\n }\n case ActionTypes.FetchCitiesByGeoIpComplete: {\n let { cities } = action.payload\n const { default: defaultCity } = action.payload\n cities = cities.filter((c) => c.id !== defaultCity.id)\n cities.unshift(defaultCity)\n if (\n state.initialSelectedCity &&\n !cities.find((c) => c.id === state.initialSelectedCity.id)\n ) {\n cities.unshift(state.initialSelectedCity)\n }\n const nextState: ReducerState = {\n ...state,\n defaultCity,\n initialCities: cities,\n cities,\n }\n if (\n state.geoLocationPermission === 'denied' &&\n !state.initialSelectedCity\n ) {\n nextState.selectedLocation = defaultCity\n nextState.searchLocationKeywords = defaultCity.name\n }\n return nextState\n }\n case ActionTypes.FetchCitiesByKeywordComplete:\n return { ...state, cities: action.payload }\n case ActionTypes.DisplayInitialCities:\n return { ...state, cities: state.initialCities }\n case ActionTypes.DisplayInitialSearchResults:\n return {\n ...state,\n searchResults: state.initialSearchResults,\n isLoadingSearchResults: false,\n }\n case ActionTypes.GrantGeoLocationPermission:\n return {\n ...state,\n geoLocationPermission: 'granted',\n geoLocationCoordinates: action.payload,\n }\n case ActionTypes.DenyGeoLocationPermission:\n return {\n ...state,\n geoLocationPermission: 'denied',\n geoLocationCoordinates: null,\n }\n case ActionTypes.OpenMobileModal:\n return { ...state, isMobileModalOpened: true }\n case ActionTypes.CloseMobileModal:\n return { ...state, isMobileModalOpened: false }\n case ActionTypes.UpdateInitialSearchValue:\n return { ...state, searchKeywords: action.payload }\n case ActionTypes.SetInputSearchPlaceholder:\n return { ...state, inputSearchPlaceholder: action.payload }\n default:\n return state\n }\n}\n","import React from 'react'\n\nimport { CloseIcon } from 'care/components/atoms/icons'\nimport { theme } from 'misc/theme'\n\nimport {\n StyledTopBar,\n StyledTopBarHeaderRight,\n StyledTopbarHeading,\n StyledTopbarHeadingText,\n StyledTopBarIcon,\n} from './index.styled'\n\nexport type Props = {\n className?: string\n headingText: string\n textRight?: string\n iconLeft?: JSX.Element\n onRightClick?: () => void\n onLeftClick?: () => void\n}\n\nconst MobileTopBar = ({\n className,\n onLeftClick,\n headingText,\n onRightClick,\n iconLeft,\n textRight,\n}: Props) => {\n return (\n <StyledTopBar className={className}>\n <StyledTopBarIcon onClick={onLeftClick}>\n {iconLeft || <CloseIcon color={theme.colors.gray800} />}\n </StyledTopBarIcon>\n <StyledTopbarHeading>\n <StyledTopbarHeadingText size=\"md\" type=\"bold\">\n {headingText}\n </StyledTopbarHeadingText>\n </StyledTopbarHeading>\n <StyledTopBarHeaderRight onClick={onRightClick}>\n {textRight && <p>{textRight}</p>}\n </StyledTopBarHeaderRight>\n </StyledTopBar>\n )\n}\n\nexport { MobileTopBar }\n","import { CareLocaleType } from 'src/care/interfaces/types'\n\nexport const SEARCH_KEYWORD_MIN_LENGTH: { [k in CareLocaleType]: number } = {\n 'en-PH': 3,\n 'tl-PH': 2,\n 'id-ID': 3,\n 'vi-VN': 2,\n 'zh-TW': 0,\n}\n","import React from 'react'\n\nimport { Text } from 'components/atoms'\nimport { useTranslations } from 'hooks/useTranslations'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\ntype Props = {\n onClick: () => void\n}\n\nconst SearchIcon = () => (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M2.97887 8.15493C2.97887 5.29627 5.29627 2.97887 8.15493 2.97887C11.0136 2.97887 13.331 5.29627 13.331 8.15493C13.331 11.0136 11.0136 13.331 8.15493 13.331C5.29627 13.331 2.97887 11.0136 2.97887 8.15493ZM8.15493 1.5C4.47951 1.5 1.5 4.47951 1.5 8.15493C1.5 11.8303 4.47951 14.8099 8.15493 14.8099C9.72624 14.8099 11.1704 14.2653 12.3089 13.3546L15.2377 16.2834C15.5265 16.5722 15.9947 16.5722 16.2834 16.2834C16.5722 15.9947 16.5722 15.5265 16.2834 15.2377L13.3546 12.3089C14.2653 11.1704 14.8099 9.72624 14.8099 8.15493C14.8099 4.47951 11.8303 1.5 8.15493 1.5Z\"\n fill=\"white\"\n />\n </svg>\n)\n\nconst StyledSearchIcon = styled.button`\n min-height: 100%;\n border-radius: 6px;\n background-color: ${({ theme }) => theme.colors.primaryBase};\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 11px;\n cursor: pointer;\n flex: 0.3;\n\n ${MediaQueries.mbDown} {\n --margin: 16px;\n min-height: 32px;\n margin: var(--margin);\n width: calc(100% - var(--margin) * 2);\n position: absolute;\n bottom: 0;\n }\n\n &:hover {\n background-color: ${({ theme }) => theme.colors.primaryHover};\n }\n\n &:active {\n background-color: ${({ theme }) => theme.colors.primaryActive};\n }\n\n &:focus-visible {\n outline: 1px solid black;\n }\n`\n\nconst StyledText = styled(Text)`\n font-weight: ${({ theme }) => theme.sizes.fwSemiBold};\n`\n\nconst SearchButton = ({ onClick }: Props) => {\n const { t } = useTranslations()\n const title = t('booking.searchBar.searchButton')\n return (\n <StyledSearchIcon onClick={onClick} title={title}>\n <SearchIcon />\n <StyledText size=\"s3\" color=\"white\">\n {title}\n </StyledText>\n </StyledSearchIcon>\n )\n}\n\nexport { SearchButton }\n","import { ClearIcon } from 'care/components/atoms/icons'\nimport { theme } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nexport const StyledSearchBarInputsWrapper = styled.div`\n display: flex;\n gap: 16px;\n ${MediaQueries.mbDown} {\n flex-direction: column;\n padding: 14px;\n background-color: ${theme.colors.blue50};\n\n input {\n filter: drop-shadow(0px 4px 8px rgba(0, 0, 0, 0.04))\n drop-shadow(0px 0px 2px rgba(0, 0, 0, 0.06))\n drop-shadow(0px 0px 1px rgba(0, 0, 0, 0.04));\n }\n }\n\n input {\n background-color: white;\n }\n`\n\nexport const StyledInputWrapper = styled.div`\n position: relative;\n`\n\nexport const StyledInputLocationWrapper = styled(StyledInputWrapper)`\n flex: 1;\n`\n\nexport const StyledInputSearchWrapper = styled(StyledInputWrapper)`\n flex: 2;\n`\nexport const StyledClearIcon = styled(ClearIcon)`\n display: none;\n &.shown {\n display: block;\n }\n`\n","import React, {\n Dispatch,\n useRef,\n useMemo,\n useCallback,\n KeyboardEvent,\n} from 'react'\n\nimport { PinIcon } from 'care/components/atoms/icons'\nimport { ID_OPTION_CURRENT_LOCATION } from 'care/interfaces/constants'\nimport { useOutsideClick } from 'hooks/useOutsideClick'\nimport { useTranslations } from 'hooks/useTranslations'\nimport { DebouncedFunc } from 'lodash'\nimport { theme } from 'misc/theme'\n\nimport { SEARCH_KEYWORD_MIN_LENGTH } from '../constants'\nimport { StyledInput } from '../index.styled'\nimport { ReducerState, Action, ActionTypes } from '../reducer'\nimport { SearchButton } from '../searchSubmitIcon'\nimport { GATrackingCode, SearchClick } from '../types'\nimport { useAnimatedPlaceholder } from '../useAnimatedPlaceholder'\nimport {\n StyledSearchBarInputsWrapper,\n StyledInputLocationWrapper,\n StyledInputSearchWrapper,\n StyledClearIcon,\n} from './index.styled'\n\nexport type Props = {\n isMobile: boolean\n state: ReducerState\n dispatch: Dispatch<Action>\n debouncedFetchCitiesByKeyword: DebouncedFunc<\n (keyword: string) => Promise<void>\n >\n debouncedFetchSearchResults: DebouncedFunc<\n (keyword: string, state: ReducerState) => Promise<void>\n >\n focusLocationInput: () => void\n focusSearchInput: () => void\n renderLocationResults: () => React.ReactNode\n renderSearchResults: () => React.ReactNode\n trackingAttributes?: GATrackingCode\n onSearch?: (info: SearchClick) => void\n initalSearchValue?: string\n}\n\nexport function SearchInputs({\n isMobile,\n state,\n dispatch,\n debouncedFetchCitiesByKeyword,\n debouncedFetchSearchResults,\n focusLocationInput,\n focusSearchInput,\n renderLocationResults,\n renderSearchResults,\n trackingAttributes,\n onSearch,\n initalSearchValue,\n}: Props) {\n const inputLocationWrapperRef = useRef<HTMLDivElement>(null)\n const inputSearchWrapperRef = useRef<HTMLDivElement>(null)\n\n const {\n focused,\n searchLocationKeywords,\n geoLocationPermission,\n selectedLocation,\n searchKeywords,\n inputSearchPlaceholder,\n } = state\n const { t } = useTranslations()\n\n useAnimatedPlaceholder({\n wrapperRef: inputSearchWrapperRef,\n disabled: !!inputSearchPlaceholder,\n })\n\n useOutsideClick(inputLocationWrapperRef, () => {\n dispatch({ type: ActionTypes.ClickOutsideInputLocation })\n })\n\n useOutsideClick(inputSearchWrapperRef, () => {\n dispatch({ type: ActionTypes.ClickOutsideInputSearch })\n })\n\n function handleLocationInputClear() {\n dispatch({ type: ActionTypes.ClearInputLocation })\n debouncedFetchCitiesByKeyword.cancel()\n focusLocationInput()\n }\n\n function handleSearchInputClear() {\n dispatch({ type: ActionTypes.ClearInputSearch })\n debouncedFetchSearchResults.cancel()\n debouncedFetchSearchResults('', state)\n focusSearchInput()\n }\n\n const searchInputPinIconColor = useMemo(() => {\n if (\n geoLocationPermission === 'granted' &&\n selectedLocation?.id === ID_OPTION_CURRENT_LOCATION\n ) {\n return theme.colors.primaryBase\n } else {\n return theme.colors.gray400\n }\n }, [geoLocationPermission, selectedLocation])\n\n const handleSearchInputChange = useCallback(\n function handleSearchInputChange(value: string) {\n dispatch({ type: ActionTypes.ChangeInputSearch, payload: value })\n if (typeof onSearch === 'function') {\n return\n }\n if (\n value.trim().length > SEARCH_KEYWORD_MIN_LENGTH[state.locale] ||\n initalSearchValue\n ) {\n debouncedFetchSearchResults(value.trim(), state)\n } else {\n debouncedFetchSearchResults.cancel()\n dispatch({ type: ActionTypes.DisplayInitialSearchResults })\n }\n },\n [dispatch, state],\n )\n\n const handleSearchLocationInputChange = useCallback(\n function handleSearchLocationInputChange(value: string) {\n dispatch({ type: ActionTypes.ChangeInputLocation, payload: value })\n if (value.trim().length > SEARCH_KEYWORD_MIN_LENGTH[state.locale]) {\n debouncedFetchCitiesByKeyword(value.trim())\n } else {\n debouncedFetchCitiesByKeyword.cancel()\n dispatch({ type: ActionTypes.DisplayInitialCities })\n }\n },\n [debouncedFetchCitiesByKeyword, dispatch],\n )\n\n const handleKeyPress = (e: KeyboardEvent<Element>) => {\n if (state.autoCompleteDisabled && e.key === 'Enter' && onSearch) {\n onSearch({\n cityId: state.selectedLocation.id,\n keyword: searchKeywords,\n })\n }\n }\n\n return (\n <StyledSearchBarInputsWrapper>\n <StyledInputLocationWrapper ref={inputLocationWrapperRef}>\n <StyledInput\n inputClassName={focused === 'location' ? 'focused' : undefined}\n placeholder={t('booking.searchBar.locationPlaceholder')}\n autoComplete=\"off\"\n name=\"search-location\"\n displayIcon={\n <PinIcon\n className=\"location-pin-icon\"\n color={searchInputPinIconColor}\n />\n }\n actionIcon={\n <StyledClearIcon\n color={theme.colors.gray300}\n className={searchLocationKeywords !== '' ? 'shown' : ''}\n />\n }\n onActionClick={handleLocationInputClear}\n value={searchLocationKeywords}\n onChange={handleSearchLocationInputChange}\n onFocus={() => dispatch({ type: ActionTypes.FocusInputLocation })}\n size=\"md\"\n />\n {!isMobile && renderLocationResults()}\n </StyledInputLocationWrapper>\n <StyledInputSearchWrapper ref={inputSearchWrapperRef}>\n <StyledInput\n placeholder={\n inputSearchPlaceholder ||\n t('booking.searchBar.searchInput.placeholder')\n }\n autoComplete=\"off\"\n name=\"search-results\"\n actionIcon={\n <StyledClearIcon\n color={theme.colors.gray300}\n className={searchKeywords !== '' ? 'shown' : ''}\n />\n }\n onActionClick={handleSearchInputClear}\n value={searchKeywords}\n onChange={handleSearchInputChange}\n onFocus={() => dispatch({ type: ActionTypes.FocusInputSearch })}\n inputClassName={focused === 'search' ? 'focused' : undefined}\n size=\"md\"\n trackingAttributes={trackingAttributes}\n onKeyPress={handleKeyPress}\n enterKeyHint={state.autoCompleteDisabled ? 'search' : undefined}\n />\n {!isMobile && renderSearchResults()}\n </StyledInputSearchWrapper>\n {state.autoCompleteDisabled && !state.isMobile && (\n <SearchButton\n onClick={() => {\n onSearch({\n cityId: state.selectedLocation.id,\n keyword: searchKeywords,\n })\n }}\n />\n )}\n </StyledSearchBarInputsWrapper>\n )\n}\n","import { SearchBarSectionApi } from 'care/interfaces/types'\nimport { Text } from 'components/atoms/text'\nimport { theme } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nexport const StyledResult = styled.li`\n display: flex;\n align-items: center;\n gap: var(--rowGap);\n cursor: pointer;\n`\n\nexport const StyledRoundedIconWrapper = styled.div<{\n type: SearchBarSectionApi['type']\n}>`\n --wrapper-size: var(--graphicSize);\n border-radius: calc(var(--wrapper-size) / 2);\n background-color: var(--neutral50);\n width: var(--wrapper-size);\n height: var(--wrapper-size);\n aspect-ratio: 1/1;\n overflow: hidden;\n\n ${({ type }) =>\n type &&\n type === 'doctors' &&\n `\n border-radius: calc(var(--graphicSize) / 2);\n `}\n\n img {\n width: var(--graphicSize);\n height: var(--graphicSize);\n ${({ type }) =>\n type && type === 'doctors'\n ? `\n\n object-fit: cover; \n `\n : `\n object-fit: contain;\n `}\n }\n\n &:focus-visible {\n outline: 1px solid ${theme.colors.gray600};\n }\n`\n\nexport const StyledText = styled(Text)`\n line-height: 22px;\n letter-spacing: -0.2px;\n\n ${MediaQueries.tdUp} {\n &[data-size='p3'] {\n font-size: 14px;\n }\n }\n`\n\nexport const StyledPictureWrapper = styled.figure`\n max-width: var(--graphicSize);\n min-width: var(--graphicSize);\n`\n\nexport const StyledLocationPin = styled.svg`\n margin: 0 auto;\n display: block;\n`\n\nexport const StyledImageSkeletonWrapper = styled.div`\n display: grid;\n place-items: center;\n`\n","import React, { useMemo } from 'react'\n\nimport {\n DefaultThumbnailAny,\n DefaultThumbnailDoctor,\n DefaultThumbnailService,\n} from 'care/components/atoms/icons'\nimport {\n SearchBarSectionApi,\n SearchBarSectionItemApi,\n} from 'care/interfaces/types'\nimport { theme } from 'misc/theme'\n\nimport {\n StyledResult,\n StyledRoundedIconWrapper,\n StyledText,\n StyledPictureWrapper,\n StyledLocationPin,\n} from './index.styled'\n\nconst defaultThumbnailByType: { [k in SearchBarSectionApi['type']]?: any } = {\n doctors: DefaultThumbnailDoctor,\n services: DefaultThumbnailService,\n}\n\nexport type Props = {\n type: SearchBarSectionApi['type']\n item: SearchBarSectionItemApi\n imageUrl?: string\n onClickItem?: (item: SearchBarSectionItemApi) => void\n}\n\nconst ResultSectionItem = ({ type, item, imageUrl, onClickItem }: Props) => {\n const onKeyDown = (e: React.KeyboardEvent<HTMLLIElement>) => {\n if (e.key === 'Enter' || e.key === 'Space') {\n if (onClickItem) {\n onClickItem(item)\n }\n }\n }\n\n const defaultThumbnail = useMemo(() => {\n const Cmp: any = defaultThumbnailByType[type] || DefaultThumbnailAny\n return <Cmp width={32} height={type === 'services' ? 32 : 24} />\n }, [type])\n\n return (\n <StyledResult\n onClick={() => onClickItem && onClickItem(item)}\n onKeyDown={onKeyDown}\n tabIndex={0}\n role=\"button\"\n >\n <StyledPictureWrapper>\n {type === 'hospitals' ? (\n <StyledLocationPin width=\"12\" height=\"16\" viewBox=\"0 0 12 16\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0.75 5.94873C0.75 3.04623 3.0975 0.69873 6 0.69873C8.9025 0.69873 11.25 3.04623 11.25 5.94873C11.25 9.07623 7.935 13.3887 6.5775 15.0312C6.2775 15.3912 5.73 15.3912 5.43 15.0312C4.065 13.3887 0.75 9.07623 0.75 5.94873ZM4.125 5.94873C4.125 6.98373 4.965 7.82373 6 7.82373C7.035 7.82373 7.875 6.98373 7.875 5.94873C7.875 4.91373 7.035 4.07373 6 4.07373C4.965 4.07373 4.125 4.91373 4.125 5.94873Z\"\n fill=\"#9AA2AC\"\n />\n </StyledLocationPin>\n ) : (\n <StyledRoundedIconWrapper type={type}>\n {imageUrl ? (\n <img\n src={imageUrl}\n width={32}\n height={type === 'services' ? 32 : 24}\n />\n ) : (\n defaultThumbnail\n )}\n </StyledRoundedIconWrapper>\n )}\n </StyledPictureWrapper>\n <StyledText color={theme.colors.gray800} size=\"p3\">\n {item.name}\n </StyledText>\n </StyledResult>\n )\n}\n\nexport { ResultSectionItem }\n","import React from 'react'\n\nexport const DoctorIcon = () => (\n <svg width=\"14\" height=\"18\" viewBox=\"0 0 14 18\">\n <path\n d=\"M7.00004 0.666992C5.29757 0.666992 3.64067 0.813476 2.52087 1.03158C1.73311 1.18457 1.16671 1.86816 1.16671 2.6722V4.83366C1.16671 5.29264 1.54106 5.66699 2.00004 5.66699H12C12.459 5.66699 12.8334 5.29264 12.8334 4.83366V2.69824C12.8334 1.89421 12.267 1.21061 11.4792 1.05762C10.3562 0.839518 8.69275 0.666992 7.00004 0.666992ZM6.16671 1.50033H7.83337V2.33366H8.66671V4.00033H7.83337V4.83366H6.16671V4.00033H5.33337V2.33366H6.16671V1.50033ZM1.42712 6.50033C1.3197 6.89421 1.24158 7.32389 1.19275 7.77637C1.14718 8.18001 1.05603 9.25423 1.06254 9.36491C0.603556 9.72624 0.333374 10.2861 0.333374 10.9014C0.333374 11.8356 0.977906 12.6364 1.84379 12.8285C2.74548 15.0192 4.55212 17.3337 7.00004 17.3337C9.44796 17.3337 11.2546 14.9964 12.1563 12.8024C13.0222 12.6136 13.6667 11.8356 13.6667 10.9014C13.6667 10.2861 13.3965 9.72624 12.9375 9.36491C12.9441 9.25423 12.8562 8.16048 12.8073 7.75033C12.7552 7.30436 12.6804 6.89095 12.573 6.50033H5.35942C6.52804 8.20606 9.27543 7.18717 11.0365 7.62012C11.5736 8.79199 11.1667 10.4326 11.1667 10.4326L11.8177 10.641C11.9121 10.6702 12 10.7549 12 10.9014C12 11.0576 11.8861 11.1943 11.6875 11.1878L11.0105 11.0837L10.7761 11.7347C9.96554 14.0492 8.4128 15.667 7.00004 15.667C5.58728 15.667 4.03455 14.0492 3.224 11.7347L2.96358 11.0837L2.26046 11.1878C2.11723 11.1878 2.00004 11.0576 2.00004 10.9014C2.00004 10.7549 2.08793 10.6702 2.18233 10.641L2.83337 10.4326C2.73246 10.5531 2.4102 8.7041 2.83337 8.03678C3.59184 7.5127 4.2266 7.87728 5.12504 6.50033H1.42712ZM5.17712 9.05241C4.57166 9.05241 4.08337 9.55371 4.08337 10.1722C4.08337 10.7907 4.57166 11.292 5.17712 11.292C5.78259 11.292 6.27087 10.7907 6.27087 10.1722C6.27087 9.55371 5.78259 9.05241 5.17712 9.05241ZM8.82296 9.05241C8.21749 9.05241 7.72921 9.55371 7.72921 10.1722C7.72921 10.7907 8.21749 11.292 8.82296 11.292C9.42843 11.292 9.91671 10.7907 9.91671 10.1722C9.91671 9.55371 9.42843 9.05241 8.82296 9.05241Z\"\n fill=\"#9AA2AC\"\n />\n </svg>\n)\n\nexport const ServiceIcon = () => (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\">\n <path\n d=\"M8.99996 0.666992C6.27535 0.666992 3.85348 1.97884 2.33329 4.00033H4.59892C5.80009 2.94564 7.36259 2.33366 8.99996 2.33366C10.6373 2.33366 12.1998 2.94564 13.401 4.00033H15.6666C14.1464 1.97884 11.7246 0.666992 8.99996 0.666992ZM1.78642 4.83366C1.07678 7.04069 0.666626 9.59928 0.666626 12.3337C0.666626 14.085 0.826131 15.7679 1.13538 17.3337H16.8645C17.1738 15.7679 17.3333 14.085 17.3333 12.3337C17.3333 9.59928 16.9231 7.04069 16.2135 4.83366H1.78642ZM8.99996 7.33366C11.3014 7.33366 13.1666 9.19889 13.1666 11.5003C13.1666 13.8018 11.3014 15.667 8.99996 15.667C6.69853 15.667 4.83329 13.8018 4.83329 11.5003C4.83329 9.19889 6.69853 7.33366 8.99996 7.33366ZM8.16663 9.00033V10.667H6.49996V12.3337H8.16663V14.0003H9.83329V12.3337H11.5V10.667H9.83329V9.00033H8.16663Z\"\n fill=\"#9AA2AC\"\n />\n </svg>\n)\n\nexport const HospitalIcon = () => (\n <svg width=\"16\" height=\"17\" viewBox=\"0 0 16 17\">\n <path\n d=\"M8 0.666992L0.5 5.63533V14.8337C0.5 15.7545 1.24583 16.5003 2.16667 16.5003H13.8333C14.7542 16.5003 15.5 15.7545 15.5 14.8337V5.63533L8 0.666992ZM11.3333 10.667H8.83333V13.167H7.16667V10.667H4.66667V9.00033H7.16667V6.50033H8.83333V9.00033H11.3333V10.667Z\"\n fill=\"#9AA2AC\"\n />\n </svg>\n)\n\nexport const SpecialtyIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <path\n d=\"M3.83333 0.5C2.94928 0.5 2.10143 0.851189 1.47631 1.47631C0.851189 2.10143 0.5 2.94928 0.5 3.83333C0.5 4.71739 0.851189 5.56523 1.47631 6.19036C2.10143 6.81548 2.94928 7.16667 3.83333 7.16667C4.71739 7.16667 5.56523 6.81548 6.19036 6.19036C6.81548 5.56523 7.16667 4.71739 7.16667 3.83333C7.16667 2.94928 6.81548 2.10143 6.19036 1.47631C5.56523 0.851189 4.71739 0.5 3.83333 0.5V0.5ZM10.5 0.5C9.57917 0.5 8.83333 1.24583 8.83333 2.16667V5.5C8.83333 6.42083 9.57917 7.16667 10.5 7.16667H13.8333C14.7542 7.16667 15.5 6.42083 15.5 5.5V2.16667C15.5 1.24583 14.7542 0.5 13.8333 0.5H10.5ZM3.83333 8.83333C2.94928 8.83333 2.10143 9.18452 1.47631 9.80964C0.851189 10.4348 0.5 11.2826 0.5 12.1667C0.5 13.0507 0.851189 13.8986 1.47631 14.5237C2.10143 15.1488 2.94928 15.5 3.83333 15.5C4.71739 15.5 5.56523 15.1488 6.19036 14.5237C6.81548 13.8986 7.16667 13.0507 7.16667 12.1667C7.16667 11.2826 6.81548 10.4348 6.19036 9.80964C5.56523 9.18452 4.71739 8.83333 3.83333 8.83333V8.83333ZM12.1667 8.83333C11.2826 8.83333 10.4348 9.18452 9.80964 9.80964C9.18452 10.4348 8.83333 11.2826 8.83333 12.1667C8.83333 13.0507 9.18452 13.8986 9.80964 14.5237C10.4348 15.1488 11.2826 15.5 12.1667 15.5C13.0507 15.5 13.8986 15.1488 14.5237 14.5237C15.1488 13.8986 15.5 13.0507 15.5 12.1667C15.5 11.2826 15.1488 10.4348 14.5237 9.80964C13.8986 9.18452 13.0507 8.83333 12.1667 8.83333V8.83333Z\"\n fill=\"#9AA2AC\"\n />\n </svg>\n)\n","import { Text } from 'components/atoms'\nimport { theme } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nexport const StyledTypeHeader = styled.header`\n display: flex;\n justify-content: space-between;\n padding: 12px 24px;\n background-color: ${theme.colors.neutral50};\n box-shadow: inset 0px 1px 0px #e4e8ec;\n`\n\nexport const StyledInfoWrapper = styled.div`\n display: grid;\n flex: 2;\n align-items: center;\n gap: 16px;\n grid-template-columns: 16px 1fr;\n`\n\nexport const StyledTypeName = styled.p`\n color: ${theme.colors.neutral800};\n font-size: 14px;\n font-weight: ${theme.sizes.fwSemiBold};\n letter-spacing: -0.2px;\n line-height: 22px;\n`\n\nexport const StyledSeeMoreButton = styled.button`\n flex: 1;\n cursor: pointer;\n text-align: end;\n`\n\nexport const StyledResultsContainer = styled.section`\n padding: 12px 16px;\n --rowGap: 16px;\n --graphicSize: 32px;\n\n ${MediaQueries.tdUp} {\n --rowGap: 8px;\n }\n`\n\nexport const StyledItemsWrapper = styled.ul<{\n isShown?: boolean\n isMore?: boolean\n}>`\n --gap: 16px;\n ${MediaQueries.tdUp} {\n --gap: 8px;\n }\n\n display: grid;\n overflow: hidden;\n gap: var(--gap);\n transition: max-height 0.8s ease-out;\n\n ${({ isMore }) =>\n isMore &&\n `\n height: auto;\n max-height: 0;\n margin-top: var(--gap);\n `}\n\n ${({ isShown }) =>\n isShown &&\n `\n max-height: 600px;\n `}\n\n@media (prefers-reduced-motion) {\n transition: none;\n }\n\n ${MediaQueries.tdUp} {\n grid-template-columns: 1fr 1fr;\n } ;\n`\n\nexport const StyledSeeMore = styled(Text)`\n margin-top: 12px;\n margin-bottom: 8px;\n cursor: pointer;\n text-align: start;\n text-transform: capitalize;\n`\n","import React, { useState, Dispatch, useMemo } from 'react'\n\nimport {\n Action,\n ActionTypes,\n ReducerState,\n} from 'care/components/organisms/bookingSearchBar/reducer'\nimport { LOCALIZED_SLUGS } from 'care/interfaces/constants'\nimport { Text } from 'components/atoms'\nimport { useTranslations } from 'hooks/useTranslations'\nimport { theme } from 'misc/theme'\nimport Skeleton from 'react-loading-skeleton'\n\nimport { SearchBarSectionItemApi } from '../../../../interfaces/types'\nimport { SEARCH_KEYWORD_MIN_LENGTH } from '../constants'\nimport { ResultSectionItem } from '../resultSectionItem'\nimport {\n StyledImageSkeletonWrapper,\n StyledPictureWrapper,\n StyledResult,\n} from '../resultSectionItem/index.styled'\nimport { DoctorIcon, HospitalIcon, ServiceIcon, SpecialtyIcon } from './icons'\nimport {\n StyledInfoWrapper,\n StyledItemsWrapper,\n StyledResultsContainer,\n StyledSeeMore,\n StyledSeeMoreButton,\n StyledTypeHeader,\n StyledTypeName,\n} from './index.styled'\n\nexport type Props = {\n type: 'specialties' | 'services' | 'hospitals' | 'doctors'\n data: SearchBarSectionItemApi[]\n state: ReducerState\n dispatch: Dispatch<Action>\n itemsToShow: number\n itemsToShowDesktop: number\n keyword: string\n isMobile: boolean\n isLoading?: boolean\n}\n\nconst ResultSection = ({\n type,\n data,\n state,\n dispatch,\n itemsToShow,\n itemsToShowDesktop,\n isMobile,\n isLoading,\n keyword,\n}: Props) => {\n const [seeMoreOpen, setSeeMoreOpen] = useState(false)\n const { t, locale } = useTranslations()\n const { selectedLocation, searchKeywords } = state\n\n const slugs = useMemo(() => LOCALIZED_SLUGS[locale], [locale])\n\n const typeInformation: {\n [key in Props['type']]: {\n name: string\n icon: React.ReactNode\n slug: string\n }\n } = useMemo(() => {\n return {\n doctors: {\n name: t('booking.searchPopup.doctors'),\n icon: <DoctorIcon />,\n slug: slugs.DOCTOR,\n },\n services: {\n name: t('booking.searchPopup.services'),\n icon: <ServiceIcon />,\n slug: slugs.SERVICE,\n },\n hospitals: {\n name: t('booking.searchPopup.hospitals'),\n icon: <HospitalIcon />,\n slug: slugs.HOSPITAL,\n },\n specialties: {\n name: t('booking.searchPopup.specialties'),\n icon: <SpecialtyIcon />,\n slug: slugs.SPECIALTIES,\n },\n }\n }, [type, slugs])\n\n const typeSlug = useMemo(() => typeInformation[type].slug, [typeInformation])\n\n const showItemCount = isMobile ? itemsToShow : itemsToShowDesktop\n\n function onClickItem(item: SearchBarSectionItemApi) {\n let url = ''\n switch (type) {\n case 'specialties':\n url = `/${selectedLocation.slug}/${typeInformation.doctors.slug}/${item.slug}`\n break\n case 'services':\n url = `/${selectedLocation.slug}/${typeSlug}/${item.slug}`\n break\n case 'doctors':\n case 'hospitals':\n url = `/${typeSlug}/${item.slug}-${item.id}`\n break\n }\n if (url) {\n dispatch({\n type: ActionTypes.SelectSearchResult,\n payload: { name: item.name, url },\n })\n }\n }\n\n function renderItem(item: SearchBarSectionItemApi) {\n return (\n <ResultSectionItem\n key={item.id}\n item={item}\n type={type}\n imageUrl={item.logo || item.avatar || item.thumbnail}\n onClickItem={onClickItem}\n />\n )\n }\n\n function onSeeAllClick() {\n let url = ''\n switch (type) {\n case 'specialties':\n url = `/${typeSlug}`\n break\n case 'services':\n case 'doctors':\n case 'hospitals':\n url = `/${selectedLocation.slug}/${typeSlug}`\n break\n }\n if (url) {\n dispatch({ type: ActionTypes.NavigateTo, payload: url })\n }\n }\n\n function onClickSearchByKeyword() {\n const { slug: typeSlug } = typeInformation[type]\n const url = `/${selectedLocation.slug}/${typeSlug}?q=${searchKeywords}`\n dispatch({ type: ActionTypes.NavigateTo, payload: url })\n }\n\n return (\n <section>\n <StyledTypeHeader>\n <StyledInfoWrapper>\n {typeInformation[type].icon}\n <StyledTypeName>{typeInformation[type].name}</StyledTypeName>\n </StyledInfoWrapper>\n <StyledSeeMoreButton onClick={onSeeAllClick}>\n <Text size=\"p3\" color={theme.colors.primaryBase}>\n {t('booking.searchPopup.seeAll')}\n </Text>\n </StyledSeeMoreButton>\n </StyledTypeHeader>\n\n {(isLoading || (data && data.length > 0)) && (\n <StyledResultsContainer>\n <StyledItemsWrapper>\n {isLoading &&\n Array(2)\n .fill(undefined)\n .map((_, i) => (\n <StyledResult key={type + 'loading' + i}>\n <StyledPictureWrapper>\n <StyledImageSkeletonWrapper>\n <Skeleton\n height={14}\n width={type === 'hospitals' ? 12 : 32}\n style={{\n maxWidth: 'var(--graphicSize)',\n minHeight: 'var(--graphicSize)',\n }}\n />\n </StyledImageSkeletonWrapper>\n </StyledPictureWrapper>\n <Skeleton width={120} height={24} />\n </StyledResult>\n ))}\n {!isLoading &&\n data &&\n data.length > 0 &&\n data.slice(0, showItemCount).map(renderItem)}\n </StyledItemsWrapper>\n\n <StyledItemsWrapper isShown={seeMoreOpen} isMore>\n {data.slice(showItemCount, -1).map(renderItem)}\n </StyledItemsWrapper>\n {type === 'specialties' && showItemCount < data.length && !isLoading && (\n <button onClick={() => setSeeMoreOpen(!seeMoreOpen)}>\n <StyledSeeMore size=\"p3\" color={theme.colors.primaryBase}>\n {seeMoreOpen\n ? t('booking.searchPopup.seeLessSpecialties')\n : t('booking.searchPopup.seeMoreSpecialties')}\n </StyledSeeMore>\n </button>\n )}\n {type !== 'specialties' &&\n showItemCount < data.length &&\n !isLoading &&\n keyword.trim().length > SEARCH_KEYWORD_MIN_LENGTH[locale] && (\n <button onClick={onClickSearchByKeyword}>\n <StyledSeeMore size=\"p3\" color={theme.colors.primaryBase}>\n {t(`booking.searchPopup.searchIn.${type}`, {\n name: keyword,\n })}\n </StyledSeeMore>\n </button>\n )}\n </StyledResultsContainer>\n )}\n {!isLoading && data?.length === 0 && (\n <StyledResultsContainer>\n <Text size=\"sm\" color={theme.colors.gray400}>\n {t('booking.searchBar.noResults')}\n </Text>\n </StyledResultsContainer>\n )}\n </section>\n )\n}\n\nexport { ResultSection }\n","import React, { Dispatch } from 'react'\n\nimport { SearchBarSectionApi } from 'care/interfaces/types'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nimport { Action, ReducerState } from '../reducer'\nimport { ResultSection } from '../resultSection'\n\nexport type Props = {\n data: SearchBarSectionApi[]\n state: ReducerState\n dispatch: Dispatch<Action>\n isMobile: boolean\n isLoading?: boolean\n keyword?: string\n}\n\nconst StyledSection = styled.section`\n background-color: white;\n border-radius: 4px;\n position: absolute;\n width: 100%;\n z-index: 30;\n\n ${MediaQueries.tdUp} {\n box-shadow: 0px 24px 32px rgba(0, 0, 0, 0.04),\n 0px 16px 24px rgba(0, 0, 0, 0.04), 0px 4px 8px rgba(0, 0, 0, 0.04),\n 0px 0px 1px rgba(0, 0, 0, 0.04);\n }\n`\n\nconst SearchResults = ({\n data,\n state,\n dispatch,\n isMobile,\n isLoading,\n keyword,\n}: Props) => {\n return (\n <StyledSection>\n {data &&\n data.map((data) => (\n <ResultSection\n type={data.type}\n state={state}\n dispatch={dispatch}\n itemsToShow={2}\n itemsToShowDesktop={4}\n key={data.type}\n data={data.results}\n isMobile={isMobile}\n isLoading={isLoading}\n keyword={keyword}\n />\n ))}\n </StyledSection>\n )\n}\n\nexport { SearchResults }\n","export const PATHS = {\n GET_CITIES_LIST:\n 'api/lists/cities?keyword={keyword}&country_id={countryId}&site={domain}&_nopaging={nopaging}',\n GET_CITY:\n 'api/lists/cities?ids={ids}&site={domain}&longitude={longitude}&latitude={latitude}',\n GET_HOME_SEARCH:\n 'api/search/?_home=1&city_id={city}&keyword={keyword}&site={domain}&latitude={lat}&longitude={lng}',\n GET_SEARCH_V2:\n 'api/v2/search/?site={domain}&type={searchType}&keyword={keyword}&city_id={city}&latitude={lat}&longitude={lng}',\n GET_CITY_BY_IP: 'api/geobyip?site={domain}&latitude={lat}&longitude={lng}',\n}\n","import { domainLocales } from 'components/organisms/navigationLayout/constants'\nimport { LocaleType } from 'interfaces/types'\nimport formatString from 'string-format'\n\nexport const getApiPath = (\n path: string,\n params?: { [key: string]: string | number },\n locale?: LocaleType,\n) => {\n return formatString(path, {\n ...params,\n domain: domainLocales[locale || 'en-PH'],\n })\n}\n\nexport const callApi = async (\n url: string,\n method: RequestInit['method'],\n options?: RequestInit,\n) => {\n try {\n const res = await fetch(url, {\n method,\n ...options,\n })\n // console.log(res)\n if (res) return res.json()\n } catch (err) {\n return null\n }\n return null\n}\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useReducer,\n useState,\n CSSProperties,\n} from 'react'\n\nimport {\n ID_OPTION_CURRENT_LOCATION,\n LOCALIZED_SLUGS,\n} from 'care/interfaces/constants'\nimport { CareLocaleType, City } from 'care/interfaces/types'\nimport { useGeolocation } from 'hooks/useGeolocation'\nimport { useTranslations } from 'hooks/useTranslations'\nimport { GeoLocationPermission, GPSType } from 'interfaces/types'\nimport debounce from 'lodash/debounce'\n\nimport {\n StyledHiddenInputMobile,\n StyledSearchBarWrapper,\n StyledSearchBarMobileWrapper,\n StyledSearchBarMobileModalHeader,\n CareSearchGlobalStyles,\n} from './index.styled'\nimport LocationResults from './locationResults'\nimport { MobileFakeInput } from './mobileFakeInput'\nimport { MobileTopBar } from './mobileTopbar'\nimport { reducer, initialState, ActionTypes, ReducerState } from './reducer'\nimport { SearchInputs } from './searchInputs'\nimport { SearchResults } from './searchResults'\nimport { SearchButton } from './searchSubmitIcon'\nimport { GATrackingCode, SearchClick } from './types'\nimport useSearchBarApi from './useSearchBarApi'\n\nexport type Props = {\n isMobile: boolean\n careApiDomain: string\n careFrontDomain?: string\n initialSearchValue?: string\n initialSelectedCity?: City\n geoLocationPermission?: GeoLocationPermission\n geoLocationCoordinates?: GPSType\n isDebug?: boolean\n askForGeolocationPermission?: boolean\n gaTrackingSearchBar?: GATrackingCode\n autoCompleteDisabled?: boolean\n inputSearchPlaceholder?: string\n routerPush?: (s: string) => void\n onGeoLocationPermissionChange?: (\n perm: GeoLocationPermission,\n coordinates: GPSType,\n ) => void\n onSearch?: (data: SearchClick) => void\n onChangeLocation?: (city: City) => void\n}\n\nconst BookingSearchBar = ({\n isMobile,\n careApiDomain,\n geoLocationPermission: geoLocationPermissionFromProps,\n geoLocationCoordinates: geoLocationCoordinatesFromProps,\n initialSelectedCity: initialSelectedCityFromProps,\n initialSearchValue = '',\n careFrontDomain = '/care',\n isDebug = false,\n askForGeolocationPermission = false,\n gaTrackingSearchBar,\n autoCompleteDisabled = false,\n inputSearchPlaceholder = '',\n routerPush,\n onGeoLocationPermissionChange,\n onSearch,\n onChangeLocation,\n}: Props) => {\n const { t, locale } = useTranslations<CareLocaleType>()\n const wrapperRef = useRef<HTMLDivElement>(null)\n const hiddenInputRef = useRef<HTMLInputElement>(null)\n const [viewportHeight, setViewportHeight] = useState<number | void>(undefined)\n const {\n geoLocationPermission: geoLocationPermissionFromHook,\n geoLocationCoordinates: geoLocationCoordinatesFromHook,\n requestGeoLocation,\n } = useGeolocation()\n\n const [state, dispatch] = useReducer(\n reducer,\n initialState,\n (s: ReducerState) => ({\n ...s,\n isDebug,\n isMobile,\n geoLocationPermission:\n geoLocationPermissionFromProps ||\n geoLocationPermissionFromHook ||\n 'unset',\n geoLocationCoordinates:\n geoLocationCoordinatesFromProps ||\n geoLocationCoordinatesFromHook ||\n null,\n searchKeywords: initialSearchValue,\n initialSelectedCity: initialSelectedCityFromProps || null,\n selectedLocation:\n initialSelectedCityFromProps || s.selectedLocation || null,\n searchLocationKeywords:\n initialSelectedCityFromProps?.name || s.searchLocationKeywords,\n autoCompleteDisabled,\n inputSearchPlaceholder,\n locale,\n }),\n )\n\n const {\n navigateTo,\n focused,\n isLoadingCities,\n cities,\n searchKeywords,\n geoLocationPermission,\n selectedLocation,\n initialSelectedCity,\n defaultCity,\n searchResults,\n isLoadingSearchResults,\n isMobileModalOpened,\n inputSearchPlaceholder: inputSearchPlaceholderState,\n } = state\n\n const { fetchCitiesByLocation, fetchCitiesByKeyword, fetchSearchResults } =\n useSearchBarApi({\n dispatch,\n locale,\n careApiDomain,\n })\n\n const currentLocationCityItem = useMemo<City>(\n () => ({\n id: ID_OPTION_CURRENT_LOCATION,\n name: t('booking.searchBar.currentLocation'),\n slug: LOCALIZED_SLUGS[locale]?.CURRENT,\n }),\n [t, locale],\n )\n\n const debouncedFetchCitiesByKeyword = useMemo(\n () => debounce(fetchCitiesByKeyword, 400),\n [fetchCitiesByKeyword],\n )\n\n const debouncedFetchSearchResults = useMemo(\n () => debounce(fetchSearchResults, 400),\n [fetchSearchResults],\n )\n\n useEffect(() => {\n if (\n initialSearchValue !== '' &&\n initialSearchValue !== state.searchKeywords\n ) {\n dispatch({\n type: ActionTypes.UpdateInitialSearchValue,\n payload: initialSearchValue,\n })\n }\n }, [initialSearchValue])\n\n useEffect(() => {\n if (\n askForGeolocationPermission &&\n selectedLocation?.id === ID_OPTION_CURRENT_LOCATION &&\n geoLocationPermission === 'unset'\n ) {\n requestGeoLocation()\n }\n }, [askForGeolocationPermission, selectedLocation, geoLocationPermission])\n\n useEffect(() => {\n if (\n !geoLocationPermissionFromProps &&\n geoLocationPermission !== geoLocationPermissionFromHook\n ) {\n if (\n geoLocationPermissionFromHook === 'granted' &&\n geoLocationCoordinatesFromHook\n ) {\n dispatch({\n type: ActionTypes.GrantGeoLocationPermission,\n payload: geoLocationCoordinatesFromHook,\n })\n } else if (geoLocationPermissionFromHook === 'denied') {\n dispatch({ type: ActionTypes.DenyGeoLocationPermission })\n }\n }\n }, [\n geoLocationPermission,\n geoLocationPermissionFromHook,\n geoLocationCoordinatesFromHook,\n geoLocationPermissionFromProps,\n ])\n\n useEffect(() => {\n if (navigateTo) {\n if (routerPush) {\n routerPush(navigateTo)\n } else {\n window.location.href = `${careFrontDomain}${navigateTo}`\n }\n }\n }, [navigateTo])\n\n const selectCurrentLocation = useCallback(\n function selectCurrentLocation() {\n dispatch({\n type: ActionTypes.SelectCurrentLocation,\n payload: currentLocationCityItem,\n })\n },\n [t, dispatch],\n )\n\n useEffect(() => {\n if (geoLocationPermission !== 'denied' && !initialSelectedCity) {\n selectCurrentLocation()\n }\n if (onGeoLocationPermissionChange) {\n onGeoLocationPermissionChange(\n geoLocationPermission,\n state.geoLocationCoordinates,\n )\n }\n if (isMobile && geoLocationPermission === 'granted' && selectedLocation) {\n dispatch({ type: ActionTypes.FocusInputSearch })\n }\n fetchCitiesByLocation({ coordinates: state.geoLocationCoordinates })\n }, [geoLocationPermission])\n\n useEffect(() => {\n if (selectedLocation && defaultCity) {\n fetchSearchResults(state.searchKeywords, state)\n }\n }, [selectedLocation, defaultCity])\n\n useEffect(() => {\n if (inputSearchPlaceholder !== inputSearchPlaceholderState) {\n dispatch({\n type: ActionTypes.SetInputSearchPlaceholder,\n payload: inputSearchPlaceholder,\n })\n }\n }, [inputSearchPlaceholder, inputSearchPlaceholderState])\n\n useEffect(() => {\n if (isMobileModalOpened) {\n document.body.classList.add('care-popup-open')\n } else {\n document.body.classList.remove('care-popup-open')\n }\n }, [isMobileModalOpened])\n\n const handleLocationClick = useCallback(\n function handleLocationClick(city: City) {\n dispatch({ type: ActionTypes.SelectLocation, payload: city })\n focusSearchInput()\n if (onChangeLocation) {\n onChangeLocation(city)\n }\n },\n [t, dispatch],\n )\n\n function handleCurrentLocationClick() {\n if (isMobile && state.geoLocationPermission !== 'granted') {\n requestGeoLocation()\n } else {\n selectCurrentLocation()\n focusSearchInput()\n }\n }\n\n async function handleMobileFakeInputClick() {\n if (hiddenInputRef.current) {\n hiddenInputRef.current.focus()\n }\n dispatch({ type: ActionTypes.OpenMobileModal })\n await Promise.resolve()\n if (wrapperRef.current) {\n wrapperRef.current\n .querySelector<HTMLInputElement>('input[name=\"search-location\"]')\n ?.focus()\n }\n }\n\n function focusLocationInput() {\n if (wrapperRef.current) {\n wrapperRef.current\n .querySelector<HTMLInputElement>('input[name=\"search-location\"]')\n ?.focus()\n }\n }\n\n function focusSearchInput() {\n if (wrapperRef.current) {\n wrapperRef.current\n .querySelector<HTMLInputElement>('input[name=\"search-results\"]')\n ?.focus()\n }\n }\n\n function handleMobileTopBarClose() {\n dispatch({ type: ActionTypes.CloseMobileModal })\n }\n\n function renderLocationResults() {\n if (focused !== 'location') {\n return null\n }\n return (\n <LocationResults\n isLoading={isLoadingCities}\n cities={cities}\n onLocationClick={handleLocationClick}\n onCurrentLocationClick={handleCurrentLocationClick}\n isLocationLoading={isLoadingCities}\n geoLocationPermission={geoLocationPermission}\n selectedLocation={selectedLocation}\n />\n )\n }\n\n function renderSearchResults() {\n if (focused !== 'search') {\n return null\n }\n\n if (state.autoCompleteDisabled) {\n if (!isMobile) {\n return null\n }\n\n return (\n <SearchButton\n onClick={() => {\n onSearch({\n cityId: state.selectedLocation.id,\n keyword: searchKeywords,\n })\n }}\n />\n )\n }\n\n return (\n <SearchResults\n data={searchResults}\n state={state}\n dispatch={dispatch}\n isMobile={false}\n keyword={searchKeywords}\n isLoading={isLoadingSearchResults}\n />\n )\n }\n\n function renderSearchInputs() {\n return (\n <SearchInputs\n isMobile={isMobile}\n state={state}\n dispatch={dispatch}\n debouncedFetchCitiesByKeyword={debouncedFetchCitiesByKeyword}\n debouncedFetchSearchResults={debouncedFetchSearchResults}\n focusLocationInput={focusLocationInput}\n focusSearchInput={focusSearchInput}\n renderLocationResults={renderLocationResults}\n renderSearchResults={renderSearchResults}\n trackingAttributes={gaTrackingSearchBar}\n onSearch={onSearch}\n initalSearchValue={initialSearchValue}\n />\n )\n }\n\n useEffect(() => {\n if (window.visualViewport) {\n const resizeHandler = (evt) => {\n const viewport = evt.target\n setViewportHeight(viewport?.height)\n }\n window.visualViewport.addEventListener('resize', resizeHandler)\n return () => {\n window.visualViewport.removeEventListener('resize', resizeHandler)\n }\n }\n }, [setViewportHeight])\n\n if (isMobile) {\n return (\n <>\n <CareSearchGlobalStyles />\n {<StyledHiddenInputMobile ref={hiddenInputRef} />}\n <StyledSearchBarMobileWrapper\n id=\"booking-search-bar\"\n ref={wrapperRef}\n data-is-modal={isMobile && isMobileModalOpened}\n style={\n {\n '--mobile-care-searchbar-height':\n isMobileModalOpened && viewportHeight\n ? `${viewportHeight}px`\n : '100%',\n } as CSSProperties\n }\n >\n {!isMobileModalOpened ? (\n <MobileFakeInput\n onClick={handleMobileFakeInputClick}\n focused={focused}\n value={searchKeywords}\n trackingAttributes={gaTrackingSearchBar}\n inputSearchPlaceholder={inputSearchPlaceholder}\n />\n ) : (\n <>\n <StyledSearchBarMobileModalHeader>\n <MobileTopBar\n headingText=\"Search\"\n onLeftClick={handleMobileTopBarClose}\n />\n {renderSearchInputs()}\n </StyledSearchBarMobileModalHeader>\n {renderLocationResults()}\n {renderSearchResults()}\n </>\n )}\n </StyledSearchBarMobileWrapper>\n </>\n )\n }\n\n return (\n <StyledSearchBarWrapper id=\"booking-search-bar\" ref={wrapperRef}>\n {renderSearchInputs()}\n </StyledSearchBarWrapper>\n )\n}\nexport { BookingSearchBar }\n","import { LocaleType } from 'interfaces/types'\n\ntype Extends<T, U extends T> = U\n\nexport type CareLocaleType = Extends<\n LocaleType,\n 'en-PH' | 'vi-VN' | 'id-ID' | 'zh-TW' | 'tl-PH'\n>\n\nexport enum RedirectType {\n 'SPECIALTY' = 1,\n 'DOCTOR' = 2,\n 'CLINIC' = 3,\n 'SERVICE' = 4,\n}\n\nexport type City = {\n name: string\n country?: string\n id: number\n slug: string\n}\n\nexport type Services = {\n id: number | string\n name: string\n email: string\n phone: string\n logo: string\n price: string\n priceUnit: string\n description: string\n}\n\nexport type Doctor = {\n name: string\n description: string\n avatar: string\n price: number | string\n phone: string\n priceUnit: string\n provideCare: number | null\n distance?: string\n id: number\n priceDescription: string\n hospital?: Hospital | null\n experiences: Experiences\n isActive?: boolean\n organization: OrganizationInfoApi\n specialties:\n | string[]\n | {\n id: number\n name: string\n }[]\n slug: string\n cityName: string\n}\nexport type Service = {\n id: number\n logoService: string\n hospitalId: number\n hospitalBranchId: number\n serviceId: number\n name: string\n email: string\n phone: string\n price: string\n priceUnit: string\n description: string\n status: number\n createdAt: string\n hospitalBranch: Hospital\n distance: string\n slug?: string\n}\n\nexport type Hospital = {\n id: number\n name: string\n slug: string\n description: string\n logo: string\n cityId: number\n // distance: string\n phone: string\n longitude: string\n latitude: string\n address: string\n openAt: string | null\n closeAt: string | null\n insurances: Insurance[]\n specialties?: Specialty[]\n medicalFacilities: string[]\n about: string\n weekDayHours: string\n weekendHours: string\n images: {\n imageOne: string\n imageTwo: string\n imageThree: string\n imageFour: string\n imageFive: string\n }\n services: ServiceInfoApi[]\n workingTimes: {\n [key: string]: string[]\n } | null\n}\n\nexport type Insurance = {\n id: number | string\n name: string\n logo: string\n created_at: string\n}\n\nexport type Specialty = {\n name: string\n id: number\n thumbnail: string\n total_doctor: number\n slug: string\n}\n\nexport type ServiceInfoApi = {\n id: number\n logo: string\n hospital_id: number\n hospital_branch_id: number\n service_id: number\n name: string\n email: string\n phone: string\n price: string\n price_unit: string\n description: string\n status: number\n created_at: string\n hospital_branch: HospitalApi\n distance: string\n avatar: string\n}\n\nexport type DoctorInfoApi = {\n name: string\n description: string\n avatar: string\n price: number | string\n phone: string\n price_unit: string\n provide_care: number\n distance?: string\n id: number\n price_description: string\n hospital_branch?: HospitalApi\n experiences: Experiences\n organization: OrganizationInfoApi\n specialties:\n | string[]\n | {\n id: number\n name: string\n }[]\n slug: string\n}\n\nexport type OrganizationInfoApi = {\n id: number | string\n name: string\n logo?: string\n}\n\nexport type HospitalApi = {\n id: number\n hospital_id: number\n name: string\n phone: string\n logo: string\n // distance: string\n city_id: number\n longitude: string\n latitude: string\n address: string\n open_at?: string\n close_at?: string\n insurances?: Insurance[]\n specialties?: Specialty[]\n medical_facilities: string\n description: string\n about: string\n weekday_hours: string\n weekend_hours: string\n images: {\n image_0: string\n image_1: string\n image_2: string\n image_3: string\n image_4: string\n }\n services: ServiceInfoApi[]\n working_times: {\n [key: string]: {\n day: string\n start_at: string\n end_at: string\n }[]\n }\n city: City\n}\n\nexport type Experiences = Array<{\n description: string\n}>\n\nexport type Clinic = {\n name: string\n id: number\n slug: string\n}\n\nexport type LocalizedSlugsType =\n | 'HOSPITAL'\n | 'SERVICE'\n | 'DOCTOR'\n | 'ALL'\n | 'SEARCH'\n | 'SPECIALTIES'\n | 'CURRENT'\n\nexport type SearchDataBookingApi = {\n hospitals: HospitalApi[]\n doctors: DoctorInfoApi[]\n specialties: Specialty[] & { total_hospital_service: number }\n}\n\nexport type SearchBarSectionItemApi = {\n id: number\n name: string\n slug: string\n avatar?: string\n logo?: string\n thumbnail?: string\n}\n\nexport type SearchBarSectionApi = {\n type: 'doctors' | 'specialties' | 'services' | 'hospitals'\n results: SearchBarSectionItemApi[]\n}\n\nexport type SearchCityByGeoIpApi = {\n cities: City[]\n default: City\n}\n\nexport type SearchCityByKeywordApi = {\n cities: City[]\n}\n","import { useCallback, useMemo, useState } from 'react'\n\nimport { USER_GEOLOCATION_COORDINATES_COOKIE } from 'interfaces/constants'\nimport { GPSType, GeoLocationPermission } from 'interfaces/types'\nimport { getCookie, setCookie, deleteCookie } from 'misc/cookieHelper'\n\nexport type UseGeolocationReturn = {\n geoLocationPermission: GeoLocationPermission\n geoLocationCoordinates: GPSType | null\n requestGeoLocation: () => void\n}\n\nexport function useGeolocation(): UseGeolocationReturn {\n const [permission, setPermission] = useState<\n UseGeolocationReturn['geoLocationPermission']\n >(() => {\n if (typeof window === 'undefined') {\n return 'unset'\n }\n if (getCookie(USER_GEOLOCATION_COORDINATES_COOKIE)) {\n return 'granted'\n }\n const blocked =\n !location.protocol.includes('https') && location.hostname !== 'localhost'\n if (!navigator.geolocation || blocked) {\n return 'denied'\n }\n return 'unset'\n })\n\n const [coordinates, setCoordinates] = useState<\n UseGeolocationReturn['geoLocationCoordinates']\n >(() => {\n if (typeof window === 'undefined') {\n return null\n }\n const cookie = getCookie(USER_GEOLOCATION_COORDINATES_COOKIE)\n if (cookie) {\n try {\n return JSON.parse(cookie)\n } catch (err) {\n console.log(err)\n }\n }\n return null\n })\n\n const request = useCallback(function request() {\n // setPermission()\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(\n (position) => {\n const gps: GPSType = {\n lat: `${\n Math.round(position.coords.latitude * 10000000) / 10000000\n }`,\n lng: `${\n Math.round(position.coords.longitude * 10000000) / 10000000\n }`,\n }\n setCookie(\n USER_GEOLOCATION_COORDINATES_COOKIE,\n JSON.stringify(gps),\n 0,\n 15,\n )\n setCoordinates(gps)\n setPermission('granted')\n },\n () => {\n deleteCookie(USER_GEOLOCATION_COORDINATES_COOKIE)\n setPermission('denied')\n },\n )\n }\n }, [])\n\n return useMemo(\n () => ({\n geoLocationPermission: permission,\n geoLocationCoordinates: coordinates,\n requestGeoLocation: request,\n }),\n [permission, coordinates],\n )\n}\n","import { useCallback, Dispatch } from 'react'\n\nimport { PATHS } from 'care/api/paths'\nimport { getApiPath } from 'care/api/utils'\nimport { ID_OPTION_CURRENT_LOCATION } from 'care/interfaces/constants'\nimport {\n SearchBarSectionApi,\n SearchCityByGeoIpApi,\n SearchCityByKeywordApi,\n} from 'care/interfaces/types'\nimport { LocaleType, GPSType } from 'interfaces/types'\n\nimport { SEARCH_KEYWORD_MIN_LENGTH } from './constants'\nimport { Action, ActionTypes, ReducerState } from './reducer'\n\ntype UseSearchBarApiParams = {\n dispatch: Dispatch<Action>\n careApiDomain: string\n locale?: LocaleType\n}\n\nexport default function useSearchBarApi({\n dispatch,\n careApiDomain,\n locale = 'vi-VN',\n}: UseSearchBarApiParams) {\n const fetchCitiesApi = useCallback(\n function fetchCitiesApi(path, params = {}) {\n const url = `${careApiDomain}${path}`\n dispatch({ type: ActionTypes.FetchCitiesStart })\n return fetch(getApiPath(url, params, locale), { method: 'GET' })\n .then((res) => res.json())\n .then((data) => {\n if (data._status !== 1 || !data._data) {\n console.log('error loading cities', data)\n return Promise.reject(data)\n }\n return data?._data\n })\n .finally(() => dispatch({ type: ActionTypes.FetchCitiesFinish }))\n },\n [locale],\n )\n\n const fetchCitiesByLocation = useCallback(\n function fetchCitiesByLocation({ coordinates }: { coordinates?: GPSType }) {\n let params = {}\n if (coordinates) {\n params = {\n lat: coordinates.lat,\n lng: coordinates.lng,\n } as GPSType\n }\n return fetchCitiesApi(PATHS.GET_CITY_BY_IP, params)\n .then((data: SearchCityByGeoIpApi) => {\n dispatch({\n type: ActionTypes.FetchCitiesByGeoIpComplete,\n payload: data,\n })\n })\n .catch((err) => console.error('error loading cities by location', err))\n },\n [locale, careApiDomain, dispatch],\n )\n\n const fetchCitiesByKeyword = useCallback(\n function fetchCitiesByKeyword(keyword: string) {\n return fetchCitiesApi(PATHS.GET_CITIES_LIST, { keyword })\n .then((data: SearchCityByKeywordApi) => {\n dispatch({\n type: ActionTypes.FetchCitiesByKeywordComplete,\n payload: data.cities,\n })\n })\n .catch((err) => console.error('error loading cities by keyword', err))\n },\n [locale, careApiDomain, dispatch],\n )\n\n const fetchSearchResults = useCallback(\n function fetchSearchResults(searchKeywords: string, state: ReducerState) {\n const url = `${careApiDomain}${PATHS.GET_SEARCH_V2}`\n dispatch({ type: ActionTypes.FetchSearchResultsStart })\n const { defaultCity, selectedLocation, geoLocationCoordinates } = state\n let cityId: number | string = ''\n if (!selectedLocation || !defaultCity) {\n dispatch({ type: ActionTypes.FetchSearchResultsFinish })\n return\n }\n const isCurrentLocationSelected =\n selectedLocation.id === ID_OPTION_CURRENT_LOCATION\n if (isCurrentLocationSelected) {\n if (!geoLocationCoordinates) {\n cityId = defaultCity.id\n }\n } else {\n cityId = selectedLocation.id\n }\n const lat = geoLocationCoordinates?.lat || ''\n const lng = geoLocationCoordinates?.lng || ''\n return fetch(\n getApiPath(\n url,\n {\n domain: careApiDomain,\n searchType: 'global',\n keyword:\n searchKeywords.trim().length > SEARCH_KEYWORD_MIN_LENGTH[locale]\n ? searchKeywords.trim()\n : '',\n city: cityId === ID_OPTION_CURRENT_LOCATION ? '' : cityId,\n lat,\n lng,\n },\n locale,\n ),\n {\n method: 'GET',\n headers: {\n accept: 'version=2.0.0.0',\n },\n },\n )\n .then((res) => res.json())\n .then((data) => {\n if (data._status !== 1 || !data._data) {\n return Promise.reject(data)\n }\n return data?._data\n })\n .then((results: SearchBarSectionApi[]) =>\n dispatch({\n type: ActionTypes.FetchSearchResultsComplete,\n payload: results,\n }),\n )\n .catch((error) => {\n console.log('error loading search results', { url, error })\n })\n .finally(() => dispatch({ type: ActionTypes.FetchSearchResultsFinish }))\n },\n [locale, careApiDomain, dispatch],\n )\n\n return {\n fetchCitiesByLocation,\n fetchCitiesByKeyword,\n fetchSearchResults,\n }\n}\n"],"names":["StyledSearchBarWrapper","styled","div","templateObject_1","__makeTemplateObject","StyledSearchBarMobileWrapper","templateObject_2","StyledSearchBarMobileModalHeader","section","templateObject_3","StyledHiddenInputMobile","input","templateObject_4","StyledInput","Input","templateObject_5","CareSearchGlobalStyles","createGlobalStyle","templateObject_6","CloseIcon","_a","className","color","React","createElement","width","height","viewBox","fill","xmlns","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","PinIcon","GetLocationIcon","MagnifierIcon","DefaultThumbnailAny","cx","cy","r","StyledLiSkeleton","li","theme","colors","neutral100","StyledLocationResultsWrapper","MediaQueries","mbDown","StyledLocationResultsList","ul","StyledPinIcon","StyledLocationItem","isSelected","concat","neutral50","count","idList","useId","Fragment","__spreadArray","Array","map","__v","i","key","Skeleton","LocationResults","cities","isLoading","onLocationClick","onCurrentLocationClick","_b","geoLocationPermission","isLocationLoading","selectedLocation","t","useTranslations","isGeoPermissionDenied","renderCurrentLocationItem","role","tabIndex","onClick","evt","nativeEvent","stopImmediatePropagation","Text","size","primaryBase","style","lineHeight","length","city","id","name","neutral400","EVENT_NAMES","getRandomInteger","min","max","Math","floor","random","VISIBLE_NODE_TYPES","Typewriter","options","_this","this","state","lastFrameTime","pauseUntil","eventQueue","eventLoop","eventLoopPaused","reverseCalledEvents","calledEvents","visibleNodes","initialOptions","strings","delay","pauseFor","deleteSpeed","loop","autoStart","stringSplitter","onCreateTextNode","onRemoveNode","start","runEventLoop","pause","stop","window","cancelAnimationFrame","ms","addEventToQueue","typeOutAllStrings","typeString","forEach","string","deleteAll","node","characters","split","typeCharacters","pasteString","character","speed","changeDeleteSpeed","Error","changeDelay","deleteChars","amount","isArray","removeCharacters","eventName","eventArgs","prepend","addEventToStateProperty","addReverseCalledEvent","property","eventItem","Date","now","nowTime","delta","__assign","requestAnimationFrame","currentEvent","shift","textNode","document","createTextNode","textNodeToUse","type","unshift","removingCharacterNode","parseInt","removeAllEventItems","push","temp","length_1","apply","pop","parentNode","removeChild","init","prototype","useAnimatedPlaceholder","inputRef","wrapperRef","disabled","locale","values","useMemo","shuffleKeys","shuffle","s","customNodeCreator","getInput","placeholder","slice","current","querySelector","useEffect","StyledFakeInputSearchMobile","MobileFakeInput","focused","value","trackingAttributes","inputSearchPlaceholder","useRef","gaAttributes","dataEventCategory","dataEventAction","dataEventLabel","ref","inputClassName","undefined","displayIcon","gray400","ActionTypes","StyledTopBar","header","StyledTopBarHeaderRight","StyledTopBarIcon","StyledTopbarHeading","StyledTopbarHeadingText","secondaryDark","MobileTopBar","onLeftClick","headingText","onRightClick","iconLeft","textRight","gray800","SEARCH_KEYWORD_MIN_LENGTH","initialState","isMobile","isDebug","navigateTo","geoLocationCoordinates","searchLocationKeywords","searchKeywords","defaultCity","initialCities","searchResults","initialSearchResults","isLoadingCities","isLoadingSearchResults","isMobileModalOpened","initialSelectedCity","autoCompleteDisabled","resetSearchLocationKeywords","reducer","action","console","log","NavigateTo","payload","ClickOutsideInputLocation","ClickOutsideInputSearch","FocusInputLocation","nextState_1","ID_OPTION_CURRENT_LOCATION","FocusInputSearch","nextState","ChangeInputLocation","ChangeInputSearch","keyword","trim","SelectCurrentLocation","ClearInputLocation","ClearInputSearch","SelectLocation","SelectSearchResult","url","FetchCitiesStart","FetchCitiesFinish","FetchSearchResultsStart","FetchSearchResultsFinish","FetchSearchResultsComplete","nextState_2","FetchCitiesByGeoIpComplete","defaultCity_1","filter","c","find","nextState_3","FetchCitiesByKeywordComplete","DisplayInitialCities","DisplayInitialSearchResults","GrantGeoLocationPermission","DenyGeoLocationPermission","OpenMobileModal","CloseMobileModal","UpdateInitialSearchValue","SetInputSearchPlaceholder","SearchIcon","fillRule","clipRule","StyledSearchIcon","button","primaryHover","primaryActive","StyledText","sizes","fwSemiBold","SearchButton","title","StyledSearchBarInputsWrapper","blue50","StyledInputWrapper","StyledInputLocationWrapper","StyledInputSearchWrapper","StyledClearIcon","x","y","rx","SearchInputs","dispatch","debouncedFetchCitiesByKeyword","debouncedFetchSearchResults","focusLocationInput","focusSearchInput","renderLocationResults","renderSearchResults","onSearch","initalSearchValue","inputLocationWrapperRef","inputSearchWrapperRef","useOutsideClick","searchInputPinIconColor","handleSearchInputChange","useCallback","cancel","handleSearchLocationInputChange","autoComplete","actionIcon","gray300","onActionClick","onChange","onFocus","onKeyPress","e","cityId","enterKeyHint","StyledResult","StyledRoundedIconWrapper","gray600","tdUp","StyledPictureWrapper","figure","StyledLocationPin","svg","StyledImageSkeletonWrapper","defaultThumbnailByType","doctors","clipPath","services","ResultSectionItem","item","imageUrl","onClickItem","defaultThumbnail","Cmp","onKeyDown","src","DoctorIcon","ServiceIcon","HospitalIcon","SpecialtyIcon","StyledTypeHeader","StyledInfoWrapper","StyledTypeName","p","neutral800","StyledSeeMoreButton","StyledResultsContainer","StyledItemsWrapper","isMore","isShown","StyledSeeMore","templateObject_7","ResultSection","data","itemsToShow","itemsToShowDesktop","useState","seeMoreOpen","setSeeMoreOpen","_c","slugs","LOCALIZED_SLUGS","typeInformation","icon","slug","DOCTOR","SERVICE","hospitals","HOSPITAL","specialties","SPECIALTIES","typeSlug","showItemCount","renderItem","logo","avatar","thumbnail","_","maxWidth","minHeight","StyledSection","SearchResults","results","PATHS","getApiPath","path","params","formatString","stringFormat","domain","domainLocales","RedirectType","careApiDomain","geoLocationPermissionFromProps","geoLocationCoordinatesFromProps","initialSelectedCityFromProps","initialSearchValue","careFrontDomain","_d","_e","askForGeolocationPermission","gaTrackingSearchBar","_f","_g","routerPush","onGeoLocationPermissionChange","onChangeLocation","_h","hiddenInputRef","_j","viewportHeight","setViewportHeight","_k","getCookie","USER_GEOLOCATION_COORDINATES_COOKIE","blocked","location","protocol","includes","hostname","navigator","geolocation","permission","setPermission","cookie","JSON","parse","err","coordinates","setCoordinates","request","getCurrentPosition","position","gps","lat","round","coords","latitude","lng","longitude","setCookie","stringify","deleteCookie","requestGeoLocation","useGeolocation","geoLocationPermissionFromHook","geoLocationCoordinatesFromHook","_l","useReducer","inputSearchPlaceholderState","_m","fetchCitiesApi","fetch","method","then","res","json","_status","_data","Promise","reject","finally","fetchCitiesByLocation","catch","error","fetchCitiesByKeyword","fetchSearchResults","searchType","headers","accept","useSearchBarApi","currentLocationCityItem","CURRENT","debounce","href","selectCurrentLocation","body","classList","add","remove","handleLocationClick","handleCurrentLocationClick","focus","renderSearchInputs","visualViewport","resizeHandler_1","viewport","target","addEventListener","removeEventListener","resolve","sent"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("react");exports.useOutsideClick=function(t,n){var r=e.useCallback((function(e){t.current&&!t.current.contains(e.target)&&n(e.target)}),[]);e.useEffect((function(){return document.addEventListener("mousedown",r),function(){document.removeEventListener("mousedown",r)}}))};
2
- //# sourceMappingURL=useOutsideClick-528bfd6c.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useOutsideClick-528bfd6c.js","sources":["../src/hooks/useOutsideClick.ts"],"sourcesContent":["import { useCallback, useEffect } from 'react'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst useOutsideClick = (ref: any, callback: any) => {\n const handleClick = useCallback((e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target)) {\n callback(e.target)\n }\n }, [])\n\n useEffect(() => {\n document.addEventListener('mousedown', handleClick)\n\n return () => {\n document.removeEventListener('mousedown', handleClick)\n }\n })\n}\n\nexport { useOutsideClick }\n"],"names":["ref","callback","handleClick","useCallback","e","current","contains","target","useEffect","document","addEventListener","removeEventListener"],"mappings":"4DAGwB,SAACA,EAAUC,GACjC,IAAMC,EAAcC,eAAY,SAACC,GAC3BJ,EAAIK,UAAYL,EAAIK,QAAQC,SAASF,EAAEG,SACzCN,EAASG,EAAEG,UAEZ,IAEHC,EAAAA,WAAU,WAGR,OAFAC,SAASC,iBAAiB,YAAaR,GAEhC,WACLO,SAASE,oBAAoB,YAAaT"}
@@ -1,2 +0,0 @@
1
- "use strict";var e,t,n,r,a=require("./tslib.es6-f7929e76.js"),o=require("styled-components"),i=require("react"),c=require("./translationsContext-351bc1a7.js"),s={spLayout:!1,pcLayout:!1,tdLayout:!1,mbLayout:!1},u=function(e){var t=Object.keys(e);return t.length?"?"+t.map((function(t){return"".concat(t,"=").concat(e[t])})).join("&"):""},d={BREAK_POINT_SMALL_MOBILE:481,BREAK_POINT_MOBILE:768,BREAK_POINT_TABLET:1024,BREAK_POINT_PC:1200},p={smbDown:"@media (max-width: ".concat(d.BREAK_POINT_SMALL_MOBILE-1,"px)"),smbUp:"@media (min-width: ".concat(d.BREAK_POINT_SMALL_MOBILE,"px)"),mbDown:"@media (max-width: ".concat(d.BREAK_POINT_MOBILE-1,"px)"),mbOnly:"@media (min-width: ".concat(d.BREAK_POINT_SMALL_MOBILE,"px) and (max-width: ").concat(d.BREAK_POINT_MOBILE-1,"px)"),mbUp:"@media (min-width: ".concat(d.BREAK_POINT_MOBILE,"px)"),tdDown:"@media (max-width: ".concat(d.BREAK_POINT_TABLET-1,"px)"),tdOnly:"@media (min-width: ".concat(d.BREAK_POINT_MOBILE,"px) and (max-width: ").concat(d.BREAK_POINT_TABLET-1,"px)"),tdUp:"@media (min-width: ".concat(d.BREAK_POINT_TABLET,"px)"),pcUp:"@media (min-width: ".concat(d.BREAK_POINT_PC,"px)"),pcOnly:"@media (min-width: ".concat(d.BREAK_POINT_TABLET,"px) and (max-width: ").concat(d.BREAK_POINT_PC-1,"px)"),pcDown:"@media (max-width: ".concat(d.BREAK_POINT_PC-1,"px)")},l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function m(e){var t={exports:{}};return e(t,t.exports),t.exports}var _=m((function(e){(function(t){function n(e){var t=new Error(e);return t.name="ValueError",t}function r(e){return function(t){var r=Array.prototype.slice.call(arguments,1),a=0,o="UNDEFINED";return t.replace(/([{}])\1|[{](.*?)(?:!(.+?))?[}]/g,(function(t,i,c,s){if(null!=i)return i;var u=c;if(u.length>0){if("IMPLICIT"===o)throw n("cannot switch from implicit to explicit numbering");o="EXPLICIT"}else{if("EXPLICIT"===o)throw n("cannot switch from explicit to implicit numbering");o="IMPLICIT",u=String(a),a+=1}var d=u.split("."),p=(/^\d+$/.test(d[0])?d:["0"].concat(d)).reduce((function(e,t){return e.reduce((function(e,n){return null!=n&&t in Object(n)?["function"==typeof n[t]?n[t]():n[t]]:[]}),[])}),[r]).reduce((function(e,t){return t}),"");if(null==s)return p;if(Object.prototype.hasOwnProperty.call(e,s))return e[s](p);throw n('no transformer named "'+s+'"')}))}}var a=r({});a.create=r,a.extend=function(e,n){var a=r(n);e.format=function(){var e=Array.prototype.slice.call(arguments);return e.unshift(this),a.apply(t,e)}},e.exports=a}).call(l,l)}));exports.Breakpoints=d,exports.MediaQueries=p,exports.commonjsGlobal=l,exports.createCommonjsModule=m,exports.formatUrlWithPageParam=function(e,t,n){void 0===t&&(t=1),void 0===n&&(n="page");var r=e.split("?"),a=r[0],o=r[1],i=new URLSearchParams(o||""),c={};return i.forEach((function(e,t){e&&(c[t]=e)})),Number(t)>1?c[n]=String(t):delete c[n],a+u(c)},exports.getBoundariesFromMediaQueryKey=function(e){switch(e){case"smbDown":return[0,d.BREAK_POINT_SMALL_MOBILE-1];case"smbUp":return[d.BREAK_POINT_SMALL_MOBILE,0];case"mbDown":return[0,d.BREAK_POINT_MOBILE-1];case"mbOnly":return[d.BREAK_POINT_SMALL_MOBILE,d.BREAK_POINT_MOBILE-1];case"mbUp":return[d.BREAK_POINT_MOBILE,0];case"tdDown":return[0,d.BREAK_POINT_TABLET-1];case"tdOnly":return[d.BREAK_POINT_MOBILE,d.BREAK_POINT_TABLET-1];case"tdUp":return[d.BREAK_POINT_TABLET,0];case"pcUp":return[d.BREAK_POINT_PC,0];case"pcOnly":return[d.BREAK_POINT_TABLET,d.BREAK_POINT_PC-1];case"pcDown":return[0,d.BREAK_POINT_PC-1]}},exports.makeParams=u,exports.mbLayout=function(){return s.mbLayout||(console.error("mbLayout is deprecated. Use `MediaQueries.tdDown` instead."),s.mbLayout=!0),function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];return o.css(t||(t=a.__makeTemplateObject(["\n @media (max-width: ","px) {\n ",";\n }\n "],["\n @media (max-width: ","px) {\n ",";\n }\n "])),1023,o.css.apply(void 0,a.__spreadArray([e],n,!1)))}},exports.pcLayout=function(e){return s.pcLayout||(console.error("pcLayout is deprecated. if pcLayout(true) use `MediaQueries.mbUp`. If pcLayout() use `MediaQueries.tdUp`."),s.pcLayout=!0),function(t){for(var n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];return o.css(r||(r=a.__makeTemplateObject(["\n @media (min-width: ","px) {\n ",";\n }\n "],["\n @media (min-width: ","px) {\n ",";\n }\n "])),e?768:1024,o.css.apply(void 0,a.__spreadArray([t],n,!1)))}},exports.spLayout=function(){return s.spLayout||(console.error("spLayout is deprecated. Use `MediaQueries.mbDown` instead."),s.spLayout=!0),function(t){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];return o.css(e||(e=a.__makeTemplateObject(["\n @media (max-width: ","px) {\n ",";\n }\n "],["\n @media (max-width: ","px) {\n ",";\n }\n "])),767,o.css.apply(void 0,a.__spreadArray([t],n,!1)))}},exports.stringFormat=_,exports.tdLayout=function(){return s.tdLayout||(console.error("tdLayout is deprecated. Use `MediaQueries.tdOnly` instead."),s.tdLayout=!0),function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return o.css(n||(n=a.__makeTemplateObject(["\n @media (min-width: ","px) and (max-width: ","px) {\n ",";\n }\n "],["\n @media (min-width: ","px) and (max-width: ","px) {\n ",";\n }\n "])),768,1023,o.css.apply(void 0,a.__spreadArray([e],t,!1)))}},exports.toggleNoScroll=function(e){"undefined"!=typeof window&&(document.documentElement.classList.toggle("noscroll",e),document.body.classList.toggle("noscroll",e))},exports.useTranslations=function(){var e=i.useContext(c.TranslationsContext)||{locale:"en-PH"},t=e.values,n=e.locale;return i.useMemo((function(){return{t:function(e,r){return t?t[e]?r?_(t[e]||e,r):t[e]||e:(console.warn("[useTranslations] Missing translation for key ".concat(e," and locale ").concat(n)),r?_(c.defaultTranslations[e]||e,r):c.defaultTranslations[e]||e):(console.error("[useTranslations] t method called before translation values are loaded"),e)},locale:n}}),[t,n])};
2
- //# sourceMappingURL=useTranslations-29326df5.js.map