{"version":3,"file":"./modules/2196.xxxxxxxx.js","mappings":"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","sources":["webpack:///./libs/svgIcons.ts","webpack:///./libs/markUpCreator.ts"],"sourcesContent":["export const burgerSVG = '';\r\nexport const searchSVG = '';\r\nexport const contactSVG = '';\r\nexport const homeSVG = '';\r\nexport const settingsSVG = '';\r\nexport const arrowLeft = '';\r\nexport const closeSVG = '';\r\nexport const teaserSVG = '';\r\nexport const languageSVG = '';\r\nexport const defaultUserSVG = ' ';\r\nexport const userAccountCheckSVG = 'user-account_check';\r\nexport const accountStateLoggedInSVG = 'Account_state_logged-in';\r\nexport const accountLogouSVG = ' Account_logout < /title> ';\r\nexport const accountLoginSVG = 'Account_login';\r\nexport const registrationPlusSVG = ' plus_btn_small < /title>';\r\nexport const userAccountLoggedinMobileSVG = 'user-account_check';\r\n\r\n","import {\r\n createElement,\r\n createSpan,\r\n createNav,\r\n createUList,\r\n createListItem,\r\n createAnchor,\r\n addClass,\r\n addClassName,\r\n addToElement,\r\n addElementsFromArray,\r\n addInnerHTML,\r\n createElementFromString,\r\n} from '../helpers/DOMHelpers';\r\nimport { getCartOverviewLayerUrl } from '../helpers/helperFunctions';\r\n\r\nimport {\r\n teaserSVG, // to remove: temporare icon for teaser\r\n} from './svgIcons';\r\n\r\ninterface ICircleNavTeaserData {\r\n Title: string;\r\n Link: string;\r\n Icon: string;\r\n}\r\n\r\nfunction hasChildren(navSrtuctItem: NavStructureItem): boolean {\r\n return !!navSrtuctItem.Children && !!navSrtuctItem.Children.length;\r\n}\r\n\r\nfunction getChildren(element: NavStructureItem): NavStructureItem[] {\r\n return element.Children;\r\n}\r\n\r\nfunction createScrollBar(): HTMLElement {\r\n return addClassName(createElement('nav'), 'nx-mob-nav__scrollbar');\r\n}\r\n\r\n// creates mark-up for mobile navigation recursively from parsed JSON object\r\nfunction createMobileNavMarkUp(navSource: INavStructure, level: number = 1) {\r\n const arr = [],\r\n overviewTitle = navSource.OverviewTitle,\r\n structure = navSource.NavigationItems;\r\n\r\n function createHtmlPart(structure, level: number, overviewItem?: HTMLElement, marketingTeaser?: HTMLElement) {\r\n const nav = createNav(`nx-mob-nav__level nx-mob-nav__level--${level}`),\r\n ul = createUList('nx-mob-nav__list'),\r\n scrollBar = createScrollBar();\r\n\r\n if (level === 1) {\r\n structure = injectFirstLevelHomeItem(navSource);\r\n }\r\n\r\n addToElement(ul, marketingTeaser, overviewItem);\r\n addToElement(nav, ul, scrollBar);\r\n\r\n arr.push(nav);\r\n\r\n structure.forEach(part => {\r\n\r\n const li = createLevelItem(part.Url, part.Title);\r\n addToElement(ul, li);\r\n\r\n if (hasChildren(part)) {\r\n const children = getChildren(part);\r\n\r\n (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 ${item.SvgIcon ? `${item.SvgIcon}` : ''}\r\n ${item.Title ? `${item.Title}` : ''}\r\n ${item.Description ? `

    ${item.Description}

    ` : ''}\r\n
    \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

    ${overlayTitle}

    \r\n
    \r\n
    \r\n
      \r\n ${items.map(getSubmenuItem).join('')}\r\n
    \r\n
    \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 ${item.SvgIcon}\r\n \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\n
    \r\n
    \r\n
    \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\n
    \r\n
    \r\n
    \r\n
    \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\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\n}\r\n\r\nexport function createSkipLandmarkLink(text: string) {\r\n return createElementFromString(`\r\n
    \r\n ${text}\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 ${text}\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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":""}