ngx-progressbar
Version:
<p align="center"> <img height="200px" width="200px" style="text-align: center;" src="https://gitcdn.xyz/repo/MurhafSousli/ngx-progressbar/master/projects/ngx-progressbar-demo/src/assets/logo.svg"> <h1 align="center">Angular Progressbar</h1> </p>
83 lines • 8.73 kB
JavaScript
import { Injectable, Inject, Optional } from '@angular/core';
import { NgProgressRef } from './ng-progress-ref';
import { NG_PROGRESS_CONFIG } from './ng-progress.interface';
import * as i0 from "@angular/core";
const defaultConfig = {
min: 8,
max: 100,
speed: 200,
debounceTime: 0,
trickleSpeed: 300,
fixed: true,
meteor: true,
thick: false,
spinner: true,
ease: 'linear',
color: '#1B95E0',
direction: 'ltr+',
spinnerPosition: 'right',
trickleFunc: (n) => {
if (n >= 0 && n < 20)
return 10;
if (n >= 20 && n < 50)
return 4;
if (n >= 50 && n < 80)
return 2;
if (n >= 80 && n < 99)
return 0.5;
return 0;
}
};
export class NgProgress {
constructor(config) {
// Store progress bar instances
this._instances = new Map();
this.config = config ? { ...defaultConfig, ...config } : defaultConfig;
}
/**
* Get or Create progress bar by ID
*/
ref(id = 'root', config) {
if (this._instances.has(id)) {
// Get ProgressRef instance
const progressRef = this._instances.get(id);
if (config) {
progressRef.setConfig({ ...this.config, ...config });
}
return progressRef;
}
else {
// Create new ProgressRef instance
const progressRef = new NgProgressRef({ ...this.config, ...config }, this.deleteInstance(id));
return this._instances.set(id, progressRef).get(id);
}
}
/**
* Destroy all progress bar instances
*/
destroyAll() {
this._instances.forEach((ref) => ref.destroy());
}
/**
* A destroyer function for each progress bar instance
*/
deleteInstance(id) {
return () => {
this._instances.delete(id);
};
}
}
NgProgress.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgProgress, deps: [{ token: NG_PROGRESS_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
NgProgress.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgProgress, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgProgress, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
type: Optional
}, {
type: Inject,
args: [NG_PROGRESS_CONFIG]
}] }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctcHJvZ3Jlc3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1wcm9ncmVzc2Jhci9zcmMvbGliL25nLXByb2dyZXNzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQW9DLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRS9GLE1BQU0sYUFBYSxHQUFtQjtJQUNwQyxHQUFHLEVBQUUsQ0FBQztJQUNOLEdBQUcsRUFBRSxHQUFHO0lBQ1IsS0FBSyxFQUFFLEdBQUc7SUFDVixZQUFZLEVBQUUsQ0FBQztJQUNmLFlBQVksRUFBRSxHQUFHO0lBQ2pCLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEVBQUUsS0FBSztJQUNaLE9BQU8sRUFBRSxJQUFJO0lBQ2IsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsU0FBUztJQUNoQixTQUFTLEVBQUUsTUFBTTtJQUNqQixlQUFlLEVBQUUsT0FBTztJQUN4QixXQUFXLEVBQUUsQ0FBQyxDQUFTLEVBQVUsRUFBRTtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUNsQyxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7Q0FDRixDQUFDO0FBS0YsTUFBTSxPQUFPLFVBQVU7SUFRckIsWUFBb0QsTUFBd0I7UUFONUUsK0JBQStCO1FBQ2QsZUFBVSxHQUFHLElBQUksR0FBRyxFQUF5QixDQUFDO1FBTTdELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsYUFBYSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxNQUF5QjtRQUN4QyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzNCLDJCQUEyQjtZQUMzQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQWtCLENBQUM7WUFDN0QsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7YUFDdEQ7WUFDRCxPQUFPLFdBQTRCLENBQUM7U0FDckM7YUFBTTtZQUNMLGtDQUFrQztZQUNsQyxNQUFNLFdBQVcsR0FBRyxJQUFJLGFBQWEsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM5RixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFrQixDQUFDO1NBQ3RFO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBa0IsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVEOztPQUVHO0lBQ0ssY0FBYyxDQUFDLEVBQVU7UUFDL0IsT0FBTyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUM7SUFDSixDQUFDOzt1R0E1Q1UsVUFBVSxrQkFRVyxrQkFBa0I7MkdBUnZDLFVBQVUsY0FGVCxNQUFNOzJGQUVQLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFTYyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdQcm9ncmVzc1JlZiB9IGZyb20gJy4vbmctcHJvZ3Jlc3MtcmVmJztcclxuaW1wb3J0IHsgTmdQcm9ncmVzc0NvbmZpZywgUHJvZ3Jlc3NDb25maWcsIE5HX1BST0dSRVNTX0NPTkZJRyB9IGZyb20gJy4vbmctcHJvZ3Jlc3MuaW50ZXJmYWNlJztcclxuXHJcbmNvbnN0IGRlZmF1bHRDb25maWc6IFByb2dyZXNzQ29uZmlnID0ge1xyXG4gIG1pbjogOCxcclxuICBtYXg6IDEwMCxcclxuICBzcGVlZDogMjAwLFxyXG4gIGRlYm91bmNlVGltZTogMCxcclxuICB0cmlja2xlU3BlZWQ6IDMwMCxcclxuICBmaXhlZDogdHJ1ZSxcclxuICBtZXRlb3I6IHRydWUsXHJcbiAgdGhpY2s6IGZhbHNlLFxyXG4gIHNwaW5uZXI6IHRydWUsXHJcbiAgZWFzZTogJ2xpbmVhcicsXHJcbiAgY29sb3I6ICcjMUI5NUUwJyxcclxuICBkaXJlY3Rpb246ICdsdHIrJyxcclxuICBzcGlubmVyUG9zaXRpb246ICdyaWdodCcsXHJcbiAgdHJpY2tsZUZ1bmM6IChuOiBudW1iZXIpOiBudW1iZXIgPT4ge1xyXG4gICAgaWYgKG4gPj0gMCAmJiBuIDwgMjApIHJldHVybiAxMDtcclxuICAgIGlmIChuID49IDIwICYmIG4gPCA1MCkgcmV0dXJuIDQ7XHJcbiAgICBpZiAobiA+PSA1MCAmJiBuIDwgODApIHJldHVybiAyO1xyXG4gICAgaWYgKG4gPj0gODAgJiYgbiA8IDk5KSByZXR1cm4gMC41O1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG59O1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdQcm9ncmVzcyB7XHJcblxyXG4gIC8vIFN0b3JlIHByb2dyZXNzIGJhciBpbnN0YW5jZXNcclxuICBwcml2YXRlIHJlYWRvbmx5IF9pbnN0YW5jZXMgPSBuZXcgTWFwPHN0cmluZywgTmdQcm9ncmVzc1JlZj4oKTtcclxuXHJcbiAgLy8gR2xvYmFsIGNvbmZpZ1xyXG4gIGNvbmZpZzogUHJvZ3Jlc3NDb25maWc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoTkdfUFJPR1JFU1NfQ09ORklHKSBjb25maWc6IE5nUHJvZ3Jlc3NDb25maWcpIHtcclxuICAgIHRoaXMuY29uZmlnID0gY29uZmlnID8geyAuLi5kZWZhdWx0Q29uZmlnLCAuLi5jb25maWcgfSA6IGRlZmF1bHRDb25maWc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgb3IgQ3JlYXRlIHByb2dyZXNzIGJhciBieSBJRFxyXG4gICAqL1xyXG4gIHJlZihpZCA9ICdyb290JywgY29uZmlnPzogTmdQcm9ncmVzc0NvbmZpZyk6IE5nUHJvZ3Jlc3NSZWYge1xyXG4gICAgaWYgKHRoaXMuX2luc3RhbmNlcy5oYXMoaWQpKSB7XHJcbiAgICAgIC8vIEdldCBQcm9ncmVzc1JlZiBpbnN0YW5jZVxyXG4gICAgICBjb25zdCBwcm9ncmVzc1JlZiA9IHRoaXMuX2luc3RhbmNlcy5nZXQoaWQpIGFzIE5nUHJvZ3Jlc3NSZWY7XHJcbiAgICAgIGlmIChjb25maWcpIHtcclxuICAgICAgICBwcm9ncmVzc1JlZi5zZXRDb25maWcoeyAuLi50aGlzLmNvbmZpZywgLi4uY29uZmlnIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBwcm9ncmVzc1JlZiBhcyBOZ1Byb2dyZXNzUmVmO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gQ3JlYXRlIG5ldyBQcm9ncmVzc1JlZiBpbnN0YW5jZVxyXG4gICAgICBjb25zdCBwcm9ncmVzc1JlZiA9IG5ldyBOZ1Byb2dyZXNzUmVmKHsgLi4udGhpcy5jb25maWcsIC4uLmNvbmZpZyB9LCB0aGlzLmRlbGV0ZUluc3RhbmNlKGlkKSk7XHJcbiAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZXMuc2V0KGlkLCBwcm9ncmVzc1JlZikuZ2V0KGlkKSBhcyBOZ1Byb2dyZXNzUmVmO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVzdHJveSBhbGwgcHJvZ3Jlc3MgYmFyIGluc3RhbmNlc1xyXG4gICAqL1xyXG4gIGRlc3Ryb3lBbGwoKSB7XHJcbiAgICB0aGlzLl9pbnN0YW5jZXMuZm9yRWFjaCgocmVmOiBOZ1Byb2dyZXNzUmVmKSA9PiByZWYuZGVzdHJveSgpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEEgZGVzdHJveWVyIGZ1bmN0aW9uIGZvciBlYWNoIHByb2dyZXNzIGJhciBpbnN0YW5jZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZGVsZXRlSW5zdGFuY2UoaWQ6IHN0cmluZyk6ICgpID0+IHZvaWQge1xyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgdGhpcy5faW5zdGFuY2VzLmRlbGV0ZShpZCk7XHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=