constructor() {
    super();
    /** @type {{months: Month[]}}
     * @private
     */
    this.__data = { months: [] };
    this.minDate = new Date(0);
    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
    this.maxDate = new Date(8640000000000000);
    /** @param {Day} day */
    this.dayPreprocessor = day => day;

    /** @param {Date} day */
    // eslint-disable-next-line no-unused-vars
    this.disableDates = day => false;

    this.firstDayOfWeek = 0;
    this.weekdayHeaderNotation = 'short';
    /** @private */
    this.__today = normalizeDateTime(new Date());
    /** @type {Date} */
    this.centralDate = this.__today;
    /**
     * @type {Date | null}
     * @private
     */
    this.__focusedDate = null;
    /** @private */
    this.__connectedCallbackDone = false;
    /** @private */
    this.__eventsAdded = false;
    this.locale = '';
    /** @private */
    this.__boundKeyboardNavigationEvent = this.__keyboardNavigationEvent.bind(this);
    /** @private */
    this.__boundClickDateDelegation = this.__clickDateDelegation.bind(this);
    /** @private */
    this.__boundFocusDateDelegation = this.__focusDateDelegation.bind(this);
    /** @private */
    this.__boundBlurDateDelegation = this.__focusDateDelegation.bind(this);
  }
Data to render current month grid