{"version":3,"sources":["webpack:///./node_modules/core-js/modules/_array-fill.js","webpack:///./src/helpers/finmetrix-colors.js","webpack:///./node_modules/core-js/modules/es6.array.fill.js","webpack:///./src/dashboard-components/exposure-chart.js"],"names":["toObject","toAbsoluteIndex","toLength","module","exports","value","O","this","length","aLen","arguments","index","undefined","end","endPos","LightGray","Gray","Blue","Green","LightBlue","Red","$export","P","fill","$","kendo","jQuery","renderChart","$container","options","renderLocation","Promise","resolve","reject","actionName","chart","appendTo","controllerName","dataSourceUrl","ajax","url","data","success","response","filter","el","Period","typeNumCols","minRateValue","fromDate","periodEndDate","clientName","reportTitle","priceText","unitText","buildExposureChart","then","eChart","catch","err","error","element","pdf","parsedDate","toString","parseDate","text","getTypeNumName","id","col","find","typeNumId","typeNumName","getTypeNumVisible","visible","risqueNetText","couvertureText","niveauText","couvertureDesireeText","adjustmentText","tauxBudgetText","tauxMarcheText","niveauNCText","niveauNCVisible","kendoChart","renderAs","transitions","title","padding","bottom","legend","position","item","visual","makeVisualLegend","dataSource","seriesDefaults","type","series","field","name","color","finmetrixColors","labels","tooltip","background","format","highlight","toggle","e","preventDefault","transform","show","center","rect","geometry","scale","markers","size","src","drawing","Image","axis","valueAxes","font","rotation","margin","top","min","left","categoryAxis","axisCrossingValues","render","items","sender","closest","remove","getKendoChart","labelColor","imageSrc","marker","rectGeometry","rectContainer","Rect","layout","Layout","spacing","alignItems","label","Text","stroke","append","reflow","location"],"mappings":"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","file":"js/chunk-4c528384.a825f53e.js","sourcesContent":["// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","export default {\n LightGray: '#d3d0ce',\n Gray: '#787779',\n Blue: '#1a345d',\n Green: '#96c93c',\n LightBlue: '#99caea',\n Red: '#ff0000',\n}\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","import finmetrixColors from '../helpers/finmetrix-colors'\n\nconst $ = kendo.jQuery\n\nfunction renderChart($container, options, renderLocation) {\n return new Promise(function(resolve, reject) {\n const actionName = renderLocation === 'report' ? 'DataSource' : 'DataSourceComponent'\n const chart = $('
').appendTo($container)\n const controllerName = 'ExposureReport'\n const dataSourceUrl = `/api/report/${controllerName}/${actionName}`\n\n $.ajax({\n url: dataSourceUrl,\n data: options,\n success: function(response) {\n const data = response.data.filter(el => el.Period != 'Grand Total')\n const {\n typeNumCols,\n minRateValue,\n fromDate,\n periodEndDate,\n clientName,\n reportTitle,\n priceText,\n unitText,\n } = response\n\n buildExposureChart(\n chart,\n data,\n typeNumCols,\n minRateValue,\n periodEndDate,\n fromDate,\n clientName,\n renderLocation,\n reportTitle,\n priceText,\n unitText,\n )\n .then(function(eChart) {\n resolve(eChart)\n })\n .catch(err => reject(err))\n },\n error: function(error) {\n reject(error)\n },\n })\n })\n}\n\nfunction buildExposureChart(\n element,\n data,\n typeNumCols,\n minRateValue,\n periodEndDate,\n fromDate,\n clientName,\n renderLocation,\n reportTitle,\n priceText,\n unitText,\n) {\n return new Promise(function(resolve) {\n const pdf = renderLocation === 'dashboard'\n const parsedDate = kendo.toString(kendo.parseDate(periodEndDate), 'MMMM-yyyy')\n const text = !pdf\n ? `${reportTitle}\n ${clientName} - ${parsedDate}`\n : ' '\n\n const getTypeNumName = id => {\n const col = typeNumCols.find(el => el.typeNumId === id)\n return col ? col.typeNumName : ''\n }\n const getTypeNumVisible = id => {\n const col = typeNumCols.find(el => el.typeNumId === id)\n return col ? col.visible : false\n }\n\n const risqueNetText = getTypeNumName(4)\n\n const couvertureText = getTypeNumName(7)\n\n const niveauText = getTypeNumName(8)\n\n const couvertureDesireeText = getTypeNumName(9)\n\n const adjustmentText = getTypeNumName(21)\n\n const tauxBudgetText = getTypeNumName(22)\n\n const tauxMarcheText = getTypeNumName(23)\n\n const niveauNCText = getTypeNumName(43)\n const niveauNCVisible = getTypeNumVisible(43)\n\n $(element)\n .kendoChart({\n renderAs: pdf ? 'canvas' : 'svg',\n transitions: !pdf,\n title: {\n text: text,\n padding: {\n bottom: 5,\n },\n },\n legend: {\n position: 'bottom',\n item: {\n visual: makeVisualLegend,\n },\n },\n dataSource: data,\n seriesDefaults: {\n type: 'column',\n },\n series: [\n {\n field: 'RisqueNet',\n name: risqueNetText,\n color: finmetrixColors.Green,\n labels: {\n visible: false,\n },\n },\n {\n field: 'Couverture',\n name: couvertureText,\n color: finmetrixColors.Blue,\n labels: {\n visible: false,\n },\n },\n {\n field: 'Adjustment',\n name: adjustmentText,\n color: finmetrixColors.Red,\n tooltip: {\n visible: true,\n background: '#f00',\n },\n\n labels: {\n visible: false,\n },\n },\n {\n field: 'Couverture_Desiree',\n name: couvertureDesireeText,\n color: 'rgba(255,255,255, 0.0001)',\n type: 'line',\n tooltip: {\n visible: true,\n format: '{0:N0}',\n background: '#d3d0ce',\n },\n highlight: {\n toggle: function(e) {\n e.preventDefault()\n var visual = e.visual\n var transform = null\n if (e.show) {\n var center = visual.rect().center()\n transform = kendo.geometry.transform().scale(1.5, 1.5, center)\n }\n visual.transform(transform)\n },\n },\n markers: {\n size: 14,\n visual: function(e) {\n const src = '/img/markers/line.png'\n return new kendo.drawing.Image(src, e.rect)\n },\n },\n },\n {\n field: 'ActualRate',\n name: tauxMarcheText,\n color: finmetrixColors.LightBlue,\n type: 'line',\n markers: {\n size: 3,\n visible: false,\n },\n format: '{0:N4}',\n axis: 'rateAxis',\n tooltip: {\n visible: true,\n format: '{0:N4}',\n },\n },\n {\n field: 'BudgetRate',\n name: tauxBudgetText,\n color: finmetrixColors.Blue,\n type: 'line',\n markers: {\n size: 3,\n visible: false,\n },\n format: '{0:N4}',\n axis: 'rateAxis',\n tooltip: {\n visible: true,\n format: '{0:N4}',\n },\n },\n {\n field: 'Niveau',\n name: niveauText,\n color: 'rgba(255,255,255, 0.0002)',\n type: 'line',\n format: '{0:N4}',\n axis: 'rateAxis',\n tooltip: {\n visible: true,\n format: '{0:N4}',\n background: '#1a345c',\n },\n highlight: {\n toggle: function(e) {\n e.preventDefault()\n var visual = e.visual\n var transform = null\n if (e.show) {\n var center = visual.rect().center()\n transform = kendo.geometry.transform().scale(1.5, 1.5, center)\n }\n visual.transform(transform)\n },\n },\n markers: {\n size: 14,\n visual: function(e) {\n const src = '/img/markers/diamond.png'\n return new kendo.drawing.Image(src, e.rect)\n },\n },\n },\n niveauNCVisible\n ? {\n field: 'NiveauNC',\n name: niveauNCText,\n color: 'rgba(255,255,255, 0.0003)',\n type: 'line',\n format: '{0:N4}',\n axis: 'rateAxis',\n tooltip: {\n visible: true,\n format: '{0:N4}',\n background: '#1a345c',\n },\n highlight: {\n toggle: function(e) {\n e.preventDefault()\n var visual = e.visual\n var transform = null\n if (e.show) {\n var center = visual.rect().center()\n transform = kendo.geometry.transform().scale(1.5, 1.5, center)\n }\n visual.transform(transform)\n },\n },\n markers: {\n size: 14,\n visual: function(e) {\n const src = '/img/markers/circle.png'\n return new kendo.drawing.Image(src, e.rect)\n },\n },\n }\n : {},\n ],\n valueAxes: [\n {\n labels: {\n format: '{0:N0}',\n font: '10px Arial',\n },\n title: {\n text: unitText,\n font: '12px Arial',\n position: 'top',\n rotation: 0,\n margin: {\n top: -32,\n },\n },\n },\n {\n name: 'rateAxis',\n min: minRateValue,\n labels: {\n format: '{0:N4}',\n font: '10px Arial',\n },\n title: {\n text: priceText,\n font: '12px Arial',\n position: 'top',\n rotation: 0,\n margin: {\n top: -32,\n left: -32,\n },\n },\n },\n ],\n categoryAxis: {\n field: 'Period',\n labels: {\n visible: true,\n rotation: -90,\n font: '11px Arial',\n background: 'transparent',\n padding: {\n top: 14,\n },\n },\n axisCrossingValues: [0, 500],\n },\n tooltip: {\n visible: true,\n format: '{0:N0}',\n },\n render: function(e) {\n if (renderLocation === 'dashboard') {\n var items = e.sender.dataSource.data().length\n if (items == 0) {\n e.sender.element.closest('.component').remove()\n }\n }\n resolve(element.getKendoChart())\n },\n })\n .data('kendoChart')\n })\n}\n\nfunction makeVisualLegend(e) {\n var color = e.options.markers.background\n var labelColor = e.options.labels.color\n var imageSrc = ''\n if (color === 'rgba(255,255,255, 0.0001)') {\n color = finmetrixColors.LightGray\n imageSrc = '/img/markers/line.png'\n } else if (color === 'rgba(255,255,255, 0.0002)') {\n color = finmetrixColors.Blue\n imageSrc = '/img/markers/diamond.png'\n } else if (color === 'rgba(255,255,255, 0.0003)') {\n color = finmetrixColors.Blue\n imageSrc = '/img/markers/circle.png'\n }\n var rectContainer = new kendo.geometry.Rect([0, 0], ['100%', 50])\n var layout = new kendo.drawing.Layout(rectContainer, {\n spacing: 3,\n alignItems: 'center',\n })\n var label = new kendo.drawing.Text(e.series.name + ' ', [10, 0], {\n fill: {\n color: labelColor,\n },\n font: '9px Arial',\n })\n var marker, rectGeometry\n\n if (imageSrc === '') {\n rectGeometry = new kendo.geometry.Rect([0, 0], [10, 3])\n marker = new kendo.drawing.Rect(rectGeometry).stroke(labelColor, 0).fill(color)\n } else {\n rectGeometry = new kendo.geometry.Rect([0, -6], [10, 10])\n marker = new kendo.drawing.Image(imageSrc, rectGeometry)\n }\n layout.append(marker, label)\n layout.reflow()\n return layout\n}\n\nexport default {\n render: function($container, options, location = 'dashboard') {\n return renderChart($container, options, location)\n },\n}\n"],"sourceRoot":""}