@xo-union/tk-component-header-nav
Version:
288 lines (287 loc) • 15.9 kB
JavaScript
"use strict";
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js/object/define-property");
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
_Object$defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _fromEntries = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/object/from-entries"));
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/instance/map"));
var _entries = _interopRequireDefault(require("@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 (0, _fromEntries.default)((0, _map.default)(_context = (0, _entries.default)(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`
})
};
};
var _default = generateHeaderLinks;
exports.default = _default;