AngularJS: indeterminate checkbox

HTML

<script src="http://docs-next.angularjs.org/angular-0.10.5.min.js" ng:autobind></script>

<input type="checkbox" ng:model="value" />

<a href ng:click="value=!value">toggle</a>
<a href ng:click="value='intederminate'">indeterminated</a>
value={{value}}

JavaScript

angular.inputType('checkbox', function(inputElement) {
  var widget = this,
      trueValue = inputElement.attr('ng:true-value'),
      falseValue = inputElement.attr('ng:false-value'),
      indValue = inputElement.attr('ng:ind-value');

  if (!angular.isString(trueValue)) trueValue = true;
  if (!angular.isString(falseValue)) falseValue = false;
  if (!angular.isString(indValue)) indValue = 'intederminate';

  inputElement.bind('click', function() {
    widget.$apply(function() {
      widget.$emit('$viewChange', inputElement[0].checked);
    });
  });

  widget.$render = function() {
    inputElement[0].checked = widget.$modelValue === trueValue;
    inputElement[0].indeterminate = widget.$modelValue === indValue;
  };

  widget.$parseModel = function() {
    widget.$viewValue = this.$modelValue === trueValue;
  };

  widget.$parseView = function() {
    widget.$modelValue = widget.$viewValue ? trueValue : falseValue;
  };
});