@hhgtech/hhg-components 1.19.6 → 1.19.8
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.
- package/build/browser-image-compression-18a94b0a.js +0 -1
- package/build/cache.js +0 -1
- package/build/care.js +0 -1
- package/build/components/atoms/menu/index.d.ts +10 -0
- package/build/components/atoms/menu/index.styled.d.ts +4 -0
- package/build/components/atoms/menu/item.d.ts +7 -0
- package/build/components/molecules/dropdownSearch/index.styled.d.ts +1 -1
- package/build/components.js +1 -2
- package/build/constants-ea7b35a2.js +0 -1
- package/build/cookieHelper-57954a1e.js +0 -1
- package/build/core-8fcc56eb.js +0 -1
- package/build/core.js +0 -1
- package/build/ecom.js +0 -1
- package/build/esm/browser-image-compression-c934f959.js +0 -1
- package/build/esm/cache.js +0 -1
- package/build/esm/care.js +0 -1
- package/build/esm/components.js +1 -2
- package/build/esm/constants-dc22740c.js +0 -1
- package/build/esm/cookieHelper-083bb24e.js +0 -1
- package/build/esm/core-3d8a3f90.js +0 -1
- package/build/esm/core.js +0 -1
- package/build/esm/ecom.js +0 -1
- package/build/esm/i18n.js +0 -1
- package/build/esm/index-04b83fef.js +0 -1
- package/build/esm/index-130e6504.js +0 -1
- package/build/esm/index-17e56dd2.js +0 -1
- package/build/esm/{index-1317d85c.js → index-a6f4de82.js} +1 -2
- package/build/esm/index.js +1 -2
- package/build/esm/index.styled-4510c448.js +0 -1
- package/build/esm/navigation.js +0 -1
- package/build/esm/theme-d85b3a33.js +0 -1
- package/build/esm/together.js +0 -1
- package/build/esm/translationsContext-b0b4655d.js +0 -1
- package/build/esm/translationsProvider-7ccc3d2b.js +0 -1
- package/build/esm/tslib.es6-fd0a5c98.js +0 -1
- package/build/esm/types-a9462b3e.js +0 -1
- package/build/esm/types-bb039dd3.js +0 -1
- package/build/esm/types-dd4dd7f7.js +0 -1
- package/build/esm/useFbDataLayer-58443cc1.js +0 -1
- package/build/esm/useOutsideClick-6004483a.js +0 -1
- package/build/esm/useScrollbarSize-99db33e1.js +0 -1
- package/build/esm/useTranslations-f3eec98c.js +0 -1
- package/build/i18n.js +0 -1
- package/build/{index-d668b5f3.js → index-3532b37c.js} +1 -2
- package/build/index-568e37d3.js +0 -1
- package/build/index-c9b9e9d1.js +0 -1
- package/build/index-dbb52923.js +0 -1
- package/build/index.js +1 -2
- package/build/index.styled-66508bf8.js +0 -1
- package/build/navigation.js +0 -1
- package/build/theme-79e84625.js +0 -1
- package/build/together.js +0 -1
- package/build/translationsContext-351bc1a7.js +0 -1
- package/build/translationsProvider-d06a3c76.js +0 -1
- package/build/tslib.es6-f7929e76.js +0 -1
- package/build/types-8ced0dc3.js +0 -1
- package/build/types-ed09baa8.js +0 -1
- package/build/types-ff716cdb.js +0 -1
- package/build/useFbDataLayer-508d5450.js +0 -1
- package/build/useOutsideClick-528bfd6c.js +0 -1
- package/build/useScrollbarSize-586f6706.js +0 -1
- package/build/useTranslations-41d2f908.js +0 -1
- package/package.json +1 -1
- package/build/browser-image-compression-18a94b0a.js.map +0 -1
- package/build/cache.js.map +0 -1
- package/build/care.js.map +0 -1
- package/build/components.js.map +0 -1
- package/build/constants-ea7b35a2.js.map +0 -1
- package/build/cookieHelper-57954a1e.js.map +0 -1
- package/build/core-8fcc56eb.js.map +0 -1
- package/build/core.js.map +0 -1
- package/build/ecom.js.map +0 -1
- package/build/esm/assets/svg/StarEmptyIcon.d.ts +0 -3
- package/build/esm/assets/svg/StarFullIcon.d.ts +0 -3
- package/build/esm/assets/svg/StarHalfIcon.d.ts +0 -3
- package/build/esm/assets/svg/index.d.ts +0 -31
- package/build/esm/browser-image-compression-c934f959.js.map +0 -1
- package/build/esm/cache/core.d.ts +0 -7
- package/build/esm/cache/index.d.ts +0 -1
- package/build/esm/cache.js.map +0 -1
- package/build/esm/care/api/paths.d.ts +0 -7
- package/build/esm/care/api/utils.d.ts +0 -5
- package/build/esm/care/components/atoms/icons/index.d.ts +0 -23
- package/build/esm/care/components/organisms/bookingSearchBar/constants.d.ts +0 -4
- package/build/esm/care/components/organisms/bookingSearchBar/index.d.ts +0 -24
- package/build/esm/care/components/organisms/bookingSearchBar/index.styled.d.ts +0 -7
- package/build/esm/care/components/organisms/bookingSearchBar/index.test.d.ts +0 -1
- package/build/esm/care/components/organisms/bookingSearchBar/locationResults/index.d.ts +0 -15
- package/build/esm/care/components/organisms/bookingSearchBar/locationResults/index.styled.d.ts +0 -14
- package/build/esm/care/components/organisms/bookingSearchBar/locationResults/liSkeleton.d.ts +0 -7
- package/build/esm/care/components/organisms/bookingSearchBar/mobileFakeInput/index.d.ts +0 -12
- package/build/esm/care/components/organisms/bookingSearchBar/mobileTopbar/index.d.ts +0 -11
- package/build/esm/care/components/organisms/bookingSearchBar/mobileTopbar/index.styled.d.ts +0 -6
- package/build/esm/care/components/organisms/bookingSearchBar/reducer.d.ts +0 -127
- package/build/esm/care/components/organisms/bookingSearchBar/resultSection/icons.d.ts +0 -5
- package/build/esm/care/components/organisms/bookingSearchBar/resultSection/index.d.ts +0 -16
- package/build/esm/care/components/organisms/bookingSearchBar/resultSection/index.styled.d.ts +0 -11
- package/build/esm/care/components/organisms/bookingSearchBar/resultSectionItem/index.d.ts +0 -10
- package/build/esm/care/components/organisms/bookingSearchBar/resultSectionItem/index.styled.d.ts +0 -10
- package/build/esm/care/components/organisms/bookingSearchBar/searchInputs/index.d.ts +0 -19
- package/build/esm/care/components/organisms/bookingSearchBar/searchInputs/index.styled.d.ts +0 -9
- package/build/esm/care/components/organisms/bookingSearchBar/searchResults/index.d.ts +0 -13
- package/build/esm/care/components/organisms/bookingSearchBar/searchResults/mockData.d.ts +0 -2
- package/build/esm/care/components/organisms/bookingSearchBar/searchSubmitIcon/index.d.ts +0 -6
- package/build/esm/care/components/organisms/bookingSearchBar/types.d.ts +0 -10
- package/build/esm/care/components/organisms/bookingSearchBar/useAnimatedPlaceholder.d.ts +0 -8
- package/build/esm/care/components/organisms/bookingSearchBar/useSearchBarApi.d.ts +0 -16
- package/build/esm/care/components/organisms/bookingSearchBar/utils/Typewriter.d.ts +0 -57
- package/build/esm/care/index.d.ts +0 -3
- package/build/esm/care/interfaces/constants.d.ts +0 -14
- package/build/esm/care/interfaces/types.d.ts +0 -224
- package/build/esm/care.js.map +0 -1
- package/build/esm/components/atoms/alert/index.d.ts +0 -14
- package/build/esm/components/atoms/alert/index.styled.d.ts +0 -3
- package/build/esm/components/atoms/alert/index.test.d.ts +0 -1
- package/build/esm/components/atoms/avatar/index.d.ts +0 -19
- package/build/esm/components/atoms/avatar/index.styled.d.ts +0 -8
- package/build/esm/components/atoms/backdrop/index.d.ts +0 -7
- package/build/esm/components/atoms/backdrop/index.styled.d.ts +0 -3
- package/build/esm/components/atoms/badge/index.d.ts +0 -14
- package/build/esm/components/atoms/badge/index.styled.d.ts +0 -9
- package/build/esm/components/atoms/badge/index.test.d.ts +0 -1
- package/build/esm/components/atoms/borderHeading/index.d.ts +0 -14
- package/build/esm/components/atoms/borderHeading/index.styled.d.ts +0 -1
- package/build/esm/components/atoms/button/index.d.ts +0 -31
- package/build/esm/components/atoms/button/index.styled.d.ts +0 -12
- package/build/esm/components/atoms/button/index.test.d.ts +0 -1
- package/build/esm/components/atoms/checkbox/index.d.ts +0 -13
- package/build/esm/components/atoms/checkbox/index.styled.d.ts +0 -1
- package/build/esm/components/atoms/checkbox/index.test.d.ts +0 -1
- package/build/esm/components/atoms/container/index.d.ts +0 -9
- package/build/esm/components/atoms/container/index.styled.d.ts +0 -1
- package/build/esm/components/atoms/displayWrapper/index.d.ts +0 -10
- package/build/esm/components/atoms/displayWrapper/index.styled.d.ts +0 -4
- package/build/esm/components/atoms/divider/index.d.ts +0 -10
- package/build/esm/components/atoms/divider/index.styled.d.ts +0 -4
- package/build/esm/components/atoms/divider/index.test.d.ts +0 -1
- package/build/esm/components/atoms/drawer/animation.styled.d.ts +0 -9
- package/build/esm/components/atoms/drawer/helpers.d.ts +0 -2
- package/build/esm/components/atoms/drawer/index.d.ts +0 -11
- package/build/esm/components/atoms/drawer/index.styled.d.ts +0 -8
- package/build/esm/components/atoms/fileDropdown/index.d.ts +0 -23
- package/build/esm/components/atoms/fileDropdown/index.styled.d.ts +0 -5
- package/build/esm/components/atoms/fileDropdown/index.test.d.ts +0 -1
- package/build/esm/components/atoms/flag/icons/cambodia.d.ts +0 -4
- package/build/esm/components/atoms/flag/icons/english.d.ts +0 -4
- package/build/esm/components/atoms/flag/icons/india.d.ts +0 -4
- package/build/esm/components/atoms/flag/icons/indonesia.d.ts +0 -6
- package/build/esm/components/atoms/flag/icons/malaysia.d.ts +0 -4
- package/build/esm/components/atoms/flag/icons/myanmar.d.ts +0 -4
- package/build/esm/components/atoms/flag/icons/philippines.d.ts +0 -4
- package/build/esm/components/atoms/flag/icons/taiwan.d.ts +0 -4
- package/build/esm/components/atoms/flag/icons/thailand.d.ts +0 -4
- package/build/esm/components/atoms/flag/icons/vietnam.d.ts +0 -4
- package/build/esm/components/atoms/flag/index.d.ts +0 -13
- package/build/esm/components/atoms/flag/index.styled.d.ts +0 -1
- package/build/esm/components/atoms/flag/index.test.d.ts +0 -1
- package/build/esm/components/atoms/grid/index.d.ts +0 -24
- package/build/esm/components/atoms/grid/index.styled.d.ts +0 -1
- package/build/esm/components/atoms/grid/index.test.d.ts +0 -1
- package/build/esm/components/atoms/heading/index.d.ts +0 -17
- package/build/esm/components/atoms/heading/index.styled.d.ts +0 -7
- package/build/esm/components/atoms/heading/index.test.d.ts +0 -1
- package/build/esm/components/atoms/icons/Ask.d.ts +0 -4
- package/build/esm/components/atoms/icons/BarChart.d.ts +0 -4
- package/build/esm/components/atoms/icons/Booking.d.ts +0 -4
- package/build/esm/components/atoms/icons/Bookmark.d.ts +0 -4
- package/build/esm/components/atoms/icons/Community.d.ts +0 -4
- package/build/esm/components/atoms/icons/EditSpecial.d.ts +0 -4
- package/build/esm/components/atoms/icons/Family.d.ts +0 -4
- package/build/esm/components/atoms/icons/Font.d.ts +0 -4
- package/build/esm/components/atoms/icons/Heart.d.ts +0 -4
- package/build/esm/components/atoms/icons/Home.d.ts +0 -4
- package/build/esm/components/atoms/icons/Like.d.ts +0 -4
- package/build/esm/components/atoms/icons/MyCommunity.d.ts +0 -4
- package/build/esm/components/atoms/icons/PlusSpecial.d.ts +0 -4
- package/build/esm/components/atoms/icons/Recalculate.d.ts +0 -4
- package/build/esm/components/atoms/icons/Scale.d.ts +0 -4
- package/build/esm/components/atoms/icons/Share.d.ts +0 -4
- package/build/esm/components/atoms/icons/Stethoscope.d.ts +0 -4
- package/build/esm/components/atoms/icons/index.d.ts +0 -26
- package/build/esm/components/atoms/index.d.ts +0 -35
- package/build/esm/components/atoms/input/index.d.ts +0 -24
- package/build/esm/components/atoms/input/index.styled.d.ts +0 -5
- package/build/esm/components/atoms/input/index.test.d.ts +0 -1
- package/build/esm/components/atoms/label/index.d.ts +0 -10
- package/build/esm/components/atoms/label/index.test.d.ts +0 -1
- package/build/esm/components/atoms/logo/index.d.ts +0 -18
- package/build/esm/components/atoms/logo/index.test.d.ts +0 -1
- package/build/esm/components/atoms/marryBabyText/index.d.ts +0 -17
- package/build/esm/components/atoms/marryBabyText/index.styled.d.ts +0 -8
- package/build/esm/components/atoms/pagination/index.d.ts +0 -14
- package/build/esm/components/atoms/pagination/index.styled.d.ts +0 -3
- package/build/esm/components/atoms/pagination/index.test.d.ts +0 -1
- package/build/esm/components/atoms/progress/index.d.ts +0 -13
- package/build/esm/components/atoms/progress/index.styled.d.ts +0 -1
- package/build/esm/components/atoms/pureInput/index.d.ts +0 -21
- package/build/esm/components/atoms/pureInput/index.styled.d.ts +0 -5
- package/build/esm/components/atoms/pureInput/index.test.d.ts +0 -1
- package/build/esm/components/atoms/radio/index.d.ts +0 -17
- package/build/esm/components/atoms/radio/index.styled.d.ts +0 -1
- package/build/esm/components/atoms/radio/index.test.d.ts +0 -1
- package/build/esm/components/atoms/rateStars/index.d.ts +0 -33
- package/build/esm/components/atoms/rateStars/index.styled.d.ts +0 -1
- package/build/esm/components/atoms/shadow/index.d.ts +0 -9
- package/build/esm/components/atoms/shadow/index.styled.d.ts +0 -1
- package/build/esm/components/atoms/shadow/index.test.d.ts +0 -1
- package/build/esm/components/atoms/slider/index.d.ts +0 -13
- package/build/esm/components/atoms/slider/index.styled.d.ts +0 -6
- package/build/esm/components/atoms/slider/index.test.d.ts +0 -1
- package/build/esm/components/atoms/tag/index.d.ts +0 -17
- package/build/esm/components/atoms/tag/index.styled.d.ts +0 -11
- package/build/esm/components/atoms/tag/index.test.d.ts +0 -1
- package/build/esm/components/atoms/text/index.d.ts +0 -32
- package/build/esm/components/atoms/text/index.styled.d.ts +0 -9
- package/build/esm/components/atoms/textArea/index.d.ts +0 -15
- package/build/esm/components/atoms/textDivider/index.d.ts +0 -9
- package/build/esm/components/atoms/toggle/index.d.ts +0 -11
- package/build/esm/components/atoms/toggle/index.styled.d.ts +0 -3
- package/build/esm/components/atoms/toggle/index.test.d.ts +0 -1
- package/build/esm/components/atoms/underlinedLink/index.d.ts +0 -10
- package/build/esm/components/atoms/underlinedLink/index.styled.d.ts +0 -1
- package/build/esm/components/atoms/underlinedLink/index.text.d.ts +0 -1
- package/build/esm/components/atoms/uploader/index.d.ts +0 -14
- package/build/esm/components/atoms/uploader/index.styled.d.ts +0 -4
- package/build/esm/components/atoms/uploader/index.test.d.ts +0 -1
- package/build/esm/components/index.d.ts +0 -3
- package/build/esm/components/molecules/ampNextPage/index.d.ts +0 -11
- package/build/esm/components/molecules/articleCard/index.d.ts +0 -47
- package/build/esm/components/molecules/articleCard/index.styled.d.ts +0 -4
- package/build/esm/components/molecules/breadcrumbs/index.d.ts +0 -30
- package/build/esm/components/molecules/breadcrumbs/index.styled.d.ts +0 -3
- package/build/esm/components/molecules/breadcrumbs/index.test.d.ts +0 -1
- package/build/esm/components/molecules/carousel/index.d.ts +0 -17
- package/build/esm/components/molecules/carousel/index.styled.d.ts +0 -8
- package/build/esm/components/molecules/categoryCard/index.d.ts +0 -13
- package/build/esm/components/molecules/categoryCard/index.styled.d.ts +0 -1
- package/build/esm/components/molecules/checkboxGroup/index.d.ts +0 -17
- package/build/esm/components/molecules/checkboxGroup/index.styled.d.ts +0 -1
- package/build/esm/components/molecules/checkboxGroup/index.test.d.ts +0 -1
- package/build/esm/components/molecules/cookieAcceptConfirm/index.d.ts +0 -21
- package/build/esm/components/molecules/cookieAcceptConfirm/index.styled.d.ts +0 -9
- package/build/esm/components/molecules/cookieAcceptConfirm/index.test.d.ts +0 -1
- package/build/esm/components/molecules/datePicker/index.d.ts +0 -25
- package/build/esm/components/molecules/datePicker/index.styled.d.ts +0 -2
- package/build/esm/components/molecules/datePicker/index.test.d.ts +0 -1
- package/build/esm/components/molecules/dateRangePicker/calendar/index.d.ts +0 -11
- package/build/esm/components/molecules/dateRangePicker/calendar/index.styled.d.ts +0 -13
- package/build/esm/components/molecules/dateRangePicker/index.d.ts +0 -14
- package/build/esm/components/molecules/dateRangePicker/index.styled.d.ts +0 -2
- package/build/esm/components/molecules/dateRangePicker/types.d.ts +0 -4
- package/build/esm/components/molecules/dateRangePicker/utils.d.ts +0 -2
- package/build/esm/components/molecules/doctorInfo/index.d.ts +0 -9
- package/build/esm/components/molecules/dropdown/index.d.ts +0 -27
- package/build/esm/components/molecules/dropdown/index.styled.d.ts +0 -6
- package/build/esm/components/molecules/dropdown/index.test.d.ts +0 -1
- package/build/esm/components/molecules/dropdownSearch/index.d.ts +0 -25
- package/build/esm/components/molecules/dropdownSearch/index.styled.d.ts +0 -8
- package/build/esm/components/molecules/floatButtonGroup/index.d.ts +0 -24
- package/build/esm/components/molecules/floatButtonGroup/index.styled.d.ts +0 -9
- package/build/esm/components/molecules/iconText/index.d.ts +0 -10
- package/build/esm/components/molecules/iconText/index.styled.d.ts +0 -1
- package/build/esm/components/molecules/iconText/index.test.d.ts +0 -1
- package/build/esm/components/molecules/index.d.ts +0 -36
- package/build/esm/components/molecules/languageSwitcher/index.d.ts +0 -13
- package/build/esm/components/molecules/languageSwitcher/index.styled.d.ts +0 -1
- package/build/esm/components/molecules/languageSwitcher/tooltipSelection/index.d.ts +0 -19
- package/build/esm/components/molecules/languageSwitcher/tooltipSelection/index.styled.d.ts +0 -5
- package/build/esm/components/molecules/mobileBottomNavigation/MobileBottomNavigationIcon.d.ts +0 -13
- package/build/esm/components/molecules/mobileBottomNavigation/index.d.ts +0 -13
- package/build/esm/components/molecules/mobileBottomNavigation/index.styled.d.ts +0 -9
- package/build/esm/components/molecules/modal/index.d.ts +0 -13
- package/build/esm/components/molecules/modal/index.styled.d.ts +0 -3
- package/build/esm/components/molecules/modal/index.test.d.ts +0 -1
- package/build/esm/components/molecules/popup/index.d.ts +0 -12
- package/build/esm/components/molecules/popup/index.styled.d.ts +0 -2
- package/build/esm/components/molecules/popup/index.test.d.ts +0 -1
- package/build/esm/components/molecules/progressBar/index.d.ts +0 -17
- package/build/esm/components/molecules/progressBar/index.styled.d.ts +0 -12
- package/build/esm/components/molecules/progressBar/index.test.d.ts +0 -1
- package/build/esm/components/molecules/radioGroup/index.d.ts +0 -23
- package/build/esm/components/molecules/radioGroup/index.styled.d.ts +0 -1
- package/build/esm/components/molecules/radioGroup/index.test.d.ts +0 -1
- package/build/esm/components/molecules/scrollList/index.d.ts +0 -35
- package/build/esm/components/molecules/scrollList/index.styled.d.ts +0 -1
- package/build/esm/components/molecules/seoHead/index.d.ts +0 -50
- package/build/esm/components/molecules/sidemenu/index.d.ts +0 -4
- package/build/esm/components/molecules/sidemenu/index.test.d.ts +0 -1
- package/build/esm/components/molecules/sidemenu/menuLink.d.ts +0 -16
- package/build/esm/components/molecules/sidemenu/sideHeader.d.ts +0 -9
- package/build/esm/components/molecules/sidemenu/sideMenu.d.ts +0 -9
- package/build/esm/components/molecules/sidemenu/test.d.ts +0 -3
- package/build/esm/components/molecules/sidemenu/userInfo.d.ts +0 -9
- package/build/esm/components/molecules/starsRatingBox/index.d.ts +0 -23
- package/build/esm/components/molecules/starsRatingBox/index.styled.d.ts +0 -4
- package/build/esm/components/molecules/statisticCard/index.d.ts +0 -12
- package/build/esm/components/molecules/statisticCard/index.styled.d.ts +0 -4
- package/build/esm/components/molecules/statisticCard/index.test.d.ts +0 -1
- package/build/esm/components/molecules/surveyQuestionCard/index.d.ts +0 -2
- package/build/esm/components/molecules/surveyQuestionCard/index.styled.d.ts +0 -4
- package/build/esm/components/molecules/surveyQuestionCard/index.test.d.ts +0 -1
- package/build/esm/components/molecules/surveyQuestionCard/surveyQuestionCard.d.ts +0 -28
- package/build/esm/components/molecules/surveyQuestionCard/surveyQuestionContent.d.ts +0 -38
- package/build/esm/components/molecules/surveyQuestionCard/surveyRadio.d.ts +0 -16
- package/build/esm/components/molecules/surveyQuestionCard/surveyThankyouCard.d.ts +0 -8
- package/build/esm/components/molecules/table/index.d.ts +0 -5
- package/build/esm/components/molecules/table/index.test.d.ts +0 -1
- package/build/esm/components/molecules/table/table.d.ts +0 -10
- package/build/esm/components/molecules/table/tableBody.d.ts +0 -10
- package/build/esm/components/molecules/table/tableCell.d.ts +0 -10
- package/build/esm/components/molecules/table/tableHead.d.ts +0 -9
- package/build/esm/components/molecules/table/tableRow.d.ts +0 -11
- package/build/esm/components/molecules/tabs/index.d.ts +0 -25
- package/build/esm/components/molecules/tabs/index.styled.d.ts +0 -4
- package/build/esm/components/molecules/tabs/index.test.d.ts +0 -1
- package/build/esm/components/organisms/footer/discoverFooter/index.d.ts +0 -12
- package/build/esm/components/organisms/footer/discoverFooter/index.styled.d.ts +0 -2
- package/build/esm/components/organisms/footer/index.d.ts +0 -29
- package/build/esm/components/organisms/footer/maryBabyFooter/index.d.ts +0 -38
- package/build/esm/components/organisms/footer/maryBabyFooter/index.styled.d.ts +0 -8
- package/build/esm/components/organisms/index.d.ts +0 -12
- package/build/esm/components/organisms/navigationBookingButton/index.d.ts +0 -9
- package/build/esm/components/organisms/navigationBookingButton/index.styled.d.ts +0 -1
- package/build/esm/components/organisms/navigationLayout/CustomFooter.d.ts +0 -33
- package/build/esm/components/organisms/navigationLayout/ampSideBar/index.d.ts +0 -28
- package/build/esm/components/organisms/navigationLayout/ampSideBar/index.styled.d.ts +0 -2
- package/build/esm/components/organisms/navigationLayout/constants.d.ts +0 -99
- package/build/esm/components/organisms/navigationLayout/footer/index.d.ts +0 -13
- package/build/esm/components/organisms/navigationLayout/footer/index.styled.d.ts +0 -2
- package/build/esm/components/organisms/navigationLayout/index.d.ts +0 -121
- package/build/esm/components/organisms/navigationLayout/index.styled.d.ts +0 -7
- package/build/esm/components/organisms/navigationLayout/languageWrapper.d.ts +0 -4
- package/build/esm/components/organisms/navigationLayout/languages/default.d.ts +0 -4
- package/build/esm/components/organisms/navigationLayout/layout.d.ts +0 -52
- package/build/esm/components/organisms/navigationLayout/marryBabyText/index.d.ts +0 -17
- package/build/esm/components/organisms/navigationLayout/marryBabyText/index.styled.d.ts +0 -8
- package/build/esm/components/organisms/navigationLayout/maryBabyFooter/index.d.ts +0 -30
- package/build/esm/components/organisms/navigationLayout/maryBabyFooter/index.styled.d.ts +0 -8
- package/build/esm/components/organisms/navigationLayout/menuCareList/categorySkeleton.d.ts +0 -3
- package/build/esm/components/organisms/navigationLayout/menuCareList/index.d.ts +0 -17
- package/build/esm/components/organisms/navigationLayout/menuCareList/index.styled.d.ts +0 -12
- package/build/esm/components/organisms/navigationLayout/menuCategoriesList/categorySkeleton.d.ts +0 -3
- package/build/esm/components/organisms/navigationLayout/menuCategoriesList/helloSites.d.ts +0 -20
- package/build/esm/components/organisms/navigationLayout/menuCategoriesList/index.d.ts +0 -23
- package/build/esm/components/organisms/navigationLayout/menuCategoriesList/index.styled.d.ts +0 -16
- package/build/esm/components/organisms/navigationLayout/menuCategoriesList/marryBaby.d.ts +0 -17
- package/build/esm/components/organisms/navigationLayout/menuCategoriesList/marryBaby.styled.d.ts +0 -11
- package/build/esm/components/organisms/navigationLayout/menuCategoriesList/spotlightsList/index.d.ts +0 -15
- package/build/esm/components/organisms/navigationLayout/menuCategoriesList/spotlightsList/index.styled.d.ts +0 -10
- package/build/esm/components/organisms/navigationLayout/menuCategoriesList/spotlightsList/spotlightSkeleton.d.ts +0 -3
- package/build/esm/components/organisms/navigationLayout/menuCommunitiesList/categorySkeleton.d.ts +0 -3
- package/build/esm/components/organisms/navigationLayout/menuCommunitiesList/helloSites.d.ts +0 -23
- package/build/esm/components/organisms/navigationLayout/menuCommunitiesList/index.d.ts +0 -23
- package/build/esm/components/organisms/navigationLayout/menuCommunitiesList/index.styled.d.ts +0 -13
- package/build/esm/components/organisms/navigationLayout/menuCommunitiesList/marryBaby.d.ts +0 -22
- package/build/esm/components/organisms/navigationLayout/menuCommunitiesList/marryBaby.styled.d.ts +0 -8
- package/build/esm/components/organisms/navigationLayout/menuHealthToolsList/categorySkeleton.d.ts +0 -3
- package/build/esm/components/organisms/navigationLayout/menuHealthToolsList/helloSites.d.ts +0 -25
- package/build/esm/components/organisms/navigationLayout/menuHealthToolsList/index.d.ts +0 -23
- package/build/esm/components/organisms/navigationLayout/menuHealthToolsList/index.styled.d.ts +0 -15
- package/build/esm/components/organisms/navigationLayout/menuHealthToolsList/marryBaby.d.ts +0 -16
- package/build/esm/components/organisms/navigationLayout/menuHealthToolsList/marrybaby.styled.d.ts +0 -8
- package/build/esm/components/organisms/navigationLayout/menuSectionCard/cardSkeleton.d.ts +0 -3
- package/build/esm/components/organisms/navigationLayout/menuSectionCard/index.d.ts +0 -13
- package/build/esm/components/organisms/navigationLayout/menuSectionCard/index.styled.d.ts +0 -2
- package/build/esm/components/organisms/navigationLayout/menuServiceList/categoriesSubList.d.ts +0 -19
- package/build/esm/components/organisms/navigationLayout/menuServiceList/communitySubList.d.ts +0 -20
- package/build/esm/components/organisms/navigationLayout/menuServiceList/index.d.ts +0 -58
- package/build/esm/components/organisms/navigationLayout/menuServiceList/index.styled.d.ts +0 -28
- package/build/esm/components/organisms/navigationLayout/menuServiceList/marryBabyMobileMenuSection.d.ts +0 -9
- package/build/esm/components/organisms/navigationLayout/navigationBar/ArrowLeftPopupIcon.d.ts +0 -2
- package/build/esm/components/organisms/navigationLayout/navigationBar/ClosePopupIcon.d.ts +0 -2
- package/build/esm/components/organisms/navigationLayout/navigationBar/HamburgerIcon.d.ts +0 -9
- package/build/esm/components/organisms/navigationLayout/navigationBar/NavigationBar.types.d.ts +0 -87
- package/build/esm/components/organisms/navigationLayout/navigationBar/NavigationBarMobile.d.ts +0 -3
- package/build/esm/components/organisms/navigationLayout/navigationBar/SearchIcon.d.ts +0 -3
- package/build/esm/components/organisms/navigationLayout/navigationBar/index.d.ts +0 -15
- package/build/esm/components/organisms/navigationLayout/navigationBar/index.styled.d.ts +0 -26
- package/build/esm/components/organisms/navigationLayout/navigationLogoutPopup/index.d.ts +0 -11
- package/build/esm/components/organisms/navigationLayout/navigationLogoutPopup/index.styled.d.ts +0 -6
- package/build/esm/components/organisms/navigationLayout/profilePopup/index.d.ts +0 -22
- package/build/esm/components/organisms/navigationLayout/profilePopupWrapper/index.d.ts +0 -14
- package/build/esm/components/organisms/navigationLayout/profilePopupWrapper/index.styled.d.ts +0 -2
- package/build/esm/components/organisms/navigationLayout/siteWide/index.d.ts +0 -23
- package/build/esm/components/organisms/navigationLayout/siteWide/index.styled.d.ts +0 -3
- package/build/esm/components/organisms/navigationLayout/sponsoredBy/index.d.ts +0 -28
- package/build/esm/components/organisms/navigationLayout/sponsoredBy/index.styled.d.ts +0 -3
- package/build/esm/components/organisms/navigationLayout/tooltipSelection/index.d.ts +0 -17
- package/build/esm/components/organisms/navigationLayout/tooltipSelection/index.styled.d.ts +0 -5
- package/build/esm/components/organisms/navigationLayout/types.d.ts +0 -263
- package/build/esm/components/organisms/navigationLayout/utils.d.ts +0 -62
- package/build/esm/components/organisms/navigationLogoutPopup/index.d.ts +0 -9
- package/build/esm/components/organisms/navigationLogoutPopup/index.styled.d.ts +0 -6
- package/build/esm/components/organisms/navigationProfileButton/index.d.ts +0 -23
- package/build/esm/components/organisms/navigationProfileButton/index.styled.d.ts +0 -5
- package/build/esm/components/organisms/navigationProfileButton/popupWrapper.d.ts +0 -14
- package/build/esm/components/organisms/navigationProfileButton/profilePopup.d.ts +0 -21
- package/build/esm/components/organisms/navigationV2/components/atoms/ArrowLeftPopupIcon.d.ts +0 -2
- package/build/esm/components/organisms/navigationV2/components/atoms/ClosePopupIcon.d.ts +0 -4
- package/build/esm/components/organisms/navigationV2/components/atoms/HamburgerIcon.d.ts +0 -11
- package/build/esm/components/organisms/navigationV2/components/atoms/ItemNav/index.d.ts +0 -8
- package/build/esm/components/organisms/navigationV2/components/atoms/ItemNav/index.styled.d.ts +0 -3
- package/build/esm/components/organisms/navigationV2/components/atoms/PopupWrapper/btnClosePopup.d.ts +0 -6
- package/build/esm/components/organisms/navigationV2/components/atoms/PopupWrapper/index.d.ts +0 -10
- package/build/esm/components/organisms/navigationV2/components/atoms/PopupWrapper/index.styled.d.ts +0 -6
- package/build/esm/components/organisms/navigationV2/components/atoms/SearchIcon.d.ts +0 -3
- package/build/esm/components/organisms/navigationV2/components/atoms/searchInput/index.d.ts +0 -2
- package/build/esm/components/organisms/navigationV2/components/molecules/Categories/index.d.ts +0 -17
- package/build/esm/components/organisms/navigationV2/components/molecules/Categories/index.styled.d.ts +0 -7
- package/build/esm/components/organisms/navigationV2/components/molecules/Spotlights/index.d.ts +0 -15
- package/build/esm/components/organisms/navigationV2/components/molecules/Spotlights/index.styled.d.ts +0 -3
- package/build/esm/components/organisms/navigationV2/components/molecules/menuCareList/Item/index.d.ts +0 -8
- package/build/esm/components/organisms/navigationV2/components/molecules/menuCareList/Item/index.styled.d.ts +0 -7
- package/build/esm/components/organisms/navigationV2/components/molecules/menuCareList/careSpotlights.d.ts +0 -8
- package/build/esm/components/organisms/navigationV2/components/molecules/menuCareList/index.d.ts +0 -12
- package/build/esm/components/organisms/navigationV2/components/molecules/menuCareList/index.styled.d.ts +0 -2
- package/build/esm/components/organisms/navigationV2/components/molecules/menuCategoriesList/Item/index.d.ts +0 -15
- package/build/esm/components/organisms/navigationV2/components/molecules/menuCategoriesList/Item/index.styled.d.ts +0 -3
- package/build/esm/components/organisms/navigationV2/components/molecules/menuCategoriesList/categorySpotlights.d.ts +0 -8
- package/build/esm/components/organisms/navigationV2/components/molecules/menuCategoriesList/index.d.ts +0 -11
- package/build/esm/components/organisms/navigationV2/components/molecules/menuCategoriesList/index.styled.d.ts +0 -3
- package/build/esm/components/organisms/navigationV2/components/molecules/menuCommunitiesList/Item/index.d.ts +0 -8
- package/build/esm/components/organisms/navigationV2/components/molecules/menuCommunitiesList/Item/index.styled.d.ts +0 -10
- package/build/esm/components/organisms/navigationV2/components/molecules/menuCommunitiesList/communitySpotlights.d.ts +0 -7
- package/build/esm/components/organisms/navigationV2/components/molecules/menuCommunitiesList/index.d.ts +0 -12
- package/build/esm/components/organisms/navigationV2/components/molecules/menuCommunitiesList/index.styled.d.ts +0 -3
- package/build/esm/components/organisms/navigationV2/components/molecules/menuHealthToolsList/Item/index.d.ts +0 -8
- package/build/esm/components/organisms/navigationV2/components/molecules/menuHealthToolsList/Item/index.styled.d.ts +0 -6
- package/build/esm/components/organisms/navigationV2/components/molecules/menuHealthToolsList/index.d.ts +0 -13
- package/build/esm/components/organisms/navigationV2/components/molecules/menuHealthToolsList/index.styled.d.ts +0 -2
- package/build/esm/components/organisms/navigationV2/components/molecules/menuHealthToolsList/toolSpotlights.d.ts +0 -8
- package/build/esm/components/organisms/navigationV2/components/molecules/menuServiceList/index.d.ts +0 -8
- package/build/esm/components/organisms/navigationV2/components/molecules/menuServiceList/index.styled.d.ts +0 -23
- package/build/esm/components/organisms/navigationV2/components/molecules/navigationBar/hamburgerMenu.d.ts +0 -9
- package/build/esm/components/organisms/navigationV2/components/molecules/navigationBar/index.d.ts +0 -13
- package/build/esm/components/organisms/navigationV2/components/molecules/navigationBar/index.styled.d.ts +0 -12
- package/build/esm/components/organisms/navigationV2/components/molecules/navigationBar/navigationProfileButtonWithContext.d.ts +0 -4
- package/build/esm/components/organisms/navigationV2/components/molecules/spotlightNoData/index.d.ts +0 -10
- package/build/esm/components/organisms/navigationV2/components/molecules/spotlightNoData/index.styled.d.ts +0 -5
- package/build/esm/components/organisms/navigationV2/constants.d.ts +0 -59
- package/build/esm/components/organisms/navigationV2/hooks/useHeaderHeight.d.ts +0 -13
- package/build/esm/components/organisms/navigationV2/hooks/useInsider.d.ts +0 -1
- package/build/esm/components/organisms/navigationV2/hooks/useNavConfig.d.ts +0 -24
- package/build/esm/components/organisms/navigationV2/hooks/useNavServices.d.ts +0 -2
- package/build/esm/components/organisms/navigationV2/index.d.ts +0 -60
- package/build/esm/components/organisms/navigationV2/index.styled.d.ts +0 -3
- package/build/esm/components/organisms/navigationV2/navigationContext.d.ts +0 -10
- package/build/esm/components/organisms/navigationV2/types.d.ts +0 -244
- package/build/esm/components/organisms/navigationV2/utils.d.ts +0 -57
- package/build/esm/components/organisms/userProfileNavigation/constants.d.ts +0 -8
- package/build/esm/components/organisms/userProfileNavigation/index.d.ts +0 -33
- package/build/esm/components/organisms/userProfileNavigation/index.styled.d.ts +0 -5
- package/build/esm/components/organisms/userProfileNavigation/navHeader/index.d.ts +0 -10
- package/build/esm/components/organisms/userProfileNavigation/navHeader/index.styled.d.ts +0 -7
- package/build/esm/components/organisms/userProfileNavigation/navMenu/index.d.ts +0 -9
- package/build/esm/components/organisms/userProfileNavigation/navMenu/index.styled.d.ts +0 -10
- package/build/esm/components/organisms/userProfileNavigation/navMenu/items.d.ts +0 -3
- package/build/esm/components/organisms/userProfileNavigation/navigationCard/index.d.ts +0 -10
- package/build/esm/components/organisms/userProfileNavigation/navigationCard/index.styled.d.ts +0 -3
- package/build/esm/components/organisms/userProfileNavigation/types.d.ts +0 -17
- package/build/esm/components/organisms/userProfileNavigation/userStats/index.d.ts +0 -9
- package/build/esm/components/organisms/userProfileNavigation/userStats/index.styled.d.ts +0 -9
- package/build/esm/components.js.map +0 -1
- package/build/esm/constants-dc22740c.js.map +0 -1
- package/build/esm/cookieHelper-083bb24e.js.map +0 -1
- package/build/esm/core-3d8a3f90.js.map +0 -1
- package/build/esm/core.d.ts +0 -7
- package/build/esm/core.js.map +0 -1
- package/build/esm/ecom/dataFormatter/index.d.ts +0 -43
- package/build/esm/ecom/dataFormatter/lib/apiTypes.d.ts +0 -575
- package/build/esm/ecom/dataFormatter/lib/dataTypes.d.ts +0 -483
- package/build/esm/ecom/dataFormatter/lib/utils.d.ts +0 -10
- package/build/esm/ecom/index.d.ts +0 -5
- package/build/esm/ecom/interfaces/constants.d.ts +0 -129
- package/build/esm/ecom/interfaces/types.d.ts +0 -85
- package/build/esm/ecom.js.map +0 -1
- package/build/esm/hooks/useCSSFocusPopupHelper.d.ts +0 -10
- package/build/esm/hooks/useDragScroll.d.ts +0 -10
- package/build/esm/hooks/useDropdownSearch.d.ts +0 -15
- package/build/esm/hooks/useFbDataLayer.d.ts +0 -2
- package/build/esm/hooks/useGeolocation.d.ts +0 -7
- package/build/esm/hooks/useGetIsMobile.d.ts +0 -2
- package/build/esm/hooks/useImagesPicker.d.ts +0 -8
- package/build/esm/hooks/useIsInit.d.ts +0 -1
- package/build/esm/hooks/useOutsideClick.d.ts +0 -2
- package/build/esm/hooks/useScreenSize.d.ts +0 -5
- package/build/esm/hooks/useScrollbarSize.d.ts +0 -9
- package/build/esm/hooks/useTranslations.d.ts +0 -10
- package/build/esm/i18n/index.d.ts +0 -3
- package/build/esm/i18n/translations.d.ts +0 -23
- package/build/esm/i18n/translationsContext.d.ts +0 -11
- package/build/esm/i18n/translationsProvider.d.ts +0 -16
- package/build/esm/i18n.js.map +0 -1
- package/build/esm/index-04b83fef.js.map +0 -1
- package/build/esm/index-130e6504.js.map +0 -1
- package/build/esm/index-1317d85c.js.map +0 -1
- package/build/esm/index-17e56dd2.js.map +0 -1
- package/build/esm/index.d.ts +0 -12
- package/build/esm/index.js.map +0 -1
- package/build/esm/index.styled-4510c448.js.map +0 -1
- package/build/esm/interfaces/constants.d.ts +0 -31
- package/build/esm/interfaces/types.d.ts +0 -83
- package/build/esm/misc/cookieHelper.d.ts +0 -3
- package/build/esm/misc/lazyLoad.d.ts +0 -2
- package/build/esm/misc/mockTheme.d.ts +0 -5
- package/build/esm/misc/number.d.ts +0 -1
- package/build/esm/misc/routing.d.ts +0 -6
- package/build/esm/misc/theme.d.ts +0 -161
- package/build/esm/misc/utils.d.ts +0 -49
- package/build/esm/navigation.js.map +0 -1
- package/build/esm/test/testTranslationProvider.d.ts +0 -4
- package/build/esm/theme-d85b3a33.js.map +0 -1
- package/build/esm/together/api/dataTransform.d.ts +0 -29
- package/build/esm/together/api/paths.d.ts +0 -145
- package/build/esm/together/api/utils.d.ts +0 -64
- package/build/esm/together/components/atoms/cardLink/index.d.ts +0 -12
- package/build/esm/together/components/atoms/cardLink/index.styled.d.ts +0 -1
- package/build/esm/together/components/atoms/cardReactions/index.d.ts +0 -23
- package/build/esm/together/components/atoms/cardReactions/index.styled.d.ts +0 -5
- package/build/esm/together/components/atoms/index.d.ts +0 -8
- package/build/esm/together/components/atoms/labelSortPin/index.d.ts +0 -11
- package/build/esm/together/components/atoms/labelSortPin/index.styled.d.ts +0 -1
- package/build/esm/together/components/atoms/labelSortPin/labelPin.d.ts +0 -9
- package/build/esm/together/components/atoms/labelSortPin/labelSorting.d.ts +0 -31
- package/build/esm/together/components/atoms/loading/index.d.ts +0 -7
- package/build/esm/together/components/atoms/loading/index.styled.d.ts +0 -2
- package/build/esm/together/components/atoms/loading/loadingCard.d.ts +0 -7
- package/build/esm/together/components/atoms/tagTopic/index.d.ts +0 -10
- package/build/esm/together/components/atoms/tagTopic/index.styled.d.ts +0 -1
- package/build/esm/together/components/atoms/userAvatar/index.d.ts +0 -10
- package/build/esm/together/components/atoms/userAvatar/index.styled.d.ts +0 -1
- package/build/esm/together/components/molecules/cardAuthor/customMMLocale/formatDistance.d.ts +0 -3
- package/build/esm/together/components/molecules/cardAuthor/customMMLocale/index.d.ts +0 -2
- package/build/esm/together/components/molecules/cardAuthor/customMMLocale/types.d.ts +0 -10
- package/build/esm/together/components/molecules/cardAuthor/index.d.ts +0 -33
- package/build/esm/together/components/molecules/cardAuthor/index.styled.d.ts +0 -3
- package/build/esm/together/components/molecules/createNewPostContent/index.d.ts +0 -19
- package/build/esm/together/components/molecules/createNewPostContent/index.styled.d.ts +0 -1
- package/build/esm/together/components/molecules/createPostDescription/editor.d.ts +0 -20
- package/build/esm/together/components/molecules/createPostDescription/index.d.ts +0 -19
- package/build/esm/together/components/molecules/createPostDescription/index.styled.d.ts +0 -2
- package/build/esm/together/components/molecules/createPostTitle/index.d.ts +0 -9
- package/build/esm/together/components/molecules/createPostTitle/index.styled.d.ts +0 -1
- package/build/esm/together/components/molecules/index.d.ts +0 -18
- package/build/esm/together/components/molecules/inputCommentBar/index.d.ts +0 -19
- package/build/esm/together/components/molecules/inputCommentBar/index.styled.d.ts +0 -1
- package/build/esm/together/components/molecules/inputCommentBar/mainInputTriggerContext.d.ts +0 -9
- package/build/esm/together/components/molecules/popupDanger/index.d.ts +0 -15
- package/build/esm/together/components/molecules/popupDanger/index.styled.d.ts +0 -1
- package/build/esm/together/components/molecules/popupDoctor/index.d.ts +0 -12
- package/build/esm/together/components/molecules/popupDoctor/index.styled.d.ts +0 -8
- package/build/esm/together/components/molecules/popupExpert/index.d.ts +0 -25
- package/build/esm/together/components/molecules/popupExpert/index.styled.d.ts +0 -7
- package/build/esm/together/components/molecules/popupFrame/index.d.ts +0 -11
- package/build/esm/together/components/molecules/popupFrame/index.styled.d.ts +0 -1
- package/build/esm/together/components/molecules/popupFrame/popupShare.d.ts +0 -11
- package/build/esm/together/components/molecules/popupHospital/index.d.ts +0 -30
- package/build/esm/together/components/molecules/popupHospital/index.styled.d.ts +0 -7
- package/build/esm/together/components/molecules/postContent/index.d.ts +0 -15
- package/build/esm/together/components/molecules/postContent/index.styled.d.ts +0 -1
- package/build/esm/together/components/molecules/postImagePreview/imagePreviewPopup.d.ts +0 -10
- package/build/esm/together/components/molecules/postImagePreview/index.d.ts +0 -9
- package/build/esm/together/components/molecules/postImagePreview/index.styled.d.ts +0 -2
- package/build/esm/together/components/molecules/postImagePreview/postSingleImageViewPopup/index.d.ts +0 -7
- package/build/esm/together/components/molecules/postImagePreview/postSingleImageViewPopup/index.styled.d.ts +0 -5
- package/build/esm/together/components/molecules/shareBox/index.d.ts +0 -8
- package/build/esm/together/components/molecules/shareBox/index.styled.d.ts +0 -1
- package/build/esm/together/components/molecules/socialLinkPreview/index.d.ts +0 -9
- package/build/esm/together/components/molecules/socialLinkPreview/index.styled.d.ts +0 -1
- package/build/esm/together/components/molecules/submitReportForm/index.d.ts +0 -11
- package/build/esm/together/components/molecules/submitReportForm/index.styled.d.ts +0 -1
- package/build/esm/together/components/molecules/topicSelectList/index.d.ts +0 -15
- package/build/esm/together/components/molecules/topicSelectList/index.styled.d.ts +0 -1
- package/build/esm/together/components/organisms/cardPost/cardPostPopover.d.ts +0 -14
- package/build/esm/together/components/organisms/cardPost/index.d.ts +0 -27
- package/build/esm/together/components/organisms/cardPost/index.styled.d.ts +0 -1
- package/build/esm/together/components/organisms/cardReply/cardReplyPopover.d.ts +0 -7
- package/build/esm/together/components/organisms/cardReply/index.d.ts +0 -18
- package/build/esm/together/components/organisms/cardReply/index.styled.d.ts +0 -1
- package/build/esm/together/components/organisms/index.d.ts +0 -5
- package/build/esm/together/components/organisms/popoverMenu/index.d.ts +0 -16
- package/build/esm/together/components/organisms/popoverMenu/index.styled.d.ts +0 -2
- package/build/esm/together/components/organisms/popoverMenu/treePopoverMenu.d.ts +0 -29
- package/build/esm/together/hooks/useTogetherAuthRequiredAction.d.ts +0 -23
- package/build/esm/together/index.d.ts +0 -8
- package/build/esm/together/interfaces/constants.d.ts +0 -104
- package/build/esm/together/interfaces/types.d.ts +0 -1283
- package/build/esm/together/togetherComponentGlobalContext.d.ts +0 -72
- package/build/esm/together/utils/apiActions/comment.d.ts +0 -31
- package/build/esm/together/utils/apiActions/community.d.ts +0 -6
- package/build/esm/together/utils/apiActions/post.d.ts +0 -48
- package/build/esm/together/utils/apiActions/topic.d.ts +0 -7
- package/build/esm/together/utils/notification.d.ts +0 -7
- package/build/esm/together/utils/post.d.ts +0 -43
- package/build/esm/together.js.map +0 -1
- package/build/esm/translationsContext-b0b4655d.js.map +0 -1
- package/build/esm/translationsProvider-7ccc3d2b.js.map +0 -1
- package/build/esm/tslib.es6-fd0a5c98.js.map +0 -1
- package/build/esm/types-a9462b3e.js.map +0 -1
- package/build/esm/types-bb039dd3.js.map +0 -1
- package/build/esm/types-dd4dd7f7.js.map +0 -1
- package/build/esm/useFbDataLayer-58443cc1.js.map +0 -1
- package/build/esm/useOutsideClick-6004483a.js.map +0 -1
- package/build/esm/useScrollbarSize-99db33e1.js.map +0 -1
- package/build/esm/useTranslations-f3eec98c.js.map +0 -1
- package/build/i18n.js.map +0 -1
- package/build/index-568e37d3.js.map +0 -1
- package/build/index-c9b9e9d1.js.map +0 -1
- package/build/index-d668b5f3.js.map +0 -1
- package/build/index-dbb52923.js.map +0 -1
- package/build/index.js.map +0 -1
- package/build/index.styled-66508bf8.js.map +0 -1
- package/build/navigation.js.map +0 -1
- package/build/theme-79e84625.js.map +0 -1
- package/build/together.js.map +0 -1
- package/build/translationsContext-351bc1a7.js.map +0 -1
- package/build/translationsProvider-d06a3c76.js.map +0 -1
- package/build/tslib.es6-f7929e76.js.map +0 -1
- package/build/types-8ced0dc3.js.map +0 -1
- package/build/types-ed09baa8.js.map +0 -1
- package/build/types-ff716cdb.js.map +0 -1
- package/build/useFbDataLayer-508d5450.js.map +0 -1
- package/build/useOutsideClick-528bfd6c.js.map +0 -1
- package/build/useScrollbarSize-586f6706.js.map +0 -1
- package/build/useTranslations-41d2f908.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types-a9462b3e.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: { lat?: string; lng?: string } = {}\n if (coordinates) {\n params = {\n lat: coordinates.lat,\n lng: coordinates.lng,\n } as GPSType\n }\n const requests = [fetchCitiesApi(PATHS.GET_CITY_BY_IP, params)]\n if (locale === 'zh-TW') {\n requests.push(fetchCitiesApi(PATHS.GET_CITIES_LIST, { noPaging: 1 }))\n }\n return Promise.all(requests)\n .then(\n ([data1, data2]: [SearchCityByGeoIpApi, SearchCityByKeywordApi]) => {\n const data = { ...data1 }\n if (data2) {\n const citiesIds = data.cities.map((c) => c.id)\n data.cities = data.cities.concat(\n data2.cities.filter((c) => !citiesIds.includes(c.id)),\n )\n }\n dispatch({\n type: ActionTypes.FetchCitiesByGeoIpComplete,\n payload: data,\n })\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","domain","domainLocales","RedirectType","BookingSearchBar","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","requests","noPaging","all","data1","data2","citiesIds_1","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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"}
|