UNPKG

@xo-union/tk-component-header-nav

Version:
279 lines • 15.5 kB
import _Object$fromEntries from "@babel/runtime-corejs3/core-js/object/from-entries"; import _mapInstanceProperty from "@babel/runtime-corejs3/core-js/instance/map"; import _Object$entries from "@babel/runtime-corejs3/core-js/object/entries"; const wws = id => `/gs/wedding-websites/designs/${id}`; const tkHost = knotHostEnv => { if (knotHostEnv === 'qa') { return 'https://qa-beta.theknot.com'; } if (knotHostEnv === 'production') { return 'https://www.theknot.com'; } return ''; }; const guestViewUrl = function (knotHostEnv) { let slug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; const host = tkHost(knotHostEnv); return `${host}/us/${slug}`; }; const generateHeaderLinks = knotHostEnv => { const prependHosts = links => { var _context; const baseUrl = tkHost(knotHostEnv); return _Object$fromEntries(_mapInstanceProperty(_context = _Object$entries(links)).call(_context, _ref => { let [key, value] = _ref; return [key, `${baseUrl}${value}`]; })); }; const useProdWWSUrls = knotHostEnv !== 'qa'; return { EXTERNAL_WEDDING_PLANNING_APP: useProdWWSUrls ? 'https://theknot.app.link/GZpkwh5YGFb' : 'https://theknot.test-app.link/qMkL9GtbIFb', EXTERNAL_FOR_VENDORS: 'https://vendors.theknot.com/vendors-advertising-dr?itm_source=theknot.com&itm_medium=referral&itm_campaign=header-nav', EXTERNAL_HOTEL_ROOM_BLOCKS: 'https://theknot.partners.engine.com/new-trip?utm_source=the-knot&utm_medium=channel&utm_campaign=the-knot-channel-groups-a018X00000bV3kuQAC&utm_term=tktopnavigation&referral=MKT%20-%20Partner&rel=sponsored', // generates guest view url generateGuestViewUrl: slug => guestViewUrl(knotHostEnv, slug), ...prependHosts({ ACCOUNT_SETTINGS: '/account/settings/profile', WEDDING_SETTINGS: '/account/settings/wedding-details', ACCOUNT_MANAGEMENT: '/account/settings/account-management', BUDGETER: '/wedding-budget', BUDGETER_LOGGED_IN: '/our-wedding-budget', CHECKLIST: '/wedding-checklist', CHECKLIST_LOGGED_IN: '/our-wedding-checklist', DASHBOARD: '/dashboard', DASHBOARD_WWS: '/gs/dashboard', DASHBOARD_REWARDS: '/dashboard?rewards=true', GUEST_LIST: '/gs/guest-list', GUEST_LIST_LOGGED_IN: '/our-guest-list', KNOT_HOST: '/', PLANNER_APP: '/wedding-planning-app', REGISTRY: '/registry', WEDDING_VISION: '/wedding-vision', WEDDING_VISION_LOGGED_IN: '/my-wedding-vision', INBOX: '/inbox', VENDOR_MANAGER: '/wedding-vendor-manager', VENDOR_REVIEWS: '/review-wedding-vendors', SAVINGS: '/savings', WEDDING_WEBSITES: '/gs/wedding-websites', START_WEDDING_WEBSITE: '/gs/wedding-websites/designs', PREVIEW_WEBSITE: '/gs/dashboard/preview', ONLINE_RSVP: '/gs/dashboard/rsvp-workflow', GUEST_MESSAGES: '/gs/dashboard/messaging-hub', WIN_A_WEDDING: '/winawedding', // Registry featured section REGISTRY_MOST_WANTED_GIFTS: '/registry/store/collections/most-wanted-gifts', WEDDING_REGISTRY_ESSENTIALS: '/registry/store/collections/wedding-registry-essentials', TWENTY_OFF: '/registry/store', REGISTRY_AWARDS: '/registry/store/collections/registry-awards ', // Registry START_A_REGISTRY: '/registry?signup=true', ADD_STORE_REGISTRIES_LOGGED_OUT: '/registry#add-store-registries', ADD_STORE_REGISTRIES_LOGGED_IN: '/registry/add-store-registries', FIND_A_COUPLES_REGISTRY: '/registry/couplesearch', KITCHEN: '/registry/store/categories/kitchen', APPLIANCES: '/registry/store/categories/kitchen/appliances', COOKWARE: '/registry/store/categories/kitchen/cookware', KNIVES_BOARDS: '/registry/store/categories/kitchen/knives-boards', TOOLS_GADGETS: '/registry/store/categories/kitchen/tools-gadgets', BAKEWARE: '/registry/store/categories/kitchen/bakeware', COFFEE_TEA: '/registry/store/categories/kitchen/coffee-tea', STORAGE_ORGANIZATION: '/registry/store/categories/kitchen/storage-organization', KITCHEN_LINENS: '/registry/store/categories/kitchen/kitchen-linens', HOME: '/registry/store/categories/home', DECOR: '/registry/store/categories/home/decor', FURNITURE: '/registry/store/categories/home/furniture', ELECTRONICS: '/registry/store/categories/home/electronics', OUTDOOR: '/registry/store/categories/home/outdoor-travel', RUGS_MATS: '/registry/store/categories/home/rugs-mats', HOUSEHOLD_APPLIANCES: '/registry/store/categories/home/household-appliances', HOME_STORAGE_ORGANIZATION: '/registry/store/categories/home/storage-organization', BED_BATH: '/registry/store/categories/bed-bath', BED: '/registry/store/categories/bed-bath/bed', BEDDING_ESSENTIALS: '/registry/store/categories/bed-bath/bedding-essentials', BATH: '/registry/store/categories/bed-bath/bath', TABLETOP: '/registry/store/categories/tabletop', DINNERWARE: '/registry/store/categories/tabletop/dinnerware', FLATWARE: '/registry/store/categories/tabletop/flatware', SERVEWARE: '/registry/store/categories/tabletop/serveware', DRINKWARE_BAR: '/registry/store/categories/tabletop/drinkware-bar', TABLE_LINENS: '/registry/store/categories/tabletop/table-linens', THE_KNOT_CASH_FUNDS_LOGGED_OUT: '/registry/newlywed-fund-cash-wedding-registry', THE_KNOT_CASH_FUNDS_LOGGED_IN: '/registry/cash', COLLECTIONS: '/registry/store/collections', BRANDS: '/registry/store/brands', YOUR_REGISTRY: '/registry', DISCOVER: '/registry/discover', REGISTRY_CHECKLIST: '/registry/checklist', MANAGE_REGISTRY: '/registry/manage-registry', TRACK_GIFTS: '/registry/track-gifts', REGISTRY_SETTINGS: '/registry/settings/registry-url', LIFESTYLE: '/registry/store/categories/lifestyle', LUGGAGE: '/registry/store/categories/lifestyle/luggage', CAMPING: '/registry/store/categories/lifestyle/camping', ELECTRONICS_GADGETS: '/registry/store/categories/lifestyle/electronics-gadgets', PETS: '/registry/store/categories/lifestyle/pets', FITNESS: '/registry/store/categories/lifestyle/fitness', HOME_IMPROVEMENT: '/registry/store/categories/lifestyle/home-improvement', EXPERIENCES: '/registry/store/categories/experiences/experiences', GIFT_CARDS_AND_EXPERIENCES: '/registry/store/categories/gift-cards-and-experiences', US_EXPERIENCES: '/registry/store/categories/gift-cards-and-experiences/u-s-experiences', INTERNATIONAL_EXPERIENCES: '/registry/store/categories/gift-cards-and-experiences/international-experiences', TYPE_EXPERIENCES: '/registry/store/categories/gift-cards-and-experiences/experiences', GIFT_CARDS: '/registry/store/categories/gift-cards-and-experiences/gift-cards', // Vendors MARKETPLACE: '/marketplace', RECEPTION_VENUES: '/marketplace/wedding-reception-venues', PHOTOGRAPHERS: '/marketplace/wedding-photographers', CATERING: '/marketplace/catering', BRIDAL_SALONS: '/marketplace/bridal-salons', WEDDING_PLANNERS: '/marketplace/wedding-planners', WEDDING_LOCATIONS: '/unforgettable-venues?itm_source=meganav&itm_medium=banner&itm_campaign=Unforgettable-Venues_2024Q3&itm_content=consumer-mkt_na_banner_creative-1_na_meganav', DROPS: '/drops', WEDDING_CAKES: '/marketplace/wedding-cake-bakeries', REHEARSAL_DINNERS_SHOWERS_VENDORS: '/marketplace/rehearsal-dinners-bridal-showers/', DJS: '/marketplace/wedding-djs', VIDEOGRAPHERS: '/marketplace/wedding-videographers', WEDDING_RENTALS: '/marketplace/wedding-rentals', BEAUTY_SERVICES: '/marketplace/beauty-services', FLORISTS: '/marketplace/florists', WEDDING_BANDS: '/marketplace/live-wedding-bands', OFFICIANTS: '/marketplace/wedding-officiants', PHOTO_BOOTHS: '/marketplace/wedding-photo-booth-rentals', BAR_SERVICES: '/marketplace/bar-services', TRANSPORTATION: '/marketplace/transportation-services', JEWELERS: '/marketplace/jewelers', SOLOISTS_ENSEMBLES: '/marketplace/wedding-soloists-ensembles', DANCE_LESSONS: '/marketplace/wedding-dance-lessons', DECOR_VENDORS: '/marketplace/wedding-decor-shops', INVITATIONS_VENDORS: '/marketplace/invitations', FAVORS_GIFTS_VENDORS: '/marketplace/favors', TRAVEL_SPECIALISTS: '/marketplace/wedding-travel-agents', // Invitations PAPER: '/paper', PAPER_CART: '/paper/cart', PAPER_ORDERS: '/paper/your-orders', PAPER_DRAFTS: '/paper/your-drafts', PAPER_SAVE_THE_DATES: '/paper/save-the-dates', PAPER_SAVE_THE_DATE_FORMATS: '/paper/save-the-dates?photoNumber=1%2C2%2C3%2C4', PAPER_FAVORITES: '/paper/your-favorites', HOLIDAY_CARDS: '/paper/holiday-cards', CHANGE_THE_DATES: '/paper/change-the-dates', INVITATIONS: '/paper/invitations', WEDDING_INVITATIONS: '/paper/invitations/wedding', FOIL: '/paper/invitations/wedding?specialtyPrinting=Foil', RSVP_CARDS: '/paper/rsvp-cards', ENCLOSURE_CARDS: '/paper/enclosure-cards', ENVELOPE_LINERS: '/paper/envelope-liners', BRIDAL_SHOWER_INVITATIONS: '/paper/invitations/bridal-shower', REHEARSAL_DINNER_INVITATIONS: '/paper/invitations/rehearsal-dinner', THANK_YOUS: '/paper/thank-yous', CEREMONY_RECEPTION_PAPER: '/paper/ceremony-reception', PROGRAMS: '/paper/ceremony-reception/programs', NAPKINS: '/paper/ceremony-reception/napkins', FAVOR_BAGS: '/paper/ceremony-reception/favor-bags', SIGNS: '/paper/ceremony-reception/signs', COASTERS: '/paper/ceremony-reception/coasters', PLACE_CARDS: '/paper/ceremony-reception/place-cards', MENUS: '/paper/ceremony-reception/menus', TABLE_NUMBERS: '/paper/ceremony-reception/table-numbers', STICKERS: '/paper/ceremony-reception/stickers', GIFT_TAGS: '/paper/ceremony-reception/gift-tags', GUEST_BOOKS: '/paper/ceremony-reception/guest-books', SHOP_BY_STYLE: '/paper/invitations/wedding', INVITATIONS_MODERN: '/paper/invitations/wedding?styles=Modern', INVITATIONS_RUSTIC: '/paper/invitations/wedding?styles=Rustic', INVITATIONS_FLORAL: '/paper/invitations/wedding?styles=Floral', INVITATIONS_ROMANTIC: '/paper/invitations/wedding?styles=Romantic', INVITATIONS_VINTAGE: '/paper/invitations/wedding?styles=Vintage', INVITATIONS_SIMPLE: '/paper/invitations/wedding?styles=Simple', INVITATIONS_CLASSIC: '/paper/invitations/wedding?styles=Classic', INVITATIONS_DESTINATION: '/paper/invitations/wedding?styles=Destination', INVITATIONS_BOHEMIAN: '/paper/invitations/wedding?styles=Bohemian', INVITATIONS_BEACH: '/paper/invitations/wedding?styles=Beach', INVITATIONS_VERA_WANG: '/paper/vera-wang', INVITATIONS_BUDGET_FRIENDLY: '/paper/invitations/wedding?format=all-in-one', PAPER_FREE_SAMPLES: '/paper/free-samples', INVITATIONS_BRIDGERTON: '/paper/bridgerton', // Fashion ATTIRE_RINGS: '/fashion/wedding-dresses', ENGAGEMENT_RINGS: '/fashion/engagement-rings', PRINCESS_CUT: '/fashion/princess-cut-engagement-rings', ASSCHER_CUT: '/fashion/asscher-cut-engagement-rings', CUSHION_CUT: '/fashion/cushion-cut-engagement-rings', EMERALD_CUT: '/fashion/emerald-cut-engagement-rings', PEAR_CUT: '/fashion/pear-shaped-engagement-rings', RADIANT_CUT: '/fashion/radiant-cut-engagement-rings', ROUND_CUT: '/fashion/round-engagement-rings', OVAL_CUT: '/fashion/oval-engagement-rings', WEDDING_DRESSES: '/fashion/wedding-dresses', A_LINE_DRESSES: '/fashion/a-line-wedding-dresses', BALL_GOWN_DRESSES: '/fashion/ball-gown-wedding-dresses', MERMAID_DRESSES: '/fashion/mermaid-wedding-dresses', SHEATH_DRESSES: '/fashion/sheath-wedding-dresses', SHORT_DRESSES: '/fashion/short-wedding-dresses', SUITS_TUXEDOS: '/fashion/tuxedos', BRIDESMAID_DRESSES: '/fashion/bridesmaid-dresses', MOTHER_OF_THE_BRIDE_DRESSES: '/fashion/mother-of-the-bride-dresses', FLOWER_GIRL_DRESSES: '/fashion/flower-girl-dresses', WEDDING_ACCESSORIES: '/fashion/wedding-accessories', WEDDING_RINGS: '/fashion/wedding-rings', WEDDING_JEWELRY: '/fashion/wedding-jewelry', // Ideas & Advice IDEAS_ADVICE: '/content', ENGAGEMENT: '/content/getting-engaged-advice', ENGAGEMENT_RINGS_CONTENT: '/content/engagement-ring-advice', WEDDING_PROPOSALS: '/content/proposal-advice', CEREMONY_RECEPTION: '/content/wedding-advice', REAL_WEDDING_PHOTOS: '/real-weddings/photos', BUDGET_ADVICE: '/content/wedding-budgeting-advice', INVITATIONS_PAPER: '/content/wedding-stationery-advice', THEMES_DECOR: '/content/wedding-style-theme-advice', WEDDING_TRADITIONS: '/content/wedding-tradition-advice', MUSIC_SONGS: '/content/wedding-music-advice', PARTIES_EVENTS: '/content/wedding-rehearsal-party-advice', ENGAGEMENT_PARTIES: '/content/engagement-party-advice', BACH_PARTIES: '/content/bachelorette-party-advice', WEDDING_SHOWERS: '/content/bridal-shower-advice', REHEARSAL_DINNER: '/content/rehearsal-dinner-advice', TRAVEL: '/content/travel-guide-advice', DESTINATION_WEDDINGS: '/content/destination-wedding-planning-advice', HONEYMOONS: '/content/honeymoon-advice', FASHION_CONTENT: '/content/wedding-fashion-advice', COUPLES_ATTIRE: '/content/wedding-dress-advice', RINGS_ACCESSORIES: '/content/wedding-band-advice', WEDDING_PARTY_ATTIRE: '/content/bridesmaid-dress-advice', GUEST_ATTIRE: '/content/dress-advice', BEAUTY_WELLNESS: '/content/wedding-beauty-advice', HAIR_CONTENT: '/content/wedding-hairstyle-advice', MAKEUP_GROOMING: '/content/wedding-makeup-advice', HEALTH_WELLNESS: '/content/wedding-health-wellness-advice', GIFTS_CONTENT: '/content/wedding-gift-favor-advice', REGISTRY_ADVICE: '/content/registry-advice', GIFTS_FOR_COUPLES: '/content/guest-gift-advice', FAVORS_GIFTS: '/content/favor-advice', ANNIVERSARY_GIFTS_ADVICE: '/content/anniversary-gifts-advice', GIFT_GUIDES: '/gift-guides', MENS_WAREHOUSE: '/mens-wearhouse-content', SENSODYNE: '/wedding-prep-checklist', THE_KNOT_MAGAZINE: '/m/magazine', // WWS WWS_BELOVED_FLORAL: useProdWWSUrls ? wws(536) : wws(829), WWS_BLOOMING_BOTANICAL: useProdWWSUrls ? wws(537) : wws(823), WWS_ELEGANT_GLOW: useProdWWSUrls ? wws(542) : wws(808), WWS_ELEGANT_GREENERY: useProdWWSUrls ? wws(558) : wws(814), WWS_ELEGANT_EUCALYPTUS: useProdWWSUrls ? wws(742) : wws(1121), WWS_ELEGANT_LIGHTS: useProdWWSUrls ? wws(736) : wws(1067), WWS_ELEGANT_GARDEN: useProdWWSUrls ? wws(548) : wws(901), WWS_ELEGANT_BRIDGERTON: useProdWWSUrls ? wws(7476) : wws(6784), WWS_FLORAL_HOOP: useProdWWSUrls ? wws(559) : wws(816), WWS_LEAFY_AMPERSAND: useProdWWSUrls ? wws(561) : wws(825), WWS_MINIMAL_CHIC: useProdWWSUrls ? wws(799) : wws(1151), WWS_ROMANTIC_CALLIGRAPHY: useProdWWSUrls ? wws(547) : wws(819), WWS_VERA_WANG: useProdWWSUrls ? wws(1780) : wws(2528), // Your Favorites Inspiration YOUR_FAVORITES: 'your-favorites', YOUR_FAVORITES_INSPIRATION: `/your-favorites/inspiration` }) }; }; export default generateHeaderLinks;