docs: function (out) {
              var cfg = this._cfg;
  
              var dm = this.controller.getDataModel();
  
              var calendarConf = {
                  block : true,
                  startDate : dm.jsDate,
                  tabIndex : -1,
                  label : cfg.calendarLabel,
                  defaultTemplate : cfg.calendarTemplate,
                  waiAria: cfg.waiAria,
                  waiAriaDateFormat: cfg.waiAriaDateFormat,
                  waiAriaLabel: cfg.waiAriaCalendarLabel,
                  minValue : cfg.minValue,
                  maxValue : cfg.maxValue,
                  onclick : {
                      fn : this._clickOnDate,
                      scope : this
                  },
                  onkeydown : {
                      fn: this._calendar_onkeydown,
                      scope : this
                  },
                  onmousedown : {
                      fn: this._calendar_onmousedown,
                      scope: this
                  },
                  onfocus : {
                      fn: this._calendar_onfocus,
                      scope: this
                  },
                  onblur : {
                      fn: this._calendar_onblur,
                      scope: this
                  },
                  bind : {
                      "value" : {
                          to : "calendarValue",
                          inside : dm
                      }
                  }
              };
  
              // maps property from datepicker configuration
              var propMapped = ['displayUnit', 'numberOfUnits', 'firstDayOfWeek', 'monthLabelFormat',
                      'dayOfWeekLabelFormat', 'dateLabelFormat', 'completeDateLabelFormat', 'showWeekNumbers',
                      'showShortcuts', 'restrainedNavigation', 'sclass'];
              for (var i = 0, property; property = propMapped[i]; i++) {
                  this._applyCalendarCfg(property, calendarConf);
              }
  
              var calendar = new ariaWidgetsCalendarCalendar(calendarConf, this._context, this._lineNumber);
              calendar.$on({
                  'widgetContentReady' : this._refreshPopup,
                  scope : this
              });
              this.controller.setCalendar(calendar);
              out.registerBehavior(calendar);
              calendar.writeMarkup(out);
          }