{"version":3,"file":"dist/229.js","mappings":"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","sources":["webpack://vaneckweb/../Static/eu/landingpages-js/src/utils/get-elements.js","webpack://vaneckweb/../Static/eu/landingpages-js/src/utils/eventbus.js","webpack://vaneckweb/../Static/eu/landingpages-js/src/modules/risk-profile/events.js","webpack://vaneckweb/../Static/eu/landingpages-js/src/modules/risk-profile/config.js","webpack://vaneckweb/../Static/eu/landingpages-js/src/modules/risk-profile/utils.js","webpack://vaneckweb/../Static/eu/landingpages-js/src/modules/risk-profile/table.js","webpack://vaneckweb/../Static/eu/landingpages-js/src/modules/risk-profile/visual.js","webpack://vaneckweb/../Static/eu/landingpages-js/src/utils/hydrator.js","webpack://vaneckweb/../Static/eu/js/src/landing-pages/legacy-modules.js","webpack://vaneckweb/../Static/eu/landingpages-js/src/modules/risk-profile/risk-profile.js"],"sourcesContent":["const qs = (sel, parent = document.body) => parent.querySelector(sel);\r\nconst qsa = (sel, parent = document.body) => Array.from(parent.querySelectorAll(sel));\r\nconst getRef = (ref, parent = document.body) => qs(`[data-ref=${ref}]`, parent);\r\n\r\nexport {\r\n\tgetRef,\r\n\tqs,\r\n\tqsa,\r\n};\r\n","import mitt from 'mitt';\r\n\r\nconst eventbus = mitt();\r\n\r\nexport default eventbus;\r\n","const INVESTMENT_HIGHLIGHT = 'investment-highlight';\r\n\r\nconst events = {\r\n\tINVESTMENT_HIGHLIGHT,\r\n};\r\n\r\nexport default events;\r\n","import {\r\n\teaseCubicOut as easeOut,\r\n\teaseCubicIn as easeIn,\r\n} from 'd3-ease';\r\n\r\nconst dimensionDefault = 500;\r\n\r\nconst animation = {\r\n\tduration: 350,\r\n\teaseOut,\r\n\teaseIn,\r\n};\r\n\r\nconst breakpoint = 992;\r\n\r\nconst getSizing = () => {\r\n\tconst { outerWidth: windowWidth } = window;\r\n\r\n\tconst isNarrowScreen = windowWidth < breakpoint;\r\n\r\n\tconst newWidth = Math.min(dimensionDefault, windowWidth);\r\n\tconst scale = Math.max(Math.min(3, newWidth / dimensionDefault), 0.5);\r\n\r\n\tconst width = dimensionDefault * scale;\r\n\tconst height = dimensionDefault * scale;\r\n\r\n\tconst pieSize = isNarrowScreen ? width : width * 0.8;\r\n\tconst radiusInner = isNarrowScreen ? pieSize * 0.1 : pieSize * 0.13;\r\n\tconst radiusOuter = isNarrowScreen ? pieSize * 0.47 : pieSize * 0.41;\r\n\tconst radiusLabels = pieSize * 0.45;\r\n\r\n\treturn {\r\n\t\tisNarrowScreen,\r\n\t\twidth,\r\n\t\theight,\r\n\t\tradius: {\r\n\t\t\tinner: radiusInner,\r\n\t\t\touter: radiusOuter,\r\n\t\t\tlabels: radiusLabels,\r\n\t\t},\r\n\t};\r\n};\r\n\r\nexport { getSizing, animation, breakpoint };\r\n","import { arc } from 'd3-shape';\r\nimport { interpolate } from 'd3-interpolate';\r\nimport { getSizing } from './config';\r\n\r\nconst scales = {\r\n\thigh: 1,\r\n\tmedium: 0.9,\r\n\tlow: 0.8,\r\n};\r\n\r\n/**\r\n * Check if a slice is past the half of a circle\r\n */\r\nconst isAngleOverHalf = d => d.startAngle + ((d.endAngle - d.startAngle) / 2) < Math.PI;\r\n\r\n/**\r\n * Interpolate between the current and the new data of an HTML element\r\n */\r\nconst interpolateState = (element, d) => {\r\n\telement.currentState = element.currentState || d;\r\n\r\n\tconst interpolator = interpolate(element.currentState, d);\r\n\r\n\telement.currentState = d;\r\n\r\n\treturn interpolator;\r\n};\r\n\r\n/**\r\n * Value formatter for labels\r\n */\r\nconst formatValue = (value) => {\r\n\tvalue = Math.round(value * 100);\r\n\r\n\treturn `${value}%`;\r\n};\r\n\r\n/**\r\n * Get the scale for a slice depending on its importance\r\n */\r\nconst getScale = (importance = '') => {\r\n\tconst key = importance.toLowerCase();\r\n\r\n\treturn scales[key] || 1;\r\n};\r\n\r\n/**\r\n * Slices have magical random radii\r\n * Create a new arc depending on the scale of the slice\r\n */\r\nconst getSliceArc = (sliceData) => {\r\n\tconst { data: { scale } } = sliceData;\r\n\r\n\tconst { radius: { inner, outer } } = getSizing();\r\n\r\n\treturn arc()\r\n\t\t.innerRadius(inner)\r\n\t\t.outerRadius(outer * scale);\r\n};\r\n\r\n\r\nexport {\r\n\tgetSliceArc,\r\n\tisAngleOverHalf,\r\n\tinterpolateState,\r\n\tgetScale,\r\n\tformatValue,\r\n};\r\n","import { formatValue } from './utils';\r\nimport { getRef, qsa } from '../../utils/get-elements';\r\n\r\nimport eventbus from '../../utils/eventbus';\r\nimport events from './events';\r\n\r\nconst createElement = t => document.createElement(t);\r\n\r\nconst createTableRow = ({ color }) => {\r\n\tconst row = createElement('tr');\r\n\r\n\trow.dataset.color = color;\r\n\trow.classList.add('risk-table__row');\r\n\r\n\treturn row;\r\n};\r\n\r\nclass RiskProfileTable {\r\n\tconstructor(el) {\r\n\t\tthis.el = el;\r\n\r\n\t\tthis.tableBody = getRef('body', this.el);\r\n\t\tthis.data = [];\r\n\t\tthis.rows = [];\r\n\r\n\t\tthis.init();\r\n\t}\r\n\r\n\tinit() {\r\n\t\tthis.tableBody.addEventListener('mouseover', e => this.onPointerInteraction(e));\r\n\t\tthis.tableBody.addEventListener('mouseout', e => this.onPointerInteraction(e));\r\n\t\tthis.tableBody.addEventListener('click', e => this.onPointerDown(e));\r\n\t}\r\n\r\n\tupdate(data) {\r\n\t\tthis.data = data;\r\n\t\tthis.tableBody.innerHTML = '';\r\n\r\n\t\tdata.forEach((group, groupIndex) => {\r\n\t\t\tconst { investments } = group;\r\n\r\n\t\t\tconst row = createTableRow(group);\r\n\t\t\tconst colorCell = createElement('td');\r\n\t\t\tconst assetClassCell = createElement('td');\r\n\t\t\tconst assetClassRiskCell = createElement('td');\r\n\r\n\t\t\tcolorCell.style.backgroundColor = `${group.color}`;\r\n\t\t\tcolorCell.setAttribute('rowspan', investments.length);\r\n\r\n\r\n\t\t\tassetClassCell.textContent = group.title;\r\n\t\t\tassetClassCell.classList.add('risk-table__assetclass');\r\n\t\t\tassetClassCell.dataset.type = 'assetclass';\r\n\t\t\tassetClassCell.dataset.index = groupIndex;\r\n\t\t\tassetClassCell.setAttribute('rowspan', investments.length);\r\n\r\n\t\t\tassetClassRiskCell.textContent = formatValue(group.value);\r\n\t\t\tassetClassRiskCell.classList.add('risk-table__assetclass-risk');\r\n\t\t\tassetClassRiskCell.setAttribute('rowspan', investments.length);\r\n\r\n\r\n\t\t\trow.appendChild(colorCell);\r\n\t\t\trow.appendChild(assetClassCell);\r\n\t\t\trow.appendChild(assetClassRiskCell);\r\n\r\n\t\t\tthis.tableBody.appendChild(row);\r\n\r\n\t\t\tinvestments.forEach((investment, childIndex) => {\r\n\t\t\t\tconst { title, value, link } = investment;\r\n\t\t\t\tconst hasLink = link !== '';\r\n\r\n\t\t\t\tlet productRow;\r\n\r\n\t\t\t\tif (childIndex === 0) {\r\n\t\t\t\t\tproductRow = row;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tproductRow = createTableRow(group);\r\n\r\n\t\t\t\t\tthis.tableBody.appendChild(productRow);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst labelCell = createElement('td');\r\n\t\t\t\tconst valueCell = createElement('td');\r\n\r\n\t\t\t\tlabelCell.classList.toggle('risk-table__link', hasLink);\r\n\t\t\t\tvalueCell.classList.toggle('risk-table__link', hasLink);\r\n\r\n\t\t\t\tlabelCell.classList.add('is-investment');\r\n\t\t\t\tvalueCell.classList.add('is-investment');\r\n\r\n\t\t\t\tlabelCell.dataset.groupIndex = groupIndex;\r\n\t\t\t\tvalueCell.dataset.groupIndex = groupIndex;\r\n\r\n\t\t\t\tlabelCell.dataset.childIndex = childIndex;\r\n\t\t\t\tvalueCell.dataset.childIndex = childIndex;\r\n\r\n\t\t\t\tlabelCell.dataset.type = 'investment';\r\n\t\t\t\tvalueCell.dataset.type = 'investment';\r\n\r\n\t\t\t\tlabelCell.textContent = title;\r\n\t\t\t\tvalueCell.textContent = formatValue(value);\r\n\r\n\t\t\t\tproductRow.appendChild(labelCell);\r\n\t\t\t\tproductRow.appendChild(valueCell);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.rows = qsa('tr', this.tableBody);\r\n\t}\r\n\r\n\tonPointerInteraction({ type: eventType, target }) {\r\n\t\tconst { dataset: { type } = {} } = target;\r\n\r\n\t\tif (type !== 'investment') {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst row = target.closest('tr');\r\n\r\n\t\tif (!row) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst index = this.rows.indexOf(row);\r\n\t\tconst highlighted = eventType === 'mouseover';\r\n\r\n\t\teventbus.emit(events.INVESTMENT_HIGHLIGHT, { index, highlighted });\r\n\t}\r\n\r\n\tonPointerDown({ target }) {\r\n\t\tconst { dataset: { groupIndex, childIndex } = {} } = target;\r\n\r\n\t\tif (!groupIndex || !childIndex) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst group = this.data[groupIndex];\r\n\t\tconst investment = group.investments[childIndex];\r\n\t\tconst { link } = investment;\r\n\r\n\t\tif (!link) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\twindow.open(link);\r\n\t}\r\n\r\n\ttoggleRowHighlight(index, highlighted) {\r\n\t\tconst row = this.rows[index];\r\n\t\tconst { dataset: { color } } = row;\r\n\r\n\t\tconst style = highlighted\r\n\t\t\t? `\r\n\t\t\t\tcolor: ${color};\r\n\t\t\t\tborder-bottom: 1px solid ${color};\r\n\t\t\t\tborder-top: 1px solid ${color};\r\n\t\t\t\tfont-weight: bold;\r\n\t\t\t`\r\n\t\t\t: '';\r\n\r\n\t\tqsa('.is-investment', row).forEach(td => td.setAttribute('style', style));\r\n\t}\r\n}\r\n\r\nexport default RiskProfileTable;\r\n","import { pie, arc } from 'd3-shape';\r\nimport { select } from 'd3-selection';\r\n\r\nimport 'd3-transition';\r\nimport debounce from 'lodash/debounce';\r\n\r\nimport eventbus from '../../utils/eventbus';\r\nimport events from './events';\r\nimport * as utils from './utils';\r\nimport { getSizing, animation } from './config';\r\n\r\nclass RiskProfile {\r\n\tconstructor(el) {\r\n\t\tthis.el = el;\r\n\t\tthis.data = [];\r\n\r\n\t\tthis.init();\r\n\t}\r\n\r\n\tinit() {\r\n\t\tthis.onResize = debounce(this.onResize.bind(this), 250);\r\n\r\n\t\tthis.setupVisual();\r\n\r\n\t\twindow.addEventListener('resize', this.onResize);\r\n\t}\r\n\r\n\tsetupVisual() {\r\n\t\tconst { width, height } = getSizing();\r\n\r\n\t\tthis.pie = pie()\r\n\t\t\t.padAngle(0.005)\r\n\t\t\t.value(s => s.value)\r\n\t\t\t.sort(null);\r\n\r\n\t\tthis.svg = select(this.el)\r\n\t\t\t.append('svg')\r\n\t\t\t.attr('viewbox', '0 0 100 100')\r\n\t\t\t.attr('width', width)\r\n\t\t\t.attr('height', height);\r\n\r\n\t\tthis.visual = this.svg\r\n\t\t\t.append('g')\r\n\t\t\t.classed('visual', true);\r\n\r\n\t\t// a `g` cannot be positioned with a percentage\r\n\t\tconst donutContainer = this.visual\r\n\t\t\t.append('svg')\r\n\t\t\t.attr('x', '50%')\r\n\t\t\t.attr('y', '50%')\r\n\t\t\t.classed('donut-container', true);\r\n\r\n\t\tthis.slicesContainer = donutContainer.append('g').classed('slices-container', true);\r\n\t\tthis.valuesContainer = donutContainer.append('g').classed('values-container', true);\r\n\t\tthis.labelsContainer = donutContainer.append('g').classed('labels-container', true);\r\n\t}\r\n\r\n\tupdate(data) {\r\n\t\tthis.data = data;\r\n\r\n\t\tthis.redraw();\r\n\t}\r\n\r\n\tredraw() {\r\n\t\tconst { width, height } = getSizing();\r\n\t\tconst sliceData = RiskProfile.getInvestments(this.data);\r\n\t\tconst slices = this.pie(sliceData);\r\n\r\n\t\tthis.svg\r\n\t\t\t.attr('width', width)\r\n\t\t\t.attr('height', height);\r\n\r\n\t\tthis.updateSlices(slices);\r\n\t\tthis.updateInnerValues(slices);\r\n\t\tthis.updateLabels(this.data);\r\n\t}\r\n\r\n\tupdateSlices(slices) {\r\n\t\tthis.slicesContainer.selectAll('path.slice')\r\n\t\t\t.data(slices)\r\n\t\t\t.join('path')\r\n\t\t\t.classed('slice', true)\r\n\t\t\t.style('cursor', ({ data: { link } }) => (link === ''\r\n\t\t\t\t? 'default'\r\n\t\t\t\t: 'pointer'\r\n\t\t\t))\r\n\t\t\t.attr('fill', d => d.data.color)\r\n\t\t\t.on('mouseover', (d, i) => this.onSliceHover(d, i))\r\n\t\t\t.on('mouseout', (d, i) => this.onSliceOut(d, i))\r\n\t\t\t.on('click', (d, i) => this.onSliceClick(d))\r\n\t\t\t.transition()\r\n\t\t\t.duration(animation.duration)\r\n\t\t\t.ease(animation.easeOut)\r\n\t\t\t.attrTween('d', (d, index, group) => {\r\n\t\t\t\t// http://bl.ocks.org/mbostock/5100636\r\n\t\t\t\t// https://bl.ocks.org/mbostock/4341574\r\n\t\t\t\t// https://github.com/d3/d3-interpolate/blob/v1.4.0/README.md#interpolate\r\n\t\t\t\tconst interpolate = utils.interpolateState(group[index], d);\r\n\r\n\t\t\t\treturn (t) => {\r\n\t\t\t\t\tconst arcGenerator = utils.getSliceArc(interpolate(t));\r\n\r\n\t\t\t\t\treturn arcGenerator(interpolate(t));\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t}\r\n\r\n\tupdateInnerValues(slices) {\r\n\t\tthis.valuesContainer.selectAll('text.slice-label')\r\n\t\t\t.data(slices)\r\n\t\t\t.join('text')\r\n\t\t\t.classed('slice-label', true)\r\n\t\t\t.style('text-anchor', 'middle')\r\n\t\t\t.transition()\r\n\t\t\t.duration(animation.duration)\r\n\t\t\t.ease(animation.easeOut)\r\n\t\t\t.text(d => utils.formatValue(d.data.value))\r\n\t\t\t.attrTween('transform', (d, i, group) => {\r\n\t\t\t\tconst interpolate = utils.interpolateState(group[i], d);\r\n\r\n\t\t\t\tconst arcGenerator = utils.getSliceArc(d);\r\n\r\n\t\t\t\treturn t => `translate(${arcGenerator.centroid(interpolate(t))})`;\r\n\t\t\t});\r\n\t}\r\n\r\n\tupdateLabels(groups) {\r\n\t\tconst labelSlices = this.pie(groups);\r\n\r\n\t\tconst {\r\n\t\t\tisNarrowScreen,\r\n\t\t\tradius: {\r\n\t\t\t\tlabels: labelRadius,\r\n\t\t\t\touter: outerSliceRadius,\r\n\t\t\t},\r\n\t\t} = getSizing();\r\n\r\n\t\tconst labelsArc = arc()\r\n\t\t\t.innerRadius(labelRadius)\r\n\t\t\t.outerRadius(labelRadius);\r\n\r\n\t\tthis.labelsContainer.classed('is-hidden', isNarrowScreen);\r\n\r\n\t\tif (isNarrowScreen) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.labelsContainer.selectAll('text.risk-profile__label')\r\n\t\t\t.data(labelSlices)\r\n\t\t\t.join('text')\r\n\t\t\t.classed('risk-profile__label', true)\r\n\t\t\t.text(d => d.data.title)\r\n\t\t\t.attr('fill', d => d.data.color)\r\n\t\t\t.attr('text-anchor', d => (utils.isAngleOverHalf(d) ? 'start' : 'end'))\r\n\t\t\t.attr('dx', d => (utils.isAngleOverHalf(d) ? '0.5em' : '-0.5em'))\r\n\t\t\t.attr('dy', '.35em')\r\n\t\t\t.transition()\r\n\t\t\t.duration(animation.duration)\r\n\t\t\t.ease(animation.easeOut)\r\n\t\t\t.attrTween('transform', (d, index, group) => {\r\n\t\t\t\tconst interpolate = utils.interpolateState(group[index], d);\r\n\r\n\t\t\t\treturn t => `translate(${labelsArc.centroid(interpolate(t))})`;\r\n\t\t\t});\r\n\r\n\t\tthis.labelsContainer.selectAll('polyline.line')\r\n\t\t\t.data(labelSlices)\r\n\t\t\t.join('polyline')\r\n\t\t\t.classed('line', true)\r\n\t\t\t.attr('stroke', d => d.data.color)\r\n\t\t\t.attr('fill', 'none')\r\n\t\t\t.transition()\r\n\t\t\t.duration(animation.duration)\r\n\t\t\t.ease(animation.easeOut)\r\n\t\t\t.attrTween('points', (d, index, group) => {\r\n\t\t\t\tconst angleOverHalf = utils.isAngleOverHalf(d);\r\n\r\n\t\t\t\tconst { data: { importance } } = d;\r\n\t\t\t\tconst scale = utils.getScale(importance);\r\n\r\n\t\t\t\tconst sliceRadius = outerSliceRadius * scale;\r\n\t\t\t\tconst sliceArc = arc()\r\n\t\t\t\t\t.innerRadius(sliceRadius * 1.05)\r\n\t\t\t\t\t.outerRadius(sliceRadius * 1.05);\r\n\r\n\t\t\t\tconst interpolate = utils.interpolateState(group[index], d);\r\n\r\n\t\t\t\treturn (t) => {\r\n\t\t\t\t\tconst d2 = interpolate(t);\r\n\r\n\t\t\t\t\tconst posA = labelsArc.centroid(d2);\r\n\t\t\t\t\tconst posB = labelsArc.centroid(d2);\r\n\r\n\t\t\t\t\tposB[0] += angleOverHalf ? -20 : 20;\r\n\t\t\t\t\tconst posC = sliceArc.centroid(d2);\r\n\r\n\t\t\t\t\tposB[0] = angleOverHalf\r\n\t\t\t\t\t\t? Math.max(posB[0], posC[0])\r\n\t\t\t\t\t\t: Math.min(posB[0], posC[0]);\r\n\r\n\t\t\t\t\treturn [posA, posB, posC];\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t}\r\n\r\n\tonSliceHover(data, index) {\r\n\t\tthis.dispatchMouseInteraction(index, true);\r\n\t}\r\n\r\n\tonSliceOut(data, index) {\r\n\t\tthis.dispatchMouseInteraction(index, false);\r\n\t}\r\n\r\n\tonSliceClick(d) {\r\n\t\tconst { data: { link } } = d;\r\n\r\n\t\tif (link) {\r\n\t\t\twindow.open(link);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tonResize() {\r\n\t\tthis.updateSize();\r\n\t}\r\n\r\n\tupdateSize() {\r\n\t\tthis.redraw();\r\n\t}\r\n\r\n\tdispatchMouseInteraction(index, highlighted) {\r\n\t\tconst event = events.INVESTMENT_HIGHLIGHT;\r\n\r\n\t\teventbus.emit(event, { highlighted, index });\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\ttoggleSliceHighlight(index, highlighted) {\r\n\t\tconst slice = this.slicesContainer.select(`path.slice:nth-child(${index + 1})`);\r\n\t\tconst value = this.valuesContainer.select(`text.slice-label:nth-child(${index + 1})`);\r\n\r\n\t\tconst [{ data: { color } }] = slice.data();\r\n\r\n\t\tconst fillColor = highlighted\r\n\t\t\t? '#fff'\r\n\t\t\t: color;\r\n\r\n\t\tconst textColor = highlighted\r\n\t\t\t? color\r\n\t\t\t: 'white';\r\n\r\n\t\tconst borderColor = highlighted\r\n\t\t\t? color\r\n\t\t\t: 'transparent';\r\n\r\n\t\tconst easing = highlighted\r\n\t\t\t? animation.easeOut\r\n\t\t\t: animation.easeIn;\r\n\r\n\t\tslice\r\n\t\t\t.transition()\r\n\t\t\t.duration(100)\r\n\t\t\t.ease(easing)\r\n\t\t\t.attr('fill', fillColor)\r\n\t\t\t.style('stroke', borderColor);\r\n\r\n\t\tvalue\r\n\t\t\t.transition()\r\n\t\t\t.duration(100)\r\n\t\t\t.ease(easing)\r\n\t\t\t.style('fill', textColor);\r\n\t}\r\n\r\n\t// return a flat array with only the children\r\n\tstatic getInvestments(groups) {\r\n\t\treturn groups.reduce((memo, group, groupIndex) => {\r\n\t\t\t// get properties from the parent group\r\n\t\t\tconst { color, importance } = group;\r\n\t\t\tconst scale = utils.getScale(importance);\r\n\r\n\t\t\t// merge parent properties into child\r\n\t\t\tconst sectionSlices = group.investments.map(child => ({\r\n\t\t\t\t...child,\r\n\t\t\t\tcolor,\r\n\t\t\t\tscale,\r\n\t\t\t\tgroupIndex,\r\n\t\t\t}));\r\n\r\n\t\t\treturn [...memo, ...sectionSlices];\r\n\t\t}, []);\r\n\t}\r\n}\r\n\r\nexport default RiskProfile;\r\n","class Hydrator {\r\n\tconstructor() {\r\n\t\tthis.modules = new Map();\r\n\t}\r\n\r\n\tregisterModules(modules) {\r\n\t\tthis.modules = modules;\r\n\t}\r\n\r\n\thydrate(queryElement = document.body) {\r\n\t\tArray.from(queryElement.querySelectorAll('[data-module]'))\r\n\t\t\t.map((el) => {\r\n\t\t\t\tconst name = el.dataset.module;\r\n\r\n\t\t\t\tif (!this.modules.has(name)) {\r\n\t\t\t\t\tthrow Error(`No module found for \"${name}\"`);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst ModuleClass = this.modules.get(name);\r\n\r\n\t\t\t\treturn new ModuleClass(el);\r\n\t\t\t});\r\n\t}\r\n}\r\n\r\nexport default new Hydrator();\r\n","import RiskProfile from \"../../../landingpages-js/src/modules/risk-profile/risk-profile.js\";\r\nimport hydrator from \"../../../landingpages-js/src/utils/hydrator.js\";\r\n\r\nconst modules = new Map([['risk-profile', RiskProfile]]);\r\n\r\nconst main = () => {\r\n\thydrator.registerModules(modules);\r\n\thydrator.hydrate(document.body);\r\n};\r\n\r\n//export default main;\r\nmain();","import { getRef } from '../../utils/get-elements';\r\n\r\nimport eventbus from '../../utils/eventbus';\r\nimport events from './events';\r\n\r\nimport Table from './table';\r\nimport Visual from './visual';\r\n\r\nclass RiskProfile {\r\n\tconstructor(el) {\r\n\t\tthis.el = el;\r\n\r\n\t\tconst riskProfiles = JSON.parse(this.el.dataset.riskProfiles || '{}');\r\n\r\n\t\tif (!Object.keys(riskProfiles).length) {\r\n\t\t\tconsole.error('No risk profiles were passed');\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.riskProfiles = riskProfiles;\r\n\r\n\t\tthis.selector = getRef('selector', this.el);\r\n\t\tthis.table = new Table(getRef('table', this.el));\r\n\t\tthis.visual = new Visual(getRef('visual', this.el));\r\n\r\n\t\tthis.init();\r\n\t}\r\n\r\n\tinit() {\r\n\t\teventbus.on(events.INVESTMENT_HIGHLIGHT, e => this.onInvestmentHighlight(e));\r\n\r\n\t\tthis.selector.addEventListener('change', () => this.onRiskProfileChanged());\r\n\r\n\t\tthis.update();\r\n\t}\r\n\r\n\tonInvestmentHighlight(e) {\r\n\t\tconst { index, highlighted } = e;\r\n\r\n\t\tthis.visual.toggleSliceHighlight(index, highlighted);\r\n\t\tthis.table.toggleRowHighlight(index, highlighted);\r\n\t}\r\n\r\n\tonRiskProfileChanged() {\r\n\t\tthis.update();\r\n\t}\r\n\r\n\tupdate() {\r\n\t\tlet { value: profile } = this.selector;\r\n\r\n\t\tprofile = profile.toLowerCase();\r\n\r\n\t\tconst data = this.riskProfiles[profile];\r\n\r\n\t\tthis.visual.update(data);\r\n\t\tthis.table.update(data);\r\n\t}\r\n}\r\n\r\nexport default RiskProfile;\r\n"],"names":["qsa","sel","parent","arguments","length","undefined","document","body","Array","from","querySelectorAll","getRef","ref","querySelector","qs","mitt","dimensionDefault","animation","duration","easeOut","easeIn","getSizing","outerWidth","windowWidth","window","isNarrowScreen","newWidth","Math","min","scale","max","width","pieSize","height","radius","inner","outer","labels","scales","high","medium","low","isAngleOverHalf","d","startAngle","endAngle","PI","interpolateState","element","currentState","interpolator","interpolate","formatValue","value","round","getScale","key","toLowerCase","getSliceArc","sliceData","data","arc","innerRadius","outerRadius","createElement","t","createTableRow","_ref","color","row","dataset","classList","add","constructor","el","this","tableBody","rows","init","addEventListener","e","onPointerInteraction","onPointerDown","update","innerHTML","forEach","group","groupIndex","investments","colorCell","assetClassCell","assetClassRiskCell","style","backgroundColor","setAttribute","textContent","title","type","index","appendChild","investment","childIndex","link","hasLink","productRow","labelCell","valueCell","toggle","_ref2","eventType","target","closest","indexOf","highlighted","eventbus","emit","events","_ref3","open","toggleRowHighlight","td","RiskProfile","onResize","debounce","bind","setupVisual","pie","padAngle","s","sort","svg","select","append","attr","visual","classed","donutContainer","slicesContainer","valuesContainer","labelsContainer","redraw","getInvestments","slices","updateSlices","updateInnerValues","updateLabels","selectAll","join","on","i","onSliceHover","onSliceOut","onSliceClick","transition","ease","attrTween","utils","arcGenerator","text","centroid","groups","labelSlices","labelRadius","outerSliceRadius","labelsArc","angleOverHalf","importance","sliceRadius","sliceArc","d2","posA","posB","posC","dispatchMouseInteraction","updateSize","event","toggleSliceHighlight","slice","fillColor","textColor","borderColor","easing","reduce","memo","map","child","modules","Map","registerModules","hydrate","queryElement","name","module","has","Error","get","riskProfiles","JSON","parse","Object","keys","selector","table","Table","Visual","console","error","onInvestmentHighlight","onRiskProfileChanged","profile","hydrator"],"sourceRoot":""}