Commit de097a2e authored by Evgeny's avatar Evgeny

Fix problem with stacked-100

parent 065df8be
...@@ -83,7 +83,8 @@ c3_chart_fn.flow = function (args) { ...@@ -83,7 +83,8 @@ c3_chart_fn.flow = function (args) {
t.values = missing.concat(t.values); t.values = missing.concat(t.values);
}); });
} }
$$.data.targets = $$.data.targets.concat(targets); // add remained $$.data._targets = $$.data.targets.concat(targets); // add remained
$$.data.targets = $$.normalize($$.data._targets);
// check data count because behavior needs to change when it's only one // check data count because behavior needs to change when it's only one
dataCount = $$.getMaxDataCount(); dataCount = $$.getMaxDataCount();
......
c3_chart_internal_fn.initAxis = function () { c3_chart_internal_fn.initAxis = function(){
var $$ = this, config = $$.config, main = $$.main; var $$ = this, config = $$.config, main = $$.main;
$$.axes.x = main.append("g") $$.axes.x = main.append("g")
.attr("class", CLASS.axis + ' ' + CLASS.axisX) .attr("class", CLASS.axis + ' ' + CLASS.axisX)
......
...@@ -164,12 +164,14 @@ c3_chart_internal_fn.initWithData = function (data) { ...@@ -164,12 +164,14 @@ c3_chart_internal_fn.initWithData = function (data) {
// Init data as targets // Init data as targets
$$.data.xs = {}; $$.data.xs = {};
$$.data.targets = $$.convertDataToTargets(data); $$.data._targets = $$.convertDataToTargets(data);
if (config.data_filter) { if (config.data_filter) {
$$.data.targets = $$.data.targets.filter(config.data_filter); $$.data._targets = $$.data._targets.filter(config.data_filter);
} }
$$.data.targets = $$.normalize($$.data._targets);
// Set targets to hide if needed // Set targets to hide if needed
if (config.data_hide) { if (config.data_hide) {
$$.addHiddenTargetIds(config.data_hide === true ? $$.mapToIds($$.data.targets) : config.data_hide); $$.addHiddenTargetIds(config.data_hide === true ? $$.mapToIds($$.data.targets) : config.data_hide);
...@@ -394,10 +396,9 @@ c3_chart_internal_fn.updateSizes = function () { ...@@ -394,10 +396,9 @@ c3_chart_internal_fn.updateSizes = function () {
} }
}; };
c3_chart_internal_fn.updateTargets = function (t){ c3_chart_internal_fn.updateTargets = function (targets){
var $$ = this; var $$ = this;
var targets = $$.normalize(t);
/*-- Main --*/ /*-- Main --*/
//-- Text --// //-- Text --//
......
...@@ -21,13 +21,13 @@ c3_chart_internal_fn.load = function (targets, args) { ...@@ -21,13 +21,13 @@ c3_chart_internal_fn.load = function (targets, args) {
} }
} }
}); });
$$.data.targets = $$.data.targets.concat(targets); // add remained $$.data._targets = $$.data._targets.concat(targets); // add remained
$$.data.targets = $$.normalize($$.data._targets);
} }
// Set targets // Set targets
$$.updateTargets($$.data.targets); $$.updateTargets($$.data.targets);
$$.tuneAxis(); $$.tuneAxis();
// Redraw with new targets // Redraw with new targets
$$.redraw({withUpdateOrgXDomain: true, withUpdateXDomain: true, withLegend: true}); $$.redraw({withUpdateOrgXDomain: true, withUpdateXDomain: true, withLegend: true});
...@@ -82,8 +82,9 @@ c3_chart_internal_fn.unload = function (targetIds, done) { ...@@ -82,8 +82,9 @@ c3_chart_internal_fn.unload = function (targetIds, done) {
$$.legend.selectAll('.' + CLASS.legendItem + $$.getTargetSelectorSuffix(id)).remove(); $$.legend.selectAll('.' + CLASS.legendItem + $$.getTargetSelectorSuffix(id)).remove();
} }
// Remove target // Remove target
$$.data.targets = $$.data.targets.filter(function (t) { $$.data._targets = $$.data.targets.filter(function (t) {
return t.id !== id; return t.id !== id;
}); });
$$.data.targets = $$.normalize($$.data._targets);
}); });
}; };
...@@ -5,7 +5,11 @@ c3.chart.internal.fn.normalize = function(targets){ ...@@ -5,7 +5,11 @@ c3.chart.internal.fn.normalize = function(targets){
return targets; return targets;
} }
var data = copyArray(targets); var data = [];
targets.forEach(function(target){
data.push($$.cloneTarget(target));
});
for(var k = 0; k < targets[0].values.length; k++) { for(var k = 0; k < targets[0].values.length; k++) {
var tt = 0; var tt = 0;
...@@ -17,7 +21,11 @@ c3.chart.internal.fn.normalize = function(targets){ ...@@ -17,7 +21,11 @@ c3.chart.internal.fn.normalize = function(targets){
for(c in targets) { for(c in targets) {
for(k = 0; k < tr.length; k++) { for(k = 0; k < tr.length; k++) {
data[c].values[k].value = targets[c].values[k].value / tr[k]; if(tr[k] == 0){
data[c].values[k].value = 0;
} else {
data[c].values[k].value = targets[c].values[k].value / tr[k];
}
} }
} }
......
...@@ -32,7 +32,8 @@ c3_chart_internal_fn.hasArcType = function (targets) { ...@@ -32,7 +32,8 @@ c3_chart_internal_fn.hasArcType = function (targets) {
}; };
c3_chart_internal_fn.isLineType = function (d) { c3_chart_internal_fn.isLineType = function (d) {
var config = this.config, id = isString(d) ? d : d.id; var config = this.config, id = isString(d) ? d : d.id;
return !config.data_types[id] || ['line', 'spline', 'area', 'area-spline', 'step', 'area-step'].indexOf(config.data_types[id]) >= 0; var is = !config.data_types[id] || ['line', 'spline', 'area', 'area-spline', 'step', 'area-step'].indexOf(config.data_types[id]) >= 0;
return is;
}; };
c3_chart_internal_fn.isStepType = function (d) { c3_chart_internal_fn.isStepType = function (d) {
var id = isString(d) ? d : d.id; var id = isString(d) ? d : d.id;
......
...@@ -63,10 +63,10 @@ var isValue = c3_chart_internal_fn.isValue = function (v) { ...@@ -63,10 +63,10 @@ var isValue = c3_chart_internal_fn.isValue = function (v) {
var newObj = {}; var newObj = {};
for(var key in oldObj){ for(var key in oldObj){
if(oldObj.hasOwnProperty(key)){ if(oldObj.hasOwnProperty(key)){
if(typeof oldObj[key] === 'object'){ if(Array.isArray(oldObj[key])){
newObj[key] = copyObject(oldObj[key]);
} else if(Array.isArray(oldObj[key])){
newObj[key] = copyArray(oldObj[key]); newObj[key] = copyArray(oldObj[key]);
} else if(typeof oldObj[key] === 'object'){
newObj[key] = copyObject(oldObj[key]);
} else if(typeof oldObj[key] === 'function'){ } else if(typeof oldObj[key] === 'function'){
newObj[key] = oldObj[key].bind(newObj); newObj[key] = oldObj[key].bind(newObj);
} else { } else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment