import 'package:flutter/material.dart'; import 'claims_collection_kpi.dart'; import 'enrollment_collection_kpi.dart'; /// When true, tab widgets skip scroll/entrance animations (PDF capture). class ClaimsPdfExportScope extends InheritedWidget { final bool enabled; final double? laneWidth; const ClaimsPdfExportScope({ super.key, required this.enabled, this.laneWidth, required super.child, }); static bool of(BuildContext context) { return context .dependOnInheritedWidgetOfExactType() ?.enabled ?? false; } static double? laneWidthOf(BuildContext context) { return context .dependOnInheritedWidgetOfExactType() ?.laneWidth; } @override bool updateShouldNotify(ClaimsPdfExportScope oldWidget) { return oldWidget.enabled != enabled || oldWidget.laneWidth != laneWidth; } } /// Provides parsed KPI data to all Claims Overview tabs. class ClaimsOverviewScope extends InheritedWidget { final ClaimsOverviewViewData data; const ClaimsOverviewScope({ super.key, required this.data, required super.child, }); static ClaimsOverviewViewData of(BuildContext context) { final scope = context.dependOnInheritedWidgetOfExactType(); return scope?.data ?? ClaimsOverviewViewData.empty(); } @override bool updateShouldNotify(ClaimsOverviewScope oldWidget) { return oldWidget.data != data; } } /// Provides parsed enrollment KPI data to the Enrollment tab. class EnrollmentOverviewScope extends InheritedWidget { final EnrollmentOverviewViewData data; const EnrollmentOverviewScope({ super.key, required this.data, required super.child, }); static EnrollmentOverviewViewData of(BuildContext context) { final scope = context.dependOnInheritedWidgetOfExactType(); return scope?.data ?? EnrollmentOverviewViewData.empty(); } @override bool updateShouldNotify(EnrollmentOverviewScope oldWidget) { return oldWidget.data != data; } }