blob: c059239405a5182981d9d9fafedf0d732f7e310c [file] [log] [blame]
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {
AfterViewInit,
ChangeDetectionStrategy,
Component,
ElementRef,
Inject,
OnInit,
ViewChild
} from '@angular/core';
import * as G2 from '@antv/g2';
import { GraphConfig } from '@zeppelin/sdk';
import { G2VisualizationComponentBase, Visualization, VISUALIZATION } from '@zeppelin/visualization';
import { VisualizationPivotSettingComponent } from '../common/pivot-setting/pivot-setting.component';
@Component({
selector: 'zeppelin-pie-chart-visualization',
templateUrl: './pie-chart-visualization.component.html',
styleUrls: ['./pie-chart-visualization.component.less'],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class PieChartVisualizationComponent extends G2VisualizationComponentBase implements OnInit, AfterViewInit {
@ViewChild('container', { static: false }) container!: ElementRef<HTMLDivElement>;
@ViewChild(VisualizationPivotSettingComponent, { static: false })
pivotSettingComponent!: VisualizationPivotSettingComponent;
constructor(@Inject(VISUALIZATION) public visualization: Visualization) {
super(visualization);
}
ngOnInit() {}
refreshSetting(config: GraphConfig) {
this.pivotSettingComponent.init();
}
setScale(_chart: G2.Chart) {
// Noop
}
renderBefore(_config: GraphConfig, chart: G2.Chart) {
chart.tooltip({
showTitle: false
});
chart.coord('theta', {
radius: 0.75
});
chart
.intervalStack()
.position('__value__')
.color('__key__')
.style({
lineWidth: 1,
stroke: '#fff'
})
// eslint-disable-next-line @typescript-eslint/no-explicit-any
.tooltip('__key__*__value__', (name: any, value: any) => ({ name, value }));
}
ngAfterViewInit() {
this.render();
}
}