{"version":3,"sources":["webpack:///../node_modules/object.omit/index.js","webpack:///../node_modules/object.omit/node_modules/is-extendable/index.js","webpack:///../node_modules/is-plain-object/index.js","webpack:///../node_modules/isobject/index.js","webpack:///../node_modules/@ux/bookends/dist/es/_rollupPluginBabelHelpers-1b8c042f.js","webpack:///../node_modules/@ux/bookends/node_modules/@ux/tagmg/dist/es/tagmg.js","webpack:///../node_modules/react-hover-observer/dist/es/utils/noop.js","webpack:///../node_modules/react-hover-observer/dist/es/ReactHoverObserver.js","webpack:///../node_modules/@ux/bookends/node_modules/@ux/illustrations/dist/es/illustrations.js","webpack:///../node_modules/@ux/bookends/dist/es/index-bfbd1869.js"],"names":["isObject","module","exports","obj","props","fn","isFunction","keys","Object","res","i","length","key","val","indexOf","isPlainObject","Array","isArray","isObjectObject","o","prototype","toString","call","ctor","prot","constructor","hasOwnProperty","_extends","assign","target","arguments","source","apply","this","SENSITIVE_KEYS","_defineProperty","value","defineProperty","enumerable","configurable","writable","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","_objectSpread2","forEach","getOwnPropertyDescriptors","defineProperties","_toConsumableArray","arr","_arrayLikeToArray","_arrayWithoutHoles","iter","Symbol","iterator","from","_iterableToArray","minLen","n","slice","name","test","_unsupportedIterableToArray","TypeError","_nonIterableSpread","len","arr2","dispatchFB","window","createQueue","evt","data","fbq","_fbq$instance$pixelsB","_fbq$instance","instance","pixelsByID","loaded","createTest$1","getUtag","utag","setUtagData","utag_data","createTest$2","link","view","useGAEvent","_composite","link$1","view$1","dispatch$1","_ref2","ga","_len","_key","concat","getAll","map","x","get","some","createTest","dispatch","dispatchFB$1","dispatchGAEvent$1","bind","dispatchGAEvent","dispatchFBEvent$1","dispatchFBEvent","dispatchEcommEvent$1","_len2","_key2","dispatchEcommEvent","ecommerce$1","events","gaParams","undefined","event","hitType","eventCategory","eventAction","ecommerce","mount$1","fetchScript","global","options","url","env","profile","account","buildUrl","environment","location","sensitiveKeys","mount","document","Promise","resolve","reject","body","querySelector","script","createElement","src","onload","onerror","type","async","appendChild","params","URLSearchParams","search","delete","query","history","replaceState","pathname","hash","filterSensitiveQueryParams","factory","composite","_createClass","descriptor","Constructor","protoProps","staticProps","_React$Component","_class","_classCallCheck","_this","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","state","isHovering","onMouseEnter","onMouseLeave","onMouseOver","onMouseOut","setIsHovering","unsetIsHovering","componentWillUnmount","timerIds","subClass","superClass","create","setPrototypeOf","_inherits","e","clearTimers","_this2","hoverScheduleId","setTimeout","newState","setState","onHoverChanged","hoverDelayInMs","_this3","hoverOffScheduleId","hoverOffDelayInMs","ids","clearTimeout","pop","reactElement","child","getIsReactComponent","shouldDecorateChildren","children","_this4","shouldDecorateChild","decorateChild","_props","className","childProps","renderChildrenWithProps","Component","displayName","defaultProps","noop","_ref","propTypes","string","number","func","bool","size","ownerProps","when","isNil","pipe","always","icon","ifElse","theme","spacing","createPaintbrushUrl$1","curryN","palette","prop","iconSet","default","root","maxWidth","height","width","position","display","remote","left","top","enhance","styles","alt","style","importance","loading","useMenuItemActiveIndex","links","origin","useOrigin","usePathname","fullPath","useFullPath","found","find","_link$submenu$items","_link$submenu","submenu","items","item","NavigationLink","colorway","isActive","hocus","typography","color","primaryContrast","grey02","borderColor","primary","fontFamily","backgroundColor","borderWidth","outline","textDecoration","alignItems","cursor","minHeight","X","paddingTop","paddingBottom","transition","activeLink","borderBottomColor","badge","paddingLeft","promo","isLink","label","promoLabel","externalRoutes","analyticsKey","onClick","exact","id","to","activeStyle","kind","HIGHLIGHT","flush","SubmenuLayout","content","A","textAlign","wordBreak","title","marginTop","illustration","useStylesheet","enhance$1","hasIllustration","xs","illustrationKey","SubmenuLink","opacity","marginRight","marginLeft","text","flex","highlightContrast","seoLink","secondary","stylesheet$1","enhance$2","seoNavClick","component","Fragment","role","Submenu","Boolean","divider","grey06","enhance$3","index","showDivider","NavigationDesktop","handleSubmenuClick","setOpenSubmenu","handleMenuHoverChanged","setMenuHovering","handleMenuItemHoverChanged","setMenuItemHovering","isMenuHovering","isSubmenuHovering","handleSubmenuHoverChanged","setSubmenuHovering","isMenuItemHovering","trackDropdownHover","openSubmenu","topmenu","justifyContent","overflow","nav","flexWrap","whiteSpace","right","zIndex","borderBottomWidth","borderBottomStyle","pointerEvents","submenuBase","submenuClosed","visibility","submenuOpen","stylesheet$2","navRef","el","current","hovered","enhance$4","menuItemActiveIndex","ReactHoverObserver","ref","_link$submenu2","ConnectedDesktop","track","eventLabel","enhance$5"],"mappings":"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","file":"pex-static/16/70.914eed216faf06c47cb1.chunk.js","sourcesContent":["/*!\n * object.omit \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = require('is-extendable');\n\nmodule.exports = function omit(obj, props, fn) {\n if (!isObject(obj)) return {};\n\n if (typeof props === 'function') {\n fn = props;\n props = [];\n }\n\n if (typeof props === 'string') {\n props = [props];\n }\n\n var isFunction = typeof fn === 'function';\n var keys = Object.keys(obj);\n var res = {};\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var val = obj[key];\n\n if (!props || (props.indexOf(key) === -1 && (!isFunction || fn(val, key, obj)))) {\n res[key] = val;\n }\n }\n return res;\n};\n","/*!\n * is-extendable \n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isPlainObject = require('is-plain-object');\n\nmodule.exports = function isExtendable(val) {\n return isPlainObject(val) || typeof val === 'function' || Array.isArray(val);\n};\n","/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = require('isobject');\n\nfunction isObjectObject(o) {\n return isObject(o) === true\n && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nmodule.exports = function isPlainObject(o) {\n var ctor,prot;\n\n if (isObjectObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (typeof ctor !== 'function') return false;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObjectObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n};\n","/*!\n * isobject \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n};\n","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nexport { _extends as _ };\n","import jpex from 'jpex';\nimport { createDelayedQueue } from '@ux/queue';\nimport { useCallback, useEffect } from 'react';\nimport { puree } from '@ux/pure-enhance';\nimport { withProps } from '@team-griffin/rehook';\nimport { useResolve } from 'react-jpex';\nimport { useLocation } from 'react-router';\n\nvar CDN = 'https://tags.tiqcdn.com/utag';\nvar SENSITIVE_KEYS = ['token', 'tokenId', 'kvp', 'payerId'];\n\n/* eslint-disable camelcase */\n\nvar buildUrl = function buildUrl(env, profile, account) {\n return \"\".concat(CDN, \"/\").concat(account, \"/\").concat(profile, \"/\").concat(env, \"/utag.js\");\n};\n\nvar mount = function mount(fetchScript, filter, global) {\n return function (options) {\n if (options.data) {\n global.utag_data = options.data;\n }\n\n var url = buildUrl(options.environment, options.profile, options.account);\n filter(global.location, options.sensitiveKeys);\n return fetchScript(url);\n };\n};\n\nvar filterSensitiveQueryParams = function filterSensitiveQueryParams(global) {\n return function (location, sensitiveKeys) {\n var params = new URLSearchParams(location.search);\n (sensitiveKeys || SENSITIVE_KEYS).forEach(function (key) {\n params.delete(key);\n });\n var query = params.toString();\n\n if (query) {\n query = \"?\".concat(query);\n }\n\n global.history.replaceState({}, '', \"\".concat(location.pathname).concat(query).concat(location.hash));\n };\n};\n\nvar fetchScript = function fetchScript(document) {\n return function (url) {\n return new Promise(function (resolve, reject) {\n var body = document.querySelector('body');\n var script = document.createElement('script');\n script.src = url;\n script.onload = resolve;\n script.onerror = reject;\n script.type = 'text/javascript';\n script.async = true;\n\n if (body != null) {\n body.appendChild(script);\n }\n });\n };\n};\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// checks whether GA is on the page and the tealium_0 agent is loaded\nvar createTest = function createTest(window) {\n return function () {\n var _ref = window,\n ga = _ref.ga;\n\n if (typeof ga !== 'function') {\n return false;\n }\n\n if (typeof ga.getAll !== 'function') {\n return false;\n }\n\n var names = ga.getAll().map(function (x) {\n return x.get('name');\n });\n return names.some(function (name) {\n return name === 'tealium_0';\n });\n };\n}; // This is the most basic way to send something through GA\n\n\nvar dispatch = function dispatch(window, createQueue) {\n var test = createTest(window);\n\n var action = function action(evt) {\n var _ref2 = window,\n ga = _ref2.ga;\n\n for (var _len = arguments.length, data = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n data[_key - 1] = arguments[_key];\n }\n\n ga.apply(void 0, [\"tealium_0.\".concat(evt)].concat(data));\n };\n\n return createQueue(action, test);\n}; // Sends analytics directly through GA\n\nvar dispatchGAEvent = function dispatchGAEvent(dispatch) {\n return dispatch.bind(null, 'send');\n}; // Sends ecommerce data directly through GA\n// note that you also need to dispatch a normal GA event in order to send\n// the ecommerce data\n\nvar dispatchEcommEvent = function dispatchEcommEvent(dispatch) {\n return function (evt) {\n for (var _len2 = arguments.length, data = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n data[_key2 - 1] = arguments[_key2];\n }\n\n return dispatch.apply(void 0, [\"ec:\".concat(evt)].concat(data));\n };\n}; // This method sends ecommerce data, but automatically dispatches the GA event which\n// carries the ecommerce data with it\n\nvar ecommerce = function ecommerce(dispatchEcommEvent, dispatchGAEvent) {\n return function (events) {\n var gaParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n events.forEach(function (event) {\n return dispatchEcommEvent.apply(void 0, _toConsumableArray(event));\n });\n dispatchGAEvent(_objectSpread2({\n hitType: 'event',\n eventCategory: 'Ecommerce',\n eventAction: 'send'\n }, gaParams));\n };\n};\n\n// checks whether Facebook pixel is on the page\nvar createTest$1 = function createTest(window) {\n return function () {\n var _fbq$instance$pixelsB, _fbq$instance;\n\n var _ref = window,\n fbq = _ref.fbq;\n\n if (typeof fbq !== 'function') {\n return false;\n }\n\n if (Object.keys((_fbq$instance$pixelsB = (_fbq$instance = fbq.instance) === null || _fbq$instance === void 0 ? void 0 : _fbq$instance.pixelsByID) != null ? _fbq$instance$pixelsB : {}).length === 0) {\n return false;\n }\n\n return fbq.loaded;\n };\n}; // This is the most basic way to send something through FB\n\n\nvar dispatchFB = function dispatchFB(window, createQueue) {\n var test = createTest$1(window);\n\n var action = function action(evt, data) {\n var _ref2 = window,\n fbq = _ref2.fbq;\n fbq('track', evt, data);\n };\n\n return createQueue(action, test);\n};\nvar dispatchFBEvent = function dispatchFBEvent(dispatch) {\n return function (evt, data) {\n return dispatch(evt, data);\n };\n};\n\n// @ts-ignore\nvar getUtag = function getUtag(window) {\n return window.utag;\n};\n\nvar setUtagData = function setUtagData(window, data) {\n // eslint-disable-next-line camelcase\n window.utag_data = data;\n}; // checks whether GA is on the page and the tealium_0 agent is loaded\n\n\nvar createTest$2 = function createTest(window) {\n return function () {\n // @ts-ignore\n var utag = getUtag(window);\n return utag != null && typeof utag.link === 'function' && typeof utag.view === 'function';\n };\n}; // Sends analytics via tealium\n\n\nvar link = function link(window, createQueue) {\n var test = createTest$2(window);\n\n var action = function action(data) {\n setUtagData(window, data);\n var utag = getUtag(window);\n utag.link(data);\n };\n\n return createQueue(action, test);\n}; // Send tealium a page view request\n\nvar view = function view(window, createQueue) {\n var test = createTest$2(window);\n\n var action = function action(data) {\n setUtagData(window, data);\n var utag = getUtag(window);\n utag.view(data);\n };\n\n return createQueue(action, test);\n};\n\nvar composite = (function () {\n var link$1 = link(window, createDelayedQueue);\n\n var view$1 = view(window, createDelayedQueue);\n\n var dispatch$1 = dispatch(window, createDelayedQueue);\n\n var dispatchFB$1 = dispatchFB(window, createDelayedQueue);\n\n var dispatchGAEvent$1 = dispatchGAEvent(dispatch$1);\n\n var dispatchFBEvent$1 = dispatchFBEvent(dispatchFB$1);\n\n var dispatchEcommEvent$1 = dispatchEcommEvent(dispatch$1);\n\n var ecommerce$1 = ecommerce(dispatchEcommEvent$1, dispatchGAEvent$1);\n\n var fetchScript$1 = fetchScript(document);\n\n var filterSensitiveQueryParams$1 = filterSensitiveQueryParams(window);\n\n var mount$1 = mount(fetchScript$1, filterSensitiveQueryParams$1, window); // these are the only two deps that are created by tagmg and also used by tagmg\n\n\n jpex.factory(\"type:@ux/tagmg/Link\", function () {\n return link$1;\n });\n jpex.factory(\"type:@ux/tagmg/DispatchGAEvent\", function () {\n return dispatchGAEvent$1;\n });\n return {\n dispatch: dispatch$1,\n dispatchFB: dispatchFB$1,\n dispatchGAEvent: dispatchGAEvent$1,\n dispatchEcommEvent: dispatchEcommEvent$1,\n dispatchFBEvent: dispatchFBEvent$1,\n ecommerce: ecommerce$1,\n link: link$1,\n mount: mount$1,\n view: view$1\n };\n});\n\nvar useTrackInteraction = function useTrackInteraction() {\n var dispatch = useResolve(\"type:@ux/tagmg/Link\", []);\n return function (arg) {\n dispatch(arg);\n };\n};\n\nvar trackInteraction = function trackInteraction(options) {\n var config = _objectSpread2({\n event: 'interaction',\n trigger: 'onClick'\n }, options);\n\n return puree('TrackInteraction')(withProps(function (props) {\n var original = props[config.trigger];\n var trackInteraction = useTrackInteraction();\n var handler = useCallback(function () {\n trackInteraction({\n event: config.event,\n source: config.source\n });\n\n if (typeof original === 'function') {\n original.apply(void 0, arguments);\n }\n }, [trackInteraction, original]);\n return _defineProperty({}, config.trigger, handler);\n }));\n};\n\nvar useGAEvent = function useGAEvent() {\n return useResolve(\"type:@ux/tagmg/DispatchGAEvent\", []);\n};\n\nvar usePageView = function usePageView() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$pageviewTest = _ref.pageviewTest,\n pageviewTest = _ref$pageviewTest === void 0 ? function () {\n return true;\n } : _ref$pageviewTest;\n\n var dispatch = useResolve(\"type:@ux/tagmg/DispatchGAEvent\", []);\n var location = useLocation();\n useEffect(function () {\n var shouldDispatch = pageviewTest(location);\n\n if (shouldDispatch) {\n dispatch({\n hitType: 'pageview',\n page: location.pathname\n });\n }\n }, [location.pathname]);\n};\n\nvar _composite = composite(),\n dispatch$1 = _composite.dispatch,\n dispatchGAEvent$1 = _composite.dispatchGAEvent,\n dispatchFBEvent$1 = _composite.dispatchFBEvent,\n dispatchEcommEvent$1 = _composite.dispatchEcommEvent,\n ecommerce$1 = _composite.ecommerce,\n link$1 = _composite.link,\n mount$1 = _composite.mount,\n view$1 = _composite.view;\n\nexport { dispatch$1 as dispatch, dispatchEcommEvent$1 as dispatchEcommEvent, dispatchFBEvent$1 as dispatchFBEvent, dispatchGAEvent$1 as dispatchGAEvent, ecommerce$1 as ecommerce, link$1 as link, mount$1 as mount, trackInteraction, useGAEvent, usePageView, view$1 as view };\n","export default (function () {});","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Children, cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport assign from 'object-assign';\nimport omit from 'object.omit';\n\nimport noop from './utils/noop';\n\nvar _class = function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).call(this, props));\n\n _this.state = {\n isHovering: false\n };\n\n _this.onMouseEnter = _this.onMouseEnter.bind(_this);\n _this.onMouseLeave = _this.onMouseLeave.bind(_this);\n _this.onMouseOver = _this.onMouseOver.bind(_this);\n _this.onMouseOut = _this.onMouseOut.bind(_this);\n _this.setIsHovering = _this.setIsHovering.bind(_this);\n _this.unsetIsHovering = _this.unsetIsHovering.bind(_this);\n _this.componentWillUnmount = _this.componentWillUnmount.bind(_this);\n\n _this.timerIds = [];\n return _this;\n }\n\n _createClass(_class, [{\n key: 'onMouseEnter',\n value: function onMouseEnter(e) {\n this.props.onMouseEnter({\n e: e,\n setIsHovering: this.setIsHovering,\n unsetIsHovering: this.unsetIsHovering\n });\n }\n }, {\n key: 'onMouseLeave',\n value: function onMouseLeave(e) {\n this.props.onMouseLeave({\n e: e,\n setIsHovering: this.setIsHovering,\n unsetIsHovering: this.unsetIsHovering\n });\n }\n }, {\n key: 'onMouseOver',\n value: function onMouseOver(e) {\n this.props.onMouseOver({\n e: e,\n setIsHovering: this.setIsHovering,\n unsetIsHovering: this.unsetIsHovering\n });\n }\n }, {\n key: 'onMouseOut',\n value: function onMouseOut(e) {\n this.props.onMouseOut({\n e: e,\n setIsHovering: this.setIsHovering,\n unsetIsHovering: this.unsetIsHovering\n });\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.clearTimers();\n }\n }, {\n key: 'setIsHovering',\n value: function setIsHovering() {\n var _this2 = this;\n\n this.clearTimers();\n\n var hoverScheduleId = setTimeout(function () {\n var newState = { isHovering: true };\n _this2.setState(newState, function () {\n _this2.props.onHoverChanged(newState);\n });\n }, this.props.hoverDelayInMs);\n\n this.timerIds.push(hoverScheduleId);\n }\n }, {\n key: 'unsetIsHovering',\n value: function unsetIsHovering() {\n var _this3 = this;\n\n this.clearTimers();\n\n var hoverOffScheduleId = setTimeout(function () {\n var newState = { isHovering: false };\n _this3.setState(newState, function () {\n _this3.props.onHoverChanged(newState);\n });\n }, this.props.hoverOffDelayInMs);\n\n this.timerIds.push(hoverOffScheduleId);\n }\n }, {\n key: 'clearTimers',\n value: function clearTimers() {\n var ids = this.timerIds;\n while (ids.length) {\n clearTimeout(ids.pop());\n }\n }\n }, {\n key: 'getIsReactComponent',\n value: function getIsReactComponent(reactElement) {\n return typeof reactElement.type === 'function';\n }\n }, {\n key: 'shouldDecorateChild',\n value: function shouldDecorateChild(child) {\n return !!child && this.getIsReactComponent(child) && this.props.shouldDecorateChildren;\n }\n }, {\n key: 'decorateChild',\n value: function decorateChild(child, props) {\n return cloneElement(child, props);\n }\n }, {\n key: 'renderChildrenWithProps',\n value: function renderChildrenWithProps(children, props) {\n var _this4 = this;\n\n if (typeof children === 'function') {\n return children(props);\n }\n\n return Children.map(children, function (child) {\n return _this4.shouldDecorateChild(child) ? _this4.decorateChild(child, props) : child;\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n className = _props.className;\n\n var childProps = assign({}, { isHovering: this.state.isHovering }, omit(this.props, ['children', 'className', 'hoverDelayInMs', 'hoverOffDelayInMs', 'onHoverChanged', 'onMouseEnter', 'onMouseLeave', 'onMouseOver', 'onMouseOut', 'shouldDecorateChildren']));\n\n return React.createElement(\n 'div',\n {\n className: className,\n onMouseEnter: this.onMouseEnter,\n onMouseLeave: this.onMouseLeave,\n onMouseOver: this.onMouseOver,\n onMouseOut: this.onMouseOut\n },\n this.renderChildrenWithProps(children, childProps)\n );\n }\n }]);\n\n return _class;\n}(React.Component);\n\n_class.displayName = 'ReactHoverObserver';\n_class.defaultProps = {\n hoverDelayInMs: 0,\n hoverOffDelayInMs: 0,\n onHoverChanged: noop,\n onMouseEnter: function onMouseEnter(_ref) {\n var setIsHovering = _ref.setIsHovering;\n return setIsHovering();\n },\n onMouseLeave: function onMouseLeave(_ref2) {\n var unsetIsHovering = _ref2.unsetIsHovering;\n return unsetIsHovering();\n },\n onMouseOver: noop,\n onMouseOut: noop,\n shouldDecorateChildren: true\n};\n_class.propTypes = {\n className: PropTypes.string,\n hoverDelayInMs: PropTypes.number,\n hoverOffDelayInMs: PropTypes.number,\n onHoverChanged: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n onMouseOut: PropTypes.func,\n shouldDecorateChildren: PropTypes.bool\n};\nexport default _class;\n;","import React from 'react';\nimport { withProps } from '@team-griffin/rehook';\nimport { puree } from '@ux/pure-enhance';\nimport { useStyles } from '@team-griffin/stylr';\nimport { percentage } from '@ux/style-utils';\nimport { gu2px } from '@ux/theme-utils';\nimport { when, isNil, pipe, always, ifElse, test, curryN, prop } from 'ramda';\nimport { stringify } from 'qs';\n\nconst size = ownerProps => when(isNil, pipe(always(ownerProps.icon), ifElse(test(/^banner/), always(gu2px(8, ownerProps.theme.spacing)), always(gu2px(2, ownerProps.theme.spacing)))))(ownerProps.size);\n\nvar stylesheet = (ownerProps => useStyles({\n default: {\n root: {\n maxWidth: percentage(100),\n height: size(ownerProps),\n width: size(ownerProps),\n position: 'relative',\n display: 'inline-block'\n },\n remote: {\n position: 'absolute',\n width: percentage(100),\n height: percentage(100),\n left: 0,\n top: 0\n }\n }\n}, []));\n\nconst baseUrl = 'https://paintbrush.heg-cp.com';\n\nconst createPaintbrushUrl = (icon, theme) => `${baseUrl}/illustrations/${icon}.svg?${stringify({\n palette: prop('illustrations')(theme.palette),\n iconSet: theme.iconSet\n})}`;\n\nvar createPaintbrushUrl$1 = curryN(2, createPaintbrushUrl);\n\nconst enhance = puree('Illustration')(withProps(stylesheet));\n\nconst PureIllustration = ({\n styles,\n icon,\n theme,\n alt\n}) => /*#__PURE__*/React.createElement(\"div\", {\n style: styles.root\n}, /*#__PURE__*/React.createElement(\"img\", {\n src: createPaintbrushUrl$1(icon, theme),\n alt: alt,\n style: styles.remote // @ts-ignore\n ,\n importance: \"low\",\n loading: \"lazy\"\n}));\n\nvar Illustration = enhance(PureIllustration); // eslint-disable-next-line no-underscore-dangle\n\nexport default Illustration;\nexport { Illustration, createPaintbrushUrl$1 as createPaintbrushUrl };\n","import React, { Fragment, useRef, useLayoutEffect, createElement, useCallback } from 'react';\nimport { mush, withHooks, puree } from '@ux/pure-enhance';\nimport { withProps, withState, withHandlers } from '@team-griffin/rehook';\nimport { useGAEvent } from '@ux/tagmg';\nimport { useWindow } from '@ux/hooks';\nimport { useLocation } from 'react-router';\nimport { _ as _extends } from './_rollupPluginBabelHelpers-1b8c042f.js';\nimport ReactHoverObserver from 'react-hover-observer';\nimport { Row, Column, Container } from '@ux/grid';\nimport { DynamicLink, dynamicClick } from '@ux/dynamic-link';\nimport Badge, { Kind } from '@ux/badge';\nimport Message from '@ux/message';\nimport { useStyles, withInteraction, removeInteraction } from '@team-griffin/stylr';\nimport { useTheme, gu2px } from '@ux/theme-utils';\nimport { headingXs, smallprint, headingXxs } from '@ux/type-size';\nimport longhand from '@team-griffin/css-longhand';\nimport { percentage, opacify } from '@ux/style-utils';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { i as isDark, b as isPrimary, a as hasLength } from './utils-b53f15f5.js';\nimport { Heading02, BodyCopy01, Heading06 } from '@ux/typography';\nimport Illustration from '@ux/illustrations';\nimport Glyph from '@ux/glyphs';\nimport './index-b94e3459.js';\n\nconst useOrigin = () => useWindow().location.origin;\n/** Returns the location pathname */\n\n\nconst usePathname = () => useLocation().pathname;\n/**\n * Returns the concatenation of the location pathname and hash\n * Input: Object => location: { pathname: '/foo', hash: '#bar' }\n * Output: string => '/foo#bar'\n */\n\n\nconst useFullPath = () => {\n const location = useLocation();\n return `${location.pathname}${location.hash}`;\n};\n/**\n * Returns the index of menu item if one of submenu item url matches the current url\n * Input: Object[] => [{ url: '/', submenu: { items: { url: '/foo/' }}}]\n * Output: number => 0\n */\n\n\nconst useMenuItemActiveIndex = links => {\n const origin = useOrigin();\n const pathname = usePathname();\n const fullPath = useFullPath();\n const found = links.find(link => {\n var _link$submenu$items, _link$submenu;\n\n const items = (_link$submenu$items = (_link$submenu = link.submenu) === null || _link$submenu === void 0 ? void 0 : _link$submenu.items) != null ? _link$submenu$items : [];\n return items.some(item => {\n if (item.url === pathname) {\n return true;\n } else if (item.url === fullPath) {\n return true;\n } else if (item.url === `${origin}${pathname}`) {\n return true;\n } else if (item.url === `${origin}${fullPath}`) {\n return true;\n }\n\n return false;\n });\n }, links);\n return links.indexOf(found);\n};\n\nvar stylesheet = (({\n colorway,\n isActive,\n hocus,\n url\n}) => {\n const {\n theme\n } = useTheme();\n const {\n typography,\n spacing,\n palette\n } = theme;\n\n const color = (() => {\n if (isDark(colorway)) {\n return '#fff';\n }\n\n if (isPrimary(colorway)) {\n return palette.primaryContrast;\n }\n\n return palette.grey02;\n })();\n\n const borderColor = (() => {\n if (isDark(colorway)) {\n return '#fff';\n }\n\n if (isPrimary(colorway)) {\n return palette.primaryContrast;\n }\n\n return palette.primary;\n })();\n\n return useStyles({\n default: {\n link: {\n fontFamily: typography.display,\n backgroundColor: 'transparent',\n borderWidth: 0,\n outline: 0,\n textDecoration: 'none',\n display: 'flex',\n alignItems: 'center',\n cursor: 'default',\n height: percentage(100),\n minHeight: gu2px(8, spacing),\n // 4GU inner + 2 spacing Y\n ...headingXs(),\n ...cssSides('padding', Side.X, 0),\n ...cssSides('margin', Side.X, gu2px(0.5, spacing)),\n paddingTop: gu2px(2, spacing),\n paddingBottom: gu2px(1.5, spacing),\n ...longhand('borderBottom', {\n width: gu2px(0.5, spacing),\n color: 'transparent',\n style: 'solid'\n }),\n transition: 'border-bottom-color 0.3s ease-in-out',\n color: opacify(color, 0.85)\n },\n activeLink: {\n color,\n borderBottomColor: borderColor\n },\n badge: {\n paddingLeft: gu2px(1, spacing)\n },\n promo: { ...smallprint()\n }\n },\n isActive: {\n link: {\n color: opacify(color, 1),\n borderBottomColor: borderColor\n }\n },\n hocus: {\n link: {\n textDecoration: 'none',\n color: opacify(color, 1),\n borderBottomColor: borderColor\n }\n },\n isLink: {\n link: {\n cursor: 'pointer'\n }\n }\n }, [{\n isActive\n }, {\n hocus\n }, {\n isLink: url != null\n }]);\n});\n\nconst enhance = mush('NavigationLink')(withInteraction, withHooks(withProps(useTheme), withProps(props => stylesheet(props))));\nconst PureNavigationLink = ({\n styles,\n label,\n url,\n promo,\n promoLabel,\n externalRoutes,\n analyticsKey,\n onClick,\n onMouseOver,\n onMouseOut,\n exact = false\n}) => /*#__PURE__*/React.createElement(DynamicLink, {\n id: analyticsKey ? `bks-navlink-${analyticsKey}` : null,\n to: url,\n externalRoutes: externalRoutes,\n style: styles.link // @ts-ignore\n ,\n activeStyle: styles.activeLink,\n onClick: onClick,\n onMouseOver: onMouseOver,\n onMouseOut: onMouseOut,\n exact: exact\n}, /*#__PURE__*/React.createElement(Message, {\n id: label\n}), promo ? /*#__PURE__*/React.createElement(\"span\", {\n style: styles.badge\n}, /*#__PURE__*/React.createElement(Badge, {\n kind: Kind.HIGHLIGHT,\n flush: true\n}, /*#__PURE__*/React.createElement(\"span\", {\n style: styles.promo\n}, /*#__PURE__*/React.createElement(Message, {\n id: promoLabel\n})))) : null);\nvar NavigationLink = enhance(PureNavigationLink);\n\nconst useStylesheet = ({\n theme\n}) => {\n const {\n palette,\n spacing,\n typography\n } = theme;\n return useStyles({\n default: {\n root: {\n fontFamily: typography.content,\n ...headingXxs(),\n ...cssSides('padding', Side.A, gu2px(4, spacing)),\n textAlign: 'left',\n color: palette.grey02,\n wordBreak: 'break-word'\n },\n title: {\n color: palette.grey02,\n marginTop: gu2px(3, spacing)\n },\n illustration: {\n size: gu2px(16, spacing)\n }\n }\n }, []);\n};\n\nconst enhance$1 = puree('SubmenuLayout')(withProps(useTheme), withProps(props => useStylesheet(props)));\nconst PureSubmenuLayout = ({\n theme,\n styles,\n children,\n submenu,\n hasIllustration\n}) => /*#__PURE__*/React.createElement(Fragment, null, hasIllustration ? /*#__PURE__*/React.createElement(Row, null, /*#__PURE__*/React.createElement(Column, {\n xs: 4\n}, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.root\n}, /*#__PURE__*/React.createElement(Illustration, {\n theme: theme,\n size: styles.illustration.size,\n icon: submenu.illustrationKey\n}), /*#__PURE__*/React.createElement(Heading02, {\n style: styles.title\n}, /*#__PURE__*/React.createElement(Message, {\n id: submenu.title\n})), /*#__PURE__*/React.createElement(BodyCopy01, null, /*#__PURE__*/React.createElement(Message, {\n id: submenu.body\n})))), /*#__PURE__*/React.createElement(Column, {\n xs: 8\n}, children)) : children);\nvar SubmenuLayout = enhance$1(PureSubmenuLayout);\n\nvar stylesheet$1 = (({\n hocus,\n theme\n}) => {\n const {\n palette,\n spacing,\n typography\n } = theme;\n return useStyles({\n default: {\n root: {\n fontFamily: typography.content,\n ...headingXxs(),\n ...longhand('borderLeft', {\n width: gu2px(0.5, spacing),\n style: 'solid',\n color: 'transparent'\n }),\n cursor: 'pointer',\n color: palette.grey02\n },\n link: { ...cssSides('padding', Side.X, gu2px(4, spacing)),\n backgroundColor: 'transparent',\n textAlign: 'left',\n borderWidth: 0,\n paddingTop: gu2px(4, spacing),\n textDecoration: 'none',\n display: 'flex',\n outline: 0\n },\n icon: {\n color: palette.primary,\n opacity: 0.01,\n width: gu2px(3, spacing),\n marginRight: gu2px(2, spacing),\n marginLeft: 0,\n marginTop: gu2px(0.5, spacing),\n // offset promo badge\n transition: 'opacity 0.3s ease-in-out, margin 0.3s ease-in-out'\n },\n text: {\n flex: 1\n },\n title: {\n color: palette.grey02,\n transition: 'color 0.3s ease-in-out',\n minHeight: gu2px(4, spacing),\n display: 'flex',\n alignItems: 'center'\n },\n badge: {\n paddingLeft: gu2px(1, spacing)\n },\n promo: { ...smallprint(),\n color: palette.highlightContrast\n },\n seoLink: {\n cursor: 'pointer'\n },\n body: { ...cssSides('padding', Side.X, gu2px(4, spacing)),\n paddingBottom: gu2px(4, spacing),\n paddingTop: gu2px(1, spacing),\n marginTop: 0\n }\n },\n hocus: {\n title: {\n color: palette.secondary\n },\n icon: {\n opacity: 1,\n marginRight: 0,\n marginLeft: gu2px(2, spacing)\n }\n }\n }, [{\n hocus\n }]);\n});\n\nconst enhance$2 = mush('SubmenuLink')(withInteraction, withHooks(withProps(useTheme), withProps(props => stylesheet$1(props)), removeInteraction));\n\nconst PureSubmenuLink = ({\n theme,\n styles,\n title,\n body,\n to,\n externalRoutes,\n analyticsKey,\n promo,\n promoLabel\n}) => {\n const seoNavClick = dynamicClick({\n to,\n externalRoutes\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n style: styles.root\n }, /*#__PURE__*/React.createElement(DynamicLink, {\n id: analyticsKey ? `bks-submenu-${analyticsKey}` : null,\n to: to,\n externalRoutes: externalRoutes,\n style: styles.link\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.text\n }, /*#__PURE__*/React.createElement(Heading06, {\n component: \"div\",\n style: styles.title\n }, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Message, {\n id: title\n }), promo ? /*#__PURE__*/React.createElement(\"span\", {\n style: styles.badge\n }, /*#__PURE__*/React.createElement(Badge, {\n kind: Kind.HIGHLIGHT,\n flush: true\n }, /*#__PURE__*/React.createElement(\"span\", {\n style: styles.promo\n }, /*#__PURE__*/React.createElement(Message, {\n id: promoLabel\n })))) : null))), /*#__PURE__*/React.createElement(\"span\", {\n style: styles.icon\n }, /*#__PURE__*/React.createElement(Glyph, {\n icon: \"arrowRight\",\n size: gu2px(3, theme.spacing),\n color: styles.icon.color\n }))), body != null ? /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.seoLink,\n onClick: seoNavClick,\n role: \"link\"\n }, /*#__PURE__*/React.createElement(BodyCopy01, {\n style: styles.body\n }, /*#__PURE__*/React.createElement(Message, {\n id: body\n })))) : null);\n};\n\nvar SubmenuLink = enhance$2(PureSubmenuLink);\n\n/**\n * if the submenu has illustration we show the items on two columns and\n * add divider starting with 3rd item,\n * otherwhise we show the items on three columns and\n * add divider starting with 4th item\n */\nconst showDivider = (hasIllustration, index) => {\n if (hasIllustration && index >= 2) {\n return true;\n }\n\n if (!hasIllustration && index >= 3) {\n return true;\n }\n\n return false;\n};\n\nconst useStylesheet$1 = () => {\n const {\n theme\n } = useTheme();\n const {\n palette,\n spacing\n } = theme;\n return useStyles({\n default: {\n divider: { ...cssSides('margin', Side.X, gu2px(4, spacing)),\n height: 2,\n backgroundColor: opacify(palette.grey06, 0.2)\n }\n }\n }, []);\n};\n\nconst enhance$3 = puree('Submenu')(withProps(ownerProps => ({\n hasIllustration: Boolean(ownerProps.submenu.illustrationKey)\n})), withProps(useStylesheet$1));\nconst PureSubmenu = ({\n styles,\n externalRoutes,\n submenu,\n hasIllustration\n}) => /*#__PURE__*/React.createElement(SubmenuLayout, {\n hasIllustration: hasIllustration,\n submenu: submenu\n}, /*#__PURE__*/React.createElement(Row, null, submenu.items.map(function (link, i) {\n return /*#__PURE__*/React.createElement(Column, {\n key: i,\n xs: hasIllustration ? 6 : 4\n }, showDivider(hasIllustration, i) ? /*#__PURE__*/React.createElement(\"div\", {\n style: styles.divider\n }) : null, /*#__PURE__*/React.createElement(SubmenuLink, {\n externalRoutes: externalRoutes,\n title: link.title,\n body: link.body,\n to: link.url,\n analyticsKey: link.analyticsKey,\n promo: link.promo,\n promoLabel: link.promoLabel\n }));\n}, undefined)));\nvar Submenu = enhance$3(PureSubmenu);\n\nvar stylesheet$2 = (({\n openSubmenu\n}) => {\n const {\n theme\n } = useTheme();\n const {\n spacing,\n palette\n } = theme;\n return useStyles({\n default: {\n root: {\n position: 'relative'\n },\n topmenu: {\n display: 'flex',\n justifyContent: 'center',\n overflow: 'hidden'\n },\n nav: {\n display: 'flex',\n flexWrap: 'nowrap',\n height: percentage(100)\n },\n divider: {\n whiteSpace: 'nowrap',\n ...cssSides('margin', Side.X, gu2px(2, spacing))\n },\n promo: { ...smallprint()\n },\n submenu: {\n position: 'absolute',\n top: percentage(100),\n marginTop: 1,\n // account for border\n left: 0,\n right: 0,\n overflow: 'hidden',\n zIndex: 1,\n borderBottomWidth: 0,\n borderBottomStyle: 'solid',\n borderBottomColor: 'transparent',\n backgroundColor: '#fff',\n pointerEvents: 'none'\n },\n submenuBase: {\n transition: 'opacity 0.2s ease-in-out'\n },\n submenuClosed: {\n visibility: 'hidden',\n height: 0,\n opacity: 0.01\n },\n submenuOpen: {\n visibility: 'visible',\n height: 'auto',\n opacity: 1\n }\n },\n openSubmenu: {\n submenu: {\n paddingTop: gu2px(2, spacing),\n paddingBottom: gu2px(6, spacing),\n borderBottomColor: opacify(palette.grey06, 0.2),\n borderBottomWidth: 2,\n pointerEvents: 'auto'\n }\n }\n }, [{\n openSubmenu: openSubmenu > -1\n }]);\n});\n\n// there is a bug with the hover library where sometimes if you hover too quickly\n// it doesn't pick it up\n// so instead, we wait until the render is complete + the usual delay applied by the library\n// then we check to see if any of the nav items are hovered on (by checking their css hover stat)\n// and if we find one, we force the submenu to open\nconst openNavOnMount = Component => props => {\n const navRef = useRef(null);\n const {\n setOpenSubmenu,\n setMenuHovering\n } = props;\n useLayoutEffect(() => {\n setTimeout(() => {\n // el is the nav dom element\n const el = navRef.current;\n\n if (el != null) {\n // can we find anything that is currently being hovered?\n const hovered = el.querySelector(':hover');\n\n if (hovered != null) {\n // find the menu index by working out which child of the nav it is\n // this also means if a non-menu-item is somehow being hovered\n // it won't blow up, it'll just cancel out\n const i = Array.from(el.children).indexOf(hovered);\n\n if (i >= 0) {\n setOpenSubmenu(i);\n setMenuHovering(true);\n }\n }\n }\n }, 200);\n }, [setMenuHovering, setOpenSubmenu]);\n return /*#__PURE__*/createElement(Component, { ...props,\n navRef\n });\n};\n\nconst enhance$4 = mush('NavigationDesktop')(withHooks(withState('openSubmenu', 'setOpenSubmenu', -1), withState('isMenuHovering', 'setMenuHovering', false), withState('isMenuItemHovering', 'setMenuItemHovering', false), withState('isSubmenuHovering', 'setSubmenuHovering', false), withHandlers({\n handleSubmenuClick: ({\n setOpenSubmenu\n }) => () => {\n setOpenSubmenu(-1);\n },\n handleMenuHoverChanged: ({\n setMenuHovering\n }) => ({\n isHovering\n }) => {\n setMenuHovering(isHovering);\n },\n handleMenuItemHoverChanged: ({\n setOpenSubmenu,\n setMenuItemHovering,\n isMenuHovering,\n isSubmenuHovering\n }) => ({\n i,\n isHovering\n }) => {\n setMenuItemHovering(isHovering);\n\n if (isHovering || isMenuHovering) {\n // @ts-ignore\n return setOpenSubmenu(i);\n }\n\n if (!isHovering && !isMenuHovering && !isSubmenuHovering) {\n return setOpenSubmenu(-1);\n }\n },\n handleSubmenuHoverChanged: ({\n setOpenSubmenu,\n setSubmenuHovering,\n isMenuItemHovering,\n trackDropdownHover\n }) => ({\n isHovering\n }) => {\n // dispatch GA event when starts to hover over dropdown menu\n if (isHovering) {\n trackDropdownHover();\n }\n\n setSubmenuHovering(isHovering);\n\n if (!isHovering && !isMenuItemHovering) {\n setOpenSubmenu(-1);\n }\n }\n}), withProps(props => stylesheet$2(props))), openNavOnMount);\nconst PureNavigationDesktop = ({\n styles,\n links,\n colorway,\n externalRoutes,\n navRef,\n openSubmenu,\n menuItemActiveIndex,\n handleMenuHoverChanged,\n handleMenuItemHoverChanged,\n handleSubmenuHoverChanged,\n handleSubmenuClick\n}) => /*#__PURE__*/React.createElement(\"div\", {\n style: styles.root\n}, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.topmenu\n}, /*#__PURE__*/React.createElement(ReactHoverObserver //@ts-ignore\n, {\n onHoverChanged: ({\n isHovering\n }) => {\n handleMenuHoverChanged({\n isHovering\n });\n }\n}, /*#__PURE__*/React.createElement(\"nav\", {\n style: styles.nav,\n ref: navRef\n}, links.map(function (link, i) {\n var _link$submenu;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n key: i,\n style: styles.divider\n }, hasLength(link === null || link === void 0 ? void 0 : (_link$submenu = link.submenu) === null || _link$submenu === void 0 ? void 0 : _link$submenu.items) ? /*#__PURE__*/React.createElement(ReactHoverObserver, {\n hoverDelayInMs: 200,\n hoverOffDelayInMs: 100 //@ts-ignore\n ,\n onHoverChanged: ({\n isHovering\n }) => {\n handleMenuItemHoverChanged({\n isHovering,\n i\n });\n }\n }, /*#__PURE__*/React.createElement(NavigationLink, _extends({\n isActive: openSubmenu === i || menuItemActiveIndex === i,\n colorway: colorway,\n externalRoutes: externalRoutes\n }, link))) : /*#__PURE__*/React.createElement(NavigationLink, _extends({\n colorway: colorway,\n externalRoutes: externalRoutes\n }, link)));\n}, undefined)))), /*#__PURE__*/React.createElement(ReactHoverObserver, {\n hoverDelayInMs: 0,\n hoverOffDelayInMs: 200 //@ts-ignore\n ,\n onHoverChanged: ({\n isHovering\n }) => {\n handleSubmenuHoverChanged({\n isHovering\n });\n }\n}, /*#__PURE__*/React.createElement(\"nav\", {\n style: styles.submenu,\n onClick: () => handleSubmenuClick()\n}, /*#__PURE__*/React.createElement(Container, null, links.map(function (link, i) {\n var _link$submenu2;\n\n return hasLength(link === null || link === void 0 ? void 0 : (_link$submenu2 = link.submenu) === null || _link$submenu2 === void 0 ? void 0 : _link$submenu2.items) ? /*#__PURE__*/React.createElement(\"div\", {\n key: i,\n style: { ...styles.submenuBase,\n ...(openSubmenu === i ? styles.submenuOpen : styles.submenuClosed)\n }\n }, /*#__PURE__*/React.createElement(Submenu, {\n submenu: link.submenu,\n externalRoutes: externalRoutes\n })) : null;\n}, undefined)))));\nvar NavigationDesktop = enhance$4(PureNavigationDesktop);\n\nconst enhance$5 = puree('ConnectedDesktop')(withProps(({\n links\n}) => {\n const menuItemActiveIndex = useMenuItemActiveIndex(links);\n return {\n menuItemActiveIndex\n };\n}), withProps(() => {\n const track = useGAEvent();\n const trackDropdownHover = useCallback(() => {\n track({\n hitType: 'event',\n eventCategory: 'Custom',\n eventAction: 'hover',\n eventLabel: 'bks-navlink-dropdown-hover'\n });\n }, [track]);\n return {\n trackDropdownHover\n };\n}));\nvar ConnectedDesktop = enhance$5(NavigationDesktop);\n\nexport default ConnectedDesktop;\n"],"sourceRoot":""}