{"version":3,"file":"footer-DSG2Q0UC.js","sources":["../../../../node_modules/@rei/browser-shim/index.js","../../../../node_modules/@rei/breakpoint-detector/es/main.js","../../../../node_modules/@rei/server-prop/lib/retrieve-data.js","../../../../node_modules/@rei/server-prop/index.js","../../../../node_modules/js-cookie/dist/js.cookie.mjs","../../../../node_modules/@rei/metrics/dist/main.mjs","../../../../src/main/js/footer/util/selectors.js","../../../../src/main/js/footer/components/email-signup/email-signup.js","../../../../src/main/js/footer/components/toggleButton.js","../../../../src/main/js/footer/components/Toast.js","../../../../src/main/js/footer/components/privacyPreference.js","../../../../src/main/js/footer/main/main.js","../../../../src/main/js/footer/footer.js"],"sourcesContent":["/*jshint camelcase:false*/\n/*global window*/\n/** CommonJS module shims for JavaScript libraries and objects attached to the\n browser's global 'window' object. The idea is to provide a single interface\n to the browser's global objects to reduce browser-specific couplings.\n\n Any shim specified in here can be \"imported\" using the CommonJS module\n pattern with 'require', e.g., in a CommonJS module, you can access jQuery\n like so:\n\n var $ = require( 'rei-browser-shim' ).jQuery;\n */\nconst win = typeof window !== 'undefined' ? window : {};\n\n// Browser API\nmodule.exports = {\n win: win,\n jQuery: win.jQuery || {},\n rei: win.rei || {},\n isProduction: ( win.rei && win.rei.session ) ? win.rei.session.isProduction : undefined\n};\n","import { win } from '@rei/browser-shim';\n\nvar doc = win.document;\nvar canGetComputedStyle = !!win.getComputedStyle;\n\n/**\n * Get Window Size\n * Finds the content string from the :after element\n * on the document body or returns none if not set\n * @returns {string}: window size ('xs', 'sm', etc.) or 'none'\n */\nexport var getWindowSize = function getWindowSize() {\n if (canGetComputedStyle) {\n var contentString = win.getComputedStyle(doc.body, ':after').getPropertyValue('content');\n return contentString.replace(/\\W/g, '');\n }\n return 'none';\n};\n\n/**\n * is Window Size ____ ?\n * @param size {string}: size to check against (specified in src/main.less)\n * @returns {boolean}: whether window size matches your requested size\n */\nexport var isWindowSize = function isWindowSize(size) {\n return size === getWindowSize();\n};\n\n/* deprecated window size check functions */\nexport var isNone = function isNone() {\n return isWindowSize('') || isWindowSize('none');\n};\nexport var isXS = function isXS() {\n return isWindowSize('xs');\n};\nexport var isSmall = function isSmall() {\n return isWindowSize('s');\n};\nexport var isMedium = function isMedium() {\n return isWindowSize('m');\n};\nexport var isLarge = function isLarge() {\n return isWindowSize('l');\n};","'use strict';\nvar win = require( '@rei/browser-shim' ).win;\nvar ATTRIBUTE_NAME = 'data-client-store';\n\n/**\n * Build Document Query\n * @private\n * @param {String} namespace\n * @returns {String}\n */\nvar buildDocumentQuery = function ( namespace ) {\n if ( !namespace || typeof namespace !== 'string' ) {\n throw new TypeError( 'No usable namespace, we got problems' );\n }\n\n return [ '[', ATTRIBUTE_NAME, '=\"', namespace, '\"]' ].join( '' );\n};\n\n\n/**\n * Simple shallow merge method: Combines n objects into 1. Subsequent\n * matching object properties overwrite previous.\n * @returns { Object } Merged objects.\n */\nvar merge = function () {\n var merged = {};\n var args = Array.prototype.slice.call( arguments );\n\n args.forEach( function (obj) {\n var keys = Object.getOwnPropertyNames( obj );\n\n keys.forEach( function ( key ) {\n merged[key] = obj[key];\n });\n });\n\n return merged;\n};\n\n/**\n * Retrieve Data\n * @desc This function will look client store elements returns their data\n * @param {String} namespace\n * @returns {Object|Null}\n */\nvar retrieveData = function ( namespace ) {\n var documentQuery = buildDocumentQuery( namespace );\n var elements = win.document.querySelectorAll( documentQuery );\n\n if ( !elements ) {\n return {};\n }\n\n try {\n var ret = {};\n var forEach = typeof elements.forEach === 'function' ? elements.forEach : Array.prototype.forEach;\n\n forEach.call( elements, function ( el ) {\n if( el && ( el.text || el.textContent ) ) {\n var text = JSON.parse( el.text || el.textContent );\n ret = merge( ret, text );\n }\n } );\n return ret;\n } catch ( e ) {\n throw new Error( e );\n }\n};\n\nmodule.exports = {\n retrieveData: retrieveData,\n merge: merge\n};\n","/**\n\n Important: This is loaded in the HEAD of .com so must be kept as\n minimal as possible. Carefully consider any 3rd party `require`s.\n\n \"Server property\" module for reading properties from the server set by\n an embedded script using non-standard script tags, e.g.,\n\n \n\n If available, you can also use Scott Flesher's JSP\n tag `js:clientStore` JSP tag, e.g.,\n\n <%-- Add JSP variables to the clientstore 'namespace' namespace --%>\n \n\n <%-- Write the clientstore object to the page --%>\n \n\n @param {string} Namespace of the server properties\n\n @example\n\n var servProps = new ServerProps('my-namespace');\n var a = servProps.servPropA; // `a` contains value of `servPropA`\n\n @author Rob McGuire-Dale \n*/\n'use strict';\nvar retrieveData = require( './lib/retrieve-data' ).retrieveData;\nvar win = require( '@rei/browser-shim' ).win;\n\nvar ServerProp = function ( namespace ) {\n\n if ( !namespace || typeof namespace !== 'string' ) {\n throw new TypeError( 'ServerProps must be instantiated with a namespace {String}' );\n }\n\n // Store namespace\n this.namespace = namespace;\n\n // Get the initial data and store the prop\n this._data = retrieveData( this.namespace );\n\n // Override initial values with values found from cookies\n this.setDataFromCookies( );\n\n return this;\n};\n\n/** Get a value from the server properties. If the key does not exist\n it will return `null`.\n\n @param {string} Key of the desired value set as a server property\n or undefined. If undefined, return all server properties as\n an object.\n\n @example\n\n // Assuming you have an instance of ServerProps called\n // `servProps`...\n servProps.get('a') // Returns the value of key 'a'\n*/\nServerProp.prototype.get = function ( key ) {\n var self = this;\n var servProps = self._data;\n\n if ( !key ) {\n return servProps;\n }\n\n // TODO We should eventually just pass back undefined. But, need to see what site effect it could have.\n if ( servProps[ key ] === undefined ) {\n return null;\n }\n\n return servProps[ key ];\n\n};\n\n/**\n * This is used to override any initial configuration data with values from\n * cookies explicitly defined.\n *\n * @example\n * Cookie overrides are namespaced key/value pairs to be set as follows:\n *\n * document.cookie = client-store-[configNamespace]-[configName]=[configValue]\n *\n * document.cookie = \"client-store-analytics-testAndTargetEnabled=false\";\n * document.cookie = \"client-store-analytics-googleTagManagerEnabled=true\";\n *\n * Once a cookie configuration value is set, all of the following calls will\n * return the overridden cookie value instead of that which was initially\n * provided via retrieve-data\n */\nServerProp.prototype.setDataFromCookies = function ( ) {\n\n var cookie = win.document.cookie;\n\n var data = this._data;\n var namespace = this.namespace;\n\n // There is no override for this particular namespace.\n if ( cookie.indexOf( 'client-store-' + namespace ) === -1 ) {\n // Stop execution of any additional code\n return false;\n }\n\n // We have reached the unsual case in which someone has set a client-store\n // configuration via a cookie. Lets update the client-store value with what\n // has been given via the cookie.\n for ( var key in data ) {\n // Namespaced configuration key\n var cookieKey = 'client-store-' + namespace + '-' + key;\n // find the cookie key / value within the cookie\n var cookieMatch = cookie.match( cookieKey + '=([^;]+)' );\n\n // an override has been found in cookie\n if ( cookieMatch && cookieMatch[ 1 ] ) {\n // assign / override the value\n this._data[ key ] = cookieMatch[ 1 ];\n }\n }\n};\n\nServerProp.prototype._setCookie = function ( key, value ) {\n win.document.cookie = key + '=' + value;\n this.setDataFromCookies( this.namespace );\n};\n\nmodule.exports = ServerProp;\n","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","import * as x from \"@rei/breakpoint-detector\";\nimport { getUser as C } from \"@rei/session\";\nimport _ from \"@rei/server-prop\";\nimport h from \"js-cookie\";\nconst c = (e) => {\n const { config: t, eventLog: n, errors: i } = window.metrics, { eventType: o = \"\", level: s, message: r } = e, a = () => [\"view\", \"link\", \"event\", \"click\"].includes(o);\n return s === \"error\" && i.push(e), a() && n.push(e), t.logToConsole && r ? console.log(`[Analytics ${s}] ${r}`) : t.logToConsole ? console.log(`[Analytics ${o}]`, e) : !1;\n}, R = (e, t) => {\n const n = new Promise((i, o) => {\n setTimeout(() => o(new Error(`Timed out after ${e} ms.`)), e);\n });\n return Promise.race([t, n]);\n}, q = () => window.navigator.globalPrivacyControl ? \"true\" : \"false\", Q = [\"siteId\", \"templateType\"], z = [\"linkName\", \"pageName\"], S = \":\", m = \"_\", B = {\n view: Q,\n link: z\n}, p = {\n env: \"qa\",\n profile: \"main\",\n noview: !0,\n logToConsole: !0,\n autoClickListeners: !1\n}, T = {\n www: \"prod\",\n localhost: \"LocalDev\"\n}, E = {\n blog: \"blog\",\n used: \"microsites\"\n}, O = /;+$/, D = (e) => {\n const t = /\\||;/g;\n return typeof e == \"string\" && (e.includes(\"|\") || e.includes(\";\")) ? e.replace(t, \" \") : e;\n}, U = (e, t) => {\n let n = \"\";\n return e.forEach((i, o, s) => {\n const a = o === s.length - 1 ? \";\" : \"|\";\n if (typeof i == \"string\")\n t === \"evars\" && c({\n level: \"warn\",\n message: `evar '${i}' must have a value. Ex: ${i}=value`\n }), n += `${i}${a}`;\n else {\n const [[g, d]] = Object.entries(i), f = D(g), w = D(d);\n n += `${f}=${w}${a}`;\n }\n }), n;\n}, G = (e) => {\n if (!e.productStyle)\n return c({\n level: \"warn\",\n message: \"`productStyle` is a required field\"\n });\n const {\n productStyle: t,\n productQty: n,\n productPrice: i,\n events: o,\n evars: s\n } = e, r = /* @__PURE__ */ new Map();\n r.set(\"events\", o), r.set(\"evars\", s);\n const a = n ? n + \";\" : \";\", g = i ? i + \";\" : \";\";\n let d = `;${t};${a}${g}`;\n return (o || s) && r.forEach((f, w) => {\n if (f === void 0) {\n d += \";\";\n return;\n }\n const y = U(\n f,\n w\n );\n d += `${y}`;\n }), d = d.replace(O, \"\"), d;\n}, H = (e) => typeof e == \"string\" ? e : Array.isArray(e) ? e.map((n) => G(n)).join(\",\") : \"\", K = (e) => typeof e != \"string\" ? null : e.split(\",\").map((s) => s.split(\";\").filter((r) => r !== \"\")).map((s) => s[0]).join(\",\"), W = (e) => {\n var t, n, i, o, s, r;\n return !((n = (t = window.metrics) == null ? void 0 : t.errors) != null && n.length) && ((o = (i = window.metrics) == null ? void 0 : i.config) == null ? void 0 : o.noview) || !((r = (s = window.metrics) == null ? void 0 : s.config) != null && r.noview) && e();\n}, Y = (e) => {\n const t = { siteId: \"\", templateType: \"\" };\n if (!e) return t;\n const n = e.includes(S);\n if (!(!!e && !!n)) return t;\n const o = e.split(S), [s] = o;\n let [, r] = o;\n if (r.includes(m)) {\n const g = r.split(\n m\n );\n [r] = g;\n const [, d] = g;\n t.pageSection = d;\n }\n return t.siteId = s, t.templateType = r, t;\n}, J = (e) => {\n if (typeof e != \"object\") return \"\";\n const { siteId: t, templateType: n, pageSection: i = null } = e;\n if (!t || !n) return \"\";\n let o = `${t}:${n}`;\n return i && (o += `${m}${i}`), o;\n}, X = (e) => Object.fromEntries(\n Object.entries(e).filter((t) => t[1] !== null && t[1] !== \"\")\n), Z = async (e) => {\n if (e) {\n const t = new TextEncoder().encode(e), n = await crypto.subtle.digest(\"SHA-256\", t);\n return Array.from(new Uint8Array(n)).map((o) => o.toString(16).padStart(2, \"0\")).join(\"\");\n }\n return null;\n}, ee = async () => {\n var e, t;\n if (window.reiSession) {\n const n = await R(3e3, C()).catch((o) => (c({\n level: \"warn\",\n message: `Could not get user from session: ${o}`\n }), !1));\n if (!n) return {};\n const i = await Z(((e = n == null ? void 0 : n.contact) == null ? void 0 : e.email) || null);\n return {\n isLoggedIn: n != null && n.isLoggedIn ? \"logged in\" : \"not logged in\",\n onlineAccountNumber: n != null && n.isLoggedIn ? n.accountId : null,\n customerMemberStatus: n != null && n.membership ? \"member\" : \"non-member\",\n memberNumber: ((t = n == null ? void 0 : n.membership) == null ? void 0 : t.memberNumber) || null,\n preferredStore: n == null ? void 0 : n.preferredStore,\n hasGPC: q(),\n hashedEmail: i\n };\n }\n return {};\n}, P = async (e, t) => {\n var k;\n const n = x.getWindowSize(), i = t(), o = await ee(), {\n siteId: s,\n pageName: r,\n pageSection: a,\n products: g,\n productSkus: d,\n productStyles: f,\n templateType: w\n } = e || {}, {\n siteId: y,\n pageName: $,\n pageSection: F,\n productSkus: V,\n productStyles: j,\n templateType: M\n } = (k = window == null ? void 0 : window.utag_data) != null ? k : {};\n let l = {\n currentBreakpoint: n,\n siteId: s || y || null,\n pageName: r || $ || null,\n pageSection: a || F || null,\n products: g ? H(g) : null,\n productSkus: d || V || null,\n productStyles: f || j || null,\n templateType: w || M || null,\n ...o\n };\n if (l.pageName) {\n const v = Y(l.pageName);\n l.siteId = l.siteId || v.siteId || null, l.pageSection = l.pageSection || v.pageSection || null, l.templateType = l.templateType || v.templateType || null;\n } else\n l.pageName = J(l);\n return l.products && !l.productStyles && (l.productStyles = K(\n l.products\n )), l = X(l), window.utag_data = {\n ...window.utag_data,\n ...i,\n ...e,\n ...l\n }, window.utag_data;\n}, te = (e) => {\n let t = \"\";\n return typeof e == \"object\" ? t = e.linkName || \"\" : typeof e == \"string\" && (t = e), t;\n}, I = (e) => {\n var a;\n let t = \"\";\n const n = te(e);\n let i = e.siteId || ((a = window == null ? void 0 : window.utag_data) == null ? void 0 : a.siteId) || \"\", o = S;\n const s = /^[^:]+:.*/, r = /^ct_.*/;\n return e.patternFunction && typeof e.patternFunction == \"function\" ? t = e.patternFunction(e) : n.match(r) ? i = \"\" : !n.match(s) && !n.match(r) && (typeof e.contentSection != \"undefined\" && (i = e.contentSection, o = m, typeof e.verticalPosition != \"undefined\" && (i = `ct_${e.verticalPosition}_${i}`)), t = i && i.length > 0 ? `${i}${o}` : \"\"), t += n, t;\n}, ne = (e) => {\n var i;\n let t = {};\n e !== null && typeof e == \"object\" ? (t = e, t.linkName = I(t)) : e !== null && typeof e == \"string\" ? t.linkName = I({ linkName: e }) : c({\n level: \"error\",\n message: \"No valid linkName provided\"\n });\n const { pageName: n } = (i = window == null ? void 0 : window.utag_data) != null ? i : {};\n return t.pageName = t.pageName || n, t;\n}, A = (e, t) => {\n const n = Object.keys(t != null ? t : {}), i = (s) => n.includes(s) ? !0 : (c({\n level: \"error\",\n message: `Data Layer incomplete: ${s} is a required field.`\n }), !1);\n return B[e].every(i);\n}, b = (e) => A(\"view\", e) || !1, ie = (e) => A(\"link\", e) || !1, N = () => window.utag ? window.utag_data ? !0 : (c({\n level: \"error\",\n message: \"Data layer not defined\"\n}), !1) : (c({\n level: \"error\",\n message: \"Tealium not loaded\"\n}), !1);\nfunction L() {\n return new _(\"page-meta-data\").get();\n}\nconst oe = (e = \"\") => {\n if (e)\n return e;\n const { pathname: t } = document.location, n = Object.keys(E).find((i) => t.startsWith(i, 1));\n return n ? E[n] : p.profile;\n}, se = () => window.navigator.userAgent.includes(\"LR_REI_PERF_\") || window._DATADOG_SYNTHETICS_BROWSER !== void 0 || h.get(\"datadog-synthetics-public-id\") !== void 0 || h.get(\"datadog-synthetics-result-id\") !== void 0, re = () => new _(\"page-meta-data\").get() || {}, ae = (e = \"\") => {\n let t;\n if (e && (e === \"qa\" || e === \"prod\"))\n t = e;\n else {\n const n = document.location.hostname.split(\".\")[0];\n T[n] ? t = T[n] : t = p.env;\n }\n return t;\n}, ce = (e) => {\n const t = e;\n t && Object.keys(p).forEach((n) => {\n const i = n;\n n in t && (typeof t[i] == \"boolean\" || t[i].length > 0) && (window.metrics.config[n] = t[i], delete t[i]);\n }), window.metrics.config.env = ae(window.metrics.config.env), window.metrics.config.profile = oe(window.metrics.config.profile), window.metrics.config = Object.assign(p, window.metrics.config), window.utag_cfg_ovrd = {\n noview: window.metrics.config.noview\n };\n}, le = async (...e) => {\n var t, n;\n Object.assign((t = window == null ? void 0 : window.utag_data) != null ? t : {}, ...e), !window.metrics.viewQueue.length && await P((n = window == null ? void 0 : window.utag_data) != null ? n : {}, L);\n}, ue = (e) => {\n try {\n (function(t, n, i, o, s, r) {\n i = \"https://tags.tiqcdn.com/utag/rei/\" + n + \"/\" + t + \"/utag.js\", o = document, s = \"script\", r = o.createElement(s), r.onload = e, r.src = i, r.type = \"text/java\" + s, r.async = !0, i = o.getElementsByTagName(s)[0], i.parentNode.insertBefore(r, i);\n })(window.metrics.config.env, window.metrics.config.profile);\n } catch (t) {\n return c({\n level: \"error\",\n message: `Error adding Tealium script: ${t}`\n }), !1;\n }\n return !0;\n}, de = () => {\n window.metrics.linkQueue && window.metrics.linkQueue.length > 0 && window.metrics.linkQueue.forEach((t) => {\n const {\n eventType: n,\n processed: i,\n callback: o,\n data: s\n } = t;\n [\"link\", \"click\", \"event\"].includes(n) && !i && (window.metrics.link(s, o, n), t.processed = !0);\n });\n}, ge = () => {\n window.metrics.viewQueue && window.metrics.viewQueue.length > 0 && window.metrics.viewQueue.forEach((t) => {\n const {\n eventType: n,\n processed: i,\n data: o,\n callback: s\n } = t;\n n === \"view\" && !i && (window.metrics.view(o, s), t.processed = !0);\n });\n}, fe = async (e, t) => {\n const n = e, i = window.utag_data || {}, o = re();\n window.utag_data = {}, await le(o, i, n);\n const s = () => {\n c({\n level: \"info\",\n message: \"Initialized.\"\n }), window.metrics.config.noview === !1 && (c({\n event: \"view\",\n data: (window == null ? void 0 : window.utag_data) || {}\n }), window.metrics.pageViewSent = !0), ge(), typeof t == \"function\" && t();\n };\n !se() && W(() => b(window.utag_data)) ? (ue(s), window.metrics.config.autoClickListeners && window.metrics.addClickListenersFromSelector()) : c({\n level: \"info\",\n message: \"Skipped injecting Tealium script. If not expected confirm required data is provided.\"\n }), window.metrics.initialized = !0, window.metrics.initializing = !1;\n}, we = (e) => {\n var t;\n return (e == null ? void 0 : e.dataset) && ((t = e == null ? void 0 : e.dataset) == null ? void 0 : t.analyticsId);\n}, me = (e) => {\n var t;\n return (e == null ? void 0 : e.dataset) && ((t = e == null ? void 0 : e.dataset) == null ? void 0 : t.locationName);\n}, pe = (e) => e == null ? void 0 : e.closest(\"[data-location-name]\"), ye = (e) => {\n const t = [];\n function n(i) {\n var s;\n const o = pe(i.parentNode);\n o && (t.unshift((s = me(o)) != null ? s : \"\"), n(o));\n }\n return n(e), t.join(\"_\");\n}, ve = (e) => {\n const t = e.querySelector(\"img\");\n return t ? t.getAttribute(\"alt\") : \"\";\n}, Se = (e) => `${e.dataset.analyticsId || e.textContent || ve(e)}`.trim() || \"undefined\", ke = (e) => {\n const t = e.closest(\"a, button\");\n return t || !1;\n}, he = (e) => {\n const t = e.target;\n if (t.closest(`\n [data-analytics-config=\"exclude\"] > a,\n [data-analytics-config=\"exclude\"] > button,\n [data-analytics-config=\"exclude-all\"] a,\n [data-analytics-config=\"exclude-all\"] button`)) return;\n const i = ke(t);\n if (i) {\n const o = we(i) || Se(i), s = ye(t), r = s ? `${s}_${o}` : o;\n if (r) {\n const a = {\n linkName: r\n };\n t instanceof HTMLAnchorElement && t.href && (a.destinationUrl = t.href), window.metrics.link(a, e);\n }\n }\n}, Te = {\n data() {\n return {\n defaultAnalyticsViewData: {\n siteId: \"rei\"\n // optional override in the component with the analyticsViewData() computed value\n }\n };\n },\n computed: {\n analyticsMap() {\n if (!this.renderingMap) return {};\n let e = 1;\n return Object.keys(this.renderingMap).reduce(\n (t, n) => (this.renderingMap[n] && (t[n] = `ct_${e}_${n}`, e += 1), t),\n {}\n );\n }\n },\n mounted() {\n window && window.metrics && (window.metrics.addClickListenersFromSelector(), window.metrics.view(\n {\n ...this.defaultAnalyticsViewData,\n ...this.analyticsViewData\n }\n ));\n }\n};\nfunction Ee() {\n return new Promise((e) => {\n setTimeout(e, 0);\n });\n}\nconst u = {\n version: \"4.5.0\",\n errors: [],\n config: {},\n eventLog: [],\n viewQueue: [],\n linkQueue: [],\n pageViewSent: !1,\n pageViewSending: !1,\n initialized: !1,\n initializing: !1,\n mixins: { analyticsMixin: Te },\n view: async (e, t) => {\n var i, o, s;\n const n = (r = !0) => {\n var a;\n r && c({\n eventType: \"view\",\n data: e,\n utagData: (a = window == null ? void 0 : window.utag_data) != null ? a : {}\n }), u.pageViewSending = !1, u.pageViewSent = !0, typeof t == \"function\" && t(), de();\n };\n if (u.pageViewSending = !0, !window.utag || !u.initialized || u.initializing)\n u.viewQueue.push({\n eventType: \"view\",\n data: e,\n utagData: (i = window == null ? void 0 : window.utag_data) != null ? i : {},\n callback: t\n });\n else\n try {\n await P(e, L), N() && b(window.utag_data) && ((s = (o = window.utag).view) == null || s.call(o, window.utag_data, n));\n } catch (r) {\n c({\n level: \"error\",\n eventType: \"view\",\n message: `view event error: ${r}`\n }), n(!1);\n }\n },\n link: async (e, t, n = \"link\") => {\n var a, g;\n let i;\n typeof e == \"string\" ? i = e : i = { ...e };\n const o = ne(e), s = {\n eventType: n,\n data: i,\n utagData: { ...window.utag_data, ...o }\n }, r = (d = !0) => {\n d && c(s), typeof t == \"function\" ? t() : typeof t == \"string\" && (window.location.href = t);\n };\n if (!u.pageViewSent || u.pageViewSending)\n u.linkQueue.push({\n ...s,\n callback: t\n });\n else\n try {\n N() && ie(o) && (await Ee(), typeof window.s != \"undefined\" && !window.s.useBeacon && (window.s.useBeacon = !0), (g = (a = window == null ? void 0 : window.utag) == null ? void 0 : a.link) == null || g.call(a, o, r));\n } catch (d) {\n c({\n level: \"error\",\n eventType: \"link\",\n message: `link event error: ${d}`\n }), r(!1);\n }\n },\n /**\n * Legacy click method for backwards compatability, remove after @rei-metrics 3.0 is fully adopted\n * @deprecated Use {@link Metrics.link} instead\n * @param data\n * @param element\n * @param cb\n */\n click: (e, t, n) => {\n if (!e) {\n c({\n level: \"error\",\n eventType: \"click\",\n message: \"click event data not provided\"\n });\n return;\n }\n n && typeof n == \"function\" ? u.link(e, n, \"click\") : t && t.href ? u.link(e, t.href, \"click\") : u.link(e, void 0, \"click\");\n },\n event: (e, t) => {\n try {\n u.link(e, t, \"event\");\n } catch (n) {\n c({\n level: \"error\",\n eventType: \"event\",\n message: `event error: ${n}`\n }), typeof t == \"function\" && t();\n }\n },\n /**\n * Retrieves the visitor ID asynchronously.\n * @returns A promise that resolves with the visitor ID.\n * @deprecated This function will be deprecated once all applications migrate to `alloy.js`.\n */\n async getVisitorId() {\n var e;\n if (typeof (window == null ? void 0 : window.alloy) == \"function\")\n return (await window.alloy(\"getIdentity\")).identity.ECID;\n if ((e = window.visitor) != null && e.getMarketingCloudVisitorID)\n return window.visitor.getMarketingCloudVisitorID();\n throw new Error(\"Both alloy and visitor are undefined\");\n },\n /**\n * Applies click listeners to all and \n * \n *
\n * \n *\n * After button clicked:\n *\n *
\n *
\n * header\n * \n *
\n *
\n *
\n *\n * NOTE: selectors and classes used can be overridden and can call initToggleButton multiple times\n * with different config\n */\n\n/**\n * Toggle open classes on elements\n * @param {HTMLButtonElement} button\n * @param {Object} config\n * @returns {Boolean} true is current open state is true\n */\nconst toggleElementsClass = (button, config) => {\n const {\n parentElementSelector,\n toggleElementSelector,\n toggleParentClass,\n toggleContentClass,\n } = config;\n const toggleElement = button.closest(parentElementSelector);\n toggleElement.querySelector(toggleElementSelector).classList.toggle(toggleContentClass);\n return toggleElement.classList.toggle(toggleParentClass);\n};\n\n/**\n * Updates the aria expanded state on a button\n * @param {HTMLButtonElement} button\n * @param {Boolean} isToggled\n */\nconst updateElementsAria = (button, isToggled) => {\n button.setAttribute('aria-expanded', isToggled);\n};\n\n/**\n * Gets the button's content elements id\n * @param {HTMLButtonElement} button\n * @param {Object} config\n * @returns {String} content element id\n */\nconst getToggleElementId = (button, config) => {\n const {\n parentElementSelector,\n toggleElementSelector,\n } = config;\n const parentElement = button.closest(parentElementSelector);\n const toggleElement = parentElement.querySelector(toggleElementSelector);\n return toggleElement.id;\n};\n\n/**\n * Handler when a toggle is to happen\n * @param {HTMLButtonElement} button\n * @param {Object} config\n */\nconst handleToggle = (button, config) => {\n const isToggled = toggleElementsClass(button, config);\n updateElementsAria(button, isToggled);\n};\n\n/**\n * Construct a text element for button label\n * @param {Object} config\n * @param {HTMLElement} element\n * @returns\n */\nconst buildToggleLabel = (config, element) => {\n const { document, toggleHeaderTextSelector, toggleButtonTextClass } = config;\n const { textContent } = element.querySelector(toggleHeaderTextSelector) || {};\n const label = document.createElement('span');\n label.classList.add(toggleButtonTextClass);\n label.textContent = textContent || '';\n return label;\n};\n\n/**\n * Constructs a toggle button and listen to events\n * @param {Object} results\n * @param {Object} config\n * @param {HTMLElement} element\n * @returns {HTMLButtonElement}\n */\nconst buildToggleButton = (results, config, element) => {\n const { document, toggleButtonClass } = config;\n const { buttons } = results;\n const button = document.createElement('button');\n button.classList.add(toggleButtonClass);\n button.appendChild(buildToggleLabel(config, element));\n button.addEventListener('click', (event) => {\n handleToggle(event.target, config);\n });\n buttons.push(button);\n return button;\n};\n\n/**\n * Combine selectors and query for all elements to add\n * toggle buttons to and store in results object\n * @param {Object} results\n * @param {Object} config\n */\nconst selectElements = (results, config) => {\n const { elements } = results;\n const { selectors } = config;\n const selector = selectors.join(', ');\n elements.push(...document.querySelectorAll(selector));\n};\n\n/**\n * Add toggle buttons to all elements returned from the\n * selector\n * @param {Object} results\n * @param {Object} config\n */\nconst appendToggleButtons = (results, config) => {\n const { elements } = results;\n elements.forEach((element) => {\n element.appendChild(buildToggleButton(results, config, element));\n });\n};\n\n/**\n * Init opened state based on the config toggle property\n * @param {Object} results\n * @param {Object} config\n */\nconst initToggleState = (results, config) => {\n const { buttons } = results;\n const { toggled } = config;\n if (toggled) {\n buttons.forEach((button) => handleToggle(button, config));\n }\n};\n\n/**\n * Add aria attributes to all injected buttons\n * @param {Object} results\n * @param {Object} config\n */\nconst addAccessibility = (results, config) => {\n const { buttons } = results;\n const { toggled } = config;\n buttons.forEach((button) => {\n button.setAttribute('aria-expanded', toggled);\n button.setAttribute('aria-controls', getToggleElementId(button, config));\n });\n};\n\n/**\n * Combine user config into the default config\n * @param {Object} config\n * @param {Object} userConfig\n */\nconst initConfig = (config, userConfig) => {\n Object.assign(config, userConfig);\n};\n\n/**\n * Returns a new state object containing config with selectors and class info\n * for creation of toggle button.\n * Results stores instances of the elements that the buttons are injects in as\n * well as the buttons injected.\n * @returns {Object}\n */\nconst getState = () => ({\n config: {\n document: undefined,\n selectors: ['[data-js=\"rei-toggle-container__header\"]'],\n parentElementSelector: '[data-js=\"rei-toggle-container\"]',\n toggleElementSelector: '[data-js=\"rei-toggle-container__content\"]',\n // Container of text to inject into toggle button\n toggleHeaderTextSelector: '[data-js=\"rei-toggle-container__header--text\"]',\n // Style class added to parentElementSelector\n toggleParentClass: 'rei-toggled-open',\n // Style class added to toggleElementSelector\n toggleContentClass: 'rei-toggled-visible',\n // Style class added to injected toggle button\n toggleButtonClass: 'rei-toggle-button',\n // Style class added to injected toggle button text element\n toggleButtonTextClass: 'rei-toggle-button-text',\n // Init toggle state\n toggled: false,\n },\n results: {\n elements: [],\n buttons: [],\n },\n});\n\n/**\n * Creates a function scoped state to allow for multiple instances with different\n * config to exist together.\n * @param {Object} userConfig\n * @returns {Object} state\n */\nconst initToggleButton = (userConfig) => {\n // set function scoped state\n const state = getState();\n const { config, results } = state;\n\n // Override defaults with user config\n initConfig(config, userConfig);\n // Select the elements that will get toggle buttons injected into\n selectElements(results, config);\n // Inject buttons into elements\n appendToggleButtons(results, config);\n // Set the toggle state for all buttons\n initToggleState(results, config);\n // Add accessible attributes\n addAccessibility(results, config);\n return state;\n};\n\nexport default initToggleButton;\n","import { PRIVACY_FALLBACK_ID } from '../util/selectors';\n\nexport default class Toast {\n constructor(element) {\n this.trigger = element;\n this.wrapper = element.parentElement;\n this.trigger = element;\n this.wrapper = element.parentElement;\n this.popover = global.window.document.createElement('div');\n const icon = global.window.document.createElement('div');\n icon.setAttribute('data-js', 'fallback-icon');\n const text = global.window.document.createElement('span');\n text.setAttribute('data-js', 'fallback-text');\n const button = global.window.document.createElement('button');\n button.setAttribute('data-js', 'fallback-button');\n this.popover.setAttribute('id', PRIVACY_FALLBACK_ID);\n this.popover.setAttribute('class', 'cdr-toast');\n icon.setAttribute('class', 'cdr-toast__icon');\n text.setAttribute('class', 'cdr-toast__message');\n button.setAttribute('class', 'cdr-toast__button');\n button.setAttribute('type', 'button');\n icon.innerHTML = '';\n text.innerHTML = '\"Privacy Choices\" may be unavailable.Please check your browser\\'s privacy settings and third-party extensions and try again later.';\n button.innerHTML = '';\n this.popover.append(icon);\n this.popover.append(text);\n this.popover.append(button);\n\n // Utility methods\n this.handleWindowEvent = () => {\n if (this.isVisible) {\n this.show();\n }\n };\n\n this.handleDocumentEvent = (evt) => {\n if (this.isVisible && evt.target !== this.wrapper\n && evt.target !== this.trigger && evt.target !== this.popover) {\n this.popover.remove();\n global.document.querySelector('[data-js=\"footer-privacy-fallback\"]').style.contentVisibility = 'auto';\n }\n };\n }\n\n get isVisible() {\n return global.window.document.body.contains(this.popover);\n }\n\n show() {\n global.window.document.addEventListener('click', this.handleDocumentEvent);\n global.window.addEventListener('resize', this.handleWindowEvent);\n this.wrapper.appendChild(this.popover);\n global.document.querySelector('[data-js=\"footer-privacy-fallback\"]').style.contentVisibility = 'initial';\n }\n\n destroy() {\n const footerButton = global.window.document.getElementById('footer-privacy-choices');\n this.popover.remove();\n global.window.removeEventListener('click', this.handleDocumentEvent);\n global.window.removeEventListener('resize', this.handleWindowEvent);\n global.document.querySelector('[data-js=\"footer-privacy-fallback\"]').style.contentVisibility = 'auto';\n footerButton.focus();\n }\n\n toggle() {\n if (this.isVisible) {\n this.destroy();\n } else {\n this.show();\n }\n }\n}\n","import { getDomElems } from '../../_shared-components/getDomElems';\nimport { FOOTER_ID } from '../util/selectors';\nimport Toast from './Toast';\n\nconst clickHandler = (e, popover) => {\n e.preventDefault();\n if (global.window.OneTrust) {\n global.window.OneTrust.ToggleInfoDisplay();\n } else {\n popover.toggle();\n }\n};\n\nconst createFallBackExperience = (element) => new Toast(element);\n\n/**\n * Initializes Privacy Choices button (which triggers a OneTrust modal).\n * @param {Object} selectors\n */\nconst init = (selectors) => {\n const footerElem = global.window.document.getElementById(FOOTER_ID);\n const privacySelectors = getDomElems(selectors, footerElem);\n if (privacySelectors === null) {\n return;\n }\n const { privacyElem } = privacySelectors;\n const popover = createFallBackExperience(privacyElem);\n privacyElem.addEventListener('click', (e) => clickHandler(e, popover));\n};\nexport default init;\n","/**\n * Footer\n */\nimport metrics from '@rei/metrics';\nimport initEmailSignup from '../components/email-signup/email-signup';\nimport { FOOTER_ID, emailSignupSelector } from '../util/selectors';\nimport initToggleButton from '../components/toggleButton';\nimport init from '../components/privacyPreference';\n\nconst FOOTER_SELECTOR = `#${FOOTER_ID}`;\n\nexport function app(win) {\n const {\n emailSignupContainer,\n emailSignupForm: signupForm,\n emailFormInput: emailInput,\n emailSignupFormInputGroup: inputGroup,\n emailSignupFormInputErrorBlock: errorMsg,\n emailSignupSuccess,\n emailSignupFailure,\n } = emailSignupSelector;\n initEmailSignup({\n config: {\n win,\n doc: win.document,\n },\n selectors: {\n emailSignupContainer,\n signupForm,\n emailInput,\n inputGroup,\n errorMsg,\n emailSignupSuccess,\n emailSignupFailure,\n },\n });\n initToggleButton({\n document: win.document,\n });\n metrics.init(\n {\n noview: true,\n },\n metrics.addClickListenersFromSelector(FOOTER_SELECTOR)\n );\n init({ privacyElem: '#footer-privacy-choices' });\n\n return win;\n}\n\nexport function main(win = window) {\n if (win.document.readyState === 'loading') {\n // Loading hasn't finished yet\n win.document.addEventListener('DOMContentLoaded', app.bind(null, win));\n } else {\n // `DOMContentLoaded` has already fired\n app(win);\n }\n}\n","import '../../style/footer/footer.scss';\nimport '../util/global-shim';\nimport { main } from './main/main';\n\n/**\n * This is the main js entry point.\n *\n * @param win Window object. Pass in to allow for window stubbing.\n * @returns {Window}\n */\n\nmain(window);\n"],"names":["win","browserShim","doc","canGetComputedStyle","getWindowSize","contentString","require$$0","ATTRIBUTE_NAME","buildDocumentQuery","namespace","merge","merged","args","obj","keys","key","retrieveData","documentQuery","elements","ret","forEach","el","text","e","retrieveData_1","require$$1","ServerProp","self","servProps","cookie","data","cookieKey","cookieMatch","value","serverProp","assign","target","i","source","defaultConverter","init","converter","defaultAttributes","set","name","attributes","stringifiedAttributes","attributeName","get","cookies","jar","parts","found","api","c","s","a","R","q","Q","z","S","m","B","p","T","E","O","D","U","g","d","f","w","G","y","H","n","K","r","W","Y","o","J","X","Z","ee","C","P","k","x.getWindowSize","$","F","V","j","M","l","v","te","I","t","ne","A","b","ie","N","L","_","oe","se","h","re","ae","ce","le","ue","de","ge","fe","we","me","pe","ye","ve","Se","ke","he","Te","Ee","u","FOOTER_ID","PRIVACY_FALLBACK_ID","emailSignupSelector","emailSignupWrapper","emailSignupContainer","emailSignupForm","emailSignupFormInputGroup","emailSignupFormInputErrorBlock","emailFormInput","emailSignupSuccess","emailSignupFailure","emailSignupCaptchaId","recaptchaScriptClass","emailSignupClasses","waitSpinner","signedUp","failed","recaptchaLoaded","inputError","config","state","baseElement","signupForm","emailInput","inputGroup","errorMsg","footEmailRecapId","markAsError","classList","add","style","display","setAttribute","removeValidationError","remove","validateEmail","event","forceFocus","valid","checkValidity","preventDefault","analyticsCustomClickHandler","linkName","errorCodes","focus","doneScriptLoaded","grecaptcha","render","sitekey","callback","size","resetGrecaptcha","reset","renderGrecaptcha","buildRecaptchaUrl","buildFormDataParamString","form","dataString","formData","FormData","length","slice","xhrRequest","type","url","successHandler","errorHandler","xhr","XMLHttpRequest","open","setRequestHeader","addEventListener","status","send","signupCompleteHandler","events","signupFailHandler","newsletterSignupCaptchaCallback","getAttribute","handleOnSubmit","execute","loadRecaptcha","recaptchaScript","appendChild","setTimeout","onload","addRecaptcha","recaptchaScriptLoadHandler","removeEventListener","createRecaptchaElement","createElement","initRecaptchaHandlers","initListeners","initState","Object","initEmailSignup","functionState","querySelector","signUpElems","getDomElems","selectors","toggleElementsClass","button","parentElementSelector","toggleElementSelector","toggleParentClass","toggleContentClass","toggleElement","closest","toggle","updateElementsAria","isToggled","getToggleElementId","id","handleToggle","buildToggleLabel","element","document","toggleHeaderTextSelector","toggleButtonTextClass","textContent","label","buildToggleButton","results","toggleButtonClass","buttons","push","selectElements","selector","join","querySelectorAll","appendToggleButtons","initToggleState","toggled","addAccessibility","initConfig","userConfig","getState","undefined","initToggleButton","Toast","constructor","trigger","wrapper","parentElement","popover","global","window","icon","innerHTML","append","handleWindowEvent","isVisible","show","handleDocumentEvent","evt","contentVisibility","body","contains","destroy","footerButton","getElementById","clickHandler","OneTrust","ToggleInfoDisplay","createFallBackExperience","footerElem","privacySelectors","privacyElem","FOOTER_SELECTOR","app","metrics","noview","addClickListenersFromSelector","main","readyState","bind"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}