{"version":3,"sources":["./node_modules/angular-svg-round-progressbar/__ivy_ngcc__/fesm2015/angular-svg-round-progressbar.js"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyM;AAC9J;;AAEH;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM,KAAK,WAAW,GAAG,WAAW,KAAK,SAAS,KAAK,IAAI;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,wCAAwC,sDAAe,CAAC,wDAAQ,MAAM;AAC5I,6BAA6B,wEAAkB,EAAE,mDAAmD,iCAAiC,8DAAQ,CAAC,wDAAQ,MAAM,EAAE,mDAAmD;AACjN;AACA,KAAK,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,SAAS,wDAAQ,IAAI;AAC3F;AACA,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;;AAE9B,oCAAoC,4DAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,uCAAuC;AACvG,0BAA0B,wEAAkB,EAAE,gDAAgD,gCAAgC,EAAE,gDAAgD;AAChL,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,eAAe,EAAE;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4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","file":"default~dashboard-dashboard-module~profile-profile-module.js","sourcesContent":["import { ɵɵdefineInjectable, ɵɵinject, Injectable, Optional, Inject, InjectionToken, EventEmitter, Component, ChangeDetectionStrategy, NgZone, ViewChild, Input, Output, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport * as ɵngcc0 from '@angular/core';\n\nconst _c0 = [\"path\"];\nconst DEGREE_IN_RADIANS = Math.PI / 180;\r\nclass RoundProgressService {\r\n constructor(document) {\r\n this.supportsSvg = !!(document &&\r\n document.createElementNS &&\r\n document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect);\r\n this.base = document && document.head.querySelector('base');\r\n this.hasPerf =\r\n typeof window !== 'undefined' &&\r\n window.performance &&\r\n window.performance.now &&\r\n typeof window.performance.now() === 'number';\r\n }\r\n /**\r\n * Resolves a SVG color against the page's `base` tag.\r\n */\r\n resolveColor(color) {\r\n if (this.base && this.base.href) {\r\n const hashIndex = color.indexOf('#');\r\n if (hashIndex > -1 && color.indexOf('url') > -1) {\r\n return color.slice(0, hashIndex) + location.href + color.slice(hashIndex);\r\n }\r\n }\r\n return color;\r\n }\r\n /**\r\n * Generates a timestamp.\r\n */\r\n getTimestamp() {\r\n return this.hasPerf ? window.performance.now() : Date.now();\r\n }\r\n /**\r\n * Generates the value for an SVG arc.\r\n * @param current Current value.\r\n * @param total Maximum value.\r\n * @param pathRadius Radius of the SVG path.\r\n * @param elementRadius Radius of the SVG container.\r\n * @param isSemicircle Whether the element should be a semicircle.\r\n */\r\n getArc(current, total, pathRadius, elementRadius, isSemicircle = false) {\r\n const value = Math.max(0, Math.min(current || 0, total));\r\n const maxAngle = isSemicircle ? 180 : 359.9999;\r\n const percentage = total === 0 ? maxAngle : (value / total) * maxAngle;\r\n const start = this._polarToCartesian(elementRadius, pathRadius, percentage);\r\n const end = this._polarToCartesian(elementRadius, pathRadius, 0);\r\n const arcSweep = percentage <= 180 ? 0 : 1;\r\n return `M ${start} A ${pathRadius} ${pathRadius} 0 ${arcSweep} 0 ${end}`;\r\n }\r\n /**\r\n * Converts polar cooradinates to Cartesian.\r\n * @param elementRadius Radius of the wrapper element.\r\n * @param pathRadius Radius of the path being described.\r\n * @param angleInDegrees Degree to be converted.\r\n */\r\n _polarToCartesian(elementRadius, pathRadius, angleInDegrees) {\r\n const angleInRadians = (angleInDegrees - 90) * DEGREE_IN_RADIANS;\r\n const x = elementRadius + pathRadius * Math.cos(angleInRadians);\r\n const y = elementRadius + pathRadius * Math.sin(angleInRadians);\r\n return x + ' ' + y;\r\n }\r\n}\nRoundProgressService.ɵfac = function RoundProgressService_Factory(t) { return new (t || RoundProgressService)(ɵngcc0.ɵɵinject(DOCUMENT, 8)); };\r\nRoundProgressService.ɵprov = ɵɵdefineInjectable({ factory: function RoundProgressService_Factory() { return new RoundProgressService(ɵɵinject(DOCUMENT, 8)); }, token: RoundProgressService, providedIn: \"root\" });\r\nRoundProgressService.ctorParameters = () => [\r\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] }] }\r\n];\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(RoundProgressService, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, null); })();\n\nconst ROUND_PROGRESS_DEFAULTS = new InjectionToken('ROUND_PROGRESS_DEFAULTS');\r\nconst ɵ0 = {\r\n radius: 125,\r\n animation: 'easeOutCubic',\r\n animationDelay: null,\r\n duration: 500,\r\n stroke: 15,\r\n color: '#45CCCE',\r\n background: '#EAEAEA',\r\n responsive: false,\r\n clockwise: true,\r\n semicircle: false,\r\n rounded: false,\r\n};\r\nconst ROUND_PROGRESS_DEFAULTS_PROVIDER = {\r\n provide: ROUND_PROGRESS_DEFAULTS,\r\n useValue: ɵ0,\r\n};\n\n/**\r\n * TERMS OF USE - EASING EQUATIONS\r\n * Open source under the BSD License.\r\n *\r\n * Copyright © 2001 Robert Penner\r\n * All rights reserved.\r\n * Redistribution and use in source and binary forms, with or without modification, are permitted\r\n * provided that the following conditions are met:\r\n *\r\n * Redistributions of source code must retain the above copyright notice, this list of conditions\r\n * and the following disclaimer.\r\n *\r\n * Redistributions in binary form must reproduce the above copyright notice, this list of conditions\r\n * and the following disclaimer in the documentation and/or other materials provided with the\r\n * distribution.\r\n *\r\n * Neither the name of the author nor the names of contributors may be used to endorse or promote\r\n * products derived from this software without specific prior written permission.\r\n *\r\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR\r\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\r\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\r\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\r\n * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n */\r\nclass RoundProgressEase {\r\n // t: current time (or position) of the neonate. This can be seconds or frames, steps,\r\n // seconds, ms, whatever – as long as the unit is the same as is used for the total time.\r\n // b: beginning value of the property.\r\n // c: change between the beginning and destination value of the property.\r\n // d: total time of the neonate.\r\n linearEase(t, b, c, d) {\r\n return (c * t) / d + b;\r\n }\r\n easeInQuad(t, b, c, d) {\r\n return c * (t /= d) * t + b;\r\n }\r\n easeOutQuad(t, b, c, d) {\r\n return -c * (t /= d) * (t - 2) + b;\r\n }\r\n easeInOutQuad(t, b, c, d) {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if ((t /= d / 2) < 1) {\r\n return (c / 2) * t * t + b;\r\n }\r\n return (-c / 2) * (--t * (t - 2) - 1) + b;\r\n }\r\n easeInCubic(t, b, c, d) {\r\n return c * (t /= d) * t * t + b;\r\n }\r\n easeOutCubic(t, b, c, d) {\r\n return c * ((t = t / d - 1) * t * t + 1) + b;\r\n }\r\n easeInOutCubic(t, b, c, d) {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if ((t /= d / 2) < 1) {\r\n return (c / 2) * t * t * t + b;\r\n }\r\n return (c / 2) * ((t -= 2) * t * t + 2) + b;\r\n }\r\n easeInQuart(t, b, c, d) {\r\n return c * (t /= d) * t * t * t + b;\r\n }\r\n easeOutQuart(t, b, c, d) {\r\n return -c * ((t = t / d - 1) * t * t * t - 1) + b;\r\n }\r\n easeInOutQuart(t, b, c, d) {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if ((t /= d / 2) < 1) {\r\n return (c / 2) * t * t * t * t + b;\r\n }\r\n return (-c / 2) * ((t -= 2) * t * t * t - 2) + b;\r\n }\r\n easeInQuint(t, b, c, d) {\r\n return c * (t /= d) * t * t * t * t + b;\r\n }\r\n easeOutQuint(t, b, c, d) {\r\n return c * ((t = t / d - 1) * t * t * t * t + 1) + b;\r\n }\r\n easeInOutQuint(t, b, c, d) {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if ((t /= d / 2) < 1) {\r\n return (c / 2) * t * t * t * t * t + b;\r\n }\r\n return (c / 2) * ((t -= 2) * t * t * t * t + 2) + b;\r\n }\r\n easeInSine(t, b, c, d) {\r\n return -c * Math.cos((t / d) * (Math.PI / 2)) + c + b;\r\n }\r\n easeOutSine(t, b, c, d) {\r\n return c * Math.sin((t / d) * (Math.PI / 2)) + b;\r\n }\r\n easeInOutSine(t, b, c, d) {\r\n return (-c / 2) * (Math.cos((Math.PI * t) / d) - 1) + b;\r\n }\r\n easeInExpo(t, b, c, d) {\r\n return t === 0 ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;\r\n }\r\n easeOutExpo(t, b, c, d) {\r\n return t === d ? b + c : c * (-Math.pow(2, (-10 * t) / d) + 1) + b;\r\n }\r\n easeInOutExpo(t, b, c, d) {\r\n if (t === 0) {\r\n return b;\r\n }\r\n if (t === d) {\r\n return b + c;\r\n }\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if ((t /= d / 2) < 1) {\r\n return (c / 2) * Math.pow(2, 10 * (t - 1)) + b;\r\n }\r\n return (c / 2) * (-Math.pow(2, -10 * --t) + 2) + b;\r\n }\r\n easeInCirc(t, b, c, d) {\r\n return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;\r\n }\r\n easeOutCirc(t, b, c, d) {\r\n return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;\r\n }\r\n easeInOutCirc(t, b, c, d) {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if ((t /= d / 2) < 1) {\r\n return (-c / 2) * (Math.sqrt(1 - t * t) - 1) + b;\r\n }\r\n return (c / 2) * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;\r\n }\r\n easeInElastic(t, b, c, d) {\r\n const p = d * 0.3;\r\n let s = 1.70158;\r\n let a = c;\r\n if (t === 0) {\r\n return b;\r\n }\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if ((t /= d) === 1) {\r\n return b + c;\r\n }\r\n if (a < Math.abs(c)) {\r\n a = c;\r\n s = p / 4;\r\n }\r\n else {\r\n s = (p / (2 * Math.PI)) * Math.asin(c / a);\r\n }\r\n return -(a * Math.pow(2, 10 * t--) * Math.sin(((t * d - s) * (2 * Math.PI)) / p)) + b;\r\n }\r\n easeOutElastic(t, b, c, d) {\r\n const p = d * 0.3;\r\n let s = 1.70158;\r\n let a = c;\r\n if (t === 0) {\r\n return b;\r\n }\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if ((t /= d) === 1) {\r\n return b + c;\r\n }\r\n if (a < Math.abs(c)) {\r\n a = c;\r\n s = p / 4;\r\n }\r\n else {\r\n s = (p / (2 * Math.PI)) * Math.asin(c / a);\r\n }\r\n return a * Math.pow(2, -10 * t) * Math.sin(((t * d - s) * (2 * Math.PI)) / p) + c + b;\r\n }\r\n easeInOutElastic(t, b, c, d) {\r\n const p = d * (0.3 * 1.5);\r\n let s = 1.70158;\r\n let a = c;\r\n if (t === 0) {\r\n return b;\r\n }\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if ((t /= d / 2) === 2) {\r\n return b + c;\r\n }\r\n if (a < Math.abs(c)) {\r\n a = c;\r\n s = p / 4;\r\n }\r\n else {\r\n s = (p / (2 * Math.PI)) * Math.asin(c / a);\r\n }\r\n if (t < 1) {\r\n return -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin(((t * d - s) * (2 * Math.PI)) / p)) + b;\r\n }\r\n return a * Math.pow(2, -10 * (t -= 1)) * Math.sin(((t * d - s) * (2 * Math.PI)) / p) * 0.5 + c + b;\r\n }\r\n easeInBack(t, b, c, d, s = 1.70158) {\r\n return c * (t /= d) * t * ((s + 1) * t - s) + b;\r\n }\r\n easeOutBack(t, b, c, d, s = 1.70158) {\r\n return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\r\n }\r\n easeInOutBack(t, b, c, d, s = 1.70158) {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if ((t /= d / 2) < 1) {\r\n return (c / 2) * (t * t * (((s *= 1.525) + 1) * t - s)) + b;\r\n }\r\n return (c / 2) * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + b;\r\n }\r\n easeInBounce(t, b, c, d) {\r\n return c - this.easeOutBounce(d - t, 0, c, d) + b;\r\n }\r\n easeOutBounce(t, b, c, d) {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if ((t /= d) < 1 / 2.75) {\r\n return c * (7.5625 * t * t) + b;\r\n }\r\n else if (t < 2 / 2.75) {\r\n return c * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) + b;\r\n }\r\n else if (t < 2.5 / 2.75) {\r\n return c * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) + b;\r\n }\r\n return c * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375) + b;\r\n }\r\n easeInOutBounce(t, b, c, d) {\r\n if (t < d / 2) {\r\n return this.easeInBounce(t * 2, 0, c, d) * 0.5 + b;\r\n }\r\n return this.easeOutBounce(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;\r\n }\r\n}\nRoundProgressEase.ɵfac = function RoundProgressEase_Factory(t) { return new (t || RoundProgressEase)(); };\r\nRoundProgressEase.ɵprov = ɵɵdefineInjectable({ factory: function RoundProgressEase_Factory() { return new RoundProgressEase(); }, token: RoundProgressEase, providedIn: \"root\" });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(RoundProgressEase, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], null, null); })();\n\nclass RoundProgressComponent {\r\n constructor(service, easing, defaults, ngZone) {\r\n this.service = service;\r\n this.easing = easing;\r\n this.defaults = defaults;\r\n this.ngZone = ngZone;\r\n /** Radius of the circle. */\r\n this.radius = this.defaults.radius;\r\n /** Name of the easing function to use when animating. */\r\n this.animation = this.defaults.animation;\r\n /** Time in millisconds by which to delay the animation. */\r\n this.animationDelay = this.defaults.animationDelay;\r\n /** Duration of the animation. */\r\n this.duration = this.defaults.duration;\r\n /** Width of the circle's stroke. */\r\n this.stroke = this.defaults.stroke;\r\n /** Color of the circle. */\r\n this.color = this.defaults.color;\r\n /** Background color of the circle. */\r\n this.background = this.defaults.background;\r\n /** Whether the circle should take up the width of its parent. */\r\n this.responsive = this.defaults.responsive;\r\n /** Whether the circle is filling up clockwise. */\r\n this.clockwise = this.defaults.clockwise;\r\n /** Whether to render a semicircle. */\r\n this.semicircle = this.defaults.semicircle;\r\n /** Whether the tip of the progress should be rounded off. */\r\n this.rounded = this.defaults.rounded;\r\n /** Emits when a new value has been rendered. */\r\n this.onRender = new EventEmitter();\r\n this.lastAnimationId = 0;\r\n }\r\n /** Animates a change in the current value. */\r\n _animateChange(from, to) {\r\n if (typeof from !== 'number') {\r\n from = 0;\r\n }\r\n to = this._clamp(to);\r\n from = this._clamp(from);\r\n const self = this;\r\n const changeInValue = to - from;\r\n const duration = self.duration;\r\n // Avoid firing change detection for each of the animation frames.\r\n self.ngZone.runOutsideAngular(() => {\r\n const start = () => {\r\n const startTime = self.service.getTimestamp();\r\n const id = ++self.lastAnimationId;\r\n requestAnimationFrame(function animation() {\r\n const currentTime = Math.min(self.service.getTimestamp() - startTime, duration);\r\n const value = self.easing[self.animation](currentTime, from, changeInValue, duration);\r\n self._setPath(value);\r\n self.onRender.emit(value);\r\n if (id === self.lastAnimationId && currentTime < duration) {\r\n requestAnimationFrame(animation);\r\n }\r\n });\r\n };\r\n if (this.animationDelay > 0) {\r\n setTimeout(start, this.animationDelay);\r\n }\r\n else {\r\n start();\r\n }\r\n });\r\n }\r\n /** Sets the path dimensions. */\r\n _setPath(value) {\r\n if (this.path) {\r\n const arc = this.service.getArc(value, this.max, this.radius - this.stroke / 2, this.radius, this.semicircle);\r\n this.path.nativeElement.setAttribute('d', arc);\r\n }\r\n }\r\n /** Clamps a value between the maximum and 0. */\r\n _clamp(value) {\r\n return Math.max(0, Math.min(value || 0, this.max));\r\n }\r\n /** Determines the SVG transforms for the node. */\r\n getPathTransform() {\r\n const diameter = this._getDiameter();\r\n if (this.semicircle) {\r\n return this.clockwise\r\n ? `translate(0, ${diameter}) rotate(-90)`\r\n : `translate(${diameter + ',' + diameter}) rotate(90) scale(-1, 1)`;\r\n }\r\n else if (!this.clockwise) {\r\n return `scale(-1, 1) translate(-${diameter} 0)`;\r\n }\r\n }\r\n /** Resolves a color through the service. */\r\n resolveColor(color) {\r\n return this.service.resolveColor(color);\r\n }\r\n /** Change detection callback. */\r\n ngOnChanges(changes) {\r\n if (changes.current) {\r\n this._animateChange(changes.current.previousValue, changes.current.currentValue);\r\n }\r\n else {\r\n this._setPath(this.current);\r\n }\r\n }\r\n /** Diameter of the circle. */\r\n _getDiameter() {\r\n return this.radius * 2;\r\n }\r\n /** The CSS height of the wrapper element. */\r\n _getElementHeight() {\r\n if (!this.responsive) {\r\n return (this.semicircle ? this.radius : this._getDiameter()) + 'px';\r\n }\r\n }\r\n /** Viewbox for the SVG element. */\r\n _getViewBox() {\r\n const diameter = this._getDiameter();\r\n return `0 0 ${diameter} ${this.semicircle ? this.radius : diameter}`;\r\n }\r\n /** Bottom padding for the wrapper element. */\r\n _getPaddingBottom() {\r\n if (this.responsive) {\r\n return this.semicircle ? '50%' : '100%';\r\n }\r\n }\r\n}\nRoundProgressComponent.ɵfac = function RoundProgressComponent_Factory(t) { return new (t || RoundProgressComponent)(ɵngcc0.ɵɵdirectiveInject(RoundProgressService), ɵngcc0.ɵɵdirectiveInject(RoundProgressEase), ɵngcc0.ɵɵdirectiveInject(ROUND_PROGRESS_DEFAULTS), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nRoundProgressComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: RoundProgressComponent, selectors: [[\"round-progress\"]], viewQuery: function RoundProgressComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, true);\n } if (rf & 2) {\n var _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.path = _t.first);\n } }, hostAttrs: [\"role\", \"progressbar\"], hostVars: 10, hostBindings: function RoundProgressComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-valuemin\", ctx.current)(\"aria-valuemax\", ctx.max);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx.responsive ? \"\" : ctx._getDiameter() + \"px\")(\"height\", ctx._getElementHeight())(\"padding-bottom\", ctx._getPaddingBottom());\n ɵngcc0.ɵɵclassProp(\"responsive\", ctx.responsive);\n } }, inputs: { radius: \"radius\", animation: \"animation\", animationDelay: \"animationDelay\", duration: \"duration\", stroke: \"stroke\", color: \"color\", background: \"background\", responsive: \"responsive\", clockwise: \"clockwise\", semicircle: \"semicircle\", rounded: \"rounded\", current: \"current\", max: \"max\" }, outputs: { onRender: \"onRender\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 4, vars: 15, consts: [[\"xmlns\", \"http://www.w3.org/2000/svg\"], [\"fill\", \"none\"], [\"path\", \"\"]], template: function RoundProgressComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵnamespaceSVG();\n ɵngcc0.ɵɵelementStart(0, \"svg\", 0);\n ɵngcc0.ɵɵelement(1, \"circle\", 1);\n ɵngcc0.ɵɵelement(2, \"path\", 1, 2);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"viewBox\", ctx._getViewBox());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"stroke\", ctx.resolveColor(ctx.background))(\"stroke-width\", ctx.stroke);\n ɵngcc0.ɵɵattribute(\"cx\", ctx.radius)(\"cy\", ctx.radius)(\"r\", ctx.radius - ctx.stroke / 2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"stroke-width\", ctx.stroke)(\"stroke\", ctx.resolveColor(ctx.color))(\"stroke-linecap\", ctx.rounded ? \"round\" : \"\");\n ɵngcc0.ɵɵattribute(\"transform\", ctx.getPathTransform());\n } }, styles: [\"[_nghost-%COMP%]{display:block;overflow:hidden;position:relative}.responsive[_nghost-%COMP%]{padding-bottom:100%;width:100%}.responsive[_nghost-%COMP%] > svg[_ngcontent-%COMP%]{height:100%;left:0;position:absolute;top:0;width:100%}\"], changeDetection: 0 });\r\nRoundProgressComponent.ctorParameters = () => [\r\n { type: RoundProgressService },\r\n { type: RoundProgressEase },\r\n { type: undefined, decorators: [{ type: Inject, args: [ROUND_PROGRESS_DEFAULTS,] }] },\r\n { type: NgZone }\r\n];\r\nRoundProgressComponent.propDecorators = {\r\n path: [{ type: ViewChild, args: ['path',] }],\r\n current: [{ type: Input }],\r\n max: [{ type: Input }],\r\n radius: [{ type: Input }],\r\n animation: [{ type: Input }],\r\n animationDelay: [{ type: Input }],\r\n duration: [{ type: Input }],\r\n stroke: [{ type: Input }],\r\n color: [{ type: Input }],\r\n background: [{ type: Input }],\r\n responsive: [{ type: Input }],\r\n clockwise: [{ type: Input }],\r\n semicircle: [{ type: Input }],\r\n rounded: [{ type: Input }],\r\n onRender: [{ type: Output }]\r\n};\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(RoundProgressComponent, [{\n type: Component,\n args: [{\n selector: 'round-progress',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n \\n\\n \\n\\n\",\n host: {\n role: 'progressbar',\n '[attr.aria-valuemin]': 'current',\n '[attr.aria-valuemax]': 'max',\n '[style.width]': 'responsive ? \"\" : _getDiameter() + \"px\"',\n '[style.height]': '_getElementHeight()',\n '[style.padding-bottom]': '_getPaddingBottom()',\n '[class.responsive]': 'responsive'\n },\n styles: [\":host{display:block;overflow:hidden;position:relative}:host(.responsive){padding-bottom:100%;width:100%}:host(.responsive)>svg{height:100%;left:0;position:absolute;top:0;width:100%}\"]\n }]\n }], function () { return [{ type: RoundProgressService }, { type: RoundProgressEase }, { type: undefined, decorators: [{\n type: Inject,\n args: [ROUND_PROGRESS_DEFAULTS]\n }] }, { type: ɵngcc0.NgZone }]; }, { radius: [{\n type: Input\n }], animation: [{\n type: Input\n }], animationDelay: [{\n type: Input\n }], duration: [{\n type: Input\n }], stroke: [{\n type: Input\n }], color: [{\n type: Input\n }], background: [{\n type: Input\n }], responsive: [{\n type: Input\n }], clockwise: [{\n type: Input\n }], semicircle: [{\n type: Input\n }], rounded: [{\n type: Input\n }], onRender: [{\n type: Output\n }], path: [{\n type: ViewChild,\n args: ['path']\n }], current: [{\n type: Input\n }], max: [{\n type: Input\n }] }); })();\n\nclass RoundProgressModule {\r\n}\nRoundProgressModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: RoundProgressModule });\nRoundProgressModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function RoundProgressModule_Factory(t) { return new (t || RoundProgressModule)(); }, providers: [ROUND_PROGRESS_DEFAULTS_PROVIDER] });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(RoundProgressModule, { declarations: [RoundProgressComponent], exports: [RoundProgressComponent] }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(RoundProgressModule, [{\n type: NgModule,\n args: [{\n declarations: [RoundProgressComponent],\n exports: [RoundProgressComponent],\n providers: [ROUND_PROGRESS_DEFAULTS_PROVIDER]\n }]\n }], null, null); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { ROUND_PROGRESS_DEFAULTS, ROUND_PROGRESS_DEFAULTS_PROVIDER, RoundProgressComponent, RoundProgressEase, RoundProgressModule, RoundProgressService, RoundProgressModule as RoundprogressModule, ɵ0 };\n\n//# sourceMappingURL=angular-svg-round-progressbar.js.map"],"sourceRoot":"webpack:///"}