angular-indeterminate
Version:
Tri-state indeterminate checkboxes in Angular
2 lines • 1.38 kB
JavaScript
!function(e){function n(r){if(t[r])return t[r].exports;var i=t[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}var t={};return n.m=e,n.c=t,n.p="",n(0)}([function(e,n){"use strict";e.exports=angular.module("ngIndeterminate",[]).directive("indeterminate",["$parse",function(e){"ngInject";return{restrict:"AE",link:function(n,t,r){var i=r.indeterminateClickBehavior||"select",a=r.indeterminateKey||"enabled",l=r.indeterminateDisabled||"adminDisabled",u=!0,c=!1;if(r.ngTrueValue&&r.ngFalseValue)u=e(r.ngTrueValue)(n),c=e(r.ngFalseValue)(n);else if(r.ngTrueValue||r.ngFalseValue)throw new Error("Must have both ngTrueValue and ngFalseValue set");n.$watch(function(){var e=n.$eval(r.indeterminate);return e.filter(function(e){return!e[l]}).filter(function(e){return e[a]===u}).length+e.length},function(){var e=n.$eval(r.indeterminate).filter(function(e){return!e[l]}),i=e.filter(function(e){return e[a]===u});t[0].indeterminate=0<i.length&&i.length<e.length,i.length===e.length?t[0].checked=!0:t[0].checked=!1}),t.on("click",function(e){n.$apply(function(){var e=n.$eval(r.indeterminate).filter(function(e){return!e[l]}),t=e.filter(function(e){return e[a]===u}),o=void 0;o=0==t.length?u:t.length<e.length&&"clear"!==i?u:c;for(var f=0;f<e.length;f++)e[f][l]||(e[f][a]=o)})})}}}]).name}]);
//# sourceMappingURL=angular-indeterminate.min.js.map