{"version":3,"sources":["webpack:///./pages/projects/graphs/charts/index.js"],"names":["document","addEventListener","projectChartData","JSON","parse","getElementById","innerHTML","barChart","selector","data","ctx","get","getContext","container","$","parent","attr","width","shouldAdjustFontSize","window","innerWidth","Chart","type","options","barChartOptions","chartData","labels","Object","keys","datasets","backgroundColor","borderColor","borderWidth","_","values","hourData","hour","dayData","weekDays","firstDayOfWeek","arguments","length","undefined","reduce","acc","dayName","idx","arr","reorderedDayName","_objectSpread","_defineProperty","reorderWeekDays","gon","first_day_of_week","monthData","month","languages","map","x","value","color","hoverBackgroundColor","highlight","label","context","pieChartOptions","pieChart"],"mappings":"2UAMAA,SAASC,iBAAiB,mBAAoB,WAC5C,IAAMC,EAAmBC,KAAKC,MAAMJ,SAASK,eAAe,oBAAoBC,WAE1EC,EAAW,SAACC,EAAUC,GAE1B,IAAMC,EAAMF,EAASG,IAAI,GAAGC,WAAW,MAEjCC,EAAYC,IAAEN,GAAUO,SAC9BP,EAASQ,KAAK,QAASF,IAAED,GAAWI,SAGpC,IAAMC,EAAuBC,OAAOC,WAAa,IACjD,OAAO,IAAIC,IAAMX,EAAK,CACpBY,KAAM,MACNb,OACAc,QAASC,YAAgBN,MAcvBO,EAAY,SAAAhB,GAAI,MAAK,CACzBiB,OAAQC,OAAOC,KAAKnB,GACpBoB,SAAU,CACR,CACEC,gBAAiB,wBACjBC,YAAa,sBACbC,YAAa,EACbvB,KAAMwB,IAAEC,OAAOzB,OAoBf0B,EAAWV,EAAUvB,EAAiBkC,MAC5C7B,EAASO,IAAE,eAAgBqB,GAE3B,IACME,EAAUZ,EAnBQ,SAACa,GAAiC,IAAvBC,EAAuBC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAN,EAClD,OAAuB,IAAnBD,EACKD,EAGFX,OAAOC,KAAKU,GAAUK,OAAO,SAACC,EAAKC,EAASC,EAAKC,GACtD,IAAMC,EAAmBD,GAAKD,EAAMP,GAAkBQ,EAAIN,QAE1D,yUAAAQ,CAAA,GACKL,EADLM,EAAA,GAEGF,EAAmBV,EAASU,MAE9B,IAMYG,CAAgBjD,EAAiBoC,SAAUc,IAAIC,oBAEhE9C,EAASO,IAAE,kBAAmBuB,GAE9B,IAAMiB,EAAY7B,EAAUvB,EAAiBqD,OAC7ChD,EAASO,IAAE,gBAAiBwC,GAE5B,IAAM7C,EAAO,CACXoB,SAAU,CACR,CACEpB,KAAMP,EAAiBsD,UAAUC,IAAI,SAAAC,GAAC,OAAIA,EAAEC,QAC5C7B,gBAAiB5B,EAAiBsD,UAAUC,IAAI,SAAAC,GAAC,OAAIA,EAAEE,QACvDC,qBAAsB3D,EAAiBsD,UAAUC,IAAI,SAAAC,GAAC,OAAIA,EAAEI,cAGhEpC,OAAQxB,EAAiBsD,UAAUC,IAAI,SAAAC,GAAC,OAAIA,EAAEK,UAvD/B,SAACC,EAASvD,GACzB,IAAMc,EAAU0C,cAET,IAAI5C,IAAM2C,EAAS,CACxB1C,KAAM,MACNb,OACAc,YAsDJ2C,CAHYpD,IAAE,oBACXH,IAAI,GACJC,WAAW,MACAH","file":"pages.projects.graphs.charts.b48edaa5.chunk.js","sourcesContent":["import $ from 'jquery';\nimport Chart from 'chart.js';\nimport _ from 'underscore';\n\nimport { barChartOptions, pieChartOptions } from '~/lib/utils/chart_utils';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const projectChartData = JSON.parse(document.getElementById('projectChartData').innerHTML);\n\n const barChart = (selector, data) => {\n // get selector by context\n const ctx = selector.get(0).getContext('2d');\n // pointing parent container to make chart.js inherit its width\n const container = $(selector).parent();\n selector.attr('width', $(container).width());\n\n // Scale fonts if window width lower than 768px (iPad portrait)\n const shouldAdjustFontSize = window.innerWidth < 768;\n return new Chart(ctx, {\n type: 'bar',\n data,\n options: barChartOptions(shouldAdjustFontSize),\n });\n };\n\n const pieChart = (context, data) => {\n const options = pieChartOptions();\n\n return new Chart(context, {\n type: 'pie',\n data,\n options,\n });\n };\n\n const chartData = data => ({\n labels: Object.keys(data),\n datasets: [\n {\n backgroundColor: 'rgba(220,220,220,0.5)',\n borderColor: 'rgba(220,220,220,1)',\n borderWidth: 1,\n data: _.values(data),\n },\n ],\n });\n\n const reorderWeekDays = (weekDays, firstDayOfWeek = 0) => {\n if (firstDayOfWeek === 0) {\n return weekDays;\n }\n\n return Object.keys(weekDays).reduce((acc, dayName, idx, arr) => {\n const reorderedDayName = arr[(idx + firstDayOfWeek) % arr.length];\n\n return {\n ...acc,\n [reorderedDayName]: weekDays[reorderedDayName],\n };\n }, {});\n };\n\n const hourData = chartData(projectChartData.hour);\n barChart($('#hour-chart'), hourData);\n\n const weekDays = reorderWeekDays(projectChartData.weekDays, gon.first_day_of_week);\n const dayData = chartData(weekDays);\n barChart($('#weekday-chart'), dayData);\n\n const monthData = chartData(projectChartData.month);\n barChart($('#month-chart'), monthData);\n\n const data = {\n datasets: [\n {\n data: projectChartData.languages.map(x => x.value),\n backgroundColor: projectChartData.languages.map(x => x.color),\n hoverBackgroundColor: projectChartData.languages.map(x => x.highlight),\n },\n ],\n labels: projectChartData.languages.map(x => x.label),\n };\n const ctx = $('#languages-chart')\n .get(0)\n .getContext('2d');\n pieChart(ctx, data);\n});\n"],"sourceRoot":""}