{"version":3,"file":"static/js/f12dedf6c181136b5f34.bundle.js","mappings":"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","sources":["webpack://Dobbies.Commerce/./src/modules/dobbies-side-navigation-menu/dobbies-side-navigation-menu.tsx?5d6d","webpack://Dobbies.Commerce/./src/modules/dobbies-side-navigation-menu/dobbies-side-navigation-menu.view.tsx?d5b7","webpack://Dobbies.Commerce/./lib/dobbies-side-navigation-menu/module-registration.js?5fd7","webpack://Dobbies.Commerce/external var \"React\"?0d3b","webpack://Dobbies.Commerce/external var \"ReactDOM\"?853b"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport { IDobbiesSideNavigationMenuData } from './dobbies-side-navigation-menu.data';\r\nimport { IDobbiesSideNavigationMenuProps } from './dobbies-side-navigation-menu.props.autogenerated';\r\n\r\nexport interface IDobbiesSideNavigationMenuViewProps extends IDobbiesSideNavigationMenuProps {}\r\n\r\n/**\r\n *\r\n * DobbiesSideNavigationMenu component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass DobbiesSideNavigationMenu extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n return this.props.renderView(this.props);\r\n }\r\n}\r\n\r\nexport default DobbiesSideNavigationMenu;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\nimport { addThrottledEvent } from '@msdyn365-commerce-modules/utilities';\r\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\r\nimport * as React from 'react';\r\nimport { IDobbiesSideNavigationMenuViewProps } from './dobbies-side-navigation-menu';\r\nimport MsDyn365, * as Msdyn365 from '@msdyn365-commerce/core';\r\n// import DobbiesModal from '../../themes/dobbies/views/custom-components/dobbies-modal';\r\nimport Button from 'reactstrap/lib/Button';\r\nimport { ISubMenuStaticMenusData } from '../dobbies-navigation-menu/dobbies-navigation-menu.props.autogenerated';\r\n\r\nexport default (props: IDobbiesSideNavigationMenuViewProps) => {\r\n // const [activeCategory, setActiveCategory] = React.useState(undefined);\r\n const [categoryChildren, setCategoryChildren] = React.useState(undefined);\r\n // const [isMobile, setIsMobile] = React.useState(false);\r\n const [screenSize, setScreenSize] = React.useState(0);\r\n const [showModal, setShowModal] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n document.addEventListener('keydown', (e: KeyboardEvent) => {\r\n if (e.key.toLocaleLowerCase() === 'escape') {\r\n if (showModal) {\r\n setShowModal(!showModal);\r\n }\r\n }\r\n });\r\n }, [showModal]);\r\n\r\n // const modalTitle = (): JSX.Element => {\r\n // // const categoryName = categories && categories.result && categories.result.Name;\r\n // const handleShowModal = () => setShowModal(!showModal);\r\n // return (\r\n // \r\n // \r\n // {activeCategory?.Name}\r\n // \r\n //
\r\n // \r\n //
\r\n //
\r\n // );\r\n // };\r\n // const modalFooter = (): JSX.Element => {\r\n // const handleShowModal = () => setShowModal(!showModal);\r\n // return
;\r\n // };\r\n // const _modalToggle = () => {\r\n // setShowModal(!showModal);\r\n // };\r\n // const renderToggle = (): JSX.Element | undefined => {\r\n // const handleShowModal = () => setShowModal(!showModal);\r\n // return (\r\n // <>\r\n //
\r\n // {/*

{activeCategory?.Name}

*/}\r\n // \r\n //
\r\n // \r\n // \r\n // );\r\n // };\r\n\r\n // const renderMobileNav = (): JSX.Element | undefined => {\r\n // return (\r\n //
\r\n //
    {categoryChildren && categoryChildren.map(category => renderCategories(category, props))}
\r\n //
\r\n // );\r\n // };\r\n\r\n // const renderCategories = (category: CategoryHierarchy, props: IDobbiesSideNavigationMenuViewProps): JSX.Element => {\r\n // if (category.Children && category.Children.length > 0) {\r\n // return (\r\n //
\r\n //
  • \r\n // {category.Name}\r\n //
  • \r\n // {category.Children.map(category => (\r\n //
  • \r\n // {category.Name}\r\n //
  • \r\n // ))}\r\n //
    \r\n // );\r\n // }\r\n\r\n // return (\r\n //
  • \r\n // {category.Name}\r\n //
  • \r\n // );\r\n // };\r\n\r\n React.useEffect(() => {\r\n setMobileView();\r\n window && addThrottledEvent(window, 'resize', setMobileView);\r\n });\r\n\r\n const setMobileView = () => {\r\n // const _isMobile = isMobileView(props.context);\r\n // // setIsMobile(_isMobile);\r\n };\r\n\r\n React.useEffect(() => {\r\n const isMbl = _getScreenSize(props.context);\r\n setScreenSize(isMbl);\r\n });\r\n\r\n React.useEffect(() => {\r\n const getCategories = async () => {\r\n const pathnames = props.context.request.url.requestUrl.pathname.split('/');\r\n const pathname = pathnames[pathnames.length - 1];\r\n\r\n const categoryId = props.config.categoryId ? props.config.categoryId : pathname.replace('.c', '');\r\n const categoryIdL2 = props.config.categoryLevelTwo;\r\n const categories = await props.data.categories;\r\n\r\n let activeCategory = categories!.filter(category => categoryId.toString() === category.RecordId.toString());\r\n if (categoryIdL2) {\r\n activeCategory = activeCategory[0].Children.filter(cat => categoryIdL2.toString() === cat.RecordId.toString());\r\n }\r\n\r\n if (activeCategory[0] && activeCategory[0]) {\r\n // setActiveCategory(activeCategory[0]);\r\n if (!categoryChildren) {\r\n setCategoryChildren(\r\n activeCategory[0].Children.filter(cat => !shouldCategoryHide(props, cat.NeutralizedName)).concat(\r\n getStaticCategories(props, activeCategory[0])\r\n )\r\n );\r\n }\r\n }\r\n };\r\n getCategories();\r\n if (MsDyn365.isBrowser) {\r\n window.addEventListener('resize', () => {\r\n const isMbl = _getScreenSize(props.context);\r\n setScreenSize(isMbl);\r\n });\r\n }\r\n }, []);\r\n\r\n const getMaxCategoriesForCurrentScreenSize = () => {\r\n if (MsDyn365.isBrowser && window) {\r\n if (window.innerWidth >= 1700) {\r\n return 4;\r\n } else if (window.innerWidth >= 1250 && window.innerWidth < 1700) {\r\n return 3;\r\n } else if (window.innerWidth >= 700 && window.innerWidth < 1250) {\r\n return 2;\r\n } else if (window.innerWidth < 700) {\r\n return 1;\r\n }\r\n }\r\n return -1;\r\n };\r\n\r\n const _getScreenSize = (ctx: Msdyn365.ICoreContext): number => {\r\n // always render in mobile viewport on a mobile device\r\n // if (ctx.request && ctx.request.device && ctx.request.device.Type === 'Mobile') {\r\n // return 1;\r\n // }\r\n\r\n if (typeof window !== undefined && window.innerWidth) {\r\n const gridSettings = ctx.request.gridSettings;\r\n if (gridSettings) {\r\n if (window.innerWidth < 768) {\r\n // mobile\r\n return 1;\r\n } else if (window.innerWidth < 1476) {\r\n // iPad\r\n return 2;\r\n } else if (window.innerWidth >= 1476) {\r\n // Desktop\r\n return 3;\r\n } else {\r\n return 3;\r\n }\r\n // else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n // // Desktop\r\n // return 3;\r\n // }\r\n }\r\n }\r\n\r\n return 3; // desktop\r\n };\r\n\r\n // const isMobileView = (context: Msdyn365.ICoreContext): boolean => {\r\n // // always render in mobile viewport on a mobile device\r\n // /* if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\r\n // return true;\r\n // } */\r\n\r\n // if (typeof window !== undefined && window.innerWidth) {\r\n // const gridSettings = context.request.gridSettings;\r\n // if (gridSettings) {\r\n // if (gridSettings.xs && window.innerWidth < gridSettings.xs.w) {\r\n // return true;\r\n // } else if (gridSettings.sm && window.innerWidth < gridSettings.sm.w) {\r\n // return true;\r\n // } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\r\n // return false;\r\n // } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n // return false;\r\n // } else {\r\n // return false;\r\n // }\r\n // }\r\n // }\r\n\r\n // return false;\r\n // };\r\n\r\n const getSubMenus = (category: ISubMenuStaticMenusData) => {\r\n const subMenus: CategoryHierarchy[] = [];\r\n if (category.subMenus && category.subMenus.length) {\r\n for (const sbm of category.subMenus) {\r\n const c: CategoryHierarchy = { Name: sbm.linkText, Url: sbm.linkUrl.destinationUrl, Children: [], RecordId: -1 };\r\n subMenus.push(c);\r\n }\r\n }\r\n return subMenus;\r\n };\r\n\r\n const getStaticCategories = (props: IDobbiesSideNavigationMenuViewProps, category: CategoryHierarchy) => {\r\n const staticMenusCookie = props.context.request.cookies.get('static_submenu_items');\r\n let staticMenus: ISubMenuStaticMenusData[] = [];\r\n const staticCategories: CategoryHierarchy[] = [];\r\n if (Array.isArray(staticMenusCookie.value)) {\r\n staticMenus = staticMenusCookie.value as ISubMenuStaticMenusData[];\r\n }\r\n const lastCategory = category;\r\n staticMenus = staticMenus.filter(sm => sm.linkText === lastCategory.Name && sm.subMenus?.length);\r\n staticMenus.map(sm => {\r\n sm.subMenus?.map(sbm => {\r\n const c: CategoryHierarchy = {\r\n Name: sbm.linkText,\r\n Url: sbm.linkUrl.destinationUrl,\r\n Children: getSubMenus(sbm),\r\n RecordId: -1\r\n };\r\n staticCategories.push(c);\r\n });\r\n });\r\n return staticCategories;\r\n };\r\n\r\n const showRemainingCategories = () => {\r\n const moreOptionsDiv = document.getElementById('more-cats-div');\r\n if (moreOptionsDiv) {\r\n if (moreOptionsDiv.classList.contains('show-more-option')) {\r\n moreOptionsDiv.classList.remove('show-more-option');\r\n moreOptionsDiv.classList.add('hide-more-option');\r\n } else {\r\n moreOptionsDiv.classList.remove('hide-more-option');\r\n moreOptionsDiv.classList.add('show-more-option');\r\n }\r\n }\r\n };\r\n\r\n const shouldCategoryHide = (props: IDobbiesSideNavigationMenuViewProps, neutralizedName?: string): boolean => {\r\n if (props.config.hideMenuItemPrefix && neutralizedName?.startsWith(props.config.hideMenuItemPrefix)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n const renderLinks = (\r\n category: CategoryHierarchy,\r\n props: IDobbiesSideNavigationMenuViewProps,\r\n isFromMoreOptions?: boolean\r\n ): JSX.Element => {\r\n if (category.Children && category.Children.length > 0 && isFromMoreOptions) {\r\n const toggleMoreCat = () => {\r\n const moreOptionsDiv = document.getElementById(`catparent-${category.RecordId}`);\r\n if (moreOptionsDiv) {\r\n if (moreOptionsDiv.classList.contains('cat-toggle-show')) {\r\n moreOptionsDiv.classList.remove('cat-toggle-show');\r\n moreOptionsDiv.classList.add('cat-toggle-hide');\r\n } else {\r\n moreOptionsDiv.classList.remove('cat-toggle-hide');\r\n moreOptionsDiv.classList.add('cat-toggle-show');\r\n }\r\n }\r\n };\r\n return (\r\n <>\r\n \r\n {category.Name}\r\n {\r\n toggleMoreCat();\r\n }}\r\n >\r\n {category.Children && category.Children.length ? (\r\n
      \r\n {category.Children.map(category => {\r\n return (\r\n
    • \r\n {category.Name}\r\n
    • \r\n );\r\n })}\r\n
    \r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n );\r\n }\r\n if (category.Children && category.Children.length > 0) {\r\n return (\r\n <>\r\n
  • \r\n {category.Name}\r\n {\r\n const ul = document.getElementById(`cat-${category.RecordId}`);\r\n if (ul?.classList.contains('cat-dropdown-show')) {\r\n ul.classList.remove('cat-dropdown-show');\r\n ul.classList.add('cat-dropdown-hide');\r\n } else {\r\n ul?.classList.add('cat-dropdown-show');\r\n ul?.classList.remove('cat-dropdown-hide');\r\n const otherULs = document.getElementsByClassName('cat-dropdown-show');\r\n if (otherULs && otherULs.length) {\r\n for (let iter = 0; iter < otherULs.length; iter++) {\r\n if (otherULs[iter].id === `cat-${category.RecordId}`) {\r\n continue;\r\n }\r\n const otherULElem = otherULs[iter];\r\n otherULElem.classList.remove('cat-dropdown-show');\r\n if (!otherULElem.classList.contains('cat-dropdown-hide')) {\r\n otherULElem.classList.add('cat-dropdown-hide');\r\n }\r\n }\r\n }\r\n const showMoreOptionsElems = document.getElementsByClassName('show-more-option');\r\n if (showMoreOptionsElems && showMoreOptionsElems.length) {\r\n const showMorOptElem = showMoreOptionsElems[0];\r\n showMorOptElem.classList.remove('show-more-option');\r\n if (!showMorOptElem.classList.contains('hide-more-option')) {\r\n showMorOptElem.classList.add('hide-more-option');\r\n }\r\n }\r\n }\r\n }}\r\n >\r\n\r\n {category.Children && category.Children.length ? (\r\n
      \r\n {category.Children.filter(cat => !shouldCategoryHide(props, cat.NeutralizedName)).map(category => {\r\n return (\r\n
    • \r\n {category.Name}\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 return (\r\n
  • \r\n {category.Name}\r\n
  • \r\n );\r\n };\r\n console.log('Screen Size', screenSize);\r\n let maxCategories = getMaxCategoriesForCurrentScreenSize(); // screenSize === 3 ? 4 : screenSize === 2 ? 3 : 0;\r\n if (maxCategories === -1) {\r\n return <>;\r\n }\r\n // maxCategories = screenSize === 1 ? 2 : maxCategories;\r\n const characterLimit = props.config.maximumCharacterLimit;\r\n\r\n if (categoryChildren?.length && categoryChildren?.length > maxCategories) {\r\n let maxLengthCheckIter = 0;\r\n for (const cat of categoryChildren) {\r\n if (characterLimit && cat.Name?.length && cat.Name?.length > characterLimit && maxLengthCheckIter < maxCategories) {\r\n maxCategories = maxCategories - 1;\r\n break;\r\n }\r\n maxLengthCheckIter++;\r\n }\r\n }\r\n\r\n if (categoryChildren?.length === maxCategories + 1) {\r\n maxCategories = maxCategories + 1;\r\n }\r\n // || screenSize === 1\r\n return screenSize === 3 || screenSize === 2 ? (\r\n
    \r\n {/*

    {activeCategory?.Name}

    */}\r\n {categoryChildren && categoryChildren.length <= maxCategories ? (\r\n
      {categoryChildren && categoryChildren.map(category => renderLinks(category, props))}
    \r\n ) : (\r\n <>\r\n
      \r\n {categoryChildren && categoryChildren.slice(0, maxCategories).map(category => renderLinks(category, props))}\r\n {categoryChildren && (\r\n
    • \r\n {\r\n const otherULs = document.getElementsByClassName('cat-dropdown-show');\r\n if (otherULs && otherULs.length) {\r\n for (let iter = 0; iter < otherULs.length; iter++) {\r\n const otherULElem = otherULs[iter];\r\n otherULElem.classList.remove('cat-dropdown-show');\r\n if (!otherULElem.classList.contains('cat-dropdown-hide')) {\r\n otherULElem.classList.add('cat-dropdown-hide');\r\n }\r\n }\r\n }\r\n showRemainingCategories();\r\n }}\r\n >\r\n more options\r\n \r\n
        \r\n {categoryChildren\r\n .slice(maxCategories, categoryChildren.length)\r\n .map(category => renderLinks(category, props, true))}\r\n
      \r\n
    • \r\n )}\r\n
    \r\n \r\n )}\r\n
    \r\n ) : screenSize === 1 ? (\r\n
    \r\n {/*

    {activeCategory?.Name}

    */}\r\n {/* {categoryChildren && categoryChildren.length <= maxCategories ? (\r\n
      {categoryChildren && categoryChildren.map(category => renderLinks(category, props))}
    \r\n ) : ( */}\r\n <>\r\n
      \r\n {/* {categoryChildren && categoryChildren.slice(0, maxCategories).map(category => renderLinks(category, props))} */}\r\n {categoryChildren && (\r\n
    • \r\n {\r\n const otherULs = document.getElementsByClassName('cat-dropdown-show');\r\n if (otherULs && otherULs.length) {\r\n for (let iter = 0; iter < otherULs.length; iter++) {\r\n const otherULElem = otherULs[iter];\r\n otherULElem.classList.remove('cat-dropdown-show');\r\n if (!otherULElem.classList.contains('cat-dropdown-hide')) {\r\n otherULElem.classList.add('cat-dropdown-hide');\r\n }\r\n }\r\n }\r\n showRemainingCategories();\r\n }}\r\n >\r\n Categories\r\n \r\n
        \r\n {/* {categoryChildren\r\n .slice(maxCategories, categoryChildren.length)\r\n .map(category => renderLinks(category, props, true))} */}\r\n {categoryChildren.map(category => renderLinks(category, props, true))}\r\n
      \r\n
    • \r\n )}\r\n
    \r\n \r\n {/* )} */}\r\n
    \r\n ) : (\r\n <>{/*
    {renderToggle()}
    */}\r\n );\r\n};\r\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['dobbies-side-navigation-menu'] = {\n c: () => require('partner/modules/dobbies-side-navigation-menu/dobbies-side-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: 'dobbies-side-navigation-menu',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/dobbies-side-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|dobbies-side-navigation-menu|dobbies-side-navigation-menu'] = {\n c: () => require('partner/modules/dobbies-side-navigation-menu/dobbies-side-navigation-menu.view.tsx'),\n cn: '__local__-__local__-dobbies-side-navigation-menu'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","module.exports = React;","module.exports = ReactDOM;"],"names":["DobbiesSideNavigationMenu","React","render","this","props","renderView","categoryChildren","setCategoryChildren","undefined","screenSize","setScreenSize","showModal","setShowModal","document","addEventListener","e","key","toLocaleLowerCase","setMobileView","window","addThrottledEvent","isMbl","_getScreenSize","context","async","pathnames","request","url","requestUrl","pathname","split","length","categoryId","config","replace","categoryIdL2","categoryLevelTwo","activeCategory","data","categories","filter","category","toString","RecordId","Children","cat","shouldCategoryHide","NeutralizedName","concat","getStaticCategories","getCategories","MsDyn365","isBrowser","ctx","innerWidth","gridSettings","getSubMenus","subMenus","sbm","c","Name","linkText","Url","linkUrl","destinationUrl","push","staticMenusCookie","cookies","get","staticMenus","staticCategories","Array","isArray","value","lastCategory","sm","_sm$subMenus","map","_sm$subMenus2","showRemainingCategories","moreOptionsDiv","getElementById","classList","contains","remove","add","neutralizedName","hideMenuItemPrefix","startsWith","renderLinks","isFromMoreOptions","toggleMoreCat","id","className","href","onClick","ul","otherULs","getElementsByClassName","iter","otherULElem","showMoreOptionsElems","showMorOptElem","console","log","maxCategories","getMaxCategoriesForCurrentScreenSize","characterLimit","maximumCharacterLimit","maxLengthCheckIter","_cat$Name","_cat$Name2","slice","Button","binding","modules","dataActions","require","$type","da","name","path","runOn","iNM","ns","n","p","pdp","md","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","__bindings__","_objectSpread","viewDictionary","cn","module","exports","ReactDOM"],"sourceRoot":""}