|
|
@ -265,10 +265,7 @@ |
|
|
|
__pie_label_format = getConfig(['pie', 'label', 'format']), |
|
|
|
__pie_label_format = getConfig(['pie', 'label', 'format']), |
|
|
|
__pie_label_threshold = getConfig(['pie', 'label', 'threshold'], 0.05), |
|
|
|
__pie_label_threshold = getConfig(['pie', 'label', 'threshold'], 0.05), |
|
|
|
__pie_sort = getConfig(['pie', 'sort'], true), |
|
|
|
__pie_sort = getConfig(['pie', 'sort'], true), |
|
|
|
__pie_expand = getConfig(['pie', 'expand'], true), |
|
|
|
__pie_expand = getConfig(['pie', 'expand'], true); |
|
|
|
__pie_onclick = getConfig(['pie', 'onclick'], function () {}), |
|
|
|
|
|
|
|
__pie_onmouseover = getConfig(['pie', 'onmouseover'], function () {}), |
|
|
|
|
|
|
|
__pie_onmouseout = getConfig(['pie', 'onmouseout'], function () {}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// gauge
|
|
|
|
// gauge
|
|
|
|
var __gauge_label_show = getConfig(['gauge', 'label', 'show'], true), |
|
|
|
var __gauge_label_show = getConfig(['gauge', 'label', 'show'], true), |
|
|
@ -276,9 +273,6 @@ |
|
|
|
__gauge_expand = getConfig(['gauge', 'expand'], true), |
|
|
|
__gauge_expand = getConfig(['gauge', 'expand'], true), |
|
|
|
__gauge_min = getConfig(['gauge', 'min'], 0), |
|
|
|
__gauge_min = getConfig(['gauge', 'min'], 0), |
|
|
|
__gauge_max = getConfig(['gauge', 'max'], 100), |
|
|
|
__gauge_max = getConfig(['gauge', 'max'], 100), |
|
|
|
__gauge_onclick = getConfig(['gauge', 'onclick'], function () {}), |
|
|
|
|
|
|
|
__gauge_onmouseover = getConfig(['gauge', 'onmouseover'], function () {}), |
|
|
|
|
|
|
|
__gauge_onmouseout = getConfig(['gauge', 'onmouseout'], function () {}), |
|
|
|
|
|
|
|
__gauge_units = getConfig(['gauge', 'units']), |
|
|
|
__gauge_units = getConfig(['gauge', 'units']), |
|
|
|
__gauge_width = getConfig(['gauge', 'width']); |
|
|
|
__gauge_width = getConfig(['gauge', 'width']); |
|
|
|
|
|
|
|
|
|
|
@ -288,10 +282,7 @@ |
|
|
|
__donut_label_threshold = getConfig(['donut', 'label', 'threshold'], 0.05), |
|
|
|
__donut_label_threshold = getConfig(['donut', 'label', 'threshold'], 0.05), |
|
|
|
__donut_sort = getConfig(['donut', 'sort'], true), |
|
|
|
__donut_sort = getConfig(['donut', 'sort'], true), |
|
|
|
__donut_expand = getConfig(['donut', 'expand'], true), |
|
|
|
__donut_expand = getConfig(['donut', 'expand'], true), |
|
|
|
__donut_title = getConfig(['donut', 'title'], ""), |
|
|
|
__donut_title = getConfig(['donut', 'title'], ""); |
|
|
|
__donut_onclick = getConfig(['donut', 'onclick'], function () {}), |
|
|
|
|
|
|
|
__donut_onmouseover = getConfig(['donut', 'onmouseover'], function () {}), |
|
|
|
|
|
|
|
__donut_onmouseout = getConfig(['donut', 'onmouseout'], function () {}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// region - region to change style
|
|
|
|
// region - region to change style
|
|
|
|
var __regions = getConfig(['regions'], []); |
|
|
|
var __regions = getConfig(['regions'], []); |
|
|
@ -1030,13 +1021,19 @@ |
|
|
|
pie.sort(null); |
|
|
|
pie.sort(null); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function descByStartAngle(a, b) { |
|
|
|
|
|
|
|
return a.startAngle - b.startAngle; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function updateAngle(d) { |
|
|
|
function updateAngle(d) { |
|
|
|
var found = false; |
|
|
|
var found = false, index = 0; |
|
|
|
pie(filterTargetsToShow(c3.data.targets)).forEach(function (t) { |
|
|
|
pie(filterTargetsToShow(c3.data.targets)).sort(descByStartAngle).forEach(function (t) { |
|
|
|
if (! found && t.data.id === d.data.id) { |
|
|
|
if (! found && t.data.id === d.data.id) { |
|
|
|
found = true; |
|
|
|
found = true; |
|
|
|
d = t; |
|
|
|
d = t; |
|
|
|
|
|
|
|
d.index = index; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
index++; |
|
|
|
}); |
|
|
|
}); |
|
|
|
if (isNaN(d.endAngle)) { |
|
|
|
if (isNaN(d.endAngle)) { |
|
|
|
d.endAngle = d.startAngle; |
|
|
|
d.endAngle = d.startAngle; |
|
|
@ -1094,7 +1091,8 @@ |
|
|
|
return addName({ |
|
|
|
return addName({ |
|
|
|
id: d.data.id, |
|
|
|
id: d.data.id, |
|
|
|
value: d.value, |
|
|
|
value: d.value, |
|
|
|
ratio: getArcRatio(d) |
|
|
|
ratio: getArcRatio(d), |
|
|
|
|
|
|
|
index: d.index, |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
function textForArcLabel(d) { |
|
|
|
function textForArcLabel(d) { |
|
|
@ -1162,33 +1160,6 @@ |
|
|
|
function getArcTitle() { |
|
|
|
function getArcTitle() { |
|
|
|
return hasDonutType(c3.data.targets) ? __donut_title : ""; |
|
|
|
return hasDonutType(c3.data.targets) ? __donut_title : ""; |
|
|
|
} |
|
|
|
} |
|
|
|
function getArcOnClick() { |
|
|
|
|
|
|
|
var callback = __pie_onclick; |
|
|
|
|
|
|
|
if (hasGaugeType(c3.data.targets)) { |
|
|
|
|
|
|
|
callback = __gauge_onclick; |
|
|
|
|
|
|
|
} else if (hasDonutType(c3.data.targets)) { |
|
|
|
|
|
|
|
callback = __donut_onclick; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return typeof callback === 'function' ? callback : function () {}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
function getArcOnMouseOver() { |
|
|
|
|
|
|
|
var callback = __pie_onmouseover; |
|
|
|
|
|
|
|
if (hasGaugeType(c3.data.targets)) { |
|
|
|
|
|
|
|
callback = __gauge_onmouseover; |
|
|
|
|
|
|
|
} else if (hasDonutType(c3.data.targets)) { |
|
|
|
|
|
|
|
callback = __donut_onmouseover; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return typeof callback === 'function' ? callback : function () {}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
function getArcOnMouseOut() { |
|
|
|
|
|
|
|
var callback = __pie_onmouseout; |
|
|
|
|
|
|
|
if (hasGaugeType(c3.data.targets)) { |
|
|
|
|
|
|
|
callback = __gauge_onmouseout; |
|
|
|
|
|
|
|
} else if (hasDonutType(c3.data.targets)) { |
|
|
|
|
|
|
|
callback = __donut_onmouseout; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return typeof callback === 'function' ? callback : function () {}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//-- Domain --//
|
|
|
|
//-- Domain --//
|
|
|
|
|
|
|
|
|
|
|
@ -3832,41 +3803,38 @@ |
|
|
|
} |
|
|
|
} |
|
|
|
this._current = d; |
|
|
|
this._current = d; |
|
|
|
}) |
|
|
|
}) |
|
|
|
.on('mouseover', function (d, i) { |
|
|
|
.on('mouseover', function (d) { |
|
|
|
var updated, arcData, callback; |
|
|
|
var updated, arcData; |
|
|
|
if (transiting) { // skip while transiting
|
|
|
|
if (transiting) { // skip while transiting
|
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
updated = updateAngle(d); |
|
|
|
updated = updateAngle(d); |
|
|
|
arcData = convertToArcData(updated); |
|
|
|
arcData = convertToArcData(updated); |
|
|
|
callback = getArcOnMouseOver(); |
|
|
|
|
|
|
|
// transitions
|
|
|
|
// transitions
|
|
|
|
expandArc(updated.data.id); |
|
|
|
expandArc(updated.data.id); |
|
|
|
toggleFocusLegend(updated.data.id, true); |
|
|
|
toggleFocusLegend(updated.data.id, true); |
|
|
|
callback.call(c3, arcData, i); |
|
|
|
__data_onmouseover.call(c3, arcData, this); |
|
|
|
}) |
|
|
|
}) |
|
|
|
.on('mousemove', function (d) { |
|
|
|
.on('mousemove', function (d) { |
|
|
|
var updated = updateAngle(d), arcData = convertToArcData(updated), selectedData = [arcData]; |
|
|
|
var updated = updateAngle(d), arcData = convertToArcData(updated), selectedData = [arcData]; |
|
|
|
showTooltip(selectedData, d3.mouse(this)); |
|
|
|
showTooltip(selectedData, d3.mouse(this)); |
|
|
|
}) |
|
|
|
}) |
|
|
|
.on('mouseout', function (d, i) { |
|
|
|
.on('mouseout', function (d) { |
|
|
|
var updated, arcData, callback; |
|
|
|
var updated, arcData; |
|
|
|
if (transiting) { // skip while transiting
|
|
|
|
if (transiting) { // skip while transiting
|
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
updated = updateAngle(d); |
|
|
|
updated = updateAngle(d); |
|
|
|
arcData = convertToArcData(updated); |
|
|
|
arcData = convertToArcData(updated); |
|
|
|
callback = getArcOnMouseOut(); |
|
|
|
|
|
|
|
// transitions
|
|
|
|
// transitions
|
|
|
|
unexpandArc(updated.data.id); |
|
|
|
unexpandArc(updated.data.id); |
|
|
|
revertLegend(); |
|
|
|
revertLegend(); |
|
|
|
hideTooltip(); |
|
|
|
hideTooltip(); |
|
|
|
callback.call(c3, arcData, i); |
|
|
|
__data_onmouseout.call(c3, arcData, this); |
|
|
|
}) |
|
|
|
}) |
|
|
|
.on('click', function (d, i) { |
|
|
|
.on('click', function (d, i) { |
|
|
|
var updated = updateAngle(d), arcData = convertToArcData(updated), callback = getArcOnClick(); |
|
|
|
var updated = updateAngle(d), arcData = convertToArcData(updated); |
|
|
|
toggleShape(this, d, i); |
|
|
|
toggleShape(this, arcData, i); // onclick called in toogleShape()
|
|
|
|
callback.call(c3, arcData, i); |
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
mainArc |
|
|
|
mainArc |
|
|
|
.attr("transform", function (d) { return !isGaugeType(d.data) && withTransform ? "scale(0)" : ""; }) |
|
|
|
.attr("transform", function (d) { return !isGaugeType(d.data) && withTransform ? "scale(0)" : ""; }) |
|
|
|