{"version":3,"file":"winkong-ng-zorro-antd-extension-timer-button.mjs","sources":["../../../components/timer-button/timer-button.directive.ts","../../../components/timer-button/timer-button.module.ts","../../../components/timer-button/public-api.ts","../../../components/timer-button/winkong-ng-zorro-antd-extension-timer-button.ts"],"sourcesContent":["import {\r\n  AfterViewInit,\r\n  ChangeDetectorRef,\r\n  Directive,\r\n  ElementRef,\r\n  EventEmitter,\r\n  HostBinding,\r\n  Input,\r\n  NgZone,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  inject,\r\n} from '@angular/core';\r\nimport {\r\n  ExtensionWithConfig,\r\n  NzxConfigKey,\r\n  NzxConfigService,\r\n} from '@winkong/ng-zorro-antd-extension/core/config';\r\nimport {\r\n  Subject,\r\n  fromEvent,\r\n  interval,\r\n  map,\r\n  startWith,\r\n  takeUntil,\r\n  takeWhile,\r\n} from 'rxjs';\r\n\r\nconst NZ_CONFIG_MODULE_NAME: NzxConfigKey = 'nzxTimerButton';\r\n\r\n@Directive({\r\n  selector: 'button[nzxTimerButton]',\r\n  exportAs: 'NzxTimerButton',\r\n})\r\nexport class NzxTimerButtonDirective implements AfterViewInit, OnDestroy {\r\n  @ExtensionWithConfig() @Input() duration: number = 3;\r\n\r\n  @Output() isCompleted = new EventEmitter<boolean>(true);\r\n  @Output() remainingTime = new EventEmitter<number>(true);\r\n\r\n  @HostBinding('attr.disabled') get _disabled() {\r\n    return this.disabled || null;\r\n  }\r\n  private destroy$ = new Subject<void>();\r\n\r\n  private disabled: boolean = false;\r\n\r\n  readonly _nzModuleName: NzxConfigKey = NZ_CONFIG_MODULE_NAME;\r\n  private nzxConfigService: NzxConfigService = inject(NzxConfigService);\r\n\r\n  constructor(private elementRef: ElementRef, private cd: ChangeDetectorRef) {}\r\n\r\n  ngAfterViewInit(): void {\r\n    this.isCompleted.emit(true);\r\n    this.remainingTime.emit(0);\r\n\r\n    fromEvent<MouseEvent>(this.elementRef.nativeElement, 'click')\r\n      .pipe(takeUntil(this.destroy$))\r\n      .subscribe((event) => {\r\n        this.disabled = true;\r\n        this.cd.markForCheck();\r\n        this.isCompleted.emit(false);\r\n        interval(1000)\r\n          .pipe(\r\n            startWith(-1),\r\n            map((x) => this.duration - 1 - x - 1),\r\n            takeWhile((x) => x >= 0),\r\n            takeUntil(this.destroy$)\r\n          )\r\n          .subscribe((i) => {\r\n            this.remainingTime.emit(i);\r\n            if (i === 0) {\r\n              this.disabled = false;\r\n              this.isCompleted.emit(true);\r\n              this.cd.markForCheck();\r\n            }\r\n          });\r\n      });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { NzxTimerButtonDirective } from './timer-button.directive';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n  imports: [CommonModule],\r\n  exports: [NzxTimerButtonDirective],\r\n  declarations: [NzxTimerButtonDirective],\r\n})\r\nexport class NzxTimerButtonModule {}\r\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './timer-button.directive';\nexport * from './timer-button.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}