{"version":3,"file":"ng-nest-ui-tabs.mjs","sources":["../../../../lib/ng-nest/ui/tabs/tabs.property.ts","../../../../lib/ng-nest/ui/tabs/tab-link.directive.ts","../../../../lib/ng-nest/ui/tabs/tab.component.ts","../../../../lib/ng-nest/ui/tabs/tab.component.html","../../../../lib/ng-nest/ui/tabs/tab-content.component.ts","../../../../lib/ng-nest/ui/tabs/tab-content.component.html","../../../../lib/ng-nest/ui/tabs/tabs.component.ts","../../../../lib/ng-nest/ui/tabs/tabs.component.html","../../../../lib/ng-nest/ui/tabs/tabs.module.ts","../../../../lib/ng-nest/ui/tabs/ng-nest-ui-tabs.ts"],"sourcesContent":["import { XToDataArray, XPropertyFunction, XToBoolean, XToCssPixelValue } from '@ng-nest/ui/core';\r\nimport { TemplateRef, Component, input, model, output } from '@angular/core';\r\nimport type {\r\n  XJustify,\r\n  XSize,\r\n  XIdentityProperty,\r\n  XTemplate,\r\n  XBoolean,\r\n  XTrigger,\r\n  XDataArray,\r\n  XNumber\r\n} from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Tabs\r\n * @selector x-tabs\r\n * @decorator component\r\n */\r\nexport const XTabsPrefix = 'x-tabs';\r\nconst X_TABS_CONFIG_NAME = 'tabs';\r\n\r\n/**\r\n * Tabs Property\r\n */\r\n@Component({ selector: `${XTabsPrefix}-property`, template: '' })\r\nexport class XTabsProperty extends XPropertyFunction(X_TABS_CONFIG_NAME) {\r\n  /**\r\n   * @zh_CN Data 数据\r\n   * @en_US Data\r\n   */\r\n  readonly data = input<XTabsNode[], XDataArray<XTabsNode>>([], { transform: XToDataArray });\r\n  /**\r\n   * @zh_CN 对齐方式\r\n   * @en_US Alignment\r\n   */\r\n  readonly justify = input<XJustify>('start');\r\n  /**\r\n   * @zh_CN 样式\r\n   * @en_US Style\r\n   */\r\n  readonly type = input<XTabsType>('block');\r\n  /**\r\n   * @zh_CN 布局方式\r\n   * @en_US Layout\r\n   */\r\n  readonly layout = input<XTabsLayout>('top');\r\n  /**\r\n   * @zh_CN 触发方式\r\n   * @en_US Trigger mode\r\n   */\r\n  readonly trigger = input<XTabsTrigger>(this.config?.trigger ?? 'click');\r\n  /**\r\n   * @zh_CN 激活的序号\r\n   * @en_US Activation number\r\n   */\r\n  readonly activatedIndex = model<number>(0);\r\n  /**\r\n   * @zh_CN 动画\r\n   * @en_US Animation\r\n   */\r\n  readonly animated = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 节点模板\r\n   * @en_US Node template\r\n   */\r\n  readonly nodeTpl = input<TemplateRef<any>>();\r\n  /**\r\n   * @zh_CN 尺寸\r\n   * @en_US Size\r\n   */\r\n  readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n  /**\r\n   * @zh_CN 节点排列方式\r\n   * @en_US Node arrangement\r\n   */\r\n  readonly nodeJustify = input<XJustify>();\r\n  /**\r\n   * @zh_CN 隐藏标签栏，只有一个标签页时候默认隐藏（存在自定义操作模版的时候不会）\r\n   * @en_US Hide the label bar, there is only one tab, the default hidden\r\n   */\r\n  readonly sliderHidden = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 标签栏上的自定义操作模版\r\n   * @en_US Custom template on the label bar\r\n   */\r\n  readonly actionTpl = input<TemplateRef<any>>();\r\n  /**\r\n   * @zh_CN 标签页显示不下的时候显示展开所有的按钮，布局为 top 、bottom 的时候生效\r\n   * @en_US When the node is not displayed, display all the buttons, and the arrangement is effective when the arrangement is row\r\n   */\r\n  readonly showExpand = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 展开所有弹框的最大高度\r\n   * @en_US Expand the maximum height of all bomb frames\r\n   */\r\n  readonly expandMaxHeight = input<string, XNumber>(this.config?.expandMaxHeight ?? '15rem', {\r\n    transform: XToCssPixelValue\r\n  });\r\n  /**\r\n   * @zh_CN angular 路由联动\r\n   * @en_US Link angular router\r\n   */\r\n  readonly linkRouter = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 以严格匹配模式确定联动的路由\r\n   * @en_US Determine the linked route in strict matching mode\r\n   */\r\n  readonly linkExact = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 标签切换变化的事件\r\n   * @en_US Label switching event\r\n   */\r\n  readonly indexChange = output<XActivatedTab>();\r\n}\r\n\r\n/**\r\n * @zh_CN Tabs 数据对象\r\n * @en_US Tabs data object\r\n */\r\nexport interface XTabsNode extends XIdentityProperty {\r\n  /**\r\n   * @zh_CN 禁用节点\r\n   * @en_US Node disabled\r\n   */\r\n  disabled?: boolean;\r\n  /**\r\n   * @zh_CN 自定义属性\r\n   * @en_US Custom properties\r\n   */\r\n  [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN 触发方式\r\n * @en_US Trigger method\r\n */\r\nexport type XTabsTrigger = XTrigger;\r\n\r\n/**\r\n * @zh_CN 激活的tab\r\n * @en_US Active tab\r\n */\r\nexport interface XActivatedTab {\r\n  activatedIndex?: number;\r\n  activatedTab?: XTabsNode;\r\n}\r\n\r\n/**\r\n * @zh_CN 样式类型\r\n * @en_US Style type\r\n */\r\nexport type XTabsType = 'block' | 'tag' | 'card';\r\n\r\n/**\r\n * @zh_CN 布局方式\r\n * @en_US Layout\r\n */\r\nexport type XTabsLayout = 'top' | 'right' | 'bottom' | 'left';\r\n\r\n/**\r\n * Tab\r\n * @selector x-tab\r\n * @decorator component\r\n */\r\nexport const XTabPrefix = 'x-tab';\r\n\r\n/**\r\n * Tab Property\r\n */\r\n@Component({ selector: `${XTabPrefix}-property`, template: '' })\r\nexport class XTabProperty {\r\n  /**\r\n   * @zh_CN 标签名称，支持自定义模板\r\n   * @en_US Label name, support custom template\r\n   */\r\n  readonly label = input<XTemplate>();\r\n  /**\r\n   * @zh_CN 禁用\r\n   * @en_US Disabeld\r\n   */\r\n  readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n}\r\n","import { Directive, ElementRef, Host, Optional, Self, TemplateRef } from '@angular/core';\r\nimport { RouterLink } from '@angular/router';\r\n\r\n@Directive({\r\n  selector: 'ng-template[xTabLink]',\r\n  exportAs: 'xTabLinkTemplate'\r\n})\r\nexport class XTabLinkTemplateDirective {\r\n  constructor(@Host() public templateRef: TemplateRef<void>) {}\r\n}\r\n\r\n@Directive({\r\n  selector: 'a[x-tab-link]',\r\n  exportAs: 'xTabLink'\r\n})\r\nexport class XTabLinkDirective {\r\n  constructor(\r\n    public elementRef: ElementRef,\r\n    @Optional() @Self() public routerLink?: RouterLink,\r\n    @Optional() @Self() public routerLinkWithHref?: RouterLink\r\n  ) {}\r\n}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  TemplateRef,\r\n  ViewEncapsulation,\r\n  contentChild,\r\n  viewChild\r\n} from '@angular/core';\r\nimport { XTabPrefix, XTabProperty } from './tabs.property';\r\nimport { XTabLinkDirective, XTabLinkTemplateDirective } from './tab-link.directive';\r\n\r\n@Component({\r\n  selector: `${XTabPrefix}`,\r\n  templateUrl: './tab.component.html',\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTabComponent extends XTabProperty {\r\n  content = viewChild('contentTpl', { read: TemplateRef<any> });\r\n  linkTemplateDirective = contentChild(XTabLinkTemplateDirective);\r\n  linkDirective = contentChild(XTabLinkDirective);\r\n}\r\n","<ng-template #tabLinkTpl>\r\n  <ng-content select=\"[x-tab-link]\"></ng-content>\r\n</ng-template>\r\n<ng-template #contentTpl>\r\n  <ng-content></ng-content>\r\n</ng-template>\r\n","import { NgTemplateOutlet } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, input, HostBinding } from '@angular/core';\r\nimport { XBoolean, XToBoolean } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n  selector: 'x-tab-content',\r\n  preserveWhitespaces: false,\r\n  imports: [NgTemplateOutlet],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  templateUrl: './tab-content.component.html'\r\n})\r\nexport class XTabContentComponent {\r\n  content = input<TemplateRef<any>>();\r\n  active = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n\r\n  @HostBinding('class.x-tab-content') _has = true;\r\n}\r\n","@if (active()) {\r\n  <ng-template *ngTemplateOutlet=\"content()!\"></ng-template>\r\n}\r\n","import {\r\n  Component,\r\n  ChangeDetectionStrategy,\r\n  ViewEncapsulation,\r\n  ElementRef,\r\n  Renderer2,\r\n  inject,\r\n  OnDestroy,\r\n  AfterViewInit,\r\n  computed,\r\n  contentChildren,\r\n  viewChild\r\n} from '@angular/core';\r\nimport { XTabsPrefix, XTabsNode, XTabsProperty } from './tabs.property';\r\nimport { XIsEmpty, XConfigService, XResize, XResizeObserver } from '@ng-nest/ui/core';\r\nimport { Subject, takeUntil, filter, startWith, delay } from 'rxjs';\r\nimport { XSliderComponent } from '@ng-nest/ui/slider';\r\nimport { XTabComponent } from './tab.component';\r\nimport { NavigationEnd, Router, RouterLink } from '@angular/router';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { XTabContentComponent } from './tab-content.component';\r\n\r\n@Component({\r\n  selector: `${XTabsPrefix}`,\r\n  imports: [NgClass, NgTemplateOutlet, XSliderComponent, XTabContentComponent],\r\n  templateUrl: './tabs.component.html',\r\n  styleUrls: ['./style/index.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTabsComponent extends XTabsProperty implements OnDestroy, AfterViewInit {\r\n  sliderLayout = computed(() => (['top', 'bottom'].indexOf(this.layout()) !== -1 ? 'row' : 'column'));\r\n  private unSubject = new Subject<void>();\r\n  private resizeObserver!: XResizeObserver;\r\n  listTabs = contentChildren(XTabComponent, { read: XTabComponent });\r\n\r\n  tabs = computed(() => {\r\n    let data = this.data();\r\n    if (XIsEmpty(data)) {\r\n      const listTabs = this.listTabs();\r\n      if (!XIsEmpty(listTabs)) {\r\n        let _data: XTabsNode[] = [];\r\n        listTabs.forEach((x, index) => {\r\n          const label = x.linkTemplateDirective()?.templateRef || x.label();\r\n          const id = x.label() || index;\r\n          _data = [..._data, { id: id, label: label, disabled: x.disabled() }];\r\n        });\r\n        data = _data;\r\n      }\r\n    }\r\n    return data;\r\n  });\r\n\r\n  slider = viewChild(XSliderComponent, { read: XSliderComponent });\r\n  actionsRef = viewChild('actionsRef', { read: ElementRef<HTMLElement> });\r\n\r\n  private renderer = inject(Renderer2);\r\n  private router = inject(Router, { optional: true });\r\n  configService = inject(XConfigService);\r\n\r\n  classMap = computed(() => ({\r\n    [`${XTabsPrefix}-${this.layout()}`]: !XIsEmpty(this.layout()),\r\n    [`${XTabsPrefix}-${this.type()}`]: !XIsEmpty(this.type()),\r\n    [`${XTabsPrefix}-is-first`]: this.activatedIndex() === 0,\r\n    [`${XTabsPrefix}-is-last`]: this.activatedIndex() === this.tabs().length - 1\r\n  }));\r\n\r\n  nodeJustifySignal = computed(() =>\r\n    this.nodeJustify()\r\n      ? this.nodeJustify()\r\n      : this.layout() === 'left'\r\n        ? 'end'\r\n        : this.layout() === 'right'\r\n          ? 'start'\r\n          : 'center'\r\n  );\r\n\r\n  sliderHiddenSignal = computed(() => {\r\n    const sliderHidden = this.sliderHidden();\r\n    if (!sliderHidden && !this.actionTpl()) {\r\n      return this.tabs().length <= 1;\r\n    }\r\n    return sliderHidden;\r\n  });\r\n\r\n  ngOnDestroy(): void {\r\n    this.unSubject.next();\r\n    this.unSubject.complete();\r\n    this.resizeObserver?.disconnect();\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.setSliderWidth();\r\n    Promise.resolve().then(() => {\r\n      this.setRouter();\r\n    });\r\n  }\r\n\r\n  setSliderWidth() {\r\n    if (this.slider() && this.actionsRef()) {\r\n      XResize(this.actionsRef()?.nativeElement)\r\n        .pipe(takeUntil(this.unSubject))\r\n        .subscribe((x) => {\r\n          this.resizeObserver = x.resizeObserver;\r\n          this.renderer.setStyle(\r\n            this.slider()?.elementRef.nativeElement,\r\n            'width',\r\n            `calc(100% - ${this.actionsRef()?.nativeElement.clientWidth}px)`\r\n          );\r\n        });\r\n    }\r\n  }\r\n\r\n  setRouter() {\r\n    if (!this.linkRouter) return;\r\n    if (!this.router) {\r\n      console.warn(`${XTabsPrefix}: you should import 'RouterModule' if you want to use 'linkRouter'!`);\r\n      return;\r\n    }\r\n    this.router.events\r\n      .pipe(\r\n        filter((x) => x instanceof NavigationEnd),\r\n        startWith(true),\r\n        delay(0),\r\n        takeUntil(this.unSubject)\r\n      )\r\n      .subscribe(() => {\r\n        this.updateRouterActive();\r\n      });\r\n  }\r\n\r\n  updateRouterActive() {\r\n    if (!this.router?.navigated) return;\r\n    const index = this.findShouldActiveTabIndex();\r\n    if (index !== -1 && index !== this.activatedIndex()) {\r\n      this.activatedIndex.set(index);\r\n    }\r\n  }\r\n\r\n  findShouldActiveTabIndex(): number {\r\n    const tabs = this.listTabs();\r\n    const isActive = this.isLinkActive(this.router!);\r\n\r\n    return tabs.findIndex((tab) => {\r\n      const c = tab.linkDirective();\r\n      return c ? isActive(c.routerLink) || isActive(c.routerLinkWithHref) : false;\r\n    });\r\n  }\r\n\r\n  isLinkActive(router: Router): (link?: RouterLink | RouterLink) => boolean {\r\n    return (link?: RouterLink | RouterLink) => {\r\n      router.isActive;\r\n      return link\r\n        ? router.isActive(\r\n            link.urlTree!,\r\n            this.linkExact()\r\n              ? {\r\n                  paths: 'exact',\r\n                  queryParams: 'exact',\r\n                  fragment: 'ignored',\r\n                  matrixParams: 'ignored'\r\n                }\r\n              : {\r\n                  paths: 'subset',\r\n                  queryParams: 'subset',\r\n                  fragment: 'ignored',\r\n                  matrixParams: 'ignored'\r\n                }\r\n          )\r\n        : false;\r\n    };\r\n  }\r\n\r\n  activatedChange(index: number) {\r\n    this.activatedIndex.set(index);\r\n    this.indexChange.emit({\r\n      activatedIndex: index,\r\n      activatedTab: this.tabs()[index]\r\n    });\r\n  }\r\n}\r\n","<div class=\"x-tabs\" [ngClass]=\"classMap()\">\r\n  @if (!sliderHiddenSignal()) {\r\n    <div #list class=\"x-tabs-list\">\r\n      <x-slider\r\n        #slider\r\n        [animated]=\"animated() && type() !== 'tag'\"\r\n        [justify]=\"justify()\"\r\n        [nodeJustify]=\"nodeJustifySignal()!\"\r\n        [data]=\"tabs()\"\r\n        [layout]=\"sliderLayout()\"\r\n        [size]=\"size()\"\r\n        [nodeTpl]=\"nodeTpl()\"\r\n        [activatedIndex]=\"activatedIndex()\"\r\n        [showExpand]=\"showExpand()\"\r\n        [expandMaxHeight]=\"expandMaxHeight()\"\r\n        [trigger]=\"trigger()\"\r\n        (activatedIndexChange)=\"activatedChange($event)\"\r\n      ></x-slider>\r\n      @if (actionTpl()) {\r\n        <div #actionsRef class=\"x-tabs-actions\">\r\n          <ng-container *ngTemplateOutlet=\"actionTpl()!\"></ng-container>\r\n        </div>\r\n      }\r\n    </div>\r\n  }\r\n  <div\r\n    #content\r\n    class=\"x-tabs-contents\"\r\n    [class.x-tabs-contents-animated]=\"animated() && (layout() === 'top' || layout() === 'bottom')\"\r\n  >\r\n    @for (tab of listTabs(); track tab) {\r\n      <x-tab-content\r\n        [active]=\"activatedIndex() == $index\"\r\n        [content]=\"tab.content()\"\r\n        [class.x-tab-content-unactivated]=\"activatedIndex() !== $index\"\r\n        [class.x-tab-content-disabled]=\"tab.disabled()\"\r\n        [style.transform]=\"'translate(' + (-activatedIndex() || 0) * 100 + '%, 0px)'\"\r\n      >\r\n      </x-tab-content>\r\n    }\r\n  </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XTabsComponent } from './tabs.component';\r\nimport { XTabComponent } from './tab.component';\r\nimport { XTabLinkTemplateDirective, XTabLinkDirective } from './tab-link.directive';\r\n\r\n@NgModule({\r\n  exports: [XTabsComponent, XTabComponent, XTabLinkDirective, XTabLinkTemplateDirective],\r\n  imports: [XTabsComponent, XTabComponent, XTabLinkDirective, XTabLinkTemplateDirective]\r\n})\r\nexport class XTabsModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}