UNPKG

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
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=