{"version":3,"file":"app.8f63dd4c1586b419149c.min.js","mappings":"2NAKIA,EAAAA,GAAaC,eACbC,EAAAA,GAAY,CACRC,IAAKH,EAAAA,GAAaG,MAEtBD,EAAAA,GAAc,SAAU,6BAExBE,EAAAA,EAAiBC,GAAGC,EAAAA,EAAOC,KAAKC,SAAS,SAAAC,GAAkBA,EAAfC,iBAEpCR,EAAAA,IAER,KAGJ,sDACKS,MAAK,SAACC,GAAY,IAClBC,OAAM,SAACC,GAAK,OAAKC,QAAQC,IAAI,gDAAiDF,EAAM,G,2FCpB5ER,EAAS,CAClBW,YAAa,CACTC,MAAO,SAEXX,KAAM,CACFC,QAAS,YA+EjB,QA3EA,WACIW,KAAKC,OAAS,CACVC,UAAW,CAAC,EACZC,IAAK,SAAUC,GACX,OAAOJ,KAAKE,UAAUE,EAC1B,EACAC,IAAK,SAAUD,EAAKE,GAChBN,KAAKE,UAAUE,GAAOE,CAC1B,EACAC,IAAK,SAAUH,GACX,QAASJ,KAAKE,UAAUE,EAC5B,GAGJJ,KAAKQ,aAAe,CAChBC,gBAAiB,CAAC,EAClBN,IAAK,SAAUC,GACX,OAAOJ,KAAKS,gBAAgBL,EAChC,EACAC,IAAK,SAAUD,EAAKE,GAChBN,KAAKS,gBAAgBL,GAAOE,CAChC,EACAC,IAAK,SAAUH,GACX,QAASJ,KAAKS,gBAAgBL,EAClC,GAGJJ,KAAKU,OAAS,SAAUN,EAAKE,GACzBN,KAAKC,OAAOI,IAAID,EAAKE,GACrBN,KAAKW,QAAQP,EAAKE,EACtB,EAEAN,KAAKd,GAAK,SAAUkB,EAAKQ,GACrB,IAAIC,EAAc,WACdb,KAAKc,aAAaV,EAAKQ,EAC3B,EAAEG,KAAKf,MAEHgB,EAAU,CAAEJ,SAAUA,EAAUC,YAAaA,GAC7Cb,KAAKQ,aAAaD,IAAIH,GACNJ,KAAKQ,aAAaL,IAAIC,GAC5Ba,KAAKD,GAEfhB,KAAKQ,aAAaH,IAAID,EAAK,CAACY,IAGhC,IAAIE,EAAelB,KAAKC,OAAOE,IAAIC,GAInC,OAFIQ,GAAYM,GAAcN,EAASM,EAAcL,GAE9CA,CACX,EAEAb,KAAKW,QAAU,SAAUP,EAAKE,GAC1B,IAAIa,EAAYnB,KAAKQ,aAAaL,IAAIC,GAEjCe,GACLA,EAAUC,QAAQC,SAAQ,SAAUC,GAChCA,EAASV,UAAYU,EAASV,SAASN,EAAMgB,EAAST,YAC1D,GACJ,EAEAb,KAAKc,aAAe,SAAUV,EAAKQ,GAC/B,IAAIW,EAAqBvB,KAAKQ,aAAaL,IAAIC,GAC3CoB,GAAS,EAQb,OAPiBD,EAAmBE,MAAK,SAAUH,EAAUI,GACzD,GAAIJ,EAASV,WAAaA,EAEtB,OADAY,EAAQE,GACD,CAEf,IAEoBH,EAAmBI,OAAOH,EAAO,GAAKD,CAC9D,CACJ,C,4UClFMK,EAAkB,oBAClBC,EAAgBC,SAASC,eAAeH,GAC9C,IAAKC,EAAe,MAAM,IAAIG,MAAM,yCAADC,OAA0CL,EAAe,MAE5F,SAASM,EAASC,EAAMC,GACpB,OAA8D,IAAvDD,EAAKE,QAAQD,EAAQD,EAAKG,OAASF,EAAOE,OACrD,CAEA,IAAAC,EAYIC,KAAKC,MAAMZ,EAAca,aAXzBC,EAAMJ,EAANI,OACAC,EAASL,EAATK,UACAC,EAAQN,EAARM,SACAC,EAAgBP,EAAhBO,iBACAC,EAAsBR,EAAtBQ,uBACAC,EAA0BT,EAA1BS,2BACAC,EAAsBV,EAAtBU,uBACAC,EAAWX,EAAXW,YACAC,EAAWZ,EAAXY,YACAC,EAAmBb,EAAnBa,oBACAC,EAAQd,EAARc,SAGSC,EAAapB,EAASS,EAAQ,KAAOA,EAAS,GAAHV,OAAMU,EAAM,KAEvDY,EAAerB,EAASmB,EAAU,KAAOA,EAAW,GAAHpB,OAAMoB,EAAQ,KAE/DtE,EAAS,CAClBD,eAAgB8D,EAChB5D,IAAK4D,GAGIY,EAAQ,CACjBX,SAAAA,EACAC,iBAAAA,EACAC,uBAAAA,EACAC,2BAAAA,EACAC,uBAAAA,EACAC,YAAAA,EACAC,YAAAA,EACAC,oBAAAA,GAGSK,EAAsB,UAEtBC,EAAuB,8BACvBC,EAA4C,sCAC5CC,EAA6B,iCAC7BC,EAAiB,YAEjBC,EAAkD,EAClDC,EAA6B,EAC7BC,EAAmC,C,mBCnDhDvE,EAAOwE,QAAUC,I","sources":["webpack://consumerscienceplatform/./src/js/start.js","webpack://consumerscienceplatform/./src/js/system/application-state.js","webpack://consumerscienceplatform/./src/js/system/config.js","webpack://consumerscienceplatform/external var \"Oidc\""],"sourcesContent":["import * as Sentry from \"@sentry/browser\";\nimport \"../less/build.less\";\nimport applicationState, { states } from \"./system/application-state\";\nimport { Sentry as SentryConfig } from \"./system/config\";\n\nif (SentryConfig.isConfigured) {\n Sentry.init({\n dsn: SentryConfig.dsn,\n });\n Sentry.setTag(\"source\", \"Consumer Science Platform\");\n\n applicationState.on(states.user.current, ({ isAuthenticated }) => {\n if (!isAuthenticated) {\n Sentry.setUser();\n }\n });\n}\n\nimport(/* webpackChunkName: \"csp\" */ \"./main\")\n .then((module) => {})\n .catch((error) => console.log(\"An error occurred while loading the component\", error));\n","export const states = {\n application: {\n ready: \"ready\",\n },\n user: {\n current: \"current\",\n },\n};\n\nfunction ApplicationState() {\n this._state = {\n _stateMap: {},\n get: function (key) {\n return this._stateMap[key];\n },\n set: function (key, data) {\n this._stateMap[key] = data;\n },\n has: function (key) {\n return !!this._stateMap[key];\n },\n };\n\n this._subscribers = {\n _subscribersMap: {},\n get: function (key) {\n return this._subscribersMap[key];\n },\n set: function (key, data) {\n this._subscribersMap[key] = data;\n },\n has: function (key) {\n return !!this._subscribersMap[key];\n },\n };\n\n this.update = function (key, data) {\n this._state.set(key, data);\n this._notify(key, data);\n };\n\n this.on = function (key, callback) {\n var unsubscribe = function () {\n this._unsubscribe(key, callback);\n }.bind(this);\n\n var handler = { callback: callback, unsubscribe: unsubscribe };\n if (this._subscribers.has(key)) {\n var listeners = this._subscribers.get(key);\n listeners.push(handler);\n } else {\n this._subscribers.set(key, [handler]);\n }\n\n var initialState = this._state.get(key);\n\n if (callback && initialState) callback(initialState, unsubscribe);\n\n return unsubscribe;\n };\n\n this._notify = function (key, data) {\n var listeners = this._subscribers.get(key);\n\n if (!listeners) return;\n listeners.slice().forEach(function (listener) {\n listener.callback && listener.callback(data, listener.unsubscribe);\n });\n };\n\n this._unsubscribe = function (key, callback) {\n var arrayWithListeners = this._subscribers.get(key);\n var index = -1;\n var foundMatch = arrayWithListeners.some(function (listener, listenerIndex) {\n if (listener.callback === callback) {\n index = listenerIndex;\n return true;\n }\n });\n\n return foundMatch ? arrayWithListeners.splice(index, 1) : arrayWithListeners;\n };\n}\n\nexport default new ApplicationState();\n","const configElementId = \"csp-configuration\";\nconst configElement = document.getElementById(configElementId);\nif (!configElement) throw new Error(`Could not find configuration element '${configElementId}'`);\n\nfunction endsWith(text, suffix) {\n return text.indexOf(suffix, text.length - suffix.length) !== -1;\n}\n\nconst {\n apiUrl,\n sentryDSN,\n nAuthUri,\n nAuthRedirectUri,\n nAuthSilentRedirectUri,\n nAuthPostLogoutRedirectUri,\n nAuthTokenCookieDomain,\n nAuthClient,\n nAuthScopes,\n includeCookieDomain,\n adminUrl,\n} = JSON.parse(configElement.textContent);\n\nexport const apiBaseUrl = endsWith(apiUrl, \"/\") ? apiUrl : `${apiUrl}/`;\n\nexport const adminBaseUrl = endsWith(adminUrl, \"/\") ? adminUrl : `${adminUrl}/`;\n\nexport const Sentry = {\n isConfigured: !!sentryDSN,\n dsn: sentryDSN,\n};\n\nexport const NAuth = {\n nAuthUri,\n nAuthRedirectUri,\n nAuthSilentRedirectUri,\n nAuthPostLogoutRedirectUri,\n nAuthTokenCookieDomain,\n nAuthClient,\n nAuthScopes,\n includeCookieDomain,\n};\n\nexport const EXPORTS_FOLDER_NAME = \"Exports\";\n\nexport const MMM_DATA_UPLOAD_ROLE = \"csp.client-uploads.mmm-data\";\nexport const BRANDTRACKER_MEDIA_INVESTMENT_UPLOAD_ROLE = \"csp.client-uploads.media-investment\";\nexport const SHARE_FILES_WITH_NEPA_ROLE = \"csp.client-uploads.share-files\";\nexport const CSP_ADMIN_ROLE = \"csp.admin\";\n\nexport const BRANDTRACKER_MEDIA_INVESTMENT_UPLOAD_FEATURE_ID = 2;\nexport const MMM_DATA_UPLOAD_FEATURE_ID = 4;\nexport const SHARE_FILES_WITH_NEPA_FEATURE_ID = 1;","module.exports = Oidc;"],"names":["SentryConfig","isConfigured","Sentry","dsn","applicationState","on","states","user","current","_ref","isAuthenticated","then","module","catch","error","console","log","application","ready","this","_state","_stateMap","get","key","set","data","has","_subscribers","_subscribersMap","update","_notify","callback","unsubscribe","_unsubscribe","bind","handler","push","initialState","listeners","slice","forEach","listener","arrayWithListeners","index","some","listenerIndex","splice","configElementId","configElement","document","getElementById","Error","concat","endsWith","text","suffix","indexOf","length","_JSON$parse","JSON","parse","textContent","apiUrl","sentryDSN","nAuthUri","nAuthRedirectUri","nAuthSilentRedirectUri","nAuthPostLogoutRedirectUri","nAuthTokenCookieDomain","nAuthClient","nAuthScopes","includeCookieDomain","adminUrl","apiBaseUrl","adminBaseUrl","NAuth","EXPORTS_FOLDER_NAME","MMM_DATA_UPLOAD_ROLE","BRANDTRACKER_MEDIA_INVESTMENT_UPLOAD_ROLE","SHARE_FILES_WITH_NEPA_ROLE","CSP_ADMIN_ROLE","BRANDTRACKER_MEDIA_INVESTMENT_UPLOAD_FEATURE_ID","MMM_DATA_UPLOAD_FEATURE_ID","SHARE_FILES_WITH_NEPA_FEATURE_ID","exports","Oidc"],"sourceRoot":""}