{"version":3,"file":"ng-nest-ui-popconfirm.mjs","sources":["../../../../lib/ng-nest/ui/popconfirm/popconfirm.property.ts","../../../../lib/ng-nest/ui/popconfirm/popconfirm.component.ts","../../../../lib/ng-nest/ui/popconfirm/popconfirm.component.html","../../../../lib/ng-nest/ui/popconfirm/popconfirm.module.ts","../../../../lib/ng-nest/ui/popconfirm/ng-nest-ui-popconfirm.ts"],"sourcesContent":["import { XPropertyFunction, XToCssPixelValue, XToBoolean } from '@ng-nest/ui/core';\r\nimport { Component, input, output } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport type { XPopoverTrigger } from '@ng-nest/ui/popover';\r\nimport type { XPlacement, XTemplate, XBoolean, XNumber } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Popconfirm\r\n * @selector x-popconfirm\r\n * @decorator component\r\n */\r\nexport const XPopconfirmPrefix = 'x-popconfirm';\r\nconst X_POPCONFIRM_CONFIG_NAME = 'popconfirm';\r\n\r\n/**\r\n * Popconfirm Property\r\n */\r\n@Component({ selector: `${XPopconfirmPrefix}-property`, template: '' })\r\nexport class XPopconfirmProperty extends XPropertyFunction(X_POPCONFIRM_CONFIG_NAME) {\r\n  /**\r\n   * @zh_CN 标题，支持自定义模板\r\n   * @en_US Title, support custom template\r\n   */\r\n  readonly title = input<XTemplate>('');\r\n  /**\r\n   * @zh_CN 内容，支持自定义模板\r\n   * @en_US Content, support custom templates\r\n   */\r\n  readonly content = input<XTemplate>('');\r\n  /**\r\n   * @zh_CN 弹出的位置\r\n   * @en_US Pop-up position\r\n   */\r\n  readonly placement = input<XPlacement>(this.config?.placement ?? 'bottom');\r\n  /**\r\n   * @zh_CN 激活方式\r\n   * @en_US Activation method\r\n   */\r\n  readonly trigger = input<XPopoverTrigger>(this.config?.trigger ?? 'click');\r\n  /**\r\n   * @zh_CN 宽度\r\n   * @en_US width\r\n   */\r\n  readonly width = input<string, XNumber>(this.config?.width ?? '', { transform: XToCssPixelValue });\r\n  /**\r\n   * @zh_CN 最大宽度\r\n   * @en_US Max width\r\n   */\r\n  readonly maxWidth = input<string, XNumber>(this.config?.maxWidth ?? '15rem', { transform: XToCssPixelValue });\r\n  /**\r\n   * @zh_CN 最小宽度\r\n   * @en_US Min width\r\n   */\r\n  readonly minWidth = input<string, XNumber>(this.config?.minWidth ?? '15rem', { transform: XToCssPixelValue });\r\n  /**\r\n   * @zh_CN 图标\r\n   * @en_US Icon\r\n   */\r\n  readonly icon = input<string>(this.config?.icon ?? 'fto-help-circle');\r\n  /**\r\n   * @zh_CN 图标颜色\r\n   * @en_US Icon color\r\n   */\r\n  readonly iconColor = input<string>(this.config?.iconColor ?? '#e6a23c');\r\n  /**\r\n   * @zh_CN 取消的文字\r\n   * @en_US Canceled text\r\n   */\r\n  readonly cancelText = input<string>(this.config?.cancelText ?? '');\r\n  /**\r\n   * @zh_CN 确认的文字\r\n   * @en_US Confirmed text\r\n   */\r\n  readonly confirmText = input<string>(this.config?.confirmText ?? '');\r\n  /**\r\n   * @zh_CN 确认异步 Observable\r\n   * @en_US Confirm async\r\n   */\r\n  readonly confirmAsync = input<Observable<void>>();\r\n  /**\r\n   * @zh_CN 条件触发\r\n   * @en_US condition trigger\r\n   */\r\n  readonly condition = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 取消的点击事件\r\n   * @en_US Cancelled click event\r\n   */\r\n  readonly cancel = output<Event>();\r\n  /**\r\n   * @zh_CN 确认的点击事件\r\n   * @en_US Confirmed click event\r\n   */\r\n  readonly confirm = output<Event>();\r\n}\r\n","import {\r\n  Component,\r\n  ChangeDetectionStrategy,\r\n  ViewEncapsulation,\r\n  OnDestroy,\r\n  inject,\r\n  computed,\r\n  signal\r\n} from '@angular/core';\r\nimport { XPopconfirmProperty, XPopconfirmPrefix } from './popconfirm.property';\r\nimport { Subject } from 'rxjs';\r\nimport { XI18nService, XI18nPopconfirm, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\nimport { XPopoverDirective } from '@ng-nest/ui/popover';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n  selector: `${XPopconfirmPrefix}`,\r\n  imports: [XPopoverDirective, XButtonComponent, XIconComponent, XOutletDirective],\r\n  templateUrl: './popconfirm.component.html',\r\n  styleUrls: ['./popconfirm.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XPopconfirmComponent extends XPopconfirmProperty implements OnDestroy {\r\n  private i18n = inject(XI18nService);\r\n  visible = signal(false);\r\n  loading = signal(false);\r\n\r\n  private asyncUnSub = new Subject<void>();\r\n\r\n  locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.popconfirm as XI18nPopconfirm)), {\r\n    initialValue: zh_CN.popconfirm\r\n  });\r\n\r\n  cancelTextSignal = computed(() => this.cancelText() || this.locale().cancelText);\r\n  confirmTextSignal = computed(() => this.confirmText() || this.locale().confirmText);\r\n\r\n  ngOnDestroy(): void {\r\n    this.asyncUnSub.next();\r\n    this.asyncUnSub.complete();\r\n  }\r\n\r\n  onCancel(event: Event) {\r\n    this.visible.set(false);\r\n    this.cancel.emit(event);\r\n  }\r\n\r\n  onConfirm(event: Event) {\r\n    const confirmAsync = this.confirmAsync();\r\n    if (confirmAsync) {\r\n      this.loading.set(true);\r\n      confirmAsync.pipe(takeUntil(this.asyncUnSub)).subscribe(() => {\r\n        this.loading.set(false);\r\n        this.visible.set(false);\r\n        this.confirm.emit(event);\r\n        this.asyncUnSub.next();\r\n      });\r\n    } else {\r\n      this.visible.set(false);\r\n      this.confirm.emit(event);\r\n    }\r\n  }\r\n\r\n  onClick(event: Event) {\r\n    this.condition() && this.onConfirm(event);\r\n  }\r\n}\r\n","<div\r\n  #popconfirm\r\n  class=\"x-popconfirm\"\r\n  x-popover\r\n  [title]=\"titleTpl\"\r\n  [content]=\"content()\"\r\n  [footer]=\"footerTpl\"\r\n  [placement]=\"placement()\"\r\n  [trigger]=\"trigger()\"\r\n  [width]=\"width()\"\r\n  [maxWidth]=\"maxWidth()\"\r\n  [minWidth]=\"minWidth()\"\r\n  [condition]=\"condition()\"\r\n  [(visible)]=\"visible\"\r\n  (click)=\"onClick($event)\"\r\n>\r\n  <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-template #titleTpl>\r\n  <div class=\"x-popconfirm-title\">\r\n    <ng-container *xOutlet=\"title()\">\r\n      @if (icon()) {\r\n        <x-icon [style.color]=\"iconColor()\" [type]=\"icon()\"></x-icon>\r\n      }\r\n      <span>{{ title() }}</span>\r\n    </ng-container>\r\n  </div>\r\n</ng-template>\r\n\r\n<ng-template #footerTpl>\r\n  <div class=\"x-popconfirm-buttons\">\r\n    <x-button class=\"x-popconfirm-cancel\" (click)=\"onCancel($event)\" flat plain>{{ cancelTextSignal() }}</x-button>\r\n    <x-button class=\"x-popconfirm-confirm\" type=\"primary\" flat (click)=\"onConfirm($event)\" [loading]=\"loading()\">{{\r\n      confirmTextSignal()\r\n    }}</x-button>\r\n  </div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { XPopconfirmComponent } from './popconfirm.component';\r\n\r\n@NgModule({\r\n  exports: [XPopconfirmComponent],\r\n  imports: [XPopconfirmComponent]\r\n})\r\nexport class XPopconfirmModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}