{"version":3,"file":"static/js/2de8f9bba6d4ef3e9b5a.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<IDobbiesSideNavigationMenuData> {}\r\n\r\n/**\r\n *\r\n * DobbiesSideNavigationMenu component\r\n * @extends {React.PureComponent<IDobbiesSideNavigationMenuProps<IDobbiesSideNavigationMenuData>>}\r\n */\r\nclass DobbiesSideNavigationMenu extends React.PureComponent<IDobbiesSideNavigationMenuProps<IDobbiesSideNavigationMenuData>> {\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<CategoryHierarchy | undefined>(undefined);\r\n    const [categoryChildren, setCategoryChildren] = React.useState<CategoryHierarchy[] | undefined>(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    //         <Node tag='div' className='view-all-popup-header'>\r\n    //             <Node tag='span' className='title-text'>\r\n    //                 {activeCategory?.Name}\r\n    //             </Node>\r\n    //             <div className='header-close-button' onClick={handleShowModal} role='button'>\r\n    //                 <i className='msc-modal__close-button' />\r\n    //             </div>\r\n    //         </Node>\r\n    //     );\r\n    // };\r\n    // const modalFooter = (): JSX.Element => {\r\n    //     const handleShowModal = () => setShowModal(!showModal);\r\n    //     return <div className='close-button' role='button' onClick={handleShowModal} />;\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    //             <div className='category-list-mobile'>\r\n    //                 {/* <h1 className='category-listing-title'>{activeCategory?.Name}</h1> */}\r\n    //                 <button onClick={handleShowModal}>View All</button>\r\n    //             </div>\r\n    //             <DobbiesModal\r\n    //                 className='modal ms-dobbies-browse'\r\n    //                 isOpen={showModal}\r\n    //                 modalBodyElement={renderMobileNav()}\r\n    //                 onModalToggle={_modalToggle}\r\n    //                 modalTitle={modalTitle()}\r\n    //                 modalFooter={modalFooter()}\r\n    //             />\r\n    //         </>\r\n    //     );\r\n    // };\r\n\r\n    // const renderMobileNav = (): JSX.Element | undefined => {\r\n    //     return (\r\n    //         <div className='category-listing'>\r\n    //             <ul>{categoryChildren && categoryChildren.map(category => renderCategories(category, props))}</ul>\r\n    //         </div>\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    //             <div>\r\n    //                 <li className='category-heading' key={category.RecordId}>\r\n    //                     <a href={category.Url}>{category.Name}</a>\r\n    //                 </li>\r\n    //                 {category.Children.map(category => (\r\n    //                     <li key={category.RecordId}>\r\n    //                         <a href={category.Url}>{category.Name}</a>\r\n    //                     </li>\r\n    //                 ))}\r\n    //             </div>\r\n    //         );\r\n    //     }\r\n\r\n    //     return (\r\n    //         <li className='category-heading' key={category.RecordId}>\r\n    //             <a href={category.Url}>{category.Name}</a>\r\n    //         </li>\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 replaceCategory = (props: IDobbiesSideNavigationMenuViewProps, category: CategoryHierarchy): CategoryHierarchy => {\r\n        if (props.config.categoriesReplacementPriorityList && props.config.categoriesReplacementPriorityList.length) {\r\n            for (const replacementInfo of props.config.categoriesReplacementPriorityList) {\r\n                if (replacementInfo.categoryToBeReplaced === category.Name) {\r\n                    category.Name = replacementInfo.replacingCategory;\r\n                    category.Url = replacementInfo.replacingCategoryUrl;\r\n                    return category;\r\n                }\r\n            }\r\n        }\r\n        return category;\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                    <li\r\n                        id={`catparent-${category.RecordId}`}\r\n                        className={`category-heading ${category.Children && category.Children.length ? 'cat-parent cat-toggle-hide' : ''}`}\r\n                        key={category.RecordId}\r\n                    >\r\n                        <a href={category.Url}>{category.Name}</a>\r\n                        <span\r\n                            className='dropdown-icon'\r\n                            onClick={() => {\r\n                                toggleMoreCat();\r\n                            }}\r\n                        ></span>\r\n                        {category.Children && category.Children.length ? (\r\n                            <ul id={`cat-${category.RecordId}`}>\r\n                                {category.Children.map(category => {\r\n                                    return (\r\n                                        <li key={category.RecordId}>\r\n                                            <a href={category.Url}>{category.Name}</a>\r\n                                        </li>\r\n                                    );\r\n                                })}\r\n                            </ul>\r\n                        ) : (\r\n                            <></>\r\n                        )}\r\n                    </li>\r\n                </>\r\n            );\r\n        }\r\n        if (category.Children && category.Children.length > 0) {\r\n            return (\r\n                <>\r\n                    <li className={`category-heading `} key={category.RecordId}>\r\n                        <a href={category.Url}>{category.Name}</a>\r\n                        <span\r\n                            className='dropdown-icon'\r\n                            onClick={() => {\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                        ></span>\r\n\r\n                        {category.Children && category.Children.length ? (\r\n                            <ul id={`cat-${category.RecordId}`} className='cat-dropdown-hide'>\r\n                                {category.Children.filter(cat => !shouldCategoryHide(props, cat.NeutralizedName)).map(category => {\r\n                                    category = replaceCategory(props, category);\r\n                                    return (\r\n                                        <li key={category.RecordId}>\r\n                                            <a href={category.Url}>{category.Name}</a>\r\n                                        </li>\r\n                                    );\r\n                                })}\r\n                            </ul>\r\n                        ) : (\r\n                            <></>\r\n                        )}\r\n                    </li>\r\n                </>\r\n            );\r\n        }\r\n\r\n        return (\r\n            <li className='category-heading' key={category.RecordId}>\r\n                <a href={category.Url}>{category.Name}</a>\r\n            </li>\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        <div className='category-listing'>\r\n            {/* <h1 className='category-listing-title'>{activeCategory?.Name}</h1> */}\r\n            {categoryChildren && categoryChildren.length <= maxCategories ? (\r\n                <ul>{categoryChildren && categoryChildren.map(category => renderLinks(replaceCategory(props, category), props))}</ul>\r\n            ) : (\r\n                <>\r\n                    <ul>\r\n                        {categoryChildren &&\r\n                            categoryChildren.slice(0, maxCategories).map(category => renderLinks(replaceCategory(props, category), props))}\r\n                        {categoryChildren && (\r\n                            <li key={categoryChildren.length} className='more-subcategories-child'>\r\n                                <Button\r\n                                    className='more-subcategories'\r\n                                    href=''\r\n                                    key={categoryChildren.length}\r\n                                    onClick={() => {\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                                </Button>\r\n                                <ul id='more-cats-div' className='hide-more-option'>\r\n                                    {categoryChildren\r\n                                        .slice(maxCategories, categoryChildren.length)\r\n                                        .map(category => renderLinks(replaceCategory(props, category), props, true))}\r\n                                </ul>\r\n                            </li>\r\n                        )}\r\n                    </ul>\r\n                </>\r\n            )}\r\n        </div>\r\n    ) : screenSize === 1 ? (\r\n        <div className='category-listing'>\r\n            {/* <h1 className='category-listing-title'>{activeCategory?.Name}</h1> */}\r\n            {/* {categoryChildren && categoryChildren.length <= maxCategories ? (\r\n                <ul>{categoryChildren && categoryChildren.map(category => renderLinks(category, props))}</ul>\r\n            ) : ( */}\r\n            <>\r\n                <ul>\r\n                    {/* {categoryChildren && categoryChildren.slice(0, maxCategories).map(category => renderLinks(category, props))} */}\r\n                    {categoryChildren && (\r\n                        <li key={categoryChildren.length} className='more-subcategories-child'>\r\n                            <Button\r\n                                className='more-subcategories'\r\n                                href=''\r\n                                key={categoryChildren.length}\r\n                                onClick={() => {\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                            </Button>\r\n                            <ul id='more-cats-div' className='hide-more-option'>\r\n                                {/* {categoryChildren\r\n                                    .slice(maxCategories, categoryChildren.length)\r\n                                    .map(category => renderLinks(category, props, true))} */}\r\n                                {categoryChildren.map(category => renderLinks(replaceCategory(props, category), props, true))}\r\n                            </ul>\r\n                        </li>\r\n                    )}\r\n                </ul>\r\n            </>\r\n            {/* )} */}\r\n        </div>\r\n    ) : (\r\n        <>{/* <div className={isMobile ? 'mobile-category-listing' : ''}>{renderToggle()}</div> */}</>\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","replaceCategory","categoriesReplacementPriorityList","replacementInfo","categoryToBeReplaced","replacingCategory","replacingCategoryUrl","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":""}