Skip to content

Commit 2f87d08

Browse files
fix(lib): dark/light mode change partially done when using ODSCharts popover renderer (#541)
1 parent 100754c commit 2f87d08

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

src/theme/popover/ods-chart-popover.ts

+15-9
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ export class ODSChartsPopover {
288288
style.textContent = DEFAULT_NONE_CSS;
289289
document.head.appendChild(style);
290290
}
291-
const popoverOptions = {};
291+
const popoverOptions: any = {};
292292
const tooltipTrigger: 'xAxis' | 'yAxis' | 'grid' = this.getTooltipTrigger(dataOptions, themeOptions);
293293
this.enterable = !!dataOptions && !!dataOptions.tooltip && !!dataOptions.tooltip.enterable;
294294

@@ -386,7 +386,7 @@ export class ODSChartsPopover {
386386
hideDelay: 0,
387387
appendTo: 'body',
388388
renderMode: 'html',
389-
className: `ods-charts-popover ods-charts-enterable-${this.enterable ? 'true' : 'false'} ods-charts-mode-${this.mode} ${ODSChartsItemCSSDefinition.getClasses(cssTheme.popover?.odsChartsPopover)}`,
389+
className: `ods-charts-popover ods-charts-enterable-${this.enterable ? 'true' : 'false'} ${ODSChartsItemCSSDefinition.getClasses(cssTheme.popover?.odsChartsPopover)}`,
390390
axisPointer: {
391391
type: this.popoverConfig.axisPointer,
392392
},
@@ -454,15 +454,21 @@ export class ODSChartsPopover {
454454
});
455455
}
456456

457+
if (popoverOptions?.tooltip?.formatter) {
458+
popoverOptions.tooltip.formatter.IsOdsChartsFormatter = true;
459+
}
460+
457461
// We have to delete any default formatter as it is incompatible with externalizePopover feature
458462
if (dataOptions?.tooltip?.formatter) {
459-
dataOptions.tooltip = cloneDeepObject(dataOptions.tooltip);
460-
// But if no formatter has been provided through the popoverDefinition,
461-
// we will use the Apache ECharts config
462-
if (!this.popoverDefinition.getPopupContentValue) {
463-
const formatter = dataOptions.tooltip.formatter;
464-
this.popoverDefinition = cloneDeepObject(this.popoverDefinition);
465-
this.popoverDefinition.getPopupContentValue = (tooltipElement: ODSChartsPopoverItem) => formatter([tooltipElement]);
463+
if (!dataOptions.tooltip.formatter.IsOdsChartsFormatter) {
464+
dataOptions.tooltip = cloneDeepObject(dataOptions.tooltip);
465+
// But if no formatter has been provided through the popoverDefinition,
466+
// we will use the Apache ECharts config
467+
if (!this.popoverDefinition.getPopupContentValue) {
468+
const formatter = dataOptions.tooltip.formatter;
469+
this.popoverDefinition = cloneDeepObject(this.popoverDefinition);
470+
this.popoverDefinition.getPopupContentValue = (tooltipElement: ODSChartsPopoverItem) => formatter([tooltipElement]);
471+
}
466472
}
467473
delete dataOptions.tooltip.formatter;
468474
}

0 commit comments

Comments
 (0)