{"version":3,"file":"bundle.225607b79eb4ddda570f1368b17c4b5c.js","mappings":"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9BC,EACAC,EACAC,KACI,QACJ,MAAMC,EAAeH,EAAQpc,QAAO,QAAC,MAAEwU,GAAH,SAAeA,EAAQ,CAAvB,IAEpC,GACC+H,EAAa9kB,OAAS,QACeuM,KAArC,UAAAuY,EAAa,GAAGC,iBAAhB,eAA2BC,OAC1B,CACD,MAAMC,EAASH,EAAapf,KAAK4S,GAASA,EAAKyM,UAAUC,QAEnDE,EAAe,IAAI,IAAIjhB,IAAIghB,IAMjC,MAAQ,GAAEL,KALW,QACpBE,EAAa,GAAGC,UAAUI,QACvBD,EACFxf,KAAKsf,GAAW,SAAQI,mBAAmBJ,OAC3Cxc,KAAK,QAEP,CAAmE,MAA7D,OAAIsc,EAAa9kB,OAAS,IAAK8kB,SAAA,UAAAA,EAAe,UAAf,eAAmB/H,OAAQ,EACzD8H,SAAP,UAAOA,EAAqB,UAA5B,aAAO,EAAyBxI,KAEzB,EACP,ECpDIgJ,GAA4B,CACjC,cAAe,CACd,WACA,SACA,QACA,QACA,QACA,WACA,UAED,gBAAiB,CAChB,WACA,SACA,QACA,WACA,cACA,UACA,YACA,QACA,aACA,WACA,gBAED,cAAe,CACd,WACA,SACA,QACA,QACA,cACA,UACA,YACA,QACA,QACA,QACA,aACA,YAED,mBAAoB,CACnB,WACA,SACA,QACA,cACA,YAED5Q,MAAO,CACN,WACA,YACA,QACA,WACA,QACA,cACA,WACA,QACA,SACA,YAED2D,QAAS,CAAC,WAAY,YAAa,aAAc,OAAQ,aACzD,cAAe,CACd,WACA,QACA,QACA,QACA,QACA,SACA,QACA,WAED,gBAAiB,CAChB,WACA,QACA,WACA,QACA,QACA,SACA,cACA,UACA,YACA,QACA,aACA,gBAED,cAAe,CACd,WACA,QACA,QACA,QACA,QACA,SACA,cACA,UACA,YACA,QACA,QACA,QACA,cAED,mBAAoB,CACnB,WACA,QACA,cACA,QACA,QACA,WAIIkN,GAA+B,CACpC,cAAe,CACd,YACA,YACA,YACA,WACA,SACA,kBACA,WACA,kBAED,gBAAiB,CAChB,YACA,YACA,YACA,WACA,YACA,oBACA,UACA,UACA,WACA,WACA,aACA,aACA,wBACA,wBACA,WACA,yBAED,cAAe,CACd,YACA,YACA,YACA,WACA,SACA,oBACA,UACA,UACA,WACA,WACA,cACA,QACA,aACA,aACA,wBACA,wBACA,YAED,mBAAoB,CACnB,YACA,YACA,YACA,WACA,cACA,YAED7Q,MAAO,CACN,YACA,cACA,SACA,YACA,SACA,cACA,WACA,UACA,uBACA,uBACA,YAED2D,QAAS,CAAC,YAAa,cAAe,QAAS,eAC/C,cAAe,CACd,YACA,QACA,SACA,OACA,SACA,kBACA,iBAED,gBAAiB,CAChB,YACA,QACA,YACA,OACA,SACA,oBACA,UACA,UACA,WACA,WACA,aACA,aACA,wBACA,wBACA,yBAED,cAAe,CACd,YACA,QACA,SACA,QACA,OACA,SACA,oBACA,UACA,UACA,WACA,WACA,cACA,QACA,aACA,aACA,wBACA,yBAED,mBAAoB,CACnB,YACA,QACA,cACA,QACA,OACA,WAIImN,GAA+B,CACpC,cAAe,CACd,WACA,aACA,aACA,SACA,SACA,QACA,QACA,aACA,QAED,gBAAiB,CAChB,WACA,aACA,aACA,SACA,WACA,mBACA,WACA,YACA,QACA,gBACA,cACA,aACA,uBACA,wBAED,cAAe,CACd,WACA,aACA,aACA,SACA,SACA,SACA,mBACA,WACA,YACA,WACA,SACA,SACA,QACA,gBACA,cACA,cAED,mBAAoB,CACnB,WACA,aACA,aACA,SACA,aACA,aACA,cAED9Q,MAAO,CACN,WACA,WACA,SACA,WACA,SACA,SACA,aACA,aACA,WACA,cACA,UACA,cAED2D,QAAS,CAAC,WAAY,WAAY,eAAgB,SAAU,gBAC5D,cAAe,CACd,WACA,SACA,SACA,OACA,QACA,QACA,QACA,QACA,cAED,gBAAiB,CAChB,WACA,SACA,WACA,OACA,QACA,QACA,mBACA,WACA,YACA,QACA,gBACA,cACA,uBACA,wBAED,cAAe,CACd,WACA,SACA,SACA,SACA,OACA,QACA,QACA,mBACA,WACA,YACA,WACA,SACA,SACA,QACA,gBACA,eAED,mBAAoB,CACn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","sources":["webpack://ws-site-text-search/webpack/runtime/load script","webpack://ws-site-text-search/./node_modules/ws-scripts/modules/common.js","webpack://ws-site-text-search/./node_modules/ws-scripts/modules/environment.js","webpack://ws-site-text-search/./node_modules/ws-scripts/modules/logger.js","webpack://ws-site-text-search/./src/actions/types.js","webpack://ws-site-text-search/./src/reducers/index.js","webpack://ws-site-text-search/./src/reducers/widgetDataReducer.js","webpack://ws-site-text-search/./node_modules/process/browser.js","webpack://ws-site-text-search/./node_modules/ws-scripts/src/global/environment/environment-browser.js","webpack://ws-site-text-search/./node_modules/ws-scripts/src/global/environment/index.js","webpack://ws-site-text-search/./node_modules/ws-scripts/src/global/logger/index.js","webpack://ws-site-text-search/./node_modules/ws-scripts/src/global/logger/logger-browser.js","webpack://ws-site-text-search/./node_modules/ws-scripts/src/global/logger/logger-common.js","webpack://ws-site-text-search/./node_modules/wsm-contact-address/dist/lib.js","webpack://ws-site-text-search/./node_modules/wsm-error-boundary/dist/umd.js","webpack://ws-site-text-search/./node_modules/wsm-hours/dist/lib.js","webpack://ws-site-text-search/external var \"DDC.WsmCommonData\"","webpack://ws-site-text-search/external var \"PropTypes\"","webpack://ws-site-text-search/external var \"React\"","webpack://ws-site-text-search/webpack/bootstrap","webpack://ws-site-text-search/webpack/runtime/compat get default export","webpack://ws-site-text-search/webpack/runtime/define property getters","webpack://ws-site-text-search/webpack/runtime/ensure chunk","webpack://ws-site-text-search/webpack/runtime/get javascript chunk filename","webpack://ws-site-text-search/webpack/runtime/get mini-css chunk filename","webpack://ws-site-text-search/webpack/runtime/hasOwnProperty shorthand","webpack://ws-site-text-search/webpack/runtime/make namespace object","webpack://ws-site-text-search/webpack/runtime/publicPath","webpack://ws-site-text-search/webpack/runtime/jsonp chunk loading","webpack://ws-site-text-search/external var \"ReactDOM\"","webpack://ws-site-text-search/external var \"ReactRedux\"","webpack://ws-site-text-search/./src/ws-scripts/components/layout/WidgetHeading.jsx","webpack://ws-site-text-search/./src/ws-scripts/components/layout/Collapse.jsx","webpack://ws-site-text-search/./node_modules/ddc-new-relic/dist/es.js","webpack://ws-site-text-search/./node_modules/ddc-track-event/dist/es.js","webpack://ws-site-text-search/./src/util/throttle.js","webpack://ws-site-text-search/./src/util/closeModalHelper.js","webpack://ws-site-text-search/./src/global-constants.js","webpack://ws-site-text-search/./node_modules/ddc-classnames-js/dist/es.js","webpack://ws-site-text-search/./src/components/richContent/ResultsHeading.jsx","webpack://ws-site-text-search/./src/contexts/search.js","webpack://ws-site-text-search/./src/contexts/ui.js","webpack://ws-site-text-search/./src/contexts/results.js","webpack://ws-site-text-search/./src/components/richContent/PhoneLink.jsx","webpack://ws-site-text-search/./src/components/richContent/EmailLink.jsx","webpack://ws-site-text-search/./src/components/richContent/ContactLinksList.jsx","webpack://ws-site-text-search/external var \"ReactBootstrap\"","webpack://ws-site-text-search/./src/components/richContent/DepartmentHoursTabs.jsx","webpack://ws-site-text-search/./src/components/richContent/AddressCard.jsx","webpack://ws-site-text-search/./src/components/richContent/RichContent.jsx","webpack://ws-site-text-search/./src/hooks/useFocusTrap.js","webpack://ws-site-text-search/./src/util/isNil.js","webpack://ws-site-text-search/./src/components/VehicleCard.jsx","webpack://ws-site-text-search/./node_modules/ddc-intl/dist/es.js","webpack://ws-site-text-search/./src/components/VehicleCards.jsx","webpack://ws-site-text-search/./src/components/SearchLinks.jsx","webpack://ws-site-text-search/./src/components/ContentColumnizer.jsx","webpack://ws-site-text-search/./src/components/InventoryTabs.jsx","webpack://ws-site-text-search/./src/components/NoResults.jsx","webpack://ws-site-text-search/./src/components/Chip.jsx","webpack://ws-site-text-search/./src/util/truncateValue.js","webpack://ws-site-text-search/./src/components/RecentSearches.jsx","webpack://ws-site-text-search/./src/util/shouldShowRecentSearches.js","webpack://ws-site-text-search/./src/util/hasEmptyResults.js","webpack://ws-site-text-search/./src/util/hasResults.js","webpack://ws-site-text-search/./src/hooks/useAriaLive.js","webpack://ws-site-text-search/./src/util/isEnoughAddData.js","webpack://ws-site-text-search/./src/components/DropDown.jsx","webpack://ws-site-text-search/./src/components/LoadingComponent.jsx","webpack://ws-site-text-search/./src/components/InputDisplay.jsx","webpack://ws-site-text-search/external var \"DDC.Hysterics\"","webpack://ws-site-text-search/./src/util/fetchInventory.js","webpack://ws-site-text-search/./src/util/fetchPages.js","webpack://ws-site-text-search/./src/util/transformInventoryResults.js","webpack://ws-site-text-search/./src/util/getRichContentResults.js","webpack://ws-site-text-search/./src/components/ButtonDisplay.jsx","webpack://ws-site-text-search/./src/components/FlyOut.jsx","webpack://ws-site-text-search/./src/components/PaginationItem.jsx","webpack://ws-site-text-search/./src/components/Pagination.jsx","webpack://ws-site-text-search/./src/components/StaticEmbedded.jsx","webpack://ws-site-text-search/./src/containers/Container.jsx","webpack://ws-site-text-search/./src/containers/Widget.jsx","webpack://ws-site-text-search/./src/ws-scripts/components/layout/WidgetWrapper.jsx","webpack://ws-site-text-search/external var \"RTK\"","webpack://ws-site-text-search/./src/middleware/index.js","webpack://ws-site-text-search/./src/ws-scripts/store.js","webpack://ws-site-text-search/./src/ws-scripts/reducers/request-data.js","webpack://ws-site-text-search/./src/ws-scripts/reducers/prefs.js","webpack://ws-site-text-search/./src/ws-scripts/reducers/labels.js","webpack://ws-site-text-search/./src/ws-scripts/reducers/sitemap.js","webpack://ws-site-text-search/./src/ws-scripts/reducers/flags.js","webpack://ws-site-text-search/./src/ws-scripts/browser.jsx"],"sourcesContent":["var inProgress = {};\nvar dataWebpackPrefix = \"ws-site-text-search:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","module.exports = {\n\t...require('wsm-common-data')\n};\n","module.exports = {\n\t...require('../src/global/environment')\n};\n","module.exports = {\n\t...require('../src/global/logger')\n};\n","export const SET_WIDGET_DATA = 'SET_WIDGET_DATA';\n","import widgetData from './widgetDataReducer';\n\nconst root = {\n\twidgetData\n};\n\nexport default root;\n","import { SET_WIDGET_DATA } from '../actions/types';\n\nconst baseEndpointUrl = (state = {}, { type, payload }) => {\n\tswitch (type) {\n\t\tcase SET_WIDGET_DATA:\n\t\t\treturn payload;\n\t\tdefault:\n\t\t\treturn state;\n\t}\n};\n\nexport default baseEndpointUrl;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\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","// Webpack will replace 'logger-node' with 'logger-browser' in browser environments.\nconst { log } = require('./logger-node');\n\n/**\n * The FATAL level designates very severe error events that will presumably lead the application to abort.\n * @param {(String|Error)} msg String message (or Error object) providing context for the log entry.\n * @param {Object} data Optional object whose properties will be included in the log data (as JSON).\n */\nconst fatal = (msg, data = null) => {\n\tlog('FATAL', msg, data);\n};\n\n/**\n * The ERROR level designates error events that might still allow the application to continue running.\n * @param {(String|Error)} msg String message (or Error object) providing context for the log entry.\n * @param {Object} data Optional object whose properties will be included in the log data (as JSON).\n */\nconst error = (msg, data = null) => {\n\tlog('ERROR', msg, data);\n};\n\n/**\n * The WARN level designates potentially harmful situations.\n * @param {(String|Error)} msg String message (or Error object) providing context for the log entry.\n * @param {Object} data Optional object whose properties will be included in the log data (as JSON).\n */\nconst warn = (msg, data = null) => {\n\tlog('WARN', msg, data);\n};\n\n/**\n * The INFO level designates informational messages that highlight the progress of the application at coarse-grained level.\n * @param {[string, unknown][]} msg String message (or Error object) providing context for the log entry.\n * @param {Object} data Optional object whose properties will be included in the log data (as JSON).\n */\nconst info = (msg, data = null) => {\n\tlog('INFO', msg, data);\n};\n\n/**\n * The DEBUG level designates fine-grained informational events that are most useful to debug an application.\n * @param {(String|Error)} msg String message (or Error object) providing context for the log entry.\n * @param {Object} data Optional object whose properties will be included in the log data (as JSON).\n */\nconst debug = (msg, data = null) => {\n\tlog('DEBUG', msg, data);\n};\n\n/**\n * The TRACE level designates finer-grained informational events than the DEBUG level.\n * @param {(String|Error)} msg String message (or Error object) providing context for the log entry.\n * @param {Object} data Optional object whose properties will be included in the log data (as JSON).\n */\nconst trace = (msg, data = null) => {\n\tlog('TRACE', msg, data);\n};\n\nmodule.exports = {\n\tfatal,\n\terror,\n\twarn,\n\tinfo,\n\tdebug,\n\ttrace\n};\n","const { levels, colors, logLevel, stderrLevels } = require('./logger-common');\n\nconst logLevelInt = levels[logLevel];\nconst browserColors = { ...colors, FATAL: 'red; font-weight: bold' };\nconst devLog = process.env.NODE_ENV !== 'production';\n\nconst log = (level, msg, data) => {\n\t/* eslint-disable no-console */\n\tif (devLog && levels[level] <= logLevelInt) {\n\t\tconst color = `color: ${browserColors[level]}`;\n\t\tconst outputStream = stderrLevels.has(level)\n\t\t\t? console.error\n\t\t\t: console.log;\n\t\toutputStream(`%c${level} : ${msg}`, color);\n\t\tif (data) {\n\t\t\toutputStream(`%c${JSON.stringify(data, undefined, 4)}`, color);\n\t\t}\n\t}\n\t/* eslint-enable no-console */\n};\n\nmodule.exports = {\n\tlog\n};\n","const logLevel = process.env.LOG_LEVEL || 'INFO';\n\nconst levels = {\n\tFATAL: 0,\n\tERROR: 1,\n\tWARN: 2,\n\tINFO: 3,\n\tDEBUG: 4,\n\tTRACE: 5\n};\n\nconst stderrLevels = new Set();\nObject.keys(levels).forEach((level) => {\n\tif (levels[level] < levels.INFO) {\n\t\tstderrLevels.add(level);\n\t}\n});\n\nconst colors = {\n\tFATAL: 'red bold',\n\tERROR: 'red',\n\tWARN: 'yellow',\n\tINFO: 'green',\n\tDEBUG: 'cyan',\n\tTRACE: 'blue'\n};\n\nmodule.exports = { levels, logLevel, stderrLevels, colors };\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t(require(\"react\"),require(\"prop-types\")):\"function\"==typeof define&&define.amd?define([\"react\",\"prop-types\"],t):((e=e||self).DDC=e.DDC||{},e.DDC.WsmContactVcard=t(e.React,e.PropTypes))}(this,(function(e,t){\"use strict\";e=e&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e,t=t&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t;const s=({name:t,address1:s,city:a,state:r,postalCode:n,url:c,addressClasses:o,onGetDirectionsClick:l})=>{const i=[{key:\"address\",content:s,className:\"street-address d-block\"},{key:\"city\",content:a,className:\"locality\"},{key:\"separator\",content:\", \",className:\"separator\"},{key:\"state\",content:\"\".concat(r,\" \"),className:\"region\"},{key:\"zipCode\",content:n,className:\"postal-code\"}];return e.createElement(\"address\",{className:\"\".concat(o)},e.createElement(\"p\",{className:\"fn n mb-0\"},e.createElement(\"strong\",{className:\"org\"},t)),e.createElement(\"p\",{className:\"adr mb-0\"},i.map((({key:t,content:s,className:a})=>e.createElement(\"span\",{key:t,className:a},s)))),c&&e.createElement(\"a\",{target:\"_blank\",rel:\"noopener noreferrer\",href:c.link,onClick:l},c.text))};return s.propTypes={name:t.string.isRequired,address1:t.string.isRequired,city:t.string.isRequired,state:t.string.isRequired,postalCode:t.string.isRequired,addressClasses:t.string,url:t.shape({link:t.string,text:t.string}),onGetDirectionsClick:t.func},s.defaultProps={addressClasses:\"\",url:null,onGetDirectionsClick:()=>{}},s.displayName=\"Address\",s}));\n//# sourceMappingURL=lib.js.map\n","!function(e,r){\"object\"==typeof exports&&\"undefined\"!=typeof module?r(exports,require(\"react\"),require(\"prop-types\")):\"function\"==typeof define&&define.amd?define([\"exports\",\"react\",\"prop-types\"],r):r((e=e||self)[\"wsm-error-boundary\"]={},e.React,e.PropTypes)}(this,(function(e,r,o){\"use strict\";var t=\"default\"in r?r.default:r;function n(e){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}o=o&&Object.prototype.hasOwnProperty.call(o,\"default\")?o.default:o;class c extends t.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e,r){const{newRelicPageAction:o,errorHandler:t}=this.props;o&&function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;window&&window.newrelic&&\"object\"===n(window.newrelic)&&window.newrelic.addPageAction(e,r)}(o,{error:e,componentStack:r.componentStack}),t&&t(e,r)}render(){const{hasError:e}=this.state,{errorMarkup:r,children:o}=this.props;return e?r:o}}c.propTypes={children:o.oneOfType([o.node,o.arrayOf(o.node)]).isRequired,newRelicPageAction:o.string,errorHandler:o.func,errorMarkup:o.node},c.defaultProps={newRelicPageAction:\"\",errorHandler:null,errorMarkup:null},c.displayName=\"ErrorBoundary\";e.ErrorBoundary=c,e.useAsyncResult=(e,...o)=>{const[t,n]=r.useState({result:null,error:null});return r.useEffect((()=>{e(...o).then((e=>n((r=>({...r,result:e}))))).catch((e=>n((r=>({...r,error:e})))))}),o),t},Object.defineProperty(e,\"__esModule\",{value:!0})}));\n//# sourceMappingURL=umd.js.map\n","!function(e,s){\"object\"==typeof exports&&\"undefined\"!=typeof module?s(exports,require(\"react\"),require(\"wsm-common-data\"),require(\"prop-types\")):\"function\"==typeof define&&define.amd?define([\"exports\",\"react\",\"wsm-common-data\",\"prop-types\"],s):s(((e=e||self).DDC=e.DDC||{},e.DDC.WsmHours={}),e.React,e.DDC.WsmCommonData,e.PropTypes)}(this,(function(e,s,t,r){\"use strict\";s=s&&Object.prototype.hasOwnProperty.call(s,\"default\")?s.default:s,r=r&&Object.prototype.hasOwnProperty.call(r,\"default\")?r.default:r;var l=function(e,s){return e(s={exports:{}},s.exports),s.exports}((function(e){function s(){return e.exports=s=Object.assign||function(e){for(var s=1;s[...new Set(e)].filter((e=>e)).join(\" \")||null,o=[\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\",\"sunday\"],a=\" - \",u=r.shape({day:r.string,open:r.string,close:r.string,timings:r.string}),i={defaults:{allHoursDepts:\"DEALERSHIP,PARTS,SERVICE\",allHoursLabelIds:\"DEALERSHIP_HOURS,PARTS_DEPT_HOURS,SERVICE_DEPT_HOURS\",heading:\"\",hours:{default:[],parts:[],service:[]},hoursListLineHeight:\"condensed\",hoursTextAlignment:\"left\",isModal:!1,showCurrentDayOnly:!1,dayColClasses:\"col-xs-6 col-sm-5\",hourColClasses:\"col-xs-6 col-sm-7\"},settings:{allHoursDepts:r.string,allHoursLabelIds:r.string,department:r.string,heading:r.string,hours:r.objectOf(r.arrayOf(u)),hoursArray:r.array,hoursListLineHeight:r.string,hoursTextAlignment:r.string,isModal:r.bool,showCurrentDayOnly:r.bool,dayColClasses:r.string,hourColClasses:r.string},hoursEntry:u},d=e=>e.includes(a),h=e=>{const s=(()=>{const e=((new Date).getDay()+o.length-1)%o.length;return o[e]})();if(d(e)){const[t,r]=e.split(a).map((e=>o.indexOf(e.toLowerCase())));if(-1===t||-1===r)return!1;const l=o.indexOf(s);return l>=t&&l<=r}return s===e};class p extends s.Component{constructor(e){super(e),this.renderDelegate=this.renderDelegate.bind(this),this.state={isClient:!1}}componentDidMount(){this.setState(((e,s)=>({isClient:!0})))}renderDelegate({labels:e}){const{hours:t,hoursTextAlignment:r,isModal:l,showCurrentDayOnly:o,dayColClasses:u,hourColClasses:i}=this.props,{isClient:p}=this.state,g=h(t.day);let C=((e,s)=>d(e)?e.split(a).map((e=>s.get(e.toUpperCase()))).join(a):s.get(e.toUpperCase()))(t.day,e);const y=t.timings.trim().toUpperCase(),c=e.has(y)?e.get(y):t.timings,m=[\"key\"],f=[\"value\"],D=[];return!o||g||l?(o&&!l?(C=\"\".concat(e.get(\"TODAYS_HOURS\"),\": \"),D.push(\"col-md-5\",\"col-lg-4\",\"col-xs-12\")):(\"right\"===r?(D.push(\"d-flex\",\"justify-content-between\",\"mx-n3\"),m.push(\"pl-3\"),f.push(\"pr-3\",\"pl-6\",\"text-right\")):(D.push(\"row\"),m.push(...u.split(\" \")),f.push(\"text-\".concat(r),...i.split(\" \"))),D.push(\"py-2\",p&&g&&\"today\")),s.createElement(\"li\",{className:n(D)},s.createElement(\"span\",{className:n(m)},C),s.createElement(\"span\",{className:n(f)},c))):null}render(){return s.createElement(t.Common,{render:this.renderDelegate})}}p.defaultProps={hours:i.defaults.hours,hoursTextAlignment:i.defaults.hoursTextAlignment,isModal:i.defaults.isModal,showCurrentDayOnly:i.defaults.showCurrentDayOnly,dayColClasses:i.defaults.dayColClasses,hourColClasses:i.defaults.hourColClasses},p.propTypes={hours:i.hoursEntry,hoursTextAlignment:i.settings.hoursTextAlignment,isModal:i.settings.isModal,showCurrentDayOnly:i.settings.showCurrentDayOnly,dayColClasses:i.settings.dayColClasses,hourColClasses:i.settings.hourColClasses},p.displayName=\"HoursListItem\";class g extends s.Component{constructor(e){super(e),this.renderDelegate=this.renderDelegate.bind(this)}renderDelegate({labels:e}){const{hours:t,heading:r,hoursListLineHeight:o,...a}=this.props;if(!t||t.length<1)return null;const u=t.map((e=>s.createElement(p,l({key:e.day,hours:e},a)))),i=r?s.createElement(\"h3\",null,e.get(r)):null,d=[\"list-unstyled\",\"line-height-\".concat(o)];return s.createElement(\"div\",null,i,s.createElement(\"ul\",{className:n(d)},u))}render(){return s.createElement(t.Common,{render:this.renderDelegate})}}g.defaultProps={heading:i.defaults.heading,hours:i.defaults.hours,hoursListLineHeight:i.defaults.hoursListLineHeight,hoursTextAlignment:i.defaults.hoursTextAlignment,isModal:i.defaults.isModal,showCurrentDayOnly:i.defaults.showCurrentDayOnly,dayColClasses:i.defaults.dayColClasses,hourColClasses:i.defaults.hourColClasses},g.propTypes={heading:i.settings.heading,hours:i.settings.hoursArray,hoursListLineHeight:i.settings.hoursListLineHeight,hoursTextAlignment:i.settings.hoursTextAlignment,isModal:i.settings.isModal,showCurrentDayOnly:i.settings.showCurrentDayOnly,dayColClasses:i.settings.dayColClasses,hourColClasses:i.settings.hourColClasses},g.displayName=\"HoursList\";const C=e=>{const{allHoursDepts:t,allHoursLabelIds:r,department:n,hours:o,...a}=e;if(!o)return null;const u=[];if(n)u.push({deptId:n,deptLabel:void 0,deptHours:o[n]});else{((e,s)=>{const t=e.split(\",\").map((e=>e.trim())),r=s.split(\",\").map((e=>e.trim())),l=[];return t.forEach(((e,s)=>{l.push({deptId:e,deptLabel:r[s]||\"DEPARTMENT_HOURS\"})})),l})(t,r).forEach((e=>{o[e.deptId]&&u.push({...e,deptHours:o[e.deptId]})}))}const i=u.map((e=>s.createElement(g,l({key:e.deptId,heading:e.deptLabel,hours:e.deptHours},a))));return s.createElement(\"div\",null,i)};C.defaultProps={allHoursDepts:i.defaults.allHoursDepts,allHoursLabelIds:i.defaults.allHoursLabelIds,hours:i.defaults.hours,department:void 0,hoursListLineHeight:i.defaults.hoursListLineHeight,hoursTextAlignment:i.defaults.hoursTextAlignment,isModal:i.defaults.isModal,showCurrentDayOnly:i.defaults.showCurrentDayOnly,dayColClasses:i.defaults.dayColClasses,hourColClasses:i.defaults.hourColClasses},C.propTypes={allHoursDepts:i.settings.allHoursDepts,allHoursLabelIds:i.settings.allHoursLabelIds,hours:i.settings.hours,department:i.settings.department,hoursListLineHeight:i.settings.hoursListLineHeight,hoursTextAlignment:i.settings.hoursTextAlignment,isModal:i.settings.isModal,showCurrentDayOnly:i.settings.showCurrentDayOnly,dayColClasses:i.settings.dayColClasses,hourColClasses:i.settings.hourColClasses},C.displayName=\"Hours\",e.Hours=C,Object.defineProperty(e,\"__esModule\",{value:!0})}));\n//# sourceMappingURL=lib.js.map\n","module.exports = DDC.WsmCommonData;","module.exports = PropTypes;","module.exports = React;","// 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].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"bundle.\" + chunkId + \".\" + \"4db150d8b8ef8df95a0b20bd24174606\" + \".js\";\n};","// This function allow to reference all chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"bundle.\" + \"e66a84b790e838bfe825b04ed9e16be5\" + \".css\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/static/ws/site-text-search/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\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\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunkws_site_text_search\"] = globalThis[\"webpackChunkws_site_text_search\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","const __WEBPACK_NAMESPACE_OBJECT__ = ReactDOM;","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 e=(e,n)=>{\"undefined\"!=typeof window&&window.newrelic&&\"object\"==typeof window.newrelic?window.newrelic.addPageAction(e,n):w()},n=(e,n)=>{\"undefined\"!=typeof window&&window.newrelic&&\"object\"==typeof window.newrelic?window.newrelic.setCustomAttribute(e,n):w()},w=()=>{console.warn(\"Unable to access window.newrelic. ddc-new-relic can only be used client side.\")};export{e as addNewRelicPageAction,n as setNewRelicCustomAttribute};\n//# sourceMappingURL=es.js.map\n","const e=(e,t)=>{if(\"string\"!=typeof e||0===e.length)throw new Error(\"\".concat(t,\" must be a non-zero length string. Got: \").concat(e,\".\"))},t=(t,n,i)=>{e(t,\"Widget name\"),e(n,\"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:n,widgetName:t,widgetState:\"default\"};return e.fireTrackingEvent&&e.fireTrackingEvent({...o,...i}),!!e.fireTrackingEvent}return o};export{t as trackEvent};\n//# sourceMappingURL=es.js.map\n","const throttle = (func, delay) => {\n\tlet lastCall = 0;\n\tlet timeoutId;\n\n\tconst throttled = (...args) => {\n\t\tconst now = new Date().getTime();\n\t\tif (now - lastCall < delay) {\n\t\t\tif (timeoutId) {\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t}\n\t\t\ttimeoutId = setTimeout(() => {\n\t\t\t\tlastCall = now;\n\t\t\t\tfunc(...args);\n\t\t\t}, delay - (now - lastCall));\n\t\t\treturn;\n\t\t}\n\t\tlastCall = now;\n\t\tfunc(...args);\n\t};\n\n\tthrottled.cancel = () => {\n\t\tif (timeoutId) {\n\t\t\tclearTimeout(timeoutId);\n\t\t}\n\t};\n\n\treturn throttled;\n};\n\nexport default throttle;\n","import { trackEvent } from 'ddc-track-event';\n\nconst closeModalHelper = (\n\twidgetName,\n\twindowId,\n\tsetModalIsOpen,\n\tsetSearchTerm,\n\tisEmbeddedOverrideActive,\n\tsetIsEmbeddedOverrideActive\n) => {\n\twindow.DDC.WidgetData[widgetName] = {\n\t\tmodalIsOpen: false\n\t};\n\tsetModalIsOpen(false);\n\tsetSearchTerm('');\n\tif (isEmbeddedOverrideActive) {\n\t\tsetIsEmbeddedOverrideActive(false);\n\t}\n\tdocument.body.style.overflow = 'auto';\n\ttrackEvent(widgetName, windowId, {\n\t\taction: 'clicked',\n\t\telement: 'close button',\n\t\tresult: 'search modal closed'\n\t});\n};\n\nexport default closeModalHelper;\n","// This file is intended for global constants that are shared across\n// the application. Use this file sparingly. For constants with a single\n// usage, it can be better to include them in the module scope of the\n// file they're used in.\n\nexport const g = {\n\tEMBEDDED: 'embedded',\n\tINPUT: 'input',\n\tDISABLED: 'disabled',\n\tBUTTON: 'button',\n\tNAVIGATION: 'navigation',\n\tDESKTOP: 'DESKTOP',\n\tMOBILE: 'MOBILE',\n\tINVENTORY: 'inventory',\n\tPAGE: 'page',\n\tCLOSE_BUTTON: 'close button',\n\tRECENT_SEARCHES_KEY: 'ws-site-text-search-recent-search-items'\n};\n","const e=e=>[...new Set(e)].filter((e=>e)).join(\" \")||null;export{e as setClassNames};\n//# sourceMappingURL=es.js.map\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { usePrefs } from 'wsm-common-data';\nimport { g } from '../../global-constants';\n\nconst ResultsHeading = ({ label, ariaLabelledById }) => {\n\tconst { display } = usePrefs();\n\tconst labelAttributes = {\n\t\tid: ariaLabelledById,\n\t\tclassName: `ddc-font-size-xlarge ${\n\t\t\tdisplay === g.EMBEDDED ? 'widget-heading' : ''\n\t\t}`.trim()\n\t};\n\treturn

{label}

;\n};\n\nResultsHeading.propTypes = {\n\tlabel: PropTypes.string.isRequired,\n\tariaLabelledById: PropTypes.string.isRequired\n};\n\nexport default ResultsHeading;\n","import { createContext } from 'react';\n\nexport const SearchContext = createContext();\n","import { createContext } from 'react';\n\nexport const UIContext = createContext();","import { createContext } from 'react';\n\nexport const ResultsContext = createContext();\n","import React, { useContext, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { UIContext, ResultsContext } from '../../contexts';\n\nconst PhoneLink = ({\n\tdepartment,\n\tnumber,\n\taccountRef = '',\n\tphoneRef = ''\n}) => {\n\tconst anchorRef = useRef();\n\tconst { labels } = useContext(UIContext);\n\tconst { handleLinkClick } = useContext(ResultsContext);\n\n\tuseEffect(() => {\n\t\t// may be able to use loadNumbers(node) if we can get the parent container of the phone numbers\n\t\t// that may be better performance\n\t\tif (\n\t\t\ttypeof window.phoneSwapping !== 'undefined' &&\n\t\t\ttypeof window.phoneSwapping.domTraverse !== 'undefined'\n\t\t) {\n\t\t\twindow.phoneSwapping.domTraverse(\n\t\t\t\tanchorRef.current,\n\t\t\t\twindow.phoneSwapping.swapNumbers\n\t\t\t);\n\t\t}\n\t}, []);\n\n\tconst handleClick = () => {\n\t\thandleLinkClick('richContentLink', `${department}: ${number}`, '', '');\n\t};\n\n\tconst departmentLabel = labels.get(department.toUpperCase());\n\tconst srOnlyText = ` ${labels.get('DEPARTMENT')} ${labels.get('NUMBER')}`;\n\n\treturn (\n\t\t
  • \n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{labels.get(departmentLabel)}\n\t\t\t\t\t{srOnlyText}: {number}\n\t\t\t\t\n\t\t\t\t{/* The outer span is needed for number swapping (call tracking) to work */}\n\t\t\t\n\t\t
  • \n\t);\n};\n\nPhoneLink.propTypes = {\n\tdepartment: PropTypes.string.isRequired,\n\tnumber: PropTypes.string.isRequired,\n\taccountRef: PropTypes.string,\n\tphoneRef: PropTypes.string\n};\nexport default PhoneLink;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { UIContext, ResultsContext } from '../../contexts';\n\nconst EmailLink = ({ email, children }) => {\n\tconst { labels } = useContext(UIContext);\n\tconst { handleLinkClick } = useContext(ResultsContext);\n\n\t// Use SEND_US_AN_EMAIL as fallback if there's no children\n\tconst linkText = children || labels.get('SEND_US_AN_EMAIL');\n\tconst emailAriaLabel = labels.get('SEND_AN_EMAIL_TO')\n\t\t? `${labels.get('SEND_AN_EMAIL_TO')} ${email}`\n\t\t: linkText;\n\n\tconst handleClick = () => {\n\t\thandleLinkClick('richContentLink', linkText, '', '');\n\t};\n\n\treturn (\n\t\t
  • \n\t\t\t\n\t\t\t\t\n\t\t\t\t{linkText}\n\t\t\t\n\t\t
  • \n\t);\n};\n\nEmailLink.propTypes = {\n\temail: PropTypes.string.isRequired,\n\tchildren: PropTypes.string\n};\nEmailLink.defaultProps = {\n\tchildren: ''\n};\nexport default EmailLink;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { usePrefs } from 'wsm-common-data';\nimport ResultsHeading from './ResultsHeading';\nimport PhoneLink from './PhoneLink';\nimport EmailLink from './EmailLink';\nimport { UIContext, ResultsContext } from '../../contexts';\n\nconst ContactLinksList = ({\n\tphoneNumbers = [],\n\temail = '',\n\tariaLabelledById = ''\n}) => {\n\tconst { contactUsHeadingLabel } = usePrefs();\n\n\tconst { handleLinkClick, richContentToDisplay, accountId } =\n\t\tuseContext(ResultsContext);\n\n\tconst { labels } = useContext(UIContext);\n\n\tconst links = richContentToDisplay.reduce((linksArray, richContentName) => {\n\t\tconst [richContentType, richContentDepartment] =\n\t\t\trichContentName.split('-');\n\t\tif (richContentType === 'phone' && richContentDepartment) {\n\t\t\tconst phoneObject = phoneNumbers.find(\n\t\t\t\t(i) =>\n\t\t\t\t\ti.dept ===\n\t\t\t\t\trichContentDepartment.charAt(0).toUpperCase() +\n\t\t\t\t\t\trichContentDepartment.slice(1)\n\t\t\t);\n\t\t\tif (phoneObject?.number) {\n\t\t\t\tconst { number, dept, type } = phoneObject;\n\t\t\t\tlinksArray.push(\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (richContentType === 'email') {\n\t\t\tif (email) {\n\t\t\t\tlinksArray.push(\n\t\t\t\t\t\n\t\t\t\t\t\t{labels.get('SEND_US_AN_EMAIL')}\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn linksArray;\n\t}, []);\n\n\tconst headingLabel = labels.get(contactUsHeadingLabel);\n\tconst optionalAttributes = {\n\t\t...(headingLabel && { 'aria-labelledby': ariaLabelledById })\n\t};\n\n\treturn links.length ? (\n\t\t
    \n\t\t\t{headingLabel && (\n\t\t\t\t\n\t\t\t)}\n\t\t\t
      {links}
    \n\t\t
    \n\t) : null;\n};\n\nContactLinksList.propTypes = {\n\tphoneNumbers: PropTypes.arrayOf(PropTypes.shape({})),\n\temail: PropTypes.string,\n\tariaLabelledById: PropTypes.string\n};\nexport default ContactLinksList;\n","const __WEBPACK_NAMESPACE_OBJECT__ = ReactBootstrap;","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { Tabs, Tab } from 'react-bootstrap';\nimport { Hours } from 'wsm-hours';\nimport ResultsHeading from './ResultsHeading';\nimport { ResultsContext } from '../../contexts';\n\nconst DepartmentHoursTabs = ({\n\tdepartments,\n\tdepartmentHours,\n\tlabel,\n\tlabels,\n\tariaLabelledById,\n\ttabId\n}) => {\n\n\tconst { handleLinkClick } = useContext(ResultsContext);\n\tconst handleClick = (eventKey) => {\n\t\thandleLinkClick(\n\t\t\t'richContentLink',\n\t\t\t`${eventKey[0]}${eventKey.substr(1).toLowerCase()}`,\n\t\t\t'',\n\t\t\t'navigated department hours tabs'\n\t\t);\n\t};\n\n\tconst safeHours = departmentHours || {};\n\tif (safeHours.DEALERSHIP && !safeHours.SALES) {\n\t\tsafeHours.SALES = safeHours.DEALERSHIP;\n\t}\n\tconst validDepartments = departments.filter(\n\t\t(deptName) => !!safeHours[deptName.toUpperCase()]\n\t);\n\n\tconst optionalAttributes = {\n\t\t...(label && { 'aria-labelledby': ariaLabelledById })\n\t};\n\n\treturn validDepartments && validDepartments.length ? (\n\t\t\n\t\t\t{label && (\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t\t\t{validDepartments.map((department) => {\n\t\t\t\t\tconst departmentCaps = department.toUpperCase();\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\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\n\t\t\n\t) : null;\n};\n\nconst DEPARTMENT_HOURS_PROP_TYPE = PropTypes.arrayOf(\n\tPropTypes.shape({\n\t\tday: PropTypes.string,\n\t\ttimings: PropTypes.string\n\t})\n);\n\nDepartmentHoursTabs.propTypes = {\n\tdepartments: PropTypes.arrayOf(PropTypes.string).isRequired,\n\tdepartmentHours: PropTypes.shape({\n\t\tSALES: DEPARTMENT_HOURS_PROP_TYPE,\n\t\tSERVICE: DEPARTMENT_HOURS_PROP_TYPE,\n\t\tPARTS: DEPARTMENT_HOURS_PROP_TYPE,\n\t\tCOMMERCIAL: DEPARTMENT_HOURS_PROP_TYPE\n\t}).isRequired,\n\tlabel: PropTypes.string,\n\tlabels: PropTypes.shape({ get: PropTypes.func.isRequired }).isRequired,\n\tariaLabelledById: PropTypes.string,\n\ttabId: PropTypes.string\n};\nDepartmentHoursTabs.defaultProps = {\n\tlabel: '',\n\tariaLabelledById: 'department-hours-0',\n\ttabId: 'department-hours-1'\n};\n\nexport default DepartmentHoursTabs;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { setClassNames } from 'ddc-classnames-js';\nimport Address from 'wsm-contact-address';\nimport ResultsHeading from './ResultsHeading';\nimport { ResultsContext } from '../../contexts';\n\nconst AddressCard = ({\n\tname,\n\taddress1,\n\tcity,\n\tstate,\n\tpostalCode,\n\tgetDirectionsLabel,\n\tgetDirectionsUrl,\n\taddressClasses,\n\tlabel,\n\tariaLabelledById\n}) => {\n\tconst optionalAttributes = {\n\t\t...(label && { 'aria-labelledby': ariaLabelledById })\n\t};\n\tconst { handleLinkClick } = useContext(ResultsContext);\n\tconst handleClick = () => {\n\t\thandleLinkClick('richContentLink', getDirectionsLabel, '', '');\n\t};\n\tconst addressElementClasses = [\n\t\t...addressClasses.split(' '),\n\t\t'text-black',\n\t\t'ddc-font-size-base',\n\t\t'my-3'\n\t];\n\n\treturn (\n\t\t\n\t\t\t{label && (\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\n\t\t
    \n\t);\n};\nAddressCard.propTypes = {\n\tname: PropTypes.string.isRequired,\n\taddress1: PropTypes.string.isRequired,\n\tcity: PropTypes.string.isRequired,\n\tstate: PropTypes.string.isRequired,\n\tpostalCode: PropTypes.string.isRequired,\n\tgetDirectionsLabel: PropTypes.string.isRequired,\n\tgetDirectionsUrl: PropTypes.string.isRequired,\n\taddressClasses: PropTypes.string,\n\tlabel: PropTypes.string,\n\tariaLabelledById: PropTypes.string\n};\nAddressCard.defaultProps = {\n\tlabel: '',\n\tariaLabelledById: 'address-card-0',\n\taddressClasses: ''\n};\nexport default AddressCard;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { usePrefs } from 'wsm-common-data';\nimport ContactLinksList from './ContactLinksList';\nimport DepartmentHoursTabs from './DepartmentHoursTabs';\nimport AddressCard from './AddressCard';\nimport { UIContext, ResultsContext } from '../../contexts';\n\nconst RichContent = () => {\n\n\tconst {\n\t\taddInfo,\n\t\trichContentToDisplay,\n\t\tnoResultsRichContent\n\t } = useContext(ResultsContext);\n\n\tconst { labels, windowId, pageAlias } = useContext(UIContext);\n\n\tconst {\n\t\taddressHeadingLabel,\n\t\taddressClasses,\n\t\taddressGetDirectionsLabel,\n\t\thoursTabsHeaderLabel\n\t} = usePrefs();\n\n\tconst contentToDisplay = (!richContentToDisplay || richContentToDisplay.length === 0) \n ? noResultsRichContent \n : richContentToDisplay;\n\n\tconst [contactLinksAriaLabelledById, setContactLinksAriaLabelledById] =\n\t\tuseState('');\n\tconst [addressAriaLabelledById, setAddressAriaLabelledById] = useState('');\n\tconst [hoursTabsAriaLabelledById, setHoursTabsAriaLabelledById] =\n\t\tuseState('');\n\tconst [hoursTabsId, setHoursTabsId] = useState('');\n\n\tuseEffect(() => {\n\t\t// This effect only runs once to setup specific data for this component\n\t\t// Generate unique ids\n\t\tsetContactLinksAriaLabelledById(\n\t\t\t`${pageAlias}_${windowId}_ContactLinkAria`\n\t\t);\n\t\tsetAddressAriaLabelledById(`${pageAlias}_${windowId}_AddressAria`);\n\t\tsetHoursTabsAriaLabelledById(`${pageAlias}_${windowId}_HoursTabsAria`);\n\t\tsetHoursTabsId(`${pageAlias}_${windowId}_HourTabsId`);\n\t}, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n\t// Contact Links\n\tconst renderContactLinksList = () => {\n\t\tconst { phoneNumbers = [], email = '' } = addInfo || {};\n\t\treturn (\n\t\t\t\n\t\t);\n\t};\n\n\t// Address\n\tconst renderAddress = () => {\n\t\tconst hideLabel = contentToDisplay.some(\n\t\t\t(item) =>\n\t\t\t\t[\n\t\t\t\t\t'email',\n\t\t\t\t\t'phone-sales',\n\t\t\t\t\t'phone-service',\n\t\t\t\t\t'phone-parts',\n\t\t\t\t\t'phone-commercial'\n\t\t\t\t].indexOf(item) > -1\n\t\t);\n\t\tconst {\n\t\t\tdealerInfo: {\n\t\t\t\tname = '',\n\t\t\t\taddress1 = '',\n\t\t\t\tcity = '',\n\t\t\t\tstate = '',\n\t\t\t\tpostalCode = ''\n\t\t\t} = {},\n\t\t\tmapLink = ''\n\t\t} = addInfo || {};\n\t\treturn (\n\t\t\t\n\t\t);\n\t};\n\n\t// Hours\n\tconst renderHours = () => {\n\t\tconst { hours = {} } = addInfo || {};\n\t\tconst departments = contentToDisplay\n\t\t\t.filter((richContentName) => richContentName.startsWith('hours'))\n\t\t\t.map((richContentName) => richContentName.split('-')[1]);\n\t\treturn (\n\t\t\t\n\t\t);\n\t};\n\n\tconst renderFunctions = {\n\t\t'phone-sales': renderContactLinksList,\n\t\t'phone-service': renderContactLinksList,\n\t\t'phone-parts': renderContactLinksList,\n\t\t'phone-commercial': renderContactLinksList,\n\t\temail: renderContactLinksList,\n\t\taddress: renderAddress,\n\t\t'hours-sales': renderHours,\n\t\t'hours-service': renderHours,\n\t\t'hours-parts': renderHours,\n\t\t'hours-commercial': renderHours\n\t};\n\n\tif (!contentToDisplay || contentToDisplay.length === 0) {\n \t return null;\n \t}\n\n\tconst renderedComponents = new Set();\n\n\treturn (\n\t\t\n\t\t\t{contentToDisplay.map((item) => {\n\t\t\t\tconst renderFunction = renderFunctions[item];\n\t\t\t\tif (renderFunction && !renderedComponents.has(renderFunction)) {\n\t\t\t\t\trenderedComponents.add(renderFunction);\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{renderFunction()}\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t})}\n\t\t\n\t);\n};\n\nexport default RichContent;\n","import { useEffect, useState } from 'react';\n\nconst useFocusTrap = (\n\tcontainerRefs,\n\tdropDownRef,\n\tflyOutRef,\n\tinputElementRef,\n\topenButtonRef,\n\tisOpen,\n\tcloseModal\n) => {\n\tconst [currentIndex, setCurrentIndex] = useState(0);\n\n\tuseEffect(() => {\n\t\tif (!isOpen) return;\n\t\tconst handleKeyDown = (event) => {\n\t\t\tconst focusableElements = containerRefs\n\t\t\t\t.flatMap((ref) =>\n\t\t\t\t\tArray.from(\n\t\t\t\t\t\tref.current?.querySelectorAll(\n\t\t\t\t\t\t\t'a[href], button:not([disabled]), input:not([type=\"hidden\"]):not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\n\t\t\t\t\t\t) || []\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.filter((el) => el.offsetParent !== null); // Filter out hidden elements\n\t\t\tif (focusableElements.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (event.key === 'Tab') {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tlet newIndex = currentIndex;\n\n\t\t\t\tif (event.shiftKey) {\n\t\t\t\t\t// Shift + Tab\n\t\t\t\t\tnewIndex =\n\t\t\t\t\t\t(currentIndex - 1 + focusableElements.length) %\n\t\t\t\t\t\tfocusableElements.length;\n\t\t\t\t} else {\n\t\t\t\t\t// Tab\n\t\t\t\t\tnewIndex = (currentIndex + 1) % focusableElements.length;\n\t\t\t\t}\n\t\t\t\tif (dropDownRef) {\n\t\t\t\t\tconst isAtBoundary =\n\t\t\t\t\t\t(currentIndex === focusableElements.length - 1 &&\n\t\t\t\t\t\t\t!event.shiftKey) ||\n\t\t\t\t\t\t(newIndex === 0 && event.shiftKey);\n\n\t\t\t\t\tif (isAtBoundary) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tdropDownRef.current ||\n\t\t\t\t\t\t\t(!dropDownRef.current && !flyOutRef)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tnewIndex = -1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (newIndex === -1) {\n\t\t\t\t\tif (inputElementRef && inputElementRef.current) {\n\t\t\t\t\t\tinputElementRef.current.focus();\n\t\t\t\t\t\t// Place cursor at the end of empty input\n\t\t\t\t\t\tinputElementRef.current.setSelectionRange(\n\t\t\t\t\t\t\tinputElementRef.current.value.length,\n\t\t\t\t\t\t\tinputElementRef.current.value.length\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcloseModal();\n\t\t\t\t} else {\n\t\t\t\t\tfocusableElements[newIndex].focus();\n\t\t\t\t\tsetCurrentIndex(newIndex);\n\t\t\t\t}\n\t\t\t} else if (event.key === 'Escape') {\n\t\t\t\tcloseModal();\n\t\t\t\tif (inputElementRef && inputElementRef.current) {\n\t\t\t\t\tinputElementRef.current.focus();\n\t\t\t\t\t// Place cursor at the end of empty input\n\t\t\t\t\tinputElementRef.current.setSelectionRange(\n\t\t\t\t\t\tinputElementRef.current.value.length,\n\t\t\t\t\t\tinputElementRef.current.value.length\n\t\t\t\t\t);\n\t\t\t\t} else if (openButtonRef && openButtonRef.current) {\n\t\t\t\t\topenButtonRef.current.focus();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst containers = containerRefs\n\t\t\t.map((ref) => ref.current)\n\t\t\t.filter((container) => container !== null);\n\n\t\tcontainers.forEach((container) => {\n\t\t\tcontainer.addEventListener('keydown', handleKeyDown);\n\t\t});\n\n\t\t// Cleanup function\n\t\t// eslint-disable-next-line consistent-return\n\t\treturn () => {\n\t\t\tcontainers.forEach((container) => {\n\t\t\t\tcontainer.removeEventListener('keydown', handleKeyDown);\n\t\t\t});\n\t\t};\n\t}, [containerRefs, isOpen, currentIndex]);\n\n\treturn null;\n};\n\nexport default useFocusTrap;\n","const isNil = (value) => {\n\treturn value === null || value === undefined || value === '';\n};\n\nexport default isNil;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { usePrefs } from 'wsm-common-data';\nimport { formatNumber, formatCurrency } from 'ddc-intl';\nimport isNil from '../util/isNil';\nimport { UIContext, ResultsContext } from '../contexts';\n\nconst VehicleCard = ({\n\thref,\n\timageUrl,\n\ttitle,\n\tprice,\n\todometer,\n\todometerUnit,\n\tcondition\n}) => {\n\n\tconst { handleLinkClick } = useContext(ResultsContext);\n\tconst { \n\t\t\t\tlabels,\n\t\t\t\tlocale,\n\t\t\t } = useContext(UIContext);\n\n\tconst { showPrice } = usePrefs();\n\n\tif (!title || !href || !imageUrl) {\n\t\treturn null;\n\t}\n\tlet displayTitle = title;\n\tif (title.length > 50) {\n\t\tdisplayTitle = `${title.substring(0, 50)}...`;\n\t}\n\n\t// Modify condition value based on its type\n\tlet displayCondition = condition;\n\tif (condition === 'NEW') {\n\t\tdisplayCondition = labels.get('NEW').toUpperCase();\n\t} else if (condition === 'USED') {\n\t\tdisplayCondition = labels.get('PRE_OWNED').toUpperCase();\n\t} else if (condition === 'CERTIFIED') {\n\t\tdisplayCondition = labels.get('CERTIFIED').toUpperCase();\n\t}\n\n\tconst displayOdometer = formatNumber(Number(odometer), locale) || '0';\n\tconst displayOdometerUnit =\n\t\todometer === '1' ? odometerUnit.slice(0, -1) : odometerUnit;\n\n\t// Need to remove the comma and dollar sign to format the price if not null/undefined\n\tconst displayPrice = formatCurrency(\n\t\tNumber(price.replace(/[$,]/g, '')),\n\t\tlocale,\n\t\tfalse\n\t);\n\tconst shouldDisplayPrice = !isNil(price) && showPrice === 'true';\n\n\tconst handleClick = () => {\n\t\thandleLinkClick('vehicleLink', '', '', '');\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t\t{displayCondition}\n\t\t\t\t

    \n\t\t\t\t

    {displayTitle}

    \n\t\t\t\t{shouldDisplayPrice && (\n\t\t\t\t\t

    {displayPrice}

    \n\t\t\t\t)}\n\t\t\t\t{condition.toUpperCase() !== 'NEW' && (\n\t\t\t\t\t

    {`${displayOdometer} ${displayOdometerUnit}`}

    \n\t\t\t\t)}\n\t\t\t
    \n\t\t\n\t);\n};\nVehicleCard.propTypes = {\n\thref: PropTypes.string.isRequired,\n\timageUrl: PropTypes.string.isRequired,\n\ttitle: PropTypes.string.isRequired,\n\tprice: PropTypes.string,\n\todometer: PropTypes.string,\n\todometerUnit: PropTypes.string,\n\tcondition: PropTypes.string\n};\n\nVehicleCard.defaultProps = {\n\tprice: '',\n\todometer: '',\n\todometerUnit: '',\n\tcondition: ''\n};\n\nexport default VehicleCard;\n","function e(e,t=\"en_US\",n=!1){if(\"undefined\"==typeof Intl||!Intl.NumberFormat)return e.toString();const r={style:\"currency\",currency:t.length&&t.indexOf(\"CA\")>-1?\"CAD\":\"USD\"};let o;return\"number\"!=typeof e?(console.warn(\"formatCurrency: unexpected currency value: \".concat(e,\" of type \").concat(typeof e)),\"\"):(n?o=e:(o=Math.round(e),r.minimumFractionDigits=0),new Intl.NumberFormat(t.replace(\"_\",\"-\"),r).format(o))}function t(e,t=\"en_US\"){return\"undefined\"!=typeof Intl&&Intl.NumberFormat?\"number\"!=typeof e?\"\":new Intl.NumberFormat(t.replace(\"_\",\"-\")).format(e):e.toString()}function n(e,t=\"en_US\",n={}){if(\"undefined\"==typeof Intl||!Intl.DateTimeFormat)return e.toString();let r;return e instanceof Date?r=e:(\"string\"==typeof e||Number.isInteger(e))&&(r=new Date(e)),r&&Number.isFinite(r.getTime())?new Intl.DateTimeFormat(t.replace(\"_\",\"-\"),n).format(r):\"\"}export{e as formatCurrency,n as formatDate,t as formatNumber};\n//# sourceMappingURL=es.js.map\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport VehicleCard from './VehicleCard';\nimport { UIContext} from '../contexts';\n\nconst VehicleCards = ({ vehicles }) => {\n\n\tconst { \n\t\t\tinputWidth,\n\t\t\tlabels\n\t\t } = useContext(UIContext);\n\n\tconst singleColumnWidth = 600;\n\tconst isDoubleColumn = inputWidth > singleColumnWidth;\n\tif (vehicles?.length > 0) {\n\t\tlet keyCount = 0;\n\t\treturn (\n\t\t\t\n\t\t\t\t

    \n\t\t\t\t\t{labels.get('VEHICLE_SEARCH_RESULTS')}\n\t\t\t\t

    \n\t\t\t\t{vehicles.slice(0, 5).map((vehicle) => {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\timages: [image1],\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tprice,\n\t\t\t\t\t\todometer,\n\t\t\t\t\t\todometerUnit,\n\t\t\t\t\t\tcondition\n\t\t\t\t\t} = vehicle;\n\n\t\t\t\t\tconst titleString = Array.isArray(title)\n\t\t\t\t\t\t? title.join(' ')\n\t\t\t\t\t\t: title;\n\n\t\t\t\t\tconst image = image1;\n\t\t\t\t\tconst capitalizedCondition = condition.toUpperCase();\n\t\t\t\t\tkeyCount += 1;\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\treturn null;\n};\n\nVehicleCards.propTypes = {\n\tvehicles: PropTypes.arrayOf(\n\t\tPropTypes.shape({\n\t\t\tpath: PropTypes.string,\n\t\t\ttitle: PropTypes.arrayOf(PropTypes.string),\n\t\t\timages: PropTypes.arrayOf(PropTypes.shape({})),\n\t\t\tprice: PropTypes.string,\n\t\t\todometer: PropTypes.string,\n\t\t\todometerUnit: PropTypes.string,\n\t\t\tcondition: PropTypes.string\n\t\t})\n\t)\n};\n\nexport default VehicleCards;\n","import React, {useContext} from 'react';\nimport PropTypes from 'prop-types';\nimport { setClassNames } from 'ddc-classnames-js';\nimport { UIContext, ResultsContext } from '../contexts';\n\nconst SearchLinks = ({\n\ttype,\n\tdata,\n\tisEmbedded\n}) => {\n\n\t\tconst { \n\t\t\t\tlabels,\n\t\t\t } = useContext(UIContext);\n\t\t\n\t\tconst { handleLinkClick } = useContext(ResultsContext);\n\n\n\tconst classNames = ['ddc-font-size-base', 'font-weight-bold', 'mt-0'];\n\n\tif (type === 'no-results') {\n\t\tclassNames.push('sr-only');\n\t}\n\n\tif (type === 'inventory') {\n\t\tconst isEverySuggestionCountOne = data.every(\n\t\t\t(item) => item.count === 1\n\t\t);\n\t\tif (isEverySuggestionCountOne) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tconst ariaLabel =\n\t\ttype === 'inventory'\n\t\t\t? labels.get('INVENTORY_SEARCH_RESULTS')\n\t\t\t: labels.get('PAGE_SEARCH_RESULTS');\n\n\tconst iconClass =\n\t\ttype === 'inventory'\n\t\t\t? 'ddc-icon-single-vehicle'\n\t\t\t: 'ddc-icon-arrow-circle-right';\n\n\tif (data?.length > 0) {\n\t\tlet keyCount = 0;\n\t\tconst maxLinks = isEmbedded && type !== 'inventory' ? 25 : 5;\n\t\tconst headingLabel =\n\t\t\ttype === 'inventory'\n\t\t\t\t? `${labels.get('VIEW_SIMILAR_VEHICLES')}`\n\t\t\t\t: `${labels.get('WEBSITE_RESOURCES')}`;\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{headingLabel}\n\t\t\t\t\n\t\t\t\t
      \n\t\t\t\t\t{data.slice(0, maxLinks).map((item) => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t(!item.title || !item.path) &&\n\t\t\t\t\t\t\ttype === 'no-results'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tkeyCount += 1;\n\t\t\t\t\t\tconst handleClick = () => {\n\t\t\t\t\t\t\tlet elementCTA = '';\n\t\t\t\t\t\t\tlet linkType = '';\n\t\t\t\t\t\t\tlet addRecentSearches = true;\n\t\t\t\t\t\t\tif (type === 'inventory') {\n\t\t\t\t\t\t\t\tlinkType = 'inventoryLink';\n\t\t\t\t\t\t\t\telementCTA = item.facets || '';\n\t\t\t\t\t\t\t} else if (type === 'page') {\n\t\t\t\t\t\t\t\tlinkType = 'pageLink';\n\t\t\t\t\t\t\t\telementCTA = item.title;\n\t\t\t\t\t\t\t} else if (type === 'no-results') {\n\t\t\t\t\t\t\t\tlinkType = 'noResultsLink';\n\t\t\t\t\t\t\t\telementCTA = item.title;\n\t\t\t\t\t\t\t\taddRecentSearches = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thandleLinkClick(\n\t\t\t\t\t\t\t\tlinkType,\n\t\t\t\t\t\t\t\telementCTA,\n\t\t\t\t\t\t\t\titem.title,\n\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\taddRecentSearches\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\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\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{item.title}\n\t\t\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\treturn null;\n};\n\nSearchLinks.propTypes = {\n\ttype: PropTypes.oneOf(['inventory', 'page', 'no-results']).isRequired,\n\tdata: PropTypes.arrayOf(PropTypes.shape({})),\n\tisEmbedded: PropTypes.bool\n};\n\nexport default SearchLinks;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { UIContext} from '../contexts';\n\nconst ContentColumnizer = ({ children, vehicles }) => {\n\tconst { inputWidth } = useContext(UIContext);\n\tconst cleanedChildren = children.filter((n) => n);\n\tconst singleColumnWidth = 600;\n\tconst isDoubleColumn = inputWidth > singleColumnWidth;\n\tconst className = isDoubleColumn ? 'col-sm-6' : 'col-sm-12';\n\n\tfunction sortContent() {\n\t\tconst leftColumn = [];\n\t\tconst rightColumn = [];\n\t\tcleanedChildren.forEach((child, index) => {\n\t\t\tif (vehicles && child?.props?.vehicles && isDoubleColumn) {\n\t\t\t\tleftColumn.push(child);\n\t\t\t} else if (!vehicles && index % 2 === 0 && isDoubleColumn) {\n\t\t\t\tleftColumn.push(child);\n\t\t\t} else {\n\t\t\t\trightColumn.push(child);\n\t\t\t}\n\t\t});\n\t\treturn (\n\t\t\t<>\n\t\t\t\t
    \n\t\t\t\t\t{leftColumn}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{rightColumn}\n\t\t\t\t
    \n\t\t\t\n\t\t);\n\t}\n\n\treturn
    {sortContent()}
    ;\n};\n\nContentColumnizer.propTypes = {\n\tchildren: PropTypes.node,\n\tvehicles: PropTypes.bool\n};\n\nexport default ContentColumnizer;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { Tabs, Tab } from 'react-bootstrap';\nimport { trackEvent } from 'ddc-track-event';\nimport VehicleCards from './VehicleCards';\nimport SearchLinks from './SearchLinks';\nimport RichContent from './richContent/RichContent';\nimport ContentColumnizer from './ContentColumnizer';\nimport { UIContext, ResultsContext } from '../contexts';\n\nconst InventoryTabs = ({ hasRichContentToDisplay }) => {\n\n\tconst {\n\t\tactiveInventoryTab,\n\t\tsetActiveInventoryTab,\n\t\tdisabledTabs,\n\t\tinventoryResults,\n\t\thandleLinkClick,\n\t\tpageSearchResults,\n\t\thasSingleVehicle\n\t } = useContext(ResultsContext);\n\t \n\t const {\n\t\tinputWidth,\n\t\tlabels,\n\t\twidgetName,\n\t\twindowId\n\t } = useContext(UIContext);\n\n\n\tconst tabs = [\n\t\t{ key: 'new', label: 'TAB_NEW' },\n\t\t{ key: 'used', label: 'TAB_PRE_OWNED' },\n\t\t{ key: 'certified', label: 'TAB_CERTIFIED' }\n\t];\n\n\tconst allVehiclesPath =\n\t\tinventoryResults[activeInventoryTab]?.allVehiclesPath || '';\n\tconst viewLinkLabel = labels.get('VIEW_ALL_VEHICLES_SITE_SEARCH');\n\tconst handleClick = () => {\n\t\thandleLinkClick('allInventoryLink', viewLinkLabel, '', '');\n\t};\n\tconst handleTabClick = (tab) => {\n\t\ttrackEvent(widgetName, windowId, {\n\t\t\taction: 'clicked',\n\t\t\telement: `${tab.key} tab`,\n\t\t\telementCTA: labels.get(tab.label),\n\t\t\tresult: `${tab.key} > navigated to ${tab.key} results`,\n\t\t\tnonInteractive: false\n\t\t});\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t {\n\t\t\t\t\tsetActiveInventoryTab(e);\n\t\t\t\t\thandleTabClick(tabs.find((tab) => tab.key === e));\n\t\t\t\t}}\n\t\t\t\tclassName=\"inventory-tabs mx-4 ddc-font-size-large\"\n\t\t\t\tactiveKey={activeInventoryTab}\n\t\t\t\tid=\"inventory-tabs\"\n\t\t\t>\n\t\t\t\t{tabs.map((tab) => (\n\t\t\t\t\t disabledTab === tab.key\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\t{allVehiclesPath && !hasSingleVehicle && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{viewLinkLabel}\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\t
    \n\t\t\t\t\n\t\t\t\t\t\t0\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{inventoryResults[activeInventoryTab]?.vehicles?.length >\n\t\t\t\t\t\t0 && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{inventoryResults[activeInventoryTab]?.suggestions?.length >\n\t\t\t\t\t\t0 && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{pageSearchResults?.length > 0 && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{hasRichContentToDisplay && (\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\nInventoryTabs.propTypes = {\n\thasRichContentToDisplay: PropTypes.bool\n};\n\nexport default InventoryTabs;\n","import React from 'react';\nimport { useLabels } from 'wsm-common-data';\n\nconst NoResults = () => {\n\tconst labels = useLabels();\n\tconst message = labels.get('SORRY_NO_RESULTS');\n\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\t{message}...\n\t\t\t
    \n\t\t\n\t);\n};\n\nexport default NoResults;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { trackEvent } from 'ddc-track-event';\nimport truncateValue from '../util/truncateValue';\nimport { UIContext, ResultsContext, SearchContext } from '../contexts';\n\nconst Chip = ({ recentSearch }) => {\n\n\tconst { labels, widgetName, windowId } = useContext(UIContext);\n\tconst { removeRecentSearch, reorderRecentSearches } = useContext(ResultsContext);\n\tconst { handleChipClick } = useContext(SearchContext);\n\n\tconst btnLabel = labels.get('SEARCH');\n\tconst removeLabel = labels.get('REMOVE');\n\n\tconst handleRemove = (e) => {\n\t\te.stopPropagation();\n\t\tremoveRecentSearch(recentSearch.value);\n\t\ttrackEvent(widgetName, windowId, {\n\t\t\telement: 'search box x',\n\t\t\telementCTA: recentSearch.value,\n\t\t\tresult: 'chip removed',\n\t\t\taction: 'clicked'\n\t\t});\n\t};\n\n\tconst handleClick = () => {\n\t\thandleChipClick(recentSearch.value);\n\t\treorderRecentSearches(recentSearch);\n\t\ttrackEvent(widgetName, windowId, {\n\t\t\telement: 'search chip',\n\t\t\telementCTA: recentSearch.value,\n\t\t\tresult: 'text search form re-submitted',\n\t\t\taction: 'clicked'\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t{truncateValue(recentSearch.value)}\n\t\t\t {\n\t\t\t\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\t\t\t\thandleRemove(e);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\taria-label={`${removeLabel}: ${recentSearch.value}`}\n\t\t\t\tdata-testid=\"remove-icon\"\n\t\t\t/>\n\t\t\n\t);\n};\n\nChip.propTypes = {\n\trecentSearch: PropTypes.shape({\n\t\tid: PropTypes.string,\n\t\tvalue: PropTypes.string\n\t}).isRequired\n};\n\nexport default Chip;\n","export default (value, length = 20) =>\n\tvalue?.length > length ? `${value.substring(0, length)}...` : value;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport Chip from './Chip';\nimport { UIContext, ResultsContext } from '../contexts';\n\nconst RecentSearches = ({ preventModalClose }) => {\n\tconst { recentSearches, handleClearHistory, handleClearHistoryNoClose } =\n\t\tuseContext(ResultsContext);\n\n\tconst { labels } = useContext(UIContext);\n\n\tconst clearFunction = preventModalClose\n\t\t? handleClearHistoryNoClose\n\t\t: handleClearHistory;\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{labels.get('RECENT_SEARCHES')}\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{labels.get('CLEAR_HISTORY')}\n\t\t\t\t\n\t\t\t
    \n\t\t\t{recentSearches?.slice(0, 5).map((recentSearch) => (\n\t\t\t\t\n\t\t\t))}\n\t\t\n\t);\n};\n\nRecentSearches.propTypes = {\n\tpreventModalClose: PropTypes.bool\n};\nexport default RecentSearches;\n","const shouldShowRecentSearches = (\n\tsearchTerm,\n\thasResults,\n\thasEmptyResults,\n\trecentSearches\n) => {\n\treturn (\n\t\t(!searchTerm || (!hasResults && !hasEmptyResults)) &&\n\t\trecentSearches?.length > 0 &&\n\t\tsearchTerm?.length === 0\n\t);\n};\n\nexport default shouldShowRecentSearches;\n","const hasEmptyResults = (pageResults, suggestions, vehicles) => {\n\treturn (\n\t\t(Array.isArray(pageResults) && pageResults?.length === 0) ||\n\t\t(Array.isArray(suggestions) && suggestions?.length === 0) ||\n\t\t(Array.isArray(vehicles) && vehicles?.length === 0)\n\t);\n};\n\nexport default hasEmptyResults;\n","const hasResults = (pageResults, suggestions, vehicles) => {\n\treturn (\n\t\tpageResults?.length > 0 ||\n\t\tsuggestions?.length > 0 ||\n\t\tvehicles?.length > 0\n\t);\n};\n\nexport default hasResults;\n","import { useState, useEffect } from 'react';\nimport { useLabels } from 'wsm-common-data';\n\nconst useAriaLive = (\n\tisSearchTermLongEnough,\n\thasResultsLocal,\n\thasEmptyResultsLocal\n) => {\n\tconst [announceText, setAnnounceText] = useState('');\n\tconst labels = useLabels();\n\tconst noResults = labels.get('NO_SEARCH_RESULTS_FOUND');\n\tconst resultsReady = labels.get('SEARCH_RESULTS_READY');\n\n\tuseEffect(() => {\n\t\tconst timer = setTimeout(() => {\n\t\t\tif (isSearchTermLongEnough && hasResultsLocal) {\n\t\t\t\tsetAnnounceText(resultsReady);\n\t\t\t} else if (isSearchTermLongEnough && hasEmptyResultsLocal) {\n\t\t\t\tsetAnnounceText(noResults);\n\t\t\t} else {\n\t\t\t\tsetAnnounceText('');\n\t\t\t}\n\t\t}, 30);\n\n\t\treturn () => clearTimeout(timer);\n\t}, [isSearchTermLongEnough, hasResultsLocal, hasEmptyResultsLocal]);\n\n\treturn announceText;\n};\n\nexport default useAriaLive;\n","const isEnoughAddData = (richContentToDisplay, addInfo) => {\n\tif (!addInfo || richContentToDisplay?.length === 0) {\n\t\treturn false;\n\t}\n\n\tconst isNotEmpty = (obj) => {\n\t\tif (Array.isArray(obj)) {\n\t\t\treturn obj.length > 0;\n\t\t}\n\t\tif (obj) {\n\t\t\treturn Object.keys(obj).length > 0;\n\t\t}\n\t\treturn false;\n\t};\n\n\tconst CONTENT_TYPES = {\n\t\tHOURS: [\n\t\t\t'hours-sales',\n\t\t\t'hours-service',\n\t\t\t'hours-parts',\n\t\t\t'hours-commercial'\n\t\t],\n\t\tLOCATION: ['address'],\n\t\tCONTACT: [\n\t\t\t'phone-sales',\n\t\t\t'phone-service',\n\t\t\t'phone-parts',\n\t\t\t'phone-commercial',\n\t\t\t'email'\n\t\t]\n\t};\n\tconst { hours = {}, mapLink, dealerInfo = {}, phoneNumbers = [] } = addInfo;\n\n\tconst hasRequestedContent = (items, targetKeys) =>\n\t\titems.some((item) => targetKeys.includes(item));\n\n\tif (hasRequestedContent(richContentToDisplay, CONTENT_TYPES.HOURS)) {\n\t\tif (isNotEmpty(hours)) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tif (hasRequestedContent(richContentToDisplay, CONTENT_TYPES.LOCATION)) {\n\t\tif (isNotEmpty(mapLink) || isNotEmpty(dealerInfo)) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tif (hasRequestedContent(richContentToDisplay, CONTENT_TYPES.CONTACT)) {\n\t\tif (isNotEmpty(phoneNumbers)) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n};\n\nexport default isEnoughAddData;\n","import React, { useContext } from 'react';\nimport ReactDOM from 'react-dom';\nimport { setClassNames } from 'ddc-classnames-js';\nimport RichContent from './richContent/RichContent';\nimport useFocusTrap from '../hooks/useFocusTrap';\nimport InventoryTabs from './InventoryTabs';\nimport VehicleCards from './VehicleCards';\nimport SearchLinks from './SearchLinks';\nimport NoResults from './NoResults';\nimport RecentSearches from './RecentSearches';\nimport shouldShowRecentSearches from '../util/shouldShowRecentSearches';\nimport hasEmptyResults from '../util/hasEmptyResults';\nimport hasResults from '../util/hasResults';\nimport ContentColumnizer from './ContentColumnizer';\nimport useAriaLive from '../hooks/useAriaLive';\nimport isEnoughAddData from '../util/isEnoughAddData';\nimport { SearchContext, UIContext, ResultsContext } from '../contexts';\n\nconst DropDown = () => {\n\n\tconst { \n\t\tsearchTerm, \n\t\tnumberOfCharactersForFirstSearchNumber,\n\t\tfetchingResults\n\t } = useContext(SearchContext);\n\t \n\t const { \n\t\tdropDownRef,\n\t\tdropDownPosition,\n\t\tinputRef,\n\t\tinputElementRef,\n\t\tinputWidth,\n\t\tlabels,\n\t\tmodalIsOpen,\n\t\tcloseModal\n\t } = useContext(UIContext);\n\t \n\t const {\n\t\tpreparedInventoryResults,\n\t\tpageSearchResults,\n\t\trichContentToDisplay,\n\t\trecentSearches,\n\t\thandleLinkClick,\n\t\taddInfo,\n\t\tnoResultsLinks,\n\t\tshowTabs,\n\t\thasSingleVehicle\n\t } = useContext(ResultsContext);\n\n\t const { suggestions, vehicles, allVehiclesPath } = preparedInventoryResults || {};\n\n\tconst isSearchTermLongEnough =\n\t\tsearchTerm?.length >= numberOfCharactersForFirstSearchNumber;\n\n\tconst hasResultsLocal = hasResults(pageSearchResults, suggestions, vehicles);\n\n\tconst hasEmptyResultsLocal = hasEmptyResults(\n\t\tpageSearchResults,\n\t\tsuggestions,\n\t\tvehicles\n\t);\n\n\tconst announceText = useAriaLive(\n\t\tisSearchTermLongEnough,\n\t\thasResultsLocal,\n\t\thasEmptyResultsLocal\n\t);\n\n\tconst hasRichContentToDisplay = isEnoughAddData(\n\t\trichContentToDisplay,\n\t\taddInfo\n\t);\n\n\tconst shouldRenderNoResults =\n\t\t!hasResultsLocal &&\n\t\thasEmptyResultsLocal &&\n\t\t!hasRichContentToDisplay &&\n\t\t!fetchingResults;\n\n\tuseFocusTrap(\n\t\t[inputRef, dropDownRef],\n\t\tdropDownRef,\n\t\tnull,\n\t\tinputElementRef,\n\t\tnull,\n\t\tmodalIsOpen,\n\t\tcloseModal\n\t);\n\n\tconst classNames = [\n\t\t'sts-search-dropdown',\n\t\t'ddc-box-1',\n\t\t'bg-contrast-low',\n\t\t'p-4',\n\t\t!modalIsOpen && 'hidden',\n\t\t'shadow'\n\t];\n\n\tif (\n\t\t!recentSearches?.length &&\n\t\t(!searchTerm ||\n\t\t\t!isSearchTermLongEnough ||\n\t\t\t(pageSearchResults === undefined &&\n\t\t\t\tsuggestions === undefined &&\n\t\t\t\tvehicles === undefined))\n\t) {\n\t\treturn null;\n\t}\n\tconst viewLinkLabel = labels.get('VIEW_ALL_VEHICLES_SITE_SEARCH');\n\tconst handleClick = () => {\n\t\thandleLinkClick('allInventoryLink', viewLinkLabel, '', '');\n\t};\n\n\tconst dropDownContent = (\n\t\t\n\t\t\t
    \n\t\t\t\t{announceText}\n\t\t\t
    \n\n\t\t\t{shouldShowRecentSearches(\n\t\t\t\tsearchTerm,\n\t\t\t\thasResultsLocal,\n\t\t\t\thasEmptyResultsLocal,\n\t\t\t\trecentSearches\n\t\t\t) && (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{isSearchTermLongEnough && (\n\t\t\t\t
    \n\t\t\t\t\t

    \n\t\t\t\t\t\t{labels.get('SEARCH_RESULTS')}\n\t\t\t\t\t

    \n\t\t\t\t\t{showTabs ? (\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{allVehiclesPath &&\n\t\t\t\t\t\t\t\t!shouldRenderNoResults &&\n\t\t\t\t\t\t\t\t!hasSingleVehicle && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{viewLinkLabel}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t 0}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{vehicles?.length > 0 ? (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t{suggestions?.length > 0 ? (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t{pageSearchResults?.length > 0 ? (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t{shouldRenderNoResults && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{(hasRichContentToDisplay ||\n\t\t\t\t\t\t\t\t\tshouldRenderNoResults) && (\n\t\t\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\treturn ReactDOM.createPortal(dropDownContent, document.body);\n};\n\nexport default DropDown;\n","import React, { useContext, useState, useRef, useEffect } from 'react';\nimport { SearchContext } from '../contexts';\n\nconst LoadingAnimation = () => {\n\tconst [shouldAnimate, setShouldAnimate] = useState(false);\n\tconst svgRef = useRef(null);\n\tconst lineRef = useRef(null);\n\n\tconst { fetchingResults } = useContext(SearchContext);\n\n\tuseEffect(() => {\n\t\tif (fetchingResults) {\n\t\t\tsetShouldAnimate(true);\n\t\t\tif (lineRef.current) {\n\t\t\t\tlineRef.current.classList.add('hidden');\n\t\t\t\tlineRef.current.classList.remove('visible');\n\t\t\t}\n\t\t\treturn () => {};\n\t\t}\n\n\t\tif (svgRef.current && lineRef.current) {\n\t\t\tconst currentSvgRef = svgRef.current;\n\n\t\t\tconst handleAnimationEnd = () => {\n\t\t\t\tsetShouldAnimate(false);\n\t\t\t\tlineRef.current.classList.remove('hidden');\n\t\t\t\tlineRef.current.classList.add('visible');\n\t\t\t};\n\n\t\t\tcurrentSvgRef.addEventListener(\n\t\t\t\t'animationiteration',\n\t\t\t\thandleAnimationEnd\n\t\t\t);\n\n\t\t\treturn () => {\n\t\t\t\tcurrentSvgRef.removeEventListener(\n\t\t\t\t\t'animationiteration',\n\t\t\t\t\thandleAnimationEnd\n\t\t\t\t);\n\t\t\t};\n\t\t}\n\n\t\treturn undefined;\n\t}, [fetchingResults]);\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
    \n\t);\n};\n\nexport default LoadingAnimation;\n","import React, { useContext } from 'react';\nimport { usePrefs } from 'wsm-common-data';\nimport { useSelector } from 'react-redux';\nimport { setClassNames } from 'ddc-classnames-js';\nimport { trackEvent } from 'ddc-track-event';\nimport { g } from '../global-constants';\nimport LoadingAnimation from './LoadingComponent';\nimport { SearchContext, UIContext } from '../contexts';\n\nconst InputDisplay = () => {\n\n\tconst { \n\t\tsearchTerm, \n\t\tsearchTermEmbedded, \n\t\thandleOnChangeInput, \n\t\thandleSubmission,\n\t\tonClear,\n\t\tsetSearchTerm\n\t } = useContext(SearchContext);\n\t \n\t const { \n\t\tdisplayType,\n\t\tinputElementRef,\n\t\tinputRef,\n\t\tisEmbeddedOverrideActive,\n\t\tisMobile,\n\t\tlabels,\n\t\tmodalIsOpen,\n\t\topenModal,\n\t\tsetIsEmbeddedOverrideActive,\n\t\twidgetName,\n\t\twindowId\n\t } = useContext(UIContext);\n\n\tconst onInputHandler = () => {\n\t\tsetIsEmbeddedOverrideActive(true);\n\t\tif (!isEmbeddedOverrideActive) {\n\t\t\tsetSearchTerm('');\n\t\t}\n\t};\n\n\tconst { searchPlaceholderLabel } = usePrefs();\n\n\tconst { pageAlias } = useSelector((state) => state.widgetData);\n\n\tconst inputId = `${pageAlias}_${windowId}`;\n\n\tconst inputClassNames = [\n\t\t'form-control',\n\t\t'site-text-search-input',\n\t\t'font-size-ios-zoom-override',\n\t\t'form-control-transparent',\n\t\t'pl-0'\n\t];\n\tconst clearClassNames = [\n\t\t'btn-unstyled text-link-muted',\n\t\t'py-3',\n\t\t'px-4',\n\t\t'btn-sm',\n\t\t'border-neutral-0-alpha-3',\n\t\t!modalIsOpen && 'hidden'\n\t];\n\n\tconst inputContainerClassNames = [\n\t\t'input-container text-left',\n\t\t(searchTerm || searchTermEmbedded) && 'has-content'\n\t];\n\n\tconst displayValue = () => {\n\t\tif (displayType === 'embedded' && !isEmbeddedOverrideActive) {\n\t\t return searchTermEmbedded;\n\t\t}\n\t\treturn searchTerm;\n\t };\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t handleSubmission(e)}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{labels.get(searchPlaceholderLabel)}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\topenModal?.();\n\t\t\t\t\t\t\t\tonInputHandler?.();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tvalue={displayValue()}\n\t\t\t\t\t\t\tonFocus={() => {\n\t\t\t\t\t\t\t\tif (!isMobile && !modalIsOpen) {\n\t\t\t\t\t\t\t\t\topenModal?.();\n\t\t\t\t\t\t\t\t\tonInputHandler?.();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonChange={(e) =>\n\t\t\t\t\t\t\t\thandleOnChangeInput(e.target.value)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmaxLength={100}\n\t\t\t\t\t\t\tdata-testid=\"sts-input\"\n\t\t\t\t\t\t\tref={inputElementRef}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t\t{!(displayType === g.EMBEDDED && !isEmbeddedOverrideActive) && (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\ttrackEvent(widgetName, windowId, {\n\t\t\t\t\t\t\t\t\taction: 'clicked',\n\t\t\t\t\t\t\t\t\telement: 'clear button',\n\t\t\t\t\t\t\t\t\tresult: 'search field cleared'\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tonClear();\n\t\t\t\t\t\t\t\tinputElementRef.current?.focus();\n\t\t\t\t\t\t\t\t// Place cursor at the end of empty input\n\t\t\t\t\t\t\t\tinputElementRef.current?.setSelectionRange(\n\t\t\t\t\t\t\t\t\tinputElementRef.current.value.length,\n\t\t\t\t\t\t\t\t\tinputElementRef.current.value.length\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tdata-testid=\"clear-button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{labels.get('CLEAR')}\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\nexport default InputDisplay;\n","const __WEBPACK_NAMESPACE_OBJECT__ = DDC.Hysterics;","/* eslint-disable max-len */\nimport { hysteriFetch, wrappers } from 'hysterics';\nimport { setNewRelicCustomAttribute } from 'ddc-new-relic';\n\nlet initialLoad = true;\n\nexport default async function fetchInventory({\n\tsearchTerm,\n\tsiteId,\n\tlocale = 'en_US',\n\twidgetSearchServiceUri = '',\n\tconfigTypes,\n\tresultsPageAlias = '',\n\tinventoryFetchTimeout,\n\tshouldReturnCardsAlso,\n\tvehicleOrder,\n\tconditionFilter\n}) {\n\t// HYSTERIFETCH USAGE HERE:\n\t// On server-side, hysterifetch should only be invoked once per service (in module scope)\n\t// This hysterifetch invocation is on client, every page refresh is a new instance\n\t// This is so we can pass a timeout value from feature flag\n\tconst inventoryClientService = hysteriFetch('inventoryClientService', {\n\t\t[wrappers.timeout.contextKey]: {\n\t\t\ttimeout: inventoryFetchTimeout\n\t\t},\n\t\t[wrappers.retry.contextKey]: {\n\t\t\tretries: 1\n\t\t}\n\t});\n\tlet sortByNewest = true;\n\tif (vehicleOrder === 'Oldest First') {\n\t\tsortByNewest = false;\n\t}\n\n\tlet apiURL = `${widgetSearchServiceUri}/inventorySearch/${siteId}/${locale}?q=${encodeURIComponent(\n\t\tsearchTerm\n\t)}&ct=${configTypes}&shouldReturnCardsAlso=${shouldReturnCardsAlso}&sortByNewest=${sortByNewest}`;\n\n\tif (conditionFilter) {\n\t\tapiURL += `&conditionFilter=${conditionFilter}`;\n\t}\n\n\tconst response = await inventoryClientService(apiURL);\n\n\t// TODO: Temporary code.\n\t// There are instances where a user gets navigated to the catch-all search results page\n\t// rather than the SRP as a result of typing too fast and hitting return.\n\n\t// Logging to NR when the following conditions are met:\n\t// When the user is redirected to the search results page\n\t// AND only once on initial load\n\t// AND when the document.referrer happens to be the same domain\n\tif (\n\t\twindow.location.href.includes(resultsPageAlias) &&\n\t\tinitialLoad &&\n\t\tdocument.referrer.startsWith(window.location.origin)\n\t) {\n\t\tconst suggestions = (response && response.suggestions) || [];\n\t\tconst { count } = suggestions[0] || 0;\n\t\tif (count > 0) {\n\t\t\tsetNewRelicCustomAttribute(\n\t\t\t\t'wsSiteTextSearch-navigatedToSearchPageByError',\n\t\t\t\t'true'\n\t\t\t);\n\t\t}\n\t\tinitialLoad = false;\n\t}\n\n\treturn response;\n}\n","import logger from 'ws-scripts/modules/logger';\nimport { hysteriFetch, wrappers } from 'hysterics';\n\nconst pagesClientService = hysteriFetch('pagesClientService', {\n\ttimeout: {\n\t\ttimeout: 1900\n\t},\n\t[wrappers.retry.contextKey]: {\n\t\tretries: 1\n\t}\n});\n\nexport default async function fetchPages({\n\tsearchTerm,\n\tsiteId,\n\tlocale = 'en_US',\n\twidgetSearchServiceUri = '',\n\tlimit\n}) {\n\ttry {\n\t\tconst response = await pagesClientService(\n\t\t\t// proxy through the node server if on localhost or dev because the relative endpoint is not available\n\t\t\t`${widgetSearchServiceUri}/pageSearch/${siteId}/${locale}?q=${encodeURIComponent(\n\t\t\t\tsearchTerm\n\t\t\t)}&limit=${limit}`\n\t\t);\n\t\treturn response;\n\t} catch (error) {\n\t\tlogger.error(\n\t\t\t`Error response from page search request: Error: ${error}`\n\t\t);\n\t\treturn [];\n\t}\n}\n","export const transformInventoryResults = (results, inventorySrpPath) => {\n\tlet transformedResults = [];\n\tif (results.length > 1 || (results.length === 1 && results[0].count)) {\n\t\ttransformedResults = results\n\t\t\t.filter((item) => item.count > 0)\n\t\t\t.map(({ suggestion, count, facetInfo }) => {\n\t\t\t\treturn {\n\t\t\t\t\ttitle: suggestion,\n\t\t\t\t\tcount,\n\t\t\t\t\tfacets: Object.keys(facetInfo).join(','),\n\t\t\t\t\tpath: facetInfo\n\t\t\t\t\t\t? `${inventorySrpPath}?${Object.keys(facetInfo)\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\t\t\t`${encodeURIComponent(\n\t\t\t\t\t\t\t\t\t\t\tkey\n\t\t\t\t\t\t\t\t\t\t)}=${encodeURIComponent(\n\t\t\t\t\t\t\t\t\t\t\tfacetInfo[key]\n\t\t\t\t\t\t\t\t\t\t)}`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join('&')}`\n\t\t\t\t\t\t: inventorySrpPath\n\t\t\t\t};\n\t\t\t});\n\t}\n\treturn transformedResults;\n};\n\nexport const makeAllLinkPath = (\n\tresults,\n\tinventorySrpPath,\n\ttransformedResults\n) => {\n\tconst validResults = results.filter(({ count }) => count > 0);\n\n\tif (\n\t\tvalidResults.length > 0 &&\n\t\tvalidResults[0].facetInfo?.model !== undefined\n\t) {\n\t\tconst models = validResults.map((item) => item.facetInfo.model);\n\n\t\tconst uniqueModels = [...new Set(models)];\n\t\tconst queryString = `make=${\n\t\t\tvalidResults[0].facetInfo.make\n\t\t}&${uniqueModels\n\t\t\t.map((model) => `model=${encodeURIComponent(model)}`)\n\t\t\t.join('&')}`;\n\t\treturn `${inventorySrpPath}?${queryString}`;\n\t} else if (validResults.length > 0 && validResults?.[0]?.count > 1) {\n\t\treturn transformedResults?.[0]?.path;\n\t} else {\n\t\treturn '';\n\t}\n};\n","const RICH_CONTENT_SEARCH_TERMS = {\n\t'phone-sales': [\n\t\t'contacts',\n\t\t'phones',\n\t\t'calls',\n\t\t'sales',\n\t\t'demos',\n\t\t'managers',\n\t\t'leases'\n\t],\n\t'phone-service': [\n\t\t'contacts',\n\t\t'phones',\n\t\t'calls',\n\t\t'services',\n\t\t'oil changes',\n\t\t'battery',\n\t\t'batteries',\n\t\t'tires',\n\t\t'snow tires',\n\t\t'managers',\n\t\t'car problems'\n\t],\n\t'phone-parts': [\n\t\t'contacts',\n\t\t'phones',\n\t\t'calls',\n\t\t'parts',\n\t\t'oil changes',\n\t\t'battery',\n\t\t'batteries',\n\t\t'plows',\n\t\t'boxes',\n\t\t'tires',\n\t\t'snow tires',\n\t\t'managers'\n\t],\n\t'phone-commercial': [\n\t\t'contacts',\n\t\t'phones',\n\t\t'calls',\n\t\t'commercials',\n\t\t'managers'\n\t],\n\temail: [\n\t\t'contacts',\n\t\t'addresses',\n\t\t'sales',\n\t\t'services',\n\t\t'parts',\n\t\t'commercials',\n\t\t'messages',\n\t\t'chats',\n\t\t'emails',\n\t\t'managers'\n\t],\n\taddress: ['contacts', 'addresses', 'directions', 'maps', 'locations'],\n\t'hours-sales': [\n\t\t'contacts',\n\t\t'hours',\n\t\t'sales',\n\t\t'times',\n\t\t'opens',\n\t\t'closes',\n\t\t'demos',\n\t\t'leasees'\n\t],\n\t'hours-service': [\n\t\t'contacts',\n\t\t'hours',\n\t\t'services',\n\t\t'times',\n\t\t'opens',\n\t\t'closes',\n\t\t'oil changes',\n\t\t'battery',\n\t\t'batteries',\n\t\t'tires',\n\t\t'snow tires',\n\t\t'car problems'\n\t],\n\t'hours-parts': [\n\t\t'contacts',\n\t\t'hours',\n\t\t'parts',\n\t\t'times',\n\t\t'opens',\n\t\t'closes',\n\t\t'oil changes',\n\t\t'battery',\n\t\t'batteries',\n\t\t'plows',\n\t\t'boxes',\n\t\t'tires',\n\t\t'snow tires'\n\t],\n\t'hours-commercial': [\n\t\t'contacts',\n\t\t'hours',\n\t\t'commercials',\n\t\t'times',\n\t\t'opens',\n\t\t'closes'\n\t]\n};\n\nconst RICH_CONTENT_SEARCH_TERMS_ES = {\n\t'phone-sales': [\n\t\t'contactos',\n\t\t'telefonos',\n\t\t'teléfonos',\n\t\t'llamadas',\n\t\t'ventas',\n\t\t'manifestaciones',\n\t\t'gerentes',\n\t\t'arrendamientos'\n\t],\n\t'phone-service': [\n\t\t'contactos',\n\t\t'telefonos',\n\t\t'teléfonos',\n\t\t'llamadas',\n\t\t'servicios',\n\t\t'cambios de aceite',\n\t\t'bateria',\n\t\t'batería',\n\t\t'baterias',\n\t\t'baterías',\n\t\t'neumaticos',\n\t\t'neumáticos',\n\t\t'neumaticos para nieve',\n\t\t'neumáticos para nieve',\n\t\t'gerentes',\n\t\t'problemas con el auto'\n\t],\n\t'phone-parts': [\n\t\t'contactos',\n\t\t'telefonos',\n\t\t'teléfonos',\n\t\t'llamadas',\n\t\t'piezas',\n\t\t'cambios de aceite',\n\t\t'bateria',\n\t\t'batería',\n\t\t'baterias',\n\t\t'baterías',\n\t\t'quitanieves',\n\t\t'cajas',\n\t\t'neumaticos',\n\t\t'neumáticos',\n\t\t'neumaticos para nieve',\n\t\t'neumáticos para nieve',\n\t\t'gerentes'\n\t],\n\t'phone-commercial': [\n\t\t'contactos',\n\t\t'telefonos',\n\t\t'teléfonos',\n\t\t'llamadas',\n\t\t'comerciales',\n\t\t'gerentes'\n\t],\n\temail: [\n\t\t'contactos',\n\t\t'direcciones',\n\t\t'ventas',\n\t\t'servicios',\n\t\t'piezas',\n\t\t'comerciales',\n\t\t'mensajes',\n\t\t'charlas',\n\t\t'correos electronicos',\n\t\t'correos electrónicos',\n\t\t'gerentes'\n\t],\n\taddress: ['contactos', 'direcciones', 'mapas', 'ubicaciones'],\n\t'hours-sales': [\n\t\t'contactos',\n\t\t'horas',\n\t\t'ventas',\n\t\t'abre',\n\t\t'cierra',\n\t\t'manifestaciones',\n\t\t'arrendatarios'\n\t],\n\t'hours-service': [\n\t\t'contactos',\n\t\t'horas',\n\t\t'servicios',\n\t\t'abre',\n\t\t'cierra',\n\t\t'cambios de aceite',\n\t\t'bateria',\n\t\t'batería',\n\t\t'baterias',\n\t\t'baterías',\n\t\t'neumaticos',\n\t\t'neumáticos',\n\t\t'neumaticos para nieve',\n\t\t'neumáticos para nieve',\n\t\t'problemas con el auto'\n\t],\n\t'hours-parts': [\n\t\t'contactos',\n\t\t'horas',\n\t\t'piezas',\n\t\t'veces',\n\t\t'abre',\n\t\t'cierra',\n\t\t'cambios de aceite',\n\t\t'bateria',\n\t\t'batería',\n\t\t'baterias',\n\t\t'baterías',\n\t\t'quitanieves',\n\t\t'cajas',\n\t\t'neumaticos',\n\t\t'neumáticos',\n\t\t'neumaticos para nieve',\n\t\t'neumáticos para nieve'\n\t],\n\t'hours-commercial': [\n\t\t'contactos',\n\t\t'horas',\n\t\t'comerciales',\n\t\t'veces',\n\t\t'abre',\n\t\t'cierra'\n\t]\n};\n\nconst RICH_CONTENT_SEARCH_TERMS_FR = {\n\t'phone-sales': [\n\t\t'contacts',\n\t\t'telephones',\n\t\t'téléphones',\n\t\t'appels',\n\t\t'ventes',\n\t\t'demos',\n\t\t'démos',\n\t\t'dirigeants',\n\t\t'baux'\n\t],\n\t'phone-service': [\n\t\t'contacts',\n\t\t'telephones',\n\t\t'téléphones',\n\t\t'appels',\n\t\t'services',\n\t\t\"vidanges d'huile\",\n\t\t'batterie',\n\t\t'batteries',\n\t\t'pneus',\n\t\t\"pneus d'hiver\",\n\t\t'pneus neige',\n\t\t'dirigeants',\n\t\t'problemes de voiture',\n\t\t'problèmes de voiture'\n\t],\n\t'phone-parts': [\n\t\t'contacts',\n\t\t'telephones',\n\t\t'téléphones',\n\t\t'appels',\n\t\t'pieces',\n\t\t'pièces',\n\t\t\"vidanges d'huile\",\n\t\t'batterie',\n\t\t'batteries',\n\t\t'charrues',\n\t\t'boites',\n\t\t'boîtes',\n\t\t'pneus',\n\t\t\"pneus d'hiver\",\n\t\t'pneus neige',\n\t\t'dirigeants'\n\t],\n\t'phone-commercial': [\n\t\t'contacts',\n\t\t'telephones',\n\t\t'téléphones',\n\t\t'appels',\n\t\t'publicites',\n\t\t'publicités',\n\t\t'dirigeants'\n\t],\n\temail: [\n\t\t'contacts',\n\t\t'adresses',\n\t\t'ventes',\n\t\t'services',\n\t\t'pieces',\n\t\t'pièces',\n\t\t'publicites',\n\t\t'publicités',\n\t\t'messages',\n\t\t'discussions',\n\t\t'e-mails',\n\t\t'dirigeants'\n\t],\n\taddress: ['contacts', 'adresses', 'instructions', 'cartes', 'emplacements'],\n\t'hours-sales': [\n\t\t'contacts',\n\t\t'heures',\n\t\t'ventes',\n\t\t'fois',\n\t\t'ouvre',\n\t\t'ferme',\n\t\t'demos',\n\t\t'démos',\n\t\t'locataires'\n\t],\n\t'hours-service': [\n\t\t'contacts',\n\t\t'heures',\n\t\t'services',\n\t\t'fois',\n\t\t'ouvre',\n\t\t'ferme',\n\t\t\"vidanges d'huile\",\n\t\t'batterie',\n\t\t'batteries',\n\t\t'pneus',\n\t\t\"pneus d'hiver\",\n\t\t'pneus neige',\n\t\t'problemes de voiture',\n\t\t'problèmes de voiture'\n\t],\n\t'hours-parts': [\n\t\t'contacts',\n\t\t'heures',\n\t\t'pieces',\n\t\t'pièces',\n\t\t'fois',\n\t\t'ouvre',\n\t\t'ferme',\n\t\t\"vidanges d'huile\",\n\t\t'batterie',\n\t\t'batteries',\n\t\t'charrues',\n\t\t'boites',\n\t\t'boîtes',\n\t\t'pneus',\n\t\t\"pneus d'hiver\",\n\t\t'pneus neige'\n\t],\n\t'hours-commercial': [\n\t\t'contacts',\n\t\t'heures',\n\t\t'publicites',\n\t\t'publicités',\n\t\t'fois',\n\t\t'ouvre',\n\t\t'ferme'\n\t]\n};\n\nlet fuseInstance = null;\n\nexport default async function getRichContentResults(\n\tsearchTerm,\n\tminimumInputCharactersToTriggerResults,\n\trichContentToHide = [],\n\tlocale = 'en_US'\n) {\n\tif (searchTerm.length < minimumInputCharactersToTriggerResults) {\n\t\treturn [];\n\t}\n\tconst language = locale.slice(0, 2);\n\tlet searchTermsMap;\n\tswitch (language) {\n\t\tcase 'es':\n\t\t\tsearchTermsMap = RICH_CONTENT_SEARCH_TERMS_ES;\n\t\t\tbreak;\n\t\tcase 'fr':\n\t\t\tsearchTermsMap = RICH_CONTENT_SEARCH_TERMS_FR;\n\t\t\tbreak;\n\t\tcase 'en':\n\t\tdefault:\n\t\t\tsearchTermsMap = RICH_CONTENT_SEARCH_TERMS;\n\t\t\tbreak;\n\t}\n\n\tif (!fuseInstance) {\n\t\tconst Fuse = (await import('fuse.js')).default;\n\t\tconst fuseData = Object.entries(searchTermsMap).map(\n\t\t\t([name, keywords]) => ({\n\t\t\t\tname,\n\t\t\t\tkeywords\n\t\t\t})\n\t\t);\n\n\t\tfuseInstance = new Fuse(fuseData, {\n\t\t\tshouldSort: true,\n\t\t\tincludeScore: true,\n\t\t\tkeys: ['keywords'],\n\t\t\tthreshold: 0.2\n\t\t});\n\t} else {\n\t\t// Update fuse data based on the new searchTermsMap if necessary\n\t\tconst fuseData = Object.entries(searchTermsMap).map(\n\t\t\t([name, keywords]) => ({\n\t\t\t\tname,\n\t\t\t\tkeywords\n\t\t\t})\n\t\t);\n\t\tfuseInstance.setCollection(fuseData);\n\t}\n\n\tconst results = fuseInstance.search(searchTerm);\n\n\treturn results\n\t\t.map((result) => result.item.name)\n\t\t.filter((name) => !richContentToHide.includes(name));\n}\n","import React, { useContext } from 'react';\nimport ReactDOM from 'react-dom';\nimport { usePrefs, useRequestData } from 'wsm-common-data';\nimport { setClassNames } from 'ddc-classnames-js';\nimport { isBrowser } from 'ws-scripts/modules/environment';\nimport { g } from '../global-constants';\nimport { UIContext } from '../contexts';\n\nconst ButtonDisplay = () => {\n\n\tconst { displayType, labels, openButtonRef, openModal } = useContext(UIContext);\n\tconst {\n\t\tsearchButtonLabel,\n\t\tsearchButtonIcon,\n\t\tsearchButtonIconSize,\n\t\tsearchButtonStyle\n\t} = usePrefs();\n\tconst useNavPortal = displayType === 'navigation';\n\tlet label = useNavPortal ? null : labels.get(searchButtonLabel);\n\tconst title = labels.get('SEARCH_THE_WHOLE_SITE');\n\tconst { deviceType } = useRequestData();\n\tconst LinkElement = useNavPortal ? 'a' : 'button';\n\n\tconst iconClasses = [\n\t\t'ddc-icon',\n\t\tuseNavPortal && 'ddc-nav-icon',\n\t\tsearchButtonIcon ? `ddc-icon-${searchButtonIcon}` : 'ddc-icon-search',\n\t\tsearchButtonIconSize && `ddc-icon-size-${searchButtonIconSize}`,\n\t\tlabel && 'mr-3'\n\t];\n\n\tconst buttonClasses = [\n\t\t...(useNavPortal\n\t\t\t? ['ddc-nav-icon-link']\n\t\t\t: [\n\t\t\t\t\t'btn',\n\t\t\t\t\t`btn-${searchButtonStyle}`,\n\t\t\t\t\t'text-decoration-none',\n\t\t\t\t\t'btn-no-decoration'\n\t\t\t ])\n\t];\n\n\tlet navigationTarget;\n\tif (useNavPortal && isBrowser) {\n\t\tnavigationTarget = document.querySelector(\n\t\t\t'.ws-site-text-search-navigation-target'\n\t\t);\n\t\tif (navigationTarget) {\n\t\t\tif (deviceType === g.MOBILE) {\n\t\t\t\tconst velocityButton =\n\t\t\t\t\tnavigationTarget.querySelector('.btn-placeholder');\n\t\t\t\tif (velocityButton) {\n\t\t\t\t\t// remove the velocity label to make way for the portal\n\t\t\t\t\tnavigationTarget.removeChild(velocityButton);\n\t\t\t\t}\n\t\t\t\t// on mobile, See if the 'data-search-label' has a value.\n\t\t\t\tlabel =\n\t\t\t\t\tnavigationTarget.getAttribute('data-search-label') || null;\n\t\t\t\tconst navButtonClasses = [\n\t\t\t\t\t'btn',\n\t\t\t\t\t'ddc-btn-nav',\n\t\t\t\t\t'btn-no-decoration',\n\t\t\t\t\t'border-left',\n\t\t\t\t\t'btn-search',\n\t\t\t\t\t'btn-default',\n\t\t\t\t\t'text-center'\n\t\t\t\t];\n\t\t\t\tbuttonClasses.push(...navButtonClasses);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst button = (\n\t\t\n\t\t\t\n\t\t\t{deviceType === g.MOBILE && label ? (\n\t\t\t\t{label}\n\t\t\t) : (\n\t\t\t\tlabel\n\t\t\t)}\n\t\t\n\t);\n\n\tconst buttonInNavigation = navigationTarget\n\t\t? ReactDOM.createPortal(button, navigationTarget)\n\t\t: null;\n\n\treturn useNavPortal ? buttonInNavigation : button;\n};\n\nexport default ButtonDisplay;\n","import React, { useEffect, useState, useContext, useRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport { setClassNames } from 'ddc-classnames-js';\nimport { usePrefs } from 'wsm-common-data';\nimport { g } from '../global-constants';\nimport useFocusTrap from '../hooks/useFocusTrap';\nimport InputDisplay from './InputDisplay';\nimport VehicleCards from './VehicleCards';\nimport SearchLinks from './SearchLinks';\nimport InventoryTabs from './InventoryTabs';\nimport RichContent from './richContent/RichContent';\nimport NoResults from './NoResults';\nimport RecentSearches from './RecentSearches';\nimport shouldShowRecentSearches from '../util/shouldShowRecentSearches';\nimport hasEmptyResults from '../util/hasEmptyResults';\nimport hasResults from '../util/hasResults';\nimport ContentColumnizer from './ContentColumnizer';\nimport useAriaLive from '../hooks/useAriaLive';\nimport isEnoughAddData from '../util/isEnoughAddData';\nimport { SearchContext, UIContext, ResultsContext } from '../contexts';\n\nconst FlyOut = () => {\n\tconst flyOutRef = useRef(null);\n\n\tconst {\n\t\tsearchTerm,\n\t\tnumberOfCharactersForFirstSearchNumber,\n\t\tfetchingResults\n\t} = useContext(SearchContext);\n\n\tconst {\n\t\topenButtonRef,\n\t\tcloseModal,\n\t\tinputElementRef,\n\t\tlabels,\n\t\tmodalIsOpen,\n\t\tisMobile,\n\t\tscreenWidth,\n\t\tsetIsEmbeddedOverrideActive\n\t} = useContext(UIContext);\n\n\tconst {\n\t\trecentSearches,\n\t\tpageSearchResults,\n\t\tpreparedInventoryResults,\n\t\thandleLinkClick,\n\t\taddInfo,\n\t\trichContentToDisplay,\n\t\tnoResultsLinks,\n\t\tshowTabs,\n\t\thasSingleVehicle\n\t} = useContext(ResultsContext);\n\n\tconst prefs = usePrefs();\n\tconst [localmodalIsOpen, setLocalmodalIsOpen] = useState(false);\n\n\tconst { suggestions, vehicles, allVehiclesPath } =\n\t\tpreparedInventoryResults || {};\n\n\tconst isSearchTermLongEnough =\n\t\tsearchTerm?.length >= numberOfCharactersForFirstSearchNumber;\n\n\tconst hasResultsLocal = hasResults(\n\t\tpageSearchResults,\n\t\tsuggestions,\n\t\tvehicles\n\t);\n\n\tconst hasEmptyResultsLocal = hasEmptyResults(\n\t\tpageSearchResults,\n\t\tsuggestions,\n\t\tvehicles\n\t);\n\n\tconst announceText = useAriaLive(\n\t\tisSearchTermLongEnough,\n\t\thasResultsLocal,\n\t\thasEmptyResultsLocal\n\t);\n\n\tconst hasRichContentToDisplay = isEnoughAddData(\n\t\trichContentToDisplay,\n\t\taddInfo\n\t);\n\n\tconst shouldRenderNoResults =\n\t\t!hasResultsLocal &&\n\t\thasEmptyResultsLocal &&\n\t\t!hasRichContentToDisplay &&\n\t\t!fetchingResults;\n\n\tuseFocusTrap(\n\t\t[openButtonRef, flyOutRef],\n\t\tnull,\n\t\tflyOutRef,\n\t\tnull,\n\t\topenButtonRef,\n\t\tmodalIsOpen,\n\t\tcloseModal\n\t);\n\n\tconst isWideScreen = screenWidth > 768;\n\n\tconst classNames = [\n\t\t'sts-search-flyout',\n\t\t'box',\n\t\t'pt-4 pb-4 pl-5 pr-5',\n\t\tlocalmodalIsOpen && 'slide-left',\n\t\t!isMobile && !isWideScreen ? 'one-column' : isMobile && 'mobile',\n\t\tisWideScreen && 'two-columns'\n\t];\n\n\tconst closeClassNames = [\n\t\t'btn-unstyled text-link-muted',\n\t\t'py-0',\n\t\t'px-0',\n\t\t'my-3',\n\t\t'border-neutral-0-alpha-3',\n\t\t'float-right'\n\t];\n\n\tconst viewLinkLabel = labels.get('VIEW_ALL_VEHICLES_SITE_SEARCH');\n\tconst handleClick = () => {\n\t\thandleLinkClick('allInventoryLink', viewLinkLabel, '', '');\n\t};\n\n\tconst onClose = () => {\n\t\tsetIsEmbeddedOverrideActive(false);\n\t\tcloseModal();\n\t};\n\n\tlet ariaLabelledBy;\n\tif (searchTerm) {\n\t\tariaLabelledBy = 'search-modal-headline';\n\t} else if (recentSearches?.length > 0) {\n\t\tariaLabelledBy = 'recent-searches-heading';\n\t} else {\n\t\tariaLabelledBy = 'default-flyout-label';\n\t}\n\n\tuseEffect(() => {\n\t\tconst timeoutId = setTimeout(() => {\n\t\t\tsetLocalmodalIsOpen(true);\n\t\t}, 50);\n\n\t\tif (modalIsOpen) {\n\t\t\tdocument.body.style.overflow = 'hidden';\n\t\t\tinputElementRef.current?.focus();\n\t\t}\n\n\t\treturn () => {\n\t\t\tclearTimeout(timeoutId);\n\t\t};\n\t}, [modalIsOpen, inputElementRef]);\n\n\tconst flyOutContent = (\n\t\t<>\n\t\t\t{/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */}\n\t\t\t onClose(g.CLOSE_BUTTON)}\n\t\t\t\tdata-widget-name=\"ws-site-text-search\"\n\t\t\t/>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{labels.get(prefs.searchPlaceholderLabel)}\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t{announceText}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{labels.get('SEARCH')}\n\t\t\t\t\t\n\t\t\t\t\t onClose(g.CLOSE_BUTTON)}\n\t\t\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\t\t\tif (e.key === 'Enter') {\n\t\t\t\t\t\t\t\tonClose(g.CLOSE_BUTTON);\n\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\topenButtonRef.current?.focus(); // Focus on the button after a delay\n\t\t\t\t\t\t\t\t}, 10);\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\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t{shouldShowRecentSearches(\n\t\t\t\t\t\tsearchTerm,\n\t\t\t\t\t\thasResultsLocal,\n\t\t\t\t\t\thasEmptyResultsLocal,\n\t\t\t\t\t\trecentSearches\n\t\t\t\t\t) && }\n\t\t\t\t\t{isSearchTermLongEnough && (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t{labels.get('SEARCH_RESULTS')}\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t{showTabs ? (\n\t\t\t\t\t\t\t\t\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\t\t{allVehiclesPath &&\n\t\t\t\t\t\t\t\t\t\t!shouldRenderNoResults &&\n\t\t\t\t\t\t\t\t\t\t!hasSingleVehicle && (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{viewLinkLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t 0}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{vehicles?.length > 0 ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t\t\t{suggestions?.length > 0 ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t\t\t{pageSearchResults?.length > 0 ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t\t\t{shouldRenderNoResults && (\n\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t{(hasRichContentToDisplay ||\n\t\t\t\t\t\t\t\t\t\t\t\tshouldRenderNoResults) && (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\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\treturn createPortal(flyOutContent, document.body);\n};\n\nexport default FlyOut;\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst PaginationItem = ({ pageCallback, currentPage, pageIndex }) => {\n\tconst isCurrent = pageIndex === currentPage;\n\tconst active = isCurrent ? 'active' : null;\n\tconst ariaCurrent = isCurrent ? 'page' : null;\n\tconst displayNumber = pageIndex + 1;\n\n\treturn (\n\t\t\n\t\t\t pageCallback(pageIndex)}\n\t\t\t\taria-label={`Goto Page ${displayNumber}`}\n\t\t\t\tdata-testid={`site-text-search-pagination-page-${displayNumber}-a`}\n\t\t\t\ttitle={\n\t\t\t\t\tisCurrent\n\t\t\t\t\t\t? `Currently viewing page ${displayNumber} of matching results`\n\t\t\t\t\t\t: `Go to page ${displayNumber} of matching results`\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{displayNumber}\n\t\t\t\n\t\t\n\t);\n};\n\nPaginationItem.propTypes = {\n\tpageCallback: PropTypes.func,\n\tcurrentPage: PropTypes.number.isRequired,\n\tpageIndex: PropTypes.number.isRequired\n};\n\nexport default PaginationItem;\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport PaginationItem from './PaginationItem';\n\n// https://media.tenor.com/si1X-OUXHKwAAAAM/senator-vreenak.gif\nconst Pagination = ({ pageCallback, currentPage }) => {\n\treturn (\n\t\t\n\t\t\t
      \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
    • \n\t\t\t\t\t pageCallback(1)}\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
    \n\t\t\n\t);\n};\n\nPagination.propTypes = {\n\tpageCallback: PropTypes.func,\n\tcurrentPage: PropTypes.number\n};\n\nexport default Pagination;\n","import React, { useContext, useState } from 'react';\nimport { setClassNames } from 'ddc-classnames-js';\nimport { addNewRelicPageAction } from 'ddc-new-relic';\nimport RichContent from './richContent/RichContent';\nimport useFocusTrap from '../hooks/useFocusTrap';\nimport SearchLinks from './SearchLinks';\nimport NoResults from './NoResults';\nimport hasEmptyResults from '../util/hasEmptyResults';\nimport hasResults from '../util/hasResults';\nimport ContentColumnizer from './ContentColumnizer';\nimport Pagination from './Pagination';\nimport isEnoughAddData from '../util/isEnoughAddData';\nimport { SearchContext, UIContext, ResultsContext } from '../contexts';\n\nconst StaticEmbedded = () => {\n\t\n\tconst { searchTermEmbedded, numberOfCharactersForFirstSearchNumber } = useContext(SearchContext);\n \n const { \n embeddedDropDownRef, // This should be used in the render!\n inputRef,\n inputElementRef,\n modalIsOpen,\n closeModal,\n\tlabels\n } = useContext(UIContext);\n \n const {\n recentSearches,\n pageSearchResultsEmbedded,\n addInfo,\n richContentToDisplayEmbedded,\n noResultsLinks\n } = useContext(ResultsContext);\n\n \tconst suggestions = undefined;\n \tconst vehicles = undefined;\n\n\tconst [currentPage, setCurrentPage] = useState(0);\n\tconst issearchTermEmbeddedLongEnough =\n\t\tsearchTermEmbedded?.length >= numberOfCharactersForFirstSearchNumber;\n\tconst fakePage = [[], []];\n\tconst visibleLimit = 15;\n\n\tconst hasResultsLocal = hasResults(pageSearchResultsEmbedded, suggestions, vehicles);\n\n\tconst hasEmptyResultsLocal = hasEmptyResults(\n\t\tpageSearchResultsEmbedded,\n\t\tsuggestions,\n\t\tvehicles\n\t);\n\n\tconst hasrichContentToDisplayEmbedded = isEnoughAddData(\n\t\trichContentToDisplayEmbedded,\n\t\taddInfo\n\t);\n\n\tconst shouldRenderNoResults =\n\t\t!hasResultsLocal && hasEmptyResultsLocal && !hasrichContentToDisplayEmbedded;\n\n\tuseFocusTrap(\n\t\t[inputRef, embeddedDropDownRef],\n\t\tembeddedDropDownRef,\n\t\tnull,\n\t\tinputElementRef,\n\t\tnull,\n\t\tmodalIsOpen,\n\t\tcloseModal\n\t);\n\n\tconst classNames = ['sts-search-dropdown', 'p-4'];\n\n\tconst pageCallback = (page) => {\n\t\tsetCurrentPage(page);\n\t\taddNewRelicPageAction('wsSiteTextSearchDebug', {\n\t\t\teventName: 'ws-site-text-search pagination event',\n\t\t\tpage\n\t\t});\n\t};\n\n\tif (\n\t\t!recentSearches?.length &&\n\t\t(!searchTermEmbedded ||\n\t\t\t!issearchTermEmbeddedLongEnough ||\n\t\t\t(pageSearchResultsEmbedded === undefined &&\n\t\t\t\tsuggestions === undefined &&\n\t\t\t\tvehicles === undefined))\n\t) {\n\t\treturn null;\n\t}\n\n\tif (pageSearchResultsEmbedded?.length > visibleLimit) {\n\t\tpageSearchResultsEmbedded.forEach((val, index) => {\n\t\t\tif (index < visibleLimit) {\n\t\t\t\tfakePage[0].push(val);\n\t\t\t} else {\n\t\t\t\tfakePage[1].push(val);\n\t\t\t}\n\t\t});\n\t}\n\n\tconst searchLinkMarkup = () => {\n\t\tlet markup;\n\t\tif (pageSearchResultsEmbedded?.length > visibleLimit) {\n\t\t\tmarkup = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\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} else {\n\t\t\tmarkup = (\n\t\t\t\t\n\t\t\t);\n\t\t}\n\t\treturn markup;\n\t};\n\n\tconst dropDownContent = (\n\t\t\n\t\t\t{issearchTermEmbeddedLongEnough && (\n\t\t\t\t
    \n\t\t\t\t\t

    \n\t\t\t\t\t\t{labels.get('SEARCH_RESULTS')}\n\t\t\t\t\t

    \n\t\t\t\t\t 0}\n\t\t\t\t\t>\n\t\t\t\t\t\t{pageSearchResultsEmbedded?.length > 0 ? searchLinkMarkup() : null}\n\t\t\t\t\t\t{shouldRenderNoResults && (\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\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{(hasrichContentToDisplayEmbedded || shouldRenderNoResults) && (\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\treturn dropDownContent;\n};\n\n\nexport default StaticEmbedded;\n","import React, {\n\tuseEffect,\n\tuseRef,\n\tuseState,\n\tuseMemo,\n\tuseCallback\n} from 'react';\nimport {\n\tuseFlags,\n\tusePrefs,\n\tuseSitemap,\n\tuseRequestData,\n\tuseLabels\n} from 'wsm-common-data';\nimport { isBrowser } from 'ws-scripts/modules/environment';\nimport { useSelector } from 'react-redux';\nimport {\n\taddNewRelicPageAction,\n\tsetNewRelicCustomAttribute\n} from 'ddc-new-relic';\nimport { trackEvent } from 'ddc-track-event';\nimport throttle from '../util/throttle';\nimport closeModalHelper from '../util/closeModalHelper';\nimport { g } from '../global-constants';\nimport DropDown from '../components/DropDown';\nimport InputDisplay from '../components/InputDisplay';\nimport fetchInventory from '../util/fetchInventory';\nimport fetchPages from '../util/fetchPages';\nimport {\n\ttransformInventoryResults,\n\tmakeAllLinkPath\n} from '../util/transformInventoryResults';\nimport getRichContentResults from '../util/getRichContentResults';\nimport ButtonDisplay from '../components/ButtonDisplay';\nimport FlyOut from '../components/FlyOut';\nimport StaticEmbedded from '../components/StaticEmbedded';\n\nimport { SearchContext, UIContext, ResultsContext } from '../contexts';\n\n// eslint-disable-next-line react/prop-types\nconst Container = ({ displayType, isMobile }) => {\n\tif (typeof window !== 'undefined') {\n\t\twindow.DDC = window.DDC || {};\n\t\twindow.DDC.WidgetData = window.DDC.WidgetData || {};\n\t}\n\n\tconst isEmbedded = displayType === g.EMBEDDED;\n\tconst labels = useLabels();\n\tconst flags = useFlags();\n\tconst sitemap = useSitemap();\n\tconst {\n\t\tnumberOfCharactersForFirstSearch,\n\t\toverrideAllInventoryAlias,\n\t\tnoResultsLinks,\n\t\tvehicleOrder\n\t} = usePrefs();\n\n\tconst numberOfCharactersForFirstSearchNumber = parseInt(\n\t\tnumberOfCharactersForFirstSearch,\n\t\t10\n\t);\n\n\tconst { windowId, locale, widgetName } = useRequestData();\n\tconst inputRef = useRef(null);\n\tconst dropDownRef = useRef(null);\n\tconst embeddedDropDownRef = useRef(null);\n\tconst openButtonRef = useRef(null);\n\tconst inputElementRef = useRef(null);\n\n\tconst {\n\t\taccountId,\n\t\tsiteId,\n\t\twidgetSearchServiceUri,\n\t\tconfigTypes,\n\t\tpageAlias\n\t} = useSelector((state) => state.widgetData);\n\n\tconst [dropDownPosition, setDropDownPosition] = useState({\n\t\ttop: 0,\n\t\tleft: 0\n\t});\n\n\tconst [inputWidth, setInputWidth] = useState(0);\n\tconst [modalIsOpen, setModalIsOpen] = useState(false);\n\tconst [searchTerm, setSearchTerm] = useState('');\n\tconst [searchTermEmbedded, setSearchTermEmbedded] = useState('');\n\tconst [inventorySearchResults, setInventorySearchResults] = useState();\n\tconst [pageSearchResults, setPageSearchResults] = useState();\n\tconst [pageSearchResultsEmbedded, setPageSearchResultsEmbedded] =\n\t\tuseState();\n\tconst [addInfo, setAddInfo] = useState();\n\tconst [richContentToDisplay, setRichContentToDisplay] = useState([]);\n\tconst [richContentToDisplayEmbedded, setRichContentToDisplayEmbedded] =\n\t\tuseState([]);\n\tconst [fetchingResults, setFetchingResults] = useState(false);\n\tconst [screenWidth, setScreenWidth] = useState(0);\n\tconst [isEmbeddedOverrideActive, setIsEmbeddedOverrideActive] =\n\t\tuseState(false);\n\tconst [hasSingleVehicle, setHasSingleVehicle] = useState(false);\n\tconst noResultsRichContent = ['phone-sales', 'hours-sales', 'email'];\n\tconst [activeInventoryTab, setActiveInventoryTab] = useState('new');\n\tconst [disabledTabs, setDisabledTabs] = useState([]);\n\tconst renderStartTimeRef = useRef(null);\n\n\tconst filteredInventorySearchResultsByTab = useMemo(\n\t\t() =>\n\t\t\tflags['enable-conditions-tabs-site-text-search'] === true\n\t\t\t\t? {\n\t\t\t\t\t\tnew: {\n\t\t\t\t\t\t\tvehicles:\n\t\t\t\t\t\t\t\tinventorySearchResults?.new?.vehicles || [],\n\t\t\t\t\t\t\tsuggestions:\n\t\t\t\t\t\t\t\tinventorySearchResults?.new?.suggestions || [],\n\t\t\t\t\t\t\tallVehiclesPath:\n\t\t\t\t\t\t\t\tinventorySearchResults?.new?.allVehiclesPath ||\n\t\t\t\t\t\t\t\t''\n\t\t\t\t\t\t},\n\t\t\t\t\t\tused: {\n\t\t\t\t\t\t\tvehicles:\n\t\t\t\t\t\t\t\tinventorySearchResults?.used?.vehicles || [],\n\t\t\t\t\t\t\tsuggestions:\n\t\t\t\t\t\t\t\tinventorySearchResults?.used?.suggestions || [],\n\t\t\t\t\t\t\tallVehiclesPath:\n\t\t\t\t\t\t\t\tinventorySearchResults?.used?.allVehiclesPath ||\n\t\t\t\t\t\t\t\t''\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcertified: {\n\t\t\t\t\t\t\tvehicles:\n\t\t\t\t\t\t\t\tinventorySearchResults?.certified?.vehicles ||\n\t\t\t\t\t\t\t\t[],\n\t\t\t\t\t\t\tsuggestions:\n\t\t\t\t\t\t\t\tinventorySearchResults?.certified\n\t\t\t\t\t\t\t\t\t?.suggestions || [],\n\t\t\t\t\t\t\tallVehiclesPath:\n\t\t\t\t\t\t\t\tinventorySearchResults?.certified\n\t\t\t\t\t\t\t\t\t?.allVehiclesPath || ''\n\t\t\t\t\t\t}\n\t\t\t\t }\n\t\t\t\t: inventorySearchResults,\n\t\t[inventorySearchResults, flags]\n\t);\n\n\tconst [showTabs, setShowTabs] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\tflags['enable-conditions-tabs-site-text-search'] &&\n\t\t\t(filteredInventorySearchResultsByTab?.new?.vehicles?.length ||\n\t\t\t\tfilteredInventorySearchResultsByTab?.used?.vehicles?.length ||\n\t\t\t\tfilteredInventorySearchResultsByTab?.certified?.vehicles\n\t\t\t\t\t?.length)\n\t\t) {\n\t\t\tsetShowTabs(true);\n\t\t} else {\n\t\t\tsetShowTabs(false);\n\t\t}\n\t\tconst allVehicles = [\n\t\t\t...(filteredInventorySearchResultsByTab?.new?.vehicles || []),\n\t\t\t...(filteredInventorySearchResultsByTab?.used?.vehicles || []),\n\t\t\t...(filteredInventorySearchResultsByTab?.certified?.vehicles || []),\n\t\t\t...(inventorySearchResults?.vehicles || [])\n\t\t];\n\t\tsetHasSingleVehicle(allVehicles.length === 1);\n\t}, [filteredInventorySearchResultsByTab, inventorySearchResults, flags]);\n\n\tconst hasSearchResults =\n\t\tpageSearchResults?.length > 0 ||\n\t\tinventorySearchResults?.suggestions?.length > 0 ||\n\t\tinventorySearchResults?.vehicles?.length > 0 ||\n\t\tshowTabs;\n\n\tconst NO_RESULTS_LINKS = useMemo(() => {\n\t\treturn noResultsLinks.split(',').map((item) => {\n\t\t\tconst trimmedItem = item.trim();\n\t\t\treturn {\n\t\t\t\talias: trimmedItem,\n\t\t\t\ttitle: labels.get(`${trimmedItem}_SEARCH_LINK`),\n\t\t\t\tpath: sitemap.get(trimmedItem),\n\t\t\t\ticon: trimmedItem.startsWith('INVENTORY_LISTING')\n\t\t\t\t\t? 'ddc-icon-single-vehicle'\n\t\t\t\t\t: 'ddc-icon-arrow-circle-right'\n\t\t\t};\n\t\t});\n\t}, [noResultsLinks, labels, sitemap]);\n\n\tconst fetchAddInfo = useCallback(async () => {\n\t\tif (typeof window !== 'undefined' && !addInfo) {\n\t\t\t// this code eventually used for wsm-contact-transformer which looks for 'iPhone'\n\t\t\t// in userAgent so doing a tricky thing so we do not have to pass whole userAgent\n\n\t\t\tconst userAgent = window.navigator.userAgent.includes('iPhone')\n\t\t\t\t? 'iPhone'\n\t\t\t\t: 'not-apple-mobile-device';\n\n\t\t\tconst payload = {\n\t\t\t\ttimeout: flags['wsm-account-data-distributor-timeout']\n\t\t\t};\n\n\t\t\tconst fetchedAddInfo = await fetch(\n\t\t\t\t`${widgetSearchServiceUri}/addData/${accountId}/${userAgent}/${siteId}/${locale}/${widgetName}`,\n\t\t\t\t{\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\theaders: { 'Content-Type': 'application/json' },\n\t\t\t\t\tbody: JSON.stringify(payload)\n\t\t\t\t}\n\t\t\t);\n\t\t\tconst info = await fetchedAddInfo.json();\n\n\t\t\tsetAddInfo(info);\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\taccountId,\n\t\taddInfo,\n\t\tlocale,\n\t\tsiteId,\n\t\twidgetName,\n\t\twidgetSearchServiceUri\n\t]);\n\n\tconst updateDropDownPosition = useCallback(() => {\n\t\tif (inputRef.current) {\n\t\t\tconst inputRect = inputRef.current.getBoundingClientRect();\n\t\t\tconst newTop = inputRect.bottom + window.scrollY;\n\t\t\tconst newLeft = inputRect.left + window.scrollX;\n\n\t\t\t// Ensure the dropdown's top position is always below the input display's bottom position\n\t\t\tconst minTop = inputRect.bottom + window.scrollY;\n\n\t\t\tconst adjustedTop = Math.max(newTop, minTop);\n\n\t\t\tsetDropDownPosition({\n\t\t\t\ttop: adjustedTop,\n\t\t\t\tleft: newLeft\n\t\t\t});\n\t\t\tsetInputWidth(inputRect.width);\n\t\t}\n\t}, [inputRef]);\n\n\tuseEffect(() => {\n\t\t// Initialize inputWidth on component mount for StaticEmbedded\n\t\tif (displayType === 'embedded' && inputRef.current) {\n\t\t\tsetInputWidth(inputRef.current.offsetWidth);\n\t\t}\n\t}, [displayType]);\n\n\tconst getInitialRecentSearches = useCallback(() => {\n\t\tif (typeof localStorage === 'undefined') {\n\t\t\treturn [];\n\t\t}\n\t\ttry {\n\t\t\tconst storedSearches = localStorage.getItem(g.RECENT_SEARCHES_KEY);\n\t\t\treturn storedSearches ? JSON.parse(storedSearches) : [];\n\t\t} catch (error) {\n\t\t\treturn [];\n\t\t}\n\t}, []);\n\n\tconst [recentSearches, setRecentSearches] = useState(\n\t\tgetInitialRecentSearches\n\t);\n\n\tconst RESULTS_PAGE_ALIAS = 'SITE_TEXT_SEARCH_RESULTS';\n\tconst FOUR_ZERO_FOUR_PAGE_ALIAS = '404';\n\tconst pageNotFoundPath = sitemap.get(FOUR_ZERO_FOUR_PAGE_ALIAS);\n\tconst resultsPageAlias =\n\t\tsitemap.get(RESULTS_PAGE_ALIAS) || pageNotFoundPath;\n\n\tconst hasFetchedAddInfo = useRef(false);\n\n\tconst openModal = useCallback(() => {\n\t\tif (!hasFetchedAddInfo.current) {\n\t\t\tfetchAddInfo();\n\t\t\thasFetchedAddInfo.current = true;\n\t\t}\n\t\tif (\n\t\t\t(!modalIsOpen &&\n\t\t\t\t!window?.DDC?.WidgetData?.[widgetName]?.modalIsOpen &&\n\t\t\t\t(recentSearches?.length > 0 ||\n\t\t\t\t\thasSearchResults ||\n\t\t\t\t\tsearchTerm?.length >\n\t\t\t\t\t\tnumberOfCharactersForFirstSearchNumber)) ||\n\t\t\tdisplayType !== 'input' ||\n\t\t\trichContentToDisplay.length > 0 ||\n\t\t\tisMobile\n\t\t) {\n\t\t\twindow.DDC.WidgetData[widgetName] = {\n\t\t\t\tmodalIsOpen: true\n\t\t\t};\n\t\t\ttrackEvent(widgetName, windowId, {\n\t\t\t\telement: 'search box',\n\t\t\t\tresult: 'search modal initiated',\n\t\t\t\taction: 'clicked'\n\t\t\t});\n\t\t\tsetRecentSearches(getInitialRecentSearches);\n\t\t\tsetNewRelicCustomAttribute('wsSiteTextSearch-modalOpened', 'true');\n\t\t\tsetModalIsOpen(true);\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [modalIsOpen, widgetName, searchTerm]);\n\n\tconst closeModal = useCallback(() => {\n\t\tcloseModalHelper(\n\t\t\twidgetName,\n\t\t\twindowId,\n\t\t\tsetModalIsOpen,\n\t\t\tsetSearchTerm,\n\t\t\tisEmbeddedOverrideActive,\n\t\t\tsetIsEmbeddedOverrideActive\n\t\t);\n\t}, []);\n\n\tconst updateRecentSearches = useCallback(() => {\n\t\tconst sanitizedTerm = searchTerm?.trim()?.substring(0, 100);\n\t\tif (!sanitizedTerm) {\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tconst searches =\n\t\t\t\tJSON.parse(localStorage.getItem(g.RECENT_SEARCHES_KEY)) || [];\n\t\t\tconst filteredSearch = searches.filter(\n\t\t\t\t(search) => search.value !== sanitizedTerm\n\t\t\t);\n\n\t\t\tif (filteredSearch.length >= 10) {\n\t\t\t\tfilteredSearch.pop();\n\t\t\t}\n\n\t\t\tconst newSearch = { value: sanitizedTerm };\n\t\t\tconst newRecentSearches = [newSearch, ...filteredSearch];\n\t\t\tlocalStorage.setItem(\n\t\t\t\tg.RECENT_SEARCHES_KEY,\n\t\t\t\tJSON.stringify(newRecentSearches)\n\t\t\t);\n\t\t\tsetRecentSearches(newRecentSearches);\n\t\t} catch (error) {\n\t\t\t// add New Relic error tracking\n\t\t}\n\t}, [searchTerm]);\n\n\tconst removeRecentSearch = useCallback((value) => {\n\t\tsetRecentSearches((prevState) => {\n\t\t\tconst updatedSearches = prevState.filter(\n\t\t\t\t(search) => search.value !== value\n\t\t\t);\n\t\t\ttry {\n\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\tg.RECENT_SEARCHES_KEY,\n\t\t\t\t\tJSON.stringify(updatedSearches)\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\t// add New Relic error tracking\n\t\t\t}\n\n\t\t\tif (updatedSearches.length === 0) {\n\t\t\t\tinputElementRef.current?.focus();\n\t\t\t}\n\n\t\t\treturn updatedSearches;\n\t\t});\n\t}, []);\n\n\tconst reorderRecentSearches = useCallback(\n\t\t(clickedSearch) => {\n\t\t\tconst updatedSearches = recentSearches.filter(\n\t\t\t\t(search) => search.value !== clickedSearch.value\n\t\t\t);\n\t\t\tconst newRecentSearches = [clickedSearch, ...updatedSearches];\n\n\t\t\tsetRecentSearches(newRecentSearches);\n\n\t\t\ttry {\n\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\tg.RECENT_SEARCHES_KEY,\n\t\t\t\t\tJSON.stringify(newRecentSearches)\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\t// Add New Relic error tracking\n\t\t\t}\n\t\t},\n\t\t[recentSearches]\n\t);\n\n\tconst getPageResults = useCallback(\n\t\tasync (query) => {\n\t\t\tconst limit = displayType === 'embedded' ? 25 : 5;\n\t\t\tconst pageSearchResponse = await fetchPages({\n\t\t\t\tsearchTerm: query,\n\t\t\t\tsiteId,\n\t\t\t\tlocale,\n\t\t\t\twidgetSearchServiceUri,\n\t\t\t\tlimit\n\t\t\t});\n\n\t\t\treturn pageSearchResponse?.sort((a, b) => b.score - a.score);\n\t\t},\n\t\t[displayType, siteId, locale, widgetSearchServiceUri]\n\t);\n\n\tconst firstRender = useRef(true);\n\tconst getInventoryResults = useCallback(\n\t\tasync (query, conditionFilter) => {\n\t\t\tif (displayType === 'embedded' && firstRender.current) {\n\t\t\t\tfirstRender.current = false;\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst inventoryFetchTimeout =\n\t\t\t\tflags['ws-site-text-search-inventory-client-timeout'];\n\t\t\tlet inventorySrpPath;\n\t\t\tswitch (conditionFilter) {\n\t\t\t\tcase 'NEW':\n\t\t\t\t\tinventorySrpPath =\n\t\t\t\t\t\tsitemap.get('INVENTORY_LISTING_DEFAULT_AUTO_NEW') ||\n\t\t\t\t\t\tpageNotFoundPath;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'USED':\n\t\t\t\t\tinventorySrpPath =\n\t\t\t\t\t\tsitemap.get('INVENTORY_LISTING_DEFAULT_AUTO_USED') ||\n\t\t\t\t\t\tpageNotFoundPath;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'CERTIFIED':\n\t\t\t\t\tinventorySrpPath =\n\t\t\t\t\t\tsitemap.get(\n\t\t\t\t\t\t\t'INVENTORY_LISTING_DEFAULT_AUTO_CERTIFIED_USED'\n\t\t\t\t\t\t) || pageNotFoundPath;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tinventorySrpPath =\n\t\t\t\t\t\t(overrideAllInventoryAlias\n\t\t\t\t\t\t\t? sitemap.get(overrideAllInventoryAlias)\n\t\t\t\t\t\t\t: sitemap.get(\n\t\t\t\t\t\t\t\t\t'INVENTORY_LISTING_DEFAULT_AUTO_ALL'\n\t\t\t\t\t\t\t )) || pageNotFoundPath;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst inventorySearchResponse = await fetchInventory({\n\t\t\t\tsearchTerm: query,\n\t\t\t\tsiteId,\n\t\t\t\tlocale,\n\t\t\t\twidgetSearchServiceUri,\n\t\t\t\tconfigTypes,\n\t\t\t\tresultsPageAlias,\n\t\t\t\tinventoryFetchTimeout,\n\t\t\t\tshouldReturnCardsAlso: true,\n\t\t\t\tvehicleOrder,\n\t\t\t\tconditionFilter\n\t\t\t});\n\t\t\tif (inventorySearchResponse) {\n\t\t\t\tconst {\n\t\t\t\t\tsuggestions,\n\t\t\t\t\tvehicles,\n\t\t\t\t\tsearchTerm: responseSearchTerm\n\t\t\t\t} = inventorySearchResponse;\n\n\t\t\t\tif (responseSearchTerm === query.replace('+', ' ')) {\n\t\t\t\t\tlet transformedSuggestions = [];\n\t\t\t\t\tlet sortedSuggestions = [];\n\t\t\t\t\tif (suggestions && suggestions.length) {\n\t\t\t\t\t\tsortedSuggestions = suggestions?.sort(\n\t\t\t\t\t\t\t(a, b) => b.count - a.count\n\t\t\t\t\t\t);\n\t\t\t\t\t\ttransformedSuggestions = transformInventoryResults(\n\t\t\t\t\t\t\tsortedSuggestions,\n\t\t\t\t\t\t\tinventorySrpPath\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsuggestions: transformedSuggestions,\n\t\t\t\t\t\tallVehiclesPath: makeAllLinkPath(\n\t\t\t\t\t\t\tsortedSuggestions,\n\t\t\t\t\t\t\tinventorySrpPath,\n\t\t\t\t\t\t\ttransformedSuggestions\n\t\t\t\t\t\t),\n\t\t\t\t\t\tvehicles\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn [];\n\t\t\t// eslint-disable-next-line max-len\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tdisplayType,\n\t\t\tfirstRender,\n\t\t\tflags,\n\t\t\tsiteId,\n\t\t\tlocale,\n\t\t\twidgetSearchServiceUri,\n\t\t\tconfigTypes,\n\t\t\tresultsPageAlias,\n\t\t\tvehicleOrder,\n\t\t\tpageNotFoundPath,\n\t\t\toverrideAllInventoryAlias,\n\t\t\tsitemap\n\t\t]\n\t);\n\n\tconst handleTabs = (inventoryResponse) => {\n\t\tconst tabs = ['new', 'used', 'certified'];\n\t\tconst tabsToDisable = tabs.filter(\n\t\t\t(condition) => !inventoryResponse[condition]?.vehicles?.length\n\t\t);\n\t\tsetDisabledTabs(tabsToDisable);\n\n\t\tconst activeTab = tabs.find((tab) => !tabsToDisable.includes(tab));\n\n\t\tsetActiveInventoryTab(activeTab || 'new');\n\t};\n\n\tconst fetchResults = useCallback(\n\t\tasync (query) => {\n\t\t\tlet pageSearchResponse;\n\t\t\tlet inventorySearchResponse;\n\n\t\t\tif (flags['enable-conditions-tabs-site-text-search']) {\n\t\t\t\tconst [\n\t\t\t\t\tpageSearchResponseResult,\n\t\t\t\t\tnewInventorySearchResponse,\n\t\t\t\t\tusedInventorySearchResponse,\n\t\t\t\t\tcertifiedInventorySearchResponse\n\t\t\t\t] = await Promise.all([\n\t\t\t\t\tgetPageResults(query),\n\t\t\t\t\tgetInventoryResults(query, 'NEW'),\n\t\t\t\t\tgetInventoryResults(query, 'USED'),\n\t\t\t\t\tgetInventoryResults(query, 'CERTIFIED')\n\t\t\t\t]);\n\n\t\t\t\tpageSearchResponse = pageSearchResponseResult;\n\n\t\t\t\tinventorySearchResponse = {\n\t\t\t\t\tnew: newInventorySearchResponse,\n\t\t\t\t\tused: usedInventorySearchResponse,\n\t\t\t\t\tcertified: certifiedInventorySearchResponse\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tconst [\n\t\t\t\t\tpageSearchResponseResult,\n\t\t\t\t\tsingleInventorySearchResponse\n\t\t\t\t] = await Promise.all([\n\t\t\t\t\tgetPageResults(query),\n\t\t\t\t\tgetInventoryResults(query)\n\t\t\t\t]);\n\n\t\t\t\tpageSearchResponse = pageSearchResponseResult;\n\t\t\t\tinventorySearchResponse = singleInventorySearchResponse;\n\t\t\t}\n\n\t\t\tsetPageSearchResults(pageSearchResponse);\n\t\t\tsetInventorySearchResults(inventorySearchResponse);\n\n\t\t\tif (flags['enable-conditions-tabs-site-text-search']) {\n\t\t\t\thandleTabs(inventorySearchResponse);\n\t\t\t}\n\n\t\t\tconst richContentToHide = [];\n\n\t\t\tconst richContentResults = await getRichContentResults(\n\t\t\t\tquery,\n\t\t\t\tnumberOfCharactersForFirstSearchNumber,\n\t\t\t\trichContentToHide,\n\t\t\t\tlocale\n\t\t\t);\n\t\t\tsetRichContentToDisplay(richContentResults);\n\n\t\t\tif (query.length >= numberOfCharactersForFirstSearchNumber) {\n\t\t\t\tsetModalIsOpen(true);\n\t\t\t}\n\n\t\t\tconst resultTypes = [];\n\t\t\tconst inventoryTypes = [];\n\t\t\tif (inventorySearchResponse?.new?.vehicles?.length) {\n\t\t\t\tinventoryTypes.push('New');\n\t\t\t}\n\t\t\tif (inventorySearchResponse?.used?.vehicles?.length) {\n\t\t\t\tinventoryTypes.push('Used');\n\t\t\t}\n\t\t\tif (inventorySearchResponse?.certified?.vehicles?.length) {\n\t\t\t\tinventoryTypes.push('Certified');\n\t\t\t}\n\t\t\tif (inventoryTypes.length) {\n\t\t\t\tresultTypes.push(\n\t\t\t\t\t`${inventoryTypes.join(' and ')} > Inventory Results`\n\t\t\t\t);\n\t\t\t} else if (\n\t\t\t\t!flags['enable-conditions-tabs-site-text-search'] &&\n\t\t\t\t(inventorySearchResponse?.suggestions?.length ||\n\t\t\t\t\tinventorySearchResponse?.vehicles?.length)\n\t\t\t) {\n\t\t\t\tresultTypes.push('Inventory Results');\n\t\t\t}\n\t\t\tif (pageSearchResponse?.length) {\n\t\t\t\tresultTypes.push('Non-Inventory Results');\n\t\t\t}\n\t\t\tconst result = resultTypes.length\n\t\t\t\t? `${resultTypes.join(' and ')} Populated`\n\t\t\t\t: 'No Results Populated';\n\t\t\ttrackEvent(widgetName, windowId, {\n\t\t\t\telement: 'search query typed in',\n\t\t\t\tresult,\n\t\t\t\taction: 'impression',\n\t\t\t\tfieldValue: query,\n\t\t\t\tnonInteractive: false\n\t\t\t});\n\n\t\t\tsetFetchingResults(false);\n\t\t\tconst renderEndTime = performance.now();\n\t\t\tconst renderDuration = renderEndTime - renderStartTimeRef.current;\n\t\t\tif (isBrowser && window) {\n\t\t\t\taddNewRelicPageAction('wsSiteTextSearchDebug', {\n\t\t\t\t\teventName: 'ws-site-text-search render duration',\n\t\t\t\t\trenderDuration\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tgetPageResults,\n\t\t\tgetInventoryResults,\n\t\t\tnumberOfCharactersForFirstSearchNumber,\n\t\t\tlocale,\n\t\t\twidgetName,\n\t\t\twindowId\n\t\t]\n\t);\n\n\tconst hasNoResults = !!(\n\t\tsearchTerm &&\n\t\tpageSearchResults?.length === 0 &&\n\t\t// if we are using the tabs, we need to check if all of them are empty\n\t\t// if we are not using the tabs, we just check if the vehicles array is empty\n\t\t(flags['enable-conditions-tabs-site-text-search'] === true\n\t\t\t? filteredInventorySearchResultsByTab?.new?.length === 0 &&\n\t\t\t filteredInventorySearchResultsByTab?.used?.length === 0 &&\n\t\t\t filteredInventorySearchResultsByTab?.certified?.length === 0\n\t\t\t: inventorySearchResults?.vehicles?.length === 0) &&\n\t\trichContentToDisplay?.length === 0\n\t);\n\n\tconst fetchEmbeddedResults = useCallback(async (query) => {\n\t\tconst [pageSearchResponse] = await Promise.all([\n\t\t\tgetPageResults(query),\n\t\t\tgetInventoryResults(query)\n\t\t]);\n\n\t\tsetPageSearchResultsEmbedded(pageSearchResponse);\n\n\t\tconst richContentToHide = [];\n\n\t\tconst richContentResults = await getRichContentResults(\n\t\t\tquery,\n\t\t\tnumberOfCharactersForFirstSearchNumber,\n\t\t\trichContentToHide,\n\t\t\tlocale\n\t\t);\n\t\tsetRichContentToDisplayEmbedded(richContentResults);\n\t}, []);\n\n\tconst handleLinkClick = useCallback(\n\t\t(\n\t\t\tlinkType,\n\t\t\telementCTA,\n\t\t\tfieldValue,\n\t\t\tresult,\n\t\t\taddRecentSearches = true\n\t\t) => {\n\t\t\tif (addRecentSearches) {\n\t\t\t\tupdateRecentSearches();\n\t\t\t}\n\n\t\t\tconst prependTab = showTabs ? `${activeInventoryTab} > ` : '';\n\n\t\t\tswitch (linkType) {\n\t\t\t\tcase 'vehicleLink':\n\t\t\t\t\ttrackEvent(widgetName, windowId, {\n\t\t\t\t\t\taction: 'clicked',\n\t\t\t\t\t\telement: 'vehicle card',\n\t\t\t\t\t\telementCTA: 'autocomplete vehicle card',\n\t\t\t\t\t\tresult: `${prependTab}navigated to VDP`,\n\t\t\t\t\t\tfieldValue: searchTerm\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'richContentLink':\n\t\t\t\t\ttrackEvent(widgetName, windowId, {\n\t\t\t\t\t\taction: 'clicked',\n\t\t\t\t\t\telement: 'rich content autocomplete result',\n\t\t\t\t\t\telementCTA: elementCTA || '',\n\t\t\t\t\t\tresult: `${prependTab}${\n\t\t\t\t\t\t\tresult || 'navigated to rich content destination'\n\t\t\t\t\t\t}`,\n\t\t\t\t\t\tfieldValue: searchTerm\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inventoryLink':\n\t\t\t\t\ttrackEvent(widgetName, windowId, {\n\t\t\t\t\t\taction: 'clicked',\n\t\t\t\t\t\telement: 'autocomplete inventory result',\n\t\t\t\t\t\telementCTA: elementCTA || '',\n\t\t\t\t\t\tresult: `${prependTab}text search form submitted`,\n\t\t\t\t\t\tfieldValue: fieldValue || ''\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'pageLink':\n\t\t\t\t\ttrackEvent(widgetName, windowId, {\n\t\t\t\t\t\taction: 'clicked',\n\t\t\t\t\t\telement: 'autocomplete quick link result',\n\t\t\t\t\t\telementCTA: elementCTA || '',\n\t\t\t\t\t\tresult: `${prependTab}text search form submitted`,\n\t\t\t\t\t\tfieldValue: fieldValue || ''\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'allInventoryLink':\n\t\t\t\t\ttrackEvent(widgetName, windowId, {\n\t\t\t\t\t\taction: 'clicked',\n\t\t\t\t\t\telement: 'All inventory link',\n\t\t\t\t\t\telementCTA: elementCTA || '',\n\t\t\t\t\t\tresult: `${prependTab}text search form submitted`,\n\t\t\t\t\t\tfieldValue: searchTerm\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'noResultsLink':\n\t\t\t\t\ttrackEvent(widgetName, windowId, {\n\t\t\t\t\t\taction: 'clicked',\n\t\t\t\t\t\telement: 'No results link',\n\t\t\t\t\t\telementCTA: elementCTA || '',\n\t\t\t\t\t\tresult: 'Navigated to CTA destination',\n\t\t\t\t\t\tfieldValue: searchTerm\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tupdateRecentSearches,\n\t\t\twidgetName,\n\t\t\twindowId,\n\t\t\tsearchTerm,\n\t\t\tshowTabs,\n\t\t\tactiveInventoryTab\n\t\t]\n\t);\n\n\tconst handleQuerySubmission = useCallback(\n\t\t(event) => {\n\t\t\tevent?.preventDefault();\n\t\t\tif (fetchingResults) return;\n\t\t\tsetNewRelicCustomAttribute('wsSiteTextSearch-onSubmit', 'true');\n\n\t\t\tconst allVehicles = [\n\t\t\t\t...(filteredInventorySearchResultsByTab?.new?.vehicles || []),\n\t\t\t\t...(filteredInventorySearchResultsByTab?.used?.vehicles || []),\n\t\t\t\t...(filteredInventorySearchResultsByTab?.certified?.vehicles ||\n\t\t\t\t\t[]),\n\t\t\t\t...(inventorySearchResults?.vehicles || [])\n\t\t\t];\n\n\t\t\tconst allSuggestions = [\n\t\t\t\t...(filteredInventorySearchResultsByTab?.new?.suggestions ||\n\t\t\t\t\t[]),\n\t\t\t\t...(filteredInventorySearchResultsByTab?.used?.suggestions ||\n\t\t\t\t\t[]),\n\t\t\t\t...(filteredInventorySearchResultsByTab?.certified\n\t\t\t\t\t?.suggestions || []),\n\t\t\t\t...(inventorySearchResults?.suggestions || [])\n\t\t\t];\n\n\t\t\tconst singleVehiclePath =\n\t\t\t\tallVehicles.length === 1 ? allVehicles[0]?.path : null;\n\n\t\t\tif (singleVehiclePath) {\n\t\t\t\tsetNewRelicCustomAttribute(\n\t\t\t\t\t'wsSiteTextSearch-onSubmitSingleVehicleCard',\n\t\t\t\t\t'true'\n\t\t\t\t);\n\t\t\t\thandleLinkClick('vehicleLink', '', '', '');\n\t\t\t\twindow.location.href = singleVehiclePath;\n\t\t\t} else if (hasNoResults) {\n\t\t\t\tsetNewRelicCustomAttribute(\n\t\t\t\t\t'wsSiteTextSearch-onSubmitNoResultsNotRedirected',\n\t\t\t\t\t'true'\n\t\t\t\t);\n\t\t\t\tevent.preventDefault();\n\t\t\t} else if (allSuggestions?.length) {\n\t\t\t\tsetNewRelicCustomAttribute(\n\t\t\t\t\t'wsSiteTextSearch-onSubmitRedirectedToAllInventory',\n\t\t\t\t\t'true'\n\t\t\t\t);\n\t\t\t\tif (showTabs) {\n\t\t\t\t\tswitch (activeInventoryTab) {\n\t\t\t\t\t\tcase 'new':\n\t\t\t\t\t\t\twindow.location.href = `${inventorySearchResults?.new?.allVehiclesPath}`;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'used':\n\t\t\t\t\t\t\twindow.location.href = `${inventorySearchResults?.used?.allVehiclesPath}`;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'certified':\n\t\t\t\t\t\t\twindow.location.href = `${inventorySearchResults?.certified?.allVehiclesPath}`;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\twindow.location.href = `${inventorySearchResults?.allVehiclesPath}`;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\twindow.location.href = `${inventorySearchResults?.allVehiclesPath}`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetNewRelicCustomAttribute(\n\t\t\t\t\t'wsSiteTextSearch-onSubmitRedirectedToSearchResults',\n\t\t\t\t\t'true'\n\t\t\t\t);\n\t\t\t\twindow.location.href = `${resultsPageAlias}?search=${encodeURIComponent(\n\t\t\t\t\tsearchTerm\n\t\t\t\t)}`;\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tfetchingResults,\n\t\t\tinventorySearchResults,\n\t\t\thasNoResults,\n\t\t\thandleLinkClick,\n\t\t\tsearchTerm,\n\t\t\tresultsPageAlias,\n\t\t\tfilteredInventorySearchResultsByTab,\n\t\t\tactiveInventoryTab,\n\t\t\tshowTabs\n\t\t]\n\t);\n\n\tconst handleSubmission = useCallback(\n\t\t(event) => {\n\t\t\tsetFetchingResults(true);\n\t\t\tevent?.preventDefault();\n\t\t\tif (\n\t\t\t\t!searchTerm?.trim() ||\n\t\t\t\tsearchTerm.length < numberOfCharactersForFirstSearchNumber\n\t\t\t)\n\t\t\t\treturn;\n\t\t\tsetNewRelicCustomAttribute('wsSiteTextSearch-enterKey', searchTerm);\n\t\t\tif (!hasNoResults) {\n\t\t\t\tupdateRecentSearches(searchTerm);\n\t\t\t}\n\t\t\thandleQuerySubmission(event);\n\t\t\tif (!modalIsOpen) {\n\t\t\t\tsetModalIsOpen(true);\n\t\t\t}\n\t\t\tsetFetchingResults(false);\n\t\t},\n\t\t[\n\t\t\tsearchTerm,\n\t\t\tnumberOfCharactersForFirstSearchNumber,\n\t\t\thasNoResults,\n\t\t\tupdateRecentSearches,\n\t\t\thandleQuerySubmission,\n\t\t\tmodalIsOpen\n\t\t]\n\t);\n\n\tconst handleClearHistory = useCallback(() => {\n\t\ttry {\n\t\t\tlocalStorage.removeItem(g.RECENT_SEARCHES_KEY);\n\t\t} catch (error) {\n\t\t\t// add New Relic error tracking\n\t\t}\n\t\tinputElementRef.current?.focus();\n\t\tsetRecentSearches([]);\n\t\tsetModalIsOpen(false);\n\t\ttrackEvent(widgetName, windowId, {\n\t\t\telement: 'clear history link',\n\t\t\telementCTA: labels.get('CLEAR_HISTORY'),\n\t\t\tresult: 'all chips removed',\n\t\t\taction: 'clicked'\n\t\t});\n\t}, [widgetName, windowId, labels]);\n\n\tconst handleClearHistoryNoClose = useCallback(() => {\n\t\ttry {\n\t\t\tlocalStorage.removeItem(g.RECENT_SEARCHES_KEY);\n\t\t} catch (error) {\n\t\t\t// add New Relic error tracking\n\t\t}\n\t\tinputElementRef.current?.focus();\n\t\tsetRecentSearches([]);\n\t\ttrackEvent(widgetName, windowId, {\n\t\t\telement: 'clear history link',\n\t\t\telementCTA: labels.get('CLEAR_HISTORY'),\n\t\t\tresult: 'all chips removed',\n\t\t\taction: 'clicked'\n\t\t});\n\t}, [widgetName, windowId, labels]);\n\n\tconst isClickOutside = useCallback(\n\t\t(ref, target) => ref?.current && !ref.current.contains(target),\n\t\t[]\n\t);\n\tconst isClickInside = useCallback(\n\t\t(ref, target) => ref?.current && ref.current.contains(target),\n\t\t[]\n\t);\n\n\tconst handleClickOutside = useCallback(\n\t\t(event) => {\n\t\t\tconst { target } = event;\n\n\t\t\tconst isOutsideInput = isClickOutside(inputRef, target);\n\t\t\tconst isOutsideDropdown = isClickOutside(dropDownRef, target);\n\t\t\tconst isInsideEmbeddedDropdown = isClickInside(\n\t\t\t\tembeddedDropDownRef,\n\t\t\t\ttarget\n\t\t\t);\n\t\t\tconst isOutsideEmbeddedDropdown = isClickOutside(\n\t\t\t\tembeddedDropDownRef,\n\t\t\t\ttarget\n\t\t\t);\n\n\t\t\tif (\n\t\t\t\t(isOutsideInput && isOutsideDropdown) ||\n\t\t\t\t(isEmbedded && isOutsideInput && isInsideEmbeddedDropdown) ||\n\t\t\t\t(isOutsideInput &&\n\t\t\t\t\tisOutsideEmbeddedDropdown &&\n\t\t\t\t\t!dropDownRef.current?.contains(event.target))\n\t\t\t) {\n\t\t\t\tcloseModal();\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tisClickOutside,\n\t\t\tisClickInside,\n\t\t\tinputRef,\n\t\t\tdropDownRef,\n\t\t\tembeddedDropDownRef,\n\t\t\tisEmbedded,\n\t\t\tcloseModal\n\t\t]\n\t);\n\n\tconst handleOnChangeInput = useCallback(\n\t\t(searchTermValue) => {\n\t\t\t// Update based on context\n\t\t\tif (displayType === 'embedded' && !isEmbeddedOverrideActive) {\n\t\t\t\tsetSearchTermEmbedded(searchTermValue);\n\t\t\t} else {\n\t\t\t\tsetSearchTerm(searchTermValue);\n\t\t\t}\n\n\t\t\t// Modal visibility handling\n\t\t\tif (\n\t\t\t\tsearchTermValue.length >= numberOfCharactersForFirstSearchNumber\n\t\t\t) {\n\t\t\t\tsetModalIsOpen(true);\n\t\t\t} else if (\n\t\t\t\tsearchTermValue.length === 0 &&\n\t\t\t\trecentSearches.length === 0 &&\n\t\t\t\t!modalIsOpen\n\t\t\t) {\n\t\t\t\tsetModalIsOpen(false);\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tnumberOfCharactersForFirstSearchNumber,\n\t\t\trecentSearches.length,\n\t\t\tdisplayType,\n\t\t\tisEmbeddedOverrideActive,\n\t\t\tmodalIsOpen\n\t\t]\n\t);\n\n\tconst handleChipClick = useCallback((value) => {\n\t\tsetSearchTerm(value);\n\t\tinputElementRef.current?.focus();\n\t}, []);\n\n\tuseEffect(() => {\n\t\tconst updateScreenWidth = () => setScreenWidth(window.innerWidth);\n\t\tupdateScreenWidth();\n\t\tconst throttledUpdateDropDownPosition = throttle(\n\t\t\tupdateDropDownPosition,\n\t\t\t150\n\t\t);\n\t\tconst throttledUpdateScreenWidth = throttle(updateScreenWidth, 150);\n\t\tconst observer = new MutationObserver(throttledUpdateDropDownPosition);\n\n\t\tif (modalIsOpen) {\n\t\t\tupdateDropDownPosition();\n\t\t\twindow.addEventListener('resize', throttledUpdateDropDownPosition);\n\t\t\twindow.addEventListener('resize', throttledUpdateScreenWidth);\n\t\t\twindow.addEventListener('scroll', throttledUpdateDropDownPosition);\n\t\t\tdocument.addEventListener('mousedown', handleClickOutside);\n\n\t\t\tobserver.observe(document.body, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tattributes: true\n\t\t\t});\n\t\t}\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\n\t\t\t\t'resize',\n\t\t\t\tthrottledUpdateDropDownPosition\n\t\t\t);\n\t\t\twindow.removeEventListener(\n\t\t\t\t'scroll',\n\t\t\t\tthrottledUpdateDropDownPosition\n\t\t\t);\n\t\t\twindow.removeEventListener('resize', throttledUpdateScreenWidth);\n\t\t\tthrottledUpdateDropDownPosition.cancel();\n\t\t\tdocument.removeEventListener('mousedown', handleClickOutside);\n\t\t\tobserver.disconnect();\n\t\t};\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [modalIsOpen]);\n\n\t// this is effectively the debounce for the fetch\n\tconst debounceTimeoutRef = useRef(null);\n\tuseEffect(() => {\n\t\tconst trimmedSearchTerm = searchTerm.trim();\n\t\tif (\n\t\t\ttrimmedSearchTerm.length >= numberOfCharactersForFirstSearchNumber\n\t\t) {\n\t\t\tsetFetchingResults(true);\n\t\t\trenderStartTimeRef.current = performance.now();\n\t\t\t// Clear the previous timeout if it exists\n\t\t\tif (debounceTimeoutRef.current) {\n\t\t\t\tclearTimeout(debounceTimeoutRef.current);\n\t\t\t}\n\t\t\t// Set a new timeout to debounce the fetch\n\t\t\tdebounceTimeoutRef.current = setTimeout(() => {\n\t\t\t\tfetchResults(trimmedSearchTerm);\n\t\t\t}, 250);\n\t\t} else if (\n\t\t\ttrimmedSearchTerm.length < numberOfCharactersForFirstSearchNumber\n\t\t) {\n\t\t\tsetRichContentToDisplay([]);\n\t\t\tsetInventorySearchResults(undefined);\n\t\t\tsetPageSearchResults(undefined);\n\t\t\tsetFetchingResults(false);\n\t\t}\n\t\t// Cleanup function to clear the timeout if the component unmounts\n\t\treturn () => {\n\t\t\tif (debounceTimeoutRef.current) {\n\t\t\t\tclearTimeout(debounceTimeoutRef.current);\n\t\t\t}\n\t\t};\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [searchTerm]);\n\n\tconst isDisplayNavigation = displayType === g.NAVIGATION;\n\n\tuseEffect(() => {\n\t\tif (isDisplayNavigation) {\n\t\t\tdocument.addEventListener(\n\t\t\t\t'ws-site-text-search-open-modal',\n\t\t\t\topenModal\n\t\t\t);\n\t\t\treturn () => {\n\t\t\t\tdocument.removeEventListener(\n\t\t\t\t\t'ws-site-text-search-open-modal',\n\t\t\t\t\topenModal\n\t\t\t\t);\n\t\t\t};\n\t\t}\n\t\treturn () => {};\n\t}, [isDisplayNavigation, openModal]);\n\n\tuseEffect(() => {\n\t\tconst trimmedSearchTerm = searchTermEmbedded.trim();\n\n\t\tif (\n\t\t\ttrimmedSearchTerm?.length >= numberOfCharactersForFirstSearchNumber\n\t\t) {\n\t\t\tfetchEmbeddedResults(trimmedSearchTerm);\n\t\t} else if (\n\t\t\ttrimmedSearchTerm?.length < numberOfCharactersForFirstSearchNumber\n\t\t) {\n\t\t\tsetRichContentToDisplay([]);\n\t\t\tsetInventorySearchResults(undefined);\n\t\t\tsetPageSearchResults(undefined);\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [searchTermEmbedded]);\n\n\tuseEffect(() => {\n\t\t// This effect only runs once to setup specific data for this component\n\t\tif (!hasFetchedAddInfo.current && displayType === 'embedded') {\n\t\t\tfetchAddInfo();\n\t\t\thasFetchedAddInfo.current = true;\n\t\t}\n\t\tif (isEmbedded && isBrowser && window) {\n\t\t\tconst params = new URLSearchParams(window.location.search);\n\t\t\tif (params.has('search')) {\n\t\t\t\tsetSearchTermEmbedded(params?.get('search'));\n\t\t\t}\n\t\t}\n\t\tif (isBrowser && window) {\n\t\t\taddNewRelicPageAction('wsSiteTextSearchDebug', {\n\t\t\t\teventName: 'ws-site-text-search on page',\n\t\t\t\ttype: displayType.toString()\n\t\t\t});\n\t\t}\n\t}, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n\t// This will set current suggestions, vehicles, and allVehiclesPath based on\n\t// the active tab or otherwise the default inventory results\n\tconst prepareInventoryResults = useMemo(() => {\n\t\tlet suggestions = [];\n\t\tlet vehicles = [];\n\t\tlet allVehiclesPath = '';\n\n\t\tif (\n\t\t\tfilteredInventorySearchResultsByTab &&\n\t\t\t(filteredInventorySearchResultsByTab.new ||\n\t\t\t\tfilteredInventorySearchResultsByTab.used ||\n\t\t\t\tfilteredInventorySearchResultsByTab.certified)\n\t\t) {\n\t\t\tif (\n\t\t\t\tactiveInventoryTab &&\n\t\t\t\tfilteredInventorySearchResultsByTab[activeInventoryTab]\n\t\t\t) {\n\t\t\t\tsuggestions =\n\t\t\t\t\tfilteredInventorySearchResultsByTab[activeInventoryTab]\n\t\t\t\t\t\t.suggestions || [];\n\t\t\t\tvehicles =\n\t\t\t\t\tfilteredInventorySearchResultsByTab[activeInventoryTab]\n\t\t\t\t\t\t.vehicles || [];\n\t\t\t\tallVehiclesPath =\n\t\t\t\t\tfilteredInventorySearchResultsByTab[activeInventoryTab]\n\t\t\t\t\t\t.allVehiclesPath || '';\n\t\t\t}\n\t\t} else {\n\t\t\tsuggestions =\n\t\t\t\tfilteredInventorySearchResultsByTab?.suggestions || [];\n\t\t\tvehicles = filteredInventorySearchResultsByTab?.vehicles || [];\n\t\t\tallVehiclesPath =\n\t\t\t\tfilteredInventorySearchResultsByTab?.allVehiclesPath || '';\n\t\t}\n\n\t\treturn {\n\t\t\tsuggestions,\n\t\t\tvehicles,\n\t\t\tallVehiclesPath\n\t\t};\n\t}, [filteredInventorySearchResultsByTab, activeInventoryTab]);\n\n\tlet stsContainerContent = null;\n\n\tconst searchContextValue = {\n\t\tfetchingResults,\n\t\thandleChipClick,\n\t\thandleOnChangeInput,\n\t\thandleSubmission,\n\t\tnumberOfCharactersForFirstSearchNumber,\n\t\tonClear: () => {\n\t\t\tsetSearchTerm('');\n\t\t\tsetSearchTermEmbedded('');\n\t\t},\n\t\tsearchTerm,\n\t\tsearchTermEmbedded,\n\t\tsetSearchTerm,\n\t\tsetSearchTermEmbedded\n\t};\n\n\tconst uiContextValue = {\n\t\tcloseModal,\n\t\tdisplayType,\n\t\tdropDownPosition,\n\t\tdropDownRef,\n\t\tembeddedDropDownRef,\n\t\tinputElementRef,\n\t\tinputRef,\n\t\tinputWidth,\n\t\tisEmbeddedOverrideActive,\n\t\tisMobile,\n\t\tlabels,\n\t\tlocale,\n\t\tmodalIsOpen,\n\t\topenModal,\n\t\topenButtonRef,\n\t\tpageAlias,\n\t\tscreenWidth,\n\t\tsetIsEmbeddedOverrideActive,\n\t\tsetModalIsOpen,\n\t\tupdateDropDownPosition,\n\t\twidgetName,\n\t\twindowId\n\t};\n\n\tconst resultsContextValue = {\n\t\tactiveInventoryTab,\n\t\taddInfo,\n\t\taccountId,\n\t\tdisabledTabs,\n\t\tfetchEmbeddedResults,\n\t\tfetchResults,\n\t\thandleClearHistory,\n\t\thandleClearHistoryNoClose,\n\t\thandleLinkClick,\n\t\thasNoResults,\n\t\thasSingleVehicle,\n\t\t// keep to pass to InventoryTabs\n\t\tinventoryResults: filteredInventorySearchResultsByTab,\n\t\tnoResultsLinks: NO_RESULTS_LINKS,\n\t\tnoResultsRichContent,\n\t\tpageSearchResults,\n\t\tpageSearchResultsEmbedded,\n\t\tpreparedInventoryResults: prepareInventoryResults,\n\t\trichContentToDisplay,\n\t\trecentSearches,\n\t\tremoveRecentSearch,\n\t\treorderRecentSearches,\n\t\trichContentToDisplayEmbedded,\n\t\tsetActiveInventoryTab,\n\t\tshowTabs\n\t};\n\n\tswitch (displayType) {\n\t\tcase 'embedded':\n\t\t\tstsContainerContent = (\n\t\t\t\t<>\n\t\t\t\t\t{(!isEmbeddedOverrideActive || !isMobile) && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\t{modalIsOpen && !isMobile && isEmbeddedOverrideActive && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{modalIsOpen && isMobile && isEmbeddedOverrideActive && (\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\tbreak;\n\t\tcase 'input':\n\t\t\tstsContainerContent = (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t{modalIsOpen && !isMobile && }\n\t\t\t\t\t{modalIsOpen && isMobile && }\n\t\t\t\t\n\t\t\t);\n\t\t\tbreak;\n\t\tcase 'button':\n\t\tdefault:\n\t\t\tstsContainerContent = (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t{modalIsOpen && }\n\t\t\t\t\n\t\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{stsContainerContent}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Container;\n","import React, { useEffect } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useRequestData,usePrefs, useFlags } from 'wsm-common-data';\nimport { ErrorBoundary } from 'wsm-error-boundary';\nimport logger from 'ws-scripts/modules/logger';\nimport { isBrowser } from 'ws-scripts/modules/environment';\nimport Container from './Container';\n\nimport { g } from '../global-constants';\nimport '../global-sass/main.scss';\n\nconst Widget = () => {\n\tif (typeof window !== 'undefined') {\n\t\twindow.DDC = window.DDC || {};\n\t\twindow.DDC.WidgetData = window.DDC.WidgetData || {};\n\t}\n\tconst { deviceType } = useRequestData();\n\tconst { display, hideWidgetOnPages } = usePrefs();\n\tconst {\n\t\twidgetData: { pageAlias }\n\t} = useSelector((state) => state);\n\n\tconst isMobile = deviceType === g.MOBILE;\n\tconst flags = useFlags();\n\n\tconst isWsNav = flags['enable-ws-navigation-replacement'] === true;\n\tconst isDisplayNavigation = display === g.NAVIGATION;\n\n\tuseEffect(() => {\n\t\tif (isBrowser && isWsNav && isDisplayNavigation) {\n\t\t\twindow.DDC.EventFired = window.DDC.EventFired || {};\n\t\t\twindow.DDC.EventFired['ws-sts-navigation-registered'] = true;\n\t\t}\n\t}, []);\n\n\tif (\n\t\thideWidgetOnPages\n\t\t\t.split(',')\n\t\t\t.some((aliasToHideOn) => aliasToHideOn.trim() === pageAlias)\n\t) {\n\t\treturn null;\n\t}\n\n\tlet displayMarkup = null;\n\n\tswitch (display) {\n\t\tcase g.INPUT:\n\t\t\tdisplayMarkup = ;\n\t\t\tbreak;\n\t\tcase g.EMBEDDED:\n\t\t\tdisplayMarkup = ;\n\t\t\tbreak;\n\t\tcase g.DISABLED:\n\t\tcase g.BUTTON:\n\t\tcase g.NAVIGATION:\n\t\tdefault:\n\t\t\tdisplayMarkup = ;\n\t}\n\n\treturn (\n\t\t {\n\t\t\t\tconst newError = new Error(\n\t\t\t\t\t`Encountered an error in ws-site-text-search.\\n${error}`\n\t\t\t\t);\n\t\t\t\tnewError.originalError = error;\n\t\t\t\tnewError.originalStackTrace = errorInfo.componentStack;\n\t\t\t\tlogger.error(`${newError}\\n${newError.originalStackTrace}`);\n\t\t\t}}\n\t\t>\n\t\t\t{displayMarkup}\n\t\t\t{display === g.INPUT && (\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default Widget;\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 = '';\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-site-text-search - ${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-site-text-search');\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":["inProgress","dataWebpackPrefix","module","exports","require","widgetData","state","type","payload","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","e","call","this","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","length","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","arguments","i","push","prototype","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask","isNode","isBrowser","enforceServerSide","log","fatal","msg","data","error","warn","info","debug","trace","levels","colors","logLevel","stderrLevels","level","LOG_LEVEL","FATAL","ERROR","WARN","INFO","DEBUG","TRACE","Set","Object","keys","forEach","add","t","hasOwnProperty","default","s","address1","city","a","r","postalCode","n","url","c","addressClasses","o","onGetDirectionsClick","l","key","content","className","createElement","map","target","rel","href","link","onClick","text","propTypes","string","isRequired","shape","func","defaultProps","displayName","Symbol","iterator","constructor","Component","super","hasError","getDerivedStateFromError","componentDidCatch","newRelicPageAction","errorHandler","props","window","newrelic","addPageAction","componentStack","render","errorMarkup","children","oneOfType","node","arrayOf","ErrorBoundary","useAsyncResult","useState","result","useEffect","then","catch","defineProperty","value","assign","filter","join","u","day","open","close","timings","defaults","allHoursDepts","allHoursLabelIds","heading","hours","parts","service","hoursListLineHeight","hoursTextAlignment","isModal","showCurrentDayOnly","dayColClasses","hourColClasses","settings","department","objectOf","hoursArray","bool","hoursEntry","d","includes","h","Date","getDay","split","indexOf","toLowerCase","p","renderDelegate","bind","isClient","componentDidMount","setState","labels","g","C","get","toUpperCase","y","trim","has","m","f","D","Common","deptId","deptLabel","deptHours","Hours","DDC","WsmCommonData","PropTypes","React","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","__esModule","definition","enumerable","chunkId","Promise","all","reduce","promises","miniCssF","obj","prop","done","script","needAttach","scripts","document","getElementsByTagName","getAttribute","charset","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","doneFns","parentNode","removeChild","fn","head","appendChild","toStringTag","installedChunks","j","installedChunkData","promise","resolve","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","id","chunkLoadingGlobal","globalThis","ReactDOM","ReactRedux","WidgetHeading","HeadingTag","headingText","widgetId","toggleCollapse","showIcon","headingClasses","iconClasses","allIconClasses","collapseAttributes","iconExpand","role","getHTML","Collapse","w","setCustomAttribute","console","action","element","elementCTA","fieldValue","formEventId","formId","nonInteractive","sourceData","widgetName","widgetState","fireTrackingEvent","delay","timeoutId","lastCall","throttled","now","getTime","cancel","windowId","setModalIsOpen","setSearchTerm","isEmbeddedOverrideActive","setIsEmbeddedOverrideActive","WidgetData","modalIsOpen","body","style","overflow","trackEvent","label","ariaLabelledById","display","usePrefs","labelAttributes","SearchContext","createContext","UIContext","ResultsContext","number","accountRef","phoneRef","anchorRef","useRef","useContext","handleLinkClick","phoneSwapping","domTraverse","current","swapNumbers","departmentLabel","srOnlyText","replace","RegExp","ref","EmailLink","email","linkText","emailAriaLabel","phoneNumbers","contactUsHeadingLabel","richContentToDisplay","accountId","links","linksArray","richContentName","richContentType","richContentDepartment","phoneObject","find","dept","charAt","slice","headingLabel","optionalAttributes","ReactBootstrap","DepartmentHoursTabs","departments","departmentHours","tabId","safeHours","DEALERSHIP","SALES","validDepartments","deptName","Tabs","onSelect","eventKey","substr","departmentCaps","Tab","AddressCard","getDirectionsLabel","getDirectionsUrl","addressElementClasses","setClassNames","addInfo","noResultsRichContent","pageAlias","addressHeadingLabel","addressGetDirectionsLabel","hoursTabsHeaderLabel","contentToDisplay","contactLinksAriaLabelledById","setContactLinksAriaLabelledById","addressAriaLabelledById","setAddressAriaLabelledById","hoursTabsAriaLabelledById","setHoursTabsAriaLabelledById","hoursTabsId","setHoursTabsId","renderContactLinksList","renderHours","startsWith","renderFunctions","address","hideLabel","item","dealerInfo","mapLink","renderedComponents","renderFunction","containerRefs","dropDownRef","flyOutRef","inputElementRef","openButtonRef","isOpen","closeModal","currentIndex","setCurrentIndex","handleKeyDown","focusableElements","flatMap","from","querySelectorAll","el","offsetParent","preventDefault","newIndex","shiftKey","focus","setSelectionRange","containers","container","addEventListener","removeEventListener","VehicleCard","imageUrl","price","odometer","odometerUnit","condition","locale","showPrice","displayTitle","substring","displayCondition","displayOdometer","Intl","NumberFormat","format","toString","formatNumber","Number","displayOdometerUnit","displayPrice","currency","Math","round","minimumFractionDigits","formatCurrency","shouldDisplayPrice","isNil","alt","vehicles","inputWidth","isDoubleColumn","keyCount","vehicle","path","images","image1","titleString","isArray","image","capitalizedCondition","isEmbedded","classNames","every","count","ariaLabel","iconClass","maxLinks","linkType","addRecentSearches","facets","icon","cleanedChildren","leftColumn","rightColumn","child","index","sortContent","hasRichContentToDisplay","activeInventoryTab","setActiveInventoryTab","disabledTabs","inventoryResults","pageSearchResults","hasSingleVehicle","tabs","allVehiclesPath","viewLinkLabel","tab","activeKey","disabled","disabledTab","suggestions","useLabels","recentSearch","removeRecentSearch","reorderRecentSearches","handleChipClick","btnLabel","removeLabel","handleRemove","stopPropagation","tabIndex","truncateValue","onKeyDown","preventModalClose","recentSearches","handleClearHistory","handleClearHistoryNoClose","clearFunction","searchTerm","hasResults","hasEmptyResults","pageResults","isSearchTermLongEnough","hasResultsLocal","hasEmptyResultsLocal","announceText","setAnnounceText","noResults","resultsReady","timer","isNotEmpty","CONTENT_TYPES","hasRequestedContent","items","targetKeys","numberOfCharactersForFirstSearchNumber","fetchingResults","dropDownPosition","inputRef","preparedInventoryResults","noResultsLinks","showTabs","useAriaLive","isEnoughAddData","shouldRenderNoResults","useFocusTrap","dropDownContent","position","top","left","width","minHeight","shouldShowRecentSearches","shouldAnimate","setShouldAnimate","svgRef","lineRef","classList","remove","currentSvgRef","handleAnimationEnd","height","cx","cy","x1","y1","x2","y2","searchTermEmbedded","handleOnChangeInput","handleSubmission","onClear","displayType","isMobile","openModal","onInputHandler","searchPlaceholderLabel","useSelector","inputId","clearClassNames","inputContainerClassNames","autoComplete","onSubmit","htmlFor","onFocus","onChange","maxLength","Hysterics","initialLoad","pagesClientService","hysteriFetch","wrappers","retry","contextKey","retries","makeAllLinkPath","results","inventorySrpPath","transformedResults","validResults","facetInfo","model","models","uniqueModels","make","encodeURIComponent","RICH_CONTENT_SEARCH_TERMS","RICH_CONTENT_SEARCH_TERMS_ES","RICH_CONTENT_SEARCH_TERMS_FR","fuseInstance","async","getRichContentResults","minimumInputCharactersToTriggerResults","richContentToHide","searchTermsMap","fuseData","entries","keywords","setCollection","Fuse","shouldSort","includeScore","threshold","search","searchButtonLabel","searchButtonIcon","searchButtonIconSize","searchButtonStyle","useNavPortal","deviceType","useRequestData","LinkElement","buttonClasses","navigationTarget","querySelector","velocityButton","navButtonClasses","button","screenWidth","prefs","localmodalIsOpen","setLocalmodalIsOpen","isWideScreen","onClose","ariaLabelledBy","flyOutContent","createPortal","pageCallback","currentPage","pageIndex","isCurrent","active","ariaCurrent","displayNumber","embeddedDropDownRef","pageSearchResultsEmbedded","richContentToDisplayEmbedded","setCurrentPage","issearchTermEmbeddedLongEnough","fakePage","hasrichContentToDisplayEmbedded","page","addNewRelicPageAction","eventName","val","markup","searchLinkMarkup","showResults","flags","useFlags","sitemap","useSitemap","numberOfCharactersForFirstSearch","overrideAllInventoryAlias","vehicleOrder","parseInt","siteId","widgetSearchServiceUri","configTypes","setDropDownPosition","setInputWidth","setSearchTermEmbedded","inventorySearchResults","setInventorySearchResults","setPageSearchResults","setPageSearchResultsEmbedded","setAddInfo","setRichContentToDisplay","setRichContentToDisplayEmbedded","setFetchingResults","setScreenWidth","setHasSingleVehicle","setDisabledTabs","renderStartTimeRef","filteredInventorySearchResultsByTab","useMemo","new","used","certified","setShowTabs","allVehicles","hasSearchResults","NO_RESULTS_LINKS","trimmedItem","alias","fetchAddInfo","useCallback","userAgent","navigator","fetchedAddInfo","fetch","method","headers","JSON","stringify","json","updateDropDownPosition","inputRect","getBoundingClientRect","newTop","bottom","scrollY","newLeft","scrollX","minTop","adjustedTop","max","offsetWidth","getInitialRecentSearches","localStorage","storedSearches","getItem","parse","setRecentSearches","pageNotFoundPath","resultsPageAlias","hasFetchedAddInfo","setNewRelicCustomAttribute","closeModalHelper","updateRecentSearches","sanitizedTerm","filteredSearch","pop","newRecentSearches","setItem","prevState","updatedSearches","clickedSearch","getPageResults","limit","pageSearchResponse","logger","fetchPages","query","sort","b","score","firstRender","getInventoryResults","conditionFilter","inventoryFetchTimeout","inventorySearchResponse","shouldReturnCardsAlso","inventoryClientService","sortByNewest","apiURL","response","location","referrer","origin","fetchInventory","responseSearchTerm","transformedSuggestions","sortedSuggestions","suggestion","transformInventoryResults","fetchResults","pageSearchResponseResult","newInventorySearchResponse","usedInventorySearchResponse","certifiedInventorySearchResponse","singleInventorySearchResponse","inventoryResponse","tabsToDisable","activeTab","handleTabs","richContentResults","resultTypes","inventoryTypes","renderDuration","performance","hasNoResults","fetchEmbeddedResults","prependTab","handleQuerySubmission","allSuggestions","singleVehiclePath","removeItem","isClickOutside","contains","isClickInside","handleClickOutside","isOutsideInput","isOutsideDropdown","isInsideEmbeddedDropdown","isOutsideEmbeddedDropdown","searchTermValue","updateScreenWidth","innerWidth","throttledUpdateDropDownPosition","throttle","throttledUpdateScreenWidth","observer","MutationObserver","observe","childList","subtree","attributes","disconnect","debounceTimeoutRef","trimmedSearchTerm","isDisplayNavigation","params","URLSearchParams","prepareInventoryResults","stsContainerContent","searchContextValue","uiContextValue","resultsContextValue","Provider","hideWidgetOnPages","isWsNav","EventFired","aliasToHideOn","displayMarkup","errorInfo","newError","originalError","originalStackTrace","getWidgetClasses","widgetClasses","classes","getIconClasses","widgetHeading","headingIconClasses","headingIconSize","headingIconStyle","getHeadingClasses","headingSize","headingStyles","outputWrapperDiv","store","getState","wrapping","headingTag","requestData","RTK","providedReducers","configureStore","preloadedState","reducers","moduleDeps","oldRootReducer","rootReducer","getReducers","rtkConfigureStore","reducer","middleware","getDefaultMiddleware","customMiddleware","widgetIdToStore","widgetStates","WS","getWidgetState","hydrate","getElementById","initializeWidgets"],"sourceRoot":""}