{"version":3,"file":"mosaic-design-infosec-components-components-counter-progress-bar.mjs","sources":["../../../libs/components/counter-progress-bar/src/lib/components/counter-progress-bar/counter-progress-bar.component.ts","../../../libs/components/counter-progress-bar/src/lib/components/counter-progress-bar/counter-progress-bar.component.html","../../../libs/components/counter-progress-bar/src/lib/constants/i18n.ts","../../../libs/components/counter-progress-bar/src/lib/counter-progress-bar.module.ts","../../../libs/components/counter-progress-bar/mosaic-design-infosec-components-components-counter-progress-bar.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\n\nimport { IcTranslocoScopeAlias } from '@mosaic-design/infosec-components/types';\n\nimport { CounterProgressBarTemplateContext } from '../../types';\n\n@Component({\n    selector: 'ic-counter-progress-bar',\n    templateUrl: './counter-progress-bar.component.html',\n    styleUrl: './counter-progress-bar.component.scss',\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CounterProgressBarComponent {\n    protected readonly IcTranslocoScopeAlias = IcTranslocoScopeAlias;\n\n    @Input() set count(value: number | undefined) {\n        this.#count$.next(value ?? 0);\n    }\n\n    #count$ = new BehaviorSubject<number>(0);\n\n    @Input() set total(value: number | undefined) {\n        this.#total$.next(value ?? 0);\n    }\n\n    #total$ = new BehaviorSubject<number>(0);\n\n    protected readonly barWidth$: Observable<string>;\n    protected readonly context$: Observable<CounterProgressBarTemplateContext>;\n    protected readonly defaultContext: CounterProgressBarTemplateContext = {\n        count: 0,\n        total: 0\n    };\n\n    constructor() {\n        this.barWidth$ = combineLatest([this.#count$, this.#total$]).pipe(\n            map(([count, total]) => {\n                if (total === 0) {\n                    return '';\n                }\n\n                const totalWidth = 100;\n\n                return `${(count / total) * totalWidth}%`;\n            })\n        );\n\n        this.context$ = combineLatest([this.#count$, this.#total$]).pipe(\n            map(([count, total]) => ({\n                count,\n                total\n            }))\n        );\n    }\n}\n","<div class=\"ic-counter-progress-bar\">\n    <div class=\"ic-counter-progress-bar__bar\" [style.width]=\"barWidth$ | icPush\"></div>\n\n    <div class=\"ic-counter-progress-bar__text\" *icLet=\"context$ | icPush: defaultContext; let context\">\n        <span *ngIf=\"context.total === 0\">\n            <ic-coalesce-content\n                [items]=\"[{ alias: IcTranslocoScopeAlias.CounterProgressBar, key: 'CounterProgressBar.Bar.Text.None' }]\"\n            ></ic-coalesce-content>\n        </span>\n\n        <span *ngIf=\"context.total > 0\">\n            <span>\n                <span>{{ context.count }} </span>\n                <span\n                    ><ic-coalesce-content\n                        [items]=\"[\n                            { alias: IcTranslocoScopeAlias.CounterProgressBar, key: 'CounterProgressBar.Bar.Text.Of' }\n                        ]\"\n                    ></ic-coalesce-content\n                ></span>\n                <span> {{ context.total }}</span>\n            </span>\n        </span>\n    </div>\n</div>\n","import { counterProgressBarTranslates } from '@mosaic-design/infosec-components/i18n-resources';\nimport { LocalizationScopeConfig, IcTranslocoScopeAlias } from '@mosaic-design/infosec-components/types';\n\nexport const scopeConfig: LocalizationScopeConfig = {\n    alias: IcTranslocoScopeAlias.CounterProgressBar,\n    localTranslates: counterProgressBarTranslates\n};\n","import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IcCoalesceContentModule } from '@mosaic-design/infosec-components/components/coalesce-content';\nimport { IcLetDirective } from '@mosaic-design/infosec-components/directives';\nimport { IcPushPipe } from '@mosaic-design/infosec-components/external/ngrx-component/pipes';\n\nimport { CounterProgressBarComponent } from './components';\n\n/**\n * @deprecated Будет удален в 19 версии. Компоненты будут standalone\n */\n@NgModule({\n    declarations: [CounterProgressBarComponent],\n    imports: [IcPushPipe, NgTemplateOutlet, NgIf, IcLetDirective, IcCoalesceContentModule],\n    exports: [CounterProgressBarComponent]\n})\nexport class IcCounterProgressBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}