/*! * AngularJS Material Design * https://github.com/angular/material * @license MIT * v1.1.18-master-97a1616 */ function MdSwitch(e,m,u,g,p,v,f){var n=e[0];return{restrict:"E",priority:u.BEFORE_NG_ARIA,transclude:!0,template:'
',require:["^?mdInputContainer","?ngModel","?^form"],compile:function(e,t){var s=n.compile(e,t).post;return e.addClass("md-dragging"),function(t,n,e,r){r[0];var a=r[1]||m.fakeNgModel(),i=(r[2],null);null!=e.disabled?i=function(){return!0}:e.ngDisabled&&(i=g(e.ngDisabled));var o,d=angular.element(n[0].querySelector(".md-thumb-container")),l=angular.element(n[0].querySelector(".md-container")),c=angular.element(n[0].querySelector(".md-label"));p(function(){n.removeClass("md-dragging")}),s(t,n,e,r),i&&t.$watch(i,function(e){n.attr("tabindex",e?-1:0)}),e.$observe("mdInvert",function(e){var t=m.parseAttributeBoolean(e);t?n.prepend(c):n.prepend(l),n.toggleClass("md-inverted",t)}),v.register(l,"drag"),l.on("$md.dragstart",function(e){if(i&&i(t))return;e.stopPropagation(),n.addClass("md-dragging"),o={width:d.prop("offsetWidth")}}).on("$md.drag",function(e){if(!o)return;e.stopPropagation(),e.srcEvent&&e.srcEvent.preventDefault();var t=e.pointer.distanceX/o.width,n=a.$viewValue?1+t:t;n=Math.max(0,Math.min(1,n)),d.css(u.CSS.TRANSFORM,"translate3d("+100*n+"%,0,0)"),o.translate=n}).on("$md.dragend",function(e){if(!o)return;e.stopPropagation(),n.removeClass("md-dragging"),d.css(u.CSS.TRANSFORM,""),(a.$viewValue?o.translate<.5:.5