buildCalendarMarkup function

Component buildCalendarMarkup(
  1. CalendarProps props, {
  2. required String classes,
  3. required String navButtonClasses,
  4. required String todayButtonClasses,
  5. required String dayButtonClasses,
  6. required Styles styles,
})

Implementation

Component buildCalendarMarkup(
  CalendarProps props, {
  required String classes,
  required String navButtonClasses,
  required String todayButtonClasses,
  required String dayButtonClasses,
  required dom.Styles styles,
}) {
  final String calendarId = props.id ?? 'cal-${identityHashCode(props)}';
  final Map<String, String> attrs = mergeAttrs(<Map<String, String>>[
    calendarAttrs(
      calendarId: calendarId,
      year: props.displayMonth.year,
      month: props.displayMonth.month - 1,
      mode: props.mode == CalendarModeVariant.range ? 'range' : 'single',
      selected: props.selected,
      rangeStart: props.selectedRange?.start,
      rangeEnd: props.selectedRange?.end,
      minDate: props.minDate,
      maxDate: props.maxDate,
      showWeekNumbers: props.showWeekNumbers,
      showToday: props.showToday,
      firstDayOfWeek: props.firstDayOfWeek,
    ),
    <String, String>{'role': 'application', 'aria-label': 'Calendar'},
  ]);

  return dom.div(
    <Component>[
      _calendarHeader(props, calendarId, navButtonClasses),
      if (props.showToday) _todayButton(props, calendarId, todayButtonClasses),
      _weekdayRow(props),
      _dayGrid(props, calendarId, dayButtonClasses),
    ],
    classes: classes,
    attributes: attrs,
    styles: styles,
  );
}