{"version":3,"file":"static/js/49869243d963e10e3b27.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 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 \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 category = replaceCategory(props, 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(replaceCategory(props, category), props))}
    \r\n ) : (\r\n <>\r\n
      \r\n {categoryChildren &&\r\n categoryChildren.slice(0, maxCategories).map(category => renderLinks(replaceCategory(props, 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(replaceCategory(props, 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(replaceCategory(props, 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","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":""}