{"version":3,"file":"static/js/f6a319351a336d9e6d19.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/vinhuset-navigation-menu/vinhuset-navigation-menu.props.autogenerated.ts?076c","webpack://Msdyn365.Commerce.Online/./src/modules/vinhuset-navigation-menu/vinhuset-navigation-menu.tsx?557a","webpack://Msdyn365.Commerce.Online/./src/modules/vinhuset-navigation-menu/vinhuset-navigation-menu.view.tsx?a202","webpack://Msdyn365.Commerce.Online/./lib/vinhuset-navigation-menu/module-registration.js?f474","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * IVinhusetNavigationMenu contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum menuItemsSource {\r\n categories = 'categories',\r\n static = 'static'\r\n}\r\n\r\nexport interface IVinhusetNavigationMenuConfig extends Msdyn365.IModuleConfig {\r\n menuItemsSource?: menuItemsSource;\r\n cmsNavItems?: ICmsNavItemsData[];\r\n productsMenuItemPosition?: number;\r\n showProductsMenuItemOnlyAuthorized?: boolean;\r\n showAllProductsLink?: Msdyn365.ILinkData;\r\n showAllProductsLabel?: string;\r\n className?: string;\r\n clientRender?: boolean;\r\n}\r\n\r\nexport interface IVinhusetNavigationMenuResources {\r\n productsMenuItemLabel: string;\r\n menuAriaLabel: string;\r\n navigationOverflowButtonLabel: string;\r\n}\r\n\r\nexport interface ICmsNavItemsData {\r\n linkText?: string;\r\n linkUrl?: Msdyn365.ILinkData;\r\n image?: Msdyn365.IImageData;\r\n imageLink?: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n showOnlyAuthorized?: boolean;\r\n subMenus?: ISubMenusData[];\r\n}\r\n\r\nexport interface ISubMenusData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n image?: Msdyn365.IImageData;\r\n imageLink?: Msdyn365.ILinkData;\r\n showOnlyAuthorized?: boolean;\r\n subMenus?: ISubMenusData[];\r\n}\r\n\r\nexport interface ISubMenusData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n image?: Msdyn365.IImageData;\r\n imageLink?: Msdyn365.ILinkData;\r\n showOnlyAuthorized?: boolean;\r\n}\r\n\r\nexport interface IVinhusetNavigationMenuProps extends Msdyn365.IModule {\r\n resources: IVinhusetNavigationMenuResources;\r\n config: IVinhusetNavigationMenuConfig;\r\n}\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\nimport classnames from 'classnames';\n\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport { IVinhusetNavigationMenuData } from './vinhuset-navigation-menu.data';\nimport { IVinhusetNavigationMenuProps, menuItemsSource } from './vinhuset-navigation-menu.props.autogenerated';\n\nexport interface IVinhusetNavigationMenuViewProps extends IVinhusetNavigationMenuProps {\n navigationMenu: IModuleProps;\n baseClassName: string;\n productMenuItem: IMenuItem;\n menuItems: IMenuItem[];\n}\n\nexport interface IMenuItem {\n title: string;\n url?: string;\n children?: IMenuItem[];\n showUnauthorized: boolean;\n}\n\n/**\n *\n * VinhusetNavigationMenu component\n * @extends {React.PureComponent>}\n */\nclass VinhusetNavigationMenu extends React.PureComponent> {\n private readonly moduleClassName: string = 'vinhuset-navigation-menu';\n\n public render(): JSX.Element | null {\n const {\n config: {\n cmsNavItems,\n showProductsMenuItemOnlyAuthorized,\n showAllProductsLink,\n showAllProductsLabel\n },\n context,\n data: { categories },\n resources: { productsMenuItemLabel }\n } = this.props;\n\n const isAuthenticated = context.request.user.isAuthenticated;\n const menuItems: IMenuItem[] = [];\n let productMenuItemChildren: IMenuItem[] | undefined;\n\n // TODO: Figure out how to place home menu item first\n\n if (this.props.config.menuItemsSource === menuItemsSource.static) {\n cmsNavItems?.filter(x => !x.showOnlyAuthorized || isAuthenticated).forEach(navItem => {\n if (!navItem.linkText || !navItem.linkUrl) {\n return;\n }\n\n menuItems.push({\n title: navItem.linkText,\n url: navItem.linkUrl.destinationUrl,\n showUnauthorized: !navItem.showOnlyAuthorized\n });\n });\n\n productMenuItemChildren = categories.result\n ?.sort((a, b) => (a.DisplayOrder || 0) - (b.DisplayOrder || 0))\n ?.map(category => ({\n title: category.Name,\n url: category.Url\n }) as IMenuItem);\n\n if (showAllProductsLink && showAllProductsLink.destinationUrl) {\n productMenuItemChildren?.unshift(\n {\n title: showAllProductsLabel || 'All products',\n url: showAllProductsLink.destinationUrl,\n showUnauthorized: false\n },\n {\n title: '',\n showUnauthorized: false\n }\n );\n }\n } else {\n if (!isAuthenticated) {\n return null;\n }\n\n categories.result\n ?.sort((a, b) => (a.DisplayOrder || 0) - (b.DisplayOrder || 0))\n ?.forEach(category => {\n menuItems.push({\n title: category.Name || 'Missing category name',\n url: category.Url,\n showUnauthorized: false\n });\n });\n\n if (showAllProductsLink && showAllProductsLink.destinationUrl) {\n menuItems?.unshift(\n {\n title: showAllProductsLabel || 'All products',\n url: showAllProductsLink.destinationUrl,\n showUnauthorized: false\n }\n );\n }\n }\n\n const viewProps: IVinhusetNavigationMenuViewProps = {\n ...this.props,\n navigationMenu: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, this.props.config.className)\n },\n baseClassName: this.moduleClassName,\n productMenuItem: {\n title: productsMenuItemLabel,\n children: productMenuItemChildren,\n showUnauthorized: !showProductsMenuItemOnlyAuthorized\n },\n menuItems\n };\n\n return this.props.renderView(viewProps);\n }\n}\n\nexport default VinhusetNavigationMenu;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\nimport classnames from 'classnames';\nimport { Module, Button } from '@msdyn365-commerce-modules/utilities';\nimport { IVinhusetNavigationMenuViewProps } from './vinhuset-navigation-menu';\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.min(Math.max(value, min), max);\n}\n\nexport default (props: IVinhusetNavigationMenuViewProps) => {\n const { baseClassName, productMenuItem } = props;\n\n const [productsDropDownOpen, setProductsDropDownOpen] = React.useState(false);\n const [hasMultiRowClass, setHasMultiRowClass] = React.useState(false);\n const [dropdownStart, setDropdownStart] = React.useState(undefined);\n const [showDropdown, setShowDropdown] = React.useState(false);\n\n const listRef = React.useRef(null);\n\n const menuDropdownRef = React.useRef(null);\n const menuDropdownButtonRef = React.useRef(null);\n\n const productsDropdownLinkRef = React.useRef(null);\n const productsDropdownRef = React.useRef(null);\n\n const onClickHandler = (event: React.MouseEvent) => {\n event.preventDefault();\n setProductsDropDownOpen(!productsDropDownOpen);\n };\n\n React.useEffect(() => {\n // When clicking outside the dropdown, close it\n const handleClick = (event: MouseEvent) => {\n if (productsDropdownLinkRef.current && productsDropdownRef.current && productsDropdownLinkRef.current !== event.target && !productsDropdownRef.current.contains(event.target as Node)) {\n setProductsDropDownOpen(false);\n }\n };\n document.addEventListener('click', handleClick);\n }, []);\n\n React.useEffect(() => {\n const onResize = () => {\n if (!listRef.current || listRef.current.children.length <= 1) {\n return;\n }\n\n const firstOffsetTop = (listRef.current.children[0] as HTMLElement).offsetTop;\n\n for (let i = 0; i < listRef.current.children.length; i++) {\n const element = listRef.current.children[i] as HTMLElement;\n if (element.offsetTop !== firstOffsetTop) {\n setDropdownStart(i);\n setHasMultiRowClass(true);\n return;\n }\n }\n\n setDropdownStart(undefined);\n setHasMultiRowClass(false);\n };\n\n onResize();\n\n let observer: ResizeObserver | undefined;\n\n if (ResizeObserver) {\n observer = new ResizeObserver(() => {\n onResize();\n });\n observer.observe(listRef.current as Element);\n } else {\n console.warn('ResizeObserver not supported, using window resize event instead');\n window.addEventListener('resize', onResize);\n }\n\n return () => {\n if (observer) {\n observer.disconnect();\n } else {\n window.removeEventListener('resize', onResize);\n }\n };\n }, []);\n\n React.useEffect(() => {\n const onClickOutside = (event: MouseEvent) => {\n if (menuDropdownRef.current && menuDropdownButtonRef.current) {\n if (!menuDropdownRef.current.contains(event.target as Node)\n && menuDropdownButtonRef.current !== event.target\n && !menuDropdownButtonRef.current.contains(event.target as Node)\n ) {\n setShowDropdown(false);\n }\n }\n };\n\n document.addEventListener('click', onClickOutside);\n\n return () => {\n document.removeEventListener('click', onClickOutside);\n };\n }, []);\n\n const menuItems = props.menuItems.map((item, index) => {\n if (item.title === '') {\n return null;\n // We don't support separator in main menu for now because of overflow menu and being unsure how to handle it\n // return
  • ;\n }\n\n return (\n
  • \n {item.title}\n
  • \n );\n });\n\n if (productMenuItem.children\n && productMenuItem.children.length > 0\n && (productMenuItem.showUnauthorized || props.context.request.user.isAuthenticated)\n ) {\n const productsMenuItemPosition = props.config.productsMenuItemPosition || 1;\n const productMenuItemIndex = clamp((productsMenuItemPosition - 1), 0, props.menuItems.length); // Minus one the config value so it's zero-based\n // Insert products menu item\n menuItems.splice(productMenuItemIndex, 0, (\n
  • \n {productMenuItem.title}\n
      \n {productMenuItem.children && productMenuItem.children.map((child, childIndex) => {\n if (child.title === '') {\n return
    • ;\n }\n\n return (\n
    • \n {child.title}\n
    • \n );\n })}\n
    \n
  • \n ));\n }\n\n const [documentLoaded, setDocumentLoaded] = React.useState(false);\n\n React.useEffect(() => {\n setDocumentLoaded(true);\n }, []);\n\n return (\n \n \n {menuItems.map((item, index) => {\n if (!item || dropdownStart === undefined || index < dropdownStart) {\n return item;\n }\n\n // Add drop class to items that should be in the dropdown\n return React.cloneElement(item, { ...item.props, className: `${item.props.className} drop` });\n })}\n \n {dropdownStart !== undefined && dropdownStart > 0 && (\n <>\n {\n setShowDropdown(true);\n }}\n onMouseLeave={() => {\n setShowDropdown(false);\n }}\n style={{ position: 'relative' }}\n >\n {\n setShowDropdown(true);\n }}\n >\n {props.resources.navigationOverflowButtonLabel}\n \n
      \n {menuItems.slice(dropdownStart)}\n
    \n \n \n )}\n
    \n );\n};\n","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['vinhuset-navigation-menu'] = {\n c: () => require('partner/modules/vinhuset-navigation-menu/vinhuset-navigation-menu.tsx'),\n $type: 'contentModule',\n da: [{name:'categories', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-categories-hierarchy', runOn: 0}],\n \n iNM: false,\n ns: '__local__',\n n: 'vinhuset-navigation-menu',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/vinhuset-navigation-menu'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-categories-hierarchy';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-categories-hierarchy');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|modules|vinhuset-navigation-menu|vinhuset-navigation-menu'] = {\n c: () => require('partner/modules/vinhuset-navigation-menu/vinhuset-navigation-menu.view.tsx'),\n cn: '__local__-__local__-vinhuset-navigation-menu'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","module.exports = React;","module.exports = ReactDOM;"],"names":["menuItemsSource","VinhusetNavigationMenu","React","constructor","moduleClassName","render","config","cmsNavItems","showProductsMenuItemOnlyAuthorized","showAllProductsLink","showAllProductsLabel","context","data","categories","resources","productsMenuItemLabel","this","props","isAuthenticated","request","user","menuItems","productMenuItemChildren","static","_categories$result","_productMenuItemChild","filter","x","showOnlyAuthorized","forEach","navItem","linkText","linkUrl","push","title","url","destinationUrl","showUnauthorized","result","sort","a","b","DisplayOrder","map","category","Name","Url","unshift","_categories$result2","viewProps","_objectSpread","navigationMenu","moduleProps","className","classnames","baseClassName","productMenuItem","children","renderView","productsDropDownOpen","setProductsDropDownOpen","hasMultiRowClass","setHasMultiRowClass","dropdownStart","setDropdownStart","undefined","showDropdown","setShowDropdown","listRef","menuDropdownRef","menuDropdownButtonRef","productsDropdownLinkRef","productsDropdownRef","onClickHandler","event","preventDefault","document","addEventListener","current","target","contains","onResize","length","firstOffsetTop","offsetTop","i","observer","ResizeObserver","observe","console","warn","window","disconnect","removeEventListener","onClickOutside","item","index","key","href","productsMenuItemPosition","productMenuItemIndex","value","min","max","Math","splice","ref","onClick","child","childIndex","documentLoaded","setDocumentLoaded","Module","Object","assign","style","overflow","onMouseOver","onMouseLeave","position","Button","open","innerRef","navigationOverflowButtonLabel","show","slice","binding","modules","dataActions","c","require","$type","da","name","path","runOn","iNM","ns","n","p","pdp","md","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","id","__bindings__","viewDictionary","cn","module","exports","ReactDOM"],"sourceRoot":""}