constructor(properties) {
    super(properties);
    let selectedDate;
    let month;
    let year;

    if (has(properties, 'valueLink')) {
      selectedDate = properties.valueLink.value;
    } else if (has(properties, 'value')) {
      selectedDate = properties.value;
    } else if (has(properties, 'defaultValue')) {
      selectedDate = properties.defaultValue;
    }

    if (properties.defaultMonth) {
      month = properties.defaultMonth - 1;
    } else if (selectedDate) {
      month = selectedDate.getMonth();
    } else {
      month = today().getMonth();
    }

    if (properties.defaultYear) {
      year = properties.defaultYear;
    } else if (selectedDate) {
      year = selectedDate.getFullYear();
    } else {
      year = today().getFullYear();
    }

    this.state = {
      isFocused: false,
      isActive: false,
      selectedDate,
      month,
      year,
    };

    this.localeData = getLocaleData(properties.locale);
    this.wrapperProps = sanitizeWrapperProps(properties);
    this.dayProps = sanitizeDayProps(properties.dayProps);
    this.disabledDayProps = sanitizeDisabledDayProps(properties.dayProps);
    this.emptyDayProps = sanitizeEmptyDayProps(properties.dayProps);
    this.navBarProps = sanitizeNavBarProps(properties.navBarProps);
    this.prevMonthNavProps = sanitizePrevMonthNavProps(properties.prevMonthNavProps);
    this.prevMonthNavIconProps = sanitizePrevMonthNavIconProps(properties.prevMonthNavIconProps);
    this.nextMonthNavProps = sanitizeNextMonthNavProps(properties.nextMonthNavProps);
    this.nextMonthNavIconProps = sanitizeNextMonthNavIconProps(properties.nextMonthNavIconProps);
    this.monthLabelProps = sanitizeMonthLabelProps(properties.monthLabelProps);
    this.dayLabelProps = sanitizeDayLabelProps(properties.dayLabelProps);
    this.weekHeaderProps = sanitizeWeekHeaderProps(properties.weekHeaderProps);
    this.weekGridProps = sanitizeWeekGridProps(properties.weekGridProps);

    this.preventFocusStyleForTouchAndClick = has(properties, 'preventFocusStyleForTouchAndClick') ? properties.preventFocusStyleForTouchAndClick : config.preventFocusStyleForTouchAndClick;
  }
DatePicker React Component.

This implementation follows the recommendations proposed here:
http://www.w3.org/TR/wai-aria-practices/#datepicker