code: function keydownListener(ev) {
        if (isDisabled()) return;
        var keyCodes = $mdConstant.KEY_CODE;
  
        var changeAmount;
        switch (ev.keyCode) {
          case keyCodes.DOWN_ARROW:
          case keyCodes.LEFT_ARROW:
            ev.preventDefault();
            changeAmount = -step;
            break;
          case keyCodes.UP_ARROW:
          case keyCodes.RIGHT_ARROW:
            ev.preventDefault();
            changeAmount = step;
            break;
          case keyCodes.PAGE_DOWN:
            ev.preventDefault();
            changeAmount = -step * stepPageSize;
            break;
          case keyCodes.PAGE_UP:
            ev.preventDefault();
            changeAmount = step * stepPageSize;
            break;
          case keyCodes.HOME:
            ev.preventDefault();
            ev.stopPropagation();
            updateValue(min);
            break;
          case keyCodes.END:
            ev.preventDefault();
            ev.stopPropagation();
            updateValue(max);
            break;
        }
        if (changeAmount) {
          changeAmount = invert ? -changeAmount : changeAmount;
          if (ev.metaKey || ev.ctrlKey || ev.altKey) {
            changeAmount *= modifierMultiplier;
          }
          ev.preventDefault();
          ev.stopPropagation();
          updateValue(ngModelCtrl.$viewValue + changeAmount);
        }
      }
docs: left/right/up/down arrow listener
  @param {!KeyboardEvent} ev