{"version":3,"sources":["services/Utils.js","translations/i18n.js","containers/App/heap.js","containers/App/newrelic.js","services/DynamicText.js","services/VariationContext.js","services/variations.js","services/reducer.js","components/DatePicker/CustomDateDrop.js","components/DatePicker/index.js","components/SearchInput/index.js","containers/Header/index.js","containers/Table/HeaderWithDrop.js","containers/Table/TextHeaderWithDrop.js","containers/Table/TableHeaderText.js","containers/Table/TableFooterText.js","containers/Table/MobileTable.js","containers/Table/index.js","services/API.js","containers/Main/index.js","components/ErrorBoundary/index.js","containers/App/index.js","serviceWorker.js","index.js"],"names":["isObject","item","Array","isArray","i18next","use","initReactI18next","init","interpolation","escapeValue","lng","fallbackLng","default","resources","mergeDeep","target","sources","length","source","shift","key","Object","assign","translation","months","Date","Resources","StrikeTime","dataFromCms","module","exports","window","heap","load","e","t","appid","config","r","forceSSL","document","location","protocol","a","createElement","type","async","src","n","getElementsByTagName","parentNode","insertBefore","o","push","concat","prototype","slice","call","arguments","p","c","process","track","event","params","err","REACT_APP_NEWRELIC_APPLICATION_ID","REACT_APP_NEWRELIC_LICENSE_KEY","console","warn","NREUM","__nr_require","1","s","log","i","localStorage","getItem","split","indexOf","dev","nrDev","on","stack","join","2","UncaughtException","this","message","sourceURL","line","now","f","u","onerror","d","l","features","apply","Error","h","xhrWrappable","thrown","3","ins","4","M","N","y","hash","g","E","emit","m","v","w","b","x","O","P","R","T","L","j","S","get","spa","buffer","5","performance","timing","getEntriesByType","stn","EV","bstStart","bstType","time","startPath","pathname","passive","6","hasOwnProperty","getPrototypeOf","inPlace","XMLHttpRequest","object","handleEvent","function","name","wrapped","7","then","Request","Response","fetch","headers","rxSize","8","history","9","removeEventListener","nodeName","toLowerCase","addEventListener","match","parent","HTMLElement","HTMLHeadElement","HTMLBodyElement","10","MO","MutationObserver","11","context","getCtx","PR","Promise","forEach","resolve","catch","create","constructor","value","getOwnPropertyNames","promise","nextPromise","toString","12","13","method","timerDuration","isNaN","14","readyState","resolved","XHR","SI","data","createTextNode","observe","characterData","15","metrics","ended","listener","aborted","duration","startTime","status","responseType","response","responseText","lastSize","sameOrigin","getResponseHeader","cat","pop","cbTime","xhr","totalCbs","called","end","xhrGuids","opera","loaded","host","hostname","port","loader_config","setRequestHeader","xpid","txSize","onloadCalled","onload","xhrCbStart","16","href","charAt","domain","17","newrelic","addPageAction","setCurrentRouteName","interaction","createTracer","noticeError","18","ArrayBuffer","byteLength","Blob","size","FormData","JSON","stringify","19","navigator","userAgent","20","agent","version","21","22","23","exists","navigationStart","24","Function","nrWrapper","defineProperty","keys","set","flag","ee","api","feature","backlog","splice","listeners","abort","gos","writable","enumerable","handle","id","loader","info","setTimeout","licenseKey","applicationID","offset","Math","round","max","getTime","ST","setImmediate","CT","clearTimeout","REQ","Event","beacon","errorBeacon","test","origin","sa","replaceMap","formatTextDate","date","addYear","monthNames","returnObjects","dt","day","getDate","getMonth","getFullYear","getDescendantPropValue","obj","modelName","arr","val","replaceText","str","fundData","filters","regexText","replace","aux","RegExp","startDate","endDate","conditionIndex","condition","conditionResult","toEval","eval","substr","error","replaceMarkdownText","fn","getCategoryKey","fundCategoryTier1","LeverageFactor","IsIndexLeveraged","isFutureBased","platform","isWTMA","isSnL","isBasket","DynamicText","VariationContext","React","createContext","mode","embedded","standalone","actions","reducer","state","action","loading","ticker","bloombergTickerPrimary","bloombergTicker","fundList","CustomDateDrop","forwardRef","closeDrop","dispatch","useState","dates","setDates","undefined","setDate","align","top","right","current","onClickOutside","onEsc","pad","overflow","background","style","gap","range","daysOfWeek","onSelect","arg","direction","justify","map","onClick","newEndDate","newStartDate","toISOString","selectPredifinedRange","primary","defaultProps","Dates","disabled","format","dateStr","minWidth","textAlign","cursor","placeholder","DatePicker","ref","useRef","showDrop","setShowDrop","alignContent","preventDefault","stopPropagation","FormDown","contains","strContainsParts","parts","hasAll","fundListToSuggestions","productName","filter","AutocompleteInput","suggestions","setSuggestions","setValue","useDebouncedCallback","typedValue","newSuggestions","getSuggestionsDebounced","find","onChange","onEnter","maxHeight","SearchInput","props","width","Header","variation","useContext","variations","level","HeaderWithDrop","text","dropText","over","setOver","color","onMouseOver","onMouseOut","onFocus","onBlur","CircleQuestion","TextHeaderWithDrop","IndexChangeDisclaimer","indexChangeDate","changeDate","showIndexChangeDisclaimer","TableHeaderText","categoryKey","computeHeaderText","computeFooterText","getDisclaimer","TableFooterText","alignSelf","performanceApp","isoCode","MobileTable","columns","property","scope","header","datum","dataScope","render","footer","getFullIndexName","relatedIndex","indexTR","IndexNameTR","indexER","IndexNameER","month","formatDate","displayName","Fund","Index","fundPct","indexPct","impliedLeverage","Table","Consumer","fullwidth","productList","pctChange","v1","v2","formatDtParam","extendDecimals","result","decimals","Number","POSITIVE_INFINITY","NEGATIVE_INFINITY","toFixed","API","getProductList","axios","sort","textA","toUpperCase","textB","getPerformance","resultData","reduce","ac","dtEntry","entityID","wtType","index","prev","_index","first","getInitialState","getElementsByClassName","innerHTML","trim","getProductTickerFromPage","fund","exchangeCode","getProductNameFromPage","qs","queryString","parse","search","Main","useLocation","navigate","useNavigate","useReducer","useEffect","fetchData","MainWrapper","setFundList","fetchFundList","ErrorBoundary","hasError","errorInfo","children","REACT_APP_CONTACT_US_URL","secondary","weight","Component","App","configVariation","_i18n","useTranslation","i18n","siteCoreLang","changeLanguage","Provider","path","data-version","data-commit-hash","REACT_APP_COMMIT_HASH","Boolean","root","getElementById","ReactDOM","dataset","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.1ae52ae9.chunk.js","sourcesContent":["/**\n * Simple object check.\n * @param item\n * @returns {boolean}\n */\nexport function isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item);\n}\n\n/**\n * Deep merge two objects.\n * @param target\n * @param ...sources\n */\nexport function mergeDeep(target, ...sources) {\n if (!sources.length) return target;\n const source = sources.shift();\n\n if (isObject(target) && isObject(source)) {\n for (const key in source) {\n if (isObject(source[key])) {\n if (!target[key]) Object.assign(target, { [key]: {} });\n mergeDeep(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n }\n }\n\n return mergeDeep(target, ...sources);\n}\n","import i18next from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport { mergeDeep } from '../services/Utils';\n\nimport dataFromCms from './cmsTranslations.json';\n\nconst appTranslations = {\n 'en-GB': {\n translation: {\n 'Select a product to see performance breakdown':\n 'Select a product to see performance breakdown',\n 'Search for a product': 'Search for a product',\n 'Performance data for this product is currently not available. If you believe this to be an error please contact us.':\n 'Performance data for this product is currently not available. If you believe this to be an error please contact us.',\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n Date: 'Date',\n Resources: 'Resources',\n StrikeTime: 'Strike Time',\n 'Index rebased to 100': 'Index rebased to 100',\n 'Daily % return': 'Daily % return',\n 'Implied Leverage': 'Implied Leverage',\n },\n },\n 'it-IT': {\n translation: {\n 'Select a product to see performance breakdown':\n \"Selezionare un prodotto per vedere l'analisi dettagliata della performance.\",\n 'Search for a product': 'Cerca un prodotto',\n 'Performance data for this product is currently not available. If you believe this to be an error please contact us.':\n 'I dati relativi alla performance di questo prodotto non sono attualmente disponibili. Se ritenete che questo sia un errore, vi invitiamo a contattarci.',\n months: [\n 'gennaio',\n 'febbraio',\n 'marzo',\n 'aprile',\n 'maggio',\n 'giugno',\n 'luglio',\n 'agosto',\n 'settembre',\n 'ottobre',\n 'novembre',\n 'dicembre',\n ],\n Date: 'Data',\n Resources: 'Risorse',\n StrikeTime: 'Orario di rilevazione',\n 'Index rebased to 100': 'Indice ribasato a 100',\n 'Daily % return': '% di rendimento giornaliero',\n 'Implied Leverage': 'Leva implicita',\n },\n },\n 'de-DE': {\n translation: {},\n },\n};\n\ni18next.use(initReactI18next).init({\n interpolation: {\n // React already does escaping\n escapeValue: false,\n },\n lng: 'en-GB',\n fallbackLng: {\n 'it-CH': ['it-IT', 'en-GB'],\n 'de-CH': ['de-DE', 'en-GB'],\n 'de-AT': ['de-DE', 'en-GB'],\n default: ['en-GB'],\n },\n resources: mergeDeep(appTranslations, dataFromCms),\n});\n\nexport default i18next;\n","/* eslint-disable */\n\nmodule.exports = {\n init: () => {\n if(!process.env.REACT_APP_HEAP_ID){\n return;\n }\n window.heap=window.heap||[],heap.load=function(e,t){window.heap.appid=e,window.heap.config=t=t||{};var r=t.forceSSL||\"https:\"===document.location.protocol,a=document.createElement(\"script\");a.type=\"text/javascript\",a.async=!0,a.src=(r?\"https:\":\"http:\")+\"//cdn.heapanalytics.com/js/heap-\"+e+\".js\";var n=document.getElementsByTagName(\"script\")[0];n.parentNode.insertBefore(a,n);for(var o=function(e){return function(){heap.push([e].concat(Array.prototype.slice.call(arguments,0)))}},p=[\"addEventProperties\",\"addUserProperties\",\"clearEventProperties\",\"identify\",\"resetIdentity\",\"removeEventProperty\",\"setEventProperties\",\"track\",\"unsetEventProperty\"],c=0;c {\n try{\n window.heap.track(event, params);\n }catch(err){}\n }\n };\n \n ","/* eslint-disable */\nmodule.exports = {\n init: () => {\n if(!process.env.REACT_APP_NEWRELIC_APPLICATION_ID || !process.env.REACT_APP_NEWRELIC_LICENSE_KEY){\n console.warn('Missing newrelic setup.')\n }\n window.NREUM || (NREUM = {}),\n (__nr_require = (function(t, e, n) {\n function r(n) {\n if (!e[n]) {\n const o = (e[n] = { exports: {} });\n t[n][0].call(\n o.exports,\n (e) => {\n let o = t[n][1][e];\n return r(o || e);\n },\n o,\n o.exports,\n );\n }\n return e[n].exports;\n }\n if (typeof __nr_require === 'function') return __nr_require;\n for (let o = 0; o < n.length; o++) r(n[o]);\n return r;\n })(\n {\n 1: [\n function (t, e, n) {\n function r(t) {\n try {\n s.console && console.log(t);\n } catch (e) {}\n }\n var o;\n \n \n var i = t(\"ee\");\n \n \n var a = t(21);\n \n \n var s = {};\n try {\n (o = localStorage.getItem('__nr_flags').split(',')),\n console\n && 'function' === typeof console.log\n && ((s.console = !0),\n o.indexOf('dev') !== -1 && (s.dev = !0),\n o.indexOf('nr_dev') !== -1 && (s.nrDev = !0));\n } catch (c) {}\n s.nrDev\n && i.on('internal-error', (t) => {\n r(t.stack);\n }),\n s.dev\n && i.on('fn-err', (t, e, n) => {\n r(n.stack);\n }),\n s.dev\n && (r('NR AGENT IN DEVELOPMENT MODE'),\n r(\n 'flags: '\n + a(s, (t, e) => {\n return t;\n }).join(', '),\n ));\n },\n {},,\n ],\n 2: [\n function (t, e, n) {\n function r(t, e, n, r, s) {\n try {\n l ? (l -= 1) : o(s || new UncaughtException(t, e, n), !0);\n } catch (f) {\n try {\n i('ierr', [f, c.now(), !0]);\n } catch (d) {}\n }\n return 'function' === typeof u && u.apply(this, a(arguments));\n }\n function UncaughtException(t, e, n) {\n (this.message = t || 'Uncaught error with no additional information'),\n (this.sourceURL = e),\n (this.line = n);\n }\n function o(t, e) {\n let n = e ? null : c.now();\n i('err', [t, n]);\n }\n var i = t('handle');\n \n \n var a = t(22);\n \n \n var s = t(\"ee\");\n \n \n var c = t(\"loader\");\n \n \n var f = t(\"gos\");\n \n \n var u = window.onerror;\n \n \n var d = !1;\n \n \n var p = \"nr@seenError\";\n \n \n var l = 0;\n (c.features.err = !0), t(1), (window.onerror = r);\n try {\n throw new Error();\n } catch (h) {\n 'stack' in h\n && (t(13),\n t(12),\n 'addEventListener' in window && t(6),\n c.xhrWrappable && t(14),\n (d = !0));\n }\n s.on('fn-start', (t, e, n) => {\n d && (l += 1);\n }),\n s.on('fn-err', function (t, e, n) {\n d\n && !n[p]\n && (f(n, p, () => {\n return !0;\n }),\n (this.thrown = !0),\n o(n));\n }),\n s.on('fn-end', function () {\n d && !this.thrown && l > 0 && (l -= 1);\n }),\n s.on('internal-error', (t) => {\n i(\"ierr\", [t, c.now(), !0]);\n });\n },\n {},,\n ],\n 3: [\n function (t, e, n) {\n t('loader').features.ins = !0;\n },\n {},,\n ],\n 4: [\n function (t, e, n) {\n function r() {\n M++, (N = y.hash), (this[u] = g.now());\n }\n function o() {\n M--, y.hash !== N && i(0, !0);\n let t = g.now();\n (this[h] = ~~this[h] + t - this[u]), (this[d] = t);\n }\n function i(t, e) {\n E.emit('newURL', ['' + y, e]);\n }\n function a(t, e) {\n t.on(e, function () {\n this[e] = g.now();\n });\n }\n var s = '-start';\n \n \n var c = \"-end\";\n \n \n var f = \"-body\";\n \n \n var u = \"fn\" + s;\n \n \n var d = \"fn\" + c;\n \n \n var p = \"cb\" + s;\n \n \n var l = \"cb\" + c;\n \n \n var h = \"jsTime\";\n \n \n var m = \"fetch\";\n \n \n var v = \"addEventListener\";\n \n \n var w = window;\n \n \n var y = w.location;\n \n \n var g = t('loader');\n if (w[v] && g.xhrWrappable) {\n var b = t(10);\n \n \n var x = t(11);\n \n \n var E = t(8);\n \n \n var O = t(6);\n \n \n var P = t(13);\n \n \n var R = t(7);\n \n \n var T = t(14);\n \n \n var L = t(9);\n \n \n var j = t(\"ee\");\n \n \n var S = j.get('tracer');\n t(15), (g.features.spa = !0);\n var N;\n \n \n var M = 0;\n j.on(u, r),\n j.on(p, r),\n j.on(d, o),\n j.on(l, o),\n j.buffer([u, d, 'xhr-done', 'xhr-resolved']),\n O.buffer([u]),\n P.buffer(['setTimeout' + c, 'clearTimeout' + s, u]),\n T.buffer([u, 'new-xhr', 'send-xhr' + s]),\n R.buffer([m + s, `${m }-done`, m + f + s, m + f + c]),\n E.buffer(['newURL']),\n b.buffer([u]),\n x.buffer(['propagate', p, l, 'executor-err', 'resolve' + s]),\n S.buffer([u, 'no-' + u]),\n L.buffer(['new-jsonp', 'cb-start', 'jsonp-error', 'jsonp-end']),\n a(T, 'send-xhr' + s),\n a(j, 'xhr-resolved'),\n a(j, 'xhr-done'),\n a(R, m + s),\n a(R, `${m }-done`),\n a(L, 'new-jsonp'),\n a(L, 'jsonp-end'),\n a(L, 'cb-start'),\n E.on('pushState-end', i),\n E.on('replaceState-end', i),\n w[v]('hashchange', i, !0),\n w[v]('load', i, !0),\n w[v](\n 'popstate',\n () => {\n i(0, M > 1);\n },\n !0,\n );\n }\n },\n {},,\n ],\n 5: [\n function (t, e, n) {\n function r(t) {}\n if (window.performance && window.performance.timing && window.performance.getEntriesByType) {\n let o = t('ee');\n \n \n var i = t(\"handle\");\n \n \n var a = t(13);\n \n \n var s = t(12);\n \n \n var c = \"learResourceTimings\";\n \n \n var f = \"addEventListener\";\n \n \n var u = \"resourcetimingbufferfull\";\n \n \n var d = \"bstResource\";\n \n \n var p = \"resource\";\n \n \n var l = \"-start\";\n \n \n var h = \"-end\";\n \n \n var m = \"fn\" + l;\n \n \n var v = \"fn\" + h;\n \n \n var w = \"bstTimer\";\n \n \n var y = \"pushState\";\n \n \n var g = t('loader');\n (g.features.stn = !0), t(8);\n let b = NREUM.o.EV;\n o.on(m, function (t, e) {\n let n = t[0];\n n instanceof b && (this.bstStart = g.now());\n }),\n o.on(v, function (t, e) {\n let n = t[0];\n n instanceof b && i('bst', [n, e, this.bstStart, g.now()]);\n }),\n a.on(m, function (t, e, n) {\n (this.bstStart = g.now()), (this.bstType = n);\n }),\n a.on(v, function (t, e) {\n i(w, [e, this.bstStart, g.now(), this.bstType]);\n }),\n s.on(m, function () {\n this.bstStart = g.now();\n }),\n s.on(v, function (t, e) {\n i(w, [e, this.bstStart, g.now(), 'requestAnimationFrame']);\n }),\n o.on(y + l, function (t) {\n (this.time = g.now()), (this.startPath = location.pathname + location.hash);\n }),\n o.on(y + h, function (t) {\n i('bstHist', [\n location.pathname + location.hash,\n this.startPath,\n this.time,\n ]);\n }),\n f in window.performance\n && (window.performance['c' + c]\n ? window.performance[f](\n u,\n (t) => {\n i(d, [window.performance.getEntriesByType(p)]),\n window.performance[\"c\" + c]();\n },\n !1,\n )\n : window.performance[f](\n 'webkit' + u,\n (t) => {\n i(d, [window.performance.getEntriesByType(p)]),\n window.performance[\"webkitC\" + c]();\n },\n !1,\n )),\n document[f]('scroll', r, { passive: !0 }),\n document[f]('keypress', r, !1),\n document[f]('click', r, !1);\n }\n },\n {},,\n ],\n 6: [\n function (t, e, n) {\n function r(t) {\n for (var e = t; e && !e.hasOwnProperty(u);) {e = Object.getPrototypeOf(e);}\n e && o(e);\n }\n function o(t) {\n s.inPlace(t, [u, d], '-', i);\n }\n function i(t, e) {\n return t[1];\n }\n var a = t('ee').get('events');\n \n \n var s = t(24)(a, !0);\n \n \n var c = t(\"gos\");\n \n \n var f = XMLHttpRequest;\n \n \n var u = \"addEventListener\";\n \n \n var d = 'removeEventListener';\n (e.exports = a),\n 'getPrototypeOf' in Object\n ? (r(document), r(window), r(f.prototype))\n : f.prototype.hasOwnProperty(u)\n && (o(window), o(f.prototype)),\n a.on(`${u }-start`, function (t, e) {\n let n = t[1];\n \n \n var r = c(n, 'nr@wrapped', () => {\n function t() {\n if (\"function\" == typeof n.handleEvent)\n return n.handleEvent.apply(n, arguments);\n }\n var e = { object: t, function: n }[typeof n];\n return e ? s(e, \"fn-\", null, e.name || \"anonymous\") : n;\n });\n this.wrapped = t[1] = r;\n }),\n a.on(`${d }-start`, function (t) {\n t[1] = this.wrapped || t[1];\n });\n },\n {},,\n ],\n 7: [\n function (t, e, n) {\n function r(t, e, n) {\n let r = t[e];\n 'function' === typeof r\n && (t[e] = function () {\n let t = r.apply(this, arguments);\n return (\n o.emit(`${n }start`, arguments, t),\n t.then(\n (e) => {\n return o.emit(n + \"end\", [null, e], t), e;\n },\n (e) => {\n throw (o.emit(n + \"end\", [e], t), e);\n },\n )\n );\n });\n }\n var o = t('ee').get('fetch');\n \n \n var i = t(21);\n e.exports = o;\n let a = window;\n \n \n var s = \"fetch-\";\n \n \n var c = s + \"body-\";\n \n \n var f = [\"arrayBuffer\", \"blob\", \"json\", \"text\", \"formData\"];\n \n \n var u = a.Request;\n \n \n var d = a.Response;\n \n \n var p = a.fetch;\n \n \n var l = 'prototype';\n u\n && d\n && p\n && (i(f, (t, e) => {\n r(u[l], e, c), r(d[l], e, c);\n }),\n r(a, 'fetch', s),\n o.on(`${s }end`, function (t, e) {\n let n = this;\n if (e) {\n let r = e.headers.get('content-length');\n r !== null && (n.rxSize = r), o.emit(s + 'done', [null, e], n);\n } else o.emit(`${s }done`, [t], n);\n }));\n },\n {},,\n ],\n 8: [\n function (t, e, n) {\n let r = t('ee').get('history');\n \n \n var o = t(24)(r);\n (e.exports = r), o.inPlace(window.history, ['pushState', 'replaceState'], '-');\n },\n {},,\n ],\n 9: [\n function (t, e, n) {\n function r(t) {\n function e() {\n c.emit('jsonp-end', [], p),\n t.removeEventListener('load', e, !1),\n t.removeEventListener('error', n, !1);\n }\n function n() {\n c.emit('jsonp-error', [], p),\n c.emit('jsonp-end', [], p),\n t.removeEventListener('load', e, !1),\n t.removeEventListener('error', n, !1);\n }\n let r = t\n && 'string' === typeof t.nodeName\n && 'script' === t.nodeName.toLowerCase();\n if (r) {\n let o = 'function' === typeof t.addEventListener;\n if (o) {\n let a = i(t.src);\n if (a) {\n let u = s(a);\n \n \n var d = 'function' === typeof u.parent[u.key];\n if (d) {\n var p = {};\n f.inPlace(u.parent, [u.key], 'cb-', p),\n t.addEventListener('load', e, !1),\n t.addEventListener('error', n, !1),\n c.emit('new-jsonp', [t.src], p);\n }\n }\n }\n }\n }\n function o() {\n return 'addEventListener' in window;\n }\n function i(t) {\n let e = t.match(u);\n return e ? e[1] : null;\n }\n function a(t, e) {\n let n = t.match(p);\n \n \n var r = n[1];\n \n \n var o = n[3];\n return o ? a(o, e[r]) : e[r];\n }\n function s(t) {\n let e = t.match(d);\n return e && e.length >= 3 ? { key: e[2], parent: a(e[1], window) } : { key: t, parent: window };\n }\n var c = t('ee').get('jsonp');\n \n \n var f = t(24)(c);\n if (((e.exports = c), o())) {\n var u = /[?&](?:callback|cb)=([^&#]+)/;\n \n \n var d = /(.*)\\.([^.]+)/;\n \n \n var p = /^(\\w+)(\\.|$)(.*)$/;\n \n \n var l = ['appendChild', 'insertBefore', 'replaceChild'];\n f.inPlace(HTMLElement.prototype, l, 'dom-'),\n f.inPlace(HTMLHeadElement.prototype, l, 'dom-'),\n f.inPlace(HTMLBodyElement.prototype, l, 'dom-'),\n c.on('dom-start', (t) => {\n r(t[0]);\n });\n }\n },\n {},,\n ],\n 10: [\n function (t, e, n) {\n let r = t('ee').get('mutation');\n \n \n var o = t(24)(r);\n \n \n var i = NREUM.o.MO;\n (e.exports = r),\n i\n && ((window.MutationObserver = function (t) {\n return this instanceof i ? new i(o(t, 'fn-')) : i.apply(this, arguments);\n }),\n (MutationObserver.prototype = i.prototype));\n },\n {},,\n ],\n 11: [\n function (t, e, n) {\n function r(t) {\n let e = a.context();\n \n \n var n = s(t, \"executor-\", e);\n \n \n var r = new f(n);\n return (\n (a.context(r).getCtx = function () {\n return e;\n }),\n a.emit('new-promise', [r, e], e),\n r\n );\n }\n function o(t, e) {\n return e;\n }\n var i = t(24);\n \n \n var a = t(\"ee\").get(\"promise\");\n \n \n var s = i(a);\n \n \n var c = t(21);\n \n \n var f = NREUM.o.PR;\n (e.exports = a),\n f\n && ((window.Promise = r),\n ['all', 'race'].forEach((t) => {\n var e = f[t];\n f[t] = function(n) {\n function r(t) {\n return function() {\n a.emit(\"propagate\", [null, !o], i), (o = o || !t);\n };\n }\n var o = !1;\n c(n, function(e, n) {\n Promise.resolve(n).then(r(\"all\" === t), r(!1));\n });\n var i = e.apply(f, arguments),\n s = f.resolve(i);\n return s;\n };\n }),\n ['resolve', 'reject'].forEach((t) => {\n var e = f[t];\n f[t] = function(t) {\n var n = e.apply(f, arguments);\n return t !== n && a.emit(\"propagate\", [t, !0], n), n;\n };\n }),\n (f.prototype.catch = function (t) {\n return this.then(null, t);\n }),\n (f.prototype = Object.create(f.prototype, {\n constructor: { value: r },\n })),\n c(Object.getOwnPropertyNames(f), (t, e) => {\n try {\n r[e] = f[e];\n } catch (n) {}\n }),\n a.on('executor-start', function (t) {\n (t[0] = s(t[0], 'resolve-', this)),\n (t[1] = s(t[1], 'resolve-', this));\n }),\n a.on('executor-err', (t, e, n) => {\n t[1](n);\n }),\n s.inPlace(f.prototype, ['then'], 'then-', o),\n a.on('then-start', function (t, e) {\n (this.promise = e), (t[0] = s(t[0], 'cb-', this)), (t[1] = s(t[1], 'cb-', this));\n }),\n a.on('then-end', function (t, e, n) {\n this.nextPromise = n;\n let r = this.promise;\n a.emit('propagate', [r, !0], n);\n }),\n a.on('cb-end', function (t, e, n) {\n a.emit('propagate', [n, !0], this.nextPromise);\n }),\n a.on('propagate', function (t, e, n) {\n (this.getCtx && !e)\n || (this.getCtx = function () {\n if (t instanceof Promise) var e = a.context(t);\n return e && e.getCtx ? e.getCtx() : this;\n });\n }),\n (r.toString = function () {\n return '' + f;\n }));\n },\n {},,\n ],\n 12: [\n function (t, e, n) {\n let r = t('ee').get('raf');\n \n \n var o = t(24)(r);\n \n \n var i = 'equestAnimationFrame';\n (e.exports = r),\n o.inPlace(window, ['r' + i, 'mozR' + i, 'webkitR' + i, 'msR' + i], 'raf-'),\n r.on('raf-start', (t) => {\n t[0] = o(t[0], \"fn-\");\n });\n },\n {},,\n ],\n 13: [\n function (t, e, n) {\n function r(t, e, n) {\n t[0] = a(t[0], 'fn-', null, n);\n }\n function o(t, e, n) {\n (this.method = n), (this.timerDuration = isNaN(t[1]) ? 0 : +t[1]), (t[0] = a(t[0], 'fn-', this, n));\n }\n var i = t('ee').get('timer');\n \n \n var a = t(24)(i);\n \n \n var s = \"setTimeout\";\n \n \n var c = \"setInterval\";\n \n \n var f = \"clearTimeout\";\n \n \n var u = \"-start\";\n \n \n var d = '-';\n (e.exports = i),\n a.inPlace(window, [s, 'setImmediate'], s + d),\n a.inPlace(window, [c], c + d),\n a.inPlace(window, [f, 'clearImmediate'], f + d),\n i.on(c + u, r),\n i.on(s + u, o);\n },\n {},,\n ],\n 14: [\n function (t, e, n) {\n function r(t, e) {\n d.inPlace(e, ['onreadystatechange'], 'fn-', s);\n }\n function o() {\n let t = this;\n \n \n var e = u.context(t);\n t.readyState > 3\n && !e.resolved\n && ((e.resolved = !0), u.emit('xhr-resolved', [], t)),\n d.inPlace(t, y, 'fn-', s);\n }\n function i(t) {\n g.push(t), h && (x ? x.then(a) : v ? v(a) : ((E = -E), (O.data = E)));\n }\n function a() {\n for (let t = 0; t < g.length; t++) r([], g[t]);\n g.length && (g = []);\n }\n function s(t, e) {\n return e;\n }\n function c(t, e) {\n for (let n in t) e[n] = t[n];\n return e;\n }\n t(6);\n var f = t('ee');\n \n \n var u = f.get(\"xhr\");\n \n \n var d = t(24)(u);\n \n \n var p = NREUM.o;\n \n \n var l = p.XHR;\n \n \n var h = p.MO;\n \n \n var m = p.PR;\n \n \n var v = p.SI;\n \n \n var w = \"readystatechange\";\n \n \n var y = [\n \"onload\",\n \"onerror\",\n \"onabort\",\n \"onloadstart\",\n \"onloadend\",\n \"onprogress\",\n \"ontimeout\"\n ];\n \n \n var g = [];\n e.exports = u;\n let b = (window.XMLHttpRequest = function (t) {\n let e = new l(t);\n try {\n u.emit('new-xhr', [e], e), e.addEventListener(w, o, !1);\n } catch (n) {\n try {\n u.emit('internal-error', [n]);\n } catch (r) {}\n }\n return e;\n });\n if (\n (c(l, b),\n (b.prototype = l.prototype),\n d.inPlace(b.prototype, ['open', 'send'], '-xhr-', s),\n u.on('send-xhr-start', (t, e) => {\n r(t, e), i(e);\n }),\n u.on('open-xhr-start', r),\n h)\n ) {\n var x = m && m.resolve();\n if (!v && !m) {\n var E = 1;\n \n \n var O = document.createTextNode(E);\n new h(a).observe(O, { characterData: !0 });\n }\n } else {f.on(\"fn-end\", function(t) {\n (t[0] && t[0].type === w) || a();\n });}\n },\n {},,\n ],\n 15: [\n function (t, e, n) {\n function r(t) {\n let e = this.params;\n \n \n var n = this.metrics;\n if (!this.ended) {\n this.ended = !0;\n for (let r = 0; r < d; r++) {t.removeEventListener(u[r], this.listener, !1);}\n if (!e.aborted) {\n if (((n.duration = a.now() - this.startTime), 4 === t.readyState)) {\n e.status = t.status;\n let i = o(t, this.lastSize);\n if ((i && (n.rxSize = i), this.sameOrigin)) {\n let c = t.getResponseHeader('X-NewRelic-App-Data');\n c && (e.cat = c.split(', ').pop());\n }\n } else e.status = 0;\n (n.cbTime = this.cbTime), f.emit('xhr-done', [t], t), s('xhr', [e, n, this.startTime]);\n }\n }\n }\n function o(t, e) {\n let n = t.responseType;\n if ('json' === n && e !== null) return e;\n let r = 'arraybuffer' === n || 'blob' === n || 'json' === n\n ? t.response\n : t.responseText;\n return h(r);\n }\n function i(t, e) {\n let n = c(e);\n \n \n var r = t.params;\n (r.host = `${n.hostname }:${ n.port}`),\n (r.pathname = n.pathname),\n (t.sameOrigin = n.sameOrigin);\n }\n var a = t('loader');\n if (a.xhrWrappable) {\n var s = t('handle');\n \n \n var c = t(16);\n \n \n var f = t(\"ee\");\n \n \n var u = [\"load\", \"error\", \"abort\", \"timeout\"];\n \n \n var d = u.length;\n \n \n var p = t(\"id\");\n \n \n var l = t(19);\n \n \n var h = t(18);\n \n \n var m = window.XMLHttpRequest;\n (a.features.xhr = !0),\n t(14),\n f.on('new-xhr', function (t) {\n let e = this;\n (e.totalCbs = 0),\n (e.called = 0),\n (e.cbTime = 0),\n (e.end = r),\n (e.ended = !1),\n (e.xhrGuids = {}),\n (e.lastSize = null),\n (l && (l > 34 || l < 10))\n || window.opera\n || t.addEventListener(\n 'progress',\n (t) => {\n e.lastSize = t.loaded;\n },\n !1,\n );\n }),\n f.on('open-xhr-start', function (t) {\n (this.params = { method: t[0] }), i(this, t[1]), (this.metrics = {});\n }),\n f.on('open-xhr-end', function (t, e) {\n 'loader_config' in NREUM\n && 'xpid' in NREUM.loader_config\n && this.sameOrigin\n && e.setRequestHeader('X-NewRelic-ID', NREUM.loader_config.xpid);\n }),\n f.on('send-xhr-start', function (t, e) {\n let n = this.metrics;\n \n \n var r = t[0];\n \n \n var o = this;\n if (n && r) {\n let i = h(r);\n i && (n.txSize = i);\n }\n (this.startTime = a.now()),\n (this.listener = function (t) {\n try {\n 'abort' === t.type && (o.params.aborted = !0),\n ('load' !== t.type\n || (o.called === o.totalCbs\n && (o.onloadCalled\n || 'function' !== typeof e.onload)))\n && o.end(e);\n } catch (n) {\n try {\n f.emit('internal-error', [n]);\n } catch (r) {}\n }\n });\n for (let s = 0; s < d; s++) {e.addEventListener(u[s], this.listener, !1);}\n }),\n f.on('xhr-cb-time', function (t, e, n) {\n (this.cbTime += t),\n e ? (this.onloadCalled = !0) : (this.called += 1),\n this.called !== this.totalCbs\n || (!this.onloadCalled && 'function' === typeof n.onload)\n || this.end(n);\n }),\n f.on('xhr-load-added', function (t, e) {\n let n = '' + p(t) + !!e;\n this.xhrGuids\n && !this.xhrGuids[n]\n && ((this.xhrGuids[n] = !0), (this.totalCbs += 1));\n }),\n f.on('xhr-load-removed', function (t, e) {\n let n = '' + p(t) + !!e;\n this.xhrGuids\n && this.xhrGuids[n]\n && (delete this.xhrGuids[n], (this.totalCbs -= 1));\n }),\n f.on('addEventListener-end', (t, e) => {\n e instanceof m &&\n \"load\" === t[0] &&\n f.emit(\"xhr-load-added\", [t[1], t[2]], e);\n }),\n f.on('removeEventListener-end', (t, e) => {\n e instanceof m &&\n \"load\" === t[0] &&\n f.emit(\"xhr-load-removed\", [t[1], t[2]], e);\n }),\n f.on('fn-start', function (t, e, n) {\n e instanceof m\n && ('onload' === n && (this.onload = !0),\n ('load' === (t[0] && t[0].type) || this.onload)\n && (this.xhrCbStart = a.now()));\n }),\n f.on('fn-end', function (t, e) {\n this.xhrCbStart\n && f.emit(\n 'xhr-cb-time',\n [a.now() - this.xhrCbStart, this.onload, e],\n e,\n );\n });\n }\n },\n {},,\n ],\n 16: [\n function (t, e, n) {\n e.exports = function (t) {\n let e = document.createElement('a');\n \n \n var n = window.location;\n \n \n var r = {};\n (e.href = t), (r.port = e.port);\n let o = e.href.split('://');\n !r.port\n && o[1]\n && (r.port = o[1]\n .split('/')[0]\n .split('@')\n .pop()\n .split(':')[1]),\n (r.port && '0' !== r.port)\n || (r.port = 'https' === o[0] ? '443' : '80'),\n (r.hostname = e.hostname || n.hostname),\n (r.pathname = e.pathname),\n (r.protocol = o[0]),\n '/' !== r.pathname.charAt(0)\n && (r.pathname = '/' + r.pathname);\n let i = !e.protocol\n || ':' === e.protocol\n || e.protocol === n.protocol;\n \n \n var a = e.hostname === document.domain && e.port === n.port;\n return (r.sameOrigin = i && (!e.hostname || a)), r;\n };\n },\n {},,\n ],\n 17: [\n function (t, e, n) {\n function r() {}\n function o(t, e, n) {\n return function () {\n return i(t, [f.now()].concat(s(arguments)), e ? null : this, n), e ? void 0 : this;\n };\n }\n var i = t('handle');\n \n \n var a = t(21);\n \n \n var s = t(22);\n \n \n var c = t(\"ee\").get(\"tracer\");\n \n \n var f = t(\"loader\");\n \n \n var u = NREUM;\n 'undefined' === typeof window.newrelic && (newrelic = u);\n let d = [\n 'setPageViewName',\n 'setCustomAttribute',\n 'setErrorHandler',\n 'finished',\n 'addToTrace',\n 'inlineHit',\n 'addRelease',\n ];\n \n \n var p = \"api-\";\n \n \n var l = `${p }ixn-`;\n a(d, (t, e) => {\n u[e] = o(p + e, !0, \"api\");\n }),\n (u.addPageAction = o(`${p }addPageAction`, !0)),\n (u.setCurrentRouteName = o(`${p }routeName`, !0)),\n (e.exports = newrelic),\n (u.interaction = function () {\n return new r().get();\n });\n let h = (r.prototype = {\n createTracer(t, e) {\n var n = {},\n r = this,\n o = \"function\" == typeof e;\n return (\n i(l + \"tracer\", [f.now(), t, n], r),\n function() {\n if (\n (c.emit(\n (o ? \"\" : \"no-\") + \"fn-start\",\n [f.now(), r, o],\n n\n ),\n o)\n )\n try {\n return e.apply(this, arguments);\n } catch (t) {\n throw (c.emit(\"fn-err\", [arguments, this, t], n), t);\n } finally {\n c.emit(\"fn-end\", [f.now()], n);\n }\n }\n );\n },\n });\n a('actionText,setName,setAttribute,save,ignore,onEnd,getContext,end,get'.split(','), (t, e) => {\n h[e] = o(l + e);\n },\n ),\n (newrelic.noticeError = function (t, e) {\n 'string' === typeof t && (t = new Error(t)),\n i('err', [t, f.now(), !1, e]);\n });\n },\n {},,\n ],\n 18: [\n function (t, e, n) {\n e.exports = function(t) {\n if (\"string\" == typeof t && t.length) return t.length;\n if (\"object\" == typeof t) {\n if (\n \"undefined\" != typeof ArrayBuffer &&\n t instanceof ArrayBuffer &&\n t.byteLength\n )\n return t.byteLength;\n if (\"undefined\" != typeof Blob && t instanceof Blob && t.size)\n return t.size;\n if (\n !(\"undefined\" != typeof FormData && t instanceof FormData)\n )\n try {\n return JSON.stringify(t).length;\n } catch (e) {\n \n }\n }\n };\n },\n {},,\n ],\n 19: [\n function (t, e, n) {\n let r = 0;\n \n \n var o = navigator.userAgent.match(/Firefox[\\/\\s](\\d+\\.\\d+)/);\n o && (r = +o[1]), (e.exports = r);\n },\n {},,\n ],\n 20: [\n function (t, e, n) {\n function r(t, e) {\n if (!o) return !1;\n if (t !== o) return !1;\n if (!e) return !0;\n if (!i) return !1;\n for (var n = i.split('.'), r = e.split('.'), a = 0; a < r.length; a++) {if (r[a] !== n[a]) return !1;}\n return !0;\n }\n var o = null;\n \n \n var i = null;\n \n \n var a = /Version\\/(\\S+)\\s+Safari/;\n if (navigator.userAgent) {\n let s = navigator.userAgent;\n \n \n var c = s.match(a);\n c\n && s.indexOf('Chrome') === -1\n && s.indexOf('Chromium') === -1\n && ((o = 'Safari'), (i = c[1]));\n }\n e.exports = { agent: o, version: i, match: r };\n },\n {},,\n ],\n 21: [\n function (t, e, n) {\n function r(t, e) {\n let n = [];\n \n \n var r = \"\";\n \n \n var i = 0;\n for (r in t) o.call(t, r) && ((n[i] = e(r, t[r])), (i += 1));\n return n;\n }\n var o = Object.prototype.hasOwnProperty;\n e.exports = r;\n },\n {},,\n ],\n 22: [\n function (t, e, n) {\n function r(t, e, n) {\n e || (e = 0), 'undefined' === typeof n && (n = t ? t.length : 0);\n for (var r = -1, o = n - e || 0, i = Array(o < 0 ? 0 : o); ++r < o; ) {i[r] = t[e + r];}\n return i;\n }\n e.exports = r;\n },\n {},,\n ],\n 23: [\n function (t, e, n) {\n e.exports = {\n exists:\n 'undefined' !== typeof window.performance\n && window.performance.timing\n && 'undefined'\n != typeof window.performance.timing.navigationStart,\n };\n },\n {},,\n ],\n 24: [\n function (t, e, n) {\n function r(t) {\n return !(t && t instanceof Function && t.apply && !t[a]);\n }\n var o = t('ee');\n \n \n var i = t(22);\n \n \n var a = \"nr@original\";\n \n \n var s = Object.prototype.hasOwnProperty;\n \n \n var c = !1;\n e.exports = function (t, e) {\n function n(t, e, n, o) {\n function nrWrapper() {\n let r; var a; var s; var \n c;\n try {\n (a = this), (r = i(arguments)), (s = 'function' === typeof n ? n(r, a) : n || {});\n } catch (f) {\n p([f, '', [r, a, o], s]);\n }\n u(`${e }start`, [r, a, o], s);\n try {\n return (c = t.apply(a, r));\n } catch (d) {\n throw (u(`${e }err`, [r, a, d], s), d);\n } finally {\n u(`${e }end`, [r, a, c], s);\n }\n }\n return r(t) ? t : (e || (e = ''), (nrWrapper[a] = t), d(t, nrWrapper), nrWrapper);\n }\n function f(t, e, o, i) {\n o || (o = '');\n let a;\n \n \n var s;\n \n \n var c;\n \n \n var f = '-' === o.charAt(0);\n for (c = 0; c < e.length; c++) {(s = e[c]),\n (a = t[s]),\n r(a) || (t[s] = n(a, f ? s + o : o, i, s));}\n }\n function u(n, r, o) {\n if (!c || e) {\n let i = c;\n c = !0;\n try {\n t.emit(n, r, o, e);\n } catch (a) {\n p([a, n, r, o]);\n }\n c = i;\n }\n }\n function d(t, e) {\n if (Object.defineProperty && Object.keys) {try {\n var n = Object.keys(t);\n return (\n n.forEach(function(n) {\n Object.defineProperty(e, n, {\n get: function() {\n return t[n];\n },\n set: function(e) {\n return (t[n] = e), e;\n }\n });\n }),\n e\n );\n } catch (r) {\n p([r]);\n }}\n for (let o in t) s.call(t, o) && (e[o] = t[o]);\n return e;\n }\n function p(e) {\n try {\n t.emit('internal-error', e);\n } catch (n) {}\n }\n return t || (t = o), (n.inPlace = f), (n.flag = a), n;\n };\n },\n {},,\n ],\n ee: [\n function (t, e, n) {\n function r() {}\n function o(t) {\n function e(t) {\n return t && t instanceof r ? t : t ? c(t, s, i) : i();\n }\n function n(n, r, o, i) {\n if (!p.aborted || i) {\n t && t(n, r, o);\n for (var a = e(o), s = m(n), c = s.length, f = 0; f < c; f++) {s[f].apply(a, r);}\n let d = u[g[n]];\n return d && d.push([b, n, r, a]), a;\n }\n }\n function l(t, e) {\n y[t] = m(t).concat(e);\n }\n function h(t, e) {\n let n = y[t];\n if (n) {for (var r = 0; r < n.length; r++)\n n[r] === e && n.splice(r, 1);}\n }\n function m(t) {\n return y[t] || [];\n }\n function v(t) {\n return (d[t] = d[t] || o(n));\n }\n function w(t, e) {\n f(t, (t, n) => {\n (e = e || \"feature\"), (g[n] = e), e in u || (u[e] = []);\n });\n }\n var y = {};\n \n \n var g = {};\n \n \n var b = {\n on: l,\n addEventListener: l,\n removeEventListener: h,\n emit: n,\n get: v,\n listeners: m,\n context: e,\n buffer: w,\n abort: a,\n aborted: !1,\n };\n return b;\n }\n function i() {\n return new r();\n }\n function a() {\n (u.api || u.feature)\n && ((p.aborted = !0), (u = p.backlog = {}));\n }\n var s = 'nr@context';\n \n \n var c = t(\"gos\");\n \n \n var f = t(21);\n \n \n var u = {};\n \n \n var d = {};\n \n \n var p = (e.exports = o());\n p.backlog = u;\n },\n {},,\n ],\n gos: [\n function (t, e, n) {\n function r(t, e, n) {\n if (o.call(t, e)) return t[e];\n let r = n();\n if (Object.defineProperty && Object.keys) {try {\n return (\n Object.defineProperty(t, e, {\n value: r,\n writable: !0,\n enumerable: !1\n }),\n r\n );\n } catch (i) {}}\n return (t[e] = r), r;\n }\n var o = Object.prototype.hasOwnProperty;\n e.exports = r;\n },\n {},,\n ],\n handle: [\n function (t, e, n) {\n function r(t, e, n, r) {\n o.buffer([t], r), o.emit(t, e, n);\n }\n var o = t('ee').get('handle');\n (e.exports = r), (r.ee = o);\n },\n {},,\n ],\n id: [\n function (t, e, n) {\n function r(t) {\n let e = typeof t;\n return !t || ('object' !== e && 'function' !== e)\n ? -1\n : t === window\n ? 0\n : a(t, i, () => {\n return o++;\n });\n }\n var o = 1;\n \n \n var i = \"nr@id\";\n \n \n var a = t('gos');\n e.exports = r;\n },\n {},,\n ],\n loader: [\n function (t, e, n) {\n function r() {\n if (!E++) {\n let t = (x.info = NREUM.info);\n \n \n var e = l.getElementsByTagName('script')[0];\n if ((setTimeout(u.abort, 3e4), !(t && t.licenseKey && t.applicationID && e))) {return u.abort();}\n f(g, (e, n) => {\n t[e] || (t[e] = n);\n }),\n c('mark', ['onload', a() + x.offset], null, 'api');\n let n = l.createElement('script');\n (n.src = 'https://' + t.agent),\n e.parentNode.insertBefore(n, e);\n }\n }\n function o() {\n 'complete' === l.readyState && i();\n }\n function i() {\n c('mark', ['domContent', a() + x.offset], null, 'api');\n }\n function a() {\n return O.exists && performance.now\n ? Math.round(performance.now())\n : (s = Math.max(new Date().getTime(), s)) - x.offset;\n }\n var s = new Date().getTime();\n \n \n var c = t(\"handle\");\n \n \n var f = t(21);\n \n \n var u = t(\"ee\");\n \n \n var d = t(20);\n \n \n var p = window;\n \n \n var l = p.document;\n \n \n var h = \"addEventListener\";\n \n \n var m = \"attachEvent\";\n \n \n var v = p.XMLHttpRequest;\n \n \n var w = v && v.prototype;\n NREUM.o = {\n ST: setTimeout,\n SI: p.setImmediate,\n CT: clearTimeout,\n XHR: v,\n REQ: p.Request,\n EV: p.Event,\n PR: p.Promise,\n MO: p.MutationObserver,\n };\n var y = '' + location;\n \n \n var g = {\n beacon: \"bam.nr-data.net\",\n errorBeacon: \"bam.nr-data.net\",\n agent: \"js-agent.newrelic.com/nr-spa-1118.min.js\"\n };\n \n \n var b = v && w && w[h] && !/CriOS/.test(navigator.userAgent);\n \n \n var x = (e.exports = {\n offset: s,\n now: a,\n origin: y,\n features: {},\n xhrWrappable: b,\n userAgent: d,\n });\n t(17),\n l[h]\n ? (l[h]('DOMContentLoaded', i, !1), p[h]('load', r, !1))\n : (l[m]('onreadystatechange', o), p[m]('onload', r)),\n c('mark', ['firstbyte', s], null, 'api');\n var E = 0;\n \n \n var O = t(23);\n },\n {},,\n ],\n },\n {},\n ['loader', 2, 15, 5, 3, 4],\n ));\n NREUM.info = {\n beacon: 'bam.nr-data.net',\n errorBeacon: 'bam.nr-data.net',\n licenseKey: process.env.REACT_APP_NEWRELIC_LICENSE_KEY,\n applicationID: process.env.REACT_APP_NEWRELIC_APPLICATION_ID,\n sa: 1,\n };\n },\n };\n ","import i18next from '../translations/i18n';\n\n// map text variables to fundData key\nconst replaceMap = {\n '{FundName}': 'displayName',\n '{ETX}': 'etx',\n '{IndexTR}': 'relatedIndex',\n '{BaseCurrency}': 'baseCCY',\n '{ProductLeverageFactor}': 'LeverageFactor',\n '{ExchangeTradedX}': 'exchangeTradedX',\n '{IndexNameER}': 'IndexNameER',\n '{IndexNameTR}': 'IndexNameTR',\n '{@BaseCurrency}': 'baseCCY',\n '{StrikeTime}': 'StrikeTime',\n '{ProductUnderlyingAsset}': 'productUnderlyingAsset',\n '{IndexNonLevName}': 'indexNameNonLeveraged',\n '{IndexNameNonLev}': 'indexNameNonLeveraged',\n '{ExchangeVenue}': 'ExchangeVenue',\n '{IndexER}': 'indexER',\n '{isSL}': 'isSnL',\n '{ExchangeCode}': 'exchangeCode',\n '{FXFirstCurrency}': 'fxFirstCurrency',\n '{FXBaseCurrency}': 'fxBaseCurrency',\n '{FXFirstCcy}': 'fxFirstCCY',\n '{FXBaseCcy}': 'fxBaseCCY',\n '{FXLongShort}': 'fxLongShort',\n '{isFutureBased}': 'isFutureBased',\n '{fn:Math.abs:ProductLeverageFactor}': 'LeverageFactor',\n '{IndexChange.prevIndexName}': 'prevIndexName',\n '{IndexChange.prevIndexTicker}': 'prevIndexTicker',\n '{IndexChange.newIndexName}': 'newIndexName',\n '{IndexChange.newIndexTicker}': 'newIndexTicker',\n '{IndexChange.dt}': 'indexChangeDate',\n};\n\nconst formatTextDate = (date, addYear) => {\n const monthNames = i18next.t('months', { returnObjects: true });\n const dt = typeof date === 'string' ? new Date(date) : date;\n const day = dt.getDate();\n if (addYear) {\n return `${day} ${monthNames[dt.getMonth()]} ${dt.getFullYear()}`;\n }\n\n return `${day} ${monthNames[dt.getMonth()]}`;\n};\n\nconst getDescendantPropValue = (obj, modelName) => {\n const arr = modelName.split('.');\n let val = obj;\n for (let i = 0; i < arr.length; i += 1) {\n val = val[arr[i]];\n }\n return val;\n};\n\nconst replaceText = (str, fundData, filters) => {\n const regexText = `(${Object.keys(replaceMap)\n .join('|')\n .replace(/\\[/g, '\\\\[')\n .replace(/\\]/g, '\\\\]')})`;\n\n let aux = str.replace(new RegExp(regexText, 'g'), x => {\n return fundData[replaceMap[x]];\n });\n // replace date range\n if (filters) {\n aux = aux\n .replace('{StartDate}', formatTextDate(filters.startDate))\n .replace('{EndDate}', formatTextDate(filters.endDate, true));\n }\n\n // replace if conditions\n const conditionIndex = aux.indexOf('#IF');\n if (conditionIndex >= 0) {\n const condition = aux.slice(conditionIndex, aux.indexOf('#ENDIF') + 6);\n let conditionResult = '';\n const toEval = condition.match(new RegExp(/\\(([^)]+)\\)/))[1];\n try {\n // eslint-disable-next-line\n if (eval(toEval)) {\n conditionResult = condition.slice(\n condition.indexOf(')') + 1,\n condition.indexOf('#ELSE')\n );\n } else {\n conditionResult = condition.slice(\n condition.indexOf('#ELSE') + 5,\n condition.indexOf('#ENDIF')\n );\n }\n\n aux =\n aux.substr(0, conditionIndex) +\n conditionResult +\n aux.substr(aux.indexOf('#ENDIF') + 6, aux.length);\n } catch (e) {\n console.error(e);\n }\n }\n\n return aux;\n};\n\nconst replaceMarkdownText = (str, fundData) => {\n const regexText = `(${Object.keys(replaceMap)\n .join('|')\n .replace(/\\[/g, '\\\\[')\n .replace(/\\]/g, '\\\\]')})`;\n\n let aux = str.replace(new RegExp(regexText, 'g'), x => {\n if (x.indexOf('fn:') >= 0) {\n // eval('Math.abs').call(null, -234)\n const fn = x.split(':')[1];\n const value = fundData[replaceMap[x]];\n // eslint-disable-next-line\n return eval(fn).call(null, value);\n }\n\n if (x.indexOf('IndexChange.dt') >= 0) {\n return formatTextDate(\n getDescendantPropValue(fundData, replaceMap[x]),\n true\n );\n }\n\n return getDescendantPropValue(fundData, replaceMap[x]);\n });\n\n // replace if conditions\n const conditionIndex = aux.indexOf('#IF');\n if (conditionIndex >= 0) {\n const condition = aux.slice(conditionIndex, aux.indexOf('#ENDIF') + 6);\n let conditionResult = '';\n // eslint-disable-next-line\n if (eval(condition.match(new RegExp(/\\(([^)]+)\\)/))[1])) {\n conditionResult = condition.slice(\n condition.indexOf(')') + 1,\n condition.indexOf('#ELSE')\n );\n } else {\n conditionResult = condition.slice(\n condition.indexOf('#ELSE') + 5,\n condition.indexOf('#ENDIF')\n );\n }\n\n aux =\n aux.substr(0, conditionIndex) +\n conditionResult +\n aux.substr(aux.indexOf('#ENDIF') + 6, aux.length);\n }\n return aux;\n};\n\n//NOSONAR\nconst getCategoryKey = fundData => {\n // IsIndexLeveraged\n if (\n fundData.fundCategoryTier1 === 'Equities' &&\n fundData.LeverageFactor !== 1 &&\n fundData.IsIndexLeveraged === 1\n ) {\n return 'SL_Eq_LevIndex';\n }\n if (\n fundData.fundCategoryTier1 === 'Equities' &&\n fundData.LeverageFactor !== 1 &&\n fundData.isFutureBased !== 1 &&\n fundData.IsIndexLeveraged !== 1\n ) {\n return 'SL_Eq_nLev';\n }\n\n if (fundData.platform === 'FXL' && fundData.IsIndexLeveraged === 1) {\n return 'FXL_Lev';\n }\n if (fundData.platform === 'FXL' && fundData.IsIndexLeveraged !== 1) {\n return 'FXL_nLev';\n }\n\n if (\n fundData.isWTMA === 1 &&\n fundData.isSnL !== 1 &&\n fundData.isBasket !== 1\n ) {\n return 'delta1_nTR';\n }\n\n if (\n fundData.isWTMA === 1 &&\n fundData.isSnL !== 1 &&\n fundData.isBasket === 1\n ) {\n return 'header_delta1_nER_basket';\n }\n\n if (fundData.isFutureBased === 1 && fundData.isSnL === 1) {\n return 'SL_futureBased';\n }\n\n if (\n fundData.isFutureBased === 1 &&\n fundData.isSnL !== 1 &&\n fundData.isWTMA !== 1 &&\n fundData.isBasket !== 1\n ) {\n return 'delta1_comm';\n }\n\n if (\n fundData.isBasket === 1 &&\n fundData.isWTMA !== 1 &&\n fundData.isSnL !== 1\n ) {\n return 'basket_nWTMA';\n }\n\n return '';\n};\n\nconst DynamicText = {\n replaceText,\n replaceMarkdownText,\n getCategoryKey,\n};\n\nexport default DynamicText;\n","import React from 'react';\n\nconst VariationContext = React.createContext();\nexport default VariationContext;\n","const mode = {\n embedded: 'embedded',\n standalone: 'standalone',\n};\n\nexport default mode;\n","const actions = {\n setTicker: 'setTicker',\n setLoading: 'setLoading',\n setDateFilters: 'setDateFilters',\n setData: 'setData',\n setFundList: 'setFundList',\n};\n\nconst reducer = (state, action) => {\n switch (action.type) {\n case actions.setLoading:\n return {\n ...state,\n loading: action.value,\n };\n case actions.setTicker:\n return {\n ...state,\n fundData: action.value,\n filters: {\n ...state.filters,\n ticker: action.value.bloombergTickerPrimary || action.value.bloombergTicker,\n },\n };\n case actions.setDateFilters:\n return {\n ...state,\n filters: {\n ...state.filters,\n ...action.value,\n },\n };\n case actions.setData:\n return {\n ...state,\n loading: false,\n data: action.value,\n };\n case actions.setFundList:\n return {\n ...state,\n loading: false,\n fundList: action.value,\n };\n default:\n throw new Error();\n }\n};\n\nexport { reducer, actions };\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Drop, Button, Calendar, Anchor } from 'wt-ui';\n\nimport { actions } from '../../services/reducer';\n\nconst CustomDateDrop = ({ forwardRef, closeDrop, startDate, endDate, dispatch }) => {\n const [dates, setDates] = useState([[startDate, endDate]]);\n\n const [date, setDate] = useState(undefined);\n const onSelect = (arg) => {\n // console.log('arg', arg);\n if (Array.isArray(arg)) {\n setDate(undefined);\n setDates(arg);\n // setShowCalendar(false);\n } else {\n setDate(arg);\n }\n };\n\n const RANGE_MAP = ['7 days', '14 days', '30 days'];\n const selectPredifinedRange = (range) => {\n const newEndDate = new Date();\n let newStartDate = new Date(newEndDate - 1000 * 60 * 60 * 24 * 7).toISOString();\n switch (range) {\n case '7 days':\n newStartDate = new Date(newEndDate - 1000 * 60 * 60 * 24 * 7).toISOString();\n break;\n case '14 days':\n newStartDate = new Date(newEndDate - 1000 * 60 * 60 * 24 * 14).toISOString();\n break;\n case '30 days':\n newStartDate = new Date(newEndDate - 1000 * 60 * 60 * 24 * 30).toISOString();\n break;\n default:\n break;\n }\n\n setDates([[newStartDate, newEndDate.toISOString()]]);\n };\n\n return (\n closeDrop()}\n pad=\"small\"\n overflow=\"auto\"\n >\n \n \n \n \n\n \n \n {RANGE_MAP.map((r) => (\n {\n selectPredifinedRange(r);\n }}\n >\n {r}\n \n ))}\n \n\n \n Cancel\n {\n dispatch({\n type: actions.setDateFilters,\n value: {\n startDate: dates[0][0],\n endDate: dates[0][1],\n },\n });\n closeDrop();\n }}\n >\n APPLY\n \n \n \n \n \n );\n};\nCustomDateDrop.defaultProps = {\n // dates: undefined,\n};\nCustomDateDrop.propTypes = {\n forwardRef: PropTypes.shape({\n current: PropTypes.object,\n }).isRequired,\n dispatch: PropTypes.func.isRequired,\n closeDrop: PropTypes.func.isRequired,\n startDate: PropTypes.string.isRequired,\n endDate: PropTypes.string.isRequired,\n};\n\nexport default CustomDateDrop;\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Input } from 'wt-ui';\nimport { FormDown } from 'grommet-icons';\n\n// import DateDrop from './DateDrop';\nimport CustomDateDrop from './CustomDateDrop';\n\nconst Dates = ({ startDate, endDate, disabled }) => {\n // console.log('Dates: ', data);\n const format = dateStr => {\n const d = new Date(dateStr);\n return `${d.getDate()}/${d.getMonth() + 1}/${d.getFullYear()}`;\n };\n return (\n \n );\n};\nDates.defaultProps = {\n disabled: false,\n};\nDates.propTypes = {\n disabled: PropTypes.bool,\n endDate: PropTypes.string.isRequired,\n startDate: PropTypes.string.isRequired,\n};\n\nconst DatePicker = ({ dispatch, startDate, endDate }) => {\n const ref = useRef();\n\n const [showDrop, setShowDrop] = useState(false);\n\n const closeDrop = e => {\n if (ref.current && e && ref.current.contains(e.target)) {\n return;\n }\n setShowDrop(false);\n };\n\n return (\n <>\n {\n e.preventDefault();\n e.stopPropagation();\n setShowDrop(!showDrop);\n }}\n gap=\"small\"\n forwardRef={ref}\n >\n \n \n \n\n {ref.current && showDrop && (\n \n )}\n \n );\n};\n\nDatePicker.propTypes = {\n dispatch: PropTypes.func.isRequired,\n endDate: PropTypes.string.isRequired,\n startDate: PropTypes.string.isRequired,\n};\n\nexport default DatePicker;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Input } from 'wt-ui';\nimport { useDebouncedCallback } from 'use-debounce';\n\nimport i18next from '../../translations/i18n';\nimport { actions } from '../../services/reducer';\n\nconst strContainsParts = (str, parts) => {\n let hasAll = true;\n parts.forEach((x) => {\n if (str.indexOf(x) < 0) {\n hasAll = false;\n return false;\n }\n return true;\n });\n return hasAll;\n};\nconst fundListToSuggestions = (fundList, match = '') => {\n if (match === '') {\n return fundList.map((x) => ({ key: x.bloombergTickerPrimary || x.bloombergTicker, value: `${x.productName}` }));\n }\n\n const parts = match.toLowerCase().split(' '); \n // filter by indiduals words - order not mandatory\n return fundList\n .filter((x) => strContainsParts(`${x.productName} ${x.bloombergTickerPrimary || x.bloombergTicker}`.toLowerCase(), parts))\n .map((x) => ({ key: x.bloombergTickerPrimary || x.bloombergTicker, value: `${x.productName}` }));\n};\n\nconst AutocompleteInput = ({ fundList, dispatch }) => {\n const [suggestions, setSuggestions] = useState(fundListToSuggestions(fundList));\n const [value, setValue] = useState('');\n\n const [getSuggestionsDebounced] = useDebouncedCallback(\n async (typedValue) => {\n const newSuggestions = fundListToSuggestions(fundList, typedValue);\n setSuggestions(newSuggestions);\n },\n 500,\n [],\n );\n\n const onChange = (event) => {\n setValue(event.target.value);\n getSuggestionsDebounced(event.target.value);\n };\n const onSelect = (event) => {\n setValue(event.value);\n dispatch({\n type: actions.setTicker,\n value: fundList.find((x) => (x.bloombergTickerPrimary || x.bloombergTicker) === event.key),\n });\n };\n\n return (\n \n );\n};\n\nAutocompleteInput.propTypes = {\n fundList: PropTypes.arrayOf(PropTypes.object).isRequired,\n dispatch: PropTypes.func.isRequired,\n};\n\nconst SearchInput = ({ ...props }) => (\n \n \n \n);\n\nexport default SearchInput;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Heading } from 'wt-ui';\n\nimport VariationContext from '../../services/VariationContext';\nimport variations from '../../services/variations';\n\nimport DatePicker from '../../components/DatePicker';\nimport SearchInput from '../../components/SearchInput';\n\nconst Header = ({ dispatch, filters, fundList }) => {\n const variation = useContext(VariationContext);\n\n if (variation === variations.embedded) {\n return (\n <>\n \n Daily Performance\n \n \n );\n }\n return (\n <>\n \n {variation === variations.standalone ? : ''}\n \n \n \n );\n};\n\nHeader.propTypes = {\n dispatch: PropTypes.func.isRequired,\n filters: PropTypes.shape({}).isRequired,\n fundList: PropTypes.arrayOf(PropTypes.object).isRequired,\n};\n\nexport default Header;\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Text, Anchor, Drop } from 'wt-ui';\nimport { CircleQuestion } from 'grommet-icons';\n\nconst HeaderWithDrop = ({ text, dropText }) => {\n const [over, setOver] = useState(false);\n const ref = useRef(null);\n\n return (\n <>\n \n {text}\n setOver(true)}\n onMouseOut={() => setOver(false)}\n onFocus={() => {}}\n onBlur={() => {}}\n forwardRef={ref}\n >\n \n \n \n {ref.current && over && (\n \n \n {dropText}\n \n \n )}\n \n );\n};\n\nHeaderWithDrop.propTypes = {\n text: PropTypes.string.isRequired,\n dropText: PropTypes.string.isRequired,\n};\n\nexport default HeaderWithDrop;\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Text, Anchor, Drop } from 'wt-ui';\n\nconst TextHeaderWithDrop = ({ text, dropText }) => {\n const [over, setOver] = useState(false);\n const ref = useRef(null);\n\n return (\n <>\n \n setOver(true)}\n onMouseOut={() => setOver(false)}\n onFocus={() => {}}\n onBlur={() => {}}\n forwardRef={ref}\n style={{ width: '100%' }}\n >\n {typeof text === 'string' ? {text} : <>{text}}\n \n \n {ref.current && over && (\n \n \n {dropText}\n \n \n )}\n \n );\n};\n\nTextHeaderWithDrop.propTypes = {\n text: PropTypes.oneOfType([PropTypes.string, PropTypes.shape({})]).isRequired,\n dropText: PropTypes.string.isRequired,\n};\n\nexport default TextHeaderWithDrop;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Box } from 'wt-ui';\nimport ReactMarkdown from 'react-markdown';\n\nimport i18next from '../../translations/i18n';\n\nimport DynamicText from '../../services/DynamicText';\n\nconst computeHeaderText = (fundData, filters) => {\n let text = '';\n const categoryKey = `${DynamicText.getCategoryKey(fundData)}_header`;\n if (i18next.exists(categoryKey)) {\n text = i18next.t(categoryKey);\n }\n return DynamicText.replaceText(text, fundData, filters);\n};\n\nconst showIndexChangeDisclaimer = (fundData, filters) => {\n if (fundData.indexChangeDate) {\n const changeDate = new Date(fundData.indexChangeDate);\n const startDate = new Date(filters.startDate);\n const endDate = new Date(filters.endDate);\n\n return startDate <= changeDate || endDate <= changeDate;\n }\n\n return false;\n};\nconst IndexChangeDisclaimer = (props) => {\n const { fundData, filters } = props;\n /* _eslint-disable */\n return (\n <>\n {showIndexChangeDisclaimer(fundData, filters) ? (\n \n \n \n ) : (\n ''\n )}\n \n );\n /* eslint-enable */\n};\n\nIndexChangeDisclaimer.propTypes = {\n fundData: PropTypes.shape({}).isRequired,\n filters: PropTypes.shape({}).isRequired,\n};\n\nconst TableHeaderText = (props) => {\n const { fundData, filters } = props;\n return (\n \n \n {computeHeaderText(fundData, filters)}\n \n \n \n );\n};\n\nTableHeaderText.propTypes = {\n fundData: PropTypes.shape({}).isRequired,\n filters: PropTypes.shape({}).isRequired,\n};\n\nexport default TableHeaderText;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Anchor, Text } from 'wt-ui';\nimport ReactMarkdown from 'react-markdown';\n\nimport i18next from '../../translations/i18n';\n\nimport VariationContext from '../../services/VariationContext';\nimport variations from '../../services/variations';\n\nimport DynamicText from '../../services/DynamicText';\n\nconst computeFooterText = (fundData) => {\n let text = '';\n const categoryKey = `${DynamicText.getCategoryKey(fundData)}_footer`;\n if (i18next.exists(categoryKey)) {\n text = i18next.t(categoryKey);\n }\n return DynamicText.replaceMarkdownText(text, fundData);\n};\n\nconst getDisclaimer = (fundData) => {\n if (fundData.isSnL) {\n return i18next.t('disclaimerSL');\n }\n return i18next.t('disclaimerDefault');\n};\n\nconst TableFooterText = ({ fundData }) => {\n const variation = useContext(VariationContext);\n if (variation === variations.embedded) {\n return (\n \n For more information and to customise this table please head to our \n \n Product Performance Tool\n \n \n );\n }\n return (\n <>\n \n \n \n \n \n \n \n );\n};\n\nTableFooterText.propTypes = {\n fundData: PropTypes.shape({\n bloombergTicker: PropTypes.string,\n bloombergTickerPrimary: PropTypes.string,\n }).isRequired,\n};\n\nexport default TableFooterText;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Table, TableHeader, TableRow, TableBody, TableFooter, TableCell, Text } from 'wt-ui';\n\nconst MobileTable = ({ columns, data }) => (\n \n \n \n \n {columns.map((c) => (\n \n {c.header}\n \n ))}\n \n \n \n {data.map((datum) => (\n \n {columns.map((c) => (\n \n {c.render ? c.render(datum) : datum[c.property]}\n \n ))}\n \n ))}\n \n \n \n {columns.map((c) => (\n \n {c.footer}\n \n ))}\n \n \n
\n
\n);\n\nMobileTable.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n columns: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n};\n\nexport default MobileTable;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, DataTable, Spinner, Text, ResponsiveContext } from 'wt-ui';\n\nimport i18next from '../../translations/i18n';\n\nimport HeaderWithDrop from './HeaderWithDrop';\nimport TextHeaderWithDrop from './TextHeaderWithDrop';\nimport TableHeaderText from './TableHeaderText';\nimport TableFooterText from './TableFooterText';\nimport MobileTable from './MobileTable';\n\nimport DynamicText from '../../services/DynamicText';\n\nconst getFullIndexName = fundData => {\n if (fundData.relatedIndex === fundData.indexTR) {\n return fundData.IndexNameTR;\n }\n if (fundData.relatedIndex === fundData.indexER) {\n return fundData.IndexNameER;\n }\n return '';\n};\n\nconst shortStrikeTime = strikeTime =>\n strikeTime\n .replace('New York Time', 'EST')\n .replace('London Time', 'LDN')\n .replace('Central US Time', 'CST')\n .replace('Central European Time', 'CET');\n\nconst formatDate = date => {\n if (date === 'Period Return') {\n return date;\n }\n const dt = typeof date === 'string' ? new Date(date) : date;\n let month = dt.getMonth() + 1;\n month = month < 10 ? `0${month}` : month;\n\n let day = dt.getDate();\n day = day < 10 ? `0${day}` : day;\n\n return `${day}/${month}/${dt.getFullYear()}`;\n};\n\nconst columns = (fundData, size) => {\n const ticker = (\n fundData.bloombergTickerPrimary || fundData.bloombergTicker\n ).split(' ')[0];\n const c = [\n {\n property: 'dt',\n header: (\n \n {i18next.t('Date')}\n \n ),\n primary: true,\n render: datum => formatDate(datum.dt),\n },\n ];\n\n if (size !== 'small') {\n c.push({\n property: 'StrikeTime',\n header: (\n \n ),\n render: () => (\n \n \n {!fundData.StrikeTime || fundData.StrikeTime === ''\n ? ''\n : shortStrikeTime(fundData.StrikeTime)}\n \n \n ),\n primary: true,\n });\n }\n\n c.push(\n {\n property: 'Fund',\n header: (\n \n {ticker}\n (NAV)\n \n }\n dropText={fundData.displayName}\n />\n ),\n render: datum => (\n \n {datum.Fund}\n \n ),\n primary: true,\n },\n {\n property: 'Index',\n header: (\n \n {fundData.relatedIndex}\n ({i18next.t('Index rebased to 100')})\n \n }\n dropText={getFullIndexName(fundData)}\n />\n ),\n render: datum => (\n \n {datum.Index}\n \n ),\n primary: true,\n },\n {\n property: 'fundPct',\n header: (\n \n {ticker}\n ({i18next.t('Daily % return')})\n \n ),\n render: datum => (\n \n {datum.fundPct ? `${datum.fundPct} %` : ''}\n \n ),\n primary: true,\n },\n {\n property: 'indexPct',\n header: (\n \n {fundData.relatedIndex}\n ({i18next.t('Daily % return')})\n \n ),\n render: datum => (\n \n {datum.indexPct ? `${datum.indexPct} %` : ''}\n \n ),\n primary: true,\n }\n );\n if (fundData.isSnL) {\n c.push({\n property: 'leverage',\n header: (\n \n ),\n render: datum => (\n \n {datum.impliedLeverage || ''}\n \n ),\n primary: true,\n });\n }\n return c;\n};\n\nfunction Table({ data, loading, fundData, filters }) {\n if (loading) {\n return (\n \n \n \n );\n }\n\n if (!fundData) {\n return (\n \n {`${i18next.t(\n 'Select a product to see performance breakdown'\n )}.`}\n \n );\n }\n\n if (fundData !== null && data.length <= 0) {\n return (\n \n {`${i18next.t(\n 'Performance data for this product is currently not available. If you believe this to be an error please contact us.'\n )}.`}\n \n );\n }\n\n return (\n <>\n \n \n\n \n {size => {\n if (size === 'small') {\n return (\n \n );\n }\n return (\n \n );\n }}\n \n \n \n \n );\n}\n\nTable.defaultProps = {\n fundData: null,\n};\n\nTable.propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n loading: PropTypes.bool.isRequired,\n fundData: PropTypes.shape({}),\n filters: PropTypes.shape({}).isRequired,\n};\n\nexport default Table;\n","import axios from 'axios';\n\nlet productList = null;\nconst getProductList = async () => {\n if (productList) {\n return productList;\n }\n\n // NOTE: app only shows primary listing, thus we use GB region\n const result = await axios\n .get(`${process.env.REACT_APP_DATASPAN_API_URL}/productperformance/eligiblefunds/`)\n .then((response) => response.data)\n .catch((error) => {\n // eslint-disable-next-line\n console.error(error);\n return {\n error: 'Exeption',\n };\n });\n\n productList = result.sort((a, b) => {\n const textA = a.displayName.toUpperCase();\n const textB = b.displayName.toUpperCase();\n if (textA < textB) {\n return -1;\n }\n if (textA > textB) {\n return 1;\n }\n return 0;\n });\n\n return productList;\n};\n\nconst pctChange = (v1, v2) => {\n const diff = v2 - v1;\n\n return (diff / v1) * 100;\n};\n\nconst formatDtParam = (date) => {\n const dt = typeof date === 'string' ? new Date(date) : date;\n let month = dt.getMonth() + 1;\n month = month < 10 ? `0${month}` : month;\n\n let day = dt.getDate();\n day = day < 10 ? `0${day}` : day;\n\n return `${dt.getFullYear()}-${month}-${day}`;\n};\n\nconst impliedLeverage = (indexPct, fundPct, extendDecimals) => {\n const result = fundPct / indexPct;\n const decimals = extendDecimals ? 2 : 1;\n if (result === Number.POSITIVE_INFINITY || result === Number.NEGATIVE_INFINITY) {\n return (1).toFixed(decimals);\n }\n\n return result.toFixed(decimals);\n};\n\nconst getPerformance = async (params) =>\n axios\n .get(`${process.env.REACT_APP_DATASPAN_API_URL}/productperformance/performance/`, {\n params: {\n ticker: params.ticker,\n startDate: formatDtParam(params.startDate),\n endDate: formatDtParam(params.endDate),\n },\n })\n .then((response) => {\n const resultData = response.data\n .reduce((ac, obj) => {\n let dtEntry = ac.find((x) => x.dt === obj.dt);\n if (!dtEntry) {\n dtEntry = {\n dt: obj.dt,\n entityID: obj.entityID,\n };\n ac.push(dtEntry);\n }\n dtEntry[obj.wtType.replace('Benchmark', 'Index')] = obj.level;\n return ac;\n }, [])\n .filter((x) => !!(x.Fund && x.Index))\n .sort((a, b) => new Date(a.dt) - new Date(b.dt))\n .map((x, index, arr) => {\n const prev = arr[index - 1];\n if (prev) {\n const fundPct = pctChange(prev.Fund, x.Fund);\n const indexPct = pctChange(prev.Index, x.Index);\n return {\n ...x,\n fundPct: fundPct.toFixed(2),\n indexPct: indexPct.toFixed(2),\n // ugly hack for \"VIXL LN\" - should be removed when product gets deleveraged\n impliedLeverage: impliedLeverage(indexPct, fundPct, x.entityID === 'VIXL LN'),\n };\n }\n return x;\n })\n .map((x, _index, arr) => {\n const first = arr[0];\n return {\n ...x,\n Index: ((x.Index / first.Index) * 100).toFixed(2),\n };\n });\n if (resultData.length > 0) {\n resultData.push({\n Fund: '',\n Index: '',\n dt: 'Period Return',\n fundPct: pctChange(resultData[0].Fund, resultData[resultData.length - 1].Fund).toFixed(2),\n indexPct: pctChange(resultData[0].Index, resultData[resultData.length - 1].Index).toFixed(2),\n\n impliedLeverage: '',\n StrikeTime: '',\n });\n }\n\n return resultData;\n })\n .catch((error) => {\n // eslint-disable-next-line\n console.error(error);\n return {\n error: 'Exeption',\n };\n });\n\nconst API = {\n getProductList,\n getPerformance,\n};\n\nexport default API;\n","import React, { useContext, useReducer, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useLocation, useNavigate } from '@reach/router';\nimport queryString from 'query-string';\nimport { Box } from 'wt-ui';\n\nimport Header from '../Header';\nimport Table from '../Table';\n\nimport { actions, reducer } from '../../services/reducer';\nimport VariationContext from '../../services/VariationContext';\nimport variations from '../../services/variations';\n\nimport API from '../../services/API';\n\nconst getProductTickerFromPage = () => {\n try {\n return document\n .getElementsByClassName('ticker-code')[0]\n .innerHTML.trim()\n .split('/')[0];\n } catch (e) {\n // eslint-disable-next-line\n console.log('Could not get ticker-code.');\n }\n return window.performanceApp.ticker;\n};\nconst getProductNameFromPage = () => {\n try {\n return document.getElementsByClassName('fund-name')[0].innerHTML.trim();\n } catch (e) {\n // eslint-disable-next-line\n console.log('Could not get fund-name.');\n }\n return null;\n};\n//NOSONAR\nconst getInitialState = (variation, location, fundList) => {\n const now = new Date();\n if (variation === variations.embedded) {\n // get product ticker from page and initialize state\n const ticker = getProductTickerFromPage();\n let fund = fundList.find((x) => x.exchangeCode === ticker) || null;\n if (!fund) {\n const name = getProductNameFromPage();\n fund = fundList.find((x) => x.displayName === name) || {};\n }\n return {\n loading: true,\n data: [],\n fundData: fund,\n filters: {\n ticker: fund.bloombergTickerPrimary || fund.bloombergTicker,\n //NOSONAR\n startDate: new Date(now - 1000 * 60 * 60 * 24 * 14).toISOString(),\n endDate: now.toISOString(),\n },\n };\n }\n if (variation === variations.standalone) {\n // parse query string to initialize state\n const qs = queryString.parse(location.search);\n\n return {\n loading: false,\n data: [],\n fundData:\n qs.ticker && fundList.find((x) => (x.bloombergTickerPrimary || x.bloombergTicker) === qs.ticker)\n ? fundList.find((x) => (x.bloombergTickerPrimary || x.bloombergTicker) === qs.ticker)\n : null,\n fundList: [],\n filters: {\n ticker: qs.ticker,\n //NOSONAR\n startDate: qs.startDate || new Date(now - 1000 * 60 * 60 * 24 * 14).toISOString(),\n endDate: qs.endDate || now.toISOString(),\n },\n };\n }\n throw new Error('Invalid app variation.');\n};\n\nconst Main = ({ fundList }) => {\n const variation = useContext(VariationContext);\n const location = useLocation();\n const navigate = useNavigate();\n const [state, dispatch] = useReducer(reducer, getInitialState(variation, location, fundList));\n\n useEffect(() => {\n if (!state.filters.ticker) {\n return;\n }\n const fetchData = async () => {\n const result = await API.getPerformance(state.filters);\n dispatch({ type: actions.setData, value: result });\n // update query string;\n // remove filters from state and manage them ONLY using qs\n if (variation === variations.standalone) {\n navigate(`${location.pathname}?${queryString.stringify(state.filters)}`);\n }\n };\n\n dispatch({ type: actions.setLoading, value: true });\n fetchData();\n }, [state.filters, navigate, variation, location.pathname]);\n\n if (!fundList || fundList.length <= 0) {\n return <>Loading;\n }\n\n if ((state.data && state.data.error) || (variation === variations.embedded && !state.filters.ticker)) {\n return <>;\n }\n\n return (\n \n
\n \n \n );\n};\n\nMain.propTypes = {\n fundList: PropTypes.arrayOf(PropTypes.object).isRequired,\n};\n\nconst MainWrapper = () => {\n // app requires fund list to operate\n const [fundList, setFundList] = useState(null);\n const fetchFundList = async () => {\n const result = await API.getProductList();\n setFundList(result);\n };\n\n useEffect(() => {\n fetchFundList();\n }, []);\n\n if (!fundList) {\n return <>;\n }\n return
;\n};\n\nexport default MainWrapper;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Heading, Text, Anchor } from 'wt-ui';\n\n/* global newrelic */\nclass ErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError() {\n return { hasError: true };\n }\n\n componentDidCatch(error, errorInfo) {\n // eslint-disable-next-line no-console\n console.error(error, errorInfo);\n newrelic.noticeError(error);\n }\n\n render() {\n const { hasError } = this.state;\n const { children } = this.props;\n if (hasError) {\n return (\n <>\n Oops! Something went wrong.\n \n Plase realod the page to restart the app, or{' '}\n \n contact us\n {' '}\n if the problem persists.\n \n \n );\n }\n return children;\n }\n}\n\nErrorBoundary.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nexport default ErrorBoundary;\n","import React from 'react';\nimport { Router } from '@reach/router';\nimport PropTypes from 'prop-types';\nimport { WtUi } from 'wt-ui';\nimport { useTranslation } from 'react-i18next';\n\nimport Main from '../Main';\nimport ErrorBoundary from '../../components/ErrorBoundary';\nimport VariationContext from '../../services/VariationContext';\n\n// we need to initialize our i18n module\n// eslint-disable-next-line no-unused-vars\nimport i18n from '../../translations/i18n';\nimport newrelic from './newrelic';\nimport heap from './heap';\n\nnewrelic.init();\n\nconst App = ({ configVariation }) => {\n const { i18n: _i18n } = useTranslation();\n const siteCoreLang = (window.performanceApp && window.performanceApp.isoCode) || 'en-GB';\n _i18n.changeLanguage(siteCoreLang);\n\n if (configVariation === 'embedded') {\n heap.init();\n heap.track('LoadPP');\n }\n\n return (\n \n \n \n \n
\n \n \n \n \n \n \n );\n};\n\nApp.defaultProps = {\n configVariation: 'embedded',\n};\n\nApp.propTypes = {\n configVariation: PropTypes.string,\n};\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import './polyfills';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport App from './containers/App';\nimport * as serviceWorker from './serviceWorker';\n\nconst root = document.getElementById('root');\n// console.log('root.dataset', root.dataset);\nReactDOM.render(, root);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}