{"version":3,"mappings":"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","names":["useStyledMy","text","t","useTrans","my","myMasculine","isStyled","prev","next","styled","word","EStyleType","EStyleType2","StyledMy","defineAsyncComponent","useSiteIdent","SiteIdent","__vitePreload","useCloseOnLeave","stayOpenedClass","close","handler","event","handleClose","leaveHandler","useDashboardDynamicLink","computed","customerTypeId","storeToRefs","useUserContext","currCustomerTypeId","linkText","CustomerGroupId","isMobile","inject","mq_breakpointIsMobile","emit","__emit","showItem","navItem","activeItemdId","MyAccountIds","MyProductIds","maxNavigationDepth","maxDepthCorrection","maxDepth","currentNavItem","acceptableOverflow","wrapper","ref","showFwdBtn","showBackBtn","scroll_x","isScrolling","useScroll","onResizeDebounce","useDebounceFn","scrollViaHandle","setHandles","onScrollDebounce","onMounted","useResizeObserver","watch","newVal","direction","wrapperWidth","_a","wrapperScrollWidth","SSR_safe_mq_breakpointIsMobile","container","searchQueries","onClickOutside","emits","clearSearchHistory","searchHistory","useSearchbar","usePreventBodyScroll","onUnmounted","props","__props","getHighlightedString","productName","isProductSuggestion","customProductName","regex","match","searchSuggestions","popularSearchQeuries","search","searchbarMobile","isActive","suggestionResult","resultHasNoSuggestions","_b","_d","_c","addSearchQueryToSearchHistory","useRoute","route","clear","newValue","debounceSearch","searchInput","openHistory","closeHistory","updateSearch","input","useMainNavState","router","useRouter","mainNavEl","isTouch","mq_isTouch","navStore","useNav","activeNavStructure","state","reactive","touchClick","link","isHoveredItem","isActiveItem","navItemUnhover","navItemHover","mainNavLinks","links","activeItem","getActiveItem","parent","parentsWithoutLevel_0","i","neighbour","child","shopChild","timeoutId","mouseEnter","mouseLeave","isLevel_0","isParent","noLink","eventTarget","item","linkShowsDropdownIcon","cssClass","toggleMenuClick","hoverMenuHover","hoverMenuUnhover","getMyNavStyle","linkCss","isHovered","EStyleTypeStyledMy","activeNavStructureComputed","activeNavStructureFromStore","activeNavItem","hoverHeightFull","hoverHeightDefault","useHotlink","ident","hotlinkWidth","hoverHeight","notifactionStateKey","UseStateKeys","showOverlay","element","left","top","contentHovered","isDesktopview","useIsDesktopView","isMobileScreen","SSR_safe_mq_isTouch","size","y","useWindowScroll","setIsActive","notificationTimeout","notificationTimeoutDone","notifactionState","useState","nv","closeOnLeaveInit","debouncedCloseOnLeaveInit","value","isNotification","calculatePosition","rect","parentRect","HotlinkWidth","HotlinkHeight","isMobileHover","onScroll","onBeforeUnmount","nextTick","onTouchClick","e","userContext","session","useSessionStore","favListStore","useFavLists","__temp","__restore","_withAsyncContext","computedFavNavItems","favListHotlinkItems","list","transformStringForUrl","a","b","cart","useCartStore","n","hasItemWithCampaign","badge","loadCart","cartItemAmount","searchbar","EContactView"],"ignoreList":[],"sources":["../../../../src/components/layout/header/components/styledMy/useStyledMy.ts","../../../../src/components/layout/header/components/styledMy/styledMy.vue","../../../../src/composables/useCloseOnLeave.ts","../../../../src/composables/useDashboardDynamicLink.ts","../../../../src/components/layout/header/components/infoBanner/info-banner.vue","../../../../src/components/components/navigation/utils.ts","../../../../src/components/helper/horizontal-scroll.vue","../../../../src/components/layout/header/components/searchbar/lastSearchqueries.vue","../../../../src/components/layout/header/components/searchbar/searchSuggestions.vue","../../../../src/components/layout/header/components/searchbar/popularSearchqueries.vue","../../../../src/components/layout/header/components/searchbar/searchbarMobile.vue","../../../../src/components/components/navigation/composables/useMainNavState.ts","../../../../src/components/layout/header/components/hotlink/useHotlink.ts","../../../../src/components/layout/header/components/hotlink/hotlink.vue","../../../../src/components/layout/header/components/hotlink/components/myPraxis.vue","../../../../src/components/layout/header/components/hotlink/components/productlists.vue","../../../../src/components/layout/header/components/hotlink/components/myCart/toCartButton.vue","../../../../src/components/layout/header/components/hotlink/components/myCart/orderSummary.vue","../../../../src/components/layout/header/components/hotlink/components/myCart/hasItemWithCampaign.vue","../../../../src/components/layout/header/components/hotlink/components/myCart/myCart.vue","../../../../src/components/layout/header/components/searchbar/searchbar.vue","../../../../src/components/layout/footer/components/footerBanner.vue","../../../../src/@types/contactview-type.ts"],"sourcesContent":["export function useStyledMy(text: string) {\n // @TODO: Add Pluralization once its needed\n const { t } = useTrans();\n const my = t('header.links.my');\n const myMasculine = t('header.links.my.masculine');\n\n const isStyled = text.includes(my) || text.includes(myMasculine);\n const prev: string[] = [];\n const next: string[] = [];\n let styled = '';\n\n text.split(' ').forEach((word) => {\n if (word === my || word === myMasculine) styled = word;\n else if (styled) next.push(word);\n else prev.push(word);\n });\n return { isStyled, styled, prev, next };\n}\n\nexport enum EStyleType {\n default,\n light,\n lightAlt,\n none,\n}\n","\n\n","export function useCloseOnLeave(stayOpenedClass: string, close: () => void) {\n return {\n init() {\n const handler = (event: MouseEvent) => {\n const el = event.target as HTMLElement;\n if (!el.closest(`.${stayOpenedClass}`)) {\n handleClose();\n }\n };\n const leaveHandler = () => {\n handleClose();\n };\n\n window.addEventListener('mousemove', handler, { passive: true });\n document.addEventListener('mouseleave', leaveHandler, { passive: true });\n\n function handleClose() {\n close();\n document.removeEventListener('mouseleave', leaveHandler);\n window.removeEventListener('mousemove', handler);\n }\n },\n };\n}\n","import { useUserContext } from '~/stores/useUserContext';\nimport { CustomerGroupId } from '~/@types/customerGroupIds';\nimport { storeToRefs } from 'pinia';\n\nexport function useDashboardDynamicLink() {\n return computed(() => {\n const { customerTypeId } = storeToRefs(useUserContext());\n const currCustomerTypeId = customerTypeId.value;\n\n let linkText = 'hotlink.myPraxis.myDashboard';\n\n switch (currCustomerTypeId) {\n case CustomerGroupId.DENTIST:\n case CustomerGroupId.SURGERY:\n case CustomerGroupId.DENTIST_WITHOUT_VERIFICATION:\n case CustomerGroupId.SURGERY_WITHOUT_VERIFICATION:\n linkText = 'header.links.praxis';\n break;\n case CustomerGroupId.OTHER:\n case CustomerGroupId.STUDENT:\n linkText = 'hotlink.myPraxis.myDashboard';\n break;\n case CustomerGroupId.COMPANY:\n linkText = 'hotlink.myPraxis.myCompany';\n break;\n case CustomerGroupId.PHARMACY:\n case CustomerGroupId.PHARMACY_WITHOUT_VERIFICATION:\n linkText = 'hotlink.myPraxis.myPharmacy';\n break;\n case CustomerGroupId.DENTAL_LAB:\n case CustomerGroupId.PRACTICE_LAB:\n linkText = 'hotlink.myPraxis.myLabor';\n break;\n\n default:\n linkText = 'hotlink.myPraxis.myDashboard';\n break;\n }\n return {\n linkText,\n currCustomerTypeId,\n };\n });\n}\n","\n\n\n\n","import type { LinkedNavItem } from '~~/src/stores/useNav';\nimport { MyAccountIds, MyProductIds } from '@/@types/navigationIds';\n\nexport function showItem(navItem: LinkedNavItem, activeItemdId: string) {\n return (\n (navItem.isHidden && activeItemdId === navItem.id) ||\n (navItem.id === MyAccountIds.MY_ACCOUNT &&\n navItem.childIds.includes(activeItemdId)) ||\n (navItem.id === MyProductIds.MY_PRODUCTS &&\n navItem.childIds.includes(activeItemdId)) ||\n !navItem.isHidden\n );\n}\n\nexport const maxNavigationDepth = 4;\nexport function maxDepthCorrection(\n navItem: LinkedNavItem,\n maxDepth = maxNavigationDepth,\n) {\n let currentNavItem = navItem;\n while (currentNavItem.level >= maxDepth && currentNavItem.parent) {\n currentNavItem = currentNavItem.parent;\n }\n return currentNavItem;\n}\n","\n\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n","import { storeToRefs } from 'pinia';\nimport { mq_isTouch } from '~~/src/injectionSymbols';\nimport { type LinkedNavItem, useNav } from '~~/src/stores/useNav';\nimport { showItem, maxDepthCorrection, maxNavigationDepth } from '../utils';\nimport { EStyleType as EStyleTypeStyledMy } from '@/components/layout/header/components/styledMy/useStyledMy';\n\nexport enum EMainNavLinkStyle {\n ACTIVE_PARENT = 'item item--activeParent',\n PARENT = 'item item--parent',\n NORMAL = 'item item--normal',\n ACTIVE = 'item item--active',\n HIDDEN = 'item item--hidden',\n}\n\nexport interface NavLink {\n navItem: LinkedNavItem;\n cssClass: EMainNavLinkStyle;\n noLink?: boolean;\n}\n\nexport default function useMainNavState() {\n const router = useRouter();\n const mainNavEl = ref(null);\n const isTouch = inject(mq_isTouch);\n\n const navStore = useNav();\n const { mainNav_activeStructure: activeNavStructure } = storeToRefs(navStore);\n\n const state = reactive({\n hoverNav: {\n hoveredItem: null as LinkedNavItem,\n isHovered: false,\n show: false,\n navItems: [] as LinkedNavItem[],\n isLevel_0: false,\n x_pos: 0,\n width: 0,\n },\n toggleNav: {\n show: false,\n },\n });\n\n function touchClick(event: any, link: NavLink) {\n if (link.noLink) {\n const isHoveredItem = link.navItem === state.hoverNav.hoveredItem;\n const isActiveItem = link.navItem === activeNavStructure.value.activeItem;\n\n if (isHoveredItem) {\n if (isActiveItem) {\n navItemUnhover();\n } else {\n router.push(link.navItem.navUri);\n navItemUnhover();\n }\n } else {\n navItemHover(\n event,\n link.navItem,\n activeNavStructure.value.activeItem.level === 0,\n link.cssClass === EMainNavLinkStyle.ACTIVE_PARENT ||\n link.cssClass === EMainNavLinkStyle.PARENT,\n true,\n );\n }\n }\n }\n\n /**\n * Sort and structure the main navigation for easy use in the HTML\n * Add CSS Classes/Descriptors to items\n * Look at the designs to understand this, as this is basically the logic-setup for the designs! :)\n */\n const mainNavLinks = computed(() => {\n const links = [] as NavLink[];\n\n if (\n !activeNavStructure.value.activeItem &&\n !activeNavStructure.value.parents\n ) {\n return links;\n }\n\n //const activeItem = maxDepthCorrection(activeNavStructure.value.activeItem);\n const activeItem = maxDepthCorrection(getActiveItem());\n\n /**\n * @workaround for only showing the toplevel navItems\n */\n function getActiveItem() {\n let parent = activeNavStructure.value.activeItem.parent;\n while (parent?.parent) {\n parent = parent.parent;\n }\n return parent ?? activeNavStructure.value.activeItem;\n }\n\n const parentsWithoutLevel_0 = [] as LinkedNavItem[];\n let parent = activeItem.parent;\n while (parent && parent.level > 0) {\n parentsWithoutLevel_0.push(parent);\n parent = parent.parent;\n }\n parentsWithoutLevel_0.reverse();\n\n for (let i = 0; i < parentsWithoutLevel_0.length; i++) {\n const parent = parentsWithoutLevel_0[i];\n links.push({\n navItem: parent,\n cssClass: EMainNavLinkStyle.PARENT,\n });\n }\n\n if (\n activeItem.children.length !== 0 &&\n activeItem.level !== 0 &&\n activeItem.level < maxNavigationDepth - 1\n ) {\n links.push({\n navItem: activeItem,\n cssClass: EMainNavLinkStyle.ACTIVE_PARENT,\n });\n }\n\n if (\n activeItem.children.length === 0 ||\n activeItem.level >= maxNavigationDepth - 1\n ) {\n for (const neighbour of activeItem.neighbours) {\n links.push({\n navItem: neighbour,\n cssClass:\n neighbour === activeItem\n ? EMainNavLinkStyle.ACTIVE\n : EMainNavLinkStyle.NORMAL,\n });\n }\n }\n\n for (const child of activeItem.children) {\n //Display shop-children in minilu toplevel nav instead of shop\n if (activeItem.level === 0 && useSiteIdent().includes('minilu')) {\n if (\n child.level < maxNavigationDepth &&\n child.title.toLowerCase() !== 'navigation.shop.label'\n ) {\n links.push({\n navItem: child,\n cssClass: EMainNavLinkStyle.NORMAL,\n });\n } else if (\n child.level < maxNavigationDepth &&\n child.title.toLowerCase() === 'navigation.shop.label'\n ) {\n for (const shopChild of child.children) {\n links.push({\n navItem: shopChild,\n cssClass: EMainNavLinkStyle.NORMAL,\n });\n }\n }\n } else {\n if (child.level < maxNavigationDepth) {\n links.push({\n navItem: child,\n cssClass: EMainNavLinkStyle.NORMAL,\n });\n }\n }\n }\n\n // Filter our hidden items\n links.forEach((link) => {\n if (!showItem(link.navItem, activeItem.id)) {\n link.cssClass = EMainNavLinkStyle.HIDDEN;\n }\n });\n\n return links.map((link) => ({\n ...link,\n noLink:\n isTouch.value &&\n (link.cssClass === EMainNavLinkStyle.PARENT ||\n link.cssClass === EMainNavLinkStyle.ACTIVE_PARENT ||\n activeNavStructure.value.activeItem.level === 0),\n }));\n });\n\n let timeoutId: NodeJS.Timeout = null;\n\n function mouseEnter(event: MouseEvent, link: NavLink) {\n if (timeoutId) clearTimeout(timeoutId);\n timeoutId = setTimeout(() => {\n navItemHover(\n event,\n link.navItem,\n activeNavStructure.value.activeItem.level === 0,\n link.cssClass === EMainNavLinkStyle.ACTIVE_PARENT ||\n link.cssClass === EMainNavLinkStyle.PARENT,\n );\n }, 100);\n }\n\n function mouseLeave() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n }\n\n /**\n *\n * @param navItem The NavItem that will determine the content of the hover nav\n * @param isLevel_0 If the ActiveNavItem is Level 0\n * Values set here will pe passed as props to the Hover-Nav Component\n */\n function navItemHover(\n event: any,\n navItem: LinkedNavItem,\n isLevel_0 = false,\n isParent = false,\n noLink = false,\n ) {\n const eventTarget = noLink\n ? (event.target as HTMLElement).closest('.js-nav-item')\n : (event.target as HTMLElement);\n state.hoverNav.x_pos = eventTarget.getBoundingClientRect().x;\n state.hoverNav.width = eventTarget.getBoundingClientRect().width;\n\n if (state.hoverNav.hoveredItem === navItem) {\n return;\n }\n state.hoverNav.hoveredItem = navItem;\n if (\n activeNavStructure.value.parents.includes(navItem) ||\n (activeNavStructure.value.activeItem === navItem &&\n activeNavStructure.value.activeItem.children.length > 0) ||\n isLevel_0 ||\n navItem.children.length > 0\n ) {\n if (isLevel_0) {\n state.hoverNav.navItems = navItem.children.filter((item) =>\n showItem(item, activeNavStructure.value.activeItem.id),\n );\n state.hoverNav.isLevel_0 = true;\n } else if (isParent) {\n state.hoverNav.navItems = navItem.neighbours.filter((item) =>\n showItem(item, activeNavStructure.value.activeItem.id),\n );\n state.hoverNav.isLevel_0 = false;\n } else {\n state.hoverNav.navItems = navItem.children.filter((item) =>\n showItem(item, activeNavStructure.value.activeItem.id),\n );\n state.hoverNav.isLevel_0 = false;\n }\n if (state.hoverNav.navItems.length !== 0) {\n state.hoverNav.show = true;\n } else {\n state.hoverNav.navItems = [];\n state.hoverNav.show = false;\n }\n } else {\n state.hoverNav.navItems = [];\n state.hoverNav.show = false;\n }\n }\n\n function navItemUnhover() {\n state.hoverNav.show = false;\n state.hoverNav.isHovered = false;\n state.hoverNav.hoveredItem = null;\n }\n\n function linkShowsDropdownIcon(cssClass: EMainNavLinkStyle) {\n return (\n (cssClass === EMainNavLinkStyle.PARENT ||\n cssClass === EMainNavLinkStyle.ACTIVE_PARENT) &&\n activeNavStructure.value.activeItem.level !== 0\n );\n }\n\n //--- Toggle Menu\n function toggleMenuClick() {\n state.toggleNav.show = !state.toggleNav.show;\n state.hoverNav.show = false;\n state.hoverNav.isHovered = false;\n state.hoverNav.hoveredItem = null;\n }\n\n //--- Hover-Menu\n function hoverMenuHover() {\n state.hoverNav.isHovered = true;\n }\n\n function hoverMenuUnhover() {\n state.hoverNav.show = false;\n state.hoverNav.isHovered = false;\n state.hoverNav.hoveredItem = null;\n }\n\n function getMyNavStyle(linkCss: EMainNavLinkStyle, isHovered: boolean) {\n switch (true) {\n case !linkCss.includes('active') && !isHovered:\n return EStyleTypeStyledMy.lightAlt;\n case linkCss.includes('active') && !isHovered:\n return EStyleTypeStyledMy.light;\n default:\n return EStyleTypeStyledMy.default;\n }\n }\n\n onMounted(() => {\n watch(mainNavEl, async () => {\n state.hoverNav.show = false;\n state.hoverNav.isHovered = false;\n state.hoverNav.hoveredItem = null;\n });\n });\n\n /**\n * @workaround for showing only the toplevel navItems\n */\n const activeNavStructureComputed = computed(() => {\n const { mainNav_activeStructure: activeNavStructureFromStore } =\n storeToRefs(navStore);\n let parent = activeNavStructureFromStore.value.activeItem.parent;\n let activeNavItem = activeNavStructureFromStore.value.activeItem.parent;\n\n while (parent?.parent) {\n parent = parent.parent;\n if (\n (parent.type !== 'root' && useSiteIdent().startsWith('default')) ||\n (parent.type !== 'root' &&\n useSiteIdent().startsWith('minilu') &&\n parent.title !== 'navigation.shop.label')\n ) {\n activeNavItem = parent;\n }\n }\n return {\n ...activeNavStructureFromStore.value,\n activeItem: parent ?? activeNavStructureFromStore.value.activeItem,\n activeNavItem,\n };\n });\n\n return {\n state,\n touchClick,\n mainNavLinks,\n mouseEnter,\n mouseLeave,\n navItemHover,\n navItemUnhover,\n linkShowsDropdownIcon,\n toggleMenuClick,\n hoverMenuHover,\n hoverMenuUnhover,\n getMyNavStyle,\n activeNavStructureComputed,\n };\n}\n","import { UseStateKeys } from '@/useStateKeys';\nimport {\n SSR_safe_mq_breakpointIsMobile,\n SSR_safe_mq_isTouch,\n} from '~/injectionSymbols';\n\nconst hoverHeightFull = `calc(100% - 72px)`;\nconst hoverHeightDefault = `auto`;\n\nexport function useHotlink(\n ident: string,\n hotlinkWidth: HotlinkWidth,\n hoverHeight: HotlinkHeight,\n notifactionStateKey:\n | UseStateKeys.HOTLINK_BASKET_NOTIFICATION\n | UseStateKeys.HOTLINK_MYPRODUCTS_NOTIFICATION\n | UseStateKeys.HOTLINK_NO_NOTIFICATION = UseStateKeys.HOTLINK_NO_NOTIFICATION,\n showOverlay = true,\n) {\n const stayOpenedClass = `js-${ident}`;\n const isActive = ref(false);\n const element = ref(null); // z.B. watch element attrs watch(newval,oldval)\n const left = ref(0);\n const top = ref(0);\n const contentHovered = ref(false);\n\n const isDesktopview = useIsDesktopView();\n const isMobileScreen = inject(SSR_safe_mq_breakpointIsMobile);\n const isTouch = inject(SSR_safe_mq_isTouch);\n const hoverWidth = hotlinkWidth + 'px';\n const size = {\n width: hoverWidth,\n height:\n hoverHeight === hoverHeightDefault ? hoverHeightDefault : hoverHeightFull,\n };\n\n const { y } = useWindowScroll();\n watch(\n () => y.value,\n () => {\n if (\n isMobileScreen &&\n isActive &&\n /iPad|iPhone|iPod/.test(navigator.userAgent) // => workaround: stuttering dropdown\n ) {\n setIsActive(false);\n }\n },\n );\n\n let notificationTimeout: NodeJS.Timeout | string | number | undefined | null =\n null;\n let notificationTimeoutDone = false;\n const notifactionState = useState(notifactionStateKey, () => {\n return false;\n });\n\n watch(\n () => isActive.value,\n (nv) => {\n if (showOverlay) {\n usePreventBodyScroll(nv);\n }\n },\n );\n\n const { init: closeOnLeaveInit } = useCloseOnLeave(stayOpenedClass, () => {\n if (\n notifactionState.value &&\n contentHovered.value &&\n !notificationTimeoutDone\n ) {\n debouncedCloseOnLeaveInit();\n return;\n }\n if (\n !notifactionState.value ||\n (notifactionState.value && contentHovered.value)\n ) {\n setIsActive(false);\n }\n });\n const debouncedCloseOnLeaveInit = useDebounceFn(closeOnLeaveInit, 200);\n\n function setIsActive(value: boolean, isNotification = false) {\n if (notificationTimeout && value && isNotification) {\n return;\n }\n\n if (value) {\n if (\n isNotification &&\n notifactionStateKey !== UseStateKeys.HOTLINK_NO_NOTIFICATION\n ) {\n notifactionState.value = true;\n notificationTimeout = setTimeout(() => {\n notificationTimeoutDone = true;\n if (!contentHovered.value) {\n notifactionState.value = false;\n notificationTimeout = null;\n }\n }, 5000);\n } else {\n closeOnLeaveInit();\n }\n calculatePosition();\n isActive.value = value;\n } else {\n if (notificationTimeout) {\n clearTimeout(notificationTimeout);\n notificationTimeout = null;\n }\n notificationTimeoutDone = false;\n contentHovered.value = false;\n notifactionState.value = false;\n isActive.value = value;\n }\n }\n\n function calculatePosition() {\n if (element.value === null) {\n return;\n }\n const rect = element.value?.getBoundingClientRect();\n const parentRect =\n element.value.parentElement.parentElement?.getBoundingClientRect();\n top.value = parentRect.top + parentRect.height;\n const overflow = Math.max(\n rect.left + hotlinkWidth + 20 - window.innerWidth,\n 0,\n );\n if (!overflow) {\n left.value = rect.left;\n } else {\n left.value = Math.max(rect.left - hotlinkWidth + rect.width, 0);\n }\n }\n\n watch(contentHovered, (nv) => {\n if (nv === true) {\n closeOnLeaveInit();\n }\n });\n\n return {\n stayOpenedClass,\n isActive,\n element,\n left,\n top,\n setIsActive,\n calculatePosition,\n notifactionState,\n size,\n isDesktopview,\n isMobileScreen,\n isTouch,\n contentHovered,\n };\n}\n\nexport enum HotlinkWidth {\n default = 345,\n wide = 450,\n}\n\nexport enum HotlinkHeight {\n default = 'auto',\n full = 'calc(100% - 72px)',\n}\n","\n\n\n\n","\n\n\n","\n\n\n","\n\n\n\n","\n\n","\n\n","\n\n","\n\n\n","\n\n","export enum EContactView {\n CONTACT = 'contact',\n ERROR = 'error',\n BANNER = 'banner',\n}\n"],"file":"_nuxt/DIY_Neun.js"}