{"version":3,"file":"koobiq-components-progress-spinner.mjs","sources":["../../../packages/components/progress-spinner/progress-spinner.component.ts","../../../packages/components/progress-spinner/progress-spinner.component.html","../../../packages/components/progress-spinner/progress-spinner.module.ts","../../../packages/components/progress-spinner/koobiq-components-progress-spinner.ts"],"sourcesContent":["import { NgStyle } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Directive, Input, ViewEncapsulation } from '@angular/core';\nimport { KbqColorDirective, KbqComponentColors } from '@koobiq/components/core';\n\nexport type ProgressSpinnerMode = 'determinate' | 'indeterminate';\n\n//@TODO use Exclude<KbqDefaultSizes, 'normal'> from '@koobiq/components/core' instead\nexport type ProgressSpinnerSize = 'compact' | 'big';\n\nlet id = 0;\n\nconst MIN_PERCENT = 0;\nconst MAX_PERCENT = 100;\n\n@Directive({\n    selector: '[kbq-progress-spinner-text]',\n    host: {\n        class: 'kbq-progress-spinner-text'\n    }\n})\nexport class KbqProgressSpinnerText {}\n\n@Directive({\n    selector: '[kbq-progress-spinner-caption]',\n    host: {\n        class: 'kbq-progress-spinner-caption'\n    }\n})\nexport class KbqProgressSpinnerCaption {}\n\nconst MAX_DASH_ARRAY = 295;\n\n@Component({\n    selector: 'kbq-progress-spinner',\n    imports: [NgStyle],\n    templateUrl: './progress-spinner.component.html',\n    styleUrls: ['./progress-spinner.scss', './progress-spinner-tokens.scss'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        class: 'kbq-progress-spinner',\n        '[class.kbq-progress-spinner_big]': `size === 'big'`,\n        '[class.kbq-progress-spinner_indeterminate]': `mode === 'indeterminate'`,\n        '[attr.id]': 'id'\n    }\n})\nexport class KbqProgressSpinner extends KbqColorDirective {\n    @Input() id: string = `kbq-progress-spinner-${id++}`;\n    @Input() value: number = 0;\n    @Input() mode: ProgressSpinnerMode = 'determinate';\n\n    @Input()\n    get size(): ProgressSpinnerSize | string {\n        return this._size;\n    }\n\n    set size(value: ProgressSpinnerSize | string) {\n        this._size = value;\n\n        this.svgCircleRadius = value === 'big' ? '47%' : '42.5%';\n    }\n\n    private _size: ProgressSpinnerSize | string = 'compact';\n\n    svgCircleRadius: string = '42.5%';\n\n    get percentage(): number {\n        return Math.max(MIN_PERCENT, Math.min(MAX_PERCENT, this.value)) / MAX_PERCENT;\n    }\n\n    get dashOffsetPercent(): string {\n        return `${MAX_DASH_ARRAY - this.percentage * MAX_DASH_ARRAY}%`;\n    }\n\n    constructor() {\n        super();\n\n        this.color = KbqComponentColors.Theme;\n        this.setDefaultColor(KbqComponentColors.Theme);\n    }\n}\n","<div class=\"kbq-progress-spinner__inner\">\n    <svg focusable=\"false\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 100 100\">\n        <circle\n            cx=\"50%\"\n            cy=\"50%\"\n            stroke-linecap=\"round\"\n            class=\"kbq-progress-spinner__circle\"\n            [attr.r]=\"svgCircleRadius\"\n            [ngStyle]=\"{ 'stroke-dashoffset': mode === 'determinate' ? dashOffsetPercent : null }\"\n        />\n    </svg>\n</div>\n\n<div class=\"kbq-progress-spinner__content\">\n    <ng-content select=\"[kbq-progress-spinner-text]\" />\n    <ng-content select=\"[kbq-progress-spinner-caption]\" />\n</div>\n","import { PlatformModule } from '@angular/cdk/platform';\nimport { NgStyle } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqProgressSpinner, KbqProgressSpinnerCaption, KbqProgressSpinnerText } from './progress-spinner.component';\n\n@NgModule({\n    imports: [\n        PlatformModule,\n        NgStyle,\n        KbqProgressSpinner,\n        KbqProgressSpinnerText,\n        KbqProgressSpinnerCaption\n    ],\n    exports: [\n        KbqProgressSpinner,\n        KbqProgressSpinnerText,\n        KbqProgressSpinnerCaption\n    ]\n})\nexport class KbqProgressSpinnerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}