angular-svg-round-progressbar
Version:
Angular module that uses SVG to create a circular progressbar
164 lines (157 loc) • 8.14 kB
TypeScript
import * as i0 from '@angular/core';
import { InjectionToken, Provider, OnChanges, ElementRef, EventEmitter, NgZone, SimpleChanges } from '@angular/core';
declare class RoundProgressService {
private base;
private hasPerf;
supportsSvg: boolean;
constructor(document?: Document);
/**
* Resolves a SVG color against the page's `base` tag.
*/
resolveColor(color: string): string;
/**
* Generates a timestamp.
*/
getTimestamp(): number;
/**
* Generates the value for an SVG arc.
*
* @param current Current value.
* @param total Maximum value.
* @param pathRadius Radius of the SVG path.
* @param elementRadius Radius of the SVG container.
* @param isSemicircle Whether the element should be a semicircle.
*/
getArc(current: number, total: number, pathRadius: number, elementRadius: number, isSemicircle?: boolean): string;
/**
* Converts polar cooradinates to Cartesian.
*
* @param elementRadius Radius of the wrapper element.
* @param pathRadius Radius of the path being described.
* @param angleInDegrees Degree to be converted.
*/
private _polarToCartesian;
static ɵfac: i0.ɵɵFactoryDeclaration<RoundProgressService, [{ optional: true; }]>;
static ɵprov: i0.ɵɵInjectableDeclaration<RoundProgressService>;
}
declare const ROUND_PROGRESS_DEFAULTS: InjectionToken<RoundProgressDefaults>;
declare const ROUND_PROGRESS_DEFAULTS_PROVIDER: Provider;
interface RoundProgressDefaults {
radius?: number;
animation?: string;
animationDelay?: number;
duration?: number;
stroke?: number;
color?: string;
background?: string;
responsive?: boolean;
clockwise?: boolean;
semicircle?: boolean;
rounded?: boolean;
innerCircleFill?: string;
}
declare class RoundProgressEase {
linearEase(t: number, b: number, c: number, d: number): number;
easeInQuad(t: number, b: number, c: number, d: number): number;
easeOutQuad(t: number, b: number, c: number, d: number): number;
easeInOutQuad(t: number, b: number, c: number, d: number): number;
easeInCubic(t: number, b: number, c: number, d: number): number;
easeOutCubic(t: number, b: number, c: number, d: number): number;
easeInOutCubic(t: number, b: number, c: number, d: number): number;
easeInQuart(t: number, b: number, c: number, d: number): number;
easeOutQuart(t: number, b: number, c: number, d: number): number;
easeInOutQuart(t: number, b: number, c: number, d: number): number;
easeInQuint(t: number, b: number, c: number, d: number): number;
easeOutQuint(t: number, b: number, c: number, d: number): number;
easeInOutQuint(t: number, b: number, c: number, d: number): number;
easeInSine(t: number, b: number, c: number, d: number): number;
easeOutSine(t: number, b: number, c: number, d: number): number;
easeInOutSine(t: number, b: number, c: number, d: number): number;
easeInExpo(t: number, b: number, c: number, d: number): number;
easeOutExpo(t: number, b: number, c: number, d: number): number;
easeInOutExpo(t: number, b: number, c: number, d: number): number;
easeInCirc(t: number, b: number, c: number, d: number): number;
easeOutCirc(t: number, b: number, c: number, d: number): number;
easeInOutCirc(t: number, b: number, c: number, d: number): number;
easeInElastic(t: number, b: number, c: number, d: number): number;
easeOutElastic(t: number, b: number, c: number, d: number): number;
easeInOutElastic(t: number, b: number, c: number, d: number): number;
easeInBack(t: number, b: number, c: number, d: number, s?: number): number;
easeOutBack(t: number, b: number, c: number, d: number, s?: number): number;
easeInOutBack(t: number, b: number, c: number, d: number, s?: number): number;
easeInBounce(t: number, b: number, c: number, d: number): number;
easeOutBounce(t: number, b: number, c: number, d: number): number;
easeInOutBounce(t: number, b: number, c: number, d: number): number;
static ɵfac: i0.ɵɵFactoryDeclaration<RoundProgressEase, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<RoundProgressEase>;
}
declare class RoundProgressComponent implements OnChanges {
private service;
private easing;
private defaults;
private ngZone;
private currentLinecap;
/** Reference to the underlying `path` node. */
path: ElementRef<SVGPathElement>;
/** Current value of the progress bar. */
current: number;
/** Maximum value of the progress bar. */
max: number;
/** Radius of the circle. */
radius: number;
/** Name of the easing function to use when animating. */
animation: string;
/** Time in millisconds by which to delay the animation. */
animationDelay: number;
/** Duration of the animation. */
duration: number;
/** Width of the circle's stroke. */
stroke: number;
/** Color of the circle. */
color: string;
/** Background color of the circle. */
background: string;
/** Whether the circle should take up the width of its parent. */
responsive: boolean;
/** Whether the circle is filling up clockwise. */
clockwise: boolean;
/** Whether to render a semicircle. */
semicircle: boolean;
/** Whether the tip of the progress should be rounded off. */
rounded: boolean;
/** Fill color of the circle inside the progress bar */
innerCircleFill: string;
/** Emits when a new value has been rendered. */
onRender: EventEmitter<number>;
private lastAnimationId;
constructor(service: RoundProgressService, easing: RoundProgressEase, defaults: RoundProgressDefaults, ngZone: NgZone);
/** Animates a change in the current value. */
private _animateChange;
/** Updates the path apperance. */
private _updatePath;
/** Clamps a value between the maximum and 0. */
private _clamp;
/** Determines the SVG transforms for the <path> node. */
getPathTransform(): string | null;
/** Resolves a color through the service. */
resolveColor(color: string): string;
/** Change detection callback. */
ngOnChanges(changes: SimpleChanges): void;
/** Diameter of the circle. */
_getDiameter(): number;
/** The CSS height of the wrapper element. */
_getElementHeight(): string | null;
/** Viewbox for the SVG element. */
_getViewBox(): string;
/** Bottom padding for the wrapper element. */
_getPaddingBottom(): string | null;
static ɵfac: i0.ɵɵFactoryDeclaration<RoundProgressComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<RoundProgressComponent, "round-progress", never, { "current": { "alias": "current"; "required": false; }; "max": { "alias": "max"; "required": false; }; "radius": { "alias": "radius"; "required": false; }; "animation": { "alias": "animation"; "required": false; }; "animationDelay": { "alias": "animationDelay"; "required": false; }; "duration": { "alias": "duration"; "required": false; }; "stroke": { "alias": "stroke"; "required": false; }; "color": { "alias": "color"; "required": false; }; "background": { "alias": "background"; "required": false; }; "responsive": { "alias": "responsive"; "required": false; }; "clockwise": { "alias": "clockwise"; "required": false; }; "semicircle": { "alias": "semicircle"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; "innerCircleFill": { "alias": "innerCircleFill"; "required": false; }; }, { "onRender": "onRender"; }, never, never, true, never>;
}
declare class RoundProgressModule {
static ɵfac: i0.ɵɵFactoryDeclaration<RoundProgressModule, never>;
static ɵmod: i0.ɵɵNgModuleDeclaration<RoundProgressModule, never, [typeof RoundProgressComponent], [typeof RoundProgressComponent]>;
static ɵinj: i0.ɵɵInjectorDeclaration<RoundProgressModule>;
}
export { ROUND_PROGRESS_DEFAULTS, ROUND_PROGRESS_DEFAULTS_PROVIDER, RoundProgressComponent, RoundProgressEase, RoundProgressModule, RoundProgressService, RoundProgressModule as RoundprogressModule };
export type { RoundProgressDefaults };