{"version":3,"file":"index-DgXwKwTW.js","sources":["../../../app/javascript/src/explore/services/Routes/index.ts","../../../app/javascript/src/explore/hooks/useRoutes/index.tsx"],"sourcesContent":["import generator from 'url-routes-generator';\n\nconst accountGenerator = generator.create({ baseURL: '/account/' });\nconst adminGenerator = generator.create({ baseURL: '/x/gbmc/' });\nconst blogGenerator = generator.create({ baseURL: 'https://blog.goldbelly.com' });\nconst checkoutGenerator = generator.create({ baseURL: '/buy/' });\nconst checkoutApiGenerator = generator.create({ baseURL: '/checkout' });\nconst cloudfrontGenerator = generator.create({ baseURL: 'https://stowage0.goldbelly.com' });\nconst eGiftAPIGenerator = generator.create({ baseURL: '/egiftings' });\nconst eGiftingGenerator = generator.create({ baseURL: '/buy/egifting' });\nconst eGiftRedemptionGenerator = generator.create({ baseURL: '/redeem/egifting' });\nconst helpGenerator = generator.create({ baseURL: 'https://help.goldbelly.com/hc/en-us' });\nconst imageGenerator = generator.create({ baseURL: 'https://img.goldbelly.com' });\nconst suborderAPIGenerator = generator.create({ baseURL: '/suborders' });\n\nconst removeLeadingSlash = ( path: string ) => {\n if ( !path.length ) return path;\n if ( path[0] === '/' ) return path.slice( 1 );\n return path;\n};\n\nexport const Routes = {\n accessibility: () => generator.build( '/accessibility' )(),\n about: () => generator.build( '/about' )(),\n account: {\n root: () => accountGenerator.build( '' )(),\n favorites: () => accountGenerator.build( '/favorites' )(),\n journey: () => accountGenerator.build( '/journey' )(),\n orders: () => accountGenerator.build( '/orders' )(),\n },\n admin: {\n root: () => adminGenerator.build( '' )(),\n logOut: () => adminGenerator.build( '/session' )(),\n collection: ( id: number ) => adminGenerator.build( `/collections/${String( id )}` )(),\n collectionEdit: ( id: number ) => adminGenerator.build( `/collections/${String( id )}/edit` )(),\n merchantEdit: ( id: number ) => adminGenerator.build( `/merchants/${String( id )}/edit` )(),\n merchantProducts: ( id: number ) => adminGenerator.build( `/merchants/${String( id )}/products` )(),\n merchantProfileAndMedia: ( id: number ) =>\n adminGenerator.build( `/merchants/${String( id )}/profile_and_photos` )(),\n merchantShippingOptions: ( id: number ) =>\n adminGenerator.build( `/merchants/${String( id )}/shipping_rates` )(),\n merchantShippingSchedules: ( id: number ) =>\n adminGenerator.build( `/merchants/${String( id )}/schedules` )(),\n playlist: ( id: number ) => adminGenerator.build( `/tv/playlists/${String( id )}` )(),\n playlistEdit: ( id: number ) => adminGenerator.build( `/tv/playlists/${String( id )}/edit` )(),\n productAvailability: ( id: number ) =>\n adminGenerator.build( `/products/${String( id )}/availability` )(),\n productDescription: ( id: number ) =>\n adminGenerator.build( `/products/${String( id )}/description` )(),\n productMedia: ( id: number ) => adminGenerator.build( `/products/${String( id )}/product_images` )(),\n productOptions: ( id: number ) =>\n adminGenerator.build( `/products/${String( id )}/product_options` )(),\n productPantryItems: ( id: number ) =>\n adminGenerator.build( `/products/${String( id )}/product_pantry_items` )(),\n productPrice: ( id: number ) => adminGenerator.build( `/products/${String( id )}/price` )(),\n productQuantity: ( id: number ) => adminGenerator.build( `/products/${String( id )}/quantity` )(),\n refreshProductCache: ( id: number ) => adminGenerator.build( `/products/${String( id )}/touch` )(),\n shippingCalendar: ( id: number ) => adminGenerator.build( `/products/${String( id )}/calendar` )(),\n shippingOptions: ( id: number ) => adminGenerator.build( `/products/${String( id )}/shipping` )(),\n showcaseVideos: () => adminGenerator.build( '/showcase_videos' )(),\n videos: () => adminGenerator.build( '/tv/videos' )(),\n videoEdit: ( id: number ) => adminGenerator.build( `/tv/videos/${String( id )}/edit` )(),\n webCards: () => adminGenerator.build( '/web/cards' )(),\n webCustomerReviews: () => adminGenerator.build( '/web/customer_reviews' )(),\n webSocialPosts: () => adminGenerator.build( '/web/social_posts' )(),\n webTopCollections: () => adminGenerator.build( '/web/top_collections' )(),\n },\n api: {\n suborder: {\n cancel: ( id: number ) => suborderAPIGenerator.build( `/${String( id )}/cancellations` )(),\n delivery_date: ( id: number ) => suborderAPIGenerator.build( `/${String( id )}/delivery_date` )(),\n gift_message: ( id: number ) => suborderAPIGenerator.build( `/${String( id )}/gift_message` )(),\n reorder: ( id: number ) => suborderAPIGenerator.build( `/${String( id )}/reorder` )(),\n },\n eGift: {\n cancel: () => eGiftAPIGenerator.build( '/cancellation' )(),\n gift_message: () => eGiftAPIGenerator.build( '/gift_message' )(),\n purchaser: {\n confirmation: () => eGiftAPIGenerator.build( '/purchaser/confirmation' )(),\n gift: ( id?: string ) =>\n eGiftAPIGenerator.build( `/purchaser/egift/${id !== undefined ? id : ''}` )(),\n },\n redemption: {\n confirmation: ( hashID?: string ) =>\n eGiftAPIGenerator.build( `/recipient/confirmation/${hashID || ''}` )(),\n gift: ( hashID: string ) => eGiftAPIGenerator.build( `/recipient/egift/${hashID}` )(),\n order: ( hashID: string ) => eGiftAPIGenerator.build( `/recipient/orders/${hashID}` )(),\n shipping: ( hashID: string ) => eGiftAPIGenerator.build( `/recipient/shipping/${hashID}` )(),\n success: ( hashID: string ) => eGiftAPIGenerator.build( `/recipient/success/${hashID}` )(),\n },\n },\n checkout: {\n deliveryOptions: ( subOrderId: number ) =>\n checkoutApiGenerator.build( `/delivery_options/${subOrderId}` )(),\n express: {\n deliveryOptions: ( subOrderId: number ) =>\n checkoutApiGenerator.build( `/express_delivery_options/${subOrderId}` )(),\n deliveryDate: ( subOrderId: number ) =>\n checkoutApiGenerator.build( `/express_delivery_options_selected/${subOrderId}` )(),\n confirmation: () => checkoutApiGenerator.build( '/express_confirmations' )(),\n },\n newsletter: {\n subscribe: () => checkoutApiGenerator.build( '/newsletter_signups' )(),\n },\n },\n },\n auth: {\n apple: ( origin?: string ) =>\n generator.build( `/auth/apple` )({ origin: origin ?? window.location.pathname }),\n facebook: ( origin?: string ) =>\n generator.build( '/auth/facebook' )({ origin: origin ?? window.location.pathname }),\n google: ( origin?: string ) =>\n generator.build( '/auth/google_oauth2' )({ origin: origin ?? window.location.pathname }),\n logOut: () => generator.build( '/sign-out' )(),\n },\n blog: {\n root: () => blogGenerator.build( '' )(),\n },\n // FIXME: this should not be called \"categories\", these are actually restaurant/merchant categories\n // and it's not plural, it's singular because it points to just one\n categories: ( permalink: string ) => generator.build( '/categories/:permalink', { permalink })(),\n checkout: {\n root: () => checkoutGenerator.build( '/' )(),\n toggleMultipleAddresses: () => checkoutGenerator.build( '/shipping/toggle_multi' )(),\n },\n collection: ( permalink: string, params: { [key: string]: string } = {}) =>\n generator.build( '/collections/:permalink', { permalink })({ ...params }),\n customerInstructions: ( merchantPermalink: string, productPermalink: string ) =>\n generator.build( '/instructions/:merchantPermalink/:productPermalink/', {\n merchantPermalink: merchantPermalink.replace( /restaurants\\//, '' ).replace( /\\//, '' ),\n productPermalink,\n })(),\n corporate: () => generator.build( '/corporate-gifting' )(),\n eGifting: {\n landing: () => generator.build( '/e-gifts' )(),\n root: () => eGiftingGenerator.build( '/' )(),\n payment: () => eGiftingGenerator.build( '/payment' )(),\n success: () => eGiftingGenerator.build( '/success' )(),\n },\n eGifts: () => generator.build( '/e-gifts' )(),\n food: ( permalink: string, params: { [key: string]: string } = {}) =>\n generator.build( '/foods/:permalink', { permalink })({ ...params }),\n giftCards: {\n root: () => generator.build( '/restaurants/goldbelly-gift-cards' )(),\n giftCard: () => generator.build( '/restaurants/goldbelly-gift-cards/gift-card' )(),\n },\n giftCardBalance: () => generator.build( '/gift-card-balance' )(),\n help: {\n root: () => helpGenerator.build( '' )(),\n alternateShipping: () => helpGenerator.build( '/articles/360047581994' )(),\n contactArticle: () =>\n helpGenerator.build( '/articles/1260805024010-How-Do-I-Contact-Goldbelly' )(),\n goldbellyLive: () => helpGenerator.build( '/sections/1260801324129-GOLDBELLY-LIVE' )(),\n newRequest: () => helpGenerator.build( '/requests/new' )(),\n promoRewardsRules: () =>\n helpGenerator.build( '/articles/115003609894-Discount-Promo-Code-Rewards-Points-Rules' )(),\n returnPolicy: () => helpGenerator.build( '/articles/224269707' )(),\n shippingFAQ: () => helpGenerator.build( '/sections/1260800102469-SHIPPING-AN-ORDER' )(),\n shippingPolicy: () =>\n helpGenerator.build( '/articles/224334808-Goldbely-Shipping-Rules-Policies' )(),\n },\n holiday: ( permalink: string, params: { [key: string]: string } = {}) =>\n generator.build( '/holidays/:permalink', { permalink })({ ...params }),\n image: {\n consumer: ( path: string ) => imageGenerator.build( `/consumer/${removeLeadingSlash( path )}` )(),\n },\n jobs: () => generator.build( '/jobs' )(),\n // merchant permalinks are inconsistently returned from the API with a leading slash\n // make sure to cleanup permalink other wise like generation fails\n merchant: ( permalink: string, params: { [key: string]: string } = {}) =>\n generator.build( '/restaurants/:permalink', {\n permalink: permalink?.replace( /restaurants\\//, '' ).replace( /\\//, '' ),\n })({\n ...params,\n }),\n nativeMobile: {\n download: () =>\n generator.build(\n 'https://apps.apple.com/app/apple-store/id925911443?pt=95628824&ct=home-page-footer&mt=8'\n )(),\n cart: () => generator.build( 'goldbellyapp://cart' )(),\n rewards: () => generator.build( 'goldbellyapp://rewards' )(),\n home: () => generator.build( 'goldbellyapp://home' )(),\n orders: () => generator.build( 'goldbellyapp://orders' )(),\n },\n order: ( id: string ) => generator.build( `/orders/${id}` )(),\n press: () => generator.build( '/press' )(),\n privacy: () => generator.build( '/privacy-and-security' )(),\n product: (\n merchantPermalink: string,\n productPermalink: string,\n params?: { [key: string]: string }\n ) =>\n generator.build( '/restaurants/:merchantPermalink/:productPermalink', {\n merchantPermalink: merchantPermalink.replace( /restaurants\\//, '' ).replace( /\\//, '' ),\n productPermalink,\n })( params ),\n redemption: {\n eGift: {\n root: ( hashID: string ) => eGiftRedemptionGenerator.build( `/${hashID}` )(),\n confirmation: ( hashID: string ) => eGiftRedemptionGenerator.build( `/${hashID}/confirmation` )(),\n delivery: ( hashID: string ) => eGiftRedemptionGenerator.build( `/${hashID}/delivery` )(),\n exchange: ( hashID: string ) => eGiftRedemptionGenerator.build( `/${hashID}/exchange` )(),\n shipping: ( hashID: string ) => eGiftRedemptionGenerator.build( `/${hashID}/shipping` )(),\n success: ( hashID: string ) => eGiftRedemptionGenerator.build( `/${hashID}/success` )(),\n },\n },\n regions: () => generator.build( '/regions' )(),\n reviews: () => generator.build( '/reviews' )(),\n rewards: ( ref?: string ) => generator.build( '/rewards' )({ ref }),\n search: ( query: string, params: { [key: string]: string } = {}) =>\n generator.build( '/search' )({ ...params, q: query }),\n sellers: () => generator.build( '/sellers' )(),\n // FIXME: this is actually merchants for category; this should be adjusted to integrate new route:\n // /restaurants/categories/:category`\n shopByRestaurant: ( category: string ) => generator.build( `/restaurants/${category}` )(),\n shopByRestaurantCategory: ( category: string ) =>\n generator.build( `/restaurants/categories/${category}` )(),\n shopByRegion: {\n region: ( region: string ) =>\n generator.build( '/regions/:region', {\n region,\n })(),\n state: ( region: string, state: string ) =>\n generator.build( '/regions/:region/:state', {\n region,\n state,\n })(),\n city: ( region: string, state: string, city: string ) =>\n generator.build( '/regions/:region/:state/:city', {\n region,\n state,\n city,\n })(),\n },\n spotlight: ( permalink: string, params: { [key: string]: string } = {}) =>\n generator.build( '/spotlight/:permalink', { permalink })({ ...params }),\n suborderTracking: ( id: string ) => generator.build( `/trackings/${id}` )(),\n subscriptions: () => generator.build( '/restaurants/subscriptions' )(),\n terms: () => generator.build( '/terms-of-service' )(),\n tracking: () => generator.build( '/tracking' )(),\n tv: {\n root: ( query: { playlist?: string; video?: string } = {}) => generator.build( `/tv` )( query ),\n playlist: ( playlistSlug: string ) => generator.build( '/tv/:playlistSlug', { playlistSlug })(),\n video: ( slug: string, params: { [key: string]: string } = {}) =>\n generator.build( '/tv' )({ ...params, video: slug }),\n },\n video: {\n consumer: ( path: string ) =>\n cloudfrontGenerator.build( `/consumer/${removeLeadingSlash( path )}` )(),\n },\n videos: () => generator.build( '/videos' )(),\n};\n","import * as React from 'react';\n\nimport { Routes } from '../../services/Routes';\n\nconst RoutesContext = React.createContext( Routes );\n\ninterface Props {\n children?: React.ReactNode;\n}\n\nexport const RoutesProvider: React.FC = ({ children }) => (\n {children}\n);\n\nexport const useRoutes = () => {\n const context = React.useContext( RoutesContext );\n\n if ( context === undefined ) {\n throw new Error( 'useRoutes can only be used inside RoutesProvider' );\n }\n return context;\n};\n"],"names":["accountGenerator","generator","adminGenerator","blogGenerator","checkoutGenerator","checkoutApiGenerator","cloudfrontGenerator","eGiftAPIGenerator","eGiftingGenerator","eGiftRedemptionGenerator","helpGenerator","imageGenerator","suborderAPIGenerator","removeLeadingSlash","path","Routes","id","hashID","subOrderId","origin","permalink","params","merchantPermalink","productPermalink","ref","query","category","region","state","city","playlistSlug","slug","RoutesContext","React.createContext","RoutesProvider","children","React.createElement","useRoutes","context","React.useContext"],"mappings":"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"}