{"version":3,"file":"bundle.js","mappings":"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","sources":["webpack://elc-service-translations/./node_modules/@estee/elc-drupal-api/node_modules/debug/src/browser.js","webpack://elc-service-translations/./node_modules/@estee/elc-drupal-api/node_modules/debug/src/common.js","webpack://elc-service-translations/./node_modules/@estee/elc-logging/node_modules/debug/src/browser.js","webpack://elc-service-translations/./node_modules/@estee/elc-logging/node_modules/debug/src/common.js","webpack://elc-service-translations/./node_modules/@estee/elc-service/node_modules/@estee/elc-logging/src/ELCLoggerValidations.ts","webpack://elc-service-translations/./node_modules/@estee/elc-service/node_modules/@estee/elc-logging/src/LoggerApiSDK.ts","webpack://elc-service-translations/./node_modules/@estee/elc-service/node_modules/@estee/elc-logging/src/ELCLogger.ts","webpack://elc-service-translations/./node_modules/@estee/elc-service/src/Service/ServiceManager/ServiceManager.ts","webpack://elc-service-translations/./node_modules/@estee/elc-universal-utils/src/UniversalUtils.ts","webpack://elc-service-translations/./node_modules/@estee/elc-universal-utils/src/Service/ServiceUtils.ts","webpack://elc-service-translations/./node_modules/@estee/elc-universal-utils/src/BrowserStorage.ts","webpack://elc-service-translations/./src/service-setup/ServiceBusController.ts","webpack://elc-service-translations/./node_modules/@estee/elc-service/src/Service/BaseService.ts","webpack://elc-service-translations/./src/service-setup/TranslationsService.ts","webpack://elc-service-translations/external var [\"ElcRuntime\",\"HypoContainer\"]","webpack://elc-service-translations/external var [\"ElcRuntime\",\"HttpTransport\"]","webpack://elc-service-translations/./node_modules/@estee/elc-drupal-api/node_modules/@estee/elc-universal-utils/src/UniversalUtils.ts","webpack://elc-service-translations/./node_modules/@estee/elc-drupal-api/node_modules/@estee/elc-universal-utils/src/BrowserStorage.ts","webpack://elc-service-translations/./node_modules/@estee/elc-drupal-api/node_modules/@estee/elc-logging/src/ELCLoggerValidations.ts","webpack://elc-service-translations/./node_modules/@estee/elc-drupal-api/node_modules/@estee/elc-logging/src/LoggerApiSDK.ts","webpack://elc-service-translations/./node_modules/@estee/elc-drupal-api/node_modules/@estee/elc-logging/src/ELCLogger.ts","webpack://elc-service-translations/./node_modules/@estee/elc-drupal-api/node_modules/@estee/elc-service/src/Api.ts","webpack://elc-service-translations/./node_modules/@estee/elc-drupal-api/src/DrupalApi.ts","webpack://elc-service-translations/./src/api/TranslationsApiSdk.ts","webpack://elc-service-translations/external var [\"ElcRuntime\",\"mobx\"]","webpack://elc-service-translations/./src/service-setup/ConfigStore.tsx","webpack://elc-service-translations/./node_modules/@estee/elc-logging/node_modules/@estee/elc-universal-utils/src/UniversalUtils.ts","webpack://elc-service-translations/./node_modules/@estee/elc-logging/node_modules/@estee/elc-universal-utils/src/BrowserStorage.ts","webpack://elc-service-translations/./node_modules/@estee/elc-logging/node_modules/@estee/elc-universal-utils/src/Service/ServiceVersion.ts","webpack://elc-service-translations/./node_modules/@estee/elc-logging/src/ELCLoggerValidations.ts","webpack://elc-service-translations/./node_modules/@estee/elc-logging/src/LoggerApiSDK.ts","webpack://elc-service-translations/./node_modules/@estee/elc-logging/src/ELCLogger.ts","webpack://elc-service-translations/./src/internal/translation-mappings/Account.ts","webpack://elc-service-translations/./src/internal/translation-mappings/index.ts","webpack://elc-service-translations/./src/internal/translation-mappings/AccountErrors.ts","webpack://elc-service-translations/./src/internal/translation-mappings/ApptBooking.ts","webpack://elc-service-translations/./src/internal/translation-mappings/Cart.ts","webpack://elc-service-translations/./src/internal/translation-mappings/CartErrors.ts","webpack://elc-service-translations/./src/internal/translation-mappings/Checkout.ts","webpack://elc-service-translations/./src/internal/translation-mappings/Common.ts","webpack://elc-service-translations/./src/internal/translation-mappings/Communications.ts","webpack://elc-service-translations/./src/internal/translation-mappings/Compliance.ts","webpack://elc-service-translations/./src/internal/translation-mappings/Errors.ts","webpack://elc-service-translations/./src/internal/translation-mappings/General.ts","webpack://elc-service-translations/./src/internal/translation-mappings/Loyalty.ts","webpack://elc-service-translations/./src/internal/translation-mappings/Offers.ts","webpack://elc-service-translations/./src/internal/translation-mappings/Vto.ts","webpack://elc-service-translations/./src/internal/translation-mappings/Product.ts","webpack://elc-service-translations/./src/internal/translation-mappings/ProductAttributes.ts","webpack://elc-service-translations/./src/internal/translation-mappings/Stores.ts","webpack://elc-service-translations/./src/internal/translation-mappings/User.ts","webpack://elc-service-translations/./src/internal/translation-mappings/Search.ts","webpack://elc-service-translations/./src/internal/translation-mappings/DeliveryTout.ts","webpack://elc-service-translations/./src/internal/translation-mappings/Orders.ts","webpack://elc-service-translations/./src/internal/translation-mappings/Gifting.ts","webpack://elc-service-translations/./src/internal/repositories/TranslationsRepository.ts","webpack://elc-service-translations/./src/service-setup/diContainer.tsx","webpack://elc-service-translations/./node_modules/@estee/elc-service/node_modules/debug/src/browser.js","webpack://elc-service-translations/./node_modules/@estee/elc-service/node_modules/debug/src/common.js","webpack://elc-service-translations/./node_modules/ms/index.js","webpack://elc-service-translations/./node_modules/process/browser.js","webpack://elc-service-translations/external var \"ElcServiceBus\"","webpack://elc-service-translations/webpack/bootstrap","webpack://elc-service-translations/webpack/runtime/compat get default export","webpack://elc-service-translations/webpack/runtime/define property getters","webpack://elc-service-translations/webpack/runtime/global","webpack://elc-service-translations/webpack/runtime/hasOwnProperty shorthand","webpack://elc-service-translations/webpack/runtime/make namespace object","webpack://elc-service-translations/./src/index.ts","webpack://elc-service-translations/webpack/container-entry"],"sourcesContent":["/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* Active `debug` instances.\n\t*/\n\tcreateDebug.instances = [];\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn match;\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.enabled = createDebug.enabled(namespace);\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.destroy = destroy;\n\t\tdebug.extend = extend;\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\tcreateDebug.instances.push(debug);\n\n\t\treturn debug;\n\t}\n\n\tfunction destroy() {\n\t\tconst index = createDebug.instances.indexOf(this);\n\t\tif (index !== -1) {\n\t\t\tcreateDebug.instances.splice(index, 1);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0; i < createDebug.instances.length; i++) {\n\t\t\tconst instance = createDebug.instances[i];\n\t\t\tinstance.enabled = createDebug.enabled(instance.namespace);\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* Active `debug` instances.\n\t*/\n\tcreateDebug.instances = [];\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn match;\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.enabled = createDebug.enabled(namespace);\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.destroy = destroy;\n\t\tdebug.extend = extend;\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\tcreateDebug.instances.push(debug);\n\n\t\treturn debug;\n\t}\n\n\tfunction destroy() {\n\t\tconst index = createDebug.instances.indexOf(this);\n\t\tif (index !== -1) {\n\t\t\tcreateDebug.instances.splice(index, 1);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0; i < createDebug.instances.length; i++) {\n\t\t\tconst instance = createDebug.instances[i];\n\t\t\tinstance.enabled = createDebug.enabled(instance.namespace);\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","const isString: Function = (value: unknown) => typeof value === 'string';\n\nconst VALIDATORS: { [key: string]: Function[] } = {\n buid: [Boolean],\n context: [Boolean],\n environment: [Boolean, isString],\n level: [Boolean, isString],\n message: [Boolean, isString],\n serviceName: [Boolean, isString],\n serviceVersion: [Boolean, isString],\n triggerType: [Boolean, isString],\n userAgent: [Boolean, isString]\n};\n\nexport const validate = (requestBody: { [key: string]: unknown }) => {\n const result = Object.keys(VALIDATORS).reduce((acc: boolean[], key) => {\n VALIDATORS[key].forEach((validator: (value: unknown) => boolean) => {\n const requestValue = requestBody[key];\n acc.push(validator(requestValue));\n });\n\n return acc;\n }, []);\n\n return result.every(Boolean);\n};\n","import { root, IFrontendLogger } from '@estee/elc-universal-utils';\nimport { validate } from './ELCLoggerValidations';\nimport { ILogData, IFullData } from './ELCLogger';\n\nexport class LoggerApiSDK {\n private loggingServiceUrl: string = '/stardust-fe-logging-v0/logMessage';\n private queue: ILogData[] = [];\n private isRequestIdleCallbackScheduled: boolean;\n private lastTimeExecuted: number = Date.now();\n private frontendLogger: IFrontendLogger = root.site ? root.site.frontendLogger || {} : {};\n\n private generateRequestBody(fullData: IFullData) {\n const { config, level, logdata } = fullData;\n\n const { payload = {}, message, triggerType } = logdata;\n const {\n serviceName: payloadServiceName,\n serviceVersion: payloadServiceVersion,\n context,\n error\n } = payload;\n\n const {\n serviceName: configServiceName,\n serviceVersion: configServiceVersion,\n buid: configBuid,\n environment: configEnvironment\n } = config;\n const stringifiedError = error && JSON.stringify(error, Object.getOwnPropertyNames(error));\n\n return {\n context: {\n ...context,\n date: new Date().toUTCString(),\n error: stringifiedError\n },\n environment: configEnvironment || root.env,\n level: level,\n message,\n serviceName: payloadServiceName || configServiceName,\n serviceVersion: payloadServiceVersion || configServiceVersion,\n siteUrl: root.location.href,\n buid: configBuid || root.buid,\n triggerType,\n userAgent: root.navigator.userAgent\n };\n }\n\n public sendLog(fullData: IFullData) {\n const requestBody = this.generateRequestBody(fullData);\n const loggedServices = this.frontendLogger.loggedServices || {};\n const serviceConfig = loggedServices[requestBody.serviceName] || {};\n const isServiceEnabled = serviceConfig.isEnabled;\n\n if (this.frontendLogger.isEnabled && isServiceEnabled) {\n if (!validate(requestBody)) {\n throw new Error(`Request body for error logging did not validate`);\n }\n\n this.addLogToQueue(requestBody);\n }\n }\n\n public addLogToQueue = (log: ILogData) => {\n this.queue.push(log);\n this.schedulePendingEvents();\n };\n\n private schedulePendingEvents = () => {\n if (this.isRequestIdleCallbackScheduled) {\n return;\n }\n\n this.isRequestIdleCallbackScheduled = true;\n root.requestIdleCallback(this.processPendingLogs);\n };\n\n private processPendingLogs = () => {\n this.isRequestIdleCallbackScheduled = false;\n\n if (this.queue.length > 0 && Date.now() - this.lastTimeExecuted > 2000) {\n root.HttpTransport.post({\n url: this.loggingServiceUrl,\n body: this.queue\n }).catch(() => console.error('Errors failed to be sent to sumoLogic', this.queue));\n\n this.queue = [];\n this.lastTimeExecuted = Date.now();\n }\n\n if (this.queue.length > 0) {\n this.schedulePendingEvents();\n }\n };\n}\n","import { debug, Debugger } from 'debug';\nimport { LoggerApiSDK } from './LoggerApiSDK';\nimport { getSandboxEnvironment, root, ISandboxEnvironment } from '@estee/elc-universal-utils';\n\nexport interface IFullData {\n logdata: ILogData;\n level: string;\n config: IELCLogger;\n}\n\nexport interface IPayload {\n error?: Error;\n context?: object;\n serviceName?: string;\n serviceVersion?: string;\n}\n\nexport interface ILogData {\n triggerType: TriggerType;\n message: string;\n payload?: IPayload;\n}\n\nexport enum TriggerType {\n runtimeError = 'runtimeError',\n api = 'api',\n graphqlApi = 'graphqlApi',\n render = 'render',\n serviceBus = 'serviceBus',\n config = 'config',\n translation = 'translation',\n other = 'other'\n}\n\nexport interface IELCLogger {\n serviceName: string;\n serviceVersion?: string;\n environment?: string;\n buid?: string;\n}\n\nexport class ELCLogger {\n private config: IELCLogger;\n\n private errorDebugger?: Debugger;\n private infoDebugger?: Debugger;\n private warningDebugger?: Debugger;\n private eventDebugger?: Debugger;\n private queryDebugger?: Debugger;\n private commandDebugger?: Debugger;\n\n constructor(config: IELCLogger) {\n this.config = config;\n const logger = debug(this.config.serviceName);\n root.loggerApiSDK = root.loggerApiSDK || new LoggerApiSDK();\n\n this.errorDebugger = logger.extend('error');\n this.infoDebugger = logger.extend('info');\n this.warningDebugger = logger.extend('warning');\n this.eventDebugger = logger.extend('event');\n this.queryDebugger = logger.extend('query');\n this.commandDebugger = logger.extend('command');\n }\n\n public error = async (logdata: ILogData) => {\n if (this.errorDebugger) {\n this.errorDebugger(this.enhanceLogData(logdata));\n }\n\n const isProd =\n this.config.environment === ISandboxEnvironment.PRODUCTION ||\n root.env === ISandboxEnvironment.PRODUCTION;\n\n if ((isProd && getSandboxEnvironment() === ISandboxEnvironment.LIVE) || !isProd) {\n return this.sendLog(logdata, 'error');\n }\n };\n\n public info = (logdata: ILogData) => {\n if (this.infoDebugger) {\n this.infoDebugger(this.enhanceLogData(logdata));\n }\n };\n\n public warning = (logdata: ILogData) => {\n if (this.warningDebugger) {\n this.warningDebugger(this.enhanceLogData(logdata));\n }\n };\n\n public event = (logdata: ILogData) => {\n if (this.eventDebugger) {\n this.eventDebugger(this.enhanceLogData(logdata));\n }\n };\n\n public query = (logdata: ILogData) => {\n if (this.queryDebugger) {\n this.queryDebugger(this.enhanceLogData(logdata));\n }\n };\n\n public command = (logdata: ILogData) => {\n if (this.commandDebugger) {\n this.commandDebugger(this.enhanceLogData(logdata));\n }\n };\n\n private enhanceLogData = (logdata: ILogData) => ({\n ...logdata,\n triggerSource: this.config.serviceName,\n date: new Date().toUTCString()\n });\n // @ts-ignore\n private async sendLog(logdata: ILogData, level: string) {\n try {\n root.loggerApiSDK.sendLog({ logdata, level, config: this.config });\n } catch (e) {\n if (this.errorDebugger) {\n this.errorDebugger(\n this.enhanceLogData({\n message: 'Could not send log',\n triggerType: TriggerType.api,\n payload: {\n error: e,\n context: logdata\n }\n })\n );\n }\n }\n }\n}\n","import {\n ServiceQueries,\n query,\n serviceQueries,\n ServiceEvents,\n ServiceCommands,\n events,\n on,\n emit\n} from '@estee/elc-service-bus';\nimport { ELCLogger, TriggerType } from '@estee/elc-logging';\nimport { ViewController } from '../../ViewController';\nimport { ServiceBusController } from '../ServiceBusController';\nimport { BaseService } from '../BaseService';\nimport { IAppConfig } from '@estee/elc-universal-utils';\n\ntype diContainerType = { get(key: string): T };\nexport type ContainerImport = () => Promise<{ diContainer: diContainerType }>;\n\nexport type ServiceBusControllerBody = ServiceBusController & {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: Promise<(...args: any[]) => any> | Function | any;\n} & { onEcommStarted(): void };\n\ninterface IServiceStartParams {\n serviceName: string;\n diContainerImport: ContainerImport;\n serviceKey: string;\n serviceBusControllerKey?: string;\n serviceBusBaseClass?: ServiceBusControllerBody;\n}\n\nexport class ServiceManagerClass {\n public serviceName: string;\n private containerImport: ContainerImport;\n private diContainer: diContainerType;\n private serviceKey: string;\n private service: BaseService;\n private serviceBusControllerKey?: string;\n private serviceBusBaseClass?: ServiceBusControllerBody;\n private logger: ELCLogger;\n private ecommStarted: boolean = false;\n private startPromise: Promise;\n\n get serviceHasStarted(): boolean {\n return Boolean(this.service && this.service.isStarted);\n }\n\n getContainer = async () => {\n if (!this.diContainer) {\n this.diContainer = (await this.containerImport()).diContainer;\n }\n\n return this.diContainer;\n };\n\n handleServiceBusError = () => {\n throw new Error(`\n ServiceBus hasn't been provided to ServiceManager at setServiceStartParams method.\n ServiceBus: ${this.serviceBusBaseClass ? 'ServiceBus found' : this.serviceBusBaseClass}.\n ServiceBusKey: (${this.serviceBusControllerKey})\n `);\n };\n\n getServiceBusController = async () => {\n let serviceBus;\n try {\n await this.startService();\n\n const diContainer = await this.getContainer();\n\n serviceBus = diContainer.get(\n this.serviceBusControllerKey as string\n );\n\n if (!serviceBus) {\n throw new Error('ServiceBusController not found inside diContainer');\n }\n } catch (error) {\n this.logger.error({\n triggerType: TriggerType.render,\n message: error.message,\n payload: { error }\n });\n }\n\n return serviceBus as ServiceBusController;\n };\n\n setServiceStartParams = ({\n serviceName,\n diContainerImport,\n serviceKey,\n serviceBusControllerKey,\n serviceBusBaseClass\n }: IServiceStartParams) => {\n this.serviceName = serviceName;\n this.containerImport = diContainerImport;\n this.serviceKey = serviceKey;\n this.serviceBusControllerKey = serviceBusControllerKey;\n this.serviceBusBaseClass = serviceBusBaseClass;\n this.logger = new ELCLogger({ serviceName });\n };\n\n getServiceBusControllerMethod = (functionName: string) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async (...args: any[]) => {\n const srvBusController = await this.getServiceBusController();\n\n const method = (srvBusController as ServiceBusControllerBody)[functionName] as Function;\n\n return method.call(null, ...args);\n };\n\n setDecoratorOnFunction = (decorator: Function) => {\n return ([triggerKey, functionName]: [\n triggerKey: keyof ServiceQueries | keyof ServiceEvents | keyof ServiceCommands,\n functionName: string\n ]) => {\n if (!this.serviceBusBaseClass || !this.serviceBusControllerKey) {\n this.handleServiceBusError();\n } else {\n decorator(triggerKey)(this.serviceBusBaseClass.__proto__, functionName);\n this.serviceBusBaseClass[functionName] = this.getServiceBusControllerMethod(\n functionName\n );\n }\n };\n };\n\n setDecoratorOnProperty = (decorator: Function) => {\n return ([keyName, queryName]: [keyName: string, queryName?: string]) => {\n if (!this.serviceBusBaseClass || !this.serviceBusControllerKey) {\n this.handleServiceBusError();\n } else {\n decorator(queryName)(this.serviceBusBaseClass.__proto__, keyName);\n\n Object.defineProperty(this.serviceBusBaseClass.__proto__, keyName, {\n configurable: true,\n enumerable: true,\n set(value) {\n return this.getServiceBusController().then(\n (srvBusController: ServiceBusController) => {\n // @ts-ignore\n srvBusController[keyName] = value;\n }\n );\n }\n });\n }\n };\n };\n\n @on(events.ECOMM_STARTED, { replay: true })\n public setEcommHasStarted = () => {\n this.ecommStarted = true;\n };\n\n onStart = (cb: (error?: Error) => void, ecommConfig?: IAppConfig) => async () => {\n let error: Error | undefined;\n try {\n if (this.serviceHasStarted) {\n cb();\n\n return;\n }\n if (!ecommConfig && !this.ecommStarted) {\n return;\n }\n\n await this.getContainer();\n this.service = this.diContainer.get(this.serviceKey);\n\n let serviceConfig = ecommConfig;\n\n if (!serviceConfig) {\n const config = (await query(serviceQueries.GET_CONFIG, ['ecommConfig'])) as\n | { ecommConfig?: IAppConfig }\n | undefined;\n\n // If ecommConfig is not available then EcommApp hasn't started yet\n if (!config || !config.ecommConfig) {\n throw new Error('EcommConfig not found');\n }\n\n serviceConfig = config.ecommConfig;\n }\n\n await this.service.start(serviceConfig);\n emit(events.SERVICE_STARTED, { serviceName: this.serviceName });\n } catch (err) {\n error = err;\n this.logger.error({\n triggerType: TriggerType.render,\n message: err.message,\n payload: {\n error: err\n }\n });\n } finally {\n cb(error);\n }\n };\n\n startService = (ecommConfig?: IAppConfig) => {\n if (!this.startPromise) {\n this.startPromise = new Promise((resolve, reject) => {\n let timeoutId: NodeJS.Timeout | null = null;\n timeoutId = setInterval(\n this.onStart((error?: Error) => {\n if (timeoutId) {\n clearInterval(timeoutId);\n }\n if (error) {\n reject(error);\n } else {\n resolve();\n }\n }, ecommConfig),\n 200\n );\n });\n }\n\n return this.startPromise;\n };\n\n getController = (controllerKey?: string): ViewController | undefined => {\n if (!this.diContainer) {\n const message = \"Can't request controller without starting the service first\";\n\n this.logger.error({\n triggerType: TriggerType.render,\n message,\n payload: {\n serviceName: this.serviceName,\n context: {\n method: 'getController method on ServiceManager'\n }\n }\n });\n\n throw new Error(message);\n }\n\n const controller = controllerKey\n ? this.diContainer.get(controllerKey)\n : undefined;\n\n return controller;\n };\n}\n\nexport const ServiceManager = new ServiceManagerClass();\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ServiceBus } from '@estee/elc-service-bus';\nimport {\n IServiceRegistry,\n IComponentViewController,\n IEcommApp,\n AllServicesTypes\n} from './Service/ServiceUtils';\n\nexport const MOBILE_VERSION_SELECTOR = 'js-mobile-version';\nexport const DESKTOP_VERSION_SELECTOR = 'js-desktop-version';\n\nexport interface ISingleServiceInfo {\n [key: string]: string;\n}\n\nexport interface IServiceInfo {\n [name: string]: ISingleServiceInfo;\n}\n\nexport type ArrayMinOne = {\n 0: T;\n} & T[];\n\ninterface IObjectOfStrings {\n [key: string]: string;\n}\n\ninterface IServiceBusTopics {\n commands: IObjectOfStrings;\n events: IObjectOfStrings;\n queries: IObjectOfStrings;\n}\n\nexport interface IPayload {\n url: string;\n body?: {};\n options?: {};\n headers?: {};\n}\n\nexport interface IGetPayload {\n url: string;\n options?: {};\n headers?: {};\n params?: {};\n}\n\nexport interface IRequestOptions {\n debounceInterval?: number;\n}\n\nexport type HeaderType = 'Business-Unit' | 'Authorization' | 'AuthorizationToken' | 'ClientId';\nexport type HeaderObject = { [key in HeaderType]?: string };\nexport type IHeaderSetter = () => Promise;\nexport type IRequestTransformerConfig = { url: string } & RequestInit;\nexport type IRequestTransformer = (config: IRequestTransformerConfig) => Promise;\n\nexport interface IHttpTransport {\n getStaticGlobalHeaders(): HeaderObject;\n setBaseUrl(baseUrl: string): void;\n addGlobalHeaders(headers: HeaderObject): void;\n removeGlobalHeader(headerName: string): void;\n addGlobalHeaderSetter(setter: IHeaderSetter): void;\n removeGlobalHeaderSetter(setter: IHeaderSetter): void;\n addRequestTransformer(transformer: IRequestTransformer): void;\n removeRequestTransformer(transformer: IRequestTransformer): void;\n delete(payload: string | IPayload): Promise;\n post(payload: IPayload): Promise;\n patch(payload: IPayload): Promise;\n put(payload: IPayload): Promise;\n get(payload: string | IGetPayload, IRequestOptions?: IRequestOptions): Promise;\n readonly isAuthFailureHandlingEnabled: boolean;\n setAuthFailureHandlingEnabled(enabled: boolean): void;\n}\n\nexport interface IUtagData {\n [key: string]: string | string[] | undefined | boolean | number | null | number[];\n}\nexport interface IUtagCfgOvrd {\n noview: boolean;\n dom_complete?: boolean;\n lowerqp?: boolean;\n noload?: boolean | number;\n nocookie?: boolean;\n readywait?: boolean | number;\n waittimer?: number;\n}\nexport interface IUtag {\n link(data: IUtagData, cb?: Function): void;\n view(data: IUtagData, cb?: Function): void;\n}\n\nexport interface IFrontendLogger {\n isEnabled?: boolean;\n loggedServices?: {\n [key: string]: {\n isEnabled?: boolean;\n };\n };\n}\n\ninterface ILoggerApiSDK {\n sendLog: Function;\n}\ninterface IDrupalSite {\n translations?: any;\n trackingDataLayer?: any;\n client?: {\n subdomain?: string;\n isMobile?: number;\n };\n frontendLogger?: IFrontendLogger;\n}\nexport type AnyObject = { [key: string]: any };\ntype ITranslationsCollection = { [key: string]: string | IObjectOfStrings };\ntype ViewDataPreloader = {\n addConfigs(configs: AnyObject): void;\n addTranslations(translations: ITranslationsCollection): void;\n getPreloadedConfigs(arg: string[]): AnyObject | null;\n getPreloadedTranslations(arg: string[]): ITranslationsCollection | null;\n preload(): Promise;\n registerTranslationFieldsToPreload(fields?: string[]): void;\n registerConfigFieldsToPreload(fields?: string[]): void;\n};\ninterface IComponentRenderer {\n init(): Promise;\n getDataPreloader(): ViewDataPreloader | null;\n setDataPreloader(arg: ViewDataPreloader): void;\n}\n\ntype IObjectLike = { [key: string]: any } | null;\nexport interface IViewManager {\n loadComponent(): Promise;\n module: React.ComponentType | null;\n controllerFromView: IComponentViewController | null;\n}\nexport interface IViewsManager {\n lazyServicesStarted: boolean;\n getViewManager(viewName: string): IViewManager;\n startService(service: AllServicesTypes): Promise;\n startLazyServices(): Promise;\n}\ndeclare global {\n // Augment Node.js `global`\n namespace NodeJS {\n interface Global {\n ServiceBusTopics: IServiceBusTopics;\n ServiceRegistry: IServiceRegistry;\n GlobalServiceBus: ServiceBus;\n HttpTransport: IHttpTransport;\n __translationsCache__: { [key: string]: string };\n __configsCache__: { [key: string]: any };\n getPreloadedConfigs(fields?: string[]): IObjectLike;\n addConfigs(configs: object): void;\n getPreloadedTranslations(fields?: string[]): IObjectLike;\n addTranslations(translations: object): void;\n replaceSrc(originalSrc: string): string;\n utag_data: IUtagData;\n utag_cfg_ovrd: IUtagCfgOvrd;\n utag: IUtag;\n site?: IDrupalSite;\n location: Location;\n navigator: Navigator;\n ComponentRenderer: IComponentRenderer;\n ViewsManager: IViewsManager;\n registerTranslationFieldsToPreload: Function;\n registerConfigFieldsToPreload: Function;\n serviceInfo: IServiceInfo;\n getServiceVersions(): void;\n __ssr: boolean;\n onerror(\n message: string,\n url: string,\n line: number,\n column: number,\n error: Error\n ): boolean;\n env: string;\n buid: string;\n loggerApiSDK: ILoggerApiSDK;\n requestIdleCallback: Function;\n cancelIdleCallback: Function;\n }\n }\n\n // Augment Browser `window`\n interface Window {\n EcommApp?: IEcommApp;\n ServiceBusTopics: IServiceBusTopics;\n __translationsCache__: { [key: string]: string };\n __configsCache__: { [key: string]: any };\n getPreloadedConfigs(fields?: string[]): IObjectLike;\n addConfigs(configs: object): void;\n getPreloadedTranslations(fields?: string[]): IObjectLike;\n addTranslations(translations: object): void;\n ServiceRegistry: IServiceRegistry;\n GlobalServiceBus: ServiceBus;\n HttpTransport: IHttpTransport;\n replaceSrc(originalSrc: string): string;\n utag_data: any;\n utag_cfg_ovrd: IUtagCfgOvrd;\n utag: IUtag;\n location: Location;\n site?: IDrupalSite;\n addEventListener(a: string, b: Function): void;\n ComponentRenderer: IComponentRenderer;\n ViewsManager: IViewsManager;\n registerTranslationFieldsToPreload: Function;\n registerConfigFieldsToPreload: Function;\n getServiceVersions(): void;\n __ssr: boolean;\n onerror(message: string, url: string, line: number, column: number, error: Error): boolean;\n env: string;\n buid: string;\n serviceInfo: IServiceInfo;\n loggerApiSDK: ILoggerApiSDK;\n requestIdleCallback: Function;\n cancelIdleCallback: Function;\n }\n\n // Augment Web Worker `self`\n interface WorkerGlobalScope {\n ServiceBusTopics: IServiceBusTopics;\n ServiceRegistry: IServiceRegistry;\n GlobalServiceBus: ServiceBus;\n HttpTransport: IHttpTransport;\n __translationsCache__: { [key: string]: string };\n __configsCache__: { [key: string]: any };\n getPreloadedConfigs(fields?: string[]): IObjectLike;\n addConfigs(configs: object): void;\n getPreloadedTranslations(fields?: string[]): IObjectLike;\n addTranslations(translations: object): void;\n replaceSrc(originalSrc: string): string;\n utag_data: IUtagData;\n utag_cfg_ovrd: IUtagCfgOvrd;\n utag: IUtag;\n location: Location;\n addEventListener(a: string, b: Function): void;\n ComponentRenderer: IComponentRenderer;\n ViewsManager: IViewsManager;\n registerTranslationFieldsToPreload: Function;\n registerConfigFieldsToPreload: Function;\n }\n}\n\nexport const isWebRendered = typeof self === 'object' && self.self === self;\n\nexport const root: NodeJS.Global | Window = typeof window === 'undefined' ? global : window;\n\nexport const setupServiceInfo = (serviceInfo: ISingleServiceInfo) => {\n const { name, ...rest } = serviceInfo;\n\n root.serviceInfo = root.serviceInfo || {};\n root.serviceInfo[name] = rest;\n};\n\nexport enum ISandboxEnvironment {\n LIVE = 'live',\n FEATURE = 'feature',\n DEV = 'dev',\n STAGE = 'stage',\n CMS = 'cms',\n PERSONAL = 'personal',\n PRODUCTION = 'production'\n}\n\nexport const getSandboxEnvironment: () => string = () => {\n let urlParts = root.location.hostname.split('.');\n const { LIVE, FEATURE, DEV, STAGE, CMS, PERSONAL } = ISandboxEnvironment;\n\n urlParts = urlParts.filter(part => !['www', 'm'].includes(part));\n const isLive = !(urlParts[0] === 'c') && !(urlParts[0] === 'e');\n\n return isLive\n ? LIVE\n : urlParts.includes(FEATURE)\n ? FEATURE\n : urlParts.includes(DEV)\n ? DEV\n : urlParts.includes(STAGE)\n ? STAGE\n : urlParts.includes(CMS)\n ? CMS\n : PERSONAL;\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { LoadableComponent } from '@loadable/component';\n\nexport const SERVICE_VIEW_CLASSNAME = 'elc-service-view-renderer';\nexport const SERVICE_VIEW_RENDERED_ATTRIBUTE = 'data-rendered-view';\n\nexport function getModuleFederatedName(serviceName: string) {\n return serviceName.replace(/-/g, '_');\n}\n\nexport interface ICachedComponentsRegistry {\n [key: string]: React.ComponentType;\n}\n\nexport type RegisteredComponent = () => Promise<{\n ['default']: React.ComponentType;\n}>;\n\ntype AnyObject = { [key: string]: any };\n\nexport interface IAppConfig extends AnyObject {\n env?: string;\n businessUnitId?: string;\n}\n\nexport type ServiceInitializer = (config: IAppConfig) => Promise | void;\n\nexport interface IViewControllerData {\n [key: string]: any;\n}\n\nexport type ViewControllerLoadedMethod = (...args: any[]) => Promise;\n\nexport interface IComponentViewController {\n id?: string;\n loaded?: ViewControllerLoadedMethod;\n data?: IViewControllerData;\n dataState?: IViewControllerData;\n configMergeStrategy?: Function;\n initialize?(...args: any[]): void;\n handleState?(...args: any[]): void;\n setSSRState(data: IViewControllerData): void;\n setId(id: string): void;\n isLoading: boolean;\n}\n\nexport interface IComponent {\n componentName: string;\n component: LoadableComponent;\n viewController?(): IComponentViewController;\n}\n\nexport interface IComponentRegistry {\n [key: string]: IComponent;\n}\n\nexport interface IFederatedService {\n isStarted: true;\n name: string;\n version: string;\n views: string[];\n}\n\ndeclare class EcommApp {\n isStarted: boolean;\n name: string;\n start(appConfig: any): Promise;\n // @TODO: SDFEFND-4051 Removing this method will require a refactor on Drupal side\n register(): void;\n}\n\nexport type IEcommApp = typeof EcommApp;\n\ninterface IBaseServiceRegistryComp {\n isStarted: boolean;\n name: string;\n isLazy?: boolean;\n start(appConfig: IAppConfig): Promise;\n startPromise?: Promise;\n version: string;\n views: string[];\n}\n\nexport type IManifestService = {\n events: string[];\n queries: string[];\n};\n\ntype BaseServiceRegistryComponent = {\n cachedComponentsRegistry: ICachedComponentsRegistry;\n componentsRegistry: IComponentRegistry;\n getView(componentName: string): IComponent | null;\n getViewFromCache(componentName: string): React.ComponentType | null;\n registerView(\n componentName: string,\n component: RegisteredComponent,\n viewController?: () => IComponentViewController\n ): void;\n serviceInitializer: ServiceInitializer;\n serviceBusController?: any;\n setViewInCache(componentName: string, component: React.ComponentType): void;\n};\n// Exported object by the createServiceManifest method\nexport type IManifestServiceRegistryComp = IBaseServiceRegistryComp & IManifestService;\n// Service exported by the register method after applying the manifest\nexport type ILazyServiceRegistryComponent = BaseServiceRegistryComponent &\n IManifestServiceRegistryComp;\n// Service exported by the register method if manifest is not applied (non lazy service)\nexport type IServiceRegistryComponent = BaseServiceRegistryComponent & IBaseServiceRegistryComp;\n\n// Remove after SDFEFND-1853\n// Exported from older versions of the register method (elc-service < v7)\nexport interface IOlderServiceRegistryComponent\n extends Omit<\n IServiceRegistryComponent,\n 'getView' | 'start' | 'views' | 'isLazy' | 'startPromise'\n > {\n getView(componentName: string): IComponent | undefined;\n start(appConfig: IAppConfig): Promise;\n // These keys doesn't exist but this will avoid TS errors\n views?: string[];\n isLazy?: boolean;\n}\n\nexport type AllUpdatedServicesTypes =\n | ILazyServiceRegistryComponent\n | IManifestServiceRegistryComp\n | IServiceRegistryComponent;\n\nexport type AllServicesTypes =\n | AllUpdatedServicesTypes\n | IFederatedService\n | IOlderServiceRegistryComponent;\n\nexport interface IServiceRegistry {\n [key: string]: AllServicesTypes;\n}\n","export type storageKeyType = 'localStorage' | 'sessionStorage';\nexport namespace BrowserStorage {\n export function eraseCookie(name: string) {\n document.cookie = `${name}=; Max-Age=-99999999;`;\n }\n\n export function setCookie(name: string, value: string, daysOrDate: number | Date) {\n let expires = '';\n if (daysOrDate) {\n const expirationDate =\n typeof daysOrDate === 'number'\n ? new Date(Date.now() + daysOrDate * 24 * 60 * 60 * 1000)\n : daysOrDate;\n expires = `; expires=${expirationDate.toUTCString()}`;\n }\n document.cookie = `${name}=${value || ''}${expires};path=/`;\n }\n\n export function getCookie(name: string) {\n const nameEQ = `${name}=`;\n const ca = document.cookie.split(';');\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) === 0) {\n return c.substring(nameEQ.length, c.length);\n }\n }\n\n return null;\n }\n\n export function getItem(key: string, storageKey: storageKeyType = 'localStorage') {\n try {\n if (window[storageKey].getItem(key) !== null) {\n return window[storageKey].getItem(key);\n }\n } catch (e) {\n console.error(e);\n\n return getCookie(key);\n }\n }\n\n export function setItem(\n key: string,\n value: string,\n storageKey: storageKeyType = 'localStorage'\n ) {\n try {\n window[storageKey].setItem(key, value);\n } catch (e) {\n console.error(e);\n setCookie(key, value, 20);\n }\n }\n\n export function removeItem(key: string, storageKey: storageKeyType = 'localStorage') {\n try {\n window[storageKey].removeItem(key);\n } catch (e) {\n console.error(e);\n eraseCookie(key);\n }\n }\n\n export function storagePolling(key: string, callBack: Function) {\n let storageValue = getItem(key);\n\n const checkForKeyChange = () => {\n const latestValue = getItem(key);\n\n if (storageValue !== latestValue) {\n storageValue = latestValue;\n callBack(latestValue);\n }\n };\n\n return setInterval(checkForKeyChange, 2000);\n }\n}\n","import { queryProvider, serviceQueries } from '@estee/elc-service-bus';\nimport { TranslationsRepository } from '~repositories/TranslationsRepository';\n\nexport class ServiceBusController {\n // eslint-disable-next-line @typescript-eslint/no-parameter-properties\n constructor(private translationsRepository: TranslationsRepository) {}\n\n @queryProvider(serviceQueries.GET_TRANSLATIONS)\n public loadTranslations = async (payload: string[]) => {\n const translations = await this.translationsRepository.getTranslations(payload);\n\n return translations;\n };\n}\n","import {\n IAppConfig,\n IFederatedService,\n ServiceInitializer,\n root\n} from '@estee/elc-universal-utils';\nimport { ELCLogger, TriggerType } from '@estee/elc-logging';\n\nroot.ServiceRegistry = root.ServiceRegistry || {};\n\nconst noop = async () => {};\n\nexport abstract class BaseService {\n private startPromise: Promise;\n public isStarted: boolean = false;\n protected logger: ELCLogger;\n\n static setViews(serviceName: string, name: string, version: string, views: string[]) {\n root.ServiceRegistry[serviceName] = {\n name,\n version,\n views,\n isStarted: true\n } as IFederatedService;\n }\n\n constructor(\n public name: string,\n protected version: string,\n protected serviceInitializer: ServiceInitializer | null = null\n ) {}\n\n private async initializeService(appConfig: IAppConfig): Promise {\n try {\n const initializer = this.serviceInitializer || noop;\n await initializer(appConfig);\n this.isStarted = true;\n } catch (error) {\n this.logger.error({\n message: `Could not start service ${this.name}`,\n triggerType: TriggerType.render,\n payload: {\n error,\n context: {\n serviceRegistry: root.ServiceRegistry\n }\n }\n });\n } finally {\n this.isStarted = true;\n }\n }\n\n public start(appConfig: IAppConfig): Promise {\n if (!this.startPromise && !this.isStarted) {\n this.logger =\n this.logger ||\n new ELCLogger({\n serviceName: this.name,\n environment: appConfig.env || root.env,\n buid: appConfig.businessUnitId || root.buid,\n serviceVersion: this.version\n });\n\n this.startPromise = this.initializeService(appConfig);\n }\n\n return this.startPromise;\n }\n}\n","import { BaseService } from '@estee/elc-service';\nimport { ServiceInitializer } from '@estee/elc-universal-utils';\n\nconst { name, version } = __serviceInfo__;\n\nexport class TranslationsService extends BaseService {\n constructor(serviceInitializer: ServiceInitializer) {\n super(name, version, serviceInitializer);\n }\n}\n\nexport default {\n configStore: 'CONFIG_STORE',\n httpTransport: 'HTTP_TRANSPORT',\n translationsApiSdk: 'API_SDK',\n translationsRepository: 'TRANSLATIONS_REPOSITORY',\n translationsService: 'TRANSLATIONS_SERVICE',\n serviceBusController: 'SERVICE_BUS_CONTROLLER'\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = ElcRuntime.HypoContainer;","const __WEBPACK_NAMESPACE_OBJECT__ = ElcRuntime.HttpTransport;","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ServiceBus } from '@estee/elc-service-bus';\nimport {\n IServiceRegistry,\n IComponentViewController,\n AllServicesTypes\n} from './Service/ServiceUtils';\n\nexport const MOBILE_VERSION_SELECTOR = 'js-mobile-version';\nexport const DESKTOP_VERSION_SELECTOR = 'js-desktop-version';\n\nexport interface ISingleServiceInfo {\n [key: string]: string;\n}\n\nexport interface IServiceInfo {\n [name: string]: ISingleServiceInfo;\n}\n\nexport type ArrayMinOne = {\n 0: T;\n} & T[];\n\ninterface IObjectOfStrings {\n [key: string]: string;\n}\n\ninterface IServiceBusTopics {\n commands: IObjectOfStrings;\n events: IObjectOfStrings;\n queries: IObjectOfStrings;\n}\n\nexport interface IPayload {\n url: string;\n body?: {};\n options?: {};\n headers?: {};\n}\n\nexport interface IGetPayload {\n url: string;\n options?: {};\n headers?: {};\n params?: {};\n}\n\nexport interface IRequestOptions {\n debounceInterval?: number;\n}\n\nexport type HeaderType = 'Business-Unit' | 'Authorization' | 'AuthorizationToken' | 'ClientId';\nexport type HeaderObject = { [key in HeaderType]?: string };\nexport type IHeaderSetter = () => Promise;\nexport type IRequestTransformerConfig = { url: string } & RequestInit;\nexport type IRequestTransformer = (config: IRequestTransformerConfig) => Promise;\n\nexport interface IHttpTransport {\n getStaticGlobalHeaders(): HeaderObject;\n setBaseUrl(baseUrl: string): void;\n addGlobalHeaders(headers: HeaderObject): void;\n removeGlobalHeader(headerName: string): void;\n addGlobalHeaderSetter(setter: IHeaderSetter): void;\n removeGlobalHeaderSetter(setter: IHeaderSetter): void;\n addRequestTransformer(transformer: IRequestTransformer): void;\n removeRequestTransformer(transformer: IRequestTransformer): void;\n delete(payload: string | IPayload): Promise;\n post(payload: IPayload): Promise;\n patch(payload: IPayload): Promise;\n put(payload: IPayload): Promise;\n get(payload: string | IGetPayload, IRequestOptions?: IRequestOptions): Promise;\n readonly isAuthFailureHandlingEnabled: boolean;\n setAuthFailureHandlingEnabled(enabled: boolean): void;\n}\n\nexport interface IUtagData {\n [key: string]: string | string[] | undefined | boolean | number | null | number[];\n}\nexport interface IUtagCfgOvrd {\n noview: boolean;\n dom_complete?: boolean;\n lowerqp?: boolean;\n noload?: boolean | number;\n nocookie?: boolean;\n readywait?: boolean | number;\n waittimer?: number;\n}\nexport interface IUtag {\n link(data: IUtagData, cb?: Function): void;\n view(data: IUtagData, cb?: Function): void;\n}\n\nexport interface IFrontendLogger {\n isEnabled?: boolean;\n loggedServices?: {\n [key: string]: {\n isEnabled?: boolean;\n };\n };\n}\n\ninterface ILoggerApiSDK {\n sendLog: Function;\n}\ninterface IDrupalSite {\n translations?: any;\n trackingDataLayer?: any;\n client?: {\n subdomain?: string;\n isMobile?: number;\n };\n frontendLogger?: IFrontendLogger;\n}\nexport type AnyObject = { [key: string]: any };\ntype ITranslationsCollection = { [key: string]: string | IObjectOfStrings };\ntype ViewDataPreloader = {\n addConfigs(configs: AnyObject): void;\n addTranslations(translations: ITranslationsCollection): void;\n getPreloadedConfigs(arg: string[]): AnyObject | null;\n getPreloadedTranslations(arg: string[]): ITranslationsCollection | null;\n preload(): Promise;\n registerTranslationFieldsToPreload(fields?: string[]): void;\n registerConfigFieldsToPreload(fields?: string[]): void;\n};\ninterface IComponentRenderer {\n init(): Promise;\n getDataPreloader(): ViewDataPreloader | null;\n setDataPreloader(arg: ViewDataPreloader): void;\n}\n\ntype IObjectLike = { [key: string]: any } | null;\nexport interface IViewManager {\n loadComponent(): Promise;\n module: React.ComponentType | null;\n controllerFromView: IComponentViewController | null;\n}\nexport interface IViewsManager {\n lazyServicesStarted: boolean;\n getViewManager(viewName: string): IViewManager;\n startService(service: AllServicesTypes): Promise;\n startLazyServices(): Promise;\n}\ndeclare global {\n // Augment Node.js `global`\n namespace NodeJS {\n interface Global {\n ServiceBusTopics: IServiceBusTopics;\n ServiceRegistry: IServiceRegistry;\n GlobalServiceBus: ServiceBus;\n HttpTransport: IHttpTransport;\n __translationsCache__: { [key: string]: string };\n __configsCache__: { [key: string]: any };\n getPreloadedConfigs(fields?: string[]): IObjectLike;\n addConfigs(configs: object): void;\n getPreloadedTranslations(fields?: string[]): IObjectLike;\n addTranslations(translations: object): void;\n replaceSrc(originalSrc: string): string;\n utag_data: IUtagData;\n utag_cfg_ovrd: IUtagCfgOvrd;\n utag: IUtag;\n site?: IDrupalSite;\n location: Location;\n ComponentRenderer: IComponentRenderer;\n ViewsManager: IViewsManager;\n registerTranslationFieldsToPreload: Function;\n registerConfigFieldsToPreload: Function;\n serviceInfo: IServiceInfo;\n getServiceVersions(): void;\n __ssr: boolean;\n onerror(\n message: string,\n url: string,\n line: number,\n column: number,\n error: Error\n ): boolean;\n env: string;\n buid: string;\n loggerApiSDK: ILoggerApiSDK;\n requestIdleCallback: Function;\n cancelIdleCallback: Function;\n }\n }\n\n // Augment Browser `window`\n interface Window {\n ServiceBusTopics: IServiceBusTopics;\n __translationsCache__: { [key: string]: string };\n __configsCache__: { [key: string]: any };\n getPreloadedConfigs(fields?: string[]): IObjectLike;\n addConfigs(configs: object): void;\n getPreloadedTranslations(fields?: string[]): IObjectLike;\n addTranslations(translations: object): void;\n ServiceRegistry: IServiceRegistry;\n GlobalServiceBus: ServiceBus;\n HttpTransport: IHttpTransport;\n replaceSrc(originalSrc: string): string;\n utag_data: any;\n utag_cfg_ovrd: IUtagCfgOvrd;\n utag: IUtag;\n location: Location;\n site?: IDrupalSite;\n addEventListener(a: string, b: Function): void;\n ComponentRenderer: IComponentRenderer;\n ViewsManager: IViewsManager;\n registerTranslationFieldsToPreload: Function;\n registerConfigFieldsToPreload: Function;\n getServiceVersions(): void;\n __ssr: boolean;\n onerror(message: string, url: string, line: number, column: number, error: Error): boolean;\n env: string;\n buid: string;\n serviceInfo: IServiceInfo;\n loggerApiSDK: ILoggerApiSDK;\n requestIdleCallback: Function;\n cancelIdleCallback: Function;\n }\n\n // Augment Web Worker `self`\n interface WorkerGlobalScope {\n ServiceBusTopics: IServiceBusTopics;\n ServiceRegistry: IServiceRegistry;\n GlobalServiceBus: ServiceBus;\n HttpTransport: IHttpTransport;\n __translationsCache__: { [key: string]: string };\n __configsCache__: { [key: string]: any };\n getPreloadedConfigs(fields?: string[]): IObjectLike;\n addConfigs(configs: object): void;\n getPreloadedTranslations(fields?: string[]): IObjectLike;\n addTranslations(translations: object): void;\n replaceSrc(originalSrc: string): string;\n utag_data: IUtagData;\n utag_cfg_ovrd: IUtagCfgOvrd;\n utag: IUtag;\n location: Location;\n addEventListener(a: string, b: Function): void;\n ComponentRenderer: IComponentRenderer;\n ViewsManager: IViewsManager;\n registerTranslationFieldsToPreload: Function;\n registerConfigFieldsToPreload: Function;\n }\n}\n\nexport const isWebRendered = typeof self === 'object' && self.self === self;\n\nexport const root: NodeJS.Global | Window =\n (isWebRendered && self) ||\n (typeof global === 'object' && global.global === global && global) ||\n window;\n\nexport const setupServiceInfo = (serviceInfo: ISingleServiceInfo) => {\n const { name, ...rest } = serviceInfo;\n\n root.serviceInfo = root.serviceInfo || {};\n root.serviceInfo[name] = rest;\n};\n\nexport enum ISandboxEnvironment {\n LIVE = 'live',\n FEATURE = 'feature',\n DEV = 'dev',\n STAGE = 'stage',\n CMS = 'cms',\n PERSONAL = 'personal',\n PRODUCTION = 'production'\n}\n\nexport const getSandboxEnvironment: () => string = () => {\n let urlParts = root.location.hostname.split('.');\n const { LIVE, FEATURE, DEV, STAGE, CMS, PERSONAL } = ISandboxEnvironment;\n\n urlParts = urlParts.filter(part => !['www', 'm'].includes(part));\n const isLive = !(urlParts[0] === 'c') && !(urlParts[0] === 'e');\n\n return isLive\n ? LIVE\n : urlParts.includes(FEATURE)\n ? FEATURE\n : urlParts.includes(DEV)\n ? DEV\n : urlParts.includes(STAGE)\n ? STAGE\n : urlParts.includes(CMS)\n ? CMS\n : PERSONAL;\n};\n","export type storageKeyType = 'localStorage' | 'sessionStorage';\nexport namespace BrowserStorage {\n export function eraseCookie(name: string) {\n document.cookie = `${name}=; Max-Age=-99999999;`;\n }\n\n export function setCookie(name: string, value: string, daysOrDate: number | Date) {\n let expires = '';\n if (daysOrDate) {\n const expirationDate =\n typeof daysOrDate === 'number'\n ? new Date(Date.now() + daysOrDate * 24 * 60 * 60 * 1000)\n : daysOrDate;\n expires = `; expires=${expirationDate.toUTCString()}`;\n }\n document.cookie = `${name}=${value || ''}${expires};path=/`;\n }\n\n export function getCookie(name: string) {\n const nameEQ = `${name}=`;\n const ca = document.cookie.split(';');\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) === 0) {\n return c.substring(nameEQ.length, c.length);\n }\n }\n\n return null;\n }\n\n export function getItem(key: string, storageKey: storageKeyType = 'localStorage') {\n try {\n if (window[storageKey].getItem(key) !== null) {\n return window[storageKey].getItem(key);\n }\n } catch (e) {\n console.error(e);\n\n return getCookie(key);\n }\n }\n\n export function setItem(\n key: string,\n value: string,\n storageKey: storageKeyType = 'localStorage'\n ) {\n try {\n window[storageKey].setItem(key, value);\n } catch (e) {\n console.error(e);\n setCookie(key, value, 20);\n }\n }\n\n export function removeItem(key: string, storageKey: storageKeyType = 'localStorage') {\n try {\n window[storageKey].removeItem(key);\n } catch (e) {\n console.error(e);\n eraseCookie(key);\n }\n }\n\n export function storagePolling(key: string, callBack: Function) {\n let storageValue = getItem(key);\n\n const checkForKeyChange = () => {\n const latestValue = getItem(key);\n\n if (storageValue !== latestValue) {\n storageValue = latestValue;\n callBack(latestValue);\n }\n };\n\n return setInterval(checkForKeyChange, 2000);\n }\n}\n","const isString: Function = (value: unknown) => typeof value === 'string';\n\nconst VALIDATORS: { [key: string]: Function[] } = {\n buid: [Boolean],\n context: [Boolean],\n environment: [Boolean, isString],\n level: [Boolean, isString],\n message: [Boolean, isString],\n serviceName: [Boolean, isString],\n serviceVersion: [Boolean, isString],\n triggerType: [Boolean, isString]\n};\n\nexport const validate = (requestBody: { [key: string]: unknown }) => {\n const result = Object.keys(VALIDATORS).reduce((acc: boolean[], key) => {\n VALIDATORS[key].forEach((validator: (value: unknown) => boolean) => {\n const requestValue = requestBody[key];\n acc.push(validator(requestValue));\n });\n\n return acc;\n }, []);\n\n return result.every(Boolean);\n};\n","import { root, IFrontendLogger } from '@estee/elc-universal-utils';\nimport { validate } from './ELCLoggerValidations';\nimport { ILogData, IFullData } from './ELCLogger';\n\nexport class LoggerApiSDK {\n private loggingServiceUrl: string = '/stardust-fe-logging-v0/logMessage';\n private queue: ILogData[] = [];\n private isRequestIdleCallbackScheduled: boolean;\n private lastTimeExecuted: number = Date.now();\n private frontendLogger: IFrontendLogger = root.site ? root.site.frontendLogger || {} : {};\n\n private generateRequestBody(fullData: IFullData) {\n const { config, level, logdata } = fullData;\n\n const { payload = {}, message, triggerType } = logdata;\n const {\n serviceName: payloadServiceName,\n serviceVersion: payloadServiceVersion,\n context,\n error\n } = payload;\n\n const {\n serviceName: configServiceName,\n serviceVersion: configServiceVersion,\n buid: configBuid,\n environment: configEnvironment\n } = config;\n const stringifiedError = error && JSON.stringify(error, Object.getOwnPropertyNames(error));\n\n return {\n context: {\n ...context,\n date: new Date().toUTCString(),\n error: stringifiedError\n },\n environment: configEnvironment || root.env,\n level: level,\n message,\n serviceName: payloadServiceName || configServiceName,\n serviceVersion: payloadServiceVersion || configServiceVersion,\n siteUrl: root.location.href,\n buid: configBuid || root.buid,\n triggerType\n };\n }\n\n public sendLog(fullData: IFullData) {\n const requestBody = this.generateRequestBody(fullData);\n const loggedServices = this.frontendLogger.loggedServices || {};\n const serviceConfig = loggedServices[requestBody.serviceName] || {};\n const isServiceEnabled = serviceConfig.isEnabled;\n\n if (this.frontendLogger.isEnabled && isServiceEnabled) {\n if (!validate(requestBody)) {\n throw new Error(`Request body for error logging did not validate`);\n }\n\n this.addLogToQueue(requestBody);\n }\n }\n\n public addLogToQueue = (log: ILogData) => {\n this.queue.push(log);\n this.schedulePendingEvents();\n };\n\n private schedulePendingEvents = () => {\n if (this.isRequestIdleCallbackScheduled) {\n return;\n }\n\n this.isRequestIdleCallbackScheduled = true;\n root.requestIdleCallback(this.processPendingLogs);\n };\n\n private processPendingLogs = () => {\n this.isRequestIdleCallbackScheduled = false;\n\n if (this.queue.length > 0 && Date.now() - this.lastTimeExecuted > 2000) {\n root.HttpTransport.post({\n url: this.loggingServiceUrl,\n body: this.queue\n }).catch(() => console.error('Errors failed to be sent to sumoLogic', this.queue));\n\n this.queue = [];\n this.lastTimeExecuted = Date.now();\n }\n\n if (this.queue.length > 0) {\n this.schedulePendingEvents();\n }\n };\n}\n","import { debug, Debugger } from 'debug';\nimport { LoggerApiSDK } from './LoggerApiSDK';\nimport { getSandboxEnvironment, root, ISandboxEnvironment } from '@estee/elc-universal-utils';\n\nexport interface IFullData {\n logdata: ILogData;\n level: string;\n config: IELCLogger;\n}\n\nexport interface IPayload {\n error?: Error;\n context?: object;\n serviceName?: string;\n serviceVersion?: string;\n}\n\nexport interface ILogData {\n triggerType: TriggerType;\n message: string;\n payload?: IPayload;\n}\n\nexport enum TriggerType {\n runtimeError = 'runtimeError',\n api = 'api',\n graphqlApi = 'graphqlApi',\n render = 'render',\n serviceBus = 'serviceBus',\n config = 'config',\n translation = 'translation',\n other = 'other'\n}\n\nexport interface IELCLogger {\n serviceName: string;\n serviceVersion?: string;\n environment?: string;\n buid?: string;\n}\n\nexport class ELCLogger {\n private config: IELCLogger;\n\n private errorDebugger?: Debugger;\n private infoDebugger?: Debugger;\n private warningDebugger?: Debugger;\n private eventDebugger?: Debugger;\n private queryDebugger?: Debugger;\n private commandDebugger?: Debugger;\n\n constructor(config: IELCLogger) {\n this.config = config;\n const logger = debug(this.config.serviceName);\n root.loggerApiSDK = root.loggerApiSDK || new LoggerApiSDK();\n\n this.errorDebugger = logger.extend('error');\n this.infoDebugger = logger.extend('info');\n this.warningDebugger = logger.extend('warning');\n this.eventDebugger = logger.extend('event');\n this.queryDebugger = logger.extend('query');\n this.commandDebugger = logger.extend('command');\n }\n\n public error = async (logdata: ILogData) => {\n if (this.errorDebugger) {\n this.errorDebugger(this.enhanceLogData(logdata));\n }\n\n const isProd =\n this.config.environment === ISandboxEnvironment.PRODUCTION ||\n root.env === ISandboxEnvironment.PRODUCTION;\n\n if ((isProd && getSandboxEnvironment() === ISandboxEnvironment.LIVE) || !isProd) {\n return this.sendLog(logdata, 'error');\n }\n };\n\n public info = (logdata: ILogData) => {\n if (this.infoDebugger) {\n this.infoDebugger(this.enhanceLogData(logdata));\n }\n };\n\n public warning = (logdata: ILogData) => {\n if (this.warningDebugger) {\n this.warningDebugger(this.enhanceLogData(logdata));\n }\n };\n\n public event = (logdata: ILogData) => {\n if (this.eventDebugger) {\n this.eventDebugger(this.enhanceLogData(logdata));\n }\n };\n\n public query = (logdata: ILogData) => {\n if (this.queryDebugger) {\n this.queryDebugger(this.enhanceLogData(logdata));\n }\n };\n\n public command = (logdata: ILogData) => {\n if (this.commandDebugger) {\n this.commandDebugger(this.enhanceLogData(logdata));\n }\n };\n\n private enhanceLogData = (logdata: ILogData) => ({\n ...logdata,\n triggerSource: this.config.serviceName,\n date: new Date().toUTCString()\n });\n // @ts-ignore\n private async sendLog(logdata: ILogData, level: string) {\n try {\n root.loggerApiSDK.sendLog({ logdata, level, config: this.config });\n } catch (e) {\n if (this.errorDebugger) {\n this.errorDebugger(\n this.enhanceLogData({\n message: 'Could not send log',\n triggerType: TriggerType.api,\n payload: {\n error: e,\n context: logdata\n }\n })\n );\n }\n }\n }\n}\n","import { HeaderType, HeaderObject, root } from '@estee/elc-universal-utils';\nimport { ELCLogger, TriggerType } from '@estee/elc-logging';\n\nexport const AUTHORIZATION_HEADER_NAME = 'AuthorizationToken';\nexport const BUSINESS_UNIT_HEADER_NAME = 'Business-Unit';\n\nexport interface IError {\n status: number;\n}\nexport interface IDataMapperOperations {\n [key: string]: Function | undefined;\n request?(request: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [k: string]: any;\n }): {};\n response?(response: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [k: string]: any;\n }): {};\n}\nexport interface IDataMappings {\n [key: string]: IDataMapperOperations;\n}\nexport interface IResponse {\n data: T;\n reponseHeaders: Headers | {};\n}\nexport interface IPayload {\n url: string;\n body?: {};\n options?: {};\n headers?: {};\n returnAsPlainText?: boolean;\n}\nexport interface IGetPayload {\n url: string;\n options?: {};\n headers?: {};\n params?: {};\n}\nexport interface IRequestOptions {\n debounceInterval?: number;\n bypassCache?: boolean;\n}\nexport interface IHttpTransport {\n addGlobalHeaders(header: HeaderObject): void;\n removeGlobalHeader(headerName: string): void;\n delete(payload: string | IPayload): Promise>;\n post(payload: IPayload): Promise>;\n patch(payload: IPayload): Promise>;\n put(payload: IPayload): Promise>;\n get(payload: string | IGetPayload, IRequestOptions?: IRequestOptions): Promise>;\n}\nexport interface IDataMapper {\n // eslint-disable-next-line @typescript-eslint/ban-types\n mapRequest(name: string, request: Object): {};\n // eslint-disable-next-line @typescript-eslint/ban-types\n mapResponse(name: string, response: Object): {};\n dataMappings?: IDataMappings;\n}\n\nexport interface IConfig {\n cartId?: string;\n httpTransport: IHttpTransport;\n dataMapper?: IDataMapper;\n businessUnitId?: string;\n drupalDomain?: string;\n}\n\nexport class Api {\n protected bearerToken: string;\n protected httpTransport: IHttpTransport;\n protected businessUnitId: string | undefined;\n private logger: ELCLogger;\n\n constructor(configStore: IConfig, serviceName: string, serviceVersion: string) {\n this.httpTransport = configStore.httpTransport;\n this.businessUnitId = configStore.businessUnitId;\n this.logger = new ELCLogger({ serviceName, serviceVersion });\n }\n\n public addHeader(header: HeaderObject) {\n this.httpTransport.addGlobalHeaders(header);\n }\n\n public removeHeader(headerName: HeaderType) {\n this.httpTransport.removeGlobalHeader(headerName);\n }\n\n public setBearerToken(bearerToken: string) {\n if (bearerToken) {\n this.addHeader({\n [AUTHORIZATION_HEADER_NAME]: `${bearerToken}`\n });\n } else {\n this.removeHeader(AUTHORIZATION_HEADER_NAME);\n }\n }\n protected delete = async (payload: IPayload) => {\n let response: IResponse = { data: {} as T, reponseHeaders: {} };\n\n try {\n response = await this.httpTransport.delete(payload);\n } catch (e) {\n this.handleError(e, 'delete', payload);\n }\n\n return response;\n };\n\n protected get = async (\n payload: IGetPayload | string,\n { debounceInterval = 200, bypassCache = false }: IRequestOptions = {}\n ) => {\n let response: IResponse = { data: {} as T, reponseHeaders: {} };\n\n try {\n response = await this.httpTransport.get(payload, {\n debounceInterval,\n bypassCache\n });\n } catch (e) {\n this.handleError(e, 'get', payload);\n }\n\n return response;\n };\n\n protected patch = async (payload: IPayload) => {\n let response: IResponse = { data: {} as T, reponseHeaders: {} };\n\n try {\n response = await this.httpTransport.patch(payload);\n } catch (e) {\n this.handleError(e, 'patch', payload);\n }\n\n return response;\n };\n\n protected post = async (payload: IPayload) => {\n let response: IResponse = { data: {} as T, reponseHeaders: {} };\n try {\n response = await this.httpTransport.post(payload);\n } catch (e) {\n this.handleError(e, 'post', payload);\n }\n\n return response;\n };\n protected put = async (payload: IPayload) => {\n let response: IResponse = { data: {} as T, reponseHeaders: {} };\n\n try {\n response = await this.httpTransport.put(payload);\n } catch (e) {\n this.handleError(e, 'put', payload);\n }\n\n return response;\n };\n\n private handleError = (e: Error, requestType: string, originalPayload: IPayload | string) => {\n this.logger.error({\n triggerType: TriggerType.api,\n message: `${e}`,\n payload: {\n context: {\n subdomain: root.site && root.site.client && root.site.client.subdomain,\n originalPayload,\n requestType\n },\n error: e\n }\n });\n };\n}\n","import { Api, IConfig } from '@estee/elc-service';\nimport { root, BrowserStorage } from '@estee/elc-universal-utils';\n\nconst API_HOST_COOKIE = 'ELC_API_HOST';\nconst API_AUTH_COOKIE = 'ELC_API_AUTH';\nconst REV_TAG_COOKIE = 'ELC_SITE_TAG';\nconst LOCALHOST = 'localhost';\nconst AUTOTEST_DOMAIN = 'api.elco.cloud';\nconst MOBILE_CHANNEL = 'mobile';\n\nexport interface IDrupalDefaultHeaders {\n Authorization?: string;\n Host?: string;\n}\n\ninterface IDrupalAPIFetch {\n url: string;\n headers?: {};\n}\n\nexport class DrupalApi extends Api {\n protected apiHost: string;\n protected channel: string;\n protected revTag: string;\n protected static drupalDomain: string;\n\n constructor(config: IConfig, serviceName: string, serviceVersion: string) {\n super(config, serviceName, serviceVersion);\n DrupalApi.drupalDomain = config.drupalDomain || '';\n this.apiHost = DrupalApi.getApiHost();\n this.channel = DrupalApi.getChannel();\n this.revTag = DrupalApi.getRevTag();\n }\n\n protected fetch = async ({ url, headers = {} }: IDrupalAPIFetch) => {\n const combinedHeaders = {\n ...DrupalApi.getHeaders(),\n ...headers\n };\n\n if (DrupalApi.useApiCookies() && (!DrupalApi.getApiHost() || !DrupalApi.getApiAuth())) {\n DrupalApi.displayMessages();\n\n return { data: {}, headers: null };\n }\n\n return this.get(\n {\n url,\n headers: combinedHeaders\n },\n { debounceInterval: 100 }\n );\n };\n\n private static displayMessages(): void {\n console.warn(\n '%cATTENTION!',\n 'font-weight: bold; font-size: 50px; color: red; text-shadow: 3px 3px 0 rgb(217,31,38), 6px 6px 0 rgb(226,91,14), 9px 9px 0 rgb(245,221,8), 12px 12px 0 rgb(5,148,68), 15px 15px 0 rgb(2,135,206), 18px 18px 0 rgb(4,77,145), 21px 21px 0 rgb(42,21,113)'\n );\n console.warn(\n `%cDrupalApi: %cmissing ${API_HOST_COOKIE} and/or ${API_AUTH_COOKIE} cookies (elc-drupal-api)`,\n 'font-weight: bold',\n 'font-weight: normal'\n );\n }\n\n private static isLocalhost(): boolean {\n return root.location && root.location.hostname.indexOf(LOCALHOST) > -1;\n }\n\n private static isAutotest(): boolean {\n return root.location && root.location.hostname.indexOf(AUTOTEST_DOMAIN) > -1;\n }\n\n private static useApiCookies(): boolean {\n return (DrupalApi.isLocalhost() || DrupalApi.isAutotest()) && !DrupalApi.drupalDomain;\n }\n\n private static getHeaders(): IDrupalDefaultHeaders {\n const headers: IDrupalDefaultHeaders = {};\n\n if (DrupalApi.getApiAuth()) {\n headers.Authorization = `Basic ${Buffer.from(DrupalApi.getApiAuth()).toString(\n 'base64'\n )}`;\n }\n\n return headers;\n }\n\n private static getApiHost(): string {\n const host = BrowserStorage.getCookie(API_HOST_COOKIE);\n\n return DrupalApi.useApiCookies() && !!host ? host : '';\n }\n\n private static getApiAuth(): string {\n const auth = BrowserStorage.getCookie(API_AUTH_COOKIE);\n\n return DrupalApi.useApiCookies() && !!auth ? auth : '';\n }\n\n private static getChannel(): string {\n return root.location && root.location.host.search(/m[tmp]*\\./) > -1\n ? MOBILE_CHANNEL\n : '';\n }\n\n private static getRevTag(): string {\n const revisionTag = BrowserStorage.getCookie(REV_TAG_COOKIE);\n\n return !!revisionTag ? revisionTag : '';\n }\n}\n","import { DrupalApi } from '@estee/elc-drupal-api';\nimport { IConfig, ITranslationsCollections } from '@estee/elc-service';\n\nconst { name, version } = __serviceInfo__;\n\nexport class TranslationsApiSdk extends DrupalApi {\n private translationsApiBasePath: string = 'elc_api/translations';\n private drupalDomain: string;\n\n constructor(config: IConfig) {\n super(config, name, version);\n this.drupalDomain = config.drupalDomain || '';\n }\n\n public fetchTranslations = async (payload: string[]) => {\n const url = this.getApiUrl(payload);\n const response = await this.fetch({ url });\n\n return response.data;\n };\n\n private static doCleanRequestPayload(payload: string[]) {\n return payload\n .sort()\n .map((p) => `${p}:*`)\n .join('&');\n }\n\n private getApiUrl(payload: string[]): string {\n const cleanPayload = TranslationsApiSdk.doCleanRequestPayload(payload);\n const host = this.drupalDomain || this.apiHost;\n const channel = this.channel;\n const tag = this.revTag;\n const args = [host, this.translationsApiBasePath, cleanPayload];\n const extras = [`buid:${this.businessUnitId}`];\n\n if (channel) {\n extras.push(`channel:${channel}`);\n }\n\n if (tag) {\n extras.push(`rev_tag:${tag}`);\n }\n\n args.push(extras.join('&'));\n\n return args.join('/');\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = ElcRuntime.mobx;","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { observable, action } from 'mobx';\n\nexport class ConfigStore {\n @observable public config: any;\n\n constructor(config: any) {\n this.updateConfig(config);\n }\n\n @action\n public updateConfig(config: any) {\n this.config = { ...config };\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ServiceBus } from '@estee/elc-service-bus';\nimport {\n IServiceRegistry,\n IComponentViewController,\n AllServicesTypes\n} from './Service/ServiceUtils';\n\nexport const MOBILE_VERSION_SELECTOR = 'js-mobile-version';\nexport const DESKTOP_VERSION_SELECTOR = 'js-desktop-version';\n\nexport interface ISingleServiceInfo {\n [key: string]: string;\n}\n\nexport interface IServiceInfo {\n [name: string]: ISingleServiceInfo;\n}\n\nexport type ArrayMinOne = {\n 0: T;\n} & T[];\n\ninterface IObjectOfStrings {\n [key: string]: string;\n}\n\ninterface IServiceBusTopics {\n commands: IObjectOfStrings;\n events: IObjectOfStrings;\n queries: IObjectOfStrings;\n}\n\nexport interface IPayload {\n url: string;\n body?: {};\n options?: {};\n headers?: {};\n}\n\nexport interface IGetPayload {\n url: string;\n options?: {};\n headers?: {};\n params?: {};\n}\n\nexport interface IRequestOptions {\n debounceInterval?: number;\n}\n\nexport type HeaderType = 'Business-Unit' | 'Authorization' | 'AuthorizationToken' | 'ClientId';\nexport type HeaderObject = { [key in HeaderType]?: string };\nexport type IHeaderSetter = () => Promise;\nexport type IRequestTransformerConfig = { url: string } & RequestInit;\nexport type IRequestTransformer = (config: IRequestTransformerConfig) => Promise;\n\nexport interface IHttpTransport {\n getStaticGlobalHeaders(): HeaderObject;\n setBaseUrl(baseUrl: string): void;\n addGlobalHeaders(headers: HeaderObject): void;\n removeGlobalHeader(headerName: string): void;\n addGlobalHeaderSetter(setter: IHeaderSetter): void;\n removeGlobalHeaderSetter(setter: IHeaderSetter): void;\n addRequestTransformer(transformer: IRequestTransformer): void;\n removeRequestTransformer(transformer: IRequestTransformer): void;\n delete(payload: string | IPayload): Promise;\n post(payload: IPayload): Promise;\n patch(payload: IPayload): Promise;\n put(payload: IPayload): Promise;\n get(payload: string | IGetPayload, IRequestOptions?: IRequestOptions): Promise;\n readonly isAuthFailureHandlingEnabled: boolean;\n setAuthFailureHandlingEnabled(enabled: boolean): void;\n}\n\nexport interface IUtagData {\n [key: string]: string | string[] | undefined | boolean | number | null | number[];\n}\nexport interface IUtagCfgOvrd {\n noview: boolean;\n dom_complete?: boolean;\n lowerqp?: boolean;\n noload?: boolean | number;\n nocookie?: boolean;\n readywait?: boolean | number;\n waittimer?: number;\n}\nexport interface IUtag {\n link(data: IUtagData, cb?: Function): void;\n view(data: IUtagData, cb?: Function): void;\n}\n\nexport interface IFrontendLogger {\n isEnabled?: boolean;\n loggedServices?: {\n [key: string]: {\n isEnabled?: boolean;\n };\n };\n}\n\ninterface ILoggerApiSDK {\n sendLog: Function;\n}\ninterface IDrupalSite {\n translations?: any;\n trackingDataLayer?: any;\n client?: {\n subdomain?: string;\n isMobile?: number;\n };\n frontendLogger?: IFrontendLogger;\n}\nexport type AnyObject = { [key: string]: any };\ntype ITranslationsCollection = { [key: string]: string | IObjectOfStrings };\ntype ViewDataPreloader = {\n addConfigs(configs: AnyObject): void;\n addTranslations(translations: ITranslationsCollection): void;\n getPreloadedConfigs(arg: string[]): AnyObject | null;\n getPreloadedTranslations(arg: string[]): ITranslationsCollection | null;\n preload(): Promise;\n registerTranslationFieldsToPreload(fields?: string[]): void;\n registerConfigFieldsToPreload(fields?: string[]): void;\n};\ninterface IComponentRenderer {\n init(): Promise;\n getDataPreloader(): ViewDataPreloader | null;\n setDataPreloader(arg: ViewDataPreloader): void;\n}\n\ntype IObjectLike = { [key: string]: any } | null;\nexport interface IViewManager {\n loadComponent(): Promise;\n module: React.ComponentType | null;\n controllerFromView: IComponentViewController | null;\n}\nexport interface IViewsManager {\n lazyServicesStarted: boolean;\n getViewManager(viewName: string): IViewManager;\n startService(service: AllServicesTypes): Promise;\n startLazyServices(): Promise;\n}\ndeclare global {\n // Augment Node.js `global`\n namespace NodeJS {\n interface Global {\n ServiceBusTopics: IServiceBusTopics;\n ServiceRegistry: IServiceRegistry;\n GlobalServiceBus: ServiceBus;\n HttpTransport: IHttpTransport;\n __translationsCache__: { [key: string]: string };\n __configsCache__: { [key: string]: any };\n getPreloadedConfigs(fields?: string[]): IObjectLike;\n addConfigs(configs: object): void;\n getPreloadedTranslations(fields?: string[]): IObjectLike;\n addTranslations(translations: object): void;\n replaceSrc(originalSrc: string): string;\n utag_data: IUtagData;\n utag_cfg_ovrd: IUtagCfgOvrd;\n utag: IUtag;\n site?: IDrupalSite;\n location: Location;\n navigator: Navigator;\n ComponentRenderer: IComponentRenderer;\n ViewsManager: IViewsManager;\n registerTranslationFieldsToPreload: Function;\n registerConfigFieldsToPreload: Function;\n serviceInfo: IServiceInfo;\n getServiceVersions(): void;\n __ssr: boolean;\n onerror(\n message: string,\n url: string,\n line: number,\n column: number,\n error: Error\n ): boolean;\n env: string;\n buid: string;\n loggerApiSDK: ILoggerApiSDK;\n requestIdleCallback: Function;\n cancelIdleCallback: Function;\n }\n }\n\n // Augment Browser `window`\n interface Window {\n ServiceBusTopics: IServiceBusTopics;\n __translationsCache__: { [key: string]: string };\n __configsCache__: { [key: string]: any };\n getPreloadedConfigs(fields?: string[]): IObjectLike;\n addConfigs(configs: object): void;\n getPreloadedTranslations(fields?: string[]): IObjectLike;\n addTranslations(translations: object): void;\n ServiceRegistry: IServiceRegistry;\n GlobalServiceBus: ServiceBus;\n HttpTransport: IHttpTransport;\n replaceSrc(originalSrc: string): string;\n utag_data: any;\n utag_cfg_ovrd: IUtagCfgOvrd;\n utag: IUtag;\n location: Location;\n site?: IDrupalSite;\n addEventListener(a: string, b: Function): void;\n ComponentRenderer: IComponentRenderer;\n ViewsManager: IViewsManager;\n registerTranslationFieldsToPreload: Function;\n registerConfigFieldsToPreload: Function;\n getServiceVersions(): void;\n __ssr: boolean;\n onerror(message: string, url: string, line: number, column: number, error: Error): boolean;\n env: string;\n buid: string;\n serviceInfo: IServiceInfo;\n loggerApiSDK: ILoggerApiSDK;\n requestIdleCallback: Function;\n cancelIdleCallback: Function;\n }\n\n // Augment Web Worker `self`\n interface WorkerGlobalScope {\n ServiceBusTopics: IServiceBusTopics;\n ServiceRegistry: IServiceRegistry;\n GlobalServiceBus: ServiceBus;\n HttpTransport: IHttpTransport;\n __translationsCache__: { [key: string]: string };\n __configsCache__: { [key: string]: any };\n getPreloadedConfigs(fields?: string[]): IObjectLike;\n addConfigs(configs: object): void;\n getPreloadedTranslations(fields?: string[]): IObjectLike;\n addTranslations(translations: object): void;\n replaceSrc(originalSrc: string): string;\n utag_data: IUtagData;\n utag_cfg_ovrd: IUtagCfgOvrd;\n utag: IUtag;\n location: Location;\n addEventListener(a: string, b: Function): void;\n ComponentRenderer: IComponentRenderer;\n ViewsManager: IViewsManager;\n registerTranslationFieldsToPreload: Function;\n registerConfigFieldsToPreload: Function;\n }\n}\n\nexport const isWebRendered = typeof self === 'object' && self.self === self;\n\nexport const root: NodeJS.Global | Window =\n (isWebRendered && self) ||\n (typeof global === 'object' && global.global === global && global) ||\n window;\n\nexport const setupServiceInfo = (serviceInfo: ISingleServiceInfo) => {\n const { name, ...rest } = serviceInfo;\n\n root.serviceInfo = root.serviceInfo || {};\n root.serviceInfo[name] = rest;\n};\n\nexport enum ISandboxEnvironment {\n LIVE = 'live',\n FEATURE = 'feature',\n DEV = 'dev',\n STAGE = 'stage',\n CMS = 'cms',\n PERSONAL = 'personal',\n PRODUCTION = 'production'\n}\n\nexport const getSandboxEnvironment: () => string = () => {\n let urlParts = root.location.hostname.split('.');\n const { LIVE, FEATURE, DEV, STAGE, CMS, PERSONAL } = ISandboxEnvironment;\n\n urlParts = urlParts.filter(part => !['www', 'm'].includes(part));\n const isLive = !(urlParts[0] === 'c') && !(urlParts[0] === 'e');\n\n return isLive\n ? LIVE\n : urlParts.includes(FEATURE)\n ? FEATURE\n : urlParts.includes(DEV)\n ? DEV\n : urlParts.includes(STAGE)\n ? STAGE\n : urlParts.includes(CMS)\n ? CMS\n : PERSONAL;\n};\n","export type storageKeyType = 'localStorage' | 'sessionStorage';\nexport namespace BrowserStorage {\n export function eraseCookie(name: string) {\n document.cookie = `${name}=; Max-Age=-99999999;`;\n }\n\n export function setCookie(name: string, value: string, daysOrDate: number | Date) {\n let expires = '';\n if (daysOrDate) {\n const expirationDate =\n typeof daysOrDate === 'number'\n ? new Date(Date.now() + daysOrDate * 24 * 60 * 60 * 1000)\n : daysOrDate;\n expires = `; expires=${expirationDate.toUTCString()}`;\n }\n document.cookie = `${name}=${value || ''}${expires};path=/`;\n }\n\n export function getCookie(name: string) {\n const nameEQ = `${name}=`;\n const ca = document.cookie.split(';');\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) === 0) {\n return c.substring(nameEQ.length, c.length);\n }\n }\n\n return null;\n }\n\n export function getItem(key: string, storageKey: storageKeyType = 'localStorage') {\n try {\n if (window[storageKey].getItem(key) !== null) {\n return window[storageKey].getItem(key);\n }\n } catch (e) {\n console.error(e);\n\n return getCookie(key);\n }\n }\n\n export function setItem(\n key: string,\n value: string,\n storageKey: storageKeyType = 'localStorage'\n ) {\n try {\n window[storageKey].setItem(key, value);\n } catch (e) {\n console.error(e);\n setCookie(key, value, 20);\n }\n }\n\n export function removeItem(key: string, storageKey: storageKeyType = 'localStorage') {\n try {\n window[storageKey].removeItem(key);\n } catch (e) {\n console.error(e);\n eraseCookie(key);\n }\n }\n\n export function storagePolling(key: string, callBack: Function) {\n let storageValue = getItem(key);\n\n const checkForKeyChange = () => {\n const latestValue = getItem(key);\n\n if (storageValue !== latestValue) {\n storageValue = latestValue;\n callBack(latestValue);\n }\n };\n\n return setInterval(checkForKeyChange, 2000);\n }\n}\n","import { root, ISingleServiceInfo } from '../UniversalUtils';\n\nconst extractServiceVersion = (serviceInfo: ISingleServiceInfo) =>\n serviceInfo && serviceInfo.version;\n\nconst searchForServiceInfo = (serviceName: string) =>\n root.serviceInfo[serviceName] || root.ServiceRegistry[serviceName];\n\nexport const getServiceVersion = (serviceName: string, fallback: string = '') =>\n extractServiceVersion(searchForServiceInfo(serviceName)) || fallback;\n","const isString: Function = (value: unknown) => typeof value === 'string';\n\nconst VALIDATORS: { [key: string]: Function[] } = {\n buid: [Boolean],\n context: [Boolean],\n environment: [Boolean, isString],\n level: [Boolean, isString],\n message: [Boolean, isString],\n serviceName: [Boolean, isString],\n serviceVersion: [Boolean, isString],\n triggerType: [Boolean, isString],\n userAgent: [Boolean, isString]\n};\n\nexport const validate = (requestBody: { [key: string]: unknown }) => {\n const result = Object.keys(VALIDATORS).reduce((acc: boolean[], key) => {\n VALIDATORS[key].forEach((validator: (value: unknown) => boolean) => {\n const requestValue = requestBody[key];\n acc.push(validator(requestValue));\n });\n\n return acc;\n }, []);\n\n return result.every(Boolean);\n};\n","import { root, IFrontendLogger } from '@estee/elc-universal-utils';\nimport { validate } from './ELCLoggerValidations';\nimport { ILogData, IFullData } from './ELCLogger';\n\nexport class LoggerApiSDK {\n private loggingServiceUrl: string = '/stardust-fe-logging-v0/logMessage';\n private queue: ILogData[] = [];\n private isRequestIdleCallbackScheduled: boolean;\n private lastTimeExecuted: number = Date.now();\n private frontendLogger: IFrontendLogger = root.site ? root.site.frontendLogger || {} : {};\n\n private generateRequestBody(fullData: IFullData) {\n const { config, level, logdata } = fullData;\n\n const { payload = {}, message, triggerType } = logdata;\n const {\n serviceName: payloadServiceName,\n serviceVersion: payloadServiceVersion,\n context,\n error\n } = payload;\n\n const {\n serviceName: configServiceName,\n serviceVersion: configServiceVersion,\n buid: configBuid,\n environment: configEnvironment\n } = config;\n const stringifiedError = error && JSON.stringify(error, Object.getOwnPropertyNames(error));\n\n return {\n context: {\n ...context,\n date: new Date().toUTCString(),\n error: stringifiedError\n },\n environment: configEnvironment || root.env,\n level: level,\n message,\n serviceName: payloadServiceName || configServiceName,\n serviceVersion: payloadServiceVersion || configServiceVersion,\n siteUrl: root.location.href,\n buid: configBuid || root.buid,\n triggerType,\n userAgent: root.navigator.userAgent\n };\n }\n\n public sendLog(fullData: IFullData) {\n const requestBody = this.generateRequestBody(fullData);\n const loggedServices = this.frontendLogger.loggedServices || {};\n const serviceConfig = loggedServices[requestBody.serviceName] || {};\n const isServiceEnabled = serviceConfig.isEnabled;\n\n if (this.frontendLogger.isEnabled && isServiceEnabled) {\n if (!validate(requestBody)) {\n throw new Error(`Request body for error logging did not validate`);\n }\n\n this.addLogToQueue(requestBody);\n }\n }\n\n public addLogToQueue = (log: ILogData) => {\n this.queue.push(log);\n this.schedulePendingEvents();\n };\n\n private schedulePendingEvents = () => {\n if (this.isRequestIdleCallbackScheduled) {\n return;\n }\n\n this.isRequestIdleCallbackScheduled = true;\n root.requestIdleCallback(this.processPendingLogs);\n };\n\n private processPendingLogs = () => {\n this.isRequestIdleCallbackScheduled = false;\n\n if (this.queue.length > 0 && Date.now() - this.lastTimeExecuted > 2000) {\n root.HttpTransport.post({\n url: this.loggingServiceUrl,\n body: this.queue\n }).catch(() => console.error('Errors failed to be sent to sumoLogic', this.queue));\n\n this.queue = [];\n this.lastTimeExecuted = Date.now();\n }\n\n if (this.queue.length > 0) {\n this.schedulePendingEvents();\n }\n };\n}\n","import { debug, Debugger } from 'debug';\nimport { LoggerApiSDK } from './LoggerApiSDK';\nimport { getSandboxEnvironment, root, ISandboxEnvironment } from '@estee/elc-universal-utils';\n\nexport interface IFullData {\n logdata: ILogData;\n level: string;\n config: IELCLogger;\n}\n\nexport interface IPayload {\n error?: Error;\n context?: object;\n serviceName?: string;\n serviceVersion?: string;\n}\n\nexport interface ILogData {\n triggerType: TriggerType;\n message: string;\n payload?: IPayload;\n}\n\nexport enum TriggerType {\n runtimeError = 'runtimeError',\n api = 'api',\n graphqlApi = 'graphqlApi',\n render = 'render',\n serviceBus = 'serviceBus',\n config = 'config',\n translation = 'translation',\n other = 'other'\n}\n\nexport interface IELCLogger {\n serviceName: string;\n serviceVersion?: string;\n environment?: string;\n buid?: string;\n}\n\nexport class ELCLogger {\n private config: IELCLogger;\n\n private errorDebugger?: Debugger;\n private infoDebugger?: Debugger;\n private warningDebugger?: Debugger;\n private eventDebugger?: Debugger;\n private queryDebugger?: Debugger;\n private commandDebugger?: Debugger;\n\n constructor(config: IELCLogger) {\n this.config = config;\n const logger = debug(this.config.serviceName);\n root.loggerApiSDK = root.loggerApiSDK || new LoggerApiSDK();\n\n this.errorDebugger = logger.extend('error');\n this.infoDebugger = logger.extend('info');\n this.warningDebugger = logger.extend('warning');\n this.eventDebugger = logger.extend('event');\n this.queryDebugger = logger.extend('query');\n this.commandDebugger = logger.extend('command');\n }\n\n public error = async (logdata: ILogData) => {\n if (this.errorDebugger) {\n this.errorDebugger(this.enhanceLogData(logdata));\n }\n\n const isProd =\n this.config.environment === ISandboxEnvironment.PRODUCTION ||\n root.env === ISandboxEnvironment.PRODUCTION;\n\n if ((isProd && getSandboxEnvironment() === ISandboxEnvironment.LIVE) || !isProd) {\n return this.sendLog(logdata, 'error');\n }\n };\n\n public info = (logdata: ILogData) => {\n if (this.infoDebugger) {\n this.infoDebugger(this.enhanceLogData(logdata));\n }\n };\n\n public warning = (logdata: ILogData) => {\n if (this.warningDebugger) {\n this.warningDebugger(this.enhanceLogData(logdata));\n }\n };\n\n public event = (logdata: ILogData) => {\n if (this.eventDebugger) {\n this.eventDebugger(this.enhanceLogData(logdata));\n }\n };\n\n public query = (logdata: ILogData) => {\n if (this.queryDebugger) {\n this.queryDebugger(this.enhanceLogData(logdata));\n }\n };\n\n public command = (logdata: ILogData) => {\n if (this.commandDebugger) {\n this.commandDebugger(this.enhanceLogData(logdata));\n }\n };\n\n private enhanceLogData = (logdata: ILogData) => ({\n ...logdata,\n triggerSource: this.config.serviceName,\n date: new Date().toUTCString()\n });\n // @ts-ignore\n private async sendLog(logdata: ILogData, level: string) {\n try {\n root.loggerApiSDK.sendLog({ logdata, level, config: this.config });\n } catch (e) {\n if (this.errorDebugger) {\n this.errorDebugger(\n this.enhanceLogData({\n message: 'Could not send log',\n triggerType: TriggerType.api,\n payload: {\n error: e,\n context: logdata\n }\n })\n );\n }\n }\n }\n}\n","export const Account = {\n passwordLabel: 'password',\n signUpLabel: 'sign_up',\n signUpTabTitle: 'sign_up_tab_title',\n signUpTitle: 'sign_up_title',\n termsAndConditionsLabel: 'terms_and_conditions',\n emailSubscriptionLabel: 'email_subscription',\n emailSubscriptionDisclaimer: 'email_subscription_disclaimer',\n existingAccountLabel: 'existing_account',\n signInLabel: 'sign_in',\n signInTabTitle: 'sign_in_tab_title',\n signInTitle: 'sign_in_title',\n signOutLabel: 'sign_out',\n continueAsGuestLabel: 'continue_as_guest',\n continueAsGuestTabTitle: 'continue_as_guest_tab_title',\n continueAsGuestTitle: 'continue_as_guest_title',\n guestSignInGdprText: 'guest_sign_in_gdpr',\n addToFavoritesLabel: 'add_to_favorites',\n addedToFavoritesLabel: 'added_to_favorites',\n replenishmentLabel: 'replenishment',\n oneTimeOrderLabel: 'one_time_order',\n autoReplenishLabel: 'auto_replenish',\n signInSignUpTitleLabel: 'sign_in_sign_up',\n showPasswordLabel: 'show_password',\n forgotPasswordLinkAction: 'forgot_password_link_action',\n forgotPasswordLabel: 'forgot_password',\n forgotPasswordActionLabel: 'forgot_password_action',\n joinNow: 'join_now',\n typeBirthdayMonth: 'type_birthday_month',\n typeBirthdayDay: 'type_birthday_day',\n yourBirthday: 'your_birthday',\n loyaltyEnrolmentTermsAgreement: 'loyalty_enrolment_terms_agreement',\n passwordLengthRequirementLabel: 'password_length_requirement',\n passwordLowerCharacterLabel: 'password_lower_character',\n passwordUpperCharacterLabel: 'password_upper_character',\n passwordSpecialCharacterLabel: 'password_special_character',\n passwordNumberRequirementLabel: 'password_number_requirement',\n passwordStrength: 'password_strength',\n passwordStrengthRecommendation: 'password_strength_recommendation',\n passwordStrengthRecommendationTitle: 'password_strength_recommendation_title',\n forgotPasswordTitle: 'forgot_password_title',\n forgotPasswordNavTitle: 'forgot_password_nav_title',\n forgotPasswordNavSubtitle: 'forgot_password_nav_subtitle',\n forgotPasswordSmsTitle: 'forgot_password_sms_title',\n forgotPasswordSmsSubtitle: 'forgot_password_sms_subtitle',\n sendOtpBySms: 'send_otp_by_sms',\n oneTimePassword: 'one_time_password',\n switchVerificationMethod: 'switch_verification_method',\n verifyByEmail: 'verify_by_email',\n forgotPasswordSubtitle: 'forgot_password_subtitle',\n backToSignInLabel: 'back_to_sign_in',\n backToSignUpLabel: 'back_to_sign_up',\n backToSiteLabel: 'back_to_site',\n backToForgotPasswordEmailLabel: 'back_to_forgot_password_email',\n forgotPasswordCheckEmailQuestion: 'forgot_password_check_email_question',\n forgotPasswordResetTitle: 'reset_password_title',\n forgotPasswordResetDescription: 'forgot_password_reset_description',\n forgotPasswordResetCheckEmail: 'forgot_password_reset_check_email',\n resetPasswordTitle: 'reset_password_title',\n resetPasswordSubtitle: 'reset_password_subtitle',\n resetPasswordEmailAddress: 'email_address',\n resetPasswordNewPasswordLabel: 'reset_password_new_password',\n resetPasswordRetypePasswordLabel: 'retype_password',\n resetPasswordActionLabel: 'reset_password_action',\n resetPasswordAgainLabel: 'reset_password_again',\n verifyEmailTitle: 'verify_your_email',\n confirmEmailLinkExpiredLabel: 'confirm_email_link_expired',\n expiredLinkCustomerServiceTitle: 'customer_service',\n expiredLinkCustomerServiceMessage: 'expired_link_customer_service_message',\n sessionExpiredTitle: 'session_expired_title',\n sessionExpiredDescription: 'session_expired_description',\n chooseAnotherDefaultAddressTitle: 'choose_another_default_address',\n confirmNewDefaultAddressTitle: 'confirm_new_default_address',\n setDefaultAddressLabel: 'set_default_address',\n forgotPasswordGDPRText: 'forgot_password_gdpr',\n emailConfirmedLabel: 'email_confirmed',\n confirmEmailAddressLabel: 'confirm_email_address',\n confirmEmailForFullAccessLabel: 'confirm_email_for_full_access',\n emailNotConfirmedLabel: 'needs_confirmation',\n changeEmailTitle: 'change_email',\n changeEmailSubtitle: 'change_email_subtitle',\n currentEmailLabel: 'current_email',\n retypeNewEmailLabel: 'retype_new_email',\n newEmailLabel: 'choose_new_email',\n changeEmailDisclaimerLabel: 'change_email_disclaimer',\n validEmailLabel: 'valid_email',\n chooseNewEmailLabel: 'choose_new_email',\n confirmEmailLabel: 'confirm_email',\n resendConfirmationLabel: 'resend_confirmation',\n currentPasswordLabel: 'current_password',\n emailChangedConfirmationLabel: 'email_change_confirmation',\n pleaseCheckYourInboxLabel: 'check_your_inbox',\n emailConfirmationTitle: 'email_confirmation',\n changePasswordTitle: 'change_password',\n changePasswordSubtitle: 'change_password_subtitle',\n newPasswordLabel: 'new_password',\n retypePasswordLabel: 'retype_password',\n passwordChangedConfirmationLabel: 'password_changed_confirmation',\n passwordChangedLabel: 'password_changed',\n firstLineAddressLabel: 'first_line_address',\n secondLineAddressLabel: 'second_line_address',\n thirdLineAddress: 'third_line_address',\n fourthLineAddress: 'fourth_line_address',\n fifthLineAddress: 'fifth_line_address',\n countryLabel: 'country',\n zipCodeLabel: 'zip_code',\n cityLabel: 'city',\n suburbLabel: 'suburb',\n stateLabel: 'state',\n mobileNumberLabel: 'mobile_number',\n smsValidationSent: 'sms_validation_sent',\n defaultAddressLabel: 'default_address',\n companyNameLabel: 'company_name',\n nipLabel: 'nip',\n addNewAddress: 'add_new_address',\n newAddressLabel: 'new_address',\n editAddressTitle: 'edit_address',\n editCheckoutAddressTitle: 'edit_checkout_address',\n deleteAddressTitle: 'delete_address',\n deleteAddressMessage: 'delete_address_message',\n deleteDefaultAddressMessage: 'delete_default_address_message',\n changeImage: 'change_image',\n uploadPhotoInstructions: 'upload_photo_instructions',\n uploadPhotoRecommendations: 'upload_photo_recommendations',\n editProfileTitle: 'edit_profile_title',\n uploadPhotoTitle: 'upload_photo_title',\n accountSettingsTitle: 'account_settings',\n viewUserProfileTitle: 'profile_information',\n viewUserAccountInformationTitle: 'account_information',\n addressBookTitle: 'address_book',\n updateEmailGDPRText: 'update_email_gdpr',\n updateAddressGDPRText: 'update_address_gdpr',\n editUserGDPRText: 'edit_user_gdpr',\n signUpGDPRText: 'sign_up_gdpr',\n privacyPolicyDisclaimerLabel: 'privacy_policy_disclaimer',\n paymentInformation: 'payment_information',\n logoutLabel: 'logout',\n welcomeBack: 'welcome_back',\n loyaltyRewardPoints: 'loyalty_reward_points',\n loyaltyRewardPointsAvailable: 'loyalty_reward_points_available',\n anniversaryDate: 'anniversary_date',\n loyaltyTier1: 'loyalty_tier1',\n loyaltyTier2: 'loyalty_tier2',\n loyaltyTier3: 'loyalty_tier3',\n loyaltyTier4: 'loyalty_tier4',\n facebookLabel: 'facebook',\n noSocialProvidersLabel: 'no_social_providers',\n connectedAccountsTitle: 'connected_accounts_title',\n connectedAccountsDescription: 'connected_accounts_description',\n connectedAccountsMessage: 'connected_accounts_message',\n connectAction: 'connect',\n disconnectAction: 'disconnect',\n continueWithFacebook: 'continue_with_facebook',\n continueWithFacebookPolicy: 'continue_with_facebook_policy',\n continueWithFacebookAdvice: 'continue_with_facebook_advice',\n continueWithFacebookNewsletterPolicyLabel: 'continue_with_facebook_newsletter_policy',\n profileLabel: 'profile',\n settingsLabel: 'settings',\n accountLabel: 'account',\n mandatoryFieldsLabel: 'mandatory_fields',\n maintenanceMessage: 'maintenance_message',\n buyItAgainLabel: 'buy_it_again',\n newToBrand: 'new_to_brand',\n passwordResetInvalidUrlTitle: 'password_reset_invalid_url_title',\n passwordResetInvalidUrlText: 'password_reset_invalid_url_text',\n acceptTermsAndConditionsLabel: 'accept_terms_conditions',\n acceptReceiveNewsletterLabel: 'accept_receive_newsletter',\n acceptLoyaltyTitle: 'accept_loyalty_title',\n acceptLoyaltyLabel: 'accept_loyalty',\n joinLoyaltyTitle: 'join_loyalty',\n acceptPromotionsLabel: 'accept_promotions',\n acceptLoyaltyDescription: 'accept_loyalty_description',\n acceptAllTermsAndConditionsLabel: 'accept_all_terms_conditions',\n optInEmailLabel: 'opt_in_email',\n optInPhoneCallLabel: 'opt_in_phone_call',\n optInSmsLabel: 'opt_in_sms',\n optInDirectMailLabel: 'opt_in_direct_mail',\n optInAllLabel: 'opt_in_all',\n optOutLabel: 'opt_out',\n optInLabel: 'opt_in',\n preferredLanguageLabel: 'preferred_language',\n termsConditionsLoyaltyLabel: 'terms_conditions_loyalty',\n signInOnlineAccountLabel: 'sign_in_online_account',\n createNewRecordLabel: 'create_new_record',\n createNewRecordText: 'create_new_record_text',\n signUpSectionTitle: 'signup_section_title',\n signUpText: 'signup_text',\n signUpToConnectSocial: 'sign_up_to_connect_social',\n createAccountLabel: 'create_account',\n passwordHint: 'password_hint',\n myAccount: 'my_account',\n myOrders: 'my_orders',\n consultations: 'consultations',\n easyReorder: 'easy_reorder',\n subscriptions: 'subscriptions',\n accountUserLogin: 'account_user_login',\n verificationCodeLetterAriaDescription: 'verification_code_letter_aria_description',\n verificationCodeLabel: 'verification_code',\n verifyCodeAction: 'verify_code_action',\n resendVerificationCode: 'resend_verification_code',\n resendVerificationCodeAction: 'resend_verification_code_action',\n signInCodeVerificationTitle: 'sign_in_code_verification_title',\n signInCodeVerificationSubtitle: 'sign_in_code_verification_subtitle',\n signUpCodeVerificationTitle: 'sign_up_code_verification_title',\n signUpCodeVerificationSubtitle: 'sign_up_code_verification_subtitle',\n signUpCodeVerificationMessage: 'sign_up_code_verification_message',\n phoneUserLogin: 'phone_user_login',\n goBindPhoneLabel: 'go_bind_phone',\n bindPhoneTipsTitle: 'bind_phone_tips_title',\n bindPhoneTipsDesc: 'bind_phone_tips_desc',\n bindPhonePageTitle: 'bind_phone_page_title',\n bindPhoneHelpTips: 'bind_phone_help_tips',\n districtLabel: 'district',\n postalCodeLabel: 'postal_code',\n ageConsentLabel: 'age_consent',\n termsConditionsLoyaltyTitleLabel: 'terms_conditions_loyalty_title',\n termsAndConditionsRemarks: 'terms_conditions_remarks',\n acceptThirdPartyPrivacyPolicyLabel: 'accept_third_party_privacy_policy',\n acceptUseOfPersonalInformationLabel: 'accept_use_of_personal_information',\n passwordRequirementsLabel: 'password_requirements',\n marketingEmailConsent: 'marketing_email_consent',\n marketingSmsConsent: 'marketing_sms_consent',\n createAccountConsent: 'create_account_consent',\n continueWithSocialConsent: 'continue_with_social_consent',\n continueWithLine: 'continue_with_line',\n continueWithRakuten: 'continue_with_rakuten',\n continueWithEmail: 'continue_with_email',\n signInToConnectSocial: 'sign_in_to_connect_social',\n socialAccountRegistration: 'social_account_registration',\n signInOrCreateAccount: 'sign_in_or_create_account',\n verifySocialEmail: 'verify_social_email',\n emailRegistration: 'email_registration',\n enterVerificationCode: 'enter_verification_code',\n otpInstruction: 'otp_instruction',\n otpLength: 'otp_length',\n changeMobile: 'change_mobile',\n otpNotReceiveCode: 'otp_not_receive_code',\n otpResendCode: 'otp_resend_code',\n otpCodeSent: 'otp_code_sent',\n otpSwitchToSms: 'otp_switch_to_sms',\n otpSwitchToEmail: 'otp_switch_to_email',\n resendCodeInMinutes: 'resend_code_in_minutes'\n};\n","/* eslint-disable no-restricted-syntax */\nimport { ITranslationsCollections, ITranslationsCollection } from '@estee/elc-service';\nimport { Account } from './Account';\nimport { AccountErrors } from './AccountErrors';\nimport { Cart } from './Cart';\nimport { CartErrors } from './CartErrors';\nimport { Checkout } from './Checkout';\nimport { Communications } from './Communications';\nimport { Errors } from './Errors';\nimport { General } from './General';\nimport { Loyalty } from './Loyalty';\nimport { Product } from './Product';\nimport { ProductAttributes } from './ProductAttributes';\nimport { User } from './User';\nimport { Common } from './Common';\nimport { Offers } from './Offers';\nimport { Stores } from './Stores';\nimport { Search } from './Search';\nimport { ApptBooking } from './ApptBooking';\nimport { Compliance } from './Compliance';\nimport { Vto } from './Vto';\nimport { DeliveryTout } from './DeliveryTout';\nimport { Orders } from './Orders';\nimport { Gifting } from './Gifting';\n\nexport const translationsCollections: ITranslationsCollections = {\n elc_account: Account,\n elc_account_errors: AccountErrors,\n elc_appt_booking: ApptBooking,\n elc_cart: Cart,\n elc_cart_errors: CartErrors,\n elc_checkout: Checkout,\n elc_common: Common,\n elc_communications: Communications,\n elc_compliance: Compliance,\n elc_errors: Errors,\n elc_general: General,\n elc_loyalty: Loyalty,\n elc_offers: Offers,\n elc_vto: Vto,\n elc_product: Product,\n elc_product_attributes: ProductAttributes,\n elc_stores: Stores,\n elc_user: User,\n elc_search: Search,\n elc_delivery_tout: DeliveryTout,\n elc_orders: Orders,\n elc_gifting: Gifting\n};\n\n/**\n * Convert the exported translations mapping files (ex: elc_product.ts) into a single\n * large object of key/value pairs.\n *\n * Example:\n * {\n * addToWishlist: \"elc_product.add_to_wishlist\",\n * taxNumberErrorMessage: \"elc_errors.taxNumberErrorMessage\"\n * }\n */\nexport const getTranslationsMap = () => {\n return Object.keys(translationsCollections).reduce>(\n (accum, collectionName) => {\n Object.keys(translationsCollections[collectionName]).reduce>(\n (data, key) => {\n const legacyKey = translationsCollections[collectionName][key];\n\n if (legacyKey.indexOf('.') !== -1) {\n throw new Error('Invalid key name. Keys must not contain periods.');\n }\n\n data[key] = `${collectionName}.${legacyKey}`;\n\n return data;\n },\n accum\n );\n\n return accum;\n },\n {}\n );\n};\n\n/**\n * Given an array of requested fields, this generates the legacy format for\n * which an API request can be generated.\n *\n * Input:\n * ['addToWishlist', 'taxNumberErrorMessage']\n *\n * Output:\n * {\n * elc_product: {\n * add_to_wishlist: ''\n * },\n * elc_errors: {\n * taxNumberErrorMessage: ''\n * }\n * }\n *\n * @param fieldsRequested Array of field names requested from the component\n * @param fullDataMap Output from getTranslationsMap, persisted from the repository\n */\nexport const generateLegacyFormat = (\n fieldsRequested: string[],\n fullDataMap: ITranslationsCollection\n) => {\n return fieldsRequested.reduce((accumulator: ITranslationsCollections, field: string) => {\n if (!fullDataMap[field]) {\n return accumulator;\n }\n\n const key = fullDataMap[field] as string;\n\n const [collectionName, collectionKey] = key.split('.');\n\n if (!(collectionName in accumulator)) {\n accumulator[collectionName] = {};\n }\n accumulator[collectionName][collectionKey] = '';\n\n return accumulator;\n }, {});\n};\n","export const AccountErrors = {\n badIdentifiersError: 'bad_identifiers_error',\n passwordInvalidError: 'password_invalid',\n passwordRequiredMessage: 'password_required',\n retypePasswordRequiredMessage: 'retype_password_required',\n currentPasswordRequiredMessage: 'current_password_required',\n newPasswordRequiredMessage: 'new_password_required',\n newPasswordValidMessage: 'new_password_invalid',\n invalidSignInErrorMessage: 'invalid_sign_in',\n accountLockedResetPasswordError: 'account_locked_reset_password',\n signInAccountUnrecognized: 'account_unrecognized',\n facebookAuthError: 'facebook_auth_error',\n facebookAuthErrorUserDenied: 'facebook_auth_error_user_denied',\n facebookAuthErrorScopesDenied: 'facebook_auth_error_scopes_denied',\n facebookAuthErrorScopeEmail: 'facebook_auth_error_scope_email',\n signInAccountLocked4AttemptsError: 'account_locked_4_attempts',\n signInAccountLocked5AttemptsError: 'account_locked_5_attempts',\n signInAccountLocked6AttemptsError: 'account_locked_6_attempts',\n passwordStrengthFailedResetPasswordError: 'password_strength_failed_reset_password',\n emailRequiredMessage: 'email_required',\n emailValidMessage: 'email_invalid',\n emailAlreadyUsedMessage: 'email_already_used',\n emailMissingErrorMessage: 'email_missing',\n existingAccountFoundPleaseSignIn: 'existing_account_found_please_sign_in',\n existingAccountFoundWithMobilePleaseSignIn: 'existing_account_found_with_mobile_please_sign_in',\n sessionExpiredError: 'session_expired',\n forgotPasswordEmailNotFound: 'forgot_password_email_not_found',\n forgotPasswordPhoneNotFound: 'forgot_password_phone_not_found',\n confirmPasswordValidationMessage: 'confirm_password_validation',\n resetPasswordAlreadyUsedMessage: 'reset_password_already_used',\n resetPasswordLinkExpiredError: 'reset_password_link_expired',\n resetPasswordLinkInvalidError: 'reset_password_link_invalid',\n passwordResetLimitExceeded: 'reset_password_limit_exceed',\n maintenanceError: 'maintenance_error',\n birthdayValidMessage: 'birthday_invalid',\n birthdayIsRequiredLabel: 'birthday_required',\n birthdayChangeError: 'birthday_change_error',\n nationalIdInvalidError: 'national_id_invalid',\n newEmailDifferentMessage: 'new_email_different',\n newPasswordDifferentMessage: 'new_password_different',\n confirmEmailValidationMessage: 'confirm_email_invalid',\n emailAlreadyUsedErrorMessage: 'email_already_used',\n incorrectPassword: 'incorrect_password',\n invalidPassword: 'invalid_password',\n addressRequiredMessage: 'address_required',\n addAddressInvalidErrorMessage: 'add_address_invalid',\n countryRequiredMessage: 'country_required',\n countryValidMessage: 'country_invalid',\n zipCodeRequiredMessage: 'zip_code_required',\n zipCodeValidMessage: 'zip_code_invalid',\n cityRequiredMessage: 'city_required',\n cityValidMessage: 'city_invalid',\n stateRequiredMessage: 'state_required',\n stateValidMessage: 'state_invalid',\n secondLineAddressRequiredMessage: 'second_line_address_required',\n secondLineAddressInvalidMessage: 'second_line_address_invalid',\n thirdLineAddressRequiredMessage: 'third_line_address_required',\n thirdLineAddressInvalidMessage: 'third_line_address_invalid',\n fourthLineAddressRequiredMessage: 'fourth_line_address_required',\n fourthLineAddressInvalidMessage: 'fourth_line_address_invalid',\n fifthLineAddressRequiredMessage: 'fifth_line_address_required',\n fifthLineAddressInvalidMessage: 'fifth_line_address_invalid',\n mobileNumberRequiredMessage: 'mobile_number_required',\n mobileNumberValidMessage: 'mobile_number_invalid',\n mobileCountryCodeNotAllowedMessage: 'mobile_country_code_not_allowed',\n mobileNumberMissingErrorMessage: 'mobile_number_missing',\n companyRequiredMessage: 'company_required',\n companyValidMessage: 'company_invalid',\n photoFormatNotSupported: 'photo_format_not_supported',\n photoSizeLimitExceeded: 'photo_size_limit_exceeded',\n genericPhotoUploadError: 'generic_photo_upload_error',\n preferredLanguageRequiredMessage: 'preferred_language_required',\n agreeRequiredMessage: 'agree_required',\n alreadyRegisteredMessage: 'already_registered',\n alreadyRegisteredPleaseSignInMessage: 'already_registered_please_sign_in',\n mobileNumberRegistered: 'mobile_number_registered',\n mobileNumberIncorrect: 'mobile_number_incorrect',\n smsSendFailure: 'sms_send_failure',\n smsCodeInvalid: 'sms_code_invalid',\n smsCodeRequired: 'sms_code_required',\n smsCodeExpired: 'sms_code_expired',\n smsCodeLimitationExceeded: 'sms_code_limitation_exceeded',\n invalidSavedBillingAddressErrorMessage: 'invalid_saved_billing_address',\n smsAccountError: 'sms_account_error',\n usernameRequired: 'username_required',\n phoneNumberNotRegisterError: 'phone_number_not_register_error',\n userLockedError: 'user_locked_error',\n passwordCheckError: 'password_check_error',\n verificationCodeApiError: 'verification_code_api_error',\n verificationCodeInvalidationError: 'verification_code_invalidation_error',\n userExistsError: 'user_exists_error',\n districtRequiredMessage: 'district_required',\n districtInvalidMessage: 'district_invalid',\n postalCodeRequiredMessage: 'postal_code_required',\n postalCodeInvalidMessage: 'postal_code_invalid',\n signInFailureErrorMessage: 'sign_in_failure',\n posGenericErrorMessage: 'pos_generic_error',\n posNoTransactionMessage: 'pos_no_transaction',\n completeSignUpGenericErrorMessage: 'complete_signup_generic',\n partialSignUpGenericErrorMessage: 'partial_signup_generic',\n completeUserExistsErrorMessage: 'complete_user_exists',\n partialUserExistsErrorMessage: 'partial_user_exists',\n ageConsentRequiredMessage: 'age_consent_required',\n acceptUseOfPersonalInformationRequiredMessage: 'accept_use_of_personal_information_required',\n socialSignInFailureMessage: 'social_sign_in_failure_message',\n alreadyConnectedFailureMessage: 'already_connected_failure_message',\n otpTooManyAttempts: 'otp_too_many_attempts',\n otpGenericErrorMessage: 'otp_generic_error',\n otpInvalidCode: 'otp_invalid_code',\n otpCodeExpired: 'otp_code_expired',\n otpFailedToVerify: 'otp_failed_to_verify',\n otpServerErrorMessage: 'otp_server_error',\n otpResendBlocked: 'otp_resend_blocked'\n};\n","export const ApptBooking = {\n addService: 'add_service',\n addToCalendar: 'add_to_calendar',\n oabLegalDisclaimer: 'oab_legal_disclaimer',\n afternoonLabel: 'afternoon',\n anyArtist: 'any_artist',\n allServicesSelectedSelectServiceCopy: 'max_service_quantity_selected',\n bookingDetailsLabel: 'booking_details',\n bookingSummary: 'booking_summary',\n bookAVirtualAppointment: 'book_a_virtual_appointment',\n bookNewAppointmentLabel: 'book_new_appointment',\n bookVirtualAppointment: 'virtual_appointment_cta',\n cancelAndStartOverLabel: 'cancel_and_start_over',\n cancellationConfirmationCopy: 'cancellation_confirmation_copy',\n cancellationLabel: 'cancellation',\n confirmationCopy: 'confirmation_copy',\n confirmationLabel: 'confirmation',\n confirmationStepZoomLinkLabel: 'virtual_appointment_confirmation_zoom_link_description',\n exclusiveServiceNotAvailable: 'exclusive_service_not_available',\n editReviewStepLabel: 'edit_review_step',\n eveningLabel: 'evening',\n goToVirtualAppointmentBooking: 'go_to_virtual_appointment_booking',\n inStoreConsultationCopy: 'physical_appointment_description',\n inStoreConsultationLabel: 'select_store',\n invalidJumpLinkText: 'invalid_jump_link',\n justForYou: 'just_for_you',\n locationCopy: 'location_copy',\n locationLabel: 'location',\n maxAppointmentServicesCopy: 'max_appointment_services_copy',\n maxAppointmentServicesLabel: 'max_appointment_services',\n morningLabel: 'morning',\n mustBeANumberLabel: 'must_be_a_number',\n nextMonthLabel: 'next_month',\n noServicesSelectedSelectServiceCopy: 'select_at_least_service_quantity',\n notesLabel: 'notes',\n noTimeslotsAvailableCopy: 'no_timeslots_available_message',\n noTimeslotsAvailableLabel: 'no_timeslots_available',\n oabEmailAddressInvalidMessage: 'oab_email_address_invalid',\n oabEmailLabel: 'oab_email',\n oabFirstNameLabel: 'oab_first_name',\n oabFreeLabel: 'oab_free',\n oabLastNameLabel: 'oab_last_name',\n oabMinLengthInvalidMessage: 'oab_min_length_message',\n oabNextLabel: 'oab_next',\n oabRequiredFieldMessage: 'oab_required_field',\n oabSubmitLabel: 'oab_submit',\n oabTermsAndConditionsLabel: 'oab_terms_and_conditions',\n enableGeolocation: 'enable_geolocation',\n oabNoStoresFound: 'no_stores_found',\n phoneLengthLabel: 'phone_length',\n phoneNumberLabel: 'phone_number',\n phoneValidation: 'phone_validation',\n previousMonthLabel: 'previous_month',\n previousStepLabel: 'previous_step',\n progressLabel: 'progress',\n removeService: 'remove_service',\n reviewBookingCopy: 'review_booking_copy',\n reviewBookingLabel: 'review_booking_label',\n scheduleCopy: 'schedule_copy',\n scheduleLabel: 'schedule',\n selectArtist: 'select_artist',\n selectDateCopy: 'select_date_and_time_copy',\n selectDateLabel: 'select_date_and_time',\n selectLocation: 'select_location',\n selectServiceCopy: 'select_service_copy',\n selectServiceHeading: 'select_service',\n selectState: 'select_state',\n selectStoreAllServices: 'book_appointment_main_title_both',\n selectStoreCopy: 'select_store_copy',\n selectStoreInStoreOnly: 'book_appointment_main_title_physical',\n selectStoreInstructions: 'select_store_instructions',\n selectStoreLabel: 'select_store',\n selectStoreVirtualOnly: 'book_appointment_main_title_virtual',\n serviceCopy: 'service_copy',\n serviceLabel: 'service',\n serviceReviewNumberPlural: 'service_review_number_plural',\n serviceReviewNumberSingular: 'service_review_number_singular',\n servicesLabel: 'services',\n serviceWriteReview: 'service_write_review',\n smsOptInLabel: 'sms_opt_in',\n someServicesSelectedSelectServiceCopy: 'select_up_to_max_service_quantity',\n virtualAppointmentLocationLabel: 'virtual_appointment_location_description',\n virtualConfirmationCopy: 'virtual_appointment_confirmation_description',\n virtualConsultationCopy: 'virtual_appointment_description',\n virtualConsultationLabel: 'virtual_appointment_title',\n whatLabel: 'what',\n whenLabel: 'when',\n whereLabel: 'where',\n createAccountHeading: 'save_your_appointments',\n createAccountSubHeading: 'cancel_or_rebook_your_appointment_online',\n createAccountButtonLabel: 'create_an_account',\n createAccountButtonUrl: 'account_signin_tmpl_link',\n helloLabel: 'hello',\n signInAccountHeading: 'manage_your_appointments',\n signInAccountSubHeading: 'sign_in_cancel_or_rebook_your_appointment_online',\n signInAccountButtonUrl: 'account_appointments_index_tmpl_link',\n viewAppointmentsHeading: 'view_your_appointments',\n viewAppointmentsSubHeading: 'save_time_and_never_forget_date',\n viewAppointmentsButtonLabel: 'view_appointments',\n viewAppointmentsButtonUrl: 'my_appointments_link',\n callStoreTout: 'call_the_store'\n};\n","export const Cart = {\n addToBagButtonLabel: 'add_to_bag',\n shoppingBagTitle: 'shopping_bag',\n loginIncentive: 'login_incentive',\n addedToCartLabel: 'added_to_cart',\n // order summary\n orderSummaryTitle: 'order_summary',\n total: 'total',\n totalEstimate: 'total_estimate',\n subtotal: 'subtotal',\n discount: 'discount',\n discouns: 'discouns',\n shippingLabel: 'shipping',\n shippingTo: 'shipping_to',\n billingTo: 'billing_to',\n vatIncludedLabel: 'vat_included',\n taxPercentageIncludedLabel: 'tax_percentage_included',\n estimatedVatIncludedLabel: 'estimated_vat_included',\n estimatedTaxIncludedLabel: 'estimated_tax_included',\n countryDeliveryTaxesLabel: 'country_delivery_taxes',\n totalDiscountsAppliedLabel: 'discount_applied',\n salesTaxLabel: 'sales_tax',\n taxesInfoLabel: 'taxes_info',\n pstTaxLabel: 'pst_tax',\n hstTaxLabel: 'hst_tax',\n gstTaxLabel: 'gst_tax',\n retailDeliveryFeeLabel: 'retail_delivery_fee',\n retailDeliveryFeeTerms: 'retail_delivery_fee_tooltip_message',\n\n // cart items\n itemDiscountPercentageLabel: 'item_discounted_value',\n saveForLaterLabel: 'save_for_later',\n itemCartSavedForLaterLabel: 'was_saved_for_later',\n itemCartRemovedLabel: 'was_removed_from_cart',\n itemCartOutOfStockLabel: 'item_out_of_stock',\n itemCartAddBackToCartLabel: 'add_back_to_cart',\n itemCartScheduledForReplenishment: 'was_scheduled_for_replenishment',\n itemReplenishedDisclaimer: 'item_replenished_disclaimer',\n quantityLabel: 'quantity',\n\n // cart merge\n cartMergeTitleLabel: 'cart_merge_title',\n cartMergeSubTitleLabel: 'cart_merge_subtitle',\n acceptMergeButtonLabel: 'accept_merge',\n declineMergeButtonLabel: 'decline_merge',\n\n // cart empty\n shopBestsellersButtonText: 'shop_best_sellers',\n goShoppingLabel: 'go_shopping',\n homepageButtonText: 'shop_home_page',\n\n // discount module\n discountSubtotalLabel: 'discount_subtotal_label',\n discountItemCountLabel: 'discount_item_count_label',\n discountDiscountLabel: 'discount_discount_label',\n discountDisclaimerLabel: 'discount_disclaimer',\n\n // shopping bag screen modules\n accountLogin: 'account_login',\n savedForLaterListTitle: 'saved_for_later',\n addFreeSamples: 'add_free_samples',\n wpAddSamplesTitle: 'add_with_purchase_samples_title',\n chooseSamplesMessage: 'choose_free_samples',\n productSampleLabel: 'product_sample',\n congratulationsCartTabOfferLabel: 'congratulations_cart_tab_offer',\n\n // offers\n offerCodeLabel: 'offer_code',\n applyOfferCodeLabel: 'apply_offer_code',\n offerLinksLabel: 'see_all_offers',\n appliedOfferLabel: 'applied_offer',\n\n // actions\n namedDayShippingLabel: 'named_day_shipping',\n namedDayShippingOverlayText: 'named_day_shipping_message',\n standardShippingLabel: 'standard_shipping',\n standardShippingOverlayText: 'standard_shipping_message',\n saturdayShippingLabel: 'holiday_shipping',\n saturdayShippingOverlayText: 'holiday_shipping_message',\n clickAndCollectShipping: 'click_and_collect_shipping',\n clickAndCollectShippingNumberOfDays: 'click_and_collect_shipping_number_of_days',\n colissimoShippingLabel : 'colissimo_shipping',\n colissimoOverlayText: 'colissimo_shipping_number_of_days',\n secondDayShippingLabel: 'second_day_shipping',\n secondDayShippingOverlayText: 'second_day_shipping_message',\n overnightShippingLabel: 'overnight_shipping',\n overnightShippingOverlayText: 'overnight_shipping_message',\n electronicShippingLabel: 'electronic_shipping',\n electronicShippingOverlayText: 'electronic_shipping_message',\n freeShippingLabel: 'free_shipping_label',\n freeReturnsLabel: 'free_returns_label',\n maximumPurchasingPolicy: 'maxium_purchasing_policy',\n keepShoppingToQualify: 'keep_shopping_to_qualify',\n proceedToCheckout: 'proceed_to_checkout',\n applyCartChanges: 'apply_cart_changes',\n returnToCart: 'return_to_cart',\n // recommended section\n recommendedProductsTitle: 'recommended_for_you',\n // account module\n youAreLoggedAs: 'you_are_logged_in_as',\n continueAsGuestMessage: 'continue_as_guest_message',\n // donations module\n donationLabel: 'donation',\n makeADonation: 'make_a_donation',\n donationTo: 'donation_to',\n donationAmountLabel: 'donation_amount',\n giftWrapLabel: 'gift_wrap',\n yourMessageLabel: 'your_message',\n priceLabel: 'price',\n preOrderNoChargeLabel: 'pre_order_no_charge',\n preOrderItemLabel: 'pre_order_item',\n redeemGiftCardLabel: 'redeem_gift_card',\n certificateNumberLabel: 'certificate_number',\n certificatePinLabel: 'certificate_pin',\n engravingLabel: 'engraving',\n monogrammingLabel: 'monogramming',\n\n //Collection\n collectionItemAddToCart: 'collection_item_add_to_cart',\n collectionItemOutOfStock: 'collection_item_out_of_stock',\n collectionItemInCart: 'collection_item_in_cart',\n collectionNoItemsInCollection: 'collection_no_item_in_collection',\n saveForLaterAccordionHeader: 'save_for_later_accordion_header',\n lineItemCollectionButtonLoading: 'line_item_collection_button_loading',\n lineItemCollectionButtonAdd: 'line_item_collection_button_add',\n lineItemCollectionButtonRemove: 'line_item_collection_button_remove',\n collectionItemRemoveItem: 'collection_remove_from_collection',\n\n // Replenishment Module\n replenishmentDisclaimer: 'replenishment_disclaimer',\n replenishmentDisclaimerConfirmation: 'replenishment_confirmation'\n};\n","export const CartErrors = {\n cartCostLimit: 'cart_cost_limit',\n cartItemQuantityLimit: 'cart_item_quantity_limit',\n cartItemsCountLimit: 'cart_items_count_limit',\n cartEmpty: 'cart_empty',\n emptyCartSignInMessage: 'cart_empty_signin',\n emptyCartSignInAction: 'cart_empty_sign_action',\n itemSoldOut: 'item_sold_out',\n itemOutOfStock: 'item_out_of_stock',\n itemCommingSoon: 'item_comming_soon',\n itemQuantityAdjusted: 'item_quantity_adjusted',\n saveForLaterTemporarilyOutOfStockLabel: 'save_for_later_tos',\n saveForLaterSoldOutNotification: 'save_for_later_sold_out',\n cartEmptyTitleLabel: 'cart_empty_title',\n cartLimitReached: 'cart_limit_reached',\n disqualifyWpCriteria: 'disqualify_wp_criteria',\n thresholdWpCriteria: 'threshold_wp_criteria',\n nonEligibleItemsPotentiallyAffectedOffer: 'non_eligible_items_potentially_affected_offer',\n transactionLimitReached: 'trans_limit',\n offerReplacedSkusRestricted: 'offer_replaced_skus_restricted',\n replenishmentDisclaimerDeclined: 'replenishment_disclaimer_declined',\n replenishmentNotApplied: 'replenishment_not_applied'\n};\n","export const Checkout = {\n // General\n checkOrderStatus: 'check_order_status',\n composedHelpfulLinks: 'composed_helpful_links',\n paymentInstructions: 'payment_instructions',\n billingPageTitle: 'billing_page_title',\n billingPageSubtitle: 'billing_page_subtitle',\n deliveryPageTitle: 'delivery_page_title',\n deliveryOptionsTitle: 'delivery_options_title',\n deliveryMethodStandard: 'delivery_method_standard',\n homeDeliveryTitle: 'home_delivery_title',\n homeDeliveryOptionsAvailable: 'home_delivery_options_available',\n clickCollectTitle: 'click_collect_title',\n deliveryInstructionsLabel: 'delivery_intructions',\n continueCheckoutLabel: 'continue_checkout',\n chooseBillingFromBookLablel: 'billing_choose_from_book',\n newBillingLabel: 'new_billing_address',\n noticeOfFinanicalIncentiveLabel: 'california_resident_notice_of_financial_incentive',\n paymentPageTitle: 'payment_page_title',\n paymentMethodSelectionTitle: 'payment_method_selection_title',\n placeOrderLabel: 'place_order',\n creditCardSelectorLabel: 'credit_card_selector',\n newCreditCardLabel: 'add_credit_card',\n cardSaveLabel: 'save_credit_card',\n orderConfirmationPageTitle: 'order_confirmation_page_title',\n orderConfirmationTitle: 'order_confirmation_title',\n orderConfirmationMessage: 'order_confirmation_message',\n orderNowAndShipLater: 'order_now_and_ship_later',\n guestUserOrderConfimationMessage: 'guest_user_order_confirmation_message',\n otherProductsTitle: 'other_products_component_title',\n signInOrSignUpTitle: 'sign_in_or_sign_up_title',\n signInOrSignUpText: 'sign_in_or_sign_up_text',\n signInOrSignUpLabel: 'sign_in_or_sign_up',\n checkoutLabel: 'checkout',\n billingToLabel: 'billing_to',\n billingAddress: 'billing_address',\n billingLimitedCountryLabel: 'billing_limited_country_label',\n orderDateLabel: 'order_date',\n orderNumberLabel: 'order_number',\n orderHistoryTitle: 'order_history_title',\n seeAllOrders: 'see_all_orders',\n noOrdersMessage: 'no_orders_message',\n discoverNewProducts: 'discover_new_products',\n allOrders: 'all_orders',\n onTheWay: 'on_the_way',\n trackPackageLabel: 'track_package',\n orderDetailsTitle: 'order_details_title',\n billingInformation: 'billing_information',\n carrierLabel: 'carrier',\n trackingNumberLabel: 'tracking_number',\n paymentMethodLabel: 'payment_method',\n temporaryModuleTitle: 'temporary_module_title',\n orderPlacedLabel: 'order_placed',\n orderStatusLabel: 'order_status',\n orderInformationLabel: 'order_information',\n viewOrderDetailsText: 'view_order_details',\n emailSignup: 'email_signup',\n phoneUsedForImportantQuestions: 'phone_used_for_important_questions',\n complimentaryGift: 'complimentary_gift',\n guestCheckoutLabel: 'guest_checkout',\n guestCheckoutConsent: 'guest_checkout_consent',\n\n // Giftwrap\n giftWrap: 'gift_wrap',\n giftWrapOrderHidePrices: 'gift_wrap_order_hide_prices',\n wrapAllItemsInSingleBox: 'wrap_all_items_in_single_box',\n giftMessage: 'gift_message',\n giftMessagePlaceholderText: 'gift_message_placeholder_text',\n giftWrapOptions: 'gift_wrap_options',\n giftWrapAndPersonalMessage: 'gift_wrap_and_personal_message',\n giftWrapAddedSuccessfully: 'gift_wrap_added_successfully',\n giftMessageAddedSuccessFully: 'gift_message_added_successfully',\n giftMessageNotAvailable: 'gift_message_not_available',\n giftMessageProfanityErrorCheck: 'gift_message_profanity_error_check',\n //TODO: get image path from shopkeeper\n giftWrapImage: 'gift_wrap_image',\n\n // Progress bar\n progressDeliveryStep: 'checkout_progress_delivery',\n progressPaymentStep: 'checkout_progress_payment',\n progressConfirmationStep: 'checkout_progress_confirmation',\n progressShippingStep: 'checkout_progress_shipping',\n progressBillingStep: 'checkout_progress_billing',\n\n // Shipping\n shippingPageTitle: 'shipping_page_title',\n defaultShippingAddress: 'default_shipping_address',\n yourDefaultDeliveryAddress: 'your_default_delivery_address',\n shippingAddress: 'shipping_address',\n shippingToLabel: 'shipping_to',\n shippingMethod: 'shipping_method',\n sameBillingCheckboxLabel: 'same_billing_address_checkbox',\n billingAddressTitle: 'billing_address_title',\n homeDeliveryOptionsTitle: 'home_delivery_options',\n homeDeliveryOptionsAvailableTitle: 'home_delivery_options_available',\n fillOutPostalCode: 'fill_out_postal_code',\n chooseDeliveryOptions: 'choose_delivery_options',\n preferredDayOfDelivery: 'preferred_day_of_delivery',\n preOrderMessage: 'pre_order_message',\n shippingSetToStandard: 'shipping_set_to_standard',\n shippingErrorMessage: 'shipping_error_message',\n shippingLimitedCountryLabel: 'shipping_limited_country_label',\n shippingLegalCompliance: 'shipping_legal_compliance',\n estimatedDelivery: 'estimated_delivery',\n differentLocationError: 'different_location_error',\n\n // Order and order history\n orderTypeOnlineLabel: 'order_type_online',\n cancelOrderLabel: 'cancel_order_label',\n\n // Item count\n orderItemCountSingular: 'order_item_count_singular',\n orderItemCountPlural: 'order_item_count_plural',\n\n // Order status\n orderStatusCancelled: 'order_status_cancelled',\n orderStatusDispatching: 'order_status_dispatching',\n orderStatusDelivered: 'order_status_delivered',\n orderStatusProcessing: 'order_status_processing',\n\n // Adyen specific helpful links\n helpfulLink1: 'adyen_helpful_link_1',\n helpfulLink2: 'adyen_helpful_link_2',\n helpfulLink3: 'adyen_helpful_link_3',\n helpfulLink4: 'adyen_helpful_link_4',\n helpfulLink5: 'adyen_helpful_link_5',\n helpfulLink6: 'adyen_helpful_link_6',\n helpfulLink7: 'adyen_helpful_link_7',\n\n // Card\n cardDebitCardOption: 'credit_debit_card_option',\n makeDefaultCard: 'make_default_card',\n defaultCard: 'default_card',\n deleteCard: 'delete_card',\n cardExpiration: 'card_expiration',\n cardExpired: 'card_expired',\n noCardTokensMessage: 'no_card_tokens_message',\n cvvLabel: 'cvv',\n cardNumberLabel: 'card_number',\n cardExpiryLabel: 'card_expiry',\n cardNumberPlaceholder: 'card_number_placeholder',\n cardExpiryPlaceholder: 'card_expiry_placeholder',\n cvvPlaceholder: 'card_cvv_placeholder',\n cardHolderNameLabel: 'card_holder_name',\n cardHolderNamePlaceholder: 'card_holder_name_placeholder',\n visaCardLabel: 'visa_card_payment_option',\n mastercardCardLabel: 'mastercard_payment_option',\n maestroCardLabel: 'maestro_card_payment_option',\n visaElectronCardLabel: 'visa_electron_card_payment_option',\n amexCardLabel: 'amex_card_payment_option',\n\n // Cash on delivery\n codPaymentOption: 'cod_payment_option',\n codPaymentNotAvailable: 'cod_payment_not_available',\n\n // Alipay\n alipayPaymentOption: 'alipay_payment_option',\n continueWithAlipay: 'continue_with_alipay',\n\n // Afterpay\n afterpayPaymentMethod: 'afterpay_payment_method',\n afterpayAddressWarning: 'afterpay_address_warning',\n afterpayNotEligibleMessage: 'afterpay_not_eligible_message',\n afterpayInstallmentPayInMessage: 'afterpay_installment_pay_in_message',\n afterpayPaymentAgreementLink: 'afterpay_payment_agreement_link',\n continueWithAfterpay: 'continue_with_afterpay',\n\n // Altapay\n mobilePayLabel: 'mobilepay_payment_option',\n\n // Pay by link\n payByLink: 'pay_by_link',\n payByLinkPaymentMode: 'paybylink_payment_mode',\n\n // Wechat payment option\n wechatPaymentOption: 'wechat_payment_option',\n\n // Klarna payment option\n payLaterWithKlarna: 'pay_later_with_klarna',\n payOverTimeWithKlarna: 'pay_over_time_with_klarna',\n klarnaNotAvailableForPurchase: 'klarna_not_available_for_purchase',\n\n // Mockpay payment option\n mockpayPaymentOption: 'mockpay_payment_option',\n\n // Venmo payment option\n venmoPaymentOption: 'venmo_payment_option',\n\n // Ingenico\n sofortLabel: 'sofort_payment_method',\n continueWithSofort: 'continue_with_sofort',\n idealLabel: 'ideal_payment_method',\n continueWithIdeal: 'continue_with_ideal',\n\n // Delete payment\n deletePayment: 'delete_payment',\n deletePaymentDefault: 'delete_payment_default',\n deletePaymentConfirm: 'delete_payment_confirm',\n deletePaymentCancel: 'delete_payment_cancel',\n\n // Default payment\n choosePayment: 'choose_another_payment',\n choosePaymentUseAsDefault: 'choose_another_payment_use_as_default',\n choosePaymentConfirm: 'choose_another_payment_confirm',\n choosePaymentCancel: 'choose_another_payment_cancel',\n continueWithPayPal: 'continue_with_paypal',\n payPalLabel: 'paypal_payment_method',\n securedPaymentInfo: 'secured_payment_info',\n\n // Product reorder\n reorderButtonLabel: 'reorder',\n reorderFreePromoButtonLabel: 'reorder_free_promo',\n reorderProductNoLongerAvailable: 'reorder_product_no_longer_available',\n\n // Click and collect\n searchPickupPointButtonText: 'search_pickup_point',\n findPickupPointText: 'find_pickup_point',\n addressSearchPlaceholder: 'address_search_placeholder',\n nearestPickUpPointText: 'nearest_pickup_point',\n storeClosedText: 'store_closed',\n openingHoursText: 'opening_hours',\n selectLocationButtonText: 'select_location',\n daysOfTheWeek: 'days_of_the_week',\n noPickUpPointsTitle: 'no_pickup_points_title',\n noPickUpPointsCopy: 'no_pickup_points',\n pleaseUseADifferentAddress: 'please_use_a_different_address',\n orChooseHomeDelivery: 'or_choose_home_delivery',\n searchPickupPointsAgainCopy: 'search_pickup_points_again',\n loadMoreLocationsText: 'load_more_locations',\n markerIconURL: 'marker_logo_url',\n changeLocationButtonText: 'change_location',\n selectedStoreText: 'selected_store_text',\n pickupPointInformationCopy: 'pickup_point_information',\n pickupInformation: 'pickup_information',\n clickAndCollectPopupInfoTitle: 'popup_info_collect_from_local_shop',\n clickAndCollectPopupInfoSubTitle: 'popup_info_subtitle',\n clickAndCollectPopupInfoGetNotifiedTitle: 'get_notified',\n clickAndCollectPopupInfoGetNotifiedCopy: 'popup_info_get_notified_copy',\n clickAndCollectPopupInfoProvideDocumentsTitle: 'provide_documents',\n clickAndCollectPopupInfoProvideDocumentsCopy: 'popup_info_provide_documents_copy',\n clickAndCollectPopupInfoSignPackageTitle: 'sign_package',\n clickAndCollectPopupInfoSignPackageCopy: 'popup_info_sign_package_copy',\n clickAndCollectPopupInfoOrderDispatchCopy: 'popup_info_order_dispatch',\n clickAndCollectPopupInfoSmallPrint: 'popup_info_small_print',\n cartItemRewardLabel: 'cart_item_reward_label',\n cartItemRewardRedeemedLabel: 'cart_item_reward_redeemed_label',\n editBagFistCopy: 'edit_bag_first_copy',\n editBagDescription: 'edit_bag_description',\n engravingNotAvailable: 'engraving_not_available',\n unavailableItems: 'unavailable_items',\n selectOption: 'select_option',\n selectAllItems: 'select_all_items',\n selectOtherStore: 'select_other_store',\n removeItemsAndContinue: 'remove_items_and_continue',\n removeItemsAndContinueWithGift: 'remove_items_and_continue_with_gift',\n allItemsForPickup: 'all_items_available_for_pickup',\n noItemsForPickup: 'no_items_available_for_pickup',\n someItemsForPickup: 'some_items_available_for_pickup',\n selectStore: 'select_store',\n selectDifferentStore: 'select_different_store',\n seeMoreLocations: 'see_more_locations',\n purchaserDetails: 'purchaser_details',\n replenishmentRemovedMessage: 'auto_replenishment_not_available_with_same_day',\n whoPickup: 'who_pickup',\n samplesInfoMessage: 'samples_info_message',\n sameDayDeliveryDisclaimer: 'same_day_delivery_disclaimer',\n sameDayDeliveryLabel: 'same_day_delivery',\n sameDayDeliveryGetItBy: 'same_day_delivery_get_it_by',\n sameDayDeliveryInfoText: 'same_day_delivery_more_info',\n SameDayNotAvailableText: 'same_day_not_available',\n sameDayDeliveryVariableFeeMessage: 'same_day_delivery_variable_fee_message',\n sameDayDeliveryPromotionDeliveryPrice: 'same_day_delivery_promotion_delivery_price',\n someOneMustBePresent: 'someone_must_be_present_for_delivery',\n chooseSameDayDeliveryLabel: 'choose_same_day_delivery_label',\n chooseSameDayDeliveryWindow: 'choose_same_day_window',\n checkAvailabilityAlert: 'check_availability_before_continue',\n toBeDeterminedLabel: 'to_be_determined',\n bopisLabel: 'bopis_shipping',\n courierLabel: 'courier_shipping',\n bopisInfoList: 'bopis_info_list',\n bopisInfoTooltipDescription: 'bopis_info_tooltip_description',\n bopisInfoTooltipMessage: 'bopis_info_tooltip_message',\n bopisShippingAllowSubstitutions: 'bopis_shipping_allow_substitutions',\n selectedStoreInfoTooltipDescription: 'selected_store_info_tooltip_description',\n selectedStoreInfoTooltipMessage: 'selected_store_info_tooltip_message',\n purchaserDetailsPayment: 'purchaser_details_payment',\n pickedUpInStoreBy: 'picked_up_in_store_by',\n storeForPickUp: 'store_for_pickup',\n availableForPickupToday: 'available_for_pickup_today',\n availableForPickupNextBusinessDay: 'available_for_pickup_next_business_day',\n checkAvailability: 'check_availability',\n noStoresFound: 'no_stores_found',\n localPickupPointsOnly: 'local_pickup_points_only',\n brandStoresOnly: 'brand_stores_only',\n\n // Salon commission\n salonCommissionCheckbox: 'yes_i_was_referred_by_a_salon',\n salonCommissionDescription: 'tell_us_your_salon_so_we_can_thank_them',\n salonCommissionFirstCopy: 'where_you_referred_by_a_salon',\n salonCommissionMySalon: 'my_salon',\n salonCommissionNearbySalons: 'nearby_salons',\n salonCommissionNoSalonNearYourLocation: 'no_salon_near_your_location',\n salonCommissionPrivacyPolicyLink: 'salon_commission_privacy_policy_link',\n salonCommissionPrivacyPolicyMessage: 'salon_commission_privacy_policy',\n salonCommissionSearchButton: 'search_salons',\n salonCommissionSearchInputPlaceholder: 'zip_code',\n salonCommissionSearchResults: 'search_results_for_zipcode',\n salonCommissionStylistCredit: 'give_your_stylist_some_credit',\n salonCommissionStylistName: 'stylist_name',\n salonCommissionViewMoreSalons: 'view_more_salons',\n\n // UPS address validation\n upsAddressValidationTitleLabel: 'ups_validation_title',\n upsAddressValidationSubtitleLabel: 'ups_validation_subtitle',\n upsAddressValidationRecommendedAddressLabel: 'ups_validation_recommended_address',\n upsAddressValidationEnteredAddressLabel: 'ups_validation_entered_address',\n upsAddressValidationUseAddressLabel: 'ups_validation_use_address',\n upsAddressValidationKeepAddressLabel: 'ups_validation_keep_address',\n\n // Gift card redemption\n giftCardNumberLabel: 'gift_card_number',\n giftCardPinLabel: 'gift_card_pin',\n giftCardApplyAnotherLabel: 'gift_card_apply_another',\n giftCardMoreInfoLabel: 'gift_card_more_info',\n giftCardAppliedMessage: 'gift_card_applied',\n giftCardRemovedMessage: 'gift_card_removed',\n giftCardBalanceLabel: 'gift_card_balance',\n giftCardBalanceMessage: 'the_balance_of_gift_card_is',\n giftCardCheckBalanceLabel: 'check_balance',\n giftCardCartChangedErrorMesage: 'gift_card_cart_changed',\n giftCardExpirationDate: 'gift_card_expiration_date',\n giftCardNotAvailableWithSelectedPayment: 'gift_card_not_available_with_selected_payment',\n giftCardNotAvailableWithARProducts: 'gift_card_not_available_with_ar_products',\n giftCardTerms: 'gift_card_terms',\n giftWrapRemovedLabel: 'gift_wrap_removed_in_store_pickup',\n\n // Our guarantee section\n ourGuaranteeFirstCopy: 'our_guarantee_first_copy',\n ourGuaranteeDescription: 'our_guarantee_description',\n\n // Iyzico payment\n preInformationConditionsLabel: 'pre_information_conditions',\n distanceSellingAgreementLabel: 'distance_selling_agreement',\n distanceSellingAgreementLink: 'distance_selling_agreement_link',\n continueWithIzyco: 'continue_with_izyco',\n preInformationConditionsAndDistanceSellingAgreementAlert:\n 'pre_information_conditions_and_distance_selling_agreement_alert',\n\n // Packstation\n packstation: 'packstation',\n packstationPostNumber: 'packstation_post_number',\n packstationNumber: 'packstation_number',\n packstationLocation: 'packstation_location',\n haveYourOrderToAPackstation: 'have_your_order_to_a_packstation',\n packstationLimitedCountryLabel: 'packstation_limited_country_label',\n\n // Company Billing\n companyDetails: 'company_details',\n billTheCompany: 'bill_the_company',\n taxOfficeName: 'tax_office_name',\n companyName: 'company_name',\n taxRegistrationNumber: 'tax_registration_number',\n\n // General\n municipalityLabel: 'municipality',\n colonyLabel: 'colony',\n cashSelectorLabel: 'cash_selector',\n cashOptionsLabel: 'cash_options_label',\n pickupInConvenienceStore: 'pickup_in_convenience_store',\n convenienceStorePickupInstructions: 'convenience_store_pickup_instructions',\n convenienceStoreReceiptService: 'convenience_store_receipt_service',\n aboutConvenienceStoreReceiptService: 'about_convenience_store_receipt_service',\n specifiedShippingDateAndTime: 'specified_shipping_date_and_time',\n deliveryDateDesignation: 'delivery_date_designation',\n choosePreferredShippingDateTime: 'choose_preferred_shipping_date_time',\n shippingDate: 'shipping_date',\n shippingTime: 'shipping_time',\n feeTaxIncluded: 'fee_tax_included',\n rakutenPay: 'rakuten_pay',\n useRakutenPayToShop: 'use_rakuten_pay_to_shop',\n storeForClickAndCollect: 'store_for_click_and_collect',\n cashOnDeliveryFee: 'cash_on_delivery_fee',\n continueWithCod: 'continue_with_cod',\n continueWithRakuten: 'continue_with_rakuten',\n continueWithCreditCard: 'continue_with_credit_card',\n postalCodeSearchLink: 'postal_code_search_link',\n providePostalCodeLabel: 'provide_postal_code',\n cashOnDeliveryNotice: 'cash_on_delivery_notice',\n createAccountTitle: 'create_account_title',\n createAccountText: 'create_account_text',\n completeCheckout: 'complete_checkout'\n};\n","export const Common = {\n artist: 'artist',\n logo: 'logo',\n logoAlt: 'logo_alt',\n homeUrl: 'home_url',\n copyright: 'copyright',\n contactNumber: 'contact_number',\n liveChat: 'live_chat',\n secureCheckoutLabel: 'secure_checkout',\n privacyPolicyLink: 'privacy_policy_link',\n noticeOfFinanicalIncentiveLink: 'notice_of_financial_incentive_link',\n loyaltyTermsLink: 'loyalty_terms_link',\n termsConditionsLink: 'terms_condition_link',\n termsOfSalesLink: 'terms_of_sales_link',\n termsOfServiceLink: 'terms_of_service_link',\n accessibilityLabel: 'accessibility',\n accessibilityLink: 'accessibility_link',\n liveChatLink: 'live_chat_link',\n privacyPolicy: 'privacy_policy',\n privacyPolicyLabel: 'privacy_policy',\n privacyPolicyDescription: 'privacy_policy_description',\n termsConditions: 'terms_conditions',\n customerServicePhoneNumber: 'customer_service_phone_number',\n deliveryHandlingUrl: 'shipping_handling_link',\n returnPolicyUrl: 'return_policy_link',\n contactEmailUrl: 'contact_us_link',\n contactNumberUrl: 'call_us_link',\n contactNumberLabel: 'customer_service_phone_number',\n contactNumberAriaLabel: 'customer_service_phone_number',\n charactersRemaining: 'characters_remaining',\n liveChatUrl: 'chat_link',\n bestSellersUrl: 'best_sellers_link',\n seeAllOffersUrl: 'see_all_offers_link',\n facebookShareUrl: 'facebook_share_url',\n twitterShareUrl: 'twitter_share_url',\n youtubeShareUrl: 'youtube_share_url',\n pinterestShareUrl: 'pinterest_share_url',\n vkShareUrl: 'vk_share_url',\n weChatShareUrl: 'wechat_share_url',\n weiboShareUrl: 'weibo_share_url',\n californiaConsumerPrivacyActLink: 'california_consumer_privacy_act_link',\n kvkkFooterLink: 'kvkk_footer_link',\n klarnaPaymentsOf: 'klarna_payments_of',\n klarnaAvailableForOrders: 'klarna_available_for_orders',\n counterPrivacyPolicyLink: 'counter_privacy_policy_link',\n onlineTermsAndConditionLink: 'online_terms_and_condition_link',\n cookieManagement: 'cookie_management',\n businessDealLink: 'business_deal_link',\n browserNotSupportedTitle: 'browser_not_supported_title',\n browserNotSupportedImage: 'browser_not_supported_image',\n browserNotSupportedText: 'browser_not_supported_text',\n browserNotSupportedHelpCentertext: 'browser_not_supported_help_center_text',\n browserNotSupportedContinueButtonText: 'browser_not_supported_continue_button_text',\n freeShippingAndReturn: 'free_shipping_and_return',\n reachBALabel: 'reach_ba',\n reachBAText: 'reach_ba_text',\n packaging: 'packaging',\n qrcodeTitle: 'qrcode_title',\n qrcodeText: 'qrcode_text',\n waitMessage: 'wait_message',\n google: 'google',\n ics: 'ics',\n onlyEnglishLanguageCharactersAreAccepted: 'only_english_language_characters_are_accepted',\n outlook: 'outlook',\n yahoo: 'yahoo',\n shIcpCodeLink: 'sh_icp_code_link',\n shBusinessLink: 'sh_business_link',\n personalMessage: 'personal_message',\n policeShieldLink: 'police_shield_link',\n joinLoyaltyRewardLink: 'join_loyalty_reward_link',\n joinLoyaltyRewardMessage: 'join_loyalty_reward_message',\n video: 'video',\n cpf: 'cpf',\n cpfRequiredLengthText: 'cpf_required_length_text',\n writeAPersonalMessage: 'write_a_personal_message'\n};\n","export const Communications = {\n emailSenderName: 'email_sender_name',\n emailSender: 'email_sender',\n emailHeaderLogo: 'email_header_logo',\n emailHeaderLink: 'email_header_link',\n emailSafely: 'email_safely',\n emailCheckInBrowser: 'email_check_in_browser',\n emailCheckInBrowserLink: 'email_check_in_browser_link',\n emailContactUs: 'email_contact_us',\n emailContactUsLink: 'email_contact_us_link',\n emailShippingHandling: 'email_shipping_handling',\n emailShippingHandlingLink: 'email_shipping_handling_link',\n emailReturnPolicy: 'email_return_policy',\n emailReturnPolicyLink: 'email_return_policy_link',\n emailTermsCondition: 'email_terms_condition',\n emailTermsConditionLink: 'email_terms_condition_link',\n facebookUrl: 'facebook_url',\n twitterUrl: 'twitter_url',\n youtubeUrl: 'youtube_url',\n instagramUrl: 'instagram_url',\n tumblrUrl: 'tumblr_url',\n emailLegalText: 'email_legal_text',\n unsubscribeLink: 'unsubscribe_link',\n unsubscribeLinkText: 'unsubscribe_link_text',\n emailOptInLabel: 'email_opt_in',\n deliveryHandlingLabel: 'email_shipping_handling',\n deliveryHandlingAriaLabel: 'email_shipping_handling',\n returnPolicyLabel: 'email_return_policy',\n returnPolicyAriaLabel: 'email_return_policy',\n notifyMeLabel: 'notify_me',\n notifyMeSubmitButtonLabel: 'notify_me_submit',\n notifyMeConfirmationTitle: 'notify_me_confirmation_title',\n notifyMeConfirmationText: 'notify_me_confirmation_text',\n notifyMePopUpHeaderText: 'notify_me_popup_header_text',\n notifyMeTitleLabel: 'notify_me_title',\n notifyMeDescriptionLabel: 'notify_me_description',\n continueShoppingButtonLabel: 'continue_shopping',\n gdprValidationText: 'gdpr_validation',\n contactPreferenceTitle: 'contact_preference_title',\n contactPreferenceContent: 'contact_preference_content',\n contactPreferenceOptInContent: 'contact_preference_opt_in_content'\n};\n","export const Compliance = {\n gdprNoticeLabel: 'gdpr_notice_label',\n gdprNoticeInformation: 'gdpr_notice_information',\n gdprOABNoticeInformation: 'gdpr_oab_notice_information',\n gdprHowDoWeUseYourData: 'gdpr_how_do_we_use_your_data'\n};\n","export const Errors = {\n validationFailedError: 'validation_failed',\n fieldContainsBadCharError: 'field_contains_bad_characters',\n termsAndConditionsRequired: 'terms_conditions_required_error',\n cancellationErrorAlreadyCancelled: 'cancellation_already_expired',\n cancellationErrorCallStore: 'cancellation_call_store',\n cancellationErrorTokenExpired: 'cancellation_token_expired',\n cannotShipToAddressErrorMessage: 'cannot_ship_to_address',\n cityStateZipErrorMessage: 'city_state_zip_invalid',\n cityZipErrorMessage: 'city_zip_invalid',\n emailAddressInvalidMessage: 'email_address_invalid',\n emailAddressRequiredMessage: 'email_address_required',\n externalPaymentError: 'external_payment_error',\n afterpayExternalPaymentError: 'afterpay_external_payment_error',\n firstNameInvalidMessage: 'first_name_invalid',\n firstNameRequired: 'first_name_required',\n firstNameAlternateInvalidMessage: 'first_name_alternate_invalid',\n firstNameAlternateRequired: 'first_name_alternate_required',\n fullNameInvalidMessage: 'full_name_invalid',\n fullNameRequired: 'full_name_required',\n generic500Error: 'generic_500',\n genericError: 'generic_error',\n giftCardInformationErrorMessage: 'gift_card_information_error',\n giftCardZeroBalanceErrorMessage: 'gift_card_zero_balance',\n giftCardUnavailableErrorMessage: 'gift_card_unavailable',\n offerRemovedErrorMessage: 'offer_code_removed',\n invalidAddressErrorMessage: 'address_invalid',\n invalidBillingAddressSelectedErrorMessage: 'invalid_billing_address_selected',\n lastNameInvalidMessage: 'last_name_invalid',\n lastNameRequired: 'last_name_required',\n lastNameAlternateInvalidMessage: 'last_name_alternate_invalid',\n lastNameAlternateRequired: 'last_name_alternate_required',\n maxLengthInvalidMessage: 'max_length_invalid',\n minLengthInvalidMessage: 'min_length_invalid',\n patternInvalidMessage: 'pattern_invalid',\n paymentCurrencyNotMatchingConfigurationErrorMessage:\n 'payment_currency_not_matching_configuration',\n upsAddressErrorMessage: 'ups_validation_error',\n giftCardErrorMessage: 'gift_card_error',\n paymentDisabledPaymentMethodErrorMessage: 'payment_disabled_payment_method',\n paymentExceededOrderSkuMaxLimitValueErrorMessage: 'payment_exceeded_order_sku_max_limit_value',\n paymentExceededQuantityValueErrorMessage: 'payment_exceeded_quantity_value',\n paymentExceededTotalValueErrorMessage: 'payment_exceeded_total_value',\n paymentLanguageNotMatchingConfigurationErrorMessage:\n 'payment_language_not_matching_configuration',\n paymentMinimumTotalValueErrorMessage: 'payment_minimum_total_value',\n paymentNotInRangeTotalValueErrorMessage: 'payment_not_in_range_total_value',\n paymentProviderErrorMessage: 'payment_provider_error',\n paymentProvider3dsErrorMessage: 'payment_provider_3ds_error',\n paymentRestrictedZipCodeErrorMessage: 'payment_restricted_zip_code',\n phoneValidationErrorMessage: 'phone_validation_error',\n productApoRestrictionErrorMessage: 'restricted_apo_product',\n productsRemovedErrorMessage: 'product_removed_error',\n requiredFieldMessage: 'required_field',\n saveCCPreOrderItemsErrorMessage: 'save_cc_pre_order_items',\n saveCCReplenishmentServiceErrorMessage: 'save_cc_replenishment_service',\n shippingApoRestrictionErrorMessage: 'restricted_apo_address',\n shippingRestrictionErrorMessage: 'restricted_state',\n taxNumberErrorMessage: 'taxNumberErrorMessage',\n validityFieldMessage: 'field_invalid',\n weAreSorryAtThisTimeErrorMessage: 'we_are_sorry_at_this_time',\n clickAndCollectSearchErrorText: 'click_and_collect_search_error',\n geoSearchError: 'geo_search_error',\n salutationRequiredMessage: 'salutation_required',\n birthYearRequiredMessage: 'birth_year_required',\n birthMonthRequiredMessage: 'birth_month_required',\n birthDayRequiredMessage: 'birth_day_required',\n joinLoyaltyEnrolmentRequired: 'join_loyalty_enrolment_required',\n ageGroupRequiredMessage: 'age_group_required',\n customerLocationRequiredMessage: 'customer_location_required',\n countryCodeRequiredMessage: 'country_code_required',\n storesRequiredMessage: 'stores_required',\n payPalPaymentProviderErrorMessage: 'pay_pal_payment_provider_error',\n replenishmentRemovedErrorMessage: 'replenishment_removed_error',\n cartChangedErrorMessage: 'cart_changed_error',\n paypalCannotConnectErrorMessage: 'paypal_cannot_connect_error',\n itemNotAvailableForPickUpErrorMessage: 'item_not_available_for_pick_up_error',\n sameDayNotAvailableError: 'same_day_not_available_error_message',\n appointmentBookingFailed: 'appointment_booking_failed',\n appointmentCreationError: 'appointment_creation_error',\n appointmentUpdateError: 'appointment_update_error',\n appointmentCancellationError: 'appointment_cancellation_error',\n virtualAppointmentNoAvailability: 'virtual_appointment_no_availability',\n unableToCreateUserError: 'unable_to_create_user_error',\n noAppointmentAvailableError: 'no_appointment_available_error',\n maxAppointmentDurationCopy: 'max_appointment_duration_error_description',\n maxAppointmentDurationLabel: 'max_appointment_duration_error',\n defaultAPIError: 'default_api_error',\n invalidCardNumberError: 'invalid_card_number',\n invalidExpiryDateError: 'invalid_expiration_date',\n invalidEntry: 'invalid_entry',\n monthOutOfRangeError: 'month_out_of_range',\n yearOutOfRangeError: 'year_out_of_range',\n dateOutOfRangeError: 'date_out_of_range',\n invalidCvcError: 'invalid_cvv',\n emptyExpiryDateError: 'empty_expiry_date',\n emptyCardNumberError: 'empty_card_number',\n emptyCvvError: 'empty_cvv',\n taxOfficeNameInvalidMessage: 'tax_office_name_invalid',\n taxOfficeNameRequired: 'tax_office_name_required',\n companyNameInvalidMessage: 'company_name_invalid',\n companyNameRequired: 'company_name_required',\n companyTaxNumberInvalidMessage: 'company_tax_number_invalid',\n companyTaxNumberRequired: 'company_tax_number_required',\n sexRequiredMessage: 'sex_required',\n areaCodeRequiredMessage: 'area_code_required',\n homePhoneRequiredMessage: 'home_phone_required',\n homePhoneInvalidMessage: 'home_phone_invalid',\n mobileEmailRequired: 'mobile_email_required',\n mobileEmailInvalidMessage: 'mobile_email_invalid',\n primaryPhoneRequiredMessage: 'primary_phone_required',\n primaryPhoneInvalidMessage: 'primary_phone_invalid',\n secondaryPhoneRequiredMessage: 'secondary_phone_required',\n secondaryPhoneInvalidMessage: 'secondary_phone_invalid',\n municipalityRequiredMessage: 'municipality_required',\n municipalityValidMessage: 'municipality_invalid',\n colonyRequiredMessage: 'colony_required',\n colonyValidMessage: 'colony_invalid',\n emptyCardHolderNameError: 'empty_card_holder_name',\n shippingDateRequiredMessage: 'shipping_date_required',\n shippingDateInvalidMessage: 'shipping_date_invalid',\n shippingTimeRequiredMessage: 'shipping_time_required',\n shippingTimeInvalidMessage: 'shipping_time_invalid',\n shippingRestrictionHazmat: 'shipping_restriction_hazmat',\n shippingRestrictionOverseasTerritory: 'shipping_restriction_overseas_territory',\n packstationPostNumberInvalid: 'packstation_post_number_invalid',\n packstationNumberInvalid: 'packstation_number_invalid',\n packstationPostNumberRequired: 'packstation_post_number_required',\n packstationNumberRequired: 'packstation_number_required'\n};\n","export const General = {\n acceptTermsAndConditionsLabel: 'accept_terms_conditions',\n addAddressToAccountLabel: 'add_address_to_account',\n allLabel: 'all',\n add: 'add',\n and: 'and',\n application: 'application',\n applyGiftCard: 'apply_gift_card',\n applyLabel: 'apply',\n browseLabel: 'browse',\n fastest: 'fastest',\n californiaPersonalInformationLabel: 'california_personal_information',\n callUsAriaLabel: 'call_us',\n callUsLabel: 'call_us',\n cancelLabel: 'cancel',\n continueLabel: 'continue',\n checkBalance: 'check_balance',\n clearAll: 'clear_all',\n clickingPay: 'clicking_pay',\n closeLabel: 'close',\n commonPrivacyNoticeLabel: 'common_data_privacy_notice',\n confirmLabel: 'confirm',\n contactEmailAriaLabel: 'contact_email',\n contactEmailLabel: 'contact_email',\n contactLabel: 'contact',\n dateLabel: 'date',\n dayLabel: 'day',\n daysLabel: 'days',\n defaultLabel: 'default',\n deleteLabel: 'delete',\n editLabel: 'edit',\n expired: 'expired',\n expiration: 'expiration',\n emailShareLabel: 'email_share',\n feet: 'feet',\n freeLabel: 'free',\n amountLabel: 'amount',\n amountAppliedLabel: 'amount_applied',\n giftCardLabel: 'gift_card',\n friday: 'friday',\n helpfulLinksTitle: 'helpful_links',\n hereLabel: 'here',\n homeLabel: 'home',\n itemLabel: 'item',\n kilometers: 'kilometers',\n learnMore: 'learn_more',\n lesson: 'lesson',\n liveChatAriaLabel: 'live_chat',\n liveChatLabel: 'live_chat',\n loadingLabel: 'loading',\n makeDefaultLabel: 'make_default',\n mediumLabel: 'medium',\n meters: 'meters',\n miles: 'miles',\n min: 'min',\n monday: 'monday',\n monthLabel: 'month',\n moreLabel: 'more',\n navigateToSlide: 'navigate_to_slide',\n nextLabel: 'next',\n nextSlide: 'next_slide',\n nextBusinessDay: 'next_business_day',\n noLabel: 'no',\n okLabel: 'ok',\n openLabel: 'open',\n optional: 'optional',\n or: 'or',\n orFillInTheForm: 'or_fill_in_the_form',\n payLabel: 'pay',\n photoLabel: 'photo',\n pointsLabel: 'points',\n previewLabel: 'preview',\n previousLabel: 'previous',\n previousSlide: 'previous_slide',\n readMore: 'read_more',\n readLess: 'read_less',\n receiveLabel: 'receive',\n removeLabel: 'remove',\n resetCountdownLabel: 'reset_count_down',\n retryLabel: 'retry',\n reviewPrivacyNoticeLabel: 'review_privacy_notice',\n rewardPointLabel: 'reward_point',\n saturday: 'saturday',\n saveLabel: 'save',\n seeMore: 'see_more',\n selected: 'selected',\n selectLabel: 'select',\n show: 'show',\n send: 'send',\n shareLabel: 'share',\n strengthLabel: 'strength',\n strongLabel: 'strong',\n submitLabel: 'submit',\n sunday: 'sunday',\n thursday: 'thursday',\n tuesday: 'tuesday',\n unspecifiedLabel: 'unspecified',\n uploadLabel: 'upload',\n weakLabel: 'weak',\n wednesday: 'wednesday',\n withLabel: 'with',\n yearLabel: 'year',\n yesLabel: 'yes',\n welcomeLabel: 'welcome',\n todayLabel: 'today',\n tomorrow: 'tomorrow',\n me: 'me',\n someoneElse: 'someone_else',\n asap: 'asap',\n forLabel: 'for',\n fromLabel: 'from',\n toLabel: 'to',\n badLabel: 'bad',\n averageLabel: 'average',\n goodLabel: 'good',\n agreeLabel: 'agree',\n tryAgain: 'try_again',\n events: 'events',\n other: 'other'\n};\n","export const Loyalty = {\n receivedLoyaltyPointsMessage: 'received_loyalty_points',\n receiveLoyaltyPointsMessage: 'receive_loyalty_points',\n transactionSubTypeAnniversary: 'anniversary_bonus',\n transactionSubTypeAr: 'earned_from_auto_replenishment',\n transactionSubTypeBazaarVoice: 'earned_from_product_review',\n transactionSubTypeBv: 'earned_from_product_sub_review',\n transactionSubTypeBvReview: 'earned_from_writing_review',\n transactionSubTypeDiagnostic: 'earned_from_skin_care_diagnostic',\n transactionSubTypeDisenroll: 'clinique_smart_rewards_membership',\n transactionSubTypeEnrollment: 'earned_from_email_subscription',\n transactionSubTypeEnrollmentBonus: 'earned_from_joining_points',\n transactionSubTypeFacebook: 'earned_from_facebook_sharing',\n transactionSubTypeFoundationFinder: 'earned_from_foundation_finder',\n transactionSubTypeHistoricalPurchase: 'earned_from_historical_purchase',\n transactionSubTypeLiveChat: 'earned_from_live_chat',\n transactionSubTypeOnline: 'earned_from_online_purchase',\n transactionSubTypeOptinEmail: 'earned_from_optional_email_subscription',\n transactionSubTypeOptinSms: 'sms_subscription_bonus',\n transactionSubTypePinterest: 'earned_from_product_pinterest',\n transactionSubTypePintrest: 'earned_from_product_pinerest',\n transactionSubTypePpCarryover: 'pretty_smashcash_points',\n transactionSubTypeReferral: 'earned_from_refer_friend',\n transactionSubTypeReferralPurchase: 'earned_from_refer_friend_purchase',\n transactionSubTypeRetailPurchase: 'earned_from_instore_purchase',\n transactionSubTypeRetailer: 'earned_from_retailer_purchase',\n transactionSubTypeSkincare: 'earned_from_skincare',\n transactionSubTypeSocial1: 'social_share_bonus',\n transactionSubTypeStore: 'free_standing_store',\n transactionSubTypeTwitter: 'earned_from_twitter_sharing',\n transactionSubTypeYoutime: 'youtime_in_store',\n transactionTypeAdjustment: 'adjustment',\n transactionTypeAnniversary: 'anniversary_points_expired',\n transactionTypeCancellation: 'cancellation',\n transactionTypeCardIssued: 'egift_card_issued',\n transactionTypeCustomerService: 'customer_service',\n transactionTypeDisenroll: 'cancelled',\n transactionTypeExchange: 'exchange',\n transactionTypeMultiple: 'multiple_adjustment',\n transactionTypePurchase: 'online_purchase',\n transactionTypeReturn: 'return',\n transactionTypeReward: 'reward_points',\n transactionTypeUsed: 'points_used',\n transactionTypeEnrollment: 'enrollment',\n transactionTypeUpgrade: 'reached',\n transactionTypePointsToRedeem: 'points_to_redeem',\n transactionEventPendingOrder: 'pending_order'\n};\n","export const Offers = {\n offer_success: 'offer_success',\n offer_failure: 'offer_failure',\n offer_invalid: 'offer_invalid',\n offer_expired: 'offer_expired',\n offer_conflict: 'offer_conflict',\n offer_inapplicable: 'offer_inapplicable',\n best_discount_applied: 'best_discount_applied',\n offer_removed: 'offer_removed',\n samplesAndOffersLabel: 'samples_and_offers',\n congratulationsOffersLabel: 'congratulations_offer',\n qualifiedOffersLabel: 'qualified_offers_title',\n notQualifiedOffersLabel: 'not_qualified_offers_title',\n removeOfferLabel: 'remove_offer',\n applyOfferLabel: 'apply_offer',\n\n // offers Carousel\n addingLabel: 'adding',\n removingLabel: 'removing',\n\n //offer Code Module\n failedToApplyOffer: 'failed_to_apply_offer',\n offerApplied: 'offer_applied'\n};\n","export const Vto = {\n bestLabel: 'best',\n bestPairLabel: 'best_pair',\n bestShadeMessage: 'your_best_match',\n casualPairLabel: 'casual_pair',\n categoryCleanse: 'product_benefit_type_cleanse',\n categoryConcentrate: 'product_benefit_type_concentrate',\n categoryCream: 'product_benefit_type_cream',\n categoryEyeCare: 'product_benefit_type_eye_care',\n categoryMoisturize: 'product_benefit_type_moisturize',\n categoryRepair: 'product_benefit_type_repair',\n categorySerum: 'product_benefit_type_serum',\n categoryTreat: 'product_benefit_type_treat',\n coolerLabel: 'cooler',\n coolerPairLabel: 'cooler_pair',\n darkerLabel: 'darker',\n glamPairLabel: 'glam_pair',\n lighterLabel: 'lighter',\n removeMyMatch: 'remove_my_match',\n saveMyMatch: 'save_my_match',\n seeAllShadesLabel: 'see_all_shades',\n seeBestShadesLabel: 'see_best_shades',\n seePairDetailsLabel: 'see_pair_details',\n seePairShadesLabel: 'see_pair_shades',\n skinCareResultTitle: 'vto_skin_care_result_title',\n skinCareStartOver: 'vto_skin_care_start_over',\n surveyCtaLabel: 'survey_cta_label',\n surveyDisclaimer: 'survey_disclaimer',\n surveyEndLabel: 'survey_end_label',\n surveyQuestionOneLabel: 'survey_question_one_label',\n surveyQuestionOneDescriptionLeft: 'survey_question_one_description_left',\n surveyQuestionOneDescriptionRight: 'survey_question_one_description_right',\n surveyQuestionTwoLabel: 'survey_question_two_label',\n surveyQuestionTwoPlaceholder: 'survey_question_two_placeholder',\n useSafariToAccessCamera: 'use_safari_to_access_the_camera',\n vtoFoundationButtonLabel: 'find_your_shade',\n vtoMakeupButtonLabel: 'try_it_on',\n vtoSkinCareButton: 'vto_skin_care_button',\n vtoSkinCareResultButton: 'vto_skin_care_result_button',\n warmerLabel: 'warmer',\n warmerPairLabel: 'warmer_pair',\n yourCoolerMatchLabel: 'your_cooler_match',\n yourDarkerMatchLabel: 'your_darker_match',\n yourLighterMatchLabel: 'your_lighter_match',\n yourPerfectMatchLabel: 'your_perfect_match',\n yourWarmerMatchLabel: 'your_warmer_match'\n};\n","export const Product = {\n ascending: 'product_name_ascending',\n descending: 'product_name_descending',\n topRated: 'sort_top_rated',\n priceLowToHigh: 'sort_price_low_to_high',\n priceHighToLow: 'sort_price_high_to_low',\n orderByName: 'sort_product_name',\n orderByNameDropDownTitle: 'sort_by',\n outOfStockButtonLabel: 'temp_out_of_stock',\n soldOutButtonLabel: 'sold_out',\n comingSoonButtonLabel: 'coming_soon',\n shopNowButtonLabel: 'shop_now',\n ctaLinkLabel: 'product_details',\n productBadgeImageAlt: 'product_badge_image_alt',\n skuBadgeImageAlt: 'sku_badge_image_alt',\n productSizePickerLabel: 'choose_size',\n productDetailsAccordionLabel: 'details',\n productHowToUseAccordionLabel: 'how_to_use',\n productHowDoesItWorkAccordionLabel: 'how_does_it_work',\n productIngredientsAccordionLabel: 'ingredients',\n productKeyIngredientAccordionLabel: 'key_ingredient',\n productWhatItIsAccordionLabel: 'what_it_is',\n productWhatItDoesAccordionLabel: 'what_it_does',\n ingredientsDisclaimerMessage: 'ingredients_disclaimer',\n readReviewsLabel: 'read_reviews',\n sizeLabel: 'size',\n skinType: 'filter_skin_type',\n skinTone: 'filter_skin_tone',\n defaultPromoMessage: 'default_promo_message',\n sortByLabel: 'sort_by',\n texture: 'filter_texture',\n productSizeLabel: 'product_size',\n writeReviewLabel: 'write_review',\n quickViewButtonLabel: 'quick_view',\n overviewLabel: 'overview',\n benefitsLabel: 'benefits',\n whoItsForLabel: 'who_its_for',\n whatItIsLabel: 'what_it_is',\n whatItDoesLabel: 'what_it_does',\n greatToKnowLabel: 'great_to_know',\n keyIngredientsLabel: 'key_ingredients',\n finishLabel: 'finish',\n coverageLabel: 'coverage',\n skinTypeLabel: 'skin_type',\n horizontalFiltersTitle: 'horizontal_filters_title',\n productsItemLabel: 'products_item',\n seeProductsLabel: 'see_products',\n clearFiltersLabel: 'clear_filters',\n hideFiltersLabel: 'hide_filters',\n filtersLabel: 'filters',\n autoReplenishLabel: 'auto_replenish',\n selectFrequencyLabel: 'select_frequency',\n subscribeCopyLabel: 'subscribe_copy',\n subscribeLabel: 'subscribe',\n selectYourShadeLabel: 'select_your_shade',\n selectShadeLabel: 'select_shade',\n shadeLabel: 'shade',\n overOneShadeLabel: 'over_one_shade',\n overTwoShadesLabel: 'over_two_shades',\n overThreeShadesLabel: 'over_three_shades',\n overFourShadesLabel: 'over_four_shades',\n colorGroupLabel: 'color_group',\n undertoneLabel: 'undertone',\n tempOutOfStockLabel: 'temp_out_of_stock_title',\n itemIsTempOutOfStock: 'item_is_temp_out_of_stock',\n itemIsTempOutOfStockNotifyMe: 'item_is_temp_out_of_stock_notify_me',\n itemIsComingSoon: 'item_is_coming_soon',\n itemIsComingSoonNotifyMe: 'item_is_coming_soon_notify_me',\n itemIsSoldOut: 'item_is_sold_out',\n firstToWriteReviewLabel: 'first_to_write_review',\n selectASizeLabel: 'select_a_size',\n giftsFilterTitle: 'gifts_filter_title',\n applyFiltersLabel: 'apply_filters',\n filterByCategoryLabel: 'filter_by_category',\n filterByPriceLabel: 'filter_by_price',\n sheerCoverageLabel: 'sheer_coverage',\n mediumCoverageLabel: 'medium_coverage',\n fullCoverageLabel: 'full_coverage',\n matteFinishLabel: 'matte_finish',\n satinFinishLabel: 'satin_finish',\n shineFinishLabel: 'shine_finish',\n naturalFinishLabel: 'natural_finish',\n shimmerFinishLabel: 'shimmer_finish',\n categoriesAllLabel: 'categories_all',\n categoryCremeLabel: 'category_creme',\n categoryChromeLabel: 'category_chrome',\n categoryDeepLabel: 'category_deep',\n categoryLightLabel: 'category_light',\n categoryLimitedEditionLabel: 'category_limited_edition',\n categoryMediumLabel: 'category_medium',\n categoryMatteLabel: 'category_matte',\n categoryMatteFinishLabel: 'category_matte_finish',\n categoryMetallicLabel: 'category_metallic',\n categoryFoilFinishLabel: 'category_foil_finish',\n categoryShineLabel: 'category_shine',\n categorySparkleLabel: 'category_sparkle',\n categoryShimmerLabel: 'category_shimmer',\n categoryRedLabel: 'category_red',\n categoryPurpleLabel: 'category_purple',\n categoryOrangeLabel: 'category_orange',\n categoryNewLabel: 'category_new',\n categoryNudeLabel: 'category_nude',\n productQuantityLabel: 'product_quantity',\n resultsLabel: 'results',\n shadesLabel: 'shades',\n learnMoreLabel: 'learn_more',\n sensitiveSkinTypeLabel: 'sensitive_skin_type',\n veryDrySkinTypeLabel: 'very_dry_skin_type',\n drySkinTypeLabel: 'dry_skin_type',\n antiAgingSkinTypeLabel: 'anti_aging_skin_type',\n combinationSkinTypeLabel: 'combination_skin_type',\n oilySkinTypeLabel: 'oily_skin_type',\n normalSkinTypeLabel: 'normal_skin_type',\n numberOfShadesLabel: 'number_of_shades',\n violetColorFamilyLabel: 'violet_color_family',\n pinkColorFamilyLabel: 'pink_color_family',\n redColorFamilyLabel: 'red_color_family',\n nudeColorFamilyLabel: 'nude_color_family',\n fairColorFamilyLabel: 'fair_color_family',\n veryFairColorFamilyLabel: 'very_fair_color_family',\n mediumColorFamilyLabel: 'medium_color_family',\n deepColorFamilyLabel: 'deep_color_family',\n berryColorFamily: 'berry_color_family',\n brownColorFamily: 'brown_color_family',\n beigeColorFamily: 'beige_color_family',\n darkColorFamily: 'dark_color_family',\n greenColorFamily: 'green_color_family',\n greyColorFamily: 'grey_color_family',\n lightColorFamily: 'light_color_family',\n mediumFairColorFamily: 'medium_fair_color_family',\n moderateColorFamily: 'moderate_color_family',\n orangeColorFamily: 'orange_color_family',\n blueColorFamily: 'blue_color_family',\n purpleColorFamily: 'purple_color_family',\n otherColorFamily: 'other_color_family',\n yellowColorFamily: 'yellow_color_family',\n coolUndertoneLabel: 'cool_undertone',\n neutralUndertoneLabel: 'neutral_undertone',\n warmUndertoneLabel: 'warm_undertone',\n goldenUndertoneLabel: 'golden_undertone',\n installmentsLabel: 'installments',\n installmentsUnavailableLabel: 'installments_unavailable',\n installmentsModalLabel: 'installments_modal',\n autoReplenishMoreInformation: 'auto_replenish_more_information',\n crossSellsTitle: 'cross_sells_title',\n increaseProductQuantityLabel: 'increase_product_quantity',\n decreaseProductQuantityLabel: 'decrease_product_quantity',\n removeIconAriaLabel: 'remove_icon_aria_label',\n collapseIconAriaLabel: 'collapse_icon_aria_label',\n expandIconAriaLabel: 'expand_icon_aria_label',\n replenishmentServiceLabel: 'replenishment_service',\n aboveReplenishmentServiceLabel: 'above_replenishment_service',\n temporarilyOutOfStockLabel: 'temporarily_out_of_stock',\n engravingModalLabel: 'engraving_modal',\n engravingLink: 'engrave_link',\n olapicWidgetTitle: 'olapic_widget_title',\n olapicWidgetSubtitle: 'olapic_widget_subtitle',\n filterByLabel: 'filter_by_label',\n aFewLeftLabel: 'a_few_left',\n aFewLeftThresholdRange: 'a_few_left_threshold_range',\n onlyCountLeftLabel: 'only_count_left',\n onlyCountLeftThresholdLimit: 'only_count_left_threshold_limit',\n reviewsTabLabel: 'reviews',\n askAnswerTabsLabel: 'ask_answer',\n perfectFor: 'perfect_for',\n reviewsNumberLabel: 'reviews_number',\n shipsBy: 'ships_by',\n preorderNotAvailableMessage: 'preorder_not_available_message',\n availableOn: 'available_on',\n notifyWhenAvailable: 'notify_when_available',\n preOrder: 'pre_order',\n taxIncluded: 'tax_included',\n smartGiftButtonLabel: 'smartgift',\n smartGiftInfoTitle: 'smartgift_info_title',\n discountPercentLabel: 'discount_percent',\n loyaltyMessage: 'loyalty_message',\n loyaltyRangeMessage: 'loyalty_range_message',\n loyaltyLearnMoreMessage: 'loyalty_learn_more_message',\n loyaltyLearnMoreLink: 'loyalty_learn_more_link',\n discountedPricePerUnitMessage: 'discounted_price_per_unit_message',\n discountedPriceRangePercentMessage: 'discounted_price_range_percent_message',\n onSaleTodayLabel: 'on_sale_today',\n talkToAConsultantLabel: 'talk_to_a_consultant',\n allSizesLabel: 'all_sizes',\n benefitLabel: 'benefit',\n idealForLabel: 'ideal_for',\n luxuryCareForLabel: 'luxury_care_for',\n feelingLabel: 'feeling',\n fraganceTypeLabel: 'fragance_type',\n notesLabel: 'notes',\n applicatorStyleLabel: 'applicator_style',\n brushLabel: 'brush',\n colorImpactLabel: 'color_impact',\n formLabel: 'form',\n dimensionsLabel: 'dimensions',\n refillableLabel: 'refillable',\n formulaFactsLabel: 'formula_facts',\n giftSetLabel: 'gift_set',\n selectAnItemLabel: 'select_an_item',\n bestUsedByLabel: 'best_used_by'\n};\n","export const ProductAttributes = {\n buildableCoverageLabel: 'buildable_coverage',\n mediumfullCoverageLabel: 'mediumfull_coverage',\n mediumbuildableCoverageLabel: 'mediumbuildable_coverage',\n creamFinishLabel: 'cream_finish',\n dewyFinishLabel: 'dewy_finish',\n sheerFinishLabel: 'sheer_finish',\n metallicFinishLabel: 'metallic_finish',\n glossyFinishLabel: 'glossy_finish',\n glitterFinishLabel: 'glitter_finish',\n freshFinishLabel: 'fresh_finish',\n softFinishLabel: 'soft_finish',\n hydratingBenefitLabel: 'hydrating_benefit',\n lightweightBenefitLabel: 'lightweight_benefit',\n plumpingBenefitLabel: 'plumping_benefit',\n volumizingBenefitLabel: 'volumizing_benefit',\n waterproofBenefitLabel: 'waterproof_benefit',\n longLastingBenefitLabel: 'long_lasting_benefit',\n moisturizingBenefitLabel: 'moisturizing_benefit',\n spfBenefitLabel: 'spf_benefit',\n travelBenefitLabel: 'travel_benefit',\n alcoholFreeBenefitLabel: 'alcohol_free_benefit',\n brighteningBenefitLabel: 'brightening_benefit',\n makeupSettingBenefitLabel: 'makeup_setting_benefit',\n curlingBenefitLabel: 'curling_benefit',\n conditioningBenefitLabel: 'conditioning_benefit',\n lengtheningBenefitLabel: 'lengthening_benefit',\n thickeningBenefitLabel: 'thickening_benefit',\n naturalLookBenefitLabel: 'natural_look_benefit',\n frizzfightingBenefitLabel: 'frizzfighting_benefit',\n scalpcareBenefitLabel: 'scalpcare_benefit',\n detanglingBenefitLabel: 'detangling_benefit',\n '2nddayhairBenefitLabel': '2nddayhair_benefit',\n addsshineBenefitLabel: 'addsshine_benefit',\n softeningBenefitLabel: 'softening_benefit',\n smoothingBenefitLabel: 'smoothing_benefit',\n texturingBenefitLabel: 'texturing_benefit',\n soothingBenefitLabel: 'soothing_benefit',\n colorcorrectionBenefitLabel: 'colorcorrection_benefit',\n coverageBenefitLabel: 'coverage_benefit',\n antiwrinkleBenefitLabel: 'antiwrinkle_benefit',\n evenskintoneBenefitLabel: 'evenskintone_benefit',\n veganBenefitLabel: 'vegan_benefit',\n exfoliatingBenefitLabel: 'exfoliating_benefit',\n glutenfreeBenefitLabel: 'glutenfree_benefit',\n tintedBenefitLabel: 'tinted_benefit',\n oilfreeBenefitLabel: 'oilfree_benefit',\n depuffingBenefitLabel: 'depuffing_benefit',\n freeofsulfatesBenefitLabel: 'freeofsulfates_benefit',\n antiacneBenefitLabel: 'antiacne_benefit',\n cleansingBenefitLabel: 'cleansing_benefit',\n antipuffinessBenefitLabel: 'antipuffiness_benefit',\n oilcontrolBenefitLabel: 'oilcontrol_benefit',\n poresBenefitLabel: 'pores_benefit',\n reducingporesBenefitLabel: 'reducingpores_benefit',\n strengtheningBenefitLabel: 'strengthening_benefit',\n pollutionprotectionBenefitLabel: 'pollutionprotection_benefit',\n poreminimizingBenefitLabel: 'poreminimizing_benefit'\n};\n","export const Stores = {\n application: 'application',\n apply: 'apply',\n askInStore: 'ask_in_store',\n atLabel: 'at',\n available: 'available',\n availableAt: 'available_at',\n availableforZipCode: 'available_for_zipcode',\n bookAppointment: 'book_appointment',\n callForAvailability: 'call_for_availability',\n callForOrder: 'call_for_order',\n chooseAStore: 'choose_a_store',\n collectInStore: 'collect_in_store',\n complimentaryEngraving: 'complimentary_engraving',\n contactStore: 'contact_store',\n curbsideIsAvailable: 'curbside_is_available',\n curbsidePickupAvailableText: 'curbside_pickup_text',\n deliveryOptions: 'delivery_options',\n deselectStore: 'deselect_store',\n doorTypeAirportDutyFreeStore: 'airport_duty_free_store',\n doorTypeDepartmentStore: 'department_store',\n doorTypeDutyFreeStore: 'duty_free_store',\n doorTypeFreeStandingStore: 'free_standing_store',\n doorTypePopupStore: 'popup_store',\n editDelivery: 'edit_delivery',\n enterAddressPlaceholder: 'enter_full_address',\n enterAddressToSeeAvailabilityArea: 'enter_address_to_see_availability_area',\n enterAnotherFullAddress: 'enter_another_full_address',\n enterFullAddressToConfirm: 'enter_full_address_to_confirm',\n filters: 'filters',\n findInStore: 'find_in_store',\n findStore: 'find_store',\n getDirections: 'get_directions',\n goToDirectoryLabel: 'go_to_directory',\n hours: 'hours',\n inStorePickupAvailableLabel: 'in_store_pickup_available',\n inStorePickupToggleSubheader: 'order_online_pickup_in_store',\n inStorePickupToggleTitle: 'in_store_pickup',\n inStoreServices: 'in_store_services',\n invalidZipcodeOrAddress: 'enter_zipcode_or_address',\n locations: 'stores_found',\n locationSearchInputPlaceholder: 'enter_full_address',\n moveTheMap: 'move_the_map',\n nearby: 'nearby',\n noFilterResultMessage: 'no_filter_result_message',\n notAvailable: 'not_available',\n onLabel: 'on',\n openNow: 'open_now',\n openNowToggleSubheader: 'stores_that_are_open_now',\n openTodayUntil: 'open_today_until',\n openUntil: 'open_until',\n otherNearbyLocations: 'other_neraby_locations',\n pickupFromStoreWithAllItems: 'pickup_from_store_with_all_items_available',\n pickUpInStore: 'pick_up_in_store',\n pickUpInStoreAddItemsToBagDescription: 'find_and_add_to_bag',\n pickUpInStoreAddItemsToBagTitle: 'add_items_to_bag',\n pickUpInStoreCheckoutDescription: 'click_buy_online_pick_up_in_store_and_select',\n pickUpInStoreCheckoutTitle: 'checkout',\n pickUpInStoreInformationDescription: 'currently_available_at',\n pickUpInStoreInformationTitle: 'buy_online_pick_up_in_store',\n pickUpInStoreNotificationDescription: 'pick_up_in_store_info_third_step_description',\n pickUpInStoreNotificationTitle: 'notification_and_pick_up',\n pickUpInStoreWantItToday: 'want_it_today',\n pickupNotAvailable: 'pickup_not_available',\n sddCheckoutDescription: 'same_day_delivery_info_second_step_description',\n sddCheckoutTitle: 'same_day_delivery_info_second_step_title',\n sddInformationDescription: 'available_for_certain_products_and_location',\n sddMightNotBeAvailable: 'sdd_might_not_be_available_for_zipcode_use_address',\n sddNotificationDescription: 'same_day_delivery_info_third_step_description',\n sddNotificationTitle: 'same_day_delivery_notification',\n searchPlaceholder: 'search_placeholder',\n searchThisArea: 'serach_this_area',\n seeAvailability: 'see_availability',\n selectedDeliveryMethod: 'selected_delivery_method',\n selectedStore: 'selected_store',\n selectFollowingToContinue: 'select_following_to_continue',\n serviceAvailableLabel: 'service_available',\n servicesAvailableToggleSubheader: 'in_store_appointments',\n servicesAvailableToggleTitle: 'services_available',\n shipItemsToAddress: 'ship_items_to_address',\n showMap: 'show_map',\n someItemsNotAvailablePickup: 'some_items_not_available_for_pickup',\n storeClosed: 'store_closed',\n storeClosingHour: 'store_closing_hour',\n storeDetails: 'store_details',\n storeDetailsMapAlt: 'static_map_alt_text',\n storeDirectory: 'store_directory',\n storeLabel: 'store',\n storeList: 'store_list',\n storeListTabTitle: 'store_list_tab_title',\n storeLocator: 'store_locator',\n storeMapTabTitle: 'store_map_tab_title',\n storeOpen: 'store_open',\n storeOpeningHour: 'store_opening_hour',\n storeOpeningHourFriday: 'opens_on_friday',\n storeOpeningHourMonday: 'opens_on_monday',\n storeOpeningHourSaturday: 'opens_on_saturday',\n storeOpeningHourSunday: 'opens_on_sunday',\n storeOpeningHourThursday: 'opens_on_thursday',\n storeOpeningHourToday: 'opens_today',\n storeOpeningHourTuesday: 'opens_on_tuesday',\n storeOpeningHourWednesday: 'opens_on_wednesday',\n storeOpeningIsClosed: 'store_is_closed',\n stores: 'stores',\n storesDirectoryCTA: 'stores_directory_cta',\n storesDirectorySubtitle: 'stores_directory_subtitle',\n storesDirectoryTitle: 'stores_directory_title',\n storeServicesSubtitle: 'in_store_services_subtitle',\n storeServicesTitle: 'in_store_services_title',\n storesFound: 'stores_found',\n storesHome: 'stores_home',\n storesLandingSubtitle: 'stores_landing_subtitle',\n storesLandingTitle: 'stores_landing_title',\n storesNext: 'stores_next',\n storesWithAvailableItems: 'only_stores_with_available_items',\n today: 'today',\n typeOfStore: 'type_of_store',\n viewAmountUpcomingEvents: 'view_amount_upcoming_events',\n weCouldNotFindAnyStoresInThisArea: 'we_could_not_find_any_stores_in_this_area',\n yourStore: 'your_store'\n};\n","export const User = {\n emailLabel: 'email',\n usernameLabel: 'username',\n firstNameLabel: 'first_name',\n lastNameLabel: 'last_name',\n firstNameAlternateLabel: 'first_name_alternate',\n lastNameAlternateLabel: 'last_name_alternate',\n fullNameLabel: 'full_name',\n birthdayLabel: 'birthday',\n birthdayOptionalLabel: 'birthday_optional',\n salutationLabel: 'salutation',\n birthYearLabel: 'birth_year',\n birthMonthLabel: 'birth_month',\n birthDayLabel: 'birth_day',\n ageGroupLabel: 'age_group',\n customerLocationLabel: 'customer_location',\n countryCodeLabel: 'country_code',\n missSalutation: 'miss_salutation',\n msSalutation: 'ms_salutation',\n mrsSalutation: 'mrs_salutation',\n mrSalutation: 'mr_salutation',\n sexLabel: 'sex',\n areaCodeLabel: 'area_code',\n homePhoneLabel: 'home_phone',\n mobileEmailLabel: 'mobile_email',\n primaryPhoneLabel: 'primary_phone',\n secondaryPhoneLabel: 'secondary_phone'\n};\n","export const Search = {\n searchButtonLabel: 'search',\n searchBoxLabel: 'search',\n searchPlaceholderLabel: 'placeholder',\n searchClearLabel: 'search_clear',\n bestSellersProductsTitle: 'best_sellers',\n moreResultsFoundMessage: 'more_results_found',\n noResultsMessage: 'no_results',\n resultsFoundMessage: 'results_found',\n resultsFoundMessageOverlay: 'results_found_overlay',\n viewAllResultsLabel: 'view_all_results',\n inCategoryLabel: 'in_category',\n verticalFiltersTitle: 'vertical_filters_title',\n filteredBy: 'filtered_by',\n clearAll: 'search_clear_filters',\n suggestedTopFilters: 'suggested_top_filters',\n searchAdjustmentMessage: 'search_adjustment_message',\n voiceMicrophoneAccess: 'voice_microphone_access',\n voiceSearchFailureTitle: 'voice_search_failure_title',\n voiceSearchFailureParagraph: 'voice_search_failure_paragraph',\n voiceListenTitle: 'voice_listen_title',\n voiceListenParagraph: 'voice_listen_paragraph',\n voiceListenTermsExample: 'voice_listen_terms_example',\n speakNow: 'speak_now',\n voiceSearchingTitle: 'voice_searching_title',\n sortTopRated: 'sort_top_rated',\n sortPriceLowHigh: 'sort_price_low_high',\n sortPriceHighLow: 'sort_price_high_low',\n mobileFiltersButton: 'mobile_filters_button',\n horizontalFiltersTitle: 'horizontal_filters_title',\n trendingTermsTitle: 'trending_terms_title',\n trendingResultsTitle: 'trending_results_title',\n productsTitle: 'products_title',\n storiesTitle: 'stories_title',\n readStory: 'read_story',\n voiceSearchIconLabel: 'voice_search_icon_label'\n};\n","export const DeliveryTout = {\n sdSubtitle: 'sd_subtitle',\n sdCopy: 'sd_copy',\n sdIcon: 'sd_icon',\n sdShippingTimes: 'sd_shipping_times',\n nddSubtitle: 'ndd_subtitle',\n nddCopy: 'ndd_copy',\n nddIcon: 'ndd_icon',\n nddShippingTimes: 'ndd_shipping_times',\n sddSubtitle: 'sdd_subtitle',\n sddCopy: 'sdd_copy',\n sddIcon: 'sdd_icon',\n sddShippingTimes: 'sdd_shipping_times',\n nmddSubtitle: 'nmdd_subtitle',\n nmddCopy: 'nmdd_copy',\n nmddIcon: 'nmdd_icon',\n nmddShippingTimes: 'nmdd_shipping_times',\n samdSubtitle: 'samd_subtitle',\n samdCopy: 'samd_copy',\n samdIcon: 'samd_icon',\n samdShippingTimes: 'samd_shipping_times',\n ccdSubtitle: 'ccd_subtitle',\n ccdCopy: 'ccd_copy',\n ccdIcon: 'ccd_icon',\n ccdShippingTimes: 'ccd_shipping_times',\n shippingAndHandlingTitle: 'shipping_and_handling_title',\n shippingAndHandlingSubtitle: 'shipping_and_handling_subtitle',\n shippingInformationTitle: 'shipping_information_title',\n shippingPopUpCopy: 'shipping_pop_up_copy',\n shipMethodPopUpTitle: 'ship_method_popup_title',\n costPopUpTitle: 'cost_popup_title',\n shippingTimeFrameTitle: 'shipping_time_frame_title',\n otherLocationsTitle: 'other_locations_title',\n otherLocationsCopy: 'other_locations_copy'\n};\n","export const Orders = {\n trackMyOrder: 'track_my_order',\n trackMyOrderGuidance: 'track_my_order_guidance',\n pleaseInputYourOrderNumber: 'please_input_your_order_number',\n trackOrder: 'track_order',\n\n orderProcessing: 'order_processing',\n yourOrderIsProcessing: 'your_order_is_processing',\n orderStatusProcessingInstruction: 'order_status_processing_instruction',\n orderStatusProcessingMessage: 'order_status_processing_message',\n yourOrderIsNowOnBackorder: 'your_order_is_now_on_backorder',\n\n atWarehouse: 'at_warehouse',\n yourOrderIsAtWarehouse: 'your_order_is_at_warehouse',\n orderStatusAtWarehouseInstruction: 'order_status_at_warehouse_instruction',\n orderStatusAtWarehouseMessage: 'order_status_at_warehouse_message',\n\n shipped: 'shipped',\n yourOrderIsShipped: 'your_order_is_shipped',\n orderStatusShippedInstruction: 'order_status_shipped_instruction',\n orderStatusShippedMessage: 'order_status_shipped_message',\n orderStatusPartiallyShippedMessage: 'your_order_is_partially_shipped',\n orderStatusOutForDeliveryShippedMessage: 'your_order_is_out_for_delivery',\n\n delivered: 'delivered',\n yourOrderIsDelivered: 'your_order_is_delivered',\n orderStatusDeliveredInstruction: 'order_status_delivered_instruction',\n orderStatusDeliveredMessage: 'order_status_delivered_message',\n\n returned: 'returned',\n yourOrderIsReturned: 'your_order_is_returned',\n yourPartialOrderIsReturned: 'your_partial_order_is_returned',\n orderStatusReturnedInstruction: 'order_status_returned_instruction',\n orderStatusReturnedMessage: 'order_has_been_returned_by_customer',\n orderStatusPartialReturnedMessage: 'order_has_been_partial_returned_by_customer',\n\n returnInProgress: 'return_in_progress',\n yourOrderIsReturnInProgress: 'your_order_is_return_in_progress',\n yourPartialOrderIsReturnInProgress: 'your_partial_order_is_return_in_progress',\n orderStatusReturnInProgressInstruction: 'order_status_return_in_progress_instruction',\n orderStatusReturnInProgressMessage: 'order_status_return_in_progress_message',\n orderStatusPartialReturnInProgressMessage: 'order_status_partial_return_in_progress_message',\n\n returnInitiated: 'return_initiated',\n yourOrderIsReturnInitiated: 'your_order_is_return_initiated',\n orderStatusReturnInitiatedInstruction: 'order_status_return_initiated_instruction',\n orderHasBeenReturnInitiated: 'order_has_been_return_initiated',\n\n returnShipped: 'return_shipped',\n yourOrderIsReturnToShipped: 'your_order_is_return_to_shipped',\n orderStatusReturnToShippedInstruction: 'order_status_return_to_shipped_instruction',\n orderHasBeenReturnToShipped: 'order_has_been_return_to_shipped',\n\n returnReceived: 'return_received',\n yourOrderIsReturnReceived: 'your_order_is_return_received',\n orderStatusReturnReceivedInstruction: 'order_status_return_received_instruction',\n orderHasBeenReturnReceived: 'order_has_been_return_received',\n\n unableToDeliver: 'unable_to_deliver',\n yourOrderIsUnableToDeliver: 'your_order_is_unable_to_deliver',\n orderStatusUnableToDeliverInstruction: 'order_status_unable_to_deliver_instruction',\n orderHasBeenUnableToDeliver: 'order_has_been_unable_to_deliver',\n\n cancelled: 'cancelled',\n yourOrderIsCancelled: 'your_order_is_cancelled',\n orderStatusCancelledInstruction: 'order_status_cancelled_instruction',\n orderStatusCancelledMessage: 'order_status_cancelled_message',\n orderStatusRemorseCancelledMessage: 'your_order_is_cancelled_by_remorse',\n orderStatusCustomerServiceCancelledMessage: 'your_order_is_cancelled_by_customer_service',\n\n delayed: 'delayed',\n yourOrderIsDelayed: 'your_order_is_delayed',\n orderStatusDelayedInstruction: 'order_status_delayed_instruction',\n orderStatusDelayedMessage: 'order_has_been_delayed_to_shipped',\n\n orderNumberInvalidErrorMessage: 'order_number_invalid',\n noOrderFoundErrorMessage: 'no_order_found',\n orderTrackingGenericErrorMessage: 'order_tracking_generic_error',\n\n deliveryMethodLabel: 'delivery_method',\n orderStatusExplainedLabel: 'order_status_explained',\n shippingInformationLabel: 'shipping_information',\n carrierNameLabel: 'carrier_name',\n shippedDateLabel: 'shipped_date',\n trackingNumberLabel: 'tracking_number',\n seeDeliveryDetails: 'see_delivery_details',\n\n orderNumberTooltipText: 'order_number_information',\n orderDetails: 'order_details',\n yourOrder: 'your_order',\n orderStatus: 'order_status',\n estimatedDelivery: 'estimated_delivery',\n deliveredOn: 'delivered_on',\n awaitingCarrierPickUp : 'awaiting_carrier_pick_up',\n needHelp: 'need_help',\n yourOrderArriveInSeparateBoxes: 'your_order_arrive_in_separate_boxes',\n orderNumberLabelForPartialShipment: 'order_number_label_for_partial_shipment'\n\n};\n","export const Gifting = {\n // Gift Wrap\n addGiftWrap: 'gift_wrap_add',\n wrapAllTogether: 'gift_wrap_all_together',\n wrapAllIndividually: 'gift_wrap_all_individually',\n noGiftWrap: 'gift_wrap_no_wrap'\n};\n","import { root } from '@estee/elc-universal-utils';\nimport { ELCLogger, TriggerType } from '@estee/elc-logging';\nimport { ITranslationsCollection, ITranslationsCollections } from '@estee/elc-service';\nimport { TranslationsApiSdk } from '~api/TranslationsApiSdk';\nimport { ConfigStore } from '~setup/ConfigStore';\nimport {\n generateLegacyFormat,\n getTranslationsMap,\n translationsCollections\n} from '../translation-mappings';\nimport { diContainer } from '~setup/diContainer';\nimport serviceNames from '~setup/TranslationsService';\n\nconst { name, version } = __serviceInfo__;\n\nexport interface ITranslationRepositoryConfig {\n configStore: ConfigStore;\n}\n\nexport class TranslationsRepository {\n private translations: ITranslationsCollections = {};\n private translationsApiSdk: TranslationsApiSdk;\n private readonly translationMapping: ITranslationsCollection;\n private config: ITranslationRepositoryConfig;\n private logger: ELCLogger = new ELCLogger({\n serviceName: name,\n environment: root.env,\n buid: root.buid,\n serviceVersion: version\n });\n private windowTranslations: Promise;\n\n constructor() {\n this.translationsApiSdk = diContainer.get(serviceNames.translationsApiSdk);\n this.translationMapping = getTranslationsMap();\n this.config = {\n configStore: diContainer.get(serviceNames.configStore)\n };\n this.windowTranslations = this.processTranslationsFromWindow().catch(error => {\n this.logger.error({\n triggerType: TriggerType.api,\n message: 'Error getting translations from window',\n payload: { error }\n });\n\n return this.translations;\n });\n }\n\n private processTranslationsFromWindow = async () => {\n // Load collections from window.site.translations, if available\n let data = this.loadFromWindow;\n\n if (Object.keys(data).length === 0) {\n // Load missing collections from the API and keep them in memory\n data = await this.loadFromApi(Object.keys(translationsCollections));\n root.site = { translations: data };\n }\n\n this.setTranslations(data);\n\n return data;\n };\n\n /**\n * Get translations for the query provider service\n *\n * @param fieldsRequested Fields to retrieve\n *\n * @return Regular object of key/value pairs with translations\n */\n public getTranslations = async (fieldsRequested: string[]): Promise<{}> => {\n fieldsRequested.sort();\n\n if (fieldsRequested.length === 0) {\n const error = new Error('Requested translations fields are empty');\n this.logger.error({\n message: error.message,\n triggerType: TriggerType.translation,\n payload: {\n error\n }\n });\n\n return {};\n }\n\n await this.hydrateTranslations(fieldsRequested);\n\n return fieldsRequested.reduce((accumulator: ITranslationsCollection, field: string) => {\n Object.defineProperty(accumulator, field, {\n value: this.getFieldValue(field),\n writable: false,\n enumerable: true\n });\n\n return accumulator;\n }, {});\n };\n\n /**\n * Given a field lookup key (ex. 'product.add_to_bag'), get the hydrated\n * value from the persistent data storage\n *\n * @param field Field lookup key\n */\n private getFieldValue = (field: string): string => {\n const { translations } = this;\n const fieldMap = field in this.translationMapping ? this.translationMapping[field] : false;\n\n if (!fieldMap) {\n const error = new Error(`Translation field ${field} not found`);\n this.logger.warning({\n message: error.message,\n triggerType: TriggerType.translation,\n payload: {\n error\n }\n });\n\n return '';\n }\n\n const [collectionName, legacyFieldName] = fieldMap.split('.');\n if (collectionName in translations && legacyFieldName in translations[collectionName]) {\n return translations[collectionName][legacyFieldName];\n }\n\n return '';\n };\n\n /**\n * Central method of hydrating translations from multiple sources\n *\n * @param fieldsRequested Field names to retrieve\n */\n private hydrateTranslations = async (fieldsRequested: string[]): Promise => {\n const payload = generateLegacyFormat(fieldsRequested, this.translationMapping);\n\n // Use the payload to set the initial translations dataset\n this.setTranslations(payload);\n\n // In case fetch hasn't finished yet\n const windowTranslations = await this.windowTranslations;\n this.setTranslations(windowTranslations);\n\n // Do final cleanup on the translations datasets\n const data = this.cleanTranslations();\n this.setTranslations(data);\n };\n\n /**\n * Hydrate the translations given a new legacy format dataset\n */\n private setTranslations(data: ITranslationsCollections): void {\n Object.entries(data).forEach(\n ([collectionName, collectionValue]) => {\n Object.defineProperty(this.translations, collectionName, {\n value: {\n ...this.translations[collectionName],\n ...collectionValue\n },\n writable: true,\n enumerable: true\n });\n }\n );\n }\n\n private addDefaultVals(collectionName: string, collection: ITranslationsCollection) {\n const { configStore } = this.config;\n const showPlaceholder =\n configStore.config && configStore.config.showTranslationsPlaceholder !== false;\n\n // Add \":: ::\" values to any missing items based on AppEcomm config\n return Object.entries(collection).reduce(\n (accumulator, [collectionKey, collectionValue]\n ) => {\n if (!collectionValue) {\n Object.defineProperty(accumulator, collectionKey, {\n value: showPlaceholder ? `::${collectionName}.${collectionKey}::` : '',\n writable: true,\n enumerable: true\n });\n }\n\n return accumulator;\n }, {});\n }\n\n /**\n * Helper function to clean up empty translation strings\n * This replaces any blank values with \":: ::\"\n */\n private cleanTranslations(): ITranslationsCollections {\n return Object.entries(this.translations).reduce(\n (accumulator: ITranslationsCollections, [collectionName, collectionValue]) => {\n const newCollection = (\n this.addDefaultVals(collectionName, collectionValue)\n );\n\n accumulator[collectionName] = {\n ...collectionValue,\n ...newCollection\n };\n\n return accumulator;\n },\n {}\n );\n }\n\n /**\n * Load translations from site.translations.\n * Note: no need to pass the array of collections here since\n * we just hydrate with all data.\n */\n get loadFromWindow(): ITranslationsCollections {\n return (root && root.site && root.site.translations) || {};\n }\n\n /**\n * Load translations using the API when all other options have been exhausted\n *\n * @param collections Array of collection names\n */\n private loadFromApi = (collections: string[]) => {\n return this.translationsApiSdk.fetchTranslations(collections);\n };\n}\n","import { Container } from 'hypo-container';\nimport { HttpTransport } from '@estee/elc-http-transport';\nimport { ServiceManager } from '@estee/elc-service';\nimport { IAppConfig } from '@estee/elc-universal-utils';\nimport { TranslationsApiSdk } from '~api/TranslationsApiSdk';\nimport { ConfigStore } from './ConfigStore';\nimport { TranslationsRepository } from '~repositories/TranslationsRepository';\nimport serviceNames, { TranslationsService } from './TranslationsService';\nimport { ServiceBusController } from './ServiceBusController';\n\nexport const diContainer = new Container();\n\nconst setConfig = (configJSON: IAppConfig) => {\n diContainer.config = configJSON;\n};\n\ndiContainer\n .register(\n serviceNames.configStore,\n diContainer.factory((c) => new ConfigStore(c.config))\n )\n .register(serviceNames.httpTransport, (c) => {\n const configStore = c.get(serviceNames.configStore);\n const httpTransport = new HttpTransport();\n httpTransport.setBaseUrl(configStore.baseUrl);\n\n return httpTransport;\n })\n .register(serviceNames.translationsApiSdk, (c) => {\n const configStore = c.get(serviceNames.configStore);\n const httpTransport = c.get(serviceNames.httpTransport);\n const config = {\n businessUnitId: configStore.config.businessUnitId,\n httpTransport,\n drupalDomain: configStore.config.drupalDomain || ''\n };\n\n return new TranslationsApiSdk(config);\n })\n .register(serviceNames.translationsRepository, () => new TranslationsRepository())\n .register(\n serviceNames.serviceBusController,\n (c) => new ServiceBusController(c.get(serviceNames.translationsRepository))\n )\n .register(\n serviceNames.translationsService,\n (c) =>\n new TranslationsService((config: IAppConfig) => {\n setConfig(config);\n\n return c.get(serviceNames.serviceBusController);\n })\n );\n\nexport const serviceStarter = ServiceManager.startService;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* Active `debug` instances.\n\t*/\n\tcreateDebug.instances = [];\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn match;\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.enabled = createDebug.enabled(namespace);\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.destroy = destroy;\n\t\tdebug.extend = extend;\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\tcreateDebug.instances.push(debug);\n\n\t\treturn debug;\n\t}\n\n\tfunction destroy() {\n\t\tconst index = createDebug.instances.indexOf(this);\n\t\tif (index !== -1) {\n\t\t\tcreateDebug.instances.splice(index, 1);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0; i < createDebug.instances.length; i++) {\n\t\t\tconst instance = createDebug.instances[i];\n\t\t\tinstance.enabled = createDebug.enabled(instance.namespace);\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\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","module.exports = ElcServiceBus;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\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};","/* eslint-disable no-restricted-syntax */\nimport { setupServiceInfo, getModuleFederatedName } from '@estee/elc-universal-utils';\nimport { ServiceManager } from '@estee/elc-service';\nimport serviceNames, { TranslationsService } from '~setup/TranslationsService';\nimport '~setup/ServiceBusController';\nimport '~setup/diContainer';\n\nsetupServiceInfo(__serviceInfo__);\nconst { name, version } = __serviceInfo__;\n\nTranslationsService.setViews(name, getModuleFederatedName(name), version, []);\n\nServiceManager.setServiceStartParams({\n serviceName: name,\n diContainerImport: () => import('~setup/diContainer'),\n serviceKey: serviceNames.translationsService\n});\n","var moduleMap = {\n\t\"./diContainer\": () => {\n\t\treturn Promise.resolve().then(() => (() => ((__webpack_require__(\"./src/service-setup/diContainer.tsx\")))));\n\t}\n};\nvar get = (module, getScope) => {\n\t__webpack_require__.R = getScope;\n\tgetScope = (\n\t\t__webpack_require__.o(moduleMap, module)\n\t\t\t? moduleMap[module]()\n\t\t\t: Promise.resolve().then(() => {\n\t\t\t\tthrow new Error('Module \"' + module + '\" does not exist in container.');\n\t\t\t})\n\t);\n\t__webpack_require__.R = undefined;\n\treturn getScope;\n};\nvar init = (shareScope, initScope) => {\n\tif (!__webpack_require__.S) return;\n\tvar oldScope = __webpack_require__.S[\"default\"];\n\tvar name = \"default\"\n\tif(oldScope && oldScope !== shareScope) throw new Error(\"Container initialization failed as it has already been initialized with a different share scope\");\n\t__webpack_require__.S[name] = shareScope;\n\treturn __webpack_require__.I(name, initScope);\n};\n\n// This exports getters to disallow modifications\n__webpack_require__.d(exports, {\n\tget: () => (get),\n\tinit: () => (init)\n});"],"names":["exports","formatArgs","args","this","useColors","namespace","module","humanize","diff","c","color","splice","index","lastC","replace","match","save","namespaces","storage","setItem","removeItem","error","load","r","getItem","process","DEBUG","window","type","__nwjs","navigator","userAgent","toLowerCase","document","documentElement","style","WebkitAppearance","console","firebug","exception","table","parseInt","RegExp","$1","localStorage","localstorage","colors","log","debug","formatters","j","v","JSON","stringify","message","env","createDebug","prevTime","enabled","self","curr","Number","Date","ms","prev","coerce","unshift","format","formatter","val","call","apply","selectColor","destroy","extend","init","instances","push","indexOf","delimiter","newDebug","toNamespace","regexp","toString","substring","length","default","Error","stack","disable","names","map","skips","join","enable","i","split","len","substr","instance","name","test","Object","keys","forEach","key","hash","charCodeAt","Math","abs","isString","value","VALIDATORS","buid","Boolean","context","environment","level","serviceName","serviceVersion","triggerType","LoggerApiSDK","loggingServiceUrl","queue","lastTimeExecuted","now","frontendLogger","addLogToQueue","schedulePendingEvents","isRequestIdleCallbackScheduled","processPendingLogs","url","body","catch","generateRequestBody","fullData","config","logdata","payload","payloadServiceName","payloadServiceVersion","configServiceName","configServiceVersion","configBuid","configEnvironment","stringifiedError","getOwnPropertyNames","date","toUTCString","siteUrl","sendLog","requestBody","isServiceEnabled","loggedServices","isEnabled","reduce","acc","validator","requestValue","every","validate","TriggerType","ELCLogger","constructor","errorDebugger","enhanceLogData","isProd","info","infoDebugger","warning","warningDebugger","event","eventDebugger","query","queryDebugger","command","commandDebugger","triggerSource","logger","e","api","ServiceManagerClass","ecommStarted","getContainer","diContainer","containerImport","handleServiceBusError","serviceBusBaseClass","serviceBusControllerKey","getServiceBusController","serviceBus","startService","get","setServiceStartParams","diContainerImport","serviceKey","getServiceBusControllerMethod","functionName","setDecoratorOnFunction","decorator","triggerKey","__proto__","setDecoratorOnProperty","keyName","queryName","defineProperty","configurable","enumerable","set","then","srvBusController","setEcommHasStarted","onStart","cb","ecommConfig","serviceHasStarted","service","serviceConfig","serviceQueries","start","emit","events","err","startPromise","Promise","resolve","reject","timeoutId","setInterval","clearInterval","getController","controllerKey","method","isStarted","on","replay","ServiceManager","g","setupServiceInfo","serviceInfo","rest","ISandboxEnvironment","getSandboxEnvironment","urlParts","location","hostname","LIVE","FEATURE","DEV","STAGE","CMS","PERSONAL","filter","part","includes","getModuleFederatedName","BrowserStorage","cookie","daysOrDate","expires","nameEQ","ca","charAt","storageKey","getCookie","eraseCookie","setCookie","storagePolling","callBack","storageValue","latestValue","ServiceBusController","translationsRepository","loadTranslations","getTranslations","queryProvider","noop","version","TranslationsService","serviceInitializer","views","initializeService","appConfig","initializer","serviceRegistry","businessUnitId","super","configStore","httpTransport","translationsApiSdk","translationsService","serviceBusController","ElcRuntime","HypoContainer","HttpTransport","global","PRODUCTION","AUTHORIZATION_HEADER_NAME","API_HOST_COOKIE","API_AUTH_COOKIE","DrupalApi","delete","response","data","reponseHeaders","handleError","debounceInterval","bypassCache","patch","post","put","requestType","originalPayload","subdomain","addHeader","header","addGlobalHeaders","removeHeader","headerName","removeGlobalHeader","setBearerToken","bearerToken","fetch","headers","combinedHeaders","getHeaders","useApiCookies","getApiHost","getApiAuth","displayMessages","drupalDomain","apiHost","channel","getChannel","revTag","getRevTag","warn","isLocalhost","isAutotest","Authorization","Buffer","from","host","auth","revisionTag","TranslationsApiSdk","translationsApiBasePath","fetchTranslations","getApiUrl","sort","p","cleanPayload","doCleanRequestPayload","tag","extras","mobx","ConfigStore","updateConfig","observable","action","translationsCollections","elc_account","passwordLabel","signUpLabel","signUpTabTitle","signUpTitle","termsAndConditionsLabel","emailSubscriptionLabel","emailSubscriptionDisclaimer","existingAccountLabel","signInLabel","signInTabTitle","signInTitle","signOutLabel","continueAsGuestLabel","continueAsGuestTabTitle","continueAsGuestTitle","guestSignInGdprText","addToFavoritesLabel","addedToFavoritesLabel","replenishmentLabel","oneTimeOrderLabel","autoReplenishLabel","signInSignUpTitleLabel","showPasswordLabel","forgotPasswordLinkAction","forgotPasswordLabel","forgotPasswordActionLabel","joinNow","typeBirthdayMonth","typeBirthdayDay","yourBirthday","loyaltyEnrolmentTermsAgreement","passwordLengthRequirementLabel","passwordLowerCharacterLabel","passwordUpperCharacterLabel","passwordSpecialCharacterLabel","passwordNumberRequirementLabel","passwordStrength","passwordStrengthRecommendation","passwordStrengthRecommendationTitle","forgotPasswordTitle","forgotPasswordNavTitle","forgotPasswordNavSubtitle","forgotPasswordSmsTitle","forgotPasswordSmsSubtitle","sendOtpBySms","oneTimePassword","switchVerificationMethod","verifyByEmail","forgotPasswordSubtitle","backToSignInLabel","backToSignUpLabel","backToSiteLabel","backToForgotPasswordEmailLabel","forgotPasswordCheckEmailQuestion","forgotPasswordResetTitle","forgotPasswordResetDescription","forgotPasswordResetCheckEmail","resetPasswordTitle","resetPasswordSubtitle","resetPasswordEmailAddress","resetPasswordNewPasswordLabel","resetPasswordRetypePasswordLabel","resetPasswordActionLabel","resetPasswordAgainLabel","verifyEmailTitle","confirmEmailLinkExpiredLabel","expiredLinkCustomerServiceTitle","expiredLinkCustomerServiceMessage","sessionExpiredTitle","sessionExpiredDescription","chooseAnotherDefaultAddressTitle","confirmNewDefaultAddressTitle","setDefaultAddressLabel","forgotPasswordGDPRText","emailConfirmedLabel","confirmEmailAddressLabel","confirmEmailForFullAccessLabel","emailNotConfirmedLabel","changeEmailTitle","changeEmailSubtitle","currentEmailLabel","retypeNewEmailLabel","newEmailLabel","changeEmailDisclaimerLabel","validEmailLabel","chooseNewEmailLabel","confirmEmailLabel","resendConfirmationLabel","currentPasswordLabel","emailChangedConfirmationLabel","pleaseCheckYourInboxLabel","emailConfirmationTitle","changePasswordTitle","changePasswordSubtitle","newPasswordLabel","retypePasswordLabel","passwordChangedConfirmationLabel","passwordChangedLabel","firstLineAddressLabel","secondLineAddressLabel","thirdLineAddress","fourthLineAddress","fifthLineAddress","countryLabel","zipCodeLabel","cityLabel","suburbLabel","stateLabel","mobileNumberLabel","smsValidationSent","defaultAddressLabel","companyNameLabel","nipLabel","addNewAddress","newAddressLabel","editAddressTitle","editCheckoutAddressTitle","deleteAddressTitle","deleteAddressMessage","deleteDefaultAddressMessage","changeImage","uploadPhotoInstructions","uploadPhotoRecommendations","editProfileTitle","uploadPhotoTitle","accountSettingsTitle","viewUserProfileTitle","viewUserAccountInformationTitle","addressBookTitle","updateEmailGDPRText","updateAddressGDPRText","editUserGDPRText","signUpGDPRText","privacyPolicyDisclaimerLabel","paymentInformation","logoutLabel","welcomeBack","loyaltyRewardPoints","loyaltyRewardPointsAvailable","anniversaryDate","loyaltyTier1","loyaltyTier2","loyaltyTier3","loyaltyTier4","facebookLabel","noSocialProvidersLabel","connectedAccountsTitle","connectedAccountsDescription","connectedAccountsMessage","connectAction","disconnectAction","continueWithFacebook","continueWithFacebookPolicy","continueWithFacebookAdvice","continueWithFacebookNewsletterPolicyLabel","profileLabel","settingsLabel","accountLabel","mandatoryFieldsLabel","maintenanceMessage","buyItAgainLabel","newToBrand","passwordResetInvalidUrlTitle","passwordResetInvalidUrlText","acceptTermsAndConditionsLabel","acceptReceiveNewsletterLabel","acceptLoyaltyTitle","acceptLoyaltyLabel","joinLoyaltyTitle","acceptPromotionsLabel","acceptLoyaltyDescription","acceptAllTermsAndConditionsLabel","optInEmailLabel","optInPhoneCallLabel","optInSmsLabel","optInDirectMailLabel","optInAllLabel","optOutLabel","optInLabel","preferredLanguageLabel","termsConditionsLoyaltyLabel","signInOnlineAccountLabel","createNewRecordLabel","createNewRecordText","signUpSectionTitle","signUpText","signUpToConnectSocial","createAccountLabel","passwordHint","myAccount","myOrders","consultations","easyReorder","subscriptions","accountUserLogin","verificationCodeLetterAriaDescription","verificationCodeLabel","verifyCodeAction","resendVerificationCode","resendVerificationCodeAction","signInCodeVerificationTitle","signInCodeVerificationSubtitle","signUpCodeVerificationTitle","signUpCodeVerificationSubtitle","signUpCodeVerificationMessage","phoneUserLogin","goBindPhoneLabel","bindPhoneTipsTitle","bindPhoneTipsDesc","bindPhonePageTitle","bindPhoneHelpTips","districtLabel","postalCodeLabel","ageConsentLabel","termsConditionsLoyaltyTitleLabel","termsAndConditionsRemarks","acceptThirdPartyPrivacyPolicyLabel","acceptUseOfPersonalInformationLabel","passwordRequirementsLabel","marketingEmailConsent","marketingSmsConsent","createAccountConsent","continueWithSocialConsent","continueWithLine","continueWithRakuten","continueWithEmail","signInToConnectSocial","socialAccountRegistration","signInOrCreateAccount","verifySocialEmail","emailRegistration","enterVerificationCode","otpInstruction","otpLength","changeMobile","otpNotReceiveCode","otpResendCode","otpCodeSent","otpSwitchToSms","otpSwitchToEmail","resendCodeInMinutes","elc_account_errors","badIdentifiersError","passwordInvalidError","passwordRequiredMessage","retypePasswordRequiredMessage","currentPasswordRequiredMessage","newPasswordRequiredMessage","newPasswordValidMessage","invalidSignInErrorMessage","accountLockedResetPasswordError","signInAccountUnrecognized","facebookAuthError","facebookAuthErrorUserDenied","facebookAuthErrorScopesDenied","facebookAuthErrorScopeEmail","signInAccountLocked4AttemptsError","signInAccountLocked5AttemptsError","signInAccountLocked6AttemptsError","passwordStrengthFailedResetPasswordError","emailRequiredMessage","emailValidMessage","emailAlreadyUsedMessage","emailMissingErrorMessage","existingAccountFoundPleaseSignIn","existingAccountFoundWithMobilePleaseSignIn","sessionExpiredError","forgotPasswordEmailNotFound","forgotPasswordPhoneNotFound","confirmPasswordValidationMessage","resetPasswordAlreadyUsedMessage","resetPasswordLinkExpiredError","resetPasswordLinkInvalidError","passwordResetLimitExceeded","maintenanceError","birthdayValidMessage","birthdayIsRequiredLabel","birthdayChangeError","nationalIdInvalidError","newEmailDifferentMessage","newPasswordDifferentMessage","confirmEmailValidationMessage","emailAlreadyUsedErrorMessage","incorrectPassword","invalidPassword","addressRequiredMessage","addAddressInvalidErrorMessage","countryRequiredMessage","countryValidMessage","zipCodeRequiredMessage","zipCodeValidMessage","cityRequiredMessage","cityValidMessage","stateRequiredMessage","stateValidMessage","secondLineAddressRequiredMessage","secondLineAddressInvalidMessage","thirdLineAddressRequiredMessage","thirdLineAddressInvalidMessage","fourthLineAddressRequiredMessage","fourthLineAddressInvalidMessage","fifthLineAddressRequiredMessage","fifthLineAddressInvalidMessage","mobileNumberRequiredMessage","mobileNumberValidMessage","mobileCountryCodeNotAllowedMessage","mobileNumberMissingErrorMessage","companyRequiredMessage","companyValidMessage","photoFormatNotSupported","photoSizeLimitExceeded","genericPhotoUploadError","preferredLanguageRequiredMessage","agreeRequiredMessage","alreadyRegisteredMessage","alreadyRegisteredPleaseSignInMessage","mobileNumberRegistered","mobileNumberIncorrect","smsSendFailure","smsCodeInvalid","smsCodeRequired","smsCodeExpired","smsCodeLimitationExceeded","invalidSavedBillingAddressErrorMessage","smsAccountError","usernameRequired","phoneNumberNotRegisterError","userLockedError","passwordCheckError","verificationCodeApiError","verificationCodeInvalidationError","userExistsError","districtRequiredMessage","districtInvalidMessage","postalCodeRequiredMessage","postalCodeInvalidMessage","signInFailureErrorMessage","posGenericErrorMessage","posNoTransactionMessage","completeSignUpGenericErrorMessage","partialSignUpGenericErrorMessage","completeUserExistsErrorMessage","partialUserExistsErrorMessage","ageConsentRequiredMessage","acceptUseOfPersonalInformationRequiredMessage","socialSignInFailureMessage","alreadyConnectedFailureMessage","otpTooManyAttempts","otpGenericErrorMessage","otpInvalidCode","otpCodeExpired","otpFailedToVerify","otpServerErrorMessage","otpResendBlocked","elc_appt_booking","addService","addToCalendar","oabLegalDisclaimer","afternoonLabel","anyArtist","allServicesSelectedSelectServiceCopy","bookingDetailsLabel","bookingSummary","bookAVirtualAppointment","bookNewAppointmentLabel","bookVirtualAppointment","cancelAndStartOverLabel","cancellationConfirmationCopy","cancellationLabel","confirmationCopy","confirmationLabel","confirmationStepZoomLinkLabel","exclusiveServiceNotAvailable","editReviewStepLabel","eveningLabel","goToVirtualAppointmentBooking","inStoreConsultationCopy","inStoreConsultationLabel","invalidJumpLinkText","justForYou","locationCopy","locationLabel","maxAppointmentServicesCopy","maxAppointmentServicesLabel","morningLabel","mustBeANumberLabel","nextMonthLabel","noServicesSelectedSelectServiceCopy","notesLabel","noTimeslotsAvailableCopy","noTimeslotsAvailableLabel","oabEmailAddressInvalidMessage","oabEmailLabel","oabFirstNameLabel","oabFreeLabel","oabLastNameLabel","oabMinLengthInvalidMessage","oabNextLabel","oabRequiredFieldMessage","oabSubmitLabel","oabTermsAndConditionsLabel","enableGeolocation","oabNoStoresFound","phoneLengthLabel","phoneNumberLabel","phoneValidation","previousMonthLabel","previousStepLabel","progressLabel","removeService","reviewBookingCopy","reviewBookingLabel","scheduleCopy","scheduleLabel","selectArtist","selectDateCopy","selectDateLabel","selectLocation","selectServiceCopy","selectServiceHeading","selectState","selectStoreAllServices","selectStoreCopy","selectStoreInStoreOnly","selectStoreInstructions","selectStoreLabel","selectStoreVirtualOnly","serviceCopy","serviceLabel","serviceReviewNumberPlural","serviceReviewNumberSingular","servicesLabel","serviceWriteReview","smsOptInLabel","someServicesSelectedSelectServiceCopy","virtualAppointmentLocationLabel","virtualConfirmationCopy","virtualConsultationCopy","virtualConsultationLabel","whatLabel","whenLabel","whereLabel","createAccountHeading","createAccountSubHeading","createAccountButtonLabel","createAccountButtonUrl","helloLabel","signInAccountHeading","signInAccountSubHeading","signInAccountButtonUrl","viewAppointmentsHeading","viewAppointmentsSubHeading","viewAppointmentsButtonLabel","viewAppointmentsButtonUrl","callStoreTout","elc_cart","addToBagButtonLabel","shoppingBagTitle","loginIncentive","addedToCartLabel","orderSummaryTitle","total","totalEstimate","subtotal","discount","discouns","shippingLabel","shippingTo","billingTo","vatIncludedLabel","taxPercentageIncludedLabel","estimatedVatIncludedLabel","estimatedTaxIncludedLabel","countryDeliveryTaxesLabel","totalDiscountsAppliedLabel","salesTaxLabel","taxesInfoLabel","pstTaxLabel","hstTaxLabel","gstTaxLabel","retailDeliveryFeeLabel","retailDeliveryFeeTerms","itemDiscountPercentageLabel","saveForLaterLabel","itemCartSavedForLaterLabel","itemCartRemovedLabel","itemCartOutOfStockLabel","itemCartAddBackToCartLabel","itemCartScheduledForReplenishment","itemReplenishedDisclaimer","quantityLabel","cartMergeTitleLabel","cartMergeSubTitleLabel","acceptMergeButtonLabel","declineMergeButtonLabel","shopBestsellersButtonText","goShoppingLabel","homepageButtonText","discountSubtotalLabel","discountItemCountLabel","discountDiscountLabel","discountDisclaimerLabel","accountLogin","savedForLaterListTitle","addFreeSamples","wpAddSamplesTitle","chooseSamplesMessage","productSampleLabel","congratulationsCartTabOfferLabel","offerCodeLabel","applyOfferCodeLabel","offerLinksLabel","appliedOfferLabel","namedDayShippingLabel","namedDayShippingOverlayText","standardShippingLabel","standardShippingOverlayText","saturdayShippingLabel","saturdayShippingOverlayText","clickAndCollectShipping","clickAndCollectShippingNumberOfDays","colissimoShippingLabel","colissimoOverlayText","secondDayShippingLabel","secondDayShippingOverlayText","overnightShippingLabel","overnightShippingOverlayText","electronicShippingLabel","electronicShippingOverlayText","freeShippingLabel","freeReturnsLabel","maximumPurchasingPolicy","keepShoppingToQualify","proceedToCheckout","applyCartChanges","returnToCart","recommendedProductsTitle","youAreLoggedAs","continueAsGuestMessage","donationLabel","makeADonation","donationTo","donationAmountLabel","giftWrapLabel","yourMessageLabel","priceLabel","preOrderNoChargeLabel","preOrderItemLabel","redeemGiftCardLabel","certificateNumberLabel","certificatePinLabel","engravingLabel","monogrammingLabel","collectionItemAddToCart","collectionItemOutOfStock","collectionItemInCart","collectionNoItemsInCollection","saveForLaterAccordionHeader","lineItemCollectionButtonLoading","lineItemCollectionButtonAdd","lineItemCollectionButtonRemove","collectionItemRemoveItem","replenishmentDisclaimer","replenishmentDisclaimerConfirmation","elc_cart_errors","cartCostLimit","cartItemQuantityLimit","cartItemsCountLimit","cartEmpty","emptyCartSignInMessage","emptyCartSignInAction","itemSoldOut","itemOutOfStock","itemCommingSoon","itemQuantityAdjusted","saveForLaterTemporarilyOutOfStockLabel","saveForLaterSoldOutNotification","cartEmptyTitleLabel","cartLimitReached","disqualifyWpCriteria","thresholdWpCriteria","nonEligibleItemsPotentiallyAffectedOffer","transactionLimitReached","offerReplacedSkusRestricted","replenishmentDisclaimerDeclined","replenishmentNotApplied","elc_checkout","checkOrderStatus","composedHelpfulLinks","paymentInstructions","billingPageTitle","billingPageSubtitle","deliveryPageTitle","deliveryOptionsTitle","deliveryMethodStandard","homeDeliveryTitle","homeDeliveryOptionsAvailable","clickCollectTitle","deliveryInstructionsLabel","continueCheckoutLabel","chooseBillingFromBookLablel","newBillingLabel","noticeOfFinanicalIncentiveLabel","paymentPageTitle","paymentMethodSelectionTitle","placeOrderLabel","creditCardSelectorLabel","newCreditCardLabel","cardSaveLabel","orderConfirmationPageTitle","orderConfirmationTitle","orderConfirmationMessage","orderNowAndShipLater","guestUserOrderConfimationMessage","otherProductsTitle","signInOrSignUpTitle","signInOrSignUpText","signInOrSignUpLabel","checkoutLabel","billingToLabel","billingAddress","billingLimitedCountryLabel","orderDateLabel","orderNumberLabel","orderHistoryTitle","seeAllOrders","noOrdersMessage","discoverNewProducts","allOrders","onTheWay","trackPackageLabel","orderDetailsTitle","billingInformation","carrierLabel","trackingNumberLabel","paymentMethodLabel","temporaryModuleTitle","orderPlacedLabel","orderStatusLabel","orderInformationLabel","viewOrderDetailsText","emailSignup","phoneUsedForImportantQuestions","complimentaryGift","guestCheckoutLabel","guestCheckoutConsent","giftWrap","giftWrapOrderHidePrices","wrapAllItemsInSingleBox","giftMessage","giftMessagePlaceholderText","giftWrapOptions","giftWrapAndPersonalMessage","giftWrapAddedSuccessfully","giftMessageAddedSuccessFully","giftMessageNotAvailable","giftMessageProfanityErrorCheck","giftWrapImage","progressDeliveryStep","progressPaymentStep","progressConfirmationStep","progressShippingStep","progressBillingStep","shippingPageTitle","defaultShippingAddress","yourDefaultDeliveryAddress","shippingAddress","shippingToLabel","shippingMethod","sameBillingCheckboxLabel","billingAddressTitle","homeDeliveryOptionsTitle","homeDeliveryOptionsAvailableTitle","fillOutPostalCode","chooseDeliveryOptions","preferredDayOfDelivery","preOrderMessage","shippingSetToStandard","shippingErrorMessage","shippingLimitedCountryLabel","shippingLegalCompliance","estimatedDelivery","differentLocationError","orderTypeOnlineLabel","cancelOrderLabel","orderItemCountSingular","orderItemCountPlural","orderStatusCancelled","orderStatusDispatching","orderStatusDelivered","orderStatusProcessing","helpfulLink1","helpfulLink2","helpfulLink3","helpfulLink4","helpfulLink5","helpfulLink6","helpfulLink7","cardDebitCardOption","makeDefaultCard","defaultCard","deleteCard","cardExpiration","cardExpired","noCardTokensMessage","cvvLabel","cardNumberLabel","cardExpiryLabel","cardNumberPlaceholder","cardExpiryPlaceholder","cvvPlaceholder","cardHolderNameLabel","cardHolderNamePlaceholder","visaCardLabel","mastercardCardLabel","maestroCardLabel","visaElectronCardLabel","amexCardLabel","codPaymentOption","codPaymentNotAvailable","alipayPaymentOption","continueWithAlipay","afterpayPaymentMethod","afterpayAddressWarning","afterpayNotEligibleMessage","afterpayInstallmentPayInMessage","afterpayPaymentAgreementLink","continueWithAfterpay","mobilePayLabel","payByLink","payByLinkPaymentMode","wechatPaymentOption","payLaterWithKlarna","payOverTimeWithKlarna","klarnaNotAvailableForPurchase","mockpayPaymentOption","venmoPaymentOption","sofortLabel","continueWithSofort","idealLabel","continueWithIdeal","deletePayment","deletePaymentDefault","deletePaymentConfirm","deletePaymentCancel","choosePayment","choosePaymentUseAsDefault","choosePaymentConfirm","choosePaymentCancel","continueWithPayPal","payPalLabel","securedPaymentInfo","reorderButtonLabel","reorderFreePromoButtonLabel","reorderProductNoLongerAvailable","searchPickupPointButtonText","findPickupPointText","addressSearchPlaceholder","nearestPickUpPointText","storeClosedText","openingHoursText","selectLocationButtonText","daysOfTheWeek","noPickUpPointsTitle","noPickUpPointsCopy","pleaseUseADifferentAddress","orChooseHomeDelivery","searchPickupPointsAgainCopy","loadMoreLocationsText","markerIconURL","changeLocationButtonText","selectedStoreText","pickupPointInformationCopy","pickupInformation","clickAndCollectPopupInfoTitle","clickAndCollectPopupInfoSubTitle","clickAndCollectPopupInfoGetNotifiedTitle","clickAndCollectPopupInfoGetNotifiedCopy","clickAndCollectPopupInfoProvideDocumentsTitle","clickAndCollectPopupInfoProvideDocumentsCopy","clickAndCollectPopupInfoSignPackageTitle","clickAndCollectPopupInfoSignPackageCopy","clickAndCollectPopupInfoOrderDispatchCopy","clickAndCollectPopupInfoSmallPrint","cartItemRewardLabel","cartItemRewardRedeemedLabel","editBagFistCopy","editBagDescription","engravingNotAvailable","unavailableItems","selectOption","selectAllItems","selectOtherStore","removeItemsAndContinue","removeItemsAndContinueWithGift","allItemsForPickup","noItemsForPickup","someItemsForPickup","selectStore","selectDifferentStore","seeMoreLocations","purchaserDetails","replenishmentRemovedMessage","whoPickup","samplesInfoMessage","sameDayDeliveryDisclaimer","sameDayDeliveryLabel","sameDayDeliveryGetItBy","sameDayDeliveryInfoText","SameDayNotAvailableText","sameDayDeliveryVariableFeeMessage","sameDayDeliveryPromotionDeliveryPrice","someOneMustBePresent","chooseSameDayDeliveryLabel","chooseSameDayDeliveryWindow","checkAvailabilityAlert","toBeDeterminedLabel","bopisLabel","courierLabel","bopisInfoList","bopisInfoTooltipDescription","bopisInfoTooltipMessage","bopisShippingAllowSubstitutions","selectedStoreInfoTooltipDescription","selectedStoreInfoTooltipMessage","purchaserDetailsPayment","pickedUpInStoreBy","storeForPickUp","availableForPickupToday","availableForPickupNextBusinessDay","checkAvailability","noStoresFound","localPickupPointsOnly","brandStoresOnly","salonCommissionCheckbox","salonCommissionDescription","salonCommissionFirstCopy","salonCommissionMySalon","salonCommissionNearbySalons","salonCommissionNoSalonNearYourLocation","salonCommissionPrivacyPolicyLink","salonCommissionPrivacyPolicyMessage","salonCommissionSearchButton","salonCommissionSearchInputPlaceholder","salonCommissionSearchResults","salonCommissionStylistCredit","salonCommissionStylistName","salonCommissionViewMoreSalons","upsAddressValidationTitleLabel","upsAddressValidationSubtitleLabel","upsAddressValidationRecommendedAddressLabel","upsAddressValidationEnteredAddressLabel","upsAddressValidationUseAddressLabel","upsAddressValidationKeepAddressLabel","giftCardNumberLabel","giftCardPinLabel","giftCardApplyAnotherLabel","giftCardMoreInfoLabel","giftCardAppliedMessage","giftCardRemovedMessage","giftCardBalanceLabel","giftCardBalanceMessage","giftCardCheckBalanceLabel","giftCardCartChangedErrorMesage","giftCardExpirationDate","giftCardNotAvailableWithSelectedPayment","giftCardNotAvailableWithARProducts","giftCardTerms","giftWrapRemovedLabel","ourGuaranteeFirstCopy","ourGuaranteeDescription","preInformationConditionsLabel","distanceSellingAgreementLabel","distanceSellingAgreementLink","continueWithIzyco","preInformationConditionsAndDistanceSellingAgreementAlert","packstation","packstationPostNumber","packstationNumber","packstationLocation","haveYourOrderToAPackstation","packstationLimitedCountryLabel","companyDetails","billTheCompany","taxOfficeName","companyName","taxRegistrationNumber","municipalityLabel","colonyLabel","cashSelectorLabel","cashOptionsLabel","pickupInConvenienceStore","convenienceStorePickupInstructions","convenienceStoreReceiptService","aboutConvenienceStoreReceiptService","specifiedShippingDateAndTime","deliveryDateDesignation","choosePreferredShippingDateTime","shippingDate","shippingTime","feeTaxIncluded","rakutenPay","useRakutenPayToShop","storeForClickAndCollect","cashOnDeliveryFee","continueWithCod","continueWithCreditCard","postalCodeSearchLink","providePostalCodeLabel","cashOnDeliveryNotice","createAccountTitle","createAccountText","completeCheckout","elc_common","artist","logo","logoAlt","homeUrl","copyright","contactNumber","liveChat","secureCheckoutLabel","privacyPolicyLink","noticeOfFinanicalIncentiveLink","loyaltyTermsLink","termsConditionsLink","termsOfSalesLink","termsOfServiceLink","accessibilityLabel","accessibilityLink","liveChatLink","privacyPolicy","privacyPolicyLabel","privacyPolicyDescription","termsConditions","customerServicePhoneNumber","deliveryHandlingUrl","returnPolicyUrl","contactEmailUrl","contactNumberUrl","contactNumberLabel","contactNumberAriaLabel","charactersRemaining","liveChatUrl","bestSellersUrl","seeAllOffersUrl","facebookShareUrl","twitterShareUrl","youtubeShareUrl","pinterestShareUrl","vkShareUrl","weChatShareUrl","weiboShareUrl","californiaConsumerPrivacyActLink","kvkkFooterLink","klarnaPaymentsOf","klarnaAvailableForOrders","counterPrivacyPolicyLink","onlineTermsAndConditionLink","cookieManagement","businessDealLink","browserNotSupportedTitle","browserNotSupportedImage","browserNotSupportedText","browserNotSupportedHelpCentertext","browserNotSupportedContinueButtonText","freeShippingAndReturn","reachBALabel","reachBAText","packaging","qrcodeTitle","qrcodeText","waitMessage","google","ics","onlyEnglishLanguageCharactersAreAccepted","outlook","yahoo","shIcpCodeLink","shBusinessLink","personalMessage","policeShieldLink","joinLoyaltyRewardLink","joinLoyaltyRewardMessage","video","cpf","cpfRequiredLengthText","writeAPersonalMessage","elc_communications","emailSenderName","emailSender","emailHeaderLogo","emailHeaderLink","emailSafely","emailCheckInBrowser","emailCheckInBrowserLink","emailContactUs","emailContactUsLink","emailShippingHandling","emailShippingHandlingLink","emailReturnPolicy","emailReturnPolicyLink","emailTermsCondition","emailTermsConditionLink","facebookUrl","twitterUrl","youtubeUrl","instagramUrl","tumblrUrl","emailLegalText","unsubscribeLink","unsubscribeLinkText","emailOptInLabel","deliveryHandlingLabel","deliveryHandlingAriaLabel","returnPolicyLabel","returnPolicyAriaLabel","notifyMeLabel","notifyMeSubmitButtonLabel","notifyMeConfirmationTitle","notifyMeConfirmationText","notifyMePopUpHeaderText","notifyMeTitleLabel","notifyMeDescriptionLabel","continueShoppingButtonLabel","gdprValidationText","contactPreferenceTitle","contactPreferenceContent","contactPreferenceOptInContent","elc_compliance","gdprNoticeLabel","gdprNoticeInformation","gdprOABNoticeInformation","gdprHowDoWeUseYourData","elc_errors","validationFailedError","fieldContainsBadCharError","termsAndConditionsRequired","cancellationErrorAlreadyCancelled","cancellationErrorCallStore","cancellationErrorTokenExpired","cannotShipToAddressErrorMessage","cityStateZipErrorMessage","cityZipErrorMessage","emailAddressInvalidMessage","emailAddressRequiredMessage","externalPaymentError","afterpayExternalPaymentError","firstNameInvalidMessage","firstNameRequired","firstNameAlternateInvalidMessage","firstNameAlternateRequired","fullNameInvalidMessage","fullNameRequired","generic500Error","genericError","giftCardInformationErrorMessage","giftCardZeroBalanceErrorMessage","giftCardUnavailableErrorMessage","offerRemovedErrorMessage","invalidAddressErrorMessage","invalidBillingAddressSelectedErrorMessage","lastNameInvalidMessage","lastNameRequired","lastNameAlternateInvalidMessage","lastNameAlternateRequired","maxLengthInvalidMessage","minLengthInvalidMessage","patternInvalidMessage","paymentCurrencyNotMatchingConfigurationErrorMessage","upsAddressErrorMessage","giftCardErrorMessage","paymentDisabledPaymentMethodErrorMessage","paymentExceededOrderSkuMaxLimitValueErrorMessage","paymentExceededQuantityValueErrorMessage","paymentExceededTotalValueErrorMessage","paymentLanguageNotMatchingConfigurationErrorMessage","paymentMinimumTotalValueErrorMessage","paymentNotInRangeTotalValueErrorMessage","paymentProviderErrorMessage","paymentProvider3dsErrorMessage","paymentRestrictedZipCodeErrorMessage","phoneValidationErrorMessage","productApoRestrictionErrorMessage","productsRemovedErrorMessage","requiredFieldMessage","saveCCPreOrderItemsErrorMessage","saveCCReplenishmentServiceErrorMessage","shippingApoRestrictionErrorMessage","shippingRestrictionErrorMessage","taxNumberErrorMessage","validityFieldMessage","weAreSorryAtThisTimeErrorMessage","clickAndCollectSearchErrorText","geoSearchError","salutationRequiredMessage","birthYearRequiredMessage","birthMonthRequiredMessage","birthDayRequiredMessage","joinLoyaltyEnrolmentRequired","ageGroupRequiredMessage","customerLocationRequiredMessage","countryCodeRequiredMessage","storesRequiredMessage","payPalPaymentProviderErrorMessage","replenishmentRemovedErrorMessage","cartChangedErrorMessage","paypalCannotConnectErrorMessage","itemNotAvailableForPickUpErrorMessage","sameDayNotAvailableError","appointmentBookingFailed","appointmentCreationError","appointmentUpdateError","appointmentCancellationError","virtualAppointmentNoAvailability","unableToCreateUserError","noAppointmentAvailableError","maxAppointmentDurationCopy","maxAppointmentDurationLabel","defaultAPIError","invalidCardNumberError","invalidExpiryDateError","invalidEntry","monthOutOfRangeError","yearOutOfRangeError","dateOutOfRangeError","invalidCvcError","emptyExpiryDateError","emptyCardNumberError","emptyCvvError","taxOfficeNameInvalidMessage","taxOfficeNameRequired","companyNameInvalidMessage","companyNameRequired","companyTaxNumberInvalidMessage","companyTaxNumberRequired","sexRequiredMessage","areaCodeRequiredMessage","homePhoneRequiredMessage","homePhoneInvalidMessage","mobileEmailRequired","mobileEmailInvalidMessage","primaryPhoneRequiredMessage","primaryPhoneInvalidMessage","secondaryPhoneRequiredMessage","secondaryPhoneInvalidMessage","municipalityRequiredMessage","municipalityValidMessage","colonyRequiredMessage","colonyValidMessage","emptyCardHolderNameError","shippingDateRequiredMessage","shippingDateInvalidMessage","shippingTimeRequiredMessage","shippingTimeInvalidMessage","shippingRestrictionHazmat","shippingRestrictionOverseasTerritory","packstationPostNumberInvalid","packstationNumberInvalid","packstationPostNumberRequired","packstationNumberRequired","elc_general","addAddressToAccountLabel","allLabel","add","and","application","applyGiftCard","applyLabel","browseLabel","fastest","californiaPersonalInformationLabel","callUsAriaLabel","callUsLabel","cancelLabel","continueLabel","checkBalance","clearAll","clickingPay","closeLabel","commonPrivacyNoticeLabel","confirmLabel","contactEmailAriaLabel","contactEmailLabel","contactLabel","dateLabel","dayLabel","daysLabel","defaultLabel","deleteLabel","editLabel","expired","expiration","emailShareLabel","feet","freeLabel","amountLabel","amountAppliedLabel","giftCardLabel","friday","helpfulLinksTitle","hereLabel","homeLabel","itemLabel","kilometers","learnMore","lesson","liveChatAriaLabel","liveChatLabel","loadingLabel","makeDefaultLabel","mediumLabel","meters","miles","min","monday","monthLabel","moreLabel","navigateToSlide","nextLabel","nextSlide","nextBusinessDay","noLabel","okLabel","openLabel","optional","or","orFillInTheForm","payLabel","photoLabel","pointsLabel","previewLabel","previousLabel","previousSlide","readMore","readLess","receiveLabel","removeLabel","resetCountdownLabel","retryLabel","reviewPrivacyNoticeLabel","rewardPointLabel","saturday","saveLabel","seeMore","selected","selectLabel","show","send","shareLabel","strengthLabel","strongLabel","submitLabel","sunday","thursday","tuesday","unspecifiedLabel","uploadLabel","weakLabel","wednesday","withLabel","yearLabel","yesLabel","welcomeLabel","todayLabel","tomorrow","me","someoneElse","asap","forLabel","fromLabel","toLabel","badLabel","averageLabel","goodLabel","agreeLabel","tryAgain","other","elc_loyalty","receivedLoyaltyPointsMessage","receiveLoyaltyPointsMessage","transactionSubTypeAnniversary","transactionSubTypeAr","transactionSubTypeBazaarVoice","transactionSubTypeBv","transactionSubTypeBvReview","transactionSubTypeDiagnostic","transactionSubTypeDisenroll","transactionSubTypeEnrollment","transactionSubTypeEnrollmentBonus","transactionSubTypeFacebook","transactionSubTypeFoundationFinder","transactionSubTypeHistoricalPurchase","transactionSubTypeLiveChat","transactionSubTypeOnline","transactionSubTypeOptinEmail","transactionSubTypeOptinSms","transactionSubTypePinterest","transactionSubTypePintrest","transactionSubTypePpCarryover","transactionSubTypeReferral","transactionSubTypeReferralPurchase","transactionSubTypeRetailPurchase","transactionSubTypeRetailer","transactionSubTypeSkincare","transactionSubTypeSocial1","transactionSubTypeStore","transactionSubTypeTwitter","transactionSubTypeYoutime","transactionTypeAdjustment","transactionTypeAnniversary","transactionTypeCancellation","transactionTypeCardIssued","transactionTypeCustomerService","transactionTypeDisenroll","transactionTypeExchange","transactionTypeMultiple","transactionTypePurchase","transactionTypeReturn","transactionTypeReward","transactionTypeUsed","transactionTypeEnrollment","transactionTypeUpgrade","transactionTypePointsToRedeem","transactionEventPendingOrder","elc_offers","offer_success","offer_failure","offer_invalid","offer_expired","offer_conflict","offer_inapplicable","best_discount_applied","offer_removed","samplesAndOffersLabel","congratulationsOffersLabel","qualifiedOffersLabel","notQualifiedOffersLabel","removeOfferLabel","applyOfferLabel","addingLabel","removingLabel","failedToApplyOffer","offerApplied","elc_vto","bestLabel","bestPairLabel","bestShadeMessage","casualPairLabel","categoryCleanse","categoryConcentrate","categoryCream","categoryEyeCare","categoryMoisturize","categoryRepair","categorySerum","categoryTreat","coolerLabel","coolerPairLabel","darkerLabel","glamPairLabel","lighterLabel","removeMyMatch","saveMyMatch","seeAllShadesLabel","seeBestShadesLabel","seePairDetailsLabel","seePairShadesLabel","skinCareResultTitle","skinCareStartOver","surveyCtaLabel","surveyDisclaimer","surveyEndLabel","surveyQuestionOneLabel","surveyQuestionOneDescriptionLeft","surveyQuestionOneDescriptionRight","surveyQuestionTwoLabel","surveyQuestionTwoPlaceholder","useSafariToAccessCamera","vtoFoundationButtonLabel","vtoMakeupButtonLabel","vtoSkinCareButton","vtoSkinCareResultButton","warmerLabel","warmerPairLabel","yourCoolerMatchLabel","yourDarkerMatchLabel","yourLighterMatchLabel","yourPerfectMatchLabel","yourWarmerMatchLabel","elc_product","ascending","descending","topRated","priceLowToHigh","priceHighToLow","orderByName","orderByNameDropDownTitle","outOfStockButtonLabel","soldOutButtonLabel","comingSoonButtonLabel","shopNowButtonLabel","ctaLinkLabel","productBadgeImageAlt","skuBadgeImageAlt","productSizePickerLabel","productDetailsAccordionLabel","productHowToUseAccordionLabel","productHowDoesItWorkAccordionLabel","productIngredientsAccordionLabel","productKeyIngredientAccordionLabel","productWhatItIsAccordionLabel","productWhatItDoesAccordionLabel","ingredientsDisclaimerMessage","readReviewsLabel","sizeLabel","skinType","skinTone","defaultPromoMessage","sortByLabel","texture","productSizeLabel","writeReviewLabel","quickViewButtonLabel","overviewLabel","benefitsLabel","whoItsForLabel","whatItIsLabel","whatItDoesLabel","greatToKnowLabel","keyIngredientsLabel","finishLabel","coverageLabel","skinTypeLabel","horizontalFiltersTitle","productsItemLabel","seeProductsLabel","clearFiltersLabel","hideFiltersLabel","filtersLabel","selectFrequencyLabel","subscribeCopyLabel","subscribeLabel","selectYourShadeLabel","selectShadeLabel","shadeLabel","overOneShadeLabel","overTwoShadesLabel","overThreeShadesLabel","overFourShadesLabel","colorGroupLabel","undertoneLabel","tempOutOfStockLabel","itemIsTempOutOfStock","itemIsTempOutOfStockNotifyMe","itemIsComingSoon","itemIsComingSoonNotifyMe","itemIsSoldOut","firstToWriteReviewLabel","selectASizeLabel","giftsFilterTitle","applyFiltersLabel","filterByCategoryLabel","filterByPriceLabel","sheerCoverageLabel","mediumCoverageLabel","fullCoverageLabel","matteFinishLabel","satinFinishLabel","shineFinishLabel","naturalFinishLabel","shimmerFinishLabel","categoriesAllLabel","categoryCremeLabel","categoryChromeLabel","categoryDeepLabel","categoryLightLabel","categoryLimitedEditionLabel","categoryMediumLabel","categoryMatteLabel","categoryMatteFinishLabel","categoryMetallicLabel","categoryFoilFinishLabel","categoryShineLabel","categorySparkleLabel","categoryShimmerLabel","categoryRedLabel","categoryPurpleLabel","categoryOrangeLabel","categoryNewLabel","categoryNudeLabel","productQuantityLabel","resultsLabel","shadesLabel","learnMoreLabel","sensitiveSkinTypeLabel","veryDrySkinTypeLabel","drySkinTypeLabel","antiAgingSkinTypeLabel","combinationSkinTypeLabel","oilySkinTypeLabel","normalSkinTypeLabel","numberOfShadesLabel","violetColorFamilyLabel","pinkColorFamilyLabel","redColorFamilyLabel","nudeColorFamilyLabel","fairColorFamilyLabel","veryFairColorFamilyLabel","mediumColorFamilyLabel","deepColorFamilyLabel","berryColorFamily","brownColorFamily","beigeColorFamily","darkColorFamily","greenColorFamily","greyColorFamily","lightColorFamily","mediumFairColorFamily","moderateColorFamily","orangeColorFamily","blueColorFamily","purpleColorFamily","otherColorFamily","yellowColorFamily","coolUndertoneLabel","neutralUndertoneLabel","warmUndertoneLabel","goldenUndertoneLabel","installmentsLabel","installmentsUnavailableLabel","installmentsModalLabel","autoReplenishMoreInformation","crossSellsTitle","increaseProductQuantityLabel","decreaseProductQuantityLabel","removeIconAriaLabel","collapseIconAriaLabel","expandIconAriaLabel","replenishmentServiceLabel","aboveReplenishmentServiceLabel","temporarilyOutOfStockLabel","engravingModalLabel","engravingLink","olapicWidgetTitle","olapicWidgetSubtitle","filterByLabel","aFewLeftLabel","aFewLeftThresholdRange","onlyCountLeftLabel","onlyCountLeftThresholdLimit","reviewsTabLabel","askAnswerTabsLabel","perfectFor","reviewsNumberLabel","shipsBy","preorderNotAvailableMessage","availableOn","notifyWhenAvailable","preOrder","taxIncluded","smartGiftButtonLabel","smartGiftInfoTitle","discountPercentLabel","loyaltyMessage","loyaltyRangeMessage","loyaltyLearnMoreMessage","loyaltyLearnMoreLink","discountedPricePerUnitMessage","discountedPriceRangePercentMessage","onSaleTodayLabel","talkToAConsultantLabel","allSizesLabel","benefitLabel","idealForLabel","luxuryCareForLabel","feelingLabel","fraganceTypeLabel","applicatorStyleLabel","brushLabel","colorImpactLabel","formLabel","dimensionsLabel","refillableLabel","formulaFactsLabel","giftSetLabel","selectAnItemLabel","bestUsedByLabel","elc_product_attributes","buildableCoverageLabel","mediumfullCoverageLabel","mediumbuildableCoverageLabel","creamFinishLabel","dewyFinishLabel","sheerFinishLabel","metallicFinishLabel","glossyFinishLabel","glitterFinishLabel","freshFinishLabel","softFinishLabel","hydratingBenefitLabel","lightweightBenefitLabel","plumpingBenefitLabel","volumizingBenefitLabel","waterproofBenefitLabel","longLastingBenefitLabel","moisturizingBenefitLabel","spfBenefitLabel","travelBenefitLabel","alcoholFreeBenefitLabel","brighteningBenefitLabel","makeupSettingBenefitLabel","curlingBenefitLabel","conditioningBenefitLabel","lengtheningBenefitLabel","thickeningBenefitLabel","naturalLookBenefitLabel","frizzfightingBenefitLabel","scalpcareBenefitLabel","detanglingBenefitLabel","addsshineBenefitLabel","softeningBenefitLabel","smoothingBenefitLabel","texturingBenefitLabel","soothingBenefitLabel","colorcorrectionBenefitLabel","coverageBenefitLabel","antiwrinkleBenefitLabel","evenskintoneBenefitLabel","veganBenefitLabel","exfoliatingBenefitLabel","glutenfreeBenefitLabel","tintedBenefitLabel","oilfreeBenefitLabel","depuffingBenefitLabel","freeofsulfatesBenefitLabel","antiacneBenefitLabel","cleansingBenefitLabel","antipuffinessBenefitLabel","oilcontrolBenefitLabel","poresBenefitLabel","reducingporesBenefitLabel","strengtheningBenefitLabel","pollutionprotectionBenefitLabel","poreminimizingBenefitLabel","elc_stores","askInStore","atLabel","available","availableAt","availableforZipCode","bookAppointment","callForAvailability","callForOrder","chooseAStore","collectInStore","complimentaryEngraving","contactStore","curbsideIsAvailable","curbsidePickupAvailableText","deliveryOptions","deselectStore","doorTypeAirportDutyFreeStore","doorTypeDepartmentStore","doorTypeDutyFreeStore","doorTypeFreeStandingStore","doorTypePopupStore","editDelivery","enterAddressPlaceholder","enterAddressToSeeAvailabilityArea","enterAnotherFullAddress","enterFullAddressToConfirm","filters","findInStore","findStore","getDirections","goToDirectoryLabel","hours","inStorePickupAvailableLabel","inStorePickupToggleSubheader","inStorePickupToggleTitle","inStoreServices","invalidZipcodeOrAddress","locations","locationSearchInputPlaceholder","moveTheMap","nearby","noFilterResultMessage","notAvailable","onLabel","openNow","openNowToggleSubheader","openTodayUntil","openUntil","otherNearbyLocations","pickupFromStoreWithAllItems","pickUpInStore","pickUpInStoreAddItemsToBagDescription","pickUpInStoreAddItemsToBagTitle","pickUpInStoreCheckoutDescription","pickUpInStoreCheckoutTitle","pickUpInStoreInformationDescription","pickUpInStoreInformationTitle","pickUpInStoreNotificationDescription","pickUpInStoreNotificationTitle","pickUpInStoreWantItToday","pickupNotAvailable","sddCheckoutDescription","sddCheckoutTitle","sddInformationDescription","sddMightNotBeAvailable","sddNotificationDescription","sddNotificationTitle","searchPlaceholder","searchThisArea","seeAvailability","selectedDeliveryMethod","selectedStore","selectFollowingToContinue","serviceAvailableLabel","servicesAvailableToggleSubheader","servicesAvailableToggleTitle","shipItemsToAddress","showMap","someItemsNotAvailablePickup","storeClosed","storeClosingHour","storeDetails","storeDetailsMapAlt","storeDirectory","storeLabel","storeList","storeListTabTitle","storeLocator","storeMapTabTitle","storeOpen","storeOpeningHour","storeOpeningHourFriday","storeOpeningHourMonday","storeOpeningHourSaturday","storeOpeningHourSunday","storeOpeningHourThursday","storeOpeningHourToday","storeOpeningHourTuesday","storeOpeningHourWednesday","storeOpeningIsClosed","stores","storesDirectoryCTA","storesDirectorySubtitle","storesDirectoryTitle","storeServicesSubtitle","storeServicesTitle","storesFound","storesHome","storesLandingSubtitle","storesLandingTitle","storesNext","storesWithAvailableItems","today","typeOfStore","viewAmountUpcomingEvents","weCouldNotFindAnyStoresInThisArea","yourStore","elc_user","emailLabel","usernameLabel","firstNameLabel","lastNameLabel","firstNameAlternateLabel","lastNameAlternateLabel","fullNameLabel","birthdayLabel","birthdayOptionalLabel","salutationLabel","birthYearLabel","birthMonthLabel","birthDayLabel","ageGroupLabel","customerLocationLabel","countryCodeLabel","missSalutation","msSalutation","mrsSalutation","mrSalutation","sexLabel","areaCodeLabel","homePhoneLabel","mobileEmailLabel","primaryPhoneLabel","secondaryPhoneLabel","elc_search","searchButtonLabel","searchBoxLabel","searchPlaceholderLabel","searchClearLabel","bestSellersProductsTitle","moreResultsFoundMessage","noResultsMessage","resultsFoundMessage","resultsFoundMessageOverlay","viewAllResultsLabel","inCategoryLabel","verticalFiltersTitle","filteredBy","suggestedTopFilters","searchAdjustmentMessage","voiceMicrophoneAccess","voiceSearchFailureTitle","voiceSearchFailureParagraph","voiceListenTitle","voiceListenParagraph","voiceListenTermsExample","speakNow","voiceSearchingTitle","sortTopRated","sortPriceLowHigh","sortPriceHighLow","mobileFiltersButton","trendingTermsTitle","trendingResultsTitle","productsTitle","storiesTitle","readStory","voiceSearchIconLabel","elc_delivery_tout","sdSubtitle","sdCopy","sdIcon","sdShippingTimes","nddSubtitle","nddCopy","nddIcon","nddShippingTimes","sddSubtitle","sddCopy","sddIcon","sddShippingTimes","nmddSubtitle","nmddCopy","nmddIcon","nmddShippingTimes","samdSubtitle","samdCopy","samdIcon","samdShippingTimes","ccdSubtitle","ccdCopy","ccdIcon","ccdShippingTimes","shippingAndHandlingTitle","shippingAndHandlingSubtitle","shippingInformationTitle","shippingPopUpCopy","shipMethodPopUpTitle","costPopUpTitle","shippingTimeFrameTitle","otherLocationsTitle","otherLocationsCopy","elc_orders","trackMyOrder","trackMyOrderGuidance","pleaseInputYourOrderNumber","trackOrder","orderProcessing","yourOrderIsProcessing","orderStatusProcessingInstruction","orderStatusProcessingMessage","yourOrderIsNowOnBackorder","atWarehouse","yourOrderIsAtWarehouse","orderStatusAtWarehouseInstruction","orderStatusAtWarehouseMessage","shipped","yourOrderIsShipped","orderStatusShippedInstruction","orderStatusShippedMessage","orderStatusPartiallyShippedMessage","orderStatusOutForDeliveryShippedMessage","delivered","yourOrderIsDelivered","orderStatusDeliveredInstruction","orderStatusDeliveredMessage","returned","yourOrderIsReturned","yourPartialOrderIsReturned","orderStatusReturnedInstruction","orderStatusReturnedMessage","orderStatusPartialReturnedMessage","returnInProgress","yourOrderIsReturnInProgress","yourPartialOrderIsReturnInProgress","orderStatusReturnInProgressInstruction","orderStatusReturnInProgressMessage","orderStatusPartialReturnInProgressMessage","returnInitiated","yourOrderIsReturnInitiated","orderStatusReturnInitiatedInstruction","orderHasBeenReturnInitiated","returnShipped","yourOrderIsReturnToShipped","orderStatusReturnToShippedInstruction","orderHasBeenReturnToShipped","returnReceived","yourOrderIsReturnReceived","orderStatusReturnReceivedInstruction","orderHasBeenReturnReceived","unableToDeliver","yourOrderIsUnableToDeliver","orderStatusUnableToDeliverInstruction","orderHasBeenUnableToDeliver","cancelled","yourOrderIsCancelled","orderStatusCancelledInstruction","orderStatusCancelledMessage","orderStatusRemorseCancelledMessage","orderStatusCustomerServiceCancelledMessage","delayed","yourOrderIsDelayed","orderStatusDelayedInstruction","orderStatusDelayedMessage","orderNumberInvalidErrorMessage","noOrderFoundErrorMessage","orderTrackingGenericErrorMessage","deliveryMethodLabel","orderStatusExplainedLabel","shippingInformationLabel","carrierNameLabel","shippedDateLabel","seeDeliveryDetails","orderNumberTooltipText","orderDetails","yourOrder","orderStatus","deliveredOn","awaitingCarrierPickUp","needHelp","yourOrderArriveInSeparateBoxes","orderNumberLabelForPartialShipment","elc_gifting","addGiftWrap","wrapAllTogether","wrapAllIndividually","noGiftWrap","TranslationsRepository","translations","processTranslationsFromWindow","loadFromWindow","loadFromApi","setTranslations","fieldsRequested","hydrateTranslations","accumulator","field","getFieldValue","writable","fieldMap","translationMapping","collectionName","legacyFieldName","fullDataMap","collectionKey","generateLegacyFormat","windowTranslations","cleanTranslations","collections","accum","legacyKey","entries","collectionValue","addDefaultVals","collection","showPlaceholder","showTranslationsPlaceholder","newCollection","Container","register","factory","setBaseUrl","baseUrl","configJSON","serviceStarter","s","m","h","d","w","y","plural","msAbs","n","isPlural","round","options","str","String","exec","parseFloat","parse","isFinite","long","fmtLong","fmtShort","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","run","marker","runClearTimeout","Item","array","nextTick","Array","arguments","prototype","title","browser","argv","versions","addListener","once","off","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","ElcServiceBus","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","__esModule","a","definition","o","globalThis","Function","obj","prop","hasOwnProperty","Symbol","toStringTag","moduleMap","getScope","R","shareScope","initScope","S","oldScope","I"],"sourceRoot":""}