FCalendarYearPickerController constructor

FCalendarYearPickerController({
  1. required DateTime start,
  2. required DateTime end,
  3. required bool selectable(
    1. DateTime
    ),
  4. required DateTime initial,
  5. DateTime? focused,
})

Implementation

new({required super.start, required super.end, required super.selectable, required super.initial, super.focused})
  : super(
      columns: _columns,
      focusable: (decade, date) {
        final preferred = DateTime.utc(date.year);
        if (decade.year <= preferred.year && preferred.year < decade.year + 10 && selectable(preferred)) {
          return preferred;
        }

        for (var year = decade; year.year < decade.year + 10; year = year.plus(years: 1)) {
          if (selectable(year)) {
            return year;
          }
        }

        return null;
      },
      step: (date, amount) => date.plus(years: amount),
      from: (date) => (date.year - date.year % 10 - (start.year - start.year % 10)) ~/ 10,
      to: (page) => .utc(start.year - start.year % 10 + page * 10),
    );