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.
44 lines
1.4 KiB
44 lines
1.4 KiB
1 year ago
|
import CLASS from './class';
|
||
|
import { Chart } from './core';
|
||
|
|
||
|
Chart.prototype.regions = function (regions) {
|
||
|
var $$ = this.internal, config = $$.config;
|
||
|
if (!regions) { return config.regions; }
|
||
|
config.regions = regions;
|
||
|
$$.redrawWithoutRescale();
|
||
|
return config.regions;
|
||
|
};
|
||
|
Chart.prototype.regions.add = function (regions) {
|
||
|
var $$ = this.internal, config = $$.config;
|
||
|
if (!regions) { return config.regions; }
|
||
|
config.regions = config.regions.concat(regions);
|
||
|
$$.redrawWithoutRescale();
|
||
|
return config.regions;
|
||
|
};
|
||
|
Chart.prototype.regions.remove = function (options) {
|
||
|
var $$ = this.internal, config = $$.config,
|
||
|
duration, classes, regions;
|
||
|
|
||
|
options = options || {};
|
||
|
duration = $$.getOption(options, "duration", config.transition_duration);
|
||
|
classes = $$.getOption(options, "classes", [CLASS.region]);
|
||
|
|
||
|
regions = $$.main.select('.' + CLASS.regions).selectAll(classes.map(function (c) { return '.' + c; }));
|
||
|
(duration ? regions.transition().duration(duration) : regions)
|
||
|
.style('opacity', 0)
|
||
|
.remove();
|
||
|
|
||
|
config.regions = config.regions.filter(function (region) {
|
||
|
var found = false;
|
||
|
if (!region['class']) {
|
||
|
return true;
|
||
|
}
|
||
|
region['class'].split(' ').forEach(function (c) {
|
||
|
if (classes.indexOf(c) >= 0) { found = true; }
|
||
|
});
|
||
|
return !found;
|
||
|
});
|
||
|
|
||
|
return config.regions;
|
||
|
};
|