7 lines
4.0 KiB
JavaScript
Raw Normal View History

2020-05-19 11:43:42 +03:00
/*!
* AngularJS Material Design
* https://github.com/angular/material
* @license MIT
* v1.1.18-master-97a1616
*/
function MdProgressCircularDirective(C,P,s,$,g,r){var I=C.requestAnimationFrame||C.webkitRequestAnimationFrame||angular.noop,f=C.cancelAnimationFrame||C.webkitCancelAnimationFrame||C.webkitCancelRequestAnimationFrame||angular.noop,v="determinate",k="indeterminate",x="_md-progress-circular-disabled",F="md-mode-indeterminate";return{restrict:"E",scope:{value:"@",mdDiameter:"@",mdMode:"@"},template:'<svg xmlns="http://www.w3.org/2000/svg"><path fill="none"/></svg>',compile:function(r,e){if(r.attr({"aria-valuemin":0,"aria-valuemax":100,role:"progressbar"}),angular.isUndefined(e.mdMode)){var t=e.hasOwnProperty("value")?v:k;e.$set("mdMode",t)}else e.$set("mdMode",e.mdMode.trim());return a}};function a(p,d,u){var h,r,e=d[0],o=angular.element(e.querySelector("svg")),M=angular.element(e.querySelector("path")),t=P.startIndeterminate,a=P.endIndeterminate,n=0,w=0;function m(t,r,e,a,n,i){var o=++w,s=$.now(),d=r-t,u=D(p.mdDiameter),m=q(u),l=e||P.easeFn,c=a||P.duration,g=-90*(n||0),f=i||100;function v(r){M.attr("stroke-dashoffset",y(u,m,r,f)),M.attr("transform","rotate("+g+" "+u/2+" "+u/2+")")}r===t?v(r):h=I(function r(){var e=C.Math.max(0,C.Math.min($.now()-s,c));v(l(e,t,d,c)),o===w&&e<c&&(h=I(r))})}function i(){m(t,a,P.easeFnIndeterminate,P.durationIndeterminate,n,75),n=++n%4}function l(){r||(r=g(i,P.durationIndeterminate,0,!1),i(),d.addClass(F).removeAttr("aria-valuenow"))}function c(){r&&(g.cancel(r),r=null,d.removeClass(F))}s(d),d.toggleClass(x,u.hasOwnProperty("disabled")),p.mdMode===k&&l(),p.$on("$destroy",function(){c(),h&&f(h)}),p.$watchGroup(["value","mdMode",function(){var r=e.disabled;return!0===r||!1===r?r:angular.isDefined(d.attr("disabled"))}],function(r,e){var t=r[1],a=r[2],n=0,i=0;if(a!==e[2]&&d.toggleClass(x,!!a),a)c();else if(t!==v&&t!==k&&(t=k,u.$set("mdMode",t)),t===k)e[1]===v&&(i=q(n=D(p.mdDiameter)),M.attr("d",b(n,i,!0)),M.attr("stroke-dasharray",(n-i)*C.Math.PI*.75)),l();else{var o=A(r[0]),s=A(e[0]);c(),e[1]===k&&(i=q(n=D(p.mdDiameter)),M.attr("d",b(n,i,!1)),M.attr("stroke-dasharray",(n-i)*C.Math.PI)),d.attr("aria-valuenow",o),m(s,o)}}),p.$watch("mdDiameter",function(r){var e=D(r),t=q(e),a=A(p.value),n=e/2+"px",i={width:e+"px",height:e+"px"};o[0].setAttribute("viewBox","0 0 "+e+" "+e),o.css(i).css("transform-origin",n+" "+n+" "+n),d.css(i),M.attr("stroke-width",t),M.attr("stroke-linecap","square"),p.mdMode==k?(M.attr("d",b(e,t,!0)),M.attr("stroke-dasharray",(e-t)*C.Math.PI*.75),M.attr("stroke-dashoffset",y(e,t,1,75))):(M.attr("d",b(e,t,!1)),M.attr("stroke-dasharray",(e-t)*C.Math.PI),M.attr("stroke-dashoffset",y(e,t,0,100)),m(a,a))})}function b(r,e,t){var a=r/2,n=e/2,i=a+","+n,o=a-n;return"M"+i+"A"+o+","+o+" 0 1 1 "+(n+","+a)+(t?"":"A"+o+","+o+" 0 0 1 "+i)}function y(r,e,t,a){return(r-e)*C.Math.PI*(3*(a||100)/100-t/100)}function A(r){return C.Math.max(0,C.Math.min(r||0,100))}function D(r){var e=P.progressSize;if(r){var t=parseFloat(r);return r.lastIndexOf("%")===r.length-1&&(t=t/100*e),t}return e}function q(r){return P.strokeWidth/100*r}}function MdProgressCircularProvider(){var e={progressSize:50,strokeWidth:10,duration:100,easeFn:r,durationIndeterminate:1333,startIndeterminate:1,endIndeterminate:149,easeFnIndeterminate:t,easingPresets:{linearEase:r,materialEase:t}};return{configure:function(r){return e=angular.extend(e,r||{})},$get:function(){return e}};function r(r,e,t,a){return t*r/a+e}function t(r,e,t,a){var n=(r/=a)*r,i=n*r;return e+t*(6*i*n+-15*n*n+10*i)}}goog.provide("ngmaterial.components.progressCircular"),goog.require("ngmaterial.core"),angular.module("material.components.progressCircular",["material.core"]),MdProgressCircularDirective.$inject=["$window","$mdProgressCircular","$mdTheming","$mdUtil","$interval","$log"],angular.module("material.components.progressCircular").directive("mdProgressCircular",MdProgressCircularDirective),angular.module("material.components.progressCircular").provider("$mdProgressCircular",MdProgressCircularProvider),ngmaterial.components.progressCircular=angular.module("material.components.progressCircular");