{"version":3,"file":"tethys-pro-countdown.mjs","sources":["../../../../packages/components/countdown/countdown.component.ts","../../../../packages/components/countdown/countdown.component.html","../../../../packages/components/countdown/module.ts","../../../../packages/components/countdown/tethys-pro-countdown.ts"],"sourcesContent":["import {\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    inject,\n    input,\n    OnDestroy,\n    OnInit,\n    signal,\n    WritableSignal\n} from '@angular/core';\nimport { injectLocale, ThyI18nPipe } from '@tethys/pro/i18n';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { interval, Observable, of } from 'rxjs';\nimport { catchError, map, take } from 'rxjs/operators';\n\n@Component({\n    selector: 'thy-countdown',\n    templateUrl: 'countdown.component.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        class: 'thy-countdown'\n    },\n    imports: [ThyButtonModule, ThyI18nPipe]\n})\nexport class ThyCountdownComponent implements OnInit, OnDestroy {\n    locale = injectLocale();\n\n    readonly text = input(this.locale().getSMSCode);\n\n    readonly disabled = input(false, { transform: coerceBooleanProperty });\n\n    readonly sendAction = input<() => Observable<boolean>>(() => of(false));\n\n    public readonly seconds: WritableSignal<number> = signal(0);\n\n    public subscription: any;\n\n    private readonly time: WritableSignal<number> = signal(60);\n\n    constructor() {}\n\n    ngOnInit() {}\n\n    onClick() {\n        if (this.disabled()) {\n            return;\n        }\n        this.start();\n    }\n\n    private start() {\n        this.seconds.set(this.time());\n        this.subscription = interval(1000)\n            .pipe(\n                take(this.time()),\n                map((value: number) => this.time() - 1 - value)\n            )\n            .subscribe((value: number) => {\n                this.seconds.set(value);\n            });\n\n        const sendAction = this.sendAction();\n        if (sendAction) {\n            sendAction()\n                .pipe(\n                    catchError(() => {\n                        this.reset();\n                        return of(null);\n                    })\n                )\n                .subscribe((data: any) => {\n                    if (!data) {\n                        this.reset();\n                    }\n                });\n        }\n    }\n\n    reset() {\n        this.time.set(60);\n        this.seconds.set(0);\n        if (this.subscription) {\n            this.subscription.unsubscribe();\n        }\n    }\n\n    ngOnDestroy() {\n        if (this.subscription) {\n            this.subscription.unsubscribe();\n        }\n    }\n}\n","@if (seconds() === 0) {\n  <button [disabled]=\"disabled()\" thyButton=\"primary\" thySize=\"sm\" (click)=\"onClick()\">\n    {{ text() }}\n  </button>\n} @else {\n  <span class=\"countdown-progress\" [innerHTML]=\"locale().sended | thyI18n: { seconds: seconds() }\"></span>\n}\n","import { ThyButtonModule } from 'ngx-tethys/button';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ThyCountdownComponent } from './countdown.component';\n\n@NgModule({\n    imports: [ThyButtonModule, RouterModule, CommonModule, ThyCountdownComponent],\n    exports: [ThyCountdownComponent],\n    providers: []\n})\nexport class ThyProCountdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}