{"version":3,"file":"ng-nest-ui-prompts.mjs","sources":["../../../../lib/ng-nest/ui/prompts/prompts.property.ts","../../../../lib/ng-nest/ui/prompts/prompts.component.ts","../../../../lib/ng-nest/ui/prompts/prompts.component.html","../../../../lib/ng-nest/ui/prompts/prompts.module.ts","../../../../lib/ng-nest/ui/prompts/ng-nest-ui-prompts.ts"],"sourcesContent":["import { Component, input, output } from '@angular/core';\r\nimport { XBoolean, XData, XIdentityProperty, XPropertyFunction, XStyle, XTemplate, XToBoolean } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Prompts\r\n * @selector x-prompts\r\n * @decorator component\r\n */\r\nexport const XPromptsPrefix = 'x-prompts';\r\nconst X_PROPMTS_CONFIG_NAME = 'prompts';\r\n\r\n/**\r\n * Prompts Property\r\n */\r\n@Component({ selector: `${XPromptsPrefix}-property`, template: '' })\r\nexport class XPromptsProperty extends XPropertyFunction(X_PROPMTS_CONFIG_NAME) {\r\n  /**\r\n   * @zh_CN 显示标题，支持自定义模板\r\n   * @en_US Display title, support custom template\r\n   */\r\n  readonly title = input<XTemplate>();\r\n  /**\r\n   * @zh_CN 列表数据\r\n   * @en_US List data\r\n   */\r\n  readonly data = input<XData<XPromptsNode>>([]);\r\n  /**\r\n   * @zh_CN 纵向展示\r\n   * @en_US List vertical display\r\n   */\r\n  readonly vertical = input<boolean, XBoolean>(this.config?.vertical ?? false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN wrap\r\n   * @en_US List wrap display\r\n   */\r\n  readonly wrap = input<boolean, XBoolean>(this.config?.wrap ?? false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN Item 点击事件\r\n   * @en_US Item click event\r\n   */\r\n  readonly itemClick = output<XPromptsNode>();\r\n}\r\n\r\n/**\r\n * @zh_CN 提示词\r\n * @en_US Promtp\r\n */\r\nexport interface XPromptsNode extends XIdentityProperty {\r\n  /**\r\n   * @zh_CN 描述\r\n   * @en_US Description\r\n   */\r\n  description?: string;\r\n  /**\r\n   * @zh_CN 图标\r\n   * @en_US Icon\r\n   */\r\n  icon?: string;\r\n  /**\r\n   * @zh_CN 节点样式\r\n   * @en_US Icon style\r\n   */\r\n  style?: XStyle;\r\n  /**\r\n   * @zh_CN 图标样式\r\n   * @en_US Icon style\r\n   */\r\n  iconStyle?: XStyle;\r\n  /**\r\n   * @zh_CN 是否禁用\r\n   * @en_US Whether to disable\r\n   */\r\n  disabled?: boolean;\r\n  /**\r\n   * @zh_CN 自定义属性\r\n   * @en_US Custom attributes\r\n   */\r\n  [property: string]: any;\r\n}\r\n","import { ChangeDetectionStrategy, Component, signal, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { XPromptsProperty, XPromptsNode } from './prompts.property';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XIsChange, XSetData } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\n\r\n@Component({\r\n  selector: 'x-prompts',\r\n  templateUrl: './prompts.component.html',\r\n  styleUrls: ['./prompts.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  imports: [XOutletDirective, XIconComponent]\r\n})\r\nexport class XPromptsComponent extends XPromptsProperty {\r\n  nodes = signal<XPromptsNode[]>([]);\r\n\r\n  unSubject = new Subject<void>();\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const { data } = changes;\r\n    XIsChange(data) && this.setData();\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.unSubject.next();\r\n    this.unSubject.complete();\r\n  }\r\n\r\n  onItemClick(node: XPromptsNode) {\r\n    this.itemClick.emit(node);\r\n  }\r\n\r\n  private setData() {\r\n    XSetData<XPromptsNode>(this.data(), this.unSubject, true).subscribe((x) => {\r\n      this.nodes.set(x);\r\n    });\r\n  }\r\n}\r\n","<div class=\"x-prompts\" [class.x-prompts-vertical]=\"vertical()\" [class.x-prompts-wrap]=\"wrap()\">\r\n  <div class=\"x-prompts-title\">\r\n    <ng-container *xOutlet=\"title()\">{{ title() }}</ng-container>\r\n  </div>\r\n  <div class=\"x-prompts-list\">\r\n    @for (item of nodes(); track item.id) {\r\n      <div class=\"x-prompts-item\" [class.x-disabled]=\"item.disabled\" [style]=\"item.style\" (click)=\"onItemClick(item)\">\r\n        @if (item.icon) {\r\n          <div class=\"x-prompts-item-icon\">\r\n            <x-icon [type]=\"item.icon\" [style]=\"item.iconStyle\"></x-icon>\r\n          </div>\r\n        }\r\n        <div class=\"x-prompts-item-content\">\r\n          @if (item.label) {\r\n            <div class=\"x-prompts-item-label\" [class.x-prompts-item-only-label]=\"item.label && !item.description\">\r\n              {{ item.label }}\r\n            </div>\r\n          }\r\n          @if (item.description) {\r\n            <div\r\n              class=\"x-prompts-item-description\"\r\n              [class.x-prompts-item-only-description]=\"!item.label && item.description\"\r\n            >\r\n              {{ item.description }}\r\n            </div>\r\n          }\r\n        </div>\r\n      </div>\r\n    }\r\n  </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XPromptsComponent } from './prompts.component';\r\n\r\n@NgModule({\r\n  exports: [XPromptsComponent],\r\n  imports: [XPromptsComponent]\r\n})\r\nexport class XPromptsModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}