mirror of https://github.com/masayuki0812/c3.git
Quite good looking graph derived from d3.js
http://c3js.org
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
2.0 KiB
63 lines
2.0 KiB
import CLASS from './class'; |
|
import { c3_chart_fn } from './core'; |
|
|
|
c3_chart_fn.focus = function (targetIds) { |
|
var $$ = this.internal, candidates; |
|
|
|
targetIds = $$.mapToTargetIds(targetIds); |
|
candidates = $$.svg.selectAll($$.selectorTargets(targetIds.filter($$.isTargetToShow, $$))), |
|
|
|
this.revert(); |
|
this.defocus(); |
|
candidates.classed(CLASS.focused, true).classed(CLASS.defocused, false); |
|
if ($$.hasArcType()) { |
|
$$.expandArc(targetIds); |
|
} |
|
$$.toggleFocusLegend(targetIds, true); |
|
|
|
$$.focusedTargetIds = targetIds; |
|
$$.defocusedTargetIds = $$.defocusedTargetIds.filter(function (id) { |
|
return targetIds.indexOf(id) < 0; |
|
}); |
|
}; |
|
|
|
c3_chart_fn.defocus = function (targetIds) { |
|
var $$ = this.internal, candidates; |
|
|
|
targetIds = $$.mapToTargetIds(targetIds); |
|
candidates = $$.svg.selectAll($$.selectorTargets(targetIds.filter($$.isTargetToShow, $$))), |
|
|
|
candidates.classed(CLASS.focused, false).classed(CLASS.defocused, true); |
|
if ($$.hasArcType()) { |
|
$$.unexpandArc(targetIds); |
|
} |
|
$$.toggleFocusLegend(targetIds, false); |
|
|
|
$$.focusedTargetIds = $$.focusedTargetIds.filter(function (id) { |
|
return targetIds.indexOf(id) < 0; |
|
}); |
|
$$.defocusedTargetIds = targetIds; |
|
}; |
|
|
|
c3_chart_fn.revert = function (targetIds) { |
|
var $$ = this.internal, candidates; |
|
|
|
targetIds = $$.mapToTargetIds(targetIds); |
|
candidates = $$.svg.selectAll($$.selectorTargets(targetIds)); // should be for all targets |
|
|
|
candidates.classed(CLASS.focused, false).classed(CLASS.defocused, false); |
|
if ($$.hasArcType()) { |
|
$$.unexpandArc(targetIds); |
|
} |
|
if ($$.config.legend_show) { |
|
$$.showLegend(targetIds.filter($$.isLegendToShow.bind($$))); |
|
$$.legend.selectAll($$.selectorLegends(targetIds)) |
|
.filter(function () { |
|
return $$.d3.select(this).classed(CLASS.legendItemFocused); |
|
}) |
|
.classed(CLASS.legendItemFocused, false); |
|
} |
|
|
|
$$.focusedTargetIds = []; |
|
$$.defocusedTargetIds = []; |
|
};
|
|
|