syncfusion / flutter-widgets

Syncfusion Flutter widgets libraries include high quality UI widgets and file-format packages to help you create rich, high-quality applications for iOS, Android, and web from a single code base.
1.55k stars 756 forks source link

primaryYAxis CategoryAxis with trackballBehavior throws exception #1895

Closed Deishelon closed 3 months ago

Deishelon commented 3 months ago

Bug description

Creating a SfCartesianChart with primaryYAxis set to CategoryAxis AND turning on trackballBehavior results in NoSuchMethodError Exception.

Steps to reproduce

  1. Create SfCartesianChart
  2. primaryYAxis set to CategoryAxis
  3. trackballBehavior is enabled
  4. Error when hover

See sample code

Code sample

Code sample ```dart Widget timelineStateChartIdea(BuildContext context) { return SfCartesianChart( plotAreaBorderWidth: 1, primaryYAxis: CategoryAxis( majorGridLines: const MajorGridLines(width: 0), isVisible: true, ), primaryXAxis: DateTimeAxis( rangePadding: ChartRangePadding.none, axisLine: const AxisLine(width: 0), majorTickLines: const MajorTickLines(size: 0), ), series: , DateTime>>[ LineSeries, DateTime>( width: 10, dataSource: [ Pair("One", DateTime(2023, DateTime.april, 21, 20, 30)), Pair("One", DateTime(2023, DateTime.april, 24, 20, 30)), ], xValueMapper: (Pair sales, _) => sales.second, yValueMapper: (Pair sales, _) => 2, name: 'Apple', ), LineSeries, DateTime>( width: 10, dataSource: [ Pair("Two", DateTime(2023, DateTime.april, 24, 20, 30)), Pair("Two", DateTime(2023, DateTime.april, 27, 20, 30)), ], xValueMapper: (Pair sales, _) => sales.second, yValueMapper: (Pair sales, _) => 2, name: 'Banana', ), LineSeries, DateTime>( width: 10, dataSource: [ Pair("Tree", DateTime(2023, DateTime.april, 27, 20, 30)), Pair("Tree", DateTime(2023, DateTime.april, 29, 20, 30)), ], xValueMapper: (Pair sales, _) => sales.second, yValueMapper: (Pair sales, _) => 2, name: 'Orange', ), ], tooltipBehavior: TooltipBehavior(enable: true, canShowMarker: true), trackballBehavior: TrackballBehavior( enable: true, tooltipDisplayMode: TrackballDisplayMode.floatAllPoints, tooltipSettings: const InteractiveTooltip(enable: true), activationMode: ActivationMode.singleTap, ), ); } ```

Screenshots or Video

Screenshots / Video demonstration [Upload media here]

Stack Traces

Stack Traces ```dart ======== Exception caught by gesture library ======================================================= The following NoSuchMethodError was thrown while dispatching a pointer event: 'labelFormat' method not found Receiver: Instance of 'CategoryAxis' Arguments: [] When the exception was thrown, this was the stack: dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 297:3 throw_ dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 1113:3 defaultNoSuchMethod dart-sdk/lib/_internal/js_dev_runtime/patch/core_patch.dart 64:17 noSuchMethod dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 1088:31 noSuchMethod dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 173:10 dload packages/syncfusion_flutter_charts/src/chart/utils/helper.dart 1291:37 getLabelValue packages/syncfusion_flutter_charts/src/chart/user_interaction/trackball.dart 1803:13 [_getTrackballLabelText] packages/syncfusion_flutter_charts/src/chart/user_interaction/trackball.dart 993:28 generateAllPoints packages/syncfusion_flutter_charts/src/chart/user_interaction/trackball.dart 465:36 show packages/syncfusion_flutter_charts/src/chart/user_interaction/trackball.dart 624:52 onEnter packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart 4061:18 [_performMouseHover] packages/syncfusion_flutter_charts/src/chart/base/chart_base.dart 2443:39 packages/flutter/src/rendering/proxy_box.dart 3170:14 handleEvent packages/flutter/src/gestures/binding.dart 475:14 dispatchEvent packages/flutter/src/rendering/binding.dart 430:11 dispatchEvent packages/flutter/src/gestures/binding.dart 420:7 [_handlePointerEventImmediately] packages/flutter/src/gestures/binding.dart 383:5 handlePointerEvent packages/flutter/src/gestures/binding.dart 330:7 [_flushPointerEventQueue] packages/flutter/src/gestures/binding.dart 299:9 [_handlePointerDataPacket] lib/_engine/engine/platform_dispatcher.dart 1361:5 invoke1 lib/_engine/engine/platform_dispatcher.dart 286:5 invokeOnPointerDataPacket lib/_engine/engine/pointer_binding.dart 398:30 [_sendToFramework] lib/_engine/engine/pointer_binding.dart 224:7 onPointerData lib/_engine/engine/pointer_binding.dart 988:18 lib/_engine/engine/pointer_binding.dart 930:7 lib/_engine/engine/pointer_binding.dart 531:9 loggedHandler dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 550:37 _checkAndCall dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 555:39 dcall Event: PointerHoverEvent#2bcff(position: Offset(948.0, 230.0)) position: Offset(948.0, 230.0) Target: RenderMouseRegion#bef83 needs compositing parentData: offset=Offset(0.0, 0.0) (can use size) constraints: BoxConstraints(w=1669.5, h=280.0) size: Size(1669.5, 280.0) behavior: opaque listeners: hover, exit ==================================================================================================== ```

On which target platforms have you observed this bug?

Web

Flutter Doctor output

Doctor output ```console flutter doctor -v [✓] Flutter (Channel stable, 3.19.2, on Fedora Linux 40 (KDE Plasma) 6.8.10-300.fc40.x86_64, locale en_NZ.UTF-8) • Flutter version 3.19.2 on channel stable at /opt/flutter • Upstream repository https://github.com/flutter/flutter.git • Framework revision 7482962148 (3 months ago), 2024-02-27 16:51:22 -0500 • Engine revision 04817c99c9 • Dart version 3.3.0 • DevTools version 2.31.1 [!] Android toolchain - develop for Android devices (Android SDK version 34.0.0) • Android SDK at /home/deishelon/Android/Sdk ✗ cmdline-tools component is missing Run `path/to/sdkmanager --install "cmdline-tools;latest"` See https://developer.android.com/studio/command-line for more details. ✗ Android license status unknown. Run `flutter doctor --android-licenses` to accept the SDK licenses. See https://flutter.dev/docs/get-started/install/linux#android-setup for more details. [✓] Chrome - develop for the web • Chrome at google-chrome [✓] Linux toolchain - develop for Linux desktop • clang version 18.1.6 (Fedora 18.1.6-3.fc40) • cmake version 3.28.2 • ninja version 1.11.1 • pkg-config version 2.1.0 [✓] Android Studio (version 2023.3) • Android Studio at /home/deishelon/.local/share/JetBrains/Toolbox/apps/android-studio • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160) [✓] IntelliJ IDEA Ultimate Edition (version 2024.1) • IntelliJ at /home/deishelon/.local/share/JetBrains/Toolbox/apps/intellij-idea-ultimate • Flutter plugin version 79.2.3 • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart [✓] Connected device (2 available) • Linux (desktop) • linux • linux-x64 • Fedora Linux 40 (KDE Plasma) 6.8.10-300.fc40.x86_64 • Chrome (web) • chrome • web-javascript • Google Chrome 125.0.6422.141 [✓] Network resources • All expected network resources are available. ! Doctor found issues in 1 category. ```
Deishelon commented 3 months ago

Fixed in latest version