{"version":3,"file":"static/js/f771d268a0c2fa4705e5.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/./src/themes/dobbies/views/custom-components/dobbies-modal.tsx?9a82","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, Node } 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 * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport DobbiesModal from '../../themes/dobbies/views/custom-components/dobbies-modal';\r\nimport Button from 'reactstrap/lib/Button';\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 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 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(activeCategory[0].Children.filter(cat => !shouldCategoryHide(props, cat.NeutralizedName)));\r\n }\r\n }\r\n };\r\n getCategories();\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 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 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 = screenSize === 3 ? 4 : screenSize === 2 ? 3 : 0;\r\n maxCategories = screenSize === 1 ? 2 : maxCategories;\r\n return screenSize === 3 || screenSize === 2 || 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 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 ) : (\r\n <>\r\n
    {renderToggle()}
    \r\n \r\n );\r\n};\r\n","import { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IDobbiesModalProps {\r\n modalBodySlots?: React.ReactNode[];\r\n modalBodyElement?: JSX.Element;\r\n isOpen: boolean;\r\n className: string;\r\n modalTitle: JSX.Element;\r\n modalFooter: JSX.Element;\r\n onModalToggle?(): void;\r\n}\r\n\r\nconst DobbiesModal: React.FC = (props: IDobbiesModalProps) => {\r\n return (\r\n \r\n {props.modalTitle && {props.modalTitle}}\r\n {props.modalBodySlots && {props.modalBodySlots}}\r\n {props.modalBodyElement && {props.modalBodyElement}}\r\n {props.modalFooter && {props.modalFooter}}\r\n \r\n );\r\n};\r\n\r\nexport default DobbiesModal;\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","activeCategory","setActiveCategory","undefined","categoryChildren","setCategoryChildren","isMobile","setIsMobile","screenSize","setScreenSize","showModal","setShowModal","shouldCategoryHide","neutralizedName","config","hideMenuItemPrefix","startsWith","document","addEventListener","e","key","toLocaleLowerCase","_modalToggle","renderMobileNav","className","map","category","renderCategories","Children","length","RecordId","href","Url","Name","setMobileView","window","addThrottledEvent","_isMobile","isMobileView","context","isMbl","_getScreenSize","async","pathnames","request","url","requestUrl","pathname","split","categoryId","replace","categoryIdL2","categoryLevelTwo","data","categories","filter","toString","cat","NeutralizedName","getCategories","ctx","innerWidth","gridSettings","xs","w","sm","md","lg","renderLinks","isFromMoreOptions","toggleMoreCat","moreOptionsDiv","getElementById","classList","contains","remove","add","id","onClick","ul","otherULs","getElementsByClassName","iter","otherULElem","showMoreOptionsElems","showMorOptElem","console","log","maxCategories","slice","Button","showRemainingCategories","handleShowModal","DobbiesModal","isOpen","modalBodyElement","onModalToggle","modalTitle","Node","tag","role","modalFooter","Modal","zIndex","applicationNode","autoFocus","toggle","ModalHeader","modalBodySlots","ModalBody","ModalFooter","binding","modules","dataActions","c","require","$type","da","name","path","runOn","iNM","ns","n","p","pdp","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","__bindings__","_objectSpread","viewDictionary","cn","module","exports","ReactDOM"],"sourceRoot":""}