{"version":3,"file":"pie_chart.min.js","mappings":"6OAAA,SAAWA,EAAGC,GAOZ,SAASC,EAAcC,GACrB,IAAMC,EAAYJ,EAAEG,GAAIE,KAAK,cACvBC,EAAeN,EAAEG,GAAIE,KAAK,uBAC5BE,EAAaP,EAAEG,GAAIE,KAAK,0BAM5B,GAJAE,EAAaC,OAAOD,GACpBE,QAAQC,IAAGC,EAAQJ,IAGfH,EACF,KASJ,SAAsBD,EAAIS,EAAMN,EAAcC,GAC5CM,WAAWC,WAAW,CACpBC,KAAM,CACFC,cAAe,CACXC,oBAAqB,qDAE/BJ,WAAWK,MAAMf,EAAI,CACnBe,MAAO,CACLC,gBAAiB,KACjBC,oBAAqB,KACrBC,gBAAiB,KACjBC,YAAY,EACZC,KAAM,OAERC,MAAO,CACLC,KAAM,IAERC,UAAW,CACTC,SAAS,GAEXC,OAAQ,CAAC,CACPL,KAAM,MACNM,KAAMjB,EAAKkB,YAAc,QACzBC,cAAc,EACdnB,KAAMA,EAAKgB,QAAU,KAEvBI,QAAS,CACPL,SAAS,EACTM,UAAW,WAET,MAAuB,QAAnBC,KAAKC,MAAMN,MAAqC,SAAnBK,KAAKC,MAAMN,MAGrC,MAAPO,OAAaF,KAAKC,MAAME,WAAWC,QAAQ,GAAE,QAC/C,GAEFC,YAAa,CACXC,IAAK,CACHC,QAAQ,EACRC,kBAAkB,EAClBC,OAAQ,UACRC,YAAa,EACbrC,WAAYA,EACZsC,KAAM,MACNC,WAAY,CACVC,QAAS,YACTpB,SAAS,EACTqB,SAAU,GACVC,SAAS,EACThB,UAAW,WAET,IAAIiB,EAAc,KAKlB,MAJmB,cAAhB5C,IACD4C,EAAc,KAGT,yBAAPd,OAAgCF,KAAKiB,EAAID,EAAW,uCAAAd,OAAsCF,KAAKC,MAAMN,KAAI,SAC3G,EACAuB,MAAO,CAELC,MAAO,OACPC,SAAU,OACVC,WAAa,UAEfC,eAAgB,aAwC1B,CA/GMC,CAAatD,EADAuD,KAAKC,MAAMvD,GACDE,EAAcC,EACvC,CAAE,MAAOqD,GACPnD,QAAQoD,MAAM,qBAAsBD,EACtC,CAEJ,CAvBA3D,EAAO6D,UAAU5D,cAAgB,CAC/B6D,OAAQ,SAAUC,EAASC,GACzBC,KAAK,wBAAyB,yBAA0BF,GAASG,QAAQjE,EAC3E,EAgIH,CApID,CAoIGkE,OAAQnE,OAAQoE,e","sources":["webpack://cdss_blocks/./js/pie_chart.es6.js"],"sourcesContent":["(function ($, Drupal, drupalSettings) {\r\n Drupal.behaviors.initPieCharts = {\r\n attach: function (context, settings) {\r\n once('cdss-blocks-pie-chart', '.cdss-blocks-pie-chart', context).forEach(initPieCharts);\r\n }\r\n }\r\n\r\n function initPieCharts(el) {\r\n const chartData = $(el).attr('data-chart');\r\n const pieChartType = $(el).attr('data-pie_chart_type');\r\n let startAngle = $(el).attr('data-chart_start_angle');\r\n\r\n startAngle = Number(startAngle);\r\n console.log(typeof startAngle);\r\n \r\n\r\n if (chartData) {\r\n try {\r\n const data = JSON.parse(chartData);\r\n drawPieChart(el, data, pieChartType, startAngle);\r\n } catch (e) {\r\n console.error(\"Invalid JSON data:\", e);\r\n }\r\n }\r\n }\r\n\r\n function drawPieChart(el, data, pieChartType, startAngle) {\r\n Highcharts.setOptions({\r\n lang: {\r\n accessibility: {\r\n chartContainerLabel: \"{title}Highcharts interactive enrollment chart\"\r\n }}})\r\n Highcharts.chart(el, {\r\n chart: {\r\n backgroundColor: null,\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n exporting: {\r\n enabled: false \r\n },\r\n series: [{\r\n type: 'pie',\r\n name: data.seriesName || 'Value',\r\n colorByPoint: true,\r\n data: data.series || []\r\n }],\r\n tooltip: {\r\n enabled: false,\r\n formatter: function() {\r\n\r\n if (this.point.name == 'null' || this.point.name == 'Slice') {\r\n return false; \r\n }\r\n return `${this.point.percentage.toFixed(1)}%`;\r\n }\r\n },\r\n plotOptions: {\r\n pie: {\r\n shadow: false,\r\n allowPointSelect: false,\r\n cursor: 'pointer',\r\n borderWidth: 0,\r\n startAngle: startAngle,\r\n size: '250', // Set a fixed size for the pie chart (e.g., 200px diameter)\r\n dataLabels: {\r\n alignTo: 'plotEdges',\r\n enabled: true,\r\n distance: 20, // Adjust distance if needed to keep labels outside\r\n useHTML: false,\r\n formatter: function() {\r\n\r\n let valueSuffix = null;\r\n if(pieChartType == 'percentage'){\r\n valueSuffix = '%';\r\n }\r\n\r\n return `
${this.y + valueSuffix}

${this.point.name}
`;\r\n },\r\n style: {\r\n // width: '160px',\r\n color: '#000',\r\n fontSize: '14px',\r\n whiteSpace: 'normal'\r\n },\r\n connectorColor: 'silver'\r\n }\r\n }\r\n },\r\n // responsive: {\r\n // rules: [{\r\n // condition: {\r\n // maxWidth: 767\r\n // },\r\n // chartOptions: {\r\n // plotOptions: {\r\n // pie: {\r\n // size: '20%', // Adjust pie size for smaller screens,\r\n // showInLegend: false, // Shows each pie slice in the legend\r\n // dataLabels: {\r\n // enabled: true,\r\n // distance: 10, // Adjust distance if needed to keep labels outside\r\n // useHTML: false,\r\n // }\r\n // }\r\n // },\r\n // legend: {\r\n // enabled: true, \r\n // layout: 'vertical', \r\n // align: 'center',\r\n // verticalAlign: 'bottom'\r\n // }\r\n // }\r\n // }, {\r\n // condition: {\r\n // minWidth: 768 // Hide legend on screens larger than 600px\r\n // },\r\n // chartOptions: {\r\n // legend: {\r\n // enabled: false // Disable legend on larger screens\r\n // }\r\n // }\r\n // }]\r\n // }\r\n });\r\n }\r\n\r\n})(jQuery, Drupal, drupalSettings);\r\n"],"names":["$","Drupal","initPieCharts","el","chartData","attr","pieChartType","startAngle","Number","console","log","_typeof","data","Highcharts","setOptions","lang","accessibility","chartContainerLabel","chart","backgroundColor","plotBackgroundColor","plotBorderWidth","plotShadow","type","title","text","exporting","enabled","series","name","seriesName","colorByPoint","tooltip","formatter","this","point","concat","percentage","toFixed","plotOptions","pie","shadow","allowPointSelect","cursor","borderWidth","size","dataLabels","alignTo","distance","useHTML","valueSuffix","y","style","color","fontSize","whiteSpace","connectorColor","drawPieChart","JSON","parse","e","error","behaviors","attach","context","settings","once","forEach","jQuery","drupalSettings"],"sourceRoot":""}