@hhgtech/hhg-components 1.18.64 → 1.18.65
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/components/atoms/index.d.ts +6 -3
- package/build/components/molecules/index.d.ts +16 -8
- package/build/components/organisms/navigationLayout/navigationBar/index.d.ts +1 -1
- package/build/esm/components/atoms/index.d.ts +6 -3
- package/build/esm/components/molecules/index.d.ts +16 -8
- package/build/esm/components/organisms/navigationLayout/navigationBar/index.d.ts +1 -1
- package/build/esm/index-335ef676.js.map +1 -1
- package/build/index-7d955e63.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-7d955e63.js","sources":["../src/components/atoms/pagination/index.tsx","../src/components/atoms/radio/index.tsx","../src/components/atoms/slider/index.tsx","../src/components/atoms/checkbox/index.tsx","../src/assets/svg/StarEmptyIcon.tsx","../src/assets/svg/StarFullIcon.tsx","../src/assets/svg/StarHalfIcon.tsx","../src/components/atoms/icons/index.ts","../src/components/molecules/articleCard/index.tsx","../src/components/molecules/breadcrumbs/index.tsx","../src/components/molecules/datePicker/index.tsx","../src/components/molecules/modal/index.tsx","../node_modules/keen-slider/react.js","../src/components/molecules/carousel/index.tsx","../src/components/organisms/navigationLayout/assets/lock.png","../src/components/organisms/navigationLayout/assets/sehat-badge.png","../src/components/organisms/navigationLayout/menuCategoriesList/index.styled.tsx","../src/components/organisms/navigationLayout/menuServiceList/index.styled.tsx","../src/components/organisms/navigationLayout/navigationBar/index.styled.tsx","../src/components/organisms/navigationLayout/navigationBar/SearchIcon.tsx","../src/components/organisms/navigationLayout/ampSideBar/index.styled.tsx","../src/components/organisms/navigationLayout/ampSideBar/index.tsx","../src/components/organisms/navigationLayout/footer/index.styled.tsx","../src/components/organisms/navigationLayout/footer/index.tsx","../src/components/organisms/navigationLayout/marryBabyText/index.styled.tsx","../src/components/organisms/navigationLayout/marryBabyText/index.tsx","../src/components/organisms/navigationLayout/maryBabyFooter/index.styled.tsx","../src/components/organisms/navigationLayout/maryBabyFooter/index.tsx","../src/components/organisms/navigationLayout/assets/zalo.png","../src/components/organisms/navigationLayout/CustomFooter.tsx","../src/components/organisms/navigationLayout/index.styled.tsx","../src/components/organisms/navigationLayout/layout.tsx","../src/components/organisms/navigationLayout/menuCareList/index.styled.tsx","../src/components/organisms/navigationLayout/menuCareList/categorySkeleton.tsx","../src/components/organisms/navigationLayout/menuCareList/index.tsx","../src/components/organisms/navigationLayout/menuCategoriesList/categorySkeleton.tsx","../src/components/organisms/navigationLayout/menuCategoriesList/spotlightsList/index.styled.tsx","../src/components/organisms/navigationLayout/menuCategoriesList/spotlightsList/spotlightSkeleton.tsx","../src/components/organisms/navigationLayout/menuCategoriesList/spotlightsList/index.tsx","../src/components/organisms/navigationLayout/menuCategoriesList/helloSites.tsx","../src/components/organisms/navigationLayout/menuCategoriesList/marryBaby.styled.tsx","../src/components/organisms/navigationLayout/menuCategoriesList/marryBaby.tsx","../src/components/organisms/navigationLayout/menuCategoriesList/index.tsx","../src/components/organisms/navigationLayout/menuCommunitiesList/index.styled.tsx","../src/components/organisms/navigationLayout/menuCommunitiesList/categorySkeleton.tsx","../src/components/organisms/navigationLayout/menuCommunitiesList/helloSites.tsx","../src/components/organisms/navigationLayout/menuCommunitiesList/marryBaby.styled.tsx","../src/components/organisms/navigationLayout/menuCommunitiesList/marryBaby.tsx","../src/components/organisms/navigationLayout/menuCommunitiesList/index.tsx","../src/components/organisms/navigationLayout/menuHealthToolsList/index.styled.tsx","../src/components/organisms/navigationLayout/menuHealthToolsList/categorySkeleton.tsx","../src/components/organisms/navigationLayout/menuHealthToolsList/helloSites.tsx","../src/components/organisms/navigationLayout/menuHealthToolsList/marrybaby.styled.tsx","../src/components/organisms/navigationLayout/menuHealthToolsList/marryBaby.tsx","../src/components/organisms/navigationLayout/menuHealthToolsList/index.tsx","../src/components/organisms/navigationLayout/menuSectionCard/index.styled.tsx","../src/components/organisms/navigationLayout/menuSectionCard/cardSkeleton.tsx","../src/components/organisms/navigationLayout/menuSectionCard/index.tsx","../src/components/organisms/navigationLayout/navigationBar/ArrowLeftPopupIcon.tsx","../src/components/organisms/navigationLayout/navigationBar/ClosePopupIcon.tsx","../src/components/organisms/navigationLayout/navigationBar/HamburgerIcon.tsx","../src/components/organisms/navigationLayout/navigationBar/NavigationBarMobile.tsx","../src/components/organisms/navigationLayout/navigationBar/index.tsx","../src/components/organisms/navigationLayout/menuServiceList/categoriesSubList.tsx","../src/components/organisms/navigationLayout/menuServiceList/communitySubList.tsx","../src/components/organisms/navigationLayout/menuServiceList/marryBabyMobileMenuSection.tsx","../src/components/organisms/navigationLayout/menuServiceList/index.tsx","../src/components/organisms/navigationLayout/navigationLogoutPopup/index.styled.tsx","../src/components/organisms/navigationLayout/navigationLogoutPopup/index.tsx","../src/components/organisms/navigationLayout/profilePopupWrapper/index.styled.tsx","../src/components/organisms/navigationLayout/profilePopupWrapper/index.tsx","../src/components/organisms/navigationLayout/profilePopup/index.tsx","../src/components/organisms/navigationLayout/tooltipSelection/index.styled.tsx","../src/components/organisms/navigationLayout/tooltipSelection/index.tsx","../src/components/organisms/navigationLayout/index.tsx","../src/components/organisms/navigationLayout/siteWide/index.styled.tsx","../src/components/organisms/navigationLayout/sponsoredBy/index.styled.tsx","../src/components/organisms/navigationLayout/sponsoredBy/index.tsx","../src/components/organisms/footer/discoverFooter/index.styled.tsx","../src/components/organisms/footer/discoverFooter/index.tsx","../src/components/atoms/marryBabyText/index.styled.tsx","../src/components/atoms/marryBabyText/index.tsx","../src/components/organisms/footer/maryBabyFooter/index.styled.tsx","../src/components/organisms/footer/maryBabyFooter/index.tsx","../src/assets/svg/zalo.png","../src/components/atoms/alert/index.tsx","../src/components/molecules/ampNextPage/index.tsx","../src/components/atoms/badge/index.tsx","../src/components/atoms/borderHeading/index.tsx","../src/components/molecules/categoryCard/index.tsx","../src/components/molecules/checkboxGroup/index.tsx","../src/components/molecules/cookieAcceptConfirm/index.tsx","../src/components/atoms/fileDropdown/index.tsx","../src/components/molecules/floatButtonGroup/index.tsx","../src/components/organisms/footer/index.tsx","../src/components/atoms/grid/index.tsx","../src/components/molecules/iconText/index.tsx","../src/components/organisms/navigationLayout/languageWrapper.tsx","../src/components/atoms/progress/index.tsx","../src/components/molecules/progressBar/index.tsx","../src/components/molecules/radioGroup/index.tsx","../src/components/atoms/rateStars/index.tsx","../src/components/molecules/seoHead/index.tsx","../src/components/atoms/shadow/index.tsx","../src/components/organisms/navigationLayout/siteWide/index.tsx","../src/components/molecules/statisticCard/index.tsx","../src/components/molecules/surveyQuestionCard/surveyThankyouCard.tsx","../src/components/molecules/tabs/index.tsx","../src/components/atoms/tag/index.tsx","../src/components/atoms/toggle/index.tsx","../src/components/atoms/underlinedLink/index.tsx","../src/components/atoms/uploader/index.tsx"],"sourcesContent":["import React, { useState, useEffect, useMemo, Fragment } from 'react'\n\nimport { formatUrlWithPageParam } from 'misc/utils'\nimport { CSSProperties } from 'styled-components'\n\nimport {\n StyledPageBlock,\n StyledPagination,\n StyledPaginationBlock,\n} from './index.styled'\n\nexport type Props = {\n pagesAmount: number\n currentPage: number\n onChange: (p: number) => void\n onClick?: (e: Event) => void\n className?: string\n style?: CSSProperties\n href?: string\n queryPageName?: string\n}\n\ntype PropsWithDots = {\n pagesAmount: number\n activePage: number\n handlePageChange: (p: number) => void\n handleClick: (e: any) => void\n href?: string\n queryPageName?: string\n}\n\nconst RenderPagiWithDots = ({\n pagesAmount,\n activePage,\n handlePageChange,\n handleClick,\n href,\n queryPageName = 'page',\n}: PropsWithDots) => {\n const pages = [...Array(pagesAmount)].map((__v, i) => i + 1)\n\n const [visiblePages, setVisiblePages] = useState<Array<number>>(\n activePage <= 4\n ? pages.slice(0, 5)\n : activePage >= pages.length - 3\n ? pages.slice(pages.length - 5, pages.length)\n : pages.slice(activePage - 2, activePage + 1),\n )\n\n useEffect(() => {\n if (activePage <= 4) {\n setVisiblePages(pages.slice(0, 5))\n } else if (activePage >= pages.length - 3) {\n setVisiblePages(pages.slice(pages.length - 5, pages.length))\n } else {\n setVisiblePages(pages.slice(activePage - 2, activePage + 1))\n }\n }, [activePage])\n\n return (\n <Fragment>\n {activePage > 4 && (\n <Fragment>\n <StyledPaginationBlock onClick={() => handlePageChange(1)}>\n {href ? (\n <a href={href} onClick={handleClick}>\n {1}\n </a>\n ) : (\n 1\n )}\n </StyledPaginationBlock>\n\n <StyledPaginationBlock>...</StyledPaginationBlock>\n </Fragment>\n )}\n\n {visiblePages.map((i) => (\n <StyledPaginationBlock\n key={`${'pagination'}+${i}`}\n data-page-active={i === activePage || undefined}\n onClick={() => handlePageChange(i)}\n >\n {href ? (\n <a\n href={formatUrlWithPageParam(href, i, queryPageName)}\n onClick={handleClick}\n >\n {i}\n </a>\n ) : (\n i\n )}\n </StyledPaginationBlock>\n ))}\n\n {activePage < pages.length - 3 && (\n <Fragment>\n <StyledPaginationBlock>...</StyledPaginationBlock>\n\n <StyledPaginationBlock onClick={() => handlePageChange(pages.length)}>\n {href ? (\n <a\n href={formatUrlWithPageParam(href, pages.length, queryPageName)}\n onClick={handleClick}\n >\n {pages.length}\n </a>\n ) : (\n pages.length\n )}\n </StyledPaginationBlock>\n </Fragment>\n )}\n </Fragment>\n )\n}\n\nconst Pagination = ({\n className,\n pagesAmount,\n currentPage,\n onChange,\n onClick,\n style,\n href: _href,\n queryPageName = 'page',\n}: Props) => {\n const pages = [...Array(pagesAmount)].map((__v, i) => i + 1)\n\n const [activePage, setActivePage] = useState(currentPage)\n\n const href = useMemo(() => {\n // Props `href` is updated from the version 1.8.4 and later. Please change the way to use this props properly\n // - To avoid crash app, transform href for the old way and remove the part &page=\n // /care/ho-chi-minh/hospital/da-khoa/&page=\n // -> /care/ho-chi-minh/hospital/da-khoa/\n if (_href && _href.endsWith('&page=')) {\n return _href.replace('&page=', '')\n }\n return _href\n }, [_href])\n\n const totalArray = pagesAmount - 1\n\n const handlePageChange = (p: number) => {\n if (p <= pagesAmount && p > 0) {\n setActivePage(p)\n onChange(p)\n }\n }\n\n const handleClick = (e) => {\n onClick && onClick(e)\n }\n\n useEffect(() => {\n setActivePage(currentPage)\n }, [currentPage])\n\n return (\n <StyledPagination className={className} style={style}>\n <StyledPageBlock\n className=\"prev-page\"\n onClick={() => handlePageChange(activePage - 1)}\n data-last-page={activePage === 1 || undefined}\n >\n {href ? (\n <a\n href={formatUrlWithPageParam(href, activePage, queryPageName)}\n onClick={handleClick}\n >\n <svg\n width=\"7\"\n height=\"10\"\n viewBox=\"0 0 7 10\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.5 9L1.5 5L5.5 1\"\n stroke=\"#2D87F3\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </a>\n ) : (\n <svg\n width=\"7\"\n height=\"10\"\n viewBox=\"0 0 7 10\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.5 9L1.5 5L5.5 1\"\n stroke=\"#2D87F3\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledPageBlock>\n\n {pages.length > 8 ? (\n <RenderPagiWithDots\n pagesAmount={pagesAmount}\n activePage={activePage}\n handlePageChange={handlePageChange}\n handleClick={handleClick}\n href={href}\n queryPageName={queryPageName}\n />\n ) : (\n pages.map((i) => (\n <StyledPaginationBlock\n key={`${'pagination'}+${i}`}\n data-page-active={i === activePage || undefined}\n onClick={() => handlePageChange(i)}\n >\n {href ? (\n <a\n href={formatUrlWithPageParam(href, i, queryPageName)}\n onClick={handleClick}\n >\n {i}\n </a>\n ) : (\n i\n )}\n </StyledPaginationBlock>\n ))\n )}\n\n <StyledPageBlock\n className=\"next-page\"\n onClick={() => handlePageChange(activePage + 1)}\n data-last-page={activePage === totalArray + 1 || undefined}\n >\n {href ? (\n <a\n href={formatUrlWithPageParam(href, activePage, queryPageName)}\n onClick={handleClick}\n >\n <svg\n width=\"7\"\n height=\"10\"\n viewBox=\"0 0 7 10\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1.5 9L5.5 5L1.5 1\"\n stroke=\"#2D87F3\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </a>\n ) : (\n <svg\n width=\"7\"\n height=\"10\"\n viewBox=\"0 0 7 10\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1.5 9L5.5 5L1.5 1\"\n stroke=\"#2D87F3\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledPageBlock>\n </StyledPagination>\n )\n}\n\nexport { Pagination }\n","import React from 'react'\n\nimport { StyledRadio } from './index.styled'\n\nexport type Props = {\n type: 'circle' | 'rectangle'\n size?: 'small' | 'large'\n label: string\n name: string\n value: string\n checked?: boolean\n className?: string\n isDisabled?: boolean\n onChange: (v: string) => void\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n}\n\nconst Radio = ({\n type,\n size = 'small',\n label,\n name,\n checked,\n value,\n className,\n isDisabled = false,\n onChange,\n dataEventCategory,\n dataEventAction,\n dataEventLabel,\n}: Props) => {\n return (\n <StyledRadio\n data-disabled={isDisabled}\n className={className}\n data-type={type}\n data-size={size}\n >\n <input\n type=\"radio\"\n checked={checked}\n name={name}\n id={`${name}-${value}`}\n value={value}\n onChange={() => onChange(value)}\n data-event-category={dataEventCategory}\n data-event-action={dataEventAction}\n data-event-label={dataEventLabel}\n />\n <label htmlFor={`${name}-${value}`}>{label}</label>\n </StyledRadio>\n )\n}\n\nexport { Radio }\n","import React, { CSSProperties, useState, useEffect } from 'react'\n\nimport { Range, getTrackBackground, useThumbOverlap } from 'react-range'\n\nimport { Text } from '../text'\nimport {\n StyledTrackContainer,\n StyledDot,\n StyledSlider,\n StyledThumb,\n StyledTrack,\n StyledLabel,\n} from './index.styled'\n\nexport type Props = {\n step: number\n // min and max comes from api and don't change during the process\n min: number\n max: number\n value: Array<number>\n onChange: (v: Array<number>) => void\n className?: string\n heading?: string\n isMobile?: boolean\n}\n\nfunction ThumbLabel({\n rangeRef,\n values,\n index,\n}: {\n rangeRef: Range | null\n values: number[]\n index: number\n isMobile?: boolean\n}) {\n const [labelValue, labelStyle] = useThumbOverlap(\n rangeRef,\n values,\n index,\n 1,\n ' - ',\n (value) => value,\n )\n\n return (\n <>\n <StyledLabel data-label={index} style={labelStyle as CSSProperties}>\n {labelValue}\n </StyledLabel>\n <StyledDot data-label={index}></StyledDot>\n </>\n )\n}\n\nconst Slider = ({\n step,\n min,\n max,\n value,\n onChange,\n className,\n heading,\n isMobile = false,\n}: Props) => {\n const COLORS = ['#DBDFE5', '#2D87F3', '#DBDFE5']\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const rangeRef: any = React.useRef()\n const [localValue, setLocalValue] = useState(value)\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const Thumb = ({ props, index }: any) => {\n return (\n <StyledThumb {...props}>\n <ThumbLabel\n rangeRef={rangeRef.current}\n values={localValue}\n index={index}\n isMobile={isMobile}\n />\n </StyledThumb>\n )\n }\n\n useEffect(() => {\n setLocalValue(value)\n }, [value[0], value[1]])\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const Track = ({ props, children }: any) => {\n const trackStyles = {\n background: getTrackBackground({\n values: localValue,\n colors: COLORS,\n min,\n max,\n }),\n }\n\n return (\n <>\n {heading && (\n <Text size=\"md\" type=\"bold\">\n {heading}\n </Text>\n )}\n <StyledTrackContainer\n onMouseDown={props.onMouseDown}\n onTouchStart={props.onTouchStart}\n style={{ ...props.style }}\n >\n <StyledTrack ref={props.ref} style={trackStyles}>\n {children}\n </StyledTrack>\n </StyledTrackContainer>\n </>\n )\n }\n\n return (\n <StyledSlider className={className}>\n <Range\n ref={rangeRef}\n values={\n localValue[0] >= min && localValue[1] <= max ? localValue : [min, max]\n }\n onChange={setLocalValue}\n onFinalChange={onChange}\n renderThumb={Thumb}\n renderTrack={Track}\n step={step}\n min={min}\n max={max}\n />\n </StyledSlider>\n )\n}\n\nexport { Slider }\n","import React from 'react'\n\nimport { StyledCheckbox } from './index.styled'\n\nexport type Props = {\n label: string\n name: string\n value: string\n checked: boolean\n className?: string\n isDisabled?: boolean\n onChange?: (value: string, checked: boolean) => void\n isRectangle?: boolean\n}\n\nconst Checkbox = ({\n label,\n name,\n checked,\n className,\n isDisabled,\n onChange,\n value,\n isRectangle,\n}: Props) => {\n return (\n <StyledCheckbox\n className={className}\n data-disabled={isDisabled || undefined}\n data-is-rectangle={isRectangle || undefined}\n data-label-text={label}\n >\n <input\n type=\"checkbox\"\n checked={checked}\n name={name}\n onChange={() => onChange(value, !checked)}\n disabled={isDisabled}\n value={value}\n id={`${name}-${value}`}\n data-label-text={label}\n ></input>\n {!isRectangle && <label htmlFor={`${name}-${value}`}>{label}</label>}\n </StyledCheckbox>\n )\n}\n\nexport { Checkbox }\n","import React from 'react'\n\nconst StarEmptyIcon = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg\n {...props}\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.0002 23.0266L22.8935 27.1866C23.4002 27.4933 24.0268 27.04 23.8935 26.4666L22.0668 18.6266L28.1468 13.36C28.5868 12.9733 28.3602 12.24 27.7602 12.1866L19.7468 11.5066L16.6135 4.11996C16.3868 3.57329 15.6135 3.57329 15.3868 4.11996L12.2535 11.5066L4.24016 12.1866C3.65349 12.24 3.41349 12.9733 3.86682 13.36L9.94682 18.6266L8.12016 26.4666C7.98682 27.04 8.61349 27.4933 9.12016 27.1866L16.0002 23.0266Z\"\n fill=\"#D2D6DC\"\n />\n </svg>\n )\n}\n\nexport default StarEmptyIcon\n","import React from 'react'\n\nconst StarEmptyIcon = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg\n {...props}\n width=\"32\"\n height=\"32\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.0002 23.0266L22.8935 27.1866C23.4002 27.4933 24.0268 27.04 23.8935 26.4666L22.0668 18.6266L28.1468 13.36C28.5868 12.9733 28.3602 12.24 27.7602 12.1866L19.7468 11.5066L16.6135 4.11996C16.3868 3.57329 15.6135 3.57329 15.3868 4.11996L12.2535 11.5066L4.24016 12.1866C3.65349 12.24 3.41349 12.9733 3.86682 13.36L9.94682 18.6266L8.12016 26.4666C7.98682 27.04 8.61349 27.4933 9.12016 27.1866L16.0002 23.0266Z\"\n fill=\"#FFC326\"\n />\n </svg>\n )\n}\n\nexport default StarEmptyIcon\n","import React from 'react'\n\nconst StarEmptyIcon = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.0001 17.2697L17.1701 20.3897C17.5501 20.6197 18.0201 20.2797 17.9201 19.8497L16.5501 13.9697L21.1101 10.0197C21.4401 9.72973 21.2701 9.17973 20.8201 9.13973L14.8101 8.62973L12.4601 3.08973C12.2901 2.67973 11.7101 2.67973 11.5401 3.08973L9.19006 8.62973L3.18006 9.13973C2.74006 9.17973 2.56006 9.72973 2.90006 10.0197L7.46006 13.9697L6.09006 19.8497C5.99006 20.2797 6.46006 20.6197 6.84006 20.3897L12.0001 17.2697Z\"\n fill=\"#E4E8EC\"\n />\n <mask\n id=\"mask0_3555_5815\"\n maskUnits=\"userSpaceOnUse\"\n x=\"2\"\n y=\"0\"\n width=\"10\"\n height=\"24\"\n >\n <rect x=\"2\" width=\"10\" height=\"24\" fill=\"#C4C4C4\" />\n </mask>\n <g mask=\"url(#mask0_3555_5815)\">\n <path\n d=\"M11.9998 17.2697L17.1698 20.3897C17.5498 20.6197 18.0198 20.2797 17.9198 19.8497L16.5498 13.9697L21.1098 10.0197C21.4398 9.72973 21.2698 9.17973 20.8198 9.13973L14.8098 8.62973L12.4598 3.08973C12.2898 2.67973 11.7098 2.67973 11.5398 3.08973L9.18981 8.62973L3.17981 9.13973C2.73981 9.17973 2.55981 9.72973 2.89981 10.0197L7.45981 13.9697L6.08981 19.8497C5.98981 20.2797 6.45981 20.6197 6.83981 20.3897L11.9998 17.2697Z\"\n fill=\"#FFC326\"\n />\n </g>\n </svg>\n )\n}\n\nexport default StarEmptyIcon\n","import React from 'react'\n\nimport Ask from './Ask'\nimport BarChart from './BarChart'\nimport Booking from './Booking'\nimport Bookmark from './Bookmark'\nimport Community from './Community'\nimport EditSpecial from './EditSpecial'\nimport Family from './Family'\nimport Font from './Font'\nimport Heart from './Heart'\nimport Home from './Home'\nimport Like from './Like'\nimport MyCommunity from './MyCommunity'\nimport PlusSpecial from './PlusSpecial'\nimport Recalculate from './Recalculate'\nimport Scale from './Scale'\nimport Share from './Share'\nimport Stethoscope from './Stethoscope'\n\nexport type IconProps = {\n size?: number\n color?: string\n activeColor?: string\n isActive?: boolean\n} & React.HTMLAttributes<HTMLOrSVGElement>\n\nexport const Icon = {\n Ask,\n BarChart,\n Booking,\n Bookmark,\n Community,\n EditSpecial,\n Family,\n Font,\n Heart,\n Home,\n Like,\n MyCommunity,\n PlusSpecial,\n Recalculate,\n Scale,\n Share,\n Stethoscope,\n}\n","import React from 'react'\n\nimport { theme } from 'misc/theme'\nimport { CSSProperties } from 'styled-components'\n\nimport { Heading } from '../../atoms/heading'\nimport { Text } from '../../atoms/text'\nimport {\n StyledCard,\n StyledAuthor,\n StyledExpertName,\n StyledAnchor,\n} from './index.styled'\n\ntype CardAuthorProps = {\n avatarImg: JSX.Element\n authorName: React.ReactNode\n authorLink?: string\n editorName?: string\n editorLink?: string\n size: string\n uploadTime: string\n handleClick: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void\n isBookmarked: boolean\n dataEventCategoryForBookmark?: string\n dataEventActionForBookmark?: string\n dataEventLabelForBookmark?: string\n}\n\nconst CardAuthor = ({\n avatarImg,\n authorName,\n authorLink,\n uploadTime,\n size,\n}: CardAuthorProps) => {\n return (\n <StyledAuthor>\n <div className=\"author\">\n <div className=\"avatar\" data-size={size}>\n {avatarImg}\n </div>\n <div className=\"poster\" data-is-disabled-url={!!!authorLink}>\n <Text size={size === 'lg' ? 'p3' : 'p4'}>\n <a href={authorLink}>\n <span className=\"name\">{authorName}</span>•{' '}\n </a>\n <span>{uploadTime}</span>\n </Text>\n </div>\n </div>\n </StyledAuthor>\n )\n}\n\ntype ArticleExpertProps = {\n isMobile: boolean\n avatarImg: JSX.Element\n name: React.ReactNode\n link?: string\n size: 'lg' | 'md' | 'sm'\n specialty: string\n handleClick: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void\n isBookmarked: boolean\n dataEventCategoryForBookmark?: string\n dataEventActionForBookmark?: string\n dataEventLabelForBookmark?: string\n}\n\nconst CardExpert = ({\n isMobile,\n avatarImg,\n name,\n link,\n size = 'lg',\n specialty,\n handleClick,\n isBookmarked,\n dataEventCategoryForBookmark,\n dataEventActionForBookmark,\n dataEventLabelForBookmark,\n}: ArticleExpertProps) => {\n return (\n <StyledAuthor>\n <div className=\"author\">\n <div className=\"expert-avatar\" data-size={size}>\n {avatarImg}\n </div>\n <div className=\"expert\" data-is-disabled-url={!!!link}>\n {isMobile ? (\n <a href={link}>\n {size === 'lg' ? (\n <>\n <Heading\n tag=\"h6\"\n className=\"expert__name\"\n color={theme.colors.gray600}\n >\n {name}\n </Heading>\n <Text\n color={theme.colors.gray500}\n size=\"p3\"\n className=\"specialty\"\n >\n {specialty}\n </Text>\n </>\n ) : (\n <>\n <Heading\n tag=\"h6\"\n className=\"expert__name\"\n color={theme.colors.gray600}\n >\n {name}\n </Heading>\n </>\n )}\n </a>\n ) : (\n <a href={link}>\n {size === 'lg' ? (\n <>\n <Heading\n tag=\"h6\"\n className=\"expert__name\"\n color={theme.colors.gray600}\n >\n {name}\n </Heading>\n <Text\n color={theme.colors.gray500}\n size=\"p3\"\n className=\"specialty\"\n >\n {specialty}\n </Text>\n </>\n ) : (\n <>\n <StyledExpertName\n color={theme.colors.gray600}\n className=\"expert__name\"\n >\n {name}\n </StyledExpertName>\n <Text\n color={theme.colors.gray500}\n size=\"p4\"\n className=\"specialty\"\n >\n {specialty}\n </Text>\n </>\n )}\n </a>\n )}\n </div>\n </div>\n </StyledAuthor>\n )\n}\n\nexport type Props = {\n banner: JSX.Element\n title: string\n text: string\n avatarImg: JSX.Element\n direction?: 'vertical' | 'horizontal'\n size?: 'sm' | 'lg' | 'md'\n type?: 'author' | 'expert'\n section?: 'home' | 'normal'\n authorName: React.ReactNode\n authorLink?: string\n specialty?: string\n uploadTime: string\n categoryName?: string\n categoryLink?: string\n articleLink?: string\n isBookmarkDisplayed?: boolean\n onBookmark?: () => void\n isBookmark?: boolean\n hasAffiliate?: boolean\n hasButton?: boolean\n textButton?: string\n isMobile?: boolean\n styleBanner?: CSSProperties\n styleLabel?: CSSProperties\n styleTitle?: CSSProperties\n style?: CSSProperties\n className?: string\n dataEventCategoryForCategory?: string\n dataEventActionForCategory?: string\n dataEventLabelForCategory?: string\n dataEventCategoryForTitle?: string\n dataEventActionForTitle?: string\n dataEventLabelForTitle?: string\n dataEventCategoryForBanner?: string\n dataEventActionForBanner?: string\n dataEventLabelForBanner?: string\n dataEventCategoryForBookmark?: string\n dataEventActionForBookmark?: string\n dataEventLabelForBookmark?: string\n onClickCategoryName?: (e: React.MouseEvent) => void\n}\n\nconst ArticleCard = ({\n articleLink,\n authorLink,\n authorName,\n avatarImg,\n banner,\n categoryLink,\n categoryName,\n className,\n dataEventActionForBanner,\n dataEventActionForBookmark,\n dataEventActionForCategory,\n dataEventActionForTitle,\n dataEventCategoryForBanner,\n dataEventCategoryForBookmark,\n dataEventCategoryForCategory,\n dataEventCategoryForTitle,\n dataEventLabelForBanner,\n dataEventLabelForBookmark,\n dataEventLabelForCategory,\n dataEventLabelForTitle,\n direction = 'horizontal',\n hasAffiliate,\n isBookmark = false,\n isBookmarkDisplayed = true,\n isMobile = true,\n onBookmark,\n onClickCategoryName,\n section = 'normal',\n size = 'md',\n specialty,\n style,\n styleBanner,\n styleLabel,\n styleTitle,\n text,\n title,\n type = 'author',\n uploadTime,\n}: Props) => {\n const handleClick = (\n e: React.MouseEvent<HTMLDivElement | HTMLAnchorElement, MouseEvent>,\n ) => {\n e.stopPropagation()\n onBookmark && onBookmark()\n }\n\n const headingTag =\n size === 'lg' && type === 'expert'\n ? 'h4'\n : size === 'lg' && section === 'home'\n ? isMobile\n ? 'h4'\n : 'h3'\n : size === 'lg'\n ? 'h4'\n : 'h5'\n const descriptionTag = size === 'lg' ? 'p3' : 'p4'\n const categoryLabelTag =\n !isMobile && section === 'home' && size === 'lg' && type === 'author'\n ? 'c1'\n : 'c2'\n\n return (\n <StyledCard\n className={className}\n data-size={size}\n style={style}\n data-direction={direction}\n data-is-expert={type === 'expert' || undefined}\n >\n <div className=\"banner\" style={styleBanner}>\n <StyledAnchor\n data-event-category={dataEventCategoryForBanner}\n data-event-action={dataEventActionForBanner}\n data-event-label={dataEventLabelForBanner}\n href={articleLink || '#'}\n >\n {banner}\n </StyledAnchor>\n {hasAffiliate && (\n <div className=\"shoppable\">\n <svg\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 width=\"24\" height=\"24\" rx=\"12\" fill=\"#1B3250\" />\n <path\n d=\"M16.6667 8.00033H15.3333C15.3333 6.16033 13.84 4.66699 12 4.66699C10.16 4.66699 8.66667 6.16033 8.66667 8.00033H7.33333C6.6 8.00033 6 8.60033 6 9.33366V17.3337C6 18.067 6.6 18.667 7.33333 18.667H16.6667C17.4 18.667 18 18.067 18 17.3337V9.33366C18 8.60033 17.4 8.00033 16.6667 8.00033ZM12 6.00033C13.1067 6.00033 14 6.89366 14 8.00033H10C10 6.89366 10.8933 6.00033 12 6.00033ZM12 12.667C10.4467 12.667 9.14 11.607 8.77333 10.167C8.66 9.74699 8.98667 9.33366 9.42 9.33366C9.73333 9.33366 9.98667 9.56033 10.0733 9.86699C10.3067 10.7137 11.08 11.3337 12 11.3337C12.92 11.3337 13.6933 10.7137 13.9267 9.86699C14.0133 9.56033 14.2667 9.33366 14.58 9.33366C15.0133 9.33366 15.3333 9.74699 15.2267 10.167C14.86 11.607 13.5533 12.667 12 12.667Z\"\n fill=\"white\"\n />\n </svg>\n </div>\n )}\n </div>\n <div className=\"content\">\n <div className=\"inner-content\">\n <Text\n style={styleLabel}\n className=\"label\"\n size={categoryLabelTag}\n type=\"caption\"\n >\n <StyledAnchor\n data-event-category={dataEventCategoryForCategory}\n data-event-action={dataEventActionForCategory}\n data-event-label={dataEventLabelForCategory}\n href={categoryLink || '#'}\n onClick={onClickCategoryName}\n >\n {categoryName}\n </StyledAnchor>\n {isBookmarkDisplayed && (\n <a className=\"bookmark\" onClick={handleClick}>\n {!isBookmark ? (\n <svg\n data-event-category={dataEventCategoryForBookmark}\n data-event-action={dataEventActionForBookmark}\n data-event-label={dataEventLabelForBookmark}\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.75 2.25H5.25C4.425 2.25 3.75 2.925 3.75 3.75V15.75L9 13.5L14.25 15.75V3.75C14.25 2.925 13.575 2.25 12.75 2.25Z\"\n fill=\"#D2D6DC\"\n />\n </svg>\n ) : (\n <svg\n data-event-category={dataEventCategoryForBookmark}\n data-event-action={dataEventActionForBookmark}\n data-event-label={dataEventLabelForBookmark}\n width=\"14\"\n height=\"16\"\n viewBox=\"0 0 14 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13 15L7 11.1111L1 15V2.55556C1 2.143 1.18061 1.74733 1.5021 1.45561C1.82359 1.16389 2.25963 1 2.71429 1H11.2857C11.7404 1 12.1764 1.16389 12.4979 1.45561C12.8194 1.74733 13 2.143 13 2.55556V15Z\"\n fill=\"#2ED69E\"\n stroke=\"#2ED69E\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </a>\n )}\n </Text>\n\n <Heading\n tag={headingTag}\n style={styleTitle}\n className=\"title\"\n as={size === 'lg' ? 'h2' : 'h3'}\n >\n <StyledAnchor\n data-event-category={dataEventCategoryForTitle}\n data-event-action={dataEventActionForTitle}\n data-event-label={dataEventLabelForTitle}\n href={articleLink || '#'}\n >\n {title}\n </StyledAnchor>\n </Heading>\n\n {text && (\n <a href={articleLink || '#'}>\n <Text size={descriptionTag} className=\"text\">\n {text}\n </Text>\n </a>\n )}\n </div>\n\n <div className=\"footer\">\n {type === 'author' ? (\n <CardAuthor\n size={size}\n avatarImg={avatarImg}\n authorName={authorName}\n authorLink={authorLink}\n uploadTime={uploadTime}\n handleClick={handleClick}\n isBookmarked={isBookmark}\n dataEventCategoryForBookmark={dataEventCategoryForBookmark}\n dataEventActionForBookmark={dataEventActionForBookmark}\n dataEventLabelForBookmark={dataEventLabelForBookmark}\n />\n ) : (\n <CardExpert\n size={size}\n isMobile={isMobile}\n avatarImg={avatarImg}\n specialty={specialty}\n name={authorName}\n link={authorLink}\n handleClick={handleClick}\n isBookmarked={isBookmark}\n dataEventCategoryForBookmark={dataEventCategoryForBookmark}\n dataEventActionForBookmark={dataEventActionForBookmark}\n dataEventLabelForBookmark={dataEventLabelForBookmark}\n />\n )}\n </div>\n </div>\n </StyledCard>\n )\n}\n\nexport { ArticleCard }\n","import React, { Fragment, useMemo } from 'react'\n\nimport { useId } from 'react-id-generator'\n\nimport { Dropdown, Option } from '../../molecules/dropdown'\nimport {\n StyledBreadcrumb,\n StyledTextLink,\n // StyledLink,\n StyledSeparator,\n} from './index.styled'\n\ntype Page = {\n label: string | JSX.Element\n value: string\n active?: boolean\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n}\n\nexport type Props = {\n size: 'lg' | 'md' | 'sm'\n pages: Array<Page>\n className?: string\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LinkComponent?: React.ComponentType<any> | string\n onChangePage?: () => void\n separator?: string | JSX.Element\n}\n\ninterface MappedPage extends Page {\n isDropdown?: boolean\n dropdownItems?: Array<Option>\n}\nexport type BreadcrumbItemProps = {\n page: MappedPage\n isLast?: boolean\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LinkComponent: React.ComponentType<any> | string\n onChangePage?: () => void\n}\n\nconst BreadcrumbItem = ({\n LinkComponent,\n page,\n isLast,\n onChangePage,\n}: BreadcrumbItemProps) => {\n const {\n label,\n value,\n isDropdown,\n dropdownItems,\n dataEventCategory,\n dataEventAction,\n dataEventLabel,\n } = page\n\n if (isDropdown) {\n return (\n <Dropdown\n options={dropdownItems}\n placeholder=\"...\"\n id=\"\"\n placeholderIcon={null}\n onChange={onChangePage}\n className=\"collapsed-breadcrumb\"\n />\n )\n }\n return (\n <StyledTextLink\n title={typeof label !== 'string' ? value : label}\n data-last={isLast}\n >\n {LinkComponent && (\n <LinkComponent\n data-event-category={dataEventCategory}\n data-event-action={dataEventAction}\n data-event-label={dataEventLabel}\n href={value || '#'}\n >\n {label}\n </LinkComponent>\n )}\n </StyledTextLink>\n )\n}\n\nconst Breadcrumbs = ({\n className,\n pages,\n size,\n LinkComponent = 'a',\n onChangePage,\n separator,\n}: Props) => {\n const mappedList: Array<MappedPage> = useMemo(\n () =>\n pages\n .map((item, index) => {\n if (pages.length > 4) {\n if (index > 1 && index < pages.length - 2) return null\n if (index === 1) {\n return {\n ...item,\n isDropdown: index === 1,\n dropdownItems: pages.slice(1, pages.length - 2),\n }\n }\n return item\n }\n return item\n })\n .filter(Boolean),\n [pages],\n )\n\n const idList = useId(mappedList.length)\n return (\n <StyledBreadcrumb data-size={size} className={className}>\n {mappedList.map((page, index) => {\n const isLast = index + 1 === mappedList.length\n return (\n <Fragment key={idList[index]}>\n <BreadcrumbItem\n LinkComponent={LinkComponent}\n page={page}\n isLast={isLast}\n onChangePage={onChangePage}\n />\n {!isLast && (separator || <StyledSeparator data-size={size} />)}\n </Fragment>\n )\n })}\n </StyledBreadcrumb>\n )\n}\n\nexport { Breadcrumbs }\n","import React, { useEffect, useRef, useState } from 'react'\n\nimport { format } from 'date-fns'\nimport DayPickerInput from 'react-day-picker/DayPickerInput'\nimport { Modifier } from 'react-day-picker/types/Modifiers'\n\nimport { StyledCaptionWrapper, StyledPickerContainer } from './index.styled'\n\n// type DisabledDays = {\n// before?: Date\n// after?: Date\n// }\n\nexport type Props = {\n alignRight?: boolean\n locale?:\n | 'vi-VN'\n | 'id-ID'\n | 'ms-MY'\n | 'km-KH'\n | 'en-PH'\n | 'th-TH'\n | 'my-MM'\n | 'zh-TW'\n | 'hi-IN'\n\n placeholder?: string\n displayDateFormat?: string\n pickedDate?: Date | Array<Date>\n customInput?: React.FunctionComponent<DatePickerCustomInputProps>\n onChange?: (d: Date) => void\n className?: string\n isStatic?: boolean\n disabledDays?: Modifier | Modifier[]\n modifiers?: {\n start?: Date\n end?: Date\n }\n UnHideOnClickOutside?: boolean\n initialMonth?: Date\n}\n\nexport type DatePickerCustomInputProps = {\n onClick: () => void\n}\n\nconst MONTHS_TRANSLATION = {\n 'vi-VN': [\n 'Tháng 1',\n 'Tháng 2',\n 'Tháng 3',\n 'Tháng 4',\n 'Tháng 5',\n 'Tháng 6',\n 'Tháng 7',\n 'Tháng 8',\n 'Tháng 9',\n 'Tháng 10',\n 'Tháng 11',\n 'Tháng 12',\n ],\n 'id-ID': [\n 'Januari',\n 'Februari',\n 'Maret',\n 'April',\n 'Mei',\n 'Juni',\n 'Juli',\n 'Agustus',\n 'September',\n 'Oktober',\n 'November',\n 'Desember',\n ],\n 'ms-MY': [\n 'Januari',\n 'Februari',\n 'Maret',\n 'April',\n 'Mei',\n 'Juni',\n 'Juli',\n 'Agustus',\n 'September',\n 'Oktober',\n 'November',\n 'Desember',\n ],\n 'km-KH': [\n 'មករា',\n 'ខែកុម្ភៈ',\n 'មីនា',\n 'ខែមេសា',\n 'ឧសភា',\n 'មិថុនា',\n 'ខែកក្កដា',\n 'សីហា',\n 'ខែកញ្ញា',\n 'តុលា',\n 'វិច្ឆិកា',\n 'ធ្នូ',\n ],\n 'en-PH': [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n 'th-TH': [\n 'มกราคม',\n 'กุมภาพันธ์',\n 'มีนาคม',\n 'เมษายน',\n 'อาจ',\n 'มิถุนายน',\n 'กรกฎาคม',\n 'สิงหาคม',\n 'กันยายน',\n 'ตุลาคม',\n 'พฤศจิกายน',\n 'ธันวาคม',\n ],\n 'my-MM': [\n 'ဇန်နဝါရီလ',\n 'ဖေဖော်ဝါရီလ',\n 'မတ်လ',\n 'ပြီလ',\n 'မေလ',\n 'ဇွန',\n 'ဇူလိုင်လ',\n 'သြဂုတ်လ',\n 'စက်တင်ဘာ',\n 'အောက်တိုဘာ',\n 'နိုဝင်ဘာ',\n 'ဒီဇင်ဘာ',\n ],\n 'zh-TW': [\n '一月',\n '二月',\n '三月',\n '四月',\n '五月',\n '六月',\n '七月',\n '八月',\n '九月',\n '十月',\n '十一月',\n '十二月',\n ],\n 'hi-IN': [\n 'जनवरी',\n 'फ़रवरी',\n 'जुलूस',\n 'अप्रैल',\n 'मई',\n 'जून',\n 'जुलाई',\n 'अगस्त',\n 'सितंबर',\n 'अक्टूबर',\n 'नवंबर',\n 'दिसंबर',\n ],\n}\n\nconst DatePicker = ({\n alignRight = true,\n placeholder,\n displayDateFormat,\n onChange,\n customInput: CustomInput,\n pickedDate,\n className,\n isStatic,\n disabledDays,\n modifiers,\n UnHideOnClickOutside,\n initialMonth,\n locale = 'en-PH',\n}: Props) => {\n const isDatePickerShown = useRef(false)\n const dateFormatter = format\n const [month, setMonth] = useState(initialMonth || new Date())\n\n const datePickerContainer = useRef<HTMLDivElement>(null)\n const datePicker = useRef<DayPickerInput>(null)\n const defaultDateFormatString = 'yyyy-MM-dd'\n const monthLabels = MONTHS_TRANSLATION[locale]\n\n const handleDaysSelect = (day: Date) => {\n datePicker.current && !isStatic && datePicker.current.hideDayPicker()\n onChange && onChange(day)\n }\n\n const handleDayChanged = (selectedDay: Date) => {\n handleDaysSelect(selectedDay)\n }\n\n const formatPickerDate = (date: Date, format: string) => {\n return dateFormatter(date, format)\n }\n\n const handleDateClick = (e: MouseEvent) => {\n if (UnHideOnClickOutside) return\n if (\n !datePickerContainer.current ||\n !datePickerContainer.current.contains(e.target as Node)\n ) {\n datePicker.current && datePicker.current.hideDayPicker()\n }\n }\n\n // customise the drop downs for Month and year\n const currentYear = new Date().getFullYear()\n const fromMonth = new Date(currentYear - 150, 0)\n const toMonth = new Date(currentYear + 1, 0)\n\n const YearMonthForm = ({\n date,\n // localeUtils,\n onChange,\n monthLabels,\n }: {\n date: Date\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // localeUtils: any\n onChange: (d: Date) => void\n monthLabels: string[]\n }) => {\n // const months = localeUtils.getMonths()\n\n const years = []\n for (let i = toMonth.getFullYear(); i >= fromMonth.getFullYear(); i -= 1) {\n years.push(i)\n }\n\n const handleChange = function handleChange(\n e: React.ChangeEvent<HTMLSelectElement>,\n ) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const { year, month } = e.target.form as any\n onChange(new Date(year.value, month.value))\n }\n\n return (\n <div className=\"DayPicker-Caption\">\n <StyledCaptionWrapper>\n <select name=\"month\" onChange={handleChange} value={date.getMonth()}>\n {monthLabels.map((month: string, i: number) => (\n <option key={month} value={i}>\n {month}\n </option>\n ))}\n </select>\n <select\n name=\"year\"\n onChange={handleChange}\n value={date.getFullYear()}\n >\n {years.map((year) => (\n <option key={year} value={year}>\n {year}\n </option>\n ))}\n </select>\n </StyledCaptionWrapper>\n </div>\n )\n }\n\n const CaptionElement = ({\n date,\n localeUtils,\n }: {\n date: Date\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n localeUtils?: any\n }) => {\n const defaultMonthLabels = localeUtils.getMonths()\n\n return (\n <YearMonthForm\n date={date}\n // localeUtils={localeUtils}\n monthLabels={monthLabels || defaultMonthLabels}\n onChange={setMonth}\n />\n )\n }\n\n useEffect(() => {\n document.addEventListener('mousedown', handleDateClick, false)\n return () => {\n document.removeEventListener('mousedown', handleDateClick, false)\n }\n }, [])\n\n return (\n <StyledPickerContainer\n className={className}\n data-align-right={alignRight}\n ref={datePickerContainer}\n data-is-static={isStatic || undefined}\n >\n <DayPickerInput\n ref={datePicker}\n inputProps={{\n readOnly: true,\n }}\n keepFocus={false}\n classNames={{\n container: 'pickerContainer',\n overlayWrapper: 'pickerOverlayWrapper',\n overlay: 'pickerOverlay',\n }}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n component={\n CustomInput &&\n React.forwardRef((props: DatePickerCustomInputProps, _ref: any) => (\n <CustomInput {...props} />\n ))\n }\n onDayPickerHide={() => {\n isDatePickerShown.current = false\n }}\n onDayPickerShow={() => {\n isDatePickerShown.current = true\n }}\n dayPickerProps={{\n month: month,\n className: 'picker',\n selectedDays: pickedDate,\n canChangeMonth: true,\n enableOutsideDaysClick: isStatic ? false : true,\n firstDayOfWeek: 1,\n captionElement: CaptionElement,\n disabledDays: disabledDays || undefined,\n modifiers: modifiers,\n }}\n format={displayDateFormat || defaultDateFormatString}\n formatDate={formatPickerDate}\n hideOnDayClick={isStatic ? false : true}\n placeholder={placeholder || ''}\n onDayChange={handleDayChanged}\n showOverlay={isStatic}\n />\n </StyledPickerContainer>\n )\n}\n\nexport { DatePicker }\n","import React, { useEffect, useRef, useState } from 'react'\n\nimport { useScrollbarSize } from 'hooks/useScrollbarSize'\nimport { createPortal } from 'react-dom'\n\nimport {\n StyledModal,\n StyledModalWrapper,\n StyledModalMask,\n} from './index.styled'\n\nexport type Props = {\n type: 'tail' | 'lead' | 'form' | 'confirm' | 'profile' | 'video'\n animationType?: 'slideTop' | 'scaleUp'\n closeIcon?: JSX.Element\n isOpen: boolean\n onClose: () => void\n children?: any\n className?: string\n isStaticBackdrop?: boolean\n}\nconst MODAL_ROOT_ID = 'hhg-modals'\nconst getModalsRoot = () => {\n let el = document.getElementById(MODAL_ROOT_ID)\n\n if (!el) {\n el = document.createElement('div')\n el.setAttribute('id', MODAL_ROOT_ID)\n document.body.append(el)\n }\n\n return el\n}\nconst cleanUpModalShow = () => {\n const selector = '.hhg-modal[data-open=\"true\"]'\n const remainingPopupOpened = document.querySelectorAll(selector)\n // Remove the opening class if there are only 1 popup is shown\n if (remainingPopupOpened.length < 1) {\n document.body.classList.remove('hhc-modal-show')\n }\n}\nconst cleanUpDisabledScroll = () => {\n // Clear the overflow if there are only 1 popup is shown. useEffect runs after so the count number becomes zero\n const selector = '.hhg-modal[data-open=\"true\"]'\n const remainingPopupOpened = document.querySelectorAll(selector)\n if (remainingPopupOpened.length < 1) {\n document.body.style.overflow = ''\n document.body.style.paddingRight = ''\n document.body.classList.remove('hhc-disabled-scroll')\n }\n}\n\nconst Modal = ({\n type = 'lead',\n closeIcon,\n isOpen = true,\n onClose,\n children,\n className = '',\n animationType = 'slideTop',\n isStaticBackdrop = false,\n}: Props) => {\n const [mounted, setMounted] = useState(false)\n const elRef = useRef(null)\n const { width: scrollBarWidth } = useScrollbarSize()\n\n if (!elRef.current && mounted) {\n elRef.current = document.createElement('div')\n }\n\n useEffect(() => {\n setMounted(true)\n return () => {\n setMounted(false)\n cleanUpModalShow()\n cleanUpDisabledScroll()\n }\n }, [])\n\n useEffect(() => {\n if (mounted) {\n const modalsRoot = getModalsRoot()\n modalsRoot.appendChild(elRef.current)\n return () => {\n modalsRoot.removeChild(elRef.current)\n }\n }\n }, [mounted])\n\n useEffect(() => {\n if (isOpen) {\n document.body.classList.add('hhc-modal-show')\n } else {\n cleanUpModalShow()\n }\n }, [isOpen])\n\n useEffect(() => {\n if (isOpen) {\n document.body.style.overflow = 'hidden'\n document.body.style.paddingRight = scrollBarWidth + 'px'\n document.body.classList.add('hhc-disabled-scroll')\n } else {\n cleanUpDisabledScroll()\n }\n }, [isOpen, scrollBarWidth])\n\n if (!mounted) return null\n\n const classes = ['hhg-modal__wrapper', className, animationType]\n .filter((s) => s)\n .join(' ')\n\n return createPortal(\n <StyledModalWrapper className={classes} data-open={isOpen} data-type={type}>\n {!isStaticBackdrop && (\n <StyledModalMask\n data-open={isOpen}\n onClick={onClose}\n data-type={type}\n />\n )}\n {!isStaticBackdrop && type === 'video' && !!closeIcon && (\n <div className=\"hhg-modal__close\" onClick={onClose}>\n {closeIcon}\n </div>\n )}\n <StyledModal className=\"hhg-modal\" data-open={isOpen}>\n <div\n className={\n type === 'video' ? 'hhg-modal__video' : 'hhg-modal__content'\n }\n >\n {!!closeIcon && type !== 'video' && (\n <div className=\"hhg-modal__close\" onClick={onClose}>\n {closeIcon}\n </div>\n )}\n {children}\n </div>\n </StyledModal>\n </StyledModalWrapper>,\n elRef.current,\n )\n}\n\nexport { Modal }\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var n=require(\"react\");function t(n){return Array.prototype.slice.call(n)}function e(n,t){var e=Math.floor(n);return e===t||e+1===t?n:t}function i(){return Date.now()}function r(n,t,e){if(t=\"data-keen-slider-\"+t,null===e)return n.removeAttribute(t);n.setAttribute(t,e||\"\")}function a(n,e){return e=e||document,\"function\"==typeof n&&(n=n(e)),Array.isArray(n)?n:\"string\"==typeof n?t(e.querySelectorAll(n)):n instanceof HTMLElement?[n]:n instanceof NodeList?t(n):[]}function o(n){n.raw&&(n=n.raw),n.cancelable&&!n.defaultPrevented&&n.preventDefault()}function u(n){n.raw&&(n=n.raw),n.stopPropagation&&n.stopPropagation()}function c(){var n=[];return{add:function(t,e,i,r){t.addListener?t.addListener(i):t.addEventListener(e,i,r),n.push([t,e,i,r])},input:function(n,t,e,i){this.add(n,t,function(n){return function(t){t.nativeEvent&&(t=t.nativeEvent);var e=t.changedTouches||[],i=t.targetTouches||[],r=t.detail&&t.detail.x?t.detail:null;return n({id:r?r.identifier?r.identifier:\"i\":i[0]?i[0]?i[0].identifier:\"e\":\"d\",idChanged:r?r.identifier?r.identifier:\"i\":e[0]?e[0]?e[0].identifier:\"e\":\"d\",raw:t,x:r&&r.x?r.x:i[0]?i[0].screenX:r?r.x:t.pageX,y:r&&r.y?r.y:i[0]?i[0].screenY:r?r.y:t.pageY})}}(e),i)},purge:function(){n.forEach((function(n){n[0].removeListener?n[0].removeListener(n[2]):n[0].removeEventListener(n[1],n[2],n[3])})),n=[]}}}function s(n,t,e){return Math.min(Math.max(n,t),e)}function d(n){return(n>0?1:0)-(n<0?1:0)||+n}function l(n){var t=n.getBoundingClientRect();return{height:e(t.height,n.offsetHeight),width:e(t.width,n.offsetWidth)}}function f(n,t,e,i){var r=n&&n[t];return null==r?e:i&&\"function\"==typeof r?r():r}function p(n){return Math.round(1e6*n)/1e6}function v(n,t){if(n===t)return!0;var e=typeof n;if(e!==typeof t)return!1;if(\"object\"!==e||null===n||null===t)return\"function\"===e&&n.toString()===t.toString();if(n.length!==t.length||Object.getOwnPropertyNames(n).length!==Object.getOwnPropertyNames(t).length)return!1;for(var i in n)if(!v(n[i],t[i]))return!1;return!0}function h(n,t){return v(n.current,t)||(n.current=t),n.current}var m=function(){return m=Object.assign||function(n){for(var t,e=1,i=arguments.length;e<i;e++)for(var r in t=arguments[e])Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n},m.apply(this,arguments)};function g(n,t,e){if(e||2===arguments.length)for(var i,r=0,a=t.length;r<a;r++)!i&&r in t||(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return n.concat(i||Array.prototype.slice.call(t))}function b(n){var t,e,i,r,a,o;function u(t){o||(o=t),c(!0);var a=t-o;a>i&&(a=i);var l=r[e];if(l[3]<a)return e++,u(t);var f=l[2],p=l[4],v=l[0],h=l[1]*(0,l[5])(0===p?1:(a-f)/p);if(h&&n.track.to(v+h),a<i)return d();o=null,c(!1),s(null),n.emit(\"animationEnded\")}function c(n){t.active=n}function s(n){t.targetIdx=n}function d(){var n;n=u,a=window.requestAnimationFrame(n)}function l(){var t;t=a,window.cancelAnimationFrame(t),c(!1),s(null),o&&n.emit(\"animationStopped\"),o=null}return t={active:!1,start:function(t){if(l(),n.track.details){var a=0,o=n.track.details.position;e=0,i=0,r=t.map((function(n){var t,e=o,r=null!==(t=n.earlyExit)&&void 0!==t?t:n.duration,u=n.easing,c=n.distance*u(r/n.duration)||0;o+=c;var s=i;return i+=r,a+=c,[e,n.distance,s,i,n.duration,u]})),s(n.track.distToIdx(a)),d(),n.emit(\"animationStarted\")}},stop:l,targetIdx:null}}function y(n){var t,e,r,a,o,u,c,l,v,h,m,b,y,x,w=1/0,k=[],M=null,T=0;function C(n){P(T+n)}function E(n){var t=z(T+n).abs;return O(t)?t:null}function z(n){var t=Math.floor(Math.abs(p(n/e))),i=p((n%e+e)%e);i===e&&(i=0);var r=d(n),a=c.indexOf(g([],c,!0).reduce((function(n,t){return Math.abs(t-i)<Math.abs(n-i)?t:n}))),o=a;return r<0&&t++,a===u&&(o=0,t+=r>0?1:-1),{abs:o+t*u*r,origin:a,rel:o}}function I(n,t,e){var i;if(t||!S())return A(n,e);if(!O(n))return null;var r=z(null!=e?e:T),a=r.abs,o=n-r.rel,c=a+o;i=A(c);var s=A(c-u*d(o));return(null!==s&&Math.abs(s)<Math.abs(i)||null===i)&&(i=s),p(i)}function A(n,t){if(null==t&&(t=p(T)),!O(n)||null===n)return null;n=Math.round(n);var i=z(t),r=i.abs,a=i.rel,o=i.origin,s=L(n),d=(t%e+e)%e,l=c[o],f=Math.floor((n-(r-a))/u)*e;return p(l-d-l+c[s]+f+(o===u?e:0))}function O(n){return D(n)===n}function D(n){return s(n,v,h)}function S(){return a.loop}function L(n){return(n%u+u)%u}function P(t){var e;e=t-T,k.push({distance:e,timestamp:i()}),k.length>6&&(k=k.slice(-6)),T=p(t);var r=_().abs;if(r!==M){var a=null!==M;M=r,a&&n.emit(\"slideChanged\")}}function _(i){var c=i?null:function(){if(u){var n=S(),t=n?(T%e+e)%e:T,i=(n?T%e:T)-o[0][2],c=0-(i<0&&n?e-Math.abs(i):i),s=0,l=z(T),f=l.abs,p=l.rel,g=o[p][2],w=o.map((function(t,i){var r=c+s;(r<0-t[0]||r>1)&&(r+=(Math.abs(r)>e-1&&n?e:0)*d(-r));var o=i-p,l=d(o),v=o+f;n&&(-1===l&&r>g&&(v+=u),1===l&&r<g&&(v-=u),null!==m&&v<m&&(r+=e),null!==b&&v>b&&(r-=e));var h=r+t[0]+t[1],y=Math.max(r>=0&&h<=1?1:h<0||r>1?0:r<0?Math.min(1,(t[0]+r)/t[0]):(1-r)/t[0],0);return s+=t[0]+t[1],{abs:v,distance:a.rtl?-1*r+1-t[0]:r,portion:y,size:t[0]}}));return f=D(f),p=L(f),{abs:D(f),length:r,max:x,maxIdx:h,min:y,minIdx:v,position:T,progress:n?t/e:T/r,rel:p,slides:w,slidesLength:e}}}();return t.details=c,n.emit(\"detailsChanged\"),c}return t={absToRel:L,add:C,details:null,distToIdx:E,idxToDist:I,init:function(t){if(function(){if(a=n.options,o=(a.trackConfig||[]).map((function(n){return[f(n,\"size\",1),f(n,\"spacing\",0),f(n,\"origin\",0)]})),u=o.length){e=p(o.reduce((function(n,t){return n+t[0]+t[1]}),0));var t,i=u-1;r=p(e+o[0][2]-o[i][0]-o[i][2]-o[i][1]),c=o.reduce((function(n,e){if(!n)return[0];var i=o[n.length-1],r=n[n.length-1]+(i[0]+i[2])+i[1];return r-=e[2],n[n.length-1]>r&&(r=n[n.length-1]),r=p(r),n.push(r),(!t||t<r)&&(l=n.length-1),t=r,n}),null),0===r&&(l=0),c.push(p(e))}}(),!u)return _(!0);var i;!function(){var t=n.options.range,e=n.options.loop;m=v=e?f(e,\"min\",-1/0):0,b=h=e?f(e,\"max\",w):l;var i=f(t,\"min\",null),r=f(t,\"max\",null);i&&(v=i),r&&(h=r),y=v===-1/0?v:n.track.idxToDist(v||0,!0,0),x=h===w?h:I(h,!0,0),null===r&&(b=h),f(t,\"align\",!1)&&h!==w&&0===o[L(h)][2]&&(x-=1-o[L(h)][0],h=E(x-T)),y=p(y),x=p(x)}(),i=t,Number(i)===i?C(A(D(t))):_()},to:P,velocity:function(){var n=i(),t=k.reduce((function(t,e){var i=e.distance,r=e.timestamp;return n-r>200||(d(i)!==d(t.distance)&&t.distance&&(t={distance:0,lastTimestamp:0,time:0}),t.time&&(t.distance+=i),t.lastTimestamp&&(t.time+=r-t.lastTimestamp),t.lastTimestamp=r),t}),{distance:0,lastTimestamp:0,time:0});return t.distance/t.time||0}}}function x(n){var t,e,i,r,a,o,u;function c(n){return 2*n}function l(n){return s(n,o,u)}function f(n){return 1-Math.pow(1-n,3)}function p(){m();var t=\"free-snap\"===n.options.mode,e=n.track,o=e.velocity();i=d(o);var u=n.track.details,s=[];if(o||!t){var p=v(o),h=p.dist,g=p.dur;if(g=c(g),h*=i,t){var b=e.idxToDist(e.distToIdx(h),!0);b&&(h=b)}s.push({distance:h,duration:g,easing:f});var y=u.position,x=y+h;if(x<r||x>a){var w=x<r?r-y:a-y,k=0,M=o;if(d(w)===i){var T=Math.min(Math.abs(w)/Math.abs(h),1),C=function(n){return 1-Math.pow(1-n,1/3)}(T)*g;s[0].earlyExit=C,M=o*(1-T)}else s[0].earlyExit=0,k+=w;var E=v(M,100),z=E.dist*i;n.options.rubberband&&(s.push({distance:z,duration:c(E.dur),easing:f}),s.push({distance:-z+k,duration:500,easing:f}))}n.animator.start(s)}else n.moveToIdx(l(u.abs),!0,{duration:500,easing:function(n){return 1+--n*n*n*n*n}})}function v(n,t){void 0===t&&(t=1e3);var e=147e-9+(n=Math.abs(n))/t;return{dist:Math.pow(n,2)/e,dur:n/e}}function h(){var t=n.track.details;t&&(r=t.min,a=t.max,o=t.minIdx,u=t.maxIdx)}function m(){n.animator.stop()}n.on(\"updated\",h),n.on(\"optionsChanged\",h),n.on(\"created\",h),n.on(\"dragStarted\",(function(){m(),t=e=n.track.details.abs})),n.on(\"dragEnded\",(function(){var i=n.options.mode;\"snap\"===i&&function(){var i=n.track,o=n.track.details,u=o.position,c=d(i.velocity());(u>a||u<r)&&(c=0);var s=t+c;0===o.slides[i.absToRel(s)].portion&&(s-=c),t!==e&&(s=e),d(i.idxToDist(s,!0))!==c&&(s+=c),s=l(s);var f=i.idxToDist(s,!0);n.animator.start([{distance:f,duration:500,easing:function(n){return 1+--n*n*n*n*n}}])}(),\"free\"!==i&&\"free-snap\"!==i||p()})),n.on(\"dragged\",(function(){e=n.track.details.abs}))}function w(n){var t,e,i,l,f,p,v,h,m,g,b,y,x,w,k,M,T,C,E=c();function z(a){if(p&&h===a.id){var c=D(a);if(m){if(!O(a))return A(a);g=c,m=!1,n.emit(\"dragChecked\")}if(M)return g=c;o(a);var x=function(t){if(T===-1/0&&C===1/0)return t;var i=n.track.details,r=i.length,a=i.position,o=s(t,T-a,C-a);if(0===r)return 0;if(!n.options.rubberband)return o;if(a<=C&&a>=T)return t;if(a<T&&e>0||a>C&&e<0)return t;var u=(a<T?a-T:a-C)/r,c=l*r,d=Math.abs(u*c),p=Math.max(0,1-d/f*2);return p*p*t}(v(g-c)/l*i);e=d(x);var w=n.track.details.position;(w>T&&w<C||w===T&&e>0||w===C&&e<0)&&u(a),b+=x,!y&&Math.abs(b*l)>5&&(y=!0,r(t,\"moves\",\"\")),n.track.add(x),g=c,n.emit(\"dragged\")}}function I(t){!p&&n.track.details&&n.track.details.length&&(y=!1,b=0,p=!0,m=!0,h=t.id,O(t),g=D(t),n.emit(\"dragStarted\"))}function A(e){p&&h===e.idChanged&&(r(t,\"moves\",null),p=!1,n.emit(\"dragEnded\"))}function O(n){var t=S(),e=t?n.y:n.x,i=t?n.x:n.y,r=void 0!==x&&void 0!==w&&Math.abs(w-i)<=Math.abs(x-e);return x=e,w=i,r}function D(n){return S()?n.y:n.x}function S(){return n.options.vertical}function L(){l=n.size,f=S()?window.innerHeight:window.innerWidth;var t=n.track.details;t&&(T=t.min,C=t.max)}function P(){if(E.purge(),n.options.drag&&!n.options.disabled){var e;e=n.options.dragSpeed||1,v=\"function\"==typeof e?e:function(n){return n*e},i=n.options.rtl?-1:1,L(),t=n.container,function(){var n=\"data-keen-slider-clickable\";a(\"[\".concat(n,\"]:not([\").concat(n,\"=false])\"),t).map((function(n){E.add(n,\"mousedown\",u),E.add(n,\"touchstart\",u)}))}(),E.add(t,\"dragstart\",(function(n){o(n)})),E.input(t,\"ksDragStart\",I),E.input(t,\"ksDrag\",z),E.input(t,\"ksDragEnd\",A),E.input(t,\"mousedown\",I),E.input(t,\"mousemove\",z),E.input(t,\"mouseleave\",A),E.input(t,\"mouseup\",A),E.input(t,\"touchstart\",I,{passive:!0}),E.input(t,\"touchmove\",z,{passive:!1}),E.input(t,\"touchend\",A),E.input(t,\"touchcancel\",A),E.add(window,\"wheel\",(function(n){p&&o(n)}));var r=\"data-keen-slider-scrollable\";a(\"[\".concat(r,\"]:not([\").concat(r,\"=false])\"),n.container).map((function(n){return function(n){var t;E.input(n,\"touchstart\",(function(n){t=D(n),M=!0,k=!0}),{passive:!0}),E.input(n,\"touchmove\",(function(e){var i=S(),r=i?n.scrollHeight-n.clientHeight:n.scrollWidth-n.clientWidth,a=t-D(e),u=i?n.scrollTop:n.scrollLeft,c=i&&\"scroll\"===n.style.overflowY||!i&&\"scroll\"===n.style.overflowX;if(t=D(e),(a<0&&u>0||a>0&&u<r)&&k&&c)return M=!0;k=!1,o(e),M=!1})),E.input(n,\"touchend\",(function(){M=!1}))}(n)}))}}n.on(\"updated\",L),n.on(\"optionsChanged\",P),n.on(\"created\",P),n.on(\"destroyed\",E.purge)}function k(n){var t,e,i=null;function r(t,e,i){n.animator.active?o(t,e,i):requestAnimationFrame((function(){return o(t,e,i)}))}function a(){r(!1,!1,e)}function o(e,r,a){var o=0,u=n.size,d=n.track.details;if(d&&t){var l=d.slides;t.forEach((function(n,t){if(e)!i&&r&&c(n,null,a),s(n,null,a);else{if(!l[t])return;var d=l[t].size*u;!i&&r&&c(n,d,a),s(n,l[t].distance*u-o,a),o+=d}}))}}function u(t){return\"performance\"===n.options.renderMode?Math.round(t):t}function c(n,t,e){var i=e?\"height\":\"width\";null!==t&&(t=u(t)+\"px\"),n.style[\"min-\"+i]=t,n.style[\"max-\"+i]=t}function s(n,t,e){if(null!==t){t=u(t);var i=e?t:0;t=\"translate3d(\".concat(e?0:t,\"px, \").concat(i,\"px, 0)\")}n.style.transform=t,n.style[\"-webkit-transform\"]=t}function d(){t&&(o(!0,!0,e),t=null),n.on(\"detailsChanged\",a,!0)}function l(){r(!1,!0,e)}function p(){d(),e=n.options.vertical,n.options.disabled||\"custom\"===n.options.renderMode||(i=\"auto\"===f(n.options.slides,\"perView\",null),n.on(\"detailsChanged\",a),(t=n.slides).length&&l())}n.on(\"created\",p),n.on(\"optionsChanged\",p),n.on(\"beforeOptionsChanged\",(function(){d()})),n.on(\"updated\",l),n.on(\"destroyed\",d)}function M(n,t){return function(e){var i,o,u,s,d,p,v=c();function h(n){var t;r(e.container,\"reverse\",\"rtl\"!==(t=e.container,window.getComputedStyle(t,null).getPropertyValue(\"direction\"))||n?null:\"\"),r(e.container,\"v\",e.options.vertical&&!n?\"\":null),r(e.container,\"disabled\",e.options.disabled&&!n?\"\":null)}function g(){b()&&M()}function b(){var n=null;if(s.forEach((function(t){t.matches&&(n=t.__media)})),n===i)return!1;i||e.emit(\"beforeOptionsChanged\"),i=n;var t=n?u.breakpoints[n]:u;return e.options=m(m({},u),t),h(),I(),A(),C(),!0}function y(n){var t=l(n);return(e.options.vertical?t.height:t.width)/e.size||1}function x(){return e.options.trackConfig.length}function w(n){for(var r in i=!1,u=m(m({},t),n),v.purge(),o=e.size,s=[],u.breakpoints||[]){var a=window.matchMedia(r);a.__media=r,s.push(a),v.add(a,\"change\",g)}v.add(window,\"orientationchange\",z),v.add(window,\"resize\",E),b()}function k(n){e.animator.stop();var t=e.track.details;e.track.init(null!=n?n:t?t.abs:0)}function M(n){k(n),e.emit(\"optionsChanged\")}function T(n,t){if(n)return w(n),void M(t);I(),A();var i=x();C(),x()!==i?M(t):k(t),e.emit(\"updated\")}function C(){var n=e.options.slides;if(\"function\"==typeof n)return e.options.trackConfig=n(e.size,e.slides);for(var t=e.slides,i=t.length,r=\"number\"==typeof n?n:f(n,\"number\",i,!0),a=[],o=f(n,\"perView\",1,!0),u=f(n,\"spacing\",0,!0)/e.size||0,c=\"auto\"===o?u:u/o,s=f(n,\"origin\",\"auto\"),d=0,l=0;l<r;l++){var p=\"auto\"===o?y(t[l]):1/o-u+c,v=\"center\"===s?.5-p/2:\"auto\"===s?0:s;a.push({origin:v,size:p,spacing:u}),d+=p}if(d+=u*(r-1),\"auto\"===s&&!e.options.loop&&1!==o){var h=0;a.map((function(n){var t=d-h;return h+=n.size+u,t>=1||(n.origin=1-t-(d>1?0:1-d)),n}))}e.options.trackConfig=a}function E(){I();var n=e.size;e.options.disabled||n===o||(o=n,T())}function z(){E(),setTimeout(E,500),setTimeout(E,2e3)}function I(){var n=l(e.container);e.size=(e.options.vertical?n.height:n.width)||1}function A(){e.slides=a(e.options.selector,e.container)}e.container=(p=a(n,d||document)).length?p[0]:null,e.destroy=function(){v.purge(),e.emit(\"destroyed\"),h(!0)},e.prev=function(){e.moveToIdx(e.track.details.abs-1,!0)},e.next=function(){e.moveToIdx(e.track.details.abs+1,!0)},e.update=T,w(e.options)}}var T=function(n,t,e){try{return function(n,t){var e,i={};return e={emit:function(n){i[n]&&i[n].forEach((function(n){n(e)}));var t=e.options&&e.options[n];t&&t(e)},moveToIdx:function(n,t,i){var r=e.track.idxToDist(n,t);if(r){var a=e.options.defaultAnimation;e.animator.start([{distance:r,duration:f(i||a,\"duration\",500),easing:f(i||a,\"easing\",(function(n){return 1+--n*n*n*n*n}))}])}},on:function(n,t,e){void 0===e&&(e=!1),i[n]||(i[n]=[]);var r=i[n].indexOf(t);r>-1?e&&delete i[n][r]:e||i[n].push(t)},options:n},function(){if(e.track=y(e),e.animator=b(e),t)for(var n=0,i=t;n<i.length;n++)(0,i[n])(e);e.track.init(e.options.initial||0),e.emit(\"created\")}(),e}(t,g([M(n,{drag:!0,mode:\"snap\",renderMode:\"precision\",rubberband:!0,selector:\".keen-slider__slide\"}),k,w,x],e||[],!0))}catch(n){console.error(n)}};exports.useKeenSlider=function(t,e){var i=n.useRef(null),r=n.useRef(!1),a=n.useRef(t),o=n.useCallback((function(n){n?(a.current=t,i.current=new T(n,t,e),r.current=!1):(i.current&&i.current.destroy&&i.current.destroy(),i.current=null)}),[]);return n.useEffect((function(){r.current?i.current&&i.current.update(a.current):r.current=!0}),[h(a,t)]),[o,i]};\n","import React, { ReactNode, useState } from 'react'\n\nimport { useKeenSlider } from 'keen-slider/react'\n\n// import 'keen-slider/keen-slider.min.css'\nimport { StyledArrow, StyledCarousel, StyledDot } from './index.styled'\n\ntype ArrowProps = {\n onClick: (e: any) => void\n isDisabled: boolean\n className: string\n scheme?: 'hellosites' | 'marrybaby'\n isLeft?: boolean\n}\n\nexport type Props = {\n row: number\n column: number\n children: ReactNode[]\n scheme?: 'hellosites' | 'marrybaby'\n mode?: 'snap' | 'free' | 'free-snap'\n isDotsShown?: boolean\n isArrowShown?: boolean\n classNameLeftArrow?: string\n classNameRightArrow?: string\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n onChangePage?: (page: number) => void\n}\n\nconst Arrow = ({\n isDisabled,\n isLeft,\n onClick,\n className,\n scheme = 'hellosites',\n}: ArrowProps) => {\n return (\n <StyledArrow\n onClick={onClick}\n data-is-disabled={isDisabled}\n data-is-left={isLeft}\n className={className}\n >\n <svg\n width=\"8\"\n height=\"12\"\n viewBox=\"0 0 8 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n {isLeft ? (\n <path\n d=\"M2.92902 6.00015L6.75002 2.17915C7.16402 1.76515 7.16402 1.09315 6.75002 0.679152C6.33602 0.265152 5.66402 0.265152 5.25002 0.679152L0.636023 5.29315C0.245023 5.68415 0.245023 6.31715 0.636023 6.70715L5.25002 11.3212C5.66402 11.7352 6.33602 11.7352 6.75002 11.3212C7.16402 10.9072 7.16402 10.2352 6.75002 9.82115L2.92902 6.00015Z\"\n fill={scheme === 'hellosites' ? '#595959' : '#E55C8A'}\n />\n ) : (\n <path\n d=\"M5.07095 6.00015L1.24995 2.17915C0.835953 1.76515 0.835953 1.09315 1.24995 0.679152C1.66395 0.265152 2.33595 0.265152 2.74995 0.679152L7.36395 5.29315C7.75495 5.68415 7.75495 6.31715 7.36395 6.70715L2.74995 11.3212C2.33595 11.7352 1.66395 11.7352 1.24995 11.3212C0.835953 10.9072 0.835953 10.2352 1.24995 9.82115L5.07095 6.00015Z\"\n fill={scheme === 'hellosites' ? '#595959' : '#E55C8A'}\n />\n )}\n </svg>\n </StyledArrow>\n )\n}\n\nexport const Carousel = ({\n row,\n column,\n children,\n scheme = 'hellosites',\n classNameLeftArrow = '',\n classNameRightArrow = '',\n mode = 'snap',\n isDotsShown = true,\n isArrowShown = false,\n dataEventCategory,\n dataEventAction,\n dataEventLabel,\n onChangePage,\n}: Props) => {\n const [currentSlide, setCurrentSlide] = React.useState(0)\n const [loaded, setLoaded] = useState(false)\n const [sliderRef, instanceRef] = useKeenSlider<HTMLDivElement>({\n defaultAnimation: {\n duration: 1000,\n },\n initial: 0,\n slideChanged(slider) {\n setCurrentSlide(slider.track.details.rel)\n onChangePage && onChangePage(slider.track.details.rel)\n },\n created() {\n setLoaded(true)\n },\n drag: true,\n mode: mode,\n slides: {\n spacing: 12,\n },\n })\n\n // Separate the children by row and column\n const newChildren: ReactNode[][] = []\n const itemsPerPage = row * column\n for (let i = 0; i < children.length; i += itemsPerPage) {\n const chunk = children.slice(i, i + itemsPerPage)\n newChildren.push(chunk)\n }\n\n return (\n <StyledCarousel row={row} column={column}>\n <div className=\"navigation-wrapper\">\n <div ref={sliderRef} className=\"keen-slider slides-wrapper\">\n {newChildren.map((itemsInRow, index) => (\n <div key={index} className=\"keen-slider__slide page-items\">\n {itemsInRow.map((item, index) => (\n <div key={index}>{item}</div>\n ))}\n </div>\n ))}\n </div>\n {loaded && instanceRef.current && isArrowShown && (\n <>\n <Arrow\n isLeft\n onClick={(e) =>\n e.stopPropagation() || instanceRef.current?.prev()\n }\n isDisabled={currentSlide === 0}\n scheme={scheme}\n className={`left-arrow ${classNameLeftArrow}`}\n data-event-category={dataEventCategory}\n data-event-action={dataEventAction}\n data-event-label={dataEventLabel}\n />\n\n <Arrow\n isLeft={false}\n onClick={(e) =>\n e.stopPropagation() || instanceRef.current?.next()\n }\n isDisabled={\n currentSlide ===\n instanceRef.current.track.details.slides.length - 1\n }\n scheme={scheme}\n className={`right-arrow ${classNameRightArrow}`}\n data-event-category={dataEventCategory}\n data-event-action={dataEventAction}\n data-event-label={dataEventLabel}\n />\n </>\n )}\n </div>\n {loaded && instanceRef.current && isDotsShown && (\n <div className=\"dots\">\n {[...Array(instanceRef.current.track.details.slides.length)].map(\n (_, idx) => {\n return (\n <StyledDot\n key={idx}\n onClick={() => {\n instanceRef.current?.moveToIdx(idx)\n }}\n data-is-active={currentSlide === idx}\n data-is-hellosites={scheme === 'hellosites'}\n ></StyledDot>\n )\n },\n )}\n </div>\n )}\n </StyledCarousel>\n )\n}\n","var img = \"data:image/png;base64,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\";\n export default img;","var img = \"data:image/png;base64,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\";\n export default img;","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nimport { Z_INDEX } from '../constants'\n\nexport const StyledCardSkeleton = styled.div`\n & > div {\n width: 100%;\n margin-bottom: 8px;\n }\n`\nexport const StyledContainer = styled.div`\n &[data-category-list-type='sub'] {\n padding-bottom: 72px;\n }\n\n &[data-is-displayed='false'] {\n display: none;\n }\n\n margin-top: 16px;\n`\nexport const StyledListContainer = styled.div`\n & > :not(:last-child) {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n & > div > :not(:last-child) {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n`\n\nexport const StyledCategoryContainer = styled.div`\n display: flex;\n width: 100%;\n height: 48px;\n align-items: center;\n justify-content: space-between;\n padding: 8px;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n\n &[data-is-heading-category='true'] {\n border-bottom: none;\n background-color: ${(props: ThemeProps) => props.theme.colors.blue50};\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n &[data-event-category] > * {\n pointer-events: none;\n }\n`\n\nexport const StyledCategory = styled.div``\n\nexport const StyledCategoryIcon = styled.div`\n display: flex;\n`\n\nexport const StyledCategoryItemAll = styled.div`\n display: flex;\n align-items: center;\n\n ${MediaQueries.mbDown} {\n padding: 8px;\n }\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n line-height: 24px;\n\n &[data-theme='marryBaby'] {\n color: ${(props: ThemeProps) => props.theme.mbColors.pink};\n }\n &[data-event-category] * {\n pointer-events: none;\n }\n`\n\nexport const StyledImageWrapper = styled.div`\n display: flex;\n align-items: center;\n\n margin-left: 10px;\n`\n\nexport const StyledMenuPopupWrapper = styled.div`\n position: fixed;\n z-index: ${Z_INDEX.menuCategoryPopupWrapper};\n top: 69px;\n left: 0;\n width: 100%;\n height: 100%;\n align-items: center;\n background-color: transparent;\n &[data-is-display='false'] {\n display: none;\n }\n`\n\nexport const StyledMenuPopupContainer = styled.div`\n z-index: ${Z_INDEX.menuCategoryPopupContainer};\n align-items: center;\n\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral50};\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\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\nexport const StyledMenuPopupInner = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n padding: 48px 0;\n\n > :first-child {\n flex: 2;\n }\n\n > :not(:first-child) {\n flex: 1;\n }\n`\n\nexport const StyledHealthCategoriesContainer = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n\n &[data-disabled-divider='false'] {\n border-right: 1px solid #e4e8ec;\n }\n`\n\nexport const StyledCategoryItem = styled.div`\n width: 20%;\n padding-right: 16px;\n margin-bottom: 12px;\n\n & > a {\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n }\n\n & > a:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n\n .iconMenu {\n display: flex;\n align-items: center;\n\n > .imageContainer {\n display: flex;\n width: 32px;\n min-width: 32px;\n align-items: center;\n margin-right: 16px;\n }\n }\n &[data-event-category] > * {\n pointer-events: none;\n }\n`\n\nexport const StyledSubCategoryItem = styled.div`\n display: none;\n`\n\nexport const StyledCloseWrapper = styled.div`\n position: absolute;\n top: 16px;\n right: 0;\n display: flex;\n align-items: center;\n cursor: pointer;\n`\n\nexport const StyledSameLineIndicator = styled.div`\n height: 1px;\n flex: 1;\n margin: 0 16px;\n background-color: ${(props: ThemeProps) => props.theme.mbColors.lightGray};\n`\n","import { ThemeProps } from 'misc/theme'\nimport styled, { StyledComponent } from 'styled-components'\n\nimport { Z_INDEX } from '../constants'\n\nexport const StyledMasterMenuContainer = styled.div`\n position: fixed;\n z-index: 200;\n top: 0;\n width: 100vw;\n height: 100%;\n overflow-x: hidden;\n overflow-y: scroll;\n\n &[data-opened='false'] {\n left: -100%;\n //transition: left 0.1s;\n\n animation-duration: 0.2s;\n animation-name: leftDisappears;\n }\n\n &[data-opened='undefined'] {\n left: -100%;\n }\n\n &[data-opened='true'] {\n left: 0;\n //transition: left 0.1s;\n\n animation-duration: 0.2s;\n animation-name: leftAppears;\n }\n\n &[data-sub-level-opened='false'] {\n right: -100%;\n //transition: right 0.1s;\n\n animation-duration: 0.2s;\n animation-name: rightDisappears;\n }\n\n &[data-sub-level-opened='undefined'] {\n right: -100%;\n }\n\n &[data-sub-level-opened='true'] {\n right: 0;\n //transition: right 0.1s;\n\n animation-duration: 0.2s;\n animation-name: rightAppears;\n }\n`\n\nexport const StyledMenuContainer = styled.div`\n position: relative;\n top: 0;\n\n display: flex;\n width: 100vw;\n min-height: 100%;\n flex-direction: column;\n\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n overflow-x: hidden;\n\n &[data-type='category'] {\n z-index: 300;\n\n // momentum scrolling IOS will display under layer if not doing this\n &[data-is-sub-category-opened='true'] {\n animation-duration: 0.2s;\n animation-name: fading;\n }\n }\n\n &[data-type='sub-category'] {\n z-index: 400;\n }\n\n .category-button {\n border: none;\n }\n`\n\nexport const StyledCategoryButtonWrapper = styled.div`\n position: fixed;\n bottom: 0;\n left: 0;\n display: flex;\n width: 100%;\n height: 72px;\n align-items: flex-start;\n justify-content: center;\n\n background: linear-gradient(0deg, #ffffff 0%, rgba(255, 255, 255, 0) 100%);\n\n .button-image {\n stroke-color: blue;\n }\n\n &[data-site-type='marryBaby'] {\n padding: 0 16px;\n .category-button {\n width: 100%;\n height: 48px;\n }\n }\n`\n\nexport const StyledScrollingCategories = styled.div`\n display: flex;\n\n width: 100%;\n height: 100%;\n flex: 1;\n flex-direction: column;\n align-items: center;\n\n padding-top: 0px;\n //position: absolute;\n\n //top: 0px;\n\n //z-index: -1;\n\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n &[data-type='sub-level'] {\n padding: 4px 16px 16px;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n }\n\n & > div:first-child {\n justify-self: flex-start;\n }\n\n &[data-with-search-input='false'] {\n //padding-top: 64px;\n }\n`\n\nexport const StyledCardSpecialty = styled.div`\n display: flex;\n\n &[data-card-array-no-margin-style='true'] {\n margin: 8px 0;\n\n & > div {\n width: 0;\n flex: 1;\n margin: 0 -1px;\n }\n }\n\n &[data-card-array-no-margin-style='false'] {\n margin: 8px -4px;\n\n & > div {\n flex: 1;\n margin: 0 4px;\n }\n }\n`\n\nexport const StyledScrollingWrapper = styled.div`\n position: relative;\n\n display: flex;\n width: 100%;\n height: 100%;\n flex: 1;\n flex-direction: column;\n\n overflow-y: scroll;\n`\n\nexport const StyledScrollingContent = styled.div`\n flex: 1;\n padding: 16px;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n`\nexport const StyledFakeTopAlignment = styled.div`\n margin-top: 64px;\n`\n\nexport const StyledStickyHeader = styled.div`\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n &[data-is-sub-category-opened='true'] {\n display: none;\n }\n\n &[data-hide-on-search='true'] {\n display: none;\n }\n`\n\nexport const StyledCategoryFooter = styled.div`\n padding: 24px 0;\n`\n\nexport const StyledButtonContainerWrapper = styled.div`\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n\n & > div:first-child {\n margin-right: 8px;\n }\n`\n\n// Desktop\nexport const StyledMenuPopupWrapper = styled.div`\n position: fixed;\n z-index: ${Z_INDEX.menuCategoryPopupWrapper};\n top: 69px;\n left: 0;\n width: 100%;\n height: 100%;\n align-items: center;\n background-color: transparent;\n &[data-is-display='false'] {\n display: none;\n }\n`\n\nexport const StyledMenuPopupContainer = styled.div`\n z-index: ${Z_INDEX.menuCategoryPopupContainer};\n align-items: center;\n\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral50};\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\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\nexport const StyleMenuPopupContainer = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n padding: 48px 0;\n`\n\nexport const StyledHealthCategoriesContainer = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n &[data-disabled-divider='false'] {\n border-right: 1px solid #e4e8ec;\n }\n`\n\nexport const StyledCategoryItem = styled.div`\n width: 20%;\n padding-right: 16px;\n margin-bottom: 12px;\n\n & > a {\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n }\n\n & > a:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n\n .iconMenu {\n display: flex;\n align-items: center;\n\n > .imageContainer {\n display: flex;\n width: 32px;\n min-width: 32px;\n align-items: center;\n margin-right: 16px;\n }\n }\n`\nexport const StyledSubCategoryItem = styled.div`\n display: none;\n`\n\nexport const StyledHealthToolItem = styled.div`\n width: 33%;\n height: 48px;\n padding-right: 16px;\n margin-bottom: 12px;\n\n & > a {\n display: flex;\n align-items: center;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n\n & > :first-child {\n margin-right: 16px;\n }\n }\n\n & > a > p:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n`\n\nexport const StyledCategoryItemAll = styled.div`\n display: flex;\n align-items: center;\n\n padding-right: 16px;\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n line-height: 24px;\n\n &[data-theme='marryBaby'] {\n color: ${(props: ThemeProps) => props.theme.mbColors.pink};\n }\n`\n\nexport const StyledImageWrapper = styled.div`\n display: flex;\n align-items: center;\n\n margin-left: 10px;\n`\n\nexport const StyledCloseWrapper = styled.div`\n position: absolute;\n top: 16px;\n right: 0;\n display: flex;\n align-items: center;\n cursor: pointer;\n`\n\nexport const StyledCloseButton: StyledComponent<\n 'div',\n any,\n { on?: string },\n never\n> = styled.div`\n display: block;\n`\n\nexport const StyledAmpSidebar = styled.div`\n .amp-sidebar {\n width: 100vw;\n\n background-color: ${(props: ThemeProps) => props.theme.colors.neutral50};\n }\n\n .categories__spotlight {\n display: grid;\n margin: 16px;\n margin-bottom: 32px;\n grid-gap: 8px;\n grid-template-columns: 1fr 1fr;\n\n a {\n text-decoration: none;\n }\n }\n\n .categoryCard {\n display: flex;\n width: 100%;\n flex-direction: column;\n align-items: center;\n padding: 16px;\n border-radius: 6px;\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n\n svg {\n margin-bottom: 4px;\n }\n\n &.active {\n background: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n box-shadow: 0px 16px 24px rgba(0, 0, 0, 0.06),\n 0px 2px 8px rgba(0, 0, 0, 0.04), 0px 0px 1px rgba(0, 0, 0, 0.04);\n color: white;\n }\n\n &:not(.active) {\n box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.04),\n 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 0px 1px rgba(0, 0, 0, 0.04);\n }\n }\n\n .amp__menu-header {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n\n svg {\n margin-left: 16px;\n }\n\n > div {\n align-self: center;\n\n &:nth-child(2) {\n justify-self: center;\n }\n }\n }\n\n .logo {\n margin: 22px 0;\n }\n\n .categories {\n margin: 0 16px;\n\n li {\n display: block;\n width: 100%;\n\n + li {\n border-top: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n a {\n display: block;\n margin: 12px 0;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n text-decoration: none;\n }\n }\n }\n`\n\nexport const StyledUnderLine = styled.div`\n width: 20%;\n height: 2px;\n\n background-color: ${(props: ThemeProps) => props.theme.mbColors.pink};\n border-radius: 2px;\n`\n\nexport const StyledServiceListMenuSearchInputWrapper = styled.div`\n .fake-search-input {\n margin-bottom: 24px;\n pointer-events: none;\n }\n`\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled, { StyledComponent } from 'styled-components'\n\nimport { Z_INDEX } from '../constants'\n\nexport const StyledHeaderContainer = styled.header`\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n align-items: center;\n justify-content: center;\n /* overflow-x: hidden; */\n\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n &[data-site-type='marryBaby'] {\n border-bottom: none;\n }\n\n &[data-fixed-bar='true'] {\n position: fixed;\n top: 0;\n }\n\n &[data-fixed-bar='false'] {\n position: absolute;\n }\n\n &[data-collapsed='true'] {\n top: -100%;\n transition: top 0.5s;\n }\n\n &[data-collapsed='false'] {\n top: 0px;\n transition: top 0.5s;\n }\n\n .top-bar-header {\n line-height: normal;\n }\n\n &[data-header-type='home'] {\n position: fixed;\n z-index: ${Z_INDEX.headerContainerHome};\n }\n\n &[data-header-type='popup'] {\n position: absolute;\n z-index: ${Z_INDEX.headerContainerPopup};\n }\n\n &[data-header-type='popup-sub-level'] {\n position: absolute;\n z-index: ${Z_INDEX.headerContainerPopupSUbLevel};\n }\n\n &[data-is-displayed='false'] {\n //display: none;\n visibility: hidden;\n }\n\n &[data-is-amp='true'] {\n position: relative;\n }\n\n .menu-handler:focus #categories-menu {\n left: 0;\n transition: left 0.1s;\n }\n`\n\nexport const StyledMenuContainer = styled.header`\n position: absolute;\n bottom: 20px;\n left: 16px;\n display: flex;\n align-items: center;\n`\n\nexport const StyledMenuIcon: StyledComponent<\n 'div',\n any,\n { on?: string },\n never\n> = styled.div`\n margin-right: 8px;\n &[data-event-category] > * {\n pointer-events: none;\n }\n`\n\nexport const StyledMenuSearchInput = styled.div`\n position: relative;\n display: flex;\n width: 100%;\n height: 64px;\n justify-content: center;\n\n padding: 8px 0;\n margin-top: 64px;\n &[data-sponsored='true'] {\n margin-top: 105px;\n }\n &[data-sitewide-banner-shown='true'] {\n margin-top: 128px;\n }\n\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n #search-input-home,\n #search-input-home-temp,\n #search-input-popup {\n position: relative;\n z-index: ${Z_INDEX.menuSearchInputPopup};\n width: 100%;\n box-shadow: 0px 0px 5px rgba(38, 38, 38, 0.08);\n }\n\n .displayIcon {\n z-index: ${Z_INDEX.menuSearchInputDisplayIcon};\n display: flex;\n width: 24px;\n height: 24px;\n align-items: center;\n }\n\n &[data-is-displayed='false'] {\n display: none;\n opacity: 0;\n }\n\n &[data-is-displayed='true'] {\n opacity: 1;\n transition: opacity 0.2s;\n }\n\n &[data-header-type='popup'] {\n position: fixed;\n z-index: ${Z_INDEX.menuSearchPopup};\n left: 0;\n width: 100vw;\n }\n`\n\nexport const StyledDesktopHeaderWrapper = styled.div`\n position: fixed;\n z-index: 201;\n top: 0;\n left: 0;\n\n width: 100%;\n align-items: center;\n\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n transition: height 0.3s;\n\n .menu-handler-item {\n gap: 8px;\n a {\n text-decoration: none;\n }\n }\n\n &[data-site-type='helloSites'] {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n &[data-marry-baby-tone='pink'] {\n background-color: ${(props: ThemeProps) => props.theme.mbColors.lightPink};\n }\n\n //categories\n .menu-handler-categories:focus > .menu-handler-item {\n pointer-events: none;\n }\n .menu-handler-categories:focus-within .top-menu-categories {\n display: block;\n }\n .menu-handler-categories:focus .top-menu-health-tools {\n display: none;\n }\n\n //health tools\n .menu-handler-health-tools:focus > .menu-handler-item {\n pointer-events: none;\n }\n .menu-handler-health-tools:focus-within .top-menu-health-tools {\n display: block;\n }\n .menu-handler-health-tools:focus .top-menu-categories {\n display: none;\n }\n\n //communities\n .menu-handler-communities:focus > .menu-handler-item {\n pointer-events: none;\n }\n .menu-handler-communities:focus-within .top-menu-communities {\n display: block;\n }\n .menu-handler-communities:focus .top-menu-care-specialties {\n display: none;\n }\n\n //care\n .menu-handler-care-specialties:focus > .menu-handler-item {\n pointer-events: none;\n }\n .menu-handler-care-specialties:focus-within .top-menu-care-specialties {\n display: block;\n }\n .menu-handler-care-specialties:focus .top-menu-communities {\n display: none;\n }\n`\n\nexport const StyledDesktopHeader = styled.div`\n display: flex;\n height: 100%;\n align-items: center;\n\n justify-content: space-between;\n padding: 0;\n`\n\nexport const StyledLeftGroup = styled.div`\n display: flex;\n align-items: center;\n`\n\nexport const StyledLogoWrapper = styled.div`\n padding-right: 16px;\n &[data-is-having-border='true'] {\n border-right: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n`\n\nexport const StyledDesktopMenuSearchInput = styled.div`\n padding: 0 16px;\n\n & > div {\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n }\n\n &[data-marry-baby-theme='white'] > div {\n background-color: ${(props: ThemeProps) => props.theme.mbColors.lightGray};\n }\n\n #search-input-home,\n #search-input-home-temp {\n height: 32px;\n box-sizing: border-box;\n padding: 0 16px 0 48px;\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral100};\n border-radius: 6px;\n filter: drop-shadow(0px 1px 1px rgba(0, 0, 0, 0.1));\n outline: none;\n }\n\n &[data-is-styled-borderless='true'] {\n #search-input-home,\n #search-input-home-temp {\n height: 40px;\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.white};\n border-radius: 16px;\n filter: none;\n }\n }\n`\n\nexport const StyledRightGroup = styled.div`\n display: flex;\n align-items: center;\n\n & > :not(:first-child) {\n margin-left: 6px;\n }\n`\n\nexport const StyledImageWrapper = styled.div`\n display: flex;\n align-items: center;\n\n margin-left: 8px;\n`\n\nexport const StyledMenuIconWrapper = styled.div`\n display: flex;\n align-items: center;\n\n margin-left: 4px;\n`\n\nexport const StyledHeaderMenuItem = styled.div`\n margin-right: 8px;\n & > div {\n display: flex;\n align-items: center;\n\n cursor: pointer;\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n line-height: 22px;\n\n user-select: none;\n }\n\n &[data-is-active='true'] {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n\n div[data-site-type='marryBaby'] & {\n color: ${(props: ThemeProps) => props.theme.mbColors.pink};\n }\n }\n\n &[data-is-active='false'] {\n color: ${(props: ThemeProps) => props.theme.colors.secondaryDark};\n\n div[data-site-type='marryBaby'] & {\n color: ${(props: ThemeProps) => props.theme.mbColors.dark};\n }\n }\n .care-navigator {\n color: ${(props: ThemeProps) => props.theme.colors.secondaryDark};\n font-size: 14px;\n font-weight: 700;\n }\n`\n\nexport const StyledProfileMenu = styled.div`\n flex-shrink: 0;\n & > div {\n display: flex;\n align-items: center;\n\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n line-height: 22px;\n\n user-select: none;\n }\n ${MediaQueries.mbDown} {\n position: absolute;\n right: 16px;\n bottom: 16px;\n height: 32px;\n display: flex;\n }\n .menu-handler-item {\n gap: 8px;\n .care-button {\n text-decoration: none;\n }\n }\n\n .login-btn-mobile[data-color='secondary'][data-size='sm'] {\n padding-right: 1rem;\n padding-left: 1rem;\n }\n`\n\nexport const StyledCloseButton: StyledComponent<\n 'div',\n any,\n { on?: string },\n never\n> = styled.div`\n display: block;\n`\n\nexport const StyledAmpCategoryCard: StyledComponent<\n 'div',\n any,\n { on?: string; '[class]'?: string },\n never\n> = styled.div``\n\nexport const StyledAmpSidebar = styled.div`\n .amp-sidebar {\n width: 100vw;\n max-width: 100vw;\n background-color: ${(props: ThemeProps) => props.theme.colors.neutral50};\n }\n\n .nav-card {\n display: flex;\n width: 100%;\n flex-direction: column;\n align-items: center;\n padding: 16px;\n border-radius: 6px;\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n\n span {\n margin-top: 4px;\n font-size: 13px;\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n\n svg {\n margin-bottom: 4px;\n }\n\n &.active {\n background: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n box-shadow: 0px 16px 24px rgba(0, 0, 0, 0.06),\n 0px 2px 8px rgba(0, 0, 0, 0.04), 0px 0px 1px rgba(0, 0, 0, 0.04);\n color: white;\n }\n\n &:not(.active) {\n box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.04),\n 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 0px 1px rgba(0, 0, 0, 0.04);\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n }\n }\n\n .categories__spotlight {\n display: grid;\n margin: 16px;\n margin-bottom: 32px;\n grid-gap: 8px;\n grid-template-columns: 1fr 1fr;\n\n a {\n text-decoration: none;\n }\n }\n\n .amp__menu-header {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n\n > div:first-child > amp-img {\n margin-left: 1rem;\n }\n\n svg {\n margin-left: 16px;\n }\n\n > div {\n align-self: center;\n\n &:nth-child(2) {\n justify-self: center;\n }\n }\n }\n\n .logo {\n margin: 22px 0;\n\n img {\n object-fit: contain;\n }\n }\n\n .categories {\n margin: 0 16px;\n\n li {\n position: relative;\n display: block;\n width: 100%;\n\n + li {\n border-top: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n &.health-tool {\n display: flex;\n align-items: center;\n\n amp-img {\n margin-right: 1rem;\n }\n + li {\n border-top: none;\n }\n\n a {\n display: flex;\n align-items: center;\n }\n }\n\n a {\n display: block;\n margin: 16px 0;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n text-decoration: none;\n }\n\n &::after {\n position: absolute;\n top: 50%;\n right: 0;\n content: url(\"data:image/svg+xml,%3Csvg width='6' height='10' viewBox='0 0 6 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 9L5 5L1 1' stroke='%23595959' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A\");\n }\n }\n }\n`\n\nexport const StyledAvatar = styled.div`\n width: 40px;\n height: 40px;\n cursor: pointer;\n\n img {\n border-radius: 50%;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n object-fit: cover;\n }\n\n .avatar-default {\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${(props: ThemeProps) =>\n props.theme.colors.secondaryBase};\n border-radius: 50%;\n color: white;\n font-size: 20px;\n font-weight: bold;\n }\n`\n","import React from 'react'\n\nconst SearchIcon = () => {\n return (\n <svg\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 fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.97183 10.8732C3.97183 7.0617 7.0617 3.97183 10.8732 3.97183C14.6848 3.97183 17.7746 7.0617 17.7746 10.8732C17.7746 14.6848 14.6848 17.7746 10.8732 17.7746C7.0617 17.7746 3.97183 14.6848 3.97183 10.8732ZM10.8732 2C5.97268 2 2 5.97268 2 10.8732C2 15.7738 5.97268 19.7465 10.8732 19.7465C12.9683 19.7465 14.8938 19.0204 16.4118 17.8061L20.3169 21.7112C20.702 22.0963 21.3262 22.0963 21.7112 21.7112C22.0963 21.3262 22.0963 20.702 21.7112 20.3169L17.8061 16.4118C19.0204 14.8938 19.7465 12.9683 19.7465 10.8732C19.7465 5.97268 15.7738 2 10.8732 2Z\"\n fill=\"#8C8C8C\"\n />\n </svg>\n )\n}\n\nexport { SearchIcon }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nexport const StyledAmpSidebar = styled.div`\n amp-sidebar {\n width: 100vw;\n max-width: 100vw;\n background-color: ${(props: ThemeProps) => props.theme.colors.neutral50};\n }\n\n .nav-card {\n display: flex;\n width: 100%;\n flex-direction: column;\n align-items: center;\n padding: 16px;\n border-radius: 6px;\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n\n span {\n margin-top: 4px;\n font-size: 13px;\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n\n svg {\n margin-bottom: 4px;\n }\n\n &.active {\n background: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n box-shadow: 0px 16px 24px rgba(0, 0, 0, 0.06),\n 0px 2px 8px rgba(0, 0, 0, 0.04), 0px 0px 1px rgba(0, 0, 0, 0.04);\n color: white;\n }\n\n &:not(.active) {\n box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.04),\n 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 0px 1px rgba(0, 0, 0, 0.04);\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n }\n }\n\n .categories__spotlight {\n display: grid;\n margin: 16px;\n margin-bottom: 32px;\n grid-gap: 8px;\n grid-template-columns: 1fr 1fr;\n\n a {\n text-decoration: none;\n }\n }\n\n .amp__menu-header {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n\n > div:first-child > amp-img {\n margin-left: 1rem;\n }\n\n svg {\n margin-left: 16px;\n }\n\n > div {\n align-self: center;\n\n &:nth-child(2) {\n justify-self: center;\n }\n }\n }\n\n .logo {\n margin: 22px 0;\n\n img {\n object-fit: contain;\n }\n }\n\n .categories {\n margin: 0 16px;\n\n li {\n position: relative;\n display: block;\n width: 100%;\n\n + li {\n border-top: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n &.health-tool {\n display: flex;\n align-items: center;\n\n amp-img {\n margin-right: 1rem;\n }\n + li {\n border-top: none;\n }\n\n a {\n display: flex;\n align-items: center;\n }\n }\n\n a {\n display: block;\n margin: 16px 0;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n text-decoration: none;\n }\n\n &:not(.spotlight-li)::after {\n position: absolute;\n top: 50%;\n right: 0;\n content: url(\"data:image/svg+xml,%3Csvg width='6' height='10' viewBox='0 0 6 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 9L5 5L1 1' stroke='%23595959' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A\");\n }\n }\n }\n`\n\nexport const StyledAmpSearchBox = styled.a`\n position: relative;\n margin: 0 16px 24px;\n display: block;\n text-decoration: none;\n\n svg {\n position: absolute;\n left: 12px;\n top: 12px;\n }\n\n .amp-search-input {\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.gray200};\n height: 48px;\n border-radius: 6px;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n padding-left: 48px;\n }\n`\n","import React from 'react'\n\nimport { LocaleType } from 'interfaces/types'\nimport { SpotlightSummary } from 'together/interfaces/types'\n\nimport { Heading, Logo } from '../../../atoms'\nimport {\n DiscoverIcon,\n SehatBadge,\n HealthToolsIcon,\n HelloCareIcon,\n TogetherIcon,\n} from '../assets'\nimport { LOCALE_SPECS } from '../constants'\nimport { StyledCategoryItemAll } from '../menuCategoriesList/index.styled'\nimport { StyledImageWrapper } from '../menuServiceList/index.styled'\nimport {\n StyledAmpCategoryCard,\n StyledCloseButton,\n} from '../navigationBar/index.styled'\nimport { SearchIcon } from '../navigationBar/SearchIcon'\nimport { Category, HealthTool, HealthToolByCategory } from '../types'\nimport { useTranslation } from '../utils'\nimport { StyledAmpSearchBox, StyledAmpSidebar } from './index.styled'\n\nexport type AmpSidebarProps = {\n locale: LocaleType\n categoriesSSR: Category[]\n healthToolsSSR: HealthToolByCategory[]\n spotlightsSSR?: SpotlightSummary[]\n serviceUrls: {\n TOGETHER_URL_FE: string\n CARE_URL_FE: string\n DISCOVER_URL_FE: string\n }\n together: {\n TOGETHER_MENU_COUNTRIES_ENABLED: LocaleType[]\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES: LocaleType[]\n togetherApiDomain: string\n }\n care: {\n CARE_MENU_COUNTRIES_ENABLED: LocaleType[]\n ENABLE_CARE_PROFILE_MENU_LOCALES: LocaleType[]\n careApiDomain: string\n }\n basePath: string\n searchPlaceholder: string\n}\nexport const AmpSidebar = ({\n locale,\n categoriesSSR,\n healthToolsSSR,\n spotlightsSSR,\n serviceUrls,\n together,\n care,\n basePath,\n searchPlaceholder,\n}: AmpSidebarProps) => {\n const f = useTranslation()\n return (\n <StyledAmpSidebar>\n <amp-sidebar\n id=\"discover-amp-sidebar\"\n layout=\"nodisplay\"\n style={{ width: '100vw', maxWidth: '100vw' }}\n >\n <amp-nested-menu layout=\"fill\">\n <ul style={{ paddingBottom: 24 }}>\n <div className=\"amp__menu-header\">\n <StyledCloseButton\n on=\"tap:discover-amp-sidebar.close\"\n role=\"button\"\n tabIndex={1}\n >\n <svg\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 18M18 18L6 6\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n />\n </svg>\n </StyledCloseButton>\n <div className=\"logo\">\n <Logo\n height=\"32px\"\n width=\"121px\"\n type={LOCALE_SPECS.LOGO_TYPE as any}\n isAmp={true}\n badge={\n locale === 'id-ID' ? (\n <amp-img src={SehatBadge} width=\"56\" height=\"23\" />\n ) : undefined\n }\n />\n </div>\n <div></div>\n </div>\n\n <StyledAmpSearchBox href=\"/search\">\n <SearchIcon />\n\n <input\n className=\"amp-search-input\"\n type=\"text\"\n placeholder={searchPlaceholder}\n readOnly\n />\n </StyledAmpSearchBox>\n\n <div className=\"categories__spotlight\">\n <StyledAmpCategoryCard\n // className=\"active\"\n on=\"tap:AMP.setState({healthToolsActive: true})\"\n className=\"nav-card active\"\n data-amp-bind-class=\"healthToolsActive ? 'nav-card active' : 'nav-card not-active'\"\n role=\"button\"\n tabIndex={1}\n >\n <amp-img src={DiscoverIcon} width=\"48\" height=\"48\"></amp-img>\n <span>{f('home.navigator.menuItem.discover')}</span>\n </StyledAmpCategoryCard>\n <StyledAmpCategoryCard\n role=\"button\"\n tabIndex={1}\n className=\"nav-card\"\n on=\"tap:AMP.setState({healthToolsActive: false})\"\n data-amp-bind-class=\"healthToolsActive ? 'nav-card not-active' : 'nav-card active'\"\n >\n <amp-img src={HealthToolsIcon} width=\"48\" height=\"48\"></amp-img>\n <span>{f('home.navigator.menuItem.healthTools')}</span>\n </StyledAmpCategoryCard>\n {together.TOGETHER_MENU_COUNTRIES_ENABLED.includes(locale) && (\n <a href={serviceUrls.TOGETHER_URL_FE}>\n <StyledAmpCategoryCard\n role=\"button\"\n tabIndex={1}\n className=\"nav-card\"\n on=\"tap:AMP.setState({healthToolsActive: false})\"\n >\n <amp-img\n src={TogetherIcon}\n width=\"48\"\n height=\"48\"\n ></amp-img>\n <span>{f('home.navigator.menuItem.together')}</span>\n </StyledAmpCategoryCard>\n </a>\n )}\n {care.CARE_MENU_COUNTRIES_ENABLED.includes(locale) && (\n <a href={serviceUrls.CARE_URL_FE}>\n <StyledAmpCategoryCard\n role=\"button\"\n tabIndex={1}\n className=\"nav-card\"\n >\n <amp-img\n src={HelloCareIcon}\n width=\"48\"\n height=\"48\"\n ></amp-img>\n <span>{f('home.navigator.menuItem.helloCare')}</span>\n </StyledAmpCategoryCard>\n </a>\n )}\n </div>\n <ul\n className=\"categories\"\n data-amp-bind-hidden=\"!healthToolsActive\"\n style={{ marginBottom: 24 }}\n >\n <Heading tag=\"h3\" fontWeight=\"bold\" style={{ marginBottom: 24 }}>\n {f('home.navigator.menuItem.discover')}\n </Heading>\n {categoriesSSR &&\n categoriesSSR.length > 1 &&\n categoriesSSR.map((c) => (\n <li key={c.name}>\n <a href={c.permalink}>{c.displayName}</a>\n </li>\n ))}\n <a\n style={{ textDecoration: 'none' }}\n href={`${serviceUrls.DISCOVER_URL_FE}/categories/`}\n >\n <StyledCategoryItemAll key={'all-categories'}>\n {f('home.navigator.menuItem.allCategories')}\n <StyledImageWrapper>\n <amp-img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n height=\"16\"\n width=\"16\"\n alt={f('home.navigator.menuItem.allCategories')}\n />\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </ul>\n\n <ul\n className=\"categories\"\n data-amp-bind-hidden=\"!healthToolsActive\"\n >\n <Heading tag=\"h3\" fontWeight=\"bold\" style={{ marginBottom: 24 }}>\n {f('home.navigator.menuItem.spotlights')}\n </Heading>\n {spotlightsSSR &&\n spotlightsSSR.length > 0 &&\n spotlightsSSR.map((c) => (\n <li key={c.id} className=\"spotlight-li\">\n <a href={c.permalink}>{c.name}</a>\n </li>\n ))}\n <a\n style={{ textDecoration: 'none' }}\n href={`${serviceUrls.DISCOVER_URL_FE}/spotlight/`}\n >\n <StyledCategoryItemAll key={'all-spotlight'}>\n {f('home.navigator.menuItem.allSpotlight')}\n <StyledImageWrapper>\n <amp-img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n height=\"16\"\n width=\"16\"\n alt={f('home.navigator.menuItem.allSpotlight')}\n />\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </ul>\n <ul\n className=\"categories\"\n data-amp-bind-hidden=\"healthToolsActive\"\n hidden\n >\n {healthToolsSSR &&\n healthToolsSSR.length > 1 &&\n healthToolsSSR.map(\n (category: HealthToolByCategory, index) =>\n category.healthTools &&\n category.healthTools.length > 0 && (\n <React.Fragment key={index}>\n <Heading tag=\"h4\" fontWeight=\"bold\">\n {category.name}\n </Heading>\n {category.healthTools.map((healthtool: HealthTool) => (\n <li key={healthtool.title} className=\"health-tool\">\n <a href={healthtool.link}>\n <amp-img\n width=\"32\"\n height=\"32\"\n src={healthtool.icon}\n ></amp-img>\n <span>{healthtool.title}</span>\n </a>\n </li>\n ))}\n </React.Fragment>\n ),\n )}\n </ul>\n </ul>\n </amp-nested-menu>\n </amp-sidebar>\n </StyledAmpSidebar>\n )\n}\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nexport const StyledFooter = styled.footer`\n background-color: #1b3250;\n\n .inner {\n padding: 64px 24px 98px 24px;\n ${MediaQueries.mbDown} {\n padding: 64px 0;\n }\n margin: 0 auto;\n //max-width: 1168px;\n\n &[data-type='mini'] {\n padding: 24px 0;\n }\n }\n\n .footer-logo {\n max-width: 132px;\n max-height: 32px;\n margin-bottom: 24px;\n &[data-is-sehat='true'] {\n max-width: 250px;\n }\n\n img {\n object-fit: contain;\n }\n }\n\n .social {\n margin-top: 24px;\n\n ${MediaQueries.mbDown} {\n margin-top: 32px;\n p {\n font-size: 13px;\n }\n }\n\n ${MediaQueries.mbUp} {\n p {\n font-size: 12px;\n }\n }\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n }\n }\n\n .icons {\n margin-top: 12px;\n margin-bottom: 20px;\n > a:not(:last-child) {\n margin-right: 16px;\n }\n\n .social-icon {\n width: 32px;\n height: 32px;\n }\n }\n\n .newsletter {\n > p {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n\n font-size: 14px;\n line-height: 22px;\n\n ${MediaQueries.mbUp} {\n max-width: 380px;\n line-height: 28.5px;\n }\n }\n }\n\n hr {\n height: 1px;\n border: none;\n margin: 16px 0 16px 0;\n ${MediaQueries.mbDown} {\n margin-top: 0px;\n }\n background: ${(props: ThemeProps) => props.theme.colors.neutral500};\n opacity: 0.1;\n outline: none;\n }\n\n .hrMobile {\n ${MediaQueries.mbUp} {\n display: none;\n }\n }\n\n .copyright {\n padding-top: 8px;\n\n ${MediaQueries.mbUp} {\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n justify-content: space-between;\n }\n\n .copyright-content {\n width: 90%;\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n font-size: 12px;\n }\n\n .copyright-image {\n width: 10%;\n align-self: flex-start;\n\n img {\n max-width: 100px;\n margin-bottom: 16px;\n\n ${MediaQueries.mbUp} {\n margin-bottom: 0px;\n }\n }\n }\n\n &[data-is-amp='true'] {\n img {\n margin-bottom: 0;\n }\n }\n }\n\n .copyright-certificate {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n ${MediaQueries.mbDown} {\n font-size: 11px;\n }\n ${MediaQueries.mbUp} {\n font-size: 12px;\n }\n }\n\n .biglinks {\n margin-bottom: 12px;\n }\n\n .bigLink {\n display: block;\n color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: 14px;\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n text-decoration: none;\n word-break: break-word;\n\n &:not(:last-child) {\n margin-bottom: 12px;\n }\n\n ${MediaQueries.mbDown} {\n display: inline-block;\n width: 50%;\n font-size: 16px;\n }\n }\n\n .mHalf {\n display: inline-block;\n width: 50%;\n padding-right: 24px;\n margin-bottom: 24px;\n vertical-align: top;\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n\n ${MediaQueries.mbDown} {\n margin-bottom: 8px;\n font-size: 13px;\n line-height: 20px;\n }\n ${MediaQueries.mbUp} {\n margin-bottom: 12px;\n font-size: 14px;\n }\n }\n }\n\n .otherSites {\n p {\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n font-size: 12px;\n ${MediaQueries.mbDown} {\n font-size: 13px;\n }\n ${MediaQueries.mbUp} {\n font-size: 13px;\n }\n }\n\n .flags {\n display: flex;\n margin-bottom: 8px;\n\n div {\n margin-right: 10px;\n }\n }\n }\n\n .link {\n display: block;\n text-decoration: none;\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.white};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n word-break: break-word;\n }\n\n &:not(:last-child) {\n margin-bottom: 12px;\n }\n }\n\n .columns {\n ${MediaQueries.mbUp} {\n display: flex;\n flex-direction: row;\n width: 100%;\n\n > div:nth-child(1) {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n flex-basis: 40%;\n }\n\n > div:nth-child(2) {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n flex-basis: 60%;\n\n > div:nth-child(1) {\n flex-basis: 45%;\n }\n\n > div:not(:last-child) {\n flex-basis: 27.5%;\n }\n\n > div:last-child() {\n flex-basis: 0;\n }\n }\n }\n }\n\n .signupButton {\n display: none;\n border: none;\n margin-top: 16px;\n outline: none;\n text-transform: uppercase;\n }\n`\nexport const StyledFlag = styled.div`\n width: 32px;\n height: 32px;\n margin-right: 10px;\n\n &[data-is-mobile='true'] {\n width: 24px;\n height: 24px;\n }\n\n .country-flag {\n width: 100%;\n height: 100%;\n }\n`\n","import React from 'react'\n\nimport { Button } from 'components/atoms/button'\nimport { Container } from 'components/atoms/container'\nimport { Text } from 'components/atoms/text'\nimport { LocaleType } from 'interfaces/types'\nimport { theme } from 'misc/theme'\n\nimport { domainLocales } from '../constants'\nimport { FooterInfo } from '../types'\nimport { useTranslation } from '../utils'\nimport { StyledFooter, StyledFlag } from './index.styled'\n\nexport type Props = {\n className?: string\n isMobile: boolean\n type?: 'main' | 'mini'\n footerInfo?: FooterInfo\n locale: LocaleType\n isAmp: boolean\n}\n\ntype IItem = {\n title: string\n url: string\n}\n\ntype ISocial = {\n icon: string\n name: string\n url: string\n}\n\ntype IBranch = {\n flag: string\n name: string\n url: string\n}\n\ntype FlagProps = {\n url: string\n isMobile?: boolean\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n}\n\nconst Flag = ({\n url,\n isMobile,\n dataEventCategory,\n dataEventAction,\n dataEventLabel,\n}: FlagProps) => {\n return (\n <StyledFlag data-is-mobile={isMobile}>\n <img\n className=\"country-flag\"\n src={url}\n alt=\"Country Flag\"\n data-event-category={dataEventCategory}\n data-event-action={dataEventAction}\n data-content-label={dataEventLabel}\n />\n </StyledFlag>\n )\n}\n\nconst Footer = ({\n className,\n type = 'main',\n footerInfo,\n isMobile,\n locale,\n isAmp,\n}: Props) => {\n const f = useTranslation()\n\n const footerMenu = footerInfo?.menu\n\n return (\n <StyledFooter\n as={isAmp && type === 'mini' ? 'div' : 'footer'}\n className={className}\n style={\n type === 'mini'\n ? {\n backgroundColor: theme.colors.neutral50,\n }\n : {}\n }\n next-page-hide\n >\n <Container>\n <div className=\"inner\" data-type={type} next-page-hide=\"\">\n {type === 'main' ? (\n <>\n <a href=\"/\">\n {!isAmp ? (\n <img\n className=\"footer-logo\"\n src={footerInfo?.general?.logo}\n alt=\"Logo\"\n data-is-sehat={locale === 'id-ID'}\n />\n ) : footerInfo?.general?.logo ? (\n <amp-img\n src={footerInfo?.general?.logo}\n alt=\"Site logo\"\n width=\"132\"\n height=\"32\"\n style={{\n marginBottom: 24,\n }}\n />\n ) : null}\n </a>\n <div className=\"columns\">\n <div className=\"newsletter\">\n <Text size=\"p1\" type=\"bold\">\n {footerInfo?.general?.content}\n </Text>\n <Button className=\"signupButton\" color=\"primary\" size=\"lg\">\n {f('footer.signUp')}\n </Button>\n <div className=\"social\">\n <Text size=\"sm\" type=\"regular\">\n {footerInfo?.social?.title}\n </Text>\n <div className=\"icons\">\n {footerInfo?.social?.socials?.map(\n (social: ISocial, idx: number) => (\n <a\n key={idx}\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n href={social.url}\n >\n {!isAmp ? (\n <img\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n src={social.icon}\n alt=\"Logo Social\"\n className=\"social-icon\"\n />\n ) : (\n <amp-img\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n src={social.icon}\n alt=\"Logo Social\"\n width=\"32\"\n height=\"32\"\n ></amp-img>\n )}\n </a>\n ),\n )}\n </div>\n <hr className=\"hrMobile\" />\n </div>\n </div>\n <div>\n {footerMenu && (\n <>\n <div className=\"biglinks\">\n {footerMenu[0]?.items?.map(\n (bigLink: IItem, idx: number) => (\n <a\n data-event-category=\"Footer\"\n data-event-action={bigLink.title}\n data-event-label={`https://${domainLocales[locale]}${bigLink.url}`}\n className=\"bigLink\"\n key={idx}\n href={bigLink.url}\n >\n {bigLink.title}\n </a>\n ),\n )}\n </div>\n <hr className=\"hrMobile\" />\n <div className=\"mHalf\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerMenu[1]?.menu_title}\n </Text>\n\n {footerMenu[1]?.items?.map(\n (informationLink: IItem, idx: number) => (\n <a\n data-event-category=\"Footer\"\n data-event-action={informationLink.title}\n data-event-label={`https://${domainLocales[locale]}${informationLink.url}`}\n className=\"link\"\n href={informationLink.url}\n key={idx}\n >\n <Text\n size=\"sm\"\n type=\"regular\"\n dataEventCategory=\"Footer\"\n dataEventAction={informationLink.title}\n dataEventLabel={`https://${domainLocales[locale]}${informationLink.url}`}\n >\n {informationLink.title}\n </Text>\n </a>\n ),\n )}\n </div>\n <div className=\"mHalf\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerMenu[2]?.menu_title}\n </Text>\n\n {footerMenu[2]?.items?.map(\n (hellohealthlink: IItem, idx: number) =>\n hellohealthlink.url && (\n <a\n data-event-category=\"Footer\"\n data-event-action={hellohealthlink.title}\n data-event-label={hellohealthlink.url}\n className=\"link\"\n href={hellohealthlink.url}\n key={idx}\n >\n <Text\n size=\"sm\"\n type=\"regular\"\n dataEventCategory=\"Footer\"\n dataEventAction={hellohealthlink.title}\n dataEventLabel={hellohealthlink.url}\n >\n {hellohealthlink.title}\n </Text>\n </a>\n ),\n )}\n </div>\n </>\n )}\n {!isAmp && (\n <>\n <hr className=\"hrMobile\" />\n <div className=\"otherSites\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerInfo?.branch?.title}\n </Text>\n <div className=\"flags\">\n {footerInfo?.branch?.branch?.map(\n (flagLink: IBranch, idx: number) => (\n <a\n className=\"link\"\n href={flagLink.url}\n key={idx}\n data-event-category=\"Footer\"\n data-event-action={flagLink.name}\n data-event-label={flagLink.url}\n >\n <Flag\n url={flagLink.flag}\n isMobile={isMobile}\n dataEventCategory=\"Footer\"\n dataEventAction={flagLink.name}\n dataEventLabel={flagLink.url}\n />\n </a>\n ),\n )}\n </div>\n </div>\n </>\n )}\n </div>\n </div>\n\n <hr />\n <div className=\"copyright\" data-is-amp={isAmp || undefined}>\n {footerInfo?.general?.verified && (\n <a\n href={footerInfo?.general?.verified[0]?.url}\n className=\"copyright-image\"\n >\n {isAmp ? (\n <amp-img\n src={footerInfo?.general?.verified[0]?.image}\n alt=\"DMCA Icon\"\n width=\"100\"\n height=\"36\"\n ></amp-img>\n ) : (\n <img\n src={footerInfo?.general?.verified[0]?.image}\n alt=\"DMCA Icon\"\n />\n )}\n </a>\n )}\n\n <Text size=\"xs\" type=\"regular\" className=\"copyright-content\">\n {footerInfo?.general?.copyright}\n </Text>\n </div>\n {locale === 'vi-VN' && (\n <Text\n className=\"copyright-certificate\"\n size=\"xs\"\n type=\"regular\"\n color=\"white\"\n >\n Giấy xác nhận cung cấp dịch vụ mạng xã hội trực tuyến số\n 529/GP-BTTTT, HN ngày 03/12/2019\n </Text>\n )}\n </>\n ) : (\n <>\n {footerInfo?.menu && (\n <div className=\"columns\">\n <div className=\"mHalf\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerInfo?.menu[1]?.menu_title}\n </Text>\n\n {footerInfo?.menu[1]?.items?.map(\n (informationLink: IItem) => (\n <a\n className=\"link\"\n href={informationLink.url}\n key={informationLink.title}\n data-list-type=\"Footer\"\n data-content-type=\"Navigate\"\n data-content-topic=\"Information\"\n data-content-title={informationLink.title}\n data-content-id={`https://${domainLocales[locale]}${informationLink.url}`}\n data-event-category=\"Footer\"\n data-event-action={informationLink.title}\n data-event-label={`https://${domainLocales[locale]}${informationLink.url}`}\n >\n <Text\n dataEventCategory=\"Footer\"\n dataEventAction={informationLink.title}\n dataEventLabel={`https://${domainLocales[locale]}${informationLink.url}`}\n size=\"sm\"\n type=\"regular\"\n style={{\n color: theme.colors.gray800,\n }}\n >\n {informationLink.title}\n </Text>\n </a>\n ),\n )}\n </div>\n <div className=\"mHalf\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerInfo?.menu[2]?.menu_title}\n </Text>\n\n {footerInfo?.menu[2]?.items?.map(\n (hellohealthlink: IItem, idx: number) => (\n <a\n className=\"link\"\n href={hellohealthlink.url}\n key={idx}\n data-list-type=\"Footer\"\n data-content-type=\"Navigate\"\n data-content-topic=\"Hello Health\"\n data-content-title={hellohealthlink.title}\n data-content-id={hellohealthlink.url}\n data-event-category=\"Footer\"\n data-event-action={hellohealthlink.title}\n data-event-label={hellohealthlink.url}\n >\n <Text\n size=\"sm\"\n type=\"regular\"\n style={{\n color: theme.colors.gray800,\n }}\n dataEventCategory=\"Footer\"\n dataEventAction={hellohealthlink.title}\n dataEventLabel={hellohealthlink.url}\n >\n {hellohealthlink.title}\n </Text>\n </a>\n ),\n )}\n </div>\n\n {!isAmp && type !== 'mini' && <hr className=\"hrMobile\" />}\n <div className=\"newsletter\">\n <div className=\"social\">\n <Text size=\"sm\" type=\"regular\">\n {footerInfo?.social?.title}\n </Text>\n <div className=\"icons\">\n {footerInfo?.social?.socials?.map(\n (social: ISocial, idx: number) => (\n <a\n key={idx}\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n href={social.url}\n >\n {!isAmp ? (\n <img\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n src={social.icon}\n alt=\"Logo Social\"\n className=\"social-icon\"\n />\n ) : (\n <amp-img\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n src={social.icon}\n alt=\"Logo Social\"\n width=\"32\"\n height=\"32\"\n ></amp-img>\n )}\n </a>\n ),\n )}\n </div>\n </div>\n </div>\n </div>\n )}\n </>\n )}\n </div>\n </Container>\n </StyledFooter>\n )\n}\n\nexport { Footer }\n","import React from 'react'\n\nimport { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nconst Heading = ({\n type,\n ...elementProps\n}: {\n type: string\n [elementProps: string]: string | JSX.Element | JSX.Element[] | React.ReactNode\n}) => {\n return React.createElement(type, elementProps)\n}\n\nexport const StyledHeading = styled(Heading)`\n color: var(--text-color, ${(props: ThemeProps) => props.theme.mbColors.dark});\n font-family: Krub;\n font-weight: 600;\n letter-spacing: -0.2px;\n\n &[data-type='headline-1'] {\n font-size: 40px;\n line-height: 60px;\n }\n &[data-type='headline-2'] {\n font-size: 32px;\n line-height: 48px;\n }\n &[data-type='headline-3'] {\n font-size: 24px;\n line-height: 40px;\n }\n &[data-type='headline-4'] {\n font-size: 18px;\n line-height: 32px;\n }\n`\n\nexport const StyledText = styled.p`\n color: var(--text-color, ${(props: ThemeProps) => props.theme.mbColors.dark});\n letter-spacing: -0.2px;\n\n &[data-type='subtitle-1'] {\n font-size: 16px;\n font-weight: 600;\n line-height: 26px;\n }\n &[data-type='subtitle-2'] {\n font-size: 14px;\n font-weight: 500;\n line-height: 24px;\n }\n &[data-type='subtitle-3'] {\n font-size: 12px;\n font-weight: 500;\n line-height: 20px;\n }\n &[data-type='bodytext-1'] {\n font-size: 16px;\n font-weight: 400;\n line-height: 28px;\n }\n &[data-type='bodytext-2'] {\n font-size: 14px;\n font-weight: 400;\n line-height: 24px;\n }\n &[data-type='bodytext-3'] {\n font-size: 12px;\n font-weight: 400;\n line-height: 20px;\n }\n &[data-type='caption-1'] {\n font-size: 10px;\n font-weight: 500;\n letter-spacing: -0.1px;\n line-height: 14px;\n }\n &[data-type='caption-2'] {\n font-size: 10px;\n font-weight: 400;\n letter-spacing: -0.1px;\n line-height: 14px;\n }\n`\n","import React from 'react'\n\nimport { CSSProperties } from 'styled-components'\n\nimport { StyledHeading, StyledText } from './index.styled'\n\ntype HeadingProps = {\n type: 'h1' | 'h2' | 'h3' | 'h4'\n color?: string\n style?: CSSProperties\n [x: string]: string | JSX.Element | JSX.Element[] | React.ReactNode\n}\n\nconst MarryBabyHeading = ({ type, color, style, ...props }: HeadingProps) => {\n const DATATYPE = {\n h1: 'headline-1',\n h2: 'headline-2',\n h3: 'headline-3',\n h4: 'headline-4',\n }\n\n return (\n <StyledHeading\n type={type}\n data-type={DATATYPE[type]}\n style={{ ...(color && { '--text-color': color }), ...style }}\n {...props}\n />\n )\n}\n\ntype TextProps = {\n type:\n | 'subtitle-1'\n | 'subtitle-2'\n | 'subtitle-3'\n | 'bodytext-1'\n | 'bodytext-2'\n | 'bodytext-3'\n | 'caption-1'\n | 'caption-2'\n color?: string\n style?: CSSProperties\n [x: string]: string | JSX.Element | JSX.Element[] | React.ReactNode\n}\n\nconst MarryBabyText = ({ type, color, style, ...props }: TextProps) => {\n return (\n <StyledText\n data-type={type}\n style={{ ...style, ...(color && { '--text-color': color }) }}\n {...props}\n />\n )\n}\n\nexport { MarryBabyHeading, MarryBabyText }\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nexport const StyledFooter = styled.footer`\n position: relative;\n background: ${(props: ThemeProps) => props.theme.mbColors.lightGray};\n\n .inner {\n padding: 64px 24px 98px 24px;\n ${MediaQueries.mbDown} {\n padding: 64px 0;\n }\n margin: 0 auto;\n //max-width: 1168px;\n\n &[data-type='mini'] {\n padding: 0;\n }\n }\n\n .footer-logo {\n max-width: 132px;\n margin-bottom: 24px;\n }\n\n .social {\n margin-top: 24px;\n\n ${MediaQueries.mbDown} {\n margin-top: 32px;\n }\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.white};\n }\n }\n\n .icons {\n margin-top: 12px;\n margin-bottom: 20px;\n > a:not(:last-child) {\n margin-right: 16px;\n }\n }\n\n .newsletter {\n > p {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n\n font-size: 14px;\n line-height: 22px;\n\n ${MediaQueries.mbUp} {\n max-width: 380px;\n font-size: 19px;\n line-height: 28.5px;\n }\n }\n }\n\n hr {\n height: 1px;\n border: none;\n margin: 16px 0 16px 0;\n ${MediaQueries.mbDown} {\n margin-top: 0px;\n }\n background: ${(props: ThemeProps) => props.theme.colors.neutral500};\n opacity: 0.1;\n outline: none;\n }\n\n .hrMobile {\n ${MediaQueries.mbUp} {\n display: none;\n }\n }\n\n .copyright {\n padding-top: 8px;\n\n ${MediaQueries.mbUp} {\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n justify-content: space-between;\n }\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.white};\n }\n\n img {\n max-width: 100px;\n margin-bottom: 16px;\n\n ${MediaQueries.mbUp} {\n margin-bottom: 0px;\n }\n }\n\n &[data-is-amp='true'] {\n img {\n margin-bottom: 0;\n }\n }\n }\n\n .biglinks {\n margin-bottom: 12px;\n }\n\n .bigLink {\n display: block;\n color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: 19px;\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n text-decoration: none;\n\n &:not(:last-child) {\n margin-bottom: 12px;\n }\n\n ${MediaQueries.mbDown} {\n display: inline-block;\n width: 50%;\n font-size: 16px;\n }\n }\n\n .mHalf {\n display: inline-block;\n width: 50%;\n padding-right: 24px;\n margin-bottom: 24px;\n vertical-align: top;\n\n p {\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n }\n\n ${MediaQueries.mbDown} {\n margin-bottom: 8px;\n }\n }\n\n .otherSites {\n p {\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n }\n\n .flags {\n display: flex;\n margin-bottom: 8px;\n\n div {\n margin-right: 10px;\n }\n }\n }\n\n .link {\n display: block;\n text-decoration: none;\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.white};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n\n &:not(:last-child) {\n margin-bottom: 12px;\n }\n }\n\n .columns {\n ${MediaQueries.mbUp} {\n display: flex;\n flex-direction: row;\n width: 100%;\n\n > div:nth-child(1) {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n flex-basis: 40%;\n }\n\n > div:nth-child(2) {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n flex-basis: 60%;\n\n > div:nth-child(1) {\n flex-basis: 45%;\n }\n\n > div {\n flex-basis: 27.5%;\n }\n\n > div:last-child() {\n flex-basis: 0;\n }\n }\n }\n }\n\n .signupButton {\n display: none;\n border: none;\n margin-top: 16px;\n outline: none;\n text-transform: uppercase;\n }\n`\n\nexport const StyledFooterContainer = styled.div``\n\nexport const StyledMiniFooterContainer = styled.div`\n position: relative;\n overflow: hidden;\n padding: 40px 40px 100px 40px;\n\n .icons-links {\n position: relative;\n display: flex;\n justify-content: space-between;\n }\n`\n\nexport const StyledFooterMenu = styled.div`\n position: relative;\n margin: 80px 0 0;\n\n ${MediaQueries.mbDown} {\n margin-top: 0px;\n overflow: hidden;\n &:before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 150%;\n height: 100%;\n background-color: #f3f3f3;\n content: '';\n transform: translateX(-50%);\n border-radius: 100% 100% 0 0 / 30% 30%;\n }\n }\n`\n\nexport const StyledMenuContainer = styled.div`\n position: relative;\n padding: 0 16px;\n\n ${MediaQueries.mbDown} {\n padding: 48px 8px 0;\n }\n\n & .grid {\n display: flex;\n flex-wrap: wrap;\n margin: -8px;\n\n & > * {\n display: inline-block;\n flex: 0 0 25%;\n padding: 8px;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n text-decoration: none;\n }\n\n ${MediaQueries.mbDown} {\n & > * {\n flex: 0 0 100%;\n text-align: center;\n }\n }\n }\n\n & .social-wrapper {\n margin-left: auto;\n }\n\n & .social {\n ${MediaQueries.mbUp} {\n & .icons-links {\n margin-top: 16px;\n\n & > a:not(:first-child) {\n margin-left: 10%;\n }\n\n & > a {\n text-decoration: none;\n }\n }\n }\n\n ${MediaQueries.mbDown} {\n width: 100%;\n display: flex;\n background: #fff;\n box-shadow: 0px 0px 24px rgba(0, 0, 0, 0.05);\n border-radius: 8px;\n padding: 20px 16px;\n align-items: center;\n max-width: 400px;\n margin: 32px auto 0px;\n\n & > p {\n font-size: 12px;\n line-height: 20px;\n }\n\n & .icons-links {\n margin-left: 8%;\n flex: 1;\n display: inline-flex;\n justify-content: space-between;\n }\n }\n\n & .icons-links {\n & > a {\n & > img {\n width: 24px;\n object-fit: contain;\n }\n }\n }\n }\n`\n\nexport const StyledCompanyInfo = styled.div`\n position: relative;\n\n ${MediaQueries.mbUp} {\n margin: 80px 0 0;\n overflow: hidden;\n &:before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 150%;\n height: 100%;\n background-color: #f3f3f3;\n border-radius: 2150px 2150px 0 0 / 200px 200px 0 0;\n content: '';\n transform: translateX(-50%);\n }\n }\n\n ${MediaQueries.mbDown} {\n background-color: #f3f3f3;\n }\n`\n\nexport const StyledInfoContainer = styled.div`\n position: relative;\n padding: 64px 16px 154px;\n text-align: center;\n\n ${MediaQueries.mbDown} {\n padding: 48px 8px 32px;\n }\n\n & .company-name {\n margin-top: 24px;\n }\n\n .logo {\n justify-content: center;\n }\n\n & .text-info {\n margin-top: 8px;\n > p {\n margin-bottom: 8px;\n }\n ${MediaQueries.mbDown} {\n text-align: left;\n margin-top: 16px;\n }\n }\n\n & .img-container {\n display: flex;\n max-width: 176px;\n height: 24px;\n justify-content: space-between;\n margin: 24px auto 0;\n\n ${MediaQueries.mbDown} {\n height: 32px;\n max-width: unset;\n justify-content: space-around;\n }\n\n img {\n width: unset;\n height: 100%;\n object-fit: contain;\n }\n }\n\n & > hr {\n border-color: ${(props: ThemeProps) => props.theme.mbColors.midGray};\n margin: 64px 0 18px;\n opacity: 0.1;\n }\n\n & .language-and-copyright {\n display: flex;\n justify-content: center;\n\n ${MediaQueries.mbDown} {\n margin-top: 60px;\n }\n\n & #footer-language-select {\n width: 100%;\n max-width: 114px;\n\n &[data-dropdown-open='true'] > div:after {\n transform: translateY(-60%) rotateZ(-180deg);\n }\n\n ${MediaQueries.mbDown} {\n order: 1;\n }\n\n & > div {\n padding: 0;\n\n & > div > svg {\n max-width: 22px;\n margin-right: 8px;\n transform: translateY(1px);\n }\n\n & > span {\n font-size: 12px;\n letter-spacing: -0.2px;\n line-height: 24px;\n }\n }\n\n & > ul[data-has-icons='true'] {\n width: 158px;\n max-width: 158px;\n border: none;\n border-radius: 4px;\n box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.08);\n\n ${MediaQueries.mbDown} {\n margin-top: 0;\n left: unset;\n right: 0;\n top: unset;\n bottom: 32px;\n }\n\n & li {\n font-size: 12px;\n letter-spacing: -0.2px;\n line-height: 24px;\n\n & > div {\n max-width: 22px;\n & svg {\n width: 22px;\n max-width: 22px;\n transform: translateY(3px);\n }\n }\n }\n }\n }\n\n & > p {\n color: ${(props: ThemeProps) => props.theme.mbColors.midGray};\n }\n }\n`\n\nexport const StyledRoundDecorator = styled.div`\n position: absolute;\n top: 0;\n right: -50%;\n width: 400px;\n height: 400px;\n background-color: #f2fcf7;\n border-radius: 50%;\n`\n","import React from 'react'\n\nimport { Container } from 'components/atoms/container'\nimport { Divider } from 'components/atoms/divider'\nimport { Flag } from 'components/atoms/flag'\nimport { Logo } from 'components/atoms/logo'\nimport { LocaleType } from 'interfaces/types'\nimport { theme } from 'misc/theme'\nimport { CSSProperties } from 'styled-components'\n\nimport { FacebookIcon, YoutubeIcon, InstagramIcon, ZaloIcon } from '../assets'\nimport { MARRY_BABY_DEFAULT_FOOTER } from '../constants'\nimport { MarryBabyText } from '../marryBabyText'\nimport { LogoType, MarryBabyFooterInfo } from '../types'\nimport { useTranslation } from '../utils'\nimport {\n StyledFooterContainer,\n StyledFooterMenu,\n StyledCompanyInfo,\n StyledMenuContainer,\n StyledInfoContainer,\n StyledMiniFooterContainer,\n StyledRoundDecorator,\n} from './index.styled'\n\n// type link = {\n// title: string\n// link: string\n// }\n\nexport type Country =\n | 'VN'\n | 'ID'\n | 'TH'\n | 'KH'\n | 'MY'\n | 'MM'\n | 'PH'\n | 'IN'\n | 'TW'\n\nexport type Flag = {\n country: Country\n link: string\n}\n\nexport type Props = {\n // bigLinks: Array<link>\n // informationLinks: Array<link>\n buttonText?: string\n className?: string\n socialLinks?: {\n facebookLink?: string\n twitterLink?: string\n instagramLink?: string\n zaloLink?: string\n linkedinLink?: string\n youtubeLink?: string\n }\n followusText?: string\n copyrightText?: string\n type: 'main' | 'mini'\n logoType?: LogoType\n isMobile: boolean\n flagLinks?: Array<Flag>\n footerMenu?: MarryBabyFooterInfo\n locale: LocaleType\n}\n\nconst MarryBabyFooter = ({\n socialLinks: {\n facebookLink,\n instagramLink,\n zaloLink,\n youtubeLink,\n } = MARRY_BABY_DEFAULT_FOOTER.SOCIAL_LINKS,\n copyrightText,\n logoType = 'marryBaby',\n isMobile,\n footerMenu = [],\n type = 'main',\n}: Props) => {\n const f = useTranslation()\n\n return type === 'main' ? (\n <StyledFooterContainer className=\"footer-container\">\n {!isMobile && (\n <div className=\"footer-divider\">\n <Container type=\"marryBaby\">\n <Divider style={{ padding: '0 16px' }} type=\"solid\" />\n </Container>\n </div>\n )}\n\n <StyledFooterMenu>\n <Container type=\"marryBaby\">\n <StyledMenuContainer>\n <div className=\"grid\">\n {(isMobile ? footerMenu?.slice(0, 6) : footerMenu)?.map(\n ({ title, link }, i) => (\n <a\n data-event-category=\"Footer\"\n data-event-action={title}\n data-event-label={`${link}`}\n className=\"link\"\n href={link}\n key={`footer-links-${i}`}\n >\n <MarryBabyText\n color={theme.colors.gray800}\n type=\"subtitle-2\"\n >\n {title}\n </MarryBabyText>\n </a>\n ),\n )}\n\n <div className=\"social-wrapper\">\n <div className=\"social\">\n <MarryBabyText type=\"subtitle-2\">\n {f('footer.followUsText')}\n </MarryBabyText>\n <div className=\"icons-links\">\n {facebookLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Facebook\"\n data-content-label={facebookLink}\n href={facebookLink}\n >\n <img src={FacebookIcon} alt=\"Facebook\" />\n </a>\n )}\n {youtubeLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Youtube\"\n data-event-label={youtubeLink}\n href={youtubeLink}\n >\n <img src={YoutubeIcon} alt=\"Youtube\" />\n </a>\n )}\n {instagramLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Instagram\"\n data-content-label={instagramLink}\n href={instagramLink}\n >\n <img src={InstagramIcon} alt=\"Instagram\" />\n </a>\n )}\n {zaloLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n href={zaloLink}\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Zalo\"\n data-event-label={zaloLink}\n >\n <img src={ZaloIcon} alt=\"Zalo\" />\n </a>\n )}\n </div>\n </div>\n </div>\n </div>\n </StyledMenuContainer>\n </Container>\n </StyledFooterMenu>\n\n <StyledCompanyInfo>\n <Container type=\"marryBaby\">\n <StyledInfoContainer>\n <Logo className=\"logo\" type={logoType as LogoType} width=\"121px\" />\n <MarryBabyText className=\"company-name\" type=\"subtitle-2\">\n {f('footer.info.companyName')}\n </MarryBabyText>\n\n <div className=\"text-info\">\n <MarryBabyText type=\"bodytext-3\">\n {f('footer.info.address')}\n </MarryBabyText>\n <MarryBabyText type=\"bodytext-3\">\n {f('footer.info.license')}\n </MarryBabyText>\n <MarryBabyText type=\"bodytext-3\">\n {f('footer.info.email')}\n </MarryBabyText>\n {/* <MarryBabyText type=\"bodytext-3\">\n {f('footer.info.contentResponsibility')}\n </MarryBabyText> */}\n {/* <MarryBabyText type=\"bodytext-3\">\n {f('footer.info.certificate')}\n </MarryBabyText> */}\n </div>\n\n <div className=\"img-container\">\n <img src=\"/images/dmca_protected.png\" alt=\"DMCA protected\" />\n <a\n href=\"http://online.gov.vn/Home/WebDetails/25055?AspxAutoDetectCookieSupport=1\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <img src=\"/images/mit_registered.png\" alt=\"MIT registered\" />\n </a>\n </div>\n\n {!isMobile && <Divider type=\"solid\" />}\n\n <div className=\"language-and-copyright\">\n {/* <Dropdown\n placeholder=\"Choose language\"\n id=\"footer-language-select\"\n options={languageDropdownOptions}\n value={activeLanguage}\n onChange={onSelectLanguage}\n placeholderIcon={activeLanguage?.icon}\n /> */}\n <MarryBabyText type=\"bodytext-3\">{copyrightText}</MarryBabyText>\n </div>\n </StyledInfoContainer>\n </Container>\n </StyledCompanyInfo>\n </StyledFooterContainer>\n ) : (\n <StyledMiniFooterContainer>\n <StyledRoundDecorator />\n <MarryBabyText\n type=\"subtitle-3\"\n style={\n {\n marginBottom: 24,\n textTransform: 'uppercase',\n fontWeight: theme.sizes.fwSemiBold,\n } as CSSProperties\n }\n color={theme.mbColors.midGray}\n >\n {f('footer.followUsText')}\n </MarryBabyText>\n <div className=\"icons-links\">\n {facebookLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Facebook\"\n data-content-label={facebookLink}\n href={facebookLink}\n >\n {/* <img src=\"/svg/facebook.svg\" alt=\"Facebook\" /> */}\n <svg\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=\"M21 5.75V18.25C21 19.765 19.765 21 18.25 21H15.5V14H17.31C17.565 14 17.78 13.81 17.81 13.56L17.995 12.06C18.015 11.92 17.97 11.775 17.875 11.67C17.78 11.56 17.645 11.5 17.5 11.5H15.5V9.75C15.5 9.2 15.95 8.75 16.5 8.75H17.5C17.775 8.75 18 8.525 18 8.25V6.56C18 6.305 17.8 6.09 17.545 6.065C17.515 6.06 16.81 6 15.915 6C13.715 6 12.5 7.31 12.5 9.685V11.5H10.5C10.225 11.5 10 11.725 10 12V13.5C10 13.775 10.225 14 10.5 14H12.5V21H5.75C4.235 21 3 19.765 3 18.25V5.75C3 4.235 4.235 3 5.75 3H18.25C19.765 3 21 4.235 21 5.75Z\"\n fill=\"url(#paint0_linear)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear\"\n x1=\"12\"\n y1=\"3\"\n x2=\"12\"\n y2=\"21\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#4DABF7\" />\n <stop offset=\"1\" stopColor=\"#2668DA\" />\n </linearGradient>\n </defs>\n </svg>\n </a>\n )}\n {youtubeLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Youtube\"\n data-event-label={youtubeLink}\n href={youtubeLink}\n >\n {/* <img src=\"/svg/youtube.svg\" alt=\"Youtube\" /> */}\n <svg\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.9287 4.25C8.75236 4.25 5.80117 4.47631 4.11719 4.82812C4.1136 4.82907 4.11002 4.83005 4.10645 4.83105C2.83774 5.11535 1.64309 6.02412 1.3916 7.44727L1.39062 7.45312C1.19742 8.60013 1 10.0953 1 12.25C1 14.4006 1.1981 15.8562 1.44238 17.0635C1.70004 18.4446 2.86711 19.3809 4.15527 19.6689C4.16144 19.6707 4.16762 19.6723 4.17383 19.6738C5.93135 20.0201 8.79923 20.25 11.9756 20.25C15.1519 20.25 18.0213 20.0201 19.7793 19.6738C19.7855 19.6723 19.7917 19.6707 19.7979 19.6689C21.0666 19.3847 22.2612 18.4759 22.5127 17.0527C22.5134 17.0492 22.514 17.0456 22.5146 17.042C22.7049 15.8716 22.9514 14.3778 23 12.2197C23.0001 12.2142 23.0001 12.2087 23 12.2031C23 10.0438 22.7529 8.53934 22.5117 7.34766C22.2561 5.96354 21.0877 5.02474 19.7979 4.73633C19.7781 4.73195 19.7583 4.72836 19.7383 4.72559C18.0232 4.48448 15.1056 4.25 11.9287 4.25ZM10.0781 8.50098C10.2633 8.49715 10.4548 8.54095 10.6348 8.64258L14.9365 11.0732C15.662 11.4832 15.662 12.5177 14.9365 12.9277L10.6348 15.3584C9.91527 15.7644 9.01855 15.2502 9.01855 14.4307V9.56934C9.01855 8.95471 9.52252 8.51246 10.0781 8.50098Z\"\n fill=\"#EB3223\"\n />\n </svg>\n </a>\n )}\n {instagramLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Instagram\"\n data-content-label={instagramLink}\n href={instagramLink}\n >\n {/* <img src=\"/svg/instagram.svg\" alt=\"Instagram\" /> */}\n <svg\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=\"M8.25 2.5C5.08319 2.5 2.5 5.08319 2.5 8.25V15.75C2.5 18.9164 5.0831 21.5 8.25 21.5H15.75C18.9165 21.5 21.5 18.9165 21.5 15.75V8.25C21.5 5.0831 18.9164 2.5 15.75 2.5H8.25ZM8.25 4H15.75C18.1056 4 20 5.8939 20 8.25V15.75C20 18.1055 18.1055 20 15.75 20H8.25C5.8939 20 4 18.1056 4 15.75V8.25C4 5.89381 5.89381 4 8.25 4ZM17 6C16.4475 6 16 6.4475 16 7C16 7.5525 16.4475 8 17 8C17.5525 8 18 7.5525 18 7C18 6.4475 17.5525 6 17 6ZM12 7C9.24759 7 7 9.24759 7 12C7 14.7524 9.24759 17 12 17C14.7524 17 17 14.7524 17 12C17 9.24759 14.7524 7 12 7ZM12 8.5C13.9416 8.5 15.5 10.0584 15.5 12C15.5 13.9416 13.9416 15.5 12 15.5C10.0584 15.5 8.5 13.9416 8.5 12C8.5 10.0584 10.0584 8.5 12 8.5Z\"\n fill=\"url(#paint0_radial)\"\n />\n <defs>\n <radialGradient\n id=\"paint0_radial\"\n cx=\"0\"\n cy=\"0\"\n r=\"1\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"translate(0.499995 26) rotate(-47.9508) scale(34.3402 30.014)\"\n >\n <stop offset=\"0.073\" stopColor=\"#EACC7B\" />\n <stop offset=\"0.184\" stopColor=\"#ECAA59\" />\n <stop offset=\"0.307\" stopColor=\"#EF802E\" />\n <stop offset=\"0.358\" stopColor=\"#EF6D3A\" />\n <stop offset=\"0.46\" stopColor=\"#F04B50\" />\n <stop offset=\"0.516\" stopColor=\"#F03E58\" />\n <stop offset=\"0.689\" stopColor=\"#DB359E\" />\n <stop offset=\"0.724\" stopColor=\"#CE37A4\" />\n <stop offset=\"0.789\" stopColor=\"#AC3CB4\" />\n <stop offset=\"0.877\" stopColor=\"#7544CF\" />\n <stop offset=\"0.98\" stopColor=\"#2B4FF2\" />\n </radialGradient>\n </defs>\n </svg>\n </a>\n )}\n {zaloLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n href={zaloLink}\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Zalo\"\n data-event-label={zaloLink}\n >\n <div\n style={{\n height: 24,\n width: 24,\n }}\n >\n <img src=\"/icons/zalo.png\" alt=\"Zalo\" />\n </div>\n </a>\n )}\n </div>\n </StyledMiniFooterContainer>\n )\n}\n\nexport { MarryBabyFooter }\n","var img = \"data:image/png;base64,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\";\n export default img;","import React from 'react'\n\nimport {\n AmpNextArticle,\n FooterInfo,\n LocaleType,\n MarryBabyFooterInfo,\n} from 'components/organisms/navigationLayout/types'\n\nimport { Footer } from './footer'\nimport { MarryBabyFooter } from './maryBabyFooter'\n// import { useTranslation } from './utils'\n\n// const formatUrlFooter = (s: string | null) => {\n// if (s) {\n// if (s.includes('https')) {\n// return s\n// } else {\n// return `/static${s}`\n// }\n// } else {\n// return ''\n// }\n// }\n\ntype FooterProps = {\n type: 'main' | 'mini'\n locale: LocaleType\n basePath: string\n isMobile: boolean\n // static: {\n // STATIC_PAGES: {\n // [key: string]: {\n // [key: string]: string | null\n // }\n // }\n // }\n isAmp: boolean\n footerInfo: FooterInfo | MarryBabyFooterInfo\n ampNextArticle?: AmpNextArticle\n routerQuery?: { [key: string]: string }\n} & (\n | {\n siteType: 'marryBaby'\n marryBabySocialLinks: {\n facebookLink: string\n twitterLink: string\n instagramLink: string\n zaloLink: string\n linkedinLink: string\n youtubeLink: string\n }\n }\n | {\n siteType: 'helloSites'\n }\n)\n\nexport type Flag = {\n country: CountryInitial\n link: string\n}\n\nexport type CountryInitial =\n | 'VN'\n | 'ID'\n | 'TH'\n | 'KH'\n | 'MY'\n | 'MM'\n | 'PH'\n | 'IN'\n | 'TW'\n\nconst CustomFooter = (props: FooterProps) => {\n const {\n type,\n isMobile = true,\n locale,\n footerInfo,\n isAmp,\n siteType,\n ampNextArticle,\n routerQuery,\n } = props\n const customAttribute = { separator: '' }\n return siteType === 'helloSites' ? (\n <>\n {/* <Welcome style={{ display: 'none' }} /> */}\n {isAmp && (routerQuery?.slug?.length ?? '') > 1 && (\n <amp-next-page>\n <script\n type=\"application/json\"\n dangerouslySetInnerHTML={{\n __html: `\n [\n {\n \"image\": \"${ampNextArticle?.articleOne?.image}\",\n \"title\": ${JSON.stringify(ampNextArticle?.articleOne?.title)},\n \"url\": \"${ampNextArticle?.articleOne?.link}\"\n },\n {\n \"image\": \"${ampNextArticle?.articleTwo?.image}\",\n \"title\": ${JSON.stringify(ampNextArticle?.articleTwo?.title)},\n \"url\": \"${ampNextArticle?.articleTwo?.link}\"\n },\n {\n \"image\": \"${ampNextArticle?.articleThree?.image}\",\n \"title\": ${JSON.stringify(\n ampNextArticle?.articleThree?.title,\n )},\n \"url\": \"${ampNextArticle?.articleThree?.link}\"\n }\n ]\n `,\n }}\n ></script>\n <div\n {...customAttribute}\n className=\"amp-page-seperator\"\n style={{\n color: '#8C8C8C',\n textTransform: 'uppercase',\n fontSize: 11,\n fontWeight: 700,\n marginLeft: 16,\n }}\n >\n Next article:\n </div>\n </amp-next-page>\n )}\n\n <Footer\n isAmp={isAmp}\n isMobile={isMobile}\n type={type}\n locale={locale}\n footerInfo={(footerInfo || {}) as FooterInfo}\n />\n </>\n ) : (\n <MarryBabyFooter\n isMobile={isMobile}\n locale={locale}\n footerMenu={(footerInfo || []) as MarryBabyFooterInfo}\n copyrightText={'© 2022 MarryBaby.vn'}\n socialLinks={props.marryBabySocialLinks}\n type={type}\n />\n )\n}\n\nexport { CustomFooter }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nexport const StyledContainer = styled.div`\n width: 100vw;\n`\n\nexport const StyledHomeContainer = styled.div<{\n hasStickyBottomBar: boolean\n}>`\n @keyframes menuLeftToRightTrans {\n from {\n margin-left: -300%;\n opacity: 0;\n }\n to {\n margin-left: 0;\n opacity: 1;\n }\n }\n\n @keyframes menuRightToLeftTrans {\n from {\n margin-right: -300%;\n opacity: 0;\n }\n to {\n margin-right: 0;\n opacity: 1;\n }\n }\n\n @keyframes leftAppears {\n from {\n left: -50%;\n opacity: 0;\n }\n to {\n left: 0;\n opacity: 1;\n }\n }\n\n @keyframes leftDisappears {\n from {\n left: 0;\n opacity: 1;\n }\n to {\n left: -50%;\n opacity: 0;\n }\n }\n\n @keyframes rightAppears {\n from {\n right: -50%;\n opacity: 0;\n }\n to {\n right: 0;\n opacity: 1;\n }\n }\n\n @keyframes rightDisappears {\n from {\n right: 0;\n opacity: 1;\n }\n to {\n right: -50%;\n opacity: 0;\n }\n }\n\n @keyframes expandingTopToBottom {\n from {\n margin-top: -100%;\n opacity: 0;\n }\n to {\n margin-top: 0;\n opacity: 1;\n }\n }\n\n @keyframes collapsingBottomToTop {\n from {\n margin-top: 0;\n opacity: 1;\n }\n to {\n margin-top: -100%;\n opacity: 0;\n }\n }\n\n width: 100%;\n\n ${(props) => props.hasStickyBottomBar && `padding-bottom: 80px;`}\n\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n &[data-menu-opened='true'] {\n visibility: hidden;\n }\n`\n\nexport const StyledAmpHomeContainer = styled.div`\n width: 100%;\n padding-bottom: 80px;\n\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n &[data-is-mobile='false'] {\n margin-top: 69px;\n &[data-sponsored='true'] {\n margin-top: 110px;\n &[data-sitewide='true'] {\n margin-top: 173px;\n }\n }\n &[data-sitewide='true'] {\n margin-top: 133px;\n }\n }\n &[data-is-mobile='true'] {\n &[data-sitewide='true'],\n &[data-sponsored='true'] {\n margin-top: 60px;\n }\n }\n\n &[data-menu-opened='true'] {\n visibility: hidden;\n }\n`\n\nexport const StyledMenuLanguageLabelContainer = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n`\nexport const StyledLanguageChangeLink = styled.a`\n &[data-is-active='true'] {\n color: unset;\n }\n font-size: 14px;\n font-weight: 700;\n line-height: 22px;\n text-decoration: none;\n`\n","import React, { ReactNode } from 'react'\n\nimport {\n domainLocales,\n FAVICONS,\n LOCALE_SPECS,\n} from 'components/organisms/navigationLayout/constants'\nimport parse from 'html-react-parser'\n\n// import Head from 'next/head'\n// import { useRouter } from 'next/router'\nimport { SiteType } from './types'\n\nexport type SEOData = {\n currentPage?: number\n totalPages?: number\n SEOTitle?: string\n SEODescription?: string\n SEOImage?: string\n SEOImageWidth?: string | number\n SEOImageHeight?: string | number\n seoType?: 'website' | 'article' | 'profile'\n siteName?: string\n customMetaData?: Array<{\n [key: string]: string\n }>\n isIndexable?: boolean\n openGraph?: {\n title?: string\n description?: string\n image?: string\n imageWidth?: number\n imageHeight?: number\n }\n twitter?: {\n title?: string\n description?: string\n image?: string\n }\n apiMetaData?: string\n schemaData?: string\n hasNoAmp?: boolean\n hasNoCanonical?: boolean\n canonicalUrl?: string\n}\n\nexport type Props = {\n children: ReactNode\n SEOData: SEOData\n isAmp: boolean\n locale: string\n routerPathname: string\n routerQuery: { [key: string]: string }\n nextHead: React.FunctionComponent\n siteType: SiteType\n seoCustom?: boolean\n userId?: string | number\n forcedCanonicalUrl?: string\n usingDefaultHead: boolean\n}\n\nconst Layout = ({\n children,\n SEOData = {},\n isAmp = false,\n locale = 'vi-VN',\n routerPathname: pathname,\n routerQuery: query,\n nextHead: Head,\n siteType,\n seoCustom,\n userId,\n forcedCanonicalUrl,\n usingDefaultHead,\n}: Props) => {\n const { NEXT_PUBLIC_DEPLOY_ENV: DEPLOY_ENV } = process.env\n const isProduction = DEPLOY_ENV === 'production'\n\n const {\n totalPages,\n currentPage,\n SEOTitle = '',\n SEODescription = '',\n SEOImage,\n seoType,\n SEOImageWidth,\n SEOImageHeight,\n customMetaData = [],\n isIndexable = true,\n hasNoCanonical = false,\n } = SEOData\n const robotIndex =\n isIndexable && isProduction\n ? 'index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1'\n : 'noindex'\n\n // const { locale = 'vi-VN', pathname, query } = router\n const { NEXT_PUBLIC_BASE_API_URL } = process.env\n\n let newPath = SEOData.canonicalUrl || pathname\n Object.keys(query).forEach((key) => {\n const queryItem = query[key]\n if (queryItem && Array.isArray(queryItem)) {\n newPath = newPath.replace(`[...${key}]`, queryItem.join('/'))\n }\n })\n const sL = locale || 'en-PH' // standardized locale\n const siteUrl =\n siteType === 'helloSites' ? domainLocales[sL] : 'www.marrybaby.vn'\n\n const hasSlash = newPath.endsWith('/') ? '' : '/'\n\n let metaData: string | JSX.Element | JSX.Element[]\n if (SEOData.apiMetaData && typeof SEOData.apiMetaData === 'string') {\n const paginatedTitle = SEOData.apiMetaData?.match(/<title.*?>(.*)<\\/title>/)\n const paginatedNumber = ` - Page ${currentPage} of ${totalPages}`\n const fD =\n currentPage && currentPage !== 1 && paginatedTitle\n ? SEOData.apiMetaData\n .replace(\n paginatedTitle[0],\n paginatedTitle[0].includes('-')\n ? paginatedTitle[0].replace('-', paginatedNumber + ' - ')\n : `<title>${paginatedTitle[1].concat(paginatedNumber)}</title>`,\n )\n .replace(\n `<link rel=\"canonical\" href=\"https://${siteUrl}${newPath}${hasSlash}\" />`,\n `<link rel=\"canonical\" href=\"https://${siteUrl}${newPath}${hasSlash}?page=${currentPage}\" />`,\n )\n : SEOData.apiMetaData\n metaData = parse(fD, { trim: true })\n const metaDataImage = (metaData as JSX.Element[]).find(\n (data: JSX.Element) =>\n data.props?.property === 'og:image' ||\n data.props?.property === 'og:image:secure_url',\n )\n if (!metaDataImage) {\n const DefaultOgImage = `https://${siteUrl}/images/${locale}.png`\n metaData = [\n ...(metaData as JSX.Element[]),\n <meta\n key={'og:image'}\n property=\"og:image\"\n content={SEOData.openGraph?.image || DefaultOgImage || ''}\n />,\n <meta\n key={'og:image:secure_url'}\n property=\"og:image:secure_url\"\n content={SEOData.openGraph?.image || DefaultOgImage}\n />,\n <meta\n key={'og:image:width'}\n property=\"og:image:width\"\n content={\n (SEOData.openGraph?.imageWidth &&\n String(SEOData.openGraph?.imageWidth)) ||\n '1200'\n }\n />,\n <meta\n key={'og:image:height'}\n property=\"og:image:height\"\n content={\n (SEOData.openGraph?.imageHeight &&\n String(SEOData.openGraph?.imageHeight)) ||\n '630'\n }\n />,\n ]\n }\n }\n\n const defaultImage = `https://${siteUrl}/images/${locale}.png`\n\n return (\n <>\n {Head && usingDefaultHead && (\n <Head>\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" />\n {siteType === 'marryBaby' && (\n <link\n href=\"https://fonts.googleapis.com/css2?family=Inter&family=Krub:wght@600&display=swap\"\n rel=\"stylesheet\"\n />\n )}\n {locale === 'km-KH' ? (\n <link\n href=\"https://fonts.googleapis.com/css2?family=Battambang:wght@400;700&display=swap\"\n rel=\"stylesheet\"\n ></link>\n ) : locale === 'id-ID' || locale === 'ms-MY' ? (\n <></>\n ) : (\n <link\n href=\"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,600;0,700;0,800;1,300;1,400;1,600;1,700;1,800&display=swap\"\n rel=\"preload\"\n as=\"style\"\n />\n )}\n <link rel=\"preconnect\" href={NEXT_PUBLIC_BASE_API_URL} />\n <meta charSet=\"UTF-8\" />\n {!isAmp && (\n <meta\n name=\"viewport\"\n content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover\"\n />\n )}\n <meta name=\"google\" content=\"notranslate\" />\n <meta name=\"robots\" content={robotIndex} />\n\n <meta property=\"fb:app_id\" content=\"653713035016537\" />\n {customMetaData.map((customMeta, index) => {\n return <meta key={index} {...customMeta} />\n })}\n\n <meta\n name=\"theme-color\"\n content={siteType === 'helloSites' ? '#2c87f3' : '#e85388'}\n />\n <meta name=\"page_type\" content=\"Home\" />\n <meta name=\"page_platform\" content=\"WEB\" />\n <meta name=\"page_language\" content={sL} />\n <meta\n name=\"ahrefs-site-verification\"\n content=\"46e7521a2b89a1013149c4685bbe02a1d36a4732fef98655142b829bc87cba4d\"\n />\n {isAmp && (\n <>\n <script\n async\n custom-element=\"amp-analytics\"\n src=\"https://cdn.ampproject.org/v0/amp-analytics-0.1.js\"\n ></script>\n <script\n async\n custom-element=\"amp-fx-collection\"\n src=\"https://cdn.ampproject.org/v0/amp-fx-collection-0.1.js\"\n ></script>\n <script\n async\n custom-element=\"amp-ad\"\n src=\"https://cdn.ampproject.org/v0/amp-ad-0.1.js\"\n ></script>\n <script\n async\n custom-element=\"amp-next-page\"\n src=\"https://cdn.ampproject.org/v0/amp-next-page-1.0.js\"\n ></script>\n <script\n async\n custom-element=\"amp-sticky-ad\"\n src=\"https://cdn.ampproject.org/v0/amp-sticky-ad-1.0.js\"\n ></script>\n {/* Adding support for sharing in the bottom bar */}\n <script\n async\n custom-element=\"amp-social-share\"\n src=\"https://cdn.ampproject.org/v0/amp-social-share-0.1.js\"\n ></script>\n {/* Adding the AMP state */}\n <script\n async\n custom-element=\"amp-bind\"\n src=\"https://cdn.ampproject.org/v0/amp-bind-0.1.js\"\n ></script>\n </>\n )}\n\n {!metaData && (\n <>\n {siteType === 'helloSites' ? (\n <title>\n {seoCustom\n ? SEOTitle\n : SEOTitle + ' - ' + LOCALE_SPECS[locale]?.SITE_NAME}\n </title>\n ) : (\n <title>{SEOTitle}</title>\n )}\n {!hasNoCanonical && (\n <link rel=\"canonical\" href={`https://${siteUrl}${newPath}`} />\n )}\n <meta\n name=\"description\"\n content={SEODescription || SEOData.openGraph?.description}\n />\n {SEOData.schemaData && (\n <script\n type=\"application/ld+json\"\n className=\"yoast-schema-graph\"\n dangerouslySetInnerHTML={{ __html: SEOData.schemaData }}\n ></script>\n )}\n\n <meta property=\"og:locale\" content={locale} />\n <meta property=\"og:type\" content={seoType || 'website'} />\n <meta\n property=\"og:title\"\n content={SEOData.openGraph?.title || SEOTitle}\n />\n <meta\n property=\"og:description\"\n content={SEOData.openGraph?.description || SEODescription}\n />\n <meta\n property=\"og:url\"\n content={`https://${siteUrl}${newPath}`}\n />\n <meta property=\"og:site_name\" content={`https://${siteUrl}`} />\n <meta\n property=\"og:image\"\n content={\n SEOData.openGraph?.image || SEOImage || defaultImage || ''\n }\n />\n <meta\n property=\"og:image:secure_url\"\n content={SEOData.openGraph?.image || SEOImage || defaultImage}\n />\n <meta\n property=\"og:image:width\"\n content={\n (SEOData.openGraph?.imageWidth &&\n String(SEOData.openGraph?.imageWidth)) ||\n (SEOImageWidth && String(SEOImageWidth)) ||\n '1200'\n }\n />\n <meta\n property=\"og:image:height\"\n content={\n (SEOData.openGraph?.imageHeight &&\n String(SEOData.openGraph?.imageHeight)) ||\n (SEOImageHeight && String(SEOImageHeight)) ||\n '630'\n }\n />\n\n <meta name=\"twitter:card\" content=\"summary_large_image\" />\n <meta\n name=\"twitter:title\"\n content={SEOData.twitter?.title || SEOTitle}\n />\n <meta name=\"twitter:description\" content={SEODescription} />\n <meta\n name=\"twitter:image\"\n content={SEOData.twitter?.image || SEOImage}\n />\n </>\n )}\n\n {(siteType === 'helloSites'\n ? FAVICONS[sL] || []\n : FAVICONS.marryBaby\n ).map((item, index) => {\n if (item.type === 'link') {\n return (\n <link\n key={`favicon-${index}`}\n rel={item.rel}\n href={item.href}\n sizes={item.sizes}\n />\n )\n }\n if (item.type === 'meta') {\n return (\n <meta key={index} name={item.name} content={item.content} />\n )\n }\n return null\n })}\n\n {Array.isArray(metaData) && !!forcedCanonicalUrl\n ? metaData.filter(\n (d) =>\n d.props.name !== 'canonical' && d.props.rel !== 'canonical',\n )\n : metaData}\n {forcedCanonicalUrl && (\n <link rel=\"canonical\" href={forcedCanonicalUrl} />\n )}\n {!SEOData.hasNoAmp && locale !== 'vi-VN' && (\n <link\n rel=\"amphtml\"\n href={`https://${siteUrl}${newPath}${hasSlash}?amp=1`}\n />\n )}\n {userId && typeof window !== 'undefined' ? (\n <script\n dangerouslySetInnerHTML={{\n __html: `window.dataLayer = window.dataLayer || []; window.dataLayer.push({'userID': '${userId}'});`,\n }}\n ></script>\n ) : null}\n </Head>\n )}\n {Head && !usingDefaultHead && (\n <Head>{/* To inject NextHead from outside */}</Head>\n )}\n {children}\n </>\n )\n}\n\nexport { Layout }\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nimport { Z_INDEX } from '../constants'\n\nexport const StyledCardSkeleton = styled.div`\n & > div {\n width: 100%;\n margin-bottom: 8px;\n }\n`\nexport const StyledContainer = styled.div`\n & > a:not(:last-child) > div {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n &[data-category-list-type='sub'] {\n padding-bottom: 72px;\n }\n\n &[data-is-displayed='false'] {\n display: none;\n }\n`\nexport const StyledCategoryContainer = styled.div`\n display: flex;\n width: 100%;\n height: 64px;\n align-items: center;\n justify-content: flex-start;\n padding: 8px;\n\n //border-bottom: 1px solid ${(props: ThemeProps) =>\n props.theme.colors.neutral100};\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n\n &[data-is-heading-category='true'] {\n border-bottom: none;\n background-color: ${(props: ThemeProps) => props.theme.colors.blue50};\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n > * {\n pointer-events: none;\n }\n`\n\nexport const StyledCategory = styled.div``\n\nexport const StyledCategoryIcon = styled.div`\n padding-right: 16px;\n`\n\nexport const StyledMenuPopupWrapper = styled.div`\n position: fixed;\n z-index: ${Z_INDEX.menuCategoryPopupWrapper};\n top: 69px;\n left: 0;\n width: 100%;\n height: 100%;\n align-items: center;\n background-color: transparent;\n &[data-is-display='false'] {\n display: none;\n }\n`\n\nexport const StyledMenuPopupContainer = styled.div`\n z-index: ${Z_INDEX.menuCategoryPopupContainer};\n align-items: center;\n\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral50};\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\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\nexport const StyledInnerMenuPopupContainer = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n padding: 48px 0;\n`\n\nexport const StyledHealthToolItem = styled.div`\n width: 33%;\n height: 48px;\n padding-right: 16px;\n margin-bottom: 12px;\n\n & > a {\n display: flex;\n align-items: center;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n\n & > :first-child {\n margin-right: 16px;\n }\n }\n\n & > a > p:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n\n [data-event-category] > * {\n pointer-events: none;\n }\n`\n\nexport const StyledCategoryItemAll = styled.div`\n display: flex;\n align-items: center;\n\n ${MediaQueries.mbDown} {\n padding: 8px;\n }\n\n padding-right: 16px;\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n line-height: 24px;\n\n &[data-theme='marryBaby'] {\n color: ${(props: ThemeProps) => props.theme.mbColors.pink};\n }\n &[data-event-category] * {\n pointer-events: none;\n }\n`\n\nexport const StyledImageWrapper = styled.div`\n display: flex;\n align-items: center;\n\n margin-left: 10px;\n`\n\nexport const StyledCloseWrapper = styled.div`\n position: absolute;\n top: 16px;\n right: 0;\n display: flex;\n align-items: center;\n cursor: pointer;\n`\n","import React from 'react'\n\nimport Skeleton from 'react-loading-skeleton'\n\nimport { StyledCardSkeleton } from './index.styled'\n\nconst CategorySkeleton = () => (\n <StyledCardSkeleton\n style={{\n marginTop: '16px',\n }}\n >\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n </StyledCardSkeleton>\n)\n\nexport default CategorySkeleton\n","import React from 'react'\n\nimport { LOCALIZED_SLUGS } from 'care/interfaces/constants'\nimport { Container } from 'components/atoms/container'\nimport { Heading } from 'components/atoms/heading'\nimport { LocaleType } from 'interfaces/types'\nimport { theme } from 'misc/theme'\n\nimport { DesktopMenuPopup, SiteType, Specialty } from '../types'\nimport { getCareSearchUrl, useTranslation } from '../utils'\nimport CategorySkeleton from './categorySkeleton'\nimport {\n StyledCategory,\n StyledCategoryContainer,\n StyledCategoryIcon,\n StyledCategoryItemAll,\n StyledCloseWrapper,\n StyledContainer,\n StyledHealthToolItem,\n StyledImageWrapper,\n StyledInnerMenuPopupContainer,\n StyledMenuPopupContainer,\n StyledMenuPopupWrapper,\n} from './index.styled'\n\nexport type Props = {\n careSpecialties: Specialty[]\n onSelectCareSpecialty: (c: Specialty) => void\n onClosePopup: () => void\n isLoading: boolean\n isMobile: boolean\n basePath: string\n locale: LocaleType\n desktopPopupType: DesktopMenuPopup\n siteType: SiteType\n CARE_URL_FE: string\n}\n\nconst MenuCareList = ({\n careSpecialties,\n onSelectCareSpecialty,\n isLoading,\n desktopPopupType,\n onClosePopup,\n basePath,\n locale,\n isMobile,\n siteType,\n CARE_URL_FE,\n}: Props) => {\n const f = useTranslation()\n\n return isMobile ? (\n <>\n {isLoading ? (\n <StyledContainer>\n <CategorySkeleton />\n </StyledContainer>\n ) : (\n <StyledContainer data-category-list-type={'main'}>\n <Heading\n style={{\n marginTop: 16,\n }}\n tag=\"h5\"\n >\n {f('menu.care.searchBySpecialties')}\n </Heading>\n {careSpecialties.map((careSpecialty, index) => (\n <a key={'tool-' + index}>\n <StyledCategoryContainer\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`${CARE_URL_FE}${getCareSearchUrl({\n type: 'DOCTOR',\n specialtySlug: careSpecialty.slug,\n locale,\n })}`}\n onClick={() => {\n onSelectCareSpecialty(careSpecialty)\n }}\n >\n <StyledCategoryIcon>\n <img\n alt=\"health-tool-icon\"\n src={\n careSpecialty.thumbnail || `${basePath}/images/avatar.jpg`\n }\n style={{ width: '32px', height: '32px' }}\n />\n </StyledCategoryIcon>\n <StyledCategory>{careSpecialty.name}</StyledCategory>\n </StyledCategoryContainer>\n </a>\n ))}\n <a\n style={{ textDecoration: 'none' }}\n href={`${CARE_URL_FE}/${LOCALIZED_SLUGS[locale]?.SPECIALTIES}`}\n >\n <StyledCategoryItemAll\n // onClick={closePopup}\n key={'all-categories'}\n data-theme={siteType}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`${CARE_URL_FE}/${LOCALIZED_SLUGS[locale]?.SPECIALTIES}`}\n >\n {f('home.navigator.menuItem.allSpecialties')}\n <StyledImageWrapper>\n {siteType === 'helloSites' ? (\n <img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.allSpecialties')}\n />\n ) : (\n <svg\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=\"M6.5 12H17.5M17.5 12L12.9118 8M17.5 12L12.9118 16\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </StyledContainer>\n )}\n </>\n ) : (\n <StyledMenuPopupWrapper\n className=\"top-menu-care-specialties\"\n onClick={onClosePopup}\n data-is-display={desktopPopupType === 'care'}\n >\n <StyledMenuPopupContainer>\n <Container style={{ padding: '0 16px' }} type={siteType}>\n <StyledInnerMenuPopupContainer\n data-popup-type={desktopPopupType}\n onClick={(e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n e.stopPropagation()\n }}\n >\n <>\n {careSpecialties.map((careSpecialty: Specialty) => (\n <StyledHealthToolItem\n key={`care-specialty-${careSpecialty.id}`}\n onClick={onClosePopup}\n >\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`${CARE_URL_FE}${getCareSearchUrl({\n type: 'DOCTOR',\n specialtySlug: careSpecialty.slug,\n locale,\n })}`}\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n className=\"iconMenu no-replace-click\"\n href={`${CARE_URL_FE}${getCareSearchUrl({\n type: 'DOCTOR',\n specialtySlug: careSpecialty.slug,\n locale,\n })}`}\n >\n <div\n style={{\n display: 'flex',\n }}\n >\n <img\n alt=\"care-specialty-icon\"\n src={\n careSpecialty.thumbnail ||\n `${basePath}/images/avatar.jpg`\n }\n style={{ width: '32px', height: '32px' }}\n />\n </div>\n <p>{careSpecialty.name}</p>\n </a>\n </StyledHealthToolItem>\n ))}\n <a\n style={{ textDecoration: 'none' }}\n href={`${CARE_URL_FE}/${LOCALIZED_SLUGS[locale]?.SPECIALTIES}`}\n >\n <StyledCategoryItemAll\n onClick={onClosePopup}\n key={'all-care-specialties'}\n data-theme={siteType}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`${CARE_URL_FE}/${LOCALIZED_SLUGS[locale]?.SPECIALTIES}`}\n >\n {f('home.navigator.menuItem.allSpecialties')}\n <StyledImageWrapper>\n {siteType === 'helloSites' ? (\n <img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.allSpecialties')}\n />\n ) : (\n <svg\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=\"M6.5 12H17.5M17.5 12L12.9118 8M17.5 12L12.9118 16\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </>\n {/* )} */}\n <StyledCloseWrapper onClick={onClosePopup}>\n {/* <img\n src={`${basePath}/svg/close.svg`}\n style={{ width: '24px', height: '24px' }}\n alt={'close'}\n /> */}\n <svg\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 18M18 18L6 6\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n />\n </svg>\n </StyledCloseWrapper>\n </StyledInnerMenuPopupContainer>\n </Container>\n </StyledMenuPopupContainer>\n </StyledMenuPopupWrapper>\n )\n}\n\nexport { MenuCareList }\n","import React from 'react'\n\nimport Skeleton from 'react-loading-skeleton'\n\nimport { StyledCardSkeleton } from './index.styled'\n\nconst CategorySkeleton = () => (\n <StyledCardSkeleton\n style={{\n marginTop: '16px',\n }}\n >\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n </StyledCardSkeleton>\n)\n\nexport default CategorySkeleton\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nexport const StyledWrapper = styled.div`\n ${MediaQueries.mbDown} {\n margin: 48px 0;\n }\n\n ${MediaQueries.mbUp} {\n padding: 0 16px;\n }\n`\n\nexport const StyledCardSkeleton = styled.div`\n & > div {\n width: 100%;\n margin-bottom: 8px;\n }\n`\nexport const StyledContainer = styled.div`\n ${MediaQueries.mbDown} {\n & > :not(:last-child) {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n & > div > :not(:last-child) {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n }\n\n &[data-category-list-type='sub'] {\n padding-bottom: 72px;\n }\n\n &[data-is-displayed='false'] {\n display: none;\n }\n\n display: flex;\n flex-direction: column;\n`\n\nexport const StyledListContainer = styled.div`\n ${MediaQueries.mbDown} {\n & > :not(:last-child) {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n & > div > :not(:last-child) {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n }\n`\n\nexport const StyledCategoryContainer = styled.div`\n display: flex;\n width: 100%;\n height: 48px;\n align-items: center;\n justify-content: space-between;\n\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n\n &[data-is-heading-category='true'] {\n border-bottom: none;\n background-color: ${(props: ThemeProps) => props.theme.colors.blue50};\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n\n ${MediaQueries.mbDown} {\n padding: 8px;\n }\n &[data-event-category] > * {\n pointer-events: none;\n }\n`\n\nexport const StyledCategoryItemDesktop = styled.div`\n padding-right: 16px;\n margin-bottom: 12px;\n\n & > a {\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n }\n\n & > a:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n\n .iconMenu {\n display: flex;\n align-items: center;\n\n > .imageContainer {\n display: flex;\n width: 32px;\n min-width: 32px;\n align-items: center;\n margin-right: 16px;\n }\n }\n &[data-event-category] > * {\n pointer-events: none;\n }\n`\n\nexport const StyledCategory = styled.div``\n\nexport const StyledCategoryIcon = styled.div``\n\nexport const StyledSpotlightItemAll = styled.div`\n display: flex;\n align-items: center;\n\n ${MediaQueries.mbDown} {\n padding: 8px;\n }\n\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n line-height: 24px;\n\n &[data-theme='marryBaby'] {\n color: ${(props: ThemeProps) => props.theme.mbColors.pink};\n }\n &[data-event-category] * {\n pointer-events: none;\n }\n`\nexport const StyledImageWrapper = styled.div`\n display: flex;\n align-items: center;\n\n margin-left: 10px;\n`\n","import React from 'react'\n\nimport Skeleton from 'react-loading-skeleton'\n\nimport { StyledCardSkeleton } from './index.styled'\n\nconst SpotlightSkeleton = () => (\n <StyledCardSkeleton\n style={{\n marginTop: '16px',\n }}\n >\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n </StyledCardSkeleton>\n)\n\nexport default SpotlightSkeleton\n","import React from 'react'\n\nimport { Heading } from 'components/atoms/heading'\nimport { theme } from 'misc/theme'\n\nimport { domainLocales } from '../../constants'\nimport { LocaleType, SiteType, SpotlightSummary } from '../../types'\nimport { useTranslation } from '../../utils'\nimport {\n StyledCategory,\n StyledCategoryContainer,\n StyledWrapper,\n StyledContainer,\n StyledImageWrapper,\n StyledSpotlightItemAll,\n StyledCategoryItemDesktop,\n} from './index.styled'\nimport SpotlightSkeleton from './spotlightSkeleton'\n\nexport type Props = {\n isDisplayed?: boolean\n spotlights: SpotlightSummary[]\n isLoading?: boolean\n isMobile?: boolean\n className?: string\n basePath: string\n DISCOVER_URL_FE: string\n locale: LocaleType\n siteType: SiteType\n}\n\nconst SpotlightsList = ({\n isDisplayed = false,\n spotlights,\n isLoading,\n className,\n isMobile,\n DISCOVER_URL_FE,\n basePath,\n locale,\n siteType,\n}: Props) => {\n const f = useTranslation()\n\n if (!isDisplayed) return null\n return (\n <StyledWrapper>\n <Heading tag=\"h3\" style={{ marginBottom: 24 }}>\n {f('home.navigator.menuItem.spotlights')}\n </Heading>\n {isLoading && isDisplayed ? (\n <StyledContainer className={className}>\n <SpotlightSkeleton />\n </StyledContainer>\n ) : (\n <StyledContainer data-is-displayed={isDisplayed} className={className}>\n {spotlights.map((spotlight, index) => (\n <StyledCategoryItemDesktop\n style={{\n textDecoration: 'none',\n }}\n key={'spotlight-' + index}\n >\n {isMobile ? (\n <a\n href={spotlight.permalink}\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n >\n <StyledCategoryContainer\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}${spotlight.permalink}`}\n >\n <StyledCategory>{spotlight.name}</StyledCategory>\n </StyledCategoryContainer>\n </a>\n ) : (\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}${spotlight.permalink}`}\n style={{\n textDecoration: 'none',\n pointerEvents: 'auto',\n }}\n href={`${DISCOVER_URL_FE}${spotlight.permalink}`}\n >\n {spotlight.name}\n </a>\n )}\n </StyledCategoryItemDesktop>\n ))}\n <a\n style={{ textDecoration: 'none' }}\n href={`${DISCOVER_URL_FE}/spotlight/`}\n >\n <StyledSpotlightItemAll\n key={'all-spotlights'}\n data-theme={siteType}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`${DISCOVER_URL_FE}/spotlight/`}\n >\n {f('home.navigator.menuItem.allSpotlight')}\n <StyledImageWrapper>\n {siteType === 'helloSites' ? (\n <img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.allSpotlight')}\n />\n ) : (\n <svg\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=\"M6.5 12H17.5M17.5 12L12.9118 8M17.5 12L12.9118 16\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledImageWrapper>\n </StyledSpotlightItemAll>\n </a>\n </StyledContainer>\n )}\n </StyledWrapper>\n )\n}\n\nexport { SpotlightsList }\n","import React from 'react'\n\n// import { Heading, Text, theme } from '@hhgtech/hhg-components'\n// import { formatSpotlightsList } from 'api/dataTransform'\n// import { PATHS } from 'api/paths'\n// import { callApi, checkAvailableSpotlight, getDiscoverApiPath } from 'api/utils'\nimport { Container } from 'components/atoms/container'\n// import { domainLocales } from 'domainLocales'\n// import { basePath, DISCOVER_URL_FE } from 'interfaces/constants'\n// import {\n// Category,\n// DesktopMenuPopup,\n// LocaleType,\n// SpotlightSummary,\n// } from 'interfaces/types'\n// import Link from 'next/link'\n// import { useRouter } from 'next/router'\n// import { useIntl } from 'react-intl'\nimport { Heading } from 'components/atoms/heading'\nimport { Text } from 'components/atoms/text'\nimport { LocaleType } from 'interfaces/types'\nimport { theme } from 'misc/theme'\n\nimport { domainLocales } from '../constants'\nimport {\n Category,\n DesktopMenuPopup,\n SiteType,\n SpotlightSummary,\n} from '../types'\nimport {\n // checkAvailableSpotlight,\n // formatSpotlightsList,\n // getDiscoverDefaultSpotlightsApiPath,\n useTranslation,\n} from '../utils'\nimport CategorySkeleton from './categorySkeleton'\nimport {\n StyledCategory,\n StyledCategoryIcon,\n StyledCategoryContainer,\n StyledContainer,\n StyledListContainer,\n StyledCategoryItemAll,\n StyledImageWrapper,\n StyledMenuPopupWrapper,\n StyledMenuPopupContainer,\n StyledMenuPopupInner,\n StyledHealthCategoriesContainer,\n StyledCategoryItem,\n StyledSubCategoryItem,\n StyledCloseWrapper,\n} from './index.styled'\nimport { SpotlightsList } from './spotlightsList'\n\n// type DesktopPopupType = {\n// isDisplayed?: boolean\n// categories: Category[]\n// onClosePopup?: () => void\n// isLoading?: boolean\n// isMobile?: boolean\n// className?: string\n// desktopPopupType?: DesktopMenuPopup\n// }\n\n// type MobilePopupType = {\n// isDisplayed?: boolean\n// categories: Category[]\n// type: 'sub' | 'main'\n// onSelectCategory?: (c: Category) => void\n// isLoading?: boolean\n// isMobile?: boolean\n// className?: string\n// }\n\n// type PopupType = isMobile extends false ? DesktopPopupType : MobilePopupType\n\nexport type Props = {\n locale: LocaleType\n // discoverApiDomain: string\n basePath: string\n isDisplayed: boolean\n categories: Category[]\n type: 'sub' | 'main'\n onSelectCategory: (c: Category) => void\n onClosePopup: () => void\n isLoading: boolean\n isMobile: boolean\n // className: string\n desktopPopupType: DesktopMenuPopup\n // callApiHandler: (p: string, m: 'GET' | 'POST' | 'PUT') => any\n DISCOVER_URL_FE: string\n siteType: SiteType\n spotlightsList: SpotlightSummary[]\n // onSubCategory: (c: Category) => void\n // onSubCatLevel: (l: string) => void\n}\n\nconst HelloSitesMenuCategoriesList = ({\n locale,\n // discoverApiDomain,\n basePath,\n isDisplayed = false,\n categories,\n spotlightsList,\n type,\n onSelectCategory,\n onClosePopup,\n desktopPopupType,\n isMobile,\n isLoading,\n // className,\n // callApiHandler,\n DISCOVER_URL_FE,\n siteType = 'helloSites',\n}: Props) => {\n // const router = useRouter()\n const f = useTranslation()\n // const [spotlightsList, setSpotlightsList] = useState<SpotlightSummary[]>([])\n\n return isMobile ? (\n <>\n {isLoading && isDisplayed ? (\n <StyledContainer>\n <CategorySkeleton />\n </StyledContainer>\n ) : (\n <StyledContainer\n data-is-displayed={isDisplayed}\n data-category-list-type={type}\n // className={className}\n >\n <Heading tag=\"h3\" style={{ marginBottom: 8 }}>\n {f('home.navigator.menuItem.healthCategories')}\n </Heading>\n <StyledListContainer>\n {categories.map((category, index) => (\n <div key={type + '-category-' + index}>\n <a\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n onClick={(\n e: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n ) => {\n if (\n category.childCates &&\n category.childCates.length > 0 &&\n type !== 'sub'\n ) {\n e.preventDefault()\n }\n }}\n href={DISCOVER_URL_FE + category.permalink}\n >\n <StyledCategoryContainer\n onClick={() => {\n onSelectCategory?.(category)\n }}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}${category.permalink}`}\n data-is-heading-category={\n type === 'sub' &&\n category.childCates &&\n category.childCates.length > 0\n }\n >\n <StyledCategory>{category.displayName}</StyledCategory>\n {type === 'main' && (\n <StyledCategoryIcon>\n {siteType === 'helloSites' ? (\n <img\n src={`${basePath}/svg/chevronRight.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={category.categoryName}\n />\n ) : (\n <svg\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=\"M6.5 12H17.5M17.5 12L12.9118 8M17.5 12L12.9118 16\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledCategoryIcon>\n )}\n </StyledCategoryContainer>\n {type === 'sub' &&\n category.childCates &&\n category.childCates.length > 0 &&\n category.childCates.map((subCategory, subIndex) => (\n <a\n style={{ textDecoration: 'none' }}\n href={subCategory.permalink}\n key={type + '-2-' + subIndex}\n >\n <StyledCategoryContainer\n data-is-heading-category={\n type === 'sub' &&\n subCategory.childCates &&\n subCategory.childCates.length > 0\n }\n >\n <Text size=\"p3\">{subCategory.displayName}</Text>\n </StyledCategoryContainer>\n </a>\n ))}\n </a>\n </div>\n ))}\n <a\n style={{ textDecoration: 'none' }}\n href={`${DISCOVER_URL_FE}/categories/`}\n >\n <StyledCategoryItemAll\n // onClick={closePopup}\n key={'all-categories'}\n data-theme={siteType}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`${DISCOVER_URL_FE}/categories/`}\n >\n {f('home.navigator.menuItem.allCategories')}\n <StyledImageWrapper>\n {siteType === 'helloSites' ? (\n <img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.allCategories')}\n />\n ) : (\n <svg\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=\"M6.5 12H17.5M17.5 12L12.9118 8M17.5 12L12.9118 16\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </StyledListContainer>\n <SpotlightsList\n isDisplayed={type === 'main'}\n spotlights={spotlightsList}\n isLoading={false}\n isMobile={isMobile}\n basePath={basePath}\n DISCOVER_URL_FE={DISCOVER_URL_FE}\n locale={locale}\n siteType={siteType}\n />\n </StyledContainer>\n )}\n </>\n ) : (\n <StyledMenuPopupWrapper\n className=\"top-menu-categories\"\n onClick={onClosePopup}\n data-is-display={desktopPopupType === 'categories'}\n // key={nextId()}\n >\n <StyledMenuPopupContainer>\n <Container style={{ padding: '0 16px' }} type={siteType}>\n <StyledMenuPopupInner\n data-popup-type={desktopPopupType}\n onClick={(e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n e.stopPropagation()\n }}\n >\n <div>\n <Heading tag=\"h3\" style={{ marginBottom: 24 }}>\n {f('home.navigator.menuItem.healthCategories')}\n </Heading>\n <StyledHealthCategoriesContainer\n data-disabled-divider={spotlightsList.length === 0}\n >\n {categories.map((category, categoryIndex) => (\n <StyledCategoryItem\n style={{\n textDecoration: 'none',\n }}\n key={category.categoryName + categoryIndex}\n >\n {/* <Link > */}\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}${category.permalink}`}\n style={{\n textDecoration: 'none',\n pointerEvents: 'auto',\n }}\n onClick={onClosePopup}\n href={`${DISCOVER_URL_FE}${category.permalink}`}\n >\n {category.displayName}\n </a>\n {/* </Link> */}\n <StyledSubCategoryItem>\n {category.childCates &&\n category.childCates.map((subCat, index) => (\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}${subCat.permalink}`}\n style={{\n textDecoration: 'none',\n pointerEvents: 'auto',\n }}\n href={subCat.permalink}\n key={index}\n >\n {subCat.displayName}\n </a>\n ))}\n </StyledSubCategoryItem>\n </StyledCategoryItem>\n ))}\n <a\n style={{ textDecoration: 'none' }}\n href={`${DISCOVER_URL_FE}/categories/`}\n >\n <StyledCategoryItemAll\n onClick={onClosePopup}\n key={'all-categories'}\n data-theme={siteType}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`${DISCOVER_URL_FE}/categories/`}\n >\n {f('home.navigator.menuItem.allCategories')}\n <StyledImageWrapper>\n {siteType === 'helloSites' ? (\n <img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.allCategories')}\n />\n ) : (\n <svg\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=\"M6.5 12H17.5M17.5 12L12.9118 8M17.5 12L12.9118 16\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </StyledHealthCategoriesContainer>\n </div>\n <SpotlightsList\n isDisplayed={type === 'main'}\n spotlights={spotlightsList}\n isLoading={false}\n basePath={basePath}\n DISCOVER_URL_FE={DISCOVER_URL_FE}\n locale={locale}\n siteType={siteType}\n />\n <StyledCloseWrapper onClick={onClosePopup}>\n {/* <img\n src={`${basePath}/svg/close.svg`}\n style={{ width: '24px', height: '24px' }}\n alt={'close'}\n /> */}\n <svg\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 18M18 18L6 6\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n />\n </svg>\n </StyledCloseWrapper>\n </StyledMenuPopupInner>\n </Container>\n </StyledMenuPopupContainer>\n </StyledMenuPopupWrapper>\n )\n}\n\nexport { HelloSitesMenuCategoriesList }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nimport { Z_INDEX } from '../constants'\n\nexport const StyledMarryBabyListContainer = styled.div``\n\nexport const StyledMarryBabyIconContainer = styled.div`\n display: flex;\n width: 40px;\n height: 40px;\n align-items: center;\n justify-content: center;\n\n margin-right: 16px;\n border-radius: 50%;\n`\n\nexport const StyledMarryBabySubMenuItem = styled.div`\n display: flex;\n margin-left: 48px;\n\n > :first-child {\n margin-right: 24px;\n }\n`\n\nexport const StyledMarryBabyCategoryContainer = styled.div`\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n //height: 40px;\n\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n\n &[data-is-heading-category='true'] {\n border-bottom: none;\n background-color: ${(props: ThemeProps) => props.theme.colors.blue50};\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n\n > svg:first-child {\n margin-right: 24px;\n }\n`\n\nexport const StyledMarryBabyCategoryCollapsibleContainer = styled.div`\n overflow: hidden;\n > .expanding {\n animation-duration: 0.3s;\n animation-name: expandingTopToBottom;\n }\n\n > .collapsing {\n margin-top: -100%;\n animation-duration: 0.3s;\n animation-name: collapsingBottomToTop;\n }\n`\n\nexport const StyledMarryBabyMenuPopupWrapper = styled.div`\n position: absolute;\n z-index: ${Z_INDEX.menuCategoryPopupWrapper};\n top: 64px;\n\n min-width: 375px;\n align-items: center;\n background-color: transparent;\n &[data-is-display='false'] {\n display: none;\n }\n`\n\nexport const StyledFullScreenLayer = styled.div`\n position: fixed;\n top: 69px;\n left: 0;\n width: 100vw;\n height: 100vh;\n`\n\nexport const StyledMarryBabyMenuPopupContainer = styled.div`\n z-index: ${Z_INDEX.menuCategoryPopupContainer};\n\n width: 100%;\n\n max-height: 80vh;\n\n padding: 20px 0;\n\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral50};\n //align-items: center;\n //display: flex;\n //flex: 1;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n border-radius: 16px;\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 overflow-y: auto;\n`\n\nexport const StyledMarryBabyMenuPopupInner = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n padding: 24px;\n`\n\nexport const StyledMarryBabyHealthCategoriesContainer = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n`\n\nexport const StyledMarryBabyCategoryItem = styled.div`\n padding-right: 16px;\n margin-bottom: 12px;\n\n & > a {\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n }\n\n & > a:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n\n .iconMenu {\n display: flex;\n align-items: center;\n\n > .imageContainer {\n display: flex;\n width: 32px;\n min-width: 32px;\n align-items: center;\n margin-right: 16px;\n }\n }\n`\n","import React, { useState } from 'react'\n\nimport { theme } from 'misc/theme'\nimport { CSSProperties } from 'styled-components'\n\nimport { MarryBabyText } from '../marryBabyText'\nimport { Category, DesktopMenuPopup } from '../types'\nimport CategorySkeleton from './categorySkeleton'\nimport {\n StyledCategoryIcon,\n StyledContainer,\n StyledSameLineIndicator,\n} from './index.styled'\nimport {\n StyledFullScreenLayer,\n StyledMarryBabyCategoryCollapsibleContainer,\n StyledMarryBabyCategoryContainer,\n StyledMarryBabyHealthCategoriesContainer,\n StyledMarryBabyIconContainer,\n StyledMarryBabyListContainer,\n StyledMarryBabyMenuPopupContainer,\n StyledMarryBabyMenuPopupWrapper,\n StyledMarryBabySubMenuItem,\n} from './marryBaby.styled'\n\nexport type Props = {\n discoverApiDomain: string\n basePath: string\n isDisplayed: boolean\n categories: Category[]\n type: 'sub' | 'main'\n onSelectCategory?: (c: Category) => void\n // onClosePopup?: () => void\n isLoading: boolean\n isMobile: boolean\n // className: string\n desktopPopupType: DesktopMenuPopup\n callApiHandler: (p: string, m: 'GET' | 'POST') => unknown\n MARRY_BABY_FE: string\n // siteType: SiteType\n}\n\nconst MarryBabyMenuCategoriesList = ({\n // locale,\n // discoverApiDomain,\n // basePath,\n isDisplayed = false,\n categories,\n type,\n onSelectCategory,\n // onClosePopup,\n desktopPopupType,\n isMobile,\n isLoading,\n MARRY_BABY_FE,\n}: // className,\n// callApiHandler,\n// DISCOVER_URL_FE,\n// siteType = 'helloSites',\nProps) => {\n const [expandingItem, setExpandingItem] = useState(-1)\n const [isClosingItem, setIsClosingItem] = useState(false)\n\n const onParentItemClosed = () => {\n setIsClosingItem(true)\n\n setTimeout(() => {\n setExpandingItem(-1)\n\n setTimeout(() => {\n setIsClosingItem(false)\n }, 100)\n }, 300)\n }\n\n // useEffect(() => {\n // ;(async () => {\n // const response = (await callApiHandler(\n // getDiscoverDefaultSpotlightsApiPath(locale, discoverApiDomain, {\n // perPage: 100,\n // orderBy: 'start_date',\n // }),\n // 'GET',\n // )) as {\n // data: { articles: SpotlightSummaryApi[] }\n // }\n\n // if (response?.data) {\n // const formattedSpotlights = formatSpotlightsList(\n // response?.data?.articles,\n // )\n // .filter(checkAvailableSpotlight)\n // .slice(0, 4)\n\n // setSpotlightsList(formattedSpotlights)\n // }\n // })()\n // }, [])\n\n return isMobile ? (\n <>\n {isLoading && isDisplayed ? (\n <StyledContainer>\n <CategorySkeleton />\n </StyledContainer>\n ) : (\n <StyledContainer\n data-is-displayed={isDisplayed}\n data-category-list-type={type}\n // className={className}\n style={{ marginTop: 24 }}\n >\n <StyledMarryBabyListContainer className=\"marry-bb-menu-categories\">\n {categories.map((category, index) => (\n <div\n key={type + '-category-' + index}\n className={`wrapper-menu-category wrapper-menu-category-${index}`}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://marrybaby.vn${category.permalink}`}\n >\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://marrybaby.vn${category.permalink}`}\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n onClick={(\n e: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n ) => {\n e.preventDefault()\n }}\n href={`${MARRY_BABY_FE}${category.permalink}`}\n >\n <StyledMarryBabyCategoryContainer\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://marrybaby.vn${category.permalink}`}\n onClick={() => {\n type === 'main' || category.childCates?.length === 0\n ? onSelectCategory?.(category)\n : expandingItem === index\n ? onParentItemClosed()\n : setExpandingItem(index)\n }}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n {type === 'main' ? (\n <StyledMarryBabyIconContainer\n style={{\n backgroundColor: category.imageColor,\n }}\n >\n <img\n src={category.iconUrl}\n style={{ width: '24px', height: '24px' }}\n alt={category.name}\n />\n </StyledMarryBabyIconContainer>\n ) : (\n <svg\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=\"M12 10C10.9 10 10 10.9 10 12C10 13.1 10.9 14 12 14C13.1 14 14 13.1 14 12C14 10.9 13.1 10 12 10Z\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n />\n </svg>\n )}\n <MarryBabyText\n style={\n { fontWeight: theme.sizes.fwSemiBold } as CSSProperties\n }\n type=\"subtitle-2\"\n >\n {category.displayName}\n </MarryBabyText>\n <StyledSameLineIndicator />\n {type === 'main' ? (\n <StyledCategoryIcon>\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.5 6L11 8.5L8.5 11\"\n stroke=\"#9495A0\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n\n {/* )} */}\n </StyledCategoryIcon>\n ) : (\n <StyledCategoryIcon>\n {expandingItem !== index ? (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.5 6L11 8.5L8.5 11\"\n stroke=\"#9495A0\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ) : (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5 7.5L9 10L6.5 7.5\"\n stroke=\"#2661AD\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n\n {/* )} */}\n </StyledCategoryIcon>\n )}\n </StyledMarryBabyCategoryContainer>\n </a>\n {type === 'sub' &&\n category.childCates &&\n expandingItem === index &&\n category.childCates.length > 0 && (\n <StyledMarryBabyCategoryCollapsibleContainer>\n <div\n className={isClosingItem ? 'collapsing' : 'expanding'}\n >\n {category.childCates.map((subCategory, subIndex) => (\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://marrybaby.vn${category.permalink}`}\n style={{ textDecoration: 'none' }}\n href={`${MARRY_BABY_FE}${subCategory.permalink}`}\n key={type + '-2-' + subIndex}\n >\n <StyledMarryBabyCategoryContainer\n data-is-heading-category={\n type === 'sub' &&\n subCategory.childCates &&\n subCategory.childCates.length > 0\n }\n >\n <StyledMarryBabySubMenuItem>\n <svg\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=\"M12 10C10.9 10 10 10.9 10 12C10 13.1 10.9 14 12 14C13.1 14 14 13.1 14 12C14 10.9 13.1 10 12 10Z\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n />\n </svg>\n <MarryBabyText type=\"subtitle-2\">\n {subCategory.displayName}\n </MarryBabyText>\n </StyledMarryBabySubMenuItem>\n </StyledMarryBabyCategoryContainer>\n </a>\n ))}\n </div>\n </StyledMarryBabyCategoryCollapsibleContainer>\n )}\n\n <div style={{ display: 'none' }}>\n {category.childCates &&\n category.childCates.map((subCategory, subIndex) => (\n <a\n href={`${MARRY_BABY_FE}${subCategory.permalink}`}\n key={subIndex}\n style={{ textDecoration: 'none' }}\n >\n <div\n data-is-heading-category={\n type === 'sub' &&\n subCategory.childCates &&\n subCategory.childCates.length > 0\n }\n >\n <p>{subCategory.displayName}</p>\n </div>\n </a>\n ))}\n </div>\n </div>\n ))}\n </StyledMarryBabyListContainer>\n </StyledContainer>\n )}\n </>\n ) : (\n <StyledMarryBabyMenuPopupWrapper\n className=\"top-menu-categories\"\n data-is-display={desktopPopupType === 'categories'}\n tabIndex={0}\n >\n <StyledFullScreenLayer />\n <StyledMarryBabyMenuPopupContainer data-popup-type={desktopPopupType}>\n <StyledMarryBabyHealthCategoriesContainer className=\"marry-bb-menu-categories\">\n {isLoading ? (\n <div\n style={{\n width: '100%',\n padding: '0 20px',\n }}\n >\n <CategorySkeleton />\n </div>\n ) : (\n categories.map((category, categoryIndex) => (\n <div\n className={`wrapper-menu-category wrapper-menu-category-${categoryIndex}`}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://marrybaby.vn${category.permalink}`}\n key={type + '-category-' + categoryIndex}\n onClick={() => {\n onSelectCategory(category)\n }}\n >\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://marrybaby.vn${category.permalink}`}\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n href={`${MARRY_BABY_FE}${category.permalink}`}\n >\n <StyledMarryBabyCategoryContainer\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n }}\n >\n {/* <StyledCategory></StyledCategory> */}\n <StyledMarryBabyIconContainer\n style={{\n backgroundColor: category.imageColor,\n }}\n >\n <img\n src={category.iconUrl}\n style={{ width: '24px', height: '24px' }}\n alt={category.name}\n />\n </StyledMarryBabyIconContainer>\n\n <MarryBabyText\n style={\n {\n fontWeight: theme.sizes.fwSemiBold,\n } as CSSProperties\n }\n type=\"subtitle-2\"\n >\n {category.displayName}\n </MarryBabyText>\n </StyledMarryBabyCategoryContainer>\n </a>\n </div>\n ))\n )}\n </StyledMarryBabyHealthCategoriesContainer>\n </StyledMarryBabyMenuPopupContainer>\n </StyledMarryBabyMenuPopupWrapper>\n )\n}\n\nexport { MarryBabyMenuCategoriesList }\n","import React from 'react'\n\nimport { LocaleType } from 'interfaces/types'\n\nimport {\n Category,\n DesktopMenuPopup,\n SiteType,\n SpotlightSummary,\n} from '../types'\nimport { HelloSitesMenuCategoriesList } from './helloSites'\nimport { MarryBabyMenuCategoriesList } from './marryBaby'\n\nexport type Props = {\n isDisplayed: boolean\n locale: LocaleType\n discoverApiDomain: string\n basePath: string\n categories: Category[]\n spotlightsList: SpotlightSummary[]\n type: 'sub' | 'main'\n onSelectCategory: (c: Category) => void\n onClosePopup: () => void\n isLoading: boolean\n isMobile: boolean\n // className: string\n desktopPopupType: DesktopMenuPopup\n callApiHandler: (p: string, m: 'GET' | 'POST' | 'PUT') => any\n DISCOVER_URL_FE: string\n MARRY_BABY_FE: string\n siteType: SiteType\n // onSubCategory: (c: Category) => void\n // onSubCatLevel: (l: string) => void\n}\n\nconst MenuCategoriesList = ({\n isDisplayed = false,\n locale,\n discoverApiDomain,\n basePath,\n categories,\n spotlightsList,\n type,\n onSelectCategory,\n onClosePopup,\n desktopPopupType,\n isMobile,\n isLoading,\n // className,\n callApiHandler,\n DISCOVER_URL_FE,\n MARRY_BABY_FE,\n siteType = 'helloSites',\n}: Props) => {\n return siteType === 'helloSites' ? (\n <HelloSitesMenuCategoriesList\n locale={locale}\n basePath={basePath}\n // callApiHandler={callApiHandler}\n // discoverApiDomain={discoverApiDomain}\n DISCOVER_URL_FE={DISCOVER_URL_FE}\n isDisplayed={isDisplayed}\n type={type}\n onSelectCategory={onSelectCategory}\n categories={categories}\n spotlightsList={spotlightsList}\n isLoading={isLoading}\n isMobile={isMobile}\n siteType={siteType}\n onClosePopup={onClosePopup}\n desktopPopupType={desktopPopupType}\n />\n ) : (\n <MarryBabyMenuCategoriesList\n basePath={basePath}\n callApiHandler={callApiHandler}\n discoverApiDomain={discoverApiDomain}\n isDisplayed={isDisplayed}\n type={type}\n onSelectCategory={onSelectCategory}\n categories={categories}\n isLoading={isLoading}\n isMobile={isMobile}\n // onClosePopup={onClosePopup}\n MARRY_BABY_FE={MARRY_BABY_FE}\n desktopPopupType={desktopPopupType}\n // className={className}\n />\n )\n}\n\nexport { MenuCategoriesList }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nimport { Z_INDEX } from '../constants'\n\nexport const StyledCardSkeleton = styled.div`\n & > div {\n width: 100%;\n margin-bottom: 8px;\n }\n`\nexport const StyledContainer = styled.div`\n & > :not(:last-child) {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n & > div > :not(:last-child) {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n &[data-category-list-type='sub'] {\n padding-bottom: 72px;\n }\n\n &[data-is-displayed='false'] {\n display: none;\n }\n\n //margin-top: 112px;\n`\nexport const StyledCategoryContainer = styled.div`\n display: flex;\n width: 100%;\n height: 56px;\n align-items: center;\n justify-content: space-between;\n padding: 8px;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n\n &[data-is-heading-category='true'] {\n border-bottom: none;\n background-color: ${(props: ThemeProps) => props.theme.colors.blue50};\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n &[data-event-category] > * {\n pointer-events: none;\n }\n`\n\nexport const StyledCategory = styled.div``\n\nexport const StyledCategoryIcon = styled.div``\n\nexport const StyledCategoryInfo = styled.div`\n display: flex;\n align-items: center;\n\n > :first-child {\n min-width: 40px;\n margin-right: 16px;\n }\n`\n\nexport const StyledMenuPopupWrapper = styled.div`\n position: fixed;\n z-index: ${Z_INDEX.menuCategoryPopupWrapper};\n top: 69px;\n left: 0;\n width: 100%;\n height: 100%;\n align-items: center;\n background-color: transparent;\n &[data-is-display='false'] {\n display: none;\n }\n`\n\nexport const StyledMenuPopupContainer = styled.div`\n z-index: ${Z_INDEX.menuCategoryPopupContainer};\n align-items: center;\n\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral50};\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\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\nexport const StyledInnerMenuPopupContainer = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n padding: 48px 0;\n`\n\nexport const StyledHealthToolItem = styled.div`\n width: 33%;\n height: 48px;\n padding-right: 16px;\n margin-bottom: 12px;\n\n & > a {\n display: flex;\n align-items: center;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n\n & > :first-child {\n margin-right: 16px;\n }\n }\n\n & > a > p:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n [data-event-category] > * {\n pointer-events: none;\n }\n`\n\nexport const StyledCategoryItemAll = styled.div`\n display: flex;\n align-items: center;\n\n padding-right: 16px;\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n line-height: 24px;\n\n &[data-theme='marryBaby'] {\n color: ${(props: ThemeProps) => props.theme.mbColors.pink};\n }\n &[data-event-category] * {\n pointer-events: none;\n }\n`\n\nexport const StyledImageWrapper = styled.div`\n display: flex;\n align-items: center;\n\n margin-left: 10px;\n`\n\nexport const StyledCloseWrapper = styled.div`\n position: absolute;\n top: 16px;\n right: 0;\n display: flex;\n align-items: center;\n cursor: pointer;\n`\n","import React from 'react'\n\nimport Skeleton from 'react-loading-skeleton'\n\nimport { StyledCardSkeleton } from './index.styled'\n\nconst CategorySkeleton = () => (\n <StyledCardSkeleton\n style={{\n marginTop: '16px',\n }}\n >\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n </StyledCardSkeleton>\n)\n\nexport default CategorySkeleton\n","import React from 'react'\n\nimport { Container } from 'components/atoms/container'\nimport { LocaleType } from 'interfaces/types'\nimport { theme } from 'misc/theme'\n\nimport { domainLocales } from '../constants'\nimport { Community, DesktopMenuPopup, SiteType } from '../types'\nimport { useTranslation } from '../utils'\nimport CategorySkeleton from './categorySkeleton'\nimport {\n StyledCategory,\n StyledCategoryIcon,\n StyledCategoryContainer,\n StyledContainer,\n StyledCategoryInfo,\n StyledMenuPopupWrapper,\n StyledMenuPopupContainer,\n StyledInnerMenuPopupContainer,\n StyledHealthToolItem,\n StyledCategoryItemAll,\n StyledImageWrapper,\n StyledCloseWrapper,\n} from './index.styled'\n\nexport type Props = {\n isDisplayed: boolean\n locale: LocaleType\n togetherApiDomain: string\n communities: Community[]\n type: 'sub' | 'main'\n onSelectCommunity: ({}: {\n community: Community\n isSetToSubMenu: boolean\n }) => void\n onClosePopup: () => void\n isLoading: boolean\n isMobile: boolean\n basePath: string\n TOGETHER_URL_FE: string\n siteType: SiteType\n desktopPopupType: DesktopMenuPopup\n}\n\nconst HelloSitesMenuCommunitiesList = ({\n isDisplayed,\n communities,\n type,\n onSelectCommunity,\n onClosePopup,\n isLoading,\n basePath,\n TOGETHER_URL_FE,\n siteType = 'helloSites',\n isMobile,\n locale,\n desktopPopupType,\n}: Props) => {\n const f = useTranslation()\n return isMobile ? (\n <>\n {isLoading && isDisplayed ? (\n <StyledContainer>\n <CategorySkeleton />\n </StyledContainer>\n ) : (\n <StyledContainer\n data-category-list-type={type}\n data-is-displayed={isDisplayed}\n >\n {type === 'main' &&\n communities.map((community, index) => (\n <div key={type + '-category-' + index}>\n <a\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n onClick={(\n e: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n ) => {\n e.preventDefault()\n }}\n href={`${TOGETHER_URL_FE}/${community.communitySlug}`}\n >\n <StyledCategoryContainer\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}/${community.communitySlug}`}\n onClick={() => {\n onSelectCommunity({ community, isSetToSubMenu: true })\n }}\n data-is-heading-category={false}\n >\n <StyledCategoryInfo>\n <img\n src={community.thumbnail}\n style={{ width: '40px', height: '40px' }}\n alt={community.title}\n />\n <StyledCategory>{community.title}</StyledCategory>\n </StyledCategoryInfo>\n <StyledCategoryIcon>\n {siteType === 'helloSites' ? (\n <img\n src={`${basePath}/svg/chevronRight.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={community.title}\n />\n ) : (\n <svg\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=\"M6.5 12H17.5M17.5 12L12.9118 8M17.5 12L12.9118 16\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledCategoryIcon>\n </StyledCategoryContainer>\n </a>\n </div>\n ))}\n {type === 'sub' &&\n communities.map((community, index) => (\n <div key={type + '-category-' + index}>\n <a\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n onClick={(\n e: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n ) => {\n e.preventDefault()\n }}\n href={`${TOGETHER_URL_FE}/${community.communitySlug}`}\n >\n <StyledCategoryContainer\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}/${community.communitySlug}`}\n onClick={() => {\n onSelectCommunity({ community, isSetToSubMenu: false })\n }}\n data-is-heading-category={false}\n >\n <StyledCategoryInfo>\n <img\n src={community.thumbnail}\n style={{ width: '40px', height: '40px' }}\n alt={community.title}\n />\n <StyledCategory>{community.title}</StyledCategory>\n </StyledCategoryInfo>\n </StyledCategoryContainer>\n </a>\n </div>\n ))}\n <a style={{ textDecoration: 'none' }} href={TOGETHER_URL_FE + '/'}>\n <StyledCategoryItemAll\n onClick={onClosePopup}\n key={'all-communities'}\n data-theme={siteType}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={TOGETHER_URL_FE + '/'}\n >\n {f('home.navigator.menuItem.allCommunities')}\n <StyledImageWrapper>\n <img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.allCommunities')}\n />\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </StyledContainer>\n )}\n </>\n ) : (\n <StyledMenuPopupWrapper\n className=\"top-menu-communities\"\n onClick={onClosePopup}\n data-is-display={desktopPopupType === 'communities'}\n // key={nextId()}\n >\n <StyledMenuPopupContainer>\n <Container style={{ padding: '0 16px' }} type={siteType}>\n <StyledInnerMenuPopupContainer\n data-popup-type={desktopPopupType}\n onClick={(e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n e.stopPropagation()\n }}\n >\n <>\n {communities.map((community: Community) => (\n <StyledHealthToolItem\n key={community.title}\n onClick={onClosePopup}\n >\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}/${community.communitySlug}`}\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n className=\"iconMenu\"\n href={`${TOGETHER_URL_FE}/${community.communitySlug}`}\n >\n <div\n style={{\n display: 'flex',\n }}\n >\n <img\n alt=\"health-tool-icon\"\n src={\n community.thumbnail || `${basePath}/images/avatar.jpg`\n }\n style={{ width: '32px', height: '32px' }}\n />\n </div>\n <p>{community.title}</p>\n </a>\n </StyledHealthToolItem>\n ))}\n <a\n style={{ textDecoration: 'none' }}\n href={TOGETHER_URL_FE + '/'}\n >\n <StyledCategoryItemAll\n onClick={onClosePopup}\n key={'all-communities'}\n data-theme={siteType}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={TOGETHER_URL_FE + '/'}\n >\n {f('home.navigator.menuItem.allCommunities')}\n <StyledImageWrapper>\n {/* {siteType === 'helloSites' ? ( */}\n <img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.allCommunities')}\n />\n {/* // ) : (\n // <svg\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=\"M6.5 12H17.5M17.5 12L12.9118 8M17.5 12L12.9118 16\"\n // stroke=\"#3E3F58\"\n // strokeWidth=\"1.3\"\n // strokeLinecap=\"round\"\n // strokeLinejoin=\"round\"\n // />\n // </svg>\n // )} */}\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </>\n {/* )} */}\n <StyledCloseWrapper onClick={onClosePopup}>\n {/* <img\n src={`${basePath}/svg/close.svg`}\n style={{ width: '24px', height: '24px' }}\n alt={'close'}\n /> */}\n <svg\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 18M18 18L6 6\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n />\n </svg>\n </StyledCloseWrapper>\n </StyledInnerMenuPopupContainer>\n </Container>\n </StyledMenuPopupContainer>\n </StyledMenuPopupWrapper>\n )\n}\n\nexport { HelloSitesMenuCommunitiesList }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nimport { Z_INDEX } from '../constants'\n\n// import { Z_INDEX } from '../constants'\n\nexport const StyledMarryBabyIconContainer = styled.div`\n display: flex;\n width: 48px;\n height: 48px;\n align-items: center;\n justify-content: center;\n\n margin-right: 16px;\n\n //background-color: ${(props: ThemeProps) => props.theme.mbColors.lightGray};\n border-radius: 50%;\n`\n\nexport const StyledMarryBabyCategoryContainer = styled.div`\n display: flex;\n width: 100%;\n height: 64px;\n align-items: center;\n justify-content: flex-start;\n padding: 8px 16px;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n`\n\n// desktop\nexport const StyledMarryBabyMenuPopupWrapper = styled.div`\n position: absolute;\n z-index: ${Z_INDEX.menuCategoryPopupWrapper};\n top: 64px;\n\n min-width: 375px;\n align-items: center;\n background-color: transparent;\n &[data-is-display='false'] {\n display: none;\n }\n`\n\nexport const StyledFullScreenLayer = styled.div`\n position: fixed;\n top: 69px;\n left: 0;\n width: 100vw;\n height: 100vh;\n`\n\nexport const StyledMarryBabyMenuPopupContainer = styled.div`\n z-index: ${Z_INDEX.menuCategoryPopupContainer};\n\n width: 100%;\n\n max-height: 80vh;\n\n padding: 20px 0;\n\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral50};\n //align-items: center;\n //display: flex;\n //flex: 1;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n border-radius: 16px;\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 overflow-y: auto;\n`\n\nexport const StyledMarryBabyMenuPopupInner = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n padding: 24px;\n`\n\nexport const StyledMarryBabyHealthCategoriesContainer = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n`\n\nexport const StyledMarryBabyCategoryItem = styled.div`\n padding-right: 16px;\n margin-bottom: 12px;\n\n & > a {\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n }\n\n & > a:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n\n .iconMenu {\n display: flex;\n align-items: center;\n\n > .imageContainer {\n display: flex;\n width: 32px;\n min-width: 32px;\n align-items: center;\n margin-right: 16px;\n }\n }\n`\n","import React, { CSSProperties } from 'react'\n\n// import { Container } from 'components/atoms/container'\nimport { LocaleType } from 'interfaces/types'\nimport { theme } from 'misc/theme'\n\nimport { MarryBabyText } from '../marryBabyText'\nimport { Community, DesktopMenuPopup } from '../types'\n// import { useTranslation } from '../utils'\nimport CategorySkeleton from './categorySkeleton'\nimport {\n StyledCategory,\n // StyledCategoryIcon,\n // StyledCategoryContainer,\n // StyledCategoryIcon,\n // StyledCategoryItemAll,\n // StyledCloseWrapper,\n StyledContainer,\n // StyledHealthToolItem,\n // StyledImageWrapper,\n // StyledInnerMenuPopupContainer,\n // StyledMenuPopupContainer,\n // StyledMenuPopupWrapper,\n} from './index.styled'\nimport {\n StyledFullScreenLayer,\n StyledMarryBabyCategoryContainer,\n StyledMarryBabyHealthCategoriesContainer,\n StyledMarryBabyIconContainer,\n StyledMarryBabyMenuPopupContainer,\n StyledMarryBabyMenuPopupWrapper,\n} from './marryBaby.styled'\n\nexport type Props = {\n isDisplayed: boolean\n communities: Community[]\n onSelectCommunity: ({}: {\n community: Community\n isSetToSubMenu: boolean\n }) => void\n onClosePopup: () => void\n type: 'sub' | 'main'\n isLoading: boolean\n isMobile: boolean\n desktopPopupType: DesktopMenuPopup\n basePath: string\n locale: LocaleType\n togetherApiDomain: string\n TOGETHER_URL_FE: string\n // callApiHandler: (p: string, m: 'GET' | 'POST') => any\n // siteType: SiteType\n}\n\nconst MarryBabyMenuCommunitiesList = ({\n isDisplayed = false,\n communities,\n onSelectCommunity,\n isLoading,\n basePath,\n type,\n isMobile,\n onClosePopup,\n desktopPopupType,\n TOGETHER_URL_FE,\n}: Props) => {\n return isMobile ? (\n isLoading && isDisplayed ? (\n <StyledContainer>\n <CategorySkeleton />\n </StyledContainer>\n ) : (\n <StyledContainer\n style={{\n marginTop: 24,\n }}\n data-category-list-type={type}\n data-is-displayed={isDisplayed}\n >\n {communities.map((community, index) => (\n <a\n className={`wrapper-menu-community wrapper-menu-community-${index} iconMenu`}\n key={'community-' + index}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://marrybaby.vn/community/${community.communitySlug}`}\n >\n <StyledMarryBabyCategoryContainer\n onClick={() => {\n onSelectCommunity({\n community,\n isSetToSubMenu: false,\n })\n }}\n >\n <StyledMarryBabyIconContainer>\n <img\n alt=\"health-tool-icon\"\n src={community.thumbnail || `${basePath}/images/avatar.jpg`}\n style={{ width: '24px', height: '24px' }}\n />\n </StyledMarryBabyIconContainer>\n <StyledCategory>{community.title}</StyledCategory>\n </StyledMarryBabyCategoryContainer>\n </a>\n ))}\n </StyledContainer>\n )\n ) : (\n <StyledMarryBabyMenuPopupWrapper\n className=\"top-menu-communities\"\n onClick={onClosePopup}\n data-is-display={desktopPopupType === 'communities'}\n >\n <StyledFullScreenLayer />\n <StyledMarryBabyMenuPopupContainer\n data-popup-type={desktopPopupType}\n onClick={(e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n e.stopPropagation()\n }}\n >\n <StyledMarryBabyHealthCategoriesContainer>\n {isLoading ? (\n <div\n style={{\n width: '100%',\n padding: '0 20px',\n }}\n >\n <CategorySkeleton />\n </div>\n ) : (\n communities.map((community: Community, index: number) => (\n <a\n className={`wrapper-menu-community wrapper-menu-community-${index} iconMenu`}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://marrybaby.vn/community/${community.communitySlug}`}\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n href={`${TOGETHER_URL_FE}/${community.communitySlug}`}\n key={community.title}\n >\n <StyledMarryBabyCategoryContainer onClick={onClosePopup}>\n <StyledMarryBabyIconContainer\n style={{\n backgroundColor:\n community.color || theme.mbColors.lightGray,\n }}\n >\n <img\n alt={community.communitySlug}\n src={\n community.thumbnail || `${basePath}/images/avatar.jpg`\n }\n style={{ width: '24px', height: '24px' }}\n />\n </StyledMarryBabyIconContainer>\n <MarryBabyText\n style={\n {\n fontWeight: theme.sizes.fwSemiBold,\n } as CSSProperties\n }\n type=\"subtitle-2\"\n >\n {community.title}\n </MarryBabyText>\n </StyledMarryBabyCategoryContainer>\n </a>\n ))\n )}\n </StyledMarryBabyHealthCategoriesContainer>\n {/* )} */}\n </StyledMarryBabyMenuPopupContainer>\n </StyledMarryBabyMenuPopupWrapper>\n )\n}\n\nexport { MarryBabyMenuCommunitiesList }\n","import React from 'react'\n\nimport { LocaleType } from 'interfaces/types'\n\nimport { Community, DesktopMenuPopup, SiteType } from '../types'\nimport { HelloSitesMenuCommunitiesList } from './helloSites'\nimport { MarryBabyMenuCommunitiesList } from './marryBaby'\n\nexport type Props = {\n isDisplayed: boolean\n locale: LocaleType\n togetherApiDomain: string\n communities: Community[]\n type: 'sub' | 'main'\n onSelectCommunity: ({}: {\n community: Community\n isSetToSubMenu: boolean\n }) => void\n onClosePopup: () => void\n isLoading: boolean\n isMobile: boolean\n basePath: string\n TOGETHER_URL_FE: string\n siteType: SiteType\n desktopPopupType: DesktopMenuPopup\n // callApiHandler: (p: string, m: 'GET' | 'POST') => any\n // onSubCategory: (c: Category) => void\n // onSubCatLevel: (l: string) => void\n}\n\nconst MenuCommunitiesList = ({\n isDisplayed = false,\n locale,\n communities,\n type,\n onSelectCommunity,\n onClosePopup,\n isLoading,\n basePath,\n TOGETHER_URL_FE,\n siteType = 'helloSites',\n isMobile,\n desktopPopupType,\n togetherApiDomain,\n}: Props) => {\n return siteType === 'helloSites' ? (\n <HelloSitesMenuCommunitiesList\n isDisplayed={isDisplayed}\n locale={locale}\n TOGETHER_URL_FE={TOGETHER_URL_FE}\n basePath={basePath}\n type={type}\n onSelectCommunity={onSelectCommunity}\n communities={communities}\n isLoading={isLoading}\n isMobile={isMobile}\n siteType={siteType}\n togetherApiDomain={togetherApiDomain}\n desktopPopupType={desktopPopupType}\n onClosePopup={onClosePopup}\n />\n ) : (\n <MarryBabyMenuCommunitiesList\n isDisplayed={isDisplayed}\n locale={locale}\n TOGETHER_URL_FE={TOGETHER_URL_FE}\n basePath={basePath}\n type={type}\n onSelectCommunity={onSelectCommunity}\n communities={communities}\n isLoading={isLoading}\n isMobile={isMobile}\n togetherApiDomain={togetherApiDomain}\n desktopPopupType={desktopPopupType}\n onClosePopup={onClosePopup}\n />\n )\n}\n\nexport { MenuCommunitiesList }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nimport { Z_INDEX } from '../constants'\n\nexport const StyledCardSkeleton = styled.div`\n & > div {\n width: 100%;\n margin-bottom: 8px;\n }\n`\nexport const StyledContainer = styled.div`\n &[data-category-list-type='sub'] {\n padding-bottom: 72px;\n }\n\n &[data-is-displayed='false'] {\n display: none;\n }\n .title {\n margin-bottom: 8px;\n margin-top: 24px;\n }\n`\nexport const StyledCategoryContainer = styled.div`\n display: flex;\n width: 100%;\n height: 64px;\n align-items: center;\n justify-content: flex-start;\n padding: 8px;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n\n &[data-is-heading-category='true'] {\n /* border-bottom: none; */\n background-color: ${(props: ThemeProps) => props.theme.colors.blue50};\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n > * {\n pointer-events: none;\n }\n`\n\nexport const StyledCategory = styled.div``\n\nexport const StyledCategoryIcon = styled.div`\n padding-right: 16px;\n`\n\nexport const StyledMenuPopupWrapper = styled.div`\n position: fixed;\n z-index: ${Z_INDEX.menuCategoryPopupWrapper};\n top: 69px;\n left: 0;\n width: 100%;\n height: 100%;\n align-items: center;\n background-color: transparent;\n &[data-is-display='false'] {\n display: none;\n }\n`\n\nexport const StyledMenuPopupContainer = styled.div`\n z-index: ${Z_INDEX.menuCategoryPopupContainer};\n align-items: center;\n\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral50};\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\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\nexport const StyledInnerMenuPopupContainer = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n padding: 48px 0;\n`\n\nexport const StyledHealthToolItem = styled.div`\n width: 33%;\n height: 48px;\n padding-right: 16px;\n margin-bottom: 12px;\n\n &[data-grouped='true'] {\n width: 100%;\n }\n\n & > a {\n display: flex;\n align-items: center;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n\n & > :first-child {\n margin-right: 16px;\n }\n }\n\n & > a > p:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n [data-event-category] > * {\n pointer-events: none;\n }\n`\n\nexport const StyledCategoryItemAll = styled.div`\n display: flex;\n align-items: center;\n\n padding-right: 16px;\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n line-height: 24px;\n\n &[data-theme='marryBaby'] {\n color: ${(props: ThemeProps) => props.theme.mbColors.pink};\n }\n &[data-event-category] * {\n pointer-events: none;\n }\n`\n\nexport const StyledImageWrapper = styled.div`\n display: flex;\n align-items: center;\n\n margin-left: 10px;\n`\n\nexport const StyledCloseWrapper = styled.div`\n position: absolute;\n top: 16px;\n right: 0;\n display: flex;\n align-items: center;\n cursor: pointer;\n`\n\nexport const StyledHealtoolListContainer = styled.div`\n &[data-is-displayed='false'] {\n display: none;\n }\n`\n\nexport const StyledSeeMore = styled.div`\n margin-bottom: 56px;\n margin-top: 18px;\n`\n\nexport const StyleHealthToolByCategory = styled.div`\n position: relative;\n display: flex;\n width: 25%;\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n margin-bottom: 24px;\n h1 {\n margin-bottom: 20px;\n }\n`\n","import React from 'react'\n\nimport Skeleton from 'react-loading-skeleton'\n\nimport { StyledCardSkeleton } from './index.styled'\n\nconst CategorySkeleton = () => (\n <StyledCardSkeleton\n style={{\n marginTop: '16px',\n }}\n >\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n </StyledCardSkeleton>\n)\n\nexport default CategorySkeleton\n","import React from 'react'\n\nimport { Container } from 'components/atoms/container'\nimport { Heading } from 'components/atoms/heading'\nimport { LocaleType } from 'interfaces/types'\nimport { theme } from 'misc/theme'\n\nimport { domainLocales } from '../constants'\nimport {\n DesktopMenuPopup,\n HealthTool,\n HealthToolByCategory,\n SiteType,\n} from '../types'\nimport { useTranslation } from '../utils'\nimport CategorySkeleton from './categorySkeleton'\nimport {\n StyledCategory,\n // StyledCategoryIcon,\n StyledCategoryContainer,\n StyledCategoryIcon,\n StyledCategoryItemAll,\n StyledCloseWrapper,\n StyledContainer,\n StyledHealthToolItem,\n StyledImageWrapper,\n StyledInnerMenuPopupContainer,\n StyledMenuPopupContainer,\n StyledMenuPopupWrapper,\n StyledSeeMore,\n StyleHealthToolByCategory,\n} from './index.styled'\n\nexport type Props = {\n isDisplayed: boolean\n healthTools?: HealthTool[]\n healthToolsByCategory?: HealthToolByCategory[]\n STATIC_PAGES: {\n [key in LocaleType]: {\n [key: string]: string | null\n }\n }\n onSelectHealthTool: (c: HealthTool) => void\n onClosePopup?: () => void\n isLoading: boolean\n isMobile: boolean\n desktopPopupType: DesktopMenuPopup\n basePath: string\n locale: LocaleType\n discoverApiDomain: string\n HEALTH_TOOL_URL_FE: string\n // callApiHandler: (p: string, m: 'GET' | 'POST') => any\n siteType: SiteType\n}\n\nconst HealthToolsList = ({\n healthTools,\n onSelectHealthTool,\n basePath,\n isDesktop,\n onClosePopup,\n HEALTH_TOOL_URL_FE,\n locale,\n isGrouped,\n}: {\n healthTools?: HealthTool[]\n onSelectHealthTool: (c: HealthTool) => void\n basePath: string\n isDesktop?: boolean\n onClosePopup?: () => void\n HEALTH_TOOL_URL_FE: string\n locale: LocaleType\n isGrouped?: boolean\n}) => {\n if (!healthTools?.length) return null\n return isDesktop ? (\n <>\n {healthTools.map((healthTool, index) => (\n <StyledHealthToolItem\n data-grouped={isGrouped}\n key={healthTool.title}\n onClick={onClosePopup}\n >\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}${healthTool.link}`}\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n className=\"iconMenu\"\n href={\n healthTool.link.startsWith('http')\n ? healthTool.link\n : `${HEALTH_TOOL_URL_FE}${healthTool.link}`\n }\n >\n <div\n style={{\n display: 'flex',\n }}\n >\n <img\n alt=\"health-tool-icon\"\n src={healthTool.icon || '/images/avatar.jpg'}\n style={{ width: '32px', height: '32px' }}\n />\n </div>\n <p>{healthTool.title}</p>\n </a>\n </StyledHealthToolItem>\n ))}\n </>\n ) : (\n <>\n {healthTools.map((healthTool, index) => (\n <a key={'tool-' + index}>\n <StyledCategoryContainer\n onClick={() => {\n onSelectHealthTool(healthTool)\n }}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}${healthTool.link}`}\n >\n <StyledCategoryIcon>\n <img\n alt=\"health-tool-icon\"\n src={healthTool.icon || `${basePath}/images/avatar.jpg`}\n style={{ width: '32px', height: '32px' }}\n />\n </StyledCategoryIcon>\n <StyledCategory>{healthTool.title}</StyledCategory>\n </StyledCategoryContainer>\n </a>\n ))}\n </>\n )\n}\n\nconst HelloSitesMenuHealthToolsList = ({\n isDisplayed,\n healthTools,\n healthToolsByCategory,\n onSelectHealthTool,\n isLoading,\n basePath,\n locale,\n isMobile,\n onClosePopup,\n desktopPopupType,\n HEALTH_TOOL_URL_FE,\n STATIC_PAGES,\n siteType,\n}: Props) => {\n const f = useTranslation()\n\n return isMobile ? (\n <>\n {isLoading && isDisplayed ? (\n <StyledContainer>\n <CategorySkeleton />\n </StyledContainer>\n ) : (\n <StyledContainer\n data-category-list-type=\"main\"\n data-is-displayed={isDisplayed}\n >\n {!!healthToolsByCategory?.length ? (\n healthToolsByCategory.map(\n (categoryHealthTool, index) =>\n !!categoryHealthTool.healthTools?.length && (\n <React.Fragment key={`category-health-tool-${index}`}>\n <Heading tag=\"h4\" fontWeight=\"bold\" className=\"title\">\n <span\n dangerouslySetInnerHTML={{\n __html: categoryHealthTool.name,\n }}\n />\n </Heading>\n <HealthToolsList\n healthTools={categoryHealthTool.healthTools.slice(0, 4)}\n onSelectHealthTool={onSelectHealthTool}\n basePath={basePath}\n HEALTH_TOOL_URL_FE={HEALTH_TOOL_URL_FE}\n locale={locale}\n />\n </React.Fragment>\n ),\n )\n ) : (\n <HealthToolsList\n healthTools={healthTools}\n onSelectHealthTool={onSelectHealthTool}\n basePath={basePath}\n HEALTH_TOOL_URL_FE={HEALTH_TOOL_URL_FE}\n locale={locale}\n />\n )}\n <StyledSeeMore>\n <a\n href={`${HEALTH_TOOL_URL_FE}${\n STATIC_PAGES[locale]?.HEALTH_TOOLS || ''\n }`}\n style={{ textDecoration: 'none' }}\n >\n <StyledCategoryItemAll\n key={'all-health-tools-mobile'}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`${HEALTH_TOOL_URL_FE}${\n STATIC_PAGES[locale]?.HEALTH_TOOLS || ''\n }`}\n >\n {f('home.navigator.menuItem.allHealthTools')}\n <StyledImageWrapper>\n <img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.allHealthTools')}\n />\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </StyledSeeMore>\n </StyledContainer>\n )}\n </>\n ) : (\n <StyledMenuPopupWrapper\n className=\"top-menu-health-tools\"\n onClick={onClosePopup}\n data-is-display={desktopPopupType === 'tools'}\n // key={nextId()}\n >\n <StyledMenuPopupContainer>\n <Container style={{ padding: '0 16px' }}>\n <StyledInnerMenuPopupContainer\n data-popup-type={desktopPopupType}\n onClick={(e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n e.stopPropagation()\n }}\n >\n {\n <>\n {!!healthToolsByCategory?.length ? (\n healthToolsByCategory.map(\n (categoryHealthTool, index) =>\n !!categoryHealthTool.healthTools?.length && (\n <StyleHealthToolByCategory\n key={`health-tools-categories-${index}`}\n >\n <Heading tag=\"h4\" as=\"h1\" fontWeight=\"bold\">\n <span\n dangerouslySetInnerHTML={{\n __html: categoryHealthTool.name,\n }}\n />\n </Heading>\n <HealthToolsList\n healthTools={categoryHealthTool.healthTools.slice(\n 0,\n 4,\n )}\n onSelectHealthTool={onSelectHealthTool}\n basePath={basePath}\n HEALTH_TOOL_URL_FE={HEALTH_TOOL_URL_FE}\n locale={locale}\n isDesktop\n isGrouped\n onClosePopup={onClosePopup}\n />\n </StyleHealthToolByCategory>\n ),\n )\n ) : (\n <HealthToolsList\n healthTools={healthTools}\n onSelectHealthTool={onSelectHealthTool}\n basePath={basePath}\n HEALTH_TOOL_URL_FE={HEALTH_TOOL_URL_FE}\n locale={locale}\n isDesktop\n onClosePopup={onClosePopup}\n />\n )}\n\n <a\n style={{ textDecoration: 'none' }}\n href={`${HEALTH_TOOL_URL_FE}${\n STATIC_PAGES[locale]?.HEALTH_TOOLS || ''\n }`}\n >\n <StyledCategoryItemAll\n onClick={onClosePopup}\n key={'all-health-tools'}\n data-theme={siteType}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`${HEALTH_TOOL_URL_FE}${\n STATIC_PAGES[locale]?.HEALTH_TOOLS || ''\n }`}\n >\n {f('home.navigator.menuItem.allHealthTools')}\n <StyledImageWrapper>\n {/* {siteType === 'helloSites' ? ( */}\n <img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.allHealthTools')}\n />\n {/* // ) : (\n // <svg\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=\"M6.5 12H17.5M17.5 12L12.9118 8M17.5 12L12.9118 16\"\n // stroke=\"#3E3F58\"\n // strokeWidth=\"1.3\"\n // strokeLinecap=\"round\"\n // strokeLinejoin=\"round\"\n // />\n // </svg>\n // )} */}\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </>\n }\n {/* )} */}\n <StyledCloseWrapper onClick={onClosePopup}>\n {/* <img\n src={`${basePath}/svg/close.svg`}\n style={{ width: '24px', height: '24px' }}\n alt={'close'}\n /> */}\n <svg\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 18M18 18L6 6\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n />\n </svg>\n </StyledCloseWrapper>\n </StyledInnerMenuPopupContainer>\n </Container>\n </StyledMenuPopupContainer>\n </StyledMenuPopupWrapper>\n )\n}\n\nexport { HelloSitesMenuHealthToolsList }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nimport { Z_INDEX } from '../constants'\n\n// import { Z_INDEX } from '../constants'\n\nexport const StyledMarryBabyIconContainer = styled.div`\n display: flex;\n width: 48px;\n height: 48px;\n align-items: center;\n justify-content: center;\n\n margin-right: 16px;\n\n background-color: ${(props: ThemeProps) => props.theme.mbColors.lightGray};\n border-radius: 50%;\n`\n\nexport const StyledMarryBabyCategoryContainer = styled.div`\n display: flex;\n width: 100%;\n height: 64px;\n align-items: center;\n justify-content: flex-start;\n padding: 8px 16px;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n`\n\n// desktop\nexport const StyledMarryBabyMenuPopupWrapper = styled.div`\n position: absolute;\n z-index: ${Z_INDEX.menuCategoryPopupWrapper};\n top: 64px;\n\n min-width: 375px;\n align-items: center;\n background-color: transparent;\n &[data-is-display='false'] {\n display: none;\n }\n`\nexport const StyledFullScreenLayer = styled.div`\n position: fixed;\n top: 69px;\n left: 0;\n width: 100vw;\n height: 100vh;\n`\n\nexport const StyledMarryBabyMenuPopupContainer = styled.div`\n z-index: ${Z_INDEX.menuCategoryPopupContainer};\n\n width: 100%;\n\n max-height: 80vh;\n\n padding: 20px 0;\n\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral50};\n //align-items: center;\n //display: flex;\n //flex: 1;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n border-radius: 16px;\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 overflow-y: auto;\n`\n\nexport const StyledMarryBabyMenuPopupInner = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n padding: 24px;\n`\n\nexport const StyledMarryBabyHealthCategoriesContainer = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n`\n\nexport const StyledMarryBabyCategoryItem = styled.div`\n padding-right: 16px;\n margin-bottom: 12px;\n\n & > a {\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n }\n\n & > a:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n\n .iconMenu {\n display: flex;\n align-items: center;\n\n > .imageContainer {\n display: flex;\n width: 32px;\n min-width: 32px;\n align-items: center;\n margin-right: 16px;\n }\n }\n`\n","import React, { CSSProperties } from 'react'\n\nimport { theme } from 'misc/theme'\n\nimport { MarryBabyText } from '../marryBabyText'\nimport { DesktopMenuPopup, HealthTool } from '../types'\nimport CategorySkeleton from './categorySkeleton'\nimport {\n StyledCategory,\n // StyledCategoryIcon,\n // StyledCategoryContainer,\n // StyledCategoryIcon,\n // StyledCategoryItemAll,\n // StyledCloseWrapper,\n StyledContainer,\n // StyledHealthToolItem,\n // StyledImageWrapper,\n // StyledInnerMenuPopupContainer,\n // StyledMenuPopupContainer,\n // StyledMenuPopupWrapper,\n} from './index.styled'\nimport {\n StyledFullScreenLayer,\n StyledMarryBabyCategoryContainer,\n StyledMarryBabyHealthCategoriesContainer,\n StyledMarryBabyIconContainer,\n StyledMarryBabyMenuPopupContainer,\n StyledMarryBabyMenuPopupWrapper,\n} from './marrybaby.styled'\n\nexport type Props = {\n isDisplayed: boolean\n healthTools: HealthTool[]\n onSelectHealthTool: (c: HealthTool) => void\n onClosePopup: () => void\n isLoading: boolean\n isMobile: boolean\n desktopPopupType: DesktopMenuPopup\n basePath: string\n discoverApiDomain: string\n HEALTH_TOOL_URL_FE: string\n}\n\nconst MarryBabyMenuHealthToolsList = ({\n isDisplayed = false,\n healthTools,\n onSelectHealthTool,\n isLoading,\n basePath,\n isMobile,\n onClosePopup,\n HEALTH_TOOL_URL_FE,\n desktopPopupType,\n}: Props) => {\n return isMobile ? (\n isLoading && isDisplayed ? (\n <StyledContainer>\n <CategorySkeleton />\n </StyledContainer>\n ) : (\n <StyledContainer\n style={{\n marginTop: 24,\n }}\n data-category-list-type=\"main\"\n data-is-displayed={isDisplayed}\n >\n {healthTools.map((healthTool, index) => (\n <a\n key={'tool-' + index}\n className={`wrapper-menu-health-tool wrapper-menu-health-tool-${index}`}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://https://marrybaby.vn${healthTool.link}`}\n >\n <StyledMarryBabyCategoryContainer\n onClick={() => {\n onSelectHealthTool(healthTool)\n }}\n >\n <StyledMarryBabyIconContainer>\n <img\n alt=\"health-tool-icon\"\n src={healthTool.icon || `${basePath}/images/avatar.jpg`}\n style={{ width: '24px', height: '24px' }}\n />\n </StyledMarryBabyIconContainer>\n <StyledCategory>{healthTool.title}</StyledCategory>\n </StyledMarryBabyCategoryContainer>\n </a>\n ))}\n </StyledContainer>\n )\n ) : (\n <StyledMarryBabyMenuPopupWrapper\n className=\"top-menu-health-tools\"\n onClick={onClosePopup}\n data-is-display={desktopPopupType === 'tools'}\n >\n <StyledFullScreenLayer />\n <StyledMarryBabyMenuPopupContainer\n data-popup-type={desktopPopupType}\n onClick={(e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n e.stopPropagation()\n }}\n >\n <StyledMarryBabyHealthCategoriesContainer>\n {isLoading ? (\n <div\n style={{\n width: '100%',\n padding: '0 20px',\n }}\n >\n <CategorySkeleton />\n </div>\n ) : (\n healthTools.map((healthTool: HealthTool, index: number) => (\n <a\n className={`wrapper-menu-health-tool wrapper-menu-health-tool-${index} iconMenu`}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://marrybaby.vn${healthTool.link}`}\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n href={\n healthTool.link.startsWith('http')\n ? healthTool.link\n : `${HEALTH_TOOL_URL_FE}${healthTool.link}`\n }\n key={healthTool.title}\n onClick={(e) => {\n e.stopPropagation()\n }}\n >\n <StyledMarryBabyCategoryContainer onClick={onClosePopup}>\n <StyledMarryBabyIconContainer>\n <img\n alt={healthTool.title}\n src={healthTool.icon || '/images/avatar.jpg'}\n style={{ width: '24px', height: '24px' }}\n />\n </StyledMarryBabyIconContainer>\n <MarryBabyText\n style={\n {\n fontWeight: theme.sizes.fwSemiBold,\n } as CSSProperties\n }\n type=\"subtitle-2\"\n >\n {healthTool.title}\n </MarryBabyText>\n </StyledMarryBabyCategoryContainer>\n </a>\n ))\n )}\n </StyledMarryBabyHealthCategoriesContainer>\n </StyledMarryBabyMenuPopupContainer>\n </StyledMarryBabyMenuPopupWrapper>\n )\n}\n\nexport { MarryBabyMenuHealthToolsList }\n","import React from 'react'\n\nimport { LocaleType } from 'interfaces/types'\n\nimport {\n DesktopMenuPopup,\n HealthTool,\n HealthToolByCategory,\n SiteType,\n} from '../types'\nimport { HelloSitesMenuHealthToolsList } from './helloSites'\nimport { MarryBabyMenuHealthToolsList } from './marryBaby'\n\nexport type Props = {\n isDisplayed: boolean\n healthTools?: HealthTool[]\n healthToolsByCategory?: HealthToolByCategory[]\n onSelectHealthTool: (c: HealthTool) => void\n onClosePopup: () => void\n isLoading: boolean\n isMobile: boolean\n desktopPopupType: DesktopMenuPopup\n basePath: string\n locale: LocaleType\n discoverApiDomain: string\n HEALTH_TOOL_URL_FE: string\n siteType: SiteType\n STATIC_PAGES: { [key in LocaleType]: any }\n}\n\nconst MenuHealthToolsList = ({\n isDisplayed = false,\n healthTools,\n healthToolsByCategory,\n onSelectHealthTool,\n isLoading,\n basePath,\n locale,\n isMobile,\n onClosePopup,\n desktopPopupType,\n HEALTH_TOOL_URL_FE,\n siteType,\n discoverApiDomain,\n STATIC_PAGES,\n}: Props) => {\n return siteType === 'helloSites' ? (\n <HelloSitesMenuHealthToolsList\n isDisplayed={isDisplayed}\n locale={locale}\n basePath={basePath}\n discoverApiDomain={discoverApiDomain}\n HEALTH_TOOL_URL_FE={HEALTH_TOOL_URL_FE}\n onSelectHealthTool={onSelectHealthTool}\n healthTools={healthTools}\n healthToolsByCategory={healthToolsByCategory}\n isLoading={isLoading}\n isMobile={isMobile}\n siteType={siteType}\n desktopPopupType={desktopPopupType}\n onClosePopup={onClosePopup}\n STATIC_PAGES={STATIC_PAGES}\n />\n ) : (\n <MarryBabyMenuHealthToolsList\n isDisplayed={isDisplayed}\n basePath={basePath}\n discoverApiDomain={discoverApiDomain}\n HEALTH_TOOL_URL_FE={HEALTH_TOOL_URL_FE}\n onSelectHealthTool={onSelectHealthTool}\n healthTools={\n healthTools ||\n healthToolsByCategory.reduce((r, h) => r.concat(h.healthTools), [])\n }\n isLoading={isLoading}\n isMobile={isMobile}\n desktopPopupType={desktopPopupType}\n onClosePopup={onClosePopup}\n />\n )\n}\n\nexport { MenuHealthToolsList }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nexport const StyledCardSkeleton = styled.div`\n & > div {\n width: 100%;\n min-height: 109px;\n }\n`\n\nexport const StyledCard = styled.div`\n min-height: 116px;\n padding: 8px 8px;\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral100};\n //border-radius: 6px;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.04), 0px 0px 2px rgba(0, 0, 0, 0.06),\n 0px 0px 1px rgba(0, 0, 0, 0.04);\n text-align: center;\n transition: 0.2s ease-in-out;\n\n &[data-is-active='true'] {\n background-color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n p {\n color: ${(props: ThemeProps) => props.theme.colors.white};\n }\n }\n\n & > :last-child {\n margin-top: 8px;\n }\n\n &[data-card-position='left'] {\n border-bottom-left-radius: 6px;\n border-top-left-radius: 6px;\n }\n\n &[data-card-position='right'] {\n border-bottom-right-radius: 6px;\n border-top-right-radius: 6px;\n }\n\n &[data-card-position='whatever'] {\n border-radius: 6px;\n }\n`\n","import React from 'react'\n\nimport Skeleton from 'react-loading-skeleton'\n\nimport { StyledCardSkeleton } from './index.styled'\n\nconst CardSkeleton = () => (\n <>\n <StyledCardSkeleton>\n <div>\n <Skeleton height={109} />\n </div>\n <div>\n <Skeleton height={109} />\n </div>\n <div>\n <Skeleton height={109} />\n </div>\n <div>\n <Skeleton height={109} />\n </div>\n <div>\n <Skeleton height={109} />\n </div>\n <div>\n <Skeleton height={109} />\n </div>\n </StyledCardSkeleton>\n </>\n)\n\nexport default CardSkeleton\n","import React from 'react'\n\n// import { Text } from '@hhgtech/hhg-components'\n// import { MenuService } from 'interfaces/types'\n\nimport { Text } from 'components/atoms/text'\n\nimport { MenuService, MenuServiceType } from '../types'\nimport CardSkeleton from './cardSkeleton'\nimport { StyledCard } from './index.styled'\n\nexport type Props = {\n specialty: MenuService\n id: MenuServiceType\n isActive?: boolean\n onClick?: (i: string | number) => void\n position?: 'left' | 'center' | 'right' | 'whatever'\n isMobile?: boolean\n className?: string\n}\n\nconst MenuSectionCard = ({\n specialty,\n id,\n isActive = false,\n position,\n className,\n onClick,\n}: Props) => {\n if (!specialty.name || specialty.name === '') return <CardSkeleton />\n return (\n <StyledCard\n onClick={() => {\n onClick && onClick(id)\n }}\n className={className}\n data-is-active={isActive}\n data-card-position={position}\n >\n <img\n src={specialty.thumbnail}\n style={{ objectFit: 'contain', height: '55px', width: '55px' }}\n alt={'category-menu-card'}\n />\n <Text type=\"bold\" size=\"label2\">\n {specialty.name}\n </Text>\n </StyledCard>\n )\n}\n\nexport { MenuSectionCard }\n","import React from 'react'\n\nexport function ArrowLeftPopupIcon() {\n return (\n <svg\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=\"M14.5 17L9.5 12L14.5 7\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n","import React from 'react'\n\nexport function ClosePopupIcon() {\n return (\n <svg\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 18M18 18L6 6\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n />\n </svg>\n )\n}\n","import React from 'react'\n\nimport { HamburgerMenuIcon } from '../assets'\nimport { SiteType } from '../types'\nimport { TypeProps } from './NavigationBar.types'\n\ntype Props = {\n siteType: SiteType\n type: TypeProps\n}\n\nexport function HamburgerIcon({ siteType, type }: Props) {\n if (siteType === 'helloSites') {\n return (\n <img\n data-list-type=\"Header\"\n data-content-type=\"Navigation\"\n data-content-topic=\"Hamburger\"\n src={HamburgerMenuIcon}\n style={{ width: '24px', height: '24px' }}\n alt={type}\n />\n )\n }\n\n /** Marry Baby */\n return (\n <svg\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 fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.34961 15C3.34961 14.641 3.64062 14.35 3.99961 14.35L13.9996 14.35C14.3586 14.35 14.6496 14.641 14.6496 15C14.6496 15.359 14.3586 15.65 13.9996 15.65L3.99961 15.65C3.64062 15.65 3.34961 15.359 3.34961 15ZM3.34961 8.99999C3.34961 8.64101 3.64062 8.34999 3.99961 8.34999L19.9992 8.34999C20.3582 8.34999 20.6492 8.64101 20.6492 8.99999C20.6492 9.35898 20.3582 9.64999 19.9992 9.64999L3.99961 9.64999C3.64062 9.64999 3.34961 9.35898 3.34961 8.99999Z\"\n fill=\"#3E3F58\"\n />\n </svg>\n )\n}\n","import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport { Button } from 'components/atoms/button'\nimport { Heading } from 'components/atoms/heading'\nimport { Logo } from 'components/atoms/logo'\nimport { PureInput } from 'components/atoms/pureInput'\nimport { Text } from 'components/atoms/text'\nimport { debounce } from 'lodash'\n\nimport { useHeaderHeightHook } from '.'\nimport { SehatBadge, LockIcon } from '../assets'\nimport { useTranslation } from '../utils'\nimport { ArrowLeftPopupIcon } from './ArrowLeftPopupIcon'\nimport { ClosePopupIcon } from './ClosePopupIcon'\nimport { HamburgerIcon } from './HamburgerIcon'\nimport {\n StyledHeaderContainer,\n StyledHeaderMenuItem,\n StyledImageWrapper,\n StyledMenuContainer,\n StyledMenuIcon,\n StyledMenuSearchInput,\n StyledProfileMenu,\n StyledAvatar,\n} from './index.styled'\nimport { NavigationBarMobileProps } from './NavigationBar.types'\n\nexport function NavigationBarMobile({\n type,\n isStatic,\n isAmp,\n isDisplayed,\n siteType,\n isCollapsed,\n sitewideBannerShown,\n sitewideBanner,\n sitewideBannerClosed,\n setSitewideBannerClosed,\n isMobile,\n onMenuClick,\n menu,\n isSearchIconDisplayed,\n statics: { DISCOVER_URL_FE, SSO_URL, HOME_PAGE_URL, CARE_URL_FE },\n basePath,\n languageMenu,\n enabledExperimentalCareHeader,\n onCareHeaderClick,\n logoType,\n locale,\n isInit,\n title,\n sponsorComponent,\n currentUrl,\n userInfo,\n currentPopupType,\n avatar,\n profileMenu,\n isLoginButtonDisplayed,\n goToLogin,\n isSearchBarDisplay,\n searchPlaceholder,\n onSearchValueChanged,\n keyPressed,\n}: NavigationBarMobileProps) {\n const f = useTranslation()\n const isSponsored = !!sponsorComponent\n const hasSponsoredBanners = !!sponsorComponent?.props?.sponsoredBy?.length\n const isSiteWide = !!sitewideBanner && !sitewideBannerClosed\n\n const isShowingSiteWideBanner =\n sitewideBannerShown && !!sitewideBanner && !sitewideBannerClosed\n const { headerRef, headerHeight } = useHeaderHeightHook({\n isSiteWide,\n isShowingSiteWideBanner,\n isSponsored,\n hasSponsoredBanners,\n isMobile: true,\n })\n return (\n <>\n <StyledHeaderContainer\n data-header-type={type}\n data-collapsed={isStatic ? false : isCollapsed}\n data-with-search-input={type !== 'popup-sub-level'}\n data-is-displayed={isDisplayed}\n data-is-amp={isAmp}\n data-sponsored={isSponsored}\n data-site-type={siteType}\n data-sitewide-banner-shown={isShowingSiteWideBanner}\n id=\"site-header\"\n ref={headerRef}\n >\n {/* {type === 'popup' && (\n // <Link href=\"/\">\n <a\n href=\"/\"\n style={{\n position: 'absolute',\n left: '50%',\n transform: 'translateX(-50%)',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n }}\n >\n <Logo\n type={logoType}\n height={'27px'}\n width={'104px'}\n style={{\n display: 'flex',\n alignItems: 'center',\n }}\n />\n </a>\n // </Link>\n )} */}\n {sitewideBanner\n ? !React.isValidElement(sitewideBanner)\n ? sitewideBanner\n : React.cloneElement<{\n isCollapsed?: boolean\n isAmp?: boolean\n isMobile?: boolean\n setBannerClosed?: (v: boolean) => void\n }>(sitewideBanner, {\n isCollapsed,\n setBannerClosed: setSitewideBannerClosed,\n isAmp,\n isMobile,\n })\n : null}\n\n <div\n style={{\n position: 'relative',\n height: 64,\n display: 'flex',\n alignItems: 'center',\n justifyContent: siteType === 'helloSites' ? 'center' : 'flex-start',\n background: 'white',\n ...(siteType === 'marryBaby'\n ? {\n paddingLeft: 66,\n }\n : {}),\n\n ...(typeof languageMenu !== 'undefined' ||\n enabledExperimentalCareHeader\n ? {\n paddingLeft: enabledExperimentalCareHeader ? 48 : 64,\n gap: 24,\n justifyContent: 'unset',\n }\n : {}),\n }}\n >\n <StyledMenuContainer>\n <StyledMenuIcon\n on=\"tap:discover-amp-sidebar\"\n role=\"button\"\n className=\"menu-handler\"\n tabIndex={0}\n >\n <div onClick={() => onMenuClick?.('categories')}>\n {/* On mobile: Click Humburger icon to open menu popup */}\n {type === 'home' && (\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label=\"Hamburger Navigation URL\"\n >\n <HamburgerIcon siteType={siteType} type={type} />\n </a>\n )}\n\n {/* On mobile: Click a category menu to open sub level and render arrow left popup icon to go back */}\n {type === 'popup' && <ClosePopupIcon />}\n {type === 'popup-sub-level' && <ArrowLeftPopupIcon />}\n </div>\n {menu}\n </StyledMenuIcon>\n {isSearchIconDisplayed &&\n siteType === 'helloSites' &&\n type === 'home' && (\n <StyledMenuIcon style={{ paddingRight: 16 }}>\n <a\n data-event-category=\"Search Button\"\n data-event-action=\"Click\"\n style={{\n paddingRight: 16,\n paddingTop: 8,\n position: 'relative',\n }}\n href={`${HOME_PAGE_URL}/search?s=&page=1`}\n >\n <img\n src={`${basePath}/images/search.svg`}\n style={{ width: '24px', height: '24px' }}\n alt={type}\n />\n {/* fake input */}\n <input\n style={{\n width: '32px',\n height: '32px',\n position: 'absolute',\n left: '-2px',\n bottom: '0',\n opacity: 0,\n zIndex: 10000,\n }}\n />\n </a>\n </StyledMenuIcon>\n )}\n </StyledMenuContainer>\n {/* profile avatar */}\n {type !== 'popup' && (\n <StyledProfileMenu\n data-is-profile={true}\n className={!isInit ? 'menu-handler-health-tools' : ''}\n >\n <div className=\"menu-handler-item\">\n {isSearchIconDisplayed &&\n siteType === 'marryBaby' &&\n type === 'home' && (\n <StyledMenuIcon\n style={{\n justifySelf: 'flex-end',\n }}\n >\n {/* <Link href={`${DISCOVER_URL_FE}/search?s=&page=1`}> */}\n <a\n data-event-category=\"Search Button\"\n data-event-action=\"Click\"\n style={{\n display: 'flex',\n }}\n href={`${DISCOVER_URL_FE}/search?s=&page=1`}\n >\n <svg\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=\"M3.31573 13.7811L3.94855 13.6326L3.31573 13.7811ZM3.31573 8.324L3.94855 8.47244L3.31573 8.324ZM18.7893 8.324L19.4221 8.17556L18.7893 8.324ZM18.7893 13.781L19.4221 13.9295L18.7893 13.781ZM13.781 18.7893L13.6326 18.1565L13.781 18.7893ZM8.324 18.7893L8.17556 19.4221L8.324 18.7893ZM8.324 3.31573L8.17556 2.6829L8.324 3.31573ZM13.781 3.31573L13.9295 2.6829L13.781 3.31573ZM20.5404 21.4596C20.7942 21.7135 21.2058 21.7135 21.4596 21.4596C21.7135 21.2058 21.7135 20.7942 21.4596 20.5404L20.5404 21.4596ZM3.94855 13.6326C3.55048 11.9356 3.55048 10.1695 3.94855 8.47244L2.6829 8.17556C2.23903 10.0679 2.23903 12.0372 2.68291 13.9295L3.94855 13.6326ZM18.1565 8.47244C18.5546 10.1695 18.5546 11.9356 18.1565 13.6326L19.4221 13.9295C19.866 12.0372 19.866 10.0679 19.4221 8.17556L18.1565 8.47244ZM13.6326 18.1565C11.9356 18.5546 10.1695 18.5546 8.47244 18.1565L8.17556 19.4221C10.0679 19.866 12.0372 19.866 13.9295 19.4221L13.6326 18.1565ZM8.47244 3.94855C10.1695 3.55048 11.9356 3.55048 13.6326 3.94855L13.9295 2.6829C12.0372 2.23903 10.0679 2.23903 8.17556 2.6829L8.47244 3.94855ZM8.47244 18.1565C6.22776 17.63 4.47508 15.8773 3.94855 13.6326L2.68291 13.9295C3.32219 16.6549 5.45019 18.7829 8.17556 19.4221L8.47244 18.1565ZM13.9295 19.4221C16.6549 18.7829 18.7829 16.6549 19.4221 13.9295L18.1565 13.6326C17.63 15.8773 15.8773 17.63 13.6326 18.1565L13.9295 19.4221ZM13.6326 3.94855C15.8773 4.47508 17.63 6.22775 18.1565 8.47244L19.4221 8.17556C18.7829 5.45019 16.6549 3.32219 13.9295 2.6829L13.6326 3.94855ZM8.17556 2.6829C5.45019 3.32219 3.32219 5.45018 2.6829 8.17556L3.94855 8.47244C4.47508 6.22775 6.22775 4.47508 8.47244 3.94855L8.17556 2.6829ZM16.8755 17.7948L20.5404 21.4596L21.4596 20.5404L17.7948 16.8755L16.8755 17.7948Z\"\n fill=\"#3E3F58\"\n />\n </svg>\n {/* fake input */}\n <input\n style={{\n width: '32px',\n height: '32px',\n position: 'absolute',\n left: '-2px',\n bottom: '0',\n opacity: 0,\n zIndex: 10000,\n }}\n />\n </a>\n {/* </Link> */}\n </StyledMenuIcon>\n )}\n\n {enabledExperimentalCareHeader && (\n <>\n {onCareHeaderClick ? (\n <Button\n size=\"sm\"\n color={'primary'}\n dataEventCategory=\"Care\"\n dataEventAction=\"Navigation Bar Click\"\n dataEventLabel={currentUrl}\n onClick={onCareHeaderClick}\n >\n {f('login.booking')}\n </Button>\n ) : (\n <a href={CARE_URL_FE} className=\"care-button\">\n <Button\n size=\"sm\"\n color={'primary'}\n dataEventCategory=\"Care\"\n dataEventAction=\"Navigation Bar Click\"\n dataEventLabel={currentUrl}\n >\n {f('login.booking')}\n </Button>\n </a>\n )}\n </>\n )}\n\n {userInfo?.id ? (\n <StyledImageWrapper style={{ position: 'relative' }}>\n <div onClick={() => onMenuClick && onMenuClick('profile')}>\n {currentPopupType === 'profile' ? (\n <svg\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 18M18 18L6 6\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n />\n </svg>\n ) : (\n avatar\n )}\n </div>\n {profileMenu}\n </StyledImageWrapper>\n ) : !isAmp ? (\n isLoginButtonDisplayed && (\n <a\n data-event-category=\"Sign Up\"\n data-event-action=\"Button Click\"\n data-event-label={currentUrl}\n >\n {enabledExperimentalCareHeader ? (\n <StyledAvatar onClick={goToLogin}>\n <img src={LockIcon} className=\"avatar\" alt=\"avatar\" />\n </StyledAvatar>\n ) : siteType === 'helloSites' ? (\n <Button\n className=\"login-btn-mobile\"\n size=\"sm\"\n color=\"secondary\"\n onClick={goToLogin}\n >\n {f('navigation.loginJoin')}\n </Button>\n ) : (\n <div\n className=\"login-btn-mobile\"\n onClick={goToLogin}\n style={{\n paddingLeft: 16,\n }}\n >\n <Text size=\"p3\">{f('navigation.loginJoin')}</Text>\n </div>\n )}\n </a>\n )\n ) : (\n <a\n data-vars-event-category=\"Sign Up\"\n data-vars-event-action=\"Button Click\"\n data-vars-event-label={currentUrl}\n href={`${SSO_URL}?returnUrl=${currentUrl.replace(\n '?amp=1',\n '',\n )}`}\n style={{ textDecoration: 'none' }}\n >\n {locale === 'vi-VN' ? (\n <StyledAvatar onClick={goToLogin}>\n <img src={LockIcon} className=\"avatar\" alt=\"avatar\" />\n </StyledAvatar>\n ) : (\n <Button\n className=\"login-btn-mobile\"\n size=\"sm\"\n color={'secondary'}\n onClick={goToLogin}\n >\n {f('navigation.loginJoin')}\n </Button>\n )}\n </a>\n )}\n </div>\n </StyledProfileMenu>\n )}\n {(type === 'home' || type === 'popup') && (\n <a href={HOME_PAGE_URL || ''}>\n <Logo\n type={logoType}\n height=\"27px\"\n width=\"121px\"\n style={{\n display: 'flex',\n }}\n badge={\n locale === 'id-ID' ? (\n <img\n src={SehatBadge}\n style={{ width: 56, height: 23, maxWidth: 56 }}\n width=\"56\"\n height=\"23\"\n />\n ) : undefined\n }\n />\n </a>\n )}\n {typeof languageMenu !== 'undefined' && (\n <StyledHeaderMenuItem\n data-is-active={true}\n className={!isInit ? 'menu-handler-language' : ''}\n onClick={() => {\n onMenuClick && onMenuClick('language')\n }}\n >\n {languageMenu}\n </StyledHeaderMenuItem>\n )}\n {title && (\n <Heading className=\"top-bar-header\" tag=\"h5\">\n {title}\n </Heading>\n )}\n </div>\n\n {sponsorComponent\n ? !React.isValidElement(sponsorComponent)\n ? sponsorComponent\n : React.cloneElement<{\n isCollapsed?: boolean\n isMobile?: boolean\n isAmp?: boolean\n locale?: string\n }>(sponsorComponent, {\n isCollapsed,\n locale,\n isMobile,\n isAmp,\n })\n : null}\n </StyledHeaderContainer>\n {isSearchBarDisplay ? (\n <StyledMenuSearchInput\n data-header-type={type}\n data-is-displayed={isDisplayed}\n data-sitewide-banner-shown={sitewideBannerShown && !!sitewideBanner}\n >\n <PureInput\n style={{\n minHeight: 'auto',\n minWidth: '100%',\n padding: '0 16px',\n }}\n // value={searchValue}\n name={'search-input-' + type + (!isInit ? '-temp' : '')}\n size=\"md\"\n placeholder={searchPlaceholder}\n onChange={onSearchValueChanged}\n onKeyPress={keyPressed}\n type=\"search\"\n autoFocus={false}\n displayIcon={\n <a data-event-category=\"Search Button\" data-event-action=\"Click\">\n <svg\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=\"#8C8C8C\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M20 20L16 16\"\n stroke=\"#8C8C8C\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </a>\n }\n />\n </StyledMenuSearchInput>\n ) : (\n <>\n {!isAmp && (\n <div\n style={{\n height: headerHeight,\n }}\n ></div>\n )}\n </>\n )}\n </>\n )\n}\n","import React, {\n // useContext,\n useEffect,\n useRef,\n useState,\n useCallback,\n useMemo,\n} from 'react'\n\nimport { Avatar } from 'components/atoms/avatar'\nimport { Button } from 'components/atoms/button'\nimport { Container } from 'components/atoms/container'\nimport { Logo, TypeProps as LogoTypeProps } from 'components/atoms/logo'\nimport { PureInput } from 'components/atoms/pureInput'\nimport {\n domainLocales,\n LOCALE_SPECS,\n} from 'components/organisms/navigationLayout/constants'\nimport { debounce, throttle } from 'lodash'\nimport { theme } from 'misc/theme'\n\nimport { SehatBadge, LockIcon } from '../assets'\nimport { useTranslation } from '../utils'\nimport {\n StyledDesktopHeader,\n StyledDesktopHeaderWrapper,\n StyledDesktopMenuSearchInput,\n StyledHeaderMenuItem,\n StyledImageWrapper,\n StyledLeftGroup,\n StyledLogoWrapper,\n StyledRightGroup,\n StyledProfileMenu,\n StyledMenuIconWrapper,\n StyledAvatar,\n} from './index.styled'\nimport { Props } from './NavigationBar.types'\nimport { NavigationBarMobile } from './NavigationBarMobile'\n\nexport { type Props } from './NavigationBar.types'\n\nexport const useHeaderHeightHook = ({\n hasSponsoredBanners,\n isSiteWide,\n isSponsored,\n isShowingSiteWideBanner,\n isMobile,\n}: {\n hasSponsoredBanners?: boolean\n isSiteWide?: boolean\n isSponsored?: boolean\n isShowingSiteWideBanner?: boolean\n isMobile?: boolean\n}) => {\n const headerRef = useRef<HTMLDivElement>(null)\n const [headerHeight, setHeaderHeight] = useState(0)\n const debounceSetHeader = useCallback(\n debounce(() => {\n const newHeaderHeight = headerRef.current?.clientHeight || 0\n if (window.scrollY <= newHeaderHeight + 30)\n setHeaderHeight(newHeaderHeight)\n }, 100),\n [],\n )\n useEffect(() => {\n window.addEventListener('resize', debounceSetHeader)\n window.addEventListener('scroll', debounceSetHeader)\n return () => {\n window.removeEventListener('resize', debounceSetHeader)\n window.removeEventListener('scroll', debounceSetHeader)\n }\n }, [])\n useEffect(() => {\n debounceSetHeader()\n }, [\n isSiteWide,\n isShowingSiteWideBanner,\n isSponsored,\n hasSponsoredBanners,\n headerRef.current,\n ])\n\n const defaultHeaderHeight = useMemo(() => {\n let res = isMobile ? 64 : 69\n if (isShowingSiteWideBanner) {\n res += 64\n }\n if (isSponsored) {\n res += 40\n }\n return res\n }, [isMobile, isShowingSiteWideBanner, isSponsored])\n return {\n headerHeight: headerHeight || defaultHeaderHeight,\n headerRef,\n }\n}\n\nconst NavigationBar = ({\n siteType,\n basePath,\n statics,\n currentPopupType = 'none',\n isDisplayed = true,\n isSearchBarDisplay = true,\n searchPlaceholder = '',\n openPopup,\n onTopBarAppears,\n onSearchChange,\n onSearchKeyPress,\n menu,\n isAmp,\n profileMenu,\n isMobile = false,\n isLoginButtonDisplayed,\n title,\n type = 'home',\n onMenuClick,\n isStatic = false,\n routerAsPath: asPath,\n locale,\n userInfo,\n marryBaby: { tone } = { tone: 'white' },\n menuItems = [],\n // className,\n isInit: _isInit,\n sitewideBanner,\n sitewideBannerShown = true,\n sponsorComponent,\n languageMenu,\n isSearchIconDisplayed = false,\n enabledExperimentalCareHeader,\n onCareHeaderClick,\n}: Props) => {\n const { SSO_URL, HOME_PAGE_URL, CARE_URL_FE } = statics\n const f = useTranslation()\n const isSponsored = !!sponsorComponent\n\n // const { locale = 'en-PH', asPath } = useRouter()\n const [isCollapsed, setIsCollapsed] = useState(false)\n // const [searchValue, setSearchValue] = useState('')\n const [sitewideBannerClosed, setSitewideBannerClosed] = useState(false)\n const [isCloseBookmarkTooltips, setIsCloseBookmarkTooltips] = useState(false)\n const [isInit, setIsInit] = useState(_isInit || false)\n const scrollY = useRef(47)\n const collapsedMenu = useRef<boolean>(false)\n const searchIconDisplayed = useRef<boolean>(false)\n\n const currentUrl =\n siteType === 'helloSites'\n ? `https://${domainLocales[locale]}${asPath}`\n : `https://www.marrybaby.vn${asPath}`\n\n // const { state } = useContext(AppContext)\n // const { userInfo } = state || {}\n\n const avatar = useMemo(() => {\n const name = userInfo?.name || userInfo?.username\n\n return (\n <Avatar\n type=\"rounded\"\n size=\"small\"\n avatarUrl={userInfo?.avatar}\n firstLetter={name && name.length ? name[0].toUpperCase() : 'A'}\n backgroundColor={\n siteType === 'marryBaby'\n ? theme.mbColors.pink\n : theme.colors.secondaryBase\n }\n isAmp={isAmp}\n />\n )\n }, [userInfo?.username, userInfo?.name, userInfo?.avatar])\n\n const goToLogin = () => {\n const currentLocation = window.location.href\n window.location.href = SSO_URL\n ? `${SSO_URL}?returnUrl=${currentLocation}`\n : currentLocation\n }\n\n const logoType =\n siteType === 'helloSites'\n ? (LOCALE_SPECS[locale]?.LOGO_TYPE as LogoTypeProps)\n : siteType\n const isBrowser = typeof window !== 'undefined'\n\n const onSearchValueChanged = (v: string) => {\n // setSearchValue(v)\n onSearchChange?.(v)\n }\n const scrolling = useCallback(\n throttle(() => {\n if (type === 'home') {\n const container = window\n const stickyContainerHeight =\n document.querySelector('.sticky-container')?.clientHeight\n\n if (isBrowser && container) {\n if (\n container.scrollY > scrollY.current &&\n container.scrollY > 64 &&\n !collapsedMenu.current\n ) {\n collapsedMenu.current = true\n setIsCollapsed(true)\n }\n\n if (container.scrollY < scrollY.current && collapsedMenu.current) {\n collapsedMenu.current = false\n setIsCollapsed(false)\n\n if (\n stickyContainerHeight &&\n stickyContainerHeight > container.scrollY\n ) {\n }\n }\n\n if (container.scrollY < scrollY.current) {\n if (\n stickyContainerHeight &&\n stickyContainerHeight > container.scrollY\n ) {\n }\n }\n\n if (isSearchBarDisplay) {\n if (\n container.scrollY < 64 &&\n container.scrollY < scrollY.current &&\n searchIconDisplayed.current\n ) {\n searchIconDisplayed.current = false\n }\n\n if (\n container.scrollY > 8 &&\n container.scrollY > scrollY.current &&\n !searchIconDisplayed.current\n ) {\n searchIconDisplayed.current = true\n }\n } else {\n searchIconDisplayed.current = true\n }\n\n container.scrollY >= 0 && (scrollY.current = container.scrollY)\n }\n\n // set collapse topbar\n\n // hide search input quickly\n // if (\n // container &&\n // container.scrollY > scrollY.current &&\n // container.scrollY > 48 &&\n // container.scrollY < 63 &&\n // !collapsedMenu.current\n // ) {\n // container.scrollTo({\n // top: 112,\n // left: 0,\n // behavior: 'smooth',\n // })\n // }\n\n // hide/display search icon\n }\n }, 300),\n [],\n )\n\n useEffect(() => {\n onTopBarAppears?.(!isCollapsed)\n }, [isCollapsed])\n\n const keyPressed = (e: React.KeyboardEvent<Element>) => {\n onSearchKeyPress &&\n onSearchKeyPress(\n e,\n (document.getElementById('search-input-' + type) as HTMLInputElement)\n ?.value ?? '',\n )\n }\n\n useEffect(() => {\n isMobile && scrolling()\n }, [])\n\n useEffect(() => {\n window.addEventListener('scroll', scrolling, { passive: true })\n return () => {\n window.removeEventListener('scroll', scrolling)\n }\n }, [])\n\n useEffect(() => {\n setIsInit(true)\n }, [])\n\n useEffect(() => {\n if (typeof window !== 'undefined') {\n setIsCloseBookmarkTooltips(Boolean(isCloseBookmarkTooltips))\n }\n }, [])\n\n const focusToMenu = () => {\n setTimeout(() => {\n ;(\n document.getElementsByClassName(\n 'top-menu-categories',\n )?.[0] as HTMLElement\n )?.focus()\n }, 100)\n }\n\n const desktopMenuItems = (\n <>\n {menuItems.find((i) => i.id === 'categories') && (\n <StyledHeaderMenuItem\n data-is-active={currentPopupType === 'categories'}\n className={!isInit ? 'menu-handler-categories' : ''}\n tabIndex={0}\n onClick={() => {\n openPopup?.('categories')\n focusToMenu()\n }}\n >\n <div className=\"menu-handler-item\">\n {f('home.navigator.menuItem.discover')}\n <StyledMenuIconWrapper>\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5 7.5L9 10L6.5 7.5\"\n stroke=\"#202135\"\n strokeWidth=\"1.33\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </StyledMenuIconWrapper>\n </div>\n {currentPopupType === 'categories' && <div>{menu}</div>}\n </StyledHeaderMenuItem>\n )}\n {menuItems.find((i) => i.id === 'healthTools') && (\n <StyledHeaderMenuItem\n data-is-active={currentPopupType === 'tools'}\n className={!isInit ? 'menu-handler-health-tools' : ''}\n tabIndex={0}\n >\n <div\n className=\"menu-handler-item\"\n onClick={() => {\n openPopup && openPopup('tools')\n }}\n >\n {f('home.navigator.menuItem.healthTools')}\n <StyledMenuIconWrapper>\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5 7.5L9 10L6.5 7.5\"\n stroke=\"#202135\"\n strokeWidth=\"1.33\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </StyledMenuIconWrapper>\n </div>\n {currentPopupType === 'tools' && <div>{menu}</div>}\n </StyledHeaderMenuItem>\n )}\n {menuItems.find((i) => i.id === 'care') &&\n !enabledExperimentalCareHeader && (\n <StyledHeaderMenuItem\n data-is-active={currentPopupType === 'care'}\n className={!isInit ? 'menu-handler-care-specialties' : ''}\n tabIndex={0}\n >\n <div\n className=\"menu-handler-item\"\n onClick={() => {\n openPopup && openPopup('care')\n }}\n >\n {f('home.navigator.menuItem.helloCare')}\n <StyledMenuIconWrapper>\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5 7.5L9 10L6.5 7.5\"\n stroke=\"#202135\"\n strokeWidth=\"1.33\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </StyledMenuIconWrapper>\n </div>\n {currentPopupType === 'care' && <div>{menu}</div>}\n </StyledHeaderMenuItem>\n )}\n {menuItems.find((i) => i.id === 'together') && (\n <StyledHeaderMenuItem\n data-is-active={currentPopupType === 'communities'}\n className={!isInit ? 'menu-handler-communities' : ''}\n tabIndex={0}\n >\n <div\n className=\"menu-handler-item\"\n onClick={() => {\n openPopup && openPopup('communities')\n }}\n >\n {f('home.navigator.menuItem.helloTogether')}\n <StyledMenuIconWrapper>\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5 7.5L9 10L6.5 7.5\"\n stroke=\"#202135\"\n strokeWidth=\"1.33\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </StyledMenuIconWrapper>\n </div>\n {currentPopupType === 'communities' && <div>{menu}</div>}\n </StyledHeaderMenuItem>\n )}\n </>\n )\n\n const hasSponsoredBanners = !!sponsorComponent?.props?.sponsoredBy?.length\n const isSiteWide = !!sitewideBanner && !sitewideBannerClosed\n\n const isShowingSiteWideBanner =\n sitewideBannerShown && !!sitewideBanner && !sitewideBannerClosed\n const { headerRef, headerHeight } = useHeaderHeightHook({\n isSiteWide,\n isShowingSiteWideBanner,\n isSponsored,\n hasSponsoredBanners,\n })\n\n if (isMobile) {\n return (\n <NavigationBarMobile\n type={type}\n isStatic={isStatic}\n isAmp={isAmp}\n isDisplayed={isDisplayed}\n siteType={siteType}\n isCollapsed={isCollapsed}\n sitewideBannerShown={sitewideBannerShown}\n sitewideBanner={sitewideBanner}\n sitewideBannerClosed={sitewideBannerClosed}\n setSitewideBannerClosed={setSitewideBannerClosed}\n isMobile={isMobile}\n onMenuClick={onMenuClick}\n menu={menu}\n isSearchIconDisplayed={isSearchIconDisplayed}\n statics={statics}\n basePath={basePath}\n languageMenu={languageMenu}\n enabledExperimentalCareHeader={enabledExperimentalCareHeader}\n logoType={logoType}\n locale={locale}\n isInit={isInit}\n title={title}\n sponsorComponent={sponsorComponent}\n currentUrl={currentUrl}\n userInfo={userInfo}\n currentPopupType={currentPopupType}\n avatar={avatar}\n profileMenu={profileMenu}\n isLoginButtonDisplayed={isLoginButtonDisplayed}\n goToLogin={goToLogin}\n isSearchBarDisplay={isSearchBarDisplay}\n searchPlaceholder={searchPlaceholder}\n onSearchValueChanged={onSearchValueChanged}\n keyPressed={keyPressed}\n />\n )\n }\n\n return (\n <>\n <div\n style={{\n height: headerHeight,\n }}\n ></div>\n <StyledDesktopHeaderWrapper\n ref={headerRef}\n data-site-type={siteType}\n data-marry-baby-tone={siteType === 'marryBaby' && tone}\n data-sponsored={isSponsored}\n data-sitewide-banner-shown={isShowingSiteWideBanner}\n >\n {sitewideBanner\n ? !React.isValidElement(sitewideBanner)\n ? sitewideBanner\n : React.cloneElement<{\n isCollapsed?: boolean\n setBannerClosed?: (v: boolean) => void\n }>(sitewideBanner, {\n isCollapsed,\n setBannerClosed: setSitewideBannerClosed,\n })\n : null}\n <Container\n style={{\n height: 69,\n padding: '0 16px',\n }}\n type={siteType}\n >\n <StyledDesktopHeader>\n <StyledLeftGroup>\n <a href={HOME_PAGE_URL}>\n <StyledLogoWrapper\n data-is-having-border={siteType === 'helloSites'}\n >\n <Logo\n style={{\n display: 'flex',\n }}\n type={logoType}\n height=\"27px\"\n width=\"121px\"\n badge={\n locale === 'id-ID' ? (\n <img\n src={SehatBadge}\n style={{\n width: 56,\n height: 23,\n maxWidth: 56,\n }}\n width=\"56\"\n height=\"23\"\n />\n ) : undefined\n }\n />\n </StyledLogoWrapper>\n </a>\n {isSearchBarDisplay && siteType === 'helloSites' && (\n <StyledDesktopMenuSearchInput\n data-header-type={type}\n data-is-displayed={isDisplayed}\n data-sitewide-banner-shown={\n sitewideBannerShown && !!sitewideBanner\n }\n >\n <PureInput\n style={{\n minHeight: '32px',\n maxHeight: '32px',\n minWidth: '100%',\n backgroundColor: theme.colors.white,\n }}\n // value={searchValue}\n name={'search-input-' + type + (!isInit ? '-temp' : '')}\n autoFocus={false}\n size=\"sm\"\n placeholder={searchPlaceholder}\n onChange={onSearchValueChanged}\n onKeyPress={keyPressed}\n displayIcon={\n <a\n data-event-category=\"Search Button\"\n data-event-action=\"Click\"\n style={{\n width: '24px',\n height: '24px',\n transform: 'scale(0.8)',\n }}\n >\n <svg\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 fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4.875 11C4.875 7.61726 7.61726 4.875 11 4.875C14.3827 4.875 17.125 7.61726 17.125 11C17.125 14.3827 14.3827 17.125 11 17.125C7.61726 17.125 4.875 14.3827 4.875 11ZM11 3.125C6.65076 3.125 3.125 6.65076 3.125 11C3.125 15.3492 6.65076 18.875 11 18.875C12.8594 18.875 14.5683 18.2306 15.9155 17.1529L19.3813 20.6187C19.723 20.9604 20.277 20.9604 20.6187 20.6187C20.9604 20.277 20.9604 19.723 20.6187 19.3813L17.1529 15.9155C18.2306 14.5683 18.875 12.8594 18.875 11C18.875 6.65076 15.3492 3.125 11 3.125Z\"\n fill=\"#8C8C8C\"\n />\n </svg>\n </a>\n }\n />\n </StyledDesktopMenuSearchInput>\n )}\n {siteType === 'marryBaby' && (\n <div style={{ marginLeft: 28, display: 'flex' }}>\n {desktopMenuItems}\n </div>\n )}\n </StyledLeftGroup>\n <StyledRightGroup>\n {siteType === 'helloSites' && desktopMenuItems}\n {isSearchBarDisplay && siteType === 'marryBaby' && (\n <StyledDesktopMenuSearchInput\n data-header-type={type}\n data-is-displayed={isDisplayed}\n data-is-styled-borderless={siteType === 'marryBaby'}\n data-marry-baby-theme={tone}\n >\n <PureInput\n style={{\n minHeight: '40px',\n maxHeight: '40px',\n minWidth: '100%',\n borderRadius: 16,\n }}\n // value={searchValue}\n name={'search-input-' + type + (!isInit ? '-temp' : '')}\n autoFocus={false}\n size=\"sm\"\n placeholder={searchPlaceholder}\n onChange={onSearchValueChanged}\n onKeyPress={keyPressed}\n displayIcon={\n <a\n data-event-category=\"Search Button\"\n data-event-action=\"Click\"\n style={{ width: '24px', height: '24px' }}\n >\n <svg\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=\"M3.31573 13.7811L3.94855 13.6326L3.31573 13.7811ZM3.31573 8.324L3.94855 8.47244L3.31573 8.324ZM18.7893 8.324L19.4221 8.17556L18.7893 8.324ZM18.7893 13.781L19.4221 13.9295L18.7893 13.781ZM13.781 18.7893L13.6326 18.1565L13.781 18.7893ZM8.324 18.7893L8.17556 19.4221L8.324 18.7893ZM8.324 3.31573L8.17556 2.6829L8.324 3.31573ZM13.781 3.31573L13.9295 2.6829L13.781 3.31573ZM20.5404 21.4596C20.7942 21.7135 21.2058 21.7135 21.4596 21.4596C21.7135 21.2058 21.7135 20.7942 21.4596 20.5404L20.5404 21.4596ZM3.94855 13.6326C3.55048 11.9356 3.55048 10.1695 3.94855 8.47244L2.6829 8.17556C2.23903 10.0679 2.23903 12.0372 2.68291 13.9295L3.94855 13.6326ZM18.1565 8.47244C18.5546 10.1695 18.5546 11.9356 18.1565 13.6326L19.4221 13.9295C19.866 12.0372 19.866 10.0679 19.4221 8.17556L18.1565 8.47244ZM13.6326 18.1565C11.9356 18.5546 10.1695 18.5546 8.47244 18.1565L8.17556 19.4221C10.0679 19.866 12.0372 19.866 13.9295 19.4221L13.6326 18.1565ZM8.47244 3.94855C10.1695 3.55048 11.9356 3.55048 13.6326 3.94855L13.9295 2.6829C12.0372 2.23903 10.0679 2.23903 8.17556 2.6829L8.47244 3.94855ZM8.47244 18.1565C6.22776 17.63 4.47508 15.8773 3.94855 13.6326L2.68291 13.9295C3.32219 16.6549 5.45019 18.7829 8.17556 19.4221L8.47244 18.1565ZM13.9295 19.4221C16.6549 18.7829 18.7829 16.6549 19.4221 13.9295L18.1565 13.6326C17.63 15.8773 15.8773 17.63 13.6326 18.1565L13.9295 19.4221ZM13.6326 3.94855C15.8773 4.47508 17.63 6.22775 18.1565 8.47244L19.4221 8.17556C18.7829 5.45019 16.6549 3.32219 13.9295 2.6829L13.6326 3.94855ZM8.17556 2.6829C5.45019 3.32219 3.32219 5.45018 2.6829 8.17556L3.94855 8.47244C4.47508 6.22775 6.22775 4.47508 8.47244 3.94855L8.17556 2.6829ZM16.8755 17.7948L20.5404 21.4596L21.4596 20.5404L17.7948 16.8755L16.8755 17.7948Z\"\n fill=\"#3E3F58\"\n />\n </svg>\n </a>\n }\n />\n </StyledDesktopMenuSearchInput>\n )}\n {typeof languageMenu !== 'undefined' && (\n <StyledHeaderMenuItem\n data-is-active={true}\n className={!isInit ? 'menu-handler-language' : ''}\n onClick={() => {\n openPopup && openPopup('language')\n }}\n >\n {languageMenu}\n </StyledHeaderMenuItem>\n )}\n\n <StyledProfileMenu\n data-is-active={currentPopupType === 'profile'}\n data-is-profile={true}\n className={!isInit ? 'menu-handler-health-tools' : ''}\n tabIndex={0}\n >\n <div className=\"menu-handler-item\">\n {enabledExperimentalCareHeader && (\n <>\n {onCareHeaderClick ? (\n <Button\n className=\"login-btn-mobile\"\n size=\"sm\"\n color=\"secondary\"\n dataEventCategory=\"Care\"\n dataEventAction=\"Navigation Bar Click\"\n dataEventLabel={currentUrl}\n onClick={onCareHeaderClick}\n >\n {f('login.booking')}\n </Button>\n ) : (\n <a\n href={CARE_URL_FE}\n className=\"care-button no-replace-click\"\n >\n <Button\n className=\"login-btn-mobile\"\n size=\"sm\"\n color=\"secondary\"\n dataEventCategory=\"Care\"\n dataEventAction=\"Navigation Bar Click\"\n dataEventLabel={currentUrl}\n >\n {f('login.booking')}\n </Button>\n </a>\n )}\n </>\n )}\n {userInfo?.id ? (\n <StyledImageWrapper style={{ position: 'relative' }}>\n <div onClick={() => openPopup && openPopup('profile')}>\n {avatar}\n </div>\n {profileMenu}\n </StyledImageWrapper>\n ) : (\n isLoginButtonDisplayed && (\n <a\n data-event-category=\"Sign Up\"\n data-event-action=\"Button Click\"\n data-event-label={currentUrl}\n >\n {enabledExperimentalCareHeader ? (\n <StyledAvatar onClick={goToLogin}>\n <img\n src={LockIcon}\n className=\"avatar\"\n alt=\"avatar\"\n />\n </StyledAvatar>\n ) : siteType === 'helloSites' ? (\n <Button\n size=\"md\"\n color=\"secondary\"\n onClick={goToLogin}\n >\n {f('navigation.loginJoin')}\n </Button>\n ) : (\n <Button\n size=\"md\"\n color=\"secondary\"\n theme=\"marryBaby\"\n onClick={goToLogin}\n >\n {f('navigation.loginJoin')}\n </Button>\n )}\n </a>\n )\n )}\n </div>\n </StyledProfileMenu>\n </StyledRightGroup>\n </StyledDesktopHeader>\n </Container>\n {sponsorComponent\n ? !React.isValidElement(sponsorComponent)\n ? sponsorComponent\n : React.cloneElement<{\n isCollapsed?: boolean\n isMobile?: boolean\n isAmp?: boolean\n locale?: string\n }>(sponsorComponent, {\n isCollapsed,\n locale,\n isMobile,\n isAmp,\n })\n : null}\n </StyledDesktopHeaderWrapper>\n </>\n )\n}\n\nexport { NavigationBar }\n","import React from 'react'\n\nimport { Button } from 'components/atoms/button'\nimport { LocaleType } from 'interfaces/types'\n\nimport { ChevronRightWhiteIcon } from '../assets'\nimport { MenuCategoriesList } from '../menuCategoriesList'\nimport { Category, SiteType, SpotlightSummary } from '../types'\nimport { useTranslation } from '../utils'\nimport {\n StyledButtonContainerWrapper,\n StyledCategoryButtonWrapper,\n StyledScrollingCategories,\n StyledScrollingWrapper,\n} from './index.styled'\n\ntype Props = {\n selectedMenuMainItem: Category\n spotlightsList: SpotlightSummary[]\n locale: LocaleType\n basePath: string\n callApiHandler: (p: string, m: 'GET' | 'POST' | 'PUT') => any\n discoverApiDomain: string\n DISCOVER_URL_FE: string\n MARRY_BABY_FE: string\n onSelectCategory: (category: Category) => void\n siteType: SiteType\n isMobile: boolean\n onCategoryClick: () => void\n}\n\nconst MenuSubItemListCategory = ({\n selectedMenuMainItem,\n spotlightsList,\n locale,\n basePath,\n callApiHandler,\n discoverApiDomain,\n DISCOVER_URL_FE,\n MARRY_BABY_FE,\n onSelectCategory,\n isMobile,\n siteType,\n onCategoryClick,\n}: Props) => {\n const f = useTranslation()\n const { childCates, categoryName } = selectedMenuMainItem\n return (\n <StyledScrollingCategories\n data-type=\"sub-level\"\n data-with-search-input={false}\n >\n <StyledScrollingWrapper>\n <MenuCategoriesList\n isDisplayed\n locale={locale}\n basePath={basePath}\n callApiHandler={callApiHandler}\n discoverApiDomain={discoverApiDomain}\n DISCOVER_URL_FE={DISCOVER_URL_FE}\n MARRY_BABY_FE={MARRY_BABY_FE}\n categories={childCates || []}\n spotlightsList={spotlightsList}\n type=\"sub\"\n onSelectCategory={onSelectCategory}\n // onSubCategory={onSubCategory}\n // onSubCatLevel={onSubCatLevel}\n isMobile={isMobile}\n siteType={siteType}\n desktopPopupType=\"none\"\n isLoading={false}\n onClosePopup={undefined}\n />\n <StyledCategoryButtonWrapper data-site-type={siteType}>\n <Button\n onClick={onCategoryClick}\n className=\"category-button\"\n size=\"md\"\n theme={siteType}\n >\n <StyledButtonContainerWrapper>\n <div>\n {f('home.menu.category.view', {\n category: categoryName,\n })}\n </div>\n {siteType === 'helloSites' ? (\n <img\n src={ChevronRightWhiteIcon}\n style={{ width: '16px', height: '16px' }}\n className=\"button-image\"\n alt={f('home.menu.category.view', {\n category: categoryName,\n })}\n />\n ) : (\n <svg\n width=\"25\"\n height=\"24\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7 12H18M18 12L13.4118 8M18 12L13.4118 16\"\n stroke=\"white\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledButtonContainerWrapper>\n </Button>\n </StyledCategoryButtonWrapper>\n </StyledScrollingWrapper>\n </StyledScrollingCategories>\n )\n}\n\nexport { MenuSubItemListCategory }\n","import React, { useEffect, useState } from 'react'\n\nimport { Button } from 'components/atoms/button'\nimport { LocaleType } from 'interfaces/types'\n\nimport { ChevronRightWhiteIcon } from '../assets'\nimport { MenuCommunitiesList } from '../menuCommunitiesList'\nimport { Community, SiteType } from '../types'\nimport {\n formatCommunity,\n formatTogetherTopic,\n getTogetherDefaultCommunitiesSubMenuApiPath,\n getTogetherMarryBabyCommunitiesSubMenuApiPath,\n useTranslation,\n} from '../utils'\nimport {\n StyledButtonContainerWrapper,\n StyledCategoryButtonWrapper,\n StyledScrollingCategories,\n StyledScrollingWrapper,\n} from './index.styled'\n\ntype Props = {\n selectedMenuMainItem: Community\n onSelectCommunity: ({}: {\n community: Community\n isSetToSubMenu: boolean\n }) => void\n onCommunityClick: () => void\n callApiHandler: (p: string, m: 'GET' | 'POST' | 'PUT') => any\n basePath: string\n togetherApiDomain: string\n locale: LocaleType\n TOGETHER_URL_FE: string\n siteType: SiteType\n isMobile: boolean\n}\n\nconst MenuSubItemListCommunities = ({\n selectedMenuMainItem,\n onCommunityClick,\n onSelectCommunity,\n basePath = '',\n callApiHandler,\n togetherApiDomain,\n locale,\n TOGETHER_URL_FE,\n siteType,\n isMobile,\n}: Props) => {\n // const { formatMessage: f } = useIntl()\n const f = useTranslation()\n // get community topic\n const [subCommunities, setSubCommunities] = useState<Community[]>([])\n const [isLoading, setIsLoading] = useState(false)\n\n const { communityId, title } = selectedMenuMainItem\n\n useEffect(() => {\n setIsLoading(true)\n ;(async () => {\n const communityTopicResults = await callApiHandler(\n siteType === 'helloSites'\n ? getTogetherDefaultCommunitiesSubMenuApiPath(\n locale,\n togetherApiDomain,\n {\n communityId: communityId,\n },\n )\n : getTogetherMarryBabyCommunitiesSubMenuApiPath(\n locale,\n togetherApiDomain,\n {\n communityId: communityId,\n },\n ),\n 'GET',\n )\n\n if (\n communityTopicResults !== null &&\n communityTopicResults?.data?.data?.topics?.length > 0\n ) {\n const communityTopicFormatted: Community[] = communityTopicResults.data.data.topics.map(\n formatTogetherTopic,\n )\n setSubCommunities(communityTopicFormatted)\n }\n setIsLoading(false)\n })()\n }, [selectedMenuMainItem])\n\n return (\n <StyledScrollingCategories\n data-type=\"sub-level\"\n data-with-search-input={false}\n >\n <StyledScrollingWrapper>\n <MenuCommunitiesList\n isDisplayed\n locale={locale}\n communities={subCommunities}\n type=\"sub\"\n onSelectCommunity={onSelectCommunity}\n isLoading={isLoading}\n basePath={basePath}\n TOGETHER_URL_FE={TOGETHER_URL_FE}\n togetherApiDomain={togetherApiDomain}\n siteType={siteType}\n isMobile={isMobile}\n desktopPopupType=\"none\"\n onClosePopup={undefined}\n />\n <StyledCategoryButtonWrapper>\n <Button\n onClick={onCommunityClick}\n className=\"category-button\"\n size=\"md\"\n >\n <StyledButtonContainerWrapper>\n <div>\n {f('home.menu.category.view', {\n category: title,\n })}\n </div>\n <img\n src={ChevronRightWhiteIcon}\n style={{ width: '16px', height: '16px' }}\n className=\"button-image\"\n alt={f('home.menu.category.view', {\n category: title,\n })}\n />\n </StyledButtonContainerWrapper>\n </Button>\n </StyledCategoryButtonWrapper>\n </StyledScrollingWrapper>\n </StyledScrollingCategories>\n )\n}\n\nexport { MenuSubItemListCommunities }\n","import React, { useRef, useState } from 'react'\n\nimport { theme } from 'misc/theme'\n\nimport { MarryBabyText } from '../marryBabyText'\nimport { MenuItemType, MenuServiceType } from '../types'\nimport { StyledUnderLine } from './index.styled'\n\ntype Props = {\n menuItems: MenuItemType[]\n activeItem: MenuItemType\n onServiceClicked: (id: MenuServiceType) => void\n}\n\nconst menuIcons: {\n [key in MenuServiceType]?: {\n icon: JSX.Element\n color: string\n }\n} = {\n categories: {\n icon: (\n <svg\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 fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.1174 3.67709C12.8717 2.70759 11.1272 2.70787 9.8809 3.67705L14.1174 3.67709ZM14.1174 3.67709L19.717 8.0327C20.5579 8.68619 21.049 9.69161 21.049 10.7561V17.6001C21.049 19.5056 19.5045 21.0501 17.599 21.0501H6.39918C4.49368 21.0501 2.94922 19.5056 2.94922 17.6001V10.7561C2.94922 9.6915 3.44016 8.68619 4.28119 8.0327L9.8809 3.67705M10.679 4.70326L5.07908 9.05903C4.5556 9.46579 4.24922 10.0921 4.24922 10.7561V17.6001C4.24922 18.7876 5.21165 19.7501 6.39918 19.7501H17.599C18.7866 19.7501 19.749 18.7876 19.749 17.6001V10.7561C19.749 10.0921 19.4429 9.46599 18.9194 9.05923L13.3192 4.70322C12.5433 4.09928 11.4561 4.09892 10.679 4.70326Z\"\n fill=\"#3E3F58\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.2363 13.1623C12.5537 12.4791 11.4456 12.4788 10.7619 13.1625C10.0783 13.8461 10.0783 14.9535 10.7619 15.6371C11.4455 16.3207 12.5529 16.3207 13.2365 15.6371C13.9201 14.9535 13.9201 13.8461 13.2365 13.1625L13.2363 13.1623ZM14.1558 12.2433C12.9651 11.0518 11.0338 11.0522 9.84268 12.2433C8.6514 13.4346 8.6514 15.3651 9.84268 16.5563C11.034 17.7476 12.9645 17.7476 14.1558 16.5563C15.347 15.3651 15.347 13.4346 14.1558 12.2433Z\"\n fill=\"#3E3F58\"\n />\n </svg>\n ),\n color: theme.mbColors.lightPink,\n },\n healthTools: {\n icon: (\n <svg\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 fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.7899 3.65C17.1559 3.65 16.6802 4.2267 16.6809 4.79725L16.6809 4.798C16.6809 5.41974 17.104 6.05554 17.7236 6.58451C18.0209 6.83831 18.3337 7.04083 18.5977 7.17695C18.7296 7.245 18.8416 7.29248 18.9268 7.32147C18.9708 7.33646 18.9995 7.34373 19.0149 7.34719C19.0302 7.34373 19.0589 7.33646 19.1029 7.32147C19.1881 7.29248 19.3001 7.245 19.4321 7.17695C19.696 7.04083 20.0088 6.83831 20.3061 6.58451C20.9257 6.05554 21.3489 5.41974 21.3489 4.798C21.3489 4.22619 20.8732 3.65 20.2399 3.65C19.8662 3.65 19.6352 3.81824 19.4969 3.97109C19.3738 4.10711 19.199 4.1848 19.0156 4.185C18.8321 4.1852 18.6572 4.10789 18.5338 3.97214C18.3936 3.81789 18.1622 3.65 17.7899 3.65ZM15.3809 4.79838C15.3797 3.63503 16.318 2.35 17.7899 2.35C18.2971 2.35 18.703 2.4988 19.0145 2.69438C19.3261 2.49862 19.7323 2.35 20.2399 2.35C21.7125 2.35 22.6489 3.63581 22.6489 4.798C22.6489 5.98926 21.875 6.95446 21.1501 7.57324C20.7752 7.89331 20.3789 8.15136 20.028 8.33233C19.8525 8.42282 19.6807 8.49802 19.522 8.55207C19.3755 8.60198 19.1942 8.65 19.0149 8.65C18.8355 8.65 18.6543 8.60198 18.5077 8.55207C18.349 8.49802 18.1772 8.42282 18.0018 8.33233C17.6509 8.15136 17.2545 7.89331 16.8796 7.57324C16.1548 6.95452 15.381 5.98947 15.3809 4.79838ZM15.3809 4.79838C15.3809 4.79825 15.3809 4.79813 15.3809 4.798H16.0309L15.3809 4.79875C15.3809 4.79863 15.3809 4.7985 15.3809 4.79838Z\"\n fill=\"#3E3F58\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M2.91051 8.78301C4.23607 5.03996 7.79796 2.35 12.0002 2.35C12.3662 2.35 12.7248 2.37267 13.077 2.41455C13.4334 2.45693 13.6881 2.78027 13.6457 3.13674C13.6033 3.49322 13.28 3.74784 12.9235 3.70545C12.6196 3.66932 12.3123 3.65 12.0002 3.65C8.36849 3.65 5.28438 5.97404 4.13594 9.21698C4.0161 9.55538 3.64463 9.73255 3.30624 9.61271C2.96785 9.49287 2.79067 9.12141 2.91051 8.78301Z\"\n fill=\"#3E3F58\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M9.07473 7.35106C9.33041 7.35465 9.56024 7.50781 9.66196 7.74242L12.5334 14.3647L13.6702 11.7415C13.7732 11.5038 14.0075 11.35 14.2666 11.35H15.9996C16.3586 11.35 16.6496 11.641 16.6496 12C16.6496 12.359 16.3586 12.65 15.9996 12.65H14.6933L13.13 16.2575C13.027 16.4951 12.7927 16.649 12.5337 16.649C12.2746 16.649 12.0403 16.4952 11.9373 16.2576L9.0434 9.58369L7.78547 12.2752C7.6786 12.5039 7.44902 12.65 7.19661 12.65H2.99961C2.64062 12.65 2.34961 12.359 2.34961 12C2.34961 11.641 2.64062 11.35 2.99961 11.35H6.78291L8.47675 7.72578C8.58502 7.49413 8.81905 7.34747 9.07473 7.35106Z\"\n fill=\"#3E3F58\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20.8654 10.3543C21.222 10.313 21.5446 10.5686 21.5859 10.9252C21.6264 11.2747 21.6502 11.6328 21.6502 12C21.6502 17.33 17.3302 21.65 12.0002 21.65C7.79796 21.65 4.23607 18.96 2.91051 15.217C2.79067 14.8786 2.96785 14.5071 3.30624 14.3873C3.64463 14.2674 4.0161 14.4446 4.13594 14.783C5.28438 18.026 8.36849 20.35 12.0002 20.35C16.6122 20.35 20.3502 16.612 20.3502 12C20.3502 11.6892 20.3301 11.3813 20.2945 11.0748C20.2532 10.7182 20.5088 10.3956 20.8654 10.3543Z\"\n fill=\"#3E3F58\"\n />\n </svg>\n ),\n color: theme.mbColors.lightOrange,\n },\n together: {\n icon: (\n <svg\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 fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.99961 4.65C7.4256 4.65 6.14961 5.92599 6.14961 7.5C6.14961 9.07401 7.4256 10.35 8.99961 10.35C10.5736 10.35 11.8496 9.07401 11.8496 7.5C11.8496 5.92599 10.5736 4.65 8.99961 4.65ZM4.84961 7.5C4.84961 5.20802 6.70763 3.35 8.99961 3.35C11.2916 3.35 13.1496 5.20802 13.1496 7.5C13.1496 9.79198 11.2916 11.65 8.99961 11.65C6.70763 11.65 4.84961 9.79198 4.84961 7.5ZM6.71218 15.0233L6.53409 15.0517C4.87235 15.3169 3.64961 16.7503 3.64961 18.433C3.64961 18.9395 4.06015 19.35 4.56658 19.35H13.4326C13.9391 19.35 14.3496 18.9395 14.3496 18.433C14.3496 16.7503 13.1269 15.3169 11.4651 15.0517L11.287 15.0233C9.77167 14.7814 8.22754 14.7814 6.71218 15.0233ZM6.5073 13.7395C8.15839 13.476 9.84083 13.476 11.4919 13.7395L11.67 13.768C13.9626 14.1338 15.6496 16.1114 15.6496 18.433C15.6496 19.6574 14.657 20.65 13.4326 20.65H4.56658C3.34218 20.65 2.34961 19.6574 2.34961 18.433C2.34961 16.1114 4.03657 14.1338 6.3292 13.768L6.5073 13.7395Z\"\n fill=\"#3E3F58\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.3496 4C14.3496 3.64101 14.6406 3.35 14.9996 3.35C17.2916 3.35 19.1496 5.20802 19.1496 7.5C19.1496 9.79198 17.2916 11.65 14.9996 11.65C14.6406 11.65 14.3496 11.359 14.3496 11C14.3496 10.641 14.6406 10.35 14.9996 10.35C16.5736 10.35 17.8496 9.07401 17.8496 7.5C17.8496 5.92599 16.5736 4.65 14.9996 4.65C14.6406 4.65 14.3496 4.35898 14.3496 4ZM15.5908 14.3814C15.5908 14.0224 15.8818 13.7314 16.2408 13.7314H17.2089C17.3632 13.7314 17.5175 13.7436 17.67 13.768C19.9626 14.1338 21.6496 16.1114 21.6496 18.433C21.6496 19.6574 20.657 20.65 19.4326 20.65H17.3895C17.0305 20.65 16.7395 20.359 16.7395 20C16.7395 19.641 17.0305 19.35 17.3895 19.35H19.4326C19.9391 19.35 20.3496 18.9395 20.3496 18.433C20.3496 16.7503 19.1269 15.3169 17.4651 15.0517C17.3805 15.0382 17.2947 15.0314 17.2089 15.0314H16.2408C15.8818 15.0314 15.5908 14.7404 15.5908 14.3814Z\"\n fill=\"#3E3F58\"\n />\n </svg>\n ),\n color: theme.mbColors.lightBlue,\n },\n}\n\nconst MenuItem = ({\n item,\n isActive,\n isGoingForward,\n onServiceClicked,\n}: {\n item: MenuItemType\n isActive: boolean\n isGoingForward: boolean\n onServiceClicked: (id: MenuServiceType) => void\n}) => {\n return (\n <div\n style={{\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <div\n style={{\n display: 'flex',\n // flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n height: 56,\n width: 56,\n marginBottom: 8,\n borderRadius: 16,\n }}\n onClick={() => {\n onServiceClicked?.(item.id)\n }}\n >\n <div\n style={{\n display: 'flex',\n // flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n height: 48,\n width: 48,\n flexShrink: 0,\n backgroundColor: menuIcons[item.id]?.color ?? 'white',\n borderRadius: 16,\n\n ...(isActive\n ? {\n height: 56,\n width: 56,\n boxShadow: '0px 0px 24px rgba(0, 0, 0, 0.08)',\n border: '4px solid white',\n }\n : {}),\n }}\n // onClick={() => {\n // onServiceClicked?.(item.id)\n // }}\n >\n {menuIcons[item.id]?.icon}\n </div>\n </div>\n\n <MarryBabyText\n type=\"subtitle-3\"\n color={isActive && theme.mbColors.pink}\n style={{ fontWeight: theme.sizes.fwSemiBold } as React.CSSProperties}\n >\n {item.name}\n </MarryBabyText>\n {isActive &&\n (isGoingForward ? (\n <StyledUnderLine\n style={{\n animationDuration: '0.2s',\n animationName: 'menuLeftToRightTrans',\n }}\n />\n ) : (\n <StyledUnderLine\n style={{\n animationDuration: '0.2s',\n animationName: 'menuRightToLeftTrans',\n }}\n />\n ))}\n </div>\n )\n}\n\nconst MarryBabyMobileMenuShelf = ({\n menuItems,\n activeItem,\n onServiceClicked,\n}: Props) => {\n const [currentActiveTab, setCurrentActiveTab] = useState(0)\n const isGoingForward = useRef(true)\n\n return (\n <div\n style={{\n display: 'flex',\n // flexDirection: 'column',\n alignItems: 'flex-start',\n justifyContent: 'space-evenly',\n }}\n >\n {menuItems.map((item, i) => (\n <MenuItem\n onServiceClicked={(id: MenuServiceType) => {\n currentActiveTab < i\n ? (isGoingForward.current = true)\n : (isGoingForward.current = false)\n\n setCurrentActiveTab(i)\n onServiceClicked?.(id)\n }}\n key={'item' + i}\n item={item}\n isGoingForward={isGoingForward.current}\n isActive={activeItem.id === item.id}\n />\n ))}\n </div>\n )\n}\n\nexport { MarryBabyMobileMenuShelf }\n","import React, { useEffect, useState } from 'react'\n\n// import { Button } from 'components/atoms/button'\n// import { Container } from 'components/atoms/container'\nimport { PureInput } from 'components/atoms'\nimport { Heading } from 'components/atoms/heading'\nimport {\n // formatCategory,\n // formatCommunity,\n // formatHealthTool,\n // getCareDefaultSpecialtiesApiPath,\n getCareSearchUrl,\n // getDiscoverDefaultCategoriesApiPath,\n // getDiscoverDefaultHealthToolsApiPath,\n // getTogetherDefaultCommunitiesApiPath,\n // getTogetherMarryBabyCommunitiesApiPath,\n useTranslation,\n} from 'components/organisms/navigationLayout/utils'\nimport { LocaleType } from 'interfaces/types'\n// eslint-disable-next-line import/order\nimport { theme } from 'misc/theme'\n// import nextId from 'react-id-generator'\n\n// import { domainLocales } from '../constants'\nimport { getCurrentBaseUrl } from 'together/api/utils'\n\nimport { LOCALE_SPECS } from '../constants'\nimport { MenuCareList } from '../menuCareList'\nimport { MenuCategoriesList } from '../menuCategoriesList'\nimport { MenuCommunitiesList } from '../menuCommunitiesList'\nimport { MenuHealthToolsList } from '../menuHealthToolsList'\nimport { MenuSectionCard } from '../menuSectionCard'\nimport { NavigationBar } from '../navigationBar'\nimport { SearchIcon } from '../navigationBar/SearchIcon'\nimport {\n Category,\n Community,\n DesktopMenuPopup,\n HealthTool,\n HealthToolByCategory,\n MenuItemType,\n MenuServiceType,\n MobileMenuPopup,\n SiteType,\n Specialty,\n SpotlightSummary,\n} from '../types'\nimport { MenuSubItemListCategory } from './categoriesSubList'\nimport { MenuSubItemListCommunities } from './communitySubList'\nimport {\n StyledCardSpecialty,\n // StyledCategoryButtonWrapper,\n StyledMenuContainer,\n StyledScrollingCategories,\n StyledScrollingWrapper,\n // StyledButtonContainerWrapper,\n StyledScrollingContent,\n // StyledCategoryFooter,\n StyledMasterMenuContainer,\n StyledStickyHeader,\n StyledServiceListMenuSearchInputWrapper,\n // StyledMenuPopupWrapper,\n // StyleMenuPopupContainer,\n // StyledCategoryItemAll,\n // StyledImageWrapper,\n // StyledCloseWrapper,\n // StyledMenuPopupContainer,\n // StyledFakeTopAlignment,\n // StyledHealthToolItem,\n} from './index.styled'\nimport { MarryBabyMobileMenuShelf } from './marryBabyMobileMenuSection'\n\nexport type Props = {\n categories: Category[]\n healthTools?: HealthTool[]\n healthToolsByCategory?: HealthToolByCategory[]\n careSpecialties: Specialty[]\n togetherCommunities: Community[]\n spotlightsList: SpotlightSummary[]\n // isHealthToolsDisable?: boolean\n // isCategoriesDisable?: boolean\n // isCommunitiesDisable?: boolean\n // isCareSpecialtiesDisable?: boolean\n popupType: DesktopMenuPopup\n // isPopupOpen: boolean\n isMobileMenuOpened: boolean\n isMobile: boolean\n // className: string\n footer: JSX.Element\n care: {\n careApiDomain: string\n CARE_MENU_COUNTRIES_ENABLED: LocaleType[]\n CARE_URL_FE: string\n }\n discover?: {\n discoverApiDomain: string\n DISCOVER_URL_FE: string\n }\n together: {\n togetherApiDomain: string\n TOGETHER_URL_FE: string\n TOGETHER_MENU_COUNTRIES_ENABLED: string[]\n }\n marryBaby: {\n tone: 'white' | 'pink'\n }\n sso: {\n SSO_URL: string\n }\n statics: {\n DISCOVER_URL_FE: string\n HEALTH_TOOL_URL_FE: string\n TOGETHER_URL_FE: string\n MARRY_BABY_FE: string\n HOME_PAGE_URL: string\n STATIC_PAGES: {\n [key in LocaleType]: {\n [key: string]: string | null\n }\n }\n }\n locale: LocaleType\n siteType: SiteType\n basePath: string\n activeMenuService: MenuServiceType\n menuItems: MenuItemType[]\n routerAsPath: string\n closePopup: () => void\n onMobileMenuClick: (s: MobileMenuPopup) => void\n callApiHandler: (p: string, m: 'GET' | 'POST' | 'PUT') => any\n}\n\nconst MenuServiceList = ({\n isMobile = false,\n isMobileMenuOpened: isMainMenuOpened = undefined,\n categories,\n healthTools,\n healthToolsByCategory,\n careSpecialties,\n togetherCommunities,\n spotlightsList,\n closePopup,\n popupType = 'none',\n onMobileMenuClick,\n footer: CustomFooter,\n care: { CARE_URL_FE },\n discover: { discoverApiDomain, DISCOVER_URL_FE },\n together: {\n togetherApiDomain,\n TOGETHER_URL_FE,\n // TOGETHER_MENU_COUNTRIES_ENABLED,\n },\n sso: { SSO_URL },\n statics: { MARRY_BABY_FE, HOME_PAGE_URL, STATIC_PAGES, HEALTH_TOOL_URL_FE },\n marryBaby: { tone },\n locale,\n siteType,\n basePath,\n callApiHandler,\n activeMenuService,\n menuItems,\n routerAsPath,\n}: Props) => {\n const f = useTranslation()\n\n const [isOnSubLevel, setIsOnSubLevel] = useState(false)\n\n const [searchResultCategories, setSearchResultCategories] =\n useState<Category[]>(categories)\n\n const [selectedMenuMainItem, setSelectedMenuMainItem] = useState<\n Category | Community | undefined\n >(undefined)\n const [menuSubList, setMenuSubList] = useState(undefined)\n // const [isCategoryLoading, setIsCategoryLoading] = useState(true)\n const [headerHideOnSearch, setHeaderHideOnSearch] = useState(false)\n const [activeService, setActiveService] = useState(\n menuItems?.find((s) => s.id === activeMenuService),\n )\n const [isInit, setIsInit] = useState(false)\n const [enableAnimation, setEnableAnimation] = useState(false)\n\n const onCategoryClick = () => {\n selectedMenuMainItem &&\n (window.location.href = (selectedMenuMainItem as Category).permalink)\n onSubMenuItemBack()\n closePopup && closePopup()\n }\n\n const onCommunityClick = () => {\n selectedMenuMainItem &&\n (window.location.href = `${TOGETHER_URL_FE}/${\n (selectedMenuMainItem as Community).communitySlug\n }`)\n onSubMenuItemBack()\n closePopup && closePopup()\n }\n\n const onSelectCategory = (category: Category) => {\n if (category.childCates && category.childCates.length > 0) {\n setIsOnSubLevel(true)\n setSelectedMenuMainItem(category)\n } else {\n window.location.href =\n siteType === 'helloSites'\n ? DISCOVER_URL_FE + category.permalink\n : MARRY_BABY_FE + category.permalink\n\n onSubMenuItemBack()\n closePopup && closePopup()\n }\n }\n\n const onSelectCommunity = ({\n community,\n isSetToSubMenu,\n }: {\n community: Community\n isSetToSubMenu: boolean\n }) => {\n if (isSetToSubMenu) {\n setIsOnSubLevel(true)\n setSelectedMenuMainItem(community)\n } else {\n window.location.href = `${TOGETHER_URL_FE}/${community.communitySlug}`\n\n onSubMenuItemBack()\n closePopup && closePopup()\n }\n }\n\n const onSelectHealthTool = (healthTool: HealthTool) => {\n // if (healthTool.link.startsWith('https')) {\n window.location.href = healthTool.link.startsWith('http')\n ? healthTool.link\n : HEALTH_TOOL_URL_FE + healthTool.link\n // } else {\n // router.push(healthTool.link)\n // }\n\n onSubMenuItemBack()\n closePopup && closePopup()\n }\n\n const onSelectCareSpecialty = (careSpecialty: Specialty) => {\n window.location.href =\n CARE_URL_FE +\n getCareSearchUrl({\n type: 'DOCTOR',\n specialtySlug: careSpecialty.slug,\n locale,\n })\n\n closePopup?.()\n }\n\n const onSubMenuItemBack = () => {\n setSelectedMenuMainItem(undefined)\n setIsOnSubLevel(false)\n }\n\n const onServiceClicked = (id: MenuServiceType) => {\n setActiveService(menuItems.find((s) => s.id === id))\n }\n\n const onSearchChange = (v: string) => {\n v !== '' ? setHeaderHideOnSearch(true) : setHeaderHideOnSearch(false)\n\n setSearchResultCategories(\n v && v !== ''\n ? categories.filter(\n (category) =>\n category.categoryName.toLowerCase().search(v.toLowerCase()) >\n -1 ||\n category.slug\n .replace('-', '')\n .toLowerCase()\n .search(v.replace(' ', '').toLowerCase()) > -1,\n )\n : categories,\n )\n }\n\n const LOCALE_SPEC = LOCALE_SPECS[locale || 'en-PH'] || {}\n\n useEffect(() => {\n setMenuSubList(\n activeService.id === 'categories'\n ? (selectedMenuMainItem as Category)?.childCates?.length > 0 && (\n <MenuSubItemListCategory\n selectedMenuMainItem={selectedMenuMainItem as Category}\n spotlightsList={[]}\n locale={locale}\n basePath={basePath}\n callApiHandler={callApiHandler}\n discoverApiDomain={discoverApiDomain}\n DISCOVER_URL_FE={DISCOVER_URL_FE}\n MARRY_BABY_FE={MARRY_BABY_FE}\n onSelectCategory={onSelectCategory}\n isMobile={isMobile}\n siteType={siteType}\n onCategoryClick={onCategoryClick}\n />\n )\n : activeService.id === 'together' &&\n // siteType === 'marryBaby' &&\n (selectedMenuMainItem as Community) && (\n <MenuSubItemListCommunities\n selectedMenuMainItem={selectedMenuMainItem as Community}\n onCommunityClick={onCommunityClick}\n onSelectCommunity={onSelectCommunity}\n TOGETHER_URL_FE={TOGETHER_URL_FE}\n basePath={basePath}\n callApiHandler={callApiHandler}\n locale={locale}\n togetherApiDomain={togetherApiDomain}\n siteType={siteType}\n isMobile={isMobile}\n />\n ),\n )\n }, [selectedMenuMainItem, activeService])\n\n useEffect(() => {\n setIsInit(true)\n }, [])\n\n useEffect(() => {\n !enableAnimation &&\n isMainMenuOpened &&\n (() => {\n setEnableAnimation(true)\n })()\n }, [isMainMenuOpened])\n\n useEffect(() => {\n setSearchResultCategories(categories)\n }, [categories])\n\n return isMobile ? (\n <>\n <StyledMasterMenuContainer\n id={!isInit ? 'categories-menu' : ''}\n data-opened={\n isMainMenuOpened || (enableAnimation ? isMainMenuOpened : 'undefined')\n }\n key={isInit ? 't' : 'f'}\n >\n <StyledMenuContainer\n data-opened={isMainMenuOpened}\n data-type=\"category\"\n data-is-sub-category-opened={isOnSubLevel}\n >\n <NavigationBar\n siteType={siteType}\n locale={locale}\n isDisplayed\n searchPlaceholder={''}\n statics={{\n DISCOVER_URL_FE,\n SSO_URL,\n HOME_PAGE_URL,\n MARRY_BABY_FE,\n CARE_URL_FE,\n }}\n isMobile={isMobile}\n isLoginButtonDisplayed={false}\n type=\"popup\"\n onMenuClick={() => onMobileMenuClick?.('categories')}\n onSearchChange={onSearchChange}\n isSearchBarDisplay={false}\n basePath={basePath}\n isAmp={false}\n isInit={false}\n isStatic={false}\n routerAsPath={routerAsPath}\n title={''}\n onTopBarAppears={undefined}\n currentPopupType={'none'}\n marryBaby={{ tone }}\n menu={undefined}\n menuItems={undefined}\n onSearchKeyPress={undefined}\n openPopup={undefined}\n profileMenu={undefined}\n userInfo={undefined}\n />\n {/* main category menu */}\n <StyledScrollingCategories>\n <StyledScrollingWrapper>\n <StyledScrollingContent>\n <StyledStickyHeader\n data-hide-on-search={headerHideOnSearch}\n // data-opened={isOpened}\n data-is-sub-category-opened={isOnSubLevel}\n >\n {siteType === 'helloSites' ? (\n <>\n <StyledServiceListMenuSearchInputWrapper\n onClick={() => {\n window.location.href = `${getCurrentBaseUrl(\n locale,\n )}/search`\n }}\n >\n <PureInput\n className=\"fake-search-input\"\n name={\n 'search-input-' +\n 'menu-service' +\n (!isInit ? '-temp' : '')\n }\n size=\"md\"\n placeholder={f('home.search', {\n site: LOCALE_SPEC ? LOCALE_SPEC.SITE_NAME : '',\n })}\n onChange={() => undefined}\n type=\"search\"\n autoFocus={false}\n onFocus={(e) => {\n e.preventDefault()\n }}\n value=\"\"\n displayIcon={\n <a\n data-event-category=\"Search Button\"\n data-event-action=\"Click\"\n >\n <SearchIcon />\n </a>\n }\n />\n </StyledServiceListMenuSearchInputWrapper>\n\n <Heading tag=\"h5\" color={theme.colors.gray800}>\n {f('menu.categories.title')}\n </Heading>\n <StyledCardSpecialty\n data-card-array-no-margin-style={true}\n >\n {menuItems.map((service, i) => (\n <MenuSectionCard\n onClick={onServiceClicked}\n key={'service-' + i}\n specialty={service}\n id={service.id}\n isActive={service.id === activeService.id}\n isMobile={isMobile}\n position={\n i === 0\n ? 'left'\n : i === menuItems.length - 1\n ? 'right'\n : 'center'\n }\n />\n ))}\n </StyledCardSpecialty>\n </>\n ) : (\n <MarryBabyMobileMenuShelf\n menuItems={menuItems}\n activeItem={activeService}\n onServiceClicked={onServiceClicked}\n />\n )}\n </StyledStickyHeader>\n <MenuCategoriesList\n isDisplayed={activeService.id === 'categories'}\n locale={locale}\n basePath={basePath}\n callApiHandler={callApiHandler}\n onClosePopup={closePopup}\n discoverApiDomain={discoverApiDomain}\n DISCOVER_URL_FE={DISCOVER_URL_FE}\n MARRY_BABY_FE={MARRY_BABY_FE}\n type=\"main\"\n onSelectCategory={onSelectCategory}\n categories={\n // categoriesSSR && categoriesSSR.length > 0\n // ? categoriesSSR\n // :\n searchResultCategories\n }\n spotlightsList={spotlightsList}\n isLoading={\n // categoriesSSR && categoriesSSR.length > 0\n // ?\n false\n // : isCategoryLoading\n }\n isMobile={isMobile}\n siteType={siteType}\n desktopPopupType={popupType}\n />\n\n <MenuHealthToolsList\n isDisplayed={activeService.id === 'healthTools'}\n locale={locale}\n basePath={basePath}\n // callApiHandler={callApiHandler}\n discoverApiDomain={discoverApiDomain}\n HEALTH_TOOL_URL_FE={HEALTH_TOOL_URL_FE}\n onSelectHealthTool={onSelectHealthTool}\n onClosePopup={closePopup}\n desktopPopupType={popupType}\n healthTools={\n // healthToolsSSR && healthToolsSSR.length > 0\n // ? healthToolsSSR\n // :\n healthTools\n }\n healthToolsByCategory={healthToolsByCategory}\n isLoading={\n // healthToolsSSR && healthToolsSSR.length > 0\n // ?\n false\n // : isCategoryLoading\n }\n isMobile={isMobile}\n siteType={siteType}\n STATIC_PAGES={STATIC_PAGES}\n />\n {activeService.id === 'care' && (\n <MenuCareList\n locale={locale}\n basePath={basePath}\n onSelectCareSpecialty={onSelectCareSpecialty}\n onClosePopup={closePopup}\n careSpecialties={\n // careSpecialtiesSSR && careSpecialtiesSSR.length > 0\n // ? careSpecialtiesSSR\n // :\n careSpecialties\n }\n isLoading={\n // careSpecialtiesSSR && careSpecialtiesSSR.length > 0\n // ?\n false\n // : isCategoryLoading\n }\n // callApiHandler={callApiHandler}\n siteType={siteType}\n isMobile={isMobile}\n desktopPopupType={popupType}\n CARE_URL_FE={CARE_URL_FE}\n />\n )}\n <MenuCommunitiesList\n isDisplayed={activeService.id === 'together'}\n locale={locale}\n TOGETHER_URL_FE={TOGETHER_URL_FE}\n basePath={basePath}\n type=\"main\"\n onSelectCommunity={onSelectCommunity}\n onClosePopup={closePopup}\n communities={\n // togetherCommunitiesSSR &&\n // togetherCommunitiesSSR.length > 0\n // ? togetherCommunitiesSSR\n // :\n togetherCommunities\n }\n isLoading={\n // togetherCommunitiesSSR &&\n // togetherCommunitiesSSR.length > 0\n // ?\n false\n // : isCategoryLoading\n }\n isMobile={isMobile}\n siteType={siteType}\n togetherApiDomain={togetherApiDomain}\n desktopPopupType={popupType}\n />\n </StyledScrollingContent>\n {CustomFooter}\n </StyledScrollingWrapper>\n </StyledScrollingCategories>\n </StyledMenuContainer>\n </StyledMasterMenuContainer>\n {isOnSubLevel && (\n <StyledMasterMenuContainer\n data-sub-level-opened={\n isOnSubLevel || (enableAnimation ? isOnSubLevel : 'undefined')\n }\n >\n <StyledMenuContainer\n data-type=\"sub-category\"\n data-is-sub-category-opened={isOnSubLevel}\n >\n <NavigationBar\n siteType={siteType}\n locale={locale}\n isDisplayed={isMainMenuOpened && isOnSubLevel}\n searchPlaceholder={''}\n menuItems={undefined}\n statics={{\n DISCOVER_URL_FE,\n SSO_URL,\n HOME_PAGE_URL,\n MARRY_BABY_FE,\n CARE_URL_FE,\n }}\n isMobile={isMobile}\n isLoginButtonDisplayed={false}\n type=\"popup-sub-level\"\n title={\n activeService.id === 'categories'\n ? (selectedMenuMainItem as Category)?.categoryName\n : (selectedMenuMainItem as Community)?.title\n }\n isSearchBarDisplay={false}\n basePath={basePath}\n isAmp={false}\n isInit={false}\n isStatic={false}\n routerAsPath={routerAsPath}\n currentPopupType={'none'}\n marryBaby={{ tone }}\n menu={undefined}\n openPopup={undefined}\n profileMenu={undefined}\n userInfo={undefined}\n onSearchKeyPress={undefined}\n onTopBarAppears={undefined}\n onMenuClick={onSubMenuItemBack}\n onSearchChange={undefined}\n />\n {menuSubList}\n </StyledMenuContainer>\n </StyledMasterMenuContainer>\n )}\n </>\n ) : (\n <>\n <MenuCategoriesList\n isDisplayed={popupType === 'categories'}\n locale={locale}\n basePath={basePath}\n callApiHandler={callApiHandler}\n discoverApiDomain={discoverApiDomain}\n DISCOVER_URL_FE={DISCOVER_URL_FE}\n MARRY_BABY_FE={MARRY_BABY_FE}\n type=\"main\"\n desktopPopupType={popupType}\n onSelectCategory={onSelectCategory}\n onClosePopup={closePopup}\n categories={\n // categoriesSSR && categoriesSSR.length > 0\n // ? categoriesSSR\n // :\n searchResultCategories\n }\n spotlightsList={spotlightsList}\n isLoading={\n // categoriesSSR && categoriesSSR.length > 0\n // ?\n false\n // : isCategoryLoading\n }\n isMobile={isMobile}\n siteType={siteType}\n />\n <MenuHealthToolsList\n isDisplayed={popupType === 'tools'}\n locale={locale}\n basePath={basePath}\n // callApiHandler={callApiHandler}\n discoverApiDomain={discoverApiDomain}\n HEALTH_TOOL_URL_FE={HEALTH_TOOL_URL_FE}\n desktopPopupType={popupType}\n onSelectHealthTool={onSelectHealthTool}\n onClosePopup={closePopup}\n healthToolsByCategory={healthToolsByCategory}\n healthTools={\n // healthToolsSSR && healthToolsSSR.length > 0\n // ? healthToolsSSR\n // :\n healthTools\n }\n isLoading={\n // healthToolsSSR && healthToolsSSR.length > 0\n // ?\n false\n // : isCategoryLoading\n }\n isMobile={isMobile}\n siteType={siteType}\n STATIC_PAGES={STATIC_PAGES}\n />\n <MenuCommunitiesList\n isDisplayed={popupType === 'communities'}\n locale={locale}\n TOGETHER_URL_FE={TOGETHER_URL_FE}\n basePath={basePath}\n type=\"main\"\n onSelectCommunity={onSelectCommunity}\n communities={\n // togetherCommunitiesSSR && togetherCommunitiesSSR.length > 0\n // ? togetherCommunitiesSSR\n // :\n togetherCommunities\n }\n isLoading={\n // togetherCommunitiesSSR && togetherCommunitiesSSR.length > 0\n // ?\n false\n // : isCategoryLoading\n }\n isMobile={isMobile}\n siteType={siteType}\n togetherApiDomain={togetherApiDomain}\n desktopPopupType={popupType}\n onClosePopup={closePopup}\n />\n {popupType === 'care' && (\n <MenuCareList\n locale={locale}\n basePath={basePath}\n onSelectCareSpecialty={onSelectCareSpecialty}\n careSpecialties={\n // careSpecialtiesSSR && careSpecialtiesSSR.length > 0\n // ? careSpecialtiesSSR\n // :\n careSpecialties\n }\n isLoading={\n // careSpecialtiesSSR && careSpecialtiesSSR.length > 0\n // ?\n false\n // : isCategoryLoading\n }\n // callApiHandler={callApiHandler}\n desktopPopupType={popupType}\n siteType={siteType}\n isMobile={isMobile}\n CARE_URL_FE={CARE_URL_FE}\n onClosePopup={closePopup}\n />\n )}\n </>\n )\n}\n\nexport { MenuServiceList }\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nexport const StyledPopup = styled.div`\n background-color: white;\n text-align: center;\n .cancle-img {\n margin-top: 24px;\n ${MediaQueries.mbDown} {\n width: 80px;\n height: 80px;\n }\n\n ${MediaQueries.mbUp} {\n width: 100px;\n height: 100px;\n }\n }\n\n h2 {\n margin-top: 32px;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-style: normal;\n font-weight: bold;\n ${MediaQueries.mbDown} {\n font-size: 24px;\n line-height: 32px;\n }\n\n ${MediaQueries.mbUp} {\n font-size: 32px;\n line-height: 42px;\n }\n }\n\n p {\n margin-top: 8px;\n color: ${(props: ThemeProps) => props.theme.colors.gray600};\n font-style: normal;\n font-weight: normal;\n ${MediaQueries.mbDown} {\n font-size: 16px;\n line-height: 24px;\n }\n\n ${MediaQueries.mbUp} {\n font-size: 16px;\n line-height: 24px;\n }\n }\n`\ntype StyledButtonGroupProps = {\n siteType: 'helloSites' | 'marryBaby'\n}\nexport const StyledButtonGroup = styled.div<StyledButtonGroupProps>`\n display: flex;\n\n ${MediaQueries.mbDown} {\n margin-top: 24px;\n }\n\n ${MediaQueries.mbUp} {\n margin-top: 32px;\n }\n justify-content: space-around;\n button {\n flex: 1;\n margin: 4px;\n }\n\n ${(props) =>\n props.siteType === 'marryBaby'\n ? `\n .cancel-button {\n background-color: #E55C8A;\n }\n .cancel-button:hover {\n background-color: #E55C8A !important;\n }\n .logout-button {\n border-color: #E55C8A;\n color: #E55C8A;\n }\n `\n : ''}\n`\n","import React from 'react'\nimport { useEffect } from 'react'\n\nimport { Button } from 'components/atoms/button'\nimport { Popup } from 'components/molecules/popup'\n\nimport { CloseLightIcon } from '../assets'\nimport { useTranslation } from '../utils'\nimport { StyledPopup, StyledButtonGroup } from './index.styled'\n\ntype Props = {\n // locale: LocaleType\n callPostLogOutApi: () => void\n openLogoutPopup: boolean\n onCloseHandler: () => void\n onLogoutHandler: () => void\n basePath: string\n siteType: 'helloSites' | 'marryBaby'\n}\n\nconst NavigationLogoutPopup = ({\n callPostLogOutApi,\n openLogoutPopup,\n onCloseHandler,\n onLogoutHandler,\n basePath,\n siteType = 'helloSites',\n}: Props) => {\n const f = useTranslation()\n\n useEffect(() => {\n document.body.classList.toggle('noscroll', openLogoutPopup)\n }, [openLogoutPopup])\n\n const logout = () => {\n ;(async () => {\n await callPostLogOutApi?.()\n onLogoutHandler?.()\n window.location.reload()\n })()\n }\n\n return (\n <Popup\n type=\"confirm\"\n isOpen={openLogoutPopup}\n closeIcon={\n <img\n src={CloseLightIcon}\n style={{ width: 24, height: 24 }}\n alt=\"close-icon\"\n />\n }\n onClose={onCloseHandler}\n >\n <StyledPopup>\n {siteType === 'helloSites' && (\n <img\n className=\"cancle-img\"\n src={`${basePath}/images/arrowDoor.svg`}\n alt=\"close-account\"\n />\n )}\n <h2>\n {f(\n siteType === 'helloSites'\n ? 'logout.popup.ask1'\n : 'logout.popup.ask.mb',\n )}\n </h2>\n <p>{f('logout.popup.ask2')}</p>\n <StyledButtonGroup siteType={siteType}>\n <Button\n className=\"logout-button\"\n color=\"tertiary\"\n size=\"lg\"\n onClick={logout}\n >\n {f('logout.popup.button.logout')}\n </Button>\n <Button\n className=\"cancel-button\"\n color=\"primary\"\n size=\"lg\"\n onClick={onCloseHandler}\n >\n {f('logout.popup.button.cancel')}\n </Button>\n </StyledButtonGroup>\n </StyledPopup>\n </Popup>\n )\n}\n\nexport { NavigationLogoutPopup }\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nexport const StyledPopup = styled.div`\n position: absolute;\n right: 0;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n &[data-animation='true'] {\n transition: all 0.5s ease-in-out;\n }\n\n &[data-open='true'] {\n z-index: 200;\n top: 120%;\n opacity: 1;\n visibility: visible;\n }\n\n &[data-open='false'] {\n display: none;\n }\n\n &[data-type='lead'] {\n width: 332px;\n height: 460px;\n\n div {\n top: -15px;\n right: -15px;\n }\n }\n\n &[data-type='welcome'] {\n position: fixed;\n ${MediaQueries.mbDown} {\n width: 100%;\n height: 424px;\n bottom: 0;\n top: unset;\n }\n ${MediaQueries.mbUp} {\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 100%;\n min-height: 445px;\n max-width: 407px;\n }\n }\n\n &[data-type='due-date'] {\n position: fixed;\n ${MediaQueries.mbDown} {\n width: 100%;\n height: 100%;\n overflow-y: scroll;\n bottom: 0;\n top: unset;\n }\n ${MediaQueries.mbUp} {\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 100vw;\n height: 55vw;\n max-height: 598px;\n max-width: 1080px;\n }\n }\n\n .popup-content {\n z-index: 111;\n height: 100%;\n }\n\n &[data-type='form'] {\n width: 496px;\n height: 548px;\n }\n\n &[data-type='confirm'] {\n width: 380px;\n height: 252px;\n }\n\n &[data-type='profile'] {\n /* min-height: 415px; */\n ${MediaQueries.mbUp} {\n border-radius: 6px;\n box-shadow: 0px 4px 8px\n ${(props: ThemeProps) => props.theme.colors.gray200};\n &:before {\n position: absolute;\n right: 11px;\n bottom: 100%;\n width: 0;\n height: 0;\n border: 0.5rem solid transparent;\n border-top: none;\n border-bottom-color: #fff;\n content: '';\n filter: drop-shadow(0 -0.0625rem 0.0625rem rgba(0, 0, 0, 0.1));\n }\n }\n ${MediaQueries.mbDown} {\n position: fixed;\n left: 0;\n top: 64px;\n width: 100%;\n }\n ${MediaQueries.mbUp} {\n width: 368px;\n }\n }\n\n .close-button {\n position: absolute;\n top: 0;\n right: 0;\n width: 32px;\n height: 32px;\n cursor: pointer;\n\n img {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n }\n }\n`\n\nexport const StyledPopupWrapper = styled.div`\n position: fixed;\n z-index: 150;\n top: 69px;\n left: 0;\n width: 100%;\n height: 100%;\n align-items: center;\n\n ${MediaQueries.mbUp} {\n background-color: transparent;\n &[data-type='welcome'] {\n background: rgba(38, 38, 38, 0.3);\n }\n &[data-type='due-date'] {\n background: rgba(38, 38, 38, 0.3);\n }\n }\n\n ${MediaQueries.mbDown} {\n background: rgba(38, 38, 38, 0.3);\n }\n\n &[data-type='welcome'] {\n top: 0;\n }\n\n &[data-open='false'] {\n display: none;\n }\n`\n","import React from 'react'\n\nimport { StyledPopup, StyledPopupWrapper } from './index.styled'\n\nexport type Props = {\n type: 'lead' | 'form' | 'confirm' | 'profile' | 'welcome' | 'due-date'\n closeIcon?: JSX.Element\n onClose?: () => void\n isOpen?: boolean\n children?: any\n enableAnimation?: boolean\n targetAvatar?: string\n id?: string\n className?: string\n}\n\nconst Popup = ({\n type = 'lead',\n closeIcon,\n isOpen = true,\n onClose,\n children,\n enableAnimation = true,\n targetAvatar,\n id,\n className,\n}: Props) => {\n return (\n <>\n <StyledPopup\n data-open={isOpen}\n data-type={type}\n data-animation={enableAnimation}\n data-target={targetAvatar}\n id={id}\n className={className}\n >\n <div className=\"popup-content\">\n {!!closeIcon && (\n <div className=\"close-button\" onClick={onClose}>\n {closeIcon}\n </div>\n )}\n {children}\n </div>\n </StyledPopup>\n <StyledPopupWrapper\n data-type={type}\n data-open={isOpen}\n onClick={onClose}\n id={id ? `wrapper-${id}` : undefined}\n className={`${className || ''}-wrapper`}\n />\n </>\n )\n}\n\nexport { Popup }\n","import React from 'react'\n\nimport { TranslationsProvider } from 'i18n/translationsProvider'\nimport { LocaleType } from 'interfaces/types'\n\nimport { UserProfileNavigation } from '../../userProfileNavigation'\nimport { Popup } from '../profilePopupWrapper'\nimport { UserInfo } from '../types'\n\nexport type Props = {\n SSO_URL?: string\n UP_BASEPATH?: string\n isOpen: boolean\n locale: LocaleType\n targetAvatar?: string\n userInfo?: UserInfo\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES: LocaleType[]\n ENABLE_CARE_PROFILE_MENU_LOCALES: LocaleType[]\n closePopup: () => void\n dispatchLogout: () => void\n userProfileRouterPush?: (s: string) => void\n siteType: 'marryBaby' | 'helloSites'\n isUserProfileNavigatorMenuHidden?: boolean\n isMyHealthEnabled?: boolean\n togetherApiDomain?: string\n}\n\nconst ProfilePopup = ({\n SSO_URL,\n UP_BASEPATH,\n isOpen,\n locale,\n targetAvatar,\n userInfo,\n ENABLE_CARE_PROFILE_MENU_LOCALES,\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES,\n closePopup,\n siteType = 'helloSites',\n dispatchLogout,\n userProfileRouterPush,\n isUserProfileNavigatorMenuHidden,\n isMyHealthEnabled = false,\n togetherApiDomain,\n}: Props) => {\n const push = (link: string) => {\n if (userProfileRouterPush) {\n userProfileRouterPush(`/${link}`)\n } else if (SSO_URL) {\n window.location.href = `${SSO_URL}${UP_BASEPATH}/${link}`\n }\n }\n\n const handleClickOnMenu = (link: string) => {\n push(link)\n closePopup()\n }\n\n const handleClickMyProfileButton = () => {\n push('profile')\n closePopup()\n }\n\n const handleClickLogout = () => {\n if (dispatchLogout) {\n dispatchLogout()\n closePopup()\n }\n }\n\n return (\n <Popup\n isOpen={isOpen}\n type=\"profile\"\n enableAnimation={false}\n targetAvatar={targetAvatar}\n onClose={closePopup}\n >\n <TranslationsProvider locale={locale}>\n <UserProfileNavigation\n SSO_URL={SSO_URL}\n UP_BASEPATH={UP_BASEPATH}\n themeName={siteType}\n userInfo={userInfo}\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES={\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES\n }\n ENABLE_CARE_PROFILE_MENU_LOCALES={ENABLE_CARE_PROFILE_MENU_LOCALES}\n onClickLogout={handleClickLogout}\n onClickMenuItem={handleClickOnMenu}\n onClickNavigationCard={handleClickOnMenu}\n onClickMyProfileButton={handleClickMyProfileButton}\n userProfileRouterPush={userProfileRouterPush}\n isUserProfileNavigatorMenuHidden={isUserProfileNavigatorMenuHidden}\n isMyHealthEnabled={isMyHealthEnabled}\n togetherApiDomain={togetherApiDomain}\n />\n </TranslationsProvider>\n </Popup>\n )\n}\n\nexport { ProfilePopup }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nexport const StyledSelectionContainer = styled.div`\n position: relative;\n`\n\nexport const StyledSelectionLabel = styled.div``\n\nexport const StyleSelectionPopup = styled.div`\n position: absolute;\n z-index: 21;\n top: 100%;\n right: 0;\n width: 327px;\n padding: 8px;\n background: white;\n border-radius: 4px;\n filter: drop-shadow(0px 8px 40px rgba(0, 0, 0, 0.1));\n\n &[data-is-open='false'] {\n display: none;\n }\n &[data-show-indicator='true'] {\n &:before {\n position: absolute;\n right: 11px;\n bottom: 100%;\n width: 0;\n height: 0;\n border: 0.5rem solid transparent;\n border-top: none;\n border-bottom-color: #fff;\n content: '';\n filter: drop-shadow(0 -0.0625rem 0.0625rem rgba(0, 0, 0, 0.1));\n }\n }\n`\n\nexport const StyledOption = styled.div`\n display: flex;\n height: 40px;\n align-items: center;\n justify-content: space-between;\n\n padding: 0 16px;\n border-radius: 6px;\n cursor: pointer;\n\n .check-icon {\n width: 16px;\n height: 16px;\n }\n &[data-selected='false'] {\n background-color: ${(props: ThemeProps) => props.theme.colors.gray100};\n }\n`\nexport const StyledPopupBackground = styled.div`\n position: fixed;\n z-index: 20;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n cursor: default;\n`\n","import React, { useState } from 'react'\n\nimport { Text } from 'components/atoms/text'\nimport { CSSProperties } from 'styled-components'\n\nimport { Check } from '../assets'\nimport {\n StyledOption,\n StyledPopupBackground,\n StyledSelectionContainer,\n StyledSelectionLabel,\n StyleSelectionPopup,\n} from './index.styled'\nexport type Option = {\n value: string\n label: string\n}\nexport type Props = {\n options: Option[]\n selected: string | number\n label?: string | JSX.Element\n onChange: (s: string) => void\n showSelected?: boolean\n style?: CSSProperties\n showIndicator?: boolean\n}\n\nconst TooltipSelection = ({\n options,\n label,\n selected,\n onChange,\n showSelected = true,\n style = {},\n showIndicator = true,\n}: Props) => {\n const [isOpen, setIsOpen] = useState<boolean>(false)\n\n return (\n <>\n <StyledSelectionContainer>\n <StyledSelectionLabel\n onClick={() => setIsOpen((value: boolean) => !value)}\n >\n {!!label && label}\n </StyledSelectionLabel>\n <StyleSelectionPopup\n data-is-open={isOpen}\n style={style}\n data-show-indicator={showIndicator}\n >\n {options.map((option, index) => (\n <StyledOption\n key={index}\n data-selected={showSelected && selected === option.value}\n onClick={(e) => {\n if (selected !== option.value) {\n onChange(option.value)\n setIsOpen((value: boolean) => !value)\n }\n e.stopPropagation()\n }}\n >\n <Text size=\"p3\">{option.label}</Text>\n {showSelected && selected === option.value && (\n <img src={Check} alt=\"check\" className=\"check-icon\" />\n )}\n </StyledOption>\n ))}\n </StyleSelectionPopup>\n </StyledSelectionContainer>\n {isOpen && (\n <StyledPopupBackground\n onClick={() => setIsOpen(false)}\n ></StyledPopupBackground>\n )}\n </>\n )\n}\n\nexport { TooltipSelection }\n","import React, { useEffect, useMemo, useRef, useState } from 'react'\n\nimport { LocaleType } from 'interfaces/types'\n\nimport { AmpSidebar } from './ampSideBar'\nimport {\n DiscoverIcon,\n HealthToolsIcon,\n HelloTogetherIcon,\n HelloCareIcon,\n ChevronUpBlue,\n ChevronDown,\n} from './assets'\nimport {\n LOCALE_SPECS as defaultLocaleSpecs,\n STATIC_PAGES as defaultStaticPages,\n domainLocales,\n SSO_PATHS,\n // DEFAULT_FOOTER,\n} from './constants'\nimport { CustomFooter } from './CustomFooter'\nimport {\n StyledContainer,\n StyledHomeContainer,\n StyledAmpHomeContainer,\n StyledLanguageChangeLink,\n} from './index.styled'\nimport { StyledMenuLanguageLabelContainer } from './index.styled'\nimport { Layout, SEOData } from './layout'\nimport { MenuServiceList } from './menuServiceList'\nimport { NavigationBar } from './navigationBar'\nimport { NavigationLogoutPopup } from './navigationLogoutPopup'\nimport { ProfilePopup } from './profilePopup'\nimport { Option, TooltipSelection } from './tooltipSelection'\nimport {\n Category,\n Community,\n DesktopMenuPopup,\n FooterInfo,\n HealthTool,\n HealthToolByCategory,\n MarryBabyFooterInfo,\n MenuItemType,\n MenuServiceType,\n MobileMenuPopup,\n Specialty,\n SpotlightSummary,\n State,\n UrlSource,\n AmpNextArticle,\n} from './types'\nimport {\n checkAvailableSpotlight,\n formatCategory,\n formatCommunity,\n formatHealthTool,\n formatHealthToolTypeCategory,\n formatSpotlightsList,\n getCareDefaultSpecialtiesApiPath,\n getDiscoverDefaultCategoriesApiPath,\n getDiscoverDefaultFooterApiPath,\n getDiscoverDefaultHealthToolsByCategoryApiPath,\n getDiscoverDefaultSpotlightsApiPath,\n getMarryBabyDefaultFooterApiPath,\n getMarryBabyDefaultHealthToolsApiPath,\n getTogetherDefaultCommunitiesApiPath,\n getTogetherMarryBabyCommunitiesApiPath,\n useTranslation,\n} from './utils'\n\nexport type Props = {\n children?: JSX.Element | JSX.Element[]\n isMobile?: boolean\n siteType: 'marryBaby' | 'helloSites'\n ssrMenuContent?: {\n categories?: Category[]\n healthTools?: HealthTool[]\n healthToolsByCategory?: HealthToolByCategory[]\n careSpecialties?: Specialty[]\n togetherCommunities?: Community[]\n spotlightsList?: SpotlightSummary[]\n }\n MetaPageTitle?: string\n MetaPageDescription?: string\n MetaPageImage?: string\n SEOData?: SEOData\n UP_BASEPATH?: string\n isSearchBarDisplay?: boolean\n className?: string\n isStatic?: boolean\n seoType?: 'article' | 'website' | 'profile'\n currentCategory?: string\n isCommentReleaseSSR?: boolean\n isMyHealthEnabled?: boolean\n together?: {\n TOGETHER_MENU_COUNTRIES_ENABLED?: LocaleType[]\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES?: LocaleType[]\n togetherApiDomain?: string\n }\n care?: {\n CARE_MENU_COUNTRIES_ENABLED?: LocaleType[]\n ENABLE_CARE_PROFILE_MENU_LOCALES?: LocaleType[]\n careApiDomain?: string\n menuActionType?: 'redirectOnly' | 'subMenuList'\n }\n discover?: { discoverApiDomain?: string }\n sso?: {\n dispatchLogout?: () => void\n SSO_URL?: string\n }\n activeMenuService?: MenuServiceType\n logoutHandlers?: {\n isLogoutPopupOpened?: boolean\n callPostLogOutApi?: () => void\n onClosePopup?: () => void\n onLogout?: () => void\n }\n marryBaby?: {\n tone: 'pink' | 'white'\n marryBabyApiDomain?: string\n socialLinks?: {\n facebookLink?: string\n twitterLink?: string\n instagramLink?: string\n zaloLink?: string\n linkedinLink?: string\n youtubeLink?: string\n }\n }\n footerInfo?: FooterInfo | MarryBabyFooterInfo\n statics: {\n DISCOVER_URL_FE?: string\n TOGETHER_URL_FE?: string\n HEALTH_TOOL_URL_FE?: string\n CARE_URL_FE?: string\n MARRY_BABY_FE?: string\n HOME_PAGE_URL?: string\n LOCALE_SPECS?: {\n [key: string]: {\n [key: string]: string | null\n }\n }\n STATIC_PAGES?: {\n [key in LocaleType]: {\n [key: string]: string | null\n }\n }\n }\n translation?: { [key: string]: string }\n basePath: string\n isAmp?: boolean\n locale: LocaleType\n routerPathname: string\n routerQuery: { [key: string]: string }\n routerAsPath: string\n nextHead: React.FunctionComponent\n userState: State\n userProfileRouterPush?: (s: string) => void\n callApiHandler: (p: string, m: 'GET' | 'POST' | 'PUT') => any\n onTopBarAppears?: (b: boolean) => void\n forcedCanonicalUrl?: string\n isUserProfileNavigatorMenuHidden?: boolean\n sitewideBanner?: JSX.Element\n sitewideBannerShown?: boolean\n sponsorComponent?: JSX.Element\n languageOptions?: Option[]\n ampSubBar?: JSX.Element\n isSearchIconDisplayed?: boolean\n enabledExperimentalCareHeader?: boolean\n onCareHeaderClick?: (\n e: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n ) => void\n dueDatePopup?: JSX.Element\n welcomePopup?: JSX.Element\n ampNextArticle?: AmpNextArticle\n usingDefaultHead?: boolean\n acceptCookiePopup?: JSX.Element\n seoCustom?: boolean\n hasStickyBottomBar?: boolean\n}\n\nconst checkDisplayStyle = (checkingClass: string): string | false | null => {\n const isBrowser = typeof window !== 'undefined'\n const desktopPopupCategories =\n isBrowser && document.querySelector(checkingClass)\n const desktopPopupCategoriesStyle =\n desktopPopupCategories && window.getComputedStyle(desktopPopupCategories)\n return (\n desktopPopupCategoriesStyle &&\n desktopPopupCategoriesStyle.getPropertyValue('display')\n )\n}\n\nconst NavigationLayout = ({\n siteType,\n MetaPageTitle,\n MetaPageDescription,\n MetaPageImage,\n // currentCategory,\n footerInfo: footerInfoSSR,\n children,\n ssrMenuContent: {\n categories: categoriesSSR = [],\n healthTools: healthToolsSSR = [],\n healthToolsByCategory: healthToolsByCategorySSR = [],\n careSpecialties: careSpecialtiesSSR = [],\n togetherCommunities: togetherCommunitiesSSR = [],\n spotlightsList: spotlightsListSSR = [],\n } = {},\n SEOData = {},\n UP_BASEPATH = SSO_PATHS.SSO_USER_PROFILE,\n isStatic = false,\n seoType = 'website',\n isMobile,\n isMyHealthEnabled = false,\n logoutHandlers: {\n isLogoutPopupOpened,\n callPostLogOutApi,\n onClosePopup,\n onLogout,\n },\n marryBaby: {\n tone = 'white',\n marryBabyApiDomain,\n socialLinks: {\n facebookLink = '',\n instagramLink = '',\n linkedinLink = '',\n twitterLink = '',\n youtubeLink = '',\n zaloLink = '',\n } = {},\n } = {\n tone: 'white',\n marryBabyApiDomain: '',\n socialLinks: {\n facebookLink: '',\n instagramLink: '',\n linkedinLink: '',\n twitterLink: '',\n youtubeLink: '',\n zaloLink: '',\n },\n },\n statics: {\n DISCOVER_URL_FE: DISCOVER_URL_FE_CUSTOM,\n TOGETHER_URL_FE,\n MARRY_BABY_FE,\n HOME_PAGE_URL,\n HEALTH_TOOL_URL_FE,\n CARE_URL_FE,\n LOCALE_SPECS = defaultLocaleSpecs,\n STATIC_PAGES = defaultStaticPages,\n } = {\n LOCALE_SPECS: defaultLocaleSpecs,\n STATIC_PAGES: defaultStaticPages,\n },\n sso: { dispatchLogout, SSO_URL } = {},\n together: {\n TOGETHER_MENU_COUNTRIES_ENABLED,\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES,\n togetherApiDomain,\n } = {\n TOGETHER_MENU_COUNTRIES_ENABLED: ['id-ID', 'vi-VN'],\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES: ['id-ID', 'vi-VN'],\n togetherApiDomain: '',\n },\n care: {\n CARE_MENU_COUNTRIES_ENABLED,\n ENABLE_CARE_PROFILE_MENU_LOCALES,\n careApiDomain,\n } = {\n CARE_MENU_COUNTRIES_ENABLED: ['vi-VN', 'id-ID', 'en-PH'],\n ENABLE_CARE_PROFILE_MENU_LOCALES: [],\n menuActionType: 'redirectOnly',\n careApiDomain: '',\n },\n discover: { discoverApiDomain } = {\n discoverApiDomain: '',\n },\n activeMenuService = 'categories',\n basePath,\n isAmp = false,\n nextHead,\n routerPathname,\n routerQuery,\n routerAsPath,\n locale,\n userState,\n callApiHandler,\n userProfileRouterPush,\n onTopBarAppears,\n forcedCanonicalUrl,\n isUserProfileNavigatorMenuHidden,\n sitewideBanner,\n sitewideBannerShown = true,\n sponsorComponent,\n languageOptions,\n isSearchBarDisplay: isSearchBarDisplayProps,\n ampSubBar,\n isSearchIconDisplayed = true,\n enabledExperimentalCareHeader = false,\n onCareHeaderClick,\n dueDatePopup,\n welcomePopup,\n ampNextArticle,\n usingDefaultHead = true,\n acceptCookiePopup,\n seoCustom,\n hasStickyBottomBar = true,\n}: Props) => {\n // get isSearchBarDisplay from props, if no props then default to only show on desktop\n const isSearchBarDisplay =\n typeof isSearchBarDisplayProps === 'boolean'\n ? isSearchBarDisplayProps\n : !isMobile\n const f = useTranslation()\n const LOCALE_SPEC = LOCALE_SPECS[locale || 'en-PH'] || {}\n\n const asPathname = useMemo(\n () => routerAsPath.split('?')?.[0] || '',\n [routerAsPath],\n )\n const selectedLanguage = useMemo(\n () =>\n `${basePath}${\n asPathname.slice(-1) === '/' ? asPathname : `${asPathname}/`\n }`,\n [asPathname],\n )\n const languageChange = useMemo(\n () =>\n languageOptions?.find((option) => option.value !== selectedLanguage) ||\n null,\n [languageOptions, selectedLanguage],\n )\n const [footerInfo, setFooterInfo] = useState<\n FooterInfo | MarryBabyFooterInfo\n >(footerInfoSSR)\n\n const [categories, setCategories] = useState<Category[]>(categoriesSSR)\n const [healthTools, setHealthTools] = useState<HealthTool[]>(healthToolsSSR)\n const [healthToolsByCategory, setHealthToolsByCategory] = useState<\n HealthToolByCategory[]\n >(healthToolsByCategorySSR)\n const [careSpecialties, setCareSpecialties] =\n useState<Specialty[]>(careSpecialtiesSSR)\n const [communities, setCommunities] = useState<Community[]>(\n togetherCommunitiesSSR,\n )\n const [spotlightsList, setSpotlightsList] =\n useState<SpotlightSummary[]>(spotlightsListSSR)\n\n const DISCOVER_URL_FE =\n DISCOVER_URL_FE_CUSTOM || `https://${domainLocales[locale]}` || ''\n\n const isBrowser = typeof window !== 'undefined'\n\n const mobileSideMenu = isBrowser && document.querySelector('#categories-menu')\n const mobileSideMenuStyle =\n mobileSideMenu && isBrowser && window.getComputedStyle(mobileSideMenu)\n const mobileSideMenuLeft =\n mobileSideMenuStyle && mobileSideMenuStyle.getPropertyValue('left')\n\n const isMobilePopupOpened = useRef(\n mobileSideMenuLeft === '0px' ? true : false,\n )\n const [isMobilePopupOpenedFlag, setIsMobilePopupOpenedFlag] = useState(\n isMobilePopupOpened.current,\n )\n\n // check if categories tool menu is appear\n const desktopPopupCategoriesDisplay = checkDisplayStyle(\n '.top-menu-categories',\n )\n\n // check if health tool menu is appear\n const desktopPopupHealthToolsDisplay = checkDisplayStyle(\n '.top-menu-health-tools',\n )\n\n // check if communities menu is appear\n const desktopPopupCommunitiesDisplay = checkDisplayStyle(\n '.top-menu-communities',\n )\n\n // check if care specialties menu is appear\n const desktopPopupCareSpecialtiesDisplay = checkDisplayStyle(\n '.top-menu-care-specialties',\n )\n\n // set popup\n const [popupType, setPopupType] = useState<DesktopMenuPopup>(\n desktopPopupCategoriesDisplay && desktopPopupCategoriesDisplay !== 'none'\n ? 'categories'\n : desktopPopupHealthToolsDisplay &&\n desktopPopupHealthToolsDisplay !== 'none'\n ? 'tools'\n : desktopPopupCommunitiesDisplay &&\n desktopPopupCommunitiesDisplay !== 'none'\n ? 'communities'\n : desktopPopupCareSpecialtiesDisplay &&\n desktopPopupCareSpecialtiesDisplay !== 'none'\n ? 'care'\n : 'none',\n )\n\n const languageSelectedLabel = useMemo(\n () => (\n <StyledMenuLanguageLabelContainer>\n {locale.split('-')?.[0]?.toUpperCase()}\n <img\n src={popupType === 'language' ? ChevronUpBlue : ChevronDown}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.language')}\n />\n </StyledMenuLanguageLabelContainer>\n ),\n [popupType, locale],\n )\n\n const { userInfo, isLoggedIn } = userState\n\n const onMenuCollapsed = (type: MobileMenuPopup) => {\n if (\n // !isDesktopPopupOpen ||\n // (isDesktopPopupOpen &&\n popupType !== type\n // )\n ) {\n // setIsDesktopPopupOpen(true)\n setPopupType(type)\n setIsMobilePopupOpenedFlag(true)\n }\n\n if (\n // isDesktopPopupOpen &&\n popupType === type\n ) {\n // setIsDesktopPopupOpen(false)\n setPopupType('none')\n setIsMobilePopupOpenedFlag(false)\n }\n // isMobilePopupOpened.current = !isMobilePopupOpenedFlag\n }\n\n const closeDesktopPopup = () => {\n // setIsDesktopPopupOpen(false)\n setPopupType('none')\n }\n\n const closeMobilePopup = () => {\n // isMobilePopupOpened.current = false\n setIsMobilePopupOpenedFlag(false)\n setPopupType('none')\n }\n\n const openDesktopPopup = (type: DesktopMenuPopup) => {\n if (\n // !isDesktopPopupOpen ||\n // (isDesktopPopupOpen &&\n popupType !== type\n // )\n ) {\n // setIsDesktopPopupOpen(true)\n setPopupType(type)\n }\n\n if (\n // isDesktopPopupOpen &&\n popupType === type\n ) {\n // setIsDesktopPopupOpen(false)\n setPopupType('none')\n }\n }\n\n const onSearchKeyPress = (e: React.KeyboardEvent<Element>, t: string) => {\n if (e.key === 'Enter') {\n window.location.href = `${HOME_PAGE_URL}/search/?s=${t}`\n }\n }\n\n const siteName = LOCALE_SPECS?.[locale]?.SITE_NAME_FORMATTED\n\n const services = [\n {\n name: f('home.navigator.menuItem.discover'),\n id: 'categories' as MenuServiceType,\n link: './posts/abc',\n niceName: '',\n thumbnail: DiscoverIcon,\n isDisplayed: true,\n },\n {\n name: f('home.navigator.menuItem.healthTools'),\n id: 'healthTools' as MenuServiceType,\n link: './en',\n thumbnail: HealthToolsIcon,\n isDisplayed: true,\n },\n ] as MenuItemType[]\n\n TOGETHER_MENU_COUNTRIES_ENABLED?.includes(locale) &&\n services.push({\n name: f('home.navigator.menuItem.helloTogether'),\n id: 'together' as MenuServiceType,\n link: TOGETHER_URL_FE + '/',\n thumbnail: HelloTogetherIcon,\n isDisplayed: true,\n })\n\n CARE_MENU_COUNTRIES_ENABLED?.includes(locale) &&\n services.push({\n name: f('home.navigator.menuItem.helloCare'),\n id: 'care' as MenuServiceType,\n link: '/care',\n thumbnail: HelloCareIcon,\n isDisplayed: true,\n })\n\n useEffect(() => {\n document.documentElement.style.overflow = isMobilePopupOpenedFlag\n ? 'hidden'\n : ''\n }, [isMobilePopupOpenedFlag])\n\n const isSponsored = !!sponsorComponent\n\n useEffect(() => {\n if (isLoggedIn) {\n if (routerQuery?.source === ('first_login' as UrlSource)) {\n // sign up\n userInfo?.email && userInfo?.email !== ''\n ? (() => {\n // with email\n ;(window as any).insider_object = {\n user: {\n uuid: userInfo?.id,\n email: userInfo?.email,\n gdpr_optin: true,\n email_optin: true,\n sign_up: true,\n ...(userInfo?.name ? { name: userInfo?.name } : {}),\n },\n }\n })()\n : (() => {\n // without email\n ;(window as any).insider_object = {\n user: {\n uuid: userInfo?.id,\n sign_up: true,\n ...(userInfo?.name ? { name: userInfo?.name } : {}),\n },\n }\n })()\n } else {\n // log in\n userInfo?.email && userInfo?.email !== ''\n ? (() => {\n // with email\n ;(window as any).insider_object = {\n user: {\n uuid: userInfo?.id,\n email: userInfo?.email,\n gdpr_optin: true,\n email_optin: true,\n log_in: true,\n ...(userInfo?.name ? { name: userInfo?.name } : {}),\n },\n }\n })()\n : (() => {\n // without email\n ;(window as any).insider_object = {\n user: {\n uuid: userInfo?.id,\n log_in: true,\n ...(userInfo?.name ? { name: userInfo?.name } : {}),\n },\n }\n })()\n }\n }\n\n // get footer csr\n ;(async () => {\n const footerResult = !footerInfo\n ? await (\n await fetch(\n siteType === 'helloSites'\n ? getDiscoverDefaultFooterApiPath(locale, discoverApiDomain)\n : getMarryBabyDefaultFooterApiPath(locale, marryBabyApiDomain),\n )\n ).json()\n : null\n\n if (\n footerResult &&\n footerResult.status === 1 &&\n footerResult.data &&\n !footerInfo\n ) {\n setFooterInfo(\n siteType === 'helloSites'\n ? footerResult.data || {}\n : footerResult.data.footers || [],\n )\n }\n })()\n\n // get categories csr\n ;(async () => {\n const { response: categoriesResults = {} } =\n // typeof window !== 'undefined' &&\n (!categoriesSSR || categoriesSSR?.length === 0) &&\n // (isMobile || popupType === 'categories') &&\n categories?.length === 0\n ? {\n response: await (\n await fetch(\n getDiscoverDefaultCategoriesApiPath(\n locale,\n discoverApiDomain,\n ),\n )\n ).json(),\n }\n : {}\n\n if (\n categoriesResults !== null &&\n categoriesResults.status === 1 &&\n categoriesResults.data?.length > 0\n ) {\n const categoriesFormatted: Category[] =\n categoriesResults.data.map(formatCategory)\n\n categories.length === 0 && setCategories(categoriesFormatted)\n }\n })()\n\n // get spotlight\n ;(async () => {\n const { response: spotlightsResults = {} } =\n // typeof window !== 'undefined' &&\n (!spotlightsListSSR || spotlightsListSSR?.length === 0) &&\n siteType === 'helloSites' &&\n // (isMobile || popupType === 'categories') &&\n spotlightsList?.length === 0\n ? {\n response: await (\n await fetch(\n getDiscoverDefaultSpotlightsApiPath(\n locale,\n discoverApiDomain,\n {\n perPage: 100,\n orderBy: 'start_date',\n },\n ),\n )\n ).json(),\n }\n : {}\n\n if (\n spotlightsResults?.status === 1 &&\n spotlightsResults?.data?.articles?.length > 0\n ) {\n const spotlightsFormatted: SpotlightSummary[] =\n spotlightsResults.data?.articles\n ?.map(formatSpotlightsList)\n .filter(checkAvailableSpotlight)\n .slice(0, 4)\n\n spotlightsList.length === 0 && setSpotlightsList(spotlightsFormatted)\n }\n })()\n\n // get health tools csr\n ;(async () => {\n const { response: healthToolsResults = {} } =\n // typeof window !== 'undefined' &&\n !healthToolsSSR?.length &&\n !healthTools?.length &&\n !healthToolsByCategorySSR?.length &&\n !healthToolsByCategorySSR?.length\n ? {\n response: await (siteType === 'helloSites'\n ? await fetch(\n getDiscoverDefaultHealthToolsByCategoryApiPath(\n locale,\n discoverApiDomain,\n ),\n )\n : await fetch(\n getMarryBabyDefaultHealthToolsApiPath(\n locale,\n marryBabyApiDomain,\n ),\n )\n ).json(),\n }\n : {}\n\n if (\n healthToolsResults !== null &&\n healthToolsResults.status === 1 &&\n healthToolsResults.data?.length > 0\n ) {\n if (siteType === 'helloSites') {\n const healthToolsFormatted: HealthToolByCategory[] =\n healthToolsResults.data.map(formatHealthToolTypeCategory)\n\n if (healthTools.length === 0) {\n setHealthToolsByCategory(healthToolsFormatted)\n // setIsCategoryLoading(false)\n }\n } else {\n const healthToolsFormatted: HealthTool[] =\n healthToolsResults.data.map(formatHealthTool)\n\n if (healthTools.length === 0) {\n setHealthTools(healthToolsFormatted)\n // setIsCategoryLoading(false)\n }\n }\n }\n })()\n\n // get careSpecialties csr\n ;(async () => {\n const { response: careSpecialtiesResults = {} } =\n // typeof window !== 'undefined' &&\n (!careSpecialtiesSSR || careSpecialtiesSSR?.length === 0) &&\n // (isMobile || popupType === 'care') &&\n CARE_MENU_COUNTRIES_ENABLED.includes(locale) &&\n careSpecialties?.length === 0\n ? {\n response: await (\n await fetch(\n getCareDefaultSpecialtiesApiPath(locale, careApiDomain),\n )\n ).json(),\n }\n : {}\n\n if (\n careSpecialtiesResults !== null &&\n careSpecialtiesResults._status === 1 &&\n careSpecialtiesResults._data?.specialties?.length > 0\n ) {\n const careSpecialtiesFormatted: Specialty[] =\n careSpecialtiesResults._data.specialties\n\n if (careSpecialties.length === 0) {\n setCareSpecialties(careSpecialtiesFormatted)\n // setIsCategoryLoading(false)\n }\n }\n })()\n\n // get communities csr\n ;(async () => {\n const { response: communitiesResults = {} } =\n // typeof window !== 'undefined' &&\n (!togetherCommunitiesSSR || togetherCommunitiesSSR?.length === 0) &&\n // (isMobile || popupType === 'communities') &&\n TOGETHER_MENU_COUNTRIES_ENABLED.includes(locale) &&\n communities?.length === 0\n ? {\n response: await (\n await fetch(\n siteType === 'helloSites'\n ? getTogetherDefaultCommunitiesApiPath(\n locale,\n togetherApiDomain,\n )\n : getTogetherMarryBabyCommunitiesApiPath(\n locale,\n togetherApiDomain,\n ),\n )\n ).json(),\n }\n : {}\n\n if (communitiesResults?.data?.communities?.length > 0) {\n const communitiesFormatted: Community[] =\n communitiesResults?.data?.communities?.map(formatCommunity) || []\n if (communities.length === 0) {\n setCommunities(communitiesFormatted)\n // setIsCategoryLoading(false)\n }\n }\n })()\n }, [])\n\n const profileMenu = (\n <ProfilePopup\n locale={locale}\n UP_BASEPATH={UP_BASEPATH}\n SSO_URL={SSO_URL}\n userProfileRouterPush={userProfileRouterPush}\n dispatchLogout={dispatchLogout}\n isOpen={popupType === 'profile'}\n isMyHealthEnabled={isMyHealthEnabled}\n ENABLE_CARE_PROFILE_MENU_LOCALES={ENABLE_CARE_PROFILE_MENU_LOCALES}\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES={\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES\n }\n closePopup={closeMobilePopup}\n userInfo={userInfo}\n siteType={siteType}\n isUserProfileNavigatorMenuHidden={isUserProfileNavigatorMenuHidden}\n togetherApiDomain={togetherApiDomain}\n />\n )\n const hideAMP = isAmp && { 'next-page-hide': '' }\n\n return (\n <Layout\n SEOData={{\n SEOTitle: MetaPageTitle,\n SEOImage: MetaPageImage,\n SEODescription: MetaPageDescription,\n siteName,\n seoType,\n ...SEOData,\n }}\n isAmp={isAmp}\n locale={locale}\n routerPathname={routerPathname}\n routerQuery={routerQuery}\n nextHead={nextHead}\n siteType={siteType}\n forcedCanonicalUrl={forcedCanonicalUrl}\n userId={userInfo?.id}\n usingDefaultHead={usingDefaultHead}\n seoCustom={seoCustom}\n >\n <NavigationLogoutPopup\n basePath={basePath}\n callPostLogOutApi={callPostLogOutApi}\n openLogoutPopup={isLogoutPopupOpened}\n onCloseHandler={onClosePopup}\n onLogoutHandler={onLogout}\n siteType={siteType}\n />\n {dueDatePopup}\n {welcomePopup}\n {acceptCookiePopup}\n {isMobile ? (\n <>\n <StyledContainer>\n <section\n className={isAmp ? 'amp-header' : undefined}\n next-page-replace=\"hhg-navigator\"\n amp-fx=\"float-in-top\"\n {...hideAMP}\n >\n <NavigationBar\n siteType={siteType}\n statics={{\n DISCOVER_URL_FE,\n SSO_URL,\n HOME_PAGE_URL,\n MARRY_BABY_FE,\n CARE_URL_FE,\n }}\n marryBaby={{ tone }}\n menuItems={services}\n menu={\n !isAmp ? (\n <MenuServiceList\n key={'mobile-menu-popup'}\n menuItems={services}\n siteType={siteType}\n isMobileMenuOpened={popupType === 'categories'}\n categories={categories}\n healthTools={healthTools}\n healthToolsByCategory={healthToolsByCategory}\n careSpecialties={careSpecialties}\n togetherCommunities={communities}\n spotlightsList={spotlightsList}\n onMobileMenuClick={onMenuCollapsed}\n isMobile={isMobile}\n closePopup={closeMobilePopup}\n footer={\n <CustomFooter\n locale={locale}\n isMobile={isMobile}\n basePath={basePath}\n isAmp={isAmp}\n footerInfo={footerInfo}\n type=\"mini\"\n siteType={siteType}\n marryBabySocialLinks={{\n facebookLink,\n instagramLink,\n linkedinLink,\n twitterLink,\n youtubeLink,\n zaloLink,\n }}\n />\n }\n locale={locale}\n callApiHandler={callApiHandler}\n basePath={basePath}\n together={{\n TOGETHER_MENU_COUNTRIES_ENABLED,\n togetherApiDomain:\n togetherApiDomain || marryBabyApiDomain,\n TOGETHER_URL_FE,\n }}\n care={{\n CARE_MENU_COUNTRIES_ENABLED,\n careApiDomain,\n CARE_URL_FE,\n }}\n discover={{ discoverApiDomain, DISCOVER_URL_FE }}\n activeMenuService={activeMenuService}\n statics={{\n DISCOVER_URL_FE,\n HOME_PAGE_URL,\n HEALTH_TOOL_URL_FE,\n MARRY_BABY_FE,\n TOGETHER_URL_FE,\n STATIC_PAGES,\n }}\n marryBaby={{\n tone,\n }}\n routerAsPath={routerAsPath}\n popupType=\"none\"\n sso={{\n SSO_URL,\n }}\n />\n ) : undefined\n }\n profileMenu={profileMenu}\n type=\"home\"\n currentPopupType={popupType}\n isMobile={isMobile}\n isLoginButtonDisplayed\n onMenuClick={onMenuCollapsed}\n searchPlaceholder={f('home.search', {\n site:\n siteType === 'helloSites'\n ? LOCALE_SPEC?.SITE_NAME\n : 'Marry Baby',\n })}\n onTopBarAppears={(b: boolean) => {\n onTopBarAppears && onTopBarAppears(b)\n }}\n isSearchBarDisplay={isSearchBarDisplay}\n onSearchKeyPress={onSearchKeyPress}\n // onSearchChange={onSearchChanged}\n isStatic={isAmp || isStatic}\n sponsorComponent={sponsorComponent}\n locale={locale}\n userInfo={userState.userInfo}\n basePath={basePath}\n isAmp={isAmp}\n isDisplayed\n isInit={false}\n onSearchChange={undefined}\n openPopup={undefined}\n routerAsPath={routerAsPath}\n title={''}\n sitewideBanner={sitewideBanner}\n sitewideBannerShown={sitewideBannerShown}\n isSearchIconDisplayed={isSearchIconDisplayed}\n enabledExperimentalCareHeader={enabledExperimentalCareHeader}\n languageMenu={\n typeof languageOptions !== 'undefined' &&\n languageOptions.length > 1 ? (\n <>\n {languageOptions.length === 2 && languageChange ? (\n <StyledLanguageChangeLink\n data-is-active={true}\n href={languageChange?.value || '#'}\n >\n {languageChange?.label}\n </StyledLanguageChangeLink>\n ) : (\n <TooltipSelection\n options={languageOptions}\n selected={selectedLanguage}\n label={languageSelectedLabel}\n onChange={(href) => {\n if (typeof window !== 'undefined') {\n window.location.href = href\n }\n }}\n style={{ width: 100 }}\n showSelected={true}\n showIndicator={false}\n />\n )}\n </>\n ) : undefined\n }\n />\n {typeof ampSubBar !== 'undefined' && <>{ampSubBar}</>}\n </section>\n {!isAmp ? (\n <StyledHomeContainer\n className=\"root-container\"\n data-menu-opened={isMobilePopupOpened.current}\n data-sponsored={isSponsored}\n data-is-mobile={isMobile}\n data-sitewide={!!sitewideBanner}\n hasStickyBottomBar={hasStickyBottomBar}\n >\n <>\n {children}\n <CustomFooter\n isAmp={isAmp}\n isMobile={isMobile}\n locale={locale}\n basePath={basePath}\n footerInfo={footerInfo}\n type=\"main\"\n siteType={siteType}\n marryBabySocialLinks={{\n facebookLink,\n instagramLink,\n linkedinLink,\n twitterLink,\n youtubeLink,\n zaloLink,\n }}\n ampNextArticle={ampNextArticle}\n routerQuery={routerQuery}\n />\n </>\n </StyledHomeContainer>\n ) : (\n <StyledAmpHomeContainer\n className=\"root-container\"\n data-menu-opened={isMobilePopupOpened.current}\n data-sponsored={isSponsored}\n data-is-mobile={isMobile}\n data-sitewide={!!sitewideBanner}\n >\n {children}\n <CustomFooter\n isAmp={isAmp}\n isMobile={isMobile}\n locale={locale}\n basePath={basePath}\n footerInfo={footerInfo}\n type=\"main\"\n siteType={siteType}\n marryBabySocialLinks={{\n facebookLink,\n instagramLink,\n linkedinLink,\n twitterLink,\n youtubeLink,\n zaloLink,\n }}\n ampNextArticle={ampNextArticle}\n routerQuery={routerQuery}\n />\n </StyledAmpHomeContainer>\n )}\n </StyledContainer>\n {isAmp && (\n <AmpSidebar\n locale={locale}\n categoriesSSR={categoriesSSR}\n healthToolsSSR={healthToolsByCategorySSR}\n spotlightsSSR={spotlightsListSSR}\n serviceUrls={{\n TOGETHER_URL_FE,\n CARE_URL_FE,\n DISCOVER_URL_FE,\n }}\n together={{\n TOGETHER_MENU_COUNTRIES_ENABLED,\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES,\n togetherApiDomain,\n }}\n care={{\n CARE_MENU_COUNTRIES_ENABLED,\n ENABLE_CARE_PROFILE_MENU_LOCALES,\n careApiDomain,\n }}\n basePath={basePath}\n searchPlaceholder={f('home.search', {\n site:\n siteType === 'helloSites'\n ? LOCALE_SPEC?.SITE_NAME\n : 'Marry Baby',\n })}\n />\n )}\n </>\n ) : (\n <>\n <NavigationBar\n siteType={siteType}\n menuItems={services}\n marryBaby={{ tone }}\n locale={locale}\n currentPopupType={popupType}\n onSearchKeyPress={onSearchKeyPress}\n openPopup={openDesktopPopup}\n isMobile={isMobile}\n isLoginButtonDisplayed\n // onSearchChange={onSearchChanged}\n isSearchBarDisplay={!isAmp && isSearchBarDisplay}\n searchPlaceholder={f('home.search', {\n site:\n siteType === 'helloSites'\n ? LOCALE_SPEC?.SITE_NAME\n : 'Marry Baby',\n })}\n sitewideBannerShown={sitewideBannerShown}\n statics={{\n DISCOVER_URL_FE,\n SSO_URL,\n HOME_PAGE_URL,\n MARRY_BABY_FE,\n CARE_URL_FE,\n }}\n menu={\n <MenuServiceList\n menuItems={services}\n siteType={siteType}\n isMobile={isMobile}\n popupType={popupType}\n closePopup={closeDesktopPopup}\n categories={categories}\n healthTools={healthTools}\n healthToolsByCategory={healthToolsByCategory}\n careSpecialties={careSpecialties}\n togetherCommunities={communities}\n spotlightsList={spotlightsList}\n locale={locale}\n callApiHandler={callApiHandler}\n basePath={basePath}\n together={{\n TOGETHER_MENU_COUNTRIES_ENABLED,\n togetherApiDomain,\n TOGETHER_URL_FE,\n }}\n care={{\n careApiDomain,\n CARE_MENU_COUNTRIES_ENABLED,\n CARE_URL_FE,\n }}\n discover={{ discoverApiDomain, DISCOVER_URL_FE }}\n statics={{\n DISCOVER_URL_FE,\n HOME_PAGE_URL,\n HEALTH_TOOL_URL_FE,\n MARRY_BABY_FE,\n TOGETHER_URL_FE,\n STATIC_PAGES,\n }}\n activeMenuService={activeMenuService}\n marryBaby={{\n tone,\n }}\n routerAsPath={routerAsPath}\n footer={undefined}\n isMobileMenuOpened={undefined}\n sso={{\n SSO_URL,\n }}\n onMobileMenuClick={undefined}\n />\n }\n profileMenu={profileMenu}\n userInfo={userState.userInfo}\n sponsorComponent={sponsorComponent}\n type=\"home\"\n basePath={basePath}\n isAmp={isAmp}\n isDisplayed\n isInit={false}\n onSearchChange={undefined}\n isStatic={false}\n routerAsPath={routerAsPath}\n title={''}\n onMenuClick={undefined}\n onTopBarAppears={undefined}\n sitewideBanner={sitewideBanner}\n languageMenu={\n typeof languageOptions !== 'undefined' &&\n languageOptions.length > 1 ? (\n <>\n {languageOptions.length === 2 && languageChange ? (\n <StyledLanguageChangeLink\n data-is-active={true}\n href={languageChange?.value || '#'}\n >\n {languageChange?.label}\n </StyledLanguageChangeLink>\n ) : (\n <TooltipSelection\n options={languageOptions}\n selected={selectedLanguage}\n label={languageSelectedLabel}\n onChange={(href) => {\n if (typeof window !== 'undefined') {\n window.location.href = href\n }\n }}\n style={{ width: 100 }}\n showSelected={true}\n showIndicator={false}\n />\n )}\n </>\n ) : undefined\n }\n enabledExperimentalCareHeader={enabledExperimentalCareHeader}\n onCareHeaderClick={onCareHeaderClick}\n />\n {!isAmp ? (\n <StyledHomeContainer\n className=\"root-container\"\n data-menu-opened={isMobilePopupOpenedFlag}\n data-is-mobile={isMobile}\n data-sponsored={isSponsored}\n data-sitewide={!!sitewideBanner}\n hasStickyBottomBar={hasStickyBottomBar}\n >\n {children}\n </StyledHomeContainer>\n ) : (\n <StyledAmpHomeContainer\n className=\"root-container\"\n data-menu-opened={isMobilePopupOpenedFlag}\n data-is-mobile={isMobile}\n data-sponsored={isSponsored}\n data-sitewide={!!sitewideBanner}\n >\n {children}\n </StyledAmpHomeContainer>\n )}\n <CustomFooter\n type=\"main\"\n locale={locale}\n basePath={basePath}\n isMobile={isMobile}\n isAmp={isAmp}\n footerInfo={footerInfo}\n siteType={siteType}\n marryBabySocialLinks={{\n facebookLink,\n instagramLink,\n linkedinLink,\n twitterLink,\n youtubeLink,\n zaloLink,\n }}\n />\n </>\n )}\n </Layout>\n )\n}\n\nexport { NavigationLayout }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nexport const StyledSiteWideContainer = styled.div`\n position: relative;\n display: flex;\n overflow: hidden;\n align-items: center;\n justify-content: center;\n background-position: center;\n background-size: cover;\n transition: height 0.3s;\n background-color: ${(props: ThemeProps) => props.theme.colors.secondaryBase};\n\n &[data-is-marrybaby='true'] {\n background-color: ${(props: ThemeProps) => props.theme.mbColors.cobalt};\n }\n\n &[data-is-mobile='true'] {\n &[data-is-marrybaby='false'] {\n justify-content: flex-start;\n }\n }\n &[data-is-mobile='false'] {\n justify-content: center;\n }\n\n &[data-is-collapse='false'] {\n height: 64px;\n &[data-is-marrybaby='true'] {\n &[data-is-mobile='true'] {\n height: 120px;\n }\n }\n }\n &[data-is-collapse='true'] {\n height: 0;\n }\n\n .amp-close-banner * {\n pointer-events: none;\n }\n\n .content {\n display: -webkit-box;\n overflow: hidden;\n padding-right: 48px;\n -webkit-box-orient: vertical;\n color: white;\n font-size: 16px;\n font-weight: 600;\n -webkit-line-clamp: 2;\n line-height: 24px;\n text-overflow: ellipsis;\n a {\n color: white;\n }\n &[data-is-mobile='true'] {\n font-size: 14px;\n }\n }\n`\n\nexport const StyledIcon = styled.div`\n max-width: 100px;\n margin-right: 16px;\n height: 100%;\n img {\n width: 64px;\n height: 64px;\n object-fit: contain;\n }\n &[data-is-marrybaby='true'] {\n height: unset;\n max-height: 100%;\n }\n &[data-is-mobile='true'] {\n img {\n width: 52px;\n height: 52px;\n }\n }\n`\n\nexport const StyledCloseIconWrapper = styled.div`\n position: absolute;\n right: 20px;\n width: 24px;\n height: 24px;\n cursor: pointer;\n &[data-is-marrybaby='true'] {\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n border-radius: 50%;\n top: 12px;\n right: 32px;\n padding: 10px;\n height: 40px;\n width: 40px;\n .close-icon {\n width: 20px;\n height: 20px;\n }\n &[data-is-mobile='true'] {\n position: absolute;\n top: 8px;\n right: 8px;\n padding: 8px;\n height: 32px;\n width: 32px;\n .close-icon {\n width: 100%;\n height: 100%;\n }\n }\n }\n`\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nexport const StyledSponsoredBy = styled.div`\n display: flex;\n align-items: center;\n padding: 0.5rem 0;\n\n &[data-type-mobile='true'] {\n justify-content: space-between;\n }\n\n amp-img img {\n object-fit: contain;\n object-position: right;\n }\n`\n\nexport const StyledStickySponsoredBy = styled.div`\n display: flex;\n height: 40px;\n align-items: center;\n justify-content: center;\n padding: 8px 0;\n border-top: 1px solid #e4e8ec;\n background-color: ${(props: ThemeProps) => props.theme.colors.neutral50};\n cursor: pointer;\n text-decoration: none;\n\n &[data-align-left='true'] {\n justify-content: start;\n }\n .sticky-sponsored-info-icon {\n display: inline;\n }\n\n .sponsored-logo {\n width: auto;\n height: 24px;\n vertical-align: middle;\n }\n\n ${MediaQueries.mbUp} {\n height: 44px;\n }\n\n &[data-show-popup='true'] {\n .sticky-sponsored-info-icon {\n position: relative;\n &:before {\n position: absolute;\n z-index: 9;\n top: 100%;\n left: 9px;\n border-right: 6px transparent solid;\n border-bottom: 8px white solid;\n border-left: 6px transparent solid;\n content: ' ';\n transform: translateX(calc(-50% + 3px));\n }\n }\n }\n\n &.open .amp-sponsored-popup {\n display: block;\n }\n\n &[data-is-amp] {\n margin-top: -10px;\n > [class*='Container'] {\n display: flex;\n align-items: center;\n }\n }\n`\nexport const StyledStickySponsoredPopup = styled.div`\n position: absolute;\n top: 30px;\n left: 50%;\n &[data-align-left='true'] {\n left: 190px;\n }\n width: 350px;\n padding: 1rem;\n border: 1px solid #f2f2f2;\n background: white;\n border-radius: 6px;\n transform: translateX(-50%);\n ${MediaQueries.mbDown} {\n width: calc(100% - 2rem);\n }\n\n &[data-is-amp] {\n display: none;\n position: fixed;\n z-index: 999;\n top: 100px;\n left: 50%;\n\n &.open {\n display: block;\n }\n }\n\n .button-container {\n display: flex;\n justify-content: space-between;\n button {\n flex: 1;\n }\n button:first-child {\n margin-right: 0.5rem;\n ${MediaQueries.mbUp} {\n margin-right: 1rem;\n }\n }\n }\n`\n","/* eslint-disable react/jsx-no-target-blank */\nimport React, { useState } from 'react'\n\nimport { Container, Text, Button } from 'components/atoms'\n\nimport { InfoLightIcon } from '../assets'\nimport { STATIC_PAGES } from '../constants'\nimport { ContentSponsor } from '../types'\nimport { useTranslation } from '../utils'\nimport {\n StyledSponsoredBy,\n StyledStickySponsoredBy,\n StyledStickySponsoredPopup,\n} from './index.styled'\n\nexport type Props = {\n image: string\n isMobile: boolean\n href?: string\n className?: string\n isAmp?: boolean\n}\n\nconst SponsoredBy = ({ image, href, className, isMobile, isAmp }: Props) => {\n const f = useTranslation()\n\n return (\n <StyledSponsoredBy className={className} data-type-mobile={isMobile}>\n <Text size=\"c2\" type=\"bold\" color=\"#737373\">\n {f('articlePage.sponsoredBy').toUpperCase() + ':'}\n </Text>\n <a\n style={{\n flex: isAmp ? 'unset' : 1,\n }}\n href={href}\n target=\"_blank\"\n >\n {!isAmp ? (\n <img\n src={image}\n style={{\n height: '22px',\n objectPosition: isMobile ? 'right' : 'left',\n objectFit: 'contain',\n paddingLeft: '1rem',\n }}\n />\n ) : (\n <amp-img\n height=\"35\"\n width=\"200\"\n src={image}\n alt=\"sponsored article\"\n style={{\n height: '22px',\n objectPosition: isMobile ? 'right' : 'left',\n objectFit: 'contain',\n paddingLeft: '1rem',\n }}\n />\n )}\n </a>\n </StyledSponsoredBy>\n )\n}\n\nexport type StickyProps = {\n className?: string\n isMobile?: boolean\n isCollapsed?: boolean\n sponsoredType?: 'article' | 'content'\n sponsoredBy?: ContentSponsor\n isAmp?: boolean\n locale?: string\n}\nconst StickySponsoredBy = ({\n className,\n isMobile,\n isCollapsed,\n sponsoredType,\n sponsoredBy,\n isAmp,\n locale,\n}: StickyProps) => {\n const f = useTranslation()\n const [showPopup, setShowPopup] = useState(false)\n\n return (\n <StyledStickySponsoredBy\n className={className}\n onClick={() => setShowPopup(true)}\n data-show-popup={showPopup && (!isMobile || !isCollapsed) && !isAmp}\n data-align-left={sponsoredBy && !!sponsoredBy?.logo}\n data-is-amp={isAmp || undefined}\n >\n <Container style={{ position: 'relative', padding: '0 16px' }}>\n {sponsoredType === 'content' ? (\n <Text size={isMobile ? 'p4' : 'p3'} color=\"#737373\">\n <div className=\"sticky-sponsored-info-icon\">\n {!isAmp ? (\n <img\n src={InfoLightIcon}\n style={{\n width: 20,\n height: 20,\n verticalAlign: 'middle',\n marginRight: '0.3rem',\n marginBottom: '0.1rem',\n }}\n />\n ) : (\n <amp-img\n height=\"20\"\n width=\"20\"\n style={{\n verticalAlign: 'middle',\n marginLeft: '0.3rem',\n marginBottom: '0.1rem',\n }}\n src={InfoLightIcon}\n />\n )}\n </div>\n {sponsoredBy && !!sponsoredBy?.logo ? (\n <>\n {' '}\n {f('articlePage.sponsoredContentBy')}{' '}\n <img\n className=\"sponsored-logo\"\n src={sponsoredBy?.logo || ''}\n alt={'sponsored-logo'}\n />\n </>\n ) : (\n f('articlePage.sponsoredContent')\n )}\n </Text>\n ) : (\n <Text size=\"p2\" color=\"#737373\">\n {f('articlePage.sponsoredArticle')}\n <div className=\"sticky-sponsored-info-icon\">\n {!isAmp ? (\n <img\n src={InfoLightIcon}\n style={{\n width: 20,\n height: 20,\n verticalAlign: 'middle',\n marginLeft: '0.3rem',\n marginBottom: '0.1rem',\n }}\n />\n ) : (\n <amp-img\n height=\"20\"\n width=\"20\"\n style={{\n verticalAlign: 'middle',\n marginLeft: '0.3rem',\n marginBottom: '0.1rem',\n }}\n src={InfoLightIcon}\n on=\"tap:sponsored-by.toggleClass(class='open')\"\n tabIndex={0}\n role=\"button\"\n />\n )}\n </div>\n </Text>\n )}\n {showPopup && (!isMobile || !isCollapsed) && !isAmp ? (\n <SponsoredPopup\n sponsoredBy={sponsoredBy}\n isAmp={isAmp}\n onClose={() => setShowPopup(false)}\n locale={locale}\n />\n ) : null}\n </Container>\n </StyledStickySponsoredBy>\n )\n}\n\ntype PopupProps = {\n isAmp: boolean\n onClose?: () => void\n sponsoredBy?: ContentSponsor\n locale?: string\n}\n\nconst SponsoredPopup = ({\n sponsoredBy,\n isAmp,\n onClose,\n locale,\n}: PopupProps) => {\n const sL = locale || 'en-PH' // standardized locale\n const f = useTranslation()\n\n return (\n <StyledStickySponsoredPopup\n data-align-left={sponsoredBy && !!sponsoredBy?.logo}\n data-is-amp={isAmp || undefined}\n id=\"sponsored-by\"\n className={isAmp ? 'amp-sponsored-popup' : undefined}\n >\n <Text\n size=\"p3\"\n style={{\n marginBottom: '1rem',\n }}\n >\n {f('articlePage.sponsoredByStickyPopup.content')}\n </Text>\n <div\n className=\"button-container\"\n onClick={\n ((e: any) => {\n e.stopPropagation()\n }) as () => void\n }\n >\n {/* <div\n {...{ on: \"tap:sponsored-by.toggleClass(class='open')\" }}\n tabIndex={0}\n role=\"button\"\n > */}\n <Button\n size=\"md\"\n color=\"secondary\"\n onClick={onClose}\n isAmp={isAmp}\n on=\"tap:sponsored-by.toggleClass(class='open')\"\n >\n {f('articlePage.sponsoredByStickyPopup.close')}\n </Button>\n {/* </div> */}\n <Button\n size=\"md\"\n onClick={() => {\n window.location.href = `/static${STATIC_PAGES[sL].ADVERTISING_SPONSOR_POLICY}`\n }}\n isAmp={isAmp}\n on={`tap:AMP.navigateTo(url='/static${STATIC_PAGES[sL].ADVERTISING_SPONSOR_POLICY}')`}\n >\n {f('articlePage.sponsoredByStickyPopup.policies')}\n </Button>\n </div>\n </StyledStickySponsoredPopup>\n )\n}\n\nexport { SponsoredBy, StickySponsoredBy, SponsoredPopup }\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nexport const StyledFooter = styled.footer`\n background-color: #1b3250;\n\n .inner {\n padding: 64px 24px 98px 24px;\n ${MediaQueries.mbDown} {\n padding: 64px 0;\n }\n margin: 0 auto;\n //max-width: 1168px;\n\n &[data-type='mini'] {\n padding: 24px 0;\n }\n }\n\n .footer-logo {\n max-width: 132px;\n max-height: 32px;\n margin-bottom: 24px;\n &[data-is-sehat='true'] {\n max-width: 250px;\n }\n\n img {\n object-fit: contain;\n }\n }\n\n .social {\n margin-top: 24px;\n\n ${MediaQueries.mbDown} {\n margin-top: 32px;\n p {\n font-size: 13px;\n }\n }\n\n ${MediaQueries.mbUp} {\n p {\n font-size: 12px;\n }\n }\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n }\n }\n\n .icons {\n margin-top: 12px;\n margin-bottom: 20px;\n > a:not(:last-child) {\n margin-right: 16px;\n }\n\n .social-icon {\n width: 32px;\n height: 32px;\n }\n }\n\n .newsletter {\n > p {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n\n font-size: 14px;\n line-height: 22px;\n\n ${MediaQueries.mbUp} {\n max-width: 380px;\n line-height: 28.5px;\n }\n }\n }\n\n hr {\n height: 1px;\n border: none;\n margin: 16px 0 16px 0;\n ${MediaQueries.mbDown} {\n margin-top: 0px;\n }\n background: ${(props: ThemeProps) => props.theme.colors.neutral500};\n opacity: 0.1;\n outline: none;\n }\n\n .hrMobile {\n ${MediaQueries.mbUp} {\n display: none;\n }\n }\n\n .copyright {\n padding-top: 8px;\n\n ${MediaQueries.mbUp} {\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n justify-content: space-between;\n }\n\n .copyright-content {\n width: 90%;\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n font-size: 12px;\n }\n\n .copyright-image {\n width: 10%;\n align-self: flex-start;\n\n img {\n max-width: 100px;\n margin-bottom: 16px;\n\n ${MediaQueries.mbUp} {\n margin-bottom: 0px;\n }\n }\n }\n\n &[data-is-amp='true'] {\n img {\n margin-bottom: 0;\n }\n }\n }\n\n .copyright-certificate {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n ${MediaQueries.mbDown} {\n font-size: 11px;\n }\n ${MediaQueries.mbUp} {\n font-size: 12px;\n }\n }\n\n .biglinks {\n margin-bottom: 12px;\n }\n\n .bigLink {\n display: block;\n color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: 14px;\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n text-decoration: none;\n word-break: break-word;\n\n &:not(:last-child) {\n margin-bottom: 12px;\n }\n\n ${MediaQueries.mbDown} {\n display: inline-block;\n width: 50%;\n font-size: 16px;\n }\n }\n\n .mHalf {\n display: inline-block;\n width: 50%;\n padding-right: 24px;\n margin-bottom: 24px;\n vertical-align: top;\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n\n ${MediaQueries.mbDown} {\n margin-bottom: 8px;\n font-size: 13px;\n line-height: 20px;\n }\n ${MediaQueries.mbUp} {\n margin-bottom: 12px;\n font-size: 14px;\n }\n }\n }\n\n .otherSites {\n p {\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n font-size: 12px;\n ${MediaQueries.mbDown} {\n font-size: 13px;\n }\n ${MediaQueries.mbUp} {\n font-size: 13px;\n }\n }\n\n .flags {\n display: flex;\n margin-bottom: 8px;\n\n div {\n margin-right: 10px;\n }\n }\n }\n\n .link {\n display: block;\n text-decoration: none;\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.white};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n word-break: break-word;\n }\n\n &:not(:last-child) {\n margin-bottom: 12px;\n }\n }\n\n .columns {\n ${MediaQueries.mbUp} {\n display: flex;\n flex-direction: row;\n width: 100%;\n\n > div:nth-child(1) {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n flex-basis: 40%;\n }\n\n > div:nth-child(2) {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n flex-basis: 60%;\n\n > div:nth-child(1) {\n flex-basis: 45%;\n }\n\n > div:not(:last-child) {\n flex-basis: 27.5%;\n }\n\n > div:last-child() {\n flex-basis: 0;\n }\n }\n }\n }\n\n .signupButton {\n display: none;\n border: none;\n margin-top: 16px;\n outline: none;\n text-transform: uppercase;\n }\n`\nexport const StyledFlag = styled.div`\n width: 32px;\n height: 32px;\n margin-right: 10px;\n\n &[data-is-mobile='true'] {\n width: 24px;\n height: 24px;\n }\n\n .country-flag {\n width: 100%;\n height: 100%;\n }\n`\n","import React from 'react'\n\nimport { Button } from 'components/atoms/button'\nimport { Container } from 'components/atoms/container'\nimport { Text } from 'components/atoms/text'\nimport { domainLocales } from 'interfaces/constants'\nimport { LocaleType, FooterInfo } from 'interfaces/types'\nimport { theme } from 'misc/theme'\nimport { useTranslations } from 'src/hooks/useTranslations'\n\nimport { StyledFooter, StyledFlag } from './index.styled'\n\nexport type Props = {\n className?: string\n isMobile: boolean\n type?: 'main' | 'mini'\n footerInfo?: FooterInfo\n locale: LocaleType\n isAmp: boolean\n}\n\ntype IItem = {\n title: string\n url: string\n}\n\ntype ISocial = {\n icon: string\n name: string\n url: string\n}\n\ntype IBranch = {\n flag: string\n name: string\n url: string\n}\n\ntype FlagProps = {\n url: string\n isMobile?: boolean\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n}\n\nconst Flag = ({\n url,\n isMobile,\n dataEventCategory,\n dataEventAction,\n dataEventLabel,\n}: FlagProps) => {\n return (\n <StyledFlag data-is-mobile={isMobile}>\n <img\n className=\"country-flag\"\n src={url}\n alt=\"Country Flag\"\n data-event-category={dataEventCategory}\n data-event-action={dataEventAction}\n data-content-label={dataEventLabel}\n />\n </StyledFlag>\n )\n}\n\nconst DiscoverFooter = ({\n className,\n type = 'main',\n footerInfo,\n isMobile,\n locale,\n isAmp,\n}: Props) => {\n const { t } = useTranslations()\n\n const footerMenu = footerInfo?.menu\n\n return (\n <StyledFooter\n as={isAmp && type === 'mini' ? 'div' : 'footer'}\n className={className}\n style={\n type === 'mini'\n ? {\n backgroundColor: theme.colors.neutral50,\n }\n : {}\n }\n next-page-hide\n >\n <Container>\n <div className=\"inner\" data-type={type} next-page-hide=\"\">\n {type === 'main' ? (\n <>\n <a href=\"/\">\n {!isAmp ? (\n <img\n className=\"footer-logo\"\n src={footerInfo?.general?.logo}\n alt=\"Logo\"\n data-is-sehat={locale === 'id-ID'}\n />\n ) : footerInfo?.general?.logo ? (\n <amp-img\n src={footerInfo?.general?.logo}\n alt=\"Site logo\"\n width=\"132\"\n height=\"32\"\n style={{\n marginBottom: 24,\n }}\n />\n ) : null}\n </a>\n <div className=\"columns\">\n <div className=\"newsletter\">\n <Text size=\"p1\" type=\"bold\">\n {footerInfo?.general?.content}\n </Text>\n <Button className=\"signupButton\" color=\"primary\" size=\"lg\">\n {t('footer.signUp')}\n </Button>\n <div className=\"social\">\n <Text size=\"sm\" type=\"regular\">\n {footerInfo?.social?.title}\n </Text>\n <div className=\"icons\">\n {footerInfo?.social?.socials?.map(\n (social: ISocial, idx: number) => (\n <a\n key={idx}\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n href={social.url}\n >\n {!isAmp ? (\n <img\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n src={social.icon}\n alt=\"Logo Social\"\n className=\"social-icon\"\n />\n ) : (\n <amp-img\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n src={social.icon}\n alt=\"Logo Social\"\n width=\"32\"\n height=\"32\"\n ></amp-img>\n )}\n </a>\n ),\n )}\n </div>\n <hr className=\"hrMobile\" />\n </div>\n </div>\n <div>\n {footerMenu && (\n <>\n <div className=\"biglinks\">\n {footerMenu[0]?.items?.map(\n (bigLink: IItem, idx: number) => (\n <a\n data-event-category=\"Footer\"\n data-event-action={bigLink.title}\n data-event-label={`https://${domainLocales[locale]}${bigLink.url}`}\n className=\"bigLink\"\n key={idx}\n href={bigLink.url}\n >\n {bigLink.title}\n </a>\n ),\n )}\n </div>\n <hr className=\"hrMobile\" />\n <div className=\"mHalf\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerMenu[1]?.menu_title}\n </Text>\n\n {footerMenu[1]?.items?.map(\n (informationLink: IItem, idx: number) => (\n <a\n data-event-category=\"Footer\"\n data-event-action={informationLink.title}\n data-event-label={`https://${domainLocales[locale]}${informationLink.url}`}\n className=\"link\"\n href={informationLink.url}\n key={idx}\n >\n <Text\n size=\"sm\"\n type=\"regular\"\n dataEventCategory=\"Footer\"\n dataEventAction={informationLink.title}\n dataEventLabel={`https://${domainLocales[locale]}${informationLink.url}`}\n >\n {informationLink.title}\n </Text>\n </a>\n ),\n )}\n </div>\n <div className=\"mHalf\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerMenu[2]?.menu_title}\n </Text>\n\n {footerMenu[2]?.items?.map(\n (hellohealthlink: IItem, idx: number) =>\n hellohealthlink.url && (\n <a\n data-event-category=\"Footer\"\n data-event-action={hellohealthlink.title}\n data-event-label={hellohealthlink.url}\n className=\"link\"\n href={hellohealthlink.url}\n key={idx}\n >\n <Text\n size=\"sm\"\n type=\"regular\"\n dataEventCategory=\"Footer\"\n dataEventAction={hellohealthlink.title}\n dataEventLabel={hellohealthlink.url}\n >\n {hellohealthlink.title}\n </Text>\n </a>\n ),\n )}\n </div>\n </>\n )}\n {!isAmp && (\n <>\n <hr className=\"hrMobile\" />\n <div className=\"otherSites\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerInfo?.branch?.title}\n </Text>\n <div className=\"flags\">\n {footerInfo?.branch?.branch?.map(\n (flagLink: IBranch, idx: number) => (\n <a\n className=\"link\"\n href={flagLink.url}\n key={idx}\n data-event-category=\"Footer\"\n data-event-action={flagLink.name}\n data-event-label={flagLink.url}\n >\n <Flag\n url={flagLink.flag}\n isMobile={isMobile}\n dataEventCategory=\"Footer\"\n dataEventAction={flagLink.name}\n dataEventLabel={flagLink.url}\n />\n </a>\n ),\n )}\n </div>\n </div>\n </>\n )}\n </div>\n </div>\n\n <hr />\n <div className=\"copyright\" data-is-amp={isAmp || undefined}>\n {footerInfo?.general?.verified && (\n <a\n href={footerInfo?.general?.verified[0]?.url}\n className=\"copyright-image\"\n >\n {isAmp ? (\n <amp-img\n src={footerInfo?.general?.verified[0]?.image}\n alt=\"DMCA Icon\"\n width=\"100\"\n height=\"36\"\n ></amp-img>\n ) : (\n <img\n src={footerInfo?.general?.verified[0]?.image}\n alt=\"DMCA Icon\"\n />\n )}\n </a>\n )}\n\n <Text size=\"xs\" type=\"regular\" className=\"copyright-content\">\n {footerInfo?.general?.copyright}\n </Text>\n </div>\n {locale === 'vi-VN' && (\n <Text\n className=\"copyright-certificate\"\n size=\"xs\"\n type=\"regular\"\n color=\"white\"\n >\n Giấy xác nhận cung cấp dịch vụ mạng xã hội trực tuyến số\n 529/GP-BTTTT, HN ngày 03/12/2019\n </Text>\n )}\n </>\n ) : (\n <>\n {footerInfo?.menu && (\n <div className=\"columns\">\n <div className=\"mHalf\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerInfo?.menu[1]?.menu_title}\n </Text>\n\n {footerInfo?.menu[1]?.items?.map(\n (informationLink: IItem) => (\n <a\n className=\"link\"\n href={informationLink.url}\n key={informationLink.title}\n data-list-type=\"Footer\"\n data-content-type=\"Navigate\"\n data-content-topic=\"Information\"\n data-content-title={informationLink.title}\n data-content-id={`https://${domainLocales[locale]}${informationLink.url}`}\n data-event-category=\"Footer\"\n data-event-action={informationLink.title}\n data-event-label={`https://${domainLocales[locale]}${informationLink.url}`}\n >\n <Text\n dataEventCategory=\"Footer\"\n dataEventAction={informationLink.title}\n dataEventLabel={`https://${domainLocales[locale]}${informationLink.url}`}\n size=\"sm\"\n type=\"regular\"\n style={{\n color: theme.colors.gray800,\n }}\n >\n {informationLink.title}\n </Text>\n </a>\n ),\n )}\n </div>\n <div className=\"mHalf\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerInfo?.menu[2]?.menu_title}\n </Text>\n\n {footerInfo?.menu[2]?.items?.map(\n (hellohealthlink: IItem, idx: number) => (\n <a\n className=\"link\"\n href={hellohealthlink.url}\n key={idx}\n data-list-type=\"Footer\"\n data-content-type=\"Navigate\"\n data-content-topic=\"Hello Health\"\n data-content-title={hellohealthlink.title}\n data-content-id={hellohealthlink.url}\n data-event-category=\"Footer\"\n data-event-action={hellohealthlink.title}\n data-event-label={hellohealthlink.url}\n >\n <Text\n size=\"sm\"\n type=\"regular\"\n style={{\n color: theme.colors.gray800,\n }}\n dataEventCategory=\"Footer\"\n dataEventAction={hellohealthlink.title}\n dataEventLabel={hellohealthlink.url}\n >\n {hellohealthlink.title}\n </Text>\n </a>\n ),\n )}\n </div>\n\n {!isAmp && type !== 'mini' && <hr className=\"hrMobile\" />}\n <div className=\"newsletter\">\n <div className=\"social\">\n <Text size=\"sm\" type=\"regular\">\n {footerInfo?.social?.title}\n </Text>\n <div className=\"icons\">\n {footerInfo?.social?.socials?.map(\n (social: ISocial, idx: number) => (\n <a\n key={idx}\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n href={social.url}\n >\n {!isAmp ? (\n <img\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n src={social.icon}\n alt=\"Logo Social\"\n className=\"social-icon\"\n />\n ) : (\n <amp-img\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n src={social.icon}\n alt=\"Logo Social\"\n width=\"32\"\n height=\"32\"\n ></amp-img>\n )}\n </a>\n ),\n )}\n </div>\n </div>\n </div>\n </div>\n )}\n </>\n )}\n </div>\n </Container>\n </StyledFooter>\n )\n}\n\nexport { DiscoverFooter }\n","import React from 'react'\n\nimport { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nconst Heading = ({\n type,\n ...elementProps\n}: {\n type: string\n [elementProps: string]: string | JSX.Element | JSX.Element[] | React.ReactNode\n}) => {\n return React.createElement(type, elementProps)\n}\n\nexport const StyledHeading = styled(Heading)`\n color: var(--text-color, ${(props: ThemeProps) => props.theme.mbColors.dark});\n font-family: Krub;\n font-weight: 600;\n letter-spacing: -0.2px;\n\n &[data-type='headline-1'] {\n font-size: 40px;\n line-height: 60px;\n }\n &[data-type='headline-2'] {\n font-size: 32px;\n line-height: 48px;\n }\n &[data-type='headline-3'] {\n font-size: 24px;\n line-height: 40px;\n }\n &[data-type='headline-4'] {\n font-size: 18px;\n line-height: 32px;\n }\n`\n\nexport const StyledText = styled.p`\n color: var(--text-color, ${(props: ThemeProps) => props.theme.mbColors.dark});\n letter-spacing: -0.2px;\n\n &[data-type='subtitle-1'] {\n font-size: 16px;\n font-weight: 600;\n line-height: 26px;\n }\n &[data-type='subtitle-2'] {\n font-size: 14px;\n font-weight: 500;\n line-height: 24px;\n }\n &[data-type='subtitle-3'] {\n font-size: 12px;\n font-weight: 500;\n line-height: 20px;\n }\n &[data-type='bodytext-1'] {\n font-size: 16px;\n font-weight: 400;\n line-height: 28px;\n }\n &[data-type='bodytext-2'] {\n font-size: 14px;\n font-weight: 400;\n line-height: 24px;\n }\n &[data-type='bodytext-3'] {\n font-size: 12px;\n font-weight: 400;\n line-height: 20px;\n }\n &[data-type='caption-1'] {\n font-size: 10px;\n font-weight: 500;\n letter-spacing: -0.1px;\n line-height: 14px;\n }\n &[data-type='caption-2'] {\n font-size: 10px;\n font-weight: 400;\n letter-spacing: -0.1px;\n line-height: 14px;\n }\n`\n","import React from 'react'\n\nimport { CSSProperties } from 'styled-components'\n\nimport { StyledHeading, StyledText } from './index.styled'\n\ntype HeadingProps = {\n type: 'h1' | 'h2' | 'h3' | 'h4'\n color?: string\n style?: CSSProperties\n [x: string]: string | JSX.Element | JSX.Element[] | React.ReactNode\n}\n\nconst MarryBabyHeading = ({ type, color, style, ...props }: HeadingProps) => {\n const DATATYPE = {\n h1: 'headline-1',\n h2: 'headline-2',\n h3: 'headline-3',\n h4: 'headline-4',\n }\n\n return (\n <StyledHeading\n type={type}\n data-type={DATATYPE[type]}\n style={{ ...(color && { '--text-color': color }), ...style }}\n {...props}\n />\n )\n}\n\ntype TextProps = {\n type:\n | 'subtitle-1'\n | 'subtitle-2'\n | 'subtitle-3'\n | 'bodytext-1'\n | 'bodytext-2'\n | 'bodytext-3'\n | 'caption-1'\n | 'caption-2'\n color?: string\n style?: CSSProperties\n [x: string]: string | JSX.Element | JSX.Element[] | React.ReactNode\n}\n\nconst MarryBabyText = ({ type, color, style, ...props }: TextProps) => {\n return (\n <StyledText\n data-type={type}\n style={{ ...style, ...(color && { '--text-color': color }) }}\n {...props}\n />\n )\n}\n\nexport { MarryBabyHeading, MarryBabyText }\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nexport const StyledFooter = styled.footer`\n position: relative;\n background: ${(props: ThemeProps) => props.theme.mbColors.lightGray};\n\n .inner {\n padding: 64px 24px 98px 24px;\n ${MediaQueries.mbDown} {\n padding: 64px 0;\n }\n margin: 0 auto;\n //max-width: 1168px;\n\n &[data-type='mini'] {\n padding: 0;\n }\n }\n\n .footer-logo {\n max-width: 132px;\n margin-bottom: 24px;\n }\n\n .social {\n margin-top: 24px;\n\n ${MediaQueries.mbDown} {\n margin-top: 32px;\n }\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.white};\n }\n }\n\n .icons {\n margin-top: 12px;\n margin-bottom: 20px;\n > a:not(:last-child) {\n margin-right: 16px;\n }\n }\n\n .newsletter {\n > p {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n\n font-size: 14px;\n line-height: 22px;\n\n ${MediaQueries.mbUp} {\n max-width: 380px;\n font-size: 19px;\n line-height: 28.5px;\n }\n }\n }\n\n hr {\n height: 1px;\n border: none;\n margin: 16px 0 16px 0;\n ${MediaQueries.mbDown} {\n margin-top: 0px;\n }\n background: ${(props: ThemeProps) => props.theme.colors.neutral500};\n opacity: 0.1;\n outline: none;\n }\n\n .hrMobile {\n ${MediaQueries.mbUp} {\n display: none;\n }\n }\n\n .copyright {\n padding-top: 8px;\n\n ${MediaQueries.mbUp} {\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n justify-content: space-between;\n }\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.white};\n }\n\n img {\n max-width: 100px;\n margin-bottom: 16px;\n\n ${MediaQueries.mbUp} {\n margin-bottom: 0px;\n }\n }\n\n &[data-is-amp='true'] {\n img {\n margin-bottom: 0;\n }\n }\n }\n\n .biglinks {\n margin-bottom: 12px;\n }\n\n .bigLink {\n display: block;\n color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: 19px;\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n text-decoration: none;\n\n &:not(:last-child) {\n margin-bottom: 12px;\n }\n\n ${MediaQueries.mbDown} {\n display: inline-block;\n width: 50%;\n font-size: 16px;\n }\n }\n\n .mHalf {\n display: inline-block;\n width: 50%;\n padding-right: 24px;\n margin-bottom: 24px;\n vertical-align: top;\n\n p {\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n }\n\n ${MediaQueries.mbDown} {\n margin-bottom: 8px;\n }\n }\n\n .otherSites {\n p {\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n }\n\n .flags {\n display: flex;\n margin-bottom: 8px;\n\n div {\n margin-right: 10px;\n }\n }\n }\n\n .link {\n display: block;\n text-decoration: none;\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.white};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n\n &:not(:last-child) {\n margin-bottom: 12px;\n }\n }\n\n .columns {\n ${MediaQueries.mbUp} {\n display: flex;\n flex-direction: row;\n width: 100%;\n\n > div:nth-child(1) {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n flex-basis: 40%;\n }\n\n > div:nth-child(2) {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n flex-basis: 60%;\n\n > div:nth-child(1) {\n flex-basis: 45%;\n }\n\n > div {\n flex-basis: 27.5%;\n }\n\n > div:last-child() {\n flex-basis: 0;\n }\n }\n }\n }\n\n .signupButton {\n display: none;\n border: none;\n margin-top: 16px;\n outline: none;\n text-transform: uppercase;\n }\n`\n\nexport const StyledFooterContainer = styled.div``\n\nexport const StyledMiniFooterContainer = styled.div`\n position: relative;\n overflow: hidden;\n padding: 40px 40px 100px 40px;\n\n .icons-links {\n position: relative;\n display: flex;\n justify-content: space-between;\n }\n`\n\nexport const StyledFooterMenu = styled.div`\n position: relative;\n margin: 80px 0 0;\n\n ${MediaQueries.mbDown} {\n margin-top: 0px;\n overflow: hidden;\n &:before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 150%;\n height: 100%;\n background-color: #f3f3f3;\n content: '';\n transform: translateX(-50%);\n border-radius: 100% 100% 0 0 / 30% 30%;\n }\n }\n`\n\nexport const StyledMenuContainer = styled.div`\n position: relative;\n padding: 0 16px;\n\n ${MediaQueries.mbDown} {\n padding: 48px 8px 0;\n }\n\n & .grid {\n display: flex;\n flex-wrap: wrap;\n margin: -8px;\n\n & > * {\n display: inline-block;\n flex: 0 0 25%;\n padding: 8px;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n text-decoration: none;\n }\n\n ${MediaQueries.mbDown} {\n & > * {\n flex: 0 0 100%;\n text-align: center;\n }\n }\n }\n\n & .social-wrapper {\n margin-left: auto;\n }\n\n & .social {\n ${MediaQueries.mbUp} {\n & .icons-links {\n margin-top: 16px;\n\n & > a:not(:first-child) {\n margin-left: 10%;\n }\n\n & > a {\n text-decoration: none;\n }\n }\n }\n\n ${MediaQueries.mbDown} {\n width: 100%;\n display: flex;\n background: #fff;\n box-shadow: 0px 0px 24px rgba(0, 0, 0, 0.05);\n border-radius: 8px;\n padding: 20px 16px;\n align-items: center;\n max-width: 400px;\n margin: 32px auto 0px;\n\n & > p {\n font-size: 12px;\n line-height: 20px;\n }\n\n & .icons-links {\n margin-left: 8%;\n flex: 1;\n display: inline-flex;\n justify-content: space-between;\n }\n }\n\n & .icons-links {\n & > a {\n & > img {\n width: 24px;\n object-fit: contain;\n }\n }\n }\n }\n`\n\nexport const StyledCompanyInfo = styled.div`\n position: relative;\n\n ${MediaQueries.mbUp} {\n margin: 80px 0 0;\n overflow: hidden;\n &:before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 150%;\n height: 100%;\n background-color: #f3f3f3;\n border-radius: 2150px 2150px 0 0 / 200px 200px 0 0;\n content: '';\n transform: translateX(-50%);\n }\n }\n\n ${MediaQueries.mbDown} {\n background-color: #f3f3f3;\n }\n`\n\nexport const StyledInfoContainer = styled.div`\n position: relative;\n padding: 64px 16px 154px;\n text-align: center;\n\n ${MediaQueries.mbDown} {\n padding: 48px 8px 32px;\n }\n\n & .company-name {\n margin-top: 24px;\n }\n\n .logo {\n justify-content: center;\n }\n\n & .text-info {\n margin-top: 8px;\n > p {\n margin-bottom: 8px;\n }\n ${MediaQueries.mbDown} {\n text-align: left;\n margin-top: 16px;\n }\n }\n\n & .img-container {\n display: flex;\n max-width: 176px;\n height: 24px;\n justify-content: space-between;\n margin: 24px auto 0;\n\n ${MediaQueries.mbDown} {\n height: 32px;\n max-width: unset;\n justify-content: space-around;\n }\n\n img {\n width: unset;\n height: 100%;\n object-fit: contain;\n }\n }\n\n & > hr {\n border-color: ${(props: ThemeProps) => props.theme.mbColors.midGray};\n margin: 64px 0 18px;\n opacity: 0.1;\n }\n\n & .language-and-copyright {\n display: flex;\n justify-content: center;\n\n ${MediaQueries.mbDown} {\n margin-top: 60px;\n }\n\n & #footer-language-select {\n width: 100%;\n max-width: 114px;\n\n &[data-dropdown-open='true'] > div:after {\n transform: translateY(-60%) rotateZ(-180deg);\n }\n\n ${MediaQueries.mbDown} {\n order: 1;\n }\n\n & > div {\n padding: 0;\n\n & > div > svg {\n max-width: 22px;\n margin-right: 8px;\n transform: translateY(1px);\n }\n\n & > span {\n font-size: 12px;\n letter-spacing: -0.2px;\n line-height: 24px;\n }\n }\n\n & > ul[data-has-icons='true'] {\n width: 158px;\n max-width: 158px;\n border: none;\n border-radius: 4px;\n box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.08);\n\n ${MediaQueries.mbDown} {\n margin-top: 0;\n left: unset;\n right: 0;\n top: unset;\n bottom: 32px;\n }\n\n & li {\n font-size: 12px;\n letter-spacing: -0.2px;\n line-height: 24px;\n\n & > div {\n max-width: 22px;\n & svg {\n width: 22px;\n max-width: 22px;\n transform: translateY(3px);\n }\n }\n }\n }\n }\n\n & > p {\n color: ${(props: ThemeProps) => props.theme.mbColors.midGray};\n }\n }\n`\n\nexport const StyledRoundDecorator = styled.div`\n position: absolute;\n top: 0;\n right: -50%;\n width: 400px;\n height: 400px;\n background-color: #f2fcf7;\n border-radius: 50%;\n`\n","import React from 'react'\n\nimport { FacebookIcon, YoutubeIcon, InstagramIcon, ZaloIcon } from 'assets/svg'\nimport { Container } from 'components/atoms/container'\nimport { Divider } from 'components/atoms/divider'\nimport { Flag } from 'components/atoms/flag'\nimport { Logo } from 'components/atoms/logo'\nimport { TypeProps as LogoType } from 'components/atoms/logo'\nimport { MarryBabyText } from 'components/atoms/marryBabyText'\nimport { useTranslations } from 'hooks/useTranslations'\nimport { LocaleType, MarryBabyFooterInfo } from 'interfaces/types'\nimport { theme } from 'misc/theme'\nimport { CSSProperties } from 'styled-components'\n\nimport {\n StyledFooterContainer,\n StyledFooterMenu,\n StyledCompanyInfo,\n StyledMenuContainer,\n StyledInfoContainer,\n StyledMiniFooterContainer,\n StyledRoundDecorator,\n} from './index.styled'\n\n// type link = {\n// title: string\n// link: string\n// }\n\nexport const MARRY_BABY_DEFAULT_FOOTER = {\n SOCIAL_LINKS: {\n facebookLink: 'https://www.facebook.com/marry.baby.vn',\n // twitterLink,\n instagramLink: 'https://www.instagram.com/marrybaby.vn',\n zaloLink: 'http://zalo.me/806483414530291942',\n // linkedinLink\n youtubeLink: 'https://www.youtube.com/user/marrybabyvn',\n },\n}\n\nexport type Country =\n | 'VN'\n | 'ID'\n | 'TH'\n | 'KH'\n | 'MY'\n | 'MM'\n | 'PH'\n | 'IN'\n | 'TW'\n\nexport type Flag = {\n country: Country\n link: string\n}\n\nexport type Props = {\n // bigLinks: Array<link>\n // informationLinks: Array<link>\n buttonText?: string\n className?: string\n socialLinks?: {\n facebookLink?: string\n twitterLink?: string\n instagramLink?: string\n zaloLink?: string\n linkedinLink?: string\n youtubeLink?: string\n }\n followusText?: string\n copyrightText?: string\n type: 'main' | 'mini'\n logoType?: LogoType\n isMobile: boolean\n flagLinks?: Array<Flag>\n footerMenu?: MarryBabyFooterInfo\n locale: LocaleType\n}\n\nconst MarryBabyFooter = ({\n socialLinks: {\n facebookLink,\n instagramLink,\n zaloLink,\n youtubeLink,\n } = MARRY_BABY_DEFAULT_FOOTER.SOCIAL_LINKS,\n copyrightText,\n logoType = 'marryBaby',\n isMobile,\n footerMenu = [],\n type = 'main',\n}: Props) => {\n const { t } = useTranslations()\n\n return type === 'main' ? (\n <StyledFooterContainer className=\"footer-container\">\n {!isMobile && (\n <div className=\"footer-divider\">\n <Container type=\"marryBaby\">\n <Divider style={{ padding: '0 16px' }} type=\"solid\" />\n </Container>\n </div>\n )}\n\n <StyledFooterMenu>\n <Container type=\"marryBaby\">\n <StyledMenuContainer>\n <div className=\"grid\">\n {(isMobile ? footerMenu?.slice(0, 6) : footerMenu)?.map(\n ({ title, link }, i) => (\n <a\n data-event-category=\"Footer\"\n data-event-action={title}\n data-event-label={`${link}`}\n className=\"link\"\n href={link}\n key={`footer-links-${i}`}\n >\n <MarryBabyText\n color={theme.colors.gray800}\n type=\"subtitle-2\"\n >\n {title}\n </MarryBabyText>\n </a>\n ),\n )}\n\n <div className=\"social-wrapper\">\n <div className=\"social\">\n <MarryBabyText type=\"subtitle-2\">\n {t('footer.followUsText')}\n </MarryBabyText>\n <div className=\"icons-links\">\n {facebookLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Facebook\"\n data-content-label={facebookLink}\n href={facebookLink}\n >\n <img src={FacebookIcon} alt=\"Facebook\" />\n </a>\n )}\n {youtubeLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Youtube\"\n data-event-label={youtubeLink}\n href={youtubeLink}\n >\n <img src={YoutubeIcon} alt=\"Youtube\" />\n </a>\n )}\n {instagramLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Instagram\"\n data-content-label={instagramLink}\n href={instagramLink}\n >\n <img src={InstagramIcon} alt=\"Instagram\" />\n </a>\n )}\n {zaloLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n href={zaloLink}\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Zalo\"\n data-event-label={zaloLink}\n >\n <img src={ZaloIcon} alt=\"Zalo\" />\n </a>\n )}\n </div>\n </div>\n </div>\n </div>\n </StyledMenuContainer>\n </Container>\n </StyledFooterMenu>\n\n <StyledCompanyInfo>\n <Container type=\"marryBaby\">\n <StyledInfoContainer>\n <Logo className=\"logo\" type={logoType as LogoType} width=\"121px\" />\n <MarryBabyText className=\"company-name\" type=\"subtitle-2\">\n {t('footer.info.companyName')}\n </MarryBabyText>\n\n <div className=\"text-info\">\n <MarryBabyText type=\"bodytext-3\">\n {t('footer.info.address')}\n </MarryBabyText>\n <MarryBabyText type=\"bodytext-3\">\n {t('footer.info.license')}\n </MarryBabyText>\n <MarryBabyText type=\"bodytext-3\">\n {t('footer.info.email')}\n </MarryBabyText>\n {/* <MarryBabyText type=\"bodytext-3\">\n {t('footer.info.contentResponsibility')}\n </MarryBabyText> */}\n {/* <MarryBabyText type=\"bodytext-3\">\n {t('footer.info.certificate')}\n </MarryBabyText> */}\n </div>\n\n <div className=\"img-container\">\n <img src=\"/images/dmca_protected.png\" alt=\"DMCA protected\" />\n <a\n href=\"http://online.gov.vn/Home/WebDetails/25055?AspxAutoDetectCookieSupport=1\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <img src=\"/images/mit_registered.png\" alt=\"MIT registered\" />\n </a>\n </div>\n\n {!isMobile && <Divider type=\"solid\" />}\n\n <div className=\"language-and-copyright\">\n {/* <Dropdown\n placeholder=\"Choose language\"\n id=\"footer-language-select\"\n options={languageDropdownOptions}\n value={activeLanguage}\n onChange={onSelectLanguage}\n placeholderIcon={activeLanguage?.icon}\n /> */}\n <MarryBabyText type=\"bodytext-3\">{copyrightText}</MarryBabyText>\n </div>\n </StyledInfoContainer>\n </Container>\n </StyledCompanyInfo>\n </StyledFooterContainer>\n ) : (\n <StyledMiniFooterContainer>\n <StyledRoundDecorator />\n <MarryBabyText\n type=\"subtitle-3\"\n style={\n {\n marginBottom: 24,\n textTransform: 'uppercase',\n fontWeight: theme.sizes.fwSemiBold,\n } as CSSProperties\n }\n color={theme.mbColors.midGray}\n >\n {t('footer.followUsText')}\n </MarryBabyText>\n <div className=\"icons-links\">\n {facebookLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Facebook\"\n data-content-label={facebookLink}\n href={facebookLink}\n >\n {/* <img src=\"/svg/facebook.svg\" alt=\"Facebook\" /> */}\n <svg\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=\"M21 5.75V18.25C21 19.765 19.765 21 18.25 21H15.5V14H17.31C17.565 14 17.78 13.81 17.81 13.56L17.995 12.06C18.015 11.92 17.97 11.775 17.875 11.67C17.78 11.56 17.645 11.5 17.5 11.5H15.5V9.75C15.5 9.2 15.95 8.75 16.5 8.75H17.5C17.775 8.75 18 8.525 18 8.25V6.56C18 6.305 17.8 6.09 17.545 6.065C17.515 6.06 16.81 6 15.915 6C13.715 6 12.5 7.31 12.5 9.685V11.5H10.5C10.225 11.5 10 11.725 10 12V13.5C10 13.775 10.225 14 10.5 14H12.5V21H5.75C4.235 21 3 19.765 3 18.25V5.75C3 4.235 4.235 3 5.75 3H18.25C19.765 3 21 4.235 21 5.75Z\"\n fill=\"url(#paint0_linear)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear\"\n x1=\"12\"\n y1=\"3\"\n x2=\"12\"\n y2=\"21\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#4DABF7\" />\n <stop offset=\"1\" stopColor=\"#2668DA\" />\n </linearGradient>\n </defs>\n </svg>\n </a>\n )}\n {youtubeLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Youtube\"\n data-event-label={youtubeLink}\n href={youtubeLink}\n >\n {/* <img src=\"/svg/youtube.svg\" alt=\"Youtube\" /> */}\n <svg\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.9287 4.25C8.75236 4.25 5.80117 4.47631 4.11719 4.82812C4.1136 4.82907 4.11002 4.83005 4.10645 4.83105C2.83774 5.11535 1.64309 6.02412 1.3916 7.44727L1.39062 7.45312C1.19742 8.60013 1 10.0953 1 12.25C1 14.4006 1.1981 15.8562 1.44238 17.0635C1.70004 18.4446 2.86711 19.3809 4.15527 19.6689C4.16144 19.6707 4.16762 19.6723 4.17383 19.6738C5.93135 20.0201 8.79923 20.25 11.9756 20.25C15.1519 20.25 18.0213 20.0201 19.7793 19.6738C19.7855 19.6723 19.7917 19.6707 19.7979 19.6689C21.0666 19.3847 22.2612 18.4759 22.5127 17.0527C22.5134 17.0492 22.514 17.0456 22.5146 17.042C22.7049 15.8716 22.9514 14.3778 23 12.2197C23.0001 12.2142 23.0001 12.2087 23 12.2031C23 10.0438 22.7529 8.53934 22.5117 7.34766C22.2561 5.96354 21.0877 5.02474 19.7979 4.73633C19.7781 4.73195 19.7583 4.72836 19.7383 4.72559C18.0232 4.48448 15.1056 4.25 11.9287 4.25ZM10.0781 8.50098C10.2633 8.49715 10.4548 8.54095 10.6348 8.64258L14.9365 11.0732C15.662 11.4832 15.662 12.5177 14.9365 12.9277L10.6348 15.3584C9.91527 15.7644 9.01855 15.2502 9.01855 14.4307V9.56934C9.01855 8.95471 9.52252 8.51246 10.0781 8.50098Z\"\n fill=\"#EB3223\"\n />\n </svg>\n </a>\n )}\n {instagramLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Instagram\"\n data-content-label={instagramLink}\n href={instagramLink}\n >\n {/* <img src=\"/svg/instagram.svg\" alt=\"Instagram\" /> */}\n <svg\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=\"M8.25 2.5C5.08319 2.5 2.5 5.08319 2.5 8.25V15.75C2.5 18.9164 5.0831 21.5 8.25 21.5H15.75C18.9165 21.5 21.5 18.9165 21.5 15.75V8.25C21.5 5.0831 18.9164 2.5 15.75 2.5H8.25ZM8.25 4H15.75C18.1056 4 20 5.8939 20 8.25V15.75C20 18.1055 18.1055 20 15.75 20H8.25C5.8939 20 4 18.1056 4 15.75V8.25C4 5.89381 5.89381 4 8.25 4ZM17 6C16.4475 6 16 6.4475 16 7C16 7.5525 16.4475 8 17 8C17.5525 8 18 7.5525 18 7C18 6.4475 17.5525 6 17 6ZM12 7C9.24759 7 7 9.24759 7 12C7 14.7524 9.24759 17 12 17C14.7524 17 17 14.7524 17 12C17 9.24759 14.7524 7 12 7ZM12 8.5C13.9416 8.5 15.5 10.0584 15.5 12C15.5 13.9416 13.9416 15.5 12 15.5C10.0584 15.5 8.5 13.9416 8.5 12C8.5 10.0584 10.0584 8.5 12 8.5Z\"\n fill=\"url(#paint0_radial)\"\n />\n <defs>\n <radialGradient\n id=\"paint0_radial\"\n cx=\"0\"\n cy=\"0\"\n r=\"1\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"translate(0.499995 26) rotate(-47.9508) scale(34.3402 30.014)\"\n >\n <stop offset=\"0.073\" stopColor=\"#EACC7B\" />\n <stop offset=\"0.184\" stopColor=\"#ECAA59\" />\n <stop offset=\"0.307\" stopColor=\"#EF802E\" />\n <stop offset=\"0.358\" stopColor=\"#EF6D3A\" />\n <stop offset=\"0.46\" stopColor=\"#F04B50\" />\n <stop offset=\"0.516\" stopColor=\"#F03E58\" />\n <stop offset=\"0.689\" stopColor=\"#DB359E\" />\n <stop offset=\"0.724\" stopColor=\"#CE37A4\" />\n <stop offset=\"0.789\" stopColor=\"#AC3CB4\" />\n <stop offset=\"0.877\" stopColor=\"#7544CF\" />\n <stop offset=\"0.98\" stopColor=\"#2B4FF2\" />\n </radialGradient>\n </defs>\n </svg>\n </a>\n )}\n {zaloLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n href={zaloLink}\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Zalo\"\n data-event-label={zaloLink}\n >\n <div\n style={{\n height: 24,\n width: 24,\n }}\n >\n <img src=\"/icons/zalo.png\" alt=\"Zalo\" />\n </div>\n </a>\n )}\n </div>\n </StyledMiniFooterContainer>\n )\n}\n\nexport { MarryBabyFooter }\n","var img = \"data:image/png;base64,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\";\n export default img;","import React from 'react'\n\nimport { CSSProperties } from 'styled-components'\n\nimport { Text } from '../text'\nimport { StyledAlert, StyledClose, StyledContent } from './index.styled'\n\nexport type Props = {\n type: 'success' | 'danger' | 'warning' | 'info'\n contentIcon: JSX.Element\n closeIcon: JSX.Element\n text: string\n description?: string\n className?: string\n style?: CSSProperties\n onClose?: () => void\n}\n\nconst Alert = ({\n style,\n onClose,\n text,\n type,\n contentIcon,\n closeIcon,\n className,\n description,\n}: Props) => {\n return (\n <StyledAlert style={style} data-alert-type={type} className={className}>\n <StyledContent>\n <div className=\"icon-title\">\n {contentIcon}\n <Text type=\"bold\" size=\"label1\">\n {text}\n </Text>\n </div>\n <Text type=\"regular\" size=\"p3\">\n {description}\n </Text>\n </StyledContent>\n <StyledClose onClick={onClose}>{closeIcon}</StyledClose>\n </StyledAlert>\n )\n}\n\nexport { Alert }\n","import React from 'react'\n\nexport type AmpNextArticleItem = {\n title: string\n image: string\n link: string\n}\n\nexport type Props = {\n ampNextArticles?: AmpNextArticleItem[]\n}\n\nconst AmpNextPage = ({ ampNextArticles }: Props) => {\n const filteredAmpArticles = ampNextArticles?.filter(Boolean) || []\n if (!filteredAmpArticles?.length) return null\n const customAttribute = { separator: '' }\n return (\n <amp-next-page>\n <script\n type=\"application/json\"\n dangerouslySetInnerHTML={{\n __html: JSON.stringify(\n filteredAmpArticles.map((ampArticle) => ({\n image: ampArticle.image || '',\n title: ampArticle.title ? JSON.stringify(ampArticle.title) : '',\n url: ampArticle.link || '',\n })),\n ),\n }}\n ></script>\n <div\n {...customAttribute}\n className=\"amp-page-seperator\"\n style={{\n color: '#8C8C8C',\n textTransform: 'uppercase',\n fontSize: 11,\n fontWeight: 700,\n marginLeft: 16,\n }}\n >\n Next article:\n </div>\n </amp-next-page>\n )\n}\n\nexport { AmpNextPage }\n","import React from 'react'\n\nimport { StyledBadge } from './index.styled'\n\nexport type NotificationType = 'dot' | 'numeric'\nexport type NotificationSize = 'medium' | 'large'\nexport type NotificationColor = 'primary' | 'error'\n\nexport type Props = {\n icon: JSX.Element\n type: NotificationType\n size?: NotificationSize\n color?: NotificationColor\n className?: string\n amount?: number | string | JSX.Element\n}\n\nconst Badge = ({\n amount,\n type,\n size = 'medium',\n color = 'primary',\n icon,\n className,\n}: Props) => {\n return (\n <StyledBadge\n data-notification-type={type}\n data-notification-size={size}\n data-notification-color={color}\n data-has-icon={!!icon || undefined}\n notificationType={type}\n notificationSize={size}\n notificationColor={color}\n hasIcon={!!icon}\n className={className}\n >\n <div>\n {amount && <span>{amount}</span>} {icon && <div>{icon}</div>}\n </div>\n </StyledBadge>\n )\n}\n\nexport { Badge }\n","import React, { ReactNode } from 'react'\n\nimport { TextType } from '../text'\nimport { StyledBorderHeading } from './index.styled'\n\nexport type Props = {\n children: ReactNode\n className?: string\n size?: 'sm' | 'md' | 'lg'\n type?: TextType\n upperCase?: boolean\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\n color?: string\n style?: React.CSSProperties\n}\n\nconst BorderHeading = ({\n style,\n children,\n className,\n size = 'lg',\n type = 'bold',\n upperCase,\n as = 'h4',\n color,\n}: Props) => (\n <StyledBorderHeading\n style={{ color, ...style }}\n className={className}\n data-size={size}\n data-type={type}\n data-uppercase={upperCase}\n as={as}\n >\n {children}\n </StyledBorderHeading>\n)\n\nexport { BorderHeading }\n","import React, { ReactElement } from 'react'\n\nimport { CSSProperties } from 'styled-components'\n\nimport { Text } from '../../atoms/text'\nimport { StyledCategoryCard } from './index.styled'\n\nexport type Props = {\n imgBanner: ReactElement\n label: string\n href?: string\n className?: string\n style?: CSSProperties\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n}\n\nexport const CategoryCard = ({\n imgBanner,\n label,\n className,\n style,\n href = '',\n dataEventCategory,\n dataEventAction,\n dataEventLabel,\n}: Props) => {\n return (\n <StyledCategoryCard\n data-event-category={dataEventCategory}\n data-event-action={dataEventAction}\n data-event-label={dataEventLabel}\n className={className}\n style={style}\n href={href}\n onClick={(e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => {\n if (href === '') {\n e.preventDefault()\n }\n }}\n >\n <div className=\"banner\">{imgBanner}</div>\n <div className=\"content\">\n <Text className=\"category_name\" size=\"sm\" type=\"bold\">\n {label}\n </Text>\n </div>\n </StyledCategoryCard>\n )\n}\n","import React from 'react'\n\nimport { Checkbox } from '../../atoms/checkbox'\nimport { StyledCheckboxGroup } from './index.styled'\n\nexport type Props = {\n type: 'vertical' | 'horizontal'\n options: Array<{\n label: string\n value: string\n disabled?: boolean\n }>\n values?: Array<string>\n onChanges?: (v: Array<string>) => void\n name: string\n className?: string\n isDisabled?: boolean\n isRectangle?: boolean\n}\n\nconst CheckboxGroup = ({\n name,\n values = [],\n onChanges,\n options = [],\n className,\n type = 'vertical',\n isDisabled,\n isRectangle,\n}: Props) => {\n const onChange = (value: string, checked: boolean) => {\n const newValues = values.slice()\n if (checked) {\n newValues.push(value)\n } else {\n const removeIndex = newValues.findIndex((item) => item === value)\n newValues.splice(removeIndex, 1)\n }\n if (onChanges) {\n onChanges(newValues)\n }\n }\n\n return (\n <StyledCheckboxGroup\n className={className}\n data-type={type}\n data-is-rectangle={isRectangle || undefined}\n >\n {options.map((option, index) => (\n <Checkbox\n label={option.label}\n name={name}\n key={`${index}-${option.value}`}\n checked={values.includes(option.value)}\n value={option.value}\n isDisabled={isDisabled || option.disabled}\n onChange={!isDisabled && onChange}\n isRectangle={isRectangle}\n />\n ))}\n </StyledCheckboxGroup>\n )\n}\n\nexport { CheckboxGroup }\n","import React from 'react'\n\nimport {\n StyledAcceptCardContainer,\n StyledTitleSection,\n StyledDescription,\n StyledButtonGroup,\n StyledAcceptButton,\n StyledPoliciesButton,\n} from './index.styled'\n\nexport type CookieAcceptConfirmProps = {\n isOpen?: boolean\n theme?: 'helloSites' | 'marryBaby'\n className?: string\n title?: string\n description?: string\n policiesUrl?: string\n translations?: {\n acceptButton?: string\n policiesButton?: string\n }\n onAcceptClick?: () => void\n useDefaultPosition?: boolean\n trackingAttributes?: {\n dataEventCategory: string\n dataEventAction: string\n dataEventLabel: string\n }\n}\n\nexport const CookieAcceptConfirm = ({\n className,\n policiesUrl,\n onAcceptClick,\n translations = {\n acceptButton: 'Accept',\n policiesButton: 'Our Policies',\n },\n title = '',\n description = '',\n theme = 'helloSites',\n isOpen = true,\n useDefaultPosition = true,\n trackingAttributes,\n}: CookieAcceptConfirmProps) => {\n return (\n <StyledAcceptCardContainer\n className={className}\n data-theme={theme}\n data-is-open={isOpen}\n data-default-position={useDefaultPosition}\n >\n <StyledTitleSection data-has-content={!!title}>\n {title}\n </StyledTitleSection>\n <StyledDescription dangerouslySetInnerHTML={{\n __html: description,\n }} />\n <StyledButtonGroup>\n <StyledAcceptButton\n role=\"button\"\n tabIndex={0}\n on=\"tap:consent-element.accept\"\n onClick={onAcceptClick}\n data-event-category={trackingAttributes?.dataEventCategory}\n data-event-action={trackingAttributes?.dataEventAction}\n data-event-label={trackingAttributes?.dataEventLabel}\n >\n {translations.acceptButton}\n </StyledAcceptButton>\n <StyledPoliciesButton href={policiesUrl}>\n {translations.policiesButton}\n </StyledPoliciesButton>\n </StyledButtonGroup>\n </StyledAcceptCardContainer>\n )\n}\n","import React, { useRef, useState } from 'react'\n\nimport { CSSProperties } from 'styled-components'\n\nimport {\n StyledDropdown,\n StyledDropdownName,\n StyledDropdownList,\n StyledDropdownOption,\n StyledIcon,\n} from './index.styled'\n\ntype Option = {\n label: string\n value: string\n type: 'upload' | 'download'\n icon?: JSX.Element\n url?: string\n fileAcceptedType?: string\n multiple?: boolean\n}\n\nexport type Props = {\n options: Array<Option>\n placeholder: string\n id: string\n placeholderIcon?: JSX.Element\n onUploadSelected?: (e: FileList) => void\n value?: Option\n className?: string\n style?: CSSProperties\n}\n\nconst FileDropdown = ({\n className,\n value,\n options,\n onUploadSelected,\n id,\n placeholderIcon,\n placeholder,\n style,\n}: Props) => {\n const [isDropdownOpen, setIsDropdownOpen] = useState(false)\n const showDropdown = () => setIsDropdownOpen(!isDropdownOpen)\n const inputList = useRef(\n options.map((option) => {\n return (\n option.type === 'upload' && (\n <input\n id={'uploader-dropdown-input-' + id + '-' + option.value}\n key={'uploader-dropdown-input-' + id + '-' + option.value}\n accept={option.fileAcceptedType}\n multiple={option.multiple}\n type=\"file\"\n style={{ display: 'none' }}\n onChange={(e) => {\n console.log('change')\n onUploadSelected(e.target.files)\n }}\n />\n )\n )\n }),\n )\n\n const defaultFileIcon = (\n <svg\n id=\"prefix__Layer_1\"\n data-name=\"Layer 1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 12.17 14.83\"\n >\n <defs>\n <clipPath id=\"prefix__clip-path\" transform=\"translate(-1.92 -1.54)\">\n <path fill=\"none\" d=\"M0 .96h16v16H0z\" />\n </clipPath>\n <style>\n {\n '.prefix__cls-3{fill:none;stroke:#595959;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}'\n }\n </style>\n </defs>\n <title>{'File'}</title>\n <g clipPath=\"url(#prefix__clip-path)\">\n <path\n className=\"prefix__cls-3\"\n d=\"M8.67 2.29H4a1.33 1.33 0 00-1.33 1.33v10.67A1.33 1.33 0 004 15.62h8a1.33 1.33 0 001.33-1.33V7z\"\n transform=\"translate(-1.92 -1.54)\"\n />\n <path\n className=\"prefix__cls-3\"\n d=\"M8.67 2.29V7h4.66\"\n transform=\"translate(-1.92 -1.54)\"\n />\n </g>\n </svg>\n )\n\n const downloadIcon = (\n <svg\n id=\"prefix__Layer_1\"\n data-name=\"Layer 1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 13.5 13.5\"\n >\n <defs>\n <style>\n {\n '.prefix__cls-1{fill:none;stroke:#595959;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}'\n }\n </style>\n </defs>\n <title>{'download'}</title>\n <path\n className=\"prefix__cls-1\"\n d=\"M14 11v2.66A1.33 1.33 0 0112.67 15H3.33A1.33 1.33 0 012 13.62V11M4.67 7.62L8 11l3.33-3.34M8 11V3\"\n transform=\"translate(-1.25 -2.21)\"\n />\n </svg>\n )\n\n const uploadIcon = (\n <svg\n id=\"prefix__Layer_1\"\n data-name=\"Layer 1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 13.5 13.5\"\n >\n <defs>\n <style>\n {\n '.prefix__cls-1{fill:none;stroke:#595959;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}'\n }\n </style>\n </defs>\n <title>{'upload'}</title>\n <path\n className=\"prefix__cls-1\"\n d=\"M14 11v2.66A1.33 1.33 0 0112.67 15H3.33A1.33 1.33 0 012 13.62V11M11.33 6.29L8 3 4.67 6.29M8 3v8\"\n transform=\"translate(-1.25 -2.21)\"\n />\n </svg>\n )\n\n const onUpload = (dropdownId: string) => {\n ;(document.querySelector(dropdownId) as HTMLElement)?.click()\n }\n\n const onDownload = (url: string) => {\n url && window.open(url, '_blank')\n }\n\n return (\n <StyledDropdown\n className={className}\n data-dropdown-open={!!isDropdownOpen}\n id={id}\n data-has-icons\n style={style}\n onBlur={() => setIsDropdownOpen(false)}\n tabIndex={0}\n >\n <StyledDropdownName onClick={showDropdown}>\n {placeholderIcon || defaultFileIcon}{' '}\n <span>{value && value.value ? value.label : placeholder}</span>\n </StyledDropdownName>\n\n {isDropdownOpen && (\n <StyledDropdownList onClick={showDropdown} data-has-icons>\n {options.map((option) => (\n <StyledDropdownOption\n key={`${id}-${option.value}`}\n data-selected={\n (value && value.value === option.value) || undefined\n }\n onClick={() =>\n option.type === 'upload'\n ? onUpload(\n '#uploader-dropdown-input-' + id + '-' + option.value,\n )\n : onDownload(option.url)\n }\n >\n <StyledIcon>\n {option.icon || option.type === 'download'\n ? downloadIcon\n : uploadIcon}\n </StyledIcon>\n {option.label}\n </StyledDropdownOption>\n ))}\n </StyledDropdownList>\n )}\n <>{inputList.current}</>\n </StyledDropdown>\n )\n}\n\nexport { FileDropdown }\n","import React, { useEffect, useState } from 'react'\n\nimport { CSSProperties } from 'styled-components'\n\nimport {\n StyledFloatButtonGroup,\n StyledFloatButtonGroupBackgroundPanel,\n StyledFloatButtonGroupButton,\n StyledFloatButtonGroupButtonIcon,\n StyledFloatButtonGroupButtonLabel,\n StyledFloatButtonGroupContent,\n StyledFloatButtonGroupItemsWrapper,\n StyledFloatButtonGroupToggleIcon,\n TRANSITION_TIMING,\n} from './index.styled'\n\ntype Item = {\n value?: string | number\n label: string\n icon: JSX.Element\n onClick: () => void\n keepMenuOnClick?: boolean\n}\n\nexport type FloatButtonGroupType = {\n items: Item[]\n className?: string\n style?: CSSProperties\n backgroundPanelStyle?: CSSProperties\n isOpen?: boolean\n onOpen?: () => void\n onClose?: () => void\n disableBackdropClick?: boolean\n siteType?: 'hb' | 'mb'\n animationType?: 'zoom' | 'slide' | 'scale'\n zIndex?: number\n}\n\nexport const FloatButtonGroup = ({\n items,\n className,\n style,\n backgroundPanelStyle,\n isOpen: isOpenProp,\n onOpen,\n onClose,\n disableBackdropClick,\n siteType = 'hb',\n animationType = 'zoom',\n zIndex = 300,\n}: FloatButtonGroupType) => {\n const [isOpen, setIsOpen] = useState<boolean>(!!isOpenProp)\n\n useEffect(() => {\n setIsOpen(!!isOpenProp)\n }, [isOpenProp])\n\n const handleOpen = () => {\n setIsOpen(true)\n if (onOpen) {\n onOpen()\n }\n }\n\n const handleClose = () => {\n setIsOpen(false)\n if (onClose) {\n onClose()\n }\n }\n\n return (\n <StyledFloatButtonGroup\n style={style}\n className={className}\n data-floatmenu-open={isOpen}\n data-site-type={siteType}\n data-animation-type={animationType}\n >\n <StyledFloatButtonGroupBackgroundPanel\n className=\"float-button-group__panel\"\n style={{ zIndex, ...backgroundPanelStyle }}\n onClick={!disableBackdropClick ? handleClose : undefined}\n />\n <StyledFloatButtonGroupContent\n className=\"float-button-group___content\"\n style={{ zIndex }}\n >\n <StyledFloatButtonGroupItemsWrapper>\n {items.map((item, index) => {\n return (\n <StyledFloatButtonGroupButton\n className={`float-item-button-${index}`}\n style={{\n ...(animationType === 'zoom' && {\n bottom: (items.length - 1 - index) * (48 + 16),\n transitionDelay: `${\n (TRANSITION_TIMING / items.length) *\n (isOpen ? items.length - 1 - index : index)\n }ms`,\n }),\n ...(animationType === 'slide' && {\n bottom: (items.length - 1 - index) * (48 + 16),\n transitionDelay: `${\n (TRANSITION_TIMING / items.length) *\n (!isOpen ? items.length - 1 - index : index)\n }ms`,\n }),\n }}\n key={index}\n onClick={() => {\n item.onClick()\n if (!item.keepMenuOnClick) {\n setIsOpen(false)\n }\n }}\n >\n <StyledFloatButtonGroupButtonLabel\n style={{\n ...(animationType === 'zoom' && {\n transitionDelay: `${\n (TRANSITION_TIMING / items.length) *\n (isOpen ? items.length - 1 - index : index)\n }ms`,\n }),\n }}\n >\n {item.label}\n </StyledFloatButtonGroupButtonLabel>\n <StyledFloatButtonGroupButtonIcon\n className=\"float-item-button__icon-wrapper\"\n style={{\n ...((animationType === 'zoom' ||\n animationType === 'slide') && {\n transitionDelay: `${\n (TRANSITION_TIMING / items.length) *\n (isOpen ? items.length - 1 - index : index)\n }ms`,\n }),\n }}\n >\n {item.icon}\n </StyledFloatButtonGroupButtonIcon>\n </StyledFloatButtonGroupButton>\n )\n })}\n </StyledFloatButtonGroupItemsWrapper>\n\n <StyledFloatButtonGroupToggleIcon\n onClick={isOpen ? handleClose : handleOpen}\n />\n </StyledFloatButtonGroupContent>\n </StyledFloatButtonGroup>\n )\n}\n","import React from 'react'\n\nimport { FooterInfo, LocaleType, MarryBabyFooterInfo } from 'interfaces/types'\n\nimport { DiscoverFooter } from './discoverFooter'\nimport { MarryBabyFooter } from './maryBabyFooter'\n\nexport type Props = {\n type: 'main' | 'mini'\n locale: LocaleType\n basePath: string\n isMobile: boolean\n isAmp: boolean\n footerInfo: FooterInfo | MarryBabyFooterInfo\n} & (\n | {\n siteType: 'marryBaby'\n marryBabySocialLinks?: {\n facebookLink?: string\n twitterLink?: string\n instagramLink?: string\n zaloLink?: string\n linkedinLink?: string\n youtubeLink?: string\n }\n }\n | {\n siteType: 'helloSites'\n }\n)\n\nexport type Flag = {\n country: CountryInitial\n link: string\n}\n\nexport type CountryInitial =\n | 'VN'\n | 'ID'\n | 'TH'\n | 'KH'\n | 'MY'\n | 'MM'\n | 'PH'\n | 'IN'\n | 'TW'\n\nconst Footer = (props: Props) => {\n const { type, isMobile = true, locale, footerInfo, isAmp, siteType } = props\n return siteType === 'helloSites' ? (\n <DiscoverFooter\n isAmp={isAmp}\n isMobile={isMobile}\n type={type}\n locale={locale}\n footerInfo={(footerInfo || {}) as FooterInfo}\n />\n ) : (\n <MarryBabyFooter\n isMobile={isMobile}\n locale={locale}\n footerMenu={(footerInfo || []) as MarryBabyFooterInfo}\n copyrightText={'© 2022 MarryBaby.vn'}\n socialLinks={props.marryBabySocialLinks}\n type={type}\n />\n )\n}\n\nexport { Footer }\n","import React, { CSSProperties, ReactNode } from 'react'\n\nimport { StyledGrid } from './index.styled'\n\ninterface BasicProps {\n children: ReactNode\n alignItems?: 'start' | 'end' | 'center' | 'stretch'\n gap?: string\n className?: string\n justifyChildren?: 'start' | 'center' | 'end' | 'stretch'\n style?: CSSProperties\n}\n\ninterface BasicGrid extends BasicProps {\n columns: number\n columnsDesktop: number\n gridTemplateColumns?: never\n gridTemplateColumnsDesktop?: never\n}\n\ninterface ExtendedGrid extends BasicProps {\n columns?: never\n columnsDesktop?: never\n gridTemplateColumns: string\n gridTemplateColumnsDesktop: string\n}\n\nexport type Props = BasicGrid | ExtendedGrid\n\nconst Grid = ({\n className,\n columns,\n columnsDesktop,\n gridTemplateColumns,\n gridTemplateColumnsDesktop,\n gap,\n children,\n justifyChildren,\n style,\n alignItems,\n}: Props) => {\n return (\n <StyledGrid\n className={className}\n style={style}\n theme={{\n columns,\n columnsDesktop,\n gap,\n justifyChildren,\n gridTemplateColumns,\n gridTemplateColumnsDesktop,\n alignItems,\n }}\n >\n {children}\n </StyledGrid>\n )\n}\n\nexport { Grid }\n","import React, { ReactNode } from 'react'\n\nimport { StyledIconText } from './index.styled'\n\nexport type Props = {\n size: 'lg' | 'md' | 'sm'\n iconPosition: 'left' | 'right'\n children: ReactNode\n icon: JSX.Element\n className?: string\n}\n\nconst IconText = ({\n size,\n iconPosition,\n className,\n children,\n icon: Icon,\n}: Props) => {\n return (\n <StyledIconText\n className={className}\n data-size={size}\n data-icon-position={iconPosition}\n >\n {iconPosition === 'left' && Icon}\n {children}\n {iconPosition === 'right' && Icon}\n </StyledIconText>\n )\n}\n\nexport { IconText }\n","import React from 'react'\n\nimport { Props, NavigationLayout as NavigationLayoutElement } from './index'\nimport { defaultTranslation } from './languages/default'\nimport { NaContext } from './utils'\n\nconst NavigationLayout = (props: Props) => {\n return (\n <NaContext.Provider\n value={{\n translation: props.translation || defaultTranslation,\n }}\n >\n <NavigationLayoutElement {...props} />\n </NaContext.Provider>\n )\n}\n\nexport { NavigationLayout }\n","import React, { CSSProperties } from 'react'\n\nimport { StyledProgress } from './index.styled'\n\nexport type Props = {\n /**\n * percent of progress\n */\n percent: number\n /**\n * extending style\n */\n style?: CSSProperties\n}\n\nconst Progress = ({ percent, style }: Props) => {\n return (\n <StyledProgress\n style={\n {\n '--progress': percent,\n ...style,\n } as CSSProperties\n }\n />\n )\n}\n\nexport { Progress }\n","import React, { useState, useEffect, useCallback } from 'react'\n\nimport { throttle } from 'lodash'\nimport { useId } from 'react-id-generator'\n\nimport {\n StyledTrackContainer,\n StyledStep,\n StyledSlider,\n StyledTrack,\n StyledStepLabel,\n StyledBreadcrumbContainer,\n StyledBreadcrumbWrapper,\n StyledDetailStep,\n StyledDetailStepLabel,\n StyledDetailStepIndicator,\n StyledDetailStepIndicatorExternal,\n StyledDetailStepDescription,\n} from './index.styled'\n\nexport type Props = {\n type: 'breadcrumb' | 'step-track' | 'detail-track'\n numberOfStep: number\n activeStep: number\n labelPrefix: string\n detailSteps?: { text: string; icon: JSX.Element; description: string }[]\n onChange?: (s: number) => void\n className?: string\n isMobile?: boolean\n}\n\nconst ProgressBar = ({\n type,\n numberOfStep,\n activeStep,\n labelPrefix,\n detailSteps,\n className,\n onChange,\n}: Props) => {\n const [trackLength, setTrackLength] = useState(0)\n\n const Track = ({ trackClassName, ...props }: { trackClassName?: string }) => {\n return (\n <StyledTrackContainer {...props} className={trackClassName}>\n <StyledTrack></StyledTrack>\n </StyledTrackContainer>\n )\n }\n\n // step track\n\n const Steps = ({\n trackLength,\n activeStep,\n labelPrefix = 'Step',\n onChange,\n }: {\n trackLength: number\n activeStep: number\n labelPrefix?: string\n onChange: (s: number) => void\n }) => {\n return (\n <>\n {Array.from({ length: numberOfStep }, (v, i) => i).map((_, step) => (\n <StyledStep\n data-is-active={step === activeStep}\n data-label={step}\n style={{ left: (step * trackLength) / (numberOfStep - 1) }}\n onClick={() => {\n onChange && onChange(step)\n }}\n key={step}\n >\n {step + 1}\n <StyledStepLabel data-step-passed={step <= activeStep}>\n {labelPrefix + ' ' + (step + 1)}\n </StyledStepLabel>\n </StyledStep>\n ))}\n </>\n )\n }\n\n const stepTrack = (\n <StyledSlider className={className + ' progress-bar'}>\n <Track />\n <Steps\n trackLength={trackLength}\n activeStep={activeStep}\n labelPrefix={labelPrefix}\n onChange={onChange}\n />\n </StyledSlider>\n )\n\n // breadcrumb\n\n const breadcrumbIcon = (\n <svg\n data-name=\"Layer 1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 5.5 9.5\"\n >\n <title>{'chevron-right'}</title>\n <path\n d=\"M.75 8.75l4-4-4-4\"\n fill=\"none\"\n // stroke=\"#000\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={1.5}\n />\n </svg>\n )\n\n const breadcrumb = (\n <StyledBreadcrumbContainer>\n {detailSteps &&\n Array.from({ length: detailSteps.length }, (v, i) => i).map(\n (_, step_index) => (\n <StyledBreadcrumbWrapper\n key={step_index}\n data-selected={step_index === activeStep}\n onClick={() => {\n onChange && onChange(step_index)\n }}\n >\n {detailSteps[step_index]?.text}{' '}\n {step_index < detailSteps.length - 1 && breadcrumbIcon}\n </StyledBreadcrumbWrapper>\n ),\n )}\n </StyledBreadcrumbContainer>\n )\n\n // detail track\n\n const DetailStepsGroup = ({\n detailSteps,\n activeStep,\n onChange,\n }: {\n detailSteps: { text: string; icon: JSX.Element; description: string }[]\n activeStep: number\n onChange: (s: number) => void\n }) => {\n const idList = useId(detailSteps.length)\n return (\n <>\n {Array.from({ length: detailSteps.length }, (v, i) => i).map(\n (step, step_index) => (\n <StyledDetailStep\n key={idList[step_index]}\n style={{\n left: (100 / detailSteps.length) * step_index + '%',\n width: 100 / detailSteps.length + '%',\n }}\n onClick={() => {\n onChange && onChange(step_index)\n }}\n >\n {detailSteps[step_index].icon ? (\n <StyledDetailStepIndicatorExternal\n onClick={() => {\n onChange && onChange(step_index)\n }}\n >\n {detailSteps[step_index].icon}\n </StyledDetailStepIndicatorExternal>\n ) : (\n <StyledDetailStepIndicator\n data-is-active={step_index === activeStep}\n data-label={step}\n onClick={() => {\n onChange && onChange(step_index)\n }}\n key={step_index}\n >\n {step_index + 1}\n </StyledDetailStepIndicator>\n )}\n <StyledDetailStepLabel\n data-step-passed={step_index < activeStep + 1}\n >\n {detailSteps[step_index].text}\n <StyledDetailStepDescription>\n {detailSteps[step_index].description}\n </StyledDetailStepDescription>\n </StyledDetailStepLabel>\n {step_index < detailSteps.length - 1 && (\n <Track\n data-step-passed={step_index < activeStep}\n trackClassName={'progress-track'}\n data-track-type=\"detail\"\n />\n )}\n </StyledDetailStep>\n ),\n )}\n </>\n )\n }\n\n const detailTrack = (\n <StyledSlider className={className + ' progress-bar'}>\n <DetailStepsGroup\n activeStep={activeStep}\n detailSteps={detailSteps}\n onChange={onChange}\n />\n </StyledSlider>\n )\n\n const resizeTrack = useCallback(\n throttle(() => {\n const progressTrack = document.querySelector(\n '.progress-bar',\n ) as HTMLElement\n\n progressTrack && setTrackLength(progressTrack.offsetWidth)\n }, 1000),\n [],\n )\n\n useEffect(() => {\n const track = document.querySelector('.progress-bar') as HTMLElement\n setTrackLength(track?.offsetWidth)\n\n window.addEventListener('resize', resizeTrack)\n\n return () => {\n window.removeEventListener('resize', resizeTrack)\n }\n }, [])\n\n return (\n (type === 'step-track' && stepTrack) ||\n (type === 'breadcrumb' && breadcrumb) ||\n (type === 'detail-track' && detailTrack)\n )\n}\n\nexport { ProgressBar }\n","import React, { Fragment, useState } from 'react'\n\nimport { Radio } from '../../atoms/radio'\nimport { StyledRadioGroup } from './index.styled'\n\nexport type RadioGroupOption = Array<{\n label: string\n value: string\n renderActivated?: () => JSX.Element\n}>\nexport type Props = {\n type: 'circle' | 'rectangle'\n options: RadioGroupOption\n value?: string\n id: string\n className?: string\n isDisabled?: boolean\n size?: 'small' | 'large'\n direction?: 'vertical' | 'horizontal'\n group?: 'group1' | 'group2'\n onChange?: (v: string) => void\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n}\n\nconst RadioGroup = ({\n id,\n value,\n options,\n className,\n type = 'circle',\n isDisabled,\n size = 'small',\n direction = 'vertical',\n group = 'group1',\n onChange,\n dataEventCategory,\n dataEventAction,\n dataEventLabel,\n}: Props) => {\n const [check, setCheck] = useState(value)\n\n const handleOnChange = (v: string) => {\n setCheck(v)\n onChange && onChange(v)\n }\n\n return (\n <StyledRadioGroup\n className={className}\n data-direction={direction}\n data-group={group}\n >\n {options.map((option) => {\n const checked = check === option.value\n return (\n <Fragment key={`${id}-${option.value}`}>\n <Radio\n type={type}\n size={size}\n label={option.label}\n name={id}\n checked={checked}\n value={option.value}\n isDisabled={isDisabled}\n onChange={!isDisabled && handleOnChange}\n dataEventCategory={dataEventCategory}\n dataEventAction={dataEventAction}\n dataEventLabel={dataEventLabel}\n />\n {checked && option.renderActivated && option.renderActivated()}\n </Fragment>\n )\n })}\n </StyledRadioGroup>\n )\n}\n\nexport { RadioGroup }\n","import React, { CSSProperties, useState } from 'react'\n\nimport { StarHalfIcon, StarEmptyIcon, StarFullIcon } from 'assets/svg'\n\nimport { StyledRateStars } from './index.styled'\n\nexport type Props = {\n /**\n * percent of progress\n */\n star: number\n /**\n * does not show empty stars\n */\n hideEmptyStars?: boolean\n /**\n * total stars\n */\n totalStars?: number\n /**\n * Select star, value from 1 to maximum\n */\n onSelect?: (value: number) => void\n /**\n * starProps\n */\n gap?: number\n size?: number\n style?: CSSProperties\n className?: string\n}\n\n/**\n *\n * Show 5 (or more) stars and allow user vote (optional)\n *\n */\nconst RateStars = ({\n gap = 2,\n size = 24,\n star,\n totalStars = 5,\n onSelect,\n hideEmptyStars,\n style,\n className,\n}: Props) => {\n const numberOfFullStars = Math.floor(star)\n const numberOfHalfStars = star - numberOfFullStars >= 0.5 ? 1 : 0\n const [tempStar, setTempStar] = useState<number | null>(null)\n\n const tempFullStars = tempStar || numberOfFullStars\n const tempHalfStars = tempStar ? 0 : numberOfHalfStars\n\n return (\n <StyledRateStars\n data-selectable={!!onSelect}\n style={\n {\n '--gap': gap,\n '--star-size': size,\n ...style,\n } as CSSProperties\n }\n className={className}\n >\n {Array.from({\n length: hideEmptyStars\n ? numberOfFullStars + numberOfHalfStars\n : totalStars,\n }).map((_, index) => {\n const onMouseOver = () => !!onSelect && setTempStar(index + 1)\n const onMouseLeave = () => !!onSelect && setTempStar(null)\n return index + 1 <= tempFullStars ? (\n <StarFullIcon\n key={index}\n onClick={() => onSelect?.(index + 1)}\n onMouseOver={onMouseOver}\n onMouseLeave={onMouseLeave}\n />\n ) : index + 1 === tempFullStars + tempHalfStars ? (\n <StarHalfIcon\n key={index}\n onClick={() => onSelect?.(index + 1)}\n onMouseOver={onMouseOver}\n onMouseLeave={onMouseLeave}\n />\n ) : (\n <StarEmptyIcon\n key={index}\n onClick={() => onSelect?.(index + 1)}\n onMouseOver={onMouseOver}\n onMouseLeave={onMouseLeave}\n />\n )\n })}\n </StyledRateStars>\n )\n}\n\nexport { RateStars }\n","import React from 'react'\n\nimport {\n domainLocales,\n FAVICONS,\n LOCALE_SPECS,\n} from 'components/organisms/navigationLayout/constants'\nimport parse from 'html-react-parser'\nimport { SiteType } from 'interfaces/types'\nimport { isProduction } from 'src/interfaces/constants'\n\n// import Head from 'next/head'\n// import { useRouter } from 'next/router'\n\nexport type SEOData = {\n currentPage?: number\n totalPages?: number\n SEOTitle?: string\n SEODescription?: string\n SEOImage?: string\n SEOImageWidth?: string | number\n SEOImageHeight?: string | number\n seoType?: 'website' | 'article' | 'profile'\n siteName?: string\n customMetaData?: Array<{\n [key: string]: string\n }>\n isIndexable?: boolean\n openGraph?: {\n title?: string\n description?: string\n image?: string\n imageWidth?: number\n imageHeight?: number\n }\n twitter?: {\n title?: string\n description?: string\n image?: string\n }\n apiMetaData?: string\n schemaData?: string\n hasNoAmp?: boolean\n hasNoCanonical?: boolean\n canonicalUrl?: string\n}\n\nexport type Props = {\n SEOData: SEOData\n isAmp: boolean\n locale: string\n routerPathname: string\n routerQuery: { [key: string]: string }\n nextHead: React.FunctionComponent\n siteType: SiteType\n seoCustom?: boolean\n userId?: string | number\n forcedCanonicalUrl?: string\n}\n\nconst SeoHead = ({\n SEOData = {},\n isAmp = false,\n locale = 'vi-VN',\n routerPathname: pathname,\n routerQuery: query,\n nextHead: Head,\n siteType,\n seoCustom,\n userId,\n forcedCanonicalUrl,\n}: Props) => {\n const {\n totalPages,\n currentPage,\n SEOTitle = '',\n SEODescription = '',\n SEOImage,\n seoType,\n SEOImageWidth,\n SEOImageHeight,\n customMetaData = [],\n isIndexable = true,\n hasNoCanonical = false,\n } = SEOData\n const robotIndex =\n isIndexable && isProduction\n ? 'index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1'\n : 'noindex'\n\n // const { locale = 'vi-VN', pathname, query } = router\n const { NEXT_PUBLIC_BASE_API_URL } = process.env\n\n let newPath = SEOData.canonicalUrl || pathname\n Object.keys(query).forEach((key) => {\n const queryItem = query[key]\n if (queryItem && Array.isArray(queryItem)) {\n newPath = newPath.replace(`[...${key}]`, queryItem.join('/'))\n }\n })\n const sL = locale || 'en-PH' // standardized locale\n const siteUrl =\n siteType === 'helloSites' ? domainLocales[sL] : 'www.marrybaby.vn'\n\n const hasSlash = newPath.endsWith('/') ? '' : '/'\n\n let metaData: string | JSX.Element | JSX.Element[]\n if (SEOData.apiMetaData && typeof SEOData.apiMetaData === 'string') {\n const paginatedTitle = SEOData.apiMetaData?.match(/<title.*?>(.*)<\\/title>/)\n const paginatedNumber = ` - Page ${currentPage} of ${totalPages}`\n const fD =\n currentPage && currentPage !== 1 && paginatedTitle\n ? SEOData.apiMetaData\n .replace(\n paginatedTitle[0],\n paginatedTitle[0].includes('-')\n ? paginatedTitle[0].replace('-', paginatedNumber + ' - ')\n : `<title>${paginatedTitle[1].concat(paginatedNumber)}</title>`,\n )\n .replace(\n `<link rel=\"canonical\" href=\"https://${siteUrl}${newPath}${hasSlash}\" />`,\n `<link rel=\"canonical\" href=\"https://${siteUrl}${newPath}${hasSlash}?page=${currentPage}\" />`,\n )\n : SEOData.apiMetaData\n metaData = parse(fD, { trim: true })\n const metaDataImage = (metaData as JSX.Element[]).find(\n (data: JSX.Element) =>\n data.props?.property === 'og:image' ||\n data.props?.property === 'og:image:secure_url',\n )\n if (!metaDataImage) {\n const DefaultOgImage = `https://${siteUrl}/images/${locale}.png`\n metaData = [\n ...(metaData as JSX.Element[]),\n <meta\n key={'og:image'}\n property=\"og:image\"\n content={SEOData.openGraph?.image || DefaultOgImage || ''}\n />,\n <meta\n key={'og:image:secure_url'}\n property=\"og:image:secure_url\"\n content={SEOData.openGraph?.image || DefaultOgImage}\n />,\n <meta\n key={'og:image:width'}\n property=\"og:image:width\"\n content={\n (SEOData.openGraph?.imageWidth &&\n String(SEOData.openGraph?.imageWidth)) ||\n '1200'\n }\n />,\n <meta\n key={'og:image:height'}\n property=\"og:image:height\"\n content={\n (SEOData.openGraph?.imageHeight &&\n String(SEOData.openGraph?.imageHeight)) ||\n '630'\n }\n />,\n ]\n }\n }\n\n const defaultImage = `https://${siteUrl}/images/${locale}.png`\n\n return (\n <Head>\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" />\n {siteType === 'marryBaby' && (\n <link\n href=\"https://fonts.googleapis.com/css2?family=Inter&family=Krub:wght@600&display=swap\"\n rel=\"stylesheet\"\n />\n )}\n {locale === 'km-KH' ? (\n <link\n href=\"https://fonts.googleapis.com/css2?family=Battambang:wght@400;700&display=swap\"\n rel=\"stylesheet\"\n ></link>\n ) : locale === 'id-ID' || locale === 'ms-MY' ? (\n <></>\n ) : (\n <link\n href=\"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,600;0,700;0,800;1,300;1,400;1,600;1,700;1,800&display=swap\"\n rel=\"preload\"\n as=\"style\"\n />\n )}\n <link rel=\"preconnect\" href={NEXT_PUBLIC_BASE_API_URL} />\n <meta charSet=\"UTF-8\" />\n {!isAmp && (\n <meta\n name=\"viewport\"\n content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover\"\n />\n )}\n <meta name=\"google\" content=\"notranslate\" />\n <meta name=\"robots\" content={robotIndex} />\n\n <meta property=\"fb:app_id\" content=\"653713035016537\" />\n {customMetaData.map((customMeta, index) => {\n return <meta key={index} {...customMeta} />\n })}\n\n <meta\n name=\"theme-color\"\n content={siteType === 'helloSites' ? '#2c87f3' : '#e85388'}\n />\n <meta name=\"page_type\" content=\"Home\" />\n <meta name=\"page_platform\" content=\"WEB\" />\n <meta name=\"page_language\" content={sL} />\n <meta\n name=\"ahrefs-site-verification\"\n content=\"46e7521a2b89a1013149c4685bbe02a1d36a4732fef98655142b829bc87cba4d\"\n />\n {isAmp && (\n <>\n <script\n async\n custom-element=\"amp-analytics\"\n src=\"https://cdn.ampproject.org/v0/amp-analytics-0.1.js\"\n ></script>\n <script\n async\n custom-element=\"amp-fx-collection\"\n src=\"https://cdn.ampproject.org/v0/amp-fx-collection-0.1.js\"\n ></script>\n <script\n async\n custom-element=\"amp-ad\"\n src=\"https://cdn.ampproject.org/v0/amp-ad-0.1.js\"\n ></script>\n <script\n async\n custom-element=\"amp-next-page\"\n src=\"https://cdn.ampproject.org/v0/amp-next-page-1.0.js\"\n ></script>\n <script\n async\n custom-element=\"amp-sticky-ad\"\n src=\"https://cdn.ampproject.org/v0/amp-sticky-ad-1.0.js\"\n ></script>\n {/* Adding support for sharing in the bottom bar */}\n <script\n async\n custom-element=\"amp-social-share\"\n src=\"https://cdn.ampproject.org/v0/amp-social-share-0.1.js\"\n ></script>\n {/* Adding the AMP state */}\n <script\n async\n custom-element=\"amp-bind\"\n src=\"https://cdn.ampproject.org/v0/amp-bind-0.1.js\"\n ></script>\n </>\n )}\n\n {!metaData && (\n <>\n {siteType === 'helloSites' ? (\n <title>\n {seoCustom\n ? SEOTitle\n : SEOTitle + ' - ' + LOCALE_SPECS[locale]?.SITE_NAME}\n </title>\n ) : (\n <title>{SEOTitle}</title>\n )}\n {!hasNoCanonical && (\n <link rel=\"canonical\" href={`https://${siteUrl}${newPath}`} />\n )}\n <meta\n name=\"description\"\n content={SEODescription || SEOData.openGraph?.description}\n />\n {SEOData.schemaData && (\n <script\n type=\"application/ld+json\"\n className=\"yoast-schema-graph\"\n dangerouslySetInnerHTML={{ __html: SEOData.schemaData }}\n ></script>\n )}\n\n <meta property=\"og:locale\" content={locale} />\n <meta property=\"og:type\" content={seoType || 'website'} />\n <meta\n property=\"og:title\"\n content={SEOData.openGraph?.title || SEOTitle}\n />\n <meta\n property=\"og:description\"\n content={SEOData.openGraph?.description || SEODescription}\n />\n <meta property=\"og:url\" content={`https://${siteUrl}${newPath}`} />\n <meta property=\"og:site_name\" content={`https://${siteUrl}`} />\n <meta\n property=\"og:image\"\n content={SEOData.openGraph?.image || SEOImage || defaultImage || ''}\n />\n <meta\n property=\"og:image:secure_url\"\n content={SEOData.openGraph?.image || SEOImage || defaultImage}\n />\n <meta\n property=\"og:image:width\"\n content={\n (SEOData.openGraph?.imageWidth &&\n String(SEOData.openGraph?.imageWidth)) ||\n (SEOImageWidth && String(SEOImageWidth)) ||\n '1200'\n }\n />\n <meta\n property=\"og:image:height\"\n content={\n (SEOData.openGraph?.imageHeight &&\n String(SEOData.openGraph?.imageHeight)) ||\n (SEOImageHeight && String(SEOImageHeight)) ||\n '630'\n }\n />\n\n <meta name=\"twitter:card\" content=\"summary_large_image\" />\n <meta\n name=\"twitter:title\"\n content={SEOData.twitter?.title || SEOTitle}\n />\n <meta name=\"twitter:description\" content={SEODescription} />\n <meta\n name=\"twitter:image\"\n content={SEOData.twitter?.image || SEOImage}\n />\n </>\n )}\n\n {(siteType === 'helloSites'\n ? FAVICONS[sL] || []\n : FAVICONS.marryBaby\n ).map((item, index) => {\n if (item.type === 'link') {\n return (\n <link\n key={`favicon-${index}`}\n rel={item.rel}\n href={item.href}\n sizes={item.sizes}\n />\n )\n }\n if (item.type === 'meta') {\n return <meta key={index} name={item.name} content={item.content} />\n }\n return null\n })}\n\n {Array.isArray(metaData) && !!forcedCanonicalUrl\n ? metaData.filter(\n (d) => d.props.name !== 'canonical' && d.props.rel !== 'canonical',\n )\n : metaData}\n {forcedCanonicalUrl && <link rel=\"canonical\" href={forcedCanonicalUrl} />}\n {!SEOData.hasNoAmp && locale !== 'vi-VN' && (\n <link\n rel=\"amphtml\"\n href={`https://${siteUrl}${newPath}${hasSlash}?amp=1`}\n />\n )}\n {userId && typeof window !== 'undefined' ? (\n <script\n dangerouslySetInnerHTML={{\n __html: `window.dataLayer = window.dataLayer || []; window.dataLayer.push({'userID': '${userId}'});`,\n }}\n ></script>\n ) : null}\n </Head>\n )\n}\n\nexport { SeoHead }\n","import React, { CSSProperties, ReactNode } from 'react'\n\nimport { StyledShadow } from './index.styled'\n\ntype Props = {\n size: 'small' | 'normal' | 'medium' | 'large' | 'soft'\n children: ReactNode\n className?: string\n style?: CSSProperties\n}\n\nconst Shadow = ({ size, children, style, className }: Props) => {\n return (\n <StyledShadow style={style} className={className} data-shadow-size={size}>\n {children}\n </StyledShadow>\n )\n}\n\nexport { Shadow }\n","import React, { useEffect, useRef, useState } from 'react'\n\nimport { throttle } from 'lodash'\nimport { setCookie } from 'misc/cookieHelper'\n\nimport { CloseWhiteIcon, CloseLightIcon } from '../assets'\nimport { SiteType } from '../types'\nimport {\n StyledSiteWideContainer,\n StyledIcon,\n StyledCloseIconWrapper,\n} from './index.styled'\n\nexport type Props = {\n icon: string\n content: string\n isMobile?: boolean\n isCollapsed?: boolean\n type?: 'article' | 'category' | 'home' | 'other'\n onClose?: () => void\n setBannerClosed?: (v: boolean) => void\n\n dispatch?: (params: any) => void\n dispatchActionType?: string\n cookieName?: string\n isAmp?: boolean\n siteType?: SiteType\n _overrideCloseHandler?: () => void\n\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n dataTracking?: string\n}\n\nconst SiteWide = ({\n icon,\n content,\n isCollapsed,\n isMobile,\n type,\n onClose,\n setBannerClosed,\n\n dispatch,\n dispatchActionType,\n cookieName,\n _overrideCloseHandler,\n isAmp,\n siteType,\n\n dataEventCategory = 'Header Banner',\n dataEventAction = 'Close Click',\n dataEventLabel = '',\n dataTracking = 'true',\n}: Props) => {\n const [isLocalCollapse, setIsLocalCollapse] = useState(false)\n const [isScrollCollapse, setIsScrollCollapse] = useState(false)\n let formattedContent = content\n\n if (isAmp) {\n formattedContent = formattedContent\n .replace('data-event', 'data-vars-event')\n .replace(\n `data-vars-event-category=\"${dataEventCategory}\"`,\n `data-vars-event-category=\"${dataEventCategory}\" data-vars-tracking=\"${dataTracking}\"`,\n )\n }\n const handleCLoseSitewide = () => {\n setIsLocalCollapse(true)\n if (_overrideCloseHandler) _overrideCloseHandler()\n else {\n onClose && onClose()\n cookieName && setCookie(cookieName, 'true')\n if (type && dispatch)\n dispatch({\n type: dispatchActionType,\n payload: {\n type,\n },\n })\n }\n }\n\n const scrollY = useRef<number>(64)\n useEffect(() => {\n const scrolling = throttle(() => {\n if (window.scrollY < scrollY.current) {\n setIsScrollCollapse(false)\n } else if (window.scrollY > 64) {\n setIsScrollCollapse(true)\n }\n\n scrollY.current = window.scrollY\n }, 300)\n\n window.addEventListener('scroll', scrolling)\n return () => {\n window.removeEventListener('scroll', scrolling)\n }\n }, [])\n\n const closeOnAmp = {\n on:\n 'tap:sitewide-container.hide(),site-header.toggleClass(class=\"amp-closed\")',\n }\n const isMarryBaby = siteType === 'marryBaby'\n const closeIcon = isMarryBaby ? CloseLightIcon : CloseWhiteIcon\n\n useEffect(() => {\n setBannerClosed &&\n setBannerClosed(isLocalCollapse || isCollapsed || isScrollCollapse)\n }, [setBannerClosed, isLocalCollapse, isCollapsed, isScrollCollapse])\n\n return (\n <StyledSiteWideContainer\n data-is-mobile={isMobile}\n data-is-collapse={isLocalCollapse || isCollapsed || isScrollCollapse}\n data-is-marrybaby={isMarryBaby}\n >\n {icon ? (\n <StyledIcon data-is-marrybaby={isMarryBaby}>\n {!isAmp ? (\n <img src={icon} className=\"icon\" data-is-mobile={isMobile} />\n ) : (\n <amp-img src={icon} width=\"76\" height=\"52\" />\n )}\n </StyledIcon>\n ) : null}\n {content ? (\n <span\n className=\"content\"\n data-is-marrybaby={isMarryBaby}\n data-is-mobile={isMobile}\n dangerouslySetInnerHTML={{ __html: formattedContent }}\n />\n ) : null}\n\n <StyledCloseIconWrapper\n role=\"button\"\n tabIndex={0}\n {...closeOnAmp}\n data-is-marrybaby={isMarryBaby}\n data-vars-event-category={dataEventCategory}\n data-vars-event-action={dataEventAction}\n data-vars-event-label={dataEventLabel || ''}\n data-vars-tracking={dataTracking || ''}\n className=\"amp-close-banner\"\n onClick={handleCLoseSitewide}\n data-is-mobile={isMobile}\n >\n {isAmp ? (\n <amp-img src={closeIcon} width=\"24\" height=\"24\" />\n ) : (\n <img src={closeIcon} className=\"close-icon\" />\n )}\n </StyledCloseIconWrapper>\n </StyledSiteWideContainer>\n )\n}\n\nexport { SiteWide }\n","import React from 'react'\n\nimport {\n StyledDescriptionWrapper,\n StyledDot,\n StyledStatisticContainer,\n StyledStatisticNumberWrapper,\n} from './index.styled'\n\nexport type Props = {\n type: 'big' | 'small'\n description: string\n value: string | number\n withIcon?: JSX.Element\n isInACard?: boolean\n cardColor?: string\n className?: string\n}\n\nconst StatisticCard = ({\n type,\n description,\n value,\n withIcon,\n isInACard,\n cardColor,\n className,\n}: Props) => {\n return (\n <StyledStatisticContainer\n className={className}\n data-size={type}\n data-is-in-card={type === 'big' && isInACard}\n data-card-color={cardColor}\n >\n <StyledDescriptionWrapper>\n {type === 'small' && <StyledDot data-color={cardColor} />}\n {description}\n </StyledDescriptionWrapper>\n <StyledStatisticNumberWrapper data-size={type}>\n {type !== 'small' && withIcon}\n {value}\n </StyledStatisticNumberWrapper>\n </StyledStatisticContainer>\n )\n}\n\nexport { StatisticCard }\n","import React, { CSSProperties, ReactNode } from 'react'\n\nimport { Heading, Text } from 'components/atoms'\n\nimport {\n StyledSurveyThankyouCard,\n StyledSurveyQuestionCard,\n} from './index.styled'\n\nexport type Props = {\n thankyou?: ReactNode\n thankyouSubtitle?: ReactNode\n className?: string\n style?: CSSProperties\n}\n\nexport const SurveyThankyouCard = ({\n thankyou,\n thankyouSubtitle,\n className,\n style,\n}: Props) => {\n return (\n <StyledSurveyQuestionCard className={className} style={style}>\n <div className=\"survey-inner-wrapper\">\n <StyledSurveyThankyouCard>\n <div className=\"survey-thankyou-wrapper-inner\">\n <svg\n // width=\"122\"\n // height=\"122\"\n viewBox=\"0 0 122 122\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"survey-thankyou-icon\"\n >\n <path\n d=\"M61.5 122C94.6371 122 121.5 95.1371 121.5 62C121.5 28.8629 94.6371 2 61.5 2C28.3629 2 1.5 28.8629 1.5 62C1.5 95.1371 28.3629 122 61.5 122Z\"\n fill=\"#E3F2FF\"\n />\n <ellipse cx=\"61.5\" cy=\"110.36\" rx=\"48\" ry=\"3.36\" fill=\"#91CAFF\" />\n <path\n d=\"M82.9048 72.6663H101.5L87.597 40H35.403L21.5 72.6663H40.0952V91H83.0786L82.9048 72.6663Z\"\n fill=\"#2C74DF\"\n />\n <path\n d=\"M74.4004 15.0005H39.863C36.9017 15.0005 34.5 17.4022 34.5 20.3635V72.5769C34.5 75.5383 36.9017 77.9399 39.863 77.9399H83.1357C86.097 77.9399 88.4987 75.5383 88.4987 72.5769V29.0988L88.4987 21.0005C88.4987 17.6868 85.8124 15.0005 82.4987 15.0005H74.4004Z\"\n fill=\"white\"\n />\n <path\n d=\"M88.8529 80.1077H34.1469C31.8699 80.1077 30.06 78.3036 30.06 76.0338V65.3837C30.06 63.1139 31.8699 61.3098 34.1469 61.3098H88.8529C91.1299 61.3098 92.9398 63.1139 92.9398 65.3837V76.0338C92.9398 78.3036 91.1299 80.1077 88.8529 80.1077Z\"\n fill=\"#E4E8EC\"\n />\n <path\n d=\"M90.838 85.4512H32.1618C29.8849 85.4512 28.075 83.6471 28.075 81.3774V70.7272C28.075 68.4575 29.8849 66.6533 32.1618 66.6533H90.7796C93.0566 66.6533 94.8665 68.4575 94.8665 70.7272V81.3774C94.9249 83.6471 93.0566 85.4512 90.838 85.4512Z\"\n fill=\"white\"\n />\n <path\n d=\"M103.748 75.4919V105.755C103.748 107.675 102.172 109.247 100.245 109.247H23.0031C21.0764 109.247 19.5 107.675 19.5 105.755V75.4919C19.5 73.5713 21.0764 72 23.0031 72H42.3866C44.3133 72 45.8897 73.5713 45.8897 75.4919V80.8461C45.8897 81.1952 46.1232 81.428 46.4735 81.428H76.7749C77.1253 81.428 77.3588 81.1952 77.3588 80.8461V75.4919C77.3588 73.5713 78.9352 72 80.8618 72H100.245C102.172 72 103.748 73.5713 103.748 75.4919Z\"\n fill=\"#45A4FF\"\n />\n <path\n d=\"M51.9541 91.3767V94.4612C51.9541 96.0907 53.2386 97.3711 54.8733 97.3711H67.7179C69.3526 97.3711 70.6371 96.0907 70.6371 94.4612V91.3767\"\n stroke=\"#2C74DF\"\n strokeWidth=\"3\"\n strokeMiterlimit=\"10\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M120.5 38.0251C118.5 37.7793 117.25 39.3768 118.125 41.22L118.375 41.9573C119.125 43.8006 118 45.398 116 45.1523L115.25 45.0294C113.25 44.7836 112 46.3811 112.875 48.2244L113.25 48.9616C114 50.8049 112.875 52.4025 110.875 52.1567L110.125 52.0337C108.625 51.9109 107.5 52.7712 107.5 54\"\n stroke=\"#FE921D\"\n strokeWidth=\"1.9096\"\n strokeMiterlimit=\"10\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M1.53299 62C1.2644 63.413 2.6745 64.337 4.35323 63.8478L5.02472 63.6304C6.70346 63.087 8.11356 64.0109 7.84496 65.4783L7.7107 66.0217C7.4421 67.4348 8.8522 68.3587 10.5309 67.8696L11.2024 67.6522C12.8812 67.1087 14.2913 68.0326 14.0227 69.5L13.8884 70.0435C13.687 71.1304 14.4256 71.8913 15.5 72\"\n stroke=\"#00B16A\"\n strokeWidth=\"2.8751\"\n strokeMiterlimit=\"10\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M118 92C119.381 92 120.5 90.8807 120.5 89.5C120.5 88.1193 119.381 87 118 87C116.619 87 115.5 88.1193 115.5 89.5C115.5 90.8807 116.619 92 118 92Z\"\n stroke=\"#00B16A\"\n strokeWidth=\"2.8751\"\n strokeMiterlimit=\"10\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M82.0001 3.18747L83.1875 7.53467L87.5347 6.34727L86.3473 2.00007L82.0001 3.18747Z\"\n stroke=\"#00B16A\"\n strokeWidth=\"2.1628\"\n strokeMiterlimit=\"10\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M17.0001 28C18.1046 28 19 27.1045 19 25.9999C19 24.8954 18.1046 24 17.0001 24C15.8955 24 15 24.8954 15 25.9999C15 27.1045 15.8955 28 17.0001 28Z\"\n stroke=\"#FE921D\"\n strokeWidth=\"2.3278\"\n strokeMiterlimit=\"10\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M61.5 26.6667C54.136 26.6667 48.1667 32.6361 48.1667 40.0001C48.1667 47.3641 54.136 53.3334 61.5 53.3334C68.864 53.3334 74.8334 47.3641 74.8334 40.0001C74.8334 32.6361 68.864 26.6667 61.5 26.6667ZM69.1094 36.9427L59.776 46.2761C59.516 46.5361 59.1747 46.6667 58.8334 46.6667C58.492 46.6667 58.1507 46.5361 57.8907 46.2761L53.8907 42.2761C53.3694 41.7547 53.3694 40.9121 53.8907 40.3907C54.412 39.8694 55.2547 39.8694 55.776 40.3907L58.8334 43.4481L67.224 35.0574C67.7454 34.5361 68.588 34.5361 69.1094 35.0574C69.6307 35.5787 69.6307 36.4214 69.1094 36.9427Z\"\n fill=\"#00CB8A\"\n />\n </svg>\n {thankyou && (\n <Heading className=\"survey-thankyou-title\" tag=\"h3\">\n {thankyou}\n </Heading>\n )}\n {thankyouSubtitle && (\n <Text className=\"survey-thankyou-subtitle\" size=\"p3\">\n {thankyouSubtitle}\n </Text>\n )}\n </div>\n </StyledSurveyThankyouCard>\n </div>\n </StyledSurveyQuestionCard>\n )\n}\n","import React, { useEffect, useState } from 'react'\n\nimport { Text, TextSize, TextType } from 'components/atoms'\nimport { useId } from 'react-id-generator'\nimport { CSSProperties } from 'styled-components'\n\nimport { theme } from '../../../misc/theme'\nimport {\n StyledTabs,\n StyledTab,\n StyledTabContent,\n StyledIcon,\n} from './index.styled'\n\ntype TabContent = {\n name: string\n icon?: JSX.Element\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n textType?: TextType\n textSize?: TextSize\n textColor?: string\n}\n\nexport type Props = {\n tabContent: Array<TabContent>\n onChange?: (n: number) => void\n className?: string\n initialTab?: number\n style?: CSSProperties\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n}\n\nconst Tabs = ({\n style,\n initialTab,\n tabContent,\n onChange,\n className,\n dataEventCategory,\n dataEventAction,\n dataEventLabel,\n}: Props) => {\n const [activeTab, setActiveTab] = useState(initialTab || 0)\n const idList = useId(tabContent.length)\n\n useEffect(() => {\n setActiveTab(initialTab)\n }, [initialTab])\n\n return (\n <StyledTabs style={style} className={className} role=\"tablist\">\n {tabContent.map((tab, i) => (\n <StyledTab\n data-is-tab-active={activeTab === i || undefined}\n aria-selected={activeTab === i}\n role=\"tab\"\n onClick={() => {\n setActiveTab(i)\n onChange && onChange(i)\n }}\n key={idList[i]}\n data-event-category={dataEventCategory}\n data-event-action={dataEventAction}\n data-event-label={dataEventLabel}\n >\n <StyledTabContent>\n {tab.icon && <StyledIcon>{tab.icon}</StyledIcon>}\n <Text\n size={tab.textSize || 'sm'}\n type={tab.textType || 'bold'}\n color={tab.textColor || theme.colors.gray800}\n dataEventCategory={tab.dataEventCategory}\n dataEventAction={tab.dataEventAction}\n dataEventLabel={tab.dataEventLabel}\n >\n {tab.name}\n </Text>\n </StyledTabContent>\n </StyledTab>\n ))}\n </StyledTabs>\n )\n}\n\nexport { Tabs }\n","import React, { ReactNode, CSSProperties } from 'react'\n\nimport { Text, Props as TextProps } from '../text'\nimport { StyledTag } from './index.styled'\n\nexport type Props = {\n children: ReactNode\n type?:\n | 'standard'\n | 'yellow'\n | 'red'\n | 'green'\n | 'teal'\n | 'blue'\n | 'pink'\n | 'violet'\n | 'grey'\n | 'sponsored'\n isSquared?: boolean\n isLight?: boolean\n isInline?: boolean\n isSelected?: boolean\n hasMorePadding?: boolean\n isLink?: boolean\n className?: string\n style?: CSSProperties\n textProps?: TextProps\n}\n\nconst Tag = ({\n type,\n children,\n style,\n isInline,\n isSquared = false,\n className,\n isLight,\n hasMorePadding,\n isLink,\n isSelected,\n textProps = {\n size: 'sm',\n },\n}: Props) => {\n const textColor = textProps.color\n ? { '--text-props-color': textProps.color }\n : {}\n\n return (\n <StyledTag\n data-is-squared={isSquared || undefined}\n data-tag-type={type}\n data-is-light={isLight || undefined}\n data-has-more-padding={hasMorePadding || undefined}\n data-is-inline={isInline || undefined}\n style={{ ...style, ...textColor } as CSSProperties}\n className={className}\n data-is-selected={isSelected || undefined}\n data-is-link={isLink || undefined}\n tagType={type}\n isInline={isInline}\n tagHasMorePadding={hasMorePadding}\n tagIsLight={isLight}\n tagIsSquared={isSquared}\n tagIsALink={isLink}\n >\n <Text {...textProps}>{children}</Text>\n </StyledTag>\n )\n}\n\nexport { Tag }\n","import React, { CSSProperties } from 'react'\n\nimport {\n StyledToggle,\n StyledToggleIcon,\n StyledToggleLabel,\n} from './index.styled'\n\nexport type Props = {\n id: string\n checked: boolean\n className?: string\n style?: CSSProperties\n label?: string\n onChange?: () => void\n}\n\nconst Toggle = ({ className, id, onChange, checked, style, label }: Props) => (\n <StyledToggle className={className} style={style}>\n <input type=\"checkbox\" id={id} onChange={onChange} checked={checked} />\n <label htmlFor={id}>\n <StyledToggleIcon />\n {label && <StyledToggleLabel>{label}</StyledToggleLabel>}\n </label>\n </StyledToggle>\n)\n\nexport { Toggle }\n","import React, { CSSProperties } from 'react'\n\nimport { StyledUnderlinedLink } from './index.styled'\n\nexport type Props = {\n size: 'lg' | 'md' | 'sm' | 'xm'\n link: JSX.Element\n style?: CSSProperties\n isDisabled?: boolean\n className?: string\n}\n\nconst UnderlinedLink = ({\n size,\n isDisabled,\n className,\n link,\n style,\n}: Props) => (\n <StyledUnderlinedLink\n className={className}\n data-size={size}\n style={style}\n data-disabled={isDisabled || undefined}\n >\n {link}\n </StyledUnderlinedLink>\n)\n\nexport { UnderlinedLink }\n","import React from 'react'\n\nimport { Button } from '../button'\nimport {\n StyledDefaultButtonContent,\n StyledElementContainer,\n StyledIconWrapper,\n StyledUploader,\n} from './index.styled'\n\nexport type Props = {\n type: 'badge' | 'button'\n onFileSelected: (f: FileList) => void\n inputId: string\n withIcon?: JSX.Element\n multiple?: boolean\n fileAcceptType?: string\n withElement?: JSX.Element\n value?: string\n className?: string\n}\n\nconst Uploader = ({\n type,\n withIcon,\n onFileSelected,\n inputId,\n withElement,\n fileAcceptType,\n multiple,\n value,\n className,\n}: Props) => {\n const onClick = () => {\n ;(document.querySelector(\n '#uploader-input-' + inputId,\n ) as HTMLElement)?.click()\n }\n\n const getBadge = () => (\n <StyledElementContainer\n onClick={onClick}\n data-is-attached-to-element={!!withElement}\n >\n {withElement}\n <StyledIconWrapper data-is-attached-to-element={!!withElement}>\n {withIcon}\n </StyledIconWrapper>\n </StyledElementContainer>\n )\n\n const getButton = () =>\n withElement ? (\n <div onClick={onClick}>{withElement}</div>\n ) : (\n <Button\n size=\"md\"\n color=\"secondary\"\n className=\"default-button\"\n icon={withIcon}\n onClick={onClick}\n >\n <StyledDefaultButtonContent>\n <svg\n id=\"prefix__Layer_1\"\n data-name=\"Layer 1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 13.5 13.5\"\n >\n <defs>\n <style>\n {\n '.prefix__cls-1{fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}'\n }\n </style>\n </defs>\n <title>{'upload'}</title>\n <path\n className=\"prefix__cls-1\"\n d=\"M14 10v2.67A1.33 1.33 0 0112.67 14H3.33A1.33 1.33 0 012 12.67V10M11.33 5.33L8 2 4.67 5.33M8 2v8\"\n transform=\"translate(-1.25 -1.25)\"\n />\n </svg>\n {'Upload Image'}\n </StyledDefaultButtonContent>\n </Button>\n )\n\n return (\n <StyledUploader className={className}>\n {type === 'badge' ? getBadge() : getButton()}\n <input\n id={'uploader-input-' + inputId}\n accept={fileAcceptType}\n multiple={multiple}\n type=\"file\"\n style={{ display: 'none' }}\n onChange={(e) => {\n onFileSelected(e.target.files)\n }}\n value={value}\n />\n </StyledUploader>\n )\n}\n\nexport { Uploader }\n"],"names":["RenderPagiWithDots","_a","pagesAmount","activePage","handlePageChange","handleClick","href","_b","queryPageName","pages","__spreadArray","Array","map","__v","i","_c","useState","slice","length","visiblePages","setVisiblePages","useEffect","React","Fragment","createElement","StyledPaginationBlock","onClick","key","concat","undefined","formatUrlWithPageParam","Radio","type","size","label","name","checked","value","className","isDisabled","onChange","dataEventCategory","dataEventAction","dataEventLabel","StyledRadio","id","htmlFor","ThumbLabel","rangeRef","values","index","useThumbOverlap","labelValue","labelStyle","StyledLabel","style","StyledDot","Checkbox","isRectangle","StyledCheckbox","disabled","StarEmptyIcon","props","__assign","viewBox","fill","xmlns","d","width","height","maskUnits","x","y","mask","Icon","Ask","BarChart","Booking","Bookmark","Community","EditSpecial","Family","Font","Heart","Home","Like","MyCommunity","PlusSpecial","Recalculate","Scale","Share","Stethoscope","CardAuthor","avatarImg","authorName","authorLink","uploadTime","StyledAuthor","Text","CardExpert","isMobile","link","specialty","isBookmarked","dataEventActionForBookmark","dataEventLabelForBookmark","Heading","tag","color","theme","colors","gray600","gray500","StyledExpertName","BreadcrumbItem","LinkComponent","page","isLast","onChangePage","isDropdown","dropdownItems","Dropdown","options","placeholder","placeholderIcon","StyledTextLink","title","MONTHS_TRANSLATION","cleanUpModalShow","document","querySelectorAll","body","classList","remove","cleanUpDisabledScroll","overflow","paddingRight","n","require$$0","t","prototype","call","e","Math","floor","Date","now","r","removeAttribute","setAttribute","a","isArray","HTMLElement","NodeList","o","raw","cancelable","defaultPrevented","preventDefault","u","stopPropagation","c","add","addListener","addEventListener","push","input","this","nativeEvent","changedTouches","targetTouches","detail","identifier","idChanged","screenX","pageX","screenY","pageY","purge","forEach","removeListener","removeEventListener","s","min","max","l","getBoundingClientRect","offsetHeight","offsetWidth","f","p","round","v","toString","Object","getOwnPropertyNames","h","current","m","assign","arguments","hasOwnProperty","apply","g","b","w","k","M","T","C","P","E","z","abs","O","indexOf","reduce","origin","rel","I","S","A","L","D","loop","distance","timestamp","_","emit","rtl","portion","maxIdx","minIdx","position","progress","slides","slidesLength","details","absToRel","distToIdx","idxToDist","init","trackConfig","range","track","Number","to","velocity","lastTimestamp","time","pow","mode","dist","dur","duration","easing","earlyExit","rubberband","animator","start","moveToIdx","stop","on","vertical","window","innerHeight","innerWidth","drag","dragSpeed","container","passive","scrollHeight","clientHeight","scrollWidth","clientWidth","scrollTop","scrollLeft","overflowY","overflowX","active","requestAnimationFrame","renderMode","transform","getComputedStyle","getPropertyValue","matches","__media","breakpoints","matchMedia","spacing","setTimeout","selector","destroy","prev","next","update","defaultAnimation","targetIdx","cancelAnimationFrame","initial","console","error","Arrow","isLeft","scheme","StyledArrow","img","StyledCardSkeleton","styled","div","templateObject_1","__makeTemplateObject","StyledContainer","templateObject_2","StyledListContainer","templateObject_3","neutral100","StyledCategoryContainer","templateObject_4","white","sizes","fsParagraph4","blue50","gray800","fwBold","StyledCategory","templateObject_5","StyledCategoryIcon","templateObject_6","StyledCategoryItemAll","templateObject_7","MediaQueries","mbDown","primaryBase","mbColors","pink","StyledImageWrapper","templateObject_8","StyledMenuPopupWrapper","templateObject_9","Z_INDEX","menuCategoryPopupWrapper","StyledMenuPopupContainer","templateObject_10","menuCategoryPopupContainer","neutral50","StyledMenuPopupInner","templateObject_11","StyledHealthCategoriesContainer","templateObject_12","StyledCategoryItem","templateObject_13","fwRegular","StyledSubCategoryItem","templateObject_14","StyledCloseWrapper","templateObject_15","StyledSameLineIndicator","templateObject_16","lightGray","StyledMasterMenuContainer","StyledMenuContainer","StyledCategoryButtonWrapper","StyledScrollingCategories","StyledCardSpecialty","StyledScrollingWrapper","StyledScrollingContent","StyledStickyHeader","StyledButtonContainerWrapper","templateObject_17","templateObject_18","templateObject_19","templateObject_20","templateObject_21","templateObject_22","templateObject_23","StyledUnderLine","templateObject_24","StyledServiceListMenuSearchInputWrapper","templateObject_25","StyledHeaderContainer","header","headerContainerHome","headerContainerPopup","headerContainerPopupSUbLevel","StyledMenuIcon","StyledMenuSearchInput","menuSearchInputPopup","menuSearchInputDisplayIcon","menuSearchPopup","StyledDesktopHeaderWrapper","lightPink","StyledDesktopHeader","StyledLeftGroup","StyledLogoWrapper","StyledDesktopMenuSearchInput","StyledRightGroup","StyledMenuIconWrapper","StyledHeaderMenuItem","secondaryDark","dark","StyledProfileMenu","StyledCloseButton","StyledAmpCategoryCard","StyledAvatar","secondaryBase","SearchIcon","fillRule","clipRule","StyledAmpSidebar","StyledAmpSearchBox","gray200","AmpSidebar","locale","categoriesSSR","healthToolsSSR","spotlightsSSR","serviceUrls","together","care","basePath","searchPlaceholder","useTranslation","layout","maxWidth","paddingBottom","role","tabIndex","stroke","strokeWidth","strokeLinecap","Logo","LOCALE_SPECS","LOGO_TYPE","isAmp","badge","src","SehatBadge","readOnly","DiscoverIcon","HealthToolsIcon","TOGETHER_MENU_COUNTRIES_ENABLED","includes","TOGETHER_URL_FE","CARE_MENU_COUNTRIES_ENABLED","CARE_URL_FE","HelloCareIcon","marginBottom","fontWeight","permalink","displayName","textDecoration","DISCOVER_URL_FE","alt","hidden","category","healthTools","healthtool","icon","StyledFooter","footer","mbUp","neutral500","StyledFlag","Flag","url","Footer","_12","footerInfo","footerMenu","menu","as","backgroundColor","Container","general","logo","_d","_e","content","Button","social","_f","_h","_g","socials","idx","_k","_j","items","bigLink","domainLocales","_l","menu_title","_o","_m","informationLink","_p","_r","_q","hellohealthlink","_s","branch","_t","_u","flagLink","flag","_v","verified","_x","_w","_z","_y","image","_1","_0","_2","copyright","_3","_4","_5","_6","_7","_8","_9","_11","_10","elementProps","__rest","StyledText","MarryBabyText","StyledFooterContainer","StyledMiniFooterContainer","StyledFooterMenu","StyledCompanyInfo","StyledInfoContainer","midGray","StyledRoundDecorator","MarryBabyFooter","socialLinks","MARRY_BABY_DEFAULT_FOOTER","SOCIAL_LINKS","facebookLink","instagramLink","zaloLink","youtubeLink","copyrightText","logoType","Divider","padding","target","textTransform","fwSemiBold","x1","y1","x2","y2","gradientUnits","stopColor","offset","cx","cy","gradientTransform","CustomFooter","siteType","ampNextArticle","routerQuery","slug","dangerouslySetInnerHTML","__html","articleOne","JSON","stringify","articleTwo","articleThree","separator","fontSize","marginLeft","marryBabySocialLinks","StyledHomeContainer","hasStickyBottomBar","StyledAmpHomeContainer","StyledMenuLanguageLabelContainer","StyledLanguageChangeLink","Layout","children","SEOData","pathname","routerPathname","query","Head","nextHead","seoCustom","userId","forcedCanonicalUrl","usingDefaultHead","isProduction","process","env","totalPages","currentPage","SEOTitle","SEODescription","SEOImage","seoType","SEOImageWidth","SEOImageHeight","customMetaData","isIndexable","hasNoCanonical","robotIndex","NEXT_PUBLIC_BASE_API_URL","newPath","canonicalUrl","keys","queryItem","replace","join","metaData","sL","siteUrl","hasSlash","endsWith","apiMetaData","paginatedTitle","match","paginatedNumber","fD","metaDataImage","parse","htmlReactParser","trim","find","data","property","DefaultOgImage","openGraph","imageWidth","String","imageHeight","defaultImage","charSet","customMeta","async","SITE_NAME","description","schemaData","twitter","FAVICONS","marryBaby","item","filter","hasNoAmp","StyledInnerMenuPopupContainer","StyledHealthToolItem","CategorySkeleton","marginTop","Skeleton","MenuCareList","careSpecialties","onSelectCareSpecialty","isLoading","desktopPopupType","onClosePopup","careSpecialty","getCareSearchUrl","specialtySlug","thumbnail","LOCALIZED_SLUGS","SPECIALTIES","strokeLinejoin","display","StyledWrapper","StyledCategoryItemDesktop","StyledSpotlightItemAll","SpotlightSkeleton","SpotlightsList","isDisplayed","spotlights","spotlight","pointerEvents","HelloSitesMenuCategoriesList","categories","spotlightsList","onSelectCategory","childCates","categoryName","subCategory","subIndex","categoryIndex","subCat","StyledMarryBabyListContainer","StyledMarryBabyIconContainer","StyledMarryBabySubMenuItem","StyledMarryBabyCategoryContainer","StyledMarryBabyCategoryCollapsibleContainer","StyledMarryBabyMenuPopupWrapper","StyledFullScreenLayer","StyledMarryBabyMenuPopupContainer","StyledMarryBabyHealthCategoriesContainer","MarryBabyMenuCategoriesList","MARRY_BABY_FE","expandingItem","setExpandingItem","isClosingItem","setIsClosingItem","alignItems","justifyContent","imageColor","iconUrl","MenuCategoriesList","discoverApiDomain","callApiHandler","StyledCategoryInfo","HelloSitesMenuCommunitiesList","communities","onSelectCommunity","community","communitySlug","isSetToSubMenu","MarryBabyMenuCommunitiesList","MenuCommunitiesList","togetherApiDomain","StyledSeeMore","StyleHealthToolByCategory","HealthToolsList","onSelectHealthTool","isDesktop","HEALTH_TOOL_URL_FE","isGrouped","healthTool","startsWith","HelloSitesMenuHealthToolsList","healthToolsByCategory","STATIC_PAGES","categoryHealthTool","HEALTH_TOOLS","MarryBabyMenuHealthToolsList","MenuHealthToolsList","StyledCard","CardSkeleton","MenuSectionCard","isActive","objectFit","ArrowLeftPopupIcon","ClosePopupIcon","HamburgerIcon","NavigationBarMobile","isStatic","isCollapsed","sitewideBannerShown","sitewideBanner","sitewideBannerClosed","setSitewideBannerClosed","onMenuClick","isSearchIconDisplayed","SSO_URL","HOME_PAGE_URL","languageMenu","enabledExperimentalCareHeader","onCareHeaderClick","isInit","sponsorComponent","currentUrl","userInfo","currentPopupType","avatar","profileMenu","isLoginButtonDisplayed","goToLogin","isSearchBarDisplay","onSearchValueChanged","keyPressed","isSponsored","hasSponsoredBanners","sponsoredBy","isShowingSiteWideBanner","useHeaderHeightHook","isSiteWide","headerRef","headerHeight","ref","isValidElement","cloneElement","setBannerClosed","background","paddingLeft","gap","paddingTop","left","bottom","opacity","zIndex","justifySelf","LockIcon","PureInput","minHeight","minWidth","onKeyPress","autoFocus","displayIcon","useRef","setHeaderHeight","debounceSetHeader","useCallback","debounce","newHeaderHeight","scrollY","defaultHeaderHeight","useMemo","res","NavigationBar","statics","openPopup","onTopBarAppears","onSearchChange","onSearchKeyPress","asPath","routerAsPath","tone","menuItems","_isInit","setIsCollapsed","isCloseBookmarkTooltips","setIsCloseBookmarkTooltips","setIsInit","collapsedMenu","searchIconDisplayed","username","Avatar","avatarUrl","firstLetter","toUpperCase","currentLocation","location","isBrowser","scrolling","throttle","stickyContainerHeight","querySelector","getElementById","Boolean","desktopMenuItems","getElementsByClassName","focus","maxHeight","borderRadius","MenuSubItemListCategory","selectedMenuMainItem","onCategoryClick","ChevronRightWhiteIcon","MenuSubItemListCommunities","onCommunityClick","subCommunities","setSubCommunities","setIsLoading","communityId","__awaiter","getTogetherDefaultCommunitiesSubMenuApiPath","getTogetherMarryBabyCommunitiesSubMenuApiPath","communityTopicResults","sent","topics","communityTopicFormatted","formatTogetherTopic","menuIcons","lightOrange","lightBlue","MenuItem","isGoingForward","onServiceClicked","flex","flexDirection","flexShrink","boxShadow","border","animationDuration","animationName","MarryBabyMobileMenuShelf","activeItem","currentActiveTab","setCurrentActiveTab","MenuServiceList","isMobileMenuOpened","isMainMenuOpened","togetherCommunities","closePopup","popupType","onMobileMenuClick","discover","sso","activeMenuService","isOnSubLevel","setIsOnSubLevel","searchResultCategories","setSearchResultCategories","setSelectedMenuMainItem","menuSubList","setMenuSubList","headerHideOnSearch","setHeaderHideOnSearch","activeService","setActiveService","enableAnimation","setEnableAnimation","onSubMenuItemBack","LOCALE_SPEC","toLowerCase","search","getCurrentBaseUrl","site","onFocus","service","StyledPopup","StyledButtonGroup","NavigationLogoutPopup","callPostLogOutApi","openLogoutPopup","onCloseHandler","onLogoutHandler","toggle","Popup","isOpen","closeIcon","CloseLightIcon","onClose","reload","StyledPopupWrapper","targetAvatar","ProfilePopup","UP_BASEPATH","ENABLE_CARE_PROFILE_MENU_LOCALES","ENABLE_COMMUNITY_PROFILE_MENU_LOCALES","dispatchLogout","userProfileRouterPush","isUserProfileNavigatorMenuHidden","isMyHealthEnabled","handleClickOnMenu","TranslationsProvider","UserProfileNavigation","themeName","onClickLogout","onClickMenuItem","onClickNavigationCard","onClickMyProfileButton","StyledSelectionContainer","StyledSelectionLabel","StyleSelectionPopup","StyledOption","gray100","StyledPopupBackground","TooltipSelection","selected","showSelected","showIndicator","setIsOpen","option","checkDisplayStyle","checkingClass","desktopPopupCategories","desktopPopupCategoriesStyle","NavigationLayout","MetaPageTitle","MetaPageDescription","MetaPageImage","footerInfoSSR","healthToolsByCategorySSR","careSpecialtiesSSR","togetherCommunitiesSSR","spotlightsListSSR","SSO_PATHS","SSO_USER_PROFILE","logoutHandlers","isLogoutPopupOpened","onLogout","marryBabyApiDomain","linkedinLink","twitterLink","defaultLocaleSpecs","defaultStaticPages","DISCOVER_URL_FE_CUSTOM","menuActionType","careApiDomain","_13","_15","_16","userState","_17","languageOptions","isSearchBarDisplayProps","ampSubBar","_18","_19","dueDatePopup","welcomePopup","_20","acceptCookiePopup","_21","asPathname","split","selectedLanguage","languageChange","_22","setFooterInfo","_23","setCategories","_24","setHealthTools","_25","setHealthToolsByCategory","_26","setCareSpecialties","_27","setCommunities","_28","setSpotlightsList","mobileSideMenu","mobileSideMenuStyle","mobileSideMenuLeft","isMobilePopupOpened","_29","isMobilePopupOpenedFlag","setIsMobilePopupOpenedFlag","desktopPopupCategoriesDisplay","desktopPopupHealthToolsDisplay","desktopPopupCommunitiesDisplay","desktopPopupCareSpecialtiesDisplay","_30","setPopupType","languageSelectedLabel","isLoggedIn","onMenuCollapsed","closeMobilePopup","siteName","SITE_NAME_FORMATTED","services","niceName","documentElement","source","email","insider_object","user","uuid","gdpr_optin","email_optin","sign_up","log_in","fetch","getDiscoverDefaultFooterApiPath","getMarryBabyDefaultFooterApiPath","json","footerResult","status","footers","getDiscoverDefaultCategoriesApiPath","response","categoriesResults","categoriesFormatted","formatCategory","getDiscoverDefaultSpotlightsApiPath","perPage","orderBy","spotlightsResults","articles","spotlightsFormatted","formatSpotlightsList","checkAvailableSpotlight","getDiscoverDefaultHealthToolsByCategoryApiPath","getMarryBabyDefaultHealthToolsApiPath","healthToolsResults","healthToolsFormatted","formatHealthToolTypeCategory","formatHealthTool","getCareDefaultSpecialtiesApiPath","careSpecialtiesResults","_status","_data","specialties","careSpecialtiesFormatted","getTogetherDefaultCommunitiesApiPath","getTogetherMarryBabyCommunitiesApiPath","communitiesResults","communitiesFormatted","formatCommunity","hideAMP","StyledSiteWideContainer","cobalt","StyledIcon","StyledCloseIconWrapper","StyledStickySponsoredBy","StyledStickySponsoredPopup","SponsoredPopup","ADVERTISING_SPONSOR_POLICY","DiscoverFooter","useTranslations","text","contentIcon","StyledAlert","StyledContent","StyledClose","ampNextArticles","filteredAmpArticles","ampArticle","articleLink","banner","categoryLink","dataEventActionForBanner","dataEventActionForCategory","dataEventActionForTitle","dataEventCategoryForBanner","dataEventCategoryForBookmark","dataEventCategoryForCategory","dataEventCategoryForTitle","dataEventLabelForBanner","dataEventLabelForCategory","dataEventLabelForTitle","direction","hasAffiliate","isBookmark","isBookmarkDisplayed","onBookmark","onClickCategoryName","section","styleBanner","styleLabel","styleTitle","headingTag","descriptionTag","categoryLabelTag","StyledAnchor","rx","amount","StyledBadge","notificationType","notificationSize","notificationColor","hasIcon","upperCase","StyledBorderHeading","mappedList","idList","useId","StyledBreadcrumb","StyledSeparator","row","column","classNameLeftArrow","classNameRightArrow","isDotsShown","isArrowShown","currentSlide","setCurrentSlide","loaded","setLoaded","useKeenSlider","slideChanged","slider","created","sliderRef","instanceRef","newChildren","itemsPerPage","chunk","StyledCarousel","itemsInRow","imgBanner","StyledCategoryCard","onChanges","newValues","removeIndex","findIndex","splice","StyledCheckboxGroup","policiesUrl","onAcceptClick","translations","acceptButton","policiesButton","useDefaultPosition","trackingAttributes","StyledAcceptCardContainer","StyledTitleSection","StyledDescription","StyledAcceptButton","StyledPoliciesButton","alignRight","displayDateFormat","CustomInput","pickedDate","disabledDays","modifiers","UnHideOnClickOutside","initialMonth","isDatePickerShown","dateFormatter","format","month","setMonth","datePickerContainer","datePicker","monthLabels","handleDateClick","contains","hideDayPicker","currentYear","getFullYear","fromMonth","toMonth","YearMonthForm","date","years","handleChange","form","year","StyledCaptionWrapper","getMonth","StyledPickerContainer","DayPickerInput","inputProps","keepFocus","classNames","overlayWrapper","overlay","component","forwardRef","_ref","onDayPickerHide","onDayPickerShow","dayPickerProps","selectedDays","canChangeMonth","enableOutsideDaysClick","firstDayOfWeek","captionElement","defaultMonthLabels","localeUtils","getMonths","formatDate","hideOnDayClick","onDayChange","selectedDay","day","showOverlay","onUploadSelected","isDropdownOpen","setIsDropdownOpen","showDropdown","inputList","accept","fileAcceptedType","multiple","log","files","defaultFileIcon","clipPath","downloadIcon","uploadIcon","StyledDropdown","onBlur","StyledDropdownName","StyledDropdownList","StyledDropdownOption","dropdownId","click","onUpload","open","backgroundPanelStyle","isOpenProp","onOpen","disableBackdropClick","animationType","handleClose","StyledFloatButtonGroup","StyledFloatButtonGroupBackgroundPanel","StyledFloatButtonGroupContent","StyledFloatButtonGroupItemsWrapper","StyledFloatButtonGroupButton","transitionDelay","TRANSITION_TIMING","keepMenuOnClick","StyledFloatButtonGroupButtonLabel","StyledFloatButtonGroupButtonIcon","StyledFloatButtonGroupToggleIcon","columns","columnsDesktop","gridTemplateColumns","gridTemplateColumnsDesktop","justifyChildren","StyledGrid","iconPosition","StyledIconText","isStaticBackdrop","mounted","setMounted","elRef","scrollBarWidth","useScrollbarSize","modalsRoot_1","el","append","appendChild","removeChild","classes","createPortal","StyledModalWrapper","StyledModalMask","StyledModal","NaContext","Provider","translation","defaultTranslation","NavigationLayoutElement","_href","setActivePage","totalArray","StyledPagination","StyledPageBlock","percent","StyledProgress","numberOfStep","activeStep","labelPrefix","detailSteps","trackLength","setTrackLength","Track","trackClassName","StyledTrackContainer","StyledTrack","stepTrack","StyledSlider","from","step","StyledStep","StyledStepLabel","breadcrumbIcon","breadcrumb","StyledBreadcrumbContainer","step_index","StyledBreadcrumbWrapper","detailTrack","StyledDetailStep","StyledDetailStepIndicatorExternal","StyledDetailStepIndicator","StyledDetailStepLabel","StyledDetailStepDescription","resizeTrack","progressTrack","group","check","setCheck","handleOnChange","StyledRadioGroup","renderActivated","star","totalStars","onSelect","hideEmptyStars","numberOfFullStars","numberOfHalfStars","tempStar","setTempStar","tempFullStars","tempHalfStars","StyledRateStars","onMouseOver","onMouseLeave","StarFullIcon","StarHalfIcon","StyledShadow","dispatch","dispatchActionType","cookieName","_overrideCloseHandler","dataTracking","isLocalCollapse","setIsLocalCollapse","isScrollCollapse","setIsScrollCollapse","formattedContent","isMarryBaby","setCookie","payload","heading","COLORS","localValue","setLocalValue","Range","onFinalChange","renderThumb","StyledThumb","renderTrack","trackStyles","getTrackBackground","onMouseDown","onTouchStart","withIcon","isInACard","cardColor","StyledStatisticContainer","StyledDescriptionWrapper","StyledStatisticNumberWrapper","sponsoredType","showPopup","setShowPopup","verticalAlign","InfoLightIcon","marginRight","thankyou","thankyouSubtitle","StyledSurveyQuestionCard","StyledSurveyThankyouCard","ry","strokeMiterlimit","initialTab","tabContent","activeTab","setActiveTab","StyledTabs","tab","StyledTab","StyledTabContent","textSize","textType","textColor","isInline","isSquared","isLight","hasMorePadding","isLink","isSelected","textProps","StyledTag","tagType","tagHasMorePadding","tagIsLight","tagIsSquared","tagIsALink","StyledToggle","StyledToggleIcon","StyledToggleLabel","StyledUnderlinedLink","onFileSelected","inputId","withElement","fileAcceptType","StyledUploader","StyledElementContainer","StyledIconWrapper","StyledDefaultButtonContent"],"mappings":"0vBA+BMA,EAAqB,SAACC,GAC1B,IAAAC,gBACAC,eACAC,qBACAC,gBACAC,SACAC,EAAAN,EAAAO,cAAAA,OAAa,IAAAD,EAAG,OAAMA,EAEhBE,EAAQC,EAAAA,cAAI,GAAAC,MAAMT,IAAc,GAAAU,KAAI,SAACC,EAAKC,GAAM,OAAAA,EAAI,KAEpDC,EAAkCC,WACtCb,GAAc,EACVM,EAAMQ,MAAM,EAAG,GACfd,GAAcM,EAAMS,OAAS,EAC7BT,EAAMQ,MAAMR,EAAMS,OAAS,EAAGT,EAAMS,QACpCT,EAAMQ,MAAMd,EAAa,EAAGA,EAAa,IALxCgB,OAAcC,OAkBrB,OAVAC,EAAAA,WAAU,WACJlB,GAAc,EAChBiB,EAAgBX,EAAMQ,MAAM,EAAG,IACtBd,GAAcM,EAAMS,OAAS,EACtCE,EAAgBX,EAAMQ,MAAMR,EAAMS,OAAS,EAAGT,EAAMS,SAEpDE,EAAgBX,EAAMQ,MAAMd,EAAa,EAAGA,EAAa,MAE1D,CAACA,IAGFmB,wBAACC,EAAAA,SAAQ,KACNpB,EAAa,GACZmB,EAAAA,sBAACC,EAAQA,SAAA,KACPD,UAAAE,cAACC,EAAqBA,sBAAC,CAAAC,QAAS,WAAM,OAAAtB,EAAiB,KACpDE,EACCgB,EAAG,QAAAE,cAAA,IAAA,CAAAlB,KAAMA,EAAMoB,QAASrB,GACrB,GAGH,GAIJiB,EAAAA,QAACE,cAAAC,EAAAA,sBAAiD,KAAA,QAIrDN,EAAaP,KAAI,SAACE,GAAM,OACvBQ,EAAA,QAAAE,cAACC,EAAAA,sBAAqB,CACpBE,IAAK,UAAG,aAAY,KAAAC,OAAId,GACN,mBAAAA,IAAMX,QAAc0B,EACtCH,QAAS,WAAM,OAAAtB,EAAiBU,KAE/BR,EACCgB,EAAAA,2BACEhB,KAAMwB,EAAAA,uBAAuBxB,EAAMQ,EAAGN,GACtCkB,QAASrB,GAERS,GAGH,MAKLX,EAAaM,EAAMS,OAAS,GAC3BI,EAAAA,QAAAE,cAACD,EAAAA,SAAQ,KACPD,EAAAA,QAAAE,cAACC,wBAAiD,KAAA,OAElDH,EAAC,QAAAE,cAAAC,EAAqBA,sBAAC,CAAAC,QAAS,WAAM,OAAAtB,EAAiBK,EAAMS,UAC1DZ,EACCgB,EACE,QAAAE,cAAA,IAAA,CAAAlB,KAAMwB,EAAsBA,uBAACxB,EAAMG,EAAMS,OAAQV,GACjDkB,QAASrB,GAERI,EAAMS,QAGTT,EAAY,WC1FpBsB,EAAQ,SAAC9B,GACb,IAAA+B,SACAzB,EAAAN,EAAAgC,KAAAA,OAAI,IAAA1B,EAAG,QAAOA,EACd2B,EAAKjC,EAAAiC,MACLC,EAAIlC,EAAAkC,KACJC,EAAOnC,EAAAmC,QACPC,EAAKpC,EAAAoC,MACLC,cACAvB,EAAAd,EAAAsC,WAAAA,OAAU,IAAAxB,GAAQA,EAClByB,EAAQvC,EAAAuC,SACRC,EAAiBxC,EAAAwC,kBACjBC,EAAezC,EAAAyC,gBACfC,EAAc1C,EAAA0C,eAEd,OACErB,UAAAE,cAACoB,EAAWA,YAAA,CAAA,gBACKL,EACfD,UAAWA,EAAS,YACTN,EAAI,YACJC,GAEXX,EAAA,QAAAE,cAAA,QAAA,CACEQ,KAAK,QACLI,QAASA,EACTD,KAAMA,EACNU,GAAI,UAAGV,EAAI,KAAAP,OAAIS,GACfA,MAAOA,EACPG,SAAU,WAAM,OAAAA,EAASH,IACJ,sBAAAI,sBACFC,EAAe,mBAChBC,IAEpBrB,EAAAA,QAAAE,cAAA,QAAA,CAAOsB,QAAS,GAAGlB,OAAAO,EAAQ,KAAAP,OAAAS,IAAUH,KCzB3C,SAASa,EAAW9C,GAClB,IAAA+C,aACAC,EAAMhD,EAAAgD,OACNC,EAAKjD,EAAAiD,MAOC3C,EAA2B4C,EAAeA,gBAC9CH,EACAC,EACAC,EACA,EACA,OACA,SAACb,GAAU,OAAAA,KANNe,EAAU7C,EAAA,GAAE8C,EAAU9C,EAAA,GAS7B,OACEe,UAAAE,cAAAF,EAAA,QAAAC,SAAA,KACED,UAACE,cAAA8B,EAAAA,0BAAwBJ,EAAOK,MAAOF,GACpCD,GAEH9B,EAAA,QAAAE,cAACgC,EAASA,UAAa,CAAA,aAAAN,KAKvB,ICxCAO,EAAW,SAACxD,OAChBiC,EAAKjC,EAAAiC,MACLC,EAAIlC,EAAAkC,KACJC,EAAOnC,EAAAmC,QACPE,EAASrC,EAAAqC,UACTC,EAAUtC,EAAAsC,WACVC,EAAQvC,EAAAuC,SACRH,EAAKpC,EAAAoC,MACLqB,EAAWzD,EAAAyD,YAEX,OACEpC,EAAC,QAAAE,cAAAmC,EAAcA,eACb,CAAArB,UAAWA,EAAS,gBACLC,QAAcV,EACV,oBAAA6B,QAAe7B,oBACjBK,GAEjBZ,EAAA,QAAAE,cAAA,QAAA,CACEQ,KAAK,WACLI,QAASA,EACTD,KAAMA,EACNK,SAAU,WAAM,OAAAA,EAASH,GAAQD,IACjCwB,SAAUrB,EACVF,MAAOA,EACPQ,GAAI,UAAGV,EAAI,KAAAP,OAAIS,GAAO,kBACLH,KAEjBwB,GAAepC,EAAAA,QAAOE,cAAA,QAAA,CAAAsB,QAAS,GAAGlB,OAAAO,EAAQ,KAAAP,OAAAS,IAAUH,KCxCtD2B,EAAgB,SAACC,GACrB,OACExC,EAAA,QAAAE,cAAA,MAAAuC,EAAAA,SAAA,GACMD,EAAK,CACTE,QAAQ,YACRC,KAAK,OACLC,MAAM,+BAEN5C,UACEE,cAAA,OAAA,CAAA2C,EAAE,wZACFF,KAAK,cCVPJ,EAAgB,SAACC,GACrB,OACExC,EAAAA,0CACMwC,EAAK,CACTM,MAAM,KACNC,OAAO,KACPL,QAAQ,YACRC,KAAK,OACLC,MAAM,+BAEN5C,UACEE,cAAA,OAAA,CAAA2C,EAAE,wZACFF,KAAK,cCZPJ,EAAgB,SAACC,GACrB,OACExC,EAAA,QAAAE,cAAA,MAAAuC,EAAAA,SAAA,GACMD,EAAK,CACTE,QAAQ,YACRC,KAAK,OACLC,MAAM,+BAEN5C,EAAA,QAAAE,cAAA,OAAA,CACE2C,EAAE,oaACFF,KAAK,YAEP3C,EACE,QAAAE,cAAA,OAAA,CAAAqB,GAAG,kBACHyB,UAAU,iBACVC,EAAE,IACFC,EAAE,IACFJ,MAAM,KACNC,OAAO,MAEP/C,EAAAA,QAAAE,cAAA,OAAA,CAAM+C,EAAE,IAAIH,MAAM,KAAKC,OAAO,KAAKJ,KAAK,aAE1C3C,EAAAA,QAAGE,cAAA,IAAA,CAAAiD,KAAK,yBACNnD,UACEE,cAAA,OAAA,CAAA2C,EAAE,oaACFF,KAAK,eCAFS,EAAO,CAClBC,IAAGA,EAAAA,IACHC,SAAQA,EAAAA,SACRC,QAAOA,EAAAA,QACPC,SAAQA,EAAAA,SACRC,UAASA,EAAAA,UACTC,YAAWA,EAAAA,YACXC,OAAMA,EAAAA,OACNC,KAAIA,EAAAA,KACJC,MAAKA,EAAAA,MACLC,KAAIA,EAAAA,KACJC,KAAIA,EAAAA,KACJC,YAAWA,EAAAA,YACXC,YAAWA,EAAAA,YACXC,YAAWA,EAAAA,YACXC,MAAKA,EAAAA,MACLC,MAAKA,EAAAA,MACLC,YAAWA,EAAAA,aCfPC,EAAa,SAAC3F,GAClB,IAAA4F,EAAS5F,EAAA4F,UACTC,EAAU7F,EAAA6F,WACVC,EAAU9F,EAAA8F,WACVC,EAAU/F,EAAA+F,WACV/D,EAAIhC,EAAAgC,KAEJ,OACEX,wBAAC2E,EAAAA,aAAY,KACX3E,EAAAA,QAAKE,cAAA,MAAA,CAAAc,UAAU,UACbhB,UAAAE,cAAA,MAAA,CAAKc,UAAU,qBAAoBL,GAChC4D,GAEHvE,UAAAE,cAAA,MAAA,CAAKc,UAAU,iCAAkCyD,GAC/CzE,UAAAE,cAAC0E,EAAAA,KAAI,CAACjE,KAAe,OAATA,EAAgB,KAAO,MACjCX,EAAAA,QAAGE,cAAA,IAAA,CAAAlB,KAAMyF,GACPzE,EAAA,QAAAE,cAAA,OAAA,CAAMc,UAAU,QAAQwD,OAAoB,KAE9CxE,EAAA,QAAAE,cAAA,OAAA,KAAOwE,QAsBbG,EAAa,SAAClG,GAClB,IAAAmG,EAAQnG,EAAAmG,SACRP,EAAS5F,EAAA4F,UACT1D,EAAIlC,EAAAkC,KACJkE,SACA9F,EAAAN,EAAAgC,KAAAA,aAAO,KAAI1B,EACX+F,EAASrG,EAAAqG,UAOT,OANWrG,EAAAI,YACCJ,EAAAsG,4CAEctG,EAAAuG,2BACDvG,EAAAwG,0BAGvBnF,wBAAC2E,EAAAA,aAAY,KACX3E,EAAAA,QAAKE,cAAA,MAAA,CAAAc,UAAU,UACbhB,UAAAE,cAAA,MAAA,CAAKc,UAAU,4BAA2BL,GACvC4D,GAEHvE,EAAAA,QAAKE,cAAA,MAAA,CAAAc,UAAU,SAA+B,wBAAG+D,GAC9CD,EACC9E,EAAAA,QAAAE,cAAA,IAAA,CAAGlB,KAAM+F,GACG,OAATpE,EACCX,UAAAE,cAAAF,EAAA,QAAAC,SAAA,KACED,EAAAA,QAAAE,cAACkF,EAAAA,QACC,CAAAC,IAAI,KACJrE,UAAU,eACVsE,MAAOC,EAAKA,MAACC,OAAOC,SAEnB5E,GAEHb,UAACE,cAAA0E,EAAAA,KACC,CAAAU,MAAOC,EAAAA,MAAMC,OAAOE,QACpB/E,KAAK,KACLK,UAAU,aAETgE,IAILhF,EAAA,QAAAE,cAAAF,EAAAA,QAAAC,SAAA,KACED,EAAAA,QAAAE,cAACkF,EAAAA,QACC,CAAAC,IAAI,KACJrE,UAAU,eACVsE,MAAOC,EAAKA,MAACC,OAAOC,SAEnB5E,KAMTb,EAAG,QAAAE,cAAA,IAAA,CAAAlB,KAAM+F,GACG,OAATpE,EACCX,EAAA,QAAAE,cAAAF,EAAA,QAAAC,SAAA,KACED,EAAAA,QAAAE,cAACkF,EAAAA,QACC,CAAAC,IAAI,KACJrE,UAAU,eACVsE,MAAOC,EAAKA,MAACC,OAAOC,SAEnB5E,GAEHb,UAACE,cAAA0E,EAAAA,KACC,CAAAU,MAAOC,EAAAA,MAAMC,OAAOE,QACpB/E,KAAK,KACLK,UAAU,aAETgE,IAILhF,EAAA,QAAAE,cAAAF,EAAAA,QAAAC,SAAA,KACED,EAAAA,QAAAE,cAACyF,mBAAgB,CACfL,MAAOC,EAAAA,MAAMC,OAAOC,QACpBzE,UAAU,gBAETH,GAEHb,EAAA,QAAAE,cAAC0E,OAAI,CACHU,MAAOC,EAAKA,MAACC,OAAOE,QACpB/E,KAAK,KACLK,UAAU,aAETgE,SC7GfY,EAAiB,SAACjH,OACtBkH,EAAalH,EAAAkH,cACbC,EAAInH,EAAAmH,KACJC,EAAMpH,EAAAoH,OACNC,EAAYrH,EAAAqH,aAGVpF,EAOEkF,EAAIlF,MANNG,EAME+E,EAAI/E,MALNkF,EAKEH,EAAIG,WAJNC,EAIEJ,EAAII,cAHN/E,EAGE2E,oBAFF1E,EAEE0E,kBADFzE,EACEyE,iBAEJ,OAAIG,EAEAjG,EAAAA,QAAAE,cAACiG,EAAQA,SAAA,CACPC,QAASF,EACTG,YAAY,MACZ9E,GAAG,GACH+E,gBAAiB,KACjBpF,SAAU8E,EACVhF,UAAU,yBAKdhB,wBAACuG,EAAcA,eAAA,CACbC,MAAwB,iBAAV5F,EAAqBG,EAAQH,EAAK,YACrCmF,GAEVF,GACC7F,EAAA,QAAAE,cAAC2F,EACsB,CAAA,sBAAA1E,sBACFC,EAAe,mBAChBC,EAClBrC,KAAM+B,GAAS,KAEdH,KCrCL6F,EAAqB,CACzB,QAAS,CACP,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,YAEF,QAAS,CACP,UACA,WACA,QACA,QACA,MACA,OACA,OACA,UACA,YACA,UACA,WACA,YAEF,QAAS,CACP,UACA,WACA,QACA,QACA,MACA,OACA,OACA,UACA,YACA,UACA,WACA,YAEF,QAAS,CACP,OACA,WACA,OACA,SACA,OACA,SACA,WACA,OACA,UACA,OACA,WACA,QAEF,QAAS,CACP,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAEF,QAAS,CACP,SACA,aACA,SACA,SACA,MACA,WACA,UACA,UACA,UACA,SACA,YACA,WAEF,QAAS,CACP,YACA,cACA,OACA,OACA,MACA,MACA,WACA,UACA,WACA,aACA,WACA,WAEF,QAAS,CACP,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,OAEF,QAAS,CACP,QACA,SACA,QACA,SACA,KACA,MACA,QACA,QACA,SACA,UACA,QACA,WC1IEC,EAAmB,WAEMC,SAASC,iBADrB,gCAGQhH,OAAS,GAChC+G,SAASE,KAAKC,UAAUC,OAAO,mBAG7BC,EAAwB,WAGCL,SAASC,iBADrB,gCAEQhH,OAAS,IAChC+G,SAASE,KAAK5E,MAAMgF,SAAW,GAC/BN,SAASE,KAAK5E,MAAMiF,aAAe,GACnCP,SAASE,KAAKC,UAAUC,OAAO,+IChDqCI,EAAEC,EAAAA,QAAiB,SAASC,EAAEF,GAAG,OAAO9H,MAAMiI,UAAU3H,MAAM4H,KAAKJ,GAAG,SAASK,EAAEL,EAAEE,GAAG,IAAIG,EAAEC,KAAKC,MAAMP,GAAG,OAAOK,IAAIH,GAAGG,EAAE,IAAIH,EAAEF,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"}
|
|
1
|
+
{"version":3,"file":"index-7d955e63.js","sources":["../src/components/atoms/pagination/index.tsx","../src/components/atoms/radio/index.tsx","../src/components/atoms/slider/index.tsx","../src/components/atoms/checkbox/index.tsx","../src/assets/svg/StarEmptyIcon.tsx","../src/assets/svg/StarFullIcon.tsx","../src/assets/svg/StarHalfIcon.tsx","../src/components/atoms/icons/index.ts","../src/components/molecules/articleCard/index.tsx","../src/components/molecules/breadcrumbs/index.tsx","../src/components/molecules/datePicker/index.tsx","../src/components/molecules/modal/index.tsx","../node_modules/keen-slider/react.js","../src/components/molecules/carousel/index.tsx","../src/components/organisms/navigationLayout/assets/lock.png","../src/components/organisms/navigationLayout/assets/sehat-badge.png","../src/components/organisms/navigationLayout/menuCategoriesList/index.styled.tsx","../src/components/organisms/navigationLayout/menuServiceList/index.styled.tsx","../src/components/organisms/navigationLayout/navigationBar/index.styled.tsx","../src/components/organisms/navigationLayout/navigationBar/SearchIcon.tsx","../src/components/organisms/navigationLayout/ampSideBar/index.styled.tsx","../src/components/organisms/navigationLayout/ampSideBar/index.tsx","../src/components/organisms/navigationLayout/footer/index.styled.tsx","../src/components/organisms/navigationLayout/footer/index.tsx","../src/components/organisms/navigationLayout/marryBabyText/index.styled.tsx","../src/components/organisms/navigationLayout/marryBabyText/index.tsx","../src/components/organisms/navigationLayout/maryBabyFooter/index.styled.tsx","../src/components/organisms/navigationLayout/maryBabyFooter/index.tsx","../src/components/organisms/navigationLayout/assets/zalo.png","../src/components/organisms/navigationLayout/CustomFooter.tsx","../src/components/organisms/navigationLayout/index.styled.tsx","../src/components/organisms/navigationLayout/layout.tsx","../src/components/organisms/navigationLayout/menuCareList/index.styled.tsx","../src/components/organisms/navigationLayout/menuCareList/categorySkeleton.tsx","../src/components/organisms/navigationLayout/menuCareList/index.tsx","../src/components/organisms/navigationLayout/menuCategoriesList/categorySkeleton.tsx","../src/components/organisms/navigationLayout/menuCategoriesList/spotlightsList/index.styled.tsx","../src/components/organisms/navigationLayout/menuCategoriesList/spotlightsList/spotlightSkeleton.tsx","../src/components/organisms/navigationLayout/menuCategoriesList/spotlightsList/index.tsx","../src/components/organisms/navigationLayout/menuCategoriesList/helloSites.tsx","../src/components/organisms/navigationLayout/menuCategoriesList/marryBaby.styled.tsx","../src/components/organisms/navigationLayout/menuCategoriesList/marryBaby.tsx","../src/components/organisms/navigationLayout/menuCategoriesList/index.tsx","../src/components/organisms/navigationLayout/menuCommunitiesList/index.styled.tsx","../src/components/organisms/navigationLayout/menuCommunitiesList/categorySkeleton.tsx","../src/components/organisms/navigationLayout/menuCommunitiesList/helloSites.tsx","../src/components/organisms/navigationLayout/menuCommunitiesList/marryBaby.styled.tsx","../src/components/organisms/navigationLayout/menuCommunitiesList/marryBaby.tsx","../src/components/organisms/navigationLayout/menuCommunitiesList/index.tsx","../src/components/organisms/navigationLayout/menuHealthToolsList/index.styled.tsx","../src/components/organisms/navigationLayout/menuHealthToolsList/categorySkeleton.tsx","../src/components/organisms/navigationLayout/menuHealthToolsList/helloSites.tsx","../src/components/organisms/navigationLayout/menuHealthToolsList/marrybaby.styled.tsx","../src/components/organisms/navigationLayout/menuHealthToolsList/marryBaby.tsx","../src/components/organisms/navigationLayout/menuHealthToolsList/index.tsx","../src/components/organisms/navigationLayout/menuSectionCard/index.styled.tsx","../src/components/organisms/navigationLayout/menuSectionCard/cardSkeleton.tsx","../src/components/organisms/navigationLayout/menuSectionCard/index.tsx","../src/components/organisms/navigationLayout/navigationBar/ArrowLeftPopupIcon.tsx","../src/components/organisms/navigationLayout/navigationBar/ClosePopupIcon.tsx","../src/components/organisms/navigationLayout/navigationBar/HamburgerIcon.tsx","../src/components/organisms/navigationLayout/navigationBar/NavigationBarMobile.tsx","../src/components/organisms/navigationLayout/navigationBar/index.tsx","../src/components/organisms/navigationLayout/menuServiceList/categoriesSubList.tsx","../src/components/organisms/navigationLayout/menuServiceList/communitySubList.tsx","../src/components/organisms/navigationLayout/menuServiceList/marryBabyMobileMenuSection.tsx","../src/components/organisms/navigationLayout/menuServiceList/index.tsx","../src/components/organisms/navigationLayout/navigationLogoutPopup/index.styled.tsx","../src/components/organisms/navigationLayout/navigationLogoutPopup/index.tsx","../src/components/organisms/navigationLayout/profilePopupWrapper/index.styled.tsx","../src/components/organisms/navigationLayout/profilePopupWrapper/index.tsx","../src/components/organisms/navigationLayout/profilePopup/index.tsx","../src/components/organisms/navigationLayout/tooltipSelection/index.styled.tsx","../src/components/organisms/navigationLayout/tooltipSelection/index.tsx","../src/components/organisms/navigationLayout/index.tsx","../src/components/organisms/navigationLayout/siteWide/index.styled.tsx","../src/components/organisms/navigationLayout/sponsoredBy/index.styled.tsx","../src/components/organisms/navigationLayout/sponsoredBy/index.tsx","../src/components/organisms/footer/discoverFooter/index.styled.tsx","../src/components/organisms/footer/discoverFooter/index.tsx","../src/components/atoms/marryBabyText/index.styled.tsx","../src/components/atoms/marryBabyText/index.tsx","../src/components/organisms/footer/maryBabyFooter/index.styled.tsx","../src/components/organisms/footer/maryBabyFooter/index.tsx","../src/assets/svg/zalo.png","../src/components/atoms/alert/index.tsx","../src/components/molecules/ampNextPage/index.tsx","../src/components/atoms/badge/index.tsx","../src/components/atoms/borderHeading/index.tsx","../src/components/molecules/categoryCard/index.tsx","../src/components/molecules/checkboxGroup/index.tsx","../src/components/molecules/cookieAcceptConfirm/index.tsx","../src/components/atoms/fileDropdown/index.tsx","../src/components/molecules/floatButtonGroup/index.tsx","../src/components/organisms/footer/index.tsx","../src/components/atoms/grid/index.tsx","../src/components/molecules/iconText/index.tsx","../src/components/organisms/navigationLayout/languageWrapper.tsx","../src/components/atoms/progress/index.tsx","../src/components/molecules/progressBar/index.tsx","../src/components/molecules/radioGroup/index.tsx","../src/components/atoms/rateStars/index.tsx","../src/components/molecules/seoHead/index.tsx","../src/components/atoms/shadow/index.tsx","../src/components/organisms/navigationLayout/siteWide/index.tsx","../src/components/molecules/statisticCard/index.tsx","../src/components/molecules/surveyQuestionCard/surveyThankyouCard.tsx","../src/components/molecules/tabs/index.tsx","../src/components/atoms/tag/index.tsx","../src/components/atoms/toggle/index.tsx","../src/components/atoms/underlinedLink/index.tsx","../src/components/atoms/uploader/index.tsx"],"sourcesContent":["import React, { useState, useEffect, useMemo, Fragment } from 'react'\n\nimport { formatUrlWithPageParam } from 'misc/utils'\nimport { CSSProperties } from 'styled-components'\n\nimport {\n StyledPageBlock,\n StyledPagination,\n StyledPaginationBlock,\n} from './index.styled'\n\nexport type Props = {\n pagesAmount: number\n currentPage: number\n onChange: (p: number) => void\n onClick?: (e: Event) => void\n className?: string\n style?: CSSProperties\n href?: string\n queryPageName?: string\n}\n\ntype PropsWithDots = {\n pagesAmount: number\n activePage: number\n handlePageChange: (p: number) => void\n handleClick: (e: any) => void\n href?: string\n queryPageName?: string\n}\n\nconst RenderPagiWithDots = ({\n pagesAmount,\n activePage,\n handlePageChange,\n handleClick,\n href,\n queryPageName = 'page',\n}: PropsWithDots) => {\n const pages = [...Array(pagesAmount)].map((__v, i) => i + 1)\n\n const [visiblePages, setVisiblePages] = useState<Array<number>>(\n activePage <= 4\n ? pages.slice(0, 5)\n : activePage >= pages.length - 3\n ? pages.slice(pages.length - 5, pages.length)\n : pages.slice(activePage - 2, activePage + 1),\n )\n\n useEffect(() => {\n if (activePage <= 4) {\n setVisiblePages(pages.slice(0, 5))\n } else if (activePage >= pages.length - 3) {\n setVisiblePages(pages.slice(pages.length - 5, pages.length))\n } else {\n setVisiblePages(pages.slice(activePage - 2, activePage + 1))\n }\n }, [activePage])\n\n return (\n <Fragment>\n {activePage > 4 && (\n <Fragment>\n <StyledPaginationBlock onClick={() => handlePageChange(1)}>\n {href ? (\n <a href={href} onClick={handleClick}>\n {1}\n </a>\n ) : (\n 1\n )}\n </StyledPaginationBlock>\n\n <StyledPaginationBlock>...</StyledPaginationBlock>\n </Fragment>\n )}\n\n {visiblePages.map((i) => (\n <StyledPaginationBlock\n key={`${'pagination'}+${i}`}\n data-page-active={i === activePage || undefined}\n onClick={() => handlePageChange(i)}\n >\n {href ? (\n <a\n href={formatUrlWithPageParam(href, i, queryPageName)}\n onClick={handleClick}\n >\n {i}\n </a>\n ) : (\n i\n )}\n </StyledPaginationBlock>\n ))}\n\n {activePage < pages.length - 3 && (\n <Fragment>\n <StyledPaginationBlock>...</StyledPaginationBlock>\n\n <StyledPaginationBlock onClick={() => handlePageChange(pages.length)}>\n {href ? (\n <a\n href={formatUrlWithPageParam(href, pages.length, queryPageName)}\n onClick={handleClick}\n >\n {pages.length}\n </a>\n ) : (\n pages.length\n )}\n </StyledPaginationBlock>\n </Fragment>\n )}\n </Fragment>\n )\n}\n\nconst Pagination = ({\n className,\n pagesAmount,\n currentPage,\n onChange,\n onClick,\n style,\n href: _href,\n queryPageName = 'page',\n}: Props) => {\n const pages = [...Array(pagesAmount)].map((__v, i) => i + 1)\n\n const [activePage, setActivePage] = useState(currentPage)\n\n const href = useMemo(() => {\n // Props `href` is updated from the version 1.8.4 and later. Please change the way to use this props properly\n // - To avoid crash app, transform href for the old way and remove the part &page=\n // /care/ho-chi-minh/hospital/da-khoa/&page=\n // -> /care/ho-chi-minh/hospital/da-khoa/\n if (_href && _href.endsWith('&page=')) {\n return _href.replace('&page=', '')\n }\n return _href\n }, [_href])\n\n const totalArray = pagesAmount - 1\n\n const handlePageChange = (p: number) => {\n if (p <= pagesAmount && p > 0) {\n setActivePage(p)\n onChange(p)\n }\n }\n\n const handleClick = (e) => {\n onClick && onClick(e)\n }\n\n useEffect(() => {\n setActivePage(currentPage)\n }, [currentPage])\n\n return (\n <StyledPagination className={className} style={style}>\n <StyledPageBlock\n className=\"prev-page\"\n onClick={() => handlePageChange(activePage - 1)}\n data-last-page={activePage === 1 || undefined}\n >\n {href ? (\n <a\n href={formatUrlWithPageParam(href, activePage, queryPageName)}\n onClick={handleClick}\n >\n <svg\n width=\"7\"\n height=\"10\"\n viewBox=\"0 0 7 10\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.5 9L1.5 5L5.5 1\"\n stroke=\"#2D87F3\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </a>\n ) : (\n <svg\n width=\"7\"\n height=\"10\"\n viewBox=\"0 0 7 10\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.5 9L1.5 5L5.5 1\"\n stroke=\"#2D87F3\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledPageBlock>\n\n {pages.length > 8 ? (\n <RenderPagiWithDots\n pagesAmount={pagesAmount}\n activePage={activePage}\n handlePageChange={handlePageChange}\n handleClick={handleClick}\n href={href}\n queryPageName={queryPageName}\n />\n ) : (\n pages.map((i) => (\n <StyledPaginationBlock\n key={`${'pagination'}+${i}`}\n data-page-active={i === activePage || undefined}\n onClick={() => handlePageChange(i)}\n >\n {href ? (\n <a\n href={formatUrlWithPageParam(href, i, queryPageName)}\n onClick={handleClick}\n >\n {i}\n </a>\n ) : (\n i\n )}\n </StyledPaginationBlock>\n ))\n )}\n\n <StyledPageBlock\n className=\"next-page\"\n onClick={() => handlePageChange(activePage + 1)}\n data-last-page={activePage === totalArray + 1 || undefined}\n >\n {href ? (\n <a\n href={formatUrlWithPageParam(href, activePage, queryPageName)}\n onClick={handleClick}\n >\n <svg\n width=\"7\"\n height=\"10\"\n viewBox=\"0 0 7 10\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1.5 9L5.5 5L1.5 1\"\n stroke=\"#2D87F3\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </a>\n ) : (\n <svg\n width=\"7\"\n height=\"10\"\n viewBox=\"0 0 7 10\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1.5 9L5.5 5L1.5 1\"\n stroke=\"#2D87F3\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledPageBlock>\n </StyledPagination>\n )\n}\n\nexport { Pagination }\n","import React from 'react'\n\nimport { StyledRadio } from './index.styled'\n\nexport type Props = {\n type: 'circle' | 'rectangle'\n size?: 'small' | 'large'\n label: string\n name: string\n value: string\n checked?: boolean\n className?: string\n isDisabled?: boolean\n onChange: (v: string) => void\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n}\n\nconst Radio = ({\n type,\n size = 'small',\n label,\n name,\n checked,\n value,\n className,\n isDisabled = false,\n onChange,\n dataEventCategory,\n dataEventAction,\n dataEventLabel,\n}: Props) => {\n return (\n <StyledRadio\n data-disabled={isDisabled}\n className={className}\n data-type={type}\n data-size={size}\n >\n <input\n type=\"radio\"\n checked={checked}\n name={name}\n id={`${name}-${value}`}\n value={value}\n onChange={() => onChange(value)}\n data-event-category={dataEventCategory}\n data-event-action={dataEventAction}\n data-event-label={dataEventLabel}\n />\n <label htmlFor={`${name}-${value}`}>{label}</label>\n </StyledRadio>\n )\n}\n\nexport { Radio }\n","import React, { CSSProperties, useState, useEffect } from 'react'\n\nimport { Range, getTrackBackground, useThumbOverlap } from 'react-range'\n\nimport { Text } from '../text'\nimport {\n StyledTrackContainer,\n StyledDot,\n StyledSlider,\n StyledThumb,\n StyledTrack,\n StyledLabel,\n} from './index.styled'\n\nexport type Props = {\n step: number\n // min and max comes from api and don't change during the process\n min: number\n max: number\n value: Array<number>\n onChange: (v: Array<number>) => void\n className?: string\n heading?: string\n isMobile?: boolean\n}\n\nfunction ThumbLabel({\n rangeRef,\n values,\n index,\n}: {\n rangeRef: Range | null\n values: number[]\n index: number\n isMobile?: boolean\n}) {\n const [labelValue, labelStyle] = useThumbOverlap(\n rangeRef,\n values,\n index,\n 1,\n ' - ',\n (value) => value,\n )\n\n return (\n <>\n <StyledLabel data-label={index} style={labelStyle as CSSProperties}>\n {labelValue}\n </StyledLabel>\n <StyledDot data-label={index}></StyledDot>\n </>\n )\n}\n\nconst Slider = ({\n step,\n min,\n max,\n value,\n onChange,\n className,\n heading,\n isMobile = false,\n}: Props) => {\n const COLORS = ['#DBDFE5', '#2D87F3', '#DBDFE5']\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const rangeRef: any = React.useRef()\n const [localValue, setLocalValue] = useState(value)\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const Thumb = ({ props, index }: any) => {\n return (\n <StyledThumb {...props}>\n <ThumbLabel\n rangeRef={rangeRef.current}\n values={localValue}\n index={index}\n isMobile={isMobile}\n />\n </StyledThumb>\n )\n }\n\n useEffect(() => {\n setLocalValue(value)\n }, [value[0], value[1]])\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const Track = ({ props, children }: any) => {\n const trackStyles = {\n background: getTrackBackground({\n values: localValue,\n colors: COLORS,\n min,\n max,\n }),\n }\n\n return (\n <>\n {heading && (\n <Text size=\"md\" type=\"bold\">\n {heading}\n </Text>\n )}\n <StyledTrackContainer\n onMouseDown={props.onMouseDown}\n onTouchStart={props.onTouchStart}\n style={{ ...props.style }}\n >\n <StyledTrack ref={props.ref} style={trackStyles}>\n {children}\n </StyledTrack>\n </StyledTrackContainer>\n </>\n )\n }\n\n return (\n <StyledSlider className={className}>\n <Range\n ref={rangeRef}\n values={\n localValue[0] >= min && localValue[1] <= max ? localValue : [min, max]\n }\n onChange={setLocalValue}\n onFinalChange={onChange}\n renderThumb={Thumb}\n renderTrack={Track}\n step={step}\n min={min}\n max={max}\n />\n </StyledSlider>\n )\n}\n\nexport { Slider }\n","import React from 'react'\n\nimport { StyledCheckbox } from './index.styled'\n\nexport type Props = {\n label: string\n name: string\n value: string\n checked: boolean\n className?: string\n isDisabled?: boolean\n onChange?: (value: string, checked: boolean) => void\n isRectangle?: boolean\n}\n\nconst Checkbox = ({\n label,\n name,\n checked,\n className,\n isDisabled,\n onChange,\n value,\n isRectangle,\n}: Props) => {\n return (\n <StyledCheckbox\n className={className}\n data-disabled={isDisabled || undefined}\n data-is-rectangle={isRectangle || undefined}\n data-label-text={label}\n >\n <input\n type=\"checkbox\"\n checked={checked}\n name={name}\n onChange={() => onChange(value, !checked)}\n disabled={isDisabled}\n value={value}\n id={`${name}-${value}`}\n data-label-text={label}\n ></input>\n {!isRectangle && <label htmlFor={`${name}-${value}`}>{label}</label>}\n </StyledCheckbox>\n )\n}\n\nexport { Checkbox }\n","import React from 'react'\n\nconst StarEmptyIcon = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg\n {...props}\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.0002 23.0266L22.8935 27.1866C23.4002 27.4933 24.0268 27.04 23.8935 26.4666L22.0668 18.6266L28.1468 13.36C28.5868 12.9733 28.3602 12.24 27.7602 12.1866L19.7468 11.5066L16.6135 4.11996C16.3868 3.57329 15.6135 3.57329 15.3868 4.11996L12.2535 11.5066L4.24016 12.1866C3.65349 12.24 3.41349 12.9733 3.86682 13.36L9.94682 18.6266L8.12016 26.4666C7.98682 27.04 8.61349 27.4933 9.12016 27.1866L16.0002 23.0266Z\"\n fill=\"#D2D6DC\"\n />\n </svg>\n )\n}\n\nexport default StarEmptyIcon\n","import React from 'react'\n\nconst StarEmptyIcon = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg\n {...props}\n width=\"32\"\n height=\"32\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.0002 23.0266L22.8935 27.1866C23.4002 27.4933 24.0268 27.04 23.8935 26.4666L22.0668 18.6266L28.1468 13.36C28.5868 12.9733 28.3602 12.24 27.7602 12.1866L19.7468 11.5066L16.6135 4.11996C16.3868 3.57329 15.6135 3.57329 15.3868 4.11996L12.2535 11.5066L4.24016 12.1866C3.65349 12.24 3.41349 12.9733 3.86682 13.36L9.94682 18.6266L8.12016 26.4666C7.98682 27.04 8.61349 27.4933 9.12016 27.1866L16.0002 23.0266Z\"\n fill=\"#FFC326\"\n />\n </svg>\n )\n}\n\nexport default StarEmptyIcon\n","import React from 'react'\n\nconst StarEmptyIcon = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.0001 17.2697L17.1701 20.3897C17.5501 20.6197 18.0201 20.2797 17.9201 19.8497L16.5501 13.9697L21.1101 10.0197C21.4401 9.72973 21.2701 9.17973 20.8201 9.13973L14.8101 8.62973L12.4601 3.08973C12.2901 2.67973 11.7101 2.67973 11.5401 3.08973L9.19006 8.62973L3.18006 9.13973C2.74006 9.17973 2.56006 9.72973 2.90006 10.0197L7.46006 13.9697L6.09006 19.8497C5.99006 20.2797 6.46006 20.6197 6.84006 20.3897L12.0001 17.2697Z\"\n fill=\"#E4E8EC\"\n />\n <mask\n id=\"mask0_3555_5815\"\n maskUnits=\"userSpaceOnUse\"\n x=\"2\"\n y=\"0\"\n width=\"10\"\n height=\"24\"\n >\n <rect x=\"2\" width=\"10\" height=\"24\" fill=\"#C4C4C4\" />\n </mask>\n <g mask=\"url(#mask0_3555_5815)\">\n <path\n d=\"M11.9998 17.2697L17.1698 20.3897C17.5498 20.6197 18.0198 20.2797 17.9198 19.8497L16.5498 13.9697L21.1098 10.0197C21.4398 9.72973 21.2698 9.17973 20.8198 9.13973L14.8098 8.62973L12.4598 3.08973C12.2898 2.67973 11.7098 2.67973 11.5398 3.08973L9.18981 8.62973L3.17981 9.13973C2.73981 9.17973 2.55981 9.72973 2.89981 10.0197L7.45981 13.9697L6.08981 19.8497C5.98981 20.2797 6.45981 20.6197 6.83981 20.3897L11.9998 17.2697Z\"\n fill=\"#FFC326\"\n />\n </g>\n </svg>\n )\n}\n\nexport default StarEmptyIcon\n","import React from 'react'\n\nimport Ask from './Ask'\nimport BarChart from './BarChart'\nimport Booking from './Booking'\nimport Bookmark from './Bookmark'\nimport Community from './Community'\nimport EditSpecial from './EditSpecial'\nimport Family from './Family'\nimport Font from './Font'\nimport Heart from './Heart'\nimport Home from './Home'\nimport Like from './Like'\nimport MyCommunity from './MyCommunity'\nimport PlusSpecial from './PlusSpecial'\nimport Recalculate from './Recalculate'\nimport Scale from './Scale'\nimport Share from './Share'\nimport Stethoscope from './Stethoscope'\n\nexport type IconProps = {\n size?: number\n color?: string\n activeColor?: string\n isActive?: boolean\n} & React.HTMLAttributes<HTMLOrSVGElement>\n\nexport const Icon = {\n Ask,\n BarChart,\n Booking,\n Bookmark,\n Community,\n EditSpecial,\n Family,\n Font,\n Heart,\n Home,\n Like,\n MyCommunity,\n PlusSpecial,\n Recalculate,\n Scale,\n Share,\n Stethoscope,\n}\n","import React from 'react'\n\nimport { theme } from 'misc/theme'\nimport { CSSProperties } from 'styled-components'\n\nimport { Heading } from '../../atoms/heading'\nimport { Text } from '../../atoms/text'\nimport {\n StyledCard,\n StyledAuthor,\n StyledExpertName,\n StyledAnchor,\n} from './index.styled'\n\ntype CardAuthorProps = {\n avatarImg: JSX.Element\n authorName: React.ReactNode\n authorLink?: string\n editorName?: string\n editorLink?: string\n size: string\n uploadTime: string\n handleClick: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void\n isBookmarked: boolean\n dataEventCategoryForBookmark?: string\n dataEventActionForBookmark?: string\n dataEventLabelForBookmark?: string\n}\n\nconst CardAuthor = ({\n avatarImg,\n authorName,\n authorLink,\n uploadTime,\n size,\n}: CardAuthorProps) => {\n return (\n <StyledAuthor>\n <div className=\"author\">\n <div className=\"avatar\" data-size={size}>\n {avatarImg}\n </div>\n <div className=\"poster\" data-is-disabled-url={!!!authorLink}>\n <Text size={size === 'lg' ? 'p3' : 'p4'}>\n <a href={authorLink}>\n <span className=\"name\">{authorName}</span>•{' '}\n </a>\n <span>{uploadTime}</span>\n </Text>\n </div>\n </div>\n </StyledAuthor>\n )\n}\n\ntype ArticleExpertProps = {\n isMobile: boolean\n avatarImg: JSX.Element\n name: React.ReactNode\n link?: string\n size: 'lg' | 'md' | 'sm'\n specialty: string\n handleClick: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void\n isBookmarked: boolean\n dataEventCategoryForBookmark?: string\n dataEventActionForBookmark?: string\n dataEventLabelForBookmark?: string\n}\n\nconst CardExpert = ({\n isMobile,\n avatarImg,\n name,\n link,\n size = 'lg',\n specialty,\n handleClick,\n isBookmarked,\n dataEventCategoryForBookmark,\n dataEventActionForBookmark,\n dataEventLabelForBookmark,\n}: ArticleExpertProps) => {\n return (\n <StyledAuthor>\n <div className=\"author\">\n <div className=\"expert-avatar\" data-size={size}>\n {avatarImg}\n </div>\n <div className=\"expert\" data-is-disabled-url={!!!link}>\n {isMobile ? (\n <a href={link}>\n {size === 'lg' ? (\n <>\n <Heading\n tag=\"h6\"\n className=\"expert__name\"\n color={theme.colors.gray600}\n >\n {name}\n </Heading>\n <Text\n color={theme.colors.gray500}\n size=\"p3\"\n className=\"specialty\"\n >\n {specialty}\n </Text>\n </>\n ) : (\n <>\n <Heading\n tag=\"h6\"\n className=\"expert__name\"\n color={theme.colors.gray600}\n >\n {name}\n </Heading>\n </>\n )}\n </a>\n ) : (\n <a href={link}>\n {size === 'lg' ? (\n <>\n <Heading\n tag=\"h6\"\n className=\"expert__name\"\n color={theme.colors.gray600}\n >\n {name}\n </Heading>\n <Text\n color={theme.colors.gray500}\n size=\"p3\"\n className=\"specialty\"\n >\n {specialty}\n </Text>\n </>\n ) : (\n <>\n <StyledExpertName\n color={theme.colors.gray600}\n className=\"expert__name\"\n >\n {name}\n </StyledExpertName>\n <Text\n color={theme.colors.gray500}\n size=\"p4\"\n className=\"specialty\"\n >\n {specialty}\n </Text>\n </>\n )}\n </a>\n )}\n </div>\n </div>\n </StyledAuthor>\n )\n}\n\nexport type Props = {\n banner: JSX.Element\n title: string\n text: string\n avatarImg: JSX.Element\n direction?: 'vertical' | 'horizontal'\n size?: 'sm' | 'lg' | 'md'\n type?: 'author' | 'expert'\n section?: 'home' | 'normal'\n authorName: React.ReactNode\n authorLink?: string\n specialty?: string\n uploadTime: string\n categoryName?: string\n categoryLink?: string\n articleLink?: string\n isBookmarkDisplayed?: boolean\n onBookmark?: () => void\n isBookmark?: boolean\n hasAffiliate?: boolean\n hasButton?: boolean\n textButton?: string\n isMobile?: boolean\n styleBanner?: CSSProperties\n styleLabel?: CSSProperties\n styleTitle?: CSSProperties\n style?: CSSProperties\n className?: string\n dataEventCategoryForCategory?: string\n dataEventActionForCategory?: string\n dataEventLabelForCategory?: string\n dataEventCategoryForTitle?: string\n dataEventActionForTitle?: string\n dataEventLabelForTitle?: string\n dataEventCategoryForBanner?: string\n dataEventActionForBanner?: string\n dataEventLabelForBanner?: string\n dataEventCategoryForBookmark?: string\n dataEventActionForBookmark?: string\n dataEventLabelForBookmark?: string\n onClickCategoryName?: (e: React.MouseEvent) => void\n}\n\nconst ArticleCard = ({\n articleLink,\n authorLink,\n authorName,\n avatarImg,\n banner,\n categoryLink,\n categoryName,\n className,\n dataEventActionForBanner,\n dataEventActionForBookmark,\n dataEventActionForCategory,\n dataEventActionForTitle,\n dataEventCategoryForBanner,\n dataEventCategoryForBookmark,\n dataEventCategoryForCategory,\n dataEventCategoryForTitle,\n dataEventLabelForBanner,\n dataEventLabelForBookmark,\n dataEventLabelForCategory,\n dataEventLabelForTitle,\n direction = 'horizontal',\n hasAffiliate,\n isBookmark = false,\n isBookmarkDisplayed = true,\n isMobile = true,\n onBookmark,\n onClickCategoryName,\n section = 'normal',\n size = 'md',\n specialty,\n style,\n styleBanner,\n styleLabel,\n styleTitle,\n text,\n title,\n type = 'author',\n uploadTime,\n}: Props) => {\n const handleClick = (\n e: React.MouseEvent<HTMLDivElement | HTMLAnchorElement, MouseEvent>,\n ) => {\n e.stopPropagation()\n onBookmark && onBookmark()\n }\n\n const headingTag =\n size === 'lg' && type === 'expert'\n ? 'h4'\n : size === 'lg' && section === 'home'\n ? isMobile\n ? 'h4'\n : 'h3'\n : size === 'lg'\n ? 'h4'\n : 'h5'\n const descriptionTag = size === 'lg' ? 'p3' : 'p4'\n const categoryLabelTag =\n !isMobile && section === 'home' && size === 'lg' && type === 'author'\n ? 'c1'\n : 'c2'\n\n return (\n <StyledCard\n className={className}\n data-size={size}\n style={style}\n data-direction={direction}\n data-is-expert={type === 'expert' || undefined}\n >\n <div className=\"banner\" style={styleBanner}>\n <StyledAnchor\n data-event-category={dataEventCategoryForBanner}\n data-event-action={dataEventActionForBanner}\n data-event-label={dataEventLabelForBanner}\n href={articleLink || '#'}\n >\n {banner}\n </StyledAnchor>\n {hasAffiliate && (\n <div className=\"shoppable\">\n <svg\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 width=\"24\" height=\"24\" rx=\"12\" fill=\"#1B3250\" />\n <path\n d=\"M16.6667 8.00033H15.3333C15.3333 6.16033 13.84 4.66699 12 4.66699C10.16 4.66699 8.66667 6.16033 8.66667 8.00033H7.33333C6.6 8.00033 6 8.60033 6 9.33366V17.3337C6 18.067 6.6 18.667 7.33333 18.667H16.6667C17.4 18.667 18 18.067 18 17.3337V9.33366C18 8.60033 17.4 8.00033 16.6667 8.00033ZM12 6.00033C13.1067 6.00033 14 6.89366 14 8.00033H10C10 6.89366 10.8933 6.00033 12 6.00033ZM12 12.667C10.4467 12.667 9.14 11.607 8.77333 10.167C8.66 9.74699 8.98667 9.33366 9.42 9.33366C9.73333 9.33366 9.98667 9.56033 10.0733 9.86699C10.3067 10.7137 11.08 11.3337 12 11.3337C12.92 11.3337 13.6933 10.7137 13.9267 9.86699C14.0133 9.56033 14.2667 9.33366 14.58 9.33366C15.0133 9.33366 15.3333 9.74699 15.2267 10.167C14.86 11.607 13.5533 12.667 12 12.667Z\"\n fill=\"white\"\n />\n </svg>\n </div>\n )}\n </div>\n <div className=\"content\">\n <div className=\"inner-content\">\n <Text\n style={styleLabel}\n className=\"label\"\n size={categoryLabelTag}\n type=\"caption\"\n >\n <StyledAnchor\n data-event-category={dataEventCategoryForCategory}\n data-event-action={dataEventActionForCategory}\n data-event-label={dataEventLabelForCategory}\n href={categoryLink || '#'}\n onClick={onClickCategoryName}\n >\n {categoryName}\n </StyledAnchor>\n {isBookmarkDisplayed && (\n <a className=\"bookmark\" onClick={handleClick}>\n {!isBookmark ? (\n <svg\n data-event-category={dataEventCategoryForBookmark}\n data-event-action={dataEventActionForBookmark}\n data-event-label={dataEventLabelForBookmark}\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.75 2.25H5.25C4.425 2.25 3.75 2.925 3.75 3.75V15.75L9 13.5L14.25 15.75V3.75C14.25 2.925 13.575 2.25 12.75 2.25Z\"\n fill=\"#D2D6DC\"\n />\n </svg>\n ) : (\n <svg\n data-event-category={dataEventCategoryForBookmark}\n data-event-action={dataEventActionForBookmark}\n data-event-label={dataEventLabelForBookmark}\n width=\"14\"\n height=\"16\"\n viewBox=\"0 0 14 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13 15L7 11.1111L1 15V2.55556C1 2.143 1.18061 1.74733 1.5021 1.45561C1.82359 1.16389 2.25963 1 2.71429 1H11.2857C11.7404 1 12.1764 1.16389 12.4979 1.45561C12.8194 1.74733 13 2.143 13 2.55556V15Z\"\n fill=\"#2ED69E\"\n stroke=\"#2ED69E\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </a>\n )}\n </Text>\n\n <Heading\n tag={headingTag}\n style={styleTitle}\n className=\"title\"\n as={size === 'lg' ? 'h2' : 'h3'}\n >\n <StyledAnchor\n data-event-category={dataEventCategoryForTitle}\n data-event-action={dataEventActionForTitle}\n data-event-label={dataEventLabelForTitle}\n href={articleLink || '#'}\n >\n {title}\n </StyledAnchor>\n </Heading>\n\n {text && (\n <a href={articleLink || '#'}>\n <Text size={descriptionTag} className=\"text\">\n {text}\n </Text>\n </a>\n )}\n </div>\n\n <div className=\"footer\">\n {type === 'author' ? (\n <CardAuthor\n size={size}\n avatarImg={avatarImg}\n authorName={authorName}\n authorLink={authorLink}\n uploadTime={uploadTime}\n handleClick={handleClick}\n isBookmarked={isBookmark}\n dataEventCategoryForBookmark={dataEventCategoryForBookmark}\n dataEventActionForBookmark={dataEventActionForBookmark}\n dataEventLabelForBookmark={dataEventLabelForBookmark}\n />\n ) : (\n <CardExpert\n size={size}\n isMobile={isMobile}\n avatarImg={avatarImg}\n specialty={specialty}\n name={authorName}\n link={authorLink}\n handleClick={handleClick}\n isBookmarked={isBookmark}\n dataEventCategoryForBookmark={dataEventCategoryForBookmark}\n dataEventActionForBookmark={dataEventActionForBookmark}\n dataEventLabelForBookmark={dataEventLabelForBookmark}\n />\n )}\n </div>\n </div>\n </StyledCard>\n )\n}\n\nexport { ArticleCard }\n","import React, { Fragment, useMemo } from 'react'\n\nimport { useId } from 'react-id-generator'\n\nimport { Dropdown, Option } from '../../molecules/dropdown'\nimport {\n StyledBreadcrumb,\n StyledTextLink,\n // StyledLink,\n StyledSeparator,\n} from './index.styled'\n\ntype Page = {\n label: string | JSX.Element\n value: string\n active?: boolean\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n}\n\nexport type Props = {\n size: 'lg' | 'md' | 'sm'\n pages: Array<Page>\n className?: string\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LinkComponent?: React.ComponentType<any> | string\n onChangePage?: () => void\n separator?: string | JSX.Element\n}\n\ninterface MappedPage extends Page {\n isDropdown?: boolean\n dropdownItems?: Array<Option>\n}\nexport type BreadcrumbItemProps = {\n page: MappedPage\n isLast?: boolean\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LinkComponent: React.ComponentType<any> | string\n onChangePage?: () => void\n}\n\nconst BreadcrumbItem = ({\n LinkComponent,\n page,\n isLast,\n onChangePage,\n}: BreadcrumbItemProps) => {\n const {\n label,\n value,\n isDropdown,\n dropdownItems,\n dataEventCategory,\n dataEventAction,\n dataEventLabel,\n } = page\n\n if (isDropdown) {\n return (\n <Dropdown\n options={dropdownItems}\n placeholder=\"...\"\n id=\"\"\n placeholderIcon={null}\n onChange={onChangePage}\n className=\"collapsed-breadcrumb\"\n />\n )\n }\n return (\n <StyledTextLink\n title={typeof label !== 'string' ? value : label}\n data-last={isLast}\n >\n {LinkComponent && (\n <LinkComponent\n data-event-category={dataEventCategory}\n data-event-action={dataEventAction}\n data-event-label={dataEventLabel}\n href={value || '#'}\n >\n {label}\n </LinkComponent>\n )}\n </StyledTextLink>\n )\n}\n\nconst Breadcrumbs = ({\n className,\n pages,\n size,\n LinkComponent = 'a',\n onChangePage,\n separator,\n}: Props) => {\n const mappedList: Array<MappedPage> = useMemo(\n () =>\n pages\n .map((item, index) => {\n if (pages.length > 4) {\n if (index > 1 && index < pages.length - 2) return null\n if (index === 1) {\n return {\n ...item,\n isDropdown: index === 1,\n dropdownItems: pages.slice(1, pages.length - 2),\n }\n }\n return item\n }\n return item\n })\n .filter(Boolean),\n [pages],\n )\n\n const idList = useId(mappedList.length)\n return (\n <StyledBreadcrumb data-size={size} className={className}>\n {mappedList.map((page, index) => {\n const isLast = index + 1 === mappedList.length\n return (\n <Fragment key={idList[index]}>\n <BreadcrumbItem\n LinkComponent={LinkComponent}\n page={page}\n isLast={isLast}\n onChangePage={onChangePage}\n />\n {!isLast && (separator || <StyledSeparator data-size={size} />)}\n </Fragment>\n )\n })}\n </StyledBreadcrumb>\n )\n}\n\nexport { Breadcrumbs }\n","import React, { useEffect, useRef, useState } from 'react'\n\nimport { format } from 'date-fns'\nimport DayPickerInput from 'react-day-picker/DayPickerInput'\nimport { Modifier } from 'react-day-picker/types/Modifiers'\n\nimport { StyledCaptionWrapper, StyledPickerContainer } from './index.styled'\n\n// type DisabledDays = {\n// before?: Date\n// after?: Date\n// }\n\nexport type Props = {\n alignRight?: boolean\n locale?:\n | 'vi-VN'\n | 'id-ID'\n | 'ms-MY'\n | 'km-KH'\n | 'en-PH'\n | 'th-TH'\n | 'my-MM'\n | 'zh-TW'\n | 'hi-IN'\n\n placeholder?: string\n displayDateFormat?: string\n pickedDate?: Date | Array<Date>\n customInput?: React.FunctionComponent<DatePickerCustomInputProps>\n onChange?: (d: Date) => void\n className?: string\n isStatic?: boolean\n disabledDays?: Modifier | Modifier[]\n modifiers?: {\n start?: Date\n end?: Date\n }\n UnHideOnClickOutside?: boolean\n initialMonth?: Date\n}\n\nexport type DatePickerCustomInputProps = {\n onClick: () => void\n}\n\nconst MONTHS_TRANSLATION = {\n 'vi-VN': [\n 'Tháng 1',\n 'Tháng 2',\n 'Tháng 3',\n 'Tháng 4',\n 'Tháng 5',\n 'Tháng 6',\n 'Tháng 7',\n 'Tháng 8',\n 'Tháng 9',\n 'Tháng 10',\n 'Tháng 11',\n 'Tháng 12',\n ],\n 'id-ID': [\n 'Januari',\n 'Februari',\n 'Maret',\n 'April',\n 'Mei',\n 'Juni',\n 'Juli',\n 'Agustus',\n 'September',\n 'Oktober',\n 'November',\n 'Desember',\n ],\n 'ms-MY': [\n 'Januari',\n 'Februari',\n 'Maret',\n 'April',\n 'Mei',\n 'Juni',\n 'Juli',\n 'Agustus',\n 'September',\n 'Oktober',\n 'November',\n 'Desember',\n ],\n 'km-KH': [\n 'មករា',\n 'ខែកុម្ភៈ',\n 'មីនា',\n 'ខែមេសា',\n 'ឧសភា',\n 'មិថុនា',\n 'ខែកក្កដា',\n 'សីហា',\n 'ខែកញ្ញា',\n 'តុលា',\n 'វិច្ឆិកា',\n 'ធ្នូ',\n ],\n 'en-PH': [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n 'th-TH': [\n 'มกราคม',\n 'กุมภาพันธ์',\n 'มีนาคม',\n 'เมษายน',\n 'อาจ',\n 'มิถุนายน',\n 'กรกฎาคม',\n 'สิงหาคม',\n 'กันยายน',\n 'ตุลาคม',\n 'พฤศจิกายน',\n 'ธันวาคม',\n ],\n 'my-MM': [\n 'ဇန်နဝါရီလ',\n 'ဖေဖော်ဝါရီလ',\n 'မတ်လ',\n 'ပြီလ',\n 'မေလ',\n 'ဇွန',\n 'ဇူလိုင်လ',\n 'သြဂုတ်လ',\n 'စက်တင်ဘာ',\n 'အောက်တိုဘာ',\n 'နိုဝင်ဘာ',\n 'ဒီဇင်ဘာ',\n ],\n 'zh-TW': [\n '一月',\n '二月',\n '三月',\n '四月',\n '五月',\n '六月',\n '七月',\n '八月',\n '九月',\n '十月',\n '十一月',\n '十二月',\n ],\n 'hi-IN': [\n 'जनवरी',\n 'फ़रवरी',\n 'जुलूस',\n 'अप्रैल',\n 'मई',\n 'जून',\n 'जुलाई',\n 'अगस्त',\n 'सितंबर',\n 'अक्टूबर',\n 'नवंबर',\n 'दिसंबर',\n ],\n}\n\nconst DatePicker = ({\n alignRight = true,\n placeholder,\n displayDateFormat,\n onChange,\n customInput: CustomInput,\n pickedDate,\n className,\n isStatic,\n disabledDays,\n modifiers,\n UnHideOnClickOutside,\n initialMonth,\n locale = 'en-PH',\n}: Props) => {\n const isDatePickerShown = useRef(false)\n const dateFormatter = format\n const [month, setMonth] = useState(initialMonth || new Date())\n\n const datePickerContainer = useRef<HTMLDivElement>(null)\n const datePicker = useRef<DayPickerInput>(null)\n const defaultDateFormatString = 'yyyy-MM-dd'\n const monthLabels = MONTHS_TRANSLATION[locale]\n\n const handleDaysSelect = (day: Date) => {\n datePicker.current && !isStatic && datePicker.current.hideDayPicker()\n onChange && onChange(day)\n }\n\n const handleDayChanged = (selectedDay: Date) => {\n handleDaysSelect(selectedDay)\n }\n\n const formatPickerDate = (date: Date, format: string) => {\n return dateFormatter(date, format)\n }\n\n const handleDateClick = (e: MouseEvent) => {\n if (UnHideOnClickOutside) return\n if (\n !datePickerContainer.current ||\n !datePickerContainer.current.contains(e.target as Node)\n ) {\n datePicker.current && datePicker.current.hideDayPicker()\n }\n }\n\n // customise the drop downs for Month and year\n const currentYear = new Date().getFullYear()\n const fromMonth = new Date(currentYear - 150, 0)\n const toMonth = new Date(currentYear + 1, 0)\n\n const YearMonthForm = ({\n date,\n // localeUtils,\n onChange,\n monthLabels,\n }: {\n date: Date\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // localeUtils: any\n onChange: (d: Date) => void\n monthLabels: string[]\n }) => {\n // const months = localeUtils.getMonths()\n\n const years = []\n for (let i = toMonth.getFullYear(); i >= fromMonth.getFullYear(); i -= 1) {\n years.push(i)\n }\n\n const handleChange = function handleChange(\n e: React.ChangeEvent<HTMLSelectElement>,\n ) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const { year, month } = e.target.form as any\n onChange(new Date(year.value, month.value))\n }\n\n return (\n <div className=\"DayPicker-Caption\">\n <StyledCaptionWrapper>\n <select name=\"month\" onChange={handleChange} value={date.getMonth()}>\n {monthLabels.map((month: string, i: number) => (\n <option key={month} value={i}>\n {month}\n </option>\n ))}\n </select>\n <select\n name=\"year\"\n onChange={handleChange}\n value={date.getFullYear()}\n >\n {years.map((year) => (\n <option key={year} value={year}>\n {year}\n </option>\n ))}\n </select>\n </StyledCaptionWrapper>\n </div>\n )\n }\n\n const CaptionElement = ({\n date,\n localeUtils,\n }: {\n date: Date\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n localeUtils?: any\n }) => {\n const defaultMonthLabels = localeUtils.getMonths()\n\n return (\n <YearMonthForm\n date={date}\n // localeUtils={localeUtils}\n monthLabels={monthLabels || defaultMonthLabels}\n onChange={setMonth}\n />\n )\n }\n\n useEffect(() => {\n document.addEventListener('mousedown', handleDateClick, false)\n return () => {\n document.removeEventListener('mousedown', handleDateClick, false)\n }\n }, [])\n\n return (\n <StyledPickerContainer\n className={className}\n data-align-right={alignRight}\n ref={datePickerContainer}\n data-is-static={isStatic || undefined}\n >\n <DayPickerInput\n ref={datePicker}\n inputProps={{\n readOnly: true,\n }}\n keepFocus={false}\n classNames={{\n container: 'pickerContainer',\n overlayWrapper: 'pickerOverlayWrapper',\n overlay: 'pickerOverlay',\n }}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n component={\n CustomInput &&\n React.forwardRef((props: DatePickerCustomInputProps, _ref: any) => (\n <CustomInput {...props} />\n ))\n }\n onDayPickerHide={() => {\n isDatePickerShown.current = false\n }}\n onDayPickerShow={() => {\n isDatePickerShown.current = true\n }}\n dayPickerProps={{\n month: month,\n className: 'picker',\n selectedDays: pickedDate,\n canChangeMonth: true,\n enableOutsideDaysClick: isStatic ? false : true,\n firstDayOfWeek: 1,\n captionElement: CaptionElement,\n disabledDays: disabledDays || undefined,\n modifiers: modifiers,\n }}\n format={displayDateFormat || defaultDateFormatString}\n formatDate={formatPickerDate}\n hideOnDayClick={isStatic ? false : true}\n placeholder={placeholder || ''}\n onDayChange={handleDayChanged}\n showOverlay={isStatic}\n />\n </StyledPickerContainer>\n )\n}\n\nexport { DatePicker }\n","import React, { useEffect, useRef, useState } from 'react'\n\nimport { useScrollbarSize } from 'hooks/useScrollbarSize'\nimport { createPortal } from 'react-dom'\n\nimport {\n StyledModal,\n StyledModalWrapper,\n StyledModalMask,\n} from './index.styled'\n\nexport type Props = {\n type: 'tail' | 'lead' | 'form' | 'confirm' | 'profile' | 'video'\n animationType?: 'slideTop' | 'scaleUp'\n closeIcon?: JSX.Element\n isOpen: boolean\n onClose: () => void\n children?: any\n className?: string\n isStaticBackdrop?: boolean\n}\nconst MODAL_ROOT_ID = 'hhg-modals'\nconst getModalsRoot = () => {\n let el = document.getElementById(MODAL_ROOT_ID)\n\n if (!el) {\n el = document.createElement('div')\n el.setAttribute('id', MODAL_ROOT_ID)\n document.body.append(el)\n }\n\n return el\n}\nconst cleanUpModalShow = () => {\n const selector = '.hhg-modal[data-open=\"true\"]'\n const remainingPopupOpened = document.querySelectorAll(selector)\n // Remove the opening class if there are only 1 popup is shown\n if (remainingPopupOpened.length < 1) {\n document.body.classList.remove('hhc-modal-show')\n }\n}\nconst cleanUpDisabledScroll = () => {\n // Clear the overflow if there are only 1 popup is shown. useEffect runs after so the count number becomes zero\n const selector = '.hhg-modal[data-open=\"true\"]'\n const remainingPopupOpened = document.querySelectorAll(selector)\n if (remainingPopupOpened.length < 1) {\n document.body.style.overflow = ''\n document.body.style.paddingRight = ''\n document.body.classList.remove('hhc-disabled-scroll')\n }\n}\n\nconst Modal = ({\n type = 'lead',\n closeIcon,\n isOpen = true,\n onClose,\n children,\n className = '',\n animationType = 'slideTop',\n isStaticBackdrop = false,\n}: Props) => {\n const [mounted, setMounted] = useState(false)\n const elRef = useRef(null)\n const { width: scrollBarWidth } = useScrollbarSize()\n\n if (!elRef.current && mounted) {\n elRef.current = document.createElement('div')\n }\n\n useEffect(() => {\n setMounted(true)\n return () => {\n setMounted(false)\n cleanUpModalShow()\n cleanUpDisabledScroll()\n }\n }, [])\n\n useEffect(() => {\n if (mounted) {\n const modalsRoot = getModalsRoot()\n modalsRoot.appendChild(elRef.current)\n return () => {\n modalsRoot.removeChild(elRef.current)\n }\n }\n }, [mounted])\n\n useEffect(() => {\n if (isOpen) {\n document.body.classList.add('hhc-modal-show')\n } else {\n cleanUpModalShow()\n }\n }, [isOpen])\n\n useEffect(() => {\n if (isOpen) {\n document.body.style.overflow = 'hidden'\n document.body.style.paddingRight = scrollBarWidth + 'px'\n document.body.classList.add('hhc-disabled-scroll')\n } else {\n cleanUpDisabledScroll()\n }\n }, [isOpen, scrollBarWidth])\n\n if (!mounted) return null\n\n const classes = ['hhg-modal__wrapper', className, animationType]\n .filter((s) => s)\n .join(' ')\n\n return createPortal(\n <StyledModalWrapper className={classes} data-open={isOpen} data-type={type}>\n {!isStaticBackdrop && (\n <StyledModalMask\n data-open={isOpen}\n onClick={onClose}\n data-type={type}\n />\n )}\n {!isStaticBackdrop && type === 'video' && !!closeIcon && (\n <div className=\"hhg-modal__close\" onClick={onClose}>\n {closeIcon}\n </div>\n )}\n <StyledModal className=\"hhg-modal\" data-open={isOpen}>\n <div\n className={\n type === 'video' ? 'hhg-modal__video' : 'hhg-modal__content'\n }\n >\n {!!closeIcon && type !== 'video' && (\n <div className=\"hhg-modal__close\" onClick={onClose}>\n {closeIcon}\n </div>\n )}\n {children}\n </div>\n </StyledModal>\n </StyledModalWrapper>,\n elRef.current,\n )\n}\n\nexport { Modal }\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var n=require(\"react\");function t(n){return Array.prototype.slice.call(n)}function e(n,t){var e=Math.floor(n);return e===t||e+1===t?n:t}function i(){return Date.now()}function r(n,t,e){if(t=\"data-keen-slider-\"+t,null===e)return n.removeAttribute(t);n.setAttribute(t,e||\"\")}function a(n,e){return e=e||document,\"function\"==typeof n&&(n=n(e)),Array.isArray(n)?n:\"string\"==typeof n?t(e.querySelectorAll(n)):n instanceof HTMLElement?[n]:n instanceof NodeList?t(n):[]}function o(n){n.raw&&(n=n.raw),n.cancelable&&!n.defaultPrevented&&n.preventDefault()}function u(n){n.raw&&(n=n.raw),n.stopPropagation&&n.stopPropagation()}function c(){var n=[];return{add:function(t,e,i,r){t.addListener?t.addListener(i):t.addEventListener(e,i,r),n.push([t,e,i,r])},input:function(n,t,e,i){this.add(n,t,function(n){return function(t){t.nativeEvent&&(t=t.nativeEvent);var e=t.changedTouches||[],i=t.targetTouches||[],r=t.detail&&t.detail.x?t.detail:null;return n({id:r?r.identifier?r.identifier:\"i\":i[0]?i[0]?i[0].identifier:\"e\":\"d\",idChanged:r?r.identifier?r.identifier:\"i\":e[0]?e[0]?e[0].identifier:\"e\":\"d\",raw:t,x:r&&r.x?r.x:i[0]?i[0].screenX:r?r.x:t.pageX,y:r&&r.y?r.y:i[0]?i[0].screenY:r?r.y:t.pageY})}}(e),i)},purge:function(){n.forEach((function(n){n[0].removeListener?n[0].removeListener(n[2]):n[0].removeEventListener(n[1],n[2],n[3])})),n=[]}}}function s(n,t,e){return Math.min(Math.max(n,t),e)}function d(n){return(n>0?1:0)-(n<0?1:0)||+n}function l(n){var t=n.getBoundingClientRect();return{height:e(t.height,n.offsetHeight),width:e(t.width,n.offsetWidth)}}function f(n,t,e,i){var r=n&&n[t];return null==r?e:i&&\"function\"==typeof r?r():r}function p(n){return Math.round(1e6*n)/1e6}function v(n,t){if(n===t)return!0;var e=typeof n;if(e!==typeof t)return!1;if(\"object\"!==e||null===n||null===t)return\"function\"===e&&n.toString()===t.toString();if(n.length!==t.length||Object.getOwnPropertyNames(n).length!==Object.getOwnPropertyNames(t).length)return!1;for(var i in n)if(!v(n[i],t[i]))return!1;return!0}function h(n,t){return v(n.current,t)||(n.current=t),n.current}var m=function(){return m=Object.assign||function(n){for(var t,e=1,i=arguments.length;e<i;e++)for(var r in t=arguments[e])Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n},m.apply(this,arguments)};function g(n,t,e){if(e||2===arguments.length)for(var i,r=0,a=t.length;r<a;r++)!i&&r in t||(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return n.concat(i||Array.prototype.slice.call(t))}function b(n){var t,e,i,r,a,o;function u(t){o||(o=t),c(!0);var a=t-o;a>i&&(a=i);var l=r[e];if(l[3]<a)return e++,u(t);var f=l[2],p=l[4],v=l[0],h=l[1]*(0,l[5])(0===p?1:(a-f)/p);if(h&&n.track.to(v+h),a<i)return d();o=null,c(!1),s(null),n.emit(\"animationEnded\")}function c(n){t.active=n}function s(n){t.targetIdx=n}function d(){var n;n=u,a=window.requestAnimationFrame(n)}function l(){var t;t=a,window.cancelAnimationFrame(t),c(!1),s(null),o&&n.emit(\"animationStopped\"),o=null}return t={active:!1,start:function(t){if(l(),n.track.details){var a=0,o=n.track.details.position;e=0,i=0,r=t.map((function(n){var t,e=o,r=null!==(t=n.earlyExit)&&void 0!==t?t:n.duration,u=n.easing,c=n.distance*u(r/n.duration)||0;o+=c;var s=i;return i+=r,a+=c,[e,n.distance,s,i,n.duration,u]})),s(n.track.distToIdx(a)),d(),n.emit(\"animationStarted\")}},stop:l,targetIdx:null}}function y(n){var t,e,r,a,o,u,c,l,v,h,m,b,y,x,w=1/0,k=[],M=null,T=0;function C(n){P(T+n)}function E(n){var t=z(T+n).abs;return O(t)?t:null}function z(n){var t=Math.floor(Math.abs(p(n/e))),i=p((n%e+e)%e);i===e&&(i=0);var r=d(n),a=c.indexOf(g([],c,!0).reduce((function(n,t){return Math.abs(t-i)<Math.abs(n-i)?t:n}))),o=a;return r<0&&t++,a===u&&(o=0,t+=r>0?1:-1),{abs:o+t*u*r,origin:a,rel:o}}function I(n,t,e){var i;if(t||!S())return A(n,e);if(!O(n))return null;var r=z(null!=e?e:T),a=r.abs,o=n-r.rel,c=a+o;i=A(c);var s=A(c-u*d(o));return(null!==s&&Math.abs(s)<Math.abs(i)||null===i)&&(i=s),p(i)}function A(n,t){if(null==t&&(t=p(T)),!O(n)||null===n)return null;n=Math.round(n);var i=z(t),r=i.abs,a=i.rel,o=i.origin,s=L(n),d=(t%e+e)%e,l=c[o],f=Math.floor((n-(r-a))/u)*e;return p(l-d-l+c[s]+f+(o===u?e:0))}function O(n){return D(n)===n}function D(n){return s(n,v,h)}function S(){return a.loop}function L(n){return(n%u+u)%u}function P(t){var e;e=t-T,k.push({distance:e,timestamp:i()}),k.length>6&&(k=k.slice(-6)),T=p(t);var r=_().abs;if(r!==M){var a=null!==M;M=r,a&&n.emit(\"slideChanged\")}}function _(i){var c=i?null:function(){if(u){var n=S(),t=n?(T%e+e)%e:T,i=(n?T%e:T)-o[0][2],c=0-(i<0&&n?e-Math.abs(i):i),s=0,l=z(T),f=l.abs,p=l.rel,g=o[p][2],w=o.map((function(t,i){var r=c+s;(r<0-t[0]||r>1)&&(r+=(Math.abs(r)>e-1&&n?e:0)*d(-r));var o=i-p,l=d(o),v=o+f;n&&(-1===l&&r>g&&(v+=u),1===l&&r<g&&(v-=u),null!==m&&v<m&&(r+=e),null!==b&&v>b&&(r-=e));var h=r+t[0]+t[1],y=Math.max(r>=0&&h<=1?1:h<0||r>1?0:r<0?Math.min(1,(t[0]+r)/t[0]):(1-r)/t[0],0);return s+=t[0]+t[1],{abs:v,distance:a.rtl?-1*r+1-t[0]:r,portion:y,size:t[0]}}));return f=D(f),p=L(f),{abs:D(f),length:r,max:x,maxIdx:h,min:y,minIdx:v,position:T,progress:n?t/e:T/r,rel:p,slides:w,slidesLength:e}}}();return t.details=c,n.emit(\"detailsChanged\"),c}return t={absToRel:L,add:C,details:null,distToIdx:E,idxToDist:I,init:function(t){if(function(){if(a=n.options,o=(a.trackConfig||[]).map((function(n){return[f(n,\"size\",1),f(n,\"spacing\",0),f(n,\"origin\",0)]})),u=o.length){e=p(o.reduce((function(n,t){return n+t[0]+t[1]}),0));var t,i=u-1;r=p(e+o[0][2]-o[i][0]-o[i][2]-o[i][1]),c=o.reduce((function(n,e){if(!n)return[0];var i=o[n.length-1],r=n[n.length-1]+(i[0]+i[2])+i[1];return r-=e[2],n[n.length-1]>r&&(r=n[n.length-1]),r=p(r),n.push(r),(!t||t<r)&&(l=n.length-1),t=r,n}),null),0===r&&(l=0),c.push(p(e))}}(),!u)return _(!0);var i;!function(){var t=n.options.range,e=n.options.loop;m=v=e?f(e,\"min\",-1/0):0,b=h=e?f(e,\"max\",w):l;var i=f(t,\"min\",null),r=f(t,\"max\",null);i&&(v=i),r&&(h=r),y=v===-1/0?v:n.track.idxToDist(v||0,!0,0),x=h===w?h:I(h,!0,0),null===r&&(b=h),f(t,\"align\",!1)&&h!==w&&0===o[L(h)][2]&&(x-=1-o[L(h)][0],h=E(x-T)),y=p(y),x=p(x)}(),i=t,Number(i)===i?C(A(D(t))):_()},to:P,velocity:function(){var n=i(),t=k.reduce((function(t,e){var i=e.distance,r=e.timestamp;return n-r>200||(d(i)!==d(t.distance)&&t.distance&&(t={distance:0,lastTimestamp:0,time:0}),t.time&&(t.distance+=i),t.lastTimestamp&&(t.time+=r-t.lastTimestamp),t.lastTimestamp=r),t}),{distance:0,lastTimestamp:0,time:0});return t.distance/t.time||0}}}function x(n){var t,e,i,r,a,o,u;function c(n){return 2*n}function l(n){return s(n,o,u)}function f(n){return 1-Math.pow(1-n,3)}function p(){m();var t=\"free-snap\"===n.options.mode,e=n.track,o=e.velocity();i=d(o);var u=n.track.details,s=[];if(o||!t){var p=v(o),h=p.dist,g=p.dur;if(g=c(g),h*=i,t){var b=e.idxToDist(e.distToIdx(h),!0);b&&(h=b)}s.push({distance:h,duration:g,easing:f});var y=u.position,x=y+h;if(x<r||x>a){var w=x<r?r-y:a-y,k=0,M=o;if(d(w)===i){var T=Math.min(Math.abs(w)/Math.abs(h),1),C=function(n){return 1-Math.pow(1-n,1/3)}(T)*g;s[0].earlyExit=C,M=o*(1-T)}else s[0].earlyExit=0,k+=w;var E=v(M,100),z=E.dist*i;n.options.rubberband&&(s.push({distance:z,duration:c(E.dur),easing:f}),s.push({distance:-z+k,duration:500,easing:f}))}n.animator.start(s)}else n.moveToIdx(l(u.abs),!0,{duration:500,easing:function(n){return 1+--n*n*n*n*n}})}function v(n,t){void 0===t&&(t=1e3);var e=147e-9+(n=Math.abs(n))/t;return{dist:Math.pow(n,2)/e,dur:n/e}}function h(){var t=n.track.details;t&&(r=t.min,a=t.max,o=t.minIdx,u=t.maxIdx)}function m(){n.animator.stop()}n.on(\"updated\",h),n.on(\"optionsChanged\",h),n.on(\"created\",h),n.on(\"dragStarted\",(function(){m(),t=e=n.track.details.abs})),n.on(\"dragEnded\",(function(){var i=n.options.mode;\"snap\"===i&&function(){var i=n.track,o=n.track.details,u=o.position,c=d(i.velocity());(u>a||u<r)&&(c=0);var s=t+c;0===o.slides[i.absToRel(s)].portion&&(s-=c),t!==e&&(s=e),d(i.idxToDist(s,!0))!==c&&(s+=c),s=l(s);var f=i.idxToDist(s,!0);n.animator.start([{distance:f,duration:500,easing:function(n){return 1+--n*n*n*n*n}}])}(),\"free\"!==i&&\"free-snap\"!==i||p()})),n.on(\"dragged\",(function(){e=n.track.details.abs}))}function w(n){var t,e,i,l,f,p,v,h,m,g,b,y,x,w,k,M,T,C,E=c();function z(a){if(p&&h===a.id){var c=D(a);if(m){if(!O(a))return A(a);g=c,m=!1,n.emit(\"dragChecked\")}if(M)return g=c;o(a);var x=function(t){if(T===-1/0&&C===1/0)return t;var i=n.track.details,r=i.length,a=i.position,o=s(t,T-a,C-a);if(0===r)return 0;if(!n.options.rubberband)return o;if(a<=C&&a>=T)return t;if(a<T&&e>0||a>C&&e<0)return t;var u=(a<T?a-T:a-C)/r,c=l*r,d=Math.abs(u*c),p=Math.max(0,1-d/f*2);return p*p*t}(v(g-c)/l*i);e=d(x);var w=n.track.details.position;(w>T&&w<C||w===T&&e>0||w===C&&e<0)&&u(a),b+=x,!y&&Math.abs(b*l)>5&&(y=!0,r(t,\"moves\",\"\")),n.track.add(x),g=c,n.emit(\"dragged\")}}function I(t){!p&&n.track.details&&n.track.details.length&&(y=!1,b=0,p=!0,m=!0,h=t.id,O(t),g=D(t),n.emit(\"dragStarted\"))}function A(e){p&&h===e.idChanged&&(r(t,\"moves\",null),p=!1,n.emit(\"dragEnded\"))}function O(n){var t=S(),e=t?n.y:n.x,i=t?n.x:n.y,r=void 0!==x&&void 0!==w&&Math.abs(w-i)<=Math.abs(x-e);return x=e,w=i,r}function D(n){return S()?n.y:n.x}function S(){return n.options.vertical}function L(){l=n.size,f=S()?window.innerHeight:window.innerWidth;var t=n.track.details;t&&(T=t.min,C=t.max)}function P(){if(E.purge(),n.options.drag&&!n.options.disabled){var e;e=n.options.dragSpeed||1,v=\"function\"==typeof e?e:function(n){return n*e},i=n.options.rtl?-1:1,L(),t=n.container,function(){var n=\"data-keen-slider-clickable\";a(\"[\".concat(n,\"]:not([\").concat(n,\"=false])\"),t).map((function(n){E.add(n,\"mousedown\",u),E.add(n,\"touchstart\",u)}))}(),E.add(t,\"dragstart\",(function(n){o(n)})),E.input(t,\"ksDragStart\",I),E.input(t,\"ksDrag\",z),E.input(t,\"ksDragEnd\",A),E.input(t,\"mousedown\",I),E.input(t,\"mousemove\",z),E.input(t,\"mouseleave\",A),E.input(t,\"mouseup\",A),E.input(t,\"touchstart\",I,{passive:!0}),E.input(t,\"touchmove\",z,{passive:!1}),E.input(t,\"touchend\",A),E.input(t,\"touchcancel\",A),E.add(window,\"wheel\",(function(n){p&&o(n)}));var r=\"data-keen-slider-scrollable\";a(\"[\".concat(r,\"]:not([\").concat(r,\"=false])\"),n.container).map((function(n){return function(n){var t;E.input(n,\"touchstart\",(function(n){t=D(n),M=!0,k=!0}),{passive:!0}),E.input(n,\"touchmove\",(function(e){var i=S(),r=i?n.scrollHeight-n.clientHeight:n.scrollWidth-n.clientWidth,a=t-D(e),u=i?n.scrollTop:n.scrollLeft,c=i&&\"scroll\"===n.style.overflowY||!i&&\"scroll\"===n.style.overflowX;if(t=D(e),(a<0&&u>0||a>0&&u<r)&&k&&c)return M=!0;k=!1,o(e),M=!1})),E.input(n,\"touchend\",(function(){M=!1}))}(n)}))}}n.on(\"updated\",L),n.on(\"optionsChanged\",P),n.on(\"created\",P),n.on(\"destroyed\",E.purge)}function k(n){var t,e,i=null;function r(t,e,i){n.animator.active?o(t,e,i):requestAnimationFrame((function(){return o(t,e,i)}))}function a(){r(!1,!1,e)}function o(e,r,a){var o=0,u=n.size,d=n.track.details;if(d&&t){var l=d.slides;t.forEach((function(n,t){if(e)!i&&r&&c(n,null,a),s(n,null,a);else{if(!l[t])return;var d=l[t].size*u;!i&&r&&c(n,d,a),s(n,l[t].distance*u-o,a),o+=d}}))}}function u(t){return\"performance\"===n.options.renderMode?Math.round(t):t}function c(n,t,e){var i=e?\"height\":\"width\";null!==t&&(t=u(t)+\"px\"),n.style[\"min-\"+i]=t,n.style[\"max-\"+i]=t}function s(n,t,e){if(null!==t){t=u(t);var i=e?t:0;t=\"translate3d(\".concat(e?0:t,\"px, \").concat(i,\"px, 0)\")}n.style.transform=t,n.style[\"-webkit-transform\"]=t}function d(){t&&(o(!0,!0,e),t=null),n.on(\"detailsChanged\",a,!0)}function l(){r(!1,!0,e)}function p(){d(),e=n.options.vertical,n.options.disabled||\"custom\"===n.options.renderMode||(i=\"auto\"===f(n.options.slides,\"perView\",null),n.on(\"detailsChanged\",a),(t=n.slides).length&&l())}n.on(\"created\",p),n.on(\"optionsChanged\",p),n.on(\"beforeOptionsChanged\",(function(){d()})),n.on(\"updated\",l),n.on(\"destroyed\",d)}function M(n,t){return function(e){var i,o,u,s,d,p,v=c();function h(n){var t;r(e.container,\"reverse\",\"rtl\"!==(t=e.container,window.getComputedStyle(t,null).getPropertyValue(\"direction\"))||n?null:\"\"),r(e.container,\"v\",e.options.vertical&&!n?\"\":null),r(e.container,\"disabled\",e.options.disabled&&!n?\"\":null)}function g(){b()&&M()}function b(){var n=null;if(s.forEach((function(t){t.matches&&(n=t.__media)})),n===i)return!1;i||e.emit(\"beforeOptionsChanged\"),i=n;var t=n?u.breakpoints[n]:u;return e.options=m(m({},u),t),h(),I(),A(),C(),!0}function y(n){var t=l(n);return(e.options.vertical?t.height:t.width)/e.size||1}function x(){return e.options.trackConfig.length}function w(n){for(var r in i=!1,u=m(m({},t),n),v.purge(),o=e.size,s=[],u.breakpoints||[]){var a=window.matchMedia(r);a.__media=r,s.push(a),v.add(a,\"change\",g)}v.add(window,\"orientationchange\",z),v.add(window,\"resize\",E),b()}function k(n){e.animator.stop();var t=e.track.details;e.track.init(null!=n?n:t?t.abs:0)}function M(n){k(n),e.emit(\"optionsChanged\")}function T(n,t){if(n)return w(n),void M(t);I(),A();var i=x();C(),x()!==i?M(t):k(t),e.emit(\"updated\")}function C(){var n=e.options.slides;if(\"function\"==typeof n)return e.options.trackConfig=n(e.size,e.slides);for(var t=e.slides,i=t.length,r=\"number\"==typeof n?n:f(n,\"number\",i,!0),a=[],o=f(n,\"perView\",1,!0),u=f(n,\"spacing\",0,!0)/e.size||0,c=\"auto\"===o?u:u/o,s=f(n,\"origin\",\"auto\"),d=0,l=0;l<r;l++){var p=\"auto\"===o?y(t[l]):1/o-u+c,v=\"center\"===s?.5-p/2:\"auto\"===s?0:s;a.push({origin:v,size:p,spacing:u}),d+=p}if(d+=u*(r-1),\"auto\"===s&&!e.options.loop&&1!==o){var h=0;a.map((function(n){var t=d-h;return h+=n.size+u,t>=1||(n.origin=1-t-(d>1?0:1-d)),n}))}e.options.trackConfig=a}function E(){I();var n=e.size;e.options.disabled||n===o||(o=n,T())}function z(){E(),setTimeout(E,500),setTimeout(E,2e3)}function I(){var n=l(e.container);e.size=(e.options.vertical?n.height:n.width)||1}function A(){e.slides=a(e.options.selector,e.container)}e.container=(p=a(n,d||document)).length?p[0]:null,e.destroy=function(){v.purge(),e.emit(\"destroyed\"),h(!0)},e.prev=function(){e.moveToIdx(e.track.details.abs-1,!0)},e.next=function(){e.moveToIdx(e.track.details.abs+1,!0)},e.update=T,w(e.options)}}var T=function(n,t,e){try{return function(n,t){var e,i={};return e={emit:function(n){i[n]&&i[n].forEach((function(n){n(e)}));var t=e.options&&e.options[n];t&&t(e)},moveToIdx:function(n,t,i){var r=e.track.idxToDist(n,t);if(r){var a=e.options.defaultAnimation;e.animator.start([{distance:r,duration:f(i||a,\"duration\",500),easing:f(i||a,\"easing\",(function(n){return 1+--n*n*n*n*n}))}])}},on:function(n,t,e){void 0===e&&(e=!1),i[n]||(i[n]=[]);var r=i[n].indexOf(t);r>-1?e&&delete i[n][r]:e||i[n].push(t)},options:n},function(){if(e.track=y(e),e.animator=b(e),t)for(var n=0,i=t;n<i.length;n++)(0,i[n])(e);e.track.init(e.options.initial||0),e.emit(\"created\")}(),e}(t,g([M(n,{drag:!0,mode:\"snap\",renderMode:\"precision\",rubberband:!0,selector:\".keen-slider__slide\"}),k,w,x],e||[],!0))}catch(n){console.error(n)}};exports.useKeenSlider=function(t,e){var i=n.useRef(null),r=n.useRef(!1),a=n.useRef(t),o=n.useCallback((function(n){n?(a.current=t,i.current=new T(n,t,e),r.current=!1):(i.current&&i.current.destroy&&i.current.destroy(),i.current=null)}),[]);return n.useEffect((function(){r.current?i.current&&i.current.update(a.current):r.current=!0}),[h(a,t)]),[o,i]};\n","import React, { ReactNode, useState } from 'react'\n\nimport { useKeenSlider } from 'keen-slider/react'\n\n// import 'keen-slider/keen-slider.min.css'\nimport { StyledArrow, StyledCarousel, StyledDot } from './index.styled'\n\ntype ArrowProps = {\n onClick: (e: any) => void\n isDisabled: boolean\n className: string\n scheme?: 'hellosites' | 'marrybaby'\n isLeft?: boolean\n}\n\nexport type Props = {\n row: number\n column: number\n children: ReactNode[]\n scheme?: 'hellosites' | 'marrybaby'\n mode?: 'snap' | 'free' | 'free-snap'\n isDotsShown?: boolean\n isArrowShown?: boolean\n classNameLeftArrow?: string\n classNameRightArrow?: string\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n onChangePage?: (page: number) => void\n}\n\nconst Arrow = ({\n isDisabled,\n isLeft,\n onClick,\n className,\n scheme = 'hellosites',\n}: ArrowProps) => {\n return (\n <StyledArrow\n onClick={onClick}\n data-is-disabled={isDisabled}\n data-is-left={isLeft}\n className={className}\n >\n <svg\n width=\"8\"\n height=\"12\"\n viewBox=\"0 0 8 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n {isLeft ? (\n <path\n d=\"M2.92902 6.00015L6.75002 2.17915C7.16402 1.76515 7.16402 1.09315 6.75002 0.679152C6.33602 0.265152 5.66402 0.265152 5.25002 0.679152L0.636023 5.29315C0.245023 5.68415 0.245023 6.31715 0.636023 6.70715L5.25002 11.3212C5.66402 11.7352 6.33602 11.7352 6.75002 11.3212C7.16402 10.9072 7.16402 10.2352 6.75002 9.82115L2.92902 6.00015Z\"\n fill={scheme === 'hellosites' ? '#595959' : '#E55C8A'}\n />\n ) : (\n <path\n d=\"M5.07095 6.00015L1.24995 2.17915C0.835953 1.76515 0.835953 1.09315 1.24995 0.679152C1.66395 0.265152 2.33595 0.265152 2.74995 0.679152L7.36395 5.29315C7.75495 5.68415 7.75495 6.31715 7.36395 6.70715L2.74995 11.3212C2.33595 11.7352 1.66395 11.7352 1.24995 11.3212C0.835953 10.9072 0.835953 10.2352 1.24995 9.82115L5.07095 6.00015Z\"\n fill={scheme === 'hellosites' ? '#595959' : '#E55C8A'}\n />\n )}\n </svg>\n </StyledArrow>\n )\n}\n\nexport const Carousel = ({\n row,\n column,\n children,\n scheme = 'hellosites',\n classNameLeftArrow = '',\n classNameRightArrow = '',\n mode = 'snap',\n isDotsShown = true,\n isArrowShown = false,\n dataEventCategory,\n dataEventAction,\n dataEventLabel,\n onChangePage,\n}: Props) => {\n const [currentSlide, setCurrentSlide] = React.useState(0)\n const [loaded, setLoaded] = useState(false)\n const [sliderRef, instanceRef] = useKeenSlider<HTMLDivElement>({\n defaultAnimation: {\n duration: 1000,\n },\n initial: 0,\n slideChanged(slider) {\n setCurrentSlide(slider.track.details.rel)\n onChangePage && onChangePage(slider.track.details.rel)\n },\n created() {\n setLoaded(true)\n },\n drag: true,\n mode: mode,\n slides: {\n spacing: 12,\n },\n })\n\n // Separate the children by row and column\n const newChildren: ReactNode[][] = []\n const itemsPerPage = row * column\n for (let i = 0; i < children.length; i += itemsPerPage) {\n const chunk = children.slice(i, i + itemsPerPage)\n newChildren.push(chunk)\n }\n\n return (\n <StyledCarousel row={row} column={column}>\n <div className=\"navigation-wrapper\">\n <div ref={sliderRef} className=\"keen-slider slides-wrapper\">\n {newChildren.map((itemsInRow, index) => (\n <div key={index} className=\"keen-slider__slide page-items\">\n {itemsInRow.map((item, index) => (\n <div key={index}>{item}</div>\n ))}\n </div>\n ))}\n </div>\n {loaded && instanceRef.current && isArrowShown && (\n <>\n <Arrow\n isLeft\n onClick={(e) =>\n e.stopPropagation() || instanceRef.current?.prev()\n }\n isDisabled={currentSlide === 0}\n scheme={scheme}\n className={`left-arrow ${classNameLeftArrow}`}\n data-event-category={dataEventCategory}\n data-event-action={dataEventAction}\n data-event-label={dataEventLabel}\n />\n\n <Arrow\n isLeft={false}\n onClick={(e) =>\n e.stopPropagation() || instanceRef.current?.next()\n }\n isDisabled={\n currentSlide ===\n instanceRef.current.track.details.slides.length - 1\n }\n scheme={scheme}\n className={`right-arrow ${classNameRightArrow}`}\n data-event-category={dataEventCategory}\n data-event-action={dataEventAction}\n data-event-label={dataEventLabel}\n />\n </>\n )}\n </div>\n {loaded && instanceRef.current && isDotsShown && (\n <div className=\"dots\">\n {[...Array(instanceRef.current.track.details.slides.length)].map(\n (_, idx) => {\n return (\n <StyledDot\n key={idx}\n onClick={() => {\n instanceRef.current?.moveToIdx(idx)\n }}\n data-is-active={currentSlide === idx}\n data-is-hellosites={scheme === 'hellosites'}\n ></StyledDot>\n )\n },\n )}\n </div>\n )}\n </StyledCarousel>\n )\n}\n","var img = \"data:image/png;base64,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\";\n export default img;","var img = \"data:image/png;base64,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\";\n export default img;","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nimport { Z_INDEX } from '../constants'\n\nexport const StyledCardSkeleton = styled.div`\n & > div {\n width: 100%;\n margin-bottom: 8px;\n }\n`\nexport const StyledContainer = styled.div`\n &[data-category-list-type='sub'] {\n padding-bottom: 72px;\n }\n\n &[data-is-displayed='false'] {\n display: none;\n }\n\n margin-top: 16px;\n`\nexport const StyledListContainer = styled.div`\n & > :not(:last-child) {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n & > div > :not(:last-child) {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n`\n\nexport const StyledCategoryContainer = styled.div`\n display: flex;\n width: 100%;\n height: 48px;\n align-items: center;\n justify-content: space-between;\n padding: 8px;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n\n &[data-is-heading-category='true'] {\n border-bottom: none;\n background-color: ${(props: ThemeProps) => props.theme.colors.blue50};\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n &[data-event-category] > * {\n pointer-events: none;\n }\n`\n\nexport const StyledCategory = styled.div``\n\nexport const StyledCategoryIcon = styled.div`\n display: flex;\n`\n\nexport const StyledCategoryItemAll = styled.div`\n display: flex;\n align-items: center;\n\n ${MediaQueries.mbDown} {\n padding: 8px;\n }\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n line-height: 24px;\n\n &[data-theme='marryBaby'] {\n color: ${(props: ThemeProps) => props.theme.mbColors.pink};\n }\n &[data-event-category] * {\n pointer-events: none;\n }\n`\n\nexport const StyledImageWrapper = styled.div`\n display: flex;\n align-items: center;\n\n margin-left: 10px;\n`\n\nexport const StyledMenuPopupWrapper = styled.div`\n position: fixed;\n z-index: ${Z_INDEX.menuCategoryPopupWrapper};\n top: 69px;\n left: 0;\n width: 100%;\n height: 100%;\n align-items: center;\n background-color: transparent;\n &[data-is-display='false'] {\n display: none;\n }\n`\n\nexport const StyledMenuPopupContainer = styled.div`\n z-index: ${Z_INDEX.menuCategoryPopupContainer};\n align-items: center;\n\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral50};\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\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\nexport const StyledMenuPopupInner = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n padding: 48px 0;\n\n > :first-child {\n flex: 2;\n }\n\n > :not(:first-child) {\n flex: 1;\n }\n`\n\nexport const StyledHealthCategoriesContainer = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n\n &[data-disabled-divider='false'] {\n border-right: 1px solid #e4e8ec;\n }\n`\n\nexport const StyledCategoryItem = styled.div`\n width: 20%;\n padding-right: 16px;\n margin-bottom: 12px;\n\n & > a {\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n }\n\n & > a:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n\n .iconMenu {\n display: flex;\n align-items: center;\n\n > .imageContainer {\n display: flex;\n width: 32px;\n min-width: 32px;\n align-items: center;\n margin-right: 16px;\n }\n }\n &[data-event-category] > * {\n pointer-events: none;\n }\n`\n\nexport const StyledSubCategoryItem = styled.div`\n display: none;\n`\n\nexport const StyledCloseWrapper = styled.div`\n position: absolute;\n top: 16px;\n right: 0;\n display: flex;\n align-items: center;\n cursor: pointer;\n`\n\nexport const StyledSameLineIndicator = styled.div`\n height: 1px;\n flex: 1;\n margin: 0 16px;\n background-color: ${(props: ThemeProps) => props.theme.mbColors.lightGray};\n`\n","import { ThemeProps } from 'misc/theme'\nimport styled, { StyledComponent } from 'styled-components'\n\nimport { Z_INDEX } from '../constants'\n\nexport const StyledMasterMenuContainer = styled.div`\n position: fixed;\n z-index: 200;\n top: 0;\n width: 100vw;\n height: 100%;\n overflow-x: hidden;\n overflow-y: scroll;\n\n &[data-opened='false'] {\n left: -100%;\n //transition: left 0.1s;\n\n animation-duration: 0.2s;\n animation-name: leftDisappears;\n }\n\n &[data-opened='undefined'] {\n left: -100%;\n }\n\n &[data-opened='true'] {\n left: 0;\n //transition: left 0.1s;\n\n animation-duration: 0.2s;\n animation-name: leftAppears;\n }\n\n &[data-sub-level-opened='false'] {\n right: -100%;\n //transition: right 0.1s;\n\n animation-duration: 0.2s;\n animation-name: rightDisappears;\n }\n\n &[data-sub-level-opened='undefined'] {\n right: -100%;\n }\n\n &[data-sub-level-opened='true'] {\n right: 0;\n //transition: right 0.1s;\n\n animation-duration: 0.2s;\n animation-name: rightAppears;\n }\n`\n\nexport const StyledMenuContainer = styled.div`\n position: relative;\n top: 0;\n\n display: flex;\n width: 100vw;\n min-height: 100%;\n flex-direction: column;\n\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n overflow-x: hidden;\n\n &[data-type='category'] {\n z-index: 300;\n\n // momentum scrolling IOS will display under layer if not doing this\n &[data-is-sub-category-opened='true'] {\n animation-duration: 0.2s;\n animation-name: fading;\n }\n }\n\n &[data-type='sub-category'] {\n z-index: 400;\n }\n\n .category-button {\n border: none;\n }\n`\n\nexport const StyledCategoryButtonWrapper = styled.div`\n position: fixed;\n bottom: 0;\n left: 0;\n display: flex;\n width: 100%;\n height: 72px;\n align-items: flex-start;\n justify-content: center;\n\n background: linear-gradient(0deg, #ffffff 0%, rgba(255, 255, 255, 0) 100%);\n\n .button-image {\n stroke-color: blue;\n }\n\n &[data-site-type='marryBaby'] {\n padding: 0 16px;\n .category-button {\n width: 100%;\n height: 48px;\n }\n }\n`\n\nexport const StyledScrollingCategories = styled.div`\n display: flex;\n\n width: 100%;\n height: 100%;\n flex: 1;\n flex-direction: column;\n align-items: center;\n\n padding-top: 0px;\n //position: absolute;\n\n //top: 0px;\n\n //z-index: -1;\n\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n &[data-type='sub-level'] {\n padding: 4px 16px 16px;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n }\n\n & > div:first-child {\n justify-self: flex-start;\n }\n\n &[data-with-search-input='false'] {\n //padding-top: 64px;\n }\n`\n\nexport const StyledCardSpecialty = styled.div`\n display: flex;\n\n &[data-card-array-no-margin-style='true'] {\n margin: 8px 0;\n\n & > div {\n width: 0;\n flex: 1;\n margin: 0 -1px;\n }\n }\n\n &[data-card-array-no-margin-style='false'] {\n margin: 8px -4px;\n\n & > div {\n flex: 1;\n margin: 0 4px;\n }\n }\n`\n\nexport const StyledScrollingWrapper = styled.div`\n position: relative;\n\n display: flex;\n width: 100%;\n height: 100%;\n flex: 1;\n flex-direction: column;\n\n overflow-y: scroll;\n`\n\nexport const StyledScrollingContent = styled.div`\n flex: 1;\n padding: 16px;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n`\nexport const StyledFakeTopAlignment = styled.div`\n margin-top: 64px;\n`\n\nexport const StyledStickyHeader = styled.div`\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n &[data-is-sub-category-opened='true'] {\n display: none;\n }\n\n &[data-hide-on-search='true'] {\n display: none;\n }\n`\n\nexport const StyledCategoryFooter = styled.div`\n padding: 24px 0;\n`\n\nexport const StyledButtonContainerWrapper = styled.div`\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n\n & > div:first-child {\n margin-right: 8px;\n }\n`\n\n// Desktop\nexport const StyledMenuPopupWrapper = styled.div`\n position: fixed;\n z-index: ${Z_INDEX.menuCategoryPopupWrapper};\n top: 69px;\n left: 0;\n width: 100%;\n height: 100%;\n align-items: center;\n background-color: transparent;\n &[data-is-display='false'] {\n display: none;\n }\n`\n\nexport const StyledMenuPopupContainer = styled.div`\n z-index: ${Z_INDEX.menuCategoryPopupContainer};\n align-items: center;\n\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral50};\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\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\nexport const StyleMenuPopupContainer = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n padding: 48px 0;\n`\n\nexport const StyledHealthCategoriesContainer = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n &[data-disabled-divider='false'] {\n border-right: 1px solid #e4e8ec;\n }\n`\n\nexport const StyledCategoryItem = styled.div`\n width: 20%;\n padding-right: 16px;\n margin-bottom: 12px;\n\n & > a {\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n }\n\n & > a:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n\n .iconMenu {\n display: flex;\n align-items: center;\n\n > .imageContainer {\n display: flex;\n width: 32px;\n min-width: 32px;\n align-items: center;\n margin-right: 16px;\n }\n }\n`\nexport const StyledSubCategoryItem = styled.div`\n display: none;\n`\n\nexport const StyledHealthToolItem = styled.div`\n width: 33%;\n height: 48px;\n padding-right: 16px;\n margin-bottom: 12px;\n\n & > a {\n display: flex;\n align-items: center;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n\n & > :first-child {\n margin-right: 16px;\n }\n }\n\n & > a > p:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n`\n\nexport const StyledCategoryItemAll = styled.div`\n display: flex;\n align-items: center;\n\n padding-right: 16px;\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n line-height: 24px;\n\n &[data-theme='marryBaby'] {\n color: ${(props: ThemeProps) => props.theme.mbColors.pink};\n }\n`\n\nexport const StyledImageWrapper = styled.div`\n display: flex;\n align-items: center;\n\n margin-left: 10px;\n`\n\nexport const StyledCloseWrapper = styled.div`\n position: absolute;\n top: 16px;\n right: 0;\n display: flex;\n align-items: center;\n cursor: pointer;\n`\n\nexport const StyledCloseButton: StyledComponent<\n 'div',\n any,\n { on?: string },\n never\n> = styled.div`\n display: block;\n`\n\nexport const StyledAmpSidebar = styled.div`\n .amp-sidebar {\n width: 100vw;\n\n background-color: ${(props: ThemeProps) => props.theme.colors.neutral50};\n }\n\n .categories__spotlight {\n display: grid;\n margin: 16px;\n margin-bottom: 32px;\n grid-gap: 8px;\n grid-template-columns: 1fr 1fr;\n\n a {\n text-decoration: none;\n }\n }\n\n .categoryCard {\n display: flex;\n width: 100%;\n flex-direction: column;\n align-items: center;\n padding: 16px;\n border-radius: 6px;\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n\n svg {\n margin-bottom: 4px;\n }\n\n &.active {\n background: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n box-shadow: 0px 16px 24px rgba(0, 0, 0, 0.06),\n 0px 2px 8px rgba(0, 0, 0, 0.04), 0px 0px 1px rgba(0, 0, 0, 0.04);\n color: white;\n }\n\n &:not(.active) {\n box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.04),\n 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 0px 1px rgba(0, 0, 0, 0.04);\n }\n }\n\n .amp__menu-header {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n\n svg {\n margin-left: 16px;\n }\n\n > div {\n align-self: center;\n\n &:nth-child(2) {\n justify-self: center;\n }\n }\n }\n\n .logo {\n margin: 22px 0;\n }\n\n .categories {\n margin: 0 16px;\n\n li {\n display: block;\n width: 100%;\n\n + li {\n border-top: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n a {\n display: block;\n margin: 12px 0;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n text-decoration: none;\n }\n }\n }\n`\n\nexport const StyledUnderLine = styled.div`\n width: 20%;\n height: 2px;\n\n background-color: ${(props: ThemeProps) => props.theme.mbColors.pink};\n border-radius: 2px;\n`\n\nexport const StyledServiceListMenuSearchInputWrapper = styled.div`\n .fake-search-input {\n margin-bottom: 24px;\n pointer-events: none;\n }\n`\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled, { StyledComponent } from 'styled-components'\n\nimport { Z_INDEX } from '../constants'\n\nexport const StyledHeaderContainer = styled.header`\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n align-items: center;\n justify-content: center;\n /* overflow-x: hidden; */\n\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n &[data-site-type='marryBaby'] {\n border-bottom: none;\n }\n\n &[data-fixed-bar='true'] {\n position: fixed;\n top: 0;\n }\n\n &[data-fixed-bar='false'] {\n position: absolute;\n }\n\n &[data-collapsed='true'] {\n top: -100%;\n transition: top 0.5s;\n }\n\n &[data-collapsed='false'] {\n top: 0px;\n transition: top 0.5s;\n }\n\n .top-bar-header {\n line-height: normal;\n }\n\n &[data-header-type='home'] {\n position: fixed;\n z-index: ${Z_INDEX.headerContainerHome};\n }\n\n &[data-header-type='popup'] {\n position: absolute;\n z-index: ${Z_INDEX.headerContainerPopup};\n }\n\n &[data-header-type='popup-sub-level'] {\n position: absolute;\n z-index: ${Z_INDEX.headerContainerPopupSUbLevel};\n }\n\n &[data-is-displayed='false'] {\n //display: none;\n visibility: hidden;\n }\n\n &[data-is-amp='true'] {\n position: relative;\n }\n\n .menu-handler:focus #categories-menu {\n left: 0;\n transition: left 0.1s;\n }\n`\n\nexport const StyledMenuContainer = styled.header`\n position: absolute;\n bottom: 20px;\n left: 16px;\n display: flex;\n align-items: center;\n`\n\nexport const StyledMenuIcon: StyledComponent<\n 'div',\n any,\n { on?: string },\n never\n> = styled.div`\n margin-right: 8px;\n &[data-event-category] > * {\n pointer-events: none;\n }\n`\n\nexport const StyledMenuSearchInput = styled.div`\n position: relative;\n display: flex;\n width: 100%;\n height: 64px;\n justify-content: center;\n\n padding: 8px 0;\n margin-top: 64px;\n &[data-sponsored='true'] {\n margin-top: 105px;\n }\n &[data-sitewide-banner-shown='true'] {\n margin-top: 128px;\n }\n\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n #search-input-home,\n #search-input-home-temp,\n #search-input-popup {\n position: relative;\n z-index: ${Z_INDEX.menuSearchInputPopup};\n width: 100%;\n box-shadow: 0px 0px 5px rgba(38, 38, 38, 0.08);\n }\n\n .displayIcon {\n z-index: ${Z_INDEX.menuSearchInputDisplayIcon};\n display: flex;\n width: 24px;\n height: 24px;\n align-items: center;\n }\n\n &[data-is-displayed='false'] {\n display: none;\n opacity: 0;\n }\n\n &[data-is-displayed='true'] {\n opacity: 1;\n transition: opacity 0.2s;\n }\n\n &[data-header-type='popup'] {\n position: fixed;\n z-index: ${Z_INDEX.menuSearchPopup};\n left: 0;\n width: 100vw;\n }\n`\n\nexport const StyledDesktopHeaderWrapper = styled.div`\n position: fixed;\n z-index: 201;\n top: 0;\n left: 0;\n\n width: 100%;\n align-items: center;\n\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n transition: height 0.3s;\n\n .menu-handler-item {\n gap: 8px;\n a {\n text-decoration: none;\n }\n }\n\n &[data-site-type='helloSites'] {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n &[data-marry-baby-tone='pink'] {\n background-color: ${(props: ThemeProps) => props.theme.mbColors.lightPink};\n }\n\n //categories\n .menu-handler-categories:focus > .menu-handler-item {\n pointer-events: none;\n }\n .menu-handler-categories:focus-within .top-menu-categories {\n display: block;\n }\n .menu-handler-categories:focus .top-menu-health-tools {\n display: none;\n }\n\n //health tools\n .menu-handler-health-tools:focus > .menu-handler-item {\n pointer-events: none;\n }\n .menu-handler-health-tools:focus-within .top-menu-health-tools {\n display: block;\n }\n .menu-handler-health-tools:focus .top-menu-categories {\n display: none;\n }\n\n //communities\n .menu-handler-communities:focus > .menu-handler-item {\n pointer-events: none;\n }\n .menu-handler-communities:focus-within .top-menu-communities {\n display: block;\n }\n .menu-handler-communities:focus .top-menu-care-specialties {\n display: none;\n }\n\n //care\n .menu-handler-care-specialties:focus > .menu-handler-item {\n pointer-events: none;\n }\n .menu-handler-care-specialties:focus-within .top-menu-care-specialties {\n display: block;\n }\n .menu-handler-care-specialties:focus .top-menu-communities {\n display: none;\n }\n`\n\nexport const StyledDesktopHeader = styled.div`\n display: flex;\n height: 100%;\n align-items: center;\n\n justify-content: space-between;\n padding: 0;\n`\n\nexport const StyledLeftGroup = styled.div`\n display: flex;\n align-items: center;\n`\n\nexport const StyledLogoWrapper = styled.div`\n padding-right: 16px;\n &[data-is-having-border='true'] {\n border-right: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n`\n\nexport const StyledDesktopMenuSearchInput = styled.div`\n padding: 0 16px;\n\n & > div {\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n }\n\n &[data-marry-baby-theme='white'] > div {\n background-color: ${(props: ThemeProps) => props.theme.mbColors.lightGray};\n }\n\n #search-input-home,\n #search-input-home-temp {\n height: 32px;\n box-sizing: border-box;\n padding: 0 16px 0 48px;\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral100};\n border-radius: 6px;\n filter: drop-shadow(0px 1px 1px rgba(0, 0, 0, 0.1));\n outline: none;\n }\n\n &[data-is-styled-borderless='true'] {\n #search-input-home,\n #search-input-home-temp {\n height: 40px;\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.white};\n border-radius: 16px;\n filter: none;\n }\n }\n`\n\nexport const StyledRightGroup = styled.div`\n display: flex;\n align-items: center;\n\n & > :not(:first-child) {\n margin-left: 6px;\n }\n`\n\nexport const StyledImageWrapper = styled.div`\n display: flex;\n align-items: center;\n\n margin-left: 8px;\n`\n\nexport const StyledMenuIconWrapper = styled.div`\n display: flex;\n align-items: center;\n\n margin-left: 4px;\n`\n\nexport const StyledHeaderMenuItem = styled.div`\n margin-right: 8px;\n & > div {\n display: flex;\n align-items: center;\n\n cursor: pointer;\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n line-height: 22px;\n\n user-select: none;\n }\n\n &[data-is-active='true'] {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n\n div[data-site-type='marryBaby'] & {\n color: ${(props: ThemeProps) => props.theme.mbColors.pink};\n }\n }\n\n &[data-is-active='false'] {\n color: ${(props: ThemeProps) => props.theme.colors.secondaryDark};\n\n div[data-site-type='marryBaby'] & {\n color: ${(props: ThemeProps) => props.theme.mbColors.dark};\n }\n }\n .care-navigator {\n color: ${(props: ThemeProps) => props.theme.colors.secondaryDark};\n font-size: 14px;\n font-weight: 700;\n }\n`\n\nexport const StyledProfileMenu = styled.div`\n flex-shrink: 0;\n & > div {\n display: flex;\n align-items: center;\n\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n line-height: 22px;\n\n user-select: none;\n }\n ${MediaQueries.mbDown} {\n position: absolute;\n right: 16px;\n bottom: 16px;\n height: 32px;\n display: flex;\n }\n .menu-handler-item {\n gap: 8px;\n .care-button {\n text-decoration: none;\n }\n }\n\n .login-btn-mobile[data-color='secondary'][data-size='sm'] {\n padding-right: 1rem;\n padding-left: 1rem;\n }\n`\n\nexport const StyledCloseButton: StyledComponent<\n 'div',\n any,\n { on?: string },\n never\n> = styled.div`\n display: block;\n`\n\nexport const StyledAmpCategoryCard: StyledComponent<\n 'div',\n any,\n { on?: string; '[class]'?: string },\n never\n> = styled.div``\n\nexport const StyledAmpSidebar = styled.div`\n .amp-sidebar {\n width: 100vw;\n max-width: 100vw;\n background-color: ${(props: ThemeProps) => props.theme.colors.neutral50};\n }\n\n .nav-card {\n display: flex;\n width: 100%;\n flex-direction: column;\n align-items: center;\n padding: 16px;\n border-radius: 6px;\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n\n span {\n margin-top: 4px;\n font-size: 13px;\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n\n svg {\n margin-bottom: 4px;\n }\n\n &.active {\n background: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n box-shadow: 0px 16px 24px rgba(0, 0, 0, 0.06),\n 0px 2px 8px rgba(0, 0, 0, 0.04), 0px 0px 1px rgba(0, 0, 0, 0.04);\n color: white;\n }\n\n &:not(.active) {\n box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.04),\n 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 0px 1px rgba(0, 0, 0, 0.04);\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n }\n }\n\n .categories__spotlight {\n display: grid;\n margin: 16px;\n margin-bottom: 32px;\n grid-gap: 8px;\n grid-template-columns: 1fr 1fr;\n\n a {\n text-decoration: none;\n }\n }\n\n .amp__menu-header {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n\n > div:first-child > amp-img {\n margin-left: 1rem;\n }\n\n svg {\n margin-left: 16px;\n }\n\n > div {\n align-self: center;\n\n &:nth-child(2) {\n justify-self: center;\n }\n }\n }\n\n .logo {\n margin: 22px 0;\n\n img {\n object-fit: contain;\n }\n }\n\n .categories {\n margin: 0 16px;\n\n li {\n position: relative;\n display: block;\n width: 100%;\n\n + li {\n border-top: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n &.health-tool {\n display: flex;\n align-items: center;\n\n amp-img {\n margin-right: 1rem;\n }\n + li {\n border-top: none;\n }\n\n a {\n display: flex;\n align-items: center;\n }\n }\n\n a {\n display: block;\n margin: 16px 0;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n text-decoration: none;\n }\n\n &::after {\n position: absolute;\n top: 50%;\n right: 0;\n content: url(\"data:image/svg+xml,%3Csvg width='6' height='10' viewBox='0 0 6 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 9L5 5L1 1' stroke='%23595959' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A\");\n }\n }\n }\n`\n\nexport const StyledAvatar = styled.div`\n width: 40px;\n height: 40px;\n cursor: pointer;\n\n img {\n border-radius: 50%;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n object-fit: cover;\n }\n\n .avatar-default {\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${(props: ThemeProps) =>\n props.theme.colors.secondaryBase};\n border-radius: 50%;\n color: white;\n font-size: 20px;\n font-weight: bold;\n }\n`\n","import React from 'react'\n\nconst SearchIcon = () => {\n return (\n <svg\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 fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.97183 10.8732C3.97183 7.0617 7.0617 3.97183 10.8732 3.97183C14.6848 3.97183 17.7746 7.0617 17.7746 10.8732C17.7746 14.6848 14.6848 17.7746 10.8732 17.7746C7.0617 17.7746 3.97183 14.6848 3.97183 10.8732ZM10.8732 2C5.97268 2 2 5.97268 2 10.8732C2 15.7738 5.97268 19.7465 10.8732 19.7465C12.9683 19.7465 14.8938 19.0204 16.4118 17.8061L20.3169 21.7112C20.702 22.0963 21.3262 22.0963 21.7112 21.7112C22.0963 21.3262 22.0963 20.702 21.7112 20.3169L17.8061 16.4118C19.0204 14.8938 19.7465 12.9683 19.7465 10.8732C19.7465 5.97268 15.7738 2 10.8732 2Z\"\n fill=\"#8C8C8C\"\n />\n </svg>\n )\n}\n\nexport { SearchIcon }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nexport const StyledAmpSidebar = styled.div`\n amp-sidebar {\n width: 100vw;\n max-width: 100vw;\n background-color: ${(props: ThemeProps) => props.theme.colors.neutral50};\n }\n\n .nav-card {\n display: flex;\n width: 100%;\n flex-direction: column;\n align-items: center;\n padding: 16px;\n border-radius: 6px;\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n\n span {\n margin-top: 4px;\n font-size: 13px;\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n\n svg {\n margin-bottom: 4px;\n }\n\n &.active {\n background: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n box-shadow: 0px 16px 24px rgba(0, 0, 0, 0.06),\n 0px 2px 8px rgba(0, 0, 0, 0.04), 0px 0px 1px rgba(0, 0, 0, 0.04);\n color: white;\n }\n\n &:not(.active) {\n box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.04),\n 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 0px 1px rgba(0, 0, 0, 0.04);\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n }\n }\n\n .categories__spotlight {\n display: grid;\n margin: 16px;\n margin-bottom: 32px;\n grid-gap: 8px;\n grid-template-columns: 1fr 1fr;\n\n a {\n text-decoration: none;\n }\n }\n\n .amp__menu-header {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n\n > div:first-child > amp-img {\n margin-left: 1rem;\n }\n\n svg {\n margin-left: 16px;\n }\n\n > div {\n align-self: center;\n\n &:nth-child(2) {\n justify-self: center;\n }\n }\n }\n\n .logo {\n margin: 22px 0;\n\n img {\n object-fit: contain;\n }\n }\n\n .categories {\n margin: 0 16px;\n\n li {\n position: relative;\n display: block;\n width: 100%;\n\n + li {\n border-top: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n &.health-tool {\n display: flex;\n align-items: center;\n\n amp-img {\n margin-right: 1rem;\n }\n + li {\n border-top: none;\n }\n\n a {\n display: flex;\n align-items: center;\n }\n }\n\n a {\n display: block;\n margin: 16px 0;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n text-decoration: none;\n }\n\n &:not(.spotlight-li)::after {\n position: absolute;\n top: 50%;\n right: 0;\n content: url(\"data:image/svg+xml,%3Csvg width='6' height='10' viewBox='0 0 6 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 9L5 5L1 1' stroke='%23595959' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A\");\n }\n }\n }\n`\n\nexport const StyledAmpSearchBox = styled.a`\n position: relative;\n margin: 0 16px 24px;\n display: block;\n text-decoration: none;\n\n svg {\n position: absolute;\n left: 12px;\n top: 12px;\n }\n\n .amp-search-input {\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.gray200};\n height: 48px;\n border-radius: 6px;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n padding-left: 48px;\n }\n`\n","import React from 'react'\n\nimport { LocaleType } from 'interfaces/types'\nimport { SpotlightSummary } from 'together/interfaces/types'\n\nimport { Heading, Logo } from '../../../atoms'\nimport {\n DiscoverIcon,\n SehatBadge,\n HealthToolsIcon,\n HelloCareIcon,\n TogetherIcon,\n} from '../assets'\nimport { LOCALE_SPECS } from '../constants'\nimport { StyledCategoryItemAll } from '../menuCategoriesList/index.styled'\nimport { StyledImageWrapper } from '../menuServiceList/index.styled'\nimport {\n StyledAmpCategoryCard,\n StyledCloseButton,\n} from '../navigationBar/index.styled'\nimport { SearchIcon } from '../navigationBar/SearchIcon'\nimport { Category, HealthTool, HealthToolByCategory } from '../types'\nimport { useTranslation } from '../utils'\nimport { StyledAmpSearchBox, StyledAmpSidebar } from './index.styled'\n\nexport type AmpSidebarProps = {\n locale: LocaleType\n categoriesSSR: Category[]\n healthToolsSSR: HealthToolByCategory[]\n spotlightsSSR?: SpotlightSummary[]\n serviceUrls: {\n TOGETHER_URL_FE: string\n CARE_URL_FE: string\n DISCOVER_URL_FE: string\n }\n together: {\n TOGETHER_MENU_COUNTRIES_ENABLED: LocaleType[]\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES: LocaleType[]\n togetherApiDomain: string\n }\n care: {\n CARE_MENU_COUNTRIES_ENABLED: LocaleType[]\n ENABLE_CARE_PROFILE_MENU_LOCALES: LocaleType[]\n careApiDomain: string\n }\n basePath: string\n searchPlaceholder: string\n}\nexport const AmpSidebar = ({\n locale,\n categoriesSSR,\n healthToolsSSR,\n spotlightsSSR,\n serviceUrls,\n together,\n care,\n basePath,\n searchPlaceholder,\n}: AmpSidebarProps) => {\n const f = useTranslation()\n return (\n <StyledAmpSidebar>\n <amp-sidebar\n id=\"discover-amp-sidebar\"\n layout=\"nodisplay\"\n style={{ width: '100vw', maxWidth: '100vw' }}\n >\n <amp-nested-menu layout=\"fill\">\n <ul style={{ paddingBottom: 24 }}>\n <div className=\"amp__menu-header\">\n <StyledCloseButton\n on=\"tap:discover-amp-sidebar.close\"\n role=\"button\"\n tabIndex={1}\n >\n <svg\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 18M18 18L6 6\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n />\n </svg>\n </StyledCloseButton>\n <div className=\"logo\">\n <Logo\n height=\"32px\"\n width=\"121px\"\n type={LOCALE_SPECS.LOGO_TYPE as any}\n isAmp={true}\n badge={\n locale === 'id-ID' ? (\n <amp-img src={SehatBadge} width=\"56\" height=\"23\" />\n ) : undefined\n }\n />\n </div>\n <div></div>\n </div>\n\n <StyledAmpSearchBox href=\"/search\">\n <SearchIcon />\n\n <input\n className=\"amp-search-input\"\n type=\"text\"\n placeholder={searchPlaceholder}\n readOnly\n />\n </StyledAmpSearchBox>\n\n <div className=\"categories__spotlight\">\n <StyledAmpCategoryCard\n // className=\"active\"\n on=\"tap:AMP.setState({healthToolsActive: true})\"\n className=\"nav-card active\"\n data-amp-bind-class=\"healthToolsActive ? 'nav-card active' : 'nav-card not-active'\"\n role=\"button\"\n tabIndex={1}\n >\n <amp-img src={DiscoverIcon} width=\"48\" height=\"48\"></amp-img>\n <span>{f('home.navigator.menuItem.discover')}</span>\n </StyledAmpCategoryCard>\n <StyledAmpCategoryCard\n role=\"button\"\n tabIndex={1}\n className=\"nav-card\"\n on=\"tap:AMP.setState({healthToolsActive: false})\"\n data-amp-bind-class=\"healthToolsActive ? 'nav-card not-active' : 'nav-card active'\"\n >\n <amp-img src={HealthToolsIcon} width=\"48\" height=\"48\"></amp-img>\n <span>{f('home.navigator.menuItem.healthTools')}</span>\n </StyledAmpCategoryCard>\n {together.TOGETHER_MENU_COUNTRIES_ENABLED.includes(locale) && (\n <a href={serviceUrls.TOGETHER_URL_FE}>\n <StyledAmpCategoryCard\n role=\"button\"\n tabIndex={1}\n className=\"nav-card\"\n on=\"tap:AMP.setState({healthToolsActive: false})\"\n >\n <amp-img\n src={TogetherIcon}\n width=\"48\"\n height=\"48\"\n ></amp-img>\n <span>{f('home.navigator.menuItem.together')}</span>\n </StyledAmpCategoryCard>\n </a>\n )}\n {care.CARE_MENU_COUNTRIES_ENABLED.includes(locale) && (\n <a href={serviceUrls.CARE_URL_FE}>\n <StyledAmpCategoryCard\n role=\"button\"\n tabIndex={1}\n className=\"nav-card\"\n >\n <amp-img\n src={HelloCareIcon}\n width=\"48\"\n height=\"48\"\n ></amp-img>\n <span>{f('home.navigator.menuItem.helloCare')}</span>\n </StyledAmpCategoryCard>\n </a>\n )}\n </div>\n <ul\n className=\"categories\"\n data-amp-bind-hidden=\"!healthToolsActive\"\n style={{ marginBottom: 24 }}\n >\n <Heading tag=\"h3\" fontWeight=\"bold\" style={{ marginBottom: 24 }}>\n {f('home.navigator.menuItem.discover')}\n </Heading>\n {categoriesSSR &&\n categoriesSSR.length > 1 &&\n categoriesSSR.map((c) => (\n <li key={c.name}>\n <a href={c.permalink}>{c.displayName}</a>\n </li>\n ))}\n <a\n style={{ textDecoration: 'none' }}\n href={`${serviceUrls.DISCOVER_URL_FE}/categories/`}\n >\n <StyledCategoryItemAll key={'all-categories'}>\n {f('home.navigator.menuItem.allCategories')}\n <StyledImageWrapper>\n <amp-img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n height=\"16\"\n width=\"16\"\n alt={f('home.navigator.menuItem.allCategories')}\n />\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </ul>\n\n <ul\n className=\"categories\"\n data-amp-bind-hidden=\"!healthToolsActive\"\n >\n <Heading tag=\"h3\" fontWeight=\"bold\" style={{ marginBottom: 24 }}>\n {f('home.navigator.menuItem.spotlights')}\n </Heading>\n {spotlightsSSR &&\n spotlightsSSR.length > 0 &&\n spotlightsSSR.map((c) => (\n <li key={c.id} className=\"spotlight-li\">\n <a href={c.permalink}>{c.name}</a>\n </li>\n ))}\n <a\n style={{ textDecoration: 'none' }}\n href={`${serviceUrls.DISCOVER_URL_FE}/spotlight/`}\n >\n <StyledCategoryItemAll key={'all-spotlight'}>\n {f('home.navigator.menuItem.allSpotlight')}\n <StyledImageWrapper>\n <amp-img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n height=\"16\"\n width=\"16\"\n alt={f('home.navigator.menuItem.allSpotlight')}\n />\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </ul>\n <ul\n className=\"categories\"\n data-amp-bind-hidden=\"healthToolsActive\"\n hidden\n >\n {healthToolsSSR &&\n healthToolsSSR.length > 1 &&\n healthToolsSSR.map(\n (category: HealthToolByCategory, index) =>\n category.healthTools &&\n category.healthTools.length > 0 && (\n <React.Fragment key={index}>\n <Heading tag=\"h4\" fontWeight=\"bold\">\n {category.name}\n </Heading>\n {category.healthTools.map((healthtool: HealthTool) => (\n <li key={healthtool.title} className=\"health-tool\">\n <a href={healthtool.link}>\n <amp-img\n width=\"32\"\n height=\"32\"\n src={healthtool.icon}\n ></amp-img>\n <span>{healthtool.title}</span>\n </a>\n </li>\n ))}\n </React.Fragment>\n ),\n )}\n </ul>\n </ul>\n </amp-nested-menu>\n </amp-sidebar>\n </StyledAmpSidebar>\n )\n}\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nexport const StyledFooter = styled.footer`\n background-color: #1b3250;\n\n .inner {\n padding: 64px 24px 98px 24px;\n ${MediaQueries.mbDown} {\n padding: 64px 0;\n }\n margin: 0 auto;\n //max-width: 1168px;\n\n &[data-type='mini'] {\n padding: 24px 0;\n }\n }\n\n .footer-logo {\n max-width: 132px;\n max-height: 32px;\n margin-bottom: 24px;\n &[data-is-sehat='true'] {\n max-width: 250px;\n }\n\n img {\n object-fit: contain;\n }\n }\n\n .social {\n margin-top: 24px;\n\n ${MediaQueries.mbDown} {\n margin-top: 32px;\n p {\n font-size: 13px;\n }\n }\n\n ${MediaQueries.mbUp} {\n p {\n font-size: 12px;\n }\n }\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n }\n }\n\n .icons {\n margin-top: 12px;\n margin-bottom: 20px;\n > a:not(:last-child) {\n margin-right: 16px;\n }\n\n .social-icon {\n width: 32px;\n height: 32px;\n }\n }\n\n .newsletter {\n > p {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n\n font-size: 14px;\n line-height: 22px;\n\n ${MediaQueries.mbUp} {\n max-width: 380px;\n line-height: 28.5px;\n }\n }\n }\n\n hr {\n height: 1px;\n border: none;\n margin: 16px 0 16px 0;\n ${MediaQueries.mbDown} {\n margin-top: 0px;\n }\n background: ${(props: ThemeProps) => props.theme.colors.neutral500};\n opacity: 0.1;\n outline: none;\n }\n\n .hrMobile {\n ${MediaQueries.mbUp} {\n display: none;\n }\n }\n\n .copyright {\n padding-top: 8px;\n\n ${MediaQueries.mbUp} {\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n justify-content: space-between;\n }\n\n .copyright-content {\n width: 90%;\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n font-size: 12px;\n }\n\n .copyright-image {\n width: 10%;\n align-self: flex-start;\n\n img {\n max-width: 100px;\n margin-bottom: 16px;\n\n ${MediaQueries.mbUp} {\n margin-bottom: 0px;\n }\n }\n }\n\n &[data-is-amp='true'] {\n img {\n margin-bottom: 0;\n }\n }\n }\n\n .copyright-certificate {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n ${MediaQueries.mbDown} {\n font-size: 11px;\n }\n ${MediaQueries.mbUp} {\n font-size: 12px;\n }\n }\n\n .biglinks {\n margin-bottom: 12px;\n }\n\n .bigLink {\n display: block;\n color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: 14px;\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n text-decoration: none;\n word-break: break-word;\n\n &:not(:last-child) {\n margin-bottom: 12px;\n }\n\n ${MediaQueries.mbDown} {\n display: inline-block;\n width: 50%;\n font-size: 16px;\n }\n }\n\n .mHalf {\n display: inline-block;\n width: 50%;\n padding-right: 24px;\n margin-bottom: 24px;\n vertical-align: top;\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n\n ${MediaQueries.mbDown} {\n margin-bottom: 8px;\n font-size: 13px;\n line-height: 20px;\n }\n ${MediaQueries.mbUp} {\n margin-bottom: 12px;\n font-size: 14px;\n }\n }\n }\n\n .otherSites {\n p {\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n font-size: 12px;\n ${MediaQueries.mbDown} {\n font-size: 13px;\n }\n ${MediaQueries.mbUp} {\n font-size: 13px;\n }\n }\n\n .flags {\n display: flex;\n margin-bottom: 8px;\n\n div {\n margin-right: 10px;\n }\n }\n }\n\n .link {\n display: block;\n text-decoration: none;\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.white};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n word-break: break-word;\n }\n\n &:not(:last-child) {\n margin-bottom: 12px;\n }\n }\n\n .columns {\n ${MediaQueries.mbUp} {\n display: flex;\n flex-direction: row;\n width: 100%;\n\n > div:nth-child(1) {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n flex-basis: 40%;\n }\n\n > div:nth-child(2) {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n flex-basis: 60%;\n\n > div:nth-child(1) {\n flex-basis: 45%;\n }\n\n > div:not(:last-child) {\n flex-basis: 27.5%;\n }\n\n > div:last-child() {\n flex-basis: 0;\n }\n }\n }\n }\n\n .signupButton {\n display: none;\n border: none;\n margin-top: 16px;\n outline: none;\n text-transform: uppercase;\n }\n`\nexport const StyledFlag = styled.div`\n width: 32px;\n height: 32px;\n margin-right: 10px;\n\n &[data-is-mobile='true'] {\n width: 24px;\n height: 24px;\n }\n\n .country-flag {\n width: 100%;\n height: 100%;\n }\n`\n","import React from 'react'\n\nimport { Button } from 'components/atoms/button'\nimport { Container } from 'components/atoms/container'\nimport { Text } from 'components/atoms/text'\nimport { LocaleType } from 'interfaces/types'\nimport { theme } from 'misc/theme'\n\nimport { domainLocales } from '../constants'\nimport { FooterInfo } from '../types'\nimport { useTranslation } from '../utils'\nimport { StyledFooter, StyledFlag } from './index.styled'\n\nexport type Props = {\n className?: string\n isMobile: boolean\n type?: 'main' | 'mini'\n footerInfo?: FooterInfo\n locale: LocaleType\n isAmp: boolean\n}\n\ntype IItem = {\n title: string\n url: string\n}\n\ntype ISocial = {\n icon: string\n name: string\n url: string\n}\n\ntype IBranch = {\n flag: string\n name: string\n url: string\n}\n\ntype FlagProps = {\n url: string\n isMobile?: boolean\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n}\n\nconst Flag = ({\n url,\n isMobile,\n dataEventCategory,\n dataEventAction,\n dataEventLabel,\n}: FlagProps) => {\n return (\n <StyledFlag data-is-mobile={isMobile}>\n <img\n className=\"country-flag\"\n src={url}\n alt=\"Country Flag\"\n data-event-category={dataEventCategory}\n data-event-action={dataEventAction}\n data-content-label={dataEventLabel}\n />\n </StyledFlag>\n )\n}\n\nconst Footer = ({\n className,\n type = 'main',\n footerInfo,\n isMobile,\n locale,\n isAmp,\n}: Props) => {\n const f = useTranslation()\n\n const footerMenu = footerInfo?.menu\n\n return (\n <StyledFooter\n as={isAmp && type === 'mini' ? 'div' : 'footer'}\n className={className}\n style={\n type === 'mini'\n ? {\n backgroundColor: theme.colors.neutral50,\n }\n : {}\n }\n next-page-hide\n >\n <Container>\n <div className=\"inner\" data-type={type} next-page-hide=\"\">\n {type === 'main' ? (\n <>\n <a href=\"/\">\n {!isAmp ? (\n <img\n className=\"footer-logo\"\n src={footerInfo?.general?.logo}\n alt=\"Logo\"\n data-is-sehat={locale === 'id-ID'}\n />\n ) : footerInfo?.general?.logo ? (\n <amp-img\n src={footerInfo?.general?.logo}\n alt=\"Site logo\"\n width=\"132\"\n height=\"32\"\n style={{\n marginBottom: 24,\n }}\n />\n ) : null}\n </a>\n <div className=\"columns\">\n <div className=\"newsletter\">\n <Text size=\"p1\" type=\"bold\">\n {footerInfo?.general?.content}\n </Text>\n <Button className=\"signupButton\" color=\"primary\" size=\"lg\">\n {f('footer.signUp')}\n </Button>\n <div className=\"social\">\n <Text size=\"sm\" type=\"regular\">\n {footerInfo?.social?.title}\n </Text>\n <div className=\"icons\">\n {footerInfo?.social?.socials?.map(\n (social: ISocial, idx: number) => (\n <a\n key={idx}\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n href={social.url}\n >\n {!isAmp ? (\n <img\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n src={social.icon}\n alt=\"Logo Social\"\n className=\"social-icon\"\n />\n ) : (\n <amp-img\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n src={social.icon}\n alt=\"Logo Social\"\n width=\"32\"\n height=\"32\"\n ></amp-img>\n )}\n </a>\n ),\n )}\n </div>\n <hr className=\"hrMobile\" />\n </div>\n </div>\n <div>\n {footerMenu && (\n <>\n <div className=\"biglinks\">\n {footerMenu[0]?.items?.map(\n (bigLink: IItem, idx: number) => (\n <a\n data-event-category=\"Footer\"\n data-event-action={bigLink.title}\n data-event-label={`https://${domainLocales[locale]}${bigLink.url}`}\n className=\"bigLink\"\n key={idx}\n href={bigLink.url}\n >\n {bigLink.title}\n </a>\n ),\n )}\n </div>\n <hr className=\"hrMobile\" />\n <div className=\"mHalf\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerMenu[1]?.menu_title}\n </Text>\n\n {footerMenu[1]?.items?.map(\n (informationLink: IItem, idx: number) => (\n <a\n data-event-category=\"Footer\"\n data-event-action={informationLink.title}\n data-event-label={`https://${domainLocales[locale]}${informationLink.url}`}\n className=\"link\"\n href={informationLink.url}\n key={idx}\n >\n <Text\n size=\"sm\"\n type=\"regular\"\n dataEventCategory=\"Footer\"\n dataEventAction={informationLink.title}\n dataEventLabel={`https://${domainLocales[locale]}${informationLink.url}`}\n >\n {informationLink.title}\n </Text>\n </a>\n ),\n )}\n </div>\n <div className=\"mHalf\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerMenu[2]?.menu_title}\n </Text>\n\n {footerMenu[2]?.items?.map(\n (hellohealthlink: IItem, idx: number) =>\n hellohealthlink.url && (\n <a\n data-event-category=\"Footer\"\n data-event-action={hellohealthlink.title}\n data-event-label={hellohealthlink.url}\n className=\"link\"\n href={hellohealthlink.url}\n key={idx}\n >\n <Text\n size=\"sm\"\n type=\"regular\"\n dataEventCategory=\"Footer\"\n dataEventAction={hellohealthlink.title}\n dataEventLabel={hellohealthlink.url}\n >\n {hellohealthlink.title}\n </Text>\n </a>\n ),\n )}\n </div>\n </>\n )}\n {!isAmp && (\n <>\n <hr className=\"hrMobile\" />\n <div className=\"otherSites\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerInfo?.branch?.title}\n </Text>\n <div className=\"flags\">\n {footerInfo?.branch?.branch?.map(\n (flagLink: IBranch, idx: number) => (\n <a\n className=\"link\"\n href={flagLink.url}\n key={idx}\n data-event-category=\"Footer\"\n data-event-action={flagLink.name}\n data-event-label={flagLink.url}\n >\n <Flag\n url={flagLink.flag}\n isMobile={isMobile}\n dataEventCategory=\"Footer\"\n dataEventAction={flagLink.name}\n dataEventLabel={flagLink.url}\n />\n </a>\n ),\n )}\n </div>\n </div>\n </>\n )}\n </div>\n </div>\n\n <hr />\n <div className=\"copyright\" data-is-amp={isAmp || undefined}>\n {footerInfo?.general?.verified && (\n <a\n href={footerInfo?.general?.verified[0]?.url}\n className=\"copyright-image\"\n >\n {isAmp ? (\n <amp-img\n src={footerInfo?.general?.verified[0]?.image}\n alt=\"DMCA Icon\"\n width=\"100\"\n height=\"36\"\n ></amp-img>\n ) : (\n <img\n src={footerInfo?.general?.verified[0]?.image}\n alt=\"DMCA Icon\"\n />\n )}\n </a>\n )}\n\n <Text size=\"xs\" type=\"regular\" className=\"copyright-content\">\n {footerInfo?.general?.copyright}\n </Text>\n </div>\n {locale === 'vi-VN' && (\n <Text\n className=\"copyright-certificate\"\n size=\"xs\"\n type=\"regular\"\n color=\"white\"\n >\n Giấy xác nhận cung cấp dịch vụ mạng xã hội trực tuyến số\n 529/GP-BTTTT, HN ngày 03/12/2019\n </Text>\n )}\n </>\n ) : (\n <>\n {footerInfo?.menu && (\n <div className=\"columns\">\n <div className=\"mHalf\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerInfo?.menu[1]?.menu_title}\n </Text>\n\n {footerInfo?.menu[1]?.items?.map(\n (informationLink: IItem) => (\n <a\n className=\"link\"\n href={informationLink.url}\n key={informationLink.title}\n data-list-type=\"Footer\"\n data-content-type=\"Navigate\"\n data-content-topic=\"Information\"\n data-content-title={informationLink.title}\n data-content-id={`https://${domainLocales[locale]}${informationLink.url}`}\n data-event-category=\"Footer\"\n data-event-action={informationLink.title}\n data-event-label={`https://${domainLocales[locale]}${informationLink.url}`}\n >\n <Text\n dataEventCategory=\"Footer\"\n dataEventAction={informationLink.title}\n dataEventLabel={`https://${domainLocales[locale]}${informationLink.url}`}\n size=\"sm\"\n type=\"regular\"\n style={{\n color: theme.colors.gray800,\n }}\n >\n {informationLink.title}\n </Text>\n </a>\n ),\n )}\n </div>\n <div className=\"mHalf\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerInfo?.menu[2]?.menu_title}\n </Text>\n\n {footerInfo?.menu[2]?.items?.map(\n (hellohealthlink: IItem, idx: number) => (\n <a\n className=\"link\"\n href={hellohealthlink.url}\n key={idx}\n data-list-type=\"Footer\"\n data-content-type=\"Navigate\"\n data-content-topic=\"Hello Health\"\n data-content-title={hellohealthlink.title}\n data-content-id={hellohealthlink.url}\n data-event-category=\"Footer\"\n data-event-action={hellohealthlink.title}\n data-event-label={hellohealthlink.url}\n >\n <Text\n size=\"sm\"\n type=\"regular\"\n style={{\n color: theme.colors.gray800,\n }}\n dataEventCategory=\"Footer\"\n dataEventAction={hellohealthlink.title}\n dataEventLabel={hellohealthlink.url}\n >\n {hellohealthlink.title}\n </Text>\n </a>\n ),\n )}\n </div>\n\n {!isAmp && type !== 'mini' && <hr className=\"hrMobile\" />}\n <div className=\"newsletter\">\n <div className=\"social\">\n <Text size=\"sm\" type=\"regular\">\n {footerInfo?.social?.title}\n </Text>\n <div className=\"icons\">\n {footerInfo?.social?.socials?.map(\n (social: ISocial, idx: number) => (\n <a\n key={idx}\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n href={social.url}\n >\n {!isAmp ? (\n <img\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n src={social.icon}\n alt=\"Logo Social\"\n className=\"social-icon\"\n />\n ) : (\n <amp-img\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n src={social.icon}\n alt=\"Logo Social\"\n width=\"32\"\n height=\"32\"\n ></amp-img>\n )}\n </a>\n ),\n )}\n </div>\n </div>\n </div>\n </div>\n )}\n </>\n )}\n </div>\n </Container>\n </StyledFooter>\n )\n}\n\nexport { Footer }\n","import React from 'react'\n\nimport { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nconst Heading = ({\n type,\n ...elementProps\n}: {\n type: string\n [elementProps: string]: string | JSX.Element | JSX.Element[] | React.ReactNode\n}) => {\n return React.createElement(type, elementProps)\n}\n\nexport const StyledHeading = styled(Heading)`\n color: var(--text-color, ${(props: ThemeProps) => props.theme.mbColors.dark});\n font-family: Krub;\n font-weight: 600;\n letter-spacing: -0.2px;\n\n &[data-type='headline-1'] {\n font-size: 40px;\n line-height: 60px;\n }\n &[data-type='headline-2'] {\n font-size: 32px;\n line-height: 48px;\n }\n &[data-type='headline-3'] {\n font-size: 24px;\n line-height: 40px;\n }\n &[data-type='headline-4'] {\n font-size: 18px;\n line-height: 32px;\n }\n`\n\nexport const StyledText = styled.p`\n color: var(--text-color, ${(props: ThemeProps) => props.theme.mbColors.dark});\n letter-spacing: -0.2px;\n\n &[data-type='subtitle-1'] {\n font-size: 16px;\n font-weight: 600;\n line-height: 26px;\n }\n &[data-type='subtitle-2'] {\n font-size: 14px;\n font-weight: 500;\n line-height: 24px;\n }\n &[data-type='subtitle-3'] {\n font-size: 12px;\n font-weight: 500;\n line-height: 20px;\n }\n &[data-type='bodytext-1'] {\n font-size: 16px;\n font-weight: 400;\n line-height: 28px;\n }\n &[data-type='bodytext-2'] {\n font-size: 14px;\n font-weight: 400;\n line-height: 24px;\n }\n &[data-type='bodytext-3'] {\n font-size: 12px;\n font-weight: 400;\n line-height: 20px;\n }\n &[data-type='caption-1'] {\n font-size: 10px;\n font-weight: 500;\n letter-spacing: -0.1px;\n line-height: 14px;\n }\n &[data-type='caption-2'] {\n font-size: 10px;\n font-weight: 400;\n letter-spacing: -0.1px;\n line-height: 14px;\n }\n`\n","import React from 'react'\n\nimport { CSSProperties } from 'styled-components'\n\nimport { StyledHeading, StyledText } from './index.styled'\n\ntype HeadingProps = {\n type: 'h1' | 'h2' | 'h3' | 'h4'\n color?: string\n style?: CSSProperties\n [x: string]: string | JSX.Element | JSX.Element[] | React.ReactNode\n}\n\nconst MarryBabyHeading = ({ type, color, style, ...props }: HeadingProps) => {\n const DATATYPE = {\n h1: 'headline-1',\n h2: 'headline-2',\n h3: 'headline-3',\n h4: 'headline-4',\n }\n\n return (\n <StyledHeading\n type={type}\n data-type={DATATYPE[type]}\n style={{ ...(color && { '--text-color': color }), ...style }}\n {...props}\n />\n )\n}\n\ntype TextProps = {\n type:\n | 'subtitle-1'\n | 'subtitle-2'\n | 'subtitle-3'\n | 'bodytext-1'\n | 'bodytext-2'\n | 'bodytext-3'\n | 'caption-1'\n | 'caption-2'\n color?: string\n style?: CSSProperties\n [x: string]: string | JSX.Element | JSX.Element[] | React.ReactNode\n}\n\nconst MarryBabyText = ({ type, color, style, ...props }: TextProps) => {\n return (\n <StyledText\n data-type={type}\n style={{ ...style, ...(color && { '--text-color': color }) }}\n {...props}\n />\n )\n}\n\nexport { MarryBabyHeading, MarryBabyText }\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nexport const StyledFooter = styled.footer`\n position: relative;\n background: ${(props: ThemeProps) => props.theme.mbColors.lightGray};\n\n .inner {\n padding: 64px 24px 98px 24px;\n ${MediaQueries.mbDown} {\n padding: 64px 0;\n }\n margin: 0 auto;\n //max-width: 1168px;\n\n &[data-type='mini'] {\n padding: 0;\n }\n }\n\n .footer-logo {\n max-width: 132px;\n margin-bottom: 24px;\n }\n\n .social {\n margin-top: 24px;\n\n ${MediaQueries.mbDown} {\n margin-top: 32px;\n }\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.white};\n }\n }\n\n .icons {\n margin-top: 12px;\n margin-bottom: 20px;\n > a:not(:last-child) {\n margin-right: 16px;\n }\n }\n\n .newsletter {\n > p {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n\n font-size: 14px;\n line-height: 22px;\n\n ${MediaQueries.mbUp} {\n max-width: 380px;\n font-size: 19px;\n line-height: 28.5px;\n }\n }\n }\n\n hr {\n height: 1px;\n border: none;\n margin: 16px 0 16px 0;\n ${MediaQueries.mbDown} {\n margin-top: 0px;\n }\n background: ${(props: ThemeProps) => props.theme.colors.neutral500};\n opacity: 0.1;\n outline: none;\n }\n\n .hrMobile {\n ${MediaQueries.mbUp} {\n display: none;\n }\n }\n\n .copyright {\n padding-top: 8px;\n\n ${MediaQueries.mbUp} {\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n justify-content: space-between;\n }\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.white};\n }\n\n img {\n max-width: 100px;\n margin-bottom: 16px;\n\n ${MediaQueries.mbUp} {\n margin-bottom: 0px;\n }\n }\n\n &[data-is-amp='true'] {\n img {\n margin-bottom: 0;\n }\n }\n }\n\n .biglinks {\n margin-bottom: 12px;\n }\n\n .bigLink {\n display: block;\n color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: 19px;\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n text-decoration: none;\n\n &:not(:last-child) {\n margin-bottom: 12px;\n }\n\n ${MediaQueries.mbDown} {\n display: inline-block;\n width: 50%;\n font-size: 16px;\n }\n }\n\n .mHalf {\n display: inline-block;\n width: 50%;\n padding-right: 24px;\n margin-bottom: 24px;\n vertical-align: top;\n\n p {\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n }\n\n ${MediaQueries.mbDown} {\n margin-bottom: 8px;\n }\n }\n\n .otherSites {\n p {\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n }\n\n .flags {\n display: flex;\n margin-bottom: 8px;\n\n div {\n margin-right: 10px;\n }\n }\n }\n\n .link {\n display: block;\n text-decoration: none;\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.white};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n\n &:not(:last-child) {\n margin-bottom: 12px;\n }\n }\n\n .columns {\n ${MediaQueries.mbUp} {\n display: flex;\n flex-direction: row;\n width: 100%;\n\n > div:nth-child(1) {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n flex-basis: 40%;\n }\n\n > div:nth-child(2) {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n flex-basis: 60%;\n\n > div:nth-child(1) {\n flex-basis: 45%;\n }\n\n > div {\n flex-basis: 27.5%;\n }\n\n > div:last-child() {\n flex-basis: 0;\n }\n }\n }\n }\n\n .signupButton {\n display: none;\n border: none;\n margin-top: 16px;\n outline: none;\n text-transform: uppercase;\n }\n`\n\nexport const StyledFooterContainer = styled.div``\n\nexport const StyledMiniFooterContainer = styled.div`\n position: relative;\n overflow: hidden;\n padding: 40px 40px 100px 40px;\n\n .icons-links {\n position: relative;\n display: flex;\n justify-content: space-between;\n }\n`\n\nexport const StyledFooterMenu = styled.div`\n position: relative;\n margin: 80px 0 0;\n\n ${MediaQueries.mbDown} {\n margin-top: 0px;\n overflow: hidden;\n &:before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 150%;\n height: 100%;\n background-color: #f3f3f3;\n content: '';\n transform: translateX(-50%);\n border-radius: 100% 100% 0 0 / 30% 30%;\n }\n }\n`\n\nexport const StyledMenuContainer = styled.div`\n position: relative;\n padding: 0 16px;\n\n ${MediaQueries.mbDown} {\n padding: 48px 8px 0;\n }\n\n & .grid {\n display: flex;\n flex-wrap: wrap;\n margin: -8px;\n\n & > * {\n display: inline-block;\n flex: 0 0 25%;\n padding: 8px;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n text-decoration: none;\n }\n\n ${MediaQueries.mbDown} {\n & > * {\n flex: 0 0 100%;\n text-align: center;\n }\n }\n }\n\n & .social-wrapper {\n margin-left: auto;\n }\n\n & .social {\n ${MediaQueries.mbUp} {\n & .icons-links {\n margin-top: 16px;\n\n & > a:not(:first-child) {\n margin-left: 10%;\n }\n\n & > a {\n text-decoration: none;\n }\n }\n }\n\n ${MediaQueries.mbDown} {\n width: 100%;\n display: flex;\n background: #fff;\n box-shadow: 0px 0px 24px rgba(0, 0, 0, 0.05);\n border-radius: 8px;\n padding: 20px 16px;\n align-items: center;\n max-width: 400px;\n margin: 32px auto 0px;\n\n & > p {\n font-size: 12px;\n line-height: 20px;\n }\n\n & .icons-links {\n margin-left: 8%;\n flex: 1;\n display: inline-flex;\n justify-content: space-between;\n }\n }\n\n & .icons-links {\n & > a {\n & > img {\n width: 24px;\n object-fit: contain;\n }\n }\n }\n }\n`\n\nexport const StyledCompanyInfo = styled.div`\n position: relative;\n\n ${MediaQueries.mbUp} {\n margin: 80px 0 0;\n overflow: hidden;\n &:before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 150%;\n height: 100%;\n background-color: #f3f3f3;\n border-radius: 2150px 2150px 0 0 / 200px 200px 0 0;\n content: '';\n transform: translateX(-50%);\n }\n }\n\n ${MediaQueries.mbDown} {\n background-color: #f3f3f3;\n }\n`\n\nexport const StyledInfoContainer = styled.div`\n position: relative;\n padding: 64px 16px 154px;\n text-align: center;\n\n ${MediaQueries.mbDown} {\n padding: 48px 8px 32px;\n }\n\n & .company-name {\n margin-top: 24px;\n }\n\n .logo {\n justify-content: center;\n }\n\n & .text-info {\n margin-top: 8px;\n > p {\n margin-bottom: 8px;\n }\n ${MediaQueries.mbDown} {\n text-align: left;\n margin-top: 16px;\n }\n }\n\n & .img-container {\n display: flex;\n max-width: 176px;\n height: 24px;\n justify-content: space-between;\n margin: 24px auto 0;\n\n ${MediaQueries.mbDown} {\n height: 32px;\n max-width: unset;\n justify-content: space-around;\n }\n\n img {\n width: unset;\n height: 100%;\n object-fit: contain;\n }\n }\n\n & > hr {\n border-color: ${(props: ThemeProps) => props.theme.mbColors.midGray};\n margin: 64px 0 18px;\n opacity: 0.1;\n }\n\n & .language-and-copyright {\n display: flex;\n justify-content: center;\n\n ${MediaQueries.mbDown} {\n margin-top: 60px;\n }\n\n & #footer-language-select {\n width: 100%;\n max-width: 114px;\n\n &[data-dropdown-open='true'] > div:after {\n transform: translateY(-60%) rotateZ(-180deg);\n }\n\n ${MediaQueries.mbDown} {\n order: 1;\n }\n\n & > div {\n padding: 0;\n\n & > div > svg {\n max-width: 22px;\n margin-right: 8px;\n transform: translateY(1px);\n }\n\n & > span {\n font-size: 12px;\n letter-spacing: -0.2px;\n line-height: 24px;\n }\n }\n\n & > ul[data-has-icons='true'] {\n width: 158px;\n max-width: 158px;\n border: none;\n border-radius: 4px;\n box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.08);\n\n ${MediaQueries.mbDown} {\n margin-top: 0;\n left: unset;\n right: 0;\n top: unset;\n bottom: 32px;\n }\n\n & li {\n font-size: 12px;\n letter-spacing: -0.2px;\n line-height: 24px;\n\n & > div {\n max-width: 22px;\n & svg {\n width: 22px;\n max-width: 22px;\n transform: translateY(3px);\n }\n }\n }\n }\n }\n\n & > p {\n color: ${(props: ThemeProps) => props.theme.mbColors.midGray};\n }\n }\n`\n\nexport const StyledRoundDecorator = styled.div`\n position: absolute;\n top: 0;\n right: -50%;\n width: 400px;\n height: 400px;\n background-color: #f2fcf7;\n border-radius: 50%;\n`\n","import React from 'react'\n\nimport { Container } from 'components/atoms/container'\nimport { Divider } from 'components/atoms/divider'\nimport { Flag } from 'components/atoms/flag'\nimport { Logo } from 'components/atoms/logo'\nimport { LocaleType } from 'interfaces/types'\nimport { theme } from 'misc/theme'\nimport { CSSProperties } from 'styled-components'\n\nimport { FacebookIcon, YoutubeIcon, InstagramIcon, ZaloIcon } from '../assets'\nimport { MARRY_BABY_DEFAULT_FOOTER } from '../constants'\nimport { MarryBabyText } from '../marryBabyText'\nimport { LogoType, MarryBabyFooterInfo } from '../types'\nimport { useTranslation } from '../utils'\nimport {\n StyledFooterContainer,\n StyledFooterMenu,\n StyledCompanyInfo,\n StyledMenuContainer,\n StyledInfoContainer,\n StyledMiniFooterContainer,\n StyledRoundDecorator,\n} from './index.styled'\n\n// type link = {\n// title: string\n// link: string\n// }\n\nexport type Country =\n | 'VN'\n | 'ID'\n | 'TH'\n | 'KH'\n | 'MY'\n | 'MM'\n | 'PH'\n | 'IN'\n | 'TW'\n\nexport type Flag = {\n country: Country\n link: string\n}\n\nexport type Props = {\n // bigLinks: Array<link>\n // informationLinks: Array<link>\n buttonText?: string\n className?: string\n socialLinks?: {\n facebookLink?: string\n twitterLink?: string\n instagramLink?: string\n zaloLink?: string\n linkedinLink?: string\n youtubeLink?: string\n }\n followusText?: string\n copyrightText?: string\n type: 'main' | 'mini'\n logoType?: LogoType\n isMobile: boolean\n flagLinks?: Array<Flag>\n footerMenu?: MarryBabyFooterInfo\n locale: LocaleType\n}\n\nconst MarryBabyFooter = ({\n socialLinks: {\n facebookLink,\n instagramLink,\n zaloLink,\n youtubeLink,\n } = MARRY_BABY_DEFAULT_FOOTER.SOCIAL_LINKS,\n copyrightText,\n logoType = 'marryBaby',\n isMobile,\n footerMenu = [],\n type = 'main',\n}: Props) => {\n const f = useTranslation()\n\n return type === 'main' ? (\n <StyledFooterContainer className=\"footer-container\">\n {!isMobile && (\n <div className=\"footer-divider\">\n <Container type=\"marryBaby\">\n <Divider style={{ padding: '0 16px' }} type=\"solid\" />\n </Container>\n </div>\n )}\n\n <StyledFooterMenu>\n <Container type=\"marryBaby\">\n <StyledMenuContainer>\n <div className=\"grid\">\n {(isMobile ? footerMenu?.slice(0, 6) : footerMenu)?.map(\n ({ title, link }, i) => (\n <a\n data-event-category=\"Footer\"\n data-event-action={title}\n data-event-label={`${link}`}\n className=\"link\"\n href={link}\n key={`footer-links-${i}`}\n >\n <MarryBabyText\n color={theme.colors.gray800}\n type=\"subtitle-2\"\n >\n {title}\n </MarryBabyText>\n </a>\n ),\n )}\n\n <div className=\"social-wrapper\">\n <div className=\"social\">\n <MarryBabyText type=\"subtitle-2\">\n {f('footer.followUsText')}\n </MarryBabyText>\n <div className=\"icons-links\">\n {facebookLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Facebook\"\n data-content-label={facebookLink}\n href={facebookLink}\n >\n <img src={FacebookIcon} alt=\"Facebook\" />\n </a>\n )}\n {youtubeLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Youtube\"\n data-event-label={youtubeLink}\n href={youtubeLink}\n >\n <img src={YoutubeIcon} alt=\"Youtube\" />\n </a>\n )}\n {instagramLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Instagram\"\n data-content-label={instagramLink}\n href={instagramLink}\n >\n <img src={InstagramIcon} alt=\"Instagram\" />\n </a>\n )}\n {zaloLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n href={zaloLink}\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Zalo\"\n data-event-label={zaloLink}\n >\n <img src={ZaloIcon} alt=\"Zalo\" />\n </a>\n )}\n </div>\n </div>\n </div>\n </div>\n </StyledMenuContainer>\n </Container>\n </StyledFooterMenu>\n\n <StyledCompanyInfo>\n <Container type=\"marryBaby\">\n <StyledInfoContainer>\n <Logo className=\"logo\" type={logoType as LogoType} width=\"121px\" />\n <MarryBabyText className=\"company-name\" type=\"subtitle-2\">\n {f('footer.info.companyName')}\n </MarryBabyText>\n\n <div className=\"text-info\">\n <MarryBabyText type=\"bodytext-3\">\n {f('footer.info.address')}\n </MarryBabyText>\n <MarryBabyText type=\"bodytext-3\">\n {f('footer.info.license')}\n </MarryBabyText>\n <MarryBabyText type=\"bodytext-3\">\n {f('footer.info.email')}\n </MarryBabyText>\n {/* <MarryBabyText type=\"bodytext-3\">\n {f('footer.info.contentResponsibility')}\n </MarryBabyText> */}\n {/* <MarryBabyText type=\"bodytext-3\">\n {f('footer.info.certificate')}\n </MarryBabyText> */}\n </div>\n\n <div className=\"img-container\">\n <img src=\"/images/dmca_protected.png\" alt=\"DMCA protected\" />\n <a\n href=\"http://online.gov.vn/Home/WebDetails/25055?AspxAutoDetectCookieSupport=1\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <img src=\"/images/mit_registered.png\" alt=\"MIT registered\" />\n </a>\n </div>\n\n {!isMobile && <Divider type=\"solid\" />}\n\n <div className=\"language-and-copyright\">\n {/* <Dropdown\n placeholder=\"Choose language\"\n id=\"footer-language-select\"\n options={languageDropdownOptions}\n value={activeLanguage}\n onChange={onSelectLanguage}\n placeholderIcon={activeLanguage?.icon}\n /> */}\n <MarryBabyText type=\"bodytext-3\">{copyrightText}</MarryBabyText>\n </div>\n </StyledInfoContainer>\n </Container>\n </StyledCompanyInfo>\n </StyledFooterContainer>\n ) : (\n <StyledMiniFooterContainer>\n <StyledRoundDecorator />\n <MarryBabyText\n type=\"subtitle-3\"\n style={\n {\n marginBottom: 24,\n textTransform: 'uppercase',\n fontWeight: theme.sizes.fwSemiBold,\n } as CSSProperties\n }\n color={theme.mbColors.midGray}\n >\n {f('footer.followUsText')}\n </MarryBabyText>\n <div className=\"icons-links\">\n {facebookLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Facebook\"\n data-content-label={facebookLink}\n href={facebookLink}\n >\n {/* <img src=\"/svg/facebook.svg\" alt=\"Facebook\" /> */}\n <svg\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=\"M21 5.75V18.25C21 19.765 19.765 21 18.25 21H15.5V14H17.31C17.565 14 17.78 13.81 17.81 13.56L17.995 12.06C18.015 11.92 17.97 11.775 17.875 11.67C17.78 11.56 17.645 11.5 17.5 11.5H15.5V9.75C15.5 9.2 15.95 8.75 16.5 8.75H17.5C17.775 8.75 18 8.525 18 8.25V6.56C18 6.305 17.8 6.09 17.545 6.065C17.515 6.06 16.81 6 15.915 6C13.715 6 12.5 7.31 12.5 9.685V11.5H10.5C10.225 11.5 10 11.725 10 12V13.5C10 13.775 10.225 14 10.5 14H12.5V21H5.75C4.235 21 3 19.765 3 18.25V5.75C3 4.235 4.235 3 5.75 3H18.25C19.765 3 21 4.235 21 5.75Z\"\n fill=\"url(#paint0_linear)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear\"\n x1=\"12\"\n y1=\"3\"\n x2=\"12\"\n y2=\"21\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#4DABF7\" />\n <stop offset=\"1\" stopColor=\"#2668DA\" />\n </linearGradient>\n </defs>\n </svg>\n </a>\n )}\n {youtubeLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Youtube\"\n data-event-label={youtubeLink}\n href={youtubeLink}\n >\n {/* <img src=\"/svg/youtube.svg\" alt=\"Youtube\" /> */}\n <svg\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.9287 4.25C8.75236 4.25 5.80117 4.47631 4.11719 4.82812C4.1136 4.82907 4.11002 4.83005 4.10645 4.83105C2.83774 5.11535 1.64309 6.02412 1.3916 7.44727L1.39062 7.45312C1.19742 8.60013 1 10.0953 1 12.25C1 14.4006 1.1981 15.8562 1.44238 17.0635C1.70004 18.4446 2.86711 19.3809 4.15527 19.6689C4.16144 19.6707 4.16762 19.6723 4.17383 19.6738C5.93135 20.0201 8.79923 20.25 11.9756 20.25C15.1519 20.25 18.0213 20.0201 19.7793 19.6738C19.7855 19.6723 19.7917 19.6707 19.7979 19.6689C21.0666 19.3847 22.2612 18.4759 22.5127 17.0527C22.5134 17.0492 22.514 17.0456 22.5146 17.042C22.7049 15.8716 22.9514 14.3778 23 12.2197C23.0001 12.2142 23.0001 12.2087 23 12.2031C23 10.0438 22.7529 8.53934 22.5117 7.34766C22.2561 5.96354 21.0877 5.02474 19.7979 4.73633C19.7781 4.73195 19.7583 4.72836 19.7383 4.72559C18.0232 4.48448 15.1056 4.25 11.9287 4.25ZM10.0781 8.50098C10.2633 8.49715 10.4548 8.54095 10.6348 8.64258L14.9365 11.0732C15.662 11.4832 15.662 12.5177 14.9365 12.9277L10.6348 15.3584C9.91527 15.7644 9.01855 15.2502 9.01855 14.4307V9.56934C9.01855 8.95471 9.52252 8.51246 10.0781 8.50098Z\"\n fill=\"#EB3223\"\n />\n </svg>\n </a>\n )}\n {instagramLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Instagram\"\n data-content-label={instagramLink}\n href={instagramLink}\n >\n {/* <img src=\"/svg/instagram.svg\" alt=\"Instagram\" /> */}\n <svg\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=\"M8.25 2.5C5.08319 2.5 2.5 5.08319 2.5 8.25V15.75C2.5 18.9164 5.0831 21.5 8.25 21.5H15.75C18.9165 21.5 21.5 18.9165 21.5 15.75V8.25C21.5 5.0831 18.9164 2.5 15.75 2.5H8.25ZM8.25 4H15.75C18.1056 4 20 5.8939 20 8.25V15.75C20 18.1055 18.1055 20 15.75 20H8.25C5.8939 20 4 18.1056 4 15.75V8.25C4 5.89381 5.89381 4 8.25 4ZM17 6C16.4475 6 16 6.4475 16 7C16 7.5525 16.4475 8 17 8C17.5525 8 18 7.5525 18 7C18 6.4475 17.5525 6 17 6ZM12 7C9.24759 7 7 9.24759 7 12C7 14.7524 9.24759 17 12 17C14.7524 17 17 14.7524 17 12C17 9.24759 14.7524 7 12 7ZM12 8.5C13.9416 8.5 15.5 10.0584 15.5 12C15.5 13.9416 13.9416 15.5 12 15.5C10.0584 15.5 8.5 13.9416 8.5 12C8.5 10.0584 10.0584 8.5 12 8.5Z\"\n fill=\"url(#paint0_radial)\"\n />\n <defs>\n <radialGradient\n id=\"paint0_radial\"\n cx=\"0\"\n cy=\"0\"\n r=\"1\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"translate(0.499995 26) rotate(-47.9508) scale(34.3402 30.014)\"\n >\n <stop offset=\"0.073\" stopColor=\"#EACC7B\" />\n <stop offset=\"0.184\" stopColor=\"#ECAA59\" />\n <stop offset=\"0.307\" stopColor=\"#EF802E\" />\n <stop offset=\"0.358\" stopColor=\"#EF6D3A\" />\n <stop offset=\"0.46\" stopColor=\"#F04B50\" />\n <stop offset=\"0.516\" stopColor=\"#F03E58\" />\n <stop offset=\"0.689\" stopColor=\"#DB359E\" />\n <stop offset=\"0.724\" stopColor=\"#CE37A4\" />\n <stop offset=\"0.789\" stopColor=\"#AC3CB4\" />\n <stop offset=\"0.877\" stopColor=\"#7544CF\" />\n <stop offset=\"0.98\" stopColor=\"#2B4FF2\" />\n </radialGradient>\n </defs>\n </svg>\n </a>\n )}\n {zaloLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n href={zaloLink}\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Zalo\"\n data-event-label={zaloLink}\n >\n <div\n style={{\n height: 24,\n width: 24,\n }}\n >\n <img src=\"/icons/zalo.png\" alt=\"Zalo\" />\n </div>\n </a>\n )}\n </div>\n </StyledMiniFooterContainer>\n )\n}\n\nexport { MarryBabyFooter }\n","var img = \"data:image/png;base64,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\";\n export default img;","import React from 'react'\n\nimport {\n AmpNextArticle,\n FooterInfo,\n LocaleType,\n MarryBabyFooterInfo,\n} from 'components/organisms/navigationLayout/types'\n\nimport { Footer } from './footer'\nimport { MarryBabyFooter } from './maryBabyFooter'\n// import { useTranslation } from './utils'\n\n// const formatUrlFooter = (s: string | null) => {\n// if (s) {\n// if (s.includes('https')) {\n// return s\n// } else {\n// return `/static${s}`\n// }\n// } else {\n// return ''\n// }\n// }\n\ntype FooterProps = {\n type: 'main' | 'mini'\n locale: LocaleType\n basePath: string\n isMobile: boolean\n // static: {\n // STATIC_PAGES: {\n // [key: string]: {\n // [key: string]: string | null\n // }\n // }\n // }\n isAmp: boolean\n footerInfo: FooterInfo | MarryBabyFooterInfo\n ampNextArticle?: AmpNextArticle\n routerQuery?: { [key: string]: string }\n} & (\n | {\n siteType: 'marryBaby'\n marryBabySocialLinks: {\n facebookLink: string\n twitterLink: string\n instagramLink: string\n zaloLink: string\n linkedinLink: string\n youtubeLink: string\n }\n }\n | {\n siteType: 'helloSites'\n }\n)\n\nexport type Flag = {\n country: CountryInitial\n link: string\n}\n\nexport type CountryInitial =\n | 'VN'\n | 'ID'\n | 'TH'\n | 'KH'\n | 'MY'\n | 'MM'\n | 'PH'\n | 'IN'\n | 'TW'\n\nconst CustomFooter = (props: FooterProps) => {\n const {\n type,\n isMobile = true,\n locale,\n footerInfo,\n isAmp,\n siteType,\n ampNextArticle,\n routerQuery,\n } = props\n const customAttribute = { separator: '' }\n return siteType === 'helloSites' ? (\n <>\n {/* <Welcome style={{ display: 'none' }} /> */}\n {isAmp && (routerQuery?.slug?.length ?? '') > 1 && (\n <amp-next-page>\n <script\n type=\"application/json\"\n dangerouslySetInnerHTML={{\n __html: `\n [\n {\n \"image\": \"${ampNextArticle?.articleOne?.image}\",\n \"title\": ${JSON.stringify(ampNextArticle?.articleOne?.title)},\n \"url\": \"${ampNextArticle?.articleOne?.link}\"\n },\n {\n \"image\": \"${ampNextArticle?.articleTwo?.image}\",\n \"title\": ${JSON.stringify(ampNextArticle?.articleTwo?.title)},\n \"url\": \"${ampNextArticle?.articleTwo?.link}\"\n },\n {\n \"image\": \"${ampNextArticle?.articleThree?.image}\",\n \"title\": ${JSON.stringify(\n ampNextArticle?.articleThree?.title,\n )},\n \"url\": \"${ampNextArticle?.articleThree?.link}\"\n }\n ]\n `,\n }}\n ></script>\n <div\n {...customAttribute}\n className=\"amp-page-seperator\"\n style={{\n color: '#8C8C8C',\n textTransform: 'uppercase',\n fontSize: 11,\n fontWeight: 700,\n marginLeft: 16,\n }}\n >\n Next article:\n </div>\n </amp-next-page>\n )}\n\n <Footer\n isAmp={isAmp}\n isMobile={isMobile}\n type={type}\n locale={locale}\n footerInfo={(footerInfo || {}) as FooterInfo}\n />\n </>\n ) : (\n <MarryBabyFooter\n isMobile={isMobile}\n locale={locale}\n footerMenu={(footerInfo || []) as MarryBabyFooterInfo}\n copyrightText={'© 2022 MarryBaby.vn'}\n socialLinks={props.marryBabySocialLinks}\n type={type}\n />\n )\n}\n\nexport { CustomFooter }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nexport const StyledContainer = styled.div`\n width: 100vw;\n`\n\nexport const StyledHomeContainer = styled.div<{\n hasStickyBottomBar: boolean\n}>`\n @keyframes menuLeftToRightTrans {\n from {\n margin-left: -300%;\n opacity: 0;\n }\n to {\n margin-left: 0;\n opacity: 1;\n }\n }\n\n @keyframes menuRightToLeftTrans {\n from {\n margin-right: -300%;\n opacity: 0;\n }\n to {\n margin-right: 0;\n opacity: 1;\n }\n }\n\n @keyframes leftAppears {\n from {\n left: -50%;\n opacity: 0;\n }\n to {\n left: 0;\n opacity: 1;\n }\n }\n\n @keyframes leftDisappears {\n from {\n left: 0;\n opacity: 1;\n }\n to {\n left: -50%;\n opacity: 0;\n }\n }\n\n @keyframes rightAppears {\n from {\n right: -50%;\n opacity: 0;\n }\n to {\n right: 0;\n opacity: 1;\n }\n }\n\n @keyframes rightDisappears {\n from {\n right: 0;\n opacity: 1;\n }\n to {\n right: -50%;\n opacity: 0;\n }\n }\n\n @keyframes expandingTopToBottom {\n from {\n margin-top: -100%;\n opacity: 0;\n }\n to {\n margin-top: 0;\n opacity: 1;\n }\n }\n\n @keyframes collapsingBottomToTop {\n from {\n margin-top: 0;\n opacity: 1;\n }\n to {\n margin-top: -100%;\n opacity: 0;\n }\n }\n\n width: 100%;\n\n ${(props) => props.hasStickyBottomBar && `padding-bottom: 80px;`}\n\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n &[data-menu-opened='true'] {\n visibility: hidden;\n }\n`\n\nexport const StyledAmpHomeContainer = styled.div`\n width: 100%;\n padding-bottom: 80px;\n\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n &[data-is-mobile='false'] {\n margin-top: 69px;\n &[data-sponsored='true'] {\n margin-top: 110px;\n &[data-sitewide='true'] {\n margin-top: 173px;\n }\n }\n &[data-sitewide='true'] {\n margin-top: 133px;\n }\n }\n &[data-is-mobile='true'] {\n &[data-sitewide='true'],\n &[data-sponsored='true'] {\n margin-top: 60px;\n }\n }\n\n &[data-menu-opened='true'] {\n visibility: hidden;\n }\n`\n\nexport const StyledMenuLanguageLabelContainer = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n`\nexport const StyledLanguageChangeLink = styled.a`\n &[data-is-active='true'] {\n color: unset;\n }\n font-size: 14px;\n font-weight: 700;\n line-height: 22px;\n text-decoration: none;\n`\n","import React, { ReactNode } from 'react'\n\nimport {\n domainLocales,\n FAVICONS,\n LOCALE_SPECS,\n} from 'components/organisms/navigationLayout/constants'\nimport parse from 'html-react-parser'\n\n// import Head from 'next/head'\n// import { useRouter } from 'next/router'\nimport { SiteType } from './types'\n\nexport type SEOData = {\n currentPage?: number\n totalPages?: number\n SEOTitle?: string\n SEODescription?: string\n SEOImage?: string\n SEOImageWidth?: string | number\n SEOImageHeight?: string | number\n seoType?: 'website' | 'article' | 'profile'\n siteName?: string\n customMetaData?: Array<{\n [key: string]: string\n }>\n isIndexable?: boolean\n openGraph?: {\n title?: string\n description?: string\n image?: string\n imageWidth?: number\n imageHeight?: number\n }\n twitter?: {\n title?: string\n description?: string\n image?: string\n }\n apiMetaData?: string\n schemaData?: string\n hasNoAmp?: boolean\n hasNoCanonical?: boolean\n canonicalUrl?: string\n}\n\nexport type Props = {\n children: ReactNode\n SEOData: SEOData\n isAmp: boolean\n locale: string\n routerPathname: string\n routerQuery: { [key: string]: string }\n nextHead: React.FunctionComponent\n siteType: SiteType\n seoCustom?: boolean\n userId?: string | number\n forcedCanonicalUrl?: string\n usingDefaultHead: boolean\n}\n\nconst Layout = ({\n children,\n SEOData = {},\n isAmp = false,\n locale = 'vi-VN',\n routerPathname: pathname,\n routerQuery: query,\n nextHead: Head,\n siteType,\n seoCustom,\n userId,\n forcedCanonicalUrl,\n usingDefaultHead,\n}: Props) => {\n const { NEXT_PUBLIC_DEPLOY_ENV: DEPLOY_ENV } = process.env\n const isProduction = DEPLOY_ENV === 'production'\n\n const {\n totalPages,\n currentPage,\n SEOTitle = '',\n SEODescription = '',\n SEOImage,\n seoType,\n SEOImageWidth,\n SEOImageHeight,\n customMetaData = [],\n isIndexable = true,\n hasNoCanonical = false,\n } = SEOData\n const robotIndex =\n isIndexable && isProduction\n ? 'index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1'\n : 'noindex'\n\n // const { locale = 'vi-VN', pathname, query } = router\n const { NEXT_PUBLIC_BASE_API_URL } = process.env\n\n let newPath = SEOData.canonicalUrl || pathname\n Object.keys(query).forEach((key) => {\n const queryItem = query[key]\n if (queryItem && Array.isArray(queryItem)) {\n newPath = newPath.replace(`[...${key}]`, queryItem.join('/'))\n }\n })\n const sL = locale || 'en-PH' // standardized locale\n const siteUrl =\n siteType === 'helloSites' ? domainLocales[sL] : 'www.marrybaby.vn'\n\n const hasSlash = newPath.endsWith('/') ? '' : '/'\n\n let metaData: string | JSX.Element | JSX.Element[]\n if (SEOData.apiMetaData && typeof SEOData.apiMetaData === 'string') {\n const paginatedTitle = SEOData.apiMetaData?.match(/<title.*?>(.*)<\\/title>/)\n const paginatedNumber = ` - Page ${currentPage} of ${totalPages}`\n const fD =\n currentPage && currentPage !== 1 && paginatedTitle\n ? SEOData.apiMetaData\n .replace(\n paginatedTitle[0],\n paginatedTitle[0].includes('-')\n ? paginatedTitle[0].replace('-', paginatedNumber + ' - ')\n : `<title>${paginatedTitle[1].concat(paginatedNumber)}</title>`,\n )\n .replace(\n `<link rel=\"canonical\" href=\"https://${siteUrl}${newPath}${hasSlash}\" />`,\n `<link rel=\"canonical\" href=\"https://${siteUrl}${newPath}${hasSlash}?page=${currentPage}\" />`,\n )\n : SEOData.apiMetaData\n metaData = parse(fD, { trim: true })\n const metaDataImage = (metaData as JSX.Element[]).find(\n (data: JSX.Element) =>\n data.props?.property === 'og:image' ||\n data.props?.property === 'og:image:secure_url',\n )\n if (!metaDataImage) {\n const DefaultOgImage = `https://${siteUrl}/images/${locale}.png`\n metaData = [\n ...(metaData as JSX.Element[]),\n <meta\n key={'og:image'}\n property=\"og:image\"\n content={SEOData.openGraph?.image || DefaultOgImage || ''}\n />,\n <meta\n key={'og:image:secure_url'}\n property=\"og:image:secure_url\"\n content={SEOData.openGraph?.image || DefaultOgImage}\n />,\n <meta\n key={'og:image:width'}\n property=\"og:image:width\"\n content={\n (SEOData.openGraph?.imageWidth &&\n String(SEOData.openGraph?.imageWidth)) ||\n '1200'\n }\n />,\n <meta\n key={'og:image:height'}\n property=\"og:image:height\"\n content={\n (SEOData.openGraph?.imageHeight &&\n String(SEOData.openGraph?.imageHeight)) ||\n '630'\n }\n />,\n ]\n }\n }\n\n const defaultImage = `https://${siteUrl}/images/${locale}.png`\n\n return (\n <>\n {Head && usingDefaultHead && (\n <Head>\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" />\n {siteType === 'marryBaby' && (\n <link\n href=\"https://fonts.googleapis.com/css2?family=Inter&family=Krub:wght@600&display=swap\"\n rel=\"stylesheet\"\n />\n )}\n {locale === 'km-KH' ? (\n <link\n href=\"https://fonts.googleapis.com/css2?family=Battambang:wght@400;700&display=swap\"\n rel=\"stylesheet\"\n ></link>\n ) : locale === 'id-ID' || locale === 'ms-MY' ? (\n <></>\n ) : (\n <link\n href=\"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,600;0,700;0,800;1,300;1,400;1,600;1,700;1,800&display=swap\"\n rel=\"preload\"\n as=\"style\"\n />\n )}\n <link rel=\"preconnect\" href={NEXT_PUBLIC_BASE_API_URL} />\n <meta charSet=\"UTF-8\" />\n {!isAmp && (\n <meta\n name=\"viewport\"\n content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover\"\n />\n )}\n <meta name=\"google\" content=\"notranslate\" />\n <meta name=\"robots\" content={robotIndex} />\n\n <meta property=\"fb:app_id\" content=\"653713035016537\" />\n {customMetaData.map((customMeta, index) => {\n return <meta key={index} {...customMeta} />\n })}\n\n <meta\n name=\"theme-color\"\n content={siteType === 'helloSites' ? '#2c87f3' : '#e85388'}\n />\n <meta name=\"page_type\" content=\"Home\" />\n <meta name=\"page_platform\" content=\"WEB\" />\n <meta name=\"page_language\" content={sL} />\n <meta\n name=\"ahrefs-site-verification\"\n content=\"46e7521a2b89a1013149c4685bbe02a1d36a4732fef98655142b829bc87cba4d\"\n />\n {isAmp && (\n <>\n <script\n async\n custom-element=\"amp-analytics\"\n src=\"https://cdn.ampproject.org/v0/amp-analytics-0.1.js\"\n ></script>\n <script\n async\n custom-element=\"amp-fx-collection\"\n src=\"https://cdn.ampproject.org/v0/amp-fx-collection-0.1.js\"\n ></script>\n <script\n async\n custom-element=\"amp-ad\"\n src=\"https://cdn.ampproject.org/v0/amp-ad-0.1.js\"\n ></script>\n <script\n async\n custom-element=\"amp-next-page\"\n src=\"https://cdn.ampproject.org/v0/amp-next-page-1.0.js\"\n ></script>\n <script\n async\n custom-element=\"amp-sticky-ad\"\n src=\"https://cdn.ampproject.org/v0/amp-sticky-ad-1.0.js\"\n ></script>\n {/* Adding support for sharing in the bottom bar */}\n <script\n async\n custom-element=\"amp-social-share\"\n src=\"https://cdn.ampproject.org/v0/amp-social-share-0.1.js\"\n ></script>\n {/* Adding the AMP state */}\n <script\n async\n custom-element=\"amp-bind\"\n src=\"https://cdn.ampproject.org/v0/amp-bind-0.1.js\"\n ></script>\n </>\n )}\n\n {!metaData && (\n <>\n {siteType === 'helloSites' ? (\n <title>\n {seoCustom\n ? SEOTitle\n : SEOTitle + ' - ' + LOCALE_SPECS[locale]?.SITE_NAME}\n </title>\n ) : (\n <title>{SEOTitle}</title>\n )}\n {!hasNoCanonical && (\n <link rel=\"canonical\" href={`https://${siteUrl}${newPath}`} />\n )}\n <meta\n name=\"description\"\n content={SEODescription || SEOData.openGraph?.description}\n />\n {SEOData.schemaData && (\n <script\n type=\"application/ld+json\"\n className=\"yoast-schema-graph\"\n dangerouslySetInnerHTML={{ __html: SEOData.schemaData }}\n ></script>\n )}\n\n <meta property=\"og:locale\" content={locale} />\n <meta property=\"og:type\" content={seoType || 'website'} />\n <meta\n property=\"og:title\"\n content={SEOData.openGraph?.title || SEOTitle}\n />\n <meta\n property=\"og:description\"\n content={SEOData.openGraph?.description || SEODescription}\n />\n <meta\n property=\"og:url\"\n content={`https://${siteUrl}${newPath}`}\n />\n <meta property=\"og:site_name\" content={`https://${siteUrl}`} />\n <meta\n property=\"og:image\"\n content={\n SEOData.openGraph?.image || SEOImage || defaultImage || ''\n }\n />\n <meta\n property=\"og:image:secure_url\"\n content={SEOData.openGraph?.image || SEOImage || defaultImage}\n />\n <meta\n property=\"og:image:width\"\n content={\n (SEOData.openGraph?.imageWidth &&\n String(SEOData.openGraph?.imageWidth)) ||\n (SEOImageWidth && String(SEOImageWidth)) ||\n '1200'\n }\n />\n <meta\n property=\"og:image:height\"\n content={\n (SEOData.openGraph?.imageHeight &&\n String(SEOData.openGraph?.imageHeight)) ||\n (SEOImageHeight && String(SEOImageHeight)) ||\n '630'\n }\n />\n\n <meta name=\"twitter:card\" content=\"summary_large_image\" />\n <meta\n name=\"twitter:title\"\n content={SEOData.twitter?.title || SEOTitle}\n />\n <meta name=\"twitter:description\" content={SEODescription} />\n <meta\n name=\"twitter:image\"\n content={SEOData.twitter?.image || SEOImage}\n />\n </>\n )}\n\n {(siteType === 'helloSites'\n ? FAVICONS[sL] || []\n : FAVICONS.marryBaby\n ).map((item, index) => {\n if (item.type === 'link') {\n return (\n <link\n key={`favicon-${index}`}\n rel={item.rel}\n href={item.href}\n sizes={item.sizes}\n />\n )\n }\n if (item.type === 'meta') {\n return (\n <meta key={index} name={item.name} content={item.content} />\n )\n }\n return null\n })}\n\n {Array.isArray(metaData) && !!forcedCanonicalUrl\n ? metaData.filter(\n (d) =>\n d.props.name !== 'canonical' && d.props.rel !== 'canonical',\n )\n : metaData}\n {forcedCanonicalUrl && (\n <link rel=\"canonical\" href={forcedCanonicalUrl} />\n )}\n {!SEOData.hasNoAmp && locale !== 'vi-VN' && (\n <link\n rel=\"amphtml\"\n href={`https://${siteUrl}${newPath}${hasSlash}?amp=1`}\n />\n )}\n {userId && typeof window !== 'undefined' ? (\n <script\n dangerouslySetInnerHTML={{\n __html: `window.dataLayer = window.dataLayer || []; window.dataLayer.push({'userID': '${userId}'});`,\n }}\n ></script>\n ) : null}\n </Head>\n )}\n {Head && !usingDefaultHead && (\n <Head>{/* To inject NextHead from outside */}</Head>\n )}\n {children}\n </>\n )\n}\n\nexport { Layout }\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nimport { Z_INDEX } from '../constants'\n\nexport const StyledCardSkeleton = styled.div`\n & > div {\n width: 100%;\n margin-bottom: 8px;\n }\n`\nexport const StyledContainer = styled.div`\n & > a:not(:last-child) > div {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n &[data-category-list-type='sub'] {\n padding-bottom: 72px;\n }\n\n &[data-is-displayed='false'] {\n display: none;\n }\n`\nexport const StyledCategoryContainer = styled.div`\n display: flex;\n width: 100%;\n height: 64px;\n align-items: center;\n justify-content: flex-start;\n padding: 8px;\n\n //border-bottom: 1px solid ${(props: ThemeProps) =>\n props.theme.colors.neutral100};\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n\n &[data-is-heading-category='true'] {\n border-bottom: none;\n background-color: ${(props: ThemeProps) => props.theme.colors.blue50};\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n > * {\n pointer-events: none;\n }\n`\n\nexport const StyledCategory = styled.div``\n\nexport const StyledCategoryIcon = styled.div`\n padding-right: 16px;\n`\n\nexport const StyledMenuPopupWrapper = styled.div`\n position: fixed;\n z-index: ${Z_INDEX.menuCategoryPopupWrapper};\n top: 69px;\n left: 0;\n width: 100%;\n height: 100%;\n align-items: center;\n background-color: transparent;\n &[data-is-display='false'] {\n display: none;\n }\n`\n\nexport const StyledMenuPopupContainer = styled.div`\n z-index: ${Z_INDEX.menuCategoryPopupContainer};\n align-items: center;\n\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral50};\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\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\nexport const StyledInnerMenuPopupContainer = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n padding: 48px 0;\n`\n\nexport const StyledHealthToolItem = styled.div`\n width: 33%;\n height: 48px;\n padding-right: 16px;\n margin-bottom: 12px;\n\n & > a {\n display: flex;\n align-items: center;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n\n & > :first-child {\n margin-right: 16px;\n }\n }\n\n & > a > p:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n\n [data-event-category] > * {\n pointer-events: none;\n }\n`\n\nexport const StyledCategoryItemAll = styled.div`\n display: flex;\n align-items: center;\n\n ${MediaQueries.mbDown} {\n padding: 8px;\n }\n\n padding-right: 16px;\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n line-height: 24px;\n\n &[data-theme='marryBaby'] {\n color: ${(props: ThemeProps) => props.theme.mbColors.pink};\n }\n &[data-event-category] * {\n pointer-events: none;\n }\n`\n\nexport const StyledImageWrapper = styled.div`\n display: flex;\n align-items: center;\n\n margin-left: 10px;\n`\n\nexport const StyledCloseWrapper = styled.div`\n position: absolute;\n top: 16px;\n right: 0;\n display: flex;\n align-items: center;\n cursor: pointer;\n`\n","import React from 'react'\n\nimport Skeleton from 'react-loading-skeleton'\n\nimport { StyledCardSkeleton } from './index.styled'\n\nconst CategorySkeleton = () => (\n <StyledCardSkeleton\n style={{\n marginTop: '16px',\n }}\n >\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n </StyledCardSkeleton>\n)\n\nexport default CategorySkeleton\n","import React from 'react'\n\nimport { LOCALIZED_SLUGS } from 'care/interfaces/constants'\nimport { Container } from 'components/atoms/container'\nimport { Heading } from 'components/atoms/heading'\nimport { LocaleType } from 'interfaces/types'\nimport { theme } from 'misc/theme'\n\nimport { DesktopMenuPopup, SiteType, Specialty } from '../types'\nimport { getCareSearchUrl, useTranslation } from '../utils'\nimport CategorySkeleton from './categorySkeleton'\nimport {\n StyledCategory,\n StyledCategoryContainer,\n StyledCategoryIcon,\n StyledCategoryItemAll,\n StyledCloseWrapper,\n StyledContainer,\n StyledHealthToolItem,\n StyledImageWrapper,\n StyledInnerMenuPopupContainer,\n StyledMenuPopupContainer,\n StyledMenuPopupWrapper,\n} from './index.styled'\n\nexport type Props = {\n careSpecialties: Specialty[]\n onSelectCareSpecialty: (c: Specialty) => void\n onClosePopup: () => void\n isLoading: boolean\n isMobile: boolean\n basePath: string\n locale: LocaleType\n desktopPopupType: DesktopMenuPopup\n siteType: SiteType\n CARE_URL_FE: string\n}\n\nconst MenuCareList = ({\n careSpecialties,\n onSelectCareSpecialty,\n isLoading,\n desktopPopupType,\n onClosePopup,\n basePath,\n locale,\n isMobile,\n siteType,\n CARE_URL_FE,\n}: Props) => {\n const f = useTranslation()\n\n return isMobile ? (\n <>\n {isLoading ? (\n <StyledContainer>\n <CategorySkeleton />\n </StyledContainer>\n ) : (\n <StyledContainer data-category-list-type={'main'}>\n <Heading\n style={{\n marginTop: 16,\n }}\n tag=\"h5\"\n >\n {f('menu.care.searchBySpecialties')}\n </Heading>\n {careSpecialties.map((careSpecialty, index) => (\n <a key={'tool-' + index}>\n <StyledCategoryContainer\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`${CARE_URL_FE}${getCareSearchUrl({\n type: 'DOCTOR',\n specialtySlug: careSpecialty.slug,\n locale,\n })}`}\n onClick={() => {\n onSelectCareSpecialty(careSpecialty)\n }}\n >\n <StyledCategoryIcon>\n <img\n alt=\"health-tool-icon\"\n src={\n careSpecialty.thumbnail || `${basePath}/images/avatar.jpg`\n }\n style={{ width: '32px', height: '32px' }}\n />\n </StyledCategoryIcon>\n <StyledCategory>{careSpecialty.name}</StyledCategory>\n </StyledCategoryContainer>\n </a>\n ))}\n <a\n style={{ textDecoration: 'none' }}\n href={`${CARE_URL_FE}/${LOCALIZED_SLUGS[locale]?.SPECIALTIES}`}\n >\n <StyledCategoryItemAll\n // onClick={closePopup}\n key={'all-categories'}\n data-theme={siteType}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`${CARE_URL_FE}/${LOCALIZED_SLUGS[locale]?.SPECIALTIES}`}\n >\n {f('home.navigator.menuItem.allSpecialties')}\n <StyledImageWrapper>\n {siteType === 'helloSites' ? (\n <img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.allSpecialties')}\n />\n ) : (\n <svg\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=\"M6.5 12H17.5M17.5 12L12.9118 8M17.5 12L12.9118 16\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </StyledContainer>\n )}\n </>\n ) : (\n <StyledMenuPopupWrapper\n className=\"top-menu-care-specialties\"\n onClick={onClosePopup}\n data-is-display={desktopPopupType === 'care'}\n >\n <StyledMenuPopupContainer>\n <Container style={{ padding: '0 16px' }} type={siteType}>\n <StyledInnerMenuPopupContainer\n data-popup-type={desktopPopupType}\n onClick={(e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n e.stopPropagation()\n }}\n >\n <>\n {careSpecialties.map((careSpecialty: Specialty) => (\n <StyledHealthToolItem\n key={`care-specialty-${careSpecialty.id}`}\n onClick={onClosePopup}\n >\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`${CARE_URL_FE}${getCareSearchUrl({\n type: 'DOCTOR',\n specialtySlug: careSpecialty.slug,\n locale,\n })}`}\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n className=\"iconMenu no-replace-click\"\n href={`${CARE_URL_FE}${getCareSearchUrl({\n type: 'DOCTOR',\n specialtySlug: careSpecialty.slug,\n locale,\n })}`}\n >\n <div\n style={{\n display: 'flex',\n }}\n >\n <img\n alt=\"care-specialty-icon\"\n src={\n careSpecialty.thumbnail ||\n `${basePath}/images/avatar.jpg`\n }\n style={{ width: '32px', height: '32px' }}\n />\n </div>\n <p>{careSpecialty.name}</p>\n </a>\n </StyledHealthToolItem>\n ))}\n <a\n style={{ textDecoration: 'none' }}\n href={`${CARE_URL_FE}/${LOCALIZED_SLUGS[locale]?.SPECIALTIES}`}\n >\n <StyledCategoryItemAll\n onClick={onClosePopup}\n key={'all-care-specialties'}\n data-theme={siteType}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`${CARE_URL_FE}/${LOCALIZED_SLUGS[locale]?.SPECIALTIES}`}\n >\n {f('home.navigator.menuItem.allSpecialties')}\n <StyledImageWrapper>\n {siteType === 'helloSites' ? (\n <img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.allSpecialties')}\n />\n ) : (\n <svg\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=\"M6.5 12H17.5M17.5 12L12.9118 8M17.5 12L12.9118 16\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </>\n {/* )} */}\n <StyledCloseWrapper onClick={onClosePopup}>\n {/* <img\n src={`${basePath}/svg/close.svg`}\n style={{ width: '24px', height: '24px' }}\n alt={'close'}\n /> */}\n <svg\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 18M18 18L6 6\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n />\n </svg>\n </StyledCloseWrapper>\n </StyledInnerMenuPopupContainer>\n </Container>\n </StyledMenuPopupContainer>\n </StyledMenuPopupWrapper>\n )\n}\n\nexport { MenuCareList }\n","import React from 'react'\n\nimport Skeleton from 'react-loading-skeleton'\n\nimport { StyledCardSkeleton } from './index.styled'\n\nconst CategorySkeleton = () => (\n <StyledCardSkeleton\n style={{\n marginTop: '16px',\n }}\n >\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n </StyledCardSkeleton>\n)\n\nexport default CategorySkeleton\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nexport const StyledWrapper = styled.div`\n ${MediaQueries.mbDown} {\n margin: 48px 0;\n }\n\n ${MediaQueries.mbUp} {\n padding: 0 16px;\n }\n`\n\nexport const StyledCardSkeleton = styled.div`\n & > div {\n width: 100%;\n margin-bottom: 8px;\n }\n`\nexport const StyledContainer = styled.div`\n ${MediaQueries.mbDown} {\n & > :not(:last-child) {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n & > div > :not(:last-child) {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n }\n\n &[data-category-list-type='sub'] {\n padding-bottom: 72px;\n }\n\n &[data-is-displayed='false'] {\n display: none;\n }\n\n display: flex;\n flex-direction: column;\n`\n\nexport const StyledListContainer = styled.div`\n ${MediaQueries.mbDown} {\n & > :not(:last-child) {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n & > div > :not(:last-child) {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n }\n`\n\nexport const StyledCategoryContainer = styled.div`\n display: flex;\n width: 100%;\n height: 48px;\n align-items: center;\n justify-content: space-between;\n\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n\n &[data-is-heading-category='true'] {\n border-bottom: none;\n background-color: ${(props: ThemeProps) => props.theme.colors.blue50};\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n\n ${MediaQueries.mbDown} {\n padding: 8px;\n }\n &[data-event-category] > * {\n pointer-events: none;\n }\n`\n\nexport const StyledCategoryItemDesktop = styled.div`\n padding-right: 16px;\n margin-bottom: 12px;\n\n & > a {\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n }\n\n & > a:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n\n .iconMenu {\n display: flex;\n align-items: center;\n\n > .imageContainer {\n display: flex;\n width: 32px;\n min-width: 32px;\n align-items: center;\n margin-right: 16px;\n }\n }\n &[data-event-category] > * {\n pointer-events: none;\n }\n`\n\nexport const StyledCategory = styled.div``\n\nexport const StyledCategoryIcon = styled.div``\n\nexport const StyledSpotlightItemAll = styled.div`\n display: flex;\n align-items: center;\n\n ${MediaQueries.mbDown} {\n padding: 8px;\n }\n\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n line-height: 24px;\n\n &[data-theme='marryBaby'] {\n color: ${(props: ThemeProps) => props.theme.mbColors.pink};\n }\n &[data-event-category] * {\n pointer-events: none;\n }\n`\nexport const StyledImageWrapper = styled.div`\n display: flex;\n align-items: center;\n\n margin-left: 10px;\n`\n","import React from 'react'\n\nimport Skeleton from 'react-loading-skeleton'\n\nimport { StyledCardSkeleton } from './index.styled'\n\nconst SpotlightSkeleton = () => (\n <StyledCardSkeleton\n style={{\n marginTop: '16px',\n }}\n >\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n </StyledCardSkeleton>\n)\n\nexport default SpotlightSkeleton\n","import React from 'react'\n\nimport { Heading } from 'components/atoms/heading'\nimport { theme } from 'misc/theme'\n\nimport { domainLocales } from '../../constants'\nimport { LocaleType, SiteType, SpotlightSummary } from '../../types'\nimport { useTranslation } from '../../utils'\nimport {\n StyledCategory,\n StyledCategoryContainer,\n StyledWrapper,\n StyledContainer,\n StyledImageWrapper,\n StyledSpotlightItemAll,\n StyledCategoryItemDesktop,\n} from './index.styled'\nimport SpotlightSkeleton from './spotlightSkeleton'\n\nexport type Props = {\n isDisplayed?: boolean\n spotlights: SpotlightSummary[]\n isLoading?: boolean\n isMobile?: boolean\n className?: string\n basePath: string\n DISCOVER_URL_FE: string\n locale: LocaleType\n siteType: SiteType\n}\n\nconst SpotlightsList = ({\n isDisplayed = false,\n spotlights,\n isLoading,\n className,\n isMobile,\n DISCOVER_URL_FE,\n basePath,\n locale,\n siteType,\n}: Props) => {\n const f = useTranslation()\n\n if (!isDisplayed) return null\n return (\n <StyledWrapper>\n <Heading tag=\"h3\" style={{ marginBottom: 24 }}>\n {f('home.navigator.menuItem.spotlights')}\n </Heading>\n {isLoading && isDisplayed ? (\n <StyledContainer className={className}>\n <SpotlightSkeleton />\n </StyledContainer>\n ) : (\n <StyledContainer data-is-displayed={isDisplayed} className={className}>\n {spotlights.map((spotlight, index) => (\n <StyledCategoryItemDesktop\n style={{\n textDecoration: 'none',\n }}\n key={'spotlight-' + index}\n >\n {isMobile ? (\n <a\n href={spotlight.permalink}\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n >\n <StyledCategoryContainer\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}${spotlight.permalink}`}\n >\n <StyledCategory>{spotlight.name}</StyledCategory>\n </StyledCategoryContainer>\n </a>\n ) : (\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}${spotlight.permalink}`}\n style={{\n textDecoration: 'none',\n pointerEvents: 'auto',\n }}\n href={`${DISCOVER_URL_FE}${spotlight.permalink}`}\n >\n {spotlight.name}\n </a>\n )}\n </StyledCategoryItemDesktop>\n ))}\n <a\n style={{ textDecoration: 'none' }}\n href={`${DISCOVER_URL_FE}/spotlight/`}\n >\n <StyledSpotlightItemAll\n key={'all-spotlights'}\n data-theme={siteType}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`${DISCOVER_URL_FE}/spotlight/`}\n >\n {f('home.navigator.menuItem.allSpotlight')}\n <StyledImageWrapper>\n {siteType === 'helloSites' ? (\n <img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.allSpotlight')}\n />\n ) : (\n <svg\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=\"M6.5 12H17.5M17.5 12L12.9118 8M17.5 12L12.9118 16\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledImageWrapper>\n </StyledSpotlightItemAll>\n </a>\n </StyledContainer>\n )}\n </StyledWrapper>\n )\n}\n\nexport { SpotlightsList }\n","import React from 'react'\n\n// import { Heading, Text, theme } from '@hhgtech/hhg-components'\n// import { formatSpotlightsList } from 'api/dataTransform'\n// import { PATHS } from 'api/paths'\n// import { callApi, checkAvailableSpotlight, getDiscoverApiPath } from 'api/utils'\nimport { Container } from 'components/atoms/container'\n// import { domainLocales } from 'domainLocales'\n// import { basePath, DISCOVER_URL_FE } from 'interfaces/constants'\n// import {\n// Category,\n// DesktopMenuPopup,\n// LocaleType,\n// SpotlightSummary,\n// } from 'interfaces/types'\n// import Link from 'next/link'\n// import { useRouter } from 'next/router'\n// import { useIntl } from 'react-intl'\nimport { Heading } from 'components/atoms/heading'\nimport { Text } from 'components/atoms/text'\nimport { LocaleType } from 'interfaces/types'\nimport { theme } from 'misc/theme'\n\nimport { domainLocales } from '../constants'\nimport {\n Category,\n DesktopMenuPopup,\n SiteType,\n SpotlightSummary,\n} from '../types'\nimport {\n // checkAvailableSpotlight,\n // formatSpotlightsList,\n // getDiscoverDefaultSpotlightsApiPath,\n useTranslation,\n} from '../utils'\nimport CategorySkeleton from './categorySkeleton'\nimport {\n StyledCategory,\n StyledCategoryIcon,\n StyledCategoryContainer,\n StyledContainer,\n StyledListContainer,\n StyledCategoryItemAll,\n StyledImageWrapper,\n StyledMenuPopupWrapper,\n StyledMenuPopupContainer,\n StyledMenuPopupInner,\n StyledHealthCategoriesContainer,\n StyledCategoryItem,\n StyledSubCategoryItem,\n StyledCloseWrapper,\n} from './index.styled'\nimport { SpotlightsList } from './spotlightsList'\n\n// type DesktopPopupType = {\n// isDisplayed?: boolean\n// categories: Category[]\n// onClosePopup?: () => void\n// isLoading?: boolean\n// isMobile?: boolean\n// className?: string\n// desktopPopupType?: DesktopMenuPopup\n// }\n\n// type MobilePopupType = {\n// isDisplayed?: boolean\n// categories: Category[]\n// type: 'sub' | 'main'\n// onSelectCategory?: (c: Category) => void\n// isLoading?: boolean\n// isMobile?: boolean\n// className?: string\n// }\n\n// type PopupType = isMobile extends false ? DesktopPopupType : MobilePopupType\n\nexport type Props = {\n locale: LocaleType\n // discoverApiDomain: string\n basePath: string\n isDisplayed: boolean\n categories: Category[]\n type: 'sub' | 'main'\n onSelectCategory: (c: Category) => void\n onClosePopup: () => void\n isLoading: boolean\n isMobile: boolean\n // className: string\n desktopPopupType: DesktopMenuPopup\n // callApiHandler: (p: string, m: 'GET' | 'POST' | 'PUT') => any\n DISCOVER_URL_FE: string\n siteType: SiteType\n spotlightsList: SpotlightSummary[]\n // onSubCategory: (c: Category) => void\n // onSubCatLevel: (l: string) => void\n}\n\nconst HelloSitesMenuCategoriesList = ({\n locale,\n // discoverApiDomain,\n basePath,\n isDisplayed = false,\n categories,\n spotlightsList,\n type,\n onSelectCategory,\n onClosePopup,\n desktopPopupType,\n isMobile,\n isLoading,\n // className,\n // callApiHandler,\n DISCOVER_URL_FE,\n siteType = 'helloSites',\n}: Props) => {\n // const router = useRouter()\n const f = useTranslation()\n // const [spotlightsList, setSpotlightsList] = useState<SpotlightSummary[]>([])\n\n return isMobile ? (\n <>\n {isLoading && isDisplayed ? (\n <StyledContainer>\n <CategorySkeleton />\n </StyledContainer>\n ) : (\n <StyledContainer\n data-is-displayed={isDisplayed}\n data-category-list-type={type}\n // className={className}\n >\n <Heading tag=\"h3\" style={{ marginBottom: 8 }}>\n {f('home.navigator.menuItem.healthCategories')}\n </Heading>\n <StyledListContainer>\n {categories.map((category, index) => (\n <div key={type + '-category-' + index}>\n <a\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n onClick={(\n e: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n ) => {\n if (\n category.childCates &&\n category.childCates.length > 0 &&\n type !== 'sub'\n ) {\n e.preventDefault()\n }\n }}\n href={DISCOVER_URL_FE + category.permalink}\n >\n <StyledCategoryContainer\n onClick={() => {\n onSelectCategory?.(category)\n }}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}${category.permalink}`}\n data-is-heading-category={\n type === 'sub' &&\n category.childCates &&\n category.childCates.length > 0\n }\n >\n <StyledCategory>{category.displayName}</StyledCategory>\n {type === 'main' && (\n <StyledCategoryIcon>\n {siteType === 'helloSites' ? (\n <img\n src={`${basePath}/svg/chevronRight.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={category.categoryName}\n />\n ) : (\n <svg\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=\"M6.5 12H17.5M17.5 12L12.9118 8M17.5 12L12.9118 16\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledCategoryIcon>\n )}\n </StyledCategoryContainer>\n {type === 'sub' &&\n category.childCates &&\n category.childCates.length > 0 &&\n category.childCates.map((subCategory, subIndex) => (\n <a\n style={{ textDecoration: 'none' }}\n href={subCategory.permalink}\n key={type + '-2-' + subIndex}\n >\n <StyledCategoryContainer\n data-is-heading-category={\n type === 'sub' &&\n subCategory.childCates &&\n subCategory.childCates.length > 0\n }\n >\n <Text size=\"p3\">{subCategory.displayName}</Text>\n </StyledCategoryContainer>\n </a>\n ))}\n </a>\n </div>\n ))}\n <a\n style={{ textDecoration: 'none' }}\n href={`${DISCOVER_URL_FE}/categories/`}\n >\n <StyledCategoryItemAll\n // onClick={closePopup}\n key={'all-categories'}\n data-theme={siteType}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`${DISCOVER_URL_FE}/categories/`}\n >\n {f('home.navigator.menuItem.allCategories')}\n <StyledImageWrapper>\n {siteType === 'helloSites' ? (\n <img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.allCategories')}\n />\n ) : (\n <svg\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=\"M6.5 12H17.5M17.5 12L12.9118 8M17.5 12L12.9118 16\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </StyledListContainer>\n <SpotlightsList\n isDisplayed={type === 'main'}\n spotlights={spotlightsList}\n isLoading={false}\n isMobile={isMobile}\n basePath={basePath}\n DISCOVER_URL_FE={DISCOVER_URL_FE}\n locale={locale}\n siteType={siteType}\n />\n </StyledContainer>\n )}\n </>\n ) : (\n <StyledMenuPopupWrapper\n className=\"top-menu-categories\"\n onClick={onClosePopup}\n data-is-display={desktopPopupType === 'categories'}\n // key={nextId()}\n >\n <StyledMenuPopupContainer>\n <Container style={{ padding: '0 16px' }} type={siteType}>\n <StyledMenuPopupInner\n data-popup-type={desktopPopupType}\n onClick={(e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n e.stopPropagation()\n }}\n >\n <div>\n <Heading tag=\"h3\" style={{ marginBottom: 24 }}>\n {f('home.navigator.menuItem.healthCategories')}\n </Heading>\n <StyledHealthCategoriesContainer\n data-disabled-divider={spotlightsList.length === 0}\n >\n {categories.map((category, categoryIndex) => (\n <StyledCategoryItem\n style={{\n textDecoration: 'none',\n }}\n key={category.categoryName + categoryIndex}\n >\n {/* <Link > */}\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}${category.permalink}`}\n style={{\n textDecoration: 'none',\n pointerEvents: 'auto',\n }}\n onClick={onClosePopup}\n href={`${DISCOVER_URL_FE}${category.permalink}`}\n >\n {category.displayName}\n </a>\n {/* </Link> */}\n <StyledSubCategoryItem>\n {category.childCates &&\n category.childCates.map((subCat, index) => (\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}${subCat.permalink}`}\n style={{\n textDecoration: 'none',\n pointerEvents: 'auto',\n }}\n href={subCat.permalink}\n key={index}\n >\n {subCat.displayName}\n </a>\n ))}\n </StyledSubCategoryItem>\n </StyledCategoryItem>\n ))}\n <a\n style={{ textDecoration: 'none' }}\n href={`${DISCOVER_URL_FE}/categories/`}\n >\n <StyledCategoryItemAll\n onClick={onClosePopup}\n key={'all-categories'}\n data-theme={siteType}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`${DISCOVER_URL_FE}/categories/`}\n >\n {f('home.navigator.menuItem.allCategories')}\n <StyledImageWrapper>\n {siteType === 'helloSites' ? (\n <img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.allCategories')}\n />\n ) : (\n <svg\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=\"M6.5 12H17.5M17.5 12L12.9118 8M17.5 12L12.9118 16\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </StyledHealthCategoriesContainer>\n </div>\n <SpotlightsList\n isDisplayed={type === 'main'}\n spotlights={spotlightsList}\n isLoading={false}\n basePath={basePath}\n DISCOVER_URL_FE={DISCOVER_URL_FE}\n locale={locale}\n siteType={siteType}\n />\n <StyledCloseWrapper onClick={onClosePopup}>\n {/* <img\n src={`${basePath}/svg/close.svg`}\n style={{ width: '24px', height: '24px' }}\n alt={'close'}\n /> */}\n <svg\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 18M18 18L6 6\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n />\n </svg>\n </StyledCloseWrapper>\n </StyledMenuPopupInner>\n </Container>\n </StyledMenuPopupContainer>\n </StyledMenuPopupWrapper>\n )\n}\n\nexport { HelloSitesMenuCategoriesList }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nimport { Z_INDEX } from '../constants'\n\nexport const StyledMarryBabyListContainer = styled.div``\n\nexport const StyledMarryBabyIconContainer = styled.div`\n display: flex;\n width: 40px;\n height: 40px;\n align-items: center;\n justify-content: center;\n\n margin-right: 16px;\n border-radius: 50%;\n`\n\nexport const StyledMarryBabySubMenuItem = styled.div`\n display: flex;\n margin-left: 48px;\n\n > :first-child {\n margin-right: 24px;\n }\n`\n\nexport const StyledMarryBabyCategoryContainer = styled.div`\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n //height: 40px;\n\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n\n &[data-is-heading-category='true'] {\n border-bottom: none;\n background-color: ${(props: ThemeProps) => props.theme.colors.blue50};\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n\n > svg:first-child {\n margin-right: 24px;\n }\n`\n\nexport const StyledMarryBabyCategoryCollapsibleContainer = styled.div`\n overflow: hidden;\n > .expanding {\n animation-duration: 0.3s;\n animation-name: expandingTopToBottom;\n }\n\n > .collapsing {\n margin-top: -100%;\n animation-duration: 0.3s;\n animation-name: collapsingBottomToTop;\n }\n`\n\nexport const StyledMarryBabyMenuPopupWrapper = styled.div`\n position: absolute;\n z-index: ${Z_INDEX.menuCategoryPopupWrapper};\n top: 64px;\n\n min-width: 375px;\n align-items: center;\n background-color: transparent;\n &[data-is-display='false'] {\n display: none;\n }\n`\n\nexport const StyledFullScreenLayer = styled.div`\n position: fixed;\n top: 69px;\n left: 0;\n width: 100vw;\n height: 100vh;\n`\n\nexport const StyledMarryBabyMenuPopupContainer = styled.div`\n z-index: ${Z_INDEX.menuCategoryPopupContainer};\n\n width: 100%;\n\n max-height: 80vh;\n\n padding: 20px 0;\n\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral50};\n //align-items: center;\n //display: flex;\n //flex: 1;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n border-radius: 16px;\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 overflow-y: auto;\n`\n\nexport const StyledMarryBabyMenuPopupInner = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n padding: 24px;\n`\n\nexport const StyledMarryBabyHealthCategoriesContainer = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n`\n\nexport const StyledMarryBabyCategoryItem = styled.div`\n padding-right: 16px;\n margin-bottom: 12px;\n\n & > a {\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n }\n\n & > a:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n\n .iconMenu {\n display: flex;\n align-items: center;\n\n > .imageContainer {\n display: flex;\n width: 32px;\n min-width: 32px;\n align-items: center;\n margin-right: 16px;\n }\n }\n`\n","import React, { useState } from 'react'\n\nimport { theme } from 'misc/theme'\nimport { CSSProperties } from 'styled-components'\n\nimport { MarryBabyText } from '../marryBabyText'\nimport { Category, DesktopMenuPopup } from '../types'\nimport CategorySkeleton from './categorySkeleton'\nimport {\n StyledCategoryIcon,\n StyledContainer,\n StyledSameLineIndicator,\n} from './index.styled'\nimport {\n StyledFullScreenLayer,\n StyledMarryBabyCategoryCollapsibleContainer,\n StyledMarryBabyCategoryContainer,\n StyledMarryBabyHealthCategoriesContainer,\n StyledMarryBabyIconContainer,\n StyledMarryBabyListContainer,\n StyledMarryBabyMenuPopupContainer,\n StyledMarryBabyMenuPopupWrapper,\n StyledMarryBabySubMenuItem,\n} from './marryBaby.styled'\n\nexport type Props = {\n discoverApiDomain: string\n basePath: string\n isDisplayed: boolean\n categories: Category[]\n type: 'sub' | 'main'\n onSelectCategory?: (c: Category) => void\n // onClosePopup?: () => void\n isLoading: boolean\n isMobile: boolean\n // className: string\n desktopPopupType: DesktopMenuPopup\n callApiHandler: (p: string, m: 'GET' | 'POST') => unknown\n MARRY_BABY_FE: string\n // siteType: SiteType\n}\n\nconst MarryBabyMenuCategoriesList = ({\n // locale,\n // discoverApiDomain,\n // basePath,\n isDisplayed = false,\n categories,\n type,\n onSelectCategory,\n // onClosePopup,\n desktopPopupType,\n isMobile,\n isLoading,\n MARRY_BABY_FE,\n}: // className,\n// callApiHandler,\n// DISCOVER_URL_FE,\n// siteType = 'helloSites',\nProps) => {\n const [expandingItem, setExpandingItem] = useState(-1)\n const [isClosingItem, setIsClosingItem] = useState(false)\n\n const onParentItemClosed = () => {\n setIsClosingItem(true)\n\n setTimeout(() => {\n setExpandingItem(-1)\n\n setTimeout(() => {\n setIsClosingItem(false)\n }, 100)\n }, 300)\n }\n\n // useEffect(() => {\n // ;(async () => {\n // const response = (await callApiHandler(\n // getDiscoverDefaultSpotlightsApiPath(locale, discoverApiDomain, {\n // perPage: 100,\n // orderBy: 'start_date',\n // }),\n // 'GET',\n // )) as {\n // data: { articles: SpotlightSummaryApi[] }\n // }\n\n // if (response?.data) {\n // const formattedSpotlights = formatSpotlightsList(\n // response?.data?.articles,\n // )\n // .filter(checkAvailableSpotlight)\n // .slice(0, 4)\n\n // setSpotlightsList(formattedSpotlights)\n // }\n // })()\n // }, [])\n\n return isMobile ? (\n <>\n {isLoading && isDisplayed ? (\n <StyledContainer>\n <CategorySkeleton />\n </StyledContainer>\n ) : (\n <StyledContainer\n data-is-displayed={isDisplayed}\n data-category-list-type={type}\n // className={className}\n style={{ marginTop: 24 }}\n >\n <StyledMarryBabyListContainer className=\"marry-bb-menu-categories\">\n {categories.map((category, index) => (\n <div\n key={type + '-category-' + index}\n className={`wrapper-menu-category wrapper-menu-category-${index}`}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://marrybaby.vn${category.permalink}`}\n >\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://marrybaby.vn${category.permalink}`}\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n onClick={(\n e: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n ) => {\n e.preventDefault()\n }}\n href={`${MARRY_BABY_FE}${category.permalink}`}\n >\n <StyledMarryBabyCategoryContainer\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://marrybaby.vn${category.permalink}`}\n onClick={() => {\n type === 'main' || category.childCates?.length === 0\n ? onSelectCategory?.(category)\n : expandingItem === index\n ? onParentItemClosed()\n : setExpandingItem(index)\n }}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n {type === 'main' ? (\n <StyledMarryBabyIconContainer\n style={{\n backgroundColor: category.imageColor,\n }}\n >\n <img\n src={category.iconUrl}\n style={{ width: '24px', height: '24px' }}\n alt={category.name}\n />\n </StyledMarryBabyIconContainer>\n ) : (\n <svg\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=\"M12 10C10.9 10 10 10.9 10 12C10 13.1 10.9 14 12 14C13.1 14 14 13.1 14 12C14 10.9 13.1 10 12 10Z\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n />\n </svg>\n )}\n <MarryBabyText\n style={\n { fontWeight: theme.sizes.fwSemiBold } as CSSProperties\n }\n type=\"subtitle-2\"\n >\n {category.displayName}\n </MarryBabyText>\n <StyledSameLineIndicator />\n {type === 'main' ? (\n <StyledCategoryIcon>\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.5 6L11 8.5L8.5 11\"\n stroke=\"#9495A0\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n\n {/* )} */}\n </StyledCategoryIcon>\n ) : (\n <StyledCategoryIcon>\n {expandingItem !== index ? (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.5 6L11 8.5L8.5 11\"\n stroke=\"#9495A0\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ) : (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5 7.5L9 10L6.5 7.5\"\n stroke=\"#2661AD\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n\n {/* )} */}\n </StyledCategoryIcon>\n )}\n </StyledMarryBabyCategoryContainer>\n </a>\n {type === 'sub' &&\n category.childCates &&\n expandingItem === index &&\n category.childCates.length > 0 && (\n <StyledMarryBabyCategoryCollapsibleContainer>\n <div\n className={isClosingItem ? 'collapsing' : 'expanding'}\n >\n {category.childCates.map((subCategory, subIndex) => (\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://marrybaby.vn${category.permalink}`}\n style={{ textDecoration: 'none' }}\n href={`${MARRY_BABY_FE}${subCategory.permalink}`}\n key={type + '-2-' + subIndex}\n >\n <StyledMarryBabyCategoryContainer\n data-is-heading-category={\n type === 'sub' &&\n subCategory.childCates &&\n subCategory.childCates.length > 0\n }\n >\n <StyledMarryBabySubMenuItem>\n <svg\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=\"M12 10C10.9 10 10 10.9 10 12C10 13.1 10.9 14 12 14C13.1 14 14 13.1 14 12C14 10.9 13.1 10 12 10Z\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n />\n </svg>\n <MarryBabyText type=\"subtitle-2\">\n {subCategory.displayName}\n </MarryBabyText>\n </StyledMarryBabySubMenuItem>\n </StyledMarryBabyCategoryContainer>\n </a>\n ))}\n </div>\n </StyledMarryBabyCategoryCollapsibleContainer>\n )}\n\n <div style={{ display: 'none' }}>\n {category.childCates &&\n category.childCates.map((subCategory, subIndex) => (\n <a\n href={`${MARRY_BABY_FE}${subCategory.permalink}`}\n key={subIndex}\n style={{ textDecoration: 'none' }}\n >\n <div\n data-is-heading-category={\n type === 'sub' &&\n subCategory.childCates &&\n subCategory.childCates.length > 0\n }\n >\n <p>{subCategory.displayName}</p>\n </div>\n </a>\n ))}\n </div>\n </div>\n ))}\n </StyledMarryBabyListContainer>\n </StyledContainer>\n )}\n </>\n ) : (\n <StyledMarryBabyMenuPopupWrapper\n className=\"top-menu-categories\"\n data-is-display={desktopPopupType === 'categories'}\n tabIndex={0}\n >\n <StyledFullScreenLayer />\n <StyledMarryBabyMenuPopupContainer data-popup-type={desktopPopupType}>\n <StyledMarryBabyHealthCategoriesContainer className=\"marry-bb-menu-categories\">\n {isLoading ? (\n <div\n style={{\n width: '100%',\n padding: '0 20px',\n }}\n >\n <CategorySkeleton />\n </div>\n ) : (\n categories.map((category, categoryIndex) => (\n <div\n className={`wrapper-menu-category wrapper-menu-category-${categoryIndex}`}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://marrybaby.vn${category.permalink}`}\n key={type + '-category-' + categoryIndex}\n onClick={() => {\n onSelectCategory(category)\n }}\n >\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://marrybaby.vn${category.permalink}`}\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n href={`${MARRY_BABY_FE}${category.permalink}`}\n >\n <StyledMarryBabyCategoryContainer\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n }}\n >\n {/* <StyledCategory></StyledCategory> */}\n <StyledMarryBabyIconContainer\n style={{\n backgroundColor: category.imageColor,\n }}\n >\n <img\n src={category.iconUrl}\n style={{ width: '24px', height: '24px' }}\n alt={category.name}\n />\n </StyledMarryBabyIconContainer>\n\n <MarryBabyText\n style={\n {\n fontWeight: theme.sizes.fwSemiBold,\n } as CSSProperties\n }\n type=\"subtitle-2\"\n >\n {category.displayName}\n </MarryBabyText>\n </StyledMarryBabyCategoryContainer>\n </a>\n </div>\n ))\n )}\n </StyledMarryBabyHealthCategoriesContainer>\n </StyledMarryBabyMenuPopupContainer>\n </StyledMarryBabyMenuPopupWrapper>\n )\n}\n\nexport { MarryBabyMenuCategoriesList }\n","import React from 'react'\n\nimport { LocaleType } from 'interfaces/types'\n\nimport {\n Category,\n DesktopMenuPopup,\n SiteType,\n SpotlightSummary,\n} from '../types'\nimport { HelloSitesMenuCategoriesList } from './helloSites'\nimport { MarryBabyMenuCategoriesList } from './marryBaby'\n\nexport type Props = {\n isDisplayed: boolean\n locale: LocaleType\n discoverApiDomain: string\n basePath: string\n categories: Category[]\n spotlightsList: SpotlightSummary[]\n type: 'sub' | 'main'\n onSelectCategory: (c: Category) => void\n onClosePopup: () => void\n isLoading: boolean\n isMobile: boolean\n // className: string\n desktopPopupType: DesktopMenuPopup\n callApiHandler: (p: string, m: 'GET' | 'POST' | 'PUT') => any\n DISCOVER_URL_FE: string\n MARRY_BABY_FE: string\n siteType: SiteType\n // onSubCategory: (c: Category) => void\n // onSubCatLevel: (l: string) => void\n}\n\nconst MenuCategoriesList = ({\n isDisplayed = false,\n locale,\n discoverApiDomain,\n basePath,\n categories,\n spotlightsList,\n type,\n onSelectCategory,\n onClosePopup,\n desktopPopupType,\n isMobile,\n isLoading,\n // className,\n callApiHandler,\n DISCOVER_URL_FE,\n MARRY_BABY_FE,\n siteType = 'helloSites',\n}: Props) => {\n return siteType === 'helloSites' ? (\n <HelloSitesMenuCategoriesList\n locale={locale}\n basePath={basePath}\n // callApiHandler={callApiHandler}\n // discoverApiDomain={discoverApiDomain}\n DISCOVER_URL_FE={DISCOVER_URL_FE}\n isDisplayed={isDisplayed}\n type={type}\n onSelectCategory={onSelectCategory}\n categories={categories}\n spotlightsList={spotlightsList}\n isLoading={isLoading}\n isMobile={isMobile}\n siteType={siteType}\n onClosePopup={onClosePopup}\n desktopPopupType={desktopPopupType}\n />\n ) : (\n <MarryBabyMenuCategoriesList\n basePath={basePath}\n callApiHandler={callApiHandler}\n discoverApiDomain={discoverApiDomain}\n isDisplayed={isDisplayed}\n type={type}\n onSelectCategory={onSelectCategory}\n categories={categories}\n isLoading={isLoading}\n isMobile={isMobile}\n // onClosePopup={onClosePopup}\n MARRY_BABY_FE={MARRY_BABY_FE}\n desktopPopupType={desktopPopupType}\n // className={className}\n />\n )\n}\n\nexport { MenuCategoriesList }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nimport { Z_INDEX } from '../constants'\n\nexport const StyledCardSkeleton = styled.div`\n & > div {\n width: 100%;\n margin-bottom: 8px;\n }\n`\nexport const StyledContainer = styled.div`\n & > :not(:last-child) {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n & > div > :not(:last-child) {\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n }\n\n &[data-category-list-type='sub'] {\n padding-bottom: 72px;\n }\n\n &[data-is-displayed='false'] {\n display: none;\n }\n\n //margin-top: 112px;\n`\nexport const StyledCategoryContainer = styled.div`\n display: flex;\n width: 100%;\n height: 56px;\n align-items: center;\n justify-content: space-between;\n padding: 8px;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n\n &[data-is-heading-category='true'] {\n border-bottom: none;\n background-color: ${(props: ThemeProps) => props.theme.colors.blue50};\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n &[data-event-category] > * {\n pointer-events: none;\n }\n`\n\nexport const StyledCategory = styled.div``\n\nexport const StyledCategoryIcon = styled.div``\n\nexport const StyledCategoryInfo = styled.div`\n display: flex;\n align-items: center;\n\n > :first-child {\n min-width: 40px;\n margin-right: 16px;\n }\n`\n\nexport const StyledMenuPopupWrapper = styled.div`\n position: fixed;\n z-index: ${Z_INDEX.menuCategoryPopupWrapper};\n top: 69px;\n left: 0;\n width: 100%;\n height: 100%;\n align-items: center;\n background-color: transparent;\n &[data-is-display='false'] {\n display: none;\n }\n`\n\nexport const StyledMenuPopupContainer = styled.div`\n z-index: ${Z_INDEX.menuCategoryPopupContainer};\n align-items: center;\n\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral50};\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\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\nexport const StyledInnerMenuPopupContainer = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n padding: 48px 0;\n`\n\nexport const StyledHealthToolItem = styled.div`\n width: 33%;\n height: 48px;\n padding-right: 16px;\n margin-bottom: 12px;\n\n & > a {\n display: flex;\n align-items: center;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n\n & > :first-child {\n margin-right: 16px;\n }\n }\n\n & > a > p:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n [data-event-category] > * {\n pointer-events: none;\n }\n`\n\nexport const StyledCategoryItemAll = styled.div`\n display: flex;\n align-items: center;\n\n padding-right: 16px;\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n line-height: 24px;\n\n &[data-theme='marryBaby'] {\n color: ${(props: ThemeProps) => props.theme.mbColors.pink};\n }\n &[data-event-category] * {\n pointer-events: none;\n }\n`\n\nexport const StyledImageWrapper = styled.div`\n display: flex;\n align-items: center;\n\n margin-left: 10px;\n`\n\nexport const StyledCloseWrapper = styled.div`\n position: absolute;\n top: 16px;\n right: 0;\n display: flex;\n align-items: center;\n cursor: pointer;\n`\n","import React from 'react'\n\nimport Skeleton from 'react-loading-skeleton'\n\nimport { StyledCardSkeleton } from './index.styled'\n\nconst CategorySkeleton = () => (\n <StyledCardSkeleton\n style={{\n marginTop: '16px',\n }}\n >\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n </StyledCardSkeleton>\n)\n\nexport default CategorySkeleton\n","import React from 'react'\n\nimport { Container } from 'components/atoms/container'\nimport { LocaleType } from 'interfaces/types'\nimport { theme } from 'misc/theme'\n\nimport { domainLocales } from '../constants'\nimport { Community, DesktopMenuPopup, SiteType } from '../types'\nimport { useTranslation } from '../utils'\nimport CategorySkeleton from './categorySkeleton'\nimport {\n StyledCategory,\n StyledCategoryIcon,\n StyledCategoryContainer,\n StyledContainer,\n StyledCategoryInfo,\n StyledMenuPopupWrapper,\n StyledMenuPopupContainer,\n StyledInnerMenuPopupContainer,\n StyledHealthToolItem,\n StyledCategoryItemAll,\n StyledImageWrapper,\n StyledCloseWrapper,\n} from './index.styled'\n\nexport type Props = {\n isDisplayed: boolean\n locale: LocaleType\n togetherApiDomain: string\n communities: Community[]\n type: 'sub' | 'main'\n onSelectCommunity: ({}: {\n community: Community\n isSetToSubMenu: boolean\n }) => void\n onClosePopup: () => void\n isLoading: boolean\n isMobile: boolean\n basePath: string\n TOGETHER_URL_FE: string\n siteType: SiteType\n desktopPopupType: DesktopMenuPopup\n}\n\nconst HelloSitesMenuCommunitiesList = ({\n isDisplayed,\n communities,\n type,\n onSelectCommunity,\n onClosePopup,\n isLoading,\n basePath,\n TOGETHER_URL_FE,\n siteType = 'helloSites',\n isMobile,\n locale,\n desktopPopupType,\n}: Props) => {\n const f = useTranslation()\n return isMobile ? (\n <>\n {isLoading && isDisplayed ? (\n <StyledContainer>\n <CategorySkeleton />\n </StyledContainer>\n ) : (\n <StyledContainer\n data-category-list-type={type}\n data-is-displayed={isDisplayed}\n >\n {type === 'main' &&\n communities.map((community, index) => (\n <div key={type + '-category-' + index}>\n <a\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n onClick={(\n e: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n ) => {\n e.preventDefault()\n }}\n href={`${TOGETHER_URL_FE}/${community.communitySlug}`}\n >\n <StyledCategoryContainer\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}/${community.communitySlug}`}\n onClick={() => {\n onSelectCommunity({ community, isSetToSubMenu: true })\n }}\n data-is-heading-category={false}\n >\n <StyledCategoryInfo>\n <img\n src={community.thumbnail}\n style={{ width: '40px', height: '40px' }}\n alt={community.title}\n />\n <StyledCategory>{community.title}</StyledCategory>\n </StyledCategoryInfo>\n <StyledCategoryIcon>\n {siteType === 'helloSites' ? (\n <img\n src={`${basePath}/svg/chevronRight.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={community.title}\n />\n ) : (\n <svg\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=\"M6.5 12H17.5M17.5 12L12.9118 8M17.5 12L12.9118 16\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledCategoryIcon>\n </StyledCategoryContainer>\n </a>\n </div>\n ))}\n {type === 'sub' &&\n communities.map((community, index) => (\n <div key={type + '-category-' + index}>\n <a\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n onClick={(\n e: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n ) => {\n e.preventDefault()\n }}\n href={`${TOGETHER_URL_FE}/${community.communitySlug}`}\n >\n <StyledCategoryContainer\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}/${community.communitySlug}`}\n onClick={() => {\n onSelectCommunity({ community, isSetToSubMenu: false })\n }}\n data-is-heading-category={false}\n >\n <StyledCategoryInfo>\n <img\n src={community.thumbnail}\n style={{ width: '40px', height: '40px' }}\n alt={community.title}\n />\n <StyledCategory>{community.title}</StyledCategory>\n </StyledCategoryInfo>\n </StyledCategoryContainer>\n </a>\n </div>\n ))}\n <a style={{ textDecoration: 'none' }} href={TOGETHER_URL_FE + '/'}>\n <StyledCategoryItemAll\n onClick={onClosePopup}\n key={'all-communities'}\n data-theme={siteType}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={TOGETHER_URL_FE + '/'}\n >\n {f('home.navigator.menuItem.allCommunities')}\n <StyledImageWrapper>\n <img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.allCommunities')}\n />\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </StyledContainer>\n )}\n </>\n ) : (\n <StyledMenuPopupWrapper\n className=\"top-menu-communities\"\n onClick={onClosePopup}\n data-is-display={desktopPopupType === 'communities'}\n // key={nextId()}\n >\n <StyledMenuPopupContainer>\n <Container style={{ padding: '0 16px' }} type={siteType}>\n <StyledInnerMenuPopupContainer\n data-popup-type={desktopPopupType}\n onClick={(e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n e.stopPropagation()\n }}\n >\n <>\n {communities.map((community: Community) => (\n <StyledHealthToolItem\n key={community.title}\n onClick={onClosePopup}\n >\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}/${community.communitySlug}`}\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n className=\"iconMenu\"\n href={`${TOGETHER_URL_FE}/${community.communitySlug}`}\n >\n <div\n style={{\n display: 'flex',\n }}\n >\n <img\n alt=\"health-tool-icon\"\n src={\n community.thumbnail || `${basePath}/images/avatar.jpg`\n }\n style={{ width: '32px', height: '32px' }}\n />\n </div>\n <p>{community.title}</p>\n </a>\n </StyledHealthToolItem>\n ))}\n <a\n style={{ textDecoration: 'none' }}\n href={TOGETHER_URL_FE + '/'}\n >\n <StyledCategoryItemAll\n onClick={onClosePopup}\n key={'all-communities'}\n data-theme={siteType}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={TOGETHER_URL_FE + '/'}\n >\n {f('home.navigator.menuItem.allCommunities')}\n <StyledImageWrapper>\n {/* {siteType === 'helloSites' ? ( */}\n <img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.allCommunities')}\n />\n {/* // ) : (\n // <svg\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=\"M6.5 12H17.5M17.5 12L12.9118 8M17.5 12L12.9118 16\"\n // stroke=\"#3E3F58\"\n // strokeWidth=\"1.3\"\n // strokeLinecap=\"round\"\n // strokeLinejoin=\"round\"\n // />\n // </svg>\n // )} */}\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </>\n {/* )} */}\n <StyledCloseWrapper onClick={onClosePopup}>\n {/* <img\n src={`${basePath}/svg/close.svg`}\n style={{ width: '24px', height: '24px' }}\n alt={'close'}\n /> */}\n <svg\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 18M18 18L6 6\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n />\n </svg>\n </StyledCloseWrapper>\n </StyledInnerMenuPopupContainer>\n </Container>\n </StyledMenuPopupContainer>\n </StyledMenuPopupWrapper>\n )\n}\n\nexport { HelloSitesMenuCommunitiesList }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nimport { Z_INDEX } from '../constants'\n\n// import { Z_INDEX } from '../constants'\n\nexport const StyledMarryBabyIconContainer = styled.div`\n display: flex;\n width: 48px;\n height: 48px;\n align-items: center;\n justify-content: center;\n\n margin-right: 16px;\n\n //background-color: ${(props: ThemeProps) => props.theme.mbColors.lightGray};\n border-radius: 50%;\n`\n\nexport const StyledMarryBabyCategoryContainer = styled.div`\n display: flex;\n width: 100%;\n height: 64px;\n align-items: center;\n justify-content: flex-start;\n padding: 8px 16px;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n`\n\n// desktop\nexport const StyledMarryBabyMenuPopupWrapper = styled.div`\n position: absolute;\n z-index: ${Z_INDEX.menuCategoryPopupWrapper};\n top: 64px;\n\n min-width: 375px;\n align-items: center;\n background-color: transparent;\n &[data-is-display='false'] {\n display: none;\n }\n`\n\nexport const StyledFullScreenLayer = styled.div`\n position: fixed;\n top: 69px;\n left: 0;\n width: 100vw;\n height: 100vh;\n`\n\nexport const StyledMarryBabyMenuPopupContainer = styled.div`\n z-index: ${Z_INDEX.menuCategoryPopupContainer};\n\n width: 100%;\n\n max-height: 80vh;\n\n padding: 20px 0;\n\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral50};\n //align-items: center;\n //display: flex;\n //flex: 1;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n border-radius: 16px;\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 overflow-y: auto;\n`\n\nexport const StyledMarryBabyMenuPopupInner = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n padding: 24px;\n`\n\nexport const StyledMarryBabyHealthCategoriesContainer = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n`\n\nexport const StyledMarryBabyCategoryItem = styled.div`\n padding-right: 16px;\n margin-bottom: 12px;\n\n & > a {\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n }\n\n & > a:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n\n .iconMenu {\n display: flex;\n align-items: center;\n\n > .imageContainer {\n display: flex;\n width: 32px;\n min-width: 32px;\n align-items: center;\n margin-right: 16px;\n }\n }\n`\n","import React, { CSSProperties } from 'react'\n\n// import { Container } from 'components/atoms/container'\nimport { LocaleType } from 'interfaces/types'\nimport { theme } from 'misc/theme'\n\nimport { MarryBabyText } from '../marryBabyText'\nimport { Community, DesktopMenuPopup } from '../types'\n// import { useTranslation } from '../utils'\nimport CategorySkeleton from './categorySkeleton'\nimport {\n StyledCategory,\n // StyledCategoryIcon,\n // StyledCategoryContainer,\n // StyledCategoryIcon,\n // StyledCategoryItemAll,\n // StyledCloseWrapper,\n StyledContainer,\n // StyledHealthToolItem,\n // StyledImageWrapper,\n // StyledInnerMenuPopupContainer,\n // StyledMenuPopupContainer,\n // StyledMenuPopupWrapper,\n} from './index.styled'\nimport {\n StyledFullScreenLayer,\n StyledMarryBabyCategoryContainer,\n StyledMarryBabyHealthCategoriesContainer,\n StyledMarryBabyIconContainer,\n StyledMarryBabyMenuPopupContainer,\n StyledMarryBabyMenuPopupWrapper,\n} from './marryBaby.styled'\n\nexport type Props = {\n isDisplayed: boolean\n communities: Community[]\n onSelectCommunity: ({}: {\n community: Community\n isSetToSubMenu: boolean\n }) => void\n onClosePopup: () => void\n type: 'sub' | 'main'\n isLoading: boolean\n isMobile: boolean\n desktopPopupType: DesktopMenuPopup\n basePath: string\n locale: LocaleType\n togetherApiDomain: string\n TOGETHER_URL_FE: string\n // callApiHandler: (p: string, m: 'GET' | 'POST') => any\n // siteType: SiteType\n}\n\nconst MarryBabyMenuCommunitiesList = ({\n isDisplayed = false,\n communities,\n onSelectCommunity,\n isLoading,\n basePath,\n type,\n isMobile,\n onClosePopup,\n desktopPopupType,\n TOGETHER_URL_FE,\n}: Props) => {\n return isMobile ? (\n isLoading && isDisplayed ? (\n <StyledContainer>\n <CategorySkeleton />\n </StyledContainer>\n ) : (\n <StyledContainer\n style={{\n marginTop: 24,\n }}\n data-category-list-type={type}\n data-is-displayed={isDisplayed}\n >\n {communities.map((community, index) => (\n <a\n className={`wrapper-menu-community wrapper-menu-community-${index} iconMenu`}\n key={'community-' + index}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://marrybaby.vn/community/${community.communitySlug}`}\n >\n <StyledMarryBabyCategoryContainer\n onClick={() => {\n onSelectCommunity({\n community,\n isSetToSubMenu: false,\n })\n }}\n >\n <StyledMarryBabyIconContainer>\n <img\n alt=\"health-tool-icon\"\n src={community.thumbnail || `${basePath}/images/avatar.jpg`}\n style={{ width: '24px', height: '24px' }}\n />\n </StyledMarryBabyIconContainer>\n <StyledCategory>{community.title}</StyledCategory>\n </StyledMarryBabyCategoryContainer>\n </a>\n ))}\n </StyledContainer>\n )\n ) : (\n <StyledMarryBabyMenuPopupWrapper\n className=\"top-menu-communities\"\n onClick={onClosePopup}\n data-is-display={desktopPopupType === 'communities'}\n >\n <StyledFullScreenLayer />\n <StyledMarryBabyMenuPopupContainer\n data-popup-type={desktopPopupType}\n onClick={(e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n e.stopPropagation()\n }}\n >\n <StyledMarryBabyHealthCategoriesContainer>\n {isLoading ? (\n <div\n style={{\n width: '100%',\n padding: '0 20px',\n }}\n >\n <CategorySkeleton />\n </div>\n ) : (\n communities.map((community: Community, index: number) => (\n <a\n className={`wrapper-menu-community wrapper-menu-community-${index} iconMenu`}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://marrybaby.vn/community/${community.communitySlug}`}\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n href={`${TOGETHER_URL_FE}/${community.communitySlug}`}\n key={community.title}\n >\n <StyledMarryBabyCategoryContainer onClick={onClosePopup}>\n <StyledMarryBabyIconContainer\n style={{\n backgroundColor:\n community.color || theme.mbColors.lightGray,\n }}\n >\n <img\n alt={community.communitySlug}\n src={\n community.thumbnail || `${basePath}/images/avatar.jpg`\n }\n style={{ width: '24px', height: '24px' }}\n />\n </StyledMarryBabyIconContainer>\n <MarryBabyText\n style={\n {\n fontWeight: theme.sizes.fwSemiBold,\n } as CSSProperties\n }\n type=\"subtitle-2\"\n >\n {community.title}\n </MarryBabyText>\n </StyledMarryBabyCategoryContainer>\n </a>\n ))\n )}\n </StyledMarryBabyHealthCategoriesContainer>\n {/* )} */}\n </StyledMarryBabyMenuPopupContainer>\n </StyledMarryBabyMenuPopupWrapper>\n )\n}\n\nexport { MarryBabyMenuCommunitiesList }\n","import React from 'react'\n\nimport { LocaleType } from 'interfaces/types'\n\nimport { Community, DesktopMenuPopup, SiteType } from '../types'\nimport { HelloSitesMenuCommunitiesList } from './helloSites'\nimport { MarryBabyMenuCommunitiesList } from './marryBaby'\n\nexport type Props = {\n isDisplayed: boolean\n locale: LocaleType\n togetherApiDomain: string\n communities: Community[]\n type: 'sub' | 'main'\n onSelectCommunity: ({}: {\n community: Community\n isSetToSubMenu: boolean\n }) => void\n onClosePopup: () => void\n isLoading: boolean\n isMobile: boolean\n basePath: string\n TOGETHER_URL_FE: string\n siteType: SiteType\n desktopPopupType: DesktopMenuPopup\n // callApiHandler: (p: string, m: 'GET' | 'POST') => any\n // onSubCategory: (c: Category) => void\n // onSubCatLevel: (l: string) => void\n}\n\nconst MenuCommunitiesList = ({\n isDisplayed = false,\n locale,\n communities,\n type,\n onSelectCommunity,\n onClosePopup,\n isLoading,\n basePath,\n TOGETHER_URL_FE,\n siteType = 'helloSites',\n isMobile,\n desktopPopupType,\n togetherApiDomain,\n}: Props) => {\n return siteType === 'helloSites' ? (\n <HelloSitesMenuCommunitiesList\n isDisplayed={isDisplayed}\n locale={locale}\n TOGETHER_URL_FE={TOGETHER_URL_FE}\n basePath={basePath}\n type={type}\n onSelectCommunity={onSelectCommunity}\n communities={communities}\n isLoading={isLoading}\n isMobile={isMobile}\n siteType={siteType}\n togetherApiDomain={togetherApiDomain}\n desktopPopupType={desktopPopupType}\n onClosePopup={onClosePopup}\n />\n ) : (\n <MarryBabyMenuCommunitiesList\n isDisplayed={isDisplayed}\n locale={locale}\n TOGETHER_URL_FE={TOGETHER_URL_FE}\n basePath={basePath}\n type={type}\n onSelectCommunity={onSelectCommunity}\n communities={communities}\n isLoading={isLoading}\n isMobile={isMobile}\n togetherApiDomain={togetherApiDomain}\n desktopPopupType={desktopPopupType}\n onClosePopup={onClosePopup}\n />\n )\n}\n\nexport { MenuCommunitiesList }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nimport { Z_INDEX } from '../constants'\n\nexport const StyledCardSkeleton = styled.div`\n & > div {\n width: 100%;\n margin-bottom: 8px;\n }\n`\nexport const StyledContainer = styled.div`\n &[data-category-list-type='sub'] {\n padding-bottom: 72px;\n }\n\n &[data-is-displayed='false'] {\n display: none;\n }\n .title {\n margin-bottom: 8px;\n margin-top: 24px;\n }\n`\nexport const StyledCategoryContainer = styled.div`\n display: flex;\n width: 100%;\n height: 64px;\n align-items: center;\n justify-content: flex-start;\n padding: 8px;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n border-bottom: 1px solid\n ${(props: ThemeProps) => props.theme.colors.neutral100};\n\n &[data-is-heading-category='true'] {\n /* border-bottom: none; */\n background-color: ${(props: ThemeProps) => props.theme.colors.blue50};\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n > * {\n pointer-events: none;\n }\n`\n\nexport const StyledCategory = styled.div``\n\nexport const StyledCategoryIcon = styled.div`\n padding-right: 16px;\n`\n\nexport const StyledMenuPopupWrapper = styled.div`\n position: fixed;\n z-index: ${Z_INDEX.menuCategoryPopupWrapper};\n top: 69px;\n left: 0;\n width: 100%;\n height: 100%;\n align-items: center;\n background-color: transparent;\n &[data-is-display='false'] {\n display: none;\n }\n`\n\nexport const StyledMenuPopupContainer = styled.div`\n z-index: ${Z_INDEX.menuCategoryPopupContainer};\n align-items: center;\n\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral50};\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\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\nexport const StyledInnerMenuPopupContainer = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n padding: 48px 0;\n`\n\nexport const StyledHealthToolItem = styled.div`\n width: 33%;\n height: 48px;\n padding-right: 16px;\n margin-bottom: 12px;\n\n &[data-grouped='true'] {\n width: 100%;\n }\n\n & > a {\n display: flex;\n align-items: center;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n\n & > :first-child {\n margin-right: 16px;\n }\n }\n\n & > a > p:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n [data-event-category] > * {\n pointer-events: none;\n }\n`\n\nexport const StyledCategoryItemAll = styled.div`\n display: flex;\n align-items: center;\n\n padding-right: 16px;\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n line-height: 24px;\n\n &[data-theme='marryBaby'] {\n color: ${(props: ThemeProps) => props.theme.mbColors.pink};\n }\n &[data-event-category] * {\n pointer-events: none;\n }\n`\n\nexport const StyledImageWrapper = styled.div`\n display: flex;\n align-items: center;\n\n margin-left: 10px;\n`\n\nexport const StyledCloseWrapper = styled.div`\n position: absolute;\n top: 16px;\n right: 0;\n display: flex;\n align-items: center;\n cursor: pointer;\n`\n\nexport const StyledHealtoolListContainer = styled.div`\n &[data-is-displayed='false'] {\n display: none;\n }\n`\n\nexport const StyledSeeMore = styled.div`\n margin-bottom: 56px;\n margin-top: 18px;\n`\n\nexport const StyleHealthToolByCategory = styled.div`\n position: relative;\n display: flex;\n width: 25%;\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n margin-bottom: 24px;\n h1 {\n margin-bottom: 20px;\n }\n`\n","import React from 'react'\n\nimport Skeleton from 'react-loading-skeleton'\n\nimport { StyledCardSkeleton } from './index.styled'\n\nconst CategorySkeleton = () => (\n <StyledCardSkeleton\n style={{\n marginTop: '16px',\n }}\n >\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n <div>\n <Skeleton height={46} />\n </div>\n </StyledCardSkeleton>\n)\n\nexport default CategorySkeleton\n","import React from 'react'\n\nimport { Container } from 'components/atoms/container'\nimport { Heading } from 'components/atoms/heading'\nimport { LocaleType } from 'interfaces/types'\nimport { theme } from 'misc/theme'\n\nimport { domainLocales } from '../constants'\nimport {\n DesktopMenuPopup,\n HealthTool,\n HealthToolByCategory,\n SiteType,\n} from '../types'\nimport { useTranslation } from '../utils'\nimport CategorySkeleton from './categorySkeleton'\nimport {\n StyledCategory,\n // StyledCategoryIcon,\n StyledCategoryContainer,\n StyledCategoryIcon,\n StyledCategoryItemAll,\n StyledCloseWrapper,\n StyledContainer,\n StyledHealthToolItem,\n StyledImageWrapper,\n StyledInnerMenuPopupContainer,\n StyledMenuPopupContainer,\n StyledMenuPopupWrapper,\n StyledSeeMore,\n StyleHealthToolByCategory,\n} from './index.styled'\n\nexport type Props = {\n isDisplayed: boolean\n healthTools?: HealthTool[]\n healthToolsByCategory?: HealthToolByCategory[]\n STATIC_PAGES: {\n [key in LocaleType]: {\n [key: string]: string | null\n }\n }\n onSelectHealthTool: (c: HealthTool) => void\n onClosePopup?: () => void\n isLoading: boolean\n isMobile: boolean\n desktopPopupType: DesktopMenuPopup\n basePath: string\n locale: LocaleType\n discoverApiDomain: string\n HEALTH_TOOL_URL_FE: string\n // callApiHandler: (p: string, m: 'GET' | 'POST') => any\n siteType: SiteType\n}\n\nconst HealthToolsList = ({\n healthTools,\n onSelectHealthTool,\n basePath,\n isDesktop,\n onClosePopup,\n HEALTH_TOOL_URL_FE,\n locale,\n isGrouped,\n}: {\n healthTools?: HealthTool[]\n onSelectHealthTool: (c: HealthTool) => void\n basePath: string\n isDesktop?: boolean\n onClosePopup?: () => void\n HEALTH_TOOL_URL_FE: string\n locale: LocaleType\n isGrouped?: boolean\n}) => {\n if (!healthTools?.length) return null\n return isDesktop ? (\n <>\n {healthTools.map((healthTool, index) => (\n <StyledHealthToolItem\n data-grouped={isGrouped}\n key={healthTool.title}\n onClick={onClosePopup}\n >\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}${healthTool.link}`}\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n className=\"iconMenu\"\n href={\n healthTool.link.startsWith('http')\n ? healthTool.link\n : `${HEALTH_TOOL_URL_FE}${healthTool.link}`\n }\n >\n <div\n style={{\n display: 'flex',\n }}\n >\n <img\n alt=\"health-tool-icon\"\n src={healthTool.icon || '/images/avatar.jpg'}\n style={{ width: '32px', height: '32px' }}\n />\n </div>\n <p>{healthTool.title}</p>\n </a>\n </StyledHealthToolItem>\n ))}\n </>\n ) : (\n <>\n {healthTools.map((healthTool, index) => (\n <a key={'tool-' + index}>\n <StyledCategoryContainer\n onClick={() => {\n onSelectHealthTool(healthTool)\n }}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://${domainLocales[locale]}${healthTool.link}`}\n >\n <StyledCategoryIcon>\n <img\n alt=\"health-tool-icon\"\n src={healthTool.icon || `${basePath}/images/avatar.jpg`}\n style={{ width: '32px', height: '32px' }}\n />\n </StyledCategoryIcon>\n <StyledCategory>{healthTool.title}</StyledCategory>\n </StyledCategoryContainer>\n </a>\n ))}\n </>\n )\n}\n\nconst HelloSitesMenuHealthToolsList = ({\n isDisplayed,\n healthTools,\n healthToolsByCategory,\n onSelectHealthTool,\n isLoading,\n basePath,\n locale,\n isMobile,\n onClosePopup,\n desktopPopupType,\n HEALTH_TOOL_URL_FE,\n STATIC_PAGES,\n siteType,\n}: Props) => {\n const f = useTranslation()\n\n return isMobile ? (\n <>\n {isLoading && isDisplayed ? (\n <StyledContainer>\n <CategorySkeleton />\n </StyledContainer>\n ) : (\n <StyledContainer\n data-category-list-type=\"main\"\n data-is-displayed={isDisplayed}\n >\n {!!healthToolsByCategory?.length ? (\n healthToolsByCategory.map(\n (categoryHealthTool, index) =>\n !!categoryHealthTool.healthTools?.length && (\n <React.Fragment key={`category-health-tool-${index}`}>\n <Heading tag=\"h4\" fontWeight=\"bold\" className=\"title\">\n <span\n dangerouslySetInnerHTML={{\n __html: categoryHealthTool.name,\n }}\n />\n </Heading>\n <HealthToolsList\n healthTools={categoryHealthTool.healthTools.slice(0, 4)}\n onSelectHealthTool={onSelectHealthTool}\n basePath={basePath}\n HEALTH_TOOL_URL_FE={HEALTH_TOOL_URL_FE}\n locale={locale}\n />\n </React.Fragment>\n ),\n )\n ) : (\n <HealthToolsList\n healthTools={healthTools}\n onSelectHealthTool={onSelectHealthTool}\n basePath={basePath}\n HEALTH_TOOL_URL_FE={HEALTH_TOOL_URL_FE}\n locale={locale}\n />\n )}\n <StyledSeeMore>\n <a\n href={`${HEALTH_TOOL_URL_FE}${\n STATIC_PAGES[locale]?.HEALTH_TOOLS || ''\n }`}\n style={{ textDecoration: 'none' }}\n >\n <StyledCategoryItemAll\n key={'all-health-tools-mobile'}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`${HEALTH_TOOL_URL_FE}${\n STATIC_PAGES[locale]?.HEALTH_TOOLS || ''\n }`}\n >\n {f('home.navigator.menuItem.allHealthTools')}\n <StyledImageWrapper>\n <img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.allHealthTools')}\n />\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </StyledSeeMore>\n </StyledContainer>\n )}\n </>\n ) : (\n <StyledMenuPopupWrapper\n className=\"top-menu-health-tools\"\n onClick={onClosePopup}\n data-is-display={desktopPopupType === 'tools'}\n // key={nextId()}\n >\n <StyledMenuPopupContainer>\n <Container style={{ padding: '0 16px' }}>\n <StyledInnerMenuPopupContainer\n data-popup-type={desktopPopupType}\n onClick={(e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n e.stopPropagation()\n }}\n >\n {\n <>\n {!!healthToolsByCategory?.length ? (\n healthToolsByCategory.map(\n (categoryHealthTool, index) =>\n !!categoryHealthTool.healthTools?.length && (\n <StyleHealthToolByCategory\n key={`health-tools-categories-${index}`}\n >\n <Heading tag=\"h4\" as=\"h1\" fontWeight=\"bold\">\n <span\n dangerouslySetInnerHTML={{\n __html: categoryHealthTool.name,\n }}\n />\n </Heading>\n <HealthToolsList\n healthTools={categoryHealthTool.healthTools.slice(\n 0,\n 4,\n )}\n onSelectHealthTool={onSelectHealthTool}\n basePath={basePath}\n HEALTH_TOOL_URL_FE={HEALTH_TOOL_URL_FE}\n locale={locale}\n isDesktop\n isGrouped\n onClosePopup={onClosePopup}\n />\n </StyleHealthToolByCategory>\n ),\n )\n ) : (\n <HealthToolsList\n healthTools={healthTools}\n onSelectHealthTool={onSelectHealthTool}\n basePath={basePath}\n HEALTH_TOOL_URL_FE={HEALTH_TOOL_URL_FE}\n locale={locale}\n isDesktop\n onClosePopup={onClosePopup}\n />\n )}\n\n <a\n style={{ textDecoration: 'none' }}\n href={`${HEALTH_TOOL_URL_FE}${\n STATIC_PAGES[locale]?.HEALTH_TOOLS || ''\n }`}\n >\n <StyledCategoryItemAll\n onClick={onClosePopup}\n key={'all-health-tools'}\n data-theme={siteType}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`${HEALTH_TOOL_URL_FE}${\n STATIC_PAGES[locale]?.HEALTH_TOOLS || ''\n }`}\n >\n {f('home.navigator.menuItem.allHealthTools')}\n <StyledImageWrapper>\n {/* {siteType === 'helloSites' ? ( */}\n <img\n src={`${basePath}/svg/chevronRightActive.svg`}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.allHealthTools')}\n />\n {/* // ) : (\n // <svg\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=\"M6.5 12H17.5M17.5 12L12.9118 8M17.5 12L12.9118 16\"\n // stroke=\"#3E3F58\"\n // strokeWidth=\"1.3\"\n // strokeLinecap=\"round\"\n // strokeLinejoin=\"round\"\n // />\n // </svg>\n // )} */}\n </StyledImageWrapper>\n </StyledCategoryItemAll>\n </a>\n </>\n }\n {/* )} */}\n <StyledCloseWrapper onClick={onClosePopup}>\n {/* <img\n src={`${basePath}/svg/close.svg`}\n style={{ width: '24px', height: '24px' }}\n alt={'close'}\n /> */}\n <svg\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 18M18 18L6 6\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n />\n </svg>\n </StyledCloseWrapper>\n </StyledInnerMenuPopupContainer>\n </Container>\n </StyledMenuPopupContainer>\n </StyledMenuPopupWrapper>\n )\n}\n\nexport { HelloSitesMenuHealthToolsList }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nimport { Z_INDEX } from '../constants'\n\n// import { Z_INDEX } from '../constants'\n\nexport const StyledMarryBabyIconContainer = styled.div`\n display: flex;\n width: 48px;\n height: 48px;\n align-items: center;\n justify-content: center;\n\n margin-right: 16px;\n\n background-color: ${(props: ThemeProps) => props.theme.mbColors.lightGray};\n border-radius: 50%;\n`\n\nexport const StyledMarryBabyCategoryContainer = styled.div`\n display: flex;\n width: 100%;\n height: 64px;\n align-items: center;\n justify-content: flex-start;\n padding: 8px 16px;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n`\n\n// desktop\nexport const StyledMarryBabyMenuPopupWrapper = styled.div`\n position: absolute;\n z-index: ${Z_INDEX.menuCategoryPopupWrapper};\n top: 64px;\n\n min-width: 375px;\n align-items: center;\n background-color: transparent;\n &[data-is-display='false'] {\n display: none;\n }\n`\nexport const StyledFullScreenLayer = styled.div`\n position: fixed;\n top: 69px;\n left: 0;\n width: 100vw;\n height: 100vh;\n`\n\nexport const StyledMarryBabyMenuPopupContainer = styled.div`\n z-index: ${Z_INDEX.menuCategoryPopupContainer};\n\n width: 100%;\n\n max-height: 80vh;\n\n padding: 20px 0;\n\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral50};\n //align-items: center;\n //display: flex;\n //flex: 1;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n border-radius: 16px;\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 overflow-y: auto;\n`\n\nexport const StyledMarryBabyMenuPopupInner = styled.div`\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: flex-start;\n padding: 24px;\n`\n\nexport const StyledMarryBabyHealthCategoriesContainer = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n`\n\nexport const StyledMarryBabyCategoryItem = styled.div`\n padding-right: 16px;\n margin-bottom: 12px;\n\n & > a {\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-size: ${(props: ThemeProps) => props.theme.sizes.fsParagraph4};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwRegular};\n line-height: 22px;\n }\n\n & > a:hover {\n color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n }\n\n .iconMenu {\n display: flex;\n align-items: center;\n\n > .imageContainer {\n display: flex;\n width: 32px;\n min-width: 32px;\n align-items: center;\n margin-right: 16px;\n }\n }\n`\n","import React, { CSSProperties } from 'react'\n\nimport { theme } from 'misc/theme'\n\nimport { MarryBabyText } from '../marryBabyText'\nimport { DesktopMenuPopup, HealthTool } from '../types'\nimport CategorySkeleton from './categorySkeleton'\nimport {\n StyledCategory,\n // StyledCategoryIcon,\n // StyledCategoryContainer,\n // StyledCategoryIcon,\n // StyledCategoryItemAll,\n // StyledCloseWrapper,\n StyledContainer,\n // StyledHealthToolItem,\n // StyledImageWrapper,\n // StyledInnerMenuPopupContainer,\n // StyledMenuPopupContainer,\n // StyledMenuPopupWrapper,\n} from './index.styled'\nimport {\n StyledFullScreenLayer,\n StyledMarryBabyCategoryContainer,\n StyledMarryBabyHealthCategoriesContainer,\n StyledMarryBabyIconContainer,\n StyledMarryBabyMenuPopupContainer,\n StyledMarryBabyMenuPopupWrapper,\n} from './marrybaby.styled'\n\nexport type Props = {\n isDisplayed: boolean\n healthTools: HealthTool[]\n onSelectHealthTool: (c: HealthTool) => void\n onClosePopup: () => void\n isLoading: boolean\n isMobile: boolean\n desktopPopupType: DesktopMenuPopup\n basePath: string\n discoverApiDomain: string\n HEALTH_TOOL_URL_FE: string\n}\n\nconst MarryBabyMenuHealthToolsList = ({\n isDisplayed = false,\n healthTools,\n onSelectHealthTool,\n isLoading,\n basePath,\n isMobile,\n onClosePopup,\n HEALTH_TOOL_URL_FE,\n desktopPopupType,\n}: Props) => {\n return isMobile ? (\n isLoading && isDisplayed ? (\n <StyledContainer>\n <CategorySkeleton />\n </StyledContainer>\n ) : (\n <StyledContainer\n style={{\n marginTop: 24,\n }}\n data-category-list-type=\"main\"\n data-is-displayed={isDisplayed}\n >\n {healthTools.map((healthTool, index) => (\n <a\n key={'tool-' + index}\n className={`wrapper-menu-health-tool wrapper-menu-health-tool-${index}`}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://https://marrybaby.vn${healthTool.link}`}\n >\n <StyledMarryBabyCategoryContainer\n onClick={() => {\n onSelectHealthTool(healthTool)\n }}\n >\n <StyledMarryBabyIconContainer>\n <img\n alt=\"health-tool-icon\"\n src={healthTool.icon || `${basePath}/images/avatar.jpg`}\n style={{ width: '24px', height: '24px' }}\n />\n </StyledMarryBabyIconContainer>\n <StyledCategory>{healthTool.title}</StyledCategory>\n </StyledMarryBabyCategoryContainer>\n </a>\n ))}\n </StyledContainer>\n )\n ) : (\n <StyledMarryBabyMenuPopupWrapper\n className=\"top-menu-health-tools\"\n onClick={onClosePopup}\n data-is-display={desktopPopupType === 'tools'}\n >\n <StyledFullScreenLayer />\n <StyledMarryBabyMenuPopupContainer\n data-popup-type={desktopPopupType}\n onClick={(e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n e.stopPropagation()\n }}\n >\n <StyledMarryBabyHealthCategoriesContainer>\n {isLoading ? (\n <div\n style={{\n width: '100%',\n padding: '0 20px',\n }}\n >\n <CategorySkeleton />\n </div>\n ) : (\n healthTools.map((healthTool: HealthTool, index: number) => (\n <a\n className={`wrapper-menu-health-tool wrapper-menu-health-tool-${index} iconMenu`}\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label={`https://marrybaby.vn${healthTool.link}`}\n style={{\n textDecoration: 'none',\n color: theme.colors.gray800,\n }}\n href={\n healthTool.link.startsWith('http')\n ? healthTool.link\n : `${HEALTH_TOOL_URL_FE}${healthTool.link}`\n }\n key={healthTool.title}\n onClick={(e) => {\n e.stopPropagation()\n }}\n >\n <StyledMarryBabyCategoryContainer onClick={onClosePopup}>\n <StyledMarryBabyIconContainer>\n <img\n alt={healthTool.title}\n src={healthTool.icon || '/images/avatar.jpg'}\n style={{ width: '24px', height: '24px' }}\n />\n </StyledMarryBabyIconContainer>\n <MarryBabyText\n style={\n {\n fontWeight: theme.sizes.fwSemiBold,\n } as CSSProperties\n }\n type=\"subtitle-2\"\n >\n {healthTool.title}\n </MarryBabyText>\n </StyledMarryBabyCategoryContainer>\n </a>\n ))\n )}\n </StyledMarryBabyHealthCategoriesContainer>\n </StyledMarryBabyMenuPopupContainer>\n </StyledMarryBabyMenuPopupWrapper>\n )\n}\n\nexport { MarryBabyMenuHealthToolsList }\n","import React from 'react'\n\nimport { LocaleType } from 'interfaces/types'\n\nimport {\n DesktopMenuPopup,\n HealthTool,\n HealthToolByCategory,\n SiteType,\n} from '../types'\nimport { HelloSitesMenuHealthToolsList } from './helloSites'\nimport { MarryBabyMenuHealthToolsList } from './marryBaby'\n\nexport type Props = {\n isDisplayed: boolean\n healthTools?: HealthTool[]\n healthToolsByCategory?: HealthToolByCategory[]\n onSelectHealthTool: (c: HealthTool) => void\n onClosePopup: () => void\n isLoading: boolean\n isMobile: boolean\n desktopPopupType: DesktopMenuPopup\n basePath: string\n locale: LocaleType\n discoverApiDomain: string\n HEALTH_TOOL_URL_FE: string\n siteType: SiteType\n STATIC_PAGES: { [key in LocaleType]: any }\n}\n\nconst MenuHealthToolsList = ({\n isDisplayed = false,\n healthTools,\n healthToolsByCategory,\n onSelectHealthTool,\n isLoading,\n basePath,\n locale,\n isMobile,\n onClosePopup,\n desktopPopupType,\n HEALTH_TOOL_URL_FE,\n siteType,\n discoverApiDomain,\n STATIC_PAGES,\n}: Props) => {\n return siteType === 'helloSites' ? (\n <HelloSitesMenuHealthToolsList\n isDisplayed={isDisplayed}\n locale={locale}\n basePath={basePath}\n discoverApiDomain={discoverApiDomain}\n HEALTH_TOOL_URL_FE={HEALTH_TOOL_URL_FE}\n onSelectHealthTool={onSelectHealthTool}\n healthTools={healthTools}\n healthToolsByCategory={healthToolsByCategory}\n isLoading={isLoading}\n isMobile={isMobile}\n siteType={siteType}\n desktopPopupType={desktopPopupType}\n onClosePopup={onClosePopup}\n STATIC_PAGES={STATIC_PAGES}\n />\n ) : (\n <MarryBabyMenuHealthToolsList\n isDisplayed={isDisplayed}\n basePath={basePath}\n discoverApiDomain={discoverApiDomain}\n HEALTH_TOOL_URL_FE={HEALTH_TOOL_URL_FE}\n onSelectHealthTool={onSelectHealthTool}\n healthTools={\n healthTools ||\n healthToolsByCategory.reduce((r, h) => r.concat(h.healthTools), [])\n }\n isLoading={isLoading}\n isMobile={isMobile}\n desktopPopupType={desktopPopupType}\n onClosePopup={onClosePopup}\n />\n )\n}\n\nexport { MenuHealthToolsList }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nexport const StyledCardSkeleton = styled.div`\n & > div {\n width: 100%;\n min-height: 109px;\n }\n`\n\nexport const StyledCard = styled.div`\n min-height: 116px;\n padding: 8px 8px;\n border: 1px solid ${(props: ThemeProps) => props.theme.colors.neutral100};\n //border-radius: 6px;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.04), 0px 0px 2px rgba(0, 0, 0, 0.06),\n 0px 0px 1px rgba(0, 0, 0, 0.04);\n text-align: center;\n transition: 0.2s ease-in-out;\n\n &[data-is-active='true'] {\n background-color: ${(props: ThemeProps) => props.theme.colors.primaryBase};\n p {\n color: ${(props: ThemeProps) => props.theme.colors.white};\n }\n }\n\n & > :last-child {\n margin-top: 8px;\n }\n\n &[data-card-position='left'] {\n border-bottom-left-radius: 6px;\n border-top-left-radius: 6px;\n }\n\n &[data-card-position='right'] {\n border-bottom-right-radius: 6px;\n border-top-right-radius: 6px;\n }\n\n &[data-card-position='whatever'] {\n border-radius: 6px;\n }\n`\n","import React from 'react'\n\nimport Skeleton from 'react-loading-skeleton'\n\nimport { StyledCardSkeleton } from './index.styled'\n\nconst CardSkeleton = () => (\n <>\n <StyledCardSkeleton>\n <div>\n <Skeleton height={109} />\n </div>\n <div>\n <Skeleton height={109} />\n </div>\n <div>\n <Skeleton height={109} />\n </div>\n <div>\n <Skeleton height={109} />\n </div>\n <div>\n <Skeleton height={109} />\n </div>\n <div>\n <Skeleton height={109} />\n </div>\n </StyledCardSkeleton>\n </>\n)\n\nexport default CardSkeleton\n","import React from 'react'\n\n// import { Text } from '@hhgtech/hhg-components'\n// import { MenuService } from 'interfaces/types'\n\nimport { Text } from 'components/atoms/text'\n\nimport { MenuService, MenuServiceType } from '../types'\nimport CardSkeleton from './cardSkeleton'\nimport { StyledCard } from './index.styled'\n\nexport type Props = {\n specialty: MenuService\n id: MenuServiceType\n isActive?: boolean\n onClick?: (i: string | number) => void\n position?: 'left' | 'center' | 'right' | 'whatever'\n isMobile?: boolean\n className?: string\n}\n\nconst MenuSectionCard = ({\n specialty,\n id,\n isActive = false,\n position,\n className,\n onClick,\n}: Props) => {\n if (!specialty.name || specialty.name === '') return <CardSkeleton />\n return (\n <StyledCard\n onClick={() => {\n onClick && onClick(id)\n }}\n className={className}\n data-is-active={isActive}\n data-card-position={position}\n >\n <img\n src={specialty.thumbnail}\n style={{ objectFit: 'contain', height: '55px', width: '55px' }}\n alt={'category-menu-card'}\n />\n <Text type=\"bold\" size=\"label2\">\n {specialty.name}\n </Text>\n </StyledCard>\n )\n}\n\nexport { MenuSectionCard }\n","import React from 'react'\n\nexport function ArrowLeftPopupIcon() {\n return (\n <svg\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=\"M14.5 17L9.5 12L14.5 7\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n","import React from 'react'\n\nexport function ClosePopupIcon() {\n return (\n <svg\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 18M18 18L6 6\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n />\n </svg>\n )\n}\n","import React from 'react'\n\nimport { HamburgerMenuIcon } from '../assets'\nimport { SiteType } from '../types'\nimport { TypeProps } from './NavigationBar.types'\n\ntype Props = {\n siteType: SiteType\n type: TypeProps\n}\n\nexport function HamburgerIcon({ siteType, type }: Props) {\n if (siteType === 'helloSites') {\n return (\n <img\n data-list-type=\"Header\"\n data-content-type=\"Navigation\"\n data-content-topic=\"Hamburger\"\n src={HamburgerMenuIcon}\n style={{ width: '24px', height: '24px' }}\n alt={type}\n />\n )\n }\n\n /** Marry Baby */\n return (\n <svg\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 fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.34961 15C3.34961 14.641 3.64062 14.35 3.99961 14.35L13.9996 14.35C14.3586 14.35 14.6496 14.641 14.6496 15C14.6496 15.359 14.3586 15.65 13.9996 15.65L3.99961 15.65C3.64062 15.65 3.34961 15.359 3.34961 15ZM3.34961 8.99999C3.34961 8.64101 3.64062 8.34999 3.99961 8.34999L19.9992 8.34999C20.3582 8.34999 20.6492 8.64101 20.6492 8.99999C20.6492 9.35898 20.3582 9.64999 19.9992 9.64999L3.99961 9.64999C3.64062 9.64999 3.34961 9.35898 3.34961 8.99999Z\"\n fill=\"#3E3F58\"\n />\n </svg>\n )\n}\n","import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport { Button } from 'components/atoms/button'\nimport { Heading } from 'components/atoms/heading'\nimport { Logo } from 'components/atoms/logo'\nimport { PureInput } from 'components/atoms/pureInput'\nimport { Text } from 'components/atoms/text'\nimport { debounce } from 'lodash'\n\nimport { useHeaderHeightHook } from '.'\nimport { SehatBadge, LockIcon } from '../assets'\nimport { useTranslation } from '../utils'\nimport { ArrowLeftPopupIcon } from './ArrowLeftPopupIcon'\nimport { ClosePopupIcon } from './ClosePopupIcon'\nimport { HamburgerIcon } from './HamburgerIcon'\nimport {\n StyledHeaderContainer,\n StyledHeaderMenuItem,\n StyledImageWrapper,\n StyledMenuContainer,\n StyledMenuIcon,\n StyledMenuSearchInput,\n StyledProfileMenu,\n StyledAvatar,\n} from './index.styled'\nimport { NavigationBarMobileProps } from './NavigationBar.types'\n\nexport function NavigationBarMobile({\n type,\n isStatic,\n isAmp,\n isDisplayed,\n siteType,\n isCollapsed,\n sitewideBannerShown,\n sitewideBanner,\n sitewideBannerClosed,\n setSitewideBannerClosed,\n isMobile,\n onMenuClick,\n menu,\n isSearchIconDisplayed,\n statics: { DISCOVER_URL_FE, SSO_URL, HOME_PAGE_URL, CARE_URL_FE },\n basePath,\n languageMenu,\n enabledExperimentalCareHeader,\n onCareHeaderClick,\n logoType,\n locale,\n isInit,\n title,\n sponsorComponent,\n currentUrl,\n userInfo,\n currentPopupType,\n avatar,\n profileMenu,\n isLoginButtonDisplayed,\n goToLogin,\n isSearchBarDisplay,\n searchPlaceholder,\n onSearchValueChanged,\n keyPressed,\n}: NavigationBarMobileProps) {\n const f = useTranslation()\n const isSponsored = !!sponsorComponent\n const hasSponsoredBanners = !!sponsorComponent?.props?.sponsoredBy?.length\n const isSiteWide = !!sitewideBanner && !sitewideBannerClosed\n\n const isShowingSiteWideBanner =\n sitewideBannerShown && !!sitewideBanner && !sitewideBannerClosed\n const { headerRef, headerHeight } = useHeaderHeightHook({\n isSiteWide,\n isShowingSiteWideBanner,\n isSponsored,\n hasSponsoredBanners,\n isMobile: true,\n })\n return (\n <>\n <StyledHeaderContainer\n data-header-type={type}\n data-collapsed={isStatic ? false : isCollapsed}\n data-with-search-input={type !== 'popup-sub-level'}\n data-is-displayed={isDisplayed}\n data-is-amp={isAmp}\n data-sponsored={isSponsored}\n data-site-type={siteType}\n data-sitewide-banner-shown={isShowingSiteWideBanner}\n id=\"site-header\"\n ref={headerRef}\n >\n {/* {type === 'popup' && (\n // <Link href=\"/\">\n <a\n href=\"/\"\n style={{\n position: 'absolute',\n left: '50%',\n transform: 'translateX(-50%)',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n }}\n >\n <Logo\n type={logoType}\n height={'27px'}\n width={'104px'}\n style={{\n display: 'flex',\n alignItems: 'center',\n }}\n />\n </a>\n // </Link>\n )} */}\n {sitewideBanner\n ? !React.isValidElement(sitewideBanner)\n ? sitewideBanner\n : React.cloneElement<{\n isCollapsed?: boolean\n isAmp?: boolean\n isMobile?: boolean\n setBannerClosed?: (v: boolean) => void\n }>(sitewideBanner, {\n isCollapsed,\n setBannerClosed: setSitewideBannerClosed,\n isAmp,\n isMobile,\n })\n : null}\n\n <div\n style={{\n position: 'relative',\n height: 64,\n display: 'flex',\n alignItems: 'center',\n justifyContent: siteType === 'helloSites' ? 'center' : 'flex-start',\n background: 'white',\n ...(siteType === 'marryBaby'\n ? {\n paddingLeft: 66,\n }\n : {}),\n\n ...(typeof languageMenu !== 'undefined' ||\n enabledExperimentalCareHeader\n ? {\n paddingLeft: enabledExperimentalCareHeader ? 48 : 64,\n gap: 24,\n justifyContent: 'unset',\n }\n : {}),\n }}\n >\n <StyledMenuContainer>\n <StyledMenuIcon\n on=\"tap:discover-amp-sidebar\"\n role=\"button\"\n className=\"menu-handler\"\n tabIndex={0}\n >\n <div onClick={() => onMenuClick?.('categories')}>\n {/* On mobile: Click Humburger icon to open menu popup */}\n {type === 'home' && (\n <a\n data-event-category=\"Hamburger Navigation\"\n data-event-action=\"Click\"\n data-event-label=\"Hamburger Navigation URL\"\n >\n <HamburgerIcon siteType={siteType} type={type} />\n </a>\n )}\n\n {/* On mobile: Click a category menu to open sub level and render arrow left popup icon to go back */}\n {type === 'popup' && <ClosePopupIcon />}\n {type === 'popup-sub-level' && <ArrowLeftPopupIcon />}\n </div>\n {menu}\n </StyledMenuIcon>\n {isSearchIconDisplayed &&\n siteType === 'helloSites' &&\n type === 'home' && (\n <StyledMenuIcon style={{ paddingRight: 16 }}>\n <a\n data-event-category=\"Search Button\"\n data-event-action=\"Click\"\n style={{\n paddingRight: 16,\n paddingTop: 8,\n position: 'relative',\n }}\n href={`${HOME_PAGE_URL}/search?s=&page=1`}\n >\n <img\n src={`${basePath}/images/search.svg`}\n style={{ width: '24px', height: '24px' }}\n alt={type}\n />\n {/* fake input */}\n <input\n style={{\n width: '32px',\n height: '32px',\n position: 'absolute',\n left: '-2px',\n bottom: '0',\n opacity: 0,\n zIndex: 10000,\n }}\n />\n </a>\n </StyledMenuIcon>\n )}\n </StyledMenuContainer>\n {/* profile avatar */}\n {type !== 'popup' && (\n <StyledProfileMenu\n data-is-profile={true}\n className={!isInit ? 'menu-handler-health-tools' : ''}\n >\n <div className=\"menu-handler-item\">\n {isSearchIconDisplayed &&\n siteType === 'marryBaby' &&\n type === 'home' && (\n <StyledMenuIcon\n style={{\n justifySelf: 'flex-end',\n }}\n >\n {/* <Link href={`${DISCOVER_URL_FE}/search?s=&page=1`}> */}\n <a\n data-event-category=\"Search Button\"\n data-event-action=\"Click\"\n style={{\n display: 'flex',\n }}\n href={`${DISCOVER_URL_FE}/search?s=&page=1`}\n >\n <svg\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=\"M3.31573 13.7811L3.94855 13.6326L3.31573 13.7811ZM3.31573 8.324L3.94855 8.47244L3.31573 8.324ZM18.7893 8.324L19.4221 8.17556L18.7893 8.324ZM18.7893 13.781L19.4221 13.9295L18.7893 13.781ZM13.781 18.7893L13.6326 18.1565L13.781 18.7893ZM8.324 18.7893L8.17556 19.4221L8.324 18.7893ZM8.324 3.31573L8.17556 2.6829L8.324 3.31573ZM13.781 3.31573L13.9295 2.6829L13.781 3.31573ZM20.5404 21.4596C20.7942 21.7135 21.2058 21.7135 21.4596 21.4596C21.7135 21.2058 21.7135 20.7942 21.4596 20.5404L20.5404 21.4596ZM3.94855 13.6326C3.55048 11.9356 3.55048 10.1695 3.94855 8.47244L2.6829 8.17556C2.23903 10.0679 2.23903 12.0372 2.68291 13.9295L3.94855 13.6326ZM18.1565 8.47244C18.5546 10.1695 18.5546 11.9356 18.1565 13.6326L19.4221 13.9295C19.866 12.0372 19.866 10.0679 19.4221 8.17556L18.1565 8.47244ZM13.6326 18.1565C11.9356 18.5546 10.1695 18.5546 8.47244 18.1565L8.17556 19.4221C10.0679 19.866 12.0372 19.866 13.9295 19.4221L13.6326 18.1565ZM8.47244 3.94855C10.1695 3.55048 11.9356 3.55048 13.6326 3.94855L13.9295 2.6829C12.0372 2.23903 10.0679 2.23903 8.17556 2.6829L8.47244 3.94855ZM8.47244 18.1565C6.22776 17.63 4.47508 15.8773 3.94855 13.6326L2.68291 13.9295C3.32219 16.6549 5.45019 18.7829 8.17556 19.4221L8.47244 18.1565ZM13.9295 19.4221C16.6549 18.7829 18.7829 16.6549 19.4221 13.9295L18.1565 13.6326C17.63 15.8773 15.8773 17.63 13.6326 18.1565L13.9295 19.4221ZM13.6326 3.94855C15.8773 4.47508 17.63 6.22775 18.1565 8.47244L19.4221 8.17556C18.7829 5.45019 16.6549 3.32219 13.9295 2.6829L13.6326 3.94855ZM8.17556 2.6829C5.45019 3.32219 3.32219 5.45018 2.6829 8.17556L3.94855 8.47244C4.47508 6.22775 6.22775 4.47508 8.47244 3.94855L8.17556 2.6829ZM16.8755 17.7948L20.5404 21.4596L21.4596 20.5404L17.7948 16.8755L16.8755 17.7948Z\"\n fill=\"#3E3F58\"\n />\n </svg>\n {/* fake input */}\n <input\n style={{\n width: '32px',\n height: '32px',\n position: 'absolute',\n left: '-2px',\n bottom: '0',\n opacity: 0,\n zIndex: 10000,\n }}\n />\n </a>\n {/* </Link> */}\n </StyledMenuIcon>\n )}\n\n {enabledExperimentalCareHeader && (\n <>\n {onCareHeaderClick ? (\n <Button\n size=\"sm\"\n color={'primary'}\n dataEventCategory=\"Care\"\n dataEventAction=\"Navigation Bar Click\"\n dataEventLabel={currentUrl}\n onClick={onCareHeaderClick}\n >\n {f('login.booking')}\n </Button>\n ) : (\n <a href={CARE_URL_FE} className=\"care-button\">\n <Button\n size=\"sm\"\n color={'primary'}\n dataEventCategory=\"Care\"\n dataEventAction=\"Navigation Bar Click\"\n dataEventLabel={currentUrl}\n >\n {f('login.booking')}\n </Button>\n </a>\n )}\n </>\n )}\n\n {userInfo?.id ? (\n <StyledImageWrapper style={{ position: 'relative' }}>\n <div onClick={() => onMenuClick && onMenuClick('profile')}>\n {currentPopupType === 'profile' ? (\n <svg\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 18M18 18L6 6\"\n stroke=\"#3E3F58\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n />\n </svg>\n ) : (\n avatar\n )}\n </div>\n {profileMenu}\n </StyledImageWrapper>\n ) : !isAmp ? (\n isLoginButtonDisplayed && (\n <a\n data-event-category=\"Sign Up\"\n data-event-action=\"Button Click\"\n data-event-label={currentUrl}\n >\n {enabledExperimentalCareHeader ? (\n <StyledAvatar onClick={goToLogin}>\n <img src={LockIcon} className=\"avatar\" alt=\"avatar\" />\n </StyledAvatar>\n ) : siteType === 'helloSites' ? (\n <Button\n className=\"login-btn-mobile\"\n size=\"sm\"\n color=\"secondary\"\n onClick={goToLogin}\n >\n {f('navigation.loginJoin')}\n </Button>\n ) : (\n <div\n className=\"login-btn-mobile\"\n onClick={goToLogin}\n style={{\n paddingLeft: 16,\n }}\n >\n <Text size=\"p3\">{f('navigation.loginJoin')}</Text>\n </div>\n )}\n </a>\n )\n ) : (\n <a\n data-vars-event-category=\"Sign Up\"\n data-vars-event-action=\"Button Click\"\n data-vars-event-label={currentUrl}\n href={`${SSO_URL}?returnUrl=${currentUrl.replace(\n '?amp=1',\n '',\n )}`}\n style={{ textDecoration: 'none' }}\n >\n {locale === 'vi-VN' ? (\n <StyledAvatar onClick={goToLogin}>\n <img src={LockIcon} className=\"avatar\" alt=\"avatar\" />\n </StyledAvatar>\n ) : (\n <Button\n className=\"login-btn-mobile\"\n size=\"sm\"\n color={'secondary'}\n onClick={goToLogin}\n >\n {f('navigation.loginJoin')}\n </Button>\n )}\n </a>\n )}\n </div>\n </StyledProfileMenu>\n )}\n {(type === 'home' || type === 'popup') && (\n <a href={HOME_PAGE_URL || ''}>\n <Logo\n type={logoType}\n height=\"27px\"\n width=\"121px\"\n style={{\n display: 'flex',\n }}\n badge={\n locale === 'id-ID' ? (\n <img\n src={SehatBadge}\n style={{ width: 56, height: 23, maxWidth: 56 }}\n width=\"56\"\n height=\"23\"\n />\n ) : undefined\n }\n />\n </a>\n )}\n {typeof languageMenu !== 'undefined' && (\n <StyledHeaderMenuItem\n data-is-active={true}\n className={!isInit ? 'menu-handler-language' : ''}\n onClick={() => {\n onMenuClick && onMenuClick('language')\n }}\n >\n {languageMenu}\n </StyledHeaderMenuItem>\n )}\n {title && (\n <Heading className=\"top-bar-header\" tag=\"h5\">\n {title}\n </Heading>\n )}\n </div>\n\n {sponsorComponent\n ? !React.isValidElement(sponsorComponent)\n ? sponsorComponent\n : React.cloneElement<{\n isCollapsed?: boolean\n isMobile?: boolean\n isAmp?: boolean\n locale?: string\n }>(sponsorComponent, {\n isCollapsed,\n locale,\n isMobile,\n isAmp,\n })\n : null}\n </StyledHeaderContainer>\n {isSearchBarDisplay ? (\n <StyledMenuSearchInput\n data-header-type={type}\n data-is-displayed={isDisplayed}\n data-sitewide-banner-shown={sitewideBannerShown && !!sitewideBanner}\n >\n <PureInput\n style={{\n minHeight: 'auto',\n minWidth: '100%',\n padding: '0 16px',\n }}\n // value={searchValue}\n name={'search-input-' + type + (!isInit ? '-temp' : '')}\n size=\"md\"\n placeholder={searchPlaceholder}\n onChange={onSearchValueChanged}\n onKeyPress={keyPressed}\n type=\"search\"\n autoFocus={false}\n displayIcon={\n <a data-event-category=\"Search Button\" data-event-action=\"Click\">\n <svg\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=\"#8C8C8C\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M20 20L16 16\"\n stroke=\"#8C8C8C\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </a>\n }\n />\n </StyledMenuSearchInput>\n ) : (\n <>\n {!isAmp && (\n <div\n style={{\n height: headerHeight,\n }}\n ></div>\n )}\n </>\n )}\n </>\n )\n}\n","import React, {\n // useContext,\n useEffect,\n useRef,\n useState,\n useCallback,\n useMemo,\n} from 'react'\n\nimport { Avatar } from 'components/atoms/avatar'\nimport { Button } from 'components/atoms/button'\nimport { Container } from 'components/atoms/container'\nimport { Logo, TypeProps as LogoTypeProps } from 'components/atoms/logo'\nimport { PureInput } from 'components/atoms/pureInput'\nimport {\n domainLocales,\n LOCALE_SPECS,\n} from 'components/organisms/navigationLayout/constants'\nimport { debounce, throttle } from 'lodash'\nimport { theme } from 'misc/theme'\n\nimport { SehatBadge, LockIcon } from '../assets'\nimport { useTranslation } from '../utils'\nimport {\n StyledDesktopHeader,\n StyledDesktopHeaderWrapper,\n StyledDesktopMenuSearchInput,\n StyledHeaderMenuItem,\n StyledImageWrapper,\n StyledLeftGroup,\n StyledLogoWrapper,\n StyledRightGroup,\n StyledProfileMenu,\n StyledMenuIconWrapper,\n StyledAvatar,\n} from './index.styled'\nimport { Props } from './NavigationBar.types'\nimport { NavigationBarMobile } from './NavigationBarMobile'\n\nexport type { Props } from './NavigationBar.types'\n\nexport const useHeaderHeightHook = ({\n hasSponsoredBanners,\n isSiteWide,\n isSponsored,\n isShowingSiteWideBanner,\n isMobile,\n}: {\n hasSponsoredBanners?: boolean\n isSiteWide?: boolean\n isSponsored?: boolean\n isShowingSiteWideBanner?: boolean\n isMobile?: boolean\n}) => {\n const headerRef = useRef<HTMLDivElement>(null)\n const [headerHeight, setHeaderHeight] = useState(0)\n const debounceSetHeader = useCallback(\n debounce(() => {\n const newHeaderHeight = headerRef.current?.clientHeight || 0\n if (window.scrollY <= newHeaderHeight + 30)\n setHeaderHeight(newHeaderHeight)\n }, 100),\n [],\n )\n useEffect(() => {\n window.addEventListener('resize', debounceSetHeader)\n window.addEventListener('scroll', debounceSetHeader)\n return () => {\n window.removeEventListener('resize', debounceSetHeader)\n window.removeEventListener('scroll', debounceSetHeader)\n }\n }, [])\n useEffect(() => {\n debounceSetHeader()\n }, [\n isSiteWide,\n isShowingSiteWideBanner,\n isSponsored,\n hasSponsoredBanners,\n headerRef.current,\n ])\n\n const defaultHeaderHeight = useMemo(() => {\n let res = isMobile ? 64 : 69\n if (isShowingSiteWideBanner) {\n res += 64\n }\n if (isSponsored) {\n res += 40\n }\n return res\n }, [isMobile, isShowingSiteWideBanner, isSponsored])\n return {\n headerHeight: headerHeight || defaultHeaderHeight,\n headerRef,\n }\n}\n\nconst NavigationBar = ({\n siteType,\n basePath,\n statics,\n currentPopupType = 'none',\n isDisplayed = true,\n isSearchBarDisplay = true,\n searchPlaceholder = '',\n openPopup,\n onTopBarAppears,\n onSearchChange,\n onSearchKeyPress,\n menu,\n isAmp,\n profileMenu,\n isMobile = false,\n isLoginButtonDisplayed,\n title,\n type = 'home',\n onMenuClick,\n isStatic = false,\n routerAsPath: asPath,\n locale,\n userInfo,\n marryBaby: { tone } = { tone: 'white' },\n menuItems = [],\n // className,\n isInit: _isInit,\n sitewideBanner,\n sitewideBannerShown = true,\n sponsorComponent,\n languageMenu,\n isSearchIconDisplayed = false,\n enabledExperimentalCareHeader,\n onCareHeaderClick,\n}: Props) => {\n const { SSO_URL, HOME_PAGE_URL, CARE_URL_FE } = statics\n const f = useTranslation()\n const isSponsored = !!sponsorComponent\n\n // const { locale = 'en-PH', asPath } = useRouter()\n const [isCollapsed, setIsCollapsed] = useState(false)\n // const [searchValue, setSearchValue] = useState('')\n const [sitewideBannerClosed, setSitewideBannerClosed] = useState(false)\n const [isCloseBookmarkTooltips, setIsCloseBookmarkTooltips] = useState(false)\n const [isInit, setIsInit] = useState(_isInit || false)\n const scrollY = useRef(47)\n const collapsedMenu = useRef<boolean>(false)\n const searchIconDisplayed = useRef<boolean>(false)\n\n const currentUrl =\n siteType === 'helloSites'\n ? `https://${domainLocales[locale]}${asPath}`\n : `https://www.marrybaby.vn${asPath}`\n\n // const { state } = useContext(AppContext)\n // const { userInfo } = state || {}\n\n const avatar = useMemo(() => {\n const name = userInfo?.name || userInfo?.username\n\n return (\n <Avatar\n type=\"rounded\"\n size=\"small\"\n avatarUrl={userInfo?.avatar}\n firstLetter={name && name.length ? name[0].toUpperCase() : 'A'}\n backgroundColor={\n siteType === 'marryBaby'\n ? theme.mbColors.pink\n : theme.colors.secondaryBase\n }\n isAmp={isAmp}\n />\n )\n }, [userInfo?.username, userInfo?.name, userInfo?.avatar])\n\n const goToLogin = () => {\n const currentLocation = window.location.href\n window.location.href = SSO_URL\n ? `${SSO_URL}?returnUrl=${currentLocation}`\n : currentLocation\n }\n\n const logoType =\n siteType === 'helloSites'\n ? (LOCALE_SPECS[locale]?.LOGO_TYPE as LogoTypeProps)\n : siteType\n const isBrowser = typeof window !== 'undefined'\n\n const onSearchValueChanged = (v: string) => {\n // setSearchValue(v)\n onSearchChange?.(v)\n }\n const scrolling = useCallback(\n throttle(() => {\n if (type === 'home') {\n const container = window\n const stickyContainerHeight =\n document.querySelector('.sticky-container')?.clientHeight\n\n if (isBrowser && container) {\n if (\n container.scrollY > scrollY.current &&\n container.scrollY > 64 &&\n !collapsedMenu.current\n ) {\n collapsedMenu.current = true\n setIsCollapsed(true)\n }\n\n if (container.scrollY < scrollY.current && collapsedMenu.current) {\n collapsedMenu.current = false\n setIsCollapsed(false)\n\n if (\n stickyContainerHeight &&\n stickyContainerHeight > container.scrollY\n ) {\n }\n }\n\n if (container.scrollY < scrollY.current) {\n if (\n stickyContainerHeight &&\n stickyContainerHeight > container.scrollY\n ) {\n }\n }\n\n if (isSearchBarDisplay) {\n if (\n container.scrollY < 64 &&\n container.scrollY < scrollY.current &&\n searchIconDisplayed.current\n ) {\n searchIconDisplayed.current = false\n }\n\n if (\n container.scrollY > 8 &&\n container.scrollY > scrollY.current &&\n !searchIconDisplayed.current\n ) {\n searchIconDisplayed.current = true\n }\n } else {\n searchIconDisplayed.current = true\n }\n\n container.scrollY >= 0 && (scrollY.current = container.scrollY)\n }\n\n // set collapse topbar\n\n // hide search input quickly\n // if (\n // container &&\n // container.scrollY > scrollY.current &&\n // container.scrollY > 48 &&\n // container.scrollY < 63 &&\n // !collapsedMenu.current\n // ) {\n // container.scrollTo({\n // top: 112,\n // left: 0,\n // behavior: 'smooth',\n // })\n // }\n\n // hide/display search icon\n }\n }, 300),\n [],\n )\n\n useEffect(() => {\n onTopBarAppears?.(!isCollapsed)\n }, [isCollapsed])\n\n const keyPressed = (e: React.KeyboardEvent<Element>) => {\n onSearchKeyPress &&\n onSearchKeyPress(\n e,\n (document.getElementById('search-input-' + type) as HTMLInputElement)\n ?.value ?? '',\n )\n }\n\n useEffect(() => {\n isMobile && scrolling()\n }, [])\n\n useEffect(() => {\n window.addEventListener('scroll', scrolling, { passive: true })\n return () => {\n window.removeEventListener('scroll', scrolling)\n }\n }, [])\n\n useEffect(() => {\n setIsInit(true)\n }, [])\n\n useEffect(() => {\n if (typeof window !== 'undefined') {\n setIsCloseBookmarkTooltips(Boolean(isCloseBookmarkTooltips))\n }\n }, [])\n\n const focusToMenu = () => {\n setTimeout(() => {\n ;(\n document.getElementsByClassName(\n 'top-menu-categories',\n )?.[0] as HTMLElement\n )?.focus()\n }, 100)\n }\n\n const desktopMenuItems = (\n <>\n {menuItems.find((i) => i.id === 'categories') && (\n <StyledHeaderMenuItem\n data-is-active={currentPopupType === 'categories'}\n className={!isInit ? 'menu-handler-categories' : ''}\n tabIndex={0}\n onClick={() => {\n openPopup?.('categories')\n focusToMenu()\n }}\n >\n <div className=\"menu-handler-item\">\n {f('home.navigator.menuItem.discover')}\n <StyledMenuIconWrapper>\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5 7.5L9 10L6.5 7.5\"\n stroke=\"#202135\"\n strokeWidth=\"1.33\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </StyledMenuIconWrapper>\n </div>\n {currentPopupType === 'categories' && <div>{menu}</div>}\n </StyledHeaderMenuItem>\n )}\n {menuItems.find((i) => i.id === 'healthTools') && (\n <StyledHeaderMenuItem\n data-is-active={currentPopupType === 'tools'}\n className={!isInit ? 'menu-handler-health-tools' : ''}\n tabIndex={0}\n >\n <div\n className=\"menu-handler-item\"\n onClick={() => {\n openPopup && openPopup('tools')\n }}\n >\n {f('home.navigator.menuItem.healthTools')}\n <StyledMenuIconWrapper>\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5 7.5L9 10L6.5 7.5\"\n stroke=\"#202135\"\n strokeWidth=\"1.33\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </StyledMenuIconWrapper>\n </div>\n {currentPopupType === 'tools' && <div>{menu}</div>}\n </StyledHeaderMenuItem>\n )}\n {menuItems.find((i) => i.id === 'care') &&\n !enabledExperimentalCareHeader && (\n <StyledHeaderMenuItem\n data-is-active={currentPopupType === 'care'}\n className={!isInit ? 'menu-handler-care-specialties' : ''}\n tabIndex={0}\n >\n <div\n className=\"menu-handler-item\"\n onClick={() => {\n openPopup && openPopup('care')\n }}\n >\n {f('home.navigator.menuItem.helloCare')}\n <StyledMenuIconWrapper>\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5 7.5L9 10L6.5 7.5\"\n stroke=\"#202135\"\n strokeWidth=\"1.33\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </StyledMenuIconWrapper>\n </div>\n {currentPopupType === 'care' && <div>{menu}</div>}\n </StyledHeaderMenuItem>\n )}\n {menuItems.find((i) => i.id === 'together') && (\n <StyledHeaderMenuItem\n data-is-active={currentPopupType === 'communities'}\n className={!isInit ? 'menu-handler-communities' : ''}\n tabIndex={0}\n >\n <div\n className=\"menu-handler-item\"\n onClick={() => {\n openPopup && openPopup('communities')\n }}\n >\n {f('home.navigator.menuItem.helloTogether')}\n <StyledMenuIconWrapper>\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5 7.5L9 10L6.5 7.5\"\n stroke=\"#202135\"\n strokeWidth=\"1.33\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </StyledMenuIconWrapper>\n </div>\n {currentPopupType === 'communities' && <div>{menu}</div>}\n </StyledHeaderMenuItem>\n )}\n </>\n )\n\n const hasSponsoredBanners = !!sponsorComponent?.props?.sponsoredBy?.length\n const isSiteWide = !!sitewideBanner && !sitewideBannerClosed\n\n const isShowingSiteWideBanner =\n sitewideBannerShown && !!sitewideBanner && !sitewideBannerClosed\n const { headerRef, headerHeight } = useHeaderHeightHook({\n isSiteWide,\n isShowingSiteWideBanner,\n isSponsored,\n hasSponsoredBanners,\n })\n\n if (isMobile) {\n return (\n <NavigationBarMobile\n type={type}\n isStatic={isStatic}\n isAmp={isAmp}\n isDisplayed={isDisplayed}\n siteType={siteType}\n isCollapsed={isCollapsed}\n sitewideBannerShown={sitewideBannerShown}\n sitewideBanner={sitewideBanner}\n sitewideBannerClosed={sitewideBannerClosed}\n setSitewideBannerClosed={setSitewideBannerClosed}\n isMobile={isMobile}\n onMenuClick={onMenuClick}\n menu={menu}\n isSearchIconDisplayed={isSearchIconDisplayed}\n statics={statics}\n basePath={basePath}\n languageMenu={languageMenu}\n enabledExperimentalCareHeader={enabledExperimentalCareHeader}\n logoType={logoType}\n locale={locale}\n isInit={isInit}\n title={title}\n sponsorComponent={sponsorComponent}\n currentUrl={currentUrl}\n userInfo={userInfo}\n currentPopupType={currentPopupType}\n avatar={avatar}\n profileMenu={profileMenu}\n isLoginButtonDisplayed={isLoginButtonDisplayed}\n goToLogin={goToLogin}\n isSearchBarDisplay={isSearchBarDisplay}\n searchPlaceholder={searchPlaceholder}\n onSearchValueChanged={onSearchValueChanged}\n keyPressed={keyPressed}\n />\n )\n }\n\n return (\n <>\n <div\n style={{\n height: headerHeight,\n }}\n ></div>\n <StyledDesktopHeaderWrapper\n ref={headerRef}\n data-site-type={siteType}\n data-marry-baby-tone={siteType === 'marryBaby' && tone}\n data-sponsored={isSponsored}\n data-sitewide-banner-shown={isShowingSiteWideBanner}\n >\n {sitewideBanner\n ? !React.isValidElement(sitewideBanner)\n ? sitewideBanner\n : React.cloneElement<{\n isCollapsed?: boolean\n setBannerClosed?: (v: boolean) => void\n }>(sitewideBanner, {\n isCollapsed,\n setBannerClosed: setSitewideBannerClosed,\n })\n : null}\n <Container\n style={{\n height: 69,\n padding: '0 16px',\n }}\n type={siteType}\n >\n <StyledDesktopHeader>\n <StyledLeftGroup>\n <a href={HOME_PAGE_URL}>\n <StyledLogoWrapper\n data-is-having-border={siteType === 'helloSites'}\n >\n <Logo\n style={{\n display: 'flex',\n }}\n type={logoType}\n height=\"27px\"\n width=\"121px\"\n badge={\n locale === 'id-ID' ? (\n <img\n src={SehatBadge}\n style={{\n width: 56,\n height: 23,\n maxWidth: 56,\n }}\n width=\"56\"\n height=\"23\"\n />\n ) : undefined\n }\n />\n </StyledLogoWrapper>\n </a>\n {isSearchBarDisplay && siteType === 'helloSites' && (\n <StyledDesktopMenuSearchInput\n data-header-type={type}\n data-is-displayed={isDisplayed}\n data-sitewide-banner-shown={\n sitewideBannerShown && !!sitewideBanner\n }\n >\n <PureInput\n style={{\n minHeight: '32px',\n maxHeight: '32px',\n minWidth: '100%',\n backgroundColor: theme.colors.white,\n }}\n // value={searchValue}\n name={'search-input-' + type + (!isInit ? '-temp' : '')}\n autoFocus={false}\n size=\"sm\"\n placeholder={searchPlaceholder}\n onChange={onSearchValueChanged}\n onKeyPress={keyPressed}\n displayIcon={\n <a\n data-event-category=\"Search Button\"\n data-event-action=\"Click\"\n style={{\n width: '24px',\n height: '24px',\n transform: 'scale(0.8)',\n }}\n >\n <svg\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 fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4.875 11C4.875 7.61726 7.61726 4.875 11 4.875C14.3827 4.875 17.125 7.61726 17.125 11C17.125 14.3827 14.3827 17.125 11 17.125C7.61726 17.125 4.875 14.3827 4.875 11ZM11 3.125C6.65076 3.125 3.125 6.65076 3.125 11C3.125 15.3492 6.65076 18.875 11 18.875C12.8594 18.875 14.5683 18.2306 15.9155 17.1529L19.3813 20.6187C19.723 20.9604 20.277 20.9604 20.6187 20.6187C20.9604 20.277 20.9604 19.723 20.6187 19.3813L17.1529 15.9155C18.2306 14.5683 18.875 12.8594 18.875 11C18.875 6.65076 15.3492 3.125 11 3.125Z\"\n fill=\"#8C8C8C\"\n />\n </svg>\n </a>\n }\n />\n </StyledDesktopMenuSearchInput>\n )}\n {siteType === 'marryBaby' && (\n <div style={{ marginLeft: 28, display: 'flex' }}>\n {desktopMenuItems}\n </div>\n )}\n </StyledLeftGroup>\n <StyledRightGroup>\n {siteType === 'helloSites' && desktopMenuItems}\n {isSearchBarDisplay && siteType === 'marryBaby' && (\n <StyledDesktopMenuSearchInput\n data-header-type={type}\n data-is-displayed={isDisplayed}\n data-is-styled-borderless={siteType === 'marryBaby'}\n data-marry-baby-theme={tone}\n >\n <PureInput\n style={{\n minHeight: '40px',\n maxHeight: '40px',\n minWidth: '100%',\n borderRadius: 16,\n }}\n // value={searchValue}\n name={'search-input-' + type + (!isInit ? '-temp' : '')}\n autoFocus={false}\n size=\"sm\"\n placeholder={searchPlaceholder}\n onChange={onSearchValueChanged}\n onKeyPress={keyPressed}\n displayIcon={\n <a\n data-event-category=\"Search Button\"\n data-event-action=\"Click\"\n style={{ width: '24px', height: '24px' }}\n >\n <svg\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=\"M3.31573 13.7811L3.94855 13.6326L3.31573 13.7811ZM3.31573 8.324L3.94855 8.47244L3.31573 8.324ZM18.7893 8.324L19.4221 8.17556L18.7893 8.324ZM18.7893 13.781L19.4221 13.9295L18.7893 13.781ZM13.781 18.7893L13.6326 18.1565L13.781 18.7893ZM8.324 18.7893L8.17556 19.4221L8.324 18.7893ZM8.324 3.31573L8.17556 2.6829L8.324 3.31573ZM13.781 3.31573L13.9295 2.6829L13.781 3.31573ZM20.5404 21.4596C20.7942 21.7135 21.2058 21.7135 21.4596 21.4596C21.7135 21.2058 21.7135 20.7942 21.4596 20.5404L20.5404 21.4596ZM3.94855 13.6326C3.55048 11.9356 3.55048 10.1695 3.94855 8.47244L2.6829 8.17556C2.23903 10.0679 2.23903 12.0372 2.68291 13.9295L3.94855 13.6326ZM18.1565 8.47244C18.5546 10.1695 18.5546 11.9356 18.1565 13.6326L19.4221 13.9295C19.866 12.0372 19.866 10.0679 19.4221 8.17556L18.1565 8.47244ZM13.6326 18.1565C11.9356 18.5546 10.1695 18.5546 8.47244 18.1565L8.17556 19.4221C10.0679 19.866 12.0372 19.866 13.9295 19.4221L13.6326 18.1565ZM8.47244 3.94855C10.1695 3.55048 11.9356 3.55048 13.6326 3.94855L13.9295 2.6829C12.0372 2.23903 10.0679 2.23903 8.17556 2.6829L8.47244 3.94855ZM8.47244 18.1565C6.22776 17.63 4.47508 15.8773 3.94855 13.6326L2.68291 13.9295C3.32219 16.6549 5.45019 18.7829 8.17556 19.4221L8.47244 18.1565ZM13.9295 19.4221C16.6549 18.7829 18.7829 16.6549 19.4221 13.9295L18.1565 13.6326C17.63 15.8773 15.8773 17.63 13.6326 18.1565L13.9295 19.4221ZM13.6326 3.94855C15.8773 4.47508 17.63 6.22775 18.1565 8.47244L19.4221 8.17556C18.7829 5.45019 16.6549 3.32219 13.9295 2.6829L13.6326 3.94855ZM8.17556 2.6829C5.45019 3.32219 3.32219 5.45018 2.6829 8.17556L3.94855 8.47244C4.47508 6.22775 6.22775 4.47508 8.47244 3.94855L8.17556 2.6829ZM16.8755 17.7948L20.5404 21.4596L21.4596 20.5404L17.7948 16.8755L16.8755 17.7948Z\"\n fill=\"#3E3F58\"\n />\n </svg>\n </a>\n }\n />\n </StyledDesktopMenuSearchInput>\n )}\n {typeof languageMenu !== 'undefined' && (\n <StyledHeaderMenuItem\n data-is-active={true}\n className={!isInit ? 'menu-handler-language' : ''}\n onClick={() => {\n openPopup && openPopup('language')\n }}\n >\n {languageMenu}\n </StyledHeaderMenuItem>\n )}\n\n <StyledProfileMenu\n data-is-active={currentPopupType === 'profile'}\n data-is-profile={true}\n className={!isInit ? 'menu-handler-health-tools' : ''}\n tabIndex={0}\n >\n <div className=\"menu-handler-item\">\n {enabledExperimentalCareHeader && (\n <>\n {onCareHeaderClick ? (\n <Button\n className=\"login-btn-mobile\"\n size=\"sm\"\n color=\"secondary\"\n dataEventCategory=\"Care\"\n dataEventAction=\"Navigation Bar Click\"\n dataEventLabel={currentUrl}\n onClick={onCareHeaderClick}\n >\n {f('login.booking')}\n </Button>\n ) : (\n <a\n href={CARE_URL_FE}\n className=\"care-button no-replace-click\"\n >\n <Button\n className=\"login-btn-mobile\"\n size=\"sm\"\n color=\"secondary\"\n dataEventCategory=\"Care\"\n dataEventAction=\"Navigation Bar Click\"\n dataEventLabel={currentUrl}\n >\n {f('login.booking')}\n </Button>\n </a>\n )}\n </>\n )}\n {userInfo?.id ? (\n <StyledImageWrapper style={{ position: 'relative' }}>\n <div onClick={() => openPopup && openPopup('profile')}>\n {avatar}\n </div>\n {profileMenu}\n </StyledImageWrapper>\n ) : (\n isLoginButtonDisplayed && (\n <a\n data-event-category=\"Sign Up\"\n data-event-action=\"Button Click\"\n data-event-label={currentUrl}\n >\n {enabledExperimentalCareHeader ? (\n <StyledAvatar onClick={goToLogin}>\n <img\n src={LockIcon}\n className=\"avatar\"\n alt=\"avatar\"\n />\n </StyledAvatar>\n ) : siteType === 'helloSites' ? (\n <Button\n size=\"md\"\n color=\"secondary\"\n onClick={goToLogin}\n >\n {f('navigation.loginJoin')}\n </Button>\n ) : (\n <Button\n size=\"md\"\n color=\"secondary\"\n theme=\"marryBaby\"\n onClick={goToLogin}\n >\n {f('navigation.loginJoin')}\n </Button>\n )}\n </a>\n )\n )}\n </div>\n </StyledProfileMenu>\n </StyledRightGroup>\n </StyledDesktopHeader>\n </Container>\n {sponsorComponent\n ? !React.isValidElement(sponsorComponent)\n ? sponsorComponent\n : React.cloneElement<{\n isCollapsed?: boolean\n isMobile?: boolean\n isAmp?: boolean\n locale?: string\n }>(sponsorComponent, {\n isCollapsed,\n locale,\n isMobile,\n isAmp,\n })\n : null}\n </StyledDesktopHeaderWrapper>\n </>\n )\n}\n\nexport { NavigationBar }\n","import React from 'react'\n\nimport { Button } from 'components/atoms/button'\nimport { LocaleType } from 'interfaces/types'\n\nimport { ChevronRightWhiteIcon } from '../assets'\nimport { MenuCategoriesList } from '../menuCategoriesList'\nimport { Category, SiteType, SpotlightSummary } from '../types'\nimport { useTranslation } from '../utils'\nimport {\n StyledButtonContainerWrapper,\n StyledCategoryButtonWrapper,\n StyledScrollingCategories,\n StyledScrollingWrapper,\n} from './index.styled'\n\ntype Props = {\n selectedMenuMainItem: Category\n spotlightsList: SpotlightSummary[]\n locale: LocaleType\n basePath: string\n callApiHandler: (p: string, m: 'GET' | 'POST' | 'PUT') => any\n discoverApiDomain: string\n DISCOVER_URL_FE: string\n MARRY_BABY_FE: string\n onSelectCategory: (category: Category) => void\n siteType: SiteType\n isMobile: boolean\n onCategoryClick: () => void\n}\n\nconst MenuSubItemListCategory = ({\n selectedMenuMainItem,\n spotlightsList,\n locale,\n basePath,\n callApiHandler,\n discoverApiDomain,\n DISCOVER_URL_FE,\n MARRY_BABY_FE,\n onSelectCategory,\n isMobile,\n siteType,\n onCategoryClick,\n}: Props) => {\n const f = useTranslation()\n const { childCates, categoryName } = selectedMenuMainItem\n return (\n <StyledScrollingCategories\n data-type=\"sub-level\"\n data-with-search-input={false}\n >\n <StyledScrollingWrapper>\n <MenuCategoriesList\n isDisplayed\n locale={locale}\n basePath={basePath}\n callApiHandler={callApiHandler}\n discoverApiDomain={discoverApiDomain}\n DISCOVER_URL_FE={DISCOVER_URL_FE}\n MARRY_BABY_FE={MARRY_BABY_FE}\n categories={childCates || []}\n spotlightsList={spotlightsList}\n type=\"sub\"\n onSelectCategory={onSelectCategory}\n // onSubCategory={onSubCategory}\n // onSubCatLevel={onSubCatLevel}\n isMobile={isMobile}\n siteType={siteType}\n desktopPopupType=\"none\"\n isLoading={false}\n onClosePopup={undefined}\n />\n <StyledCategoryButtonWrapper data-site-type={siteType}>\n <Button\n onClick={onCategoryClick}\n className=\"category-button\"\n size=\"md\"\n theme={siteType}\n >\n <StyledButtonContainerWrapper>\n <div>\n {f('home.menu.category.view', {\n category: categoryName,\n })}\n </div>\n {siteType === 'helloSites' ? (\n <img\n src={ChevronRightWhiteIcon}\n style={{ width: '16px', height: '16px' }}\n className=\"button-image\"\n alt={f('home.menu.category.view', {\n category: categoryName,\n })}\n />\n ) : (\n <svg\n width=\"25\"\n height=\"24\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7 12H18M18 12L13.4118 8M18 12L13.4118 16\"\n stroke=\"white\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </StyledButtonContainerWrapper>\n </Button>\n </StyledCategoryButtonWrapper>\n </StyledScrollingWrapper>\n </StyledScrollingCategories>\n )\n}\n\nexport { MenuSubItemListCategory }\n","import React, { useEffect, useState } from 'react'\n\nimport { Button } from 'components/atoms/button'\nimport { LocaleType } from 'interfaces/types'\n\nimport { ChevronRightWhiteIcon } from '../assets'\nimport { MenuCommunitiesList } from '../menuCommunitiesList'\nimport { Community, SiteType } from '../types'\nimport {\n formatCommunity,\n formatTogetherTopic,\n getTogetherDefaultCommunitiesSubMenuApiPath,\n getTogetherMarryBabyCommunitiesSubMenuApiPath,\n useTranslation,\n} from '../utils'\nimport {\n StyledButtonContainerWrapper,\n StyledCategoryButtonWrapper,\n StyledScrollingCategories,\n StyledScrollingWrapper,\n} from './index.styled'\n\ntype Props = {\n selectedMenuMainItem: Community\n onSelectCommunity: ({}: {\n community: Community\n isSetToSubMenu: boolean\n }) => void\n onCommunityClick: () => void\n callApiHandler: (p: string, m: 'GET' | 'POST' | 'PUT') => any\n basePath: string\n togetherApiDomain: string\n locale: LocaleType\n TOGETHER_URL_FE: string\n siteType: SiteType\n isMobile: boolean\n}\n\nconst MenuSubItemListCommunities = ({\n selectedMenuMainItem,\n onCommunityClick,\n onSelectCommunity,\n basePath = '',\n callApiHandler,\n togetherApiDomain,\n locale,\n TOGETHER_URL_FE,\n siteType,\n isMobile,\n}: Props) => {\n // const { formatMessage: f } = useIntl()\n const f = useTranslation()\n // get community topic\n const [subCommunities, setSubCommunities] = useState<Community[]>([])\n const [isLoading, setIsLoading] = useState(false)\n\n const { communityId, title } = selectedMenuMainItem\n\n useEffect(() => {\n setIsLoading(true)\n ;(async () => {\n const communityTopicResults = await callApiHandler(\n siteType === 'helloSites'\n ? getTogetherDefaultCommunitiesSubMenuApiPath(\n locale,\n togetherApiDomain,\n {\n communityId: communityId,\n },\n )\n : getTogetherMarryBabyCommunitiesSubMenuApiPath(\n locale,\n togetherApiDomain,\n {\n communityId: communityId,\n },\n ),\n 'GET',\n )\n\n if (\n communityTopicResults !== null &&\n communityTopicResults?.data?.data?.topics?.length > 0\n ) {\n const communityTopicFormatted: Community[] = communityTopicResults.data.data.topics.map(\n formatTogetherTopic,\n )\n setSubCommunities(communityTopicFormatted)\n }\n setIsLoading(false)\n })()\n }, [selectedMenuMainItem])\n\n return (\n <StyledScrollingCategories\n data-type=\"sub-level\"\n data-with-search-input={false}\n >\n <StyledScrollingWrapper>\n <MenuCommunitiesList\n isDisplayed\n locale={locale}\n communities={subCommunities}\n type=\"sub\"\n onSelectCommunity={onSelectCommunity}\n isLoading={isLoading}\n basePath={basePath}\n TOGETHER_URL_FE={TOGETHER_URL_FE}\n togetherApiDomain={togetherApiDomain}\n siteType={siteType}\n isMobile={isMobile}\n desktopPopupType=\"none\"\n onClosePopup={undefined}\n />\n <StyledCategoryButtonWrapper>\n <Button\n onClick={onCommunityClick}\n className=\"category-button\"\n size=\"md\"\n >\n <StyledButtonContainerWrapper>\n <div>\n {f('home.menu.category.view', {\n category: title,\n })}\n </div>\n <img\n src={ChevronRightWhiteIcon}\n style={{ width: '16px', height: '16px' }}\n className=\"button-image\"\n alt={f('home.menu.category.view', {\n category: title,\n })}\n />\n </StyledButtonContainerWrapper>\n </Button>\n </StyledCategoryButtonWrapper>\n </StyledScrollingWrapper>\n </StyledScrollingCategories>\n )\n}\n\nexport { MenuSubItemListCommunities }\n","import React, { useRef, useState } from 'react'\n\nimport { theme } from 'misc/theme'\n\nimport { MarryBabyText } from '../marryBabyText'\nimport { MenuItemType, MenuServiceType } from '../types'\nimport { StyledUnderLine } from './index.styled'\n\ntype Props = {\n menuItems: MenuItemType[]\n activeItem: MenuItemType\n onServiceClicked: (id: MenuServiceType) => void\n}\n\nconst menuIcons: {\n [key in MenuServiceType]?: {\n icon: JSX.Element\n color: string\n }\n} = {\n categories: {\n icon: (\n <svg\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 fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.1174 3.67709C12.8717 2.70759 11.1272 2.70787 9.8809 3.67705L14.1174 3.67709ZM14.1174 3.67709L19.717 8.0327C20.5579 8.68619 21.049 9.69161 21.049 10.7561V17.6001C21.049 19.5056 19.5045 21.0501 17.599 21.0501H6.39918C4.49368 21.0501 2.94922 19.5056 2.94922 17.6001V10.7561C2.94922 9.6915 3.44016 8.68619 4.28119 8.0327L9.8809 3.67705M10.679 4.70326L5.07908 9.05903C4.5556 9.46579 4.24922 10.0921 4.24922 10.7561V17.6001C4.24922 18.7876 5.21165 19.7501 6.39918 19.7501H17.599C18.7866 19.7501 19.749 18.7876 19.749 17.6001V10.7561C19.749 10.0921 19.4429 9.46599 18.9194 9.05923L13.3192 4.70322C12.5433 4.09928 11.4561 4.09892 10.679 4.70326Z\"\n fill=\"#3E3F58\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.2363 13.1623C12.5537 12.4791 11.4456 12.4788 10.7619 13.1625C10.0783 13.8461 10.0783 14.9535 10.7619 15.6371C11.4455 16.3207 12.5529 16.3207 13.2365 15.6371C13.9201 14.9535 13.9201 13.8461 13.2365 13.1625L13.2363 13.1623ZM14.1558 12.2433C12.9651 11.0518 11.0338 11.0522 9.84268 12.2433C8.6514 13.4346 8.6514 15.3651 9.84268 16.5563C11.034 17.7476 12.9645 17.7476 14.1558 16.5563C15.347 15.3651 15.347 13.4346 14.1558 12.2433Z\"\n fill=\"#3E3F58\"\n />\n </svg>\n ),\n color: theme.mbColors.lightPink,\n },\n healthTools: {\n icon: (\n <svg\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 fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.7899 3.65C17.1559 3.65 16.6802 4.2267 16.6809 4.79725L16.6809 4.798C16.6809 5.41974 17.104 6.05554 17.7236 6.58451C18.0209 6.83831 18.3337 7.04083 18.5977 7.17695C18.7296 7.245 18.8416 7.29248 18.9268 7.32147C18.9708 7.33646 18.9995 7.34373 19.0149 7.34719C19.0302 7.34373 19.0589 7.33646 19.1029 7.32147C19.1881 7.29248 19.3001 7.245 19.4321 7.17695C19.696 7.04083 20.0088 6.83831 20.3061 6.58451C20.9257 6.05554 21.3489 5.41974 21.3489 4.798C21.3489 4.22619 20.8732 3.65 20.2399 3.65C19.8662 3.65 19.6352 3.81824 19.4969 3.97109C19.3738 4.10711 19.199 4.1848 19.0156 4.185C18.8321 4.1852 18.6572 4.10789 18.5338 3.97214C18.3936 3.81789 18.1622 3.65 17.7899 3.65ZM15.3809 4.79838C15.3797 3.63503 16.318 2.35 17.7899 2.35C18.2971 2.35 18.703 2.4988 19.0145 2.69438C19.3261 2.49862 19.7323 2.35 20.2399 2.35C21.7125 2.35 22.6489 3.63581 22.6489 4.798C22.6489 5.98926 21.875 6.95446 21.1501 7.57324C20.7752 7.89331 20.3789 8.15136 20.028 8.33233C19.8525 8.42282 19.6807 8.49802 19.522 8.55207C19.3755 8.60198 19.1942 8.65 19.0149 8.65C18.8355 8.65 18.6543 8.60198 18.5077 8.55207C18.349 8.49802 18.1772 8.42282 18.0018 8.33233C17.6509 8.15136 17.2545 7.89331 16.8796 7.57324C16.1548 6.95452 15.381 5.98947 15.3809 4.79838ZM15.3809 4.79838C15.3809 4.79825 15.3809 4.79813 15.3809 4.798H16.0309L15.3809 4.79875C15.3809 4.79863 15.3809 4.7985 15.3809 4.79838Z\"\n fill=\"#3E3F58\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M2.91051 8.78301C4.23607 5.03996 7.79796 2.35 12.0002 2.35C12.3662 2.35 12.7248 2.37267 13.077 2.41455C13.4334 2.45693 13.6881 2.78027 13.6457 3.13674C13.6033 3.49322 13.28 3.74784 12.9235 3.70545C12.6196 3.66932 12.3123 3.65 12.0002 3.65C8.36849 3.65 5.28438 5.97404 4.13594 9.21698C4.0161 9.55538 3.64463 9.73255 3.30624 9.61271C2.96785 9.49287 2.79067 9.12141 2.91051 8.78301Z\"\n fill=\"#3E3F58\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M9.07473 7.35106C9.33041 7.35465 9.56024 7.50781 9.66196 7.74242L12.5334 14.3647L13.6702 11.7415C13.7732 11.5038 14.0075 11.35 14.2666 11.35H15.9996C16.3586 11.35 16.6496 11.641 16.6496 12C16.6496 12.359 16.3586 12.65 15.9996 12.65H14.6933L13.13 16.2575C13.027 16.4951 12.7927 16.649 12.5337 16.649C12.2746 16.649 12.0403 16.4952 11.9373 16.2576L9.0434 9.58369L7.78547 12.2752C7.6786 12.5039 7.44902 12.65 7.19661 12.65H2.99961C2.64062 12.65 2.34961 12.359 2.34961 12C2.34961 11.641 2.64062 11.35 2.99961 11.35H6.78291L8.47675 7.72578C8.58502 7.49413 8.81905 7.34747 9.07473 7.35106Z\"\n fill=\"#3E3F58\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20.8654 10.3543C21.222 10.313 21.5446 10.5686 21.5859 10.9252C21.6264 11.2747 21.6502 11.6328 21.6502 12C21.6502 17.33 17.3302 21.65 12.0002 21.65C7.79796 21.65 4.23607 18.96 2.91051 15.217C2.79067 14.8786 2.96785 14.5071 3.30624 14.3873C3.64463 14.2674 4.0161 14.4446 4.13594 14.783C5.28438 18.026 8.36849 20.35 12.0002 20.35C16.6122 20.35 20.3502 16.612 20.3502 12C20.3502 11.6892 20.3301 11.3813 20.2945 11.0748C20.2532 10.7182 20.5088 10.3956 20.8654 10.3543Z\"\n fill=\"#3E3F58\"\n />\n </svg>\n ),\n color: theme.mbColors.lightOrange,\n },\n together: {\n icon: (\n <svg\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 fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.99961 4.65C7.4256 4.65 6.14961 5.92599 6.14961 7.5C6.14961 9.07401 7.4256 10.35 8.99961 10.35C10.5736 10.35 11.8496 9.07401 11.8496 7.5C11.8496 5.92599 10.5736 4.65 8.99961 4.65ZM4.84961 7.5C4.84961 5.20802 6.70763 3.35 8.99961 3.35C11.2916 3.35 13.1496 5.20802 13.1496 7.5C13.1496 9.79198 11.2916 11.65 8.99961 11.65C6.70763 11.65 4.84961 9.79198 4.84961 7.5ZM6.71218 15.0233L6.53409 15.0517C4.87235 15.3169 3.64961 16.7503 3.64961 18.433C3.64961 18.9395 4.06015 19.35 4.56658 19.35H13.4326C13.9391 19.35 14.3496 18.9395 14.3496 18.433C14.3496 16.7503 13.1269 15.3169 11.4651 15.0517L11.287 15.0233C9.77167 14.7814 8.22754 14.7814 6.71218 15.0233ZM6.5073 13.7395C8.15839 13.476 9.84083 13.476 11.4919 13.7395L11.67 13.768C13.9626 14.1338 15.6496 16.1114 15.6496 18.433C15.6496 19.6574 14.657 20.65 13.4326 20.65H4.56658C3.34218 20.65 2.34961 19.6574 2.34961 18.433C2.34961 16.1114 4.03657 14.1338 6.3292 13.768L6.5073 13.7395Z\"\n fill=\"#3E3F58\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.3496 4C14.3496 3.64101 14.6406 3.35 14.9996 3.35C17.2916 3.35 19.1496 5.20802 19.1496 7.5C19.1496 9.79198 17.2916 11.65 14.9996 11.65C14.6406 11.65 14.3496 11.359 14.3496 11C14.3496 10.641 14.6406 10.35 14.9996 10.35C16.5736 10.35 17.8496 9.07401 17.8496 7.5C17.8496 5.92599 16.5736 4.65 14.9996 4.65C14.6406 4.65 14.3496 4.35898 14.3496 4ZM15.5908 14.3814C15.5908 14.0224 15.8818 13.7314 16.2408 13.7314H17.2089C17.3632 13.7314 17.5175 13.7436 17.67 13.768C19.9626 14.1338 21.6496 16.1114 21.6496 18.433C21.6496 19.6574 20.657 20.65 19.4326 20.65H17.3895C17.0305 20.65 16.7395 20.359 16.7395 20C16.7395 19.641 17.0305 19.35 17.3895 19.35H19.4326C19.9391 19.35 20.3496 18.9395 20.3496 18.433C20.3496 16.7503 19.1269 15.3169 17.4651 15.0517C17.3805 15.0382 17.2947 15.0314 17.2089 15.0314H16.2408C15.8818 15.0314 15.5908 14.7404 15.5908 14.3814Z\"\n fill=\"#3E3F58\"\n />\n </svg>\n ),\n color: theme.mbColors.lightBlue,\n },\n}\n\nconst MenuItem = ({\n item,\n isActive,\n isGoingForward,\n onServiceClicked,\n}: {\n item: MenuItemType\n isActive: boolean\n isGoingForward: boolean\n onServiceClicked: (id: MenuServiceType) => void\n}) => {\n return (\n <div\n style={{\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <div\n style={{\n display: 'flex',\n // flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n height: 56,\n width: 56,\n marginBottom: 8,\n borderRadius: 16,\n }}\n onClick={() => {\n onServiceClicked?.(item.id)\n }}\n >\n <div\n style={{\n display: 'flex',\n // flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n height: 48,\n width: 48,\n flexShrink: 0,\n backgroundColor: menuIcons[item.id]?.color ?? 'white',\n borderRadius: 16,\n\n ...(isActive\n ? {\n height: 56,\n width: 56,\n boxShadow: '0px 0px 24px rgba(0, 0, 0, 0.08)',\n border: '4px solid white',\n }\n : {}),\n }}\n // onClick={() => {\n // onServiceClicked?.(item.id)\n // }}\n >\n {menuIcons[item.id]?.icon}\n </div>\n </div>\n\n <MarryBabyText\n type=\"subtitle-3\"\n color={isActive && theme.mbColors.pink}\n style={{ fontWeight: theme.sizes.fwSemiBold } as React.CSSProperties}\n >\n {item.name}\n </MarryBabyText>\n {isActive &&\n (isGoingForward ? (\n <StyledUnderLine\n style={{\n animationDuration: '0.2s',\n animationName: 'menuLeftToRightTrans',\n }}\n />\n ) : (\n <StyledUnderLine\n style={{\n animationDuration: '0.2s',\n animationName: 'menuRightToLeftTrans',\n }}\n />\n ))}\n </div>\n )\n}\n\nconst MarryBabyMobileMenuShelf = ({\n menuItems,\n activeItem,\n onServiceClicked,\n}: Props) => {\n const [currentActiveTab, setCurrentActiveTab] = useState(0)\n const isGoingForward = useRef(true)\n\n return (\n <div\n style={{\n display: 'flex',\n // flexDirection: 'column',\n alignItems: 'flex-start',\n justifyContent: 'space-evenly',\n }}\n >\n {menuItems.map((item, i) => (\n <MenuItem\n onServiceClicked={(id: MenuServiceType) => {\n currentActiveTab < i\n ? (isGoingForward.current = true)\n : (isGoingForward.current = false)\n\n setCurrentActiveTab(i)\n onServiceClicked?.(id)\n }}\n key={'item' + i}\n item={item}\n isGoingForward={isGoingForward.current}\n isActive={activeItem.id === item.id}\n />\n ))}\n </div>\n )\n}\n\nexport { MarryBabyMobileMenuShelf }\n","import React, { useEffect, useState } from 'react'\n\n// import { Button } from 'components/atoms/button'\n// import { Container } from 'components/atoms/container'\nimport { PureInput } from 'components/atoms'\nimport { Heading } from 'components/atoms/heading'\nimport {\n // formatCategory,\n // formatCommunity,\n // formatHealthTool,\n // getCareDefaultSpecialtiesApiPath,\n getCareSearchUrl,\n // getDiscoverDefaultCategoriesApiPath,\n // getDiscoverDefaultHealthToolsApiPath,\n // getTogetherDefaultCommunitiesApiPath,\n // getTogetherMarryBabyCommunitiesApiPath,\n useTranslation,\n} from 'components/organisms/navigationLayout/utils'\nimport { LocaleType } from 'interfaces/types'\n// eslint-disable-next-line import/order\nimport { theme } from 'misc/theme'\n// import nextId from 'react-id-generator'\n\n// import { domainLocales } from '../constants'\nimport { getCurrentBaseUrl } from 'together/api/utils'\n\nimport { LOCALE_SPECS } from '../constants'\nimport { MenuCareList } from '../menuCareList'\nimport { MenuCategoriesList } from '../menuCategoriesList'\nimport { MenuCommunitiesList } from '../menuCommunitiesList'\nimport { MenuHealthToolsList } from '../menuHealthToolsList'\nimport { MenuSectionCard } from '../menuSectionCard'\nimport { NavigationBar } from '../navigationBar'\nimport { SearchIcon } from '../navigationBar/SearchIcon'\nimport {\n Category,\n Community,\n DesktopMenuPopup,\n HealthTool,\n HealthToolByCategory,\n MenuItemType,\n MenuServiceType,\n MobileMenuPopup,\n SiteType,\n Specialty,\n SpotlightSummary,\n} from '../types'\nimport { MenuSubItemListCategory } from './categoriesSubList'\nimport { MenuSubItemListCommunities } from './communitySubList'\nimport {\n StyledCardSpecialty,\n // StyledCategoryButtonWrapper,\n StyledMenuContainer,\n StyledScrollingCategories,\n StyledScrollingWrapper,\n // StyledButtonContainerWrapper,\n StyledScrollingContent,\n // StyledCategoryFooter,\n StyledMasterMenuContainer,\n StyledStickyHeader,\n StyledServiceListMenuSearchInputWrapper,\n // StyledMenuPopupWrapper,\n // StyleMenuPopupContainer,\n // StyledCategoryItemAll,\n // StyledImageWrapper,\n // StyledCloseWrapper,\n // StyledMenuPopupContainer,\n // StyledFakeTopAlignment,\n // StyledHealthToolItem,\n} from './index.styled'\nimport { MarryBabyMobileMenuShelf } from './marryBabyMobileMenuSection'\n\nexport type Props = {\n categories: Category[]\n healthTools?: HealthTool[]\n healthToolsByCategory?: HealthToolByCategory[]\n careSpecialties: Specialty[]\n togetherCommunities: Community[]\n spotlightsList: SpotlightSummary[]\n // isHealthToolsDisable?: boolean\n // isCategoriesDisable?: boolean\n // isCommunitiesDisable?: boolean\n // isCareSpecialtiesDisable?: boolean\n popupType: DesktopMenuPopup\n // isPopupOpen: boolean\n isMobileMenuOpened: boolean\n isMobile: boolean\n // className: string\n footer: JSX.Element\n care: {\n careApiDomain: string\n CARE_MENU_COUNTRIES_ENABLED: LocaleType[]\n CARE_URL_FE: string\n }\n discover?: {\n discoverApiDomain: string\n DISCOVER_URL_FE: string\n }\n together: {\n togetherApiDomain: string\n TOGETHER_URL_FE: string\n TOGETHER_MENU_COUNTRIES_ENABLED: string[]\n }\n marryBaby: {\n tone: 'white' | 'pink'\n }\n sso: {\n SSO_URL: string\n }\n statics: {\n DISCOVER_URL_FE: string\n HEALTH_TOOL_URL_FE: string\n TOGETHER_URL_FE: string\n MARRY_BABY_FE: string\n HOME_PAGE_URL: string\n STATIC_PAGES: {\n [key in LocaleType]: {\n [key: string]: string | null\n }\n }\n }\n locale: LocaleType\n siteType: SiteType\n basePath: string\n activeMenuService: MenuServiceType\n menuItems: MenuItemType[]\n routerAsPath: string\n closePopup: () => void\n onMobileMenuClick: (s: MobileMenuPopup) => void\n callApiHandler: (p: string, m: 'GET' | 'POST' | 'PUT') => any\n}\n\nconst MenuServiceList = ({\n isMobile = false,\n isMobileMenuOpened: isMainMenuOpened = undefined,\n categories,\n healthTools,\n healthToolsByCategory,\n careSpecialties,\n togetherCommunities,\n spotlightsList,\n closePopup,\n popupType = 'none',\n onMobileMenuClick,\n footer: CustomFooter,\n care: { CARE_URL_FE },\n discover: { discoverApiDomain, DISCOVER_URL_FE },\n together: {\n togetherApiDomain,\n TOGETHER_URL_FE,\n // TOGETHER_MENU_COUNTRIES_ENABLED,\n },\n sso: { SSO_URL },\n statics: { MARRY_BABY_FE, HOME_PAGE_URL, STATIC_PAGES, HEALTH_TOOL_URL_FE },\n marryBaby: { tone },\n locale,\n siteType,\n basePath,\n callApiHandler,\n activeMenuService,\n menuItems,\n routerAsPath,\n}: Props) => {\n const f = useTranslation()\n\n const [isOnSubLevel, setIsOnSubLevel] = useState(false)\n\n const [searchResultCategories, setSearchResultCategories] =\n useState<Category[]>(categories)\n\n const [selectedMenuMainItem, setSelectedMenuMainItem] = useState<\n Category | Community | undefined\n >(undefined)\n const [menuSubList, setMenuSubList] = useState(undefined)\n // const [isCategoryLoading, setIsCategoryLoading] = useState(true)\n const [headerHideOnSearch, setHeaderHideOnSearch] = useState(false)\n const [activeService, setActiveService] = useState(\n menuItems?.find((s) => s.id === activeMenuService),\n )\n const [isInit, setIsInit] = useState(false)\n const [enableAnimation, setEnableAnimation] = useState(false)\n\n const onCategoryClick = () => {\n selectedMenuMainItem &&\n (window.location.href = (selectedMenuMainItem as Category).permalink)\n onSubMenuItemBack()\n closePopup && closePopup()\n }\n\n const onCommunityClick = () => {\n selectedMenuMainItem &&\n (window.location.href = `${TOGETHER_URL_FE}/${\n (selectedMenuMainItem as Community).communitySlug\n }`)\n onSubMenuItemBack()\n closePopup && closePopup()\n }\n\n const onSelectCategory = (category: Category) => {\n if (category.childCates && category.childCates.length > 0) {\n setIsOnSubLevel(true)\n setSelectedMenuMainItem(category)\n } else {\n window.location.href =\n siteType === 'helloSites'\n ? DISCOVER_URL_FE + category.permalink\n : MARRY_BABY_FE + category.permalink\n\n onSubMenuItemBack()\n closePopup && closePopup()\n }\n }\n\n const onSelectCommunity = ({\n community,\n isSetToSubMenu,\n }: {\n community: Community\n isSetToSubMenu: boolean\n }) => {\n if (isSetToSubMenu) {\n setIsOnSubLevel(true)\n setSelectedMenuMainItem(community)\n } else {\n window.location.href = `${TOGETHER_URL_FE}/${community.communitySlug}`\n\n onSubMenuItemBack()\n closePopup && closePopup()\n }\n }\n\n const onSelectHealthTool = (healthTool: HealthTool) => {\n // if (healthTool.link.startsWith('https')) {\n window.location.href = healthTool.link.startsWith('http')\n ? healthTool.link\n : HEALTH_TOOL_URL_FE + healthTool.link\n // } else {\n // router.push(healthTool.link)\n // }\n\n onSubMenuItemBack()\n closePopup && closePopup()\n }\n\n const onSelectCareSpecialty = (careSpecialty: Specialty) => {\n window.location.href =\n CARE_URL_FE +\n getCareSearchUrl({\n type: 'DOCTOR',\n specialtySlug: careSpecialty.slug,\n locale,\n })\n\n closePopup?.()\n }\n\n const onSubMenuItemBack = () => {\n setSelectedMenuMainItem(undefined)\n setIsOnSubLevel(false)\n }\n\n const onServiceClicked = (id: MenuServiceType) => {\n setActiveService(menuItems.find((s) => s.id === id))\n }\n\n const onSearchChange = (v: string) => {\n v !== '' ? setHeaderHideOnSearch(true) : setHeaderHideOnSearch(false)\n\n setSearchResultCategories(\n v && v !== ''\n ? categories.filter(\n (category) =>\n category.categoryName.toLowerCase().search(v.toLowerCase()) >\n -1 ||\n category.slug\n .replace('-', '')\n .toLowerCase()\n .search(v.replace(' ', '').toLowerCase()) > -1,\n )\n : categories,\n )\n }\n\n const LOCALE_SPEC = LOCALE_SPECS[locale || 'en-PH'] || {}\n\n useEffect(() => {\n setMenuSubList(\n activeService.id === 'categories'\n ? (selectedMenuMainItem as Category)?.childCates?.length > 0 && (\n <MenuSubItemListCategory\n selectedMenuMainItem={selectedMenuMainItem as Category}\n spotlightsList={[]}\n locale={locale}\n basePath={basePath}\n callApiHandler={callApiHandler}\n discoverApiDomain={discoverApiDomain}\n DISCOVER_URL_FE={DISCOVER_URL_FE}\n MARRY_BABY_FE={MARRY_BABY_FE}\n onSelectCategory={onSelectCategory}\n isMobile={isMobile}\n siteType={siteType}\n onCategoryClick={onCategoryClick}\n />\n )\n : activeService.id === 'together' &&\n // siteType === 'marryBaby' &&\n (selectedMenuMainItem as Community) && (\n <MenuSubItemListCommunities\n selectedMenuMainItem={selectedMenuMainItem as Community}\n onCommunityClick={onCommunityClick}\n onSelectCommunity={onSelectCommunity}\n TOGETHER_URL_FE={TOGETHER_URL_FE}\n basePath={basePath}\n callApiHandler={callApiHandler}\n locale={locale}\n togetherApiDomain={togetherApiDomain}\n siteType={siteType}\n isMobile={isMobile}\n />\n ),\n )\n }, [selectedMenuMainItem, activeService])\n\n useEffect(() => {\n setIsInit(true)\n }, [])\n\n useEffect(() => {\n !enableAnimation &&\n isMainMenuOpened &&\n (() => {\n setEnableAnimation(true)\n })()\n }, [isMainMenuOpened])\n\n useEffect(() => {\n setSearchResultCategories(categories)\n }, [categories])\n\n return isMobile ? (\n <>\n <StyledMasterMenuContainer\n id={!isInit ? 'categories-menu' : ''}\n data-opened={\n isMainMenuOpened || (enableAnimation ? isMainMenuOpened : 'undefined')\n }\n key={isInit ? 't' : 'f'}\n >\n <StyledMenuContainer\n data-opened={isMainMenuOpened}\n data-type=\"category\"\n data-is-sub-category-opened={isOnSubLevel}\n >\n <NavigationBar\n siteType={siteType}\n locale={locale}\n isDisplayed\n searchPlaceholder={''}\n statics={{\n DISCOVER_URL_FE,\n SSO_URL,\n HOME_PAGE_URL,\n MARRY_BABY_FE,\n CARE_URL_FE,\n }}\n isMobile={isMobile}\n isLoginButtonDisplayed={false}\n type=\"popup\"\n onMenuClick={() => onMobileMenuClick?.('categories')}\n onSearchChange={onSearchChange}\n isSearchBarDisplay={false}\n basePath={basePath}\n isAmp={false}\n isInit={false}\n isStatic={false}\n routerAsPath={routerAsPath}\n title={''}\n onTopBarAppears={undefined}\n currentPopupType={'none'}\n marryBaby={{ tone }}\n menu={undefined}\n menuItems={undefined}\n onSearchKeyPress={undefined}\n openPopup={undefined}\n profileMenu={undefined}\n userInfo={undefined}\n />\n {/* main category menu */}\n <StyledScrollingCategories>\n <StyledScrollingWrapper>\n <StyledScrollingContent>\n <StyledStickyHeader\n data-hide-on-search={headerHideOnSearch}\n // data-opened={isOpened}\n data-is-sub-category-opened={isOnSubLevel}\n >\n {siteType === 'helloSites' ? (\n <>\n <StyledServiceListMenuSearchInputWrapper\n onClick={() => {\n window.location.href = `${getCurrentBaseUrl(\n locale,\n )}/search`\n }}\n >\n <PureInput\n className=\"fake-search-input\"\n name={\n 'search-input-' +\n 'menu-service' +\n (!isInit ? '-temp' : '')\n }\n size=\"md\"\n placeholder={f('home.search', {\n site: LOCALE_SPEC ? LOCALE_SPEC.SITE_NAME : '',\n })}\n onChange={() => undefined}\n type=\"search\"\n autoFocus={false}\n onFocus={(e) => {\n e.preventDefault()\n }}\n value=\"\"\n displayIcon={\n <a\n data-event-category=\"Search Button\"\n data-event-action=\"Click\"\n >\n <SearchIcon />\n </a>\n }\n />\n </StyledServiceListMenuSearchInputWrapper>\n\n <Heading tag=\"h5\" color={theme.colors.gray800}>\n {f('menu.categories.title')}\n </Heading>\n <StyledCardSpecialty\n data-card-array-no-margin-style={true}\n >\n {menuItems.map((service, i) => (\n <MenuSectionCard\n onClick={onServiceClicked}\n key={'service-' + i}\n specialty={service}\n id={service.id}\n isActive={service.id === activeService.id}\n isMobile={isMobile}\n position={\n i === 0\n ? 'left'\n : i === menuItems.length - 1\n ? 'right'\n : 'center'\n }\n />\n ))}\n </StyledCardSpecialty>\n </>\n ) : (\n <MarryBabyMobileMenuShelf\n menuItems={menuItems}\n activeItem={activeService}\n onServiceClicked={onServiceClicked}\n />\n )}\n </StyledStickyHeader>\n <MenuCategoriesList\n isDisplayed={activeService.id === 'categories'}\n locale={locale}\n basePath={basePath}\n callApiHandler={callApiHandler}\n onClosePopup={closePopup}\n discoverApiDomain={discoverApiDomain}\n DISCOVER_URL_FE={DISCOVER_URL_FE}\n MARRY_BABY_FE={MARRY_BABY_FE}\n type=\"main\"\n onSelectCategory={onSelectCategory}\n categories={\n // categoriesSSR && categoriesSSR.length > 0\n // ? categoriesSSR\n // :\n searchResultCategories\n }\n spotlightsList={spotlightsList}\n isLoading={\n // categoriesSSR && categoriesSSR.length > 0\n // ?\n false\n // : isCategoryLoading\n }\n isMobile={isMobile}\n siteType={siteType}\n desktopPopupType={popupType}\n />\n\n <MenuHealthToolsList\n isDisplayed={activeService.id === 'healthTools'}\n locale={locale}\n basePath={basePath}\n // callApiHandler={callApiHandler}\n discoverApiDomain={discoverApiDomain}\n HEALTH_TOOL_URL_FE={HEALTH_TOOL_URL_FE}\n onSelectHealthTool={onSelectHealthTool}\n onClosePopup={closePopup}\n desktopPopupType={popupType}\n healthTools={\n // healthToolsSSR && healthToolsSSR.length > 0\n // ? healthToolsSSR\n // :\n healthTools\n }\n healthToolsByCategory={healthToolsByCategory}\n isLoading={\n // healthToolsSSR && healthToolsSSR.length > 0\n // ?\n false\n // : isCategoryLoading\n }\n isMobile={isMobile}\n siteType={siteType}\n STATIC_PAGES={STATIC_PAGES}\n />\n {activeService.id === 'care' && (\n <MenuCareList\n locale={locale}\n basePath={basePath}\n onSelectCareSpecialty={onSelectCareSpecialty}\n onClosePopup={closePopup}\n careSpecialties={\n // careSpecialtiesSSR && careSpecialtiesSSR.length > 0\n // ? careSpecialtiesSSR\n // :\n careSpecialties\n }\n isLoading={\n // careSpecialtiesSSR && careSpecialtiesSSR.length > 0\n // ?\n false\n // : isCategoryLoading\n }\n // callApiHandler={callApiHandler}\n siteType={siteType}\n isMobile={isMobile}\n desktopPopupType={popupType}\n CARE_URL_FE={CARE_URL_FE}\n />\n )}\n <MenuCommunitiesList\n isDisplayed={activeService.id === 'together'}\n locale={locale}\n TOGETHER_URL_FE={TOGETHER_URL_FE}\n basePath={basePath}\n type=\"main\"\n onSelectCommunity={onSelectCommunity}\n onClosePopup={closePopup}\n communities={\n // togetherCommunitiesSSR &&\n // togetherCommunitiesSSR.length > 0\n // ? togetherCommunitiesSSR\n // :\n togetherCommunities\n }\n isLoading={\n // togetherCommunitiesSSR &&\n // togetherCommunitiesSSR.length > 0\n // ?\n false\n // : isCategoryLoading\n }\n isMobile={isMobile}\n siteType={siteType}\n togetherApiDomain={togetherApiDomain}\n desktopPopupType={popupType}\n />\n </StyledScrollingContent>\n {CustomFooter}\n </StyledScrollingWrapper>\n </StyledScrollingCategories>\n </StyledMenuContainer>\n </StyledMasterMenuContainer>\n {isOnSubLevel && (\n <StyledMasterMenuContainer\n data-sub-level-opened={\n isOnSubLevel || (enableAnimation ? isOnSubLevel : 'undefined')\n }\n >\n <StyledMenuContainer\n data-type=\"sub-category\"\n data-is-sub-category-opened={isOnSubLevel}\n >\n <NavigationBar\n siteType={siteType}\n locale={locale}\n isDisplayed={isMainMenuOpened && isOnSubLevel}\n searchPlaceholder={''}\n menuItems={undefined}\n statics={{\n DISCOVER_URL_FE,\n SSO_URL,\n HOME_PAGE_URL,\n MARRY_BABY_FE,\n CARE_URL_FE,\n }}\n isMobile={isMobile}\n isLoginButtonDisplayed={false}\n type=\"popup-sub-level\"\n title={\n activeService.id === 'categories'\n ? (selectedMenuMainItem as Category)?.categoryName\n : (selectedMenuMainItem as Community)?.title\n }\n isSearchBarDisplay={false}\n basePath={basePath}\n isAmp={false}\n isInit={false}\n isStatic={false}\n routerAsPath={routerAsPath}\n currentPopupType={'none'}\n marryBaby={{ tone }}\n menu={undefined}\n openPopup={undefined}\n profileMenu={undefined}\n userInfo={undefined}\n onSearchKeyPress={undefined}\n onTopBarAppears={undefined}\n onMenuClick={onSubMenuItemBack}\n onSearchChange={undefined}\n />\n {menuSubList}\n </StyledMenuContainer>\n </StyledMasterMenuContainer>\n )}\n </>\n ) : (\n <>\n <MenuCategoriesList\n isDisplayed={popupType === 'categories'}\n locale={locale}\n basePath={basePath}\n callApiHandler={callApiHandler}\n discoverApiDomain={discoverApiDomain}\n DISCOVER_URL_FE={DISCOVER_URL_FE}\n MARRY_BABY_FE={MARRY_BABY_FE}\n type=\"main\"\n desktopPopupType={popupType}\n onSelectCategory={onSelectCategory}\n onClosePopup={closePopup}\n categories={\n // categoriesSSR && categoriesSSR.length > 0\n // ? categoriesSSR\n // :\n searchResultCategories\n }\n spotlightsList={spotlightsList}\n isLoading={\n // categoriesSSR && categoriesSSR.length > 0\n // ?\n false\n // : isCategoryLoading\n }\n isMobile={isMobile}\n siteType={siteType}\n />\n <MenuHealthToolsList\n isDisplayed={popupType === 'tools'}\n locale={locale}\n basePath={basePath}\n // callApiHandler={callApiHandler}\n discoverApiDomain={discoverApiDomain}\n HEALTH_TOOL_URL_FE={HEALTH_TOOL_URL_FE}\n desktopPopupType={popupType}\n onSelectHealthTool={onSelectHealthTool}\n onClosePopup={closePopup}\n healthToolsByCategory={healthToolsByCategory}\n healthTools={\n // healthToolsSSR && healthToolsSSR.length > 0\n // ? healthToolsSSR\n // :\n healthTools\n }\n isLoading={\n // healthToolsSSR && healthToolsSSR.length > 0\n // ?\n false\n // : isCategoryLoading\n }\n isMobile={isMobile}\n siteType={siteType}\n STATIC_PAGES={STATIC_PAGES}\n />\n <MenuCommunitiesList\n isDisplayed={popupType === 'communities'}\n locale={locale}\n TOGETHER_URL_FE={TOGETHER_URL_FE}\n basePath={basePath}\n type=\"main\"\n onSelectCommunity={onSelectCommunity}\n communities={\n // togetherCommunitiesSSR && togetherCommunitiesSSR.length > 0\n // ? togetherCommunitiesSSR\n // :\n togetherCommunities\n }\n isLoading={\n // togetherCommunitiesSSR && togetherCommunitiesSSR.length > 0\n // ?\n false\n // : isCategoryLoading\n }\n isMobile={isMobile}\n siteType={siteType}\n togetherApiDomain={togetherApiDomain}\n desktopPopupType={popupType}\n onClosePopup={closePopup}\n />\n {popupType === 'care' && (\n <MenuCareList\n locale={locale}\n basePath={basePath}\n onSelectCareSpecialty={onSelectCareSpecialty}\n careSpecialties={\n // careSpecialtiesSSR && careSpecialtiesSSR.length > 0\n // ? careSpecialtiesSSR\n // :\n careSpecialties\n }\n isLoading={\n // careSpecialtiesSSR && careSpecialtiesSSR.length > 0\n // ?\n false\n // : isCategoryLoading\n }\n // callApiHandler={callApiHandler}\n desktopPopupType={popupType}\n siteType={siteType}\n isMobile={isMobile}\n CARE_URL_FE={CARE_URL_FE}\n onClosePopup={closePopup}\n />\n )}\n </>\n )\n}\n\nexport { MenuServiceList }\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nexport const StyledPopup = styled.div`\n background-color: white;\n text-align: center;\n .cancle-img {\n margin-top: 24px;\n ${MediaQueries.mbDown} {\n width: 80px;\n height: 80px;\n }\n\n ${MediaQueries.mbUp} {\n width: 100px;\n height: 100px;\n }\n }\n\n h2 {\n margin-top: 32px;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n font-style: normal;\n font-weight: bold;\n ${MediaQueries.mbDown} {\n font-size: 24px;\n line-height: 32px;\n }\n\n ${MediaQueries.mbUp} {\n font-size: 32px;\n line-height: 42px;\n }\n }\n\n p {\n margin-top: 8px;\n color: ${(props: ThemeProps) => props.theme.colors.gray600};\n font-style: normal;\n font-weight: normal;\n ${MediaQueries.mbDown} {\n font-size: 16px;\n line-height: 24px;\n }\n\n ${MediaQueries.mbUp} {\n font-size: 16px;\n line-height: 24px;\n }\n }\n`\ntype StyledButtonGroupProps = {\n siteType: 'helloSites' | 'marryBaby'\n}\nexport const StyledButtonGroup = styled.div<StyledButtonGroupProps>`\n display: flex;\n\n ${MediaQueries.mbDown} {\n margin-top: 24px;\n }\n\n ${MediaQueries.mbUp} {\n margin-top: 32px;\n }\n justify-content: space-around;\n button {\n flex: 1;\n margin: 4px;\n }\n\n ${(props) =>\n props.siteType === 'marryBaby'\n ? `\n .cancel-button {\n background-color: #E55C8A;\n }\n .cancel-button:hover {\n background-color: #E55C8A !important;\n }\n .logout-button {\n border-color: #E55C8A;\n color: #E55C8A;\n }\n `\n : ''}\n`\n","import React from 'react'\nimport { useEffect } from 'react'\n\nimport { Button } from 'components/atoms/button'\nimport { Popup } from 'components/molecules/popup'\n\nimport { CloseLightIcon } from '../assets'\nimport { useTranslation } from '../utils'\nimport { StyledPopup, StyledButtonGroup } from './index.styled'\n\ntype Props = {\n // locale: LocaleType\n callPostLogOutApi: () => void\n openLogoutPopup: boolean\n onCloseHandler: () => void\n onLogoutHandler: () => void\n basePath: string\n siteType: 'helloSites' | 'marryBaby'\n}\n\nconst NavigationLogoutPopup = ({\n callPostLogOutApi,\n openLogoutPopup,\n onCloseHandler,\n onLogoutHandler,\n basePath,\n siteType = 'helloSites',\n}: Props) => {\n const f = useTranslation()\n\n useEffect(() => {\n document.body.classList.toggle('noscroll', openLogoutPopup)\n }, [openLogoutPopup])\n\n const logout = () => {\n ;(async () => {\n await callPostLogOutApi?.()\n onLogoutHandler?.()\n window.location.reload()\n })()\n }\n\n return (\n <Popup\n type=\"confirm\"\n isOpen={openLogoutPopup}\n closeIcon={\n <img\n src={CloseLightIcon}\n style={{ width: 24, height: 24 }}\n alt=\"close-icon\"\n />\n }\n onClose={onCloseHandler}\n >\n <StyledPopup>\n {siteType === 'helloSites' && (\n <img\n className=\"cancle-img\"\n src={`${basePath}/images/arrowDoor.svg`}\n alt=\"close-account\"\n />\n )}\n <h2>\n {f(\n siteType === 'helloSites'\n ? 'logout.popup.ask1'\n : 'logout.popup.ask.mb',\n )}\n </h2>\n <p>{f('logout.popup.ask2')}</p>\n <StyledButtonGroup siteType={siteType}>\n <Button\n className=\"logout-button\"\n color=\"tertiary\"\n size=\"lg\"\n onClick={logout}\n >\n {f('logout.popup.button.logout')}\n </Button>\n <Button\n className=\"cancel-button\"\n color=\"primary\"\n size=\"lg\"\n onClick={onCloseHandler}\n >\n {f('logout.popup.button.cancel')}\n </Button>\n </StyledButtonGroup>\n </StyledPopup>\n </Popup>\n )\n}\n\nexport { NavigationLogoutPopup }\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nexport const StyledPopup = styled.div`\n position: absolute;\n right: 0;\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n\n &[data-animation='true'] {\n transition: all 0.5s ease-in-out;\n }\n\n &[data-open='true'] {\n z-index: 200;\n top: 120%;\n opacity: 1;\n visibility: visible;\n }\n\n &[data-open='false'] {\n display: none;\n }\n\n &[data-type='lead'] {\n width: 332px;\n height: 460px;\n\n div {\n top: -15px;\n right: -15px;\n }\n }\n\n &[data-type='welcome'] {\n position: fixed;\n ${MediaQueries.mbDown} {\n width: 100%;\n height: 424px;\n bottom: 0;\n top: unset;\n }\n ${MediaQueries.mbUp} {\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 100%;\n min-height: 445px;\n max-width: 407px;\n }\n }\n\n &[data-type='due-date'] {\n position: fixed;\n ${MediaQueries.mbDown} {\n width: 100%;\n height: 100%;\n overflow-y: scroll;\n bottom: 0;\n top: unset;\n }\n ${MediaQueries.mbUp} {\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 100vw;\n height: 55vw;\n max-height: 598px;\n max-width: 1080px;\n }\n }\n\n .popup-content {\n z-index: 111;\n height: 100%;\n }\n\n &[data-type='form'] {\n width: 496px;\n height: 548px;\n }\n\n &[data-type='confirm'] {\n width: 380px;\n height: 252px;\n }\n\n &[data-type='profile'] {\n /* min-height: 415px; */\n ${MediaQueries.mbUp} {\n border-radius: 6px;\n box-shadow: 0px 4px 8px\n ${(props: ThemeProps) => props.theme.colors.gray200};\n &:before {\n position: absolute;\n right: 11px;\n bottom: 100%;\n width: 0;\n height: 0;\n border: 0.5rem solid transparent;\n border-top: none;\n border-bottom-color: #fff;\n content: '';\n filter: drop-shadow(0 -0.0625rem 0.0625rem rgba(0, 0, 0, 0.1));\n }\n }\n ${MediaQueries.mbDown} {\n position: fixed;\n left: 0;\n top: 64px;\n width: 100%;\n }\n ${MediaQueries.mbUp} {\n width: 368px;\n }\n }\n\n .close-button {\n position: absolute;\n top: 0;\n right: 0;\n width: 32px;\n height: 32px;\n cursor: pointer;\n\n img {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n }\n }\n`\n\nexport const StyledPopupWrapper = styled.div`\n position: fixed;\n z-index: 150;\n top: 69px;\n left: 0;\n width: 100%;\n height: 100%;\n align-items: center;\n\n ${MediaQueries.mbUp} {\n background-color: transparent;\n &[data-type='welcome'] {\n background: rgba(38, 38, 38, 0.3);\n }\n &[data-type='due-date'] {\n background: rgba(38, 38, 38, 0.3);\n }\n }\n\n ${MediaQueries.mbDown} {\n background: rgba(38, 38, 38, 0.3);\n }\n\n &[data-type='welcome'] {\n top: 0;\n }\n\n &[data-open='false'] {\n display: none;\n }\n`\n","import React from 'react'\n\nimport { StyledPopup, StyledPopupWrapper } from './index.styled'\n\nexport type Props = {\n type: 'lead' | 'form' | 'confirm' | 'profile' | 'welcome' | 'due-date'\n closeIcon?: JSX.Element\n onClose?: () => void\n isOpen?: boolean\n children?: any\n enableAnimation?: boolean\n targetAvatar?: string\n id?: string\n className?: string\n}\n\nconst Popup = ({\n type = 'lead',\n closeIcon,\n isOpen = true,\n onClose,\n children,\n enableAnimation = true,\n targetAvatar,\n id,\n className,\n}: Props) => {\n return (\n <>\n <StyledPopup\n data-open={isOpen}\n data-type={type}\n data-animation={enableAnimation}\n data-target={targetAvatar}\n id={id}\n className={className}\n >\n <div className=\"popup-content\">\n {!!closeIcon && (\n <div className=\"close-button\" onClick={onClose}>\n {closeIcon}\n </div>\n )}\n {children}\n </div>\n </StyledPopup>\n <StyledPopupWrapper\n data-type={type}\n data-open={isOpen}\n onClick={onClose}\n id={id ? `wrapper-${id}` : undefined}\n className={`${className || ''}-wrapper`}\n />\n </>\n )\n}\n\nexport { Popup }\n","import React from 'react'\n\nimport { TranslationsProvider } from 'i18n/translationsProvider'\nimport { LocaleType } from 'interfaces/types'\n\nimport { UserProfileNavigation } from '../../userProfileNavigation'\nimport { Popup } from '../profilePopupWrapper'\nimport { UserInfo } from '../types'\n\nexport type Props = {\n SSO_URL?: string\n UP_BASEPATH?: string\n isOpen: boolean\n locale: LocaleType\n targetAvatar?: string\n userInfo?: UserInfo\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES: LocaleType[]\n ENABLE_CARE_PROFILE_MENU_LOCALES: LocaleType[]\n closePopup: () => void\n dispatchLogout: () => void\n userProfileRouterPush?: (s: string) => void\n siteType: 'marryBaby' | 'helloSites'\n isUserProfileNavigatorMenuHidden?: boolean\n isMyHealthEnabled?: boolean\n togetherApiDomain?: string\n}\n\nconst ProfilePopup = ({\n SSO_URL,\n UP_BASEPATH,\n isOpen,\n locale,\n targetAvatar,\n userInfo,\n ENABLE_CARE_PROFILE_MENU_LOCALES,\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES,\n closePopup,\n siteType = 'helloSites',\n dispatchLogout,\n userProfileRouterPush,\n isUserProfileNavigatorMenuHidden,\n isMyHealthEnabled = false,\n togetherApiDomain,\n}: Props) => {\n const push = (link: string) => {\n if (userProfileRouterPush) {\n userProfileRouterPush(`/${link}`)\n } else if (SSO_URL) {\n window.location.href = `${SSO_URL}${UP_BASEPATH}/${link}`\n }\n }\n\n const handleClickOnMenu = (link: string) => {\n push(link)\n closePopup()\n }\n\n const handleClickMyProfileButton = () => {\n push('profile')\n closePopup()\n }\n\n const handleClickLogout = () => {\n if (dispatchLogout) {\n dispatchLogout()\n closePopup()\n }\n }\n\n return (\n <Popup\n isOpen={isOpen}\n type=\"profile\"\n enableAnimation={false}\n targetAvatar={targetAvatar}\n onClose={closePopup}\n >\n <TranslationsProvider locale={locale}>\n <UserProfileNavigation\n SSO_URL={SSO_URL}\n UP_BASEPATH={UP_BASEPATH}\n themeName={siteType}\n userInfo={userInfo}\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES={\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES\n }\n ENABLE_CARE_PROFILE_MENU_LOCALES={ENABLE_CARE_PROFILE_MENU_LOCALES}\n onClickLogout={handleClickLogout}\n onClickMenuItem={handleClickOnMenu}\n onClickNavigationCard={handleClickOnMenu}\n onClickMyProfileButton={handleClickMyProfileButton}\n userProfileRouterPush={userProfileRouterPush}\n isUserProfileNavigatorMenuHidden={isUserProfileNavigatorMenuHidden}\n isMyHealthEnabled={isMyHealthEnabled}\n togetherApiDomain={togetherApiDomain}\n />\n </TranslationsProvider>\n </Popup>\n )\n}\n\nexport { ProfilePopup }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nexport const StyledSelectionContainer = styled.div`\n position: relative;\n`\n\nexport const StyledSelectionLabel = styled.div``\n\nexport const StyleSelectionPopup = styled.div`\n position: absolute;\n z-index: 21;\n top: 100%;\n right: 0;\n width: 327px;\n padding: 8px;\n background: white;\n border-radius: 4px;\n filter: drop-shadow(0px 8px 40px rgba(0, 0, 0, 0.1));\n\n &[data-is-open='false'] {\n display: none;\n }\n &[data-show-indicator='true'] {\n &:before {\n position: absolute;\n right: 11px;\n bottom: 100%;\n width: 0;\n height: 0;\n border: 0.5rem solid transparent;\n border-top: none;\n border-bottom-color: #fff;\n content: '';\n filter: drop-shadow(0 -0.0625rem 0.0625rem rgba(0, 0, 0, 0.1));\n }\n }\n`\n\nexport const StyledOption = styled.div`\n display: flex;\n height: 40px;\n align-items: center;\n justify-content: space-between;\n\n padding: 0 16px;\n border-radius: 6px;\n cursor: pointer;\n\n .check-icon {\n width: 16px;\n height: 16px;\n }\n &[data-selected='false'] {\n background-color: ${(props: ThemeProps) => props.theme.colors.gray100};\n }\n`\nexport const StyledPopupBackground = styled.div`\n position: fixed;\n z-index: 20;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n cursor: default;\n`\n","import React, { useState } from 'react'\n\nimport { Text } from 'components/atoms/text'\nimport { CSSProperties } from 'styled-components'\n\nimport { Check } from '../assets'\nimport {\n StyledOption,\n StyledPopupBackground,\n StyledSelectionContainer,\n StyledSelectionLabel,\n StyleSelectionPopup,\n} from './index.styled'\nexport type Option = {\n value: string\n label: string\n}\nexport type Props = {\n options: Option[]\n selected: string | number\n label?: string | JSX.Element\n onChange: (s: string) => void\n showSelected?: boolean\n style?: CSSProperties\n showIndicator?: boolean\n}\n\nconst TooltipSelection = ({\n options,\n label,\n selected,\n onChange,\n showSelected = true,\n style = {},\n showIndicator = true,\n}: Props) => {\n const [isOpen, setIsOpen] = useState<boolean>(false)\n\n return (\n <>\n <StyledSelectionContainer>\n <StyledSelectionLabel\n onClick={() => setIsOpen((value: boolean) => !value)}\n >\n {!!label && label}\n </StyledSelectionLabel>\n <StyleSelectionPopup\n data-is-open={isOpen}\n style={style}\n data-show-indicator={showIndicator}\n >\n {options.map((option, index) => (\n <StyledOption\n key={index}\n data-selected={showSelected && selected === option.value}\n onClick={(e) => {\n if (selected !== option.value) {\n onChange(option.value)\n setIsOpen((value: boolean) => !value)\n }\n e.stopPropagation()\n }}\n >\n <Text size=\"p3\">{option.label}</Text>\n {showSelected && selected === option.value && (\n <img src={Check} alt=\"check\" className=\"check-icon\" />\n )}\n </StyledOption>\n ))}\n </StyleSelectionPopup>\n </StyledSelectionContainer>\n {isOpen && (\n <StyledPopupBackground\n onClick={() => setIsOpen(false)}\n ></StyledPopupBackground>\n )}\n </>\n )\n}\n\nexport { TooltipSelection }\n","import React, { useEffect, useMemo, useRef, useState } from 'react'\n\nimport { LocaleType } from 'interfaces/types'\n\nimport { AmpSidebar } from './ampSideBar'\nimport {\n DiscoverIcon,\n HealthToolsIcon,\n HelloTogetherIcon,\n HelloCareIcon,\n ChevronUpBlue,\n ChevronDown,\n} from './assets'\nimport {\n LOCALE_SPECS as defaultLocaleSpecs,\n STATIC_PAGES as defaultStaticPages,\n domainLocales,\n SSO_PATHS,\n // DEFAULT_FOOTER,\n} from './constants'\nimport { CustomFooter } from './CustomFooter'\nimport {\n StyledContainer,\n StyledHomeContainer,\n StyledAmpHomeContainer,\n StyledLanguageChangeLink,\n} from './index.styled'\nimport { StyledMenuLanguageLabelContainer } from './index.styled'\nimport { Layout, SEOData } from './layout'\nimport { MenuServiceList } from './menuServiceList'\nimport { NavigationBar } from './navigationBar'\nimport { NavigationLogoutPopup } from './navigationLogoutPopup'\nimport { ProfilePopup } from './profilePopup'\nimport { Option, TooltipSelection } from './tooltipSelection'\nimport {\n Category,\n Community,\n DesktopMenuPopup,\n FooterInfo,\n HealthTool,\n HealthToolByCategory,\n MarryBabyFooterInfo,\n MenuItemType,\n MenuServiceType,\n MobileMenuPopup,\n Specialty,\n SpotlightSummary,\n State,\n UrlSource,\n AmpNextArticle,\n} from './types'\nimport {\n checkAvailableSpotlight,\n formatCategory,\n formatCommunity,\n formatHealthTool,\n formatHealthToolTypeCategory,\n formatSpotlightsList,\n getCareDefaultSpecialtiesApiPath,\n getDiscoverDefaultCategoriesApiPath,\n getDiscoverDefaultFooterApiPath,\n getDiscoverDefaultHealthToolsByCategoryApiPath,\n getDiscoverDefaultSpotlightsApiPath,\n getMarryBabyDefaultFooterApiPath,\n getMarryBabyDefaultHealthToolsApiPath,\n getTogetherDefaultCommunitiesApiPath,\n getTogetherMarryBabyCommunitiesApiPath,\n useTranslation,\n} from './utils'\n\nexport type Props = {\n children?: JSX.Element | JSX.Element[]\n isMobile?: boolean\n siteType: 'marryBaby' | 'helloSites'\n ssrMenuContent?: {\n categories?: Category[]\n healthTools?: HealthTool[]\n healthToolsByCategory?: HealthToolByCategory[]\n careSpecialties?: Specialty[]\n togetherCommunities?: Community[]\n spotlightsList?: SpotlightSummary[]\n }\n MetaPageTitle?: string\n MetaPageDescription?: string\n MetaPageImage?: string\n SEOData?: SEOData\n UP_BASEPATH?: string\n isSearchBarDisplay?: boolean\n className?: string\n isStatic?: boolean\n seoType?: 'article' | 'website' | 'profile'\n currentCategory?: string\n isCommentReleaseSSR?: boolean\n isMyHealthEnabled?: boolean\n together?: {\n TOGETHER_MENU_COUNTRIES_ENABLED?: LocaleType[]\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES?: LocaleType[]\n togetherApiDomain?: string\n }\n care?: {\n CARE_MENU_COUNTRIES_ENABLED?: LocaleType[]\n ENABLE_CARE_PROFILE_MENU_LOCALES?: LocaleType[]\n careApiDomain?: string\n menuActionType?: 'redirectOnly' | 'subMenuList'\n }\n discover?: { discoverApiDomain?: string }\n sso?: {\n dispatchLogout?: () => void\n SSO_URL?: string\n }\n activeMenuService?: MenuServiceType\n logoutHandlers?: {\n isLogoutPopupOpened?: boolean\n callPostLogOutApi?: () => void\n onClosePopup?: () => void\n onLogout?: () => void\n }\n marryBaby?: {\n tone: 'pink' | 'white'\n marryBabyApiDomain?: string\n socialLinks?: {\n facebookLink?: string\n twitterLink?: string\n instagramLink?: string\n zaloLink?: string\n linkedinLink?: string\n youtubeLink?: string\n }\n }\n footerInfo?: FooterInfo | MarryBabyFooterInfo\n statics: {\n DISCOVER_URL_FE?: string\n TOGETHER_URL_FE?: string\n HEALTH_TOOL_URL_FE?: string\n CARE_URL_FE?: string\n MARRY_BABY_FE?: string\n HOME_PAGE_URL?: string\n LOCALE_SPECS?: {\n [key: string]: {\n [key: string]: string | null\n }\n }\n STATIC_PAGES?: {\n [key in LocaleType]: {\n [key: string]: string | null\n }\n }\n }\n translation?: { [key: string]: string }\n basePath: string\n isAmp?: boolean\n locale: LocaleType\n routerPathname: string\n routerQuery: { [key: string]: string }\n routerAsPath: string\n nextHead: React.FunctionComponent\n userState: State\n userProfileRouterPush?: (s: string) => void\n callApiHandler: (p: string, m: 'GET' | 'POST' | 'PUT') => any\n onTopBarAppears?: (b: boolean) => void\n forcedCanonicalUrl?: string\n isUserProfileNavigatorMenuHidden?: boolean\n sitewideBanner?: JSX.Element\n sitewideBannerShown?: boolean\n sponsorComponent?: JSX.Element\n languageOptions?: Option[]\n ampSubBar?: JSX.Element\n isSearchIconDisplayed?: boolean\n enabledExperimentalCareHeader?: boolean\n onCareHeaderClick?: (\n e: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n ) => void\n dueDatePopup?: JSX.Element\n welcomePopup?: JSX.Element\n ampNextArticle?: AmpNextArticle\n usingDefaultHead?: boolean\n acceptCookiePopup?: JSX.Element\n seoCustom?: boolean\n hasStickyBottomBar?: boolean\n}\n\nconst checkDisplayStyle = (checkingClass: string): string | false | null => {\n const isBrowser = typeof window !== 'undefined'\n const desktopPopupCategories =\n isBrowser && document.querySelector(checkingClass)\n const desktopPopupCategoriesStyle =\n desktopPopupCategories && window.getComputedStyle(desktopPopupCategories)\n return (\n desktopPopupCategoriesStyle &&\n desktopPopupCategoriesStyle.getPropertyValue('display')\n )\n}\n\nconst NavigationLayout = ({\n siteType,\n MetaPageTitle,\n MetaPageDescription,\n MetaPageImage,\n // currentCategory,\n footerInfo: footerInfoSSR,\n children,\n ssrMenuContent: {\n categories: categoriesSSR = [],\n healthTools: healthToolsSSR = [],\n healthToolsByCategory: healthToolsByCategorySSR = [],\n careSpecialties: careSpecialtiesSSR = [],\n togetherCommunities: togetherCommunitiesSSR = [],\n spotlightsList: spotlightsListSSR = [],\n } = {},\n SEOData = {},\n UP_BASEPATH = SSO_PATHS.SSO_USER_PROFILE,\n isStatic = false,\n seoType = 'website',\n isMobile,\n isMyHealthEnabled = false,\n logoutHandlers: {\n isLogoutPopupOpened,\n callPostLogOutApi,\n onClosePopup,\n onLogout,\n },\n marryBaby: {\n tone = 'white',\n marryBabyApiDomain,\n socialLinks: {\n facebookLink = '',\n instagramLink = '',\n linkedinLink = '',\n twitterLink = '',\n youtubeLink = '',\n zaloLink = '',\n } = {},\n } = {\n tone: 'white',\n marryBabyApiDomain: '',\n socialLinks: {\n facebookLink: '',\n instagramLink: '',\n linkedinLink: '',\n twitterLink: '',\n youtubeLink: '',\n zaloLink: '',\n },\n },\n statics: {\n DISCOVER_URL_FE: DISCOVER_URL_FE_CUSTOM,\n TOGETHER_URL_FE,\n MARRY_BABY_FE,\n HOME_PAGE_URL,\n HEALTH_TOOL_URL_FE,\n CARE_URL_FE,\n LOCALE_SPECS = defaultLocaleSpecs,\n STATIC_PAGES = defaultStaticPages,\n } = {\n LOCALE_SPECS: defaultLocaleSpecs,\n STATIC_PAGES: defaultStaticPages,\n },\n sso: { dispatchLogout, SSO_URL } = {},\n together: {\n TOGETHER_MENU_COUNTRIES_ENABLED,\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES,\n togetherApiDomain,\n } = {\n TOGETHER_MENU_COUNTRIES_ENABLED: ['id-ID', 'vi-VN'],\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES: ['id-ID', 'vi-VN'],\n togetherApiDomain: '',\n },\n care: {\n CARE_MENU_COUNTRIES_ENABLED,\n ENABLE_CARE_PROFILE_MENU_LOCALES,\n careApiDomain,\n } = {\n CARE_MENU_COUNTRIES_ENABLED: ['vi-VN', 'id-ID', 'en-PH'],\n ENABLE_CARE_PROFILE_MENU_LOCALES: [],\n menuActionType: 'redirectOnly',\n careApiDomain: '',\n },\n discover: { discoverApiDomain } = {\n discoverApiDomain: '',\n },\n activeMenuService = 'categories',\n basePath,\n isAmp = false,\n nextHead,\n routerPathname,\n routerQuery,\n routerAsPath,\n locale,\n userState,\n callApiHandler,\n userProfileRouterPush,\n onTopBarAppears,\n forcedCanonicalUrl,\n isUserProfileNavigatorMenuHidden,\n sitewideBanner,\n sitewideBannerShown = true,\n sponsorComponent,\n languageOptions,\n isSearchBarDisplay: isSearchBarDisplayProps,\n ampSubBar,\n isSearchIconDisplayed = true,\n enabledExperimentalCareHeader = false,\n onCareHeaderClick,\n dueDatePopup,\n welcomePopup,\n ampNextArticle,\n usingDefaultHead = true,\n acceptCookiePopup,\n seoCustom,\n hasStickyBottomBar = true,\n}: Props) => {\n // get isSearchBarDisplay from props, if no props then default to only show on desktop\n const isSearchBarDisplay =\n typeof isSearchBarDisplayProps === 'boolean'\n ? isSearchBarDisplayProps\n : !isMobile\n const f = useTranslation()\n const LOCALE_SPEC = LOCALE_SPECS[locale || 'en-PH'] || {}\n\n const asPathname = useMemo(\n () => routerAsPath.split('?')?.[0] || '',\n [routerAsPath],\n )\n const selectedLanguage = useMemo(\n () =>\n `${basePath}${\n asPathname.slice(-1) === '/' ? asPathname : `${asPathname}/`\n }`,\n [asPathname],\n )\n const languageChange = useMemo(\n () =>\n languageOptions?.find((option) => option.value !== selectedLanguage) ||\n null,\n [languageOptions, selectedLanguage],\n )\n const [footerInfo, setFooterInfo] = useState<\n FooterInfo | MarryBabyFooterInfo\n >(footerInfoSSR)\n\n const [categories, setCategories] = useState<Category[]>(categoriesSSR)\n const [healthTools, setHealthTools] = useState<HealthTool[]>(healthToolsSSR)\n const [healthToolsByCategory, setHealthToolsByCategory] = useState<\n HealthToolByCategory[]\n >(healthToolsByCategorySSR)\n const [careSpecialties, setCareSpecialties] =\n useState<Specialty[]>(careSpecialtiesSSR)\n const [communities, setCommunities] = useState<Community[]>(\n togetherCommunitiesSSR,\n )\n const [spotlightsList, setSpotlightsList] =\n useState<SpotlightSummary[]>(spotlightsListSSR)\n\n const DISCOVER_URL_FE =\n DISCOVER_URL_FE_CUSTOM || `https://${domainLocales[locale]}` || ''\n\n const isBrowser = typeof window !== 'undefined'\n\n const mobileSideMenu = isBrowser && document.querySelector('#categories-menu')\n const mobileSideMenuStyle =\n mobileSideMenu && isBrowser && window.getComputedStyle(mobileSideMenu)\n const mobileSideMenuLeft =\n mobileSideMenuStyle && mobileSideMenuStyle.getPropertyValue('left')\n\n const isMobilePopupOpened = useRef(\n mobileSideMenuLeft === '0px' ? true : false,\n )\n const [isMobilePopupOpenedFlag, setIsMobilePopupOpenedFlag] = useState(\n isMobilePopupOpened.current,\n )\n\n // check if categories tool menu is appear\n const desktopPopupCategoriesDisplay = checkDisplayStyle(\n '.top-menu-categories',\n )\n\n // check if health tool menu is appear\n const desktopPopupHealthToolsDisplay = checkDisplayStyle(\n '.top-menu-health-tools',\n )\n\n // check if communities menu is appear\n const desktopPopupCommunitiesDisplay = checkDisplayStyle(\n '.top-menu-communities',\n )\n\n // check if care specialties menu is appear\n const desktopPopupCareSpecialtiesDisplay = checkDisplayStyle(\n '.top-menu-care-specialties',\n )\n\n // set popup\n const [popupType, setPopupType] = useState<DesktopMenuPopup>(\n desktopPopupCategoriesDisplay && desktopPopupCategoriesDisplay !== 'none'\n ? 'categories'\n : desktopPopupHealthToolsDisplay &&\n desktopPopupHealthToolsDisplay !== 'none'\n ? 'tools'\n : desktopPopupCommunitiesDisplay &&\n desktopPopupCommunitiesDisplay !== 'none'\n ? 'communities'\n : desktopPopupCareSpecialtiesDisplay &&\n desktopPopupCareSpecialtiesDisplay !== 'none'\n ? 'care'\n : 'none',\n )\n\n const languageSelectedLabel = useMemo(\n () => (\n <StyledMenuLanguageLabelContainer>\n {locale.split('-')?.[0]?.toUpperCase()}\n <img\n src={popupType === 'language' ? ChevronUpBlue : ChevronDown}\n style={{ width: '16px', height: '16px' }}\n alt={f('home.navigator.menuItem.language')}\n />\n </StyledMenuLanguageLabelContainer>\n ),\n [popupType, locale],\n )\n\n const { userInfo, isLoggedIn } = userState\n\n const onMenuCollapsed = (type: MobileMenuPopup) => {\n if (\n // !isDesktopPopupOpen ||\n // (isDesktopPopupOpen &&\n popupType !== type\n // )\n ) {\n // setIsDesktopPopupOpen(true)\n setPopupType(type)\n setIsMobilePopupOpenedFlag(true)\n }\n\n if (\n // isDesktopPopupOpen &&\n popupType === type\n ) {\n // setIsDesktopPopupOpen(false)\n setPopupType('none')\n setIsMobilePopupOpenedFlag(false)\n }\n // isMobilePopupOpened.current = !isMobilePopupOpenedFlag\n }\n\n const closeDesktopPopup = () => {\n // setIsDesktopPopupOpen(false)\n setPopupType('none')\n }\n\n const closeMobilePopup = () => {\n // isMobilePopupOpened.current = false\n setIsMobilePopupOpenedFlag(false)\n setPopupType('none')\n }\n\n const openDesktopPopup = (type: DesktopMenuPopup) => {\n if (\n // !isDesktopPopupOpen ||\n // (isDesktopPopupOpen &&\n popupType !== type\n // )\n ) {\n // setIsDesktopPopupOpen(true)\n setPopupType(type)\n }\n\n if (\n // isDesktopPopupOpen &&\n popupType === type\n ) {\n // setIsDesktopPopupOpen(false)\n setPopupType('none')\n }\n }\n\n const onSearchKeyPress = (e: React.KeyboardEvent<Element>, t: string) => {\n if (e.key === 'Enter') {\n window.location.href = `${HOME_PAGE_URL}/search/?s=${t}`\n }\n }\n\n const siteName = LOCALE_SPECS?.[locale]?.SITE_NAME_FORMATTED\n\n const services = [\n {\n name: f('home.navigator.menuItem.discover'),\n id: 'categories' as MenuServiceType,\n link: './posts/abc',\n niceName: '',\n thumbnail: DiscoverIcon,\n isDisplayed: true,\n },\n {\n name: f('home.navigator.menuItem.healthTools'),\n id: 'healthTools' as MenuServiceType,\n link: './en',\n thumbnail: HealthToolsIcon,\n isDisplayed: true,\n },\n ] as MenuItemType[]\n\n TOGETHER_MENU_COUNTRIES_ENABLED?.includes(locale) &&\n services.push({\n name: f('home.navigator.menuItem.helloTogether'),\n id: 'together' as MenuServiceType,\n link: TOGETHER_URL_FE + '/',\n thumbnail: HelloTogetherIcon,\n isDisplayed: true,\n })\n\n CARE_MENU_COUNTRIES_ENABLED?.includes(locale) &&\n services.push({\n name: f('home.navigator.menuItem.helloCare'),\n id: 'care' as MenuServiceType,\n link: '/care',\n thumbnail: HelloCareIcon,\n isDisplayed: true,\n })\n\n useEffect(() => {\n document.documentElement.style.overflow = isMobilePopupOpenedFlag\n ? 'hidden'\n : ''\n }, [isMobilePopupOpenedFlag])\n\n const isSponsored = !!sponsorComponent\n\n useEffect(() => {\n if (isLoggedIn) {\n if (routerQuery?.source === ('first_login' as UrlSource)) {\n // sign up\n userInfo?.email && userInfo?.email !== ''\n ? (() => {\n // with email\n ;(window as any).insider_object = {\n user: {\n uuid: userInfo?.id,\n email: userInfo?.email,\n gdpr_optin: true,\n email_optin: true,\n sign_up: true,\n ...(userInfo?.name ? { name: userInfo?.name } : {}),\n },\n }\n })()\n : (() => {\n // without email\n ;(window as any).insider_object = {\n user: {\n uuid: userInfo?.id,\n sign_up: true,\n ...(userInfo?.name ? { name: userInfo?.name } : {}),\n },\n }\n })()\n } else {\n // log in\n userInfo?.email && userInfo?.email !== ''\n ? (() => {\n // with email\n ;(window as any).insider_object = {\n user: {\n uuid: userInfo?.id,\n email: userInfo?.email,\n gdpr_optin: true,\n email_optin: true,\n log_in: true,\n ...(userInfo?.name ? { name: userInfo?.name } : {}),\n },\n }\n })()\n : (() => {\n // without email\n ;(window as any).insider_object = {\n user: {\n uuid: userInfo?.id,\n log_in: true,\n ...(userInfo?.name ? { name: userInfo?.name } : {}),\n },\n }\n })()\n }\n }\n\n // get footer csr\n ;(async () => {\n const footerResult = !footerInfo\n ? await (\n await fetch(\n siteType === 'helloSites'\n ? getDiscoverDefaultFooterApiPath(locale, discoverApiDomain)\n : getMarryBabyDefaultFooterApiPath(locale, marryBabyApiDomain),\n )\n ).json()\n : null\n\n if (\n footerResult &&\n footerResult.status === 1 &&\n footerResult.data &&\n !footerInfo\n ) {\n setFooterInfo(\n siteType === 'helloSites'\n ? footerResult.data || {}\n : footerResult.data.footers || [],\n )\n }\n })()\n\n // get categories csr\n ;(async () => {\n const { response: categoriesResults = {} } =\n // typeof window !== 'undefined' &&\n (!categoriesSSR || categoriesSSR?.length === 0) &&\n // (isMobile || popupType === 'categories') &&\n categories?.length === 0\n ? {\n response: await (\n await fetch(\n getDiscoverDefaultCategoriesApiPath(\n locale,\n discoverApiDomain,\n ),\n )\n ).json(),\n }\n : {}\n\n if (\n categoriesResults !== null &&\n categoriesResults.status === 1 &&\n categoriesResults.data?.length > 0\n ) {\n const categoriesFormatted: Category[] =\n categoriesResults.data.map(formatCategory)\n\n categories.length === 0 && setCategories(categoriesFormatted)\n }\n })()\n\n // get spotlight\n ;(async () => {\n const { response: spotlightsResults = {} } =\n // typeof window !== 'undefined' &&\n (!spotlightsListSSR || spotlightsListSSR?.length === 0) &&\n siteType === 'helloSites' &&\n // (isMobile || popupType === 'categories') &&\n spotlightsList?.length === 0\n ? {\n response: await (\n await fetch(\n getDiscoverDefaultSpotlightsApiPath(\n locale,\n discoverApiDomain,\n {\n perPage: 100,\n orderBy: 'start_date',\n },\n ),\n )\n ).json(),\n }\n : {}\n\n if (\n spotlightsResults?.status === 1 &&\n spotlightsResults?.data?.articles?.length > 0\n ) {\n const spotlightsFormatted: SpotlightSummary[] =\n spotlightsResults.data?.articles\n ?.map(formatSpotlightsList)\n .filter(checkAvailableSpotlight)\n .slice(0, 4)\n\n spotlightsList.length === 0 && setSpotlightsList(spotlightsFormatted)\n }\n })()\n\n // get health tools csr\n ;(async () => {\n const { response: healthToolsResults = {} } =\n // typeof window !== 'undefined' &&\n !healthToolsSSR?.length &&\n !healthTools?.length &&\n !healthToolsByCategorySSR?.length &&\n !healthToolsByCategorySSR?.length\n ? {\n response: await (siteType === 'helloSites'\n ? await fetch(\n getDiscoverDefaultHealthToolsByCategoryApiPath(\n locale,\n discoverApiDomain,\n ),\n )\n : await fetch(\n getMarryBabyDefaultHealthToolsApiPath(\n locale,\n marryBabyApiDomain,\n ),\n )\n ).json(),\n }\n : {}\n\n if (\n healthToolsResults !== null &&\n healthToolsResults.status === 1 &&\n healthToolsResults.data?.length > 0\n ) {\n if (siteType === 'helloSites') {\n const healthToolsFormatted: HealthToolByCategory[] =\n healthToolsResults.data.map(formatHealthToolTypeCategory)\n\n if (healthTools.length === 0) {\n setHealthToolsByCategory(healthToolsFormatted)\n // setIsCategoryLoading(false)\n }\n } else {\n const healthToolsFormatted: HealthTool[] =\n healthToolsResults.data.map(formatHealthTool)\n\n if (healthTools.length === 0) {\n setHealthTools(healthToolsFormatted)\n // setIsCategoryLoading(false)\n }\n }\n }\n })()\n\n // get careSpecialties csr\n ;(async () => {\n const { response: careSpecialtiesResults = {} } =\n // typeof window !== 'undefined' &&\n (!careSpecialtiesSSR || careSpecialtiesSSR?.length === 0) &&\n // (isMobile || popupType === 'care') &&\n CARE_MENU_COUNTRIES_ENABLED.includes(locale) &&\n careSpecialties?.length === 0\n ? {\n response: await (\n await fetch(\n getCareDefaultSpecialtiesApiPath(locale, careApiDomain),\n )\n ).json(),\n }\n : {}\n\n if (\n careSpecialtiesResults !== null &&\n careSpecialtiesResults._status === 1 &&\n careSpecialtiesResults._data?.specialties?.length > 0\n ) {\n const careSpecialtiesFormatted: Specialty[] =\n careSpecialtiesResults._data.specialties\n\n if (careSpecialties.length === 0) {\n setCareSpecialties(careSpecialtiesFormatted)\n // setIsCategoryLoading(false)\n }\n }\n })()\n\n // get communities csr\n ;(async () => {\n const { response: communitiesResults = {} } =\n // typeof window !== 'undefined' &&\n (!togetherCommunitiesSSR || togetherCommunitiesSSR?.length === 0) &&\n // (isMobile || popupType === 'communities') &&\n TOGETHER_MENU_COUNTRIES_ENABLED.includes(locale) &&\n communities?.length === 0\n ? {\n response: await (\n await fetch(\n siteType === 'helloSites'\n ? getTogetherDefaultCommunitiesApiPath(\n locale,\n togetherApiDomain,\n )\n : getTogetherMarryBabyCommunitiesApiPath(\n locale,\n togetherApiDomain,\n ),\n )\n ).json(),\n }\n : {}\n\n if (communitiesResults?.data?.communities?.length > 0) {\n const communitiesFormatted: Community[] =\n communitiesResults?.data?.communities?.map(formatCommunity) || []\n if (communities.length === 0) {\n setCommunities(communitiesFormatted)\n // setIsCategoryLoading(false)\n }\n }\n })()\n }, [])\n\n const profileMenu = (\n <ProfilePopup\n locale={locale}\n UP_BASEPATH={UP_BASEPATH}\n SSO_URL={SSO_URL}\n userProfileRouterPush={userProfileRouterPush}\n dispatchLogout={dispatchLogout}\n isOpen={popupType === 'profile'}\n isMyHealthEnabled={isMyHealthEnabled}\n ENABLE_CARE_PROFILE_MENU_LOCALES={ENABLE_CARE_PROFILE_MENU_LOCALES}\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES={\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES\n }\n closePopup={closeMobilePopup}\n userInfo={userInfo}\n siteType={siteType}\n isUserProfileNavigatorMenuHidden={isUserProfileNavigatorMenuHidden}\n togetherApiDomain={togetherApiDomain}\n />\n )\n const hideAMP = isAmp && { 'next-page-hide': '' }\n\n return (\n <Layout\n SEOData={{\n SEOTitle: MetaPageTitle,\n SEOImage: MetaPageImage,\n SEODescription: MetaPageDescription,\n siteName,\n seoType,\n ...SEOData,\n }}\n isAmp={isAmp}\n locale={locale}\n routerPathname={routerPathname}\n routerQuery={routerQuery}\n nextHead={nextHead}\n siteType={siteType}\n forcedCanonicalUrl={forcedCanonicalUrl}\n userId={userInfo?.id}\n usingDefaultHead={usingDefaultHead}\n seoCustom={seoCustom}\n >\n <NavigationLogoutPopup\n basePath={basePath}\n callPostLogOutApi={callPostLogOutApi}\n openLogoutPopup={isLogoutPopupOpened}\n onCloseHandler={onClosePopup}\n onLogoutHandler={onLogout}\n siteType={siteType}\n />\n {dueDatePopup}\n {welcomePopup}\n {acceptCookiePopup}\n {isMobile ? (\n <>\n <StyledContainer>\n <section\n className={isAmp ? 'amp-header' : undefined}\n next-page-replace=\"hhg-navigator\"\n amp-fx=\"float-in-top\"\n {...hideAMP}\n >\n <NavigationBar\n siteType={siteType}\n statics={{\n DISCOVER_URL_FE,\n SSO_URL,\n HOME_PAGE_URL,\n MARRY_BABY_FE,\n CARE_URL_FE,\n }}\n marryBaby={{ tone }}\n menuItems={services}\n menu={\n !isAmp ? (\n <MenuServiceList\n key={'mobile-menu-popup'}\n menuItems={services}\n siteType={siteType}\n isMobileMenuOpened={popupType === 'categories'}\n categories={categories}\n healthTools={healthTools}\n healthToolsByCategory={healthToolsByCategory}\n careSpecialties={careSpecialties}\n togetherCommunities={communities}\n spotlightsList={spotlightsList}\n onMobileMenuClick={onMenuCollapsed}\n isMobile={isMobile}\n closePopup={closeMobilePopup}\n footer={\n <CustomFooter\n locale={locale}\n isMobile={isMobile}\n basePath={basePath}\n isAmp={isAmp}\n footerInfo={footerInfo}\n type=\"mini\"\n siteType={siteType}\n marryBabySocialLinks={{\n facebookLink,\n instagramLink,\n linkedinLink,\n twitterLink,\n youtubeLink,\n zaloLink,\n }}\n />\n }\n locale={locale}\n callApiHandler={callApiHandler}\n basePath={basePath}\n together={{\n TOGETHER_MENU_COUNTRIES_ENABLED,\n togetherApiDomain:\n togetherApiDomain || marryBabyApiDomain,\n TOGETHER_URL_FE,\n }}\n care={{\n CARE_MENU_COUNTRIES_ENABLED,\n careApiDomain,\n CARE_URL_FE,\n }}\n discover={{ discoverApiDomain, DISCOVER_URL_FE }}\n activeMenuService={activeMenuService}\n statics={{\n DISCOVER_URL_FE,\n HOME_PAGE_URL,\n HEALTH_TOOL_URL_FE,\n MARRY_BABY_FE,\n TOGETHER_URL_FE,\n STATIC_PAGES,\n }}\n marryBaby={{\n tone,\n }}\n routerAsPath={routerAsPath}\n popupType=\"none\"\n sso={{\n SSO_URL,\n }}\n />\n ) : undefined\n }\n profileMenu={profileMenu}\n type=\"home\"\n currentPopupType={popupType}\n isMobile={isMobile}\n isLoginButtonDisplayed\n onMenuClick={onMenuCollapsed}\n searchPlaceholder={f('home.search', {\n site:\n siteType === 'helloSites'\n ? LOCALE_SPEC?.SITE_NAME\n : 'Marry Baby',\n })}\n onTopBarAppears={(b: boolean) => {\n onTopBarAppears && onTopBarAppears(b)\n }}\n isSearchBarDisplay={isSearchBarDisplay}\n onSearchKeyPress={onSearchKeyPress}\n // onSearchChange={onSearchChanged}\n isStatic={isAmp || isStatic}\n sponsorComponent={sponsorComponent}\n locale={locale}\n userInfo={userState.userInfo}\n basePath={basePath}\n isAmp={isAmp}\n isDisplayed\n isInit={false}\n onSearchChange={undefined}\n openPopup={undefined}\n routerAsPath={routerAsPath}\n title={''}\n sitewideBanner={sitewideBanner}\n sitewideBannerShown={sitewideBannerShown}\n isSearchIconDisplayed={isSearchIconDisplayed}\n enabledExperimentalCareHeader={enabledExperimentalCareHeader}\n languageMenu={\n typeof languageOptions !== 'undefined' &&\n languageOptions.length > 1 ? (\n <>\n {languageOptions.length === 2 && languageChange ? (\n <StyledLanguageChangeLink\n data-is-active={true}\n href={languageChange?.value || '#'}\n >\n {languageChange?.label}\n </StyledLanguageChangeLink>\n ) : (\n <TooltipSelection\n options={languageOptions}\n selected={selectedLanguage}\n label={languageSelectedLabel}\n onChange={(href) => {\n if (typeof window !== 'undefined') {\n window.location.href = href\n }\n }}\n style={{ width: 100 }}\n showSelected={true}\n showIndicator={false}\n />\n )}\n </>\n ) : undefined\n }\n />\n {typeof ampSubBar !== 'undefined' && <>{ampSubBar}</>}\n </section>\n {!isAmp ? (\n <StyledHomeContainer\n className=\"root-container\"\n data-menu-opened={isMobilePopupOpened.current}\n data-sponsored={isSponsored}\n data-is-mobile={isMobile}\n data-sitewide={!!sitewideBanner}\n hasStickyBottomBar={hasStickyBottomBar}\n >\n <>\n {children}\n <CustomFooter\n isAmp={isAmp}\n isMobile={isMobile}\n locale={locale}\n basePath={basePath}\n footerInfo={footerInfo}\n type=\"main\"\n siteType={siteType}\n marryBabySocialLinks={{\n facebookLink,\n instagramLink,\n linkedinLink,\n twitterLink,\n youtubeLink,\n zaloLink,\n }}\n ampNextArticle={ampNextArticle}\n routerQuery={routerQuery}\n />\n </>\n </StyledHomeContainer>\n ) : (\n <StyledAmpHomeContainer\n className=\"root-container\"\n data-menu-opened={isMobilePopupOpened.current}\n data-sponsored={isSponsored}\n data-is-mobile={isMobile}\n data-sitewide={!!sitewideBanner}\n >\n {children}\n <CustomFooter\n isAmp={isAmp}\n isMobile={isMobile}\n locale={locale}\n basePath={basePath}\n footerInfo={footerInfo}\n type=\"main\"\n siteType={siteType}\n marryBabySocialLinks={{\n facebookLink,\n instagramLink,\n linkedinLink,\n twitterLink,\n youtubeLink,\n zaloLink,\n }}\n ampNextArticle={ampNextArticle}\n routerQuery={routerQuery}\n />\n </StyledAmpHomeContainer>\n )}\n </StyledContainer>\n {isAmp && (\n <AmpSidebar\n locale={locale}\n categoriesSSR={categoriesSSR}\n healthToolsSSR={healthToolsByCategorySSR}\n spotlightsSSR={spotlightsListSSR}\n serviceUrls={{\n TOGETHER_URL_FE,\n CARE_URL_FE,\n DISCOVER_URL_FE,\n }}\n together={{\n TOGETHER_MENU_COUNTRIES_ENABLED,\n ENABLE_COMMUNITY_PROFILE_MENU_LOCALES,\n togetherApiDomain,\n }}\n care={{\n CARE_MENU_COUNTRIES_ENABLED,\n ENABLE_CARE_PROFILE_MENU_LOCALES,\n careApiDomain,\n }}\n basePath={basePath}\n searchPlaceholder={f('home.search', {\n site:\n siteType === 'helloSites'\n ? LOCALE_SPEC?.SITE_NAME\n : 'Marry Baby',\n })}\n />\n )}\n </>\n ) : (\n <>\n <NavigationBar\n siteType={siteType}\n menuItems={services}\n marryBaby={{ tone }}\n locale={locale}\n currentPopupType={popupType}\n onSearchKeyPress={onSearchKeyPress}\n openPopup={openDesktopPopup}\n isMobile={isMobile}\n isLoginButtonDisplayed\n // onSearchChange={onSearchChanged}\n isSearchBarDisplay={!isAmp && isSearchBarDisplay}\n searchPlaceholder={f('home.search', {\n site:\n siteType === 'helloSites'\n ? LOCALE_SPEC?.SITE_NAME\n : 'Marry Baby',\n })}\n sitewideBannerShown={sitewideBannerShown}\n statics={{\n DISCOVER_URL_FE,\n SSO_URL,\n HOME_PAGE_URL,\n MARRY_BABY_FE,\n CARE_URL_FE,\n }}\n menu={\n <MenuServiceList\n menuItems={services}\n siteType={siteType}\n isMobile={isMobile}\n popupType={popupType}\n closePopup={closeDesktopPopup}\n categories={categories}\n healthTools={healthTools}\n healthToolsByCategory={healthToolsByCategory}\n careSpecialties={careSpecialties}\n togetherCommunities={communities}\n spotlightsList={spotlightsList}\n locale={locale}\n callApiHandler={callApiHandler}\n basePath={basePath}\n together={{\n TOGETHER_MENU_COUNTRIES_ENABLED,\n togetherApiDomain,\n TOGETHER_URL_FE,\n }}\n care={{\n careApiDomain,\n CARE_MENU_COUNTRIES_ENABLED,\n CARE_URL_FE,\n }}\n discover={{ discoverApiDomain, DISCOVER_URL_FE }}\n statics={{\n DISCOVER_URL_FE,\n HOME_PAGE_URL,\n HEALTH_TOOL_URL_FE,\n MARRY_BABY_FE,\n TOGETHER_URL_FE,\n STATIC_PAGES,\n }}\n activeMenuService={activeMenuService}\n marryBaby={{\n tone,\n }}\n routerAsPath={routerAsPath}\n footer={undefined}\n isMobileMenuOpened={undefined}\n sso={{\n SSO_URL,\n }}\n onMobileMenuClick={undefined}\n />\n }\n profileMenu={profileMenu}\n userInfo={userState.userInfo}\n sponsorComponent={sponsorComponent}\n type=\"home\"\n basePath={basePath}\n isAmp={isAmp}\n isDisplayed\n isInit={false}\n onSearchChange={undefined}\n isStatic={false}\n routerAsPath={routerAsPath}\n title={''}\n onMenuClick={undefined}\n onTopBarAppears={undefined}\n sitewideBanner={sitewideBanner}\n languageMenu={\n typeof languageOptions !== 'undefined' &&\n languageOptions.length > 1 ? (\n <>\n {languageOptions.length === 2 && languageChange ? (\n <StyledLanguageChangeLink\n data-is-active={true}\n href={languageChange?.value || '#'}\n >\n {languageChange?.label}\n </StyledLanguageChangeLink>\n ) : (\n <TooltipSelection\n options={languageOptions}\n selected={selectedLanguage}\n label={languageSelectedLabel}\n onChange={(href) => {\n if (typeof window !== 'undefined') {\n window.location.href = href\n }\n }}\n style={{ width: 100 }}\n showSelected={true}\n showIndicator={false}\n />\n )}\n </>\n ) : undefined\n }\n enabledExperimentalCareHeader={enabledExperimentalCareHeader}\n onCareHeaderClick={onCareHeaderClick}\n />\n {!isAmp ? (\n <StyledHomeContainer\n className=\"root-container\"\n data-menu-opened={isMobilePopupOpenedFlag}\n data-is-mobile={isMobile}\n data-sponsored={isSponsored}\n data-sitewide={!!sitewideBanner}\n hasStickyBottomBar={hasStickyBottomBar}\n >\n {children}\n </StyledHomeContainer>\n ) : (\n <StyledAmpHomeContainer\n className=\"root-container\"\n data-menu-opened={isMobilePopupOpenedFlag}\n data-is-mobile={isMobile}\n data-sponsored={isSponsored}\n data-sitewide={!!sitewideBanner}\n >\n {children}\n </StyledAmpHomeContainer>\n )}\n <CustomFooter\n type=\"main\"\n locale={locale}\n basePath={basePath}\n isMobile={isMobile}\n isAmp={isAmp}\n footerInfo={footerInfo}\n siteType={siteType}\n marryBabySocialLinks={{\n facebookLink,\n instagramLink,\n linkedinLink,\n twitterLink,\n youtubeLink,\n zaloLink,\n }}\n />\n </>\n )}\n </Layout>\n )\n}\n\nexport { NavigationLayout }\n","import { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nexport const StyledSiteWideContainer = styled.div`\n position: relative;\n display: flex;\n overflow: hidden;\n align-items: center;\n justify-content: center;\n background-position: center;\n background-size: cover;\n transition: height 0.3s;\n background-color: ${(props: ThemeProps) => props.theme.colors.secondaryBase};\n\n &[data-is-marrybaby='true'] {\n background-color: ${(props: ThemeProps) => props.theme.mbColors.cobalt};\n }\n\n &[data-is-mobile='true'] {\n &[data-is-marrybaby='false'] {\n justify-content: flex-start;\n }\n }\n &[data-is-mobile='false'] {\n justify-content: center;\n }\n\n &[data-is-collapse='false'] {\n height: 64px;\n &[data-is-marrybaby='true'] {\n &[data-is-mobile='true'] {\n height: 120px;\n }\n }\n }\n &[data-is-collapse='true'] {\n height: 0;\n }\n\n .amp-close-banner * {\n pointer-events: none;\n }\n\n .content {\n display: -webkit-box;\n overflow: hidden;\n padding-right: 48px;\n -webkit-box-orient: vertical;\n color: white;\n font-size: 16px;\n font-weight: 600;\n -webkit-line-clamp: 2;\n line-height: 24px;\n text-overflow: ellipsis;\n a {\n color: white;\n }\n &[data-is-mobile='true'] {\n font-size: 14px;\n }\n }\n`\n\nexport const StyledIcon = styled.div`\n max-width: 100px;\n margin-right: 16px;\n height: 100%;\n img {\n width: 64px;\n height: 64px;\n object-fit: contain;\n }\n &[data-is-marrybaby='true'] {\n height: unset;\n max-height: 100%;\n }\n &[data-is-mobile='true'] {\n img {\n width: 52px;\n height: 52px;\n }\n }\n`\n\nexport const StyledCloseIconWrapper = styled.div`\n position: absolute;\n right: 20px;\n width: 24px;\n height: 24px;\n cursor: pointer;\n &[data-is-marrybaby='true'] {\n background-color: ${(props: ThemeProps) => props.theme.colors.white};\n border-radius: 50%;\n top: 12px;\n right: 32px;\n padding: 10px;\n height: 40px;\n width: 40px;\n .close-icon {\n width: 20px;\n height: 20px;\n }\n &[data-is-mobile='true'] {\n position: absolute;\n top: 8px;\n right: 8px;\n padding: 8px;\n height: 32px;\n width: 32px;\n .close-icon {\n width: 100%;\n height: 100%;\n }\n }\n }\n`\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nexport const StyledSponsoredBy = styled.div`\n display: flex;\n align-items: center;\n padding: 0.5rem 0;\n\n &[data-type-mobile='true'] {\n justify-content: space-between;\n }\n\n amp-img img {\n object-fit: contain;\n object-position: right;\n }\n`\n\nexport const StyledStickySponsoredBy = styled.div`\n display: flex;\n height: 40px;\n align-items: center;\n justify-content: center;\n padding: 8px 0;\n border-top: 1px solid #e4e8ec;\n background-color: ${(props: ThemeProps) => props.theme.colors.neutral50};\n cursor: pointer;\n text-decoration: none;\n\n &[data-align-left='true'] {\n justify-content: start;\n }\n .sticky-sponsored-info-icon {\n display: inline;\n }\n\n .sponsored-logo {\n width: auto;\n height: 24px;\n vertical-align: middle;\n }\n\n ${MediaQueries.mbUp} {\n height: 44px;\n }\n\n &[data-show-popup='true'] {\n .sticky-sponsored-info-icon {\n position: relative;\n &:before {\n position: absolute;\n z-index: 9;\n top: 100%;\n left: 9px;\n border-right: 6px transparent solid;\n border-bottom: 8px white solid;\n border-left: 6px transparent solid;\n content: ' ';\n transform: translateX(calc(-50% + 3px));\n }\n }\n }\n\n &.open .amp-sponsored-popup {\n display: block;\n }\n\n &[data-is-amp] {\n margin-top: -10px;\n > [class*='Container'] {\n display: flex;\n align-items: center;\n }\n }\n`\nexport const StyledStickySponsoredPopup = styled.div`\n position: absolute;\n top: 30px;\n left: 50%;\n &[data-align-left='true'] {\n left: 190px;\n }\n width: 350px;\n padding: 1rem;\n border: 1px solid #f2f2f2;\n background: white;\n border-radius: 6px;\n transform: translateX(-50%);\n ${MediaQueries.mbDown} {\n width: calc(100% - 2rem);\n }\n\n &[data-is-amp] {\n display: none;\n position: fixed;\n z-index: 999;\n top: 100px;\n left: 50%;\n\n &.open {\n display: block;\n }\n }\n\n .button-container {\n display: flex;\n justify-content: space-between;\n button {\n flex: 1;\n }\n button:first-child {\n margin-right: 0.5rem;\n ${MediaQueries.mbUp} {\n margin-right: 1rem;\n }\n }\n }\n`\n","/* eslint-disable react/jsx-no-target-blank */\nimport React, { useState } from 'react'\n\nimport { Container, Text, Button } from 'components/atoms'\n\nimport { InfoLightIcon } from '../assets'\nimport { STATIC_PAGES } from '../constants'\nimport { ContentSponsor } from '../types'\nimport { useTranslation } from '../utils'\nimport {\n StyledSponsoredBy,\n StyledStickySponsoredBy,\n StyledStickySponsoredPopup,\n} from './index.styled'\n\nexport type Props = {\n image: string\n isMobile: boolean\n href?: string\n className?: string\n isAmp?: boolean\n}\n\nconst SponsoredBy = ({ image, href, className, isMobile, isAmp }: Props) => {\n const f = useTranslation()\n\n return (\n <StyledSponsoredBy className={className} data-type-mobile={isMobile}>\n <Text size=\"c2\" type=\"bold\" color=\"#737373\">\n {f('articlePage.sponsoredBy').toUpperCase() + ':'}\n </Text>\n <a\n style={{\n flex: isAmp ? 'unset' : 1,\n }}\n href={href}\n target=\"_blank\"\n >\n {!isAmp ? (\n <img\n src={image}\n style={{\n height: '22px',\n objectPosition: isMobile ? 'right' : 'left',\n objectFit: 'contain',\n paddingLeft: '1rem',\n }}\n />\n ) : (\n <amp-img\n height=\"35\"\n width=\"200\"\n src={image}\n alt=\"sponsored article\"\n style={{\n height: '22px',\n objectPosition: isMobile ? 'right' : 'left',\n objectFit: 'contain',\n paddingLeft: '1rem',\n }}\n />\n )}\n </a>\n </StyledSponsoredBy>\n )\n}\n\nexport type StickyProps = {\n className?: string\n isMobile?: boolean\n isCollapsed?: boolean\n sponsoredType?: 'article' | 'content'\n sponsoredBy?: ContentSponsor\n isAmp?: boolean\n locale?: string\n}\nconst StickySponsoredBy = ({\n className,\n isMobile,\n isCollapsed,\n sponsoredType,\n sponsoredBy,\n isAmp,\n locale,\n}: StickyProps) => {\n const f = useTranslation()\n const [showPopup, setShowPopup] = useState(false)\n\n return (\n <StyledStickySponsoredBy\n className={className}\n onClick={() => setShowPopup(true)}\n data-show-popup={showPopup && (!isMobile || !isCollapsed) && !isAmp}\n data-align-left={sponsoredBy && !!sponsoredBy?.logo}\n data-is-amp={isAmp || undefined}\n >\n <Container style={{ position: 'relative', padding: '0 16px' }}>\n {sponsoredType === 'content' ? (\n <Text size={isMobile ? 'p4' : 'p3'} color=\"#737373\">\n <div className=\"sticky-sponsored-info-icon\">\n {!isAmp ? (\n <img\n src={InfoLightIcon}\n style={{\n width: 20,\n height: 20,\n verticalAlign: 'middle',\n marginRight: '0.3rem',\n marginBottom: '0.1rem',\n }}\n />\n ) : (\n <amp-img\n height=\"20\"\n width=\"20\"\n style={{\n verticalAlign: 'middle',\n marginLeft: '0.3rem',\n marginBottom: '0.1rem',\n }}\n src={InfoLightIcon}\n />\n )}\n </div>\n {sponsoredBy && !!sponsoredBy?.logo ? (\n <>\n {' '}\n {f('articlePage.sponsoredContentBy')}{' '}\n <img\n className=\"sponsored-logo\"\n src={sponsoredBy?.logo || ''}\n alt={'sponsored-logo'}\n />\n </>\n ) : (\n f('articlePage.sponsoredContent')\n )}\n </Text>\n ) : (\n <Text size=\"p2\" color=\"#737373\">\n {f('articlePage.sponsoredArticle')}\n <div className=\"sticky-sponsored-info-icon\">\n {!isAmp ? (\n <img\n src={InfoLightIcon}\n style={{\n width: 20,\n height: 20,\n verticalAlign: 'middle',\n marginLeft: '0.3rem',\n marginBottom: '0.1rem',\n }}\n />\n ) : (\n <amp-img\n height=\"20\"\n width=\"20\"\n style={{\n verticalAlign: 'middle',\n marginLeft: '0.3rem',\n marginBottom: '0.1rem',\n }}\n src={InfoLightIcon}\n on=\"tap:sponsored-by.toggleClass(class='open')\"\n tabIndex={0}\n role=\"button\"\n />\n )}\n </div>\n </Text>\n )}\n {showPopup && (!isMobile || !isCollapsed) && !isAmp ? (\n <SponsoredPopup\n sponsoredBy={sponsoredBy}\n isAmp={isAmp}\n onClose={() => setShowPopup(false)}\n locale={locale}\n />\n ) : null}\n </Container>\n </StyledStickySponsoredBy>\n )\n}\n\ntype PopupProps = {\n isAmp: boolean\n onClose?: () => void\n sponsoredBy?: ContentSponsor\n locale?: string\n}\n\nconst SponsoredPopup = ({\n sponsoredBy,\n isAmp,\n onClose,\n locale,\n}: PopupProps) => {\n const sL = locale || 'en-PH' // standardized locale\n const f = useTranslation()\n\n return (\n <StyledStickySponsoredPopup\n data-align-left={sponsoredBy && !!sponsoredBy?.logo}\n data-is-amp={isAmp || undefined}\n id=\"sponsored-by\"\n className={isAmp ? 'amp-sponsored-popup' : undefined}\n >\n <Text\n size=\"p3\"\n style={{\n marginBottom: '1rem',\n }}\n >\n {f('articlePage.sponsoredByStickyPopup.content')}\n </Text>\n <div\n className=\"button-container\"\n onClick={\n ((e: any) => {\n e.stopPropagation()\n }) as () => void\n }\n >\n {/* <div\n {...{ on: \"tap:sponsored-by.toggleClass(class='open')\" }}\n tabIndex={0}\n role=\"button\"\n > */}\n <Button\n size=\"md\"\n color=\"secondary\"\n onClick={onClose}\n isAmp={isAmp}\n on=\"tap:sponsored-by.toggleClass(class='open')\"\n >\n {f('articlePage.sponsoredByStickyPopup.close')}\n </Button>\n {/* </div> */}\n <Button\n size=\"md\"\n onClick={() => {\n window.location.href = `/static${STATIC_PAGES[sL].ADVERTISING_SPONSOR_POLICY}`\n }}\n isAmp={isAmp}\n on={`tap:AMP.navigateTo(url='/static${STATIC_PAGES[sL].ADVERTISING_SPONSOR_POLICY}')`}\n >\n {f('articlePage.sponsoredByStickyPopup.policies')}\n </Button>\n </div>\n </StyledStickySponsoredPopup>\n )\n}\n\nexport { SponsoredBy, StickySponsoredBy, SponsoredPopup }\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nexport const StyledFooter = styled.footer`\n background-color: #1b3250;\n\n .inner {\n padding: 64px 24px 98px 24px;\n ${MediaQueries.mbDown} {\n padding: 64px 0;\n }\n margin: 0 auto;\n //max-width: 1168px;\n\n &[data-type='mini'] {\n padding: 24px 0;\n }\n }\n\n .footer-logo {\n max-width: 132px;\n max-height: 32px;\n margin-bottom: 24px;\n &[data-is-sehat='true'] {\n max-width: 250px;\n }\n\n img {\n object-fit: contain;\n }\n }\n\n .social {\n margin-top: 24px;\n\n ${MediaQueries.mbDown} {\n margin-top: 32px;\n p {\n font-size: 13px;\n }\n }\n\n ${MediaQueries.mbUp} {\n p {\n font-size: 12px;\n }\n }\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n }\n }\n\n .icons {\n margin-top: 12px;\n margin-bottom: 20px;\n > a:not(:last-child) {\n margin-right: 16px;\n }\n\n .social-icon {\n width: 32px;\n height: 32px;\n }\n }\n\n .newsletter {\n > p {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n\n font-size: 14px;\n line-height: 22px;\n\n ${MediaQueries.mbUp} {\n max-width: 380px;\n line-height: 28.5px;\n }\n }\n }\n\n hr {\n height: 1px;\n border: none;\n margin: 16px 0 16px 0;\n ${MediaQueries.mbDown} {\n margin-top: 0px;\n }\n background: ${(props: ThemeProps) => props.theme.colors.neutral500};\n opacity: 0.1;\n outline: none;\n }\n\n .hrMobile {\n ${MediaQueries.mbUp} {\n display: none;\n }\n }\n\n .copyright {\n padding-top: 8px;\n\n ${MediaQueries.mbUp} {\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n justify-content: space-between;\n }\n\n .copyright-content {\n width: 90%;\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n font-size: 12px;\n }\n\n .copyright-image {\n width: 10%;\n align-self: flex-start;\n\n img {\n max-width: 100px;\n margin-bottom: 16px;\n\n ${MediaQueries.mbUp} {\n margin-bottom: 0px;\n }\n }\n }\n\n &[data-is-amp='true'] {\n img {\n margin-bottom: 0;\n }\n }\n }\n\n .copyright-certificate {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n ${MediaQueries.mbDown} {\n font-size: 11px;\n }\n ${MediaQueries.mbUp} {\n font-size: 12px;\n }\n }\n\n .biglinks {\n margin-bottom: 12px;\n }\n\n .bigLink {\n display: block;\n color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: 14px;\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n text-decoration: none;\n word-break: break-word;\n\n &:not(:last-child) {\n margin-bottom: 12px;\n }\n\n ${MediaQueries.mbDown} {\n display: inline-block;\n width: 50%;\n font-size: 16px;\n }\n }\n\n .mHalf {\n display: inline-block;\n width: 50%;\n padding-right: 24px;\n margin-bottom: 24px;\n vertical-align: top;\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n\n ${MediaQueries.mbDown} {\n margin-bottom: 8px;\n font-size: 13px;\n line-height: 20px;\n }\n ${MediaQueries.mbUp} {\n margin-bottom: 12px;\n font-size: 14px;\n }\n }\n }\n\n .otherSites {\n p {\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n font-size: 12px;\n ${MediaQueries.mbDown} {\n font-size: 13px;\n }\n ${MediaQueries.mbUp} {\n font-size: 13px;\n }\n }\n\n .flags {\n display: flex;\n margin-bottom: 8px;\n\n div {\n margin-right: 10px;\n }\n }\n }\n\n .link {\n display: block;\n text-decoration: none;\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.white};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n word-break: break-word;\n }\n\n &:not(:last-child) {\n margin-bottom: 12px;\n }\n }\n\n .columns {\n ${MediaQueries.mbUp} {\n display: flex;\n flex-direction: row;\n width: 100%;\n\n > div:nth-child(1) {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n flex-basis: 40%;\n }\n\n > div:nth-child(2) {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n flex-basis: 60%;\n\n > div:nth-child(1) {\n flex-basis: 45%;\n }\n\n > div:not(:last-child) {\n flex-basis: 27.5%;\n }\n\n > div:last-child() {\n flex-basis: 0;\n }\n }\n }\n }\n\n .signupButton {\n display: none;\n border: none;\n margin-top: 16px;\n outline: none;\n text-transform: uppercase;\n }\n`\nexport const StyledFlag = styled.div`\n width: 32px;\n height: 32px;\n margin-right: 10px;\n\n &[data-is-mobile='true'] {\n width: 24px;\n height: 24px;\n }\n\n .country-flag {\n width: 100%;\n height: 100%;\n }\n`\n","import React from 'react'\n\nimport { Button } from 'components/atoms/button'\nimport { Container } from 'components/atoms/container'\nimport { Text } from 'components/atoms/text'\nimport { domainLocales } from 'interfaces/constants'\nimport { LocaleType, FooterInfo } from 'interfaces/types'\nimport { theme } from 'misc/theme'\nimport { useTranslations } from 'src/hooks/useTranslations'\n\nimport { StyledFooter, StyledFlag } from './index.styled'\n\nexport type Props = {\n className?: string\n isMobile: boolean\n type?: 'main' | 'mini'\n footerInfo?: FooterInfo\n locale: LocaleType\n isAmp: boolean\n}\n\ntype IItem = {\n title: string\n url: string\n}\n\ntype ISocial = {\n icon: string\n name: string\n url: string\n}\n\ntype IBranch = {\n flag: string\n name: string\n url: string\n}\n\ntype FlagProps = {\n url: string\n isMobile?: boolean\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n}\n\nconst Flag = ({\n url,\n isMobile,\n dataEventCategory,\n dataEventAction,\n dataEventLabel,\n}: FlagProps) => {\n return (\n <StyledFlag data-is-mobile={isMobile}>\n <img\n className=\"country-flag\"\n src={url}\n alt=\"Country Flag\"\n data-event-category={dataEventCategory}\n data-event-action={dataEventAction}\n data-content-label={dataEventLabel}\n />\n </StyledFlag>\n )\n}\n\nconst DiscoverFooter = ({\n className,\n type = 'main',\n footerInfo,\n isMobile,\n locale,\n isAmp,\n}: Props) => {\n const { t } = useTranslations()\n\n const footerMenu = footerInfo?.menu\n\n return (\n <StyledFooter\n as={isAmp && type === 'mini' ? 'div' : 'footer'}\n className={className}\n style={\n type === 'mini'\n ? {\n backgroundColor: theme.colors.neutral50,\n }\n : {}\n }\n next-page-hide\n >\n <Container>\n <div className=\"inner\" data-type={type} next-page-hide=\"\">\n {type === 'main' ? (\n <>\n <a href=\"/\">\n {!isAmp ? (\n <img\n className=\"footer-logo\"\n src={footerInfo?.general?.logo}\n alt=\"Logo\"\n data-is-sehat={locale === 'id-ID'}\n />\n ) : footerInfo?.general?.logo ? (\n <amp-img\n src={footerInfo?.general?.logo}\n alt=\"Site logo\"\n width=\"132\"\n height=\"32\"\n style={{\n marginBottom: 24,\n }}\n />\n ) : null}\n </a>\n <div className=\"columns\">\n <div className=\"newsletter\">\n <Text size=\"p1\" type=\"bold\">\n {footerInfo?.general?.content}\n </Text>\n <Button className=\"signupButton\" color=\"primary\" size=\"lg\">\n {t('footer.signUp')}\n </Button>\n <div className=\"social\">\n <Text size=\"sm\" type=\"regular\">\n {footerInfo?.social?.title}\n </Text>\n <div className=\"icons\">\n {footerInfo?.social?.socials?.map(\n (social: ISocial, idx: number) => (\n <a\n key={idx}\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n href={social.url}\n >\n {!isAmp ? (\n <img\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n src={social.icon}\n alt=\"Logo Social\"\n className=\"social-icon\"\n />\n ) : (\n <amp-img\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n src={social.icon}\n alt=\"Logo Social\"\n width=\"32\"\n height=\"32\"\n ></amp-img>\n )}\n </a>\n ),\n )}\n </div>\n <hr className=\"hrMobile\" />\n </div>\n </div>\n <div>\n {footerMenu && (\n <>\n <div className=\"biglinks\">\n {footerMenu[0]?.items?.map(\n (bigLink: IItem, idx: number) => (\n <a\n data-event-category=\"Footer\"\n data-event-action={bigLink.title}\n data-event-label={`https://${domainLocales[locale]}${bigLink.url}`}\n className=\"bigLink\"\n key={idx}\n href={bigLink.url}\n >\n {bigLink.title}\n </a>\n ),\n )}\n </div>\n <hr className=\"hrMobile\" />\n <div className=\"mHalf\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerMenu[1]?.menu_title}\n </Text>\n\n {footerMenu[1]?.items?.map(\n (informationLink: IItem, idx: number) => (\n <a\n data-event-category=\"Footer\"\n data-event-action={informationLink.title}\n data-event-label={`https://${domainLocales[locale]}${informationLink.url}`}\n className=\"link\"\n href={informationLink.url}\n key={idx}\n >\n <Text\n size=\"sm\"\n type=\"regular\"\n dataEventCategory=\"Footer\"\n dataEventAction={informationLink.title}\n dataEventLabel={`https://${domainLocales[locale]}${informationLink.url}`}\n >\n {informationLink.title}\n </Text>\n </a>\n ),\n )}\n </div>\n <div className=\"mHalf\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerMenu[2]?.menu_title}\n </Text>\n\n {footerMenu[2]?.items?.map(\n (hellohealthlink: IItem, idx: number) =>\n hellohealthlink.url && (\n <a\n data-event-category=\"Footer\"\n data-event-action={hellohealthlink.title}\n data-event-label={hellohealthlink.url}\n className=\"link\"\n href={hellohealthlink.url}\n key={idx}\n >\n <Text\n size=\"sm\"\n type=\"regular\"\n dataEventCategory=\"Footer\"\n dataEventAction={hellohealthlink.title}\n dataEventLabel={hellohealthlink.url}\n >\n {hellohealthlink.title}\n </Text>\n </a>\n ),\n )}\n </div>\n </>\n )}\n {!isAmp && (\n <>\n <hr className=\"hrMobile\" />\n <div className=\"otherSites\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerInfo?.branch?.title}\n </Text>\n <div className=\"flags\">\n {footerInfo?.branch?.branch?.map(\n (flagLink: IBranch, idx: number) => (\n <a\n className=\"link\"\n href={flagLink.url}\n key={idx}\n data-event-category=\"Footer\"\n data-event-action={flagLink.name}\n data-event-label={flagLink.url}\n >\n <Flag\n url={flagLink.flag}\n isMobile={isMobile}\n dataEventCategory=\"Footer\"\n dataEventAction={flagLink.name}\n dataEventLabel={flagLink.url}\n />\n </a>\n ),\n )}\n </div>\n </div>\n </>\n )}\n </div>\n </div>\n\n <hr />\n <div className=\"copyright\" data-is-amp={isAmp || undefined}>\n {footerInfo?.general?.verified && (\n <a\n href={footerInfo?.general?.verified[0]?.url}\n className=\"copyright-image\"\n >\n {isAmp ? (\n <amp-img\n src={footerInfo?.general?.verified[0]?.image}\n alt=\"DMCA Icon\"\n width=\"100\"\n height=\"36\"\n ></amp-img>\n ) : (\n <img\n src={footerInfo?.general?.verified[0]?.image}\n alt=\"DMCA Icon\"\n />\n )}\n </a>\n )}\n\n <Text size=\"xs\" type=\"regular\" className=\"copyright-content\">\n {footerInfo?.general?.copyright}\n </Text>\n </div>\n {locale === 'vi-VN' && (\n <Text\n className=\"copyright-certificate\"\n size=\"xs\"\n type=\"regular\"\n color=\"white\"\n >\n Giấy xác nhận cung cấp dịch vụ mạng xã hội trực tuyến số\n 529/GP-BTTTT, HN ngày 03/12/2019\n </Text>\n )}\n </>\n ) : (\n <>\n {footerInfo?.menu && (\n <div className=\"columns\">\n <div className=\"mHalf\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerInfo?.menu[1]?.menu_title}\n </Text>\n\n {footerInfo?.menu[1]?.items?.map(\n (informationLink: IItem) => (\n <a\n className=\"link\"\n href={informationLink.url}\n key={informationLink.title}\n data-list-type=\"Footer\"\n data-content-type=\"Navigate\"\n data-content-topic=\"Information\"\n data-content-title={informationLink.title}\n data-content-id={`https://${domainLocales[locale]}${informationLink.url}`}\n data-event-category=\"Footer\"\n data-event-action={informationLink.title}\n data-event-label={`https://${domainLocales[locale]}${informationLink.url}`}\n >\n <Text\n dataEventCategory=\"Footer\"\n dataEventAction={informationLink.title}\n dataEventLabel={`https://${domainLocales[locale]}${informationLink.url}`}\n size=\"sm\"\n type=\"regular\"\n style={{\n color: theme.colors.gray800,\n }}\n >\n {informationLink.title}\n </Text>\n </a>\n ),\n )}\n </div>\n <div className=\"mHalf\">\n <Text type=\"regular\" size=\"sm\" className=\"linkTitle\">\n {footerInfo?.menu[2]?.menu_title}\n </Text>\n\n {footerInfo?.menu[2]?.items?.map(\n (hellohealthlink: IItem, idx: number) => (\n <a\n className=\"link\"\n href={hellohealthlink.url}\n key={idx}\n data-list-type=\"Footer\"\n data-content-type=\"Navigate\"\n data-content-topic=\"Hello Health\"\n data-content-title={hellohealthlink.title}\n data-content-id={hellohealthlink.url}\n data-event-category=\"Footer\"\n data-event-action={hellohealthlink.title}\n data-event-label={hellohealthlink.url}\n >\n <Text\n size=\"sm\"\n type=\"regular\"\n style={{\n color: theme.colors.gray800,\n }}\n dataEventCategory=\"Footer\"\n dataEventAction={hellohealthlink.title}\n dataEventLabel={hellohealthlink.url}\n >\n {hellohealthlink.title}\n </Text>\n </a>\n ),\n )}\n </div>\n\n {!isAmp && type !== 'mini' && <hr className=\"hrMobile\" />}\n <div className=\"newsletter\">\n <div className=\"social\">\n <Text size=\"sm\" type=\"regular\">\n {footerInfo?.social?.title}\n </Text>\n <div className=\"icons\">\n {footerInfo?.social?.socials?.map(\n (social: ISocial, idx: number) => (\n <a\n key={idx}\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n href={social.url}\n >\n {!isAmp ? (\n <img\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n src={social.icon}\n alt=\"Logo Social\"\n className=\"social-icon\"\n />\n ) : (\n <amp-img\n data-event-category=\"Footer\"\n data-event-action={`Follow us - ${social.name}`}\n data-content-label={social.url}\n src={social.icon}\n alt=\"Logo Social\"\n width=\"32\"\n height=\"32\"\n ></amp-img>\n )}\n </a>\n ),\n )}\n </div>\n </div>\n </div>\n </div>\n )}\n </>\n )}\n </div>\n </Container>\n </StyledFooter>\n )\n}\n\nexport { DiscoverFooter }\n","import React from 'react'\n\nimport { ThemeProps } from 'misc/theme'\nimport styled from 'styled-components'\n\nconst Heading = ({\n type,\n ...elementProps\n}: {\n type: string\n [elementProps: string]: string | JSX.Element | JSX.Element[] | React.ReactNode\n}) => {\n return React.createElement(type, elementProps)\n}\n\nexport const StyledHeading = styled(Heading)`\n color: var(--text-color, ${(props: ThemeProps) => props.theme.mbColors.dark});\n font-family: Krub;\n font-weight: 600;\n letter-spacing: -0.2px;\n\n &[data-type='headline-1'] {\n font-size: 40px;\n line-height: 60px;\n }\n &[data-type='headline-2'] {\n font-size: 32px;\n line-height: 48px;\n }\n &[data-type='headline-3'] {\n font-size: 24px;\n line-height: 40px;\n }\n &[data-type='headline-4'] {\n font-size: 18px;\n line-height: 32px;\n }\n`\n\nexport const StyledText = styled.p`\n color: var(--text-color, ${(props: ThemeProps) => props.theme.mbColors.dark});\n letter-spacing: -0.2px;\n\n &[data-type='subtitle-1'] {\n font-size: 16px;\n font-weight: 600;\n line-height: 26px;\n }\n &[data-type='subtitle-2'] {\n font-size: 14px;\n font-weight: 500;\n line-height: 24px;\n }\n &[data-type='subtitle-3'] {\n font-size: 12px;\n font-weight: 500;\n line-height: 20px;\n }\n &[data-type='bodytext-1'] {\n font-size: 16px;\n font-weight: 400;\n line-height: 28px;\n }\n &[data-type='bodytext-2'] {\n font-size: 14px;\n font-weight: 400;\n line-height: 24px;\n }\n &[data-type='bodytext-3'] {\n font-size: 12px;\n font-weight: 400;\n line-height: 20px;\n }\n &[data-type='caption-1'] {\n font-size: 10px;\n font-weight: 500;\n letter-spacing: -0.1px;\n line-height: 14px;\n }\n &[data-type='caption-2'] {\n font-size: 10px;\n font-weight: 400;\n letter-spacing: -0.1px;\n line-height: 14px;\n }\n`\n","import React from 'react'\n\nimport { CSSProperties } from 'styled-components'\n\nimport { StyledHeading, StyledText } from './index.styled'\n\ntype HeadingProps = {\n type: 'h1' | 'h2' | 'h3' | 'h4'\n color?: string\n style?: CSSProperties\n [x: string]: string | JSX.Element | JSX.Element[] | React.ReactNode\n}\n\nconst MarryBabyHeading = ({ type, color, style, ...props }: HeadingProps) => {\n const DATATYPE = {\n h1: 'headline-1',\n h2: 'headline-2',\n h3: 'headline-3',\n h4: 'headline-4',\n }\n\n return (\n <StyledHeading\n type={type}\n data-type={DATATYPE[type]}\n style={{ ...(color && { '--text-color': color }), ...style }}\n {...props}\n />\n )\n}\n\ntype TextProps = {\n type:\n | 'subtitle-1'\n | 'subtitle-2'\n | 'subtitle-3'\n | 'bodytext-1'\n | 'bodytext-2'\n | 'bodytext-3'\n | 'caption-1'\n | 'caption-2'\n color?: string\n style?: CSSProperties\n [x: string]: string | JSX.Element | JSX.Element[] | React.ReactNode\n}\n\nconst MarryBabyText = ({ type, color, style, ...props }: TextProps) => {\n return (\n <StyledText\n data-type={type}\n style={{ ...style, ...(color && { '--text-color': color }) }}\n {...props}\n />\n )\n}\n\nexport { MarryBabyHeading, MarryBabyText }\n","import { ThemeProps } from 'misc/theme'\nimport { MediaQueries } from 'misc/utils'\nimport styled from 'styled-components'\n\nexport const StyledFooter = styled.footer`\n position: relative;\n background: ${(props: ThemeProps) => props.theme.mbColors.lightGray};\n\n .inner {\n padding: 64px 24px 98px 24px;\n ${MediaQueries.mbDown} {\n padding: 64px 0;\n }\n margin: 0 auto;\n //max-width: 1168px;\n\n &[data-type='mini'] {\n padding: 0;\n }\n }\n\n .footer-logo {\n max-width: 132px;\n margin-bottom: 24px;\n }\n\n .social {\n margin-top: 24px;\n\n ${MediaQueries.mbDown} {\n margin-top: 32px;\n }\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.white};\n }\n }\n\n .icons {\n margin-top: 12px;\n margin-bottom: 20px;\n > a:not(:last-child) {\n margin-right: 16px;\n }\n }\n\n .newsletter {\n > p {\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n\n font-size: 14px;\n line-height: 22px;\n\n ${MediaQueries.mbUp} {\n max-width: 380px;\n font-size: 19px;\n line-height: 28.5px;\n }\n }\n }\n\n hr {\n height: 1px;\n border: none;\n margin: 16px 0 16px 0;\n ${MediaQueries.mbDown} {\n margin-top: 0px;\n }\n background: ${(props: ThemeProps) => props.theme.colors.neutral500};\n opacity: 0.1;\n outline: none;\n }\n\n .hrMobile {\n ${MediaQueries.mbUp} {\n display: none;\n }\n }\n\n .copyright {\n padding-top: 8px;\n\n ${MediaQueries.mbUp} {\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n justify-content: space-between;\n }\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.white};\n }\n\n img {\n max-width: 100px;\n margin-bottom: 16px;\n\n ${MediaQueries.mbUp} {\n margin-bottom: 0px;\n }\n }\n\n &[data-is-amp='true'] {\n img {\n margin-bottom: 0;\n }\n }\n }\n\n .biglinks {\n margin-bottom: 12px;\n }\n\n .bigLink {\n display: block;\n color: ${(props: ThemeProps) => props.theme.colors.white};\n font-size: 19px;\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n text-decoration: none;\n\n &:not(:last-child) {\n margin-bottom: 12px;\n }\n\n ${MediaQueries.mbDown} {\n display: inline-block;\n width: 50%;\n font-size: 16px;\n }\n }\n\n .mHalf {\n display: inline-block;\n width: 50%;\n padding-right: 24px;\n margin-bottom: 24px;\n vertical-align: top;\n\n p {\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n }\n\n ${MediaQueries.mbDown} {\n margin-bottom: 8px;\n }\n }\n\n .otherSites {\n p {\n margin-bottom: 12px;\n color: ${(props: ThemeProps) => props.theme.colors.neutral500};\n }\n\n .flags {\n display: flex;\n margin-bottom: 8px;\n\n div {\n margin-right: 10px;\n }\n }\n }\n\n .link {\n display: block;\n text-decoration: none;\n\n p {\n color: ${(props: ThemeProps) => props.theme.colors.white};\n font-weight: ${(props: ThemeProps) => props.theme.sizes.fwBold};\n }\n\n &:not(:last-child) {\n margin-bottom: 12px;\n }\n }\n\n .columns {\n ${MediaQueries.mbUp} {\n display: flex;\n flex-direction: row;\n width: 100%;\n\n > div:nth-child(1) {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n flex-basis: 40%;\n }\n\n > div:nth-child(2) {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n flex-basis: 60%;\n\n > div:nth-child(1) {\n flex-basis: 45%;\n }\n\n > div {\n flex-basis: 27.5%;\n }\n\n > div:last-child() {\n flex-basis: 0;\n }\n }\n }\n }\n\n .signupButton {\n display: none;\n border: none;\n margin-top: 16px;\n outline: none;\n text-transform: uppercase;\n }\n`\n\nexport const StyledFooterContainer = styled.div``\n\nexport const StyledMiniFooterContainer = styled.div`\n position: relative;\n overflow: hidden;\n padding: 40px 40px 100px 40px;\n\n .icons-links {\n position: relative;\n display: flex;\n justify-content: space-between;\n }\n`\n\nexport const StyledFooterMenu = styled.div`\n position: relative;\n margin: 80px 0 0;\n\n ${MediaQueries.mbDown} {\n margin-top: 0px;\n overflow: hidden;\n &:before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 150%;\n height: 100%;\n background-color: #f3f3f3;\n content: '';\n transform: translateX(-50%);\n border-radius: 100% 100% 0 0 / 30% 30%;\n }\n }\n`\n\nexport const StyledMenuContainer = styled.div`\n position: relative;\n padding: 0 16px;\n\n ${MediaQueries.mbDown} {\n padding: 48px 8px 0;\n }\n\n & .grid {\n display: flex;\n flex-wrap: wrap;\n margin: -8px;\n\n & > * {\n display: inline-block;\n flex: 0 0 25%;\n padding: 8px;\n color: ${(props: ThemeProps) => props.theme.colors.gray800};\n text-decoration: none;\n }\n\n ${MediaQueries.mbDown} {\n & > * {\n flex: 0 0 100%;\n text-align: center;\n }\n }\n }\n\n & .social-wrapper {\n margin-left: auto;\n }\n\n & .social {\n ${MediaQueries.mbUp} {\n & .icons-links {\n margin-top: 16px;\n\n & > a:not(:first-child) {\n margin-left: 10%;\n }\n\n & > a {\n text-decoration: none;\n }\n }\n }\n\n ${MediaQueries.mbDown} {\n width: 100%;\n display: flex;\n background: #fff;\n box-shadow: 0px 0px 24px rgba(0, 0, 0, 0.05);\n border-radius: 8px;\n padding: 20px 16px;\n align-items: center;\n max-width: 400px;\n margin: 32px auto 0px;\n\n & > p {\n font-size: 12px;\n line-height: 20px;\n }\n\n & .icons-links {\n margin-left: 8%;\n flex: 1;\n display: inline-flex;\n justify-content: space-between;\n }\n }\n\n & .icons-links {\n & > a {\n & > img {\n width: 24px;\n object-fit: contain;\n }\n }\n }\n }\n`\n\nexport const StyledCompanyInfo = styled.div`\n position: relative;\n\n ${MediaQueries.mbUp} {\n margin: 80px 0 0;\n overflow: hidden;\n &:before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 150%;\n height: 100%;\n background-color: #f3f3f3;\n border-radius: 2150px 2150px 0 0 / 200px 200px 0 0;\n content: '';\n transform: translateX(-50%);\n }\n }\n\n ${MediaQueries.mbDown} {\n background-color: #f3f3f3;\n }\n`\n\nexport const StyledInfoContainer = styled.div`\n position: relative;\n padding: 64px 16px 154px;\n text-align: center;\n\n ${MediaQueries.mbDown} {\n padding: 48px 8px 32px;\n }\n\n & .company-name {\n margin-top: 24px;\n }\n\n .logo {\n justify-content: center;\n }\n\n & .text-info {\n margin-top: 8px;\n > p {\n margin-bottom: 8px;\n }\n ${MediaQueries.mbDown} {\n text-align: left;\n margin-top: 16px;\n }\n }\n\n & .img-container {\n display: flex;\n max-width: 176px;\n height: 24px;\n justify-content: space-between;\n margin: 24px auto 0;\n\n ${MediaQueries.mbDown} {\n height: 32px;\n max-width: unset;\n justify-content: space-around;\n }\n\n img {\n width: unset;\n height: 100%;\n object-fit: contain;\n }\n }\n\n & > hr {\n border-color: ${(props: ThemeProps) => props.theme.mbColors.midGray};\n margin: 64px 0 18px;\n opacity: 0.1;\n }\n\n & .language-and-copyright {\n display: flex;\n justify-content: center;\n\n ${MediaQueries.mbDown} {\n margin-top: 60px;\n }\n\n & #footer-language-select {\n width: 100%;\n max-width: 114px;\n\n &[data-dropdown-open='true'] > div:after {\n transform: translateY(-60%) rotateZ(-180deg);\n }\n\n ${MediaQueries.mbDown} {\n order: 1;\n }\n\n & > div {\n padding: 0;\n\n & > div > svg {\n max-width: 22px;\n margin-right: 8px;\n transform: translateY(1px);\n }\n\n & > span {\n font-size: 12px;\n letter-spacing: -0.2px;\n line-height: 24px;\n }\n }\n\n & > ul[data-has-icons='true'] {\n width: 158px;\n max-width: 158px;\n border: none;\n border-radius: 4px;\n box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.08);\n\n ${MediaQueries.mbDown} {\n margin-top: 0;\n left: unset;\n right: 0;\n top: unset;\n bottom: 32px;\n }\n\n & li {\n font-size: 12px;\n letter-spacing: -0.2px;\n line-height: 24px;\n\n & > div {\n max-width: 22px;\n & svg {\n width: 22px;\n max-width: 22px;\n transform: translateY(3px);\n }\n }\n }\n }\n }\n\n & > p {\n color: ${(props: ThemeProps) => props.theme.mbColors.midGray};\n }\n }\n`\n\nexport const StyledRoundDecorator = styled.div`\n position: absolute;\n top: 0;\n right: -50%;\n width: 400px;\n height: 400px;\n background-color: #f2fcf7;\n border-radius: 50%;\n`\n","import React from 'react'\n\nimport { FacebookIcon, YoutubeIcon, InstagramIcon, ZaloIcon } from 'assets/svg'\nimport { Container } from 'components/atoms/container'\nimport { Divider } from 'components/atoms/divider'\nimport { Flag } from 'components/atoms/flag'\nimport { Logo } from 'components/atoms/logo'\nimport { TypeProps as LogoType } from 'components/atoms/logo'\nimport { MarryBabyText } from 'components/atoms/marryBabyText'\nimport { useTranslations } from 'hooks/useTranslations'\nimport { LocaleType, MarryBabyFooterInfo } from 'interfaces/types'\nimport { theme } from 'misc/theme'\nimport { CSSProperties } from 'styled-components'\n\nimport {\n StyledFooterContainer,\n StyledFooterMenu,\n StyledCompanyInfo,\n StyledMenuContainer,\n StyledInfoContainer,\n StyledMiniFooterContainer,\n StyledRoundDecorator,\n} from './index.styled'\n\n// type link = {\n// title: string\n// link: string\n// }\n\nexport const MARRY_BABY_DEFAULT_FOOTER = {\n SOCIAL_LINKS: {\n facebookLink: 'https://www.facebook.com/marry.baby.vn',\n // twitterLink,\n instagramLink: 'https://www.instagram.com/marrybaby.vn',\n zaloLink: 'http://zalo.me/806483414530291942',\n // linkedinLink\n youtubeLink: 'https://www.youtube.com/user/marrybabyvn',\n },\n}\n\nexport type Country =\n | 'VN'\n | 'ID'\n | 'TH'\n | 'KH'\n | 'MY'\n | 'MM'\n | 'PH'\n | 'IN'\n | 'TW'\n\nexport type Flag = {\n country: Country\n link: string\n}\n\nexport type Props = {\n // bigLinks: Array<link>\n // informationLinks: Array<link>\n buttonText?: string\n className?: string\n socialLinks?: {\n facebookLink?: string\n twitterLink?: string\n instagramLink?: string\n zaloLink?: string\n linkedinLink?: string\n youtubeLink?: string\n }\n followusText?: string\n copyrightText?: string\n type: 'main' | 'mini'\n logoType?: LogoType\n isMobile: boolean\n flagLinks?: Array<Flag>\n footerMenu?: MarryBabyFooterInfo\n locale: LocaleType\n}\n\nconst MarryBabyFooter = ({\n socialLinks: {\n facebookLink,\n instagramLink,\n zaloLink,\n youtubeLink,\n } = MARRY_BABY_DEFAULT_FOOTER.SOCIAL_LINKS,\n copyrightText,\n logoType = 'marryBaby',\n isMobile,\n footerMenu = [],\n type = 'main',\n}: Props) => {\n const { t } = useTranslations()\n\n return type === 'main' ? (\n <StyledFooterContainer className=\"footer-container\">\n {!isMobile && (\n <div className=\"footer-divider\">\n <Container type=\"marryBaby\">\n <Divider style={{ padding: '0 16px' }} type=\"solid\" />\n </Container>\n </div>\n )}\n\n <StyledFooterMenu>\n <Container type=\"marryBaby\">\n <StyledMenuContainer>\n <div className=\"grid\">\n {(isMobile ? footerMenu?.slice(0, 6) : footerMenu)?.map(\n ({ title, link }, i) => (\n <a\n data-event-category=\"Footer\"\n data-event-action={title}\n data-event-label={`${link}`}\n className=\"link\"\n href={link}\n key={`footer-links-${i}`}\n >\n <MarryBabyText\n color={theme.colors.gray800}\n type=\"subtitle-2\"\n >\n {title}\n </MarryBabyText>\n </a>\n ),\n )}\n\n <div className=\"social-wrapper\">\n <div className=\"social\">\n <MarryBabyText type=\"subtitle-2\">\n {t('footer.followUsText')}\n </MarryBabyText>\n <div className=\"icons-links\">\n {facebookLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Facebook\"\n data-content-label={facebookLink}\n href={facebookLink}\n >\n <img src={FacebookIcon} alt=\"Facebook\" />\n </a>\n )}\n {youtubeLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Youtube\"\n data-event-label={youtubeLink}\n href={youtubeLink}\n >\n <img src={YoutubeIcon} alt=\"Youtube\" />\n </a>\n )}\n {instagramLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Instagram\"\n data-content-label={instagramLink}\n href={instagramLink}\n >\n <img src={InstagramIcon} alt=\"Instagram\" />\n </a>\n )}\n {zaloLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n href={zaloLink}\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Zalo\"\n data-event-label={zaloLink}\n >\n <img src={ZaloIcon} alt=\"Zalo\" />\n </a>\n )}\n </div>\n </div>\n </div>\n </div>\n </StyledMenuContainer>\n </Container>\n </StyledFooterMenu>\n\n <StyledCompanyInfo>\n <Container type=\"marryBaby\">\n <StyledInfoContainer>\n <Logo className=\"logo\" type={logoType as LogoType} width=\"121px\" />\n <MarryBabyText className=\"company-name\" type=\"subtitle-2\">\n {t('footer.info.companyName')}\n </MarryBabyText>\n\n <div className=\"text-info\">\n <MarryBabyText type=\"bodytext-3\">\n {t('footer.info.address')}\n </MarryBabyText>\n <MarryBabyText type=\"bodytext-3\">\n {t('footer.info.license')}\n </MarryBabyText>\n <MarryBabyText type=\"bodytext-3\">\n {t('footer.info.email')}\n </MarryBabyText>\n {/* <MarryBabyText type=\"bodytext-3\">\n {t('footer.info.contentResponsibility')}\n </MarryBabyText> */}\n {/* <MarryBabyText type=\"bodytext-3\">\n {t('footer.info.certificate')}\n </MarryBabyText> */}\n </div>\n\n <div className=\"img-container\">\n <img src=\"/images/dmca_protected.png\" alt=\"DMCA protected\" />\n <a\n href=\"http://online.gov.vn/Home/WebDetails/25055?AspxAutoDetectCookieSupport=1\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <img src=\"/images/mit_registered.png\" alt=\"MIT registered\" />\n </a>\n </div>\n\n {!isMobile && <Divider type=\"solid\" />}\n\n <div className=\"language-and-copyright\">\n {/* <Dropdown\n placeholder=\"Choose language\"\n id=\"footer-language-select\"\n options={languageDropdownOptions}\n value={activeLanguage}\n onChange={onSelectLanguage}\n placeholderIcon={activeLanguage?.icon}\n /> */}\n <MarryBabyText type=\"bodytext-3\">{copyrightText}</MarryBabyText>\n </div>\n </StyledInfoContainer>\n </Container>\n </StyledCompanyInfo>\n </StyledFooterContainer>\n ) : (\n <StyledMiniFooterContainer>\n <StyledRoundDecorator />\n <MarryBabyText\n type=\"subtitle-3\"\n style={\n {\n marginBottom: 24,\n textTransform: 'uppercase',\n fontWeight: theme.sizes.fwSemiBold,\n } as CSSProperties\n }\n color={theme.mbColors.midGray}\n >\n {t('footer.followUsText')}\n </MarryBabyText>\n <div className=\"icons-links\">\n {facebookLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Facebook\"\n data-content-label={facebookLink}\n href={facebookLink}\n >\n {/* <img src=\"/svg/facebook.svg\" alt=\"Facebook\" /> */}\n <svg\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=\"M21 5.75V18.25C21 19.765 19.765 21 18.25 21H15.5V14H17.31C17.565 14 17.78 13.81 17.81 13.56L17.995 12.06C18.015 11.92 17.97 11.775 17.875 11.67C17.78 11.56 17.645 11.5 17.5 11.5H15.5V9.75C15.5 9.2 15.95 8.75 16.5 8.75H17.5C17.775 8.75 18 8.525 18 8.25V6.56C18 6.305 17.8 6.09 17.545 6.065C17.515 6.06 16.81 6 15.915 6C13.715 6 12.5 7.31 12.5 9.685V11.5H10.5C10.225 11.5 10 11.725 10 12V13.5C10 13.775 10.225 14 10.5 14H12.5V21H5.75C4.235 21 3 19.765 3 18.25V5.75C3 4.235 4.235 3 5.75 3H18.25C19.765 3 21 4.235 21 5.75Z\"\n fill=\"url(#paint0_linear)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear\"\n x1=\"12\"\n y1=\"3\"\n x2=\"12\"\n y2=\"21\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#4DABF7\" />\n <stop offset=\"1\" stopColor=\"#2668DA\" />\n </linearGradient>\n </defs>\n </svg>\n </a>\n )}\n {youtubeLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Youtube\"\n data-event-label={youtubeLink}\n href={youtubeLink}\n >\n {/* <img src=\"/svg/youtube.svg\" alt=\"Youtube\" /> */}\n <svg\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.9287 4.25C8.75236 4.25 5.80117 4.47631 4.11719 4.82812C4.1136 4.82907 4.11002 4.83005 4.10645 4.83105C2.83774 5.11535 1.64309 6.02412 1.3916 7.44727L1.39062 7.45312C1.19742 8.60013 1 10.0953 1 12.25C1 14.4006 1.1981 15.8562 1.44238 17.0635C1.70004 18.4446 2.86711 19.3809 4.15527 19.6689C4.16144 19.6707 4.16762 19.6723 4.17383 19.6738C5.93135 20.0201 8.79923 20.25 11.9756 20.25C15.1519 20.25 18.0213 20.0201 19.7793 19.6738C19.7855 19.6723 19.7917 19.6707 19.7979 19.6689C21.0666 19.3847 22.2612 18.4759 22.5127 17.0527C22.5134 17.0492 22.514 17.0456 22.5146 17.042C22.7049 15.8716 22.9514 14.3778 23 12.2197C23.0001 12.2142 23.0001 12.2087 23 12.2031C23 10.0438 22.7529 8.53934 22.5117 7.34766C22.2561 5.96354 21.0877 5.02474 19.7979 4.73633C19.7781 4.73195 19.7583 4.72836 19.7383 4.72559C18.0232 4.48448 15.1056 4.25 11.9287 4.25ZM10.0781 8.50098C10.2633 8.49715 10.4548 8.54095 10.6348 8.64258L14.9365 11.0732C15.662 11.4832 15.662 12.5177 14.9365 12.9277L10.6348 15.3584C9.91527 15.7644 9.01855 15.2502 9.01855 14.4307V9.56934C9.01855 8.95471 9.52252 8.51246 10.0781 8.50098Z\"\n fill=\"#EB3223\"\n />\n </svg>\n </a>\n )}\n {instagramLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Instagram\"\n data-content-label={instagramLink}\n href={instagramLink}\n >\n {/* <img src=\"/svg/instagram.svg\" alt=\"Instagram\" /> */}\n <svg\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=\"M8.25 2.5C5.08319 2.5 2.5 5.08319 2.5 8.25V15.75C2.5 18.9164 5.0831 21.5 8.25 21.5H15.75C18.9165 21.5 21.5 18.9165 21.5 15.75V8.25C21.5 5.0831 18.9164 2.5 15.75 2.5H8.25ZM8.25 4H15.75C18.1056 4 20 5.8939 20 8.25V15.75C20 18.1055 18.1055 20 15.75 20H8.25C5.8939 20 4 18.1056 4 15.75V8.25C4 5.89381 5.89381 4 8.25 4ZM17 6C16.4475 6 16 6.4475 16 7C16 7.5525 16.4475 8 17 8C17.5525 8 18 7.5525 18 7C18 6.4475 17.5525 6 17 6ZM12 7C9.24759 7 7 9.24759 7 12C7 14.7524 9.24759 17 12 17C14.7524 17 17 14.7524 17 12C17 9.24759 14.7524 7 12 7ZM12 8.5C13.9416 8.5 15.5 10.0584 15.5 12C15.5 13.9416 13.9416 15.5 12 15.5C10.0584 15.5 8.5 13.9416 8.5 12C8.5 10.0584 10.0584 8.5 12 8.5Z\"\n fill=\"url(#paint0_radial)\"\n />\n <defs>\n <radialGradient\n id=\"paint0_radial\"\n cx=\"0\"\n cy=\"0\"\n r=\"1\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"translate(0.499995 26) rotate(-47.9508) scale(34.3402 30.014)\"\n >\n <stop offset=\"0.073\" stopColor=\"#EACC7B\" />\n <stop offset=\"0.184\" stopColor=\"#ECAA59\" />\n <stop offset=\"0.307\" stopColor=\"#EF802E\" />\n <stop offset=\"0.358\" stopColor=\"#EF6D3A\" />\n <stop offset=\"0.46\" stopColor=\"#F04B50\" />\n <stop offset=\"0.516\" stopColor=\"#F03E58\" />\n <stop offset=\"0.689\" stopColor=\"#DB359E\" />\n <stop offset=\"0.724\" stopColor=\"#CE37A4\" />\n <stop offset=\"0.789\" stopColor=\"#AC3CB4\" />\n <stop offset=\"0.877\" stopColor=\"#7544CF\" />\n <stop offset=\"0.98\" stopColor=\"#2B4FF2\" />\n </radialGradient>\n </defs>\n </svg>\n </a>\n )}\n {zaloLink && (\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n href={zaloLink}\n data-event-category=\"Footer\"\n data-event-action=\"Follow us - Zalo\"\n data-event-label={zaloLink}\n >\n <div\n style={{\n height: 24,\n width: 24,\n }}\n >\n <img src=\"/icons/zalo.png\" alt=\"Zalo\" />\n </div>\n </a>\n )}\n </div>\n </StyledMiniFooterContainer>\n )\n}\n\nexport { MarryBabyFooter }\n","var img = \"data:image/png;base64,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\";\n export default img;","import React from 'react'\n\nimport { CSSProperties } from 'styled-components'\n\nimport { Text } from '../text'\nimport { StyledAlert, StyledClose, StyledContent } from './index.styled'\n\nexport type Props = {\n type: 'success' | 'danger' | 'warning' | 'info'\n contentIcon: JSX.Element\n closeIcon: JSX.Element\n text: string\n description?: string\n className?: string\n style?: CSSProperties\n onClose?: () => void\n}\n\nconst Alert = ({\n style,\n onClose,\n text,\n type,\n contentIcon,\n closeIcon,\n className,\n description,\n}: Props) => {\n return (\n <StyledAlert style={style} data-alert-type={type} className={className}>\n <StyledContent>\n <div className=\"icon-title\">\n {contentIcon}\n <Text type=\"bold\" size=\"label1\">\n {text}\n </Text>\n </div>\n <Text type=\"regular\" size=\"p3\">\n {description}\n </Text>\n </StyledContent>\n <StyledClose onClick={onClose}>{closeIcon}</StyledClose>\n </StyledAlert>\n )\n}\n\nexport { Alert }\n","import React from 'react'\n\nexport type AmpNextArticleItem = {\n title: string\n image: string\n link: string\n}\n\nexport type Props = {\n ampNextArticles?: AmpNextArticleItem[]\n}\n\nconst AmpNextPage = ({ ampNextArticles }: Props) => {\n const filteredAmpArticles = ampNextArticles?.filter(Boolean) || []\n if (!filteredAmpArticles?.length) return null\n const customAttribute = { separator: '' }\n return (\n <amp-next-page>\n <script\n type=\"application/json\"\n dangerouslySetInnerHTML={{\n __html: JSON.stringify(\n filteredAmpArticles.map((ampArticle) => ({\n image: ampArticle.image || '',\n title: ampArticle.title ? JSON.stringify(ampArticle.title) : '',\n url: ampArticle.link || '',\n })),\n ),\n }}\n ></script>\n <div\n {...customAttribute}\n className=\"amp-page-seperator\"\n style={{\n color: '#8C8C8C',\n textTransform: 'uppercase',\n fontSize: 11,\n fontWeight: 700,\n marginLeft: 16,\n }}\n >\n Next article:\n </div>\n </amp-next-page>\n )\n}\n\nexport { AmpNextPage }\n","import React from 'react'\n\nimport { StyledBadge } from './index.styled'\n\nexport type NotificationType = 'dot' | 'numeric'\nexport type NotificationSize = 'medium' | 'large'\nexport type NotificationColor = 'primary' | 'error'\n\nexport type Props = {\n icon: JSX.Element\n type: NotificationType\n size?: NotificationSize\n color?: NotificationColor\n className?: string\n amount?: number | string | JSX.Element\n}\n\nconst Badge = ({\n amount,\n type,\n size = 'medium',\n color = 'primary',\n icon,\n className,\n}: Props) => {\n return (\n <StyledBadge\n data-notification-type={type}\n data-notification-size={size}\n data-notification-color={color}\n data-has-icon={!!icon || undefined}\n notificationType={type}\n notificationSize={size}\n notificationColor={color}\n hasIcon={!!icon}\n className={className}\n >\n <div>\n {amount && <span>{amount}</span>} {icon && <div>{icon}</div>}\n </div>\n </StyledBadge>\n )\n}\n\nexport { Badge }\n","import React, { ReactNode } from 'react'\n\nimport { TextType } from '../text'\nimport { StyledBorderHeading } from './index.styled'\n\nexport type Props = {\n children: ReactNode\n className?: string\n size?: 'sm' | 'md' | 'lg'\n type?: TextType\n upperCase?: boolean\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\n color?: string\n style?: React.CSSProperties\n}\n\nconst BorderHeading = ({\n style,\n children,\n className,\n size = 'lg',\n type = 'bold',\n upperCase,\n as = 'h4',\n color,\n}: Props) => (\n <StyledBorderHeading\n style={{ color, ...style }}\n className={className}\n data-size={size}\n data-type={type}\n data-uppercase={upperCase}\n as={as}\n >\n {children}\n </StyledBorderHeading>\n)\n\nexport { BorderHeading }\n","import React, { ReactElement } from 'react'\n\nimport { CSSProperties } from 'styled-components'\n\nimport { Text } from '../../atoms/text'\nimport { StyledCategoryCard } from './index.styled'\n\nexport type Props = {\n imgBanner: ReactElement\n label: string\n href?: string\n className?: string\n style?: CSSProperties\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n}\n\nexport const CategoryCard = ({\n imgBanner,\n label,\n className,\n style,\n href = '',\n dataEventCategory,\n dataEventAction,\n dataEventLabel,\n}: Props) => {\n return (\n <StyledCategoryCard\n data-event-category={dataEventCategory}\n data-event-action={dataEventAction}\n data-event-label={dataEventLabel}\n className={className}\n style={style}\n href={href}\n onClick={(e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => {\n if (href === '') {\n e.preventDefault()\n }\n }}\n >\n <div className=\"banner\">{imgBanner}</div>\n <div className=\"content\">\n <Text className=\"category_name\" size=\"sm\" type=\"bold\">\n {label}\n </Text>\n </div>\n </StyledCategoryCard>\n )\n}\n","import React from 'react'\n\nimport { Checkbox } from '../../atoms/checkbox'\nimport { StyledCheckboxGroup } from './index.styled'\n\nexport type Props = {\n type: 'vertical' | 'horizontal'\n options: Array<{\n label: string\n value: string\n disabled?: boolean\n }>\n values?: Array<string>\n onChanges?: (v: Array<string>) => void\n name: string\n className?: string\n isDisabled?: boolean\n isRectangle?: boolean\n}\n\nconst CheckboxGroup = ({\n name,\n values = [],\n onChanges,\n options = [],\n className,\n type = 'vertical',\n isDisabled,\n isRectangle,\n}: Props) => {\n const onChange = (value: string, checked: boolean) => {\n const newValues = values.slice()\n if (checked) {\n newValues.push(value)\n } else {\n const removeIndex = newValues.findIndex((item) => item === value)\n newValues.splice(removeIndex, 1)\n }\n if (onChanges) {\n onChanges(newValues)\n }\n }\n\n return (\n <StyledCheckboxGroup\n className={className}\n data-type={type}\n data-is-rectangle={isRectangle || undefined}\n >\n {options.map((option, index) => (\n <Checkbox\n label={option.label}\n name={name}\n key={`${index}-${option.value}`}\n checked={values.includes(option.value)}\n value={option.value}\n isDisabled={isDisabled || option.disabled}\n onChange={!isDisabled && onChange}\n isRectangle={isRectangle}\n />\n ))}\n </StyledCheckboxGroup>\n )\n}\n\nexport { CheckboxGroup }\n","import React from 'react'\n\nimport {\n StyledAcceptCardContainer,\n StyledTitleSection,\n StyledDescription,\n StyledButtonGroup,\n StyledAcceptButton,\n StyledPoliciesButton,\n} from './index.styled'\n\nexport type CookieAcceptConfirmProps = {\n isOpen?: boolean\n theme?: 'helloSites' | 'marryBaby'\n className?: string\n title?: string\n description?: string\n policiesUrl?: string\n translations?: {\n acceptButton?: string\n policiesButton?: string\n }\n onAcceptClick?: () => void\n useDefaultPosition?: boolean\n trackingAttributes?: {\n dataEventCategory: string\n dataEventAction: string\n dataEventLabel: string\n }\n}\n\nexport const CookieAcceptConfirm = ({\n className,\n policiesUrl,\n onAcceptClick,\n translations = {\n acceptButton: 'Accept',\n policiesButton: 'Our Policies',\n },\n title = '',\n description = '',\n theme = 'helloSites',\n isOpen = true,\n useDefaultPosition = true,\n trackingAttributes,\n}: CookieAcceptConfirmProps) => {\n return (\n <StyledAcceptCardContainer\n className={className}\n data-theme={theme}\n data-is-open={isOpen}\n data-default-position={useDefaultPosition}\n >\n <StyledTitleSection data-has-content={!!title}>\n {title}\n </StyledTitleSection>\n <StyledDescription dangerouslySetInnerHTML={{\n __html: description,\n }} />\n <StyledButtonGroup>\n <StyledAcceptButton\n role=\"button\"\n tabIndex={0}\n on=\"tap:consent-element.accept\"\n onClick={onAcceptClick}\n data-event-category={trackingAttributes?.dataEventCategory}\n data-event-action={trackingAttributes?.dataEventAction}\n data-event-label={trackingAttributes?.dataEventLabel}\n >\n {translations.acceptButton}\n </StyledAcceptButton>\n <StyledPoliciesButton href={policiesUrl}>\n {translations.policiesButton}\n </StyledPoliciesButton>\n </StyledButtonGroup>\n </StyledAcceptCardContainer>\n )\n}\n","import React, { useRef, useState } from 'react'\n\nimport { CSSProperties } from 'styled-components'\n\nimport {\n StyledDropdown,\n StyledDropdownName,\n StyledDropdownList,\n StyledDropdownOption,\n StyledIcon,\n} from './index.styled'\n\ntype Option = {\n label: string\n value: string\n type: 'upload' | 'download'\n icon?: JSX.Element\n url?: string\n fileAcceptedType?: string\n multiple?: boolean\n}\n\nexport type Props = {\n options: Array<Option>\n placeholder: string\n id: string\n placeholderIcon?: JSX.Element\n onUploadSelected?: (e: FileList) => void\n value?: Option\n className?: string\n style?: CSSProperties\n}\n\nconst FileDropdown = ({\n className,\n value,\n options,\n onUploadSelected,\n id,\n placeholderIcon,\n placeholder,\n style,\n}: Props) => {\n const [isDropdownOpen, setIsDropdownOpen] = useState(false)\n const showDropdown = () => setIsDropdownOpen(!isDropdownOpen)\n const inputList = useRef(\n options.map((option) => {\n return (\n option.type === 'upload' && (\n <input\n id={'uploader-dropdown-input-' + id + '-' + option.value}\n key={'uploader-dropdown-input-' + id + '-' + option.value}\n accept={option.fileAcceptedType}\n multiple={option.multiple}\n type=\"file\"\n style={{ display: 'none' }}\n onChange={(e) => {\n console.log('change')\n onUploadSelected(e.target.files)\n }}\n />\n )\n )\n }),\n )\n\n const defaultFileIcon = (\n <svg\n id=\"prefix__Layer_1\"\n data-name=\"Layer 1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 12.17 14.83\"\n >\n <defs>\n <clipPath id=\"prefix__clip-path\" transform=\"translate(-1.92 -1.54)\">\n <path fill=\"none\" d=\"M0 .96h16v16H0z\" />\n </clipPath>\n <style>\n {\n '.prefix__cls-3{fill:none;stroke:#595959;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}'\n }\n </style>\n </defs>\n <title>{'File'}</title>\n <g clipPath=\"url(#prefix__clip-path)\">\n <path\n className=\"prefix__cls-3\"\n d=\"M8.67 2.29H4a1.33 1.33 0 00-1.33 1.33v10.67A1.33 1.33 0 004 15.62h8a1.33 1.33 0 001.33-1.33V7z\"\n transform=\"translate(-1.92 -1.54)\"\n />\n <path\n className=\"prefix__cls-3\"\n d=\"M8.67 2.29V7h4.66\"\n transform=\"translate(-1.92 -1.54)\"\n />\n </g>\n </svg>\n )\n\n const downloadIcon = (\n <svg\n id=\"prefix__Layer_1\"\n data-name=\"Layer 1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 13.5 13.5\"\n >\n <defs>\n <style>\n {\n '.prefix__cls-1{fill:none;stroke:#595959;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}'\n }\n </style>\n </defs>\n <title>{'download'}</title>\n <path\n className=\"prefix__cls-1\"\n d=\"M14 11v2.66A1.33 1.33 0 0112.67 15H3.33A1.33 1.33 0 012 13.62V11M4.67 7.62L8 11l3.33-3.34M8 11V3\"\n transform=\"translate(-1.25 -2.21)\"\n />\n </svg>\n )\n\n const uploadIcon = (\n <svg\n id=\"prefix__Layer_1\"\n data-name=\"Layer 1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 13.5 13.5\"\n >\n <defs>\n <style>\n {\n '.prefix__cls-1{fill:none;stroke:#595959;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}'\n }\n </style>\n </defs>\n <title>{'upload'}</title>\n <path\n className=\"prefix__cls-1\"\n d=\"M14 11v2.66A1.33 1.33 0 0112.67 15H3.33A1.33 1.33 0 012 13.62V11M11.33 6.29L8 3 4.67 6.29M8 3v8\"\n transform=\"translate(-1.25 -2.21)\"\n />\n </svg>\n )\n\n const onUpload = (dropdownId: string) => {\n ;(document.querySelector(dropdownId) as HTMLElement)?.click()\n }\n\n const onDownload = (url: string) => {\n url && window.open(url, '_blank')\n }\n\n return (\n <StyledDropdown\n className={className}\n data-dropdown-open={!!isDropdownOpen}\n id={id}\n data-has-icons\n style={style}\n onBlur={() => setIsDropdownOpen(false)}\n tabIndex={0}\n >\n <StyledDropdownName onClick={showDropdown}>\n {placeholderIcon || defaultFileIcon}{' '}\n <span>{value && value.value ? value.label : placeholder}</span>\n </StyledDropdownName>\n\n {isDropdownOpen && (\n <StyledDropdownList onClick={showDropdown} data-has-icons>\n {options.map((option) => (\n <StyledDropdownOption\n key={`${id}-${option.value}`}\n data-selected={\n (value && value.value === option.value) || undefined\n }\n onClick={() =>\n option.type === 'upload'\n ? onUpload(\n '#uploader-dropdown-input-' + id + '-' + option.value,\n )\n : onDownload(option.url)\n }\n >\n <StyledIcon>\n {option.icon || option.type === 'download'\n ? downloadIcon\n : uploadIcon}\n </StyledIcon>\n {option.label}\n </StyledDropdownOption>\n ))}\n </StyledDropdownList>\n )}\n <>{inputList.current}</>\n </StyledDropdown>\n )\n}\n\nexport { FileDropdown }\n","import React, { useEffect, useState } from 'react'\n\nimport { CSSProperties } from 'styled-components'\n\nimport {\n StyledFloatButtonGroup,\n StyledFloatButtonGroupBackgroundPanel,\n StyledFloatButtonGroupButton,\n StyledFloatButtonGroupButtonIcon,\n StyledFloatButtonGroupButtonLabel,\n StyledFloatButtonGroupContent,\n StyledFloatButtonGroupItemsWrapper,\n StyledFloatButtonGroupToggleIcon,\n TRANSITION_TIMING,\n} from './index.styled'\n\ntype Item = {\n value?: string | number\n label: string\n icon: JSX.Element\n onClick: () => void\n keepMenuOnClick?: boolean\n}\n\nexport type FloatButtonGroupType = {\n items: Item[]\n className?: string\n style?: CSSProperties\n backgroundPanelStyle?: CSSProperties\n isOpen?: boolean\n onOpen?: () => void\n onClose?: () => void\n disableBackdropClick?: boolean\n siteType?: 'hb' | 'mb'\n animationType?: 'zoom' | 'slide' | 'scale'\n zIndex?: number\n}\n\nexport const FloatButtonGroup = ({\n items,\n className,\n style,\n backgroundPanelStyle,\n isOpen: isOpenProp,\n onOpen,\n onClose,\n disableBackdropClick,\n siteType = 'hb',\n animationType = 'zoom',\n zIndex = 300,\n}: FloatButtonGroupType) => {\n const [isOpen, setIsOpen] = useState<boolean>(!!isOpenProp)\n\n useEffect(() => {\n setIsOpen(!!isOpenProp)\n }, [isOpenProp])\n\n const handleOpen = () => {\n setIsOpen(true)\n if (onOpen) {\n onOpen()\n }\n }\n\n const handleClose = () => {\n setIsOpen(false)\n if (onClose) {\n onClose()\n }\n }\n\n return (\n <StyledFloatButtonGroup\n style={style}\n className={className}\n data-floatmenu-open={isOpen}\n data-site-type={siteType}\n data-animation-type={animationType}\n >\n <StyledFloatButtonGroupBackgroundPanel\n className=\"float-button-group__panel\"\n style={{ zIndex, ...backgroundPanelStyle }}\n onClick={!disableBackdropClick ? handleClose : undefined}\n />\n <StyledFloatButtonGroupContent\n className=\"float-button-group___content\"\n style={{ zIndex }}\n >\n <StyledFloatButtonGroupItemsWrapper>\n {items.map((item, index) => {\n return (\n <StyledFloatButtonGroupButton\n className={`float-item-button-${index}`}\n style={{\n ...(animationType === 'zoom' && {\n bottom: (items.length - 1 - index) * (48 + 16),\n transitionDelay: `${\n (TRANSITION_TIMING / items.length) *\n (isOpen ? items.length - 1 - index : index)\n }ms`,\n }),\n ...(animationType === 'slide' && {\n bottom: (items.length - 1 - index) * (48 + 16),\n transitionDelay: `${\n (TRANSITION_TIMING / items.length) *\n (!isOpen ? items.length - 1 - index : index)\n }ms`,\n }),\n }}\n key={index}\n onClick={() => {\n item.onClick()\n if (!item.keepMenuOnClick) {\n setIsOpen(false)\n }\n }}\n >\n <StyledFloatButtonGroupButtonLabel\n style={{\n ...(animationType === 'zoom' && {\n transitionDelay: `${\n (TRANSITION_TIMING / items.length) *\n (isOpen ? items.length - 1 - index : index)\n }ms`,\n }),\n }}\n >\n {item.label}\n </StyledFloatButtonGroupButtonLabel>\n <StyledFloatButtonGroupButtonIcon\n className=\"float-item-button__icon-wrapper\"\n style={{\n ...((animationType === 'zoom' ||\n animationType === 'slide') && {\n transitionDelay: `${\n (TRANSITION_TIMING / items.length) *\n (isOpen ? items.length - 1 - index : index)\n }ms`,\n }),\n }}\n >\n {item.icon}\n </StyledFloatButtonGroupButtonIcon>\n </StyledFloatButtonGroupButton>\n )\n })}\n </StyledFloatButtonGroupItemsWrapper>\n\n <StyledFloatButtonGroupToggleIcon\n onClick={isOpen ? handleClose : handleOpen}\n />\n </StyledFloatButtonGroupContent>\n </StyledFloatButtonGroup>\n )\n}\n","import React from 'react'\n\nimport { FooterInfo, LocaleType, MarryBabyFooterInfo } from 'interfaces/types'\n\nimport { DiscoverFooter } from './discoverFooter'\nimport { MarryBabyFooter } from './maryBabyFooter'\n\nexport type Props = {\n type: 'main' | 'mini'\n locale: LocaleType\n basePath: string\n isMobile: boolean\n isAmp: boolean\n footerInfo: FooterInfo | MarryBabyFooterInfo\n} & (\n | {\n siteType: 'marryBaby'\n marryBabySocialLinks?: {\n facebookLink?: string\n twitterLink?: string\n instagramLink?: string\n zaloLink?: string\n linkedinLink?: string\n youtubeLink?: string\n }\n }\n | {\n siteType: 'helloSites'\n }\n)\n\nexport type Flag = {\n country: CountryInitial\n link: string\n}\n\nexport type CountryInitial =\n | 'VN'\n | 'ID'\n | 'TH'\n | 'KH'\n | 'MY'\n | 'MM'\n | 'PH'\n | 'IN'\n | 'TW'\n\nconst Footer = (props: Props) => {\n const { type, isMobile = true, locale, footerInfo, isAmp, siteType } = props\n return siteType === 'helloSites' ? (\n <DiscoverFooter\n isAmp={isAmp}\n isMobile={isMobile}\n type={type}\n locale={locale}\n footerInfo={(footerInfo || {}) as FooterInfo}\n />\n ) : (\n <MarryBabyFooter\n isMobile={isMobile}\n locale={locale}\n footerMenu={(footerInfo || []) as MarryBabyFooterInfo}\n copyrightText={'© 2022 MarryBaby.vn'}\n socialLinks={props.marryBabySocialLinks}\n type={type}\n />\n )\n}\n\nexport { Footer }\n","import React, { CSSProperties, ReactNode } from 'react'\n\nimport { StyledGrid } from './index.styled'\n\ninterface BasicProps {\n children: ReactNode\n alignItems?: 'start' | 'end' | 'center' | 'stretch'\n gap?: string\n className?: string\n justifyChildren?: 'start' | 'center' | 'end' | 'stretch'\n style?: CSSProperties\n}\n\ninterface BasicGrid extends BasicProps {\n columns: number\n columnsDesktop: number\n gridTemplateColumns?: never\n gridTemplateColumnsDesktop?: never\n}\n\ninterface ExtendedGrid extends BasicProps {\n columns?: never\n columnsDesktop?: never\n gridTemplateColumns: string\n gridTemplateColumnsDesktop: string\n}\n\nexport type Props = BasicGrid | ExtendedGrid\n\nconst Grid = ({\n className,\n columns,\n columnsDesktop,\n gridTemplateColumns,\n gridTemplateColumnsDesktop,\n gap,\n children,\n justifyChildren,\n style,\n alignItems,\n}: Props) => {\n return (\n <StyledGrid\n className={className}\n style={style}\n theme={{\n columns,\n columnsDesktop,\n gap,\n justifyChildren,\n gridTemplateColumns,\n gridTemplateColumnsDesktop,\n alignItems,\n }}\n >\n {children}\n </StyledGrid>\n )\n}\n\nexport { Grid }\n","import React, { ReactNode } from 'react'\n\nimport { StyledIconText } from './index.styled'\n\nexport type Props = {\n size: 'lg' | 'md' | 'sm'\n iconPosition: 'left' | 'right'\n children: ReactNode\n icon: JSX.Element\n className?: string\n}\n\nconst IconText = ({\n size,\n iconPosition,\n className,\n children,\n icon: Icon,\n}: Props) => {\n return (\n <StyledIconText\n className={className}\n data-size={size}\n data-icon-position={iconPosition}\n >\n {iconPosition === 'left' && Icon}\n {children}\n {iconPosition === 'right' && Icon}\n </StyledIconText>\n )\n}\n\nexport { IconText }\n","import React from 'react'\n\nimport { Props, NavigationLayout as NavigationLayoutElement } from './index'\nimport { defaultTranslation } from './languages/default'\nimport { NaContext } from './utils'\n\nconst NavigationLayout = (props: Props) => {\n return (\n <NaContext.Provider\n value={{\n translation: props.translation || defaultTranslation,\n }}\n >\n <NavigationLayoutElement {...props} />\n </NaContext.Provider>\n )\n}\n\nexport { NavigationLayout }\n","import React, { CSSProperties } from 'react'\n\nimport { StyledProgress } from './index.styled'\n\nexport type Props = {\n /**\n * percent of progress\n */\n percent: number\n /**\n * extending style\n */\n style?: CSSProperties\n}\n\nconst Progress = ({ percent, style }: Props) => {\n return (\n <StyledProgress\n style={\n {\n '--progress': percent,\n ...style,\n } as CSSProperties\n }\n />\n )\n}\n\nexport { Progress }\n","import React, { useState, useEffect, useCallback } from 'react'\n\nimport { throttle } from 'lodash'\nimport { useId } from 'react-id-generator'\n\nimport {\n StyledTrackContainer,\n StyledStep,\n StyledSlider,\n StyledTrack,\n StyledStepLabel,\n StyledBreadcrumbContainer,\n StyledBreadcrumbWrapper,\n StyledDetailStep,\n StyledDetailStepLabel,\n StyledDetailStepIndicator,\n StyledDetailStepIndicatorExternal,\n StyledDetailStepDescription,\n} from './index.styled'\n\nexport type Props = {\n type: 'breadcrumb' | 'step-track' | 'detail-track'\n numberOfStep: number\n activeStep: number\n labelPrefix: string\n detailSteps?: { text: string; icon: JSX.Element; description: string }[]\n onChange?: (s: number) => void\n className?: string\n isMobile?: boolean\n}\n\nconst ProgressBar = ({\n type,\n numberOfStep,\n activeStep,\n labelPrefix,\n detailSteps,\n className,\n onChange,\n}: Props) => {\n const [trackLength, setTrackLength] = useState(0)\n\n const Track = ({ trackClassName, ...props }: { trackClassName?: string }) => {\n return (\n <StyledTrackContainer {...props} className={trackClassName}>\n <StyledTrack></StyledTrack>\n </StyledTrackContainer>\n )\n }\n\n // step track\n\n const Steps = ({\n trackLength,\n activeStep,\n labelPrefix = 'Step',\n onChange,\n }: {\n trackLength: number\n activeStep: number\n labelPrefix?: string\n onChange: (s: number) => void\n }) => {\n return (\n <>\n {Array.from({ length: numberOfStep }, (v, i) => i).map((_, step) => (\n <StyledStep\n data-is-active={step === activeStep}\n data-label={step}\n style={{ left: (step * trackLength) / (numberOfStep - 1) }}\n onClick={() => {\n onChange && onChange(step)\n }}\n key={step}\n >\n {step + 1}\n <StyledStepLabel data-step-passed={step <= activeStep}>\n {labelPrefix + ' ' + (step + 1)}\n </StyledStepLabel>\n </StyledStep>\n ))}\n </>\n )\n }\n\n const stepTrack = (\n <StyledSlider className={className + ' progress-bar'}>\n <Track />\n <Steps\n trackLength={trackLength}\n activeStep={activeStep}\n labelPrefix={labelPrefix}\n onChange={onChange}\n />\n </StyledSlider>\n )\n\n // breadcrumb\n\n const breadcrumbIcon = (\n <svg\n data-name=\"Layer 1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 5.5 9.5\"\n >\n <title>{'chevron-right'}</title>\n <path\n d=\"M.75 8.75l4-4-4-4\"\n fill=\"none\"\n // stroke=\"#000\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={1.5}\n />\n </svg>\n )\n\n const breadcrumb = (\n <StyledBreadcrumbContainer>\n {detailSteps &&\n Array.from({ length: detailSteps.length }, (v, i) => i).map(\n (_, step_index) => (\n <StyledBreadcrumbWrapper\n key={step_index}\n data-selected={step_index === activeStep}\n onClick={() => {\n onChange && onChange(step_index)\n }}\n >\n {detailSteps[step_index]?.text}{' '}\n {step_index < detailSteps.length - 1 && breadcrumbIcon}\n </StyledBreadcrumbWrapper>\n ),\n )}\n </StyledBreadcrumbContainer>\n )\n\n // detail track\n\n const DetailStepsGroup = ({\n detailSteps,\n activeStep,\n onChange,\n }: {\n detailSteps: { text: string; icon: JSX.Element; description: string }[]\n activeStep: number\n onChange: (s: number) => void\n }) => {\n const idList = useId(detailSteps.length)\n return (\n <>\n {Array.from({ length: detailSteps.length }, (v, i) => i).map(\n (step, step_index) => (\n <StyledDetailStep\n key={idList[step_index]}\n style={{\n left: (100 / detailSteps.length) * step_index + '%',\n width: 100 / detailSteps.length + '%',\n }}\n onClick={() => {\n onChange && onChange(step_index)\n }}\n >\n {detailSteps[step_index].icon ? (\n <StyledDetailStepIndicatorExternal\n onClick={() => {\n onChange && onChange(step_index)\n }}\n >\n {detailSteps[step_index].icon}\n </StyledDetailStepIndicatorExternal>\n ) : (\n <StyledDetailStepIndicator\n data-is-active={step_index === activeStep}\n data-label={step}\n onClick={() => {\n onChange && onChange(step_index)\n }}\n key={step_index}\n >\n {step_index + 1}\n </StyledDetailStepIndicator>\n )}\n <StyledDetailStepLabel\n data-step-passed={step_index < activeStep + 1}\n >\n {detailSteps[step_index].text}\n <StyledDetailStepDescription>\n {detailSteps[step_index].description}\n </StyledDetailStepDescription>\n </StyledDetailStepLabel>\n {step_index < detailSteps.length - 1 && (\n <Track\n data-step-passed={step_index < activeStep}\n trackClassName={'progress-track'}\n data-track-type=\"detail\"\n />\n )}\n </StyledDetailStep>\n ),\n )}\n </>\n )\n }\n\n const detailTrack = (\n <StyledSlider className={className + ' progress-bar'}>\n <DetailStepsGroup\n activeStep={activeStep}\n detailSteps={detailSteps}\n onChange={onChange}\n />\n </StyledSlider>\n )\n\n const resizeTrack = useCallback(\n throttle(() => {\n const progressTrack = document.querySelector(\n '.progress-bar',\n ) as HTMLElement\n\n progressTrack && setTrackLength(progressTrack.offsetWidth)\n }, 1000),\n [],\n )\n\n useEffect(() => {\n const track = document.querySelector('.progress-bar') as HTMLElement\n setTrackLength(track?.offsetWidth)\n\n window.addEventListener('resize', resizeTrack)\n\n return () => {\n window.removeEventListener('resize', resizeTrack)\n }\n }, [])\n\n return (\n (type === 'step-track' && stepTrack) ||\n (type === 'breadcrumb' && breadcrumb) ||\n (type === 'detail-track' && detailTrack)\n )\n}\n\nexport { ProgressBar }\n","import React, { Fragment, useState } from 'react'\n\nimport { Radio } from '../../atoms/radio'\nimport { StyledRadioGroup } from './index.styled'\n\nexport type RadioGroupOption = Array<{\n label: string\n value: string\n renderActivated?: () => JSX.Element\n}>\nexport type Props = {\n type: 'circle' | 'rectangle'\n options: RadioGroupOption\n value?: string\n id: string\n className?: string\n isDisabled?: boolean\n size?: 'small' | 'large'\n direction?: 'vertical' | 'horizontal'\n group?: 'group1' | 'group2'\n onChange?: (v: string) => void\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n}\n\nconst RadioGroup = ({\n id,\n value,\n options,\n className,\n type = 'circle',\n isDisabled,\n size = 'small',\n direction = 'vertical',\n group = 'group1',\n onChange,\n dataEventCategory,\n dataEventAction,\n dataEventLabel,\n}: Props) => {\n const [check, setCheck] = useState(value)\n\n const handleOnChange = (v: string) => {\n setCheck(v)\n onChange && onChange(v)\n }\n\n return (\n <StyledRadioGroup\n className={className}\n data-direction={direction}\n data-group={group}\n >\n {options.map((option) => {\n const checked = check === option.value\n return (\n <Fragment key={`${id}-${option.value}`}>\n <Radio\n type={type}\n size={size}\n label={option.label}\n name={id}\n checked={checked}\n value={option.value}\n isDisabled={isDisabled}\n onChange={!isDisabled && handleOnChange}\n dataEventCategory={dataEventCategory}\n dataEventAction={dataEventAction}\n dataEventLabel={dataEventLabel}\n />\n {checked && option.renderActivated && option.renderActivated()}\n </Fragment>\n )\n })}\n </StyledRadioGroup>\n )\n}\n\nexport { RadioGroup }\n","import React, { CSSProperties, useState } from 'react'\n\nimport { StarHalfIcon, StarEmptyIcon, StarFullIcon } from 'assets/svg'\n\nimport { StyledRateStars } from './index.styled'\n\nexport type Props = {\n /**\n * percent of progress\n */\n star: number\n /**\n * does not show empty stars\n */\n hideEmptyStars?: boolean\n /**\n * total stars\n */\n totalStars?: number\n /**\n * Select star, value from 1 to maximum\n */\n onSelect?: (value: number) => void\n /**\n * starProps\n */\n gap?: number\n size?: number\n style?: CSSProperties\n className?: string\n}\n\n/**\n *\n * Show 5 (or more) stars and allow user vote (optional)\n *\n */\nconst RateStars = ({\n gap = 2,\n size = 24,\n star,\n totalStars = 5,\n onSelect,\n hideEmptyStars,\n style,\n className,\n}: Props) => {\n const numberOfFullStars = Math.floor(star)\n const numberOfHalfStars = star - numberOfFullStars >= 0.5 ? 1 : 0\n const [tempStar, setTempStar] = useState<number | null>(null)\n\n const tempFullStars = tempStar || numberOfFullStars\n const tempHalfStars = tempStar ? 0 : numberOfHalfStars\n\n return (\n <StyledRateStars\n data-selectable={!!onSelect}\n style={\n {\n '--gap': gap,\n '--star-size': size,\n ...style,\n } as CSSProperties\n }\n className={className}\n >\n {Array.from({\n length: hideEmptyStars\n ? numberOfFullStars + numberOfHalfStars\n : totalStars,\n }).map((_, index) => {\n const onMouseOver = () => !!onSelect && setTempStar(index + 1)\n const onMouseLeave = () => !!onSelect && setTempStar(null)\n return index + 1 <= tempFullStars ? (\n <StarFullIcon\n key={index}\n onClick={() => onSelect?.(index + 1)}\n onMouseOver={onMouseOver}\n onMouseLeave={onMouseLeave}\n />\n ) : index + 1 === tempFullStars + tempHalfStars ? (\n <StarHalfIcon\n key={index}\n onClick={() => onSelect?.(index + 1)}\n onMouseOver={onMouseOver}\n onMouseLeave={onMouseLeave}\n />\n ) : (\n <StarEmptyIcon\n key={index}\n onClick={() => onSelect?.(index + 1)}\n onMouseOver={onMouseOver}\n onMouseLeave={onMouseLeave}\n />\n )\n })}\n </StyledRateStars>\n )\n}\n\nexport { RateStars }\n","import React from 'react'\n\nimport {\n domainLocales,\n FAVICONS,\n LOCALE_SPECS,\n} from 'components/organisms/navigationLayout/constants'\nimport parse from 'html-react-parser'\nimport { SiteType } from 'interfaces/types'\nimport { isProduction } from 'src/interfaces/constants'\n\n// import Head from 'next/head'\n// import { useRouter } from 'next/router'\n\nexport type SEOData = {\n currentPage?: number\n totalPages?: number\n SEOTitle?: string\n SEODescription?: string\n SEOImage?: string\n SEOImageWidth?: string | number\n SEOImageHeight?: string | number\n seoType?: 'website' | 'article' | 'profile'\n siteName?: string\n customMetaData?: Array<{\n [key: string]: string\n }>\n isIndexable?: boolean\n openGraph?: {\n title?: string\n description?: string\n image?: string\n imageWidth?: number\n imageHeight?: number\n }\n twitter?: {\n title?: string\n description?: string\n image?: string\n }\n apiMetaData?: string\n schemaData?: string\n hasNoAmp?: boolean\n hasNoCanonical?: boolean\n canonicalUrl?: string\n}\n\nexport type Props = {\n SEOData: SEOData\n isAmp: boolean\n locale: string\n routerPathname: string\n routerQuery: { [key: string]: string }\n nextHead: React.FunctionComponent\n siteType: SiteType\n seoCustom?: boolean\n userId?: string | number\n forcedCanonicalUrl?: string\n}\n\nconst SeoHead = ({\n SEOData = {},\n isAmp = false,\n locale = 'vi-VN',\n routerPathname: pathname,\n routerQuery: query,\n nextHead: Head,\n siteType,\n seoCustom,\n userId,\n forcedCanonicalUrl,\n}: Props) => {\n const {\n totalPages,\n currentPage,\n SEOTitle = '',\n SEODescription = '',\n SEOImage,\n seoType,\n SEOImageWidth,\n SEOImageHeight,\n customMetaData = [],\n isIndexable = true,\n hasNoCanonical = false,\n } = SEOData\n const robotIndex =\n isIndexable && isProduction\n ? 'index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1'\n : 'noindex'\n\n // const { locale = 'vi-VN', pathname, query } = router\n const { NEXT_PUBLIC_BASE_API_URL } = process.env\n\n let newPath = SEOData.canonicalUrl || pathname\n Object.keys(query).forEach((key) => {\n const queryItem = query[key]\n if (queryItem && Array.isArray(queryItem)) {\n newPath = newPath.replace(`[...${key}]`, queryItem.join('/'))\n }\n })\n const sL = locale || 'en-PH' // standardized locale\n const siteUrl =\n siteType === 'helloSites' ? domainLocales[sL] : 'www.marrybaby.vn'\n\n const hasSlash = newPath.endsWith('/') ? '' : '/'\n\n let metaData: string | JSX.Element | JSX.Element[]\n if (SEOData.apiMetaData && typeof SEOData.apiMetaData === 'string') {\n const paginatedTitle = SEOData.apiMetaData?.match(/<title.*?>(.*)<\\/title>/)\n const paginatedNumber = ` - Page ${currentPage} of ${totalPages}`\n const fD =\n currentPage && currentPage !== 1 && paginatedTitle\n ? SEOData.apiMetaData\n .replace(\n paginatedTitle[0],\n paginatedTitle[0].includes('-')\n ? paginatedTitle[0].replace('-', paginatedNumber + ' - ')\n : `<title>${paginatedTitle[1].concat(paginatedNumber)}</title>`,\n )\n .replace(\n `<link rel=\"canonical\" href=\"https://${siteUrl}${newPath}${hasSlash}\" />`,\n `<link rel=\"canonical\" href=\"https://${siteUrl}${newPath}${hasSlash}?page=${currentPage}\" />`,\n )\n : SEOData.apiMetaData\n metaData = parse(fD, { trim: true })\n const metaDataImage = (metaData as JSX.Element[]).find(\n (data: JSX.Element) =>\n data.props?.property === 'og:image' ||\n data.props?.property === 'og:image:secure_url',\n )\n if (!metaDataImage) {\n const DefaultOgImage = `https://${siteUrl}/images/${locale}.png`\n metaData = [\n ...(metaData as JSX.Element[]),\n <meta\n key={'og:image'}\n property=\"og:image\"\n content={SEOData.openGraph?.image || DefaultOgImage || ''}\n />,\n <meta\n key={'og:image:secure_url'}\n property=\"og:image:secure_url\"\n content={SEOData.openGraph?.image || DefaultOgImage}\n />,\n <meta\n key={'og:image:width'}\n property=\"og:image:width\"\n content={\n (SEOData.openGraph?.imageWidth &&\n String(SEOData.openGraph?.imageWidth)) ||\n '1200'\n }\n />,\n <meta\n key={'og:image:height'}\n property=\"og:image:height\"\n content={\n (SEOData.openGraph?.imageHeight &&\n String(SEOData.openGraph?.imageHeight)) ||\n '630'\n }\n />,\n ]\n }\n }\n\n const defaultImage = `https://${siteUrl}/images/${locale}.png`\n\n return (\n <Head>\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" />\n {siteType === 'marryBaby' && (\n <link\n href=\"https://fonts.googleapis.com/css2?family=Inter&family=Krub:wght@600&display=swap\"\n rel=\"stylesheet\"\n />\n )}\n {locale === 'km-KH' ? (\n <link\n href=\"https://fonts.googleapis.com/css2?family=Battambang:wght@400;700&display=swap\"\n rel=\"stylesheet\"\n ></link>\n ) : locale === 'id-ID' || locale === 'ms-MY' ? (\n <></>\n ) : (\n <link\n href=\"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,600;0,700;0,800;1,300;1,400;1,600;1,700;1,800&display=swap\"\n rel=\"preload\"\n as=\"style\"\n />\n )}\n <link rel=\"preconnect\" href={NEXT_PUBLIC_BASE_API_URL} />\n <meta charSet=\"UTF-8\" />\n {!isAmp && (\n <meta\n name=\"viewport\"\n content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover\"\n />\n )}\n <meta name=\"google\" content=\"notranslate\" />\n <meta name=\"robots\" content={robotIndex} />\n\n <meta property=\"fb:app_id\" content=\"653713035016537\" />\n {customMetaData.map((customMeta, index) => {\n return <meta key={index} {...customMeta} />\n })}\n\n <meta\n name=\"theme-color\"\n content={siteType === 'helloSites' ? '#2c87f3' : '#e85388'}\n />\n <meta name=\"page_type\" content=\"Home\" />\n <meta name=\"page_platform\" content=\"WEB\" />\n <meta name=\"page_language\" content={sL} />\n <meta\n name=\"ahrefs-site-verification\"\n content=\"46e7521a2b89a1013149c4685bbe02a1d36a4732fef98655142b829bc87cba4d\"\n />\n {isAmp && (\n <>\n <script\n async\n custom-element=\"amp-analytics\"\n src=\"https://cdn.ampproject.org/v0/amp-analytics-0.1.js\"\n ></script>\n <script\n async\n custom-element=\"amp-fx-collection\"\n src=\"https://cdn.ampproject.org/v0/amp-fx-collection-0.1.js\"\n ></script>\n <script\n async\n custom-element=\"amp-ad\"\n src=\"https://cdn.ampproject.org/v0/amp-ad-0.1.js\"\n ></script>\n <script\n async\n custom-element=\"amp-next-page\"\n src=\"https://cdn.ampproject.org/v0/amp-next-page-1.0.js\"\n ></script>\n <script\n async\n custom-element=\"amp-sticky-ad\"\n src=\"https://cdn.ampproject.org/v0/amp-sticky-ad-1.0.js\"\n ></script>\n {/* Adding support for sharing in the bottom bar */}\n <script\n async\n custom-element=\"amp-social-share\"\n src=\"https://cdn.ampproject.org/v0/amp-social-share-0.1.js\"\n ></script>\n {/* Adding the AMP state */}\n <script\n async\n custom-element=\"amp-bind\"\n src=\"https://cdn.ampproject.org/v0/amp-bind-0.1.js\"\n ></script>\n </>\n )}\n\n {!metaData && (\n <>\n {siteType === 'helloSites' ? (\n <title>\n {seoCustom\n ? SEOTitle\n : SEOTitle + ' - ' + LOCALE_SPECS[locale]?.SITE_NAME}\n </title>\n ) : (\n <title>{SEOTitle}</title>\n )}\n {!hasNoCanonical && (\n <link rel=\"canonical\" href={`https://${siteUrl}${newPath}`} />\n )}\n <meta\n name=\"description\"\n content={SEODescription || SEOData.openGraph?.description}\n />\n {SEOData.schemaData && (\n <script\n type=\"application/ld+json\"\n className=\"yoast-schema-graph\"\n dangerouslySetInnerHTML={{ __html: SEOData.schemaData }}\n ></script>\n )}\n\n <meta property=\"og:locale\" content={locale} />\n <meta property=\"og:type\" content={seoType || 'website'} />\n <meta\n property=\"og:title\"\n content={SEOData.openGraph?.title || SEOTitle}\n />\n <meta\n property=\"og:description\"\n content={SEOData.openGraph?.description || SEODescription}\n />\n <meta property=\"og:url\" content={`https://${siteUrl}${newPath}`} />\n <meta property=\"og:site_name\" content={`https://${siteUrl}`} />\n <meta\n property=\"og:image\"\n content={SEOData.openGraph?.image || SEOImage || defaultImage || ''}\n />\n <meta\n property=\"og:image:secure_url\"\n content={SEOData.openGraph?.image || SEOImage || defaultImage}\n />\n <meta\n property=\"og:image:width\"\n content={\n (SEOData.openGraph?.imageWidth &&\n String(SEOData.openGraph?.imageWidth)) ||\n (SEOImageWidth && String(SEOImageWidth)) ||\n '1200'\n }\n />\n <meta\n property=\"og:image:height\"\n content={\n (SEOData.openGraph?.imageHeight &&\n String(SEOData.openGraph?.imageHeight)) ||\n (SEOImageHeight && String(SEOImageHeight)) ||\n '630'\n }\n />\n\n <meta name=\"twitter:card\" content=\"summary_large_image\" />\n <meta\n name=\"twitter:title\"\n content={SEOData.twitter?.title || SEOTitle}\n />\n <meta name=\"twitter:description\" content={SEODescription} />\n <meta\n name=\"twitter:image\"\n content={SEOData.twitter?.image || SEOImage}\n />\n </>\n )}\n\n {(siteType === 'helloSites'\n ? FAVICONS[sL] || []\n : FAVICONS.marryBaby\n ).map((item, index) => {\n if (item.type === 'link') {\n return (\n <link\n key={`favicon-${index}`}\n rel={item.rel}\n href={item.href}\n sizes={item.sizes}\n />\n )\n }\n if (item.type === 'meta') {\n return <meta key={index} name={item.name} content={item.content} />\n }\n return null\n })}\n\n {Array.isArray(metaData) && !!forcedCanonicalUrl\n ? metaData.filter(\n (d) => d.props.name !== 'canonical' && d.props.rel !== 'canonical',\n )\n : metaData}\n {forcedCanonicalUrl && <link rel=\"canonical\" href={forcedCanonicalUrl} />}\n {!SEOData.hasNoAmp && locale !== 'vi-VN' && (\n <link\n rel=\"amphtml\"\n href={`https://${siteUrl}${newPath}${hasSlash}?amp=1`}\n />\n )}\n {userId && typeof window !== 'undefined' ? (\n <script\n dangerouslySetInnerHTML={{\n __html: `window.dataLayer = window.dataLayer || []; window.dataLayer.push({'userID': '${userId}'});`,\n }}\n ></script>\n ) : null}\n </Head>\n )\n}\n\nexport { SeoHead }\n","import React, { CSSProperties, ReactNode } from 'react'\n\nimport { StyledShadow } from './index.styled'\n\ntype Props = {\n size: 'small' | 'normal' | 'medium' | 'large' | 'soft'\n children: ReactNode\n className?: string\n style?: CSSProperties\n}\n\nconst Shadow = ({ size, children, style, className }: Props) => {\n return (\n <StyledShadow style={style} className={className} data-shadow-size={size}>\n {children}\n </StyledShadow>\n )\n}\n\nexport { Shadow }\n","import React, { useEffect, useRef, useState } from 'react'\n\nimport { throttle } from 'lodash'\nimport { setCookie } from 'misc/cookieHelper'\n\nimport { CloseWhiteIcon, CloseLightIcon } from '../assets'\nimport { SiteType } from '../types'\nimport {\n StyledSiteWideContainer,\n StyledIcon,\n StyledCloseIconWrapper,\n} from './index.styled'\n\nexport type Props = {\n icon: string\n content: string\n isMobile?: boolean\n isCollapsed?: boolean\n type?: 'article' | 'category' | 'home' | 'other'\n onClose?: () => void\n setBannerClosed?: (v: boolean) => void\n\n dispatch?: (params: any) => void\n dispatchActionType?: string\n cookieName?: string\n isAmp?: boolean\n siteType?: SiteType\n _overrideCloseHandler?: () => void\n\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n dataTracking?: string\n}\n\nconst SiteWide = ({\n icon,\n content,\n isCollapsed,\n isMobile,\n type,\n onClose,\n setBannerClosed,\n\n dispatch,\n dispatchActionType,\n cookieName,\n _overrideCloseHandler,\n isAmp,\n siteType,\n\n dataEventCategory = 'Header Banner',\n dataEventAction = 'Close Click',\n dataEventLabel = '',\n dataTracking = 'true',\n}: Props) => {\n const [isLocalCollapse, setIsLocalCollapse] = useState(false)\n const [isScrollCollapse, setIsScrollCollapse] = useState(false)\n let formattedContent = content\n\n if (isAmp) {\n formattedContent = formattedContent\n .replace('data-event', 'data-vars-event')\n .replace(\n `data-vars-event-category=\"${dataEventCategory}\"`,\n `data-vars-event-category=\"${dataEventCategory}\" data-vars-tracking=\"${dataTracking}\"`,\n )\n }\n const handleCLoseSitewide = () => {\n setIsLocalCollapse(true)\n if (_overrideCloseHandler) _overrideCloseHandler()\n else {\n onClose && onClose()\n cookieName && setCookie(cookieName, 'true')\n if (type && dispatch)\n dispatch({\n type: dispatchActionType,\n payload: {\n type,\n },\n })\n }\n }\n\n const scrollY = useRef<number>(64)\n useEffect(() => {\n const scrolling = throttle(() => {\n if (window.scrollY < scrollY.current) {\n setIsScrollCollapse(false)\n } else if (window.scrollY > 64) {\n setIsScrollCollapse(true)\n }\n\n scrollY.current = window.scrollY\n }, 300)\n\n window.addEventListener('scroll', scrolling)\n return () => {\n window.removeEventListener('scroll', scrolling)\n }\n }, [])\n\n const closeOnAmp = {\n on:\n 'tap:sitewide-container.hide(),site-header.toggleClass(class=\"amp-closed\")',\n }\n const isMarryBaby = siteType === 'marryBaby'\n const closeIcon = isMarryBaby ? CloseLightIcon : CloseWhiteIcon\n\n useEffect(() => {\n setBannerClosed &&\n setBannerClosed(isLocalCollapse || isCollapsed || isScrollCollapse)\n }, [setBannerClosed, isLocalCollapse, isCollapsed, isScrollCollapse])\n\n return (\n <StyledSiteWideContainer\n data-is-mobile={isMobile}\n data-is-collapse={isLocalCollapse || isCollapsed || isScrollCollapse}\n data-is-marrybaby={isMarryBaby}\n >\n {icon ? (\n <StyledIcon data-is-marrybaby={isMarryBaby}>\n {!isAmp ? (\n <img src={icon} className=\"icon\" data-is-mobile={isMobile} />\n ) : (\n <amp-img src={icon} width=\"76\" height=\"52\" />\n )}\n </StyledIcon>\n ) : null}\n {content ? (\n <span\n className=\"content\"\n data-is-marrybaby={isMarryBaby}\n data-is-mobile={isMobile}\n dangerouslySetInnerHTML={{ __html: formattedContent }}\n />\n ) : null}\n\n <StyledCloseIconWrapper\n role=\"button\"\n tabIndex={0}\n {...closeOnAmp}\n data-is-marrybaby={isMarryBaby}\n data-vars-event-category={dataEventCategory}\n data-vars-event-action={dataEventAction}\n data-vars-event-label={dataEventLabel || ''}\n data-vars-tracking={dataTracking || ''}\n className=\"amp-close-banner\"\n onClick={handleCLoseSitewide}\n data-is-mobile={isMobile}\n >\n {isAmp ? (\n <amp-img src={closeIcon} width=\"24\" height=\"24\" />\n ) : (\n <img src={closeIcon} className=\"close-icon\" />\n )}\n </StyledCloseIconWrapper>\n </StyledSiteWideContainer>\n )\n}\n\nexport { SiteWide }\n","import React from 'react'\n\nimport {\n StyledDescriptionWrapper,\n StyledDot,\n StyledStatisticContainer,\n StyledStatisticNumberWrapper,\n} from './index.styled'\n\nexport type Props = {\n type: 'big' | 'small'\n description: string\n value: string | number\n withIcon?: JSX.Element\n isInACard?: boolean\n cardColor?: string\n className?: string\n}\n\nconst StatisticCard = ({\n type,\n description,\n value,\n withIcon,\n isInACard,\n cardColor,\n className,\n}: Props) => {\n return (\n <StyledStatisticContainer\n className={className}\n data-size={type}\n data-is-in-card={type === 'big' && isInACard}\n data-card-color={cardColor}\n >\n <StyledDescriptionWrapper>\n {type === 'small' && <StyledDot data-color={cardColor} />}\n {description}\n </StyledDescriptionWrapper>\n <StyledStatisticNumberWrapper data-size={type}>\n {type !== 'small' && withIcon}\n {value}\n </StyledStatisticNumberWrapper>\n </StyledStatisticContainer>\n )\n}\n\nexport { StatisticCard }\n","import React, { CSSProperties, ReactNode } from 'react'\n\nimport { Heading, Text } from 'components/atoms'\n\nimport {\n StyledSurveyThankyouCard,\n StyledSurveyQuestionCard,\n} from './index.styled'\n\nexport type Props = {\n thankyou?: ReactNode\n thankyouSubtitle?: ReactNode\n className?: string\n style?: CSSProperties\n}\n\nexport const SurveyThankyouCard = ({\n thankyou,\n thankyouSubtitle,\n className,\n style,\n}: Props) => {\n return (\n <StyledSurveyQuestionCard className={className} style={style}>\n <div className=\"survey-inner-wrapper\">\n <StyledSurveyThankyouCard>\n <div className=\"survey-thankyou-wrapper-inner\">\n <svg\n // width=\"122\"\n // height=\"122\"\n viewBox=\"0 0 122 122\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"survey-thankyou-icon\"\n >\n <path\n d=\"M61.5 122C94.6371 122 121.5 95.1371 121.5 62C121.5 28.8629 94.6371 2 61.5 2C28.3629 2 1.5 28.8629 1.5 62C1.5 95.1371 28.3629 122 61.5 122Z\"\n fill=\"#E3F2FF\"\n />\n <ellipse cx=\"61.5\" cy=\"110.36\" rx=\"48\" ry=\"3.36\" fill=\"#91CAFF\" />\n <path\n d=\"M82.9048 72.6663H101.5L87.597 40H35.403L21.5 72.6663H40.0952V91H83.0786L82.9048 72.6663Z\"\n fill=\"#2C74DF\"\n />\n <path\n d=\"M74.4004 15.0005H39.863C36.9017 15.0005 34.5 17.4022 34.5 20.3635V72.5769C34.5 75.5383 36.9017 77.9399 39.863 77.9399H83.1357C86.097 77.9399 88.4987 75.5383 88.4987 72.5769V29.0988L88.4987 21.0005C88.4987 17.6868 85.8124 15.0005 82.4987 15.0005H74.4004Z\"\n fill=\"white\"\n />\n <path\n d=\"M88.8529 80.1077H34.1469C31.8699 80.1077 30.06 78.3036 30.06 76.0338V65.3837C30.06 63.1139 31.8699 61.3098 34.1469 61.3098H88.8529C91.1299 61.3098 92.9398 63.1139 92.9398 65.3837V76.0338C92.9398 78.3036 91.1299 80.1077 88.8529 80.1077Z\"\n fill=\"#E4E8EC\"\n />\n <path\n d=\"M90.838 85.4512H32.1618C29.8849 85.4512 28.075 83.6471 28.075 81.3774V70.7272C28.075 68.4575 29.8849 66.6533 32.1618 66.6533H90.7796C93.0566 66.6533 94.8665 68.4575 94.8665 70.7272V81.3774C94.9249 83.6471 93.0566 85.4512 90.838 85.4512Z\"\n fill=\"white\"\n />\n <path\n d=\"M103.748 75.4919V105.755C103.748 107.675 102.172 109.247 100.245 109.247H23.0031C21.0764 109.247 19.5 107.675 19.5 105.755V75.4919C19.5 73.5713 21.0764 72 23.0031 72H42.3866C44.3133 72 45.8897 73.5713 45.8897 75.4919V80.8461C45.8897 81.1952 46.1232 81.428 46.4735 81.428H76.7749C77.1253 81.428 77.3588 81.1952 77.3588 80.8461V75.4919C77.3588 73.5713 78.9352 72 80.8618 72H100.245C102.172 72 103.748 73.5713 103.748 75.4919Z\"\n fill=\"#45A4FF\"\n />\n <path\n d=\"M51.9541 91.3767V94.4612C51.9541 96.0907 53.2386 97.3711 54.8733 97.3711H67.7179C69.3526 97.3711 70.6371 96.0907 70.6371 94.4612V91.3767\"\n stroke=\"#2C74DF\"\n strokeWidth=\"3\"\n strokeMiterlimit=\"10\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M120.5 38.0251C118.5 37.7793 117.25 39.3768 118.125 41.22L118.375 41.9573C119.125 43.8006 118 45.398 116 45.1523L115.25 45.0294C113.25 44.7836 112 46.3811 112.875 48.2244L113.25 48.9616C114 50.8049 112.875 52.4025 110.875 52.1567L110.125 52.0337C108.625 51.9109 107.5 52.7712 107.5 54\"\n stroke=\"#FE921D\"\n strokeWidth=\"1.9096\"\n strokeMiterlimit=\"10\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M1.53299 62C1.2644 63.413 2.6745 64.337 4.35323 63.8478L5.02472 63.6304C6.70346 63.087 8.11356 64.0109 7.84496 65.4783L7.7107 66.0217C7.4421 67.4348 8.8522 68.3587 10.5309 67.8696L11.2024 67.6522C12.8812 67.1087 14.2913 68.0326 14.0227 69.5L13.8884 70.0435C13.687 71.1304 14.4256 71.8913 15.5 72\"\n stroke=\"#00B16A\"\n strokeWidth=\"2.8751\"\n strokeMiterlimit=\"10\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M118 92C119.381 92 120.5 90.8807 120.5 89.5C120.5 88.1193 119.381 87 118 87C116.619 87 115.5 88.1193 115.5 89.5C115.5 90.8807 116.619 92 118 92Z\"\n stroke=\"#00B16A\"\n strokeWidth=\"2.8751\"\n strokeMiterlimit=\"10\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M82.0001 3.18747L83.1875 7.53467L87.5347 6.34727L86.3473 2.00007L82.0001 3.18747Z\"\n stroke=\"#00B16A\"\n strokeWidth=\"2.1628\"\n strokeMiterlimit=\"10\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M17.0001 28C18.1046 28 19 27.1045 19 25.9999C19 24.8954 18.1046 24 17.0001 24C15.8955 24 15 24.8954 15 25.9999C15 27.1045 15.8955 28 17.0001 28Z\"\n stroke=\"#FE921D\"\n strokeWidth=\"2.3278\"\n strokeMiterlimit=\"10\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M61.5 26.6667C54.136 26.6667 48.1667 32.6361 48.1667 40.0001C48.1667 47.3641 54.136 53.3334 61.5 53.3334C68.864 53.3334 74.8334 47.3641 74.8334 40.0001C74.8334 32.6361 68.864 26.6667 61.5 26.6667ZM69.1094 36.9427L59.776 46.2761C59.516 46.5361 59.1747 46.6667 58.8334 46.6667C58.492 46.6667 58.1507 46.5361 57.8907 46.2761L53.8907 42.2761C53.3694 41.7547 53.3694 40.9121 53.8907 40.3907C54.412 39.8694 55.2547 39.8694 55.776 40.3907L58.8334 43.4481L67.224 35.0574C67.7454 34.5361 68.588 34.5361 69.1094 35.0574C69.6307 35.5787 69.6307 36.4214 69.1094 36.9427Z\"\n fill=\"#00CB8A\"\n />\n </svg>\n {thankyou && (\n <Heading className=\"survey-thankyou-title\" tag=\"h3\">\n {thankyou}\n </Heading>\n )}\n {thankyouSubtitle && (\n <Text className=\"survey-thankyou-subtitle\" size=\"p3\">\n {thankyouSubtitle}\n </Text>\n )}\n </div>\n </StyledSurveyThankyouCard>\n </div>\n </StyledSurveyQuestionCard>\n )\n}\n","import React, { useEffect, useState } from 'react'\n\nimport { Text, TextSize, TextType } from 'components/atoms'\nimport { useId } from 'react-id-generator'\nimport { CSSProperties } from 'styled-components'\n\nimport { theme } from '../../../misc/theme'\nimport {\n StyledTabs,\n StyledTab,\n StyledTabContent,\n StyledIcon,\n} from './index.styled'\n\ntype TabContent = {\n name: string\n icon?: JSX.Element\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n textType?: TextType\n textSize?: TextSize\n textColor?: string\n}\n\nexport type Props = {\n tabContent: Array<TabContent>\n onChange?: (n: number) => void\n className?: string\n initialTab?: number\n style?: CSSProperties\n dataEventCategory?: string\n dataEventAction?: string\n dataEventLabel?: string\n}\n\nconst Tabs = ({\n style,\n initialTab,\n tabContent,\n onChange,\n className,\n dataEventCategory,\n dataEventAction,\n dataEventLabel,\n}: Props) => {\n const [activeTab, setActiveTab] = useState(initialTab || 0)\n const idList = useId(tabContent.length)\n\n useEffect(() => {\n setActiveTab(initialTab)\n }, [initialTab])\n\n return (\n <StyledTabs style={style} className={className} role=\"tablist\">\n {tabContent.map((tab, i) => (\n <StyledTab\n data-is-tab-active={activeTab === i || undefined}\n aria-selected={activeTab === i}\n role=\"tab\"\n onClick={() => {\n setActiveTab(i)\n onChange && onChange(i)\n }}\n key={idList[i]}\n data-event-category={dataEventCategory}\n data-event-action={dataEventAction}\n data-event-label={dataEventLabel}\n >\n <StyledTabContent>\n {tab.icon && <StyledIcon>{tab.icon}</StyledIcon>}\n <Text\n size={tab.textSize || 'sm'}\n type={tab.textType || 'bold'}\n color={tab.textColor || theme.colors.gray800}\n dataEventCategory={tab.dataEventCategory}\n dataEventAction={tab.dataEventAction}\n dataEventLabel={tab.dataEventLabel}\n >\n {tab.name}\n </Text>\n </StyledTabContent>\n </StyledTab>\n ))}\n </StyledTabs>\n )\n}\n\nexport { Tabs }\n","import React, { ReactNode, CSSProperties } from 'react'\n\nimport { Text, Props as TextProps } from '../text'\nimport { StyledTag } from './index.styled'\n\nexport type Props = {\n children: ReactNode\n type?:\n | 'standard'\n | 'yellow'\n | 'red'\n | 'green'\n | 'teal'\n | 'blue'\n | 'pink'\n | 'violet'\n | 'grey'\n | 'sponsored'\n isSquared?: boolean\n isLight?: boolean\n isInline?: boolean\n isSelected?: boolean\n hasMorePadding?: boolean\n isLink?: boolean\n className?: string\n style?: CSSProperties\n textProps?: TextProps\n}\n\nconst Tag = ({\n type,\n children,\n style,\n isInline,\n isSquared = false,\n className,\n isLight,\n hasMorePadding,\n isLink,\n isSelected,\n textProps = {\n size: 'sm',\n },\n}: Props) => {\n const textColor = textProps.color\n ? { '--text-props-color': textProps.color }\n : {}\n\n return (\n <StyledTag\n data-is-squared={isSquared || undefined}\n data-tag-type={type}\n data-is-light={isLight || undefined}\n data-has-more-padding={hasMorePadding || undefined}\n data-is-inline={isInline || undefined}\n style={{ ...style, ...textColor } as CSSProperties}\n className={className}\n data-is-selected={isSelected || undefined}\n data-is-link={isLink || undefined}\n tagType={type}\n isInline={isInline}\n tagHasMorePadding={hasMorePadding}\n tagIsLight={isLight}\n tagIsSquared={isSquared}\n tagIsALink={isLink}\n >\n <Text {...textProps}>{children}</Text>\n </StyledTag>\n )\n}\n\nexport { Tag }\n","import React, { CSSProperties } from 'react'\n\nimport {\n StyledToggle,\n StyledToggleIcon,\n StyledToggleLabel,\n} from './index.styled'\n\nexport type Props = {\n id: string\n checked: boolean\n className?: string\n style?: CSSProperties\n label?: string\n onChange?: () => void\n}\n\nconst Toggle = ({ className, id, onChange, checked, style, label }: Props) => (\n <StyledToggle className={className} style={style}>\n <input type=\"checkbox\" id={id} onChange={onChange} checked={checked} />\n <label htmlFor={id}>\n <StyledToggleIcon />\n {label && <StyledToggleLabel>{label}</StyledToggleLabel>}\n </label>\n </StyledToggle>\n)\n\nexport { Toggle }\n","import React, { CSSProperties } from 'react'\n\nimport { StyledUnderlinedLink } from './index.styled'\n\nexport type Props = {\n size: 'lg' | 'md' | 'sm' | 'xm'\n link: JSX.Element\n style?: CSSProperties\n isDisabled?: boolean\n className?: string\n}\n\nconst UnderlinedLink = ({\n size,\n isDisabled,\n className,\n link,\n style,\n}: Props) => (\n <StyledUnderlinedLink\n className={className}\n data-size={size}\n style={style}\n data-disabled={isDisabled || undefined}\n >\n {link}\n </StyledUnderlinedLink>\n)\n\nexport { UnderlinedLink }\n","import React from 'react'\n\nimport { Button } from '../button'\nimport {\n StyledDefaultButtonContent,\n StyledElementContainer,\n StyledIconWrapper,\n StyledUploader,\n} from './index.styled'\n\nexport type Props = {\n type: 'badge' | 'button'\n onFileSelected: (f: FileList) => void\n inputId: string\n withIcon?: JSX.Element\n multiple?: boolean\n fileAcceptType?: string\n withElement?: JSX.Element\n value?: string\n className?: string\n}\n\nconst Uploader = ({\n type,\n withIcon,\n onFileSelected,\n inputId,\n withElement,\n fileAcceptType,\n multiple,\n value,\n className,\n}: Props) => {\n const onClick = () => {\n ;(document.querySelector(\n '#uploader-input-' + inputId,\n ) as HTMLElement)?.click()\n }\n\n const getBadge = () => (\n <StyledElementContainer\n onClick={onClick}\n data-is-attached-to-element={!!withElement}\n >\n {withElement}\n <StyledIconWrapper data-is-attached-to-element={!!withElement}>\n {withIcon}\n </StyledIconWrapper>\n </StyledElementContainer>\n )\n\n const getButton = () =>\n withElement ? (\n <div onClick={onClick}>{withElement}</div>\n ) : (\n <Button\n size=\"md\"\n color=\"secondary\"\n className=\"default-button\"\n icon={withIcon}\n onClick={onClick}\n >\n <StyledDefaultButtonContent>\n <svg\n id=\"prefix__Layer_1\"\n data-name=\"Layer 1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 13.5 13.5\"\n >\n <defs>\n <style>\n {\n '.prefix__cls-1{fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}'\n }\n </style>\n </defs>\n <title>{'upload'}</title>\n <path\n className=\"prefix__cls-1\"\n d=\"M14 10v2.67A1.33 1.33 0 0112.67 14H3.33A1.33 1.33 0 012 12.67V10M11.33 5.33L8 2 4.67 5.33M8 2v8\"\n transform=\"translate(-1.25 -1.25)\"\n />\n </svg>\n {'Upload Image'}\n </StyledDefaultButtonContent>\n </Button>\n )\n\n return (\n <StyledUploader className={className}>\n {type === 'badge' ? getBadge() : getButton()}\n <input\n id={'uploader-input-' + inputId}\n accept={fileAcceptType}\n multiple={multiple}\n type=\"file\"\n style={{ display: 'none' }}\n onChange={(e) => {\n onFileSelected(e.target.files)\n }}\n value={value}\n />\n </StyledUploader>\n )\n}\n\nexport { Uploader }\n"],"names":["RenderPagiWithDots","_a","pagesAmount","activePage","handlePageChange","handleClick","href","_b","queryPageName","pages","__spreadArray","Array","map","__v","i","_c","useState","slice","length","visiblePages","setVisiblePages","useEffect","React","Fragment","createElement","StyledPaginationBlock","onClick","key","concat","undefined","formatUrlWithPageParam","Radio","type","size","label","name","checked","value","className","isDisabled","onChange","dataEventCategory","dataEventAction","dataEventLabel","StyledRadio","id","htmlFor","ThumbLabel","rangeRef","values","index","useThumbOverlap","labelValue","labelStyle","StyledLabel","style","StyledDot","Checkbox","isRectangle","StyledCheckbox","disabled","StarEmptyIcon","props","__assign","viewBox","fill","xmlns","d","width","height","maskUnits","x","y","mask","Icon","Ask","BarChart","Booking","Bookmark","Community","EditSpecial","Family","Font","Heart","Home","Like","MyCommunity","PlusSpecial","Recalculate","Scale","Share","Stethoscope","CardAuthor","avatarImg","authorName","authorLink","uploadTime","StyledAuthor","Text","CardExpert","isMobile","link","specialty","isBookmarked","dataEventActionForBookmark","dataEventLabelForBookmark","Heading","tag","color","theme","colors","gray600","gray500","StyledExpertName","BreadcrumbItem","LinkComponent","page","isLast","onChangePage","isDropdown","dropdownItems","Dropdown","options","placeholder","placeholderIcon","StyledTextLink","title","MONTHS_TRANSLATION","cleanUpModalShow","document","querySelectorAll","body","classList","remove","cleanUpDisabledScroll","overflow","paddingRight","n","require$$0","t","prototype","call","e","Math","floor","Date","now","r","removeAttribute","setAttribute","a","isArray","HTMLElement","NodeList","o","raw","cancelable","defaultPrevented","preventDefault","u","stopPropagation","c","add","addListener","addEventListener","push","input","this","nativeEvent","changedTouches","targetTouches","detail","identifier","idChanged","screenX","pageX","screenY","pageY","purge","forEach","removeListener","removeEventListener","s","min","max","l","getBoundingClientRect","offsetHeight","offsetWidth","f","p","round","v","toString","Object","getOwnPropertyNames","h","current","m","assign","arguments","hasOwnProperty","apply","g","b","w","k","M","T","C","P","E","z","abs","O","indexOf","reduce","origin","rel","I","S","A","L","D","loop","distance","timestamp","_","emit","rtl","portion","maxIdx","minIdx","position","progress","slides","slidesLength","details","absToRel","distToIdx","idxToDist","init","trackConfig","range","track","Number","to","velocity","lastTimestamp","time","pow","mode","dist","dur","duration","easing","earlyExit","rubberband","animator","start","moveToIdx","stop","on","vertical","window","innerHeight","innerWidth","drag","dragSpeed","container","passive","scrollHeight","clientHeight","scrollWidth","clientWidth","scrollTop","scrollLeft","overflowY","overflowX","active","requestAnimationFrame","renderMode","transform","getComputedStyle","getPropertyValue","matches","__media","breakpoints","matchMedia","spacing","setTimeout","selector","destroy","prev","next","update","defaultAnimation","targetIdx","cancelAnimationFrame","initial","console","error","Arrow","isLeft","scheme","StyledArrow","img","StyledCardSkeleton","styled","div","templateObject_1","__makeTemplateObject","StyledContainer","templateObject_2","StyledListContainer","templateObject_3","neutral100","StyledCategoryContainer","templateObject_4","white","sizes","fsParagraph4","blue50","gray800","fwBold","StyledCategory","templateObject_5","StyledCategoryIcon","templateObject_6","StyledCategoryItemAll","templateObject_7","MediaQueries","mbDown","primaryBase","mbColors","pink","StyledImageWrapper","templateObject_8","StyledMenuPopupWrapper","templateObject_9","Z_INDEX","menuCategoryPopupWrapper","StyledMenuPopupContainer","templateObject_10","menuCategoryPopupContainer","neutral50","StyledMenuPopupInner","templateObject_11","StyledHealthCategoriesContainer","templateObject_12","StyledCategoryItem","templateObject_13","fwRegular","StyledSubCategoryItem","templateObject_14","StyledCloseWrapper","templateObject_15","StyledSameLineIndicator","templateObject_16","lightGray","StyledMasterMenuContainer","StyledMenuContainer","StyledCategoryButtonWrapper","StyledScrollingCategories","StyledCardSpecialty","StyledScrollingWrapper","StyledScrollingContent","StyledStickyHeader","StyledButtonContainerWrapper","templateObject_17","templateObject_18","templateObject_19","templateObject_20","templateObject_21","templateObject_22","templateObject_23","StyledUnderLine","templateObject_24","StyledServiceListMenuSearchInputWrapper","templateObject_25","StyledHeaderContainer","header","headerContainerHome","headerContainerPopup","headerContainerPopupSUbLevel","StyledMenuIcon","StyledMenuSearchInput","menuSearchInputPopup","menuSearchInputDisplayIcon","menuSearchPopup","StyledDesktopHeaderWrapper","lightPink","StyledDesktopHeader","StyledLeftGroup","StyledLogoWrapper","StyledDesktopMenuSearchInput","StyledRightGroup","StyledMenuIconWrapper","StyledHeaderMenuItem","secondaryDark","dark","StyledProfileMenu","StyledCloseButton","StyledAmpCategoryCard","StyledAvatar","secondaryBase","SearchIcon","fillRule","clipRule","StyledAmpSidebar","StyledAmpSearchBox","gray200","AmpSidebar","locale","categoriesSSR","healthToolsSSR","spotlightsSSR","serviceUrls","together","care","basePath","searchPlaceholder","useTranslation","layout","maxWidth","paddingBottom","role","tabIndex","stroke","strokeWidth","strokeLinecap","Logo","LOCALE_SPECS","LOGO_TYPE","isAmp","badge","src","SehatBadge","readOnly","DiscoverIcon","HealthToolsIcon","TOGETHER_MENU_COUNTRIES_ENABLED","includes","TOGETHER_URL_FE","CARE_MENU_COUNTRIES_ENABLED","CARE_URL_FE","HelloCareIcon","marginBottom","fontWeight","permalink","displayName","textDecoration","DISCOVER_URL_FE","alt","hidden","category","healthTools","healthtool","icon","StyledFooter","footer","mbUp","neutral500","StyledFlag","Flag","url","Footer","_12","footerInfo","footerMenu","menu","as","backgroundColor","Container","general","logo","_d","_e","content","Button","social","_f","_h","_g","socials","idx","_k","_j","items","bigLink","domainLocales","_l","menu_title","_o","_m","informationLink","_p","_r","_q","hellohealthlink","_s","branch","_t","_u","flagLink","flag","_v","verified","_x","_w","_z","_y","image","_1","_0","_2","copyright","_3","_4","_5","_6","_7","_8","_9","_11","_10","elementProps","__rest","StyledText","MarryBabyText","StyledFooterContainer","StyledMiniFooterContainer","StyledFooterMenu","StyledCompanyInfo","StyledInfoContainer","midGray","StyledRoundDecorator","MarryBabyFooter","socialLinks","MARRY_BABY_DEFAULT_FOOTER","SOCIAL_LINKS","facebookLink","instagramLink","zaloLink","youtubeLink","copyrightText","logoType","Divider","padding","target","textTransform","fwSemiBold","x1","y1","x2","y2","gradientUnits","stopColor","offset","cx","cy","gradientTransform","CustomFooter","siteType","ampNextArticle","routerQuery","slug","dangerouslySetInnerHTML","__html","articleOne","JSON","stringify","articleTwo","articleThree","separator","fontSize","marginLeft","marryBabySocialLinks","StyledHomeContainer","hasStickyBottomBar","StyledAmpHomeContainer","StyledMenuLanguageLabelContainer","StyledLanguageChangeLink","Layout","children","SEOData","pathname","routerPathname","query","Head","nextHead","seoCustom","userId","forcedCanonicalUrl","usingDefaultHead","isProduction","process","env","totalPages","currentPage","SEOTitle","SEODescription","SEOImage","seoType","SEOImageWidth","SEOImageHeight","customMetaData","isIndexable","hasNoCanonical","robotIndex","NEXT_PUBLIC_BASE_API_URL","newPath","canonicalUrl","keys","queryItem","replace","join","metaData","sL","siteUrl","hasSlash","endsWith","apiMetaData","paginatedTitle","match","paginatedNumber","fD","metaDataImage","parse","htmlReactParser","trim","find","data","property","DefaultOgImage","openGraph","imageWidth","String","imageHeight","defaultImage","charSet","customMeta","async","SITE_NAME","description","schemaData","twitter","FAVICONS","marryBaby","item","filter","hasNoAmp","StyledInnerMenuPopupContainer","StyledHealthToolItem","CategorySkeleton","marginTop","Skeleton","MenuCareList","careSpecialties","onSelectCareSpecialty","isLoading","desktopPopupType","onClosePopup","careSpecialty","getCareSearchUrl","specialtySlug","thumbnail","LOCALIZED_SLUGS","SPECIALTIES","strokeLinejoin","display","StyledWrapper","StyledCategoryItemDesktop","StyledSpotlightItemAll","SpotlightSkeleton","SpotlightsList","isDisplayed","spotlights","spotlight","pointerEvents","HelloSitesMenuCategoriesList","categories","spotlightsList","onSelectCategory","childCates","categoryName","subCategory","subIndex","categoryIndex","subCat","StyledMarryBabyListContainer","StyledMarryBabyIconContainer","StyledMarryBabySubMenuItem","StyledMarryBabyCategoryContainer","StyledMarryBabyCategoryCollapsibleContainer","StyledMarryBabyMenuPopupWrapper","StyledFullScreenLayer","StyledMarryBabyMenuPopupContainer","StyledMarryBabyHealthCategoriesContainer","MarryBabyMenuCategoriesList","MARRY_BABY_FE","expandingItem","setExpandingItem","isClosingItem","setIsClosingItem","alignItems","justifyContent","imageColor","iconUrl","MenuCategoriesList","discoverApiDomain","callApiHandler","StyledCategoryInfo","HelloSitesMenuCommunitiesList","communities","onSelectCommunity","community","communitySlug","isSetToSubMenu","MarryBabyMenuCommunitiesList","MenuCommunitiesList","togetherApiDomain","StyledSeeMore","StyleHealthToolByCategory","HealthToolsList","onSelectHealthTool","isDesktop","HEALTH_TOOL_URL_FE","isGrouped","healthTool","startsWith","HelloSitesMenuHealthToolsList","healthToolsByCategory","STATIC_PAGES","categoryHealthTool","HEALTH_TOOLS","MarryBabyMenuHealthToolsList","MenuHealthToolsList","StyledCard","CardSkeleton","MenuSectionCard","isActive","objectFit","ArrowLeftPopupIcon","ClosePopupIcon","HamburgerIcon","NavigationBarMobile","isStatic","isCollapsed","sitewideBannerShown","sitewideBanner","sitewideBannerClosed","setSitewideBannerClosed","onMenuClick","isSearchIconDisplayed","SSO_URL","HOME_PAGE_URL","languageMenu","enabledExperimentalCareHeader","onCareHeaderClick","isInit","sponsorComponent","currentUrl","userInfo","currentPopupType","avatar","profileMenu","isLoginButtonDisplayed","goToLogin","isSearchBarDisplay","onSearchValueChanged","keyPressed","isSponsored","hasSponsoredBanners","sponsoredBy","isShowingSiteWideBanner","useHeaderHeightHook","isSiteWide","headerRef","headerHeight","ref","isValidElement","cloneElement","setBannerClosed","background","paddingLeft","gap","paddingTop","left","bottom","opacity","zIndex","justifySelf","LockIcon","PureInput","minHeight","minWidth","onKeyPress","autoFocus","displayIcon","useRef","setHeaderHeight","debounceSetHeader","useCallback","debounce","newHeaderHeight","scrollY","defaultHeaderHeight","useMemo","res","NavigationBar","statics","openPopup","onTopBarAppears","onSearchChange","onSearchKeyPress","asPath","routerAsPath","tone","menuItems","_isInit","setIsCollapsed","isCloseBookmarkTooltips","setIsCloseBookmarkTooltips","setIsInit","collapsedMenu","searchIconDisplayed","username","Avatar","avatarUrl","firstLetter","toUpperCase","currentLocation","location","isBrowser","scrolling","throttle","stickyContainerHeight","querySelector","getElementById","Boolean","desktopMenuItems","getElementsByClassName","focus","maxHeight","borderRadius","MenuSubItemListCategory","selectedMenuMainItem","onCategoryClick","ChevronRightWhiteIcon","MenuSubItemListCommunities","onCommunityClick","subCommunities","setSubCommunities","setIsLoading","communityId","__awaiter","getTogetherDefaultCommunitiesSubMenuApiPath","getTogetherMarryBabyCommunitiesSubMenuApiPath","communityTopicResults","sent","topics","communityTopicFormatted","formatTogetherTopic","menuIcons","lightOrange","lightBlue","MenuItem","isGoingForward","onServiceClicked","flex","flexDirection","flexShrink","boxShadow","border","animationDuration","animationName","MarryBabyMobileMenuShelf","activeItem","currentActiveTab","setCurrentActiveTab","MenuServiceList","isMobileMenuOpened","isMainMenuOpened","togetherCommunities","closePopup","popupType","onMobileMenuClick","discover","sso","activeMenuService","isOnSubLevel","setIsOnSubLevel","searchResultCategories","setSearchResultCategories","setSelectedMenuMainItem","menuSubList","setMenuSubList","headerHideOnSearch","setHeaderHideOnSearch","activeService","setActiveService","enableAnimation","setEnableAnimation","onSubMenuItemBack","LOCALE_SPEC","toLowerCase","search","getCurrentBaseUrl","site","onFocus","service","StyledPopup","StyledButtonGroup","NavigationLogoutPopup","callPostLogOutApi","openLogoutPopup","onCloseHandler","onLogoutHandler","toggle","Popup","isOpen","closeIcon","CloseLightIcon","onClose","reload","StyledPopupWrapper","targetAvatar","ProfilePopup","UP_BASEPATH","ENABLE_CARE_PROFILE_MENU_LOCALES","ENABLE_COMMUNITY_PROFILE_MENU_LOCALES","dispatchLogout","userProfileRouterPush","isUserProfileNavigatorMenuHidden","isMyHealthEnabled","handleClickOnMenu","TranslationsProvider","UserProfileNavigation","themeName","onClickLogout","onClickMenuItem","onClickNavigationCard","onClickMyProfileButton","StyledSelectionContainer","StyledSelectionLabel","StyleSelectionPopup","StyledOption","gray100","StyledPopupBackground","TooltipSelection","selected","showSelected","showIndicator","setIsOpen","option","checkDisplayStyle","checkingClass","desktopPopupCategories","desktopPopupCategoriesStyle","NavigationLayout","MetaPageTitle","MetaPageDescription","MetaPageImage","footerInfoSSR","healthToolsByCategorySSR","careSpecialtiesSSR","togetherCommunitiesSSR","spotlightsListSSR","SSO_PATHS","SSO_USER_PROFILE","logoutHandlers","isLogoutPopupOpened","onLogout","marryBabyApiDomain","linkedinLink","twitterLink","defaultLocaleSpecs","defaultStaticPages","DISCOVER_URL_FE_CUSTOM","menuActionType","careApiDomain","_13","_15","_16","userState","_17","languageOptions","isSearchBarDisplayProps","ampSubBar","_18","_19","dueDatePopup","welcomePopup","_20","acceptCookiePopup","_21","asPathname","split","selectedLanguage","languageChange","_22","setFooterInfo","_23","setCategories","_24","setHealthTools","_25","setHealthToolsByCategory","_26","setCareSpecialties","_27","setCommunities","_28","setSpotlightsList","mobileSideMenu","mobileSideMenuStyle","mobileSideMenuLeft","isMobilePopupOpened","_29","isMobilePopupOpenedFlag","setIsMobilePopupOpenedFlag","desktopPopupCategoriesDisplay","desktopPopupHealthToolsDisplay","desktopPopupCommunitiesDisplay","desktopPopupCareSpecialtiesDisplay","_30","setPopupType","languageSelectedLabel","isLoggedIn","onMenuCollapsed","closeMobilePopup","siteName","SITE_NAME_FORMATTED","services","niceName","documentElement","source","email","insider_object","user","uuid","gdpr_optin","email_optin","sign_up","log_in","fetch","getDiscoverDefaultFooterApiPath","getMarryBabyDefaultFooterApiPath","json","footerResult","status","footers","getDiscoverDefaultCategoriesApiPath","response","categoriesResults","categoriesFormatted","formatCategory","getDiscoverDefaultSpotlightsApiPath","perPage","orderBy","spotlightsResults","articles","spotlightsFormatted","formatSpotlightsList","checkAvailableSpotlight","getDiscoverDefaultHealthToolsByCategoryApiPath","getMarryBabyDefaultHealthToolsApiPath","healthToolsResults","healthToolsFormatted","formatHealthToolTypeCategory","formatHealthTool","getCareDefaultSpecialtiesApiPath","careSpecialtiesResults","_status","_data","specialties","careSpecialtiesFormatted","getTogetherDefaultCommunitiesApiPath","getTogetherMarryBabyCommunitiesApiPath","communitiesResults","communitiesFormatted","formatCommunity","hideAMP","StyledSiteWideContainer","cobalt","StyledIcon","StyledCloseIconWrapper","StyledStickySponsoredBy","StyledStickySponsoredPopup","SponsoredPopup","ADVERTISING_SPONSOR_POLICY","DiscoverFooter","useTranslations","text","contentIcon","StyledAlert","StyledContent","StyledClose","ampNextArticles","filteredAmpArticles","ampArticle","articleLink","banner","categoryLink","dataEventActionForBanner","dataEventActionForCategory","dataEventActionForTitle","dataEventCategoryForBanner","dataEventCategoryForBookmark","dataEventCategoryForCategory","dataEventCategoryForTitle","dataEventLabelForBanner","dataEventLabelForCategory","dataEventLabelForTitle","direction","hasAffiliate","isBookmark","isBookmarkDisplayed","onBookmark","onClickCategoryName","section","styleBanner","styleLabel","styleTitle","headingTag","descriptionTag","categoryLabelTag","StyledAnchor","rx","amount","StyledBadge","notificationType","notificationSize","notificationColor","hasIcon","upperCase","StyledBorderHeading","mappedList","idList","useId","StyledBreadcrumb","StyledSeparator","row","column","classNameLeftArrow","classNameRightArrow","isDotsShown","isArrowShown","currentSlide","setCurrentSlide","loaded","setLoaded","useKeenSlider","slideChanged","slider","created","sliderRef","instanceRef","newChildren","itemsPerPage","chunk","StyledCarousel","itemsInRow","imgBanner","StyledCategoryCard","onChanges","newValues","removeIndex","findIndex","splice","StyledCheckboxGroup","policiesUrl","onAcceptClick","translations","acceptButton","policiesButton","useDefaultPosition","trackingAttributes","StyledAcceptCardContainer","StyledTitleSection","StyledDescription","StyledAcceptButton","StyledPoliciesButton","alignRight","displayDateFormat","CustomInput","pickedDate","disabledDays","modifiers","UnHideOnClickOutside","initialMonth","isDatePickerShown","dateFormatter","format","month","setMonth","datePickerContainer","datePicker","monthLabels","handleDateClick","contains","hideDayPicker","currentYear","getFullYear","fromMonth","toMonth","YearMonthForm","date","years","handleChange","form","year","StyledCaptionWrapper","getMonth","StyledPickerContainer","DayPickerInput","inputProps","keepFocus","classNames","overlayWrapper","overlay","component","forwardRef","_ref","onDayPickerHide","onDayPickerShow","dayPickerProps","selectedDays","canChangeMonth","enableOutsideDaysClick","firstDayOfWeek","captionElement","defaultMonthLabels","localeUtils","getMonths","formatDate","hideOnDayClick","onDayChange","selectedDay","day","showOverlay","onUploadSelected","isDropdownOpen","setIsDropdownOpen","showDropdown","inputList","accept","fileAcceptedType","multiple","log","files","defaultFileIcon","clipPath","downloadIcon","uploadIcon","StyledDropdown","onBlur","StyledDropdownName","StyledDropdownList","StyledDropdownOption","dropdownId","click","onUpload","open","backgroundPanelStyle","isOpenProp","onOpen","disableBackdropClick","animationType","handleClose","StyledFloatButtonGroup","StyledFloatButtonGroupBackgroundPanel","StyledFloatButtonGroupContent","StyledFloatButtonGroupItemsWrapper","StyledFloatButtonGroupButton","transitionDelay","TRANSITION_TIMING","keepMenuOnClick","StyledFloatButtonGroupButtonLabel","StyledFloatButtonGroupButtonIcon","StyledFloatButtonGroupToggleIcon","columns","columnsDesktop","gridTemplateColumns","gridTemplateColumnsDesktop","justifyChildren","StyledGrid","iconPosition","StyledIconText","isStaticBackdrop","mounted","setMounted","elRef","scrollBarWidth","useScrollbarSize","modalsRoot_1","el","append","appendChild","removeChild","classes","createPortal","StyledModalWrapper","StyledModalMask","StyledModal","NaContext","Provider","translation","defaultTranslation","NavigationLayoutElement","_href","setActivePage","totalArray","StyledPagination","StyledPageBlock","percent","StyledProgress","numberOfStep","activeStep","labelPrefix","detailSteps","trackLength","setTrackLength","Track","trackClassName","StyledTrackContainer","StyledTrack","stepTrack","StyledSlider","from","step","StyledStep","StyledStepLabel","breadcrumbIcon","breadcrumb","StyledBreadcrumbContainer","step_index","StyledBreadcrumbWrapper","detailTrack","StyledDetailStep","StyledDetailStepIndicatorExternal","StyledDetailStepIndicator","StyledDetailStepLabel","StyledDetailStepDescription","resizeTrack","progressTrack","group","check","setCheck","handleOnChange","StyledRadioGroup","renderActivated","star","totalStars","onSelect","hideEmptyStars","numberOfFullStars","numberOfHalfStars","tempStar","setTempStar","tempFullStars","tempHalfStars","StyledRateStars","onMouseOver","onMouseLeave","StarFullIcon","StarHalfIcon","StyledShadow","dispatch","dispatchActionType","cookieName","_overrideCloseHandler","dataTracking","isLocalCollapse","setIsLocalCollapse","isScrollCollapse","setIsScrollCollapse","formattedContent","isMarryBaby","setCookie","payload","heading","COLORS","localValue","setLocalValue","Range","onFinalChange","renderThumb","StyledThumb","renderTrack","trackStyles","getTrackBackground","onMouseDown","onTouchStart","withIcon","isInACard","cardColor","StyledStatisticContainer","StyledDescriptionWrapper","StyledStatisticNumberWrapper","sponsoredType","showPopup","setShowPopup","verticalAlign","InfoLightIcon","marginRight","thankyou","thankyouSubtitle","StyledSurveyQuestionCard","StyledSurveyThankyouCard","ry","strokeMiterlimit","initialTab","tabContent","activeTab","setActiveTab","StyledTabs","tab","StyledTab","StyledTabContent","textSize","textType","textColor","isInline","isSquared","isLight","hasMorePadding","isLink","isSelected","textProps","StyledTag","tagType","tagHasMorePadding","tagIsLight","tagIsSquared","tagIsALink","StyledToggle","StyledToggleIcon","StyledToggleLabel","StyledUnderlinedLink","onFileSelected","inputId","withElement","fileAcceptType","StyledUploader","StyledElementContainer","StyledIconWrapper","StyledDefaultButtonContent"],"mappings":"0vBA+BMA,EAAqB,SAACC,GAC1B,IAAAC,gBACAC,eACAC,qBACAC,gBACAC,SACAC,EAAAN,EAAAO,cAAAA,OAAa,IAAAD,EAAG,OAAMA,EAEhBE,EAAQC,EAAAA,cAAI,GAAAC,MAAMT,IAAc,GAAAU,KAAI,SAACC,EAAKC,GAAM,OAAAA,EAAI,KAEpDC,EAAkCC,WACtCb,GAAc,EACVM,EAAMQ,MAAM,EAAG,GACfd,GAAcM,EAAMS,OAAS,EAC7BT,EAAMQ,MAAMR,EAAMS,OAAS,EAAGT,EAAMS,QACpCT,EAAMQ,MAAMd,EAAa,EAAGA,EAAa,IALxCgB,OAAcC,OAkBrB,OAVAC,EAAAA,WAAU,WACJlB,GAAc,EAChBiB,EAAgBX,EAAMQ,MAAM,EAAG,IACtBd,GAAcM,EAAMS,OAAS,EACtCE,EAAgBX,EAAMQ,MAAMR,EAAMS,OAAS,EAAGT,EAAMS,SAEpDE,EAAgBX,EAAMQ,MAAMd,EAAa,EAAGA,EAAa,MAE1D,CAACA,IAGFmB,wBAACC,EAAAA,SAAQ,KACNpB,EAAa,GACZmB,EAAAA,sBAACC,EAAQA,SAAA,KACPD,UAAAE,cAACC,EAAqBA,sBAAC,CAAAC,QAAS,WAAM,OAAAtB,EAAiB,KACpDE,EACCgB,EAAG,QAAAE,cAAA,IAAA,CAAAlB,KAAMA,EAAMoB,QAASrB,GACrB,GAGH,GAIJiB,EAAAA,QAACE,cAAAC,EAAAA,sBAAiD,KAAA,QAIrDN,EAAaP,KAAI,SAACE,GAAM,OACvBQ,EAAA,QAAAE,cAACC,EAAAA,sBAAqB,CACpBE,IAAK,UAAG,aAAY,KAAAC,OAAId,GACN,mBAAAA,IAAMX,QAAc0B,EACtCH,QAAS,WAAM,OAAAtB,EAAiBU,KAE/BR,EACCgB,EAAAA,2BACEhB,KAAMwB,EAAAA,uBAAuBxB,EAAMQ,EAAGN,GACtCkB,QAASrB,GAERS,GAGH,MAKLX,EAAaM,EAAMS,OAAS,GAC3BI,EAAAA,QAAAE,cAACD,EAAAA,SAAQ,KACPD,EAAAA,QAAAE,cAACC,wBAAiD,KAAA,OAElDH,EAAC,QAAAE,cAAAC,EAAqBA,sBAAC,CAAAC,QAAS,WAAM,OAAAtB,EAAiBK,EAAMS,UAC1DZ,EACCgB,EACE,QAAAE,cAAA,IAAA,CAAAlB,KAAMwB,EAAsBA,uBAACxB,EAAMG,EAAMS,OAAQV,GACjDkB,QAASrB,GAERI,EAAMS,QAGTT,EAAY,WC1FpBsB,EAAQ,SAAC9B,GACb,IAAA+B,SACAzB,EAAAN,EAAAgC,KAAAA,OAAI,IAAA1B,EAAG,QAAOA,EACd2B,EAAKjC,EAAAiC,MACLC,EAAIlC,EAAAkC,KACJC,EAAOnC,EAAAmC,QACPC,EAAKpC,EAAAoC,MACLC,cACAvB,EAAAd,EAAAsC,WAAAA,OAAU,IAAAxB,GAAQA,EAClByB,EAAQvC,EAAAuC,SACRC,EAAiBxC,EAAAwC,kBACjBC,EAAezC,EAAAyC,gBACfC,EAAc1C,EAAA0C,eAEd,OACErB,UAAAE,cAACoB,EAAWA,YAAA,CAAA,gBACKL,EACfD,UAAWA,EAAS,YACTN,EAAI,YACJC,GAEXX,EAAA,QAAAE,cAAA,QAAA,CACEQ,KAAK,QACLI,QAASA,EACTD,KAAMA,EACNU,GAAI,UAAGV,EAAI,KAAAP,OAAIS,GACfA,MAAOA,EACPG,SAAU,WAAM,OAAAA,EAASH,IACJ,sBAAAI,sBACFC,EAAe,mBAChBC,IAEpBrB,EAAAA,QAAAE,cAAA,QAAA,CAAOsB,QAAS,GAAGlB,OAAAO,EAAQ,KAAAP,OAAAS,IAAUH,KCzB3C,SAASa,EAAW9C,GAClB,IAAA+C,aACAC,EAAMhD,EAAAgD,OACNC,EAAKjD,EAAAiD,MAOC3C,EAA2B4C,EAAeA,gBAC9CH,EACAC,EACAC,EACA,EACA,OACA,SAACb,GAAU,OAAAA,KANNe,EAAU7C,EAAA,GAAE8C,EAAU9C,EAAA,GAS7B,OACEe,UAAAE,cAAAF,EAAA,QAAAC,SAAA,KACED,UAACE,cAAA8B,EAAAA,0BAAwBJ,EAAOK,MAAOF,GACpCD,GAEH9B,EAAA,QAAAE,cAACgC,EAASA,UAAa,CAAA,aAAAN,KAKvB,ICxCAO,EAAW,SAACxD,OAChBiC,EAAKjC,EAAAiC,MACLC,EAAIlC,EAAAkC,KACJC,EAAOnC,EAAAmC,QACPE,EAASrC,EAAAqC,UACTC,EAAUtC,EAAAsC,WACVC,EAAQvC,EAAAuC,SACRH,EAAKpC,EAAAoC,MACLqB,EAAWzD,EAAAyD,YAEX,OACEpC,EAAC,QAAAE,cAAAmC,EAAcA,eACb,CAAArB,UAAWA,EAAS,gBACLC,QAAcV,EACV,oBAAA6B,QAAe7B,oBACjBK,GAEjBZ,EAAA,QAAAE,cAAA,QAAA,CACEQ,KAAK,WACLI,QAASA,EACTD,KAAMA,EACNK,SAAU,WAAM,OAAAA,EAASH,GAAQD,IACjCwB,SAAUrB,EACVF,MAAOA,EACPQ,GAAI,UAAGV,EAAI,KAAAP,OAAIS,GAAO,kBACLH,KAEjBwB,GAAepC,EAAAA,QAAOE,cAAA,QAAA,CAAAsB,QAAS,GAAGlB,OAAAO,EAAQ,KAAAP,OAAAS,IAAUH,KCxCtD2B,EAAgB,SAACC,GACrB,OACExC,EAAA,QAAAE,cAAA,MAAAuC,EAAAA,SAAA,GACMD,EAAK,CACTE,QAAQ,YACRC,KAAK,OACLC,MAAM,+BAEN5C,UACEE,cAAA,OAAA,CAAA2C,EAAE,wZACFF,KAAK,cCVPJ,EAAgB,SAACC,GACrB,OACExC,EAAAA,0CACMwC,EAAK,CACTM,MAAM,KACNC,OAAO,KACPL,QAAQ,YACRC,KAAK,OACLC,MAAM,+BAEN5C,UACEE,cAAA,OAAA,CAAA2C,EAAE,wZACFF,KAAK,cCZPJ,EAAgB,SAACC,GACrB,OACExC,EAAA,QAAAE,cAAA,MAAAuC,EAAAA,SAAA,GACMD,EAAK,CACTE,QAAQ,YACRC,KAAK,OACLC,MAAM,+BAEN5C,EAAA,QAAAE,cAAA,OAAA,CACE2C,EAAE,oaACFF,KAAK,YAEP3C,EACE,QAAAE,cAAA,OAAA,CAAAqB,GAAG,kBACHyB,UAAU,iBACVC,EAAE,IACFC,EAAE,IACFJ,MAAM,KACNC,OAAO,MAEP/C,EAAAA,QAAAE,cAAA,OAAA,CAAM+C,EAAE,IAAIH,MAAM,KAAKC,OAAO,KAAKJ,KAAK,aAE1C3C,EAAAA,QAAGE,cAAA,IAAA,CAAAiD,KAAK,yBACNnD,UACEE,cAAA,OAAA,CAAA2C,EAAE,oaACFF,KAAK,eCAFS,EAAO,CAClBC,IAAGA,EAAAA,IACHC,SAAQA,EAAAA,SACRC,QAAOA,EAAAA,QACPC,SAAQA,EAAAA,SACRC,UAASA,EAAAA,UACTC,YAAWA,EAAAA,YACXC,OAAMA,EAAAA,OACNC,KAAIA,EAAAA,KACJC,MAAKA,EAAAA,MACLC,KAAIA,EAAAA,KACJC,KAAIA,EAAAA,KACJC,YAAWA,EAAAA,YACXC,YAAWA,EAAAA,YACXC,YAAWA,EAAAA,YACXC,MAAKA,EAAAA,MACLC,MAAKA,EAAAA,MACLC,YAAWA,EAAAA,aCfPC,EAAa,SAAC3F,GAClB,IAAA4F,EAAS5F,EAAA4F,UACTC,EAAU7F,EAAA6F,WACVC,EAAU9F,EAAA8F,WACVC,EAAU/F,EAAA+F,WACV/D,EAAIhC,EAAAgC,KAEJ,OACEX,wBAAC2E,EAAAA,aAAY,KACX3E,EAAAA,QAAKE,cAAA,MAAA,CAAAc,UAAU,UACbhB,UAAAE,cAAA,MAAA,CAAKc,UAAU,qBAAoBL,GAChC4D,GAEHvE,UAAAE,cAAA,MAAA,CAAKc,UAAU,iCAAkCyD,GAC/CzE,UAAAE,cAAC0E,EAAAA,KAAI,CAACjE,KAAe,OAATA,EAAgB,KAAO,MACjCX,EAAAA,QAAGE,cAAA,IAAA,CAAAlB,KAAMyF,GACPzE,EAAA,QAAAE,cAAA,OAAA,CAAMc,UAAU,QAAQwD,OAAoB,KAE9CxE,EAAA,QAAAE,cAAA,OAAA,KAAOwE,QAsBbG,EAAa,SAAClG,GAClB,IAAAmG,EAAQnG,EAAAmG,SACRP,EAAS5F,EAAA4F,UACT1D,EAAIlC,EAAAkC,KACJkE,SACA9F,EAAAN,EAAAgC,KAAAA,aAAO,KAAI1B,EACX+F,EAASrG,EAAAqG,UAOT,OANWrG,EAAAI,YACCJ,EAAAsG,4CAEctG,EAAAuG,2BACDvG,EAAAwG,0BAGvBnF,wBAAC2E,EAAAA,aAAY,KACX3E,EAAAA,QAAKE,cAAA,MAAA,CAAAc,UAAU,UACbhB,UAAAE,cAAA,MAAA,CAAKc,UAAU,4BAA2BL,GACvC4D,GAEHvE,EAAAA,QAAKE,cAAA,MAAA,CAAAc,UAAU,SAA+B,wBAAG+D,GAC9CD,EACC9E,EAAAA,QAAAE,cAAA,IAAA,CAAGlB,KAAM+F,GACG,OAATpE,EACCX,UAAAE,cAAAF,EAAA,QAAAC,SAAA,KACED,EAAAA,QAAAE,cAACkF,EAAAA,QACC,CAAAC,IAAI,KACJrE,UAAU,eACVsE,MAAOC,EAAKA,MAACC,OAAOC,SAEnB5E,GAEHb,UAACE,cAAA0E,EAAAA,KACC,CAAAU,MAAOC,EAAAA,MAAMC,OAAOE,QACpB/E,KAAK,KACLK,UAAU,aAETgE,IAILhF,EAAA,QAAAE,cAAAF,EAAAA,QAAAC,SAAA,KACED,EAAAA,QAAAE,cAACkF,EAAAA,QACC,CAAAC,IAAI,KACJrE,UAAU,eACVsE,MAAOC,EAAKA,MAACC,OAAOC,SAEnB5E,KAMTb,EAAG,QAAAE,cAAA,IAAA,CAAAlB,KAAM+F,GACG,OAATpE,EACCX,EAAA,QAAAE,cAAAF,EAAA,QAAAC,SAAA,KACED,EAAAA,QAAAE,cAACkF,EAAAA,QACC,CAAAC,IAAI,KACJrE,UAAU,eACVsE,MAAOC,EAAKA,MAACC,OAAOC,SAEnB5E,GAEHb,UAACE,cAAA0E,EAAAA,KACC,CAAAU,MAAOC,EAAAA,MAAMC,OAAOE,QACpB/E,KAAK,KACLK,UAAU,aAETgE,IAILhF,EAAA,QAAAE,cAAAF,EAAAA,QAAAC,SAAA,KACED,EAAAA,QAAAE,cAACyF,mBAAgB,CACfL,MAAOC,EAAAA,MAAMC,OAAOC,QACpBzE,UAAU,gBAETH,GAEHb,EAAA,QAAAE,cAAC0E,OAAI,CACHU,MAAOC,EAAKA,MAACC,OAAOE,QACpB/E,KAAK,KACLK,UAAU,aAETgE,SC7GfY,EAAiB,SAACjH,OACtBkH,EAAalH,EAAAkH,cACbC,EAAInH,EAAAmH,KACJC,EAAMpH,EAAAoH,OACNC,EAAYrH,EAAAqH,aAGVpF,EAOEkF,EAAIlF,MANNG,EAME+E,EAAI/E,MALNkF,EAKEH,EAAIG,WAJNC,EAIEJ,EAAII,cAHN/E,EAGE2E,oBAFF1E,EAEE0E,kBADFzE,EACEyE,iBAEJ,OAAIG,EAEAjG,EAAAA,QAAAE,cAACiG,EAAQA,SAAA,CACPC,QAASF,EACTG,YAAY,MACZ9E,GAAG,GACH+E,gBAAiB,KACjBpF,SAAU8E,EACVhF,UAAU,yBAKdhB,wBAACuG,EAAcA,eAAA,CACbC,MAAwB,iBAAV5F,EAAqBG,EAAQH,EAAK,YACrCmF,GAEVF,GACC7F,EAAA,QAAAE,cAAC2F,EACsB,CAAA,sBAAA1E,sBACFC,EAAe,mBAChBC,EAClBrC,KAAM+B,GAAS,KAEdH,KCrCL6F,EAAqB,CACzB,QAAS,CACP,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,YAEF,QAAS,CACP,UACA,WACA,QACA,QACA,MACA,OACA,OACA,UACA,YACA,UACA,WACA,YAEF,QAAS,CACP,UACA,WACA,QACA,QACA,MACA,OACA,OACA,UACA,YACA,UACA,WACA,YAEF,QAAS,CACP,OACA,WACA,OACA,SACA,OACA,SACA,WACA,OACA,UACA,OACA,WACA,QAEF,QAAS,CACP,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAEF,QAAS,CACP,SACA,aACA,SACA,SACA,MACA,WACA,UACA,UACA,UACA,SACA,YACA,WAEF,QAAS,CACP,YACA,cACA,OACA,OACA,MACA,MACA,WACA,UACA,WACA,aACA,WACA,WAEF,QAAS,CACP,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,OAEF,QAAS,CACP,QACA,SACA,QACA,SACA,KACA,MACA,QACA,QACA,SACA,UACA,QACA,WC1IEC,EAAmB,WAEMC,SAASC,iBADrB,gCAGQhH,OAAS,GAChC+G,SAASE,KAAKC,UAAUC,OAAO,mBAG7BC,EAAwB,WAGCL,SAASC,iBADrB,gCAEQhH,OAAS,IAChC+G,SAASE,KAAK5E,MAAMgF,SAAW,GAC/BN,SAASE,KAAK5E,MAAMiF,aAAe,GACnCP,SAASE,KAAKC,UAAUC,OAAO,+IChDqCI,EAAEC,EAAAA,QAAiB,SAASC,EAAEF,GAAG,OAAO9H,MAAMiI,UAAU3H,MAAM4H,KAAKJ,GAAG,SAASK,EAAEL,EAAEE,GAAG,IAAIG,EAAEC,KAAKC,MAAMP,GAAG,OAAOK,IAAIH,GAAGG,EAAE,IAAIH,EAAEF,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"}
|