{"version":3,"file":"static/chunks/306-742b4aacf2b83895.js","mappings":"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","sources":["webpack://_N_E/./components/city-blocks/header-copy.tsx","webpack://_N_E/./components/city-blocks/max-width-container.tsx","webpack://_N_E/./components/dynamic-image/roundAndScale.ts","webpack://_N_E/./components/dynamic-image/utils.ts","webpack://_N_E/./components/dynamic-image/DynamicImage.tsx","webpack://_N_E/./components/dynamic-image/index.tsx","webpack://_N_E/./components/city-blocks/crumb.tsx","webpack://_N_E/./components/city-blocks/breadcrumbs.tsx","webpack://_N_E/./components/hero-block/zip-code-input.tsx","webpack://_N_E/./components/hero-block/hero-block.tsx","webpack://_N_E/./components/city-blocks/header-bar.tsx","webpack://_N_E/./components/footer/footer-list.tsx","webpack://_N_E/./components/footer/footer.tsx","webpack://_N_E/./components/layout.tsx","webpack://_N_E/./shared/baby-grammar-rules.ts","webpack://_N_E/./shared/no-follow-link.tsx","webpack://_N_E/./utils/asset-utils.ts","webpack://_N_E/./utils/breadcrumb-util.ts","webpack://_N_E/./utils/urls.ts","webpack://_N_E/"],"sourcesContent":["import React from 'react';\n\ninterface IProps {\n className?: string;\n title: React.ReactElement | string;\n content?: React.ReactElement | string;\n}\n\nexport const HeaderCopy: React.FC = ({ className, title, content }) => (\n
\n

{title}

\n {content && {content}}\n
\n);\n","import React from 'react';\n\ninterface IProps {\n id?: string;\n className?: string;\n children;\n}\n\nexport const MaxWidthContainer: React.FC = ({ id, className, children }) => (\n
\n {children}\n
\n);\n","function roundToNearest(num: number, bucketSize: number): number {\n return Math.floor(Math.ceil(num / bucketSize) * bucketSize);\n}\n\nconst widthScaleToNearestBucket = (\n [oldWidth, oldHeight]: readonly [number, number],\n bucketSize: number\n): [number, number] => {\n const newWidth = roundToNearest(oldWidth, bucketSize);\n const newHeight = Math.ceil(oldHeight * (newWidth / oldWidth)); // Based on width\n return [newWidth, newHeight];\n};\n\nconst heightScaleToNearestBucket = (\n [oldWidth, oldHeight]: readonly [number, number],\n bucketSize: number\n): [number, number] => {\n const newHeight = roundToNearest(oldHeight, bucketSize);\n const newWidth = Math.ceil(oldWidth * (newHeight / oldHeight)); // Based on height\n return [newWidth, newHeight];\n};\n\nexport function roundAndScale([oldWidth, oldHeight]: readonly [number, number], bucketSize: number): [number, number] {\n return oldWidth > oldHeight\n ? widthScaleToNearestBucket([oldWidth, oldHeight], bucketSize)\n : heightScaleToNearestBucket([oldWidth, oldHeight], bucketSize);\n}\n","import { trimStart } from 'lodash';\nimport { thumborURL } from 'react-thumbor-img';\nimport { getBaseImagePath, getThumborEndpoint, isDevBox, isDevEnvironment } from 'utils/environment-util';\nimport { roundAndScale } from './roundAndScale';\nimport { ThumborImgUrlProps } from './types';\n\nconst MAX_IMAGE_SCALE = 2;\nconst DEFAULT_DEVICE_PIXEL_RATIO = 1;\n\nexport const generateThumborImgUrl = ({ src, width, height, bucketSize = 50 }: ThumborImgUrlProps): string => {\n if (src.startsWith('data:')) {\n return src;\n }\n\n const absolutePathExp = /^https?:\\/\\//i;\n const baseImagePath = getBaseImagePath();\n const computedSrc = absolutePathExp.test(src) ? src : `${baseImagePath}/${trimStart(src, '/')}`;\n\n if (isDevEnvironment() && !isDevBox()) {\n return computedSrc;\n }\n\n const devicePixelRatio = typeof window === 'undefined' ? DEFAULT_DEVICE_PIXEL_RATIO : window.devicePixelRatio;\n const scale = Math.min(devicePixelRatio, MAX_IMAGE_SCALE);\n\n const sourceWidthBeforeRounding = Math.ceil((width ?? 0) * scale);\n const sourceHeightBeforeRounding = Math.ceil((height ?? 0) * scale);\n const [sourceWidth, sourceHeight] = roundAndScale(\n [sourceWidthBeforeRounding, sourceHeightBeforeRounding],\n bucketSize\n );\n\n const thumborImg = {\n server: getThumborEndpoint(),\n src: computedSrc,\n width: sourceWidth,\n height: sourceHeight,\n };\n\n return thumborURL(thumborImg);\n};\n","import { omit } from 'lodash';\nimport React from 'react';\nimport { LazyLoadImage } from 'react-lazy-load-image-component';\nimport { DynamicImageProps } from './types';\nimport { generateThumborImgUrl } from './utils';\n\nexport const DynamicImage: React.FC = (props) => {\n const { height, width, sourceHeight, sourceWidth, src } = props;\n if (!src) {\n console.error('Dynamic image is missing path!');\n return null;\n }\n\n if (!sourceHeight && !sourceWidth) {\n console.error('Dynamic image is missing source size!');\n return null;\n }\n\n const imageHeight = height ?? sourceHeight;\n const imageHeightString = typeof imageHeight === 'number' ? `${imageHeight}px` : imageHeight;\n const imageWidth = width ?? sourceWidth;\n const imageWidthString = typeof imageWidth === 'number' ? `${imageWidth}px` : imageWidth;\n\n const imageSrc = generateThumborImgUrl({ src, width: sourceWidth, height: sourceHeight });\n\n // these are needed to force a box size that can be collided with in chrome\n const minSizing = 'min-w-[1px] min-h-[1px]';\n\n return (\n \n );\n};\n","export * from './DynamicImage';\nexport * from './roundAndScale';\nexport * from './types';\nexport * from './utils';\n","import Link from 'next/link';\nimport React from 'react';\nimport { Crumb } from 'utils/breadcrumb-util';\n\ninterface IProps {\n className?: string;\n crumb: Crumb;\n}\n\nexport const CrumbBlock: React.FC = ({ className, crumb }) => {\n return (\n \n \n {crumb.name}\n \n );\n};\n","import { CrumbBlock } from 'components/city-blocks/crumb';\nimport Head from 'next/head';\nimport React, { Fragment } from 'react';\nimport { Crumb } from 'utils/breadcrumb-util';\nimport { getFrontEndUrl } from 'utils/environment-util';\n\ninterface IProps {\n className?: string;\n crumbs: Crumb[];\n}\n\n// LD+JSON: Linked Data - for SEO\n// see https://schema.org/\nfunction addProductJsonLd(input: unknown) {\n return {\n __html: JSON.stringify(input),\n };\n}\n\n// For collapsing to 3 crumbs on mobile devices\nconst ELLIPSIS_CRUMB = (\n
\n \n ...\n
\n);\n\nexport const Breadcrumbs: React.FC = ({ className, crumbs }) => {\n const ldJson = {\n '@context': 'https://schema.org',\n '@type': 'BreadcrumbList',\n itemListElement: crumbs.map((crumb, index) => ({\n '@type': 'ListItem',\n position: index + 1,\n item: {\n '@id': `${getFrontEndUrl({ withBasePath: true })}${crumb.href}`,\n name: crumb.name,\n },\n })),\n };\n\n const renderedCrumbs: React.ReactElement[] = crumbs.map((crumb, indx) => {\n const alwaysShow = indx === 0 || indx === crumbs.length - 1 || indx === crumbs.length - 2;\n const spliceEllipsis = indx === 0 && crumbs.length >= 4;\n return (\n \n \n {spliceEllipsis && ELLIPSIS_CRUMB}\n \n );\n });\n\n return (\n <>\n \n \n \n \n {renderedCrumbs}\n \n \n );\n};\n","import React, { useState } from 'react';\nimport { NoFollowLink } from 'shared/no-follow-link';\nimport { getFrontEndUrl } from 'utils/environment-util';\n\ninterface IProps {\n className?: string;\n defaultZipCode?: string;\n prefillZipCode?: boolean;\n}\n\nexport const ZipCodeInput: React.FC = ({ className, defaultZipCode, prefillZipCode }) => {\n const [zipCode, setZipCode] = useState((prefillZipCode && defaultZipCode) || '');\n return (\n \n
\n \n
\n setZipCode(event.currentTarget.value)}\n className='h-full w-full rounded-lg border-none bg-white pl-9 placeholder:font-medium placeholder:text-neutral-700 focus:border-none'\n />\n \n Find food\n \n \n \n );\n};\n","import { Breadcrumbs } from 'components/city-blocks/breadcrumbs';\nimport { generateThumborImgUrl } from 'components/dynamic-image';\nimport { ZipCodeInput } from 'components/hero-block/zip-code-input';\nimport Head from 'next/head';\nimport React from 'react';\nimport { NoFollowLink } from 'shared/no-follow-link';\nimport { Crumb } from 'utils/breadcrumb-util';\nimport { getFrontEndUrl } from 'utils/environment-util';\n\nconst IMAGE_SRC = 'https://shef-general.s3.us-west-1.amazonaws.com/assets/img/landing/food_bg.jpg';\nconst LARGE_IMAGE_SRC = generateThumborImgUrl({ src: IMAGE_SRC, width: 1200, height: 253 });\n\n// TODO: Gil Note: We currently don't have different images optimized for different breakpoints, so we'll just use the\n// large version for now. Once we have optimized images, we can swap in different img srcs and dimensions\n// const MEDIUM_IMAGE_SRC = generateThumborImgUrl({ src: IMAGE_SRC, width: 768, height: 163 });\n// const SMALL_IMAGE_SRC = generateThumborImgUrl({ src: IMAGE_SRC, width: 576, height: 122 });\n\ninterface IProps {\n className?: string;\n heroText: React.ReactNode;\n crumbs: Crumb[];\n zipCode?: string;\n prefillZipCode?: boolean;\n}\n\nexport const HeroBlock: React.FC = ({ className, heroText, crumbs, zipCode, prefillZipCode }) => {\n return (\n <>\n \n \n {/* */}\n {/* */}\n \n
\n
\n \n {/* TODO: Gil Note: We currently don't have different images optimized for different breakpoints, so we'll */}\n {/* just use the large version for now. Once we have optimized images, we can swap in */}\n {/* different img srcs and dimensions */}\n {/* */}\n {/* */}\n {/* Hero image */}\n \n \n
\n\n \n \n {heroText}\n \n\n \n\n \n Already have an account?\n \n Log in\n \n \n
\n \n );\n};\n","import Link from 'next/link';\nimport React from 'react';\nimport { NoFollowLink } from 'shared/no-follow-link';\nimport { getAssetPath } from 'utils/asset-utils';\nimport { getBlogUrl, getFrontEndUrl } from 'utils/environment-util';\n\nconst SHEF_LOGO_PATH = getAssetPath('/images/shef-logo.svg');\n\ninterface IProps {\n className?: string;\n}\n\nexport const HeaderBar: React.FC = ({ className }) => {\n const frontEndUrl = getFrontEndUrl();\n const blogUrl = getBlogUrl();\n return (\n \n
\n \n Shef Logo\n \n
\n Our Story\n Become a shef\n
\n
\n
\n Log In\n \n Sign Up\n \n
\n \n );\n};\n","import React from 'react';\n\ninterface IProps {\n className?: string;\n title?: string;\n children: React.ReactNode;\n}\n\nexport const FooterList: React.FC = ({ className, title, children }) => (\n \n {title}\n
{children}
\n \n);\n","import { FooterList } from 'components/footer/footer-list';\nimport Link from 'next/link';\nimport React from 'react';\nimport { NoFollowLink } from 'shared/no-follow-link';\nimport { getAssetPath } from 'utils/asset-utils';\nimport { getBlogUrl, getFrontEndUrl } from 'utils/environment-util';\n\nconst SHEF_LOGO_PATH = getAssetPath('/images/shef-logo.svg');\nconst APP_STORE_LINK_PATH = getAssetPath('/images/app-store-link.svg');\nconst GOOGLE_PLAY_LINK_PATH = getAssetPath('/images/google-play-link.svg');\n\nconst GOOGLE_PLAY_HREF = 'https://play.google.com/store/apps/details?id=com.shef.consumerapp&hl=en_US&gl=US&pli=1';\nconst APP_STORE_HREF = 'https://apps.apple.com/us/app/shef-homemade-food-delivery/id1598007796';\n\ninterface IProps {\n className?: string;\n}\n\nexport const Footer: React.FC = ({ className }) => {\n const frontEndUrl = getFrontEndUrl();\n const blogUrl = getBlogUrl();\n return (\n
\n
\n \n Shef Logo\n \n \n Our Story\n \n Food Safety\n \n Customer Support\n \n Global Cuisines\n \n \n \n \n Blog\n \n Facebook\n Instagram\n TikTok\n \n \n Become a shef\n Careers\n Gift cards\n \n Homemade food delivery\n \n \n
\n
\n
\n Privacy Policy\n Terms of Service\n
\n
\n \n Shef, Inc. 2024. All Rights Reserved.\n \n
\n \n Download on the App Store\n \n \n Get it on Google Play\n \n
\n
\n
\n
\n );\n};\n","import { HeaderBar } from 'components/city-blocks/header-bar';\nimport { Footer } from 'components/footer/footer';\nimport Head from 'next/head';\n\nfunction Layout({ children }) {\n return (\n
\n \n \n \n \n
\n \n {children}\n
\n
\n
\n );\n}\n\nexport default Layout;\n","/*\n * Fischer Price CMS: Just some basic formatting rules to get a few of our regions to display more naturally\n */\n\nimport { RegionInfoFragment } from 'utils/gqlReactTypings.generated.d';\n\ninterface RegionGrammar {\n // For example: 'The Bay Area' uses an article, but 'The New York City' would look wrong\n needsArticle?: boolean;\n useNear?: boolean;\n displayNameOverride?: string;\n}\n\nexport const RegionGrammarRules: Record = {\n ATLANTA: {},\n AUSTIN: {},\n BAY_AREA: { needsArticle: true },\n BOSTON: {},\n CHICAGO: {},\n DALLAS: {},\n DC_AREA: { needsArticle: true },\n HOUSTON: {},\n LOS_ANGELES: {},\n NASSAU: {},\n NEW_JERSEY: {},\n NEW_YORK: { useNear: true },\n OTHER: {},\n SEATTLE: {},\n};\n\nexport const getRegionDisplayName = (region: Pick): string => {\n const regionGrammar: RegionGrammar = RegionGrammarRules[region.name];\n return `${regionGrammar?.needsArticle ? 'The ' : ''}${\n regionGrammar?.displayNameOverride ?? region.displayName.replace('the', '')\n }`;\n};\n","import Link from 'next/link';\nimport React from 'react';\n\n/* Hints to web crawlers that we DO NOT want them to follow these links or share our precious page authority with them\n * Web crawlers do not have to obey rel='nofollow', but they promise to consider it\n *\n * Please use this component for links leading to the main Shef site to ensure we always include rel='nofollow'\n */\nexport const NoFollowLink: React.FC> = (props) => {\n const { children } = props;\n return (\n \n {children}\n \n );\n};\n","import { BASE_PATH } from './constants';\n\n/**\n * Helper method for returning a path for an asset in the public directory with the base path\n * @param path path to asset in public directory\n */\nexport const getAssetPath = (path: string): string => {\n return `${BASE_PATH}${path}`;\n};\n","import { compact } from 'lodash';\nimport { getRegionDisplayName } from 'shared/baby-grammar-rules';\nimport { tempDietaryTagMappings } from 'utils/constants';\nimport { CityPageCityFragment, CityPageFilterFragment, RegionInfoFragment } from 'utils/gqlReactTypings.generated.d';\nimport { encodeCityPageHref, encodeRegionPageHref, encodeZipPageHref } from 'utils/urls';\n\nexport interface Crumb {\n href: string;\n name: string;\n}\n\nexport const HOME_CRUMB: Crumb = {\n href: '/',\n name: 'Food delivery',\n};\n\nexport const rootBreadcrumbs = [HOME_CRUMB];\nexport const citiesRootBreadcrumbs = [\n HOME_CRUMB,\n {\n href: '/cities-we-serve',\n name: 'Shef Cities',\n },\n];\nexport const zipsRootBreadcrumbs = [HOME_CRUMB, { href: '/zip-codes-we-serve', name: 'Shef ZIPs' }];\nexport const metroRootBreadcrumbs = [HOME_CRUMB, { href: '/metros-we-serve', name: 'Metros' }];\n\nexport const generateCityPageBreadcrumbs = (\n cityPage: Pick,\n filter?: CityPageFilterFragment\n): Crumb[] => {\n const cityUrl = encodeCityPageHref(cityPage);\n // Backtrack away from dietary filter\n const cuisineUrl = encodeCityPageHref(cityPage, filter && { ...filter, dietaryFilter: null });\n const dietaryUrl = encodeCityPageHref(cityPage, filter);\n\n const cityCrumb: Crumb | null = cityPage.cityName\n ? { href: cityUrl, name: `${cityPage.cityName}, ${cityPage.stateNameShort}` }\n : null;\n const cuisineCrumb: Crumb | null =\n filter?.cuisineCategoryId && filter?.cuisineCategory?.title\n ? { href: cuisineUrl, name: filter.cuisineCategory.title }\n : null;\n const dietaryCrumb: Crumb | null = filter?.dietaryFilter\n ? { href: dietaryUrl, name: tempDietaryTagMappings[filter.dietaryFilter] }\n : null;\n\n return compact([HOME_CRUMB, cityCrumb, cuisineCrumb, dietaryCrumb]);\n};\n\nexport const generateZipPageBreadcrumbs = (\n zipCode: string,\n cityPage: Pick,\n filter?: CityPageFilterFragment\n): Crumb[] => {\n const cityUrl = encodeCityPageHref(cityPage);\n const zipUrl = encodeZipPageHref(cityPage, zipCode);\n // Backtrack away from dietary filter\n const cuisineUrl = encodeZipPageHref(cityPage, zipCode, filter && { ...filter, dietaryFilter: null });\n const dietaryUrl = encodeZipPageHref(cityPage, zipCode, filter);\n\n const cityCrumb: Crumb | null = cityPage.cityName\n ? { href: cityUrl, name: `${cityPage.cityName}, ${cityPage.stateNameShort}` }\n : null;\n const zipCrumb: Crumb | null = zipCode ? { href: zipUrl, name: zipCode } : null;\n const cuisineCrumb: Crumb | null =\n filter?.cuisineCategoryId && filter?.cuisineCategory?.title\n ? { href: cuisineUrl, name: filter.cuisineCategory.title }\n : null;\n const dietaryCrumb: Crumb | null = filter?.dietaryFilter\n ? { href: dietaryUrl, name: tempDietaryTagMappings[filter.dietaryFilter] }\n : null;\n\n return compact([HOME_CRUMB, cityCrumb, zipCrumb, cuisineCrumb, dietaryCrumb]);\n};\n\nexport const generateRegionPageBreadcrumbs = (region: Pick): Crumb[] => {\n const regionUrl = encodeRegionPageHref(region);\n\n const displayName = getRegionDisplayName(region);\n const regionCrumb: Crumb | null = { href: regionUrl, name: displayName };\n\n return compact([HOME_CRUMB, regionCrumb]);\n};\n","import { chain } from 'lodash';\nimport { CityPageCityFragment, CityPageFilterFragment, RegionInfoFragment } from 'utils/gqlReactTypings.generated.d';\n\nexport const urlSafeEncode = (...args: (string | null | undefined)[]): string => {\n return chain(args).compact().join(' ').deburr().kebabCase().escape().value() || '';\n};\n\nexport const encodeCitySlug = (cityPage: Pick) =>\n urlSafeEncode(cityPage.cityName, cityPage.stateNameShort);\nexport const encodeRegionSlug = (region: Pick) => urlSafeEncode(region.name, 'metro');\n\nexport const encodeCuisineSlug = (filter?: Pick) => {\n if (!filter?.dietaryFilter && !filter?.cuisineCategoryId) return null;\n\n // HACK: Vegan specialty -> vegan food\n if (filter.cuisineCategoryId === 'VEGAN') {\n if (filter.dietaryFilter === 'vegan') return 'vegan-food'; // Vegan vegan food is just vegan food\n return urlSafeEncode(filter.dietaryFilter, 'vegan', 'food');\n }\n\n // Linguistic Note: Dietary filters make cuisines into food. Example: American Cuisine vs Vegetarian American Food\n const descriptor = filter.cuisineCategoryId && !filter.dietaryFilter ? 'cuisine' : 'food';\n return urlSafeEncode(filter.dietaryFilter, filter.cuisineCategoryId, descriptor);\n};\n\nexport const encodeCityPagePath = (\n cityPage: Pick,\n filter?: Pick\n): string[] => {\n const citySlug = encodeCitySlug(cityPage);\n const cuisineSlug = encodeCuisineSlug(filter);\n\n return cuisineSlug ? [citySlug, cuisineSlug] : [citySlug];\n};\n\nexport const encodeZipPagePath = (\n zipPage: Pick,\n zipCode: string,\n filter?: Pick\n): string[] => {\n const citySlug = encodeCitySlug(zipPage);\n const cuisineSlug = encodeCuisineSlug(filter);\n\n return cuisineSlug ? [citySlug, zipCode, cuisineSlug] : [citySlug, zipCode];\n};\n\nexport const encodeRegionPagePath = (\n region: Pick,\n filter?: Pick\n): string[] => {\n const citySlug = encodeRegionSlug(region);\n const cuisineSlug = encodeCuisineSlug(filter);\n\n return cuisineSlug ? [citySlug, cuisineSlug] : [citySlug];\n};\n\nexport const pathToHref = (path?: string[]): string => {\n return path?.length ? `/${path.join('/')}` : '/';\n};\n\nexport const encodeCityPageHref = (\n cityPage: Pick,\n filter?: Pick\n): string => {\n return pathToHref(encodeCityPagePath(cityPage, filter));\n};\n\nexport const encodeZipPageHref = (\n cityPage: Pick,\n zipCode: string,\n filter?: Pick\n): string => {\n return pathToHref(encodeZipPagePath(cityPage, zipCode, filter));\n};\n\nexport const encodeRegionPageHref = (\n region: Pick,\n filter?: Pick\n): string => {\n return pathToHref(encodeRegionPagePath(region, filter));\n};\n"],"names":["HeaderCopy","className","title","content","param","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsxs","div","concat","jsx","h2","span","MaxWidthContainer","id","children","roundToNearest","num","bucketSize","Math","floor","ceil","widthScaleToNearestBucket","oldWidth","oldHeight","newWidth","heightScaleToNearestBucket","newHeight","generateThumborImgUrl","src","width","height","startsWith","baseImagePath","getBaseImagePath","computedSrc","absolutePathExp","test","trimStart","isDevEnvironment","isDevBox","devicePixelRatio","window","scale","min","sourceWidth","sourceHeight","roundAndScale","thumborImg","server","getThumborEndpoint","thumborURL","DynamicImage","props","console","error","imageHeight","imageWidth","imageSrc","jsx_runtime","LazyLoadImage","omit","alt","data-resized","threshold","CrumbBlock","crumb","Link","href","i","name","ELLIPSIS_CRUMB","Breadcrumbs","crumbs","ldJson","itemListElement","map","index","position","item","getFrontEndUrl","withBasePath","renderedCrumbs","indx","alwaysShow","length","spliceEllipsis","Fragment","Head","script","type","dangerouslySetInnerHTML","__html","JSON","stringify","ZipCodeInput","defaultZipCode","prefillZipCode","zipCode","setZipCode","useState","input","placeholder","value","onChange","event","currentTarget","NoFollowLink","LARGE_IMAGE_SRC","HeroBlock","heroText","link","rel","media","as","picture","img","h1","data-testid","SHEF_LOGO_PATH","getAssetPath","HeaderBar","frontEndUrl","blogUrl","getBlogUrl","FooterList","APP_STORE_LINK_PATH","GOOGLE_PLAY_LINK_PATH","Footer","layout","main","RegionGrammarRules","ATLANTA","AUSTIN","BAY_AREA","needsArticle","BOSTON","CHICAGO","DALLAS","DC_AREA","HOUSTON","LOS_ANGELES","NASSAU","NEW_JERSEY","NEW_YORK","useNear","OTHER","SEATTLE","getRegionDisplayName","regionGrammar","region","displayNameOverride","displayName","replace","path","BASE_PATH","HOME_CRUMB","rootBreadcrumbs","citiesRootBreadcrumbs","zipsRootBreadcrumbs","metroRootBreadcrumbs","generateCityPageBreadcrumbs","cityPage","filter","cityUrl","encodeCityPageHref","cuisineUrl","dietaryFilter","dietaryUrl","cityCrumb","cityName","stateNameShort","cuisineCrumb","cuisineCategoryId","cuisineCategory","dietaryCrumb","tempDietaryTagMappings","compact","generateZipPageBreadcrumbs","zipUrl","encodeZipPageHref","generateRegionPageBreadcrumbs","regionUrl","encodeRegionPageHref","urlSafeEncode","args","chain","join","deburr","kebabCase","escape","encodeCitySlug","encodeRegionSlug","encodeCuisineSlug","descriptor","encodeCityPagePath","citySlug","cuisineSlug","encodeZipPagePath","zipPage","encodeRegionPagePath","pathToHref"],"sourceRoot":""}