{"version":3,"sources":["chartist-plugin-fill-donut.js"],"names":["root","factory","define","amd","exports","module","this","window","document","Chartist","defaultOptions","fillClass","label","html","class","items","plugins","fillDonut","options","extend","chart","drawDonut","data","type","index","$svg","$chart","find","eq","$clone","$","group","_node","clone","attr","each","remove","removeAttr","prepend","Pie","container","css","on","itemIndex","fillDonutOptions","$wrapper","addClass","item","id","content","position","offsetY","offsetX","length","append","cWidth","innerWidth","cHeight","height","wWidth","wHeight","style","bottom","left","top","right","center"],"mappings":"CAAE,SAASA,EAAMC,GACO,kBAAXC,SAAyBA,OAAOC,IACzCD,UAAWD,GACiB,gBAAZG,SAChBC,OAAOD,QAAUH,IAEjBD,EAAK,8BAAgCC,KAEvCK,KAAM,WA2HR,MApHC,UAASC,EAAQC,EAAUC,GACxB,YAEA,IAAIC,IACAC,UAAW,gBACXC,OACIC,KAAM,cACNC,QAAO,4BAEXC,WAGJN,GAASO,QAAUP,EAASO,YAC5BP,EAASO,QAAQC,UAAY,SAASC,GAElC,MADAA,GAAUT,EAASU,UAAWT,EAAgBQ,GACvC,SAAmBE,GAMlB,QAASC,GAAUC,GACf,GAAgB,SAAbA,EAAKC,KAAgB,CACH,GAAdD,EAAKE,QACJC,EAAOC,EAAOC,KAAK,OAAOC,GAAG,GAEjC,IAAIC,GAASC,EAAER,EAAKS,MAAMC,OAAOC,OACjCJ,GAAOK,KAAK,QAASL,EAAOK,KAAK,SAAW,IAAMhB,EAAQP,WAE1DkB,EAAOF,KAAK,QAAQQ,KAAK,WACrBL,EAAExB,MAAMqB,KAAK,WAAWS,SACxBN,EAAExB,MAAM+B,WAAW,uBAGvBZ,EAAKa,QAAQT,IAlBzB,GAAGT,YAAiBX,GAAS8B,IAAK,CAC9B,GAAIb,GAASI,EAAEV,EAAMoB,UACrBd,GAAOe,IAAI,WAAY,WACvB,IAAIhB,EAoBJL,GAAMsB,GAAG,OAAQ,SAASpB,GACtBD,EAAUC,KAGdF,EAAMsB,GAAG,UAAW,SAASpB,GACzB,GAAIqB,GAAY,CAEbvB,GAAMF,QAAQ0B,mBACb1B,EAAUT,EAASU,UAAWD,EAASE,EAAMF,QAAQ0B,kBACrDvB,EAAUC,IAGdQ,EAAEK,KAAKjB,EAAQH,MAAO,WAClB,GAAI8B,GAAWf,EAAEZ,EAAQN,MAAMC,MAAMiC,SAAS5B,EAAQN,MAARM,UAC1C6B,EAAOjB,EAAEX,WACTL,QAAO,GACPkC,GAAI,GACJC,QAAS,WACTC,SAAU,SACVC,QAAS,EACTC,QAAS,GACV9C,KAEWwB,GAAEiB,EAAKE,QAElBF,GAAKC,GAAGK,OAAS,GAChBR,EAASX,KAAK,KAAMa,EAAKC,IAC1BD,EAAAA,SAAWM,OAAS,GACnBR,EAASC,SAAS,QAASC,EAAAA,UAE/BrB,EAAOC,KAAK,4BAA4BgB,EAAU,MAAMP,SACxDS,EAASX,KAAK,kBAAkB,QAAQS,GACxCA,IAEAE,EAASS,OAAOP,EAAKE,SAASR,KAC1BS,SAAW,aAGfxB,EAAO4B,OAAOT,EAEd,IAAIU,GAAS7B,EAAO8B,aAAe,EAC/BC,EAAU/B,EAAOgC,SAAW,EAC5BC,EAASd,EAASW,aAAe,EACjCI,EAAUf,EAASa,SAAW,EAE9BG,GACAC,QACIA,OAAQ,EAAIf,EAAKI,QACjBY,KAAOR,EAASI,EAAUZ,EAAKK,SAEnCY,KACIA,IAAK,EAAKjB,EAAKI,QACfY,KAAOR,EAASI,EAAUZ,EAAKK,SAEnCW,MACIC,IAAMP,EAAUG,EAAWb,EAAKI,QAChCY,KAAM,EAAIhB,EAAKK,SAEnBa,OACID,IAAMP,EAAUG,EAAWb,EAAKI,QAChCc,MAAO,EAAIlB,EAAKK,SAEpBc,QACIF,IAAMP,EAAUG,EAAWb,EAAKI,QAChCY,KAAOR,EAASI,EAAUZ,EAAKK,SAIvCP,GAASJ,IAAIoB,EAAMd,EAAKG,mBAO9C3C,OAAQC,SAAUC,UAEbA,SAASO,QAAQC","file":"chartist-plugin-fill-donut.min.js","sourcesContent":[";(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root['Chartist.plugins.fillDonut'] = factory();\n }\n}(this, function() {\n/**\r\n * Chartist.js plugin to pre fill donuts with animations\r\n * author: moxx\r\n * author-url: https://github.com/moxx/chartist-plugin-fill-donut\r\n *\r\n */\r\n(function(window, document, Chartist) {\r\n 'use strict';\r\n\r\n var defaultOptions = {\r\n fillClass: 'ct-fill-donut',\r\n label: {\r\n html: '
',\r\n class: 'ct-fill-donut-label test'\r\n },\r\n items: [{}]\r\n };\r\n\r\n Chartist.plugins = Chartist.plugins || {};\r\n Chartist.plugins.fillDonut = function(options) {\r\n options = Chartist.extend({}, defaultOptions, options);\r\n return function fillDonut(chart){\r\n if(chart instanceof Chartist.Pie) {\r\n var $chart = $(chart.container);\r\n $chart.css('position', 'relative');\r\n var $svg;\r\n\r\n function drawDonut(data){\r\n if(data.type == 'slice'){\r\n if(data.index == 0)\r\n $svg = $chart.find('svg').eq(0);\r\n\r\n var $clone = $(data.group._node).clone();\r\n $clone.attr('class', $clone.attr('class') + ' ' + options.fillClass);\r\n\r\n $clone.find('path').each(function(){\r\n $(this).find('animate').remove();\r\n $(this).removeAttr('stroke-dashoffset');\r\n });\r\n\r\n $svg.prepend($clone);\r\n\r\n }\r\n }\r\n\r\n chart.on('draw', function(data) {\r\n drawDonut(data);\r\n });\r\n\r\n chart.on('created', function(data){\r\n var itemIndex = 0;\r\n\r\n if(chart.options.fillDonutOptions){\r\n options = Chartist.extend({}, options, chart.options.fillDonutOptions);\r\n drawDonut(data);\r\n }\r\n\r\n $.each(options.items, function(){\r\n var $wrapper = $(options.label.html).addClass(options.label.class);\r\n var item = $.extend({}, {\r\n class: '',\r\n id: '',\r\n content: 'fillText',\r\n position: 'center', //bottom, top, left, right\r\n offsetY: 0, //top, bottom in px\r\n offsetX: 0 //left, right in px\r\n }, this);\r\n\r\n var content = $(item.content);\r\n\r\n if(item.id.length > 0)\r\n $wrapper.attr('id', item.id);\r\n if(item.class.length > 0)\r\n $wrapper.addClass('class', item.class);\r\n\r\n $chart.find('*[data-fill-index$=\"fdid-'+itemIndex+'\"]').remove();\r\n $wrapper.attr('data-fill-index','fdid-'+itemIndex);\r\n itemIndex++;\r\n \r\n $wrapper.append(item.content).css({\r\n position : 'absolute'\r\n });\r\n\r\n $chart.append($wrapper);\r\n\r\n var cWidth = $chart.innerWidth() / 2;\r\n var cHeight = $chart.height() / 2;\r\n var wWidth = $wrapper.innerWidth() / 2;\r\n var wHeight = $wrapper.height() / 2;\r\n\r\n var style = {\r\n bottom: {\r\n bottom: 0 + item.offsetY,\r\n left: (cWidth - wWidth) + item.offsetX,\r\n },\r\n top: {\r\n top: 0 + item.offsetY,\r\n left: (cWidth - wWidth) + item.offsetX,\r\n },\r\n left: {\r\n top: (cHeight - wHeight) + item.offsetY,\r\n left: 0 + item.offsetX,\r\n },\r\n right: {\r\n top: (cHeight - wHeight) + item.offsetY,\r\n right: 0 + item.offsetX,\r\n },\r\n center: {\r\n top: (cHeight - wHeight) + item.offsetY,\r\n left: (cWidth - wWidth) + item.offsetX,\r\n }\r\n };\r\n\r\n $wrapper.css(style[item.position]);\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n}(window, document, Chartist));\r\n\nreturn Chartist.plugins.fillDonut;\n}));\n"],"sourceRoot":"/source/"}