{"version":3,"file":"ng-nest-ui-alert.mjs","sources":["../../../../lib/ng-nest/ui/alert/alert.property.ts","../../../../lib/ng-nest/ui/alert/alert.component.ts","../../../../lib/ng-nest/ui/alert/alert.component.html","../../../../lib/ng-nest/ui/alert/alert.module.ts","../../../../lib/ng-nest/ui/alert/ng-nest-ui-alert.ts"],"sourcesContent":["import { XPropertyFunction, XToBoolean, XToCssPixelValue, XToNumber } from '@ng-nest/ui/core';\r\nimport { Component, ElementRef, input, output } from '@angular/core';\r\nimport type { CdkDragEnd } from '@angular/cdk/drag-drop';\r\nimport type { XResizableEvent } from '@ng-nest/ui/resizable';\r\nimport type { XBoolean, XNumber, XEffect, XTemplate, XStatus } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Alert\r\n * @selector x-alert\r\n * @decorator component\r\n */\r\nexport const XAlertPrefix = 'x-alert';\r\nexport const X_ALERT_CONFIG_NAME = 'alert';\r\n\r\n/**\r\n * Alert Property\r\n */\r\n@Component({ selector: `${XAlertPrefix}-property`, template: '' })\r\nexport class XAlertProperty extends XPropertyFunction(X_ALERT_CONFIG_NAME) {\r\n  /**\r\n   * @zh_CN 隐藏\r\n   * @en_US Hide\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert title=\"隐藏，看不见\" hide> </x-alert>\r\n   * ```\r\n   *\r\n   */\r\n  readonly hide = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 标题\r\n   * @en_US Title\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert title=\"Title\" > </x-alert>\r\n   * ```\r\n   *\r\n   */\r\n  readonly title = input<XTemplate>();\r\n  /**\r\n   * @zh_CN 内容\r\n   * @en_US Content\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert content=\"Content\" > </x-alert>\r\n   * ```\r\n   *\r\n   */\r\n  readonly content = input<XTemplate>();\r\n  /**\r\n   * @zh_CN 类型\r\n   * @en_US Alert type\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert type=\"success\" > </x-alert>\r\n   * <x-alert type=\"info\" > </x-alert>\r\n   * <x-alert type=\"warning\" > </x-alert>\r\n   * <x-alert type=\"error\" > </x-alert>\r\n   * <x-alert type=\"loading\" > </x-alert>\r\n   * ```\r\n   *\r\n   */\r\n  readonly type = input<XAlertType>('info');\r\n  /**\r\n   * @zh_CN 主题\r\n   * @en_US Theme\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert effect=\"light\" > </x-alert>\r\n   * <x-alert effect=\"dark\" > </x-alert>\r\n   * <x-alert effect=\"white\" > </x-alert>\r\n   * ```\r\n   *\r\n   */\r\n  readonly effect = input<XEffect>(this.config?.effect ?? 'light');\r\n  /**\r\n   * @zh_CN 形态变体\r\n   * @en_US Variant\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert variant=\"outlined\" > </x-alert>\r\n   * <x-alert variant=\"filled\" > </x-alert>\r\n   * <x-alert variant=\"shadow\" > </x-alert>\r\n   * <x-alert variant=\"borderless\" > </x-alert>\r\n   * ```\r\n   *\r\n   */\r\n  readonly variant = input<XAlertVariant>(this.config?.variant ?? 'shadow');\r\n  /**\r\n   * @zh_CN 隐藏关闭按钮\r\n   * @en_US Hide close button\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert title=\"no close button\" hideClose> </x-alert>\r\n   * ```\r\n   *\r\n   */\r\n  readonly hideClose = input<boolean, XBoolean>(this.config?.hideClose ?? false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 使用文本关闭按钮\r\n   * @en_US Use the text to close button\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert title=\"close button is text\" closeText=\"close\"> </x-alert>\r\n   * ```\r\n   *\r\n   */\r\n  readonly closeText = input<string>();\r\n  /**\r\n   * @zh_CN 显示图标\r\n   * @en_US Show icon\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert type=\"success\" showIcon> </x-alert>\r\n   * <x-alert type=\"info\" showIcon> </x-alert>\r\n   * <x-alert type=\"warning\" showIcon> </x-alert>\r\n   * <x-alert type=\"error\" showIcon> </x-alert>\r\n   * <x-alert type=\"loading\" showIcon> </x-alert>\r\n   * ```\r\n   *\r\n   */\r\n  readonly showIcon = input<boolean, XBoolean>(this.config?.showIcon ?? false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 禁用动画\r\n   * @en_US Disable animation\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert title=\"disabled animation\" disabledAnimation> </x-alert>\r\n   * ```\r\n   *\r\n   */\r\n  readonly disabledAnimation = input<boolean, XBoolean>(this.config?.disabledAnimation ?? false, {\r\n    transform: XToBoolean\r\n  });\r\n  /**\r\n   * @zh_CN 延迟关闭，默认 0 表示不关闭，ms\r\n   * @en_US Delay close, the default value of 0 means do not close. ms\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert title=\"duration close\" duration=\"1000\"> </x-alert>\r\n   * ```\r\n   *\r\n   */\r\n  readonly duration = input<number, XNumber>(this.config?.duration ?? 0, { transform: XToNumber });\r\n  /**\r\n   * @zh_CN 手动处理关闭事件\r\n   * @en_US Manually handle close events\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert title=\"manual close\" manual> </x-alert>\r\n   * ```\r\n   *\r\n   */\r\n  readonly manual = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 拖动提示框\r\n   * @en_US Drag dialog\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert title=\"draggable alert\" draggable> </x-alert>\r\n   * ```\r\n   *\r\n   */\r\n  readonly draggable = input<boolean, XBoolean>(this.config?.draggable ?? false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 调整提示框大小\r\n   * @en_US Adjust the size of the box\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert title=\"resizable alert\" resizable> </x-alert>\r\n   * ```\r\n   *\r\n   */\r\n  readonly resizable = input<boolean, XBoolean>(this.config?.resizable ?? false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 开启 resizable 调整大小，偏移屏幕左边\r\n   * @en_US Open the resizable resize, offset screen left\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert title=\"resizable alert\" resizable offsetLeft=\"100\"> </x-alert>\r\n   * ```\r\n   *\r\n   */\r\n  readonly offsetLeft = input<number, XNumber>(0, { transform: XToNumber });\r\n  /**\r\n   * @zh_CN 开启 resizable 调整大小，偏移屏幕顶部\r\n   * @en_US Open the resizable resize, offset screen top\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert title=\"resizable alert\" resizable offsetTop=\"100\"> </x-alert>\r\n   * ```\r\n   *\r\n   */\r\n  readonly offsetTop = input<number, XNumber>(0, { transform: XToNumber });\r\n  /**\r\n   * @zh_CN 最小宽度\r\n   * @en_US Min width\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert title=\"alert min-width\" minWidth=\"100\"> </x-alert>\r\n   * ```\r\n   *\r\n   */\r\n  readonly minWidth = input<string, XNumber>(this.config?.minWidth ?? '0', { transform: XToCssPixelValue });\r\n  /**\r\n   * @zh_CN 最小高度\r\n   * @en_US Min height\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert title=\"alert min-height\" minHeight=\"100\"> </x-alert>\r\n   * ```\r\n   *\r\n   */\r\n  readonly minHeight = input<string, XNumber>(this.config?.minHeight ?? '0', { transform: XToCssPixelValue });\r\n  /**\r\n   * @zh_CN 拖动范围限制，父节点选择器或者对象\r\n   * @en_US Drag dialog\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <div #element style=\"width:300px; height: 300px\">\r\n   *   <x-alert title=\"draggable boundary\" draggable [dragBoundary]=\"element\"> </x-alert>\r\n   * </div>\r\n   * ```\r\n   *\r\n   */\r\n  readonly dragBoundary = input<string | ElementRef<HTMLElement> | HTMLElement>();\r\n  /**\r\n   * @zh_CN 设置投放容器外部的 CdkDrag 的位置。可用于为返回的用户恢复元素的位置\r\n   * @en_US Set the location of the CDKDRAG outside the container. Can be used to recover elements for returned users\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert title=\"draggable boundary\" draggable [dragFreeDragPosition]=\"{ x: 100, y: 100 }\"> </x-alert>\r\n   * ```\r\n   *\r\n   */\r\n  readonly dragFreeDragPosition = input<XAlertDragFreeDragPosition>();\r\n  /**\r\n   * @zh_CN 自定义操作\r\n   * @en_US Custom operation\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert title=\"operation template\" [operationTpl]=\"operationTpl\"> </x-alert>\r\n   * <ng-template #operationTpl>\r\n   *   <x-button>Button</x-button>\r\n   * </ng-template>\r\n   * ```\r\n   *\r\n   */\r\n  readonly operationTpl = input<XTemplate>();\r\n  /**\r\n   * @zh_CN 关闭的事件\r\n   * @en_US Closed event\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert title=\"operation template\" (close)=\"close()\"> </x-alert>\r\n   * ```\r\n   *\r\n   * ```typescript\r\n   * close() {\r\n   *   console.log(\"close\")\r\n   * }\r\n   * ```\r\n   *\r\n   */\r\n  readonly close = output();\r\n  /**\r\n   * @zh_CN 拖动结束的事件\r\n   * @en_US Drag end event\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert title=\"draggable event\" draggable (dragEnded)=\"dragEnded($event)\"> </x-alert>\r\n   * ```\r\n   *\r\n   * ```typescript\r\n   * dragEnded(event: CdkDragEnd) {\r\n   *   console.log(event)\r\n   * }\r\n   * ```\r\n   *\r\n   */\r\n  readonly dragEnded = output<CdkDragEnd>();\r\n  /**\r\n   * @zh_CN 改变尺寸事件\r\n   * @en_US Change the size event\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-alert title=\"resizable event\" resizable (resizing)=\"resizing($event)\"> </x-alert>\r\n   * ```\r\n   *\r\n   * ```typescript\r\n   * resizing(event: XResizableEvent) {\r\n   *   console.log(event)\r\n   * }\r\n   * ```\r\n   *\r\n   */\r\n  readonly resizing = output<XResizableEvent>();\r\n}\r\n\r\n/**\r\n * Alert Option\r\n * @undocument true\r\n */\r\nexport interface XAlertOption {\r\n  /**\r\n   * 隐藏\r\n   */\r\n  hide?: boolean;\r\n  /**\r\n   * 标题\r\n   */\r\n  title?: XTemplate;\r\n  /**\r\n   * 内容\r\n   */\r\n  content?: XTemplate;\r\n  /**\r\n   * 类型\r\n   */\r\n  type?: XAlertType;\r\n  /**\r\n   * 主题\r\n   */\r\n  effect?: XEffect;\r\n  /**\r\n   * 隐藏关闭按钮\r\n   */\r\n  hideClose?: boolean;\r\n  /**\r\n   * 关闭按钮文字替换\r\n   */\r\n  closeText?: string;\r\n  /**\r\n   * 显示图标\r\n   */\r\n  showIcon?: boolean;\r\n  /**\r\n   * 禁用动画\r\n   */\r\n  disabledAnimation?: boolean;\r\n  /**\r\n   * 延迟关闭，默认 0 表示不关闭\r\n   */\r\n  duration?: number;\r\n  /**\r\n   * 手动处理关闭事件\r\n   */\r\n  manual?: boolean;\r\n  /**\r\n   * 拖动提示框\r\n   */\r\n  draggable?: boolean;\r\n  /**\r\n   * 调整提示框大小\r\n   */\r\n  resizable?: boolean;\r\n  /**\r\n   * 开启 resizable 调整大小，偏移屏幕左边\r\n   */\r\n  offsetLeft?: string;\r\n  /**\r\n   * 开启 resizable 调整大小，偏移屏幕顶部\r\n   */\r\n  offsetTop?: string;\r\n  /**\r\n   * 最小宽度\r\n   */\r\n  minWidth?: string;\r\n  /**\r\n   * 最小高度\r\n   */\r\n  minHeight?: string;\r\n}\r\n\r\n/**\r\n * @zh_CN 类型\r\n * @en_US Type\r\n */\r\nexport type XAlertType = XStatus;\r\n\r\n/**\r\n * @zh_CN 形态变体\r\n * @en_US Variant\r\n */\r\nexport type XAlertVariant = 'outlined' | 'filled' | 'shadow' | 'borderless';\r\n\r\n/**\r\n * @zh_CN 设置投放容器外部的 CdkDrag 的位置。可用于为返回的用户恢复元素的位置\r\n * @en_US Set the location of the CDKDRAG outside the container. Can be used to recover elements for returned users\r\n */\r\nexport type XAlertDragFreeDragPosition = { x: number; y: number };\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  inject,\r\n  PLATFORM_ID,\r\n  computed,\r\n  signal,\r\n  effect,\r\n  DestroyRef\r\n} from '@angular/core';\r\nimport { XAlertPrefix, XAlertProperty } from './alert.property';\r\nimport { XIsEmpty } from '@ng-nest/ui/core';\r\nimport { of, Subject, Subscription } from 'rxjs';\r\nimport { delay, takeUntil } from 'rxjs/operators';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { XResizableDirective } from '@ng-nest/ui/resizable';\r\nimport { NgClass, NgTemplateOutlet, isPlatformBrowser } from '@angular/common';\r\n\r\n@Component({\r\n  selector: `${XAlertPrefix}`,\r\n  imports: [\r\n    NgClass,\r\n    NgTemplateOutlet,\r\n    DragDropModule,\r\n    XIconComponent,\r\n    XButtonComponent,\r\n    XOutletDirective,\r\n    XResizableDirective\r\n  ],\r\n  templateUrl: './alert.component.html',\r\n  styleUrls: ['./alert.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XAlertComponent extends XAlertProperty {\r\n  styleHide = signal(false);\r\n  classMap = computed(() => ({\r\n    [`${XAlertPrefix}-${this.type()}`]: !XIsEmpty(this.type()),\r\n    [`x-${this.effect()}`]: !XIsEmpty(this.effect()),\r\n    [`${XAlertPrefix}-icon-medium`]: !XIsEmpty(this.title()) && !XIsEmpty(this.content()) && !XIsEmpty(this.showIcon()),\r\n    [`${XAlertPrefix}-draggable`]: this.draggable(),\r\n    [`${XAlertPrefix}-${this.variant()}`]: !XIsEmpty(this.variant())\r\n  }));\r\n\r\n  private unSubject = new Subject<void>();\r\n  private durationSubscription?: Subscription;\r\n  private isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\r\n  private destoryRef = inject(DestroyRef);\r\n  private destory = signal(false);\r\n\r\n  constructor() {\r\n    super();\r\n    effect(() => this.setDuration());\r\n    this.destoryRef.onDestroy(() => {\r\n      this.destory.set(true);\r\n      this.unSubject.next();\r\n      this.unSubject.complete();\r\n    });\r\n  }\r\n\r\n  setDuration() {\r\n    if (this.duration() && this.isBrowser) {\r\n      this.durationSubscription?.unsubscribe();\r\n      this.durationSubscription = of(true)\r\n        .pipe(delay(this.duration()), takeUntil(this.unSubject))\r\n        .subscribe(() => {\r\n          this.onClose();\r\n        });\r\n    }\r\n  }\r\n\r\n  onClose() {\r\n    if (this.manual()) {\r\n      !this.destory() && this.close.emit();\r\n    } else {\r\n      this.styleHide.set(true);\r\n    }\r\n  }\r\n\r\n  onCloseAnimationDone() {\r\n    if (this.hide()) {\r\n      !this.destory() && this.close.emit();\r\n    }\r\n  }\r\n}\r\n","@if (!styleHide() && !hide()) {\r\n  <div\r\n    class=\"x-alert\"\r\n    [class.x-alert-has-close]=\"!hideClose()\"\r\n    [class.x-alert-icon-content]=\"showIcon() && content()\"\r\n    cdkDrag\r\n    (cdkDragEnded)=\"dragEnded.emit($event)\"\r\n    [cdkDragFreeDragPosition]=\"dragFreeDragPosition()!\"\r\n    [cdkDragDisabled]=\"!draggable()\"\r\n    [cdkDragBoundary]=\"dragBoundary()!\"\r\n    [ngClass]=\"classMap()\"\r\n    animate.enter=\"x-connect-enter\"\r\n    animate.leave=\"x-connect-leave\"\r\n    [class.x-animate-disabled]=\"disabledAnimation()\"\r\n    (animationend)=\"onCloseAnimationDone()\"\r\n    [xResizable]=\"resizable()!\"\r\n    (resizing)=\"resizing.emit($event)\"\r\n    [offsetLeft]=\"offsetLeft()\"\r\n    [offsetTop]=\"offsetTop()\"\r\n    [style.minWidth]=\"minWidth()\"\r\n    [style.minHeight]=\"minHeight()\"\r\n  >\r\n    @if (showIcon()) {\r\n      <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\r\n    }\r\n    <ng-template #iconTpl>\r\n      @switch (type()) {\r\n        @case ('success') {\r\n          <x-icon class=\"x-alert-icon\" type=\"adf-check-circle\"></x-icon>\r\n        }\r\n        @case ('info') {\r\n          <x-icon class=\"x-alert-icon\" type=\"adf-info-circle\"></x-icon>\r\n        }\r\n        @case ('warning') {\r\n          <x-icon class=\"x-alert-icon\" type=\"adf-exclamation-circle\"></x-icon>\r\n        }\r\n        @case ('error') {\r\n          <x-icon class=\"x-alert-icon\" type=\"adf-close-circle\"></x-icon>\r\n        }\r\n        @case ('loading') {\r\n          <x-icon class=\"x-alert-icon\" type=\"fto-loader\" [spin]=\"true\"></x-icon>\r\n        }\r\n      }\r\n    </ng-template>\r\n    <div class=\"x-alert-inner\">\r\n      <span class=\"x-alert-title\" cdkDragHandle [class.x-bold]=\"title() && content()\">\r\n        <ng-container *xOutlet=\"title(); context: { $iconTpl: iconTpl }\">{{ title() }}</ng-container>\r\n      </span>\r\n      @if (content()) {\r\n        <div class=\"x-alert-content\">\r\n          <ng-container *xOutlet=\"content(); context: { $iconTpl: iconTpl }\">{{ content() }}</ng-container>\r\n        </div>\r\n      }\r\n      <div class=\"x-alert-close\">\r\n        <div class=\"x-alert-operation\" *xOutlet=\"operationTpl()\">{{ operationTpl() }}</div>\r\n        @if (!hideClose()) {\r\n          <x-button\r\n            class=\"x-alert-operation-close\"\r\n            size=\"small\"\r\n            [icon]=\"!closeText() ? 'fto-x' : ''\"\r\n            [type]=\"'text'\"\r\n            (click)=\"onClose()\"\r\n            closable\r\n          >\r\n            {{ closeText() }}\r\n          </x-button>\r\n        }\r\n      </div>\r\n    </div>\r\n  </div>\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { XAlertComponent } from './alert.component';\r\n\r\n@NgModule({\r\n  exports: [XAlertComponent],\r\n  imports: [XAlertComponent]\r\n})\r\nexport class XAlertModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}