@postnord/pn-marketweb-components 4.3.3 → 4.3.4
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 +29 -4
- package/cjs/pn-marketweb-header.cjs.entry.js.map +1 -1
- package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.js +53 -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 +49 -8
- package/collection/components/layout-components/pn-marketweb-header/pn-marketweb-header.stories.js.map +1 -1
- package/components/pn-marketweb-header.js +30 -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 +29 -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-5c6bdbdd.entry.js} +2 -2
- package/pn-market-web-components/p-5c6bdbdd.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 +4 -0
- package/types/components/layout-components/pn-marketweb-header/pn-marketweb-header.stories.d.ts +9 -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 /**\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 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.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\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 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 * 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,19 @@ 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
|
+
validateMenuModeIndex(mode) {
|
|
891
|
+
const optionCount = this.vm?.menuModeOptions?.length ?? 0;
|
|
892
|
+
if (!this.vm?.hasMenuSwitching || optionCount === 0) {
|
|
893
|
+
return 0;
|
|
894
|
+
}
|
|
895
|
+
if (!Number.isInteger(mode) || mode < 0) {
|
|
896
|
+
return 0;
|
|
897
|
+
}
|
|
898
|
+
return Math.min(mode, optionCount - 1);
|
|
899
|
+
}
|
|
886
900
|
async loadHeader() {
|
|
887
901
|
this.status = 'loading';
|
|
888
902
|
this.isInitializing = true;
|
|
@@ -946,14 +960,22 @@ const PnMarketwebHeader$1 = /*@__PURE__*/ proxyCustomElement(class PnMarketwebHe
|
|
|
946
960
|
this.vm = result.vm;
|
|
947
961
|
this.i18n = result.i18n;
|
|
948
962
|
this.status = result.status;
|
|
949
|
-
if (
|
|
963
|
+
if (this.hasForcedThemeAndToggle) {
|
|
964
|
+
this.activeMenuMode = this.validateMenuModeIndex(this.forceThemeAndToggle);
|
|
965
|
+
this.hasResolvedInitialMenuMode = true;
|
|
966
|
+
storeHeaderMenuMode(this.activeMenuMode);
|
|
967
|
+
}
|
|
968
|
+
else if (!result.vm?.hasMenuSwitching) {
|
|
950
969
|
this.activeMenuMode = 0;
|
|
951
970
|
this.hasResolvedInitialMenuMode = false;
|
|
952
971
|
}
|
|
953
972
|
else if (!this.hasResolvedInitialMenuMode) {
|
|
954
|
-
this.activeMenuMode = resolveInitialHeaderMenuMode(true, this.initialActiveMenuMode);
|
|
973
|
+
this.activeMenuMode = this.validateMenuModeIndex(resolveInitialHeaderMenuMode(true, this.initialActiveMenuMode));
|
|
955
974
|
this.hasResolvedInitialMenuMode = true;
|
|
956
975
|
}
|
|
976
|
+
else {
|
|
977
|
+
this.activeMenuMode = this.validateMenuModeIndex(this.activeMenuMode);
|
|
978
|
+
}
|
|
957
979
|
if (state.loginManager && result.vm?.siteDefinition?.url) {
|
|
958
980
|
state.loginManager.setSiteUrl(result.vm.siteDefinition.url);
|
|
959
981
|
}
|
|
@@ -993,6 +1015,9 @@ const PnMarketwebHeader$1 = /*@__PURE__*/ proxyCustomElement(class PnMarketwebHe
|
|
|
993
1015
|
return href;
|
|
994
1016
|
}
|
|
995
1017
|
onMenuToggleChange = (e) => {
|
|
1018
|
+
if (this.hasForcedThemeAndToggle) {
|
|
1019
|
+
return;
|
|
1020
|
+
}
|
|
996
1021
|
const nextMode = e.detail;
|
|
997
1022
|
if (nextMode === this.activeMenuMode) {
|
|
998
1023
|
return;
|
|
@@ -1033,9 +1058,9 @@ const PnMarketwebHeader$1 = /*@__PURE__*/ proxyCustomElement(class PnMarketwebHe
|
|
|
1033
1058
|
const menuGroups = vm
|
|
1034
1059
|
? this.getVisibleMenuGroups(vm)
|
|
1035
1060
|
: { primaryItems: [], sharedItems: [] };
|
|
1036
|
-
return (h(Host, { key: '
|
|
1061
|
+
return (h(Host, { key: '7caa2d55c8bc19bc5acdcc0561fec5c91ebdb7dd', 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: 'd447734933c534ffb13215dd663b60410bd83519' }, vm && (h(Fragment, { key: '30d8f6f7ab3f8eec2210461366336829b4807a83' }, h("pn-marketweb-header-top-row", { key: '53ebe5f1f76fe18de4f64fc11e353e67bdaad6a2', 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: 'd84e74d802d4367d2d1c3771d0efa92317332799', name: "header-top-left", slot: "header-top-left" }), h("slot", { key: 'a110554e38f6d169088a242c5675d07235980e7f', name: "header-top-right-start", slot: "header-top-right-start" }), h("slot", { key: '69067f8a28274bf64af01d5375a180930a00ba2e', name: "toprightend", slot: "toprightend" })), h("slot", { key: '731ba47be6e196907022abcba67ed6a1ecb8d935', name: "siteheader-menu-top-button" }), h("pn-marketweb-header-main-row", { key: '1a715c580147fc6e93a79e5cdef265f939613951', 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
1062
|
this.mainNavEl = el;
|
|
1038
|
-
}, adjustSiteSelectorUrl: (href) => this.adjustSiteSelectorUrl(href), logoUrl: logoUrl }, h("slot", { key: '
|
|
1063
|
+
}, adjustSiteSelectorUrl: (href) => this.adjustSiteSelectorUrl(href), logoUrl: logoUrl }, h("slot", { key: '087be6bb7f4b908553824dd4d31484b069594207', name: "mobile-toprightend", slot: "mobile-toprightend" }), h("slot", { key: 'c9bc4540e9eb9f2ca7b46cc627c72f1e6cedb7ea', name: "header-bottom-button", slot: "header-bottom-button" }), h("slot", { key: 'ee3c12f27ae29c7f735758d0983161c96f8ce271', name: "menu-footer-cta", slot: "menu-footer-cta" })))))));
|
|
1039
1064
|
}
|
|
1040
1065
|
static get watchers() { return {
|
|
1041
1066
|
"language": ["onLanguageChange"],
|
|
@@ -1051,6 +1076,7 @@ const PnMarketwebHeader$1 = /*@__PURE__*/ proxyCustomElement(class PnMarketwebHe
|
|
|
1051
1076
|
static get style() { return PnMarketwebHeaderStyle0; }
|
|
1052
1077
|
}, [4, "pn-marketweb-header", {
|
|
1053
1078
|
"initialActiveMenuMode": [2, "initial-active-menu-mode"],
|
|
1079
|
+
"forceThemeAndToggle": [2, "force-theme-and-toggle"],
|
|
1054
1080
|
"menuThemes": [1, "menu-themes"],
|
|
1055
1081
|
"market": [1537],
|
|
1056
1082
|
"language": [1537],
|