{"version":3,"file":"ng-nest-ui-crumb.mjs","sources":["../../../../lib/ng-nest/ui/crumb/crumb.property.ts","../../../../lib/ng-nest/ui/crumb/crumb.component.ts","../../../../lib/ng-nest/ui/crumb/crumb.component.html","../../../../lib/ng-nest/ui/crumb/crumb.module.ts","../../../../lib/ng-nest/ui/crumb/ng-nest-ui-crumb.ts"],"sourcesContent":["import { XIdentityProperty, XTemplate, XPropertyFunction, XDataArray, XToDataArray } from '@ng-nest/ui/core';\r\nimport { TemplateRef, Component, input, output } from '@angular/core';\r\n\r\n/**\r\n * Crumb\r\n * @selector x-crumb\r\n * @decorator component\r\n */\r\nexport const XCrumbPrefix = 'x-crumb';\r\nconst X_CRUMB_CONFIG_NAME = 'crumb';\r\n\r\n/**\r\n * Crumb Property\r\n */\r\n@Component({ selector: `${XCrumbPrefix}-property`, template: '' })\r\nexport class XCrumbProperty extends XPropertyFunction(X_CRUMB_CONFIG_NAME) {\r\n  /**\r\n   * @zh_CN 节点数据\r\n   * @en_US Node data\r\n   */\r\n  readonly data = input<XCrumbNode[], XDataArray<XCrumbNode>>([], { transform: XToDataArray });\r\n  /**\r\n   * @zh_CN 节点自定义模板\r\n   * @en_US Node custom template\r\n   */\r\n  readonly nodeTpl = input<TemplateRef<any>>();\r\n  /**\r\n   * @zh_CN 分隔符\r\n   * @en_US Separator\r\n   */\r\n  readonly separator = input<XTemplate>(this.config?.separator ?? '/');\r\n  /**\r\n   * @zh_CN 节点点击事件\r\n   * @en_US Node click event\r\n   */\r\n  readonly nodeClick = output<XCrumbNodeClick>();\r\n}\r\n\r\n/**\r\n * @zh_CN Crumb 数据对象\r\n * @en_US Crumb data object\r\n */\r\nexport interface XCrumbNode extends XIdentityProperty {\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 Disabled\r\n   */\r\n  disabled?: boolean;\r\n  /**\r\n   * @zh_CN 自定义数据属性\r\n   * @en_US Custom data attributes\r\n   */\r\n  [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN Crumb 点击返回的对象\r\n * @en_US Crumb Click to return the object\r\n */\r\nexport interface XCrumbNodeClick {\r\n  /**\r\n   * @zh_CN 事件\r\n   * @en_US event\r\n   */\r\n  event: Event;\r\n  /**\r\n   * @zh_CN 点击的节点数据\r\n   * @en_US Clicked node data\r\n   */\r\n  node: XCrumbNode;\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\nimport { XCrumbPrefix, XCrumbNode, XCrumbProperty } from './crumb.property';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\n\r\n@Component({\r\n  selector: `${XCrumbPrefix}`,\r\n  imports: [NgTemplateOutlet, XLinkComponent, XOutletDirective],\r\n  templateUrl: './crumb.component.html',\r\n  styleUrls: ['./style/index.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCrumbComponent extends XCrumbProperty {\r\n  action(type: string, option: XCrumbNode, event: Event) {\r\n    switch (type) {\r\n      case 'click':\r\n        this.nodeClick.emit({\r\n          event: event,\r\n          node: option\r\n        });\r\n        break;\r\n    }\r\n  }\r\n}\r\n","<ul #crumbs class=\"x-crumb\">\r\n  @for (node of data(); track node.id) {\r\n    <li>\r\n      <x-link\r\n        [title]=\"nodeTpl() ? node.label : ''\"\r\n        [icon]=\"node.icon\"\r\n        [disabled]=\"node.disabled || $index === data().length - 1\"\r\n        (click)=\"action('click', node, $event)\"\r\n      >\r\n        @if (!nodeTpl()) {\r\n          {{ node.label }}\r\n        }\r\n        <ng-container *ngTemplateOutlet=\"nodeTpl()!; context: { $node: node }\"></ng-container>\r\n      </x-link>\r\n      @if ($index !== data().length - 1) {\r\n        <span class=\"x-crumb-separator\">\r\n          <ng-container *xOutlet=\"separator()\">{{ separator() }}</ng-container>\r\n        </span>\r\n      }\r\n    </li>\r\n  }\r\n</ul>\r\n","import { NgModule } from '@angular/core';\r\nimport { XCrumbComponent } from './crumb.component';\r\n\r\n@NgModule({\r\n  exports: [XCrumbComponent],\r\n  imports: [XCrumbComponent]\r\n})\r\nexport class XCrumbModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}