{"version":3,"sources":["webpack://elc-service-communications/webpack/universalModuleDefinition","webpack://elc-service-communications/webpack/bootstrap","webpack://elc-service-communications/(webpack)/buildin/global.js","webpack://elc-service-communications/./node_modules/@estee/elc-service-view-names/src/index.ts","webpack://elc-service-communications/./node_modules/@estee/elc-universal-utils/src/UniversalUtils.ts","webpack://elc-service-communications/./node_modules/@estee/elc-universal-utils/src/Service/ServiceUtils.ts","webpack://elc-service-communications/./node_modules/@estee/elc-universal-utils/src/BrowserStorage.ts","webpack://elc-service-communications/./node_modules/@estee/elc-universal-utils/src/Service/ServiceVersion.ts","webpack://elc-service-communications/./node_modules/@estee/elc-service/src/Service/LazyService/ServiceManifest.ts","webpack://elc-service-communications/./src/manifest.ts","webpack://elc-service-communications/./src/index.ts","webpack://elc-service-communications/external \"ElcServiceBus\"","webpack://elc-service-communications/external {\"root\":[\"ElcRuntime\",\"HypoContainer\"],\"commonjs2\":\"HypoContainer\",\"commonjs\":\"HypoContainer\",\"amd\":\"HypoContainer\"}","webpack://elc-service-communications/external {\"root\":[\"ElcRuntime\",\"mobx\"],\"commonjs2\":\"mobx\",\"commonjs\":\"mobx\",\"amd\":\"mobx\"}","webpack://elc-service-communications/external {\"root\":[\"ElcRuntime\",\"mobxReact\"],\"commonjs2\":\"mobx-react\",\"commonjs\":\"mobx-react\",\"amd\":\"mobx-react\"}","webpack://elc-service-communications/external {\"root\":[\"ElcRuntime\",\"React\"],\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack://elc-service-communications/external {\"root\":[\"ElcRuntime\",\"ReactDom\"],\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}","webpack://elc-service-communications/external {\"root\":[\"ElcRuntime\",\"styled\"],\"commonjs2\":\"styled\",\"commonjs\":\"styled\",\"amd\":\"styled\"}"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__estee_elc_service_bus__","__WEBPACK_EXTERNAL_MODULE_hypo_container__","__WEBPACK_EXTERNAL_MODULE_mobx__","__WEBPACK_EXTERNAL_MODULE_mobx_react__","__WEBPACK_EXTERNAL_MODULE_react__","__WEBPACK_EXTERNAL_MODULE_react_dom__","__WEBPACK_EXTERNAL_MODULE_styled_components__","webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","installedModules","jsonpScriptSrc","__webpack_require__","p","original_jsonpScriptSrc","patchJsonpScriptSrc","replaceSrc","Error","newSrc","apply","this","arguments","e","console","error","l","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","jsonpArray","oldJsonpFunction","slice","s","g","Function","EMAIL_OPT_IN","VIEW_EMAIL_OPT_IN","HELPFUL_LINKS","PRODUCT_NOTIFY_ME","MOBILE_VERSION_SELECTOR","DESKTOP_VERSION_SELECTOR","self","global","setupServiceInfo","serviceInfo","rest","ISandboxEnvironment","getSandboxEnvironment","urlParts","location","hostname","split","LIVE","FEATURE","DEV","STAGE","CMS","PERSONAL","filter","part","includes","SERVICE_VIEW_CLASSNAME","SERVICE_VIEW_RENDERED_ATTRIBUTE","BrowserStorage","eraseCookie","cookie","setCookie","daysOrDate","expires","expirationDate","Date","now","toUTCString","getCookie","nameEQ","ca","charAt","substring","indexOf","getItem","storageKey","setItem","removeItem","storagePolling","callBack","storageValue","setInterval","latestValue","extractServiceVersion","version","searchForServiceInfo","serviceName","ServiceRegistry","getServiceVersion","fallback","defaultManifestOptions","events","queries","createServiceManifest","manifestOptions","serviceLoadFn","serviceKey","options","isLazy","isStarted","isStarting","start","async","diContainer","serviceNames","serviceInstance","register","appConfig","serviceViews","ServiceManifest","views","GET_OPTIN_PROFILE_LOAD","AUTH_SUCCEDED","APPOINTMENT_BOOKED","CONTINUE_AS_GUEST_CLICKED","USER_PROFILE_CHANGED","SIGNED_OUT","PRODUCT_NOTIFY_ME_REQUEST","PRODUCT_NOTIFY_ME_REQUEST_SUCCESS","PRODUCT_NOTIFY_ME_REQUEST_FAILURE","PRODUCT_NOTIFY_ME_TRIGGERED"],"mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,EAAQG,QAAQ,iBAAkBA,QAAQ,iBAAkBA,QAAQ,QAASA,QAAQ,cAAeA,QAAQ,SAAUA,QAAQ,aAAcA,QAAQ,WAC5I,mBAAXC,QAAyBA,OAAOC,IAC9CD,OAAO,CAAC,gBAAiB,gBAAiB,OAAQ,aAAc,QAAS,YAAa,UAAWJ,GACvE,iBAAZC,QACdA,QAAQ,8BAAgCD,EAAQG,QAAQ,iBAAkBA,QAAQ,iBAAkBA,QAAQ,QAASA,QAAQ,cAAeA,QAAQ,SAAUA,QAAQ,aAAcA,QAAQ,WAE5LJ,EAAK,8BAAgCC,EAAQD,EAAoB,cAAGA,EAAiB,WAAiB,cAAGA,EAAiB,WAAQ,KAAGA,EAAiB,WAAa,UAAGA,EAAiB,WAAS,MAAGA,EAAiB,WAAY,SAAGA,EAAiB,WAAU,QARhQ,CASGO,QAAQ,SAASC,EAAoDC,EAA4CC,EAAkCC,EAAwCC,EAAmCC,EAAuCC,GACxQ,O,YCTE,SAASC,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GAKAK,EAAI,EAAGC,EAAW,GACpCD,EAAIF,EAASI,OAAQF,IACzBH,EAAUC,EAASE,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBV,IAAYU,EAAgBV,IACpFI,EAASO,KAAKD,EAAgBV,GAAS,IAExCU,EAAgBV,GAAW,EAE5B,IAAID,KAAYG,EACZI,OAAOC,UAAUC,eAAeC,KAAKP,EAAaH,KACpDa,EAAQb,GAAYG,EAAYH,IAKlC,IAFGc,GAAqBA,EAAoBf,GAEtCM,EAASC,QACdD,EAASU,OAATV,GAOF,IAAIW,EAAmB,GAKnBL,EAAkB,CACrB,OAAU,GAMX,SAASM,EAAehB,GACvB,OAAOiB,EAAoBC,EAAI,IAAM,CAAC,KAAO,OAAO,6CAA6C,6CAA6C,WAAa,aAAa,aAAe,eAAe,qBAAuB,uBAAuB,eAAiB,kBAAkBlB,IAAUA,GAAW,IAAM,CAAC,KAAO,uBAAuB,6CAA6C,uBAAuB,WAAa,uBAAuB,aAAe,uBAAuB,qBAAuB,uBAAuB,eAAiB,wBAAwBA,GAAW,aAGlkB,GAA8B,mBAAnBgB,EAA+B,CACxC,IAAIG,EAA0BH,EAC9B,SAASI,IACP,IACE,GAA0B,mBAAfC,WACT,MAAM,IAAIC,MAAM,uJAElB,IAAIC,EAASF,WAAWF,EAAwBK,MAAMC,KAAMC,YAC5D,IAAKH,GAA4B,iBAAXA,EACpB,MAAM,IAAID,MAAM,gIAElB,OAAOC,EACP,MAAOI,GAIP,OAFEC,QAAQC,MAAMF,GAETR,EAAwBK,MAAMC,KAAMC,YAG/CV,EAAiBI,EAInB,SAASH,EAAoBlB,GAG5B,GAAGgB,EAAiBhB,GACnB,OAAOgB,EAAiBhB,GAAUf,QAGnC,IAAIC,EAAS8B,EAAiBhB,GAAY,CACzCI,EAAGJ,EACH+B,GAAG,EACH9C,QAAS,IAUV,OANA4B,EAAQb,GAAUU,KAAKxB,EAAOD,QAASC,EAAQA,EAAOD,QAASiC,GAG/DhC,EAAO6C,GAAI,EAGJ7C,EAAOD,QAKfiC,EAAoBU,EAAI,SAAuB3B,GAC9C,IAAI+B,EAAW,GAKXC,EAAqBtB,EAAgBV,GACzC,GAA0B,IAAvBgC,EAGF,GAAGA,EACFD,EAASpB,KAAKqB,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAIC,SAAQ,SAASC,EAASC,GAC3CJ,EAAqBtB,EAAgBV,GAAW,CAACmC,EAASC,MAE3DL,EAASpB,KAAKqB,EAAmB,GAAKC,GAGtC,IACII,EADAC,EAASC,SAASC,cAAc,UAGpCF,EAAOG,QAAU,QACjBH,EAAOI,QAAU,IACbzB,EAAoB0B,IACvBL,EAAOM,aAAa,QAAS3B,EAAoB0B,IAElDL,EAAOO,IAAM7B,EAAehB,GAG5B,IAAI6B,EAAQ,IAAIP,MAChBe,EAAmB,SAAUS,GAE5BR,EAAOS,QAAUT,EAAOU,OAAS,KACjCC,aAAaP,GACb,IAAIQ,EAAQxC,EAAgBV,GAC5B,GAAa,IAAVkD,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYL,IAAyB,SAAfA,EAAMM,KAAkB,UAAYN,EAAMM,MAChEC,EAAUP,GAASA,EAAMQ,QAAUR,EAAMQ,OAAOT,IACpDhB,EAAM0B,QAAU,iBAAmBvD,EAAU,cAAgBmD,EAAY,KAAOE,EAAU,IAC1FxB,EAAM2B,KAAO,iBACb3B,EAAMuB,KAAOD,EACbtB,EAAM4B,QAAUJ,EAChBH,EAAM,GAAGrB,GAEVnB,EAAgBV,QAAW0D,IAG7B,IAAIhB,EAAUiB,YAAW,WACxBtB,EAAiB,CAAEe,KAAM,UAAWE,OAAQhB,MAC1C,MACHA,EAAOS,QAAUT,EAAOU,OAASX,EACjCE,SAASqB,KAAKC,YAAYvB,GAG5B,OAAOJ,QAAQ4B,IAAI/B,IAIpBd,EAAoB8C,EAAInD,EAGxBK,EAAoB+C,EAAIjD,EAGxBE,EAAoBgD,EAAI,SAASjF,EAASwE,EAAMU,GAC3CjD,EAAoBkD,EAAEnF,EAASwE,IAClClD,OAAO8D,eAAepF,EAASwE,EAAM,CAAEa,YAAY,EAAMC,IAAKJ,KAKhEjD,EAAoBsD,EAAI,SAASvF,GACX,oBAAXwF,QAA0BA,OAAOC,aAC1CnE,OAAO8D,eAAepF,EAASwF,OAAOC,YAAa,CAAEC,MAAO,WAE7DpE,OAAO8D,eAAepF,EAAS,aAAc,CAAE0F,OAAO,KAQvDzD,EAAoB0D,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQzD,EAAoByD,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKxE,OAAOyE,OAAO,MAGvB,GAFA9D,EAAoBsD,EAAEO,GACtBxE,OAAO8D,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOzD,EAAoBgD,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR7D,EAAoBiE,EAAI,SAASjG,GAChC,IAAIiF,EAASjF,GAAUA,EAAO4F,WAC7B,WAAwB,OAAO5F,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAgC,EAAoBgD,EAAEC,EAAQ,IAAKA,GAC5BA,GAIRjD,EAAoBkD,EAAI,SAASgB,EAAQC,GAAY,OAAO9E,OAAOC,UAAUC,eAAeC,KAAK0E,EAAQC,IAGzGnE,EAAoBC,EAAI,GAGxBD,EAAoBoE,GAAK,SAASC,GAA2B,MAApB1D,QAAQC,MAAMyD,GAAYA,GAEnEhF,OAAO8D,eAAenD,EAAqB,IAAK,CAC9CqD,IAAK,WACP,MAAO,iCAIP,IAAIiB,EAAalG,OAA+C,uCAAIA,OAA+C,wCAAK,GACpHmG,EAAmBD,EAAW5E,KAAKsE,KAAKM,GAC5CA,EAAW5E,KAAOd,EAClB0F,EAAaA,EAAWE,QACxB,IAAI,IAAItF,EAAI,EAAGA,EAAIoF,EAAWlF,OAAQF,IAAKN,EAAqB0F,EAAWpF,IAC3E,IAAIU,EAAsB2E,EAI1B,OAAOvE,EAAoBA,EAAoByE,EAAI,kB,2FCjOrD,IAAIC,EAGJA,EAAI,WACH,OAAOlE,KADJ,GAIJ,IAECkE,EAAIA,GAAK,IAAIC,SAAS,cAAb,GACR,MAAOjE,GAEc,iBAAXtC,SAAqBsG,EAAItG,QAOrCJ,EAAOD,QAAU2G,G,yFCnBjB,wIAAO,MAqDME,EAAe,eACfC,EAAoB,oBACpBC,EAAgB,gBAsBhBC,EAAoB,qB,gGCrEjC,wNAAO,MAAMC,EAA0B,oBAC1BC,EAA2B,qBA4O3BpH,EAFgC,iBAATqH,MAAqBA,KAAKA,OAASA,MAGjDA,MACC,iBAAXC,GAAuBA,EAAOA,SAAWA,GAAUA,GAC3D/G,OAESgH,EAAoBC,IAC7B,MAAM,KAAE9C,KAAS+C,GAASD,EAE1BxH,EAAKwH,YAAcxH,EAAKwH,aAAe,GACvCxH,EAAKwH,YAAY9C,GAAQ+C,GAG7B,IAAYC,GAAZ,SAAYA,GACR,cACA,oBACA,YACA,gBACA,YACA,sBACA,0BAPJ,CAAYA,MAAmB,KAUxB,MAAMC,EAAsC,KAC/C,IAAIC,EAAW5H,EAAK6H,SAASC,SAASC,MAAM,KAC5C,MAAM,KAAEC,EAAF,QAAQC,EAAR,IAAiBC,EAAjB,MAAsBC,EAAtB,IAA6BC,EAA7B,SAAkCC,GAAaX,EAErDE,EAAWA,EAASU,OAAOC,IAAS,CAAC,MAAO,KAAKC,SAASD,IAG1D,QAFiC,MAAhBX,EAAS,IAAiC,MAAhBA,EAAS,IAG9CI,EACAJ,EAASY,SAASP,GAClBA,EACAL,EAASY,SAASN,GAClBA,EACAN,EAASY,SAASL,GAClBA,EACAP,EAASY,SAASJ,GAClBA,EACAC,K,2lBCzRH,MAAMI,EAAyB,4BACzBC,EAAkC,qBCHzC,IAAWC,GAAjB,SAAiBA,GACb,SAAgBC,EAAYlE,GACxBjB,SAASoF,OAAT,UAAqBnE,EAArB,yBAGJ,SAAgBoE,EAAUpE,EAAckB,EAAemD,GACnD,IAAIC,EAAU,GACd,GAAID,EAAY,CACZ,MAAME,EACoB,iBAAfF,EACD,IAAIG,KAAKA,KAAKC,MAAqB,GAAbJ,EAAkB,GAAK,GAAK,KAClDA,EACVC,EAAU,aAAH,OAAgBC,EAAeG,eAE1C3F,SAASoF,OAAT,UAAqBnE,EAArB,YAA6BkB,GAAS,IAAtC,OAA2CoD,EAA3C,WAGJ,SAAgBK,EAAU3E,GACtB,MAAM4E,EAAS,GAAH,OAAM5E,EAAN,KACN6E,EAAK9F,SAASoF,OAAOd,MAAM,KAEjC,IAAK,IAAI1G,EAAI,EAAGA,EAAIkI,EAAGhI,OAAQF,IAAK,CAChC,IAAI6D,EAAIqE,EAAGlI,GACX,KAAuB,MAAhB6D,EAAEsE,OAAO,IACZtE,EAAIA,EAAEuE,UAAU,EAAGvE,EAAE3D,QAEzB,GAA0B,IAAtB2D,EAAEwE,QAAQJ,GACV,OAAOpE,EAAEuE,UAAUH,EAAO/H,OAAQ2D,EAAE3D,QAI5C,OAAO,KAGX,SAAgBoI,EAAQzD,EAAa0D,EAA6B,gBAC9D,IACI,GAAwC,OAApCrJ,OAAOqJ,GAAYD,QAAQzD,GAC3B,OAAO3F,OAAOqJ,GAAYD,QAAQzD,GAExC,MAAOrD,GAGL,OAFAC,QAAQC,MAAMF,GAEPwG,EAAUnD,IAIzB,SAAgB2D,EACZ3D,EACAN,EACAgE,EAA6B,gBAE7B,IACIrJ,OAAOqJ,GAAYC,QAAQ3D,EAAKN,GAClC,MAAO/C,GACLC,QAAQC,MAAMF,GACdiG,EAAU5C,EAAKN,EAAO,KAI9B,SAAgBkE,EAAW5D,EAAa0D,EAA6B,gBACjE,IACIrJ,OAAOqJ,GAAYE,WAAW5D,GAChC,MAAOrD,GACLC,QAAQC,MAAMF,GACd+F,EAAY1C,IAIpB,SAAgB6D,EAAe7D,EAAa8D,GACxC,IAAIC,EAAeN,EAAQzD,GAW3B,OAAOgE,YATmB,KACtB,MAAMC,EAAcR,EAAQzD,GAExB+D,IAAiBE,IACjBF,EAAeE,EACfH,EAASG,KAIqB,KA/E1B,EAAAvB,YAAW,EAIX,EAAAE,UAAS,EAYT,EAAAO,UAAS,EAiBT,EAAAM,QAAO,EAYP,EAAAE,QAAO,EAaP,EAAAC,WAAU,EASV,EAAAC,eAAc,EApElC,CAAiBpB,MAAc,KCC/B,MAAMyB,EAAyB5C,GAC3BA,GAAeA,EAAY6C,QAEzBC,EAAwBC,GAC1B,IAAK/C,YAAY+C,IAAgB,IAAKC,gBAAgBD,GAE7CE,EAAoB,CAACF,EAAqBG,EAAmB,KACtEN,EAAsBE,EAAqBC,KAAiBG,G,uHCQhE,MAAMC,EAAyB,CAC3BC,OAAQ,GACRC,QAAS,GACTnG,KAAM,GACN2F,QAAS,IAUAS,EAAwB,CACjCC,EACAC,EACAC,KAEA,MAAMC,EAAU,IACTP,KACAI,EACHI,QAAQ,EACRC,WAAW,EACXC,YAAY,GAShB,OANA,IAAKb,gBAAkB,IAAKA,iBAAmB,GAMxC,IACAU,EACHI,MAAOC,UACH,MAAM,YAAEC,EAAF,aAAeC,SAAuBT,IAEtCU,EAAqBF,EAAYhG,IAAIiG,EAAaR,IACnD,IAAKT,gBAAgBkB,EAAgBhH,MAAM2G,aAC5CK,EAAgBC,SAAST,SAEnBQ,EAAgBJ,MAAMM,GAAa,KAI7C,OAFwB,IAAKpB,gBAAgBkB,EAAgBhH,OAASgH,K,mGCjDlF,MAAMG,EAAe,CAAC,IAAc,IAAmB,IAAmB,MAClEnH,KAAF,UAAQ2F,GAAY,mIAiBbyB,EAAgDhB,EAGzD,CACIiB,MAAOF,EACPjB,OApBc,CAClB,SAAOoB,uBACP,SAAOC,cACP,SAAOC,mBACP,SAAOC,0BACP,SAAOC,qBACP,SAAOC,WACP,SAAOC,0BACP,SAAOC,kCACP,SAAOC,kCACP,SAAOC,6BAWH5B,QARe,CAAC,iBAAQ9D,cASxBrC,KAJJ,EAKI2F,WAEJ,IACI,qEAIJ,yBC1CJ,YAAiB,oIAEjB,IAAKG,gBAAgB,8BAAgCsB,G,uCCLrD3L,EAAOD,QAAUM,G,+BCAjBL,EAAOD,QAAUO,G,mBCAjBN,EAAOD,QAAUQ,G,2BCAjBP,EAAOD,QAAUS,G,oBCAjBR,EAAOD,QAAUU,G,0BCAjBT,EAAOD,QAAUW,G,kCCAjBV,EAAOD,QAAUY","file":"bundle.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"ElcServiceBus\"), require(\"HypoContainer\"), require(\"mobx\"), require(\"mobx-react\"), require(\"react\"), require(\"react-dom\"), require(\"styled\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"ElcServiceBus\", \"HypoContainer\", \"mobx\", \"mobx-react\", \"react\", \"react-dom\", \"styled\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"elc-service-communications\"] = factory(require(\"ElcServiceBus\"), require(\"HypoContainer\"), require(\"mobx\"), require(\"mobx-react\"), require(\"react\"), require(\"react-dom\"), require(\"styled\"));\n\telse\n\t\troot[\"elc-service-communications\"] = factory(root[\"ElcServiceBus\"], root[\"ElcRuntime\"][\"HypoContainer\"], root[\"ElcRuntime\"][\"mobx\"], root[\"ElcRuntime\"][\"mobxReact\"], root[\"ElcRuntime\"][\"React\"], root[\"ElcRuntime\"][\"ReactDom\"], root[\"ElcRuntime\"][\"styled\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__estee_elc_service_bus__, __WEBPACK_EXTERNAL_MODULE_hypo_container__, __WEBPACK_EXTERNAL_MODULE_mobx__, __WEBPACK_EXTERNAL_MODULE_mobx_react__, __WEBPACK_EXTERNAL_MODULE_react__, __WEBPACK_EXTERNAL_MODULE_react_dom__, __WEBPACK_EXTERNAL_MODULE_styled_components__) {\nreturn "," \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"bundle\": 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"core\":\"core\",\"elc-service-communications-common~31ecd969\":\"elc-service-communications-common~31ecd969\",\"EmailOptIn\":\"EmailOptIn\",\"HelpfulLinks\":\"HelpfulLinks\",\"ProductNotifyMePopUp\":\"ProductNotifyMePopUp\",\"ViewEmailOptIn\":\"ViewEmailOptIn\"}[chunkId]||chunkId) + \".\" + {\"core\":\"23c4ad289bce83e3515c\",\"elc-service-communications-common~31ecd969\":\"4fa93eb21c1f67ddf03f\",\"EmailOptIn\":\"66c295c6bf67a72943df\",\"HelpfulLinks\":\"f915f6effa225d102182\",\"ProductNotifyMePopUp\":\"2af80241841ff30e1782\",\"ViewEmailOptIn\":\"cac3b0590f82e0961d4f\"}[chunkId] + \".bundle.js\"\n \t}\n \t// WebpackRequireFrom - monkey-patching\n \tif (typeof jsonpScriptSrc === 'function') {\n \t var original_jsonpScriptSrc = jsonpScriptSrc;\n \t function patchJsonpScriptSrc () {\n \t try {\n \t if (typeof replaceSrc !== \"function\") {\n \t throw new Error(\"WebpackRequireFrom: 'replaceSrc' is not a function or not available at runtime. See https://github.com/agoldis/webpack-require-from#troubleshooting\");\n \t }\n \t var newSrc = replaceSrc(original_jsonpScriptSrc.apply(this, arguments));\n \t if (!newSrc || typeof newSrc !== 'string') {\n \t throw new Error(\"WebpackRequireFrom: 'replaceSrc' does not return string. See https://github.com/agoldis/webpack-require-from#troubleshooting\");\n \t }\n \t return newSrc;\n \t } catch (e) {\n \t if (!false) {\n \t console.error(e);\n \t }\n \t return original_jsonpScriptSrc.apply(this, arguments);\n \t }\n \t }\n \t jsonpScriptSrc = patchJsonpScriptSrc\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n \t// WebpackRequireFrom\n \tObject.defineProperty(__webpack_require__, \"p\", {\n \t get: function () {\n \treturn \"elc-service-communications/\";\n \t }\n \t})\n\n \tvar jsonpArray = window[\"webpackJsonpelc_service_communications\"] = window[\"webpackJsonpelc_service_communications\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","export const OFFERS_TO_DISPLAY = 'offers-to-display';\nexport const ORDER_ERROR_MESSAGE = 'order-error-message';\nexport const PAYMENT_METHODS = 'payment-methods';\nexport const PAYMENT_INFORMATION = 'payment-information';\nexport const FORGOT_PASSWORD = 'forgot-password';\nexport const RESET_PASSWORD = 'reset-password';\nexport const AUTOMATIC_OFFERS = 'automatic-offers';\nexport const THRESHOLD_MESSAGES = 'threshold-messages';\nexport const MANUAL_OFFER = 'manual-offer';\nexport const ORDER_CONFIRMATION_COMPONENT = 'order-confirmation-component';\nexport const PASSWORD_STRENGTH = 'password-strength';\nexport const SAVE_FOR_LATER_LIST = 'save-for-later-list';\nexport const SIGN_IN_FORM = 'sign-in-form';\n\nexport const SIGN_UP_FORM = 'sign-up-form';\nexport const CHANGE_PASSWORD = 'change-password';\nexport const CHANGE_EMAIL = 'change-email';\nexport const EMAIL_VERIFICATION = 'email-verification';\nexport const CONFIRM_REGISTRATION = 'confirm-registration';\n\nexport const ACCOUNT_OVERLAY = 'account-overlay';\nexport const ACCOUNT_SIDEBAR = 'account-sidebar';\nexport const ACCOUNT_LANDING_SCREEN = 'account-landing-screen';\n\nexport const USER_PROFILE = 'user-profile';\nexport const USER_PROFILE_WELCOME = 'user-profile-welcome';\nexport const ACCOUNT_SIDEBAR_LOYALTY = 'account-sidebar-loyalty';\n\nexport const ADDRESS_FORM = 'address-form';\nexport const ADDRESS_LIST = 'address-list';\nexport const FORMATTED_ADDRESS = 'formatted-address';\nexport const RETURN_USER_EMAIL = 'return-user-email';\nexport const USER_EMAIL = 'user-email';\nexport const USER_EMAIL_WITH_OPT_IN = 'user-email-with-opt-in';\nexport const SIGN_OUT_LINK = 'sign-out-link';\nexport const CART_ITEMS = 'cart-items';\nexport const CART_ORDER_SUMMARY = 'cart-order-summary';\nexport const CART_MERGE = 'cart-merge';\nexport const ACCOUNT_INFO = 'account-info';\nexport const PRODUCT_GRID = 'product-grid';\nexport const PRODUCT_FULL = 'product-full';\nexport const PRODUCT_FULL_ORDERABLE = 'product-full-orderable';\nexport const CART_OVERLAY = 'cart-overlay';\nexport const CART_ICON_BUTTON = 'cart-icon-button';\nexport const ORDER_HISTORY = 'order-history';\nexport const ORDER_DETAILS = 'order-details';\nexport const ORDER_HISTORY_COUNTER_BUTTONS = 'order-history-counter-buttons';\nexport const ORDER_HISTORY_TEMPORARY_MODULE = 'order-history-temporary-module';\nexport const ACCOUNT_INFO_LINK = 'account-info-link';\nexport const SIGN_IN_NAV_LINK = 'sign-in-nav-link';\nexport const CART_SIDEBAR = 'cart-sidebar';\nexport const CART_SIDEBAR_OFFERS = 'cart-sidebar-offers';\n\nexport const EMAIL_OPT_IN = 'email-opt-in';\nexport const VIEW_EMAIL_OPT_IN = 'view-email-opt-in';\nexport const HELPFUL_LINKS = 'helpful-links';\n\nexport const SIGN_UP_SCREEN = 'sign-up-screen';\nexport const SIGN_IN_SCREEN = 'sign-in-screen';\nexport const ORDER_CONFIRMATION_SCREEN = 'order-confirmation-screen';\nexport const ORDER_ASSOCIATION_SCREEN = 'order-association-screen';\nexport const EXTERNAL_PAYMENT_ERROR_SCREEN = 'external-payment-error-screen';\nexport const PAYMENT_SCREEN = 'payment-screen';\nexport const PAYMENT_NAME = 'payment-name';\nexport const PAYMENT_ICON = 'payment-icon';\nexport const CHECKOUT_HEADER = 'checkout-header';\nexport const CHECKOUT_FOOTER = 'checkout-footer';\nexport const SHIPPING_SCREEN = 'shipping-screen';\nexport const SHOPPING_BAG_PAGE = 'shopping-bag-page';\nexport const PRODUCT_BRIEF = 'product-brief';\nexport const PRODUCT_QUICKVIEW = 'product-quickview';\nexport const SHIPPING_METHODS = 'shipping-methods';\nexport const HOME_DELIVERY_OPTIONS = 'home-delivery-options';\nexport const DELIVERY_TOUT = 'delivery-tout';\nexport const ELC_CHECKOUT = 'elc-checkout';\nexport const ELC_ACCOUNT = 'elc-account';\nexport const STYLEGUIDE = 'style-guide';\nexport const PRODUCT_NOTIFY_ME = 'product-notify-me';\nexport const CHOICE_OF_SKUS_LIST = 'choice-of-skus-list';\nexport const PRODUCT_CROSS_SELL = 'product-cross-sell';\nexport const PRODUCT_ADD_TO_BAG = 'product-add-to-bag';\nexport const PRODUCT_SHADESVIEW = 'product-shadesview';\nexport const PRODUCT_SIZE_PICKER = 'product-size-picker';\nexport const PRODUCT_QUANTITY_SELECTOR = 'product-quantity-selector';\nexport const PRODUCT_SHADE_PICKER = 'product-shade-picker';\nexport const PRODUCT_MEDIA_CAROUSEL_NAV = 'product-media-carousel-nav';\nexport const PRODUCT_SHADE_PICKER_BUTTON = 'product-shade-picker-button';\nexport const PRODUCT_RATING = 'product-rating';\nexport const PRODUCT_RATING_WRAPPER = 'product-rating-wrapper';\nexport const PRODUCT_REVIEWS = 'product-reviews';\nexport const REVIEW_DETAILS = 'review-details';\nexport const PRODUCT_CTA = 'product-cta';\nexport const PRODUCT_SHADES_SIDEBAR = 'product-shades-sidebar';\nexport const PRODUCT_BASIC_INFO = 'product-basic-info';\nexport const PRODUCT_BASIC_CTA = 'product-basic-cta';\nexport const PRODUCT_COMPARISON_MODULE = 'product-comparison-module';\n\nexport const CONTENT_BLOCK = 'content-block';\nexport const BASIC_TOUT = 'elc-basic-tout-v1';\nexport const VIDEO_TOUT_YOUTUBE = 'elc-video-tout-youtube-v1';\nexport const VIDEO_TOUT_MP4_FILE = 'elc-video-tout-mp4-file-v1';\nexport const THIRD_PARTY_TOUT = 'elc-third-party-tout-v1';\nexport const VTO_FOUNDATION_OVERLAY = 'elc-vto-foundation-overlay-v1';\n\nexport const OLAPIC_WIDGET = 'ugc-olapic-widget';\n\nexport const VTO = 'vto';\nexport const VTO_CTA_BUTTON = 'vto-cta-button';\nexport const VTO_SKIN_CARE = 'vto-skin-care';\n\nexport const SMARTGIFT = 'smartgift';\n\nexport const STORES = 'stores';\nexport const STORES_DIRECTORY = 'stores-directory';\nexport const SEARCH_RESULTS = 'search-results';\nexport const SEARCH_GNAV_INPUT_FIELD = 'search-gnav-input-field';\nexport const VOICE_SEARCH = 'voice-search';\nexport const STORE_DETAILS = 'store-details';\nexport const FIND_IN_STORE_BUTTON = 'find-in-store-button';\nexport const FIND_IN_STORE_MODAL = 'find-in-store-modal';\nexport const PICK_UP_IN_STORE = 'pick-up-in-store';\n\nexport const STYLEGUIDE_TYPOGRAPHY = 'styleguide-typography';\nexport const STYLEGUIDE_BUTTONS = 'styleguide-buttons';\nexport const STYLEGUIDE_INPUTS = 'styleguide-inputs';\nexport const STYLEGUIDE_COMPONENTS = 'styleguide-components';\n\nexport const ELC_RAMP = 'elc-ramp';\n\nexport const CARE_LANDING = 'elc-care-landing';\nexport const ORDER_TRACKING = 'order-tracking';\nexport const AUTO_REPLENISH = 'auto-replenish';\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 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","/* 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 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 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\ninterface IBaseServiceRegistryComp {\n isStarted: boolean;\n isStarting: boolean;\n name: string;\n isLazy?: boolean;\n start(appConfig: IAppConfig): 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: any;\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 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 = AllUpdatedServicesTypes | 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 { 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","import {\n root,\n IAppConfig,\n IManifestServiceRegistryComp,\n IServiceRegistryComponent\n} from '@estee/elc-universal-utils';\nimport { Service } from '../Service';\n\ninterface IServiceManifestOptions {\n // name and version are undefined in the manifest as all what is exposed is this interface\n name: string;\n version: string;\n views: string[];\n events?: string[];\n queries?: string[];\n}\n\nconst defaultManifestOptions = {\n events: [],\n queries: [],\n name: '',\n version: ''\n};\n\ntype ServiceNamesObject = { [key: string]: string };\ninterface IServiceLoadFn {\n diContainer: { get: Function };\n serviceNames: ServiceNamesObject;\n}\ntype ServiceLoad = Promise;\n\nexport const createServiceManifest = (\n manifestOptions: IServiceManifestOptions,\n serviceLoadFn: () => ServiceLoad,\n serviceKey: string\n): IManifestServiceRegistryComp => {\n const options = {\n ...defaultManifestOptions,\n ...manifestOptions,\n isLazy: true,\n isStarted: false,\n isStarting: false\n };\n\n root.ServiceRegistry = root.ServiceRegistry || {};\n\n // A service is completely unloaded in the beginning. It's definition\n // consists just of an isLoaded flag, a manifest object detailing what does it\n // offer publicly (queries, events listened for, views) and a method to dynamically load it's core.\n\n return {\n ...options,\n start: async (appConfig: IAppConfig) => {\n const { diContainer, serviceNames } = await serviceLoadFn();\n\n const serviceInstance: T = diContainer.get(serviceNames[serviceKey]);\n if (!root.ServiceRegistry[serviceInstance.name].isStarting) {\n serviceInstance.register(options);\n\n await serviceInstance.start(appConfig || {});\n }\n const serviceFromRoot = root.ServiceRegistry[serviceInstance.name] || serviceInstance;\n\n return serviceFromRoot as IServiceRegistryComponent;\n }\n };\n};\n","import { createServiceManifest } from '@estee/elc-service';\n\nimport {\n EMAIL_OPT_IN,\n PRODUCT_NOTIFY_ME,\n VIEW_EMAIL_OPT_IN,\n HELPFUL_LINKS\n} from '@estee/elc-service-view-names';\nimport { IManifestServiceRegistryComp } from '@estee/elc-universal-utils';\nimport { events, serviceQueries as queries } from '@estee/elc-service-bus';\nimport { CommunicationsService } from './service-setup/CommunicationsService';\n\nconst serviceViews = [EMAIL_OPT_IN, PRODUCT_NOTIFY_ME, VIEW_EMAIL_OPT_IN, HELPFUL_LINKS];\nconst { name, version } = __serviceInfo__;\n\nconst serviceEvents = [\n events.GET_OPTIN_PROFILE_LOAD,\n events.AUTH_SUCCEDED,\n events.APPOINTMENT_BOOKED,\n events.CONTINUE_AS_GUEST_CLICKED,\n events.USER_PROFILE_CHANGED,\n events.SIGNED_OUT,\n events.PRODUCT_NOTIFY_ME_REQUEST,\n events.PRODUCT_NOTIFY_ME_REQUEST_SUCCESS,\n events.PRODUCT_NOTIFY_ME_REQUEST_FAILURE,\n events.PRODUCT_NOTIFY_ME_TRIGGERED\n];\n\nconst serviceQueries = [queries.EMAIL_OPT_IN];\n\nexport const ServiceManifest: IManifestServiceRegistryComp = createServiceManifest<\n CommunicationsService\n>(\n {\n views: serviceViews,\n events: serviceEvents,\n queries: serviceQueries,\n name,\n version\n },\n () =>\n import(\n /* webpackChunkName: 'core' */\n './service-setup/diContainer'\n ),\n 'communicationsService'\n);\n","import { root, setupServiceInfo } from '@estee/elc-universal-utils';\nimport { ServiceManifest } from './manifest';\n\nsetupServiceInfo(__serviceInfo__);\n\nroot.ServiceRegistry['elc-service-communications'] = ServiceManifest;\n","module.exports = __WEBPACK_EXTERNAL_MODULE__estee_elc_service_bus__;","module.exports = __WEBPACK_EXTERNAL_MODULE_hypo_container__;","module.exports = __WEBPACK_EXTERNAL_MODULE_mobx__;","module.exports = __WEBPACK_EXTERNAL_MODULE_mobx_react__;","module.exports = __WEBPACK_EXTERNAL_MODULE_react__;","module.exports = __WEBPACK_EXTERNAL_MODULE_react_dom__;","module.exports = __WEBPACK_EXTERNAL_MODULE_styled_components__;"],"sourceRoot":""}