whole_func_string: function keydownListener(ev) {
        if (isDisabled()) return;
  
        var changeAmount;
        if (vertical ? ev.keyCode === $mdConstant.KEY_CODE.DOWN_ARROW : ev.keyCode === $mdConstant.KEY_CODE.LEFT_ARROW) {
          changeAmount = -step;
        } else if (vertical ? ev.keyCode === $mdConstant.KEY_CODE.UP_ARROW : ev.keyCode === $mdConstant.KEY_CODE.RIGHT_ARROW) {
          changeAmount = step;
        }
        changeAmount = invert ? -changeAmount : changeAmount;
        if (changeAmount) {
          if (ev.metaKey || ev.ctrlKey || ev.altKey) {
            changeAmount *= 4;
          }
          ev.preventDefault();
          ev.stopPropagation();
          scope.$evalAsync(function() {
            setModelValue(ngModelCtrl.$viewValue + changeAmount);
          });
        }
      }
func_code_string: function keydownListener(ev) {
        if (isDisabled()) return;
  
        var changeAmount;
        if (vertical ? ev.keyCode === $mdConstant.KEY_CODE.DOWN_ARROW : ev.keyCode === $mdConstant.KEY_CODE.LEFT_ARROW) {
          changeAmount = -step;
        } else if (vertical ? ev.keyCode === $mdConstant.KEY_CODE.UP_ARROW : ev.keyCode === $mdConstant.KEY_CODE.RIGHT_ARROW) {
          changeAmount = step;
        }
        changeAmount = invert ? -changeAmount : changeAmount;
        if (changeAmount) {
          if (ev.metaKey || ev.ctrlKey || ev.altKey) {
            changeAmount *= 4;
          }
          ev.preventDefault();
          ev.stopPropagation();
          scope.$evalAsync(function() {
            setModelValue(ngModelCtrl.$viewValue + changeAmount);
          });
        }
      }
func_documentation_string: left/right/up/down arrow listener