@covalent/echarts
Version:
Teradata UI Platform Echarts Module
151 lines (146 loc) • 7.47 kB
JavaScript
import * as i0 from '@angular/core';
import { forwardRef, Component, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import * as i1 from '@covalent/echarts/base';
import { assignDefined, TdSeriesDirective } from '@covalent/echarts/base';
import { TdChartSeriesBarComponent } from '@covalent/echarts/bar';
import * as ecStat from 'echarts-stat';
class TdChartSeriesHistogramComponent extends TdChartSeriesBarComponent {
constructor(_optionsService) {
super(_optionsService);
}
ngOnChanges() {
let output = [];
if (!this.source) {
const dataset = this.optionsService.getOption('dataset');
this.source = dataset?.source ?? [];
}
if (this.source?.some((item) => Array.isArray(item))) {
const config = this.getConfig();
const index = config.datasetIndex ?? 1;
const source = this.source;
const indexedOutput = source[0].map((_, colIndex) => source.map((row) => row[colIndex]));
output = indexedOutput[index - 1] ?? [];
}
else {
output = this.source;
}
const bins = ecStat.histogram(output, this.method ?? 'squareRoot');
this.data = bins.data;
this.setOptions();
}
getConfig() {
return {
method: this.method,
coordinateSystem: this.coordinateSystem,
xAxisIndex: this.xAxisIndex,
yAxisIndex: this.yAxisIndex,
legendHoverLink: this.legendHoverLink,
stack: this.stack,
cursor: this.cursor,
label: this.label,
itemStyle: this.itemStyle,
emphasis: this.emphasis,
barWidth: this.barWidth,
barMaxWidth: this.barMaxWidth,
barMinHeight: this.barMinHeight,
barGap: this.barGap,
barCategoryGap: this.barCategoryGap,
large: this.large,
largeThreshold: this.largeThreshold,
progressive: this.progressive,
progressiveThreshold: this.progressiveThreshold,
progressiveChunkMode: this.progressiveChunkMode,
dimensions: this.dimensions,
encode: this.encode,
seriesLayoutBy: this.seriesLayoutBy,
datasetIndex: this.datasetIndex,
markPoint: this.markPoint,
markLine: this.markLine,
markArea: this.markArea,
zlevel: this.zlevel,
z: this.z,
};
}
setOptions() {
const config = assignDefined(this._state, {
id: this.id,
type: this.type,
name: this.name,
color: this.color,
data: this.data,
animation: this.animation,
animationThreshold: this.animationThreshold,
animationDuration: this.animationDuration,
animationEasing: this.animationEasing,
animationDelay: this.animationDelay,
animationDurationUpdate: this.animationDurationUpdate,
animationEasingUpdate: this.animationEasingUpdate,
animationDelayUpdate: this.animationDelayUpdate,
tooltip: this.tooltip,
}, this.getConfig(), this._options, this.config ? this.config : {});
this.optionsService.setArrayOption('series', config);
}
}
TdChartSeriesHistogramComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TdChartSeriesHistogramComponent, deps: [{ token: i1.TdChartOptionsService }], target: i0.ɵɵFactoryTarget.Component });
TdChartSeriesHistogramComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TdChartSeriesHistogramComponent, selector: "td-chart-series[td-histogram]", inputs: { config: "config", id: "id", name: "name", color: "color", data: "data", animation: "animation", animationThreshold: "animationThreshold", animationDuration: "animationDuration", animationEasing: "animationEasing", animationDelay: "animationDelay", animationDurationUpdate: "animationDurationUpdate", animationEasingUpdate: "animationEasingUpdate", animationDelayUpdate: "animationDelayUpdate", tooltip: "tooltip", source: "source", method: "method" }, providers: [
{
provide: TdSeriesDirective,
useExisting: forwardRef(() => TdChartSeriesHistogramComponent),
},
], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TdChartSeriesHistogramComponent, decorators: [{
type: Component,
args: [{
selector: 'td-chart-series[td-histogram]',
template: '',
changeDetection: ChangeDetectionStrategy.OnPush,
inputs: [
'config',
'id',
'name',
'color',
'data',
'animation',
'animationThreshold',
'animationDuration',
'animationEasing',
'animationDelay',
'animationDurationUpdate',
'animationEasingUpdate',
'animationDelayUpdate',
'tooltip',
],
providers: [
{
provide: TdSeriesDirective,
useExisting: forwardRef(() => TdChartSeriesHistogramComponent),
},
],
}]
}], ctorParameters: function () { return [{ type: i1.TdChartOptionsService }]; }, propDecorators: { source: [{
type: Input
}], method: [{
type: Input
}] } });
const HISTOGRAM_MODULE_COMPONENTS = [
TdChartSeriesHistogramComponent,
];
class CovalentHistogramEchartsModule {
}
CovalentHistogramEchartsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentHistogramEchartsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
CovalentHistogramEchartsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: CovalentHistogramEchartsModule, declarations: [TdChartSeriesHistogramComponent], imports: [CommonModule], exports: [TdChartSeriesHistogramComponent] });
CovalentHistogramEchartsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentHistogramEchartsModule, imports: [CommonModule] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentHistogramEchartsModule, decorators: [{
type: NgModule,
args: [{
imports: [CommonModule],
declarations: [HISTOGRAM_MODULE_COMPONENTS],
exports: [HISTOGRAM_MODULE_COMPONENTS],
}]
}] });
/**
* Generated bundle index. Do not edit.
*/
export { CovalentHistogramEchartsModule, HISTOGRAM_MODULE_COMPONENTS, TdChartSeriesHistogramComponent };
//# sourceMappingURL=covalent-echarts-histogram.mjs.map