From 7f31c98f369db1011b6cc02ffff3daa5a458f145 Mon Sep 17 00:00:00 2001 From: Alexey Velikiy Date: Wed, 27 Oct 2021 20:54:47 +0300 Subject: [PATCH] optional events in options --- .gitignore | 1 + src/index.ts | 8 ++++++-- src/types.ts | 22 +++++++++++----------- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 3c3629e..76efb07 100755 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ node_modules +.vscode diff --git a/src/index.ts b/src/index.ts index 8e5732d..b1f7704 100644 --- a/src/index.ts +++ b/src/index.ts @@ -540,7 +540,9 @@ abstract class ChartwerkPod { .attr('height', 15) .html(`
`) .on('click', () => { - this.options.eventsCallbacks.onLegendClick(idx); + if(this.options.eventsCallbacks !== undefined && this.options.eventsCallbacks.onLegendClick !== undefined) { + this.options.eventsCallbacks.onLegendClick(idx); + } }); legendRow.append('text') @@ -551,7 +553,9 @@ abstract class ChartwerkPod { .style('fill', this.getSerieColor(idx)) .text(this.series[idx].target) .on('click', () => { - this.options.eventsCallbacks.onLegendLabelClick(idx); + if(this.options.eventsCallbacks !== undefined && this.options.eventsCallbacks.onLegendLabelClick !== undefined) { + this.options.eventsCallbacks.onLegendLabelClick(idx); + } }); } } diff --git a/src/types.ts b/src/types.ts index f331152..b49967d 100644 --- a/src/types.ts +++ b/src/types.ts @@ -13,17 +13,17 @@ export type Options = { margin?: Margin; confidence?: number; eventsCallbacks?: { - zoomIn: (range: AxisRange[]) => void, - panning: (event: { ranges: AxisRange[], d3Event: any }) => void, - panningEnd: (range: AxisRange[]) => void, - zoomOut: (centers: {x: number, y: number}) => void, - mouseMove: (evt: any) => void, - mouseOut: () => void, - onLegendClick: (idx: number) => void, - onLegendLabelClick: (idx: number) => void, - contextMenu: (evt: any) => void, // the same name as in d3.events - sharedCrosshairMove: (event: any) => void, - renderEnd: () => void, + zoomIn?: (range: AxisRange[]) => void, + panning?: (event: { ranges: AxisRange[], d3Event: any }) => void, + panningEnd?: (range: AxisRange[]) => void, + zoomOut?: (centers: {x: number, y: number}) => void, + mouseMove?: (evt: any) => void, + mouseOut?: () => void, + onLegendClick?: (idx: number) => void, + onLegendLabelClick?: (idx: number) => void, + contextMenu?: (evt: any) => void, // the same name as in d3.events + sharedCrosshairMove?: (event: any) => void, + renderEnd?: () => void, }; axis?: { x?: AxisOption,