@postnord/pn-marketweb-components 4.3.3 → 4.3.5

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.
Files changed (24) hide show
  1. package/cjs/loader.cjs.js +1 -1
  2. package/cjs/pn-market-web-components.cjs.js +1 -1
  3. package/cjs/pn-marketweb-header.cjs.entry.js +49 -4
  4. package/cjs/pn-marketweb-header.cjs.entry.js.map +1 -1
  5. package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.js +73 -4
  6. package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.js.map +1 -1
  7. package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.stories.js +72 -8
  8. package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.stories.js.map +1 -1
  9. package/components/pn-marketweb-header.js +50 -4
  10. package/components/pn-marketweb-header.js.map +1 -1
  11. package/esm/loader.js +1 -1
  12. package/esm/pn-market-web-components.js +1 -1
  13. package/esm/pn-marketweb-header.entry.js +49 -4
  14. package/esm/pn-marketweb-header.entry.js.map +1 -1
  15. package/package.json +1 -1
  16. package/pn-market-web-components/{p-48e4ce2a.entry.js → p-fc06ab05.entry.js} +2 -2
  17. package/pn-market-web-components/p-fc06ab05.entry.js.map +1 -0
  18. package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
  19. package/pn-market-web-components/pn-market-web-components.esm.js.map +1 -1
  20. package/types/components/layout-components/pn-marketweb-header/pn-marketweb-header.d.ts +5 -0
  21. package/types/components/layout-components/pn-marketweb-header/pn-marketweb-header.stories.d.ts +15 -0
  22. package/types/components.d.ts +8 -0
  23. package/vscode-data.json +4 -0
  24. package/pn-market-web-components/p-48e4ce2a.entry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pn-marketweb-header.stories.js","sourceRoot":"","sources":["../../../../src/components/layout-components/pn-marketweb-header/pn-marketweb-header.stories.ts"],"names":[],"mappings":"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","sourcesContent":["import { shop } from 'pn-design-assets/pn-assets/icons';\n\nimport type {\n Meta,\n StoryObj,\n} from '@storybook/web-components';\n\nimport type {\n HeaderApiEnvelope,\n HeaderMenuMode,\n} from './types/pn-marketweb-header.types';\n\n/**\n * Story args for pn-marketweb-header.\n *\n * This story:\n * - renders the real pn-marketweb-header\n * - can optionally intercept its backend fetch call\n * - returns a mocked backend envelope when mocking is enabled\n * - lets the actual header component render and control its own menu switcher\n */\ninterface StoryArgs {\n market: string;\n language: string;\n initialActiveMenuMode: HeaderMenuMode;\n menuThemes?: string;\n environment: 'production' | 'preproduction' | 'integration' | 'localhost';\n endpoint: string;\n pageId: string;\n siteid: string;\n userToken: string;\n userFullname: string;\n userLoggedin: boolean;\n hideSiteSelector: boolean;\n hideHomeMenuItem: boolean;\n hideLanguageSelector: boolean;\n hideSearch: boolean;\n hideLogin: boolean;\n showProfileSelection: boolean;\n showUnifiedLogin: boolean;\n siteDomainInUrls: boolean;\n autocompleteEndpoint: string;\n sessionForward: boolean;\n cache: boolean;\n searchPlaceholder: string;\n spaMode: boolean;\n checkUserLoggedInStateInterval: number;\n useMarketwebLogin: boolean;\n navigateOnMenuToggle: boolean;\n\n /**\n * Mocked backend response envelope.\n *\n * This should match the real backend response shape.\n */\n mockedResponse: HeaderApiEnvelope;\n\n /**\n * When true, Storybook intercepts the header fetch and returns mockedResponse.\n * When false, the real endpoint is used.\n */\n useMockedResponse: boolean;\n}\n\nconst ORIGINAL_FETCH = window.fetch.bind(window);\n\n/**\n * Create promoted menuitems for testing purposes\n */\nfunction createPromotedMenuItem(\n linkText: string,\n href: string,\n pageLink = href,\n openInNewWindow = false,\n) {\n return {\n linkText,\n pageLink,\n href,\n openInNewWindow,\n };\n}\n\n\n/**\n * Reusable menu item factory to keep stories compact.\n */\nfunction createMenuItem(\n name: string,\n href: string,\n id: string,\n children: any[] = [],\n level = 0,\n overrides: Record<string, any> = {},\n) {\n return {\n name,\n href,\n id,\n selected: false,\n open: false,\n children,\n navigationHeading: '',\n promotedMenuItemsHeader: '',\n promotedMenuItems: [],\n hasChildren: children.length > 0,\n linkTarget: '',\n trackingId: `${name.toLowerCase().replace(/\\s+/g, '-')}${id}`,\n level,\n isMegaMenuParent: level === 0,\n ...overrides,\n };\n}\n\nfunction createLeaf(\n name: string,\n href: string,\n id: string,\n level = 1,\n) {\n return createMenuItem(name, href, id, [], level, {\n isMegaMenuParent: false,\n });\n}\n\n/**\n * Creates a mocked backend envelope with the supplied top-level menu structure.\n *\n * Structure semantics used by the header:\n * - all items except the last = switchable root menus\n * - last item = shared/common root\n *\n * This mock is intentionally kept trimmed to match the current frontend\n * interfaces, while still preserving the real backend envelope shape.\n */\nfunction createMockedResponse(menuItems: any[]): HeaderApiEnvelope {\n return {\n value: {\n sitedefinition: {\n name: 'Postnord Sweden',\n url: 'https://localhost:51547/',\n },\n search: {\n formActionUrl: 'https://localhost:51547/sok/',\n AutocompleteEndpoint: 'https://localhost:51547/api/search/autocomplete',\n },\n languageSelectorViewModel: {\n currentLanguageNativeName: 'Svenska',\n languages: [\n {\n twoLetterISOLanguageName: 'en',\n nativeName: 'English',\n isCurrent: false,\n },\n {\n twoLetterISOLanguageName: 'sv',\n nativeName: 'Svenska',\n isCurrent: true,\n },\n {\n twoLetterISOLanguageName: 'da',\n nativeName: 'Dansk',\n isCurrent: false,\n },\n ],\n },\n siteSelectorViewModel: {\n siteSelectorButtonText: 'postnord.se',\n siteSelectorTitle: 'PostNord',\n currentSiteTitle: 'postnord.se',\n currentSiteDescription: 'Tjänster och verktyg för att skicka och ta emot din post',\n siteSelections: [\n {\n linkText: 'Portal',\n linkDescription: 'Hantera dina försändelser',\n href: 'https://portal.postnord.com/',\n pageLink: '/portal/',\n openInNewWindow: false,\n },\n {\n linkText: 'postnord.com',\n linkDescription: 'Information om PostNord Koncernen',\n href: 'https://com-inte.postnord.com/sv/',\n pageLink: 'https://com-inte.postnord.com/sv/',\n openInNewWindow: true,\n },\n ],\n },\n loginViewModel: {\n loginMenuLinks: [\n {\n linkText: 'Logga in',\n href: 'https://portal.postnord.com/login?language=sv',\n pageLink: '/login/',\n openInNewWindow: false,\n primaryLinkApperance: true,\n isLogoutLink: false,\n linkType: 'unified',\n },\n ],\n legacyLoginLinks: [\n {\n linkText: 'Logga in',\n href: 'https://portal.postnord.com/login?language=sv',\n pageLink: '/login/',\n openInNewWindow: false,\n primaryLinkApperance: true,\n isLogoutLink: false,\n },\n ],\n loggedInLinks: [\n {\n linkText: 'Logga ut',\n href: 'http://window.location.href/?logout',\n pageLink: '/logout',\n openInNewWindow: false,\n primaryLinkApperance: false,\n isLogoutLink: true,\n },\n ],\n overrideLoginMenu: false,\n loginMenuLinkText: 'Logga in',\n countryCode: 'SE',\n locale: 'sv',\n loginUrl: 'https://portal.postnord.com/login?language=sv',\n registerUrl: 'https://portal.postnord.com/createaccount?market=SE',\n loggedInButtonText: 'My PostNord',\n loginTitle: 'Logga in direkt på:',\n loginLinkText: 'Logga in',\n createLoginLinkText: 'Skapa nytt konto',\n loginInfo:\n '<p>Testing the login <a href=\"/link/0e1d8517b7344986b68152a9a0544460.aspx\">recommendation</a></p>',\n },\n mainMenu: {\n menuItems,\n },\n },\n formatters: [],\n contentTypes: [],\n declaredType: null,\n statusCode: 200,\n };\n}\n\n/**\n * Default structure:\n * - 2 switchable roots\n * - 1 shared/common root\n */\nconst DEFAULT_MOCKED_RESPONSE = createMockedResponse([\n createMenuItem('Private', '/private/', 'root-private', [\n createLeaf('Skicka', '/private/skicka/', 'private-send', 1),\n createLeaf('Ta emot', '/private/ta-emot/', 'private-receive', 1),\n ]),\n createMenuItem('Business', '/business/', 'root-business', [\n createLeaf('Boka frakt', '/business/boka-frakt/', 'business-book', 1),\n createLeaf('Spåra', '/business/spåra/', 'business-track', 1),\n ]),\n createMenuItem('Shared', '/', 'root-shared', [\n createLeaf('Kundservice', '/kundservice/', 'shared-support', 1),\n createLeaf('Handla online', '/handla-online/', 'shared-shop', 1),\n ], 0, {\n isMegaMenuParent: false,\n }),\n]);\n\n/**\n * 3 switchable roots + shared.\n */\nconst THREE_MODES_MOCKED_RESPONSE = createMockedResponse([\n createMenuItem('Private', '/private/', 'root-private', [\n createLeaf('Skicka', '/private/skicka/', 'private-send', 1),\n createLeaf('Ta emot', '/private/ta-emot/', 'private-receive', 1),\n ]),\n createMenuItem('Business', '/business/', 'root-business', [\n createLeaf('Boka frakt', '/business/boka-frakt/', 'business-book', 1),\n createLeaf('Portal', '/business/portal/', 'business-portal', 1),\n ]),\n createMenuItem('Partners', '/partners/', 'root-partners', [\n createLeaf('Integrationer', '/partners/integrationer/', 'partners-integrations', 1),\n createLeaf('API-dokumentation', '/partners/api/', 'partners-api', 1),\n ]),\n createMenuItem('Shared', '/', 'root-shared', [\n createLeaf('Kundservice', '/kundservice/', 'shared-support', 1),\n createLeaf('Om oss', '/om-oss/', 'shared-about', 1),\n ], 0, {\n isMegaMenuParent: false,\n }),\n]);\n\n/**\n * One switchable root + shared.\n * Should not render a switcher because there is only one mode root.\n */\nconst ONE_MODE_MOCKED_RESPONSE = createMockedResponse([\n createMenuItem('Private', '/private/', 'root-private', [\n createLeaf('Skicka', '/private/skicka/', 'private-send', 1),\n createLeaf('Ta emot', '/private/ta-emot/', 'private-receive', 1),\n ]),\n createMenuItem('Shared', '/', 'root-shared', [\n createLeaf('Kundservice', '/kundservice/', 'shared-support', 1),\n createLeaf('Handla online', '/handla-online/', 'shared-shop', 1),\n ], 0, {\n isMegaMenuParent: false,\n }),\n]);\n\n/**\n * Shared-only structure.\n * No switching should be available.\n */\nconst SHARED_ONLY_MOCKED_RESPONSE = createMockedResponse([\n createMenuItem('Shared', '/', 'root-shared', [\n createLeaf('Kundservice', '/kundservice/', 'shared-support', 1),\n createLeaf('Handla online', '/handla-online/', 'shared-shop', 1),\n createLeaf('Om oss', '/om-oss/', 'shared-about', 1),\n ], 0, {\n isMegaMenuParent: false,\n }),\n]);\n\n\n/**\n * Switchable roots + shared, where visible menu items also contain sub-menu items.\n */\nconst NESTED_SUBMENU_MOCKED_RESPONSE = createMockedResponse([\n createMenuItem('Private', '/private/', 'root-private', [\n createMenuItem('Skicka', '/private/skicka/', 'private-send', [\n createLeaf('Inrikes', '/private/skicka/inrikes/', 'private-send-domestic', 2),\n createLeaf('Utrikes', '/private/skicka/utrikes/', 'private-send-international', 2),\n ], 1, {\n isMegaMenuParent: false,\n hasChildren: true,\n promotedMenuItemsHeader: 'Populärt',\n promotedMenuItems: [\n createPromotedMenuItem(\n 'Skicka paket och brev',\n 'https://se-inte.postnord.com/kop-frakt/',\n '/link/ed3ac8e1d91241e98ca0c9cce544018e.aspx',\n ),\n createPromotedMenuItem(\n 'Sök brevlåda eller serviceställe',\n 'https://se-inte.postnord.com/vara-verktyg/sok-brevlada-eller-servicestalle/',\n '/link/1ecca245984d4ea99a4bd28390577d52.aspx',\n ),\n ],\n }),\n createMenuItem('Ta emot', '/private/ta-emot/', 'private-receive', [\n createLeaf('Paket', '/private/ta-emot/paket/', 'private-receive-packages', 2),\n createLeaf('Brev', '/private/ta-emot/brev/', 'private-receive-letters', 2),\n ], 1, {\n isMegaMenuParent: false,\n hasChildren: true,\n }),\n ]),\n createMenuItem('Business', '/business/', 'root-business', [\n createMenuItem('Boka frakt', '/business/boka-frakt/', 'business-book', [\n createLeaf('Inrikes företag', '/business/boka-frakt/inrikes/', 'business-book-domestic', 2),\n createLeaf('Utrikes företag', '/business/boka-frakt/utrikes/', 'business-book-international', 2),\n ], 1, {\n isMegaMenuParent: false,\n hasChildren: true,\n }),\n createMenuItem('Spåra', '/business/spåra/', 'business-track', [\n createLeaf('Spåra paket', '/business/spåra/paket/', 'business-track-packages', 2),\n createLeaf('Spåra pall', '/business/spåra/pall/', 'business-track-pallets', 2),\n ], 1, {\n isMegaMenuParent: false,\n hasChildren: true,\n promotedMenuItemsHeader: 'Populärt',\n promotedMenuItems: [\n createPromotedMenuItem(\n 'Skicka paket och brev',\n 'https://se-inte.postnord.com/kop-frakt/',\n '/link/ed3ac8e1d91241e98ca0c9cce544018e.aspx',\n ),\n createPromotedMenuItem(\n 'Sök brevlåda eller serviceställe',\n 'https://se-inte.postnord.com/vara-verktyg/sok-brevlada-eller-servicestalle/',\n '/link/1ecca245984d4ea99a4bd28390577d52.aspx',\n ),\n ],\n }),\n ]),\n createMenuItem('Shared', '/', 'root-shared', [\n createMenuItem('Kundservice', '/kundservice/', 'shared-support', [\n createLeaf('Vanliga frågor', '/kundservice/fragor/', 'shared-support-faq', 2),\n createLeaf('Kontakta oss', '/kundservice/kontakta-oss/', 'shared-support-contact', 2),\n ], 1, {\n isMegaMenuParent: false,\n hasChildren: true,\n }),\n createMenuItem('Handla online', '/handla-online/', 'shared-shop', [\n createLeaf('Frimärken', '/handla-online/frimarken/', 'shared-shop-stamps', 2),\n createLeaf('Emballage', '/handla-online/emballage/', 'shared-shop-packaging', 2),\n ], 1, {\n isMegaMenuParent: false,\n hasChildren: true,\n }),\n ], 0, {\n isMegaMenuParent: false,\n }),\n]);\n\nconst meta: Meta<StoryArgs> = {\n title: 'Marketweb/Header/pn-marketweb-header',\n parameters: {\n layout: 'fullscreen',\n },\n argTypes: {\n market: { control: 'text' },\n language: { control: 'text' },\n initialActiveMenuMode: { control: 'number' },\n environment: {\n control: 'select',\n options: ['production', 'preproduction', 'integration', 'localhost'],\n },\n endpoint: { control: 'text' },\n pageId: { control: 'text' },\n siteid: { control: 'text' },\n userToken: { control: 'text' },\n userFullname: { control: 'text' },\n userLoggedin: { control: 'boolean' },\n hideSiteSelector: { control: 'boolean' },\n hideHomeMenuItem: { control: 'boolean' },\n hideLanguageSelector: { control: 'boolean' },\n hideSearch: { control: 'boolean' },\n hideLogin: { control: 'boolean' },\n showProfileSelection: { control: 'boolean' },\n showUnifiedLogin: { control: 'boolean' },\n siteDomainInUrls: { control: 'boolean' },\n autocompleteEndpoint: { control: 'text' },\n sessionForward: { control: 'boolean' },\n cache: { control: 'boolean' },\n searchPlaceholder: { control: 'text' },\n spaMode: { control: 'boolean' },\n checkUserLoggedInStateInterval: { control: 'number' },\n useMarketwebLogin: { control: 'boolean' },\n navigateOnMenuToggle: { control: 'boolean' },\n useMockedResponse: { control: 'boolean' },\n mockedResponse: {\n control: 'object',\n description: 'Mocked backend response envelope.',\n },\n },\n};\n\nexport default meta;\ntype Story = StoryObj<StoryArgs>;\n\n/**\n * Creates a deep clone of JSON-like mocked data.\n * This avoids accidental mutation across renders.\n */\nfunction cloneJson<T>(value: T): T {\n return JSON.parse(JSON.stringify(value));\n}\n\n/**\n * Creates a deep clone of the mocked backend response envelope.\n *\n * The mocked response should match the real backend response shape.\n */\nfunction extractPayload(mockedResponse: HeaderApiEnvelope): HeaderApiEnvelope {\n return cloneJson(mockedResponse);\n}\n\n/**\n * Creates a fetch Response containing mocked JSON.\n */\nfunction createJsonResponse(body: unknown): Response {\n return new Response(JSON.stringify(body), {\n status: 200,\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n}\n\nfunction restoreOriginalFetch(): void {\n window.fetch = ORIGINAL_FETCH;\n}\n\n/**\n * Installs a fetch mock that intercepts header requests and returns the mocked\n * backend envelope.\n *\n * The component still performs a normal fetch from its point of view.\n */\nfunction installHeaderFetchMock(mockedResponse: HeaderApiEnvelope, endpoint: string): void {\n window.fetch = async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {\n const requestUrl =\n typeof input === 'string'\n ? input\n : input instanceof URL\n ? input.toString()\n : input.url;\n\n const normalizedEndpoint = endpoint.replace(/\\/$/, '');\n const isHeaderRequest =\n requestUrl.includes(`${normalizedEndpoint}/api/navigation/toggle-header`) ||\n requestUrl.includes('/api/navigation/toggle-header');\n\n if (isHeaderRequest) {\n const payload = extractPayload(mockedResponse);\n return createJsonResponse(payload);\n }\n\n return ORIGINAL_FETCH(input as any, init);\n };\n}\n\nfunction createTopRightEndButton(): HTMLAnchorElement {\n const button = document.createElement('a');\n button.setAttribute('slot', 'toprightend');\n button.setAttribute('style', 'align-self:center;justfit-content:center;position:relative;text-decoration:none;color:#005d92;');\n button.innerHTML = `<span>Varukorg</span><pn-icon icon='${shop}' color=\"blue700\" class=\"pn-icon\"></pn-icon>`;\n button.style.cursor = 'pointer';\n button.style.fontSize = '16px';\n return button;\n}\n\nfunction createMenuFooterCta(): HTMLAnchorElement {\n const link = document.createElement('a');\n link.setAttribute('slot', 'menu-footer-cta');\n link.setAttribute('href', '#');\n link.textContent = 'Footer CTA';\n link.style.display = 'inline-block';\n link.style.padding = '8px 12px';\n link.style.borderRadius = '6px';\n link.style.border = '1px solid #ccc';\n link.style.textDecoration = 'none';\n link.style.color = 'inherit';\n return link;\n}\n\n/**\n * Creates the actual header element and assigns props directly.\n *\n * This is important for boolean props like navigateOnMenuToggle.\n */\nfunction createHeaderElement(args: StoryArgs): HTMLElement {\n const header = document.createElement('pn-marketweb-header') as any;\n\n header.market = args.market;\n header.initialActiveMenuMode = args.initialActiveMenuMode;\n header.menuThemes = args.menuThemes;\n header.language = args.language;\n header.environment = args.environment;\n header.endpoint = args.endpoint;\n header.pageId = args.pageId;\n header.siteid = args.siteid;\n header.userToken = args.userToken;\n header.userFullname = args.userFullname;\n header.userLoggedin = args.userLoggedin;\n header.hideSiteSelector = args.hideSiteSelector;\n header.hideHomeMenuItem = args.hideHomeMenuItem;\n header.hideLanguageSelector = args.hideLanguageSelector;\n header.hideSearch = args.hideSearch;\n header.hideLogin = args.hideLogin;\n header.showProfileSelection = args.showProfileSelection;\n header.showUnifiedLogin = args.showUnifiedLogin;\n header.siteDomainInUrls = args.siteDomainInUrls;\n header.autocompleteEndpoint = args.autocompleteEndpoint;\n header.sessionForward = args.sessionForward;\n header.cache = args.cache;\n header.searchPlaceholder = args.searchPlaceholder;\n header.spaMode = args.spaMode;\n header.checkUserLoggedInStateInterval = args.checkUserLoggedInStateInterval;\n header.useMarketwebLogin = args.useMarketwebLogin;\n header.navigateOnMenuToggle = args.navigateOnMenuToggle;\n\n header.appendChild(createTopRightEndButton());\n header.appendChild(createMenuFooterCta());\n\n return header;\n}\n\n/**\n * Renders the Storybook shell and the header.\n *\n * This story intentionally does not include a fake menu switcher.\n * The real pn-marketweb-header should render its own switcher when the menu\n * structure supports multiple switchable root menus.\n */\nfunction renderHeaderStory(args: StoryArgs): HTMLElement {\n restoreOriginalFetch();\n\n if (args.useMockedResponse) {\n installHeaderFetchMock(args.mockedResponse, args.endpoint);\n }\n\n const root = document.createElement('div');\n root.style.minHeight = '100vh';\n root.style.background = '#f5f5f5';\n\n const header = createHeaderElement(args);\n root.appendChild(header);\n\n const main = document.createElement('main');\n main.style.padding = '32px';\n\n const title = document.createElement('h1');\n title.textContent = 'Storybook preview';\n title.style.marginTop = '0';\n\n const paragraph1 = document.createElement('p');\n paragraph1.textContent = args.useMockedResponse\n ? 'This story uses a mocked backend response.'\n : 'This story uses the real backend response from the configured endpoint.';\n\n const paragraph2 = document.createElement('p');\n paragraph2.innerHTML =\n 'In Storybook, <code>navigateOnMenuToggle</code> is disabled by default so you can inspect menu switching without leaving the preview.';\n\n main.appendChild(title);\n main.appendChild(paragraph1);\n main.appendChild(paragraph2);\n\n root.appendChild(main);\n\n return root;\n}\n\nconst DEFAULT_ARGS: Omit<StoryArgs, 'mockedResponse'> = {\n market: 'se',\n language: 'sv',\n environment: 'localhost',\n initialActiveMenuMode: 0,\n endpoint: 'https://storybook.local',\n pageId: '9',\n siteid: '',\n userToken: '',\n userFullname: '',\n userLoggedin: false,\n hideSiteSelector: false,\n hideHomeMenuItem: false,\n hideLanguageSelector: false,\n hideSearch: false,\n hideLogin: false,\n showProfileSelection: true,\n showUnifiedLogin: true,\n siteDomainInUrls: false,\n autocompleteEndpoint: '',\n sessionForward: false,\n cache: false,\n searchPlaceholder: 'Sök',\n spaMode: false,\n checkUserLoggedInStateInterval: 0,\n useMarketwebLogin: false,\n navigateOnMenuToggle: false,\n useMockedResponse: true,\n};\n\n/**\n * Baseline story:\n * - 2 switchable roots\n * - 1 shared root\n */\nexport const TwoModesWithShared: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n mockedResponse: DEFAULT_MOCKED_RESPONSE,\n },\n};\n\n/**\n * Verifies that more than 2 switchable roots are supported.\n */\nexport const ThreeModesWithShared: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n mockedResponse: THREE_MODES_MOCKED_RESPONSE,\n },\n};\n\n/**\n * Only one mode root + shared.\n * The header should not render the menu switcher.\n */\nexport const OneModeWithShared: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n mockedResponse: ONE_MODE_MOCKED_RESPONSE,\n },\n};\n\n/**\n * Shared-only structure.\n * Useful for verifying fallback rendering when no switchable roots exist.\n */\nexport const SharedOnly: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n mockedResponse: SHARED_ONLY_MOCKED_RESPONSE,\n },\n};\n\n/**\n * Same baseline structure, but start on the second mode.\n */\nexport const StartOnSecondMode: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n initialActiveMenuMode: 1,\n mockedResponse: DEFAULT_MOCKED_RESPONSE,\n },\n};\n\n/**\n * Same baseline structure, but allow real navigation hrefs on mode change.\n * Mostly useful for checking rendered links rather than interacting in Storybook.\n */\nexport const NavigationEnabled: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n navigateOnMenuToggle: true,\n mockedResponse: DEFAULT_MOCKED_RESPONSE,\n },\n};\n\n/**\n * Smaller layout story while still using mocked data.\n */\nexport const Minimal: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n hideSiteSelector: true,\n hideLanguageSelector: true,\n hideLogin: true,\n showProfileSelection: false,\n showUnifiedLogin: false,\n mockedResponse: DEFAULT_MOCKED_RESPONSE,\n },\n};\n\n/**\n * Menu items contain nested sub-menu items.\n */\nexport const NestedSubmenuItems: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n mockedResponse: NESTED_SUBMENU_MOCKED_RESPONSE,\n },\n};\n\n/**\n * Uses the real local CMS instead of Storybook fetch mocking.\n */\nexport const LocalCms: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n useMockedResponse: false,\n endpoint: 'https://localhost:51547',\n environment: 'localhost',\n pageId: '9',\n siteid: '',\n mockedResponse: DEFAULT_MOCKED_RESPONSE,\n },\n};\n\n\n/**\n * Uses the real integration CMS instead of Storybook fetch mocking. //FIXME: getting cors-safe data at the moment\n */\nexport const IntegrationCms: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n useMockedResponse: false,\n endpoint: 'https://se-inte.postnord.com',\n environment: 'integration',\n market: 'se',\n language: 'sv',\n pageId: '9',\n // userToken: '6ae6bde345eb68fc0102f4ba256f31e9151db31dc2ea4c23a51917c'\n\n },\n};"]}
1
+ {"version":3,"file":"pn-marketweb-header.stories.js","sourceRoot":"","sources":["../../../../src/components/layout-components/pn-marketweb-header/pn-marketweb-header.stories.ts"],"names":[],"mappings":"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","sourcesContent":["import { shop } from 'pn-design-assets/pn-assets/icons';\n\nimport type {\n Meta,\n StoryObj,\n} from '@storybook/web-components';\n\nimport type {\n HeaderApiEnvelope,\n HeaderMenuMode,\n} from './types/pn-marketweb-header.types';\n\n/**\n * Story args for pn-marketweb-header.\n *\n * This story:\n * - renders the real pn-marketweb-header\n * - can optionally intercept its backend fetch call\n * - returns a mocked backend envelope when mocking is enabled\n * - lets the actual header component render and control its own menu switcher\n */\ninterface StoryArgs {\n market: string;\n language: string;\n initialActiveMenuMode: HeaderMenuMode;\n forceThemeAndToggle: HeaderMenuMode;\n menuThemes?: string;\n environment: 'production' | 'preproduction' | 'integration' | 'localhost';\n endpoint: string;\n pageId: string;\n siteid: string;\n userToken: string;\n userFullname: string;\n userLoggedin: boolean;\n hideSiteSelector: boolean;\n hideHomeMenuItem: boolean;\n hideLanguageSelector: boolean;\n hideSearch: boolean;\n hideLogin: boolean;\n showProfileSelection: boolean;\n showUnifiedLogin: boolean;\n siteDomainInUrls: boolean;\n autocompleteEndpoint: string;\n sessionForward: boolean;\n cache: boolean;\n searchPlaceholder: string;\n spaMode: boolean;\n checkUserLoggedInStateInterval: number;\n useMarketwebLogin: boolean;\n navigateOnMenuToggle: boolean;\n\n /** Optional URL hash applied in the Storybook preview iframe, e.g. #ttm1. */\n urlHash?: string;\n\n /**\n * Mocked backend response envelope.\n *\n * This should match the real backend response shape.\n */\n mockedResponse: HeaderApiEnvelope;\n\n /**\n * When true, Storybook intercepts the header fetch and returns mockedResponse.\n * When false, the real endpoint is used.\n */\n useMockedResponse: boolean;\n}\n\nconst ORIGINAL_FETCH = window.fetch.bind(window);\n\n/**\n * Create promoted menuitems for testing purposes\n */\nfunction createPromotedMenuItem(\n linkText: string,\n href: string,\n pageLink = href,\n openInNewWindow = false,\n) {\n return {\n linkText,\n pageLink,\n href,\n openInNewWindow,\n };\n}\n\n\n/**\n * Reusable menu item factory to keep stories compact.\n */\nfunction createMenuItem(\n name: string,\n href: string,\n id: string,\n children: any[] = [],\n level = 0,\n overrides: Record<string, any> = {},\n) {\n return {\n name,\n href,\n id,\n selected: false,\n open: false,\n children,\n navigationHeading: '',\n promotedMenuItemsHeader: '',\n promotedMenuItems: [],\n hasChildren: children.length > 0,\n linkTarget: '',\n trackingId: `${name.toLowerCase().replace(/\\s+/g, '-')}${id}`,\n level,\n isMegaMenuParent: level === 0,\n ...overrides,\n };\n}\n\nfunction createLeaf(\n name: string,\n href: string,\n id: string,\n level = 1,\n) {\n return createMenuItem(name, href, id, [], level, {\n isMegaMenuParent: false,\n });\n}\n\n/**\n * Creates a mocked backend envelope with the supplied top-level menu structure.\n *\n * Structure semantics used by the header:\n * - all items except the last = switchable root menus\n * - last item = shared/common root\n *\n * This mock is intentionally kept trimmed to match the current frontend\n * interfaces, while still preserving the real backend envelope shape.\n */\nfunction createMockedResponse(menuItems: any[]): HeaderApiEnvelope {\n return {\n value: {\n sitedefinition: {\n name: 'Postnord Sweden',\n url: 'https://localhost:51547/',\n },\n search: {\n formActionUrl: 'https://localhost:51547/sok/',\n AutocompleteEndpoint: 'https://localhost:51547/api/search/autocomplete',\n },\n languageSelectorViewModel: {\n currentLanguageNativeName: 'Svenska',\n languages: [\n {\n twoLetterISOLanguageName: 'en',\n nativeName: 'English',\n isCurrent: false,\n },\n {\n twoLetterISOLanguageName: 'sv',\n nativeName: 'Svenska',\n isCurrent: true,\n },\n {\n twoLetterISOLanguageName: 'da',\n nativeName: 'Dansk',\n isCurrent: false,\n },\n ],\n },\n siteSelectorViewModel: {\n siteSelectorButtonText: 'postnord.se',\n siteSelectorTitle: 'PostNord',\n currentSiteTitle: 'postnord.se',\n currentSiteDescription: 'Tjänster och verktyg för att skicka och ta emot din post',\n siteSelections: [\n {\n linkText: 'Portal',\n linkDescription: 'Hantera dina försändelser',\n href: 'https://portal.postnord.com/',\n pageLink: '/portal/',\n openInNewWindow: false,\n },\n {\n linkText: 'postnord.com',\n linkDescription: 'Information om PostNord Koncernen',\n href: 'https://com-inte.postnord.com/sv/',\n pageLink: 'https://com-inte.postnord.com/sv/',\n openInNewWindow: true,\n },\n ],\n },\n loginViewModel: {\n loginMenuLinks: [\n {\n linkText: 'Logga in',\n href: 'https://portal.postnord.com/login?language=sv',\n pageLink: '/login/',\n openInNewWindow: false,\n primaryLinkApperance: true,\n isLogoutLink: false,\n linkType: 'unified',\n },\n ],\n legacyLoginLinks: [\n {\n linkText: 'Logga in',\n href: 'https://portal.postnord.com/login?language=sv',\n pageLink: '/login/',\n openInNewWindow: false,\n primaryLinkApperance: true,\n isLogoutLink: false,\n },\n ],\n loggedInLinks: [\n {\n linkText: 'Logga ut',\n href: 'http://window.location.href/?logout',\n pageLink: '/logout',\n openInNewWindow: false,\n primaryLinkApperance: false,\n isLogoutLink: true,\n },\n ],\n overrideLoginMenu: false,\n loginMenuLinkText: 'Logga in',\n countryCode: 'SE',\n locale: 'sv',\n loginUrl: 'https://portal.postnord.com/login?language=sv',\n registerUrl: 'https://portal.postnord.com/createaccount?market=SE',\n loggedInButtonText: 'My PostNord',\n loginTitle: 'Logga in direkt på:',\n loginLinkText: 'Logga in',\n createLoginLinkText: 'Skapa nytt konto',\n loginInfo:\n '<p>Testing the login <a href=\"/link/0e1d8517b7344986b68152a9a0544460.aspx\">recommendation</a></p>',\n },\n mainMenu: {\n menuItems,\n },\n },\n formatters: [],\n contentTypes: [],\n declaredType: null,\n statusCode: 200,\n };\n}\n\n/**\n * Default structure:\n * - 2 switchable roots\n * - 1 shared/common root\n */\nconst DEFAULT_MOCKED_RESPONSE = createMockedResponse([\n createMenuItem('Private', '/private/', 'root-private', [\n createLeaf('Skicka', '/private/skicka/', 'private-send', 1),\n createLeaf('Ta emot', '/private/ta-emot/', 'private-receive', 1),\n ], 0, {\n toggleTheme: 'private',\n }),\n createMenuItem('Business', '/business/', 'root-business', [\n createLeaf('Boka frakt', '/business/boka-frakt/', 'business-book', 1),\n createLeaf('Spåra', '/business/spåra/', 'business-track', 1),\n ], 0, {\n toggleTheme: 'business',\n }),\n createMenuItem('Shared', '/', 'root-shared', [\n createLeaf('Kundservice', '/kundservice/', 'shared-support', 1),\n createLeaf('Handla online', '/handla-online/', 'shared-shop', 1),\n ], 0, {\n isMegaMenuParent: false,\n }),\n]);\n\n/**\n * 3 switchable roots + shared.\n */\nconst THREE_MODES_MOCKED_RESPONSE = createMockedResponse([\n createMenuItem('Private', '/private/', 'root-private', [\n createLeaf('Skicka', '/private/skicka/', 'private-send', 1),\n createLeaf('Ta emot', '/private/ta-emot/', 'private-receive', 1),\n ], 0, {\n toggleTheme: 'private',\n }),\n createMenuItem('Business', '/business/', 'root-business', [\n createLeaf('Boka frakt', '/business/boka-frakt/', 'business-book', 1),\n createLeaf('Portal', '/business/portal/', 'business-portal', 1),\n ], 0, {\n toggleTheme: 'business',\n }),\n createMenuItem('Partners', '/partners/', 'root-partners', [\n createLeaf('Integrationer', '/partners/integrationer/', 'partners-integrations', 1),\n createLeaf('API-dokumentation', '/partners/api/', 'partners-api', 1),\n ], 0, {\n toggleTheme: 'business',\n }),\n createMenuItem('Shared', '/', 'root-shared', [\n createLeaf('Kundservice', '/kundservice/', 'shared-support', 1),\n createLeaf('Om oss', '/om-oss/', 'shared-about', 1),\n ], 0, {\n isMegaMenuParent: false,\n }),\n]);\n\n/**\n * One switchable root + shared.\n * Should not render a switcher because there is only one mode root.\n */\nconst ONE_MODE_MOCKED_RESPONSE = createMockedResponse([\n createMenuItem('Private', '/private/', 'root-private', [\n createLeaf('Skicka', '/private/skicka/', 'private-send', 1),\n createLeaf('Ta emot', '/private/ta-emot/', 'private-receive', 1),\n ], 0, {\n toggleTheme: 'private',\n }),\n createMenuItem('Shared', '/', 'root-shared', [\n createLeaf('Kundservice', '/kundservice/', 'shared-support', 1),\n createLeaf('Handla online', '/handla-online/', 'shared-shop', 1),\n ], 0, {\n isMegaMenuParent: false,\n }),\n]);\n\n/**\n * Shared-only structure.\n * No switching should be available.\n */\nconst SHARED_ONLY_MOCKED_RESPONSE = createMockedResponse([\n createMenuItem('Shared', '/', 'root-shared', [\n createLeaf('Kundservice', '/kundservice/', 'shared-support', 1),\n createLeaf('Handla online', '/handla-online/', 'shared-shop', 1),\n createLeaf('Om oss', '/om-oss/', 'shared-about', 1),\n ], 0, {\n isMegaMenuParent: false,\n }),\n]);\n\n\n/**\n * Switchable roots + shared, where visible menu items also contain sub-menu items.\n */\nconst NESTED_SUBMENU_MOCKED_RESPONSE = createMockedResponse([\n createMenuItem('Private', '/private/', 'root-private', [\n createMenuItem('Skicka', '/private/skicka/', 'private-send', [\n createLeaf('Inrikes', '/private/skicka/inrikes/', 'private-send-domestic', 2),\n createLeaf('Utrikes', '/private/skicka/utrikes/', 'private-send-international', 2),\n ], 1, {\n isMegaMenuParent: false,\n hasChildren: true,\n promotedMenuItemsHeader: 'Populärt',\n promotedMenuItems: [\n createPromotedMenuItem(\n 'Skicka paket och brev',\n 'https://se-inte.postnord.com/kop-frakt/',\n '/link/ed3ac8e1d91241e98ca0c9cce544018e.aspx',\n ),\n createPromotedMenuItem(\n 'Sök brevlåda eller serviceställe',\n 'https://se-inte.postnord.com/vara-verktyg/sok-brevlada-eller-servicestalle/',\n '/link/1ecca245984d4ea99a4bd28390577d52.aspx',\n ),\n ],\n }),\n createMenuItem('Ta emot', '/private/ta-emot/', 'private-receive', [\n createLeaf('Paket', '/private/ta-emot/paket/', 'private-receive-packages', 2),\n createLeaf('Brev', '/private/ta-emot/brev/', 'private-receive-letters', 2),\n ], 1, {\n isMegaMenuParent: false,\n hasChildren: true,\n }),\n ], 0, {\n toggleTheme: 'private',\n }),\n createMenuItem('Business', '/business/', 'root-business', [\n createMenuItem('Boka frakt', '/business/boka-frakt/', 'business-book', [\n createLeaf('Inrikes företag', '/business/boka-frakt/inrikes/', 'business-book-domestic', 2),\n createLeaf('Utrikes företag', '/business/boka-frakt/utrikes/', 'business-book-international', 2),\n ], 1, {\n isMegaMenuParent: false,\n hasChildren: true,\n }),\n createMenuItem('Spåra', '/business/spåra/', 'business-track', [\n createLeaf('Spåra paket', '/business/spåra/paket/', 'business-track-packages', 2),\n createLeaf('Spåra pall', '/business/spåra/pall/', 'business-track-pallets', 2),\n ], 1, {\n isMegaMenuParent: false,\n hasChildren: true,\n promotedMenuItemsHeader: 'Populärt',\n promotedMenuItems: [\n createPromotedMenuItem(\n 'Skicka paket och brev',\n 'https://se-inte.postnord.com/kop-frakt/',\n '/link/ed3ac8e1d91241e98ca0c9cce544018e.aspx',\n ),\n createPromotedMenuItem(\n 'Sök brevlåda eller serviceställe',\n 'https://se-inte.postnord.com/vara-verktyg/sok-brevlada-eller-servicestalle/',\n '/link/1ecca245984d4ea99a4bd28390577d52.aspx',\n ),\n ],\n }),\n ], 0, {\n toggleTheme: 'business',\n }),\n createMenuItem('Shared', '/', 'root-shared', [\n createMenuItem('Kundservice', '/kundservice/', 'shared-support', [\n createLeaf('Vanliga frågor', '/kundservice/fragor/', 'shared-support-faq', 2),\n createLeaf('Kontakta oss', '/kundservice/kontakta-oss/', 'shared-support-contact', 2),\n ], 1, {\n isMegaMenuParent: false,\n hasChildren: true,\n }),\n createMenuItem('Handla online', '/handla-online/', 'shared-shop', [\n createLeaf('Frimärken', '/handla-online/frimarken/', 'shared-shop-stamps', 2),\n createLeaf('Emballage', '/handla-online/emballage/', 'shared-shop-packaging', 2),\n ], 1, {\n isMegaMenuParent: false,\n hasChildren: true,\n }),\n ], 0, {\n isMegaMenuParent: false,\n }),\n]);\n\nconst meta: Meta<StoryArgs> = {\n title: 'Marketweb/Header/pn-marketweb-header',\n parameters: {\n layout: 'fullscreen',\n },\n argTypes: {\n market: { control: 'text' },\n language: { control: 'text' },\n initialActiveMenuMode: { control: 'number' },\n forceThemeAndToggle: { control: 'number' },\n environment: {\n control: 'select',\n options: ['production', 'preproduction', 'integration', 'localhost'],\n },\n endpoint: { control: 'text' },\n pageId: { control: 'text' },\n siteid: { control: 'text' },\n userToken: { control: 'text' },\n userFullname: { control: 'text' },\n userLoggedin: { control: 'boolean' },\n hideSiteSelector: { control: 'boolean' },\n hideHomeMenuItem: { control: 'boolean' },\n hideLanguageSelector: { control: 'boolean' },\n hideSearch: { control: 'boolean' },\n hideLogin: { control: 'boolean' },\n showProfileSelection: { control: 'boolean' },\n showUnifiedLogin: { control: 'boolean' },\n siteDomainInUrls: { control: 'boolean' },\n autocompleteEndpoint: { control: 'text' },\n sessionForward: { control: 'boolean' },\n cache: { control: 'boolean' },\n searchPlaceholder: { control: 'text' },\n spaMode: { control: 'boolean' },\n checkUserLoggedInStateInterval: { control: 'number' },\n useMarketwebLogin: { control: 'boolean' },\n navigateOnMenuToggle: { control: 'boolean' },\n urlHash: {\n control: 'text',\n description: 'Optional URL hash applied in the Storybook preview iframe, e.g. #ttm1.',\n },\n useMockedResponse: { control: 'boolean' },\n mockedResponse: {\n control: 'object',\n description: 'Mocked backend response envelope.',\n },\n },\n};\n\nexport default meta;\ntype Story = StoryObj<StoryArgs>;\n\n/**\n * Creates a deep clone of JSON-like mocked data.\n * This avoids accidental mutation across renders.\n */\nfunction cloneJson<T>(value: T): T {\n return JSON.parse(JSON.stringify(value));\n}\n\n/**\n * Creates a deep clone of the mocked backend response envelope.\n *\n * The mocked response should match the real backend response shape.\n */\nfunction extractPayload(mockedResponse: HeaderApiEnvelope): HeaderApiEnvelope {\n return cloneJson(mockedResponse);\n}\n\n/**\n * Creates a fetch Response containing mocked JSON.\n */\nfunction createJsonResponse(body: unknown): Response {\n return new Response(JSON.stringify(body), {\n status: 200,\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n}\n\nfunction restoreOriginalFetch(): void {\n window.fetch = ORIGINAL_FETCH;\n}\n\nfunction applyStoryUrlHash(urlHash?: string): void {\n const hash = urlHash ?? '';\n const nextUrl = `${window.location.pathname}${window.location.search}${hash}`;\n window.history.replaceState(null, '', nextUrl);\n}\n\n/**\n * Installs a fetch mock that intercepts header requests and returns the mocked\n * backend envelope.\n *\n * The component still performs a normal fetch from its point of view.\n */\nfunction installHeaderFetchMock(mockedResponse: HeaderApiEnvelope, endpoint: string): void {\n window.fetch = async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {\n const requestUrl =\n typeof input === 'string'\n ? input\n : input instanceof URL\n ? input.toString()\n : input.url;\n\n const normalizedEndpoint = endpoint.replace(/\\/$/, '');\n const isHeaderRequest =\n requestUrl.includes(`${normalizedEndpoint}/api/navigation/toggle-header`) ||\n requestUrl.includes('/api/navigation/toggle-header');\n\n if (isHeaderRequest) {\n const payload = extractPayload(mockedResponse);\n return createJsonResponse(payload);\n }\n\n return ORIGINAL_FETCH(input as any, init);\n };\n}\n\nfunction createTopRightEndButton(): HTMLAnchorElement {\n const button = document.createElement('a');\n button.setAttribute('slot', 'toprightend');\n button.setAttribute('style', 'align-self:center;justfit-content:center;position:relative;text-decoration:none;color:#005d92;');\n button.innerHTML = `<span>Varukorg</span><pn-icon icon='${shop}' color=\"blue700\" class=\"pn-icon\"></pn-icon>`;\n button.style.cursor = 'pointer';\n button.style.fontSize = '16px';\n return button;\n}\n\nfunction createMenuFooterCta(): HTMLAnchorElement {\n const link = document.createElement('a');\n link.setAttribute('slot', 'menu-footer-cta');\n link.setAttribute('href', '#');\n link.textContent = 'Footer CTA';\n link.style.display = 'inline-block';\n link.style.padding = '8px 12px';\n link.style.borderRadius = '6px';\n link.style.border = '1px solid #ccc';\n link.style.textDecoration = 'none';\n link.style.color = 'inherit';\n return link;\n}\n\n/**\n * Creates the actual header element and assigns props directly.\n *\n * This is important for boolean props like navigateOnMenuToggle.\n */\nfunction createHeaderElement(args: StoryArgs): HTMLElement {\n const header = document.createElement('pn-marketweb-header') as any;\n\n header.market = args.market;\n header.initialActiveMenuMode = args.initialActiveMenuMode;\n header.forceThemeAndToggle = args.forceThemeAndToggle;\n header.menuThemes = args.menuThemes;\n header.language = args.language;\n header.environment = args.environment;\n header.endpoint = args.endpoint;\n header.pageId = args.pageId;\n header.siteid = args.siteid;\n header.userToken = args.userToken;\n header.userFullname = args.userFullname;\n header.userLoggedin = args.userLoggedin;\n header.hideSiteSelector = args.hideSiteSelector;\n header.hideHomeMenuItem = args.hideHomeMenuItem;\n header.hideLanguageSelector = args.hideLanguageSelector;\n header.hideSearch = args.hideSearch;\n header.hideLogin = args.hideLogin;\n header.showProfileSelection = args.showProfileSelection;\n header.showUnifiedLogin = args.showUnifiedLogin;\n header.siteDomainInUrls = args.siteDomainInUrls;\n header.autocompleteEndpoint = args.autocompleteEndpoint;\n header.sessionForward = args.sessionForward;\n header.cache = args.cache;\n header.searchPlaceholder = args.searchPlaceholder;\n header.spaMode = args.spaMode;\n header.checkUserLoggedInStateInterval = args.checkUserLoggedInStateInterval;\n header.useMarketwebLogin = args.useMarketwebLogin;\n header.navigateOnMenuToggle = args.navigateOnMenuToggle;\n\n header.appendChild(createTopRightEndButton());\n header.appendChild(createMenuFooterCta());\n\n return header;\n}\n\n/**\n * Renders the Storybook shell and the header.\n *\n * This story intentionally does not include a fake menu switcher.\n * The real pn-marketweb-header should render its own switcher when the menu\n * structure supports multiple switchable root menus.\n */\nfunction renderHeaderStory(args: StoryArgs): HTMLElement {\n restoreOriginalFetch();\n applyStoryUrlHash(args.urlHash);\n\n if (args.useMockedResponse) {\n installHeaderFetchMock(args.mockedResponse, args.endpoint);\n }\n\n const root = document.createElement('div');\n root.style.minHeight = '100vh';\n root.style.background = '#f5f5f5';\n\n const header = createHeaderElement(args);\n root.appendChild(header);\n\n const main = document.createElement('main');\n main.style.padding = '32px';\n\n const title = document.createElement('h1');\n title.textContent = 'Storybook preview';\n title.style.marginTop = '0';\n\n const paragraph1 = document.createElement('p');\n paragraph1.textContent = args.useMockedResponse\n ? 'This story uses a mocked backend response.'\n : 'This story uses the real backend response from the configured endpoint.';\n\n const paragraph2 = document.createElement('p');\n paragraph2.innerHTML =\n 'In Storybook, <code>navigateOnMenuToggle</code> is disabled by default so you can inspect menu switching without leaving the preview.';\n\n main.appendChild(title);\n main.appendChild(paragraph1);\n main.appendChild(paragraph2);\n\n root.appendChild(main);\n\n return root;\n}\n\nconst DEFAULT_ARGS: Omit<StoryArgs, 'mockedResponse'> = {\n market: 'se',\n language: 'sv',\n environment: 'localhost',\n initialActiveMenuMode: 0,\n forceThemeAndToggle: -1,\n endpoint: 'https://storybook.local',\n pageId: '9',\n siteid: '',\n userToken: '',\n userFullname: '',\n userLoggedin: false,\n hideSiteSelector: false,\n hideHomeMenuItem: false,\n hideLanguageSelector: false,\n hideSearch: false,\n hideLogin: false,\n showProfileSelection: true,\n showUnifiedLogin: true,\n siteDomainInUrls: false,\n autocompleteEndpoint: '',\n sessionForward: false,\n cache: false,\n searchPlaceholder: 'Sök',\n spaMode: false,\n checkUserLoggedInStateInterval: 0,\n useMarketwebLogin: false,\n navigateOnMenuToggle: false,\n urlHash: '',\n useMockedResponse: true,\n};\n\n/**\n * Baseline story:\n * - 2 switchable roots\n * - 1 shared root\n */\nexport const TwoModesWithShared: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n mockedResponse: DEFAULT_MOCKED_RESPONSE,\n },\n};\n\n/**\n * Verifies that more than 2 switchable roots are supported.\n */\nexport const ThreeModesWithShared: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n mockedResponse: THREE_MODES_MOCKED_RESPONSE,\n },\n};\n\n/**\n * Only one mode root + shared.\n * The header should not render the menu switcher.\n */\nexport const OneModeWithShared: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n mockedResponse: ONE_MODE_MOCKED_RESPONSE,\n },\n};\n\n/**\n * Shared-only structure.\n * Useful for verifying fallback rendering when no switchable roots exist.\n */\nexport const SharedOnly: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n mockedResponse: SHARED_ONLY_MOCKED_RESPONSE,\n },\n};\n\n/**\n * Same baseline structure, but start on the second mode.\n */\nexport const StartOnSecondMode: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n initialActiveMenuMode: 1,\n mockedResponse: DEFAULT_MOCKED_RESPONSE,\n },\n};\n\n/**\n * Same baseline structure, but force the first mode and its theme.\n */\nexport const ForceFirstModeAndTheme: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n forceThemeAndToggle: 0,\n mockedResponse: DEFAULT_MOCKED_RESPONSE,\n },\n};\n\n/**\n * Same baseline structure, but force the second mode and its theme.\n */\nexport const ForceSecondModeAndTheme: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n forceThemeAndToggle: 1,\n mockedResponse: DEFAULT_MOCKED_RESPONSE,\n },\n};\n\n/**\n * URL hash should have highest precedence and override forceThemeAndToggle.\n */\nexport const HashForcesSecondModeOverForceThemeOne: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n forceThemeAndToggle: 0,\n urlHash: '#ttm1',\n mockedResponse: DEFAULT_MOCKED_RESPONSE,\n },\n};\n\n/**\n * Same baseline structure, but allow real navigation hrefs on mode change.\n * Mostly useful for checking rendered links rather than interacting in Storybook.\n */\nexport const NavigationEnabled: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n navigateOnMenuToggle: true,\n mockedResponse: DEFAULT_MOCKED_RESPONSE,\n },\n};\n\n/**\n * Smaller layout story while still using mocked data.\n */\nexport const Minimal: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n hideSiteSelector: true,\n hideLanguageSelector: true,\n hideLogin: true,\n showProfileSelection: false,\n showUnifiedLogin: false,\n mockedResponse: DEFAULT_MOCKED_RESPONSE,\n },\n};\n\n/**\n * Menu items contain nested sub-menu items.\n */\nexport const NestedSubmenuItems: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n mockedResponse: NESTED_SUBMENU_MOCKED_RESPONSE,\n },\n};\n\n/**\n * Uses the real local CMS instead of Storybook fetch mocking.\n */\nexport const LocalCms: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n useMockedResponse: false,\n endpoint: 'https://localhost:51547',\n environment: 'localhost',\n pageId: '9',\n siteid: '',\n mockedResponse: DEFAULT_MOCKED_RESPONSE,\n },\n};\n\n\n/**\n * Uses the real integration CMS instead of Storybook fetch mocking. //FIXME: getting cors-safe data at the moment\n */\nexport const IntegrationCms: Story = {\n render: args => renderHeaderStory(args),\n args: {\n ...DEFAULT_ARGS,\n useMockedResponse: false,\n endpoint: 'https://se-inte.postnord.com',\n environment: 'integration',\n market: 'se',\n language: 'sv',\n pageId: '9',\n // userToken: '6ae6bde345eb68fc0102f4ba256f31e9151db31dc2ea4c23a51917c'\n\n },\n};"]}
@@ -773,6 +773,7 @@ const PnMarketwebHeader$1 = /*@__PURE__*/ proxyCustomElement(class PnMarketwebHe
773
773
  this.changeLanguage = createEvent(this, "changeLanguage", 7);
774
774
  this.changeMarket = createEvent(this, "changeMarket", 7);
775
775
  this.initialActiveMenuMode = 0;
776
+ this.forceThemeAndToggle = -1;
776
777
  this.menuThemes = undefined;
777
778
  this.market = null;
778
779
  this.language = null;
@@ -883,6 +884,34 @@ const PnMarketwebHeader$1 = /*@__PURE__*/ proxyCustomElement(class PnMarketwebHe
883
884
  get logoUrl() {
884
885
  return this.vm?.menuModeOptions?.[this.activeMenuMode]?.href ?? '/';
885
886
  }
887
+ get hasForcedThemeAndToggle() {
888
+ return Number.isInteger(this.forceThemeAndToggle) && this.forceThemeAndToggle !== -1;
889
+ }
890
+ get forcedMenuModeFromUrl() {
891
+ if (typeof window === 'undefined') {
892
+ return null;
893
+ }
894
+ const hash = window.location.hash ?? '';
895
+ const match = hash.match(/^#ttm(?:=)?(\d+)$/i);
896
+ if (!match) {
897
+ return null;
898
+ }
899
+ const parsedMode = Number.parseInt(match[1], 10);
900
+ if (!Number.isInteger(parsedMode)) {
901
+ return null;
902
+ }
903
+ return parsedMode;
904
+ }
905
+ validateMenuModeIndex(mode) {
906
+ const optionCount = this.vm?.menuModeOptions?.length ?? 0;
907
+ if (!this.vm?.hasMenuSwitching || optionCount === 0) {
908
+ return 0;
909
+ }
910
+ if (!Number.isInteger(mode) || mode < 0) {
911
+ return 0;
912
+ }
913
+ return Math.min(mode, optionCount - 1);
914
+ }
886
915
  async loadHeader() {
887
916
  this.status = 'loading';
888
917
  this.isInitializing = true;
@@ -946,14 +975,27 @@ const PnMarketwebHeader$1 = /*@__PURE__*/ proxyCustomElement(class PnMarketwebHe
946
975
  this.vm = result.vm;
947
976
  this.i18n = result.i18n;
948
977
  this.status = result.status;
949
- if (!result.vm?.hasMenuSwitching) {
978
+ if (this.forcedMenuModeFromUrl !== null) {
979
+ this.activeMenuMode = this.validateMenuModeIndex(this.forcedMenuModeFromUrl);
980
+ this.hasResolvedInitialMenuMode = true;
981
+ storeHeaderMenuMode(this.activeMenuMode);
982
+ }
983
+ else if (this.hasForcedThemeAndToggle) {
984
+ this.activeMenuMode = this.validateMenuModeIndex(this.forceThemeAndToggle);
985
+ this.hasResolvedInitialMenuMode = true;
986
+ storeHeaderMenuMode(this.activeMenuMode);
987
+ }
988
+ else if (!result.vm?.hasMenuSwitching) {
950
989
  this.activeMenuMode = 0;
951
990
  this.hasResolvedInitialMenuMode = false;
952
991
  }
953
992
  else if (!this.hasResolvedInitialMenuMode) {
954
- this.activeMenuMode = resolveInitialHeaderMenuMode(true, this.initialActiveMenuMode);
993
+ this.activeMenuMode = this.validateMenuModeIndex(resolveInitialHeaderMenuMode(true, this.initialActiveMenuMode));
955
994
  this.hasResolvedInitialMenuMode = true;
956
995
  }
996
+ else {
997
+ this.activeMenuMode = this.validateMenuModeIndex(this.activeMenuMode);
998
+ }
957
999
  if (state.loginManager && result.vm?.siteDefinition?.url) {
958
1000
  state.loginManager.setSiteUrl(result.vm.siteDefinition.url);
959
1001
  }
@@ -993,6 +1035,9 @@ const PnMarketwebHeader$1 = /*@__PURE__*/ proxyCustomElement(class PnMarketwebHe
993
1035
  return href;
994
1036
  }
995
1037
  onMenuToggleChange = (e) => {
1038
+ if (this.hasForcedThemeAndToggle) {
1039
+ return;
1040
+ }
996
1041
  const nextMode = e.detail;
997
1042
  if (nextMode === this.activeMenuMode) {
998
1043
  return;
@@ -1033,9 +1078,9 @@ const PnMarketwebHeader$1 = /*@__PURE__*/ proxyCustomElement(class PnMarketwebHe
1033
1078
  const menuGroups = vm
1034
1079
  ? this.getVisibleMenuGroups(vm)
1035
1080
  : { primaryItems: [], sharedItems: [] };
1036
- return (h(Host, { key: '77b50a06702c9c8aee59392c7ebcf392d0e93ace', language: this.language ?? undefined, market: this.market ?? undefined, environment: this.environment ?? undefined, "data-status": this.status, "data-mode": this.activeMenuMode, "data-theme": activeTheme }, h("header", { key: 'f17a9126e62264bcbc596802394d8a0eb64809d7' }, vm && (h(Fragment, { key: 'e4d0c6cbb175bd545c37011e8a26040e293b5078' }, h("pn-marketweb-header-top-row", { key: 'f20e51e813cd52f09a223d860e04759f9d277183', vm: vm, i18n: i18n, language: this.language ?? undefined, siteid: this.siteid ?? undefined, endpoint: this.endpoint ?? undefined, environment: this.environment ?? undefined, userToken: this.userToken, userFullname: this.userFullname, userLoggedin: this.userLoggedin, hideSiteSelector: this.hideSiteSelector, hideLanguageSelector: this.hideLanguageSelector, hideSearch: this.hideSearch, hideLogin: this.hideLogin, showProfileSelection: this.showProfileSelection, showUnifiedLogin: this.showUnifiedLogin, spaMode: this.spaMode, checkUserLoggedInStateInterval: this.checkUserLoggedInStateInterval, useMarketwebLogin: this.useMarketwebLogin, activeMenuMode: this.activeMenuMode, theme: activeTheme, navigateOnMenuToggle: this.navigateOnMenuToggle, menuToggleChangeHandler: this.onMenuToggleChange, adjustSiteSelectorUrl: (href) => this.adjustSiteSelectorUrl(href), logoUrl: logoUrl }, h("slot", { key: 'c0025425b08f233bc8ef6c9db59c516b1c2c8d05', name: "header-top-left", slot: "header-top-left" }), h("slot", { key: '822354a2c86ca56f4a7e6926492a5202e82d0d2e', name: "header-top-right-start", slot: "header-top-right-start" }), h("slot", { key: '68364a475418c6bb6baba867f9b78bc2f7cd3c92', name: "toprightend", slot: "toprightend" })), h("slot", { key: 'e49bc7c21f51abb86b05e6a986163f6b8848c425', name: "siteheader-menu-top-button" }), h("pn-marketweb-header-main-row", { key: 'a56827628a3f649546881449479df0d7721da5b2', vm: vm, i18n: i18n, market: this.market ?? undefined, language: this.language ?? undefined, siteid: this.siteid ?? undefined, hideSearch: this.hideSearch, hideLogin: this.hideLogin, hideLanguageSelector: this.hideLanguageSelector, hideSiteSelector: this.hideSiteSelector, minimizeSearch: this.minimizeSearch, activeMenuMode: this.activeMenuMode, theme: activeTheme, navigateOnMenuToggle: this.navigateOnMenuToggle, primaryItems: menuGroups.primaryItems, sharedItems: menuGroups.sharedItems, showMenuDivider: menuGroups.primaryItems.length > 0 && menuGroups.sharedItems.length > 0, userToken: this.userToken, userFullname: this.userFullname, userLoggedin: this.userLoggedin, endpoint: this.endpoint ?? undefined, environment: this.environment ?? undefined, showProfileSelection: this.showProfileSelection, showUnifiedLogin: this.showUnifiedLogin, checkUserLoggedInStateInterval: this.checkUserLoggedInStateInterval, useMarketwebLogin: this.useMarketwebLogin, spaMode: this.spaMode, menuToggleChangeHandler: this.onMenuToggleChange, mainNavRefHandler: (el) => {
1081
+ return (h(Host, { key: 'a361493c4e5d00f6e7f43f021f5620e2db1ebb51', language: this.language ?? undefined, market: this.market ?? undefined, environment: this.environment ?? undefined, "data-status": this.status, "data-mode": this.activeMenuMode, "data-theme": activeTheme }, h("header", { key: '18cc409a710c06e486197f487937ac0f8f5e291b' }, vm && (h(Fragment, { key: 'e091a3aca5f2cffdc8b0206c387dc9a5a1082636' }, h("pn-marketweb-header-top-row", { key: '0d19aba5a76db68cd573f1279fdd02a65643e75a', vm: vm, i18n: i18n, language: this.language ?? undefined, siteid: this.siteid ?? undefined, endpoint: this.endpoint ?? undefined, environment: this.environment ?? undefined, userToken: this.userToken, userFullname: this.userFullname, userLoggedin: this.userLoggedin, hideSiteSelector: this.hideSiteSelector, hideLanguageSelector: this.hideLanguageSelector, hideSearch: this.hideSearch, hideLogin: this.hideLogin, showProfileSelection: this.showProfileSelection, showUnifiedLogin: this.showUnifiedLogin, spaMode: this.spaMode, checkUserLoggedInStateInterval: this.checkUserLoggedInStateInterval, useMarketwebLogin: this.useMarketwebLogin, activeMenuMode: this.activeMenuMode, theme: activeTheme, navigateOnMenuToggle: this.navigateOnMenuToggle, menuToggleChangeHandler: this.onMenuToggleChange, adjustSiteSelectorUrl: (href) => this.adjustSiteSelectorUrl(href), logoUrl: logoUrl }, h("slot", { key: 'ff06f0c88d917ce5982be413e544f4ac998a2b33', name: "header-top-left", slot: "header-top-left" }), h("slot", { key: '1b08ccda6550a41d42a4b6360bccb2f58e104864', name: "header-top-right-start", slot: "header-top-right-start" }), h("slot", { key: '84b0a7ce8be0d77ed696dd87fc3c6883ccf6a8d4', name: "toprightend", slot: "toprightend" })), h("slot", { key: '6643cb513225c1513c097a06cde4791280771574', name: "siteheader-menu-top-button" }), h("pn-marketweb-header-main-row", { key: '55a1fb96b970a6194a3f1295fbcfb1342e46c55f', vm: vm, i18n: i18n, market: this.market ?? undefined, language: this.language ?? undefined, siteid: this.siteid ?? undefined, hideSearch: this.hideSearch, hideLogin: this.hideLogin, hideLanguageSelector: this.hideLanguageSelector, hideSiteSelector: this.hideSiteSelector, minimizeSearch: this.minimizeSearch, activeMenuMode: this.activeMenuMode, theme: activeTheme, navigateOnMenuToggle: this.navigateOnMenuToggle, primaryItems: menuGroups.primaryItems, sharedItems: menuGroups.sharedItems, showMenuDivider: menuGroups.primaryItems.length > 0 && menuGroups.sharedItems.length > 0, userToken: this.userToken, userFullname: this.userFullname, userLoggedin: this.userLoggedin, endpoint: this.endpoint ?? undefined, environment: this.environment ?? undefined, showProfileSelection: this.showProfileSelection, showUnifiedLogin: this.showUnifiedLogin, checkUserLoggedInStateInterval: this.checkUserLoggedInStateInterval, useMarketwebLogin: this.useMarketwebLogin, spaMode: this.spaMode, menuToggleChangeHandler: this.onMenuToggleChange, mainNavRefHandler: (el) => {
1037
1082
  this.mainNavEl = el;
1038
- }, adjustSiteSelectorUrl: (href) => this.adjustSiteSelectorUrl(href), logoUrl: logoUrl }, h("slot", { key: '673017970d5f273a2810acc09d47744cfdda19e6', name: "mobile-toprightend", slot: "mobile-toprightend" }), h("slot", { key: '86493520b39dd5c0fbe4a371e3503cfdcc51e8bf', name: "header-bottom-button", slot: "header-bottom-button" }), h("slot", { key: '1fa6a9440a1f2b4bcb081fbc5c7ce3bb31a6bb63', name: "menu-footer-cta", slot: "menu-footer-cta" })))))));
1083
+ }, adjustSiteSelectorUrl: (href) => this.adjustSiteSelectorUrl(href), logoUrl: logoUrl }, h("slot", { key: 'eb25cc719fdc57b0b4da266dd9305013b4514b78', name: "mobile-toprightend", slot: "mobile-toprightend" }), h("slot", { key: '69ddaacba3c53b0722efcdfa694cd4913fae2fac', name: "header-bottom-button", slot: "header-bottom-button" }), h("slot", { key: '76c3a360b0d742a25192cb7d7041e82049e955d5', name: "menu-footer-cta", slot: "menu-footer-cta" })))))));
1039
1084
  }
1040
1085
  static get watchers() { return {
1041
1086
  "language": ["onLanguageChange"],
@@ -1051,6 +1096,7 @@ const PnMarketwebHeader$1 = /*@__PURE__*/ proxyCustomElement(class PnMarketwebHe
1051
1096
  static get style() { return PnMarketwebHeaderStyle0; }
1052
1097
  }, [4, "pn-marketweb-header", {
1053
1098
  "initialActiveMenuMode": [2, "initial-active-menu-mode"],
1099
+ "forceThemeAndToggle": [2, "force-theme-and-toggle"],
1054
1100
  "menuThemes": [1, "menu-themes"],
1055
1101
  "market": [1537],
1056
1102
  "language": [1537],