{"version":3,"file":"bundle.e6da238e61371c2ba84183bdf0d010de.js","mappings":"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","sources":["webpack://ws-navigation/./node_modules/ws-scripts/modules/common.js","webpack://ws-navigation/./node_modules/ws-scripts/modules/environment.js","webpack://ws-navigation/./src/actions/types.js","webpack://ws-navigation/./src/reducers/menu.js","webpack://ws-navigation/./src/reducers/index.js","webpack://ws-navigation/./src/reducers/items.js","webpack://ws-navigation/./src/reducers/widgetData.js","webpack://ws-navigation/./src/reducers/currentPage.js","webpack://ws-navigation/./node_modules/ws-scripts/src/global/environment/environment-browser.js","webpack://ws-navigation/./node_modules/ws-scripts/src/global/environment/index.js","webpack://ws-navigation/external var \"DDC.WsmCommonData\"","webpack://ws-navigation/webpack/bootstrap","webpack://ws-navigation/webpack/runtime/compat get default export","webpack://ws-navigation/webpack/runtime/define property getters","webpack://ws-navigation/webpack/runtime/hasOwnProperty shorthand","webpack://ws-navigation/external var \"ReactDOM\"","webpack://ws-navigation/external var \"React\"","webpack://ws-navigation/external var \"ReactRedux\"","webpack://ws-navigation/./src/ws-scripts/components/layout/WidgetHeading.jsx","webpack://ws-navigation/./src/ws-scripts/components/layout/Collapse.jsx","webpack://ws-navigation/external var \"HTMLReactParser\"","webpack://ws-navigation/./node_modules/ddc-track-event/dist/es.js","webpack://ws-navigation/./src/utils/tracking.js","webpack://ws-navigation/./src/components/NavLink.jsx","webpack://ws-navigation/./src/components/MenuLink.jsx","webpack://ws-navigation/./src/components/NavIcon.jsx","webpack://ws-navigation/./src/components/DropdownItem.jsx","webpack://ws-navigation/./src/components/DropdownMenu.jsx","webpack://ws-navigation/./src/actions/menu.js","webpack://ws-navigation/./src/components/NavFragment.jsx","webpack://ws-navigation/./src/components/MMColumnItem.jsx","webpack://ws-navigation/./src/components/MMColumnSection.jsx","webpack://ws-navigation/./src/components/MMColumn.jsx","webpack://ws-navigation/./src/utils/dispatchTrackingEvent.js","webpack://ws-navigation/./src/components/MegaMenu.jsx","webpack://ws-navigation/./src/components/MenuItem.jsx","webpack://ws-navigation/./src/utils/setSelected.js","webpack://ws-navigation/./src/constants.js","webpack://ws-navigation/./src/containers/Widget.jsx","webpack://ws-navigation/./src/actions/currentPage.js","webpack://ws-navigation/./src/utils/getNavClasses.js","webpack://ws-navigation/./src/utils/getNavAttributes.js","webpack://ws-navigation/./src/ws-scripts/components/layout/WidgetWrapper.jsx","webpack://ws-navigation/external var \"RTK\"","webpack://ws-navigation/./src/middleware/index.js","webpack://ws-navigation/./src/ws-scripts/store.js","webpack://ws-navigation/./src/ws-scripts/reducers/request-data.js","webpack://ws-navigation/./src/ws-scripts/reducers/prefs.js","webpack://ws-navigation/./src/ws-scripts/reducers/labels.js","webpack://ws-navigation/./src/ws-scripts/reducers/sitemap.js","webpack://ws-navigation/./src/ws-scripts/reducers/flags.js","webpack://ws-navigation/./src/ws-scripts/browser.jsx"],"sourcesContent":["module.exports = {\n\t...require('wsm-common-data')\n};\n","module.exports = {\n\t...require('../src/global/environment')\n};\n","// This file should only contain action type constants.\nexport const SET_ITEMS = 'SET_ITEMS';\nexport const SET_NAVSV2 = 'SET_NAVS_V2';\nexport const SET_FRANCHISELIST = 'SET_FRANCHISELIST';\nexport const OPEN_MENU = 'OPEN_MENU';\nexport const CLOSE_MENU = 'CLOSE_MENU';\nexport const CLOSE_ALL_MENUS = 'CLOSE_ALL_MENUS';\nexport const SET_ACCOUNT_ID = 'SET_ACCOUNT_ID';\nexport const SET_URI = 'SET_URI';\n","import { OPEN_MENU, CLOSE_MENU, CLOSE_ALL_MENUS } from '../actions/types';\n\nconst initialState = {\n\topenMenus: []\n};\n\nconst menuReducer = (state = initialState, action) => {\n\tswitch (action.type) {\n\t\tcase OPEN_MENU:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\topenMenus: [...state.openMenus, action.menuItemId]\n\t\t\t};\n\t\tcase CLOSE_MENU:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\topenMenus: state.openMenus.filter(\n\t\t\t\t\t(id) => id !== action.menuItemId\n\t\t\t\t)\n\t\t\t};\n\n\t\tcase CLOSE_ALL_MENUS:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\topenMenus: []\n\t\t\t};\n\t\tdefault:\n\t\t\treturn state;\n\t}\n};\n\nexport default menuReducer;\n","import items from './items';\nimport widgetData from './widgetData';\nimport menu from './menu';\nimport currentPage from './currentPage';\n\nconst root = {\n\titems,\n\twidgetData,\n\tmenu,\n\tcurrentPage\n};\n\nexport default root;\n","import { SET_ITEMS } from '../actions/types';\n\nexport default function items(state = [], action) {\n\tif (!action.error && action.payload !== undefined) {\n\t\tswitch (action.type) {\n\t\t\tcase SET_ITEMS:\n\t\t\t\treturn action.payload;\n\t\t\t// no default\n\t\t}\n\t}\n\n\treturn state;\n}\n","import {\n\tSET_NAVSV2,\n\tSET_FRANCHISELIST,\n\tSET_ACCOUNT_ID\n} from '../actions/types';\n\nexport default function items(\n\tstate = { navsV2: true, franchiseList: [], accountId: '' },\n\taction\n) {\n\tif (!action.error && action.payload !== undefined) {\n\t\tswitch (action.type) {\n\t\t\tcase SET_NAVSV2:\n\t\t\t\treturn { ...state, navsV2: action.payload };\n\t\t\tcase SET_FRANCHISELIST:\n\t\t\t\treturn { ...state, franchiseList: action.payload };\n\t\t\tcase SET_ACCOUNT_ID:\n\t\t\t\treturn { ...state, accountId: action.payload };\n\t\t\t// no default\n\t\t}\n\t}\n\n\treturn state;\n}\n","import { SET_URI } from '../actions/types';\n\nexport default function currentPage(state = { currentPath: '' }, action) {\n\tif (!action.error && action.payload !== undefined) {\n\t\tswitch (action.type) {\n\t\t\tcase SET_URI:\n\t\t\t\treturn { ...state, currentPath: action.payload };\n\t\t\t// no default\n\t\t}\n\t}\n\n\treturn state;\n}\n","const isNode = false;\nconst isBrowser = true;\nconst enforceServerSide = () => {\n\tthrow new Error(\n\t\t'You are attempting to use code in the browser that has been ' +\n\t\t\t'designated server-side only. Such activity is known by ' +\n\t\t\t'the state of California to lead to usage of the dark side ' +\n\t\t\t'of the Force.'\n\t);\n};\n\nmodule.exports = {\n\tisNode,\n\tisBrowser,\n\tenforceServerSide\n};\n","// Webpack will replace 'environment-node' with 'environment-browser' in browser environments.\nmodule.exports = require('./environment-node');\n","module.exports = DDC.WsmCommonData;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","const __WEBPACK_NAMESPACE_OBJECT__ = ReactDOM;","const __WEBPACK_NAMESPACE_OBJECT__ = React;","const __WEBPACK_NAMESPACE_OBJECT__ = ReactRedux;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Common } from 'ws-scripts/modules/common'; // eslint-disable-line import/no-unresolved\n\nclass WidgetHeading extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.renderDelegate = this.renderDelegate.bind(this);\n\t}\n\n\trenderDelegate({ labels }) {\n\t\tconst {\n\t\t\tHeadingTag,\n\t\t\theadingText,\n\t\t\twidgetId,\n\t\t\ttoggleCollapse,\n\t\t\tshowIcon,\n\t\t\theadingClasses,\n\t\t\ticonClasses\n\t\t} = this.props;\n\n\t\tconst allIconClasses = [...iconClasses];\n\t\tlet collapseAttributes = {};\n\n\t\tif (toggleCollapse) {\n\t\t\tconst iconExpand = 'ddc-icon-expand';\n\n\t\t\tallIconClasses.push(iconExpand);\n\t\t\tallIconClasses.push('icon-style-collapse');\n\n\t\t\tcollapseAttributes = {\n\t\t\t\trole: 'button',\n\t\t\t\t'data-toggle': 'collapse',\n\t\t\t\t'data-target': `#${widgetId}-collapse`,\n\t\t\t\t'data-expand-icon-class': `${iconExpand}`,\n\t\t\t\t'data-collapse-icon-class': 'ddc-icon-collapse',\n\t\t\t\t'aria-expanded': 'false',\n\t\t\t\t'aria-controls': `${widgetId}-collapse`\n\t\t\t};\n\t\t}\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{showIcon && (\n\t\t\t\t\t\n\t\t\t\t\t\t{' '}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{labels.getHTML(headingText)}\n\t\t\t\n\t\t);\n\t}\n\n\trender() {\n\t\tif (\n\t\t\t!this.props.headingText ||\n\t\t\tthis.props.headingText.toUpperCase() === 'FALSE'\n\t\t) {\n\t\t\treturn null;\n\t\t} else {\n\t\t\treturn ;\n\t\t}\n\t}\n}\n\nWidgetHeading.propTypes = {\n\tHeadingTag: PropTypes.string,\n\theadingText: PropTypes.string,\n\twidgetId: PropTypes.string.isRequired,\n\ttoggleCollapse: PropTypes.bool.isRequired,\n\tshowIcon: PropTypes.bool.isRequired,\n\theadingClasses: PropTypes.arrayOf(PropTypes.string).isRequired,\n\ticonClasses: PropTypes.arrayOf(PropTypes.string).isRequired\n};\n\nWidgetHeading.defaultProps = {\n\tHeadingTag: 'h3',\n\theadingText: ''\n};\n\nexport default WidgetHeading;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Collapse = (props) => {\n\tconst { id, children, toggleCollapse } = props;\n\n\tif (toggleCollapse) {\n\t\treturn (\n\t\t\t
\n\t\t\t\t{children}\n\t\t\t
\n\t\t);\n\t}\n\n\treturn children;\n};\n\nCollapse.propTypes = {\n\tid: PropTypes.string.isRequired,\n\tchildren: PropTypes.element.isRequired,\n\ttoggleCollapse: PropTypes.bool\n};\n\nCollapse.defaultProps = {\n\ttoggleCollapse: false\n};\n\nexport default Collapse;\n","const __WEBPACK_NAMESPACE_OBJECT__ = HTMLReactParser;","const e=(e,t)=>{if(\"string\"!=typeof e||0===e.length)throw new Error(`${t} must be a non-zero length string. Got: ${e}.`)},t=(t,i,n)=>{e(t,\"Widget name\"),e(i,\"Widget id\");const o=\"undefined\"!=typeof window;if(o){const{DDC:e={}}=window,o={action:\"clicked\",element:void 0,elementCTA:void 0,event:\"widgetUserEvent\",fieldValue:void 0,formEventId:void 0,formId:void 0,nonInteractive:!1,result:void 0,sourceData:void 0,value:void 0,widgetId:i,widgetName:t,widgetState:\"default\"};return e.fireTrackingEvent&&e.fireTrackingEvent({...o,...n}),!!e.fireTrackingEvent}return o};export{t as trackEvent};\n//# sourceMappingURL=es.js.map\n","import { trackEvent } from 'ddc-track-event';\n\nexport const TRACKING_CONFIG = {\n\tmmOpenedResult: 'Mega Menu Opened',\n\tgetNavigatedResult: (url) => `Navigated to ${url}`,\n\tgetFooterEl: (itemText) => `Sitewide Footer Click - ${itemText}`,\n\tgetHeaderEl: (itemText) => `Sitewide Header Click - ${itemText}`\n};\n\n/**\n * Create the navigation link clicked tracking event based on where it took place (header or footer)\n * and whether it resulted in a page navigation or opening a Mega Menu\n * @param {*} widgetName\n * @param {*} windowId\n * @param {*} belongsToFooter\n * @param {*} belongsToMainHeader\n * @param {*} linkText\n * @param {*} url\n * @param {*} isOpeningMegaMenu\n */\nexport const navLinkClicked = (\n\twidgetName,\n\twindowId,\n\tbelongsToFooter,\n\tbelongsToMainHeader,\n\tlinkText,\n\turl = '',\n\tisOpeningMegaMenu\n) => {\n\tif (!(belongsToFooter || belongsToMainHeader)) {\n\t\treturn;\n\t}\n\n\tconst element = belongsToFooter\n\t\t? TRACKING_CONFIG.getFooterEl(linkText)\n\t\t: TRACKING_CONFIG.getHeaderEl(linkText);\n\n\tlet result = TRACKING_CONFIG.getNavigatedResult(url);\n\tif (isOpeningMegaMenu) {\n\t\tresult = TRACKING_CONFIG.mmOpenedResult;\n\t}\n\n\ttrackEvent(widgetName, windowId, {\n\t\taction: 'clicked',\n\t\telement,\n\t\tresult\n\t});\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\nimport { useRequestData, usePrefs } from 'ws-scripts/modules/common';\nimport { navLinkClicked } from '../utils/tracking';\n\nconst NavLink = ({\n\tadditionalAttrs,\n\tchildren,\n\tclasses,\n\ttarget,\n\ttopLevelNavIndex,\n\turl\n}) => {\n\tconst { widgetName, windowId } = useRequestData();\n\tconst { enableMegaMenus, 'navigation.id': navId } = usePrefs();\n\tconst linkAttrs = { ...additionalAttrs };\n\tconst belongsToFooter =\n\t\tnavId.toLowerCase().includes('footer') ||\n\t\twindowId === 'template-navigation2';\n\tconst belongsToMainHeader = windowId === 'template-navigation1';\n\n\tif (url) linkAttrs.href = url.replaceAll(/\\s/g, '');\n\tif (classes) linkAttrs.className = classes;\n\tif (target) linkAttrs.target = target;\n\n\tlinkAttrs['data-navigation-id'] = 'default';\n\tconst openMenus = useSelector((state) => state.menu.openMenus);\n\tconst isOpen = openMenus?.includes(topLevelNavIndex);\n\n\tconst handleTrackingOnClick = (e) => {\n\t\tconst linkText = e.target.textContent || e.target.ariaLabel;\n\t\tconst isMegaMenuOpening =\n\t\t\te.target.hasAttribute('data-toggle') && enableMegaMenus && !isOpen;\n\t\tnavLinkClicked(\n\t\t\twidgetName,\n\t\t\twindowId,\n\t\t\tbelongsToFooter,\n\t\t\tbelongsToMainHeader,\n\t\t\tlinkText,\n\t\t\te.target.href,\n\t\t\tisMegaMenuOpening\n\t\t);\n\t};\n\n\tif (linkAttrs.onClick) {\n\t\tconst handlerFromProps = linkAttrs.onClick;\n\t\tlinkAttrs.onClick = (e) => {\n\t\t\thandlerFromProps(e);\n\t\t\thandleTrackingOnClick(e);\n\t\t};\n\t} else {\n\t\tlinkAttrs.onClick = handleTrackingOnClick;\n\t}\n\n\treturn {children};\n};\n\nNavLink.propTypes = {\n\tadditionalAttrs: PropTypes.oneOfType([PropTypes.object]),\n\tchildren: PropTypes.string.isRequired,\n\tclasses: PropTypes.string,\n\tid: PropTypes.string.isRequired,\n\tlabel: PropTypes.string.isRequired,\n\ttarget: PropTypes.string.isRequired,\n\ttopLevelNavIndex: PropTypes.number,\n\turl: PropTypes.string.isRequired\n};\n\nexport default NavLink;\n","import React, { useEffect } from 'react';\nimport { useSelector } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport NavLink from './NavLink';\n\n// Works for DropdownItem and MegaMenu components\nconst MenuLink = ({\n\tchildListLinkClasses = '',\n\tchildren, // \n\tlinkAttrs = {},\n\touterAttrs = {},\n\touterClasses = '',\n\tsetIsNavLink = () => {},\n\ttarget = '',\n\turl = ''\n}) => {\n\tuseEffect(() => {\n\t\tsetIsNavLink(true);\n\t});\n\n\tconst currentPath = useSelector((state) => state.currentPage?.currentPath);\n\tconst isCurrentPage = Boolean(url === currentPath);\n\tconst listItemAttrs = { ...outerAttrs };\n\tif (isCurrentPage) {\n\t\tlistItemAttrs['aria-current'] = 'page';\n\t}\n\tlistItemAttrs.className = isCurrentPage\n\t\t? `${outerClasses} currentPage`\n\t\t: outerClasses;\n\n\treturn (\n\t\t
  • \n\t\t\t\n\t\t\t\t{children}\n\t\t\t\n\t\t
  • \n\t);\n};\n\nMenuLink.propTypes = {\n\tchildListLinkClasses: PropTypes.string.isRequired,\n\tchildren: PropTypes.string.isRequired,\n\tid: PropTypes.string.isRequired,\n\tisCurrentPage: PropTypes.bool.isRequired,\n\tlabel: PropTypes.string.isRequired,\n\tlinkAttrs: PropTypes.oneOfType([PropTypes.object]),\n\touterAttrs: PropTypes.oneOfType([PropTypes.object]),\n\touterClasses: PropTypes.string.isRequired,\n\tselected: PropTypes.bool,\n\tsetIsNavLink: PropTypes.func,\n\ttarget: PropTypes.string.isRequired,\n\turl: PropTypes.string.isRequired\n};\n\nexport default MenuLink;\n","import React from 'react';\nimport { usePrefs } from 'wsm-common-data';\nimport Parser from 'html-react-parser';\n\nconst NavIcon = ({ label }) => {\n\tconst { childListIconStyle, showChildIcons, childListIconPosition } =\n\t\tusePrefs();\n\n\tconst positionClasses = {\n\t\tbefore: 'mr-2',\n\t\tafter: 'ml-2'\n\t};\n\n\tconst labelValue = Parser(label || '');\n\n\tconst dropdownIconClasses = [\n\t\t'ddc-icon',\n\t\t`ddc-icon-${childListIconStyle}`,\n\t\t'ddc-nav-icon',\n\t\tpositionClasses[childListIconPosition]\n\t].join(' ');\n\n\tconst getInnerContent = () => {\n\t\tif (showChildIcons === 'true') {\n\t\t\tif (childListIconPosition === 'before') {\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t\n\t\t\t\t\t\t{labelValue}\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t} else if (childListIconPosition === 'after') {\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{labelValue}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn labelValue;\n\t};\n\n\treturn getInnerContent();\n};\n\nexport default NavIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { usePrefs } from 'wsm-common-data';\nimport MenuLink from './MenuLink';\nimport NavIcon from './NavIcon';\n\nconst DropdownItem = ({ url, target, label, enabled }) => {\n\tconst { childListLinkClasses } = usePrefs();\n\n\tif (!enabled) return <>;\n\n\tconst classes = `child ${childListLinkClasses}`;\n\tconst additionalAttrs = { 'data-navigation-id': 'default' };\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\nDropdownItem.propTypes = {\n\turl: PropTypes.string.isRequired,\n\ttarget: PropTypes.string.isRequired,\n\tenabled: PropTypes.bool.isRequired,\n\tlabel: PropTypes.string.isRequired\n};\n\nexport default DropdownItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\nimport { usePrefs } from 'wsm-common-data';\nimport DropdownItem from './DropdownItem';\n\nconst DropdownMenu = ({ subnavItems }) => {\n\tconst { subnavClasses } = usePrefs();\n\tconst navsV2 = useSelector((state) => state.widgetData.navsV2);\n\n\tconst getDropdownMenuClassesAndAttributes = () => {\n\t\tconst attrToReturn = {};\n\t\tconst blankSubNavClasses = subnavClasses.toLowerCase() === 'blank';\n\t\tattrToReturn.className = blankSubNavClasses ? '' : subnavClasses;\n\n\t\t// this replicates a known cms-web bug on line 245 of htdocs/v9/widgets/navigation/default/v1/widget.vm\n\t\t// where dropdown-menu is only set if subNavClaseses are not present\n\t\t// navsV2 is currently managed by a feature flag and relates to whether or not a variation is version 9.2 or 9.3\n\t\t// set here: cms-web/blob/master/htdocs/v9/variations/version-config.xml\n\t\tif (navsV2 && !blankSubNavClasses) {\n\t\t\tattrToReturn.className =\n\t\t\t\tattrToReturn.className.concat(' dropdown-menu');\n\t\t}\n\n\t\treturn attrToReturn;\n\t};\n\n\tconst dropdownMenuAttrs = getDropdownMenuClassesAndAttributes();\n\n\treturn (\n\t\t
      \n\t\t\t{subnavItems.map((item) => (\n\t\t\t\t\n\t\t\t))}\n\t\t
    \n\t);\n};\n\nDropdownMenu.propTypes = {\n\tsubnavItems: PropTypes.arrayOf({\n\t\tpageAlias: PropTypes.string,\n\t\ttarget: PropTypes.string\n\t}).isRequired\n};\n\nexport default DropdownMenu;\n","import { OPEN_MENU, CLOSE_MENU, CLOSE_ALL_MENUS } from './types';\n\nexport const openMenu = (menuItemId) => ({\n\ttype: OPEN_MENU,\n\tmenuItemId\n});\n\nexport const closeMenu = (menuItemId) => ({\n\ttype: CLOSE_MENU,\n\tmenuItemId\n});\n\nexport const closeAllMenus = () => ({\n\ttype: CLOSE_ALL_MENUS\n});\n","import React, { useRef } from 'react';\nimport { useSelector } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nconst NavFragment = ({\n\turl,\n\ttopMenuItemIndex,\n\tsetIsNavLink = () => {},\n\tfragmentId,\n\tfragmentUrl\n}) => {\n\tconst openMenus = useSelector((state) => state.menu.openMenus);\n\tconst isTopMenuItemOpen = openMenus?.includes(topMenuItemIndex);\n\tconst navFragmentRef = useRef(null);\n\tsetIsNavLink(false);\n\n\tconst classes = {\n\t\tajaxLoadingContainer: 'navigation-ajax-container',\n\t\tajaxLoadComplete: 'ajax-load-complete',\n\t\tddcIcon: 'ddc-icon',\n\t\tddcIconSize: 'ddc-icon-size-xlarge',\n\t\tddcIconGear: 'ddc-icon-specs-gear1',\n\t\thide: 'hide',\n\t\tloading: 'loading',\n\t\topen: 'open'\n\t};\n\n\tconst selectors = {\n\t\tddcContent: '.ddc-content',\n\t\tddcMegaMenuNav: '.ddc-mega-menu-nav.nav',\n\t\tajaxLoadComplete: '.ajax-load-complete',\n\t\tloading: '.loading'\n\t};\n\n\tconst events = { ajaxComplete: 'ddc-mega-menu-nav-ajax-load-complete' };\n\n\t// prevents unnecessary rendering of fragments\n\tif (\n\t\tisTopMenuItemOpen &&\n\t\ttypeof window.jQuery === 'function' &&\n\t\t!navFragmentRef.current.innerHTML\n\t) {\n\t\tconst ajaxTime = new Date().getTime();\n\t\t$(document).trigger('modulesRefresh', {\n\t\t\tmodules: { lazyImage: window.DDC.modules.lazyImage }\n\t\t});\n\n\t\t$(navFragmentRef.current).not(selectors.ajaxLoadComplete).before(`\n\t\t\t\t\t\n\t\t\t\t\t\t Loading...\n\t\t\t\t\t`);\n\n\t\t$(navFragmentRef.current)\n\t\t\t.html('')\n\t\t\t.removeClass(classes.hide)\n\t\t\t.load(url, function loadCallback() {\n\t\t\t\tconst thisLoad = $(this);\n\t\t\t\tconst totalTime = new Date().getTime() - ajaxTime;\n\t\t\t\tlet delayTime = null;\n\t\t\t\tdelayTime = totalTime > delayTime ? 0 : delayTime - totalTime;\n\n\t\t\t\tthisLoad.delay(delayTime).queue(function delayCallback() {\n\t\t\t\t\t$(this)\n\t\t\t\t\t\t.css('visibility', 'visible')\n\t\t\t\t\t\t.siblings(selectors.loading)\n\t\t\t\t\t\t.remove();\n\t\t\t\t\t$(document).trigger('modulesRefresh');\n\t\t\t\t});\n\t\t\t\tthisLoad\n\t\t\t\t\t.find(selectors.ddcContent)\n\t\t\t\t\t.first()\n\t\t\t\t\t.trigger(events.ajaxComplete);\n\t\t\t})\n\t\t\t.addClass(classes.ajaxLoadComplete);\n\t}\n\n\treturn (\n\t\t
  • \n\t\t\t\n\t\t
  • \n\t);\n};\n\nexport default NavFragment;\n\nNavFragment.propTypes = {\n\turl: PropTypes.string.isRequired,\n\ttopMenuItemIndex: PropTypes.number.isRequired,\n\tsetIsNavLink: PropTypes.func,\n\tfragmentId: PropTypes.string.isRequired,\n\tfragmentUrl: PropTypes.string.isRequired\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst MMColumnItem = ({ headerLabel, children }) => {\n\treturn (\n\t\t<>\n\t\t\t

    {headerLabel}

    \n\t\t\t{children}\n\t\t\n\t);\n};\n\nMMColumnItem.propTypes = {\n\theaderLabel: PropTypes.string.isRequired,\n\tchildren: PropTypes.node.isRequired\n};\n\nexport default MMColumnItem;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { usePrefs } from 'ws-scripts/modules/common';\nimport Parser from 'html-react-parser';\nimport NavFragment from './NavFragment';\nimport MenuLink from './MenuLink';\nimport MMColumnItem from './MMColumnItem';\nimport NavIcon from './NavIcon';\n\nconst MMColumnSection = ({ itemsData, topMenuItemIndex, headerLabel }) => {\n\tconst { childListLinkClasses } = usePrefs();\n\tconst [isNavLink, setIsNavLink] = useState(false);\n\tconst labelValue = Parser(headerLabel || '');\n\n\treturn (\n\t\t\n\t\t\t
      \n\t\t\t\t{itemsData.map((child, i) => {\n\t\t\t\t\tif (child?.embedded) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst childKey = `${child.label}-${topMenuItemIndex}-${i}`;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t})}\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nMMColumnSection.propTypes = {\n\ttopMenuItemIndex: PropTypes.number.isRequired,\n\theaderLabel: PropTypes.string.isRequired,\n\titemsData: PropTypes.oneOfType([PropTypes.array])\n};\n\nexport default MMColumnSection;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport MMColumnSection from './MMColumnSection';\nimport NavLink from './NavLink';\n\nconst MMColumn = ({ navigationItems, gridUnits, label, topMenuItemIndex }) => {\n\treturn (\n\t\t
  • \n\t\t\t{navigationItems?.map((parent, i) => {\n\t\t\t\tconst key = `${parent.label}-${topMenuItemIndex}-${i}`;\n\t\t\t\tif (parent.navigationItems.length === 0) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{parent.label}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t

    \n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t})}\n\t\t
  • \n\t);\n};\n\nMMColumn.propTypes = {\n\tnavigationItems: PropTypes.arrayOf.isRequired,\n\tgridUnits: PropTypes.number.isRequired,\n\tlabel: PropTypes.string.isRequired,\n\ttopMenuItemIndex: PropTypes.number.isRequired\n};\n\nexport default MMColumn;\n","/**\n *\n * @desc dispatches new event for consumption by ws-tracking. e.stopPropagation() prevents this but is required to preserve click functionality\n * @param {e} event\n * @returns {Event}\n *\n */\n\nexport const dispatchTrackingEvent = (e) => {\n\tconst event = new CustomEvent('ws-tracking-nav-event', {\n\t\tdetail: { event: e }\n\t});\n\tdocument.dispatchEvent(event);\n};\n","import React, { useEffect, useRef } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { usePrefs } from 'wsm-common-data';\nimport { isBrowser } from 'ws-scripts/modules/environment';\nimport { closeMenu, closeAllMenus } from '../actions/menu';\nimport MMColumn from './MMColumn';\nimport { dispatchTrackingEvent } from '../utils/dispatchTrackingEvent';\n\nconst MegaMenu = ({ index, columns }) => {\n\tconst dispatch = useDispatch();\n\tconst { dropdownDisplayType } = usePrefs();\n\n\tconst openMenus = useSelector((state) => state.menu.openMenus);\n\tconst itemKey = useSelector((state) => state.items[index].id);\n\tconst isOpen = openMenus?.includes(index);\n\tconst mMDropDownRef = useRef(null);\n\n\t// Click event listener to handle outside clicks\n\tuseEffect(() => {\n\t\tconst closeMenuAction = () => {\n\t\t\tdispatch(closeAllMenus());\n\t\t\t$('.navbar-nav li.dropdown')\n\t\t\t\t.eq(index)\n\t\t\t\t.trigger('hidden.bs.dropdown');\n\t\t};\n\n\t\tconst handleOutsideClick = (event) => {\n\t\t\tconst eTargetIsMenuItem = Array.from(\n\t\t\t\tevent.target.attributes\n\t\t\t).filter(\n\t\t\t\t(obj) =>\n\t\t\t\t\tobj.nodeValue.includes('nav-with-children') ||\n\t\t\t\t\tobj.nodeValue.includes('dropdown')\n\t\t\t);\n\t\t\tif (isOpen && !eTargetIsMenuItem.length) {\n\t\t\t\tcloseMenuAction();\n\t\t\t}\n\t\t};\n\n\t\tdocument.addEventListener('click', handleOutsideClick);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('click', handleOutsideClick);\n\t\t};\n\t}, [dispatch, index, isOpen]);\n\n\t// As a note - This function was added to prevent closing the MegaMenu when clicking it,\n\t// especifically when filling out a form within it. We were unable to locate where\n\t// this behavior is defined in the legacy widget/cms-web.This may cause issues for us in the future.\n\tconst handleClickWithinMenu = (e) => {\n\t\tconst parentWidget = e.target.closest('[data-widget-name]');\n\t\tconst parentWidgetName = parentWidget?.dataset?.widgetName;\n\n\t\tconst typeAttr = e.target?.attributes?.type?.value;\n\n\t\tif (\n\t\t\t(typeAttr !== 'submit' &&\n\t\t\t\tparentWidgetName !== 'ws-free-text-search') ||\n\t\t\tparentWidgetName.includes('contact-form')\n\t\t) {\n\t\t\tdispatchTrackingEvent(e);\n\t\t\te.stopPropagation();\n\t\t}\n\t};\n\n\tconst dropdownProps = {\n\t\tonClick: handleClickWithinMenu\n\t};\n\n\tif (dropdownDisplayType === 'hover') {\n\t\tdropdownProps.onMouseLeave = (e) => {\n\t\t\tif (e.target !== e.currentTarget) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdispatch(closeMenu(index));\n\t\t\t$('.navbar-nav li.dropdown').trigger('hidden.bs.dropdown');\n\t\t};\n\t}\n\n\tconst showBackground = () => {\n\t\tif (isBrowser && typeof window.jQuery === 'function') {\n\t\t\tif (isOpen && mMDropDownRef.current) {\n\t\t\t\t// We do this to prevent issues when there's more than one ws-navigation on the page\n\t\t\t\tconst parentWidget = mMDropDownRef.current.closest(\n\t\t\t\t\t'[data-widget-name=\"ws-navigation\"]'\n\t\t\t\t);\n\n\t\t\t\t$(parentWidget)\n\t\t\t\t\t.find('.navbar-nav li.dropdown')\n\t\t\t\t\t.eq(index)\n\t\t\t\t\t.trigger('show.bs.dropdown');\n\t\t\t}\n\t\t}\n\t};\n\n\tshowBackground();\n\n\treturn (\n\t\t\n\t\t\t{columns?.map((item, i) => {\n\t\t\t\tconst columnKey = `${itemKey}-${i}`;\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t})}\n\t\t\n\t);\n};\n\nMegaMenu.propTypes = {\n\tindex: PropTypes.string.isRequired,\n\tcolumns: PropTypes.arrayOf.isRequired\n};\n\nexport default MegaMenu;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useLabels, usePrefs } from 'ws-scripts/modules/common';\nimport { useFlags } from 'wsm-common-data';\nimport DropdownMenu from './DropdownMenu';\nimport MegaMenu from './MegaMenu';\nimport NavLink from './NavLink';\nimport { openMenu, closeAllMenus } from '../actions/menu';\nimport { setSelected } from '../utils/setSelected';\nimport { dispatchTrackingEvent } from '../utils/dispatchTrackingEvent';\n\nconst MenuItem = ({\n\tcolumns,\n\tindex,\n\tisSiteWideSearchNavItem,\n\tlabel,\n\tnumTopLevelItems,\n\tpageId,\n\tsearchPosition,\n\tsiteWidePositionFirst,\n\tsiteWidePositionLast,\n\tsubnavItems,\n\ttarget,\n\turl\n}) => {\n\tconst labels = useLabels();\n\tconst {\n\t\tallowTopLevelLinks,\n\t\tdropdownDisplayType,\n\t\tenableMegaMenus,\n\t\tenableSiteWideSearch,\n\t\thomeItemClasses,\n\t\tnavItemClasses,\n\t\tsearchButtonIconSize,\n\t\tsearchButtonLabel,\n\t\tsearchButtonStyle,\n\t\tshowDropdownIcon,\n\t\tshowIcons,\n\t\ttopLevelLinkClasses,\n\t\t'navigation.id': navId\n\t} = usePrefs();\n\n\tconst dispatch = useDispatch();\n\tconst flags = useFlags();\n\n\tconst navsV2 = useSelector((state) => state.widgetData.navsV2);\n\tconst openMenus = useSelector((state) => state.menu.openMenus);\n\tconst currentPath = useSelector((state) => state.currentPage?.currentPath);\n\n\t// TODO: use state to hold outer/inner nav-item classes and attributes\n\n\tconst homeIconClasses = ['ddc-icon', 'ddc-icon-home'].join(' ');\n\tconst searchIconClasses = ['ddc-icon', 'ddc-icon-search'].join(' ');\n\n\tconst isOpen = openMenus?.includes(index);\n\tconst siteWideSearchEnabled = enableSiteWideSearch !== 'disabled';\n\tconst isInventorySearch =\n\t\tpageId === 'INVENTORY_SEARCH_FREE_FORM_FRAGMENT' ||\n\t\turl === '/navigation-fragments/free-form-search.htm';\n\tconst footer = navId.toLowerCase().includes('footer');\n\n\tconst isCurrentPage = !subnavItems?.length\n\t\t? Boolean(url === currentPath)\n\t\t: false; // account for top level navItems with children but have href assigned\n\tconst isCurrentPageParent =\n\t\tisCurrentPage === false ? setSelected(subnavItems, currentPath) : false;\n\n\t// disallows simultaneous rendering of inventory search fragment and site-text-search\n\tif (siteWideSearchEnabled && isInventorySearch) {\n\t\treturn <>;\n\t}\n\n\t// disallow rendering of broken navigation links in footer,\n\t// or if nav-item is top level without children\n\tif (\n\t\t(footer || !subnavItems?.length) &&\n\t\t(url === '/404.htm' || url === '/404.html')\n\t) {\n\t\treturn <>;\n\t}\n\n\t// Helper function to resolve menu item classes, attributes, and other pertinent data to correctly render.\n\tconst getNavItemClassesAndAttributes = () => {\n\t\tconst allowInventorySearch =\n\t\t\tisInventorySearch && !siteWideSearchEnabled;\n\t\tlet menuItemHref = '#';\n\t\tconst homeNavItem = pageId === 'INDEX';\n\t\tconst innerMenuItemClasses = [];\n\t\tconst innerMenuAttributes = {};\n\t\tconst outerNavItemClasses = [\n\t\t\tnavItemClasses && navItemClasses !== 'blank' ? navItemClasses : ''\n\t\t];\n\n\t\t// home nav-item classing\n\t\tif (homeNavItem) {\n\t\t\touterNavItemClasses.push('home');\n\t\t\tinnerMenuItemClasses.push('homeLink');\n\n\t\t\tif (homeItemClasses.toLowerCase() !== 'blank') {\n\t\t\t\touterNavItemClasses.push(homeItemClasses);\n\t\t\t}\n\n\t\t\tif (showIcons === 'true') {\n\t\t\t\touterNavItemClasses.push('ddc-nav-icon-list-item');\n\t\t\t\tinnerMenuItemClasses.push('ddc-nav-icon-link');\n\t\t\t}\n\t\t}\n\n\t\t// inventory search fragment nav-item classing\n\t\tif (allowInventorySearch) {\n\t\t\touterNavItemClasses.push('search');\n\n\t\t\tif (showIcons === 'true') {\n\t\t\t\touterNavItemClasses.push('ddc-nav-icon-list-item');\n\t\t\t\tinnerMenuItemClasses.push('ddc-nav-icon-link');\n\t\t\t}\n\t\t}\n\n\t\t// nav-first/last nav-item classing\n\t\tif (\n\t\t\t// site-wide not enabled / is first nav-item\n\t\t\t(!siteWideSearchEnabled && index === 0) ||\n\t\t\t// site-wide enabled / site-wide item in last position / is first nav-item\n\t\t\t(siteWideSearchEnabled && siteWidePositionLast && index === 0) ||\n\t\t\t// site-wide enabled / is site-wide item in first position\n\t\t\t(siteWideSearchEnabled &&\n\t\t\t\tsiteWidePositionFirst &&\n\t\t\t\tisSiteWideSearchNavItem)\n\t\t) {\n\t\t\touterNavItemClasses.push('nav-first');\n\t\t}\n\n\t\tif (\n\t\t\t// site-wide not enabled / is last nav-item\n\t\t\t(!siteWideSearchEnabled && index === numTopLevelItems - 1) ||\n\t\t\t// site-wide enabled / site-wide item in first position / is last nav-item\n\t\t\t(siteWideSearchEnabled &&\n\t\t\t\tsiteWidePositionFirst &&\n\t\t\t\tindex === numTopLevelItems - 1) ||\n\t\t\t// site-wide enabled / is site-wide item in last position\n\t\t\t(siteWideSearchEnabled &&\n\t\t\t\tsiteWidePositionLast &&\n\t\t\t\tisSiteWideSearchNavItem)\n\t\t) {\n\t\t\touterNavItemClasses.push('nav-last');\n\t\t}\n\n\t\t// megamenu nav-item classing\n\t\tif (navsV2 || enableMegaMenus === 'true') {\n\t\t\touterNavItemClasses.push(\n\t\t\t\t`dropdown dropdown ${\n\t\t\t\t\tisOpen && !isSiteWideSearchNavItem ? 'open' : ''\n\t\t\t\t}`\n\t\t\t);\n\t\t} else {\n\t\t\touterNavItemClasses.push('nav-children dropdown');\n\t\t}\n\n\t\t// current page classing\n\t\tif (isCurrentPage) {\n\t\t\touterNavItemClasses.push('currentPage');\n\t\t}\n\n\t\tif (isCurrentPageParent) {\n\t\t\touterNavItemClasses.push('currentPageParent');\n\t\t}\n\n\t\t// fix urls\n\t\tif (\n\t\t\t!allowInventorySearch ||\n\t\t\t(!isSiteWideSearchNavItem &&\n\t\t\t\t(url !== '/404.htm' || url !== '/404.html'))\n\t\t) {\n\t\t\tmenuItemHref = url?.replaceAll(/\\s/g, '');\n\t\t}\n\n\t\t// site-wide search nav-item classing\n\t\tif (isSiteWideSearchNavItem) {\n\t\t\tconst searchLabel = labels.get(searchButtonLabel);\n\t\t\tconst searchTitle = labels.get('SEARCH_THE_WHOLE_SITE');\n\t\t\tinnerMenuAttributes['aria-label'] = labels.has(searchLabel)\n\t\t\t\t? searchLabel\n\t\t\t\t: searchButtonLabel;\n\t\t\tinnerMenuAttributes.title = searchTitle;\n\t\t\tinnerMenuAttributes.type = 'button';\n\t\t\t// data-testid for testing purposes\n\t\t\tinnerMenuAttributes['data-testid'] = `search-${searchPosition}`;\n\t\t\tinnerMenuItemClasses.push(\n\t\t\t\t`btn text-decoration-none btn-no-decoration btn-${searchButtonStyle}`\n\t\t\t);\n\t\t}\n\n\t\t// subnav-item classing\n\t\tif (!subnavItems?.length) {\n\t\t\touterNavItemClasses.push('nav-no-children');\n\t\t}\n\n\t\tif (subnavItems?.length) {\n\t\t\tinnerMenuAttributes['data-inactive'] = true;\n\n\t\t\tif (navsV2) {\n\t\t\t\tinnerMenuItemClasses.push('nav-with-children');\n\n\t\t\t\tif (allowTopLevelLinks === 'false') {\n\t\t\t\t\tinnerMenuAttributes['data-toggle'] = 'dropdown';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!homeNavItem) {\n\t\t\t\tinnerMenuAttributes['aria-expanded'] = isOpen;\n\t\t\t}\n\t\t}\n\n\t\t// add additional classes from preferences\n\t\tif (topLevelLinkClasses.toLowerCase() !== 'blank') {\n\t\t\tinnerMenuItemClasses.push(topLevelLinkClasses);\n\t\t}\n\n\t\treturn [\n\t\t\touterNavItemClasses.join(' ').trim().trimStart(),\n\t\t\tinnerMenuItemClasses.join(' ').trim().trimStart(),\n\t\t\tinnerMenuAttributes,\n\t\t\tmenuItemHref,\n\t\t\thomeNavItem,\n\t\t\tallowInventorySearch\n\t\t];\n\t};\n\n\tconst toggleDropdown = () => {\n\t\tdispatch(closeAllMenus());\n\n\t\tif (typeof window.jQuery === 'function') {\n\t\t\t$('.navbar-nav li.dropdown')\n\t\t\t\t.eq(index)\n\t\t\t\t.trigger('hidden.bs.dropdown');\n\t\t}\n\n\t\tif (!isOpen && subnavItems.length > 0) {\n\t\t\tdispatch(openMenu(index));\n\t\t}\n\t};\n\n\t// Helper function to return the content inside a menu item based on position of Icon.\n\tconst getMenuItemContent = (homeNavItem, allowInventorySearch) => {\n\t\tlet innerMenuContent = '';\n\t\tif (showIcons === 'true' && homeNavItem) {\n\t\t\tinnerMenuContent = (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t{label}\n\t\t\t\t\n\t\t\t);\n\t\t} else if (showIcons === 'true' && allowInventorySearch) {\n\t\t\tinnerMenuContent = (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t{label}\n\t\t\t\t\n\t\t\t);\n\t\t} else if (isSiteWideSearchNavItem) {\n\t\t\tinnerMenuContent = ;\n\t\t} else {\n\t\t\tinnerMenuContent = label;\n\t\t}\n\t\treturn innerMenuContent;\n\t};\n\n\t// This is a reconstruction of the $shouldRender check\n\tif (flags['enable-no-empty-link-nav-items'] === true) {\n\t\tif (!!subnavItems?.length === false && url === false) {\n\t\t\treturn <>;\n\t\t}\n\t}\n\n\tconst getMenuType = () => {\n\t\tif (subnavItems?.length) {\n\t\t\tif (enableMegaMenus === 'true') {\n\t\t\t\treturn ;\n\t\t\t} else {\n\t\t\t\treturn ;\n\t\t\t}\n\t\t}\n\t\treturn <>;\n\t};\n\n\tconst handleClick = (e) => {\n\t\t// As a note: This was added to prevent top-level nav-items from navigating out.\n\t\t// There is something in cms-web that also does this but we were unable\n\t\t// to locate the source and take advantage of it.\n\t\t// This may cause issues for us in the future.\n\t\tif (subnavItems?.length) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isSiteWideSearchNavItem) {\n\t\t\tconst event = new Event('ws-site-text-search-open-modal');\n\t\t\te.preventDefault();\n\t\t\tdocument.dispatchEvent(event);\n\t\t}\n\t};\n\n\tconst dropDownProps =\n\t\tdropdownDisplayType === 'hover'\n\t\t\t? {\n\t\t\t\t\tonMouseEnter: () => {\n\t\t\t\t\t\ttoggleDropdown();\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: {\n\t\t\t\t\tonClick: (e) => {\n\t\t\t\t\t\tdispatchTrackingEvent(e);\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\ttoggleDropdown();\n\t\t\t\t\t}\n\t\t\t };\n\n\tconst [\n\t\touterClasses,\n\t\tinnerClasses,\n\t\tinnerAttributes,\n\t\tmenuHref,\n\t\tisHome,\n\t\tisSearch\n\t] = getNavItemClassesAndAttributes();\n\n\tconst getLinkContent = () => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{getMenuItemContent(isHome, isSearch)}\n\t\t\t\t{!!subnavItems?.length && showDropdownIcon === 'true' && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t};\n\n\tconst children = getLinkContent();\n\n\tconst innerAttrs = { ...innerAttributes };\n\tinnerAttrs.onClick = handleClick;\n\n\tconst outerElAttrs = enableMegaMenus === 'true' ? dropDownProps : () => {};\n\t// managing NMM events at a widget level interferes with cms-web inheritance\n\n\tif (isCurrentPageParent) {\n\t\touterElAttrs['aria-current'] = 'page';\n\t}\n\n\touterElAttrs.className = isCurrentPageParent\n\t\t? `${outerClasses} currentPageParent`\n\t\t: outerClasses;\n\n\treturn (\n\t\t
  • \n\t\t\t\n\t\t\t\t{children}\n\t\t\t\n\t\t\t{getMenuType()}\n\t\t
  • \n\t);\n};\n\nMenuItem.propTypes = {\n\tcolumns: PropTypes.arrayOf.isRequired,\n\tindex: PropTypes.string.isRequired,\n\tisSiteWideSearchNavItem: PropTypes.bool.isRequired,\n\tlabel: PropTypes.string.isRequired,\n\tnumTopLevelItems: PropTypes.string.isRequired,\n\tpageId: PropTypes.string.isRequired,\n\tsearchPosition: PropTypes.string.isRequired,\n\tsiteWidePositionFirst: PropTypes.bool.isRequired,\n\tsiteWidePositionLast: PropTypes.bool.isRequired,\n\tsubnavItems: PropTypes.objectOf({\n\t\tid: PropTypes.string.isRequired,\n\t\turl: PropTypes.string.isRequired,\n\t\tlabel: PropTypes.string.isRequired,\n\t\tnavigationItems: PropTypes.array.isRequired\n\t}),\n\ttarget: PropTypes.string.isRequired,\n\turl: PropTypes.string.isRequired\n};\n\nexport default MenuItem;\n","/**\n *\n * @desc Compares current path with the url of each navigation item to set 'currentPageParent' styles in \n * @param {Array} items\n * @returns {Boolean}\n *\n */\n\nexport const setSelected = (items = [], currentPath) => {\n\tif (!items.length || !currentPath) {\n\t\treturn false;\n\t}\n\n\tlet found = false;\n\titems.forEach((parentItem) => {\n\t\tif (parentItem.url === currentPath) {\n\t\t\tfound = true;\n\t\t} else {\n\t\t\tparentItem.navigationItems.forEach((childItem) => {\n\t\t\t\tif (childItem.url === currentPath) {\n\t\t\t\t\tfound = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn found;\n};\n","export const MENU_TYPE_MEGA_MENU = 'mega-menu';\n","import '../global-sass/main.scss';\nimport React, { useEffect, useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { usePrefs, useRequestData } from 'wsm-common-data';\nimport { isBrowser } from 'ws-scripts/modules/environment';\nimport Parser from 'html-react-parser';\nimport MenuItem from '../components/MenuItem';\nimport { getNavClasses } from '../utils/getNavClasses';\nimport { getNavAttributes } from '../utils/getNavAttributes';\nimport { MENU_TYPE_MEGA_MENU } from '../constants';\nimport { setUri } from '../actions/currentPage';\n\nconst Widget = () => {\n\tconst navItems = useSelector((state) => state.items);\n\tconst navsV2 = useSelector((state) => state.widgetData.navsV2);\n\tconst {\n\t\tdropdownDisplayType,\n\t\tenableMegaMenus,\n\t\tenableSiteWideSearch,\n\t\tenableTwoLineLabelling,\n\t\tnavClasses,\n\t\tnavListClasses,\n\t\twidgetClasses,\n\t\tshowFooterLinksIcons,\n\t\tshowCurtain,\n\t\tsticky,\n\t\t'navigation.id': navId\n\t} = usePrefs();\n\n\tif (typeof window !== 'undefined') {\n\t\twindow.DDC = window.DDC || {};\n\t\twindow.DDC.EventFired = window.DDC.EventFired || {};\n\t}\n\n\tconst dispatch = useDispatch();\n\tconst siteWidePositionFirst = enableSiteWideSearch === 'first';\n\tconst siteWidePositionLast = enableSiteWideSearch === 'last';\n\tconst { composer } = useRequestData();\n\tconst [isSiteTextSearch, setIsSiteTextSearch] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (typeof window !== 'undefined') {\n\t\t\tconst { pathname } = window?.location;\n\t\t\tdispatch(setUri(pathname));\n\t\t}\n\t}, [dispatch]);\n\n\tuseEffect(() => {\n\t\tlet count = 0;\n\t\tconst checkForWsSiteTextSearch = () => {\n\t\t\tcount += 1;\n\t\t\tif (window?.DDC?.EventFired['ws-sts-navigation-registered']) {\n\t\t\t\tsetIsSiteTextSearch(true);\n\t\t\t} else if (count < 15) {\n\t\t\t\tsetTimeout(checkForWsSiteTextSearch, 100);\n\t\t\t}\n\t\t};\n\t\tcheckForWsSiteTextSearch();\n\t}, []);\n\n\t// matchHeight() must fire once, as early as possible\n\tuseEffect(() => {\n\t\tfunction matchHeight(init) {\n\t\t\t$('.dropdown.dropdown').each(function matchingHeightCallback() {\n\t\t\t\tconst $menuPanel = $(this);\n\n\t\t\t\tif ($menuPanel.hasClass('open') || init) {\n\t\t\t\t\tconst $item = $menuPanel.find('.dropdown-menu');\n\t\t\t\t\t$item.css({ maxHeight: '70vh', overflowY: 'auto' });\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (\n\t\t\tenableMegaMenus === 'true' &&\n\t\t\tisBrowser &&\n\t\t\ttypeof window.jQuery === 'function'\n\t\t) {\n\t\t\tmatchHeight(true);\n\t\t}\n\t});\n\n\t// helper-function that returns all classes and attributes needed for megamenu and non-mega-menu\n\t// TODO: need a way to access the WIAPI data location and add that as an attribute$ !wiapi.dataLocation($menuHref).toAttributeStr()\n\tconst getNavClassesAndAttr = () => {\n\t\tconst menuType =\n\t\t\tenableMegaMenus === 'true' ? MENU_TYPE_MEGA_MENU : 'default';\n\n\t\tconst classesToReturn = getNavClasses(menuType, {\n\t\t\twidgetClasses,\n\t\t\tsticky,\n\t\t\tenableTwoLineLabelling,\n\t\t\tnavListClasses,\n\t\t\tnavsV2,\n\t\t\tnavItems\n\t\t});\n\n\t\tconst attributesToReturn = getNavAttributes(menuType, {\n\t\t\tdropdownDisplayType,\n\t\t\tcomposer,\n\t\t\tnavId,\n\t\t\tshowCurtain\n\t\t});\n\n\t\treturn [classesToReturn.join(' '), attributesToReturn];\n\t};\n\n\t// universal attributes and classes for the nav (react-bootstrap turns this into a
      )\n\tconst [classes, attributes] = getNavClassesAndAttr();\n\n\t// render outer-nav component if the nav is a non-mega-menu\n\tconst MenuWrapper = (Component) => {\n\t\tif (enableMegaMenus === 'true') return Component;\n\n\t\tconst nonMMWrapperAttributes = {};\n\t\tconst nonMMWrapperClasses = `non-mega-menu ${\n\t\t\tnavClasses.toLowerCase() === 'blank' ? '' : `${navClasses}`\n\t\t}`;\n\n\t\tif (composer) {\n\t\t\tnonMMWrapperAttributes.navid = navId;\n\t\t}\n\n\t\tif (showFooterLinksIcons === 'true')\n\t\t\tnonMMWrapperAttributes['data-show-footer-links-icons'] = '';\n\n\t\treturn (\n\t\t\t\n\t\t);\n\t};\n\n\treturn MenuWrapper(\n\t\t
        \n\t\t\t{siteWidePositionFirst && isSiteTextSearch && (\n\t\t\t\t\n\t\t\t)}\n\t\t\t{navItems.length > 0 &&\n\t\t\t\tnavItems\n\t\t\t\t\t.filter((navItem) => navItem?.state !== 'disabled')\n\t\t\t\t\t.map((item, index) => {\n\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\tlayout,\n\t\t\t\t\t\t\tnavigationItems,\n\t\t\t\t\t\t\tpageId,\n\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\turl\n\t\t\t\t\t\t} = item;\n\t\t\t\t\t\tconst labelValue = Parser(label);\n\t\t\t\t\t\tconst menuItemKey = `${id}-${index}`;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t{siteWidePositionLast && isSiteTextSearch && (\n\t\t\t\t\n\t\t\t)}\n\t\t
      \n\t);\n};\n\nexport default Widget;\n","import { SET_URI } from './types';\n\nexport const setUri = (value) => {\n\treturn {\n\t\ttype: SET_URI,\n\t\tpayload: value\n\t};\n};\n","import { MENU_TYPE_MEGA_MENU } from '../constants';\n\n/**\n * @typedef { Object } NavClassesMetadataInput\n * @property { string? } widgetClasses\n * @property { string? } sticky\n * @property { string? } enableTwoLineLabelling\n * @property { any[]? } navItems\n * @property { boolean? } navsV2\n */\n\n/**\n * builds the className for how many items are visible in the navbar\n *\n * @param { number } navItemCount\n * @returns { string }\n */\nexport const getParentNavCount = (navItemsCount) => {\n\treturn `parent-nav-count-${navItemsCount} navbar-nav`;\n};\n\n/**\n * gets the classList for a mega menu navigation\n *\n * @param { NavClassesMetadataInput? } metadata\n * @returns { string[] }\n */\nexport const getMegaMenuClasses = (metadata = {}) => {\n\tconst {\n\t\tenableTwoLineLabelling,\n\t\tnavListClasses = 'BLANK',\n\t\tsticky,\n\t\twidgetClasses = 'BLANK'\n\t} = metadata;\n\n\tconst navClasses = [\n\t\t// conditionally add `navListClasses` if not blank\n\t\t...(navListClasses.toLowerCase() === 'blank' ? '' : [navListClasses]),\n\t\t// conditionally add `widgetClasses` if it is not blank\n\t\t...(widgetClasses.toLowerCase() === 'blank' ? [] : [widgetClasses]),\n\t\t'ddc-mega-menu-nav',\n\t\t'nav',\n\t\t'd-flex',\n\t\t'align-items-center'\n\t];\n\tif (sticky === 'true') navClasses.push('sticky-nav');\n\tif (enableTwoLineLabelling === 'true')\n\t\tnavClasses.push('enable-sublabelling');\n\n\treturn navClasses;\n};\n\n/**\n * * gets the default classList for a navigation\n *\n * @param { NavClassesMetadataInput? } metadata\n * @returns { string[] }\n */\nexport const getDefaultClasses = (metadata = {}) => {\n\tconst {\n\t\tnavItems = [],\n\t\tnavListClasses = 'BLANK',\n\t\tnavsV2 = false,\n\t\tsticky\n\t} = metadata;\n\n\tconst navClasses = [\n\t\t'nav-list',\n\t\t// conditionally add `navListClasses` if not blank\n\t\t...(navListClasses.toLowerCase() === 'blank' ? '' : [navListClasses])\n\t\t// `widgetClasses` are not added here as they are only used in MENU_TYPE_MEGA_MENU\n\t\t// Adding these free form classes produces unexpected inheritance issues and breakages in non mega menu\n\t];\n\tif (sticky === 'true') navClasses.push('sticky-nav');\n\tif (navsV2) navClasses.push('nav');\n\tif (navItems.length) navClasses.push(getParentNavCount(navItems.length));\n\treturn navClasses;\n};\n\n/**\n * builds the classList for a navigation based on menuType\n *\n * @param { string } menuType\n * @param { NavClassesMetadataInput } metadata\n * @returns { string[] }\n */\nexport const getNavClasses = (menuType, metadata) => {\n\tswitch (menuType) {\n\t\tcase MENU_TYPE_MEGA_MENU:\n\t\t\treturn getMegaMenuClasses(metadata);\n\t\tdefault:\n\t\t\treturn getDefaultClasses(metadata);\n\t}\n};\n","import { MENU_TYPE_MEGA_MENU } from '../constants';\n\n/**\n * @typedef { Object } NavAttrMetadataInput\n * @property { string? } dropdownDisplayType\n * @property { boolean? } composer\n *\n * @typedef { Object } NavAttributesResult\n * @property { string? } data-dropdown-display-type\n * @property { boolean? } composer\n * @property { string? } navId\n * @property { string? } showCurtain\n */\n\n/**\n * Gets the nav attributes for a mega menu navigation\n *\n * @param { NavAttrMetadataInput } metadata\n * @returns { NavAttributesResult }\n */\nexport const getMegaMenuAttrs = (metadata) => {\n\tconst {\n\t\tdropdownDisplayType = '',\n\t\tcomposer = false,\n\t\tnavId,\n\t\tshowCurtain = 'false'\n\t} = metadata;\n\n\tconst megaMenuAttrs = {};\n\tif (dropdownDisplayType !== '') {\n\t\tmegaMenuAttrs['data-dropdown-display-type'] = dropdownDisplayType;\n\t\tmegaMenuAttrs.role = 'list';\n\t}\n\tif (composer) megaMenuAttrs.navid = navId;\n\tif (showCurtain === 'false') megaMenuAttrs['disable-curtain'] = '';\n\treturn megaMenuAttrs;\n};\n\n/**\n * gets the default attributes for a navigation\n *\n * @returns { NavAttributesResult }\n */\nexport const getDefaultAttrs = () => {\n\tconst navAttributes = {\n\t\trole: 'list'\n\t};\n\treturn navAttributes;\n};\n\n/**\n * builds the attributes for a navigation based on menuType\n *\n * @param { string } menuType\n * @param { NavAttrMetadataInput } metadata\n * @returns { NavAttributesResult }\n */\nexport const getNavAttributes = (menuType, metadata) => {\n\tswitch (menuType) {\n\t\tcase MENU_TYPE_MEGA_MENU:\n\t\t\treturn getMegaMenuAttrs(metadata);\n\t\tdefault:\n\t\t\treturn getDefaultAttrs();\n\t}\n};\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { Provider } from 'react-redux';\nimport WidgetHeading from './WidgetHeading';\nimport Collapse from './Collapse';\n// NOTE: The eslint-disable-line is needed because this file won't lint\n// when it's in the ws-scripts repo because the file only exists in the\n// widget. It's safe because the entire application won't work if the\n// file wasn't really resolved. It would be really apparent quickly.\nimport Widget from '../../../containers/Widget'; // eslint-disable-line import/no-unresolved\n\nconst getWidgetClasses = (widgetClasses, widgetName, toggleCollapse) => {\n\tconst classes = ['ddc-content', widgetName];\n\tconst wrapperClasses = 'navigation-default';\n\n\tif (widgetClasses) {\n\t\tclasses.push(widgetClasses);\n\t}\n\n\tif (toggleCollapse) {\n\t\tclasses.push('collapse-container');\n\t}\n\n\tif (wrapperClasses) {\n\t\tclasses.push(wrapperClasses);\n\t}\n\n\treturn classes;\n};\n\nconst getIconClasses = (prefs, showIcon, toggleCollapse) => {\n\tconst iconClasses = [];\n\tconst {\n\t\twidgetHeading,\n\t\theadingIconClasses,\n\t\theadingIconSize,\n\t\theadingIconStyle\n\t} = prefs;\n\n\tif (widgetHeading && showIcon) {\n\t\ticonClasses.push('ddc-icon');\n\n\t\tif (!toggleCollapse) {\n\t\t\ticonClasses.push(`ddc-icon-${headingIconStyle}`);\n\t\t}\n\t\tif (headingIconSize) {\n\t\t\ticonClasses.push(`ddc-icon-size-${headingIconSize}`);\n\t\t}\n\t\tif (headingIconClasses) {\n\t\t\ticonClasses.push(headingIconClasses);\n\t\t}\n\t}\n\n\treturn iconClasses;\n};\n\nconst getHeadingClasses = (prefs, deviceType, toggleCollapse) => {\n\tconst classes = [];\n\tconst { headingSize, headingStyles, headingClasses } = prefs;\n\n\tclasses.push('widget-heading');\n\n\tif (deviceType === 'MOBILE') {\n\t\tclasses.push('ddc-heading');\n\t}\n\tif (headingClasses) {\n\t\tclasses.push(headingClasses);\n\t}\n\tif (headingSize) {\n\t\tclasses.push(headingSize);\n\t}\n\tif (headingStyles) {\n\t\tclasses.push(`ddc-heading-${headingStyles}`);\n\t}\n\tif (toggleCollapse) {\n\t\tclasses.push('collapse-heading');\n\t}\n\n\treturn classes;\n};\n\nconst WidgetWrapper = ({ outputWrapperDiv, store, widgetId, widgetName }) => {\n\tconst state = store.getState();\n\n\tconst prefs = state.prefs || {};\n\n\tconst toggleCollapse =\n\t\t(prefs.widgetHeading && prefs.toggleCollapse === 'true') || false;\n\n\tconst showIcon = prefs.headingIconStyle ? true : toggleCollapse;\n\n\tconst isBrowser = typeof window !== 'undefined';\n\n\tif (process.env.NODE_ENV === 'development' && isBrowser) {\n\t\t(async () => {\n\t\t\tconst axe = require('@axe-core/react');\n\t\t\tconst widget = document.querySelectorAll(\n\t\t\t\t`[data-widget-id=\"${widgetId}\"]`\n\t\t\t);\n\t\t\tawait axe(React, ReactDOM, 1000, undefined, widget);\n\t\t})();\n\t}\n\n\tconst wrapping = (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n\n\tif (outputWrapperDiv) {\n\t\tif (!widgetName) {\n\t\t\tthrow new Error(\n\t\t\t\t'widgetName is required if outputWrapperDiv is true.'\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{wrapping}\n\t\t\t\n\t\t);\n\t}\n\n\treturn wrapping;\n};\n\nWidgetWrapper.propTypes = {\n\toutputWrapperDiv: PropTypes.bool.isRequired,\n\tstore: PropTypes.shape({\n\t\tgetState: PropTypes.func.isRequired\n\t}).isRequired,\n\twidgetId: PropTypes.string.isRequired,\n\twidgetName: PropTypes.string\n};\n\nexport default WidgetWrapper;\n","const __WEBPACK_NAMESPACE_OBJECT__ = RTK;","export default [];\n","/*\n * WARNING: This file is owned by ws-scripts and can not be edited!\n *\n * NOTE: The eslint-disable-lines are needed because this file won't lint\n * when it's in the ws-scripts repo because those files only exist in the\n * widget. It's safe because the entire application won't work if those\n * weren't really resolved. It would be really apparent quickly.\n */\n\nimport {\n\tcombineReducers,\n\tconfigureStore as rtkConfigureStore\n} from '@reduxjs/toolkit';\nimport requestDataReducer from './reducers/request-data';\nimport prefsReducer from './reducers/prefs';\nimport labelsReducer from './reducers/labels';\nimport sitemapReducer from './reducers/sitemap';\nimport flagsReducer from './reducers/flags';\nimport customMiddleware from '../middleware'; // eslint-disable-line import/no-unresolved\n\nconst getReducers = () => {\n\tlet oldRootReducer = {};\n\tlet rootReducer = {};\n\tconst moduleDeps = [];\n\ttry {\n\t\toldRootReducer = require('../reducers').default; // eslint-disable-line import/no-unresolved\n\t\tmoduleDeps.push('../reducers');\n\t} catch (e) {\n\t\t// reducers does not exist in this widget\n\t}\n\ttry {\n\t\trootReducer = require('../features').default; // eslint-disable-line import/no-unresolved\n\t\tmoduleDeps.push('../features');\n\t} catch (e) {\n\t\t// features slices does not exist in this widget\n\t}\n\treturn [{ ...oldRootReducer, ...rootReducer }, moduleDeps];\n};\n\nconst providedReducers = {\n\trequestData: requestDataReducer,\n\tprefs: prefsReducer,\n\tlabels: labelsReducer,\n\tsitemap: sitemapReducer,\n\tflags: flagsReducer\n};\n\nconst isBrowser = typeof window !== 'undefined';\n\nif (process.env.NODE_ENV === 'development') {\n\tif (isBrowser) {\n\t\t// Note: This must be the last middleware in the chain so that it logs actions\n\t\t// instead of thunks or Promises.\n\n\t\t// Use an actionTransformer to get the widget name into the output since\n\t\t// we have multiple stores running on one page. It may seem like using\n\t\t// titleFormatter makes more sense for this purpose, but doing so loses the\n\t\t// readability improvement coloring added in 2.10.0 of redux-logger. As of\n\t\t// 3.0.6, there is no way to get colors without using the default title formatter.\n\t\t// With the below action transformer and default title formatter, we get:\n\t\t// action ws-example - MIDDLEWARE_TEST @ 17:47:41.612 (in 0.30 ms)\n\t\tconst actionTransformer = (action) => ({\n\t\t\t...action,\n\t\t\ttype: `ws-navigation - ${action.type}`\n\t\t});\n\n\t\tconst { createLogger } = require('redux-logger');\n\t\tconst logger = createLogger({ actionTransformer, duration: true });\n\t\tcustomMiddleware.push(logger);\n\t}\n}\n\nexport function configureStore(preloadedState) {\n\tconst [reducers, moduleDeps] = getReducers();\n\tconst store = rtkConfigureStore({\n\t\treducer: {\n\t\t\t...reducers,\n\t\t\t...providedReducers\n\t\t},\n\t\tmiddleware: (getDefaultMiddleware) =>\n\t\t\tgetDefaultMiddleware().concat(customMiddleware),\n\t\tpreloadedState\n\t});\n\n\tif (module.hot) {\n\t\t// 3rd arg callback errorHandler for module.hot.accept not functioning for resolution of uncaught error when directory is missing\n\t\t// instead, use above check for existence of reducers directories to determine which to provide to module depedencies array\n\t\tmodule.hot.accept(moduleDeps, () => {\n\t\t\tconst [reloadedReducers, _] = getReducers();\n\t\t\tstore.replaceReducer(\n\t\t\t\tcombineReducers({\n\t\t\t\t\t...reloadedReducers,\n\t\t\t\t\t...providedReducers\n\t\t\t\t})\n\t\t\t);\n\t\t});\n\t}\n\n\treturn store;\n}\n","export default function requestData(state = {}, action = null) {\n\tif (!action.error && action.payload) {\n\t\tswitch (action.type) {\n\t\t\tcase 'WS_SCRIPTS_SET_REQUEST_DATA':\n\t\t\t\treturn action.payload;\n\n\t\t\t// no default\n\t\t}\n\t}\n\n\treturn state;\n}\n","export default function prefs(state = {}, action = null) {\n\tif (!action.error && action.payload !== undefined) {\n\t\tswitch (action.type) {\n\t\t\tcase 'WS_SCRIPTS_SET_PREFS':\n\t\t\t\treturn action.payload;\n\n\t\t\t// no default\n\t\t}\n\t}\n\n\treturn state;\n}\n","export default function labels(state = {}, action = null) {\n\tif (!action.error && action.payload !== undefined) {\n\t\tswitch (action.type) {\n\t\t\tcase 'WS_SCRIPTS_ADD_LABELS':\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\t...action.payload\n\t\t\t\t};\n\n\t\t\t// no default\n\t\t}\n\t}\n\treturn state;\n}\n","export default function sitemap(state = {}, action = null) {\n\tif (!action.error && action.payload !== undefined) {\n\t\tswitch (action.type) {\n\t\t\tcase 'WS_SCRIPTS_ADD_SITEMAP':\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\t...action.payload\n\t\t\t\t};\n\n\t\t\t// no default\n\t\t}\n\t}\n\treturn state;\n}\n","export default function flags(state = {}, action = null) {\n\tif (!action.error && action.payload !== undefined) {\n\t\tswitch (action.type) {\n\t\t\tcase 'WS_SCRIPTS_SET_FEATURE_FLAGS':\n\t\t\t\treturn action.payload;\n\n\t\t\t// no default\n\t\t}\n\t}\n\n\treturn state;\n}\n","/*\n * WARNING: This file is owned by ws-scripts and can not be edited!\n *\n * This is the main entry point for our application when\n * executed in the browser. As such, it has some responsibilities:\n *\n * - Load server side rendered redux state\n * - Create the redux store with that state\n * - Kick off a React hydrate bound to the redux store\n *\n * We load our server side rendered state from an object\n * of the form:\n *\n *\twindow.DDC = {\n *\t\tWS: {\n *\t\t\tstate: {\n *\t\t\t\t\"ws-hours\": {\n *\t\t\t\t\t\"hours1\": {STATE}\n *\t\t\t\t\t\"hours2\": {STATE}\n *\t\t\t\t},\n *\t\t\t\t\"ws-quick-specs\": {\n *\t\t\t\t\t\"quick-specs1\": {STATE}\n *\t\t\t\t}\n *\t\t\t}\n *\t\t}\n *\t};\n *\n * In local development, the state will be a JSON object. When\n * loaded from CMS, it will be a string, since that reduces\n * serialization overhead but still avoids string concatenation.\n */\n\nimport { hydrate } from 'react-dom';\nimport WidgetWrapper from './components/layout/WidgetWrapper';\nimport { configureStore } from './store';\n\nconst getWidgetStatesByType = (widgetName) => {\n\tif (\n\t\t!window.DDC ||\n\t\t!window.DDC.WS ||\n\t\t!window.DDC.WS.state ||\n\t\t!window.DDC.WS.state[widgetName]\n\t) {\n\t\treturn {};\n\t}\n\n\treturn window.DDC.WS.state[widgetName];\n};\n\nconst getWidgetState = (widgetStates, widgetId) => {\n\tlet preloadedState = widgetStates[widgetId];\n\n\tif (typeof preloadedState === 'string') {\n\t\tpreloadedState = JSON.parse(preloadedState);\n\t}\n\n\treturn preloadedState;\n};\n\nconst widgetIdToStore = {};\n\nconst initializeWidgets = () => {\n\tconst widgetStates = getWidgetStatesByType('ws-navigation');\n\tconst widgetIds = Object.keys(widgetStates);\n\n\twidgetIds.forEach((widgetId) => {\n\t\tconst store = configureStore(getWidgetState(widgetStates, widgetId));\n\t\twidgetIdToStore[widgetId] = store;\n\n\t\t// When the widget is initially rendered server-side, render.jsx passes outputWrapperDiv\n\t\t// to render the widget wrapper div. Here, when hydrating, we pass outputWrapperDiv=false.\n\t\t// This is because hydrate takes a DOM element to hydrate into. We can't wrap the widget\n\t\t// in an extra div to target because there is a lot of styling in our system that\n\t\t// breaks. So, instead, we have to target the widget wrapper div and hydrate the\n\t\t// components inside of it.\n\t\thydrate(\n\t\t\t,\n\t\t\tdocument.getElementById(`${widgetId}-app-root`)\n\t\t);\n\n\t\t// We've initialized. We don't need to keep this data around anymore.\n\t\t// Deleting it ensures that we don't accidentally reinitialize later.\n\t\tdelete widgetStates[widgetId];\n\t});\n};\n\ninitializeWidgets();\n"],"names":["module","exports","require","SET_ITEMS","SET_NAVSV2","SET_FRANCHISELIST","OPEN_MENU","CLOSE_MENU","CLOSE_ALL_MENUS","SET_ACCOUNT_ID","SET_URI","initialState","openMenus","items","state","arguments","length","undefined","action","error","payload","type","widgetData","navsV2","franchiseList","accountId","menu","menuItemId","filter","id","currentPage","currentPath","isNode","isBrowser","enforceServerSide","Error","DDC","WsmCommonData","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","ReactDOM","React","ReactRedux","WidgetHeading","constructor","props","super","this","renderDelegate","bind","_ref","labels","HeadingTag","headingText","widgetId","toggleCollapse","showIcon","headingClasses","iconClasses","allIconClasses","collapseAttributes","iconExpand","push","role","_extends","className","join","getHTML","render","toUpperCase","Common","defaultProps","Collapse","children","HTMLReactParser","e","t","TRACKING_CONFIG","url","itemText","navLinkClicked","widgetName","windowId","belongsToFooter","belongsToMainHeader","linkText","isOpeningMegaMenu","element","result","i","window","elementCTA","event","fieldValue","formEventId","formId","nonInteractive","sourceData","value","widgetState","fireTrackingEvent","trackEvent","additionalAttrs","classes","target","topLevelNavIndex","useRequestData","enableMegaMenus","navId","usePrefs","linkAttrs","toLowerCase","includes","href","replaceAll","useSelector","isOpen","handleTrackingOnClick","textContent","ariaLabel","isMegaMenuOpening","hasAttribute","onClick","handlerFromProps","childListLinkClasses","outerAttrs","outerClasses","setIsNavLink","useEffect","_state$currentPage","isCurrentPage","Boolean","listItemAttrs","NavLink","label","childListIconStyle","showChildIcons","childListIconPosition","labelValue","Parser","dropdownIconClasses","before","after","getInnerContent","enabled","MenuLink","NavIcon","subnavItems","subnavClasses","dropdownMenuAttrs","getDropdownMenuClassesAndAttributes","attrToReturn","blankSubNavClasses","concat","map","item","DropdownItem","urlAlias","closeAllMenus","topMenuItemIndex","fragmentId","fragmentUrl","isTopMenuItemOpen","navFragmentRef","useRef","selectors","events","jQuery","current","innerHTML","ajaxTime","Date","getTime","$","document","trigger","modules","lazyImage","not","html","removeClass","load","thisLoad","totalTime","delayTime","delay","queue","css","siblings","remove","find","first","addClass","ref","headerLabel","itemsData","isNavLink","useState","MMColumnItem","child","embedded","NavFragment","childKey","navigationItems","gridUnits","parent","MMColumnSection","dispatchTrackingEvent","CustomEvent","detail","dispatchEvent","index","columns","dispatch","useDispatch","dropdownDisplayType","itemKey","mMDropDownRef","handleOutsideClick","eTargetIsMenuItem","Array","from","attributes","nodeValue","eq","addEventListener","removeEventListener","dropdownProps","_parentWidget$dataset","_e$target","_e$target$attributes","_e$target$attributes$","parentWidget","closest","parentWidgetName","dataset","stopPropagation","onMouseLeave","currentTarget","showBackground","_item$navigationItems","columnKey","MMColumn","isSiteWideSearchNavItem","numTopLevelItems","pageId","searchPosition","siteWidePositionFirst","siteWidePositionLast","useLabels","allowTopLevelLinks","enableSiteWideSearch","homeItemClasses","navItemClasses","searchButtonIconSize","searchButtonLabel","searchButtonStyle","showDropdownIcon","showIcons","topLevelLinkClasses","flags","useFlags","homeIconClasses","searchIconClasses","siteWideSearchEnabled","isInventorySearch","footer","isCurrentPageParent","found","forEach","parentItem","childItem","setSelected","toggleDropdown","dropDownProps","onMouseEnter","innerClasses","innerAttributes","menuHref","isHome","isSearch","getNavItemClassesAndAttributes","allowInventorySearch","menuItemHref","homeNavItem","innerMenuItemClasses","innerMenuAttributes","outerNavItemClasses","searchLabel","searchTitle","has","title","trim","trimStart","getMenuItemContent","innerMenuContent","innerAttrs","preventDefault","Event","outerElAttrs","MegaMenu","DropdownMenu","MENU_TYPE_MEGA_MENU","Widget","navItems","enableTwoLineLabelling","navClasses","navListClasses","widgetClasses","showFooterLinksIcons","showCurtain","sticky","EventFired","composer","isSiteTextSearch","setIsSiteTextSearch","_window","pathname","location","count","checkForWsSiteTextSearch","_window2","_window2$DDC","setTimeout","init","each","$menuPanel","hasClass","maxHeight","overflowY","getNavClassesAndAttr","menuType","classesToReturn","getNavClasses","metadata","getMegaMenuClasses","getDefaultClasses","attributesToReturn","getNavAttributes","megaMenuAttrs","navid","getMegaMenuAttrs","Component","nonMMWrapperAttributes","nonMMWrapperClasses","MenuWrapper","MenuItem","navItem","layout","menuItemKey","getWidgetClasses","wrapperClasses","getIconClasses","prefs","widgetHeading","headingIconClasses","headingIconSize","headingIconStyle","getHeadingClasses","deviceType","headingSize","headingStyles","outputWrapperDiv","store","getState","wrapping","Provider","headingTag","requestData","RTK","providedReducers","sitemap","configureStore","preloadedState","reducers","moduleDeps","getReducers","oldRootReducer","rootReducer","rtkConfigureStore","reducer","middleware","getDefaultMiddleware","customMiddleware","widgetIdToStore","initializeWidgets","widgetStates","WS","keys","getWidgetState","JSON","parse","hydrate","createElement","WidgetWrapper","getElementById"],"sourceRoot":""}