function factory(t){function e(o,i){if(!(this instanceof e))return new e(o,i);this.options=Object.assign({},n,i.options),this.data=Object.assign({},i.data);var s,a=this,r=t.select(o),l=r.append("svg"),p=l.append("g");"boolean"==typeof this.options.showTotal&&this.options.showTotal&&((s=r.append("p").attr("class","svg-total")).node()._current=0),r.style("position","relative").style("display","flex").style("flex-direction","column").style("justify-content","center").style("align-items","center"),l.style("position","absolute").style("top","0").style("left","0");var u,h,d,c,f,v=!1;if("boolean"==typeof this.options.showTooltip&&this.options.showTooltip){var y=r.append("div").attr("class","svg-tooltip").style("position","absolute").style("display","none").style("pointer-events","none");y.append("div").attr("class","svg-tooltip-label"),y.append("div").attr("class","svg-tooltip-value")}var b=t.pie().value(function(t){return t.value}).sort(function(t,e){return"boolean"==typeof a.options.sort&&a.options.sort?e.value-t.value>0&&"Other"!==e.label?1:-1:null});this.update=function(){var e;if("string"==typeof this.data.labels?e=[this.data.labels]:Array.isArray(this.data.labels)&&(e=this.data.labels),f=[],Array.isArray(this.data.dataset)&&"object"==typeof this.data.dataset[0])this.data.dataset.forEach(function(t){f.push(Object.assign({},t))});else if("number"==typeof this.data.values)f.push({value:this.data.values,label:"string"==typeof e[0]?e[0]:""});else{if(!(Array.isArray(this.data.values)&&this.data.values.length>0))throw new Error("No data provided");this.data.values.forEach(function(t,n){f.push({value:t,label:"string"==typeof e[n]?e[n]:""})})}var n=f.map(function(t){return t.value}).reduce(function(t,e){return t+e});"boolean"==typeof this.options.percents&&this.options.percents&&n<100&&f.push({value:100-n,label:"Other"});if("boolean"==typeof this.options.group&&this.options.group&&f.length>2){var o=3*n/100,i=f.filter(function(t){return t.value=o}),i){var r=!1;f.forEach(function(t){"Other"===t.label&&(t.value+=i,r=!0)}),r||f.push({value:i,label:"Other"})}}var l=p.selectAll(".svg-segment").data(b(f),function(t){return t.data.label});l.exit().remove();var v=l.enter().append("g").attr("class","svg-segment");v.append("path"),v.append("text");var y=v.merge(l);u=y.select("path"),"boolean"==typeof this.options.showLabels&&this.options.showLabels&&(h=y.select("text").text(function(t){return t.data.label}).style("font-size",".8em").attr("class","svg-chart-label")),"boolean"==typeof this.options.showTotal&&this.options.showTotal&&s.data([n]).transition().duration(this.options.transition&&this.options.initialTransition?this.options.transition:0).tween("text",function(e){var n=t.interpolate(this._current,e);return this._current=e,function(t){a.options.percents?s.text(n(t).toFixed(0)+"%"):s.text(n(t).toFixed(2))}}),c=(f.length-1)/(this.options.colors.length-1),d=t.scaleLinear().domain(this.options.colors.map(function(t,e){return e*c})).interpolate(t.interpolateHcl).range(this.options.colors.map(function(e){return t.rgb(e)})),u.attr("fill",function(t,e){return d(e)}),this.render()}.bind(this),this.render=function(){var e=parseInt(r.style("width")),n=e>600?e/1.5:e,o=Math.min(e,n)/2,i=o*this.options.innerRadiusSize;r.style("height",n+"px"),l.attr("width",e).attr("height",n),p.attr("transform","translate("+e/2+","+n/2+")");var s=t.arc().innerRadius(function(t,e){return"Other"===t.data.label&&i>0?i+(o-i)*(1-a.options.otherSize)/2:i}).outerRadius(function(t,e){return"Other"===t.data.label?o-(o-i)*(1-a.options.otherSize)/2:o});if("boolean"==typeof this.options.showLabels&&this.options.showLabels){var d=o-25,c=t.arc().innerRadius(d).outerRadius(d);h.attr("transform",function(t){return"translate("+c.centroid(t)+")"}).attr("dy","0.35em").attr("dx",function(t){return c.centroid(t)[0]>0?(-10*t.data.label.length*c.centroid(t)[0]/o).toFixed(0)+"px":"0px"})}"boolean"==typeof this.options.transition&&this.options.transition&&(this.options.transition=this.defaultOptions.transition),"number"==typeof this.options.transition&&this.options.transition>0?u.transition().duration(this.options.transition).attrTween("d",function(e,n,o){void 0===this._current&&"boolean"==typeof a.options.initialTransition&&a.options.initialTransition&&!v&&(this._current={index:n,startAngle:0},this._current.endAngle=n===f.length-1?2*Math.PI:0),void 0===this._current&&v&&(this._current=Object.assign({},e),n&&(this._current.endAngle=this._current.startAngle=o[n-1]._current.endAngle));var i=t.interpolate(this._current,e);return this._current=i(0),function(t){return s(i(t))}}).on("end",function(){v||(v=!0)}):u.attr("d",s),"boolean"==typeof this.options.showTooltip&&this.options.showTooltip&&(u.on("mouseover",function(t){"Other"===t.data.label&&1!==a.options.otherSize||(y.style("display","block"),y.select(".svg-tooltip-label").text(t.data.label),y.select(".svg-tooltip-value").text(a.options.percents?t.data.value+"%":t.data.value))}),r.node().addEventListener("mousemove",function(t){var o=t.layerY,i=t.layerX,s=o