PCalendarDatePicker constructor

PCalendarDatePicker({
  1. Key? key,
  2. required Jalali initialDate,
  3. required Jalali firstDate,
  4. required Jalali lastDate,
  5. required ValueChanged<Jalali?> onDateChanged,
  6. ValueChanged<Jalali?>? onDisplayedMonthChanged,
  7. PDatePickerMode initialCalendarMode = PDatePickerMode.day,
  8. PSelectableDayPredicate? selectableDayPredicate,
})

Creates a calender date picker

It will display a grid of days for the initialDate's month. The day indicated by initialDate will be selected.

The optional onDisplayedMonthChanged callback can be used to track the currently displayed month.

The user interface provides a way to change the year of the month being displayed. By default it will show the day grid, but this can be changed to start in the year selection interface with initialCalendarMode set to PDatePickerMode.year.

The initialDate, firstDate, lastDate, onDateChanged, and initialCalendarMode must be non-null.

lastDate must be after or equal to firstDate.

initialDate must be between firstDate and lastDate or equal to one of them.

If selectableDayPredicate is non-null, it must return true for the initialDate.

Implementation

PCalendarDatePicker({
  Key? key,
  required Jalali initialDate,
  required Jalali firstDate,
  required Jalali lastDate,
  required this.onDateChanged,
  this.onDisplayedMonthChanged,
  this.initialCalendarMode = PDatePickerMode.day,
  this.selectableDayPredicate,
})  : initialDate = utils.dateOnly(initialDate),
      firstDate = utils.dateOnly(firstDate),
      lastDate = utils.dateOnly(lastDate),
      super(key: key) {
  assert(!this.lastDate.isBefore(this.firstDate),
      'lastDate ${this.lastDate} must be on or after firstDate ${this.firstDate}.');
  assert(!this.initialDate.isBefore(this.firstDate),
      'initialDate ${this.initialDate} must be on or after firstDate ${this.firstDate}.');
  assert(!this.initialDate.isAfter(this.lastDate),
      'initialDate ${this.initialDate} must be on or before lastDate ${this.lastDate}.');
  assert(
      selectableDayPredicate == null ||
          selectableDayPredicate!(this.initialDate),
      'Provided initialDate ${this.initialDate} must satisfy provided selectableDayPredicate.');
}