li).childrenList = createHtmlPart(\r\n children, level + 1,\r\n createLevelItem(part.Url, overviewTitle, 'nx-mob-nav__item--small'),\r\n createTeaser(part.MarketingTeaser)\r\n );\r\n } else {\r\n addClass(li, 'nx-mob-nav__item--small')\r\n }\r\n })\r\n\r\n return nav;\r\n }\r\n\r\n function createLevelItem(url: string, title: string, specialClass: string = ''): HTMLElement {\r\n const a = createAnchor(url, title, 'nx-mob-nav__item-link nx-mob-nav__item-link' + specialClass),\r\n li = createListItem('nx-mob-nav__item');\r\n\r\n addToElement(li, a);\r\n\r\n return li;\r\n }\r\n\r\n function createTeaser(teaserData: ICircleNavTeaserData): HTMLElement | undefined {\r\n if (teaserData) {\r\n const teaser = createListItem('nx-mob-nav-teaser nx-mob-nav__item'),\r\n anchor = createAnchor(teaserData.Link || '', '', 'nx-mob-nav-teaser__link nx-mob-nav__item--small'),\r\n anchorTitle = addInnerHTML(createSpan('nx-mob-nav-teaser__title'), teaserData.Title || ''),\r\n icon = addInnerHTML(createSpan('nx-mob-nav-teaser__icon'), teaserData.Icon || teaserSVG);\r\n\r\n addToElement(anchor, icon, anchorTitle);\r\n addToElement(teaser, anchor);\r\n\r\n return teaser;\r\n }\r\n }\r\n\r\n function injectFirstLevelHomeItem(navSource: INavStructure): NavStructureItem[] {\r\n navSource.NavigationItems.unshift({ \"Children\": [], \"Title\": navSource.HomeItemText, \"Url\": navSource.HomeItemUrl, \"MarketingTeaser\": {} })\r\n return structure;\r\n }\r\n\r\n createHtmlPart(structure, level);\r\n\r\n return arr;\r\n}\r\n\r\nexport function getSubmenuItem(item: NavSubmenuItem): string {\r\n let testSelector = 'SubmenuItem';\r\n if (item.Title) testSelector = encodeURIComponent(item.Title).toLowerCase();\r\n return `\r\n `;\r\n}\r\n\r\nexport function getSubmenu(items: NavSubmenuItem[], overlayTitle: string): string {\r\n\r\n return `\r\n `;\r\n}\r\n\r\nfunction getActionMenuItem(item: NavActionMenuItem, modifier: string | number): HTMLElement {\r\n let overlayTitle = '';\r\n item.Title ? overlayTitle = item.Title : null;\r\n\r\n let dataAttributes = '';\r\n if (item.DataAttributes) {\r\n Object.keys(item.DataAttributes).forEach(key => {\r\n dataAttributes += `data-${key}=\"${item.DataAttributes[key]}\" `;\r\n });\r\n }\r\n\r\n const submenu = item.Submenu ? createElementFromString(getSubmenu(item.Submenu, overlayTitle)) : null,\r\n actionMenuItem = createElementFromString(`\r\n `);\r\n\r\n if (submenu) actionMenuItem.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n window.NiveaX.layer.open(submenu);\r\n });\r\n\r\n return actionMenuItem;\r\n};\r\n\r\nexport function getActionMenu(items: NavActionMenuItem[]): HTMLElement {\r\n const container = createUList(`nx-mob-nav__meta nx-meta nx-meta--count-${items.length}`);\r\n const itemNodes = items.map(getActionMenuItem);\r\n\r\n addElementsFromArray(container, itemNodes);\r\n\r\n return container;\r\n}\r\n\r\n// gets the completed Mobile Navigation mark-up\r\nexport function getMobileNavigationElements(structure: INavStructure, navInner?, element?) {\r\n addElementsFromArray(navInner, createMobileNavMarkUp(structure, element));\r\n}\r\n\r\nexport function getNextBestActions(items: NavNextBestActionsMenuItem[]): HTMLElement {\r\n const container = createUList('nx-mob-nav__nba-list');\r\n const itemNodes = items.map(getNextBestActionMenuItemMarkUp);\r\n\r\n addElementsFromArray(container, itemNodes);\r\n\r\n return container;\r\n}\r\n\r\nfunction getNextBestActionMenuItemMarkUp(item: NavNextBestActionsMenuItem): HTMLElement {\r\n return createElementFromString(createNbaMarkUp(item));\r\n}\r\n\r\nfunction createNbaMarkUp(item: NavNextBestActionsMenuItem): string {\r\n const specificClasses = getNextBestActionClasses(item);\r\n\r\n return `\r\n \r\n ${getNbaBody(item)} \r\n
\r\n `\r\n}\r\n\r\nfunction getNbaBody(item: NavNextBestActionsMenuItem): string {\r\n switch (item.Id.toLowerCase()) {\r\n case 'addtocart':\r\n return `\r\n \r\n ${item.Icon}\r\n \r\n `;\r\n case 'cart':\r\n return `\r\n \r\n \r\n ${item.Icon}\r\n \r\n `\r\n default:\r\n return `\r\n \r\n ${item.Icon}\r\n \r\n `;\r\n }\r\n}\r\n\r\nfunction getNextBestActionClasses(item: NavNextBestActionsMenuItem): string {\r\n const normedId = item.Id.toLowerCase();\r\n\r\n const type = \"nx-mob-nav__nba-\" + normedId;\r\n const shape = \"nx-mob-nav__nba-\" + item.IconShape.toLocaleLowerCase();\r\n const style = normedId == 'cart' || normedId == 'addtocart' ? \"nx-mob-nav__nba--primary-circle\" : \"nx-mob-nav__nba--secondary-circle\";\r\n const isEnabled = normedId == 'chat' || normedId == 'addtocart' || normedId == \"\" ? \"\" : \"nx-mob-nav__nba--enabled\";\r\n\r\n let classes = [type, shape, style, isEnabled].join(\" \");\r\n return classes;\r\n}\r\n\r\nexport function createCountdownTimeUnitElement(timeUnit: string, time: string, label: string): HTMLElement {\r\n return createElementFromString(`\r\n \r\n
\r\n
\r\n ${time}\r\n
\r\n
\r\n ${time}\r\n
\r\n
\r\n ${label ? `
${label}
` : ''}\r\n
\r\n `);\r\n}\r\n\r\nexport function createCountdownColonElement(name: string) {\r\n return createElementFromString(`\r\n \r\n `);\r\n}\r\n\r\nexport function createPDPBottomBarEshop() {\r\n return createElementFromString(`\r\n \r\n `);\r\n}\r\n\r\nexport function createPDPBottomBarWtb() {\r\n return createElementFromString(`\r\n \r\n `);\r\n}\r\n\r\nexport function createPDPBottomBarWtbButton(icon: string, label: string) {\r\n return createElementFromString(`\r\n \r\n `);\r\n}\r\n\r\nexport function createSkipLandmarkLink(text: string) {\r\n return createElementFromString(`\r\n \r\n `);\r\n}\r\n\r\nexport function createSkipSectionLink(text: string, id: string, ariaLabel) {\r\n return createElementFromString(`\r\n \r\n `)\r\n}\r\n\r\nexport function createTeaserTagfilterbar(tagsWithCounts) {\r\n const listOfTags = createUList(\"nx-teasers-tagfilter__list\");\r\n const tagButtons = Object.entries(tagsWithCounts).map(([tagValue, count]) => {\r\n return getTagfilterItem(tagValue as string, count as number);\r\n })\r\n\r\n addElementsFromArray(listOfTags, tagButtons);\r\n\r\n const container = createElementFromString(`\r\n \r\n`)\r\n\r\n container.prepend(listOfTags);\r\n\r\n return container;\r\n}\r\n\r\nfunction getTagfilterItem(tagValue: string, count: number) {\r\n return createElementFromString(`\r\n \r\n ${tagValue}\r\n ${count}\r\n \r\n `)\r\n}"],"names":["teaserSVG","createMobileNavMarkUp","navSource","level","arr","overviewTitle","OverviewTitle","structure","NavigationItems","createLevelItem","url","title","specialClass","a","li","injectFirstLevelHomeItem","unshift","HomeItemText","HomeItemUrl","createHtmlPart","overviewItem","marketingTeaser","nav","ul","scrollBar","push","forEach","part","Url","Title","navSrtuctItem","Children","length","children","childrenList","teaserData","teaser","anchor","Link","anchorTitle","icon","Icon","createTeaser","MarketingTeaser","getSubmenuItem","item","testSelector","encodeURIComponent","toLowerCase","SvgIcon","Description","getSubmenu","items","overlayTitle","map","join","getActionMenuItem","modifier","dataAttributes","DataAttributes","Object","keys","key","submenu","Submenu","actionMenuItem","Module","Id","addEventListener","e","preventDefault","window","NiveaX","layer","open","getActionMenu","container","itemNodes","getMobileNavigationElements","navInner","element","getNextBestActions","getNextBestActionMenuItemMarkUp","specificClasses","normedId","type","shape","IconShape","toLocaleLowerCase","getNextBestActionClasses","getNbaBody","createNbaMarkUp","createCountdownTimeUnitElement","timeUnit","time","label","createCountdownColonElement","name","createPDPBottomBarEshop","createPDPBottomBarWtb","createPDPBottomBarWtbButton","createSkipLandmarkLink","text","createSkipSectionLink","id","ariaLabel","createTeaserTagfilterbar","tagsWithCounts","listOfTags","tagButtons","entries","tagValue","count","getTagfilterItem","prepend"],"sourceRoot":""}