{"version":3,"sources":["webpack:///./src/dashboard-components/product-hedge-distribution.js"],"names":["$","kendo","jQuery","getGridColumns","columns","isSummaryView","map","element","format","field","title","numeric","test","alignRight","style","numericAttributes","attributes","class","footerAttributes","footerTemplate","groupHeaderColumnTemplate","template","undefined","headerAttributes","getGroups","summaryView","aggregates","aggregate","getAggregates","filter","renderGrid","$container","options","renderLocation","Promise","resolve","reject","action","dataSourceUrl","ajax","url","data","success","response","grid","empty","kendoGrid","editable","scrollable","dataSource","group","dataBound","e","items","sender","length","closest","remove","prepend","each","key","item","collapseGroup","footer","find","addClass","filterable","sortable","pageable","error","render","location"],"mappings":"uuBAAA,IAAMA,EAAIC,MAAMC,OAEhB,SAASC,EAAeC,EAASC,GAC/B,OAAOD,EAAQE,IAAI,SAAAC,GAAW,IACrBC,EAAwBD,EAAxBC,OAAQC,EAAgBF,EAAhBE,MAAOC,EAASH,EAATG,MAChBC,EAAU,IAAIC,KAAKJ,GACnBK,EAAa,CACjBC,MAAO,sBAEHC,EAAoB,CACxBC,WAAY,EAAF,GACLH,EADK,GAEM,UAAVJ,GAAqBJ,EAAgB,CAACY,MAAO,kBAAoB,IAEvEC,iBAAkB,EAAF,GACXL,GAELM,eAAgB,+BAChBC,0BAA2Bf,EAAa,mCAExB,UAAVI,EAAoB,iBAAmB,GAFL,wCAIpC,iBAGN,UACEY,SAAoB,YAAVZ,EAAsB,QAAKa,EACrCb,MAAO,KAAF,OAAOA,EAAP,MACLC,MAAOA,EACPa,iBAAkB,CAChBT,MAAO,uBAETE,WAAY,CACVF,MAAO,qBAETM,0BAAqC,YAAVX,EAAsB,gBAAkB,QACnES,iBAAkB,CAChBJ,MAAO,qBAETK,eAAgB,cAChBX,OAAQA,GACJG,EAAUI,EAAoB,MAKxC,SAASS,EAAUpB,EAASqB,GAC1B,OAAIA,EACK,CACLhB,MAAO,UACPiB,WAAYtB,EAAQE,IAAI,SAAAC,GAAW,IAC1BC,EAAiBD,EAAjBC,OAAQC,EAASF,EAATE,MACTE,EAAU,IAAIC,KAAKJ,GAEzB,MAAO,CACLC,MAAO,KAAF,OAAOA,EAAP,MACLkB,UAAWhB,EAAU,MAAQ,YAK5B,CACLF,MAAO,QACPkB,UAAW,SAKjB,SAASC,EAAcxB,GACrB,OAAOA,EACJyB,OAAO,SAAAtB,GAAO,OAAsB,MAAlBA,EAAQC,SAC1BF,IAAI,gBAAEG,EAAF,EAAEA,MAAF,MAAc,CACjBA,MAAO,KAAF,OAAOA,EAAP,MACLkB,UAAW,SAIjB,SAASG,EAAWC,EAAYC,EAASC,GACvC,OAAO,IAAIC,QAAQ,SAASC,EAASC,GACnC,IAAMC,EAA2B,UAAlBJ,EAA6B,iBAAmB,oBACzDK,EAAgB,0CAAH,OAA6CD,GAEhErC,EAAEuC,KAAK,CACLC,IAAKF,EACLG,KAAMT,EACNU,QAAS,SAASC,GAAU,IACnBF,EAAiBE,EAAjBF,KAAMrC,EAAWuC,EAAXvC,QAEPwC,EAAOb,EACVc,QACAC,UAAU,CACTC,UAAU,EACVC,YAAY,EACZC,WAAY,CACVR,KAAMA,EACNS,MAAO1B,EAAUpB,EAAS4B,EAAQP,aAClCE,UAAWC,EAAcxB,IAE3B+C,UAAW,SAASC,GAClB,GAAuB,cAAnBnB,EAAgC,CAClC,IAAIoB,EAAQD,EAAEE,OAAOL,WAAWR,OAAOc,OAC1B,GAATF,GACFD,EAAEE,OAAO/C,QAAQiD,QAAQ,cAAcC,SAErCJ,EAAQ,IACVD,EAAEE,OAAO/C,QAAQiD,QAAQ,cAAcE,QAAQ,6BAI/CN,EAAEE,OAAOL,WAAWC,QAAQK,OAAS,GACvCvD,EAAE,mBAAmB2D,KAAK,SAASC,EAAKC,GACtCT,EAAEE,OAAOQ,cAAcD,KAI3BT,EAAEE,OAAOS,OAAOC,KAAK,MAAMC,SAAS,YAEpC9B,EAAQS,IAEVsB,YAAY,EACZC,UAAU,EACVC,UAAU,EACVhE,QAASD,EAAeC,EAAS4B,EAAQP,eAE1CgB,KAAK,aAEHT,EAAQP,aACPmB,GAAMA,EAAKK,WAAWC,MAAM,KAGpCmB,MAAO,SAASA,GACdjC,EAAOiC,QAMA,cACbC,OAAQ,SAASvC,EAAYC,GAAiC,IAAxBuC,EAAwB,uDAAb,YAC/C,OAAOzC,EAAWC,EAAYC,EAASuC","file":"js/chunk-2d0aaeed.8552c5f6.js","sourcesContent":["const $ = kendo.jQuery\n\nfunction getGridColumns(columns, isSummaryView) {\n return columns.map(element => {\n const {format, field, title} = element\n const numeric = /N/.test(format)\n const alignRight = {\n style: 'text-align: right;',\n }\n const numericAttributes = {\n attributes: {\n ...alignRight,\n ...(field === 'Total' && isSummaryView ? {class: 'totalDrillDown'} : {}),\n },\n footerAttributes: {\n ...alignRight,\n },\n footerTemplate: '#:kendo.toString(sum, \"N0\")#',\n groupHeaderColumnTemplate: isSummaryView\n ? `
#:kendo.toString(sum, \"N0\")#
`\n : '#=data.value#',\n }\n\n return {\n template: field === 'KeyName' ? '' : undefined,\n field: `[\"${field}\"]`,\n title: title,\n headerAttributes: {\n style: 'text-align: center;',\n },\n attributes: {\n style: 'text-align: left;',\n },\n groupHeaderColumnTemplate: field === 'KeyName' ? '#=data.value#' : 'Total',\n footerAttributes: {\n style: 'text-align: left;',\n },\n footerTemplate: 'Grand Total',\n format: format,\n ...(numeric ? numericAttributes : {}),\n }\n })\n}\n\nfunction getGroups(columns, summaryView) {\n if (summaryView) {\n return {\n field: 'KeyName',\n aggregates: columns.map(element => {\n const {format, field} = element\n const numeric = /N/.test(format)\n\n return {\n field: `[\"${field}\"]`,\n aggregate: numeric ? 'sum' : 'count',\n }\n }),\n }\n } else {\n return {\n field: 'Month',\n aggregate: 'count',\n }\n }\n}\n\nfunction getAggregates(columns) {\n return columns\n .filter(element => element.format != null)\n .map(({field}) => ({\n field: `[\"${field}\"]`,\n aggregate: 'sum',\n }))\n}\n\nfunction renderGrid($container, options, renderLocation) {\n return new Promise(function(resolve, reject) {\n const action = renderLocation == 'report' ? 'ReadFromReport' : 'ReadFromDashboard'\n const dataSourceUrl = `/api/report/FuturePastDistributedHedge/${action}`\n\n $.ajax({\n url: dataSourceUrl,\n data: options,\n success: function(response) {\n const {data, columns} = response\n\n const grid = $container\n .empty()\n .kendoGrid({\n editable: false,\n scrollable: false,\n dataSource: {\n data: data,\n group: getGroups(columns, options.summaryView),\n aggregate: getAggregates(columns),\n },\n dataBound: 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 if (items > 25) {\n e.sender.element.closest('.component').prepend('
')\n }\n }\n\n if (e.sender.dataSource.group().length > 0) {\n $('.k-grouping-row').each(function(key, item) {\n e.sender.collapseGroup(item)\n })\n }\n\n e.sender.footer.find('td').addClass('k-header')\n\n resolve(grid)\n },\n filterable: false,\n sortable: false,\n pageable: false,\n columns: getGridColumns(columns, options.summaryView),\n })\n .data('kendoGrid')\n\n if (!options.summaryView) {\n if (grid) grid.dataSource.group('')\n }\n },\n error: function(error) {\n reject(error)\n },\n })\n })\n}\n\nexport default {\n render: function($container, options, location = 'dashboard') {\n return renderGrid($container, options, location)\n },\n}\n"],"sourceRoot":""}