code: function CalendarMonthCtrl($element, $scope, $animate, $q,
      $$mdDateUtil, $mdDateLocale) {
  
      /** @final {!angular.JQLite} */
      this.$element = $element;
  
      /** @final {!angular.Scope} */
      this.$scope = $scope;
  
      /** @final {!angular.$animate} */
      this.$animate = $animate;
  
      /** @final {!angular.$q} */
      this.$q = $q;
  
      /** @final */
      this.dateUtil = $$mdDateUtil;
  
      /** @final */
      this.dateLocale = $mdDateLocale;
  
      /** @final {HTMLElement} */
      this.calendarScroller = $element[0].querySelector('.md-virtual-repeat-scroller');
  
      /** @type {boolean} */
      this.isInitialized = false;
  
      /** @type {boolean} */
      this.isMonthTransitionInProgress = false;
  
      var self = this;
  
      /**
       * Handles a click event on a date cell.
       * Created here so that every cell can use the same function instance.
       * @this {HTMLTableCellElement} The cell that was clicked.
       */
      this.cellClickHandler = function() {
        var timestamp = $$mdDateUtil.getTimestampFromNode(this);
        self.$scope.$apply(function() {
          self.calendarCtrl.setNgModelValue(timestamp);
        });
      };
  
      /**
       * Handles click events on the month headers. Switches
       * the calendar to the year view.
       * @this {HTMLTableCellElement} The cell that was clicked.
       */
      this.headerClickHandler = function() {
        self.calendarCtrl.setCurrentView('year', $$mdDateUtil.getTimestampFromNode(this));
      };
    }
docs: Controller for the calendar month component.
  @ngInject @constructor