{"version":3,"file":"ngx-simple-progress-bar.mjs","sources":["../../../projects/ngx-simple-progress-bar/src/lib/models.ts","../../../projects/ngx-simple-progress-bar/src/lib/ngx-simple-progress-bar.service.ts","../../../projects/ngx-simple-progress-bar/src/lib/ngx-simple-progress-bar.component.ts","../../../projects/ngx-simple-progress-bar/src/lib/ngx-simple-progress-bar.module.ts","../../../projects/ngx-simple-progress-bar/src/lib/ngx-simple-progress-bar-standalone.component.ts","../../../projects/ngx-simple-progress-bar/src/public-api.ts","../../../projects/ngx-simple-progress-bar/src/ngx-simple-progress-bar.ts"],"sourcesContent":["export enum ProgressBarType {\n    CLASSIC = 'classic',\n    ROUNDED = 'rounded',\n    SQUARE = 'square'\n}\n\nexport class ProgressBarEvent {\n    constructor(public percent: number) {\n    }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { interval, Observable, Subject, Subscription } from 'rxjs';\nimport { ProgressBarEvent } from './models';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class NgxSimpleProgressBarService implements OnDestroy {\n    readonly progressEvent = new Subject<ProgressBarEvent>();\n    private readonly DEFAULT_SPEED = 50;\n    private readonly COMPLETION_SPEED = 5;\n    private readonly MAX_PERCENT = 100;\n    private readonly MIN_PERCENT = 0;\n    private percent = this.MIN_PERCENT;\n    private speed?: number;\n    private counter?: Observable<number>;\n    private subscription: Subscription | null = null;\n\n    ngOnDestroy(): void {\n        this.stopProgress();\n    }\n\n    /**\n     * The method launches the progressbar from the specified (or default) initial percentage\n     * at the specified (or default) rate.\n     *\n     * @param percent - the initial percentage value to start from; optional, default: 0\n     * @param speed - the number of milliseconds at which rate our percent is increased by 1; optional, default: 50ms\n     */\n    startProgress(percent = this.MIN_PERCENT, speed = this.DEFAULT_SPEED): void {\n        this.percent = this.MIN_PERCENT < this.percent ? this.percent : percent;\n        this.speed = speed;\n        this.increasePercent();\n    }\n\n    /**\n     * The method stops the progress.\n     */\n    stopProgress(): void {\n        if (this.subscription) {\n            this.subscription.unsubscribe();\n            this.subscription = null;\n        }\n    }\n\n    /**\n     * The method resets the value of the progressbar to 0%.\n     * (It does not stop the progress, it will restart from 0%.)\n     */\n    resetProgress(): void {\n        this.percent = 0;\n        this.progressEvent.next(new ProgressBarEvent(this.percent));\n    }\n\n    /**\n     * The method speeds up the progress (1 percent increase every 5 milliseconds)\n     * and the progress stops at 100%.\n     */\n    completeProgress(): void {\n        this.speed = this.COMPLETION_SPEED;\n        if (this.subscription) {\n            this.subscription.unsubscribe();\n            this.subscription = null;\n        }\n        this.increasePercent();\n    }\n\n    private increasePercent(): Observable<void> | undefined {\n        if (this.subscription || this.MAX_PERCENT === this.percent) {\n            return;\n        }\n        this.counter = interval(this.speed);\n        this.subscription = this.counter.subscribe(() => {\n            this.percent++;\n            this.progressEvent.next(new ProgressBarEvent(this.percent));\n            if (this.MAX_PERCENT === this.percent) {\n                this.stopProgress();\n            }\n        });\n    }\n}\n","import { ChangeDetectionStrategy, Component, computed, DestroyRef, inject, input, model, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ProgressBarEvent, ProgressBarType } from './models';\nimport { NgxSimpleProgressBarService } from './ngx-simple-progress-bar.service';\n\n@Component({\n    selector: 'ngx-simple-progress-bar',\n    template: `\n        <div [class]=\"progressBarType()\" class=\"outer-bar\" [style]=\"{backgroundColor: backgroundColor(), height: resolvedHeight()}\">\n            <div class=\"inner-bar\" [style]=\"{backgroundColor: color(), width: width()}\"></div>\n        </div>\n    `,\n    styleUrls: ['./ngx-simple-progress-bar.component.css'],\n    standalone: false,\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgxSimpleProgressBarComponent implements OnInit {\n    progressBarType = input<ProgressBarType>(ProgressBarType.CLASSIC);\n    color = input<string>('#4d94f7');\n    backgroundColor = input<string>('#efefef');\n    height = input<string>('');\n    percent = model<number>(0);\n    isStatic = input<boolean>(true);\n    width = computed<string>(() => `${this.percent()}%`);\n    resolvedHeight = computed<string>(() => this.setHeight());\n    private readonly CLASSIC_HEIGHT = '22px';\n    private readonly ROUND_HEIGHT = '12px';\n    private readonly SQUARE_HEIGHT = '5px';\n    private readonly progressBarService: NgxSimpleProgressBarService = inject(NgxSimpleProgressBarService);\n    private readonly destroyRef: DestroyRef = inject(DestroyRef);\n\n    ngOnInit(): void {\n        if (!this.isStatic()) {\n            this.observeProgressBarEvents();\n        }\n    }\n\n    private setHeight(): string {\n        if (this.height()) {\n            return this.height();\n        } else if (ProgressBarType.CLASSIC === this.progressBarType()) {\n            return this.CLASSIC_HEIGHT;\n        } else if (ProgressBarType.ROUNDED === this.progressBarType()) {\n            return this.ROUND_HEIGHT;\n        } else {\n            return this.SQUARE_HEIGHT;\n        }\n    }\n\n    private observeProgressBarEvents(): void {\n        this.progressBarService.progressEvent.asObservable()\n            .pipe(takeUntilDestroyed(this.destroyRef))\n            .subscribe((event: ProgressBarEvent) => {\n                this.percent.set(event.percent);\n            });\n    }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgxSimpleProgressBarComponent } from './ngx-simple-progress-bar.component';\n\n@NgModule({\n    declarations: [NgxSimpleProgressBarComponent],\n    imports: [CommonModule],\n    exports: [NgxSimpleProgressBarComponent]\n})\nexport class NgxSimpleProgressBarModule {\n}\n","import { ChangeDetectionStrategy, Component, computed, DestroyRef, inject, input, model, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ProgressBarEvent, ProgressBarType } from './models';\nimport { NgxSimpleProgressBarService } from './ngx-simple-progress-bar.service';\n\n@Component({\n    selector: 'ngx-simple-progress-bar-standalone',\n    template: `\n        <div [class]=\"progressBarType()\" class=\"outer-bar\" [style]=\"{backgroundColor: backgroundColor(), height: resolvedHeight()}\">\n            <div class=\"inner-bar\" [style]=\"{backgroundColor: color(), width: width()}\"></div>\n        </div>\n    `,\n    styleUrl: './ngx-simple-progress-bar.component.css',\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgxSimpleProgressBarStandaloneComponent implements OnInit {\n    progressBarType = input<ProgressBarType>(ProgressBarType.CLASSIC);\n    color = input<string>('#4d94f7');\n    backgroundColor = input<string>('#efefef');\n    height = input<string>('');\n    percent = model<number>(0);\n    isStatic = input<boolean>(true);\n    width = computed<string>(() => `${this.percent()}%`);\n    resolvedHeight = computed<string>(() => this.setHeight());\n    private readonly CLASSIC_HEIGHT = '22px';\n    private readonly ROUND_HEIGHT = '12px';\n    private readonly SQUARE_HEIGHT = '5px';\n    private readonly progressBarService: NgxSimpleProgressBarService = inject(NgxSimpleProgressBarService);\n    private readonly destroyRef: DestroyRef = inject(DestroyRef);\n\n    ngOnInit(): void {\n        if (!this.isStatic()) {\n            this.observeProgressBarEvents();\n        }\n    }\n\n    private setHeight(): string {\n        if (this.height()) {\n            return this.height();\n        } else if (ProgressBarType.CLASSIC === this.progressBarType()) {\n            return this.CLASSIC_HEIGHT;\n        } else if (ProgressBarType.ROUNDED === this.progressBarType()) {\n            return this.ROUND_HEIGHT;\n        } else {\n            return this.SQUARE_HEIGHT;\n        }\n    }\n\n    private observeProgressBarEvents(): void {\n        this.progressBarService.progressEvent.asObservable()\n            .pipe(takeUntilDestroyed(this.destroyRef))\n            .subscribe((event: ProgressBarEvent) => {\n                this.percent.set(event.percent);\n            });\n    }\n}\n","/* Public API Surface of ngx-simple-progress-bar */\n\nexport * from './lib/models';\nexport * from './lib/ngx-simple-progress-bar.service';\nexport * from './lib/ngx-simple-progress-bar.component';\nexport * from './lib/ngx-simple-progress-bar.module';\nexport * from './lib/ngx-simple-progress-bar-standalone.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}