@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.
- package/cjs/loader.cjs.js +1 -1
- package/cjs/pn-market-web-components.cjs.js +1 -1
- package/cjs/pn-marketweb-header.cjs.entry.js +49 -4
- package/cjs/pn-marketweb-header.cjs.entry.js.map +1 -1
- package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.js +73 -4
- package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.js.map +1 -1
- package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.stories.js +72 -8
- package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.stories.js.map +1 -1
- package/components/pn-marketweb-header.js +50 -4
- package/components/pn-marketweb-header.js.map +1 -1
- package/esm/loader.js +1 -1
- package/esm/pn-market-web-components.js +1 -1
- package/esm/pn-marketweb-header.entry.js +49 -4
- package/esm/pn-marketweb-header.entry.js.map +1 -1
- package/package.json +1 -1
- package/pn-market-web-components/{p-48e4ce2a.entry.js → p-fc06ab05.entry.js} +2 -2
- package/pn-market-web-components/p-fc06ab05.entry.js.map +1 -0
- package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
- package/pn-market-web-components/pn-market-web-components.esm.js.map +1 -1
- package/types/components/layout-components/pn-marketweb-header/pn-marketweb-header.d.ts +5 -0
- package/types/components/layout-components/pn-marketweb-header/pn-marketweb-header.stories.d.ts +15 -0
- package/types/components.d.ts +8 -0
- package/vscode-data.json +4 -0
- 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 (
|
|
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: '
|
|
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: '
|
|
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],
|