LCOV - code coverage report
Current view: top level - src - day_picker_selection.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 0 37 0.0 %
Date: 2022-02-12 14:49:12 Functions: 0 0 -

          Line data    Source code
       1             : import 'date_period.dart';
       2             : import 'utils.dart';
       3             : 
       4             : /// Base class for day based pickers selection.
       5             : abstract class DayPickerSelection {
       6             : 
       7             :   /// If this is before [dateTime].
       8             :   bool isBefore(DateTime dateTime);
       9             : 
      10             :   /// If this is after [dateTime].
      11             :   bool isAfter(DateTime dateTime);
      12             : 
      13             :   /// Returns earliest [DateTime] in this selection.
      14             :   DateTime get earliest;
      15             : 
      16             :   /// If this selection is empty.
      17             :   bool get isEmpty;
      18             : 
      19             :   /// If this selection is not empty.
      20             :   bool get isNotEmpty;
      21             : 
      22             :   /// Constructor to allow children to have constant constructor.
      23           0 :   const DayPickerSelection();
      24             : }
      25             : 
      26             : /// Selection with only one selected date.
      27             : ///
      28             : /// See also:
      29             : /// * [DayPickerMultiSelection] - selection with one or many single dates.
      30             : /// * [DayPickerRangeSelection] - date period selection.
      31             : class DayPickerSingleSelection extends DayPickerSelection {
      32             : 
      33             :   /// Selected date.
      34             :   final DateTime selectedDate;
      35             : 
      36             :   /// Creates selection with only one selected date.
      37           0 :   const DayPickerSingleSelection(this.selectedDate)
      38           0 :       : assert(selectedDate != null);
      39             : 
      40           0 :   @override
      41           0 :   bool isAfter(DateTime dateTime) => selectedDate.isAfter(dateTime);
      42             : 
      43           0 :   @override
      44           0 :   bool isBefore(DateTime dateTime) => selectedDate.isBefore(dateTime);
      45             : 
      46           0 :   @override
      47           0 :   DateTime get earliest => selectedDate;
      48             : 
      49           0 :   @override
      50           0 :   bool get isEmpty => selectedDate == null;
      51             : 
      52           0 :   @override
      53           0 :   bool get isNotEmpty => selectedDate != null;
      54             : }
      55             : 
      56             : 
      57             : /// Selection with one or many single dates.
      58             : ///
      59             : /// See also:
      60             : /// * [DayPickerSingleSelection] - selection with only one selected date.
      61             : /// * [DayPickerRangeSelection] - date period selection.
      62             : class DayPickerMultiSelection extends DayPickerSelection {
      63             : 
      64             :   /// List of the selected dates.
      65             :   final List<DateTime> selectedDates;
      66             : 
      67             :   /// Selection with one or many single dates.
      68           0 :   DayPickerMultiSelection(this.selectedDates)
      69           0 :       : assert(selectedDates != null);
      70             : 
      71             : 
      72           0 :   @override
      73             :   bool isAfter(DateTime dateTime)
      74           0 :   => selectedDates.every((d) => d.isAfter(dateTime));
      75             : 
      76           0 :   @override
      77             :   bool isBefore(DateTime dateTime)
      78           0 :   => selectedDates.every((d) => d.isBefore(dateTime));
      79             : 
      80           0 :   @override
      81           0 :   DateTime get earliest => DatePickerUtils.getEarliestFromList(selectedDates);
      82             : 
      83           0 :   @override
      84           0 :   bool get isEmpty => selectedDates.isEmpty;
      85             : 
      86           0 :   @override
      87           0 :   bool get isNotEmpty => selectedDates.isNotEmpty;
      88             : }
      89             : 
      90             : 
      91             : 
      92             : /// Date period selection.
      93             : ///
      94             : /// See also:
      95             : /// * [DayPickerSingleSelection] - selection with only one selected date.
      96             : /// * [DayPickerMultiSelection] - selection with one or many single dates.
      97             : class DayPickerRangeSelection extends DayPickerSelection {
      98             : 
      99             :   /// Selected period.
     100             :   final DatePeriod selectedRange;
     101             : 
     102             :   /// Date period selection.
     103           0 :   const DayPickerRangeSelection(this.selectedRange)
     104           0 :       : assert(selectedRange != null);
     105             : 
     106           0 :   @override
     107           0 :   DateTime get earliest => selectedRange.start;
     108             : 
     109           0 :   @override
     110           0 :   bool isAfter(DateTime dateTime) => selectedRange.start.isAfter(dateTime);
     111             : 
     112           0 :   @override
     113           0 :   bool isBefore(DateTime dateTime) => selectedRange.end.isBefore(dateTime);
     114             : 
     115           0 :   @override
     116           0 :   bool get isEmpty => selectedRange == null;
     117             : 
     118           0 :   @override
     119           0 :   bool get isNotEmpty => selectedRange != null;
     120             : }

Generated by: LCOV version 1.15