|
|
|
@ -37,7 +37,7 @@ import debounce from 'lodash/debounce';
|
|
|
|
|
const DEFAULT_TICK_SIZE = 2; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
abstract class ChartwerkPod<T extends Serie, O extends Options> { |
|
|
|
|
class ChartwerkPod<T extends Serie, O extends Options> { |
|
|
|
|
|
|
|
|
|
protected series: CoreSeries<T>; |
|
|
|
|
protected options: CoreOptions<O>; |
|
|
|
@ -79,7 +79,8 @@ abstract class ChartwerkPod<T extends Serie, O extends Options> {
|
|
|
|
|
_series: T[] = [], |
|
|
|
|
_options: O |
|
|
|
|
) { |
|
|
|
|
// TODO: test if it's necessary
|
|
|
|
|
// need to call explicitly because option lazyStyleTag
|
|
|
|
|
// in webpack style-loader
|
|
|
|
|
styles.use(); |
|
|
|
|
|
|
|
|
|
this.options = new CoreOptions(_options); |
|
|
|
@ -115,6 +116,7 @@ abstract class ChartwerkPod<T extends Serie, O extends Options> {
|
|
|
|
|
|
|
|
|
|
this.renderLegend(); |
|
|
|
|
this.renderYLabel(); |
|
|
|
|
this.renderY1Label(); |
|
|
|
|
this.renderXLabel(); |
|
|
|
|
|
|
|
|
|
this.options.callbackRenderEnd(); |
|
|
|
@ -151,13 +153,13 @@ abstract class ChartwerkPod<T extends Serie, O extends Options> {
|
|
|
|
|
this.series.updateSeries(newSeries); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected abstract renderMetrics(): void; |
|
|
|
|
protected abstract onMouseOver(): void; |
|
|
|
|
protected abstract onMouseOut(): void; |
|
|
|
|
protected abstract onMouseMove(): void; |
|
|
|
|
protected abstract onMouseClick(): void; |
|
|
|
|
public abstract renderSharedCrosshair(values: { x?: number, y?: number }): void; |
|
|
|
|
public abstract hideSharedCrosshair(): void; |
|
|
|
|
protected renderMetrics(): void {} |
|
|
|
|
protected onMouseOver(): void {} |
|
|
|
|
protected onMouseOut(): void {} |
|
|
|
|
protected onMouseMove(): void {} |
|
|
|
|
protected onMouseClick(): void {} |
|
|
|
|
public renderSharedCrosshair(values: { x?: number, y?: number }): void {} |
|
|
|
|
public hideSharedCrosshair(): void {} |
|
|
|
|
|
|
|
|
|
protected initPodState(): void { |
|
|
|
|
const boxPararms = { |
|
|
|
@ -508,8 +510,8 @@ abstract class ChartwerkPod<T extends Serie, O extends Options> {
|
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
this.chartContainer.append('text') |
|
|
|
|
.attr('y', 0 - this.margin.left) |
|
|
|
|
.attr('x', 0 - (this.height / 2)) |
|
|
|
|
.attr('y', -this.margin.left) |
|
|
|
|
.attr('x', -(this.height / 2)) |
|
|
|
|
.attr('dy', '1em') |
|
|
|
|
.attr('class', 'y-axis-label') |
|
|
|
|
.attr('transform', 'rotate(-90)') |
|
|
|
@ -519,6 +521,22 @@ abstract class ChartwerkPod<T extends Serie, O extends Options> {
|
|
|
|
|
.text(this.options.axis.y.label); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected renderY1Label(): void { |
|
|
|
|
if(this.options.axis.y1?.label === undefined) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
this.chartContainer.append('text') |
|
|
|
|
.attr('y', -this.width - this.margin.right) |
|
|
|
|
.attr('x', (this.height / 2)) |
|
|
|
|
.attr('dy', '1em') |
|
|
|
|
.attr('class', 'y-axis-label') |
|
|
|
|
.attr('transform', 'rotate(90)') |
|
|
|
|
.style('text-anchor', 'middle') |
|
|
|
|
.style('font-size', '14px') |
|
|
|
|
.style('fill', 'currentColor') |
|
|
|
|
.text(this.options.axis.y1.label); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected renderXLabel(): void { |
|
|
|
|
if(this.options.axis.x.label === undefined) { |
|
|
|
|
return; |
|
|
|
|