{"version":3,"sources":["webpack:///./pages/projects/graphs/charts/index.js"],"names":["document","addEventListener","projectChartData","JSON","parse","getElementById","innerHTML","responsiveChart","selector","data","options","scaleOverlay","responsive","pointHitDetectionRadius","maintainAspectRatio","ctx","get","getContext","container","jquery__WEBPACK_IMPORTED_MODULE_0___default","parent","generateChart","attr","width","window","innerWidth","scaleFontSize","chart_js__WEBPACK_IMPORTED_MODULE_1___default","a","Bar","resize","chartData","labels","Object","keys","datasets","fillColor","strokeColor","barStrokeWidth","barValueSpacing","barDatasetSpacing","underscore__WEBPACK_IMPORTED_MODULE_2___default","values","hourData","hour","dayData","weekDays","monthData","month","languages","Pie"],"mappings":"qJAIAA,SAASC,iBAAiB,mBAAoB,WAC5C,IAAMC,EAAmBC,KAAKC,MAAMJ,SAASK,eAAe,oBAAoBC,WAE1EC,EAAkB,SAACC,EAAUC,GACjC,IAAMC,GACJC,cAAc,EACdC,YAAY,EACZC,wBAAyB,EACzBC,qBAAqB,GAGjBC,EAAMP,EAASQ,IAAI,GAAGC,WAAW,MAEjCC,EAAYC,IAAEX,GAAUY,SACxBC,EAAgB,WAMpB,OALAb,EAASc,KAAK,QAASH,IAAED,GAAWK,SAChCC,OAAOC,WAAa,MAEtBf,EAAQgB,cAAgB,GAEnB,IAAIC,EAAAC,EAAMb,GAAKc,IAAIpB,EAAMC,IAIlC,OADAS,IAAEK,QAAQM,OAAOT,GACVA,KAGHU,EAAY,SAAAtB,GAAA,OAChBuB,OAAQC,OAAOC,KAAKzB,GACpB0B,WACEC,UAAW,wBACXC,YAAa,sBACbC,eAAgB,EAChBC,gBAAiB,EACjBC,kBAAmB,EACnB/B,KAAMgC,EAAAb,EAAEc,OAAOjC,OAIbkC,EAAWZ,EAAU7B,EAAiB0C,MAC5CrC,EAAgBY,IAAE,eAAgBwB,GAElC,IAAME,EAAUd,EAAU7B,EAAiB4C,UAC3CvC,EAAgBY,IAAE,kBAAmB0B,GAErC,IAAME,EAAYhB,EAAU7B,EAAiB8C,OAC7CzC,EAAgBY,IAAE,gBAAiB4B,GAEnC,IAAMtC,EAAOP,EAAiB+C,UACxBlC,EAAMI,IAAE,oBAAoBH,IAAI,GAAGC,WAAW,MAOpD,IAAIU,EAAAC,EAAMb,GAAKmC,IAAIzC,GALjBE,cAAc,EACdC,YAAY,EACZE,qBAAqB","file":"pages.projects.graphs.charts.c263d28a.chunk.js","sourcesContent":["import $ from 'jquery';\nimport Chart from 'chart.js';\nimport _ from 'underscore';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const projectChartData = JSON.parse(document.getElementById('projectChartData').innerHTML);\n\n const responsiveChart = (selector, data) => {\n const options = {\n scaleOverlay: true,\n responsive: true,\n pointHitDetectionRadius: 2,\n maintainAspectRatio: false,\n };\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 const generateChart = () => {\n selector.attr('width', $(container).width());\n if (window.innerWidth < 768) {\n // Scale fonts if window width lower than 768px (iPad portrait)\n options.scaleFontSize = 8;\n }\n return new Chart(ctx).Bar(data, options);\n };\n // enabling auto-resizing\n $(window).resize(generateChart);\n return generateChart();\n };\n\n const chartData = data => ({\n labels: Object.keys(data),\n datasets: [{\n fillColor: 'rgba(220,220,220,0.5)',\n strokeColor: 'rgba(220,220,220,1)',\n barStrokeWidth: 1,\n barValueSpacing: 1,\n barDatasetSpacing: 1,\n data: _.values(data),\n }],\n });\n\n const hourData = chartData(projectChartData.hour);\n responsiveChart($('#hour-chart'), hourData);\n\n const dayData = chartData(projectChartData.weekDays);\n responsiveChart($('#weekday-chart'), dayData);\n\n const monthData = chartData(projectChartData.month);\n responsiveChart($('#month-chart'), monthData);\n\n const data = projectChartData.languages;\n const ctx = $('#languages-chart').get(0).getContext('2d');\n const options = {\n scaleOverlay: true,\n responsive: true,\n maintainAspectRatio: false,\n };\n\n new Chart(ctx).Pie(data, options);\n});\n"],"sourceRoot":""}