igniteui-angular 22.2.0 → 22.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/checkbox/README.md +4 -0
  2. package/fesm2022/igniteui-angular-checkbox.mjs +18 -13
  3. package/fesm2022/igniteui-angular-checkbox.mjs.map +1 -1
  4. package/fesm2022/igniteui-angular-directives.mjs +19 -0
  5. package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
  6. package/fesm2022/igniteui-angular-grids-core.mjs +4 -0
  7. package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
  8. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +18 -41
  9. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs.map +1 -1
  10. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +13 -15
  11. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
  12. package/fesm2022/igniteui-angular-grids-tree-grid.mjs +43 -34
  13. package/fesm2022/igniteui-angular-grids-tree-grid.mjs.map +1 -1
  14. package/fesm2022/igniteui-angular-query-builder.mjs +4 -4
  15. package/fesm2022/igniteui-angular-query-builder.mjs.map +1 -1
  16. package/fesm2022/igniteui-angular-radio.mjs +32 -14
  17. package/fesm2022/igniteui-angular-radio.mjs.map +1 -1
  18. package/fesm2022/igniteui-angular-switch.mjs +18 -13
  19. package/fesm2022/igniteui-angular-switch.mjs.map +1 -1
  20. package/fesm2022/igniteui-angular-tabs.mjs +39 -9
  21. package/fesm2022/igniteui-angular-tabs.mjs.map +1 -1
  22. package/fesm2022/igniteui-angular-tree.mjs +2 -2
  23. package/fesm2022/igniteui-angular-tree.mjs.map +1 -1
  24. package/fesm2022/igniteui-angular-virtual-scroll.mjs +17 -0
  25. package/fesm2022/igniteui-angular-virtual-scroll.mjs.map +1 -1
  26. package/package.json +2 -2
  27. package/radio/README.md +4 -0
  28. package/skills/igniteui-angular-components/references/form-controls.md +1 -1
  29. package/skills/igniteui-angular-grids/references/types.md +1 -1
  30. package/styles/igniteui-angular-dark.css +1 -1
  31. package/styles/igniteui-angular.css +1 -1
  32. package/styles/igniteui-bootstrap-dark.css +1 -1
  33. package/styles/igniteui-bootstrap-light.css +1 -1
  34. package/styles/igniteui-dark-green.css +1 -1
  35. package/styles/igniteui-fluent-dark-excel.css +1 -1
  36. package/styles/igniteui-fluent-dark-word.css +1 -1
  37. package/styles/igniteui-fluent-dark.css +1 -1
  38. package/styles/igniteui-fluent-light-excel.css +1 -1
  39. package/styles/igniteui-fluent-light-word.css +1 -1
  40. package/styles/igniteui-fluent-light.css +1 -1
  41. package/styles/igniteui-indigo-dark.css +1 -1
  42. package/styles/igniteui-indigo-light.css +1 -1
  43. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  44. package/styles/maps/igniteui-angular.css.map +1 -1
  45. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  46. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  47. package/styles/maps/igniteui-dark-green.css.map +1 -1
  48. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  49. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  50. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  51. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  52. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  53. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  54. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  55. package/styles/maps/igniteui-indigo-light.css.map +1 -1
  56. package/switch/README.md +4 -0
  57. package/types/igniteui-angular-checkbox.d.ts +2 -1
  58. package/types/igniteui-angular-directives.d.ts +7 -1
  59. package/types/igniteui-angular-grids-hierarchical-grid.d.ts +7 -6
  60. package/types/igniteui-angular-grids-pivot-grid.d.ts +2 -4
  61. package/types/igniteui-angular-grids-tree-grid.d.ts +32 -14
  62. package/types/igniteui-angular-radio.d.ts +8 -1
  63. package/types/igniteui-angular-switch.d.ts +2 -1
  64. package/types/igniteui-angular-virtual-scroll.d.ts +5 -0
  65. package/virtual-scroll/README.md +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"igniteui-angular-tabs.mjs","sources":["../../../projects/igniteui-angular/tabs/src/tabs/tabs.base.ts","../../../projects/igniteui-angular/tabs/src/tabs/tab-item.directive.ts","../../../projects/igniteui-angular/tabs/src/tabs/tab-content.directive.ts","../../../projects/igniteui-angular/tabs/src/tabs/tabs/content/tab-content.component.ts","../../../projects/igniteui-angular/tabs/src/tabs/tabs/content/tab-content.component.html","../../../projects/igniteui-angular/tabs/src/tabs/tab-header.directive.ts","../../../projects/igniteui-angular/tabs/src/tabs/tabs.directive.ts","../../../projects/igniteui-angular/tabs/src/tabs/tabs/tabs.component.ts","../../../projects/igniteui-angular/tabs/src/tabs/tabs/tabs.component.html","../../../projects/igniteui-angular/tabs/src/tabs/tabs/header/tab-header.component.ts","../../../projects/igniteui-angular/tabs/src/tabs/tabs/header/tab-header.component.html","../../../projects/igniteui-angular/tabs/src/tabs/tabs/item/tab-item.component.ts","../../../projects/igniteui-angular/tabs/src/tabs/tabs/item/tab-item.component.html","../../../projects/igniteui-angular/tabs/src/tabs/tabs/tabs.directives.ts","../../../projects/igniteui-angular/tabs/src/tabs/tabs/public_api.ts","../../../projects/igniteui-angular/tabs/src/tabs/tabs/tabs.module.ts","../../../projects/igniteui-angular/tabs/src/igniteui-angular-tabs.ts"],"sourcesContent":["import { QueryList, TemplateRef } from '@angular/core';\n\n/** @hidden */\nexport abstract class IgxTabsBase {\n public items!: QueryList<IgxTabItemBase>;\n public selectedIndex!: number;\n public abstract selectTab(tab: IgxTabItemBase, selected: boolean): any;\n}\n\n/** @hidden */\nexport abstract class IgxTabItemBase {\n public disabled!: boolean;\n public selected!: boolean;\n public headerTemplate!: TemplateRef<any>;\n public panelTemplate!: TemplateRef<any>;\n public headerComponent!: IgxTabHeaderBase;\n public panelComponent!: IgxTabContentBase;\n}\n\n/** @hidden */\nexport abstract class IgxTabHeaderBase {\n public nativeElement!: HTMLElement;\n}\n\n/** @hidden */\nexport abstract class IgxTabContentBase {\n public nativeElement!: HTMLElement;\n}\n\n","import { ContentChild, Directive, EventEmitter, Input, Output, TemplateRef, ViewChild, booleanAttribute, inject } from '@angular/core';\nimport { IgxTabHeaderBase, IgxTabItemBase, IgxTabContentBase, IgxTabsBase } from './tabs.base';\nimport { CarouselAnimationDirection, IgxSlideComponentBase } from 'igniteui-angular/carousel';\n\n@Directive()\nexport abstract class IgxTabItemDirective implements IgxTabItemBase, IgxSlideComponentBase {\n /** @hidden */\n private tabs = inject(IgxTabsBase);\n\n /** @hidden */\n @ContentChild(IgxTabHeaderBase)\n public headerComponent!: IgxTabHeaderBase;\n\n /** @hidden */\n @ContentChild(IgxTabContentBase)\n public panelComponent!: IgxTabContentBase;\n\n /** @hidden */\n @ViewChild('headerTemplate', { static: true })\n public headerTemplate!: TemplateRef<any>;\n\n /** @hidden */\n @ViewChild('panelTemplate', { static: true })\n public panelTemplate!: TemplateRef<any>;\n\n /**\n * Output to enable support for two-way binding on [(selected)]\n */\n @Output()\n public selectedChange = new EventEmitter<boolean>();\n\n /**\n * Disables the item.\n */\n @Input({ transform: booleanAttribute })\n public disabled = false;\n\n /** @hidden */\n public direction = CarouselAnimationDirection.NONE;\n /** @hidden */\n public previous!: boolean;\n\n private _selected = false;\n\n /**\n * Gets/Sets whether an item is selected.\n */\n @Input({ transform: booleanAttribute })\n public get selected(): boolean {\n return this._selected;\n }\n\n public set selected(value: boolean) {\n if (this._selected !== value) {\n this._selected = value;\n this.tabs.selectTab(this, this._selected);\n this.selectedChange.emit(this._selected);\n }\n }\n}\n","import { Directive, ElementRef, HostBinding, inject } from '@angular/core';\nimport { IgxTabItemDirective } from './tab-item.directive';\nimport { IgxTabContentBase } from './tabs.base';\n\n@Directive()\nexport abstract class IgxTabContentDirective implements IgxTabContentBase {\n /** @hidden */\n public tab = inject(IgxTabItemDirective);\n /** @hidden */\n private elementRef = inject(ElementRef<HTMLElement>);\n\n /** @hidden */\n @HostBinding('attr.role')\n public role = 'tabpanel';\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n public get tabIndex() {\n return this.tab.selected ? 0 : -1;\n }\n\n /** @hidden */\n @HostBinding('style.z-index')\n public get zIndex() {\n return this.tab.selected ? 'auto' : -1;\n }\n\n /** @hidden */\n public get nativeElement() {\n return this.elementRef.nativeElement;\n }\n}\n","import {ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation} from '@angular/core';\nimport { IgxTabContentDirective } from '../../tab-content.directive';\nimport { IgxTabContentBase } from '../../tabs.base';\n\n@Component({\n selector: 'igx-tab-content',\n templateUrl: 'tab-content.component.html',\n styleUrl: 'tab-content.component.css',\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: IgxTabContentBase, useExisting: IgxTabContentComponent }],\n})\nexport class IgxTabContentComponent extends IgxTabContentDirective {\n /** @hidden */\n @HostBinding('class.igx-tabs-content__inner')\n public cssClass = true;\n}\n","@if (tab.selected || tab.previous) {\n <ng-content></ng-content>\n}\n","\nimport { Directive, ElementRef, HostBinding, HostListener, inject } from '@angular/core';\nimport { PlatformUtil } from 'igniteui-angular/core';\nimport { IgxTabItemDirective } from './tab-item.directive';\nimport { IgxTabHeaderBase, IgxTabsBase } from './tabs.base';\n\n@Directive()\nexport abstract class IgxTabHeaderDirective implements IgxTabHeaderBase {\n /** @hidden */\n protected tabs = inject(IgxTabsBase);\n /** @hidden */\n public tab = inject(IgxTabItemDirective);\n /** @hidden */\n private elementRef = inject(ElementRef<HTMLElement>);\n /** @hidden */\n protected platform = inject(PlatformUtil);\n\n /** @hidden */\n @HostBinding('attr.role')\n public role = 'tab';\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n public get tabIndex() {\n return this.tab.selected ? 0 : -1;\n }\n\n /** @hidden */\n @HostBinding('attr.aria-selected')\n public get ariaSelected() {\n return this.tab.selected;\n }\n\n /** @hidden */\n @HostBinding('attr.aria-disabled')\n public get ariaDisabled() {\n return this.tab.disabled;\n }\n\n /** @hidden */\n @HostListener('click')\n public onClick() {\n if (this.tab.panelComponent) {\n this.tabs.selectTab(this.tab, true);\n }\n }\n\n /** @hidden */\n public get nativeElement() {\n return this.elementRef.nativeElement;\n }\n}\n","import {\n AfterViewInit, ContentChildren, Directive, ElementRef, EventEmitter,\n Input, OnDestroy, Output, QueryList, booleanAttribute,\n inject\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { IBaseEventArgs, isLeftToRight } from 'igniteui-angular/core';\nimport { IgxTabItemDirective } from './tab-item.directive';\nimport { IgxTabContentBase, IgxTabsBase } from './tabs.base';\nimport { IgxCarouselComponentBase, CarouselAnimationDirection } from 'igniteui-angular/carousel';\n\nexport interface ITabsBaseEventArgs extends IBaseEventArgs {\n readonly owner: IgxTabsDirective;\n}\n\nexport interface ITabsSelectedIndexChangingEventArgs extends ITabsBaseEventArgs {\n cancel: boolean;\n readonly oldIndex: number;\n newIndex: number;\n}\n\nexport interface ITabsSelectedItemChangeEventArgs extends ITabsBaseEventArgs {\n readonly oldItem: IgxTabItemDirective;\n readonly newItem: IgxTabItemDirective;\n}\n\n@Directive()\nexport abstract class IgxTabsDirective extends IgxCarouselComponentBase implements IgxTabsBase, AfterViewInit, OnDestroy {\n protected readonly _element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Gets/Sets the index of the selected item.\n * Default value is 0 if contents are defined otherwise defaults to -1.\n */\n @Input()\n public get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n public set selectedIndex(value: number) {\n if (this._selectedIndex !== value) {\n let newIndex = value;\n const oldIndex = this._selectedIndex;\n const args: ITabsSelectedIndexChangingEventArgs = {\n owner: this,\n cancel: false,\n oldIndex,\n newIndex\n };\n this.selectedIndexChanging.emit(args);\n\n if (!args.cancel) {\n newIndex = args.newIndex;\n this._selectedIndex = newIndex;\n this.selectedIndexChange.emit(this._selectedIndex);\n }\n\n this.updateSelectedTabs(oldIndex);\n }\n }\n\n /**\n * Enables/disables the transition animation of the contents.\n */\n @Input({ transform: booleanAttribute })\n public disableAnimation = false;\n\n /**\n * Output to enable support for two-way binding on [(selectedIndex)]\n */\n @Output()\n public selectedIndexChange = new EventEmitter<number>();\n\n /**\n * Emitted when the selected index is about to change.\n */\n @Output()\n public selectedIndexChanging = new EventEmitter<ITabsSelectedIndexChangingEventArgs>();\n\n /**\n * Emitted when the selected item is changed.\n */\n @Output()\n public selectedItemChange = new EventEmitter<ITabsSelectedItemChangeEventArgs>();\n\n /**\n * Returns the items.\n */\n @ContentChildren(IgxTabItemDirective)\n public items!: QueryList<IgxTabItemDirective>;\n\n /**\n * Gets the selected item.\n */\n public get selectedItem(): IgxTabItemDirective {\n return this.items && this.selectedIndex >= 0 && this.selectedIndex < this.items.length ?\n this.items.get(this.selectedIndex)! : null!;\n }\n\n /** @hidden */\n @ContentChildren(IgxTabContentBase, { descendants: true })\n public panels!: QueryList<IgxTabContentBase>;\n\n /** @hidden */\n protected override currentItem!: IgxTabItemDirective;\n /** @hidden */\n protected override previousItem!: IgxTabItemDirective;\n /** @hidden */\n protected componentName!: string;\n\n private _selectedIndex = -1;\n private _itemChanges$!: Subscription;\n\n /** @hidden */\n public ngAfterViewInit(): void {\n if (this._selectedIndex === -1) {\n const hasSelectedTab = this.items.some((tab, i) => {\n if (tab.selected) {\n this._selectedIndex = i;\n }\n return tab.selected;\n });\n\n if (!hasSelectedTab && this.hasPanels) {\n this._selectedIndex = 0;\n }\n }\n\n // Use promise to avoid expression changed after check error\n Promise.resolve().then(() => {\n this.updateSelectedTabs(null!, false);\n });\n\n this._itemChanges$ = this.items.changes.subscribe(() => {\n this.onItemChanges();\n });\n\n this.setAttributes();\n }\n\n /** @hidden */\n public override ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this._itemChanges$) {\n this._itemChanges$.unsubscribe();\n }\n }\n\n /** @hidden */\n public selectTab(tab: IgxTabItemDirective, selected: boolean): void {\n if (!this.items) {\n return;\n }\n\n const tabs = this.items.toArray();\n\n if (selected) {\n const index = tabs.indexOf(tab);\n if (index > -1) {\n this.selectedIndex = index;\n }\n } else {\n if (tabs.every(t => !t.selected)) {\n this.selectedIndex = -1;\n }\n }\n }\n\n /** @hidden */\n protected getPreviousElement(): HTMLElement {\n return this.previousItem.panelComponent.nativeElement;\n }\n\n /** @hidden */\n protected getCurrentElement(): HTMLElement {\n return this.currentItem.panelComponent.nativeElement;\n }\n\n /** @hidden */\n protected scrollTabHeaderIntoView() {\n }\n\n /** @hidden */\n protected onItemChanges() {\n this.setAttributes();\n\n // Check if there is selected tab\n let selectedIndex = -1;\n this.items.some((tab, i) => {\n if (tab.selected) {\n selectedIndex = i;\n }\n return tab.selected;\n });\n\n if (selectedIndex >= 0) {\n // Set the selected index to the tab that has selected=true\n Promise.resolve().then(() => {\n this.selectedIndex = selectedIndex;\n });\n } else {\n if (this.selectedIndex >= 0 && this.selectedIndex < this.items.length) {\n // Select the tab on the same index the previous selected tab was\n Promise.resolve().then(() => {\n this.updateSelectedTabs(null!);\n });\n } else if (this.selectedIndex >= this.items.length) {\n // Select the last tab\n Promise.resolve().then(() => {\n this.selectedIndex = this.items.length - 1;\n });\n }\n }\n }\n\n private setAttributes() {\n this.items.forEach(item => {\n if (item.panelComponent && !item.headerComponent.nativeElement.getAttribute('id')) {\n const id = this.getNextTabId();\n const tabHeaderId = `${this.componentName}-header-${id}`;\n const tabPanelId = `${this.componentName}-content-${id}`;\n\n this.setHeaderAttribute(item, 'id', tabHeaderId);\n this.setHeaderAttribute(item, 'aria-controls', tabPanelId);\n this.setPanelAttribute(item, 'id', tabPanelId);\n this.setPanelAttribute(item, 'aria-labelledby', tabHeaderId);\n }\n });\n }\n\n private setHeaderAttribute(item: IgxTabItemDirective, attrName: string, value: string) {\n item.headerComponent.nativeElement.setAttribute(attrName, value);\n }\n\n private setPanelAttribute(item: IgxTabItemDirective, attrName: string, value: string) {\n item.panelComponent.nativeElement.setAttribute(attrName, value);\n }\n\n private get hasPanels() {\n return this.panels && this.panels.length;\n }\n\n private updateSelectedTabs(oldSelectedIndex: number, raiseEvent = true) {\n if (!this.items) {\n return;\n }\n\n let newTab!: IgxTabItemDirective;\n const oldTab = this.currentItem;\n\n // First select the new tab\n if (this._selectedIndex >= 0 && this._selectedIndex < this.items.length) {\n newTab = this.items.get(this._selectedIndex)!;\n newTab.selected = true;\n }\n // Then unselect the other tabs\n this.items.forEach((tab, i) => {\n if (i !== this._selectedIndex) {\n tab.selected = false;\n }\n });\n\n if (this._selectedIndex !== oldSelectedIndex) {\n this.scrollTabHeaderIntoView();\n this.triggerPanelAnimations(oldSelectedIndex);\n\n if (raiseEvent && newTab !== oldTab) {\n this.selectedItemChange.emit({\n owner: this,\n newItem: newTab,\n oldItem: oldTab\n });\n }\n }\n }\n\n private triggerPanelAnimations(oldSelectedIndex: number) {\n const item = this.items.get(this._selectedIndex);\n const rtl = !isLeftToRight(this._element.nativeElement);\n\n if (item &&\n !this.disableAnimation &&\n this.hasPanels &&\n this.currentItem &&\n !this.currentItem.selected) {\n item.direction = (!rtl && this._selectedIndex > oldSelectedIndex) ||\n (rtl && this._selectedIndex < oldSelectedIndex)\n ? CarouselAnimationDirection.NEXT : CarouselAnimationDirection.PREV;\n\n if (this.previousItem && this.previousItem.previous) {\n this.previousItem.previous = false;\n }\n this.currentItem.direction = item.direction;\n\n this.previousItem = this.currentItem;\n this.currentItem = item;\n this.triggerAnimations();\n } else {\n this.currentItem = item!;\n }\n }\n\n /** @hidden */\n protected abstract getNextTabId(): any;\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n Input,\n NgZone,\n OnDestroy,\n ViewChild,\n inject,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IgxTabsBase } from '../tabs.base';\nimport { IgxTabsDirective } from '../tabs.directive';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { IgxIconButtonDirective, IgxRippleDirective } from 'igniteui-angular/directives';\nimport { IgxIconComponent } from 'igniteui-angular/icon';\nimport { getResizeObserver, PlatformUtil, isLeftToRight } from 'igniteui-angular/core';\n\nexport const IgxTabsAlignment = {\n start: 'start',\n end: 'end',\n center: 'center',\n justify: 'justify'\n} as const;\n\n/** @hidden */\nconst enum TabScrollButtonStyle {\n Enabled = 'enabled',\n Disabled = 'disabled',\n NotDisplayed = 'not_displayed'\n}\n\nexport type IgxTabsAlignment = (typeof IgxTabsAlignment)[keyof typeof IgxTabsAlignment];\n\n/** @hidden */\nlet NEXT_TAB_ID = 0;\n\n/**\n * Tabs component is used to organize or switch between similar data sets.\n *\n * @igxModule IgxTabsModule\n *\n * @igxTheme igx-tabs-theme\n *\n * @igxKeywords tabs\n *\n * @igxGroup Layouts\n *\n * @remarks\n * The Ignite UI for Angular Tabs component places tabs at the top and allows for scrolling when there are multiple tab items on the screen.\n *\n * @example\n * ```html\n * <igx-tabs>\n * <igx-tab-item>\n * <igx-tab-header>\n * <igx-icon igxTabHeaderIcon>folder</igx-icon>\n * <span igxTabHeaderLabel>Tab 1</span>\n * </igx-tab-header>\n * <igx-tab-content>\n * Content 1\n * </igx-tab-content>\n * </igx-tab-item>\n * ...\n * </igx-tabs>\n * ```\n */\n@Component({\n selector: 'igx-tabs',\n templateUrl: 'tabs.component.html',\n styleUrl: 'tabs.component.css',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: IgxTabsBase, useExisting: IgxTabsComponent }],\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [IgxRippleDirective, IgxIconComponent, NgClass, NgTemplateOutlet, IgxIconButtonDirective]\n})\n\nexport class IgxTabsComponent extends IgxTabsDirective implements AfterViewInit, OnDestroy {\n private ngZone = inject(NgZone);\n private platform = inject(PlatformUtil);\n\n\n /**\n * Gets/Sets the tab alignment. Defaults to `start`.\n */\n @Input()\n public get tabAlignment(): string | IgxTabsAlignment {\n return this._tabAlignment;\n }\n\n public set tabAlignment(value: string | IgxTabsAlignment) {\n this._tabAlignment = value;\n requestAnimationFrame(() => {\n this.updateScrollButtons();\n this.realignSelectedIndicator();\n });\n }\n\n /**\n * Determines the tab activation.\n * When set to auto, the tab is instantly selected while navigating with the Left/Right Arrows, Home or End keys and the corresponding panel is displayed.\n * When set to manual, the tab is only focused. The selection happens after pressing Space or Enter.\n * Defaults is auto.\n */\n @Input()\n public activation: 'auto' | 'manual' = 'auto';\n\n /** @hidden */\n @ViewChild('headerContainer', { static: true })\n public headerContainer!: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('viewPort', { static: true })\n public viewPort!: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('itemsWrapper', { static: true })\n public itemsWrapper!: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('itemsContainer', { static: true })\n public itemsContainer!: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('selectedIndicator')\n public selectedIndicator!: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('scrollPrevButton')\n public scrollPrevButton!: ElementRef<HTMLButtonElement>;\n\n /** @hidden */\n @ViewChild('scrollNextButton')\n public scrollNextButton!: ElementRef<HTMLButtonElement>;\n\n /** @hidden */\n @HostBinding('class.igx-tabs')\n public defaultClass = true;\n\n /** @hidden */\n public offset = 0;\n\n /** @hidden */\n protected override componentName = 'igx-tabs';\n\n private _tabAlignment: string | IgxTabsAlignment = 'start';\n private _resizeObserver!: ResizeObserver;\n\n /** @hidden @internal */\n public override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n\n this.ngZone.runOutsideAngular(() => {\n if (this.platform.isBrowser) {\n this._resizeObserver = new (getResizeObserver())(() => {\n this.updateScrollButtons();\n this.realignSelectedIndicator();\n });\n this._resizeObserver.observe(this.headerContainer.nativeElement);\n this._resizeObserver.observe(this.viewPort.nativeElement);\n }\n });\n }\n\n /** @hidden @internal */\n public override ngOnDestroy(): void {\n super.ngOnDestroy();\n\n this.ngZone.runOutsideAngular(() => {\n this._resizeObserver?.disconnect();\n });\n }\n\n /** @hidden */\n public scrollPrev() {\n this.scroll(false);\n }\n\n /** @hidden */\n public scrollNext() {\n this.scroll(true);\n }\n\n /** @hidden */\n public realignSelectedIndicator() {\n if (this.selectedIndex >= 0 && this.selectedIndex < this.items.length) {\n const header = this.items.get(this.selectedIndex)!.headerComponent.nativeElement;\n this.alignSelectedIndicator(header, 0);\n }\n }\n\n /** @hidden */\n public resolveHeaderScrollClasses() {\n return {\n 'igx-tabs-header-scroll--start': this.tabAlignment === 'start',\n 'igx-tabs-header-scroll--end': this.tabAlignment === 'end',\n 'igx-tabs-header-scroll--center': this.tabAlignment === 'center',\n 'igx-tabs-header-scroll--justify': this.tabAlignment === 'justify',\n };\n }\n\n /** @hidden */\n protected override scrollTabHeaderIntoView() {\n if (this.selectedIndex >= 0) {\n const tabItems = this.items.toArray();\n const tabHeaderNativeElement = tabItems[this.selectedIndex].headerComponent.nativeElement;\n\n // Scroll left if there is need\n if (this.getElementOffset(tabHeaderNativeElement) < this.offset) {\n this.scrollElement(tabHeaderNativeElement, false);\n }\n\n // Scroll right if there is need\n const viewPortOffsetWidth = this.viewPort.nativeElement.offsetWidth;\n const delta = (this.getElementOffset(tabHeaderNativeElement) + tabHeaderNativeElement.offsetWidth) - (viewPortOffsetWidth + this.offset);\n\n // Fix for IE 11, a difference is accumulated from the widths calculations\n if (delta > 1) {\n this.scrollElement(tabHeaderNativeElement, true);\n }\n\n this.alignSelectedIndicator(tabHeaderNativeElement);\n } else {\n this.hideSelectedIndicator();\n }\n }\n\n /** @hidden */\n protected getNextTabId() {\n return NEXT_TAB_ID++;\n }\n\n /** @hidden */\n protected override onItemChanges() {\n super.onItemChanges();\n\n Promise.resolve().then(() => {\n this.updateScrollButtons();\n });\n }\n\n private alignSelectedIndicator(element: HTMLElement, duration = 0.3): void {\n if (this.selectedIndicator) {\n this.selectedIndicator.nativeElement.style.visibility = 'visible';\n this.selectedIndicator.nativeElement.style.transitionDuration = duration > 0 ? `${duration}s` : 'initial';\n this.selectedIndicator.nativeElement.style.width = `${element.offsetWidth}px`;\n this.selectedIndicator.nativeElement.style.transform = `translate(${element.offsetLeft}px)`;\n }\n }\n\n private hideSelectedIndicator(): void {\n if (this.selectedIndicator) {\n this.selectedIndicator.nativeElement.style.visibility = 'hidden';\n }\n }\n\n private scroll(scrollNext: boolean): void {\n const tabsArray = this.items.toArray();\n\n for (let index = 0; index < tabsArray.length; index++) {\n const tab = tabsArray[index];\n const element = tab.headerComponent.nativeElement;\n if (scrollNext) {\n if (element.offsetWidth + this.getElementOffset(element) > this.viewPort.nativeElement.offsetWidth + this.offset) {\n this.scrollElement(element, scrollNext);\n break;\n }\n } else {\n if (this.getElementOffset(element) >= this.offset) {\n this.scrollElement(tabsArray[index - 1].headerComponent.nativeElement, scrollNext);\n break;\n }\n }\n }\n }\n\n private scrollElement(element: any, scrollNext: boolean): void {\n const viewPortWidth = this.viewPort.nativeElement.offsetWidth;\n\n this.offset = (scrollNext) ? element.offsetWidth + this.getElementOffset(element) - viewPortWidth : this.getElementOffset(element);\n this.viewPort.nativeElement.scrollLeft = this.getOffset(this.offset);\n this.updateScrollButtons();\n }\n\n private updateScrollButtons() {\n const itemsContainerWidth = this.getTabItemsContainerWidth();\n\n const scrollPrevButtonStyle = this.resolveLeftScrollButtonStyle(itemsContainerWidth);\n this.setScrollButtonStyle(this.scrollPrevButton.nativeElement, scrollPrevButtonStyle);\n\n const scrollNextButtonStyle = this.resolveRightScrollButtonStyle(itemsContainerWidth);\n this.setScrollButtonStyle(this.scrollNextButton.nativeElement, scrollNextButtonStyle);\n }\n\n private setScrollButtonStyle(button: HTMLButtonElement, buttonStyle: TabScrollButtonStyle) {\n if (buttonStyle === TabScrollButtonStyle.Enabled) {\n button.disabled = false;\n button.style.display = '';\n } else if (buttonStyle === TabScrollButtonStyle.Disabled) {\n button.disabled = true;\n button.style.display = '';\n } else if (buttonStyle === TabScrollButtonStyle.NotDisplayed) {\n button.style.display = 'none';\n }\n }\n private resolveLeftScrollButtonStyle(itemsContainerWidth: number): TabScrollButtonStyle {\n const headerContainerWidth = this.headerContainer.nativeElement.offsetWidth;\n const offset = this.offset;\n\n if (offset === 0) {\n // Fix for IE 11, a difference is accumulated from the widths calculations.\n if (itemsContainerWidth - headerContainerWidth <= 1) {\n return TabScrollButtonStyle.NotDisplayed;\n }\n return TabScrollButtonStyle.Disabled;\n } else {\n return TabScrollButtonStyle.Enabled;\n }\n }\n\n private resolveRightScrollButtonStyle(itemsContainerWidth: number): TabScrollButtonStyle {\n const viewPortWidth = this.viewPort.nativeElement.offsetWidth;\n const headerContainerWidth = this.headerContainer.nativeElement.offsetWidth;\n const offset = this.offset;\n const total = offset + viewPortWidth;\n\n // Fix for IE 11, a difference is accumulated from the widths calculations.\n if (itemsContainerWidth - headerContainerWidth <= 1 && offset === 0) {\n return TabScrollButtonStyle.NotDisplayed;\n }\n\n if (itemsContainerWidth > total) {\n return TabScrollButtonStyle.Enabled;\n } else {\n return TabScrollButtonStyle.Disabled;\n }\n }\n\n private getTabItemsContainerWidth() {\n // We use this hacky way to get the width of the itemsContainer,\n // because there is inconsistency in IE we cannot use offsetWidth or scrollOffset.\n const itemsContainerChildrenCount = this.itemsContainer.nativeElement.children.length;\n let itemsContainerWidth = 0;\n\n if (itemsContainerChildrenCount > 1) {\n const lastTab = this.itemsContainer.nativeElement.children[itemsContainerChildrenCount - 1] as HTMLElement;\n itemsContainerWidth = this.getElementOffset(lastTab) + lastTab.offsetWidth;\n }\n\n return itemsContainerWidth;\n }\n\n private getOffset(offset: number): number {\n return isLeftToRight(this._element.nativeElement) ? offset : -offset;\n }\n\n private getElementOffset(element: HTMLElement): number {\n const rtl = !isLeftToRight(this._element.nativeElement);\n return rtl ? this.itemsWrapper.nativeElement.offsetWidth - element.offsetLeft - element.offsetWidth : element.offsetLeft;\n }\n}\n","<div #headerContainer class=\"igx-tabs-header\">\n <button #scrollPrevButton type=\"button\" igxIconButton=\"flat\" igxRipple tabindex=\"-1\" class=\"igx-tabs-header-button\" (click)=\"scrollPrev()\">\n <igx-icon family=\"default\" name=\"prev\"></igx-icon>\n </button>\n <div #viewPort class=\"igx-tabs-header__content\">\n <div #itemsWrapper class=\"igx-tabs-header__wrapper\" role=\"tablist\">\n <div #itemsContainer class=\"igx-tabs-header-scroll\" [ngClass]=\"resolveHeaderScrollClasses()\">\n @for (tab of items; track tab; let i = $index) {\n <ng-container *ngTemplateOutlet=\"tab.headerTemplate\"></ng-container>\n }\n </div>\n @if (items.length > 0) {\n <div #selectedIndicator class=\"igx-tabs-header__active-indicator\">\n </div>\n }\n </div>\n </div>\n <button #scrollNextButton type=\"button\" igxIconButton=\"flat\" igxRipple tabindex=\"-1\" class=\"igx-tabs-header-button\" (click)=\"scrollNext()\">\n <igx-icon family=\"default\" name=\"next\"></igx-icon>\n </button>\n</div>\n<div class=\"igx-tabs-content\">\n @for (tab of items; track tab; let i = $index) {\n <ng-container *ngTemplateOutlet=\"tab.panelTemplate\"></ng-container>\n }\n</div>\n","import {\n AfterViewInit,\n Component,\n HostBinding,\n HostListener,\n NgZone,\n OnDestroy,\n inject,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IgxTabHeaderDirective } from '../../tab-header.directive';\nimport { IgxTabHeaderBase } from '../../tabs.base';\nimport { IgxTabsComponent } from './../tabs.component';\nimport { getResizeObserver, isLeftToRight } from 'igniteui-angular/core';\n\n@Component({\n selector: 'igx-tab-header',\n templateUrl: 'tab-header.component.html',\n styleUrl: 'tab-header.component.css',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: IgxTabHeaderBase, useExisting: IgxTabHeaderComponent }],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: true\n})\nexport class IgxTabHeaderComponent extends IgxTabHeaderDirective implements AfterViewInit, OnDestroy {\n protected override tabs = inject(IgxTabsComponent);\n private ngZone = inject(NgZone);\n\n /** @hidden @internal */\n @HostBinding('class.igx-tab-header--selected')\n public get provideCssClassSelected(): boolean {\n return this.tab.selected;\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-tab-header--disabled')\n public get provideCssClassDisabled(): boolean {\n return this.tab.disabled;\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-tab-header--justify')\n public get applyJustifyClass(): boolean {\n return this.tabs.tabAlignment === 'justify'; // Correctly accessing tabsAlignment\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-tab-header')\n public cssClass = true;\n\n private _resizeObserver!: ResizeObserver;\n\n /** @hidden @internal */\n @HostListener('keydown', ['$event'])\n public keyDown(event: KeyboardEvent) {\n let unsupportedKey = false;\n const itemsArray = this.tabs.items.toArray();\n const previousIndex = itemsArray.indexOf(this.tab);\n let newIndex = previousIndex;\n const hasDisabledItems = itemsArray.some((item) => item.disabled);\n\n switch (event.key) {\n case this.platform.KEYMAP.ARROW_RIGHT:\n newIndex = this.getNewSelectionIndex(newIndex, itemsArray, event.key, hasDisabledItems);\n break;\n case this.platform.KEYMAP.ARROW_LEFT:\n newIndex = this.getNewSelectionIndex(newIndex, itemsArray, event.key, hasDisabledItems);\n break;\n case this.platform.KEYMAP.HOME:\n event.preventDefault();\n newIndex = 0;\n while (itemsArray[newIndex].disabled && newIndex < itemsArray.length) {\n newIndex = newIndex === itemsArray.length - 1 ? 0 : newIndex + 1;\n }\n break;\n case this.platform.KEYMAP.END:\n event.preventDefault();\n newIndex = itemsArray.length - 1;\n while (hasDisabledItems && itemsArray[newIndex].disabled && newIndex > 0) {\n newIndex = newIndex === 0 ? itemsArray.length - 1 : newIndex - 1;\n }\n break;\n case this.platform.KEYMAP.ENTER:\n case this.platform.KEYMAP.SPACE:\n event.preventDefault();\n if (this.tabs.activation === 'manual') {\n this.nativeElement.click();\n }\n unsupportedKey = true;\n break;\n default:\n unsupportedKey = true;\n break;\n }\n\n if (!unsupportedKey) {\n itemsArray[newIndex].headerComponent.nativeElement.focus({ preventScroll: true });\n if (this.tabs.activation === 'auto') {\n this.tabs.selectedIndex = newIndex;\n }\n }\n }\n\n /** @hidden @internal */\n public ngAfterViewInit(): void {\n this.ngZone.runOutsideAngular(() => {\n if (this.platform.isBrowser) {\n this._resizeObserver = new (getResizeObserver())(() => {\n this.tabs.realignSelectedIndicator();\n });\n this._resizeObserver.observe(this.nativeElement);\n }\n });\n }\n\n /** @hidden @internal */\n public ngOnDestroy(): void {\n this.ngZone.runOutsideAngular(() => {\n this._resizeObserver?.disconnect();\n });\n }\n\n private getNewSelectionIndex(newIndex: number, itemsArray: any[], key: string, hasDisabledItems: boolean): number {\n const rtl = !isLeftToRight(this.nativeElement);\n\n if ((key === this.platform.KEYMAP.ARROW_RIGHT && !rtl) || (key === this.platform.KEYMAP.ARROW_LEFT && rtl)) {\n newIndex = newIndex === itemsArray.length - 1 ? 0 : newIndex + 1;\n while (hasDisabledItems && itemsArray[newIndex].disabled && newIndex < itemsArray.length) {\n newIndex = newIndex === itemsArray.length - 1 ? 0 : newIndex + 1;\n }\n } else {\n newIndex = newIndex === 0 ? itemsArray.length - 1 : newIndex - 1;\n while (hasDisabledItems && itemsArray[newIndex].disabled && newIndex >= 0) {\n newIndex = newIndex === 0 ? itemsArray.length - 1 : newIndex - 1;\n }\n }\n return newIndex;\n }\n}\n","<ng-content select=\"igx-prefix,[igxPrefix]\"></ng-content>\n\n<div class=\"igx-tab-header__inner\">\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"igx-suffix,[igxSuffix]\"></ng-content>\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\nimport { IgxTabItemDirective } from '../../tab-item.directive';\n\n@Component({\n selector: 'igx-tab-item',\n templateUrl: 'tab-item.component.html',\n styleUrl: 'tab-item.component.css',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: IgxTabItemDirective, useExisting: IgxTabItemComponent }],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: true\n})\nexport class IgxTabItemComponent extends IgxTabItemDirective {\n\n}\n","<ng-template #headerTemplate>\n <ng-content select=\"igx-tab-header\"></ng-content>\n</ng-template>\n<ng-template #panelTemplate>\n <ng-content select=\"igx-tab-content\"></ng-content>\n</ng-template>\n","import { Directive } from '@angular/core';\nimport { IgxNoTypographyDirective } from 'igniteui-angular/directives';\n\n@Directive({\n selector: '[igxTabHeaderLabel],igx-tab-header-label',\n standalone: true,\n hostDirectives: [IgxNoTypographyDirective]\n})\nexport class IgxTabHeaderLabelDirective { }\n\n@Directive({\n selector: '[igxTabHeaderIcon],igx-tab-header-icon',\n standalone: true\n})\nexport class IgxTabHeaderIconDirective { }\n","import { IgxTabContentComponent } from './content/tab-content.component';\nimport { IgxTabHeaderComponent } from './header/tab-header.component';\nimport { IgxTabItemComponent } from './item/tab-item.component';\nimport { IgxPrefixDirective, IgxSuffixDirective } from 'igniteui-angular/input-group';\nimport { IgxTabsComponent } from './tabs.component';\nimport { IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective } from './tabs.directives';\n\nexport * from './tabs.component';\nexport * from './item/tab-item.component';\nexport * from './header/tab-header.component';\nexport * from './tabs.directives';\nexport * from './content/tab-content.component';\nexport {\n ITabsSelectedIndexChangingEventArgs,\n ITabsSelectedItemChangeEventArgs\n} from '../tabs.directive'\n\n/* NOTE: Tabs directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_TABS_DIRECTIVES = [\n IgxTabsComponent,\n IgxTabItemComponent,\n IgxTabHeaderComponent,\n IgxTabContentComponent,\n IgxTabHeaderLabelDirective,\n IgxTabHeaderIconDirective,\n IgxPrefixDirective,\n IgxSuffixDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_TABS_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [\n ...IGX_TABS_DIRECTIVES\n ],\n exports: [\n ...IGX_TABS_DIRECTIVES\n ]\n})\nexport class IgxTabsModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxTabsComponent","i2.IgxTabItemComponent","i3.IgxTabHeaderComponent","i4.IgxTabContentComponent","i5.IgxTabHeaderLabelDirective","i5.IgxTabHeaderIconDirective"],"mappings":";;;;;;;;;;;AAEA;MACsB,WAAW,CAAA;AAIhC;AAED;MACsB,cAAc,CAAA;AAOnC;AAED;MACsB,gBAAgB,CAAA;AAErC;AAED;MACsB,iBAAiB,CAAA;AAEtC;;MCtBqB,mBAAmB,CAAA;AADzC,IAAA,WAAA,GAAA;;AAGY,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;AAkBlC;;AAEG;AAEI,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAW;AAEnD;;AAEG;QAEI,IAAA,CAAA,QAAQ,GAAG,KAAK;;AAGhB,QAAA,IAAA,CAAA,SAAS,GAAG,0BAA0B,CAAC,IAAI;QAI1C,IAAA,CAAA,SAAS,GAAG,KAAK;AAiB5B,IAAA;AAfG;;AAEG;AACH,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,QAAQ,CAAC,KAAc,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;YACtB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACzC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAC5C;IACJ;8GArDkB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,mEA6BjB,gBAAgB,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAahB,gBAAgB,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EArCtB,gBAAgB,iFAIhB,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FATb,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBADxC;;sBAMI,YAAY;uBAAC,gBAAgB;;sBAI7B,YAAY;uBAAC,iBAAiB;;sBAI9B,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;sBAI5C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;sBAM3C;;sBAMA,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAarC,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;;MC1CpB,sBAAsB,CAAA;AAD5C,IAAA,WAAA,GAAA;;AAGW,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,mBAAmB,CAAC;;AAEhC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,EAAC,UAAuB,EAAC;;QAI7C,IAAA,CAAA,IAAI,GAAG,UAAU;AAkB3B,IAAA;;AAfG,IAAA,IACW,QAAQ,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC;;AAGA,IAAA,IACW,MAAM,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,MAAM,GAAG,CAAC,CAAC;IAC1C;;AAGA,IAAA,IAAW,aAAa,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa;IACxC;8GAzBkB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAD3C;;sBAQI,WAAW;uBAAC,WAAW;;sBAIvB,WAAW;uBAAC,eAAe;;sBAM3B,WAAW;uBAAC,eAAe;;;ACV1B,MAAO,sBAAuB,SAAQ,sBAAsB,CAAA;AARlE,IAAA,WAAA,GAAA;;;QAWW,IAAA,CAAA,QAAQ,GAAG,IAAI;AACzB,IAAA;8GAJY,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,+BAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAFpB,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,iDCVpF,0EAGA,EAAA,MAAA,EAAA,CAAA,0XAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDSa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,mBAGV,uBAAuB,CAAC,KAAK,EAAA,aAAA,EAC/B,iBAAiB,CAAC,IAAI,EAAA,SAAA,EAC1B,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAA,sBAAwB,EAAE,CAAC,EAAA,QAAA,EAAA,0EAAA,EAAA,MAAA,EAAA,CAAA,0XAAA,CAAA,EAAA;;sBAI/E,WAAW;uBAAC,+BAA+B;;;MEP1B,qBAAqB,CAAA;AAD3C,IAAA,WAAA,GAAA;;AAGc,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;;AAE7B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,mBAAmB,CAAC;;AAEhC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,EAAC,UAAuB,EAAC;;AAE1C,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC;;QAIlC,IAAA,CAAA,IAAI,GAAG,KAAK;AAgCtB,IAAA;;AA7BG,IAAA,IACW,QAAQ,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC;;AAGA,IAAA,IACW,YAAY,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ;IAC5B;;AAGA,IAAA,IACW,YAAY,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ;IAC5B;;IAIO,OAAO,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;QACvC;IACJ;;AAGA,IAAA,IAAW,aAAa,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa;IACxC;8GA3CkB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAD1C;;sBAYI,WAAW;uBAAC,WAAW;;sBAIvB,WAAW;uBAAC,eAAe;;sBAM3B,WAAW;uBAAC,oBAAoB;;sBAMhC,WAAW;uBAAC,oBAAoB;;sBAMhC,YAAY;uBAAC,OAAO;;;ACbnB,MAAgB,gBAAiB,SAAQ,wBAAwB,CAAA;AADvE,IAAA,WAAA,GAAA;;AAEuB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAA0B,UAAU,CAAC;AAiCzE;;AAEG;QAEI,IAAA,CAAA,gBAAgB,GAAG,KAAK;AAE/B;;AAEG;AAEI,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAU;AAEvD;;AAEG;AAEI,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAuC;AAEtF;;AAEG;AAEI,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAoC;QA2BxE,IAAA,CAAA,cAAc,GAAG,CAAC,CAAC;AAkM9B,IAAA;AAlRG;;;AAGG;AACH,IAAA,IACW,aAAa,GAAA;QACpB,OAAO,IAAI,CAAC,cAAc;IAC9B;IAEA,IAAW,aAAa,CAAC,KAAa,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE;YAC/B,IAAI,QAAQ,GAAG,KAAK;AACpB,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc;AACpC,YAAA,MAAM,IAAI,GAAwC;AAC9C,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,MAAM,EAAE,KAAK;gBACb,QAAQ;gBACR;aACH;AACD,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;AAErC,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACd,gBAAA,QAAQ,GAAG,IAAI,CAAC,QAAQ;AACxB,gBAAA,IAAI,CAAC,cAAc,GAAG,QAAQ;gBAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;YACtD;AAEA,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QACrC;IACJ;AAgCA;;AAEG;AACH,IAAA,IAAW,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;AAClF,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAE,GAAG,IAAK;IACnD;;IAiBO,eAAe,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC,CAAC,EAAE;AAC5B,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,KAAI;AAC9C,gBAAA,IAAI,GAAG,CAAC,QAAQ,EAAE;AACd,oBAAA,IAAI,CAAC,cAAc,GAAG,CAAC;gBAC3B;gBACA,OAAO,GAAG,CAAC,QAAQ;AACvB,YAAA,CAAC,CAAC;AAEF,YAAA,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,EAAE;AACnC,gBAAA,IAAI,CAAC,cAAc,GAAG,CAAC;YAC3B;QACJ;;AAGA,QAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAK,EAAE,KAAK,CAAC;AACzC,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;YACnD,IAAI,CAAC,aAAa,EAAE;AACxB,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,aAAa,EAAE;IACxB;;IAGgB,WAAW,GAAA;QACvB,KAAK,CAAC,WAAW,EAAE;AACnB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;QACpC;IACJ;;IAGO,SAAS,CAAC,GAAwB,EAAE,QAAiB,EAAA;AACxD,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACb;QACJ;QAEA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QAEjC,IAAI,QAAQ,EAAE;YACV,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AAC/B,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACZ,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK;YAC9B;QACJ;aAAO;AACH,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;AAC9B,gBAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YAC3B;QACJ;IACJ;;IAGU,kBAAkB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,aAAa;IACzD;;IAGU,iBAAiB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,aAAa;IACxD;;IAGU,uBAAuB,GAAA;IACjC;;IAGU,aAAa,GAAA;QACnB,IAAI,CAAC,aAAa,EAAE;;AAGpB,QAAA,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,KAAI;AACvB,YAAA,IAAI,GAAG,CAAC,QAAQ,EAAE;gBACd,aAAa,GAAG,CAAC;YACrB;YACA,OAAO,GAAG,CAAC,QAAQ;AACvB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,aAAa,IAAI,CAAC,EAAE;;AAEpB,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,gBAAA,IAAI,CAAC,aAAa,GAAG,aAAa;AACtC,YAAA,CAAC,CAAC;QACN;aAAO;AACH,YAAA,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;;AAEnE,gBAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,oBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAK,CAAC;AAClC,gBAAA,CAAC,CAAC;YACN;iBAAO,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;;AAEhD,gBAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;oBACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AAC9C,gBAAA,CAAC,CAAC;YACN;QACJ;IACJ;IAEQ,aAAa,GAAA;AACjB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;AACtB,YAAA,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AAC/E,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE;gBAC9B,MAAM,WAAW,GAAG,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,QAAA,EAAW,EAAE,CAAA,CAAE;gBACxD,MAAM,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,SAAA,EAAY,EAAE,CAAA,CAAE;gBAExD,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC;gBAChD,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,CAAC;gBAC1D,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC;gBAC9C,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,EAAE,WAAW,CAAC;YAChE;AACJ,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,kBAAkB,CAAC,IAAyB,EAAE,QAAgB,EAAE,KAAa,EAAA;QACjF,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC;IACpE;AAEQ,IAAA,iBAAiB,CAAC,IAAyB,EAAE,QAAgB,EAAE,KAAa,EAAA;QAChF,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC;IACnE;AAEA,IAAA,IAAY,SAAS,GAAA;QACjB,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;IAC5C;AAEQ,IAAA,kBAAkB,CAAC,gBAAwB,EAAE,UAAU,GAAG,IAAI,EAAA;AAClE,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACb;QACJ;AAEA,QAAA,IAAI,MAA4B;AAChC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW;;AAG/B,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACrE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAE;AAC7C,YAAA,MAAM,CAAC,QAAQ,GAAG,IAAI;QAC1B;;QAEA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,KAAI;AAC1B,YAAA,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,EAAE;AAC3B,gBAAA,GAAG,CAAC,QAAQ,GAAG,KAAK;YACxB;AACJ,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,gBAAgB,EAAE;YAC1C,IAAI,CAAC,uBAAuB,EAAE;AAC9B,YAAA,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC;AAE7C,YAAA,IAAI,UAAU,IAAI,MAAM,KAAK,MAAM,EAAE;AACjC,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AACzB,oBAAA,KAAK,EAAE,IAAI;AACX,oBAAA,OAAO,EAAE,MAAM;AACf,oBAAA,OAAO,EAAE;AACZ,iBAAA,CAAC;YACN;QACJ;IACJ;AAEQ,IAAA,sBAAsB,CAAC,gBAAwB,EAAA;AACnD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAChD,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;AAEvD,QAAA,IAAI,IAAI;YACJ,CAAC,IAAI,CAAC,gBAAgB;AACtB,YAAA,IAAI,CAAC,SAAS;AACd,YAAA,IAAI,CAAC,WAAW;AAChB,YAAA,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;AAC5B,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc,GAAG,gBAAgB;AAC5D,iBAAC,GAAG,IAAI,IAAI,CAAC,cAAc,GAAG,gBAAgB;kBAC5C,0BAA0B,CAAC,IAAI,GAAG,0BAA0B,CAAC,IAAI;YAEvE,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AACjD,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK;YACtC;YACA,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAE3C,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW;AACpC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;YACvB,IAAI,CAAC,iBAAiB,EAAE;QAC5B;aAAO;AACH,YAAA,IAAI,CAAC,WAAW,GAAG,IAAK;QAC5B;IACJ;8GAjRkB,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,EAqCd,gBAAgB,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAwBnB,mBAAmB,yCAYnB,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAzEhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBADrC;;sBAQI;;sBA8BA,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAMrC;;sBAMA;;sBAMA;;sBAMA,eAAe;uBAAC,mBAAmB;;sBAYnC,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;;;AChFtD,MAAM,gBAAgB,GAAG;AAC5B,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,OAAO,EAAE;;AAYb;AACA,IAAI,WAAW,GAAG,CAAC;AAEnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;AAWG,MAAO,gBAAiB,SAAQ,gBAAgB,CAAA;AAVtD,IAAA,WAAA,GAAA;;AAWY,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC;AAmBvC;;;;;AAKG;QAEI,IAAA,CAAA,UAAU,GAAsB,MAAM;;QAgCtC,IAAA,CAAA,YAAY,GAAG,IAAI;;QAGnB,IAAA,CAAA,MAAM,GAAG,CAAC;;QAGE,IAAA,CAAA,aAAa,GAAG,UAAU;QAErC,IAAA,CAAA,aAAa,GAA8B,OAAO;AAuN7D,IAAA;AAtRG;;AAEG;AACH,IAAA,IACW,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,YAAY,CAAC,KAAgC,EAAA;AACpD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;QAC1B,qBAAqB,CAAC,MAAK;YACvB,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,wBAAwB,EAAE;AACnC,QAAA,CAAC,CAAC;IACN;;IAqDgB,eAAe,GAAA;QAC3B,KAAK,CAAC,eAAe,EAAE;AAEvB,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AAC/B,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;gBACzB,IAAI,CAAC,eAAe,GAAG,KAAK,iBAAiB,EAAE,EAAE,MAAK;oBAClD,IAAI,CAAC,mBAAmB,EAAE;oBAC1B,IAAI,CAAC,wBAAwB,EAAE;AACnC,gBAAA,CAAC,CAAC;gBACF,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;gBAChE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC7D;AACJ,QAAA,CAAC,CAAC;IACN;;IAGgB,WAAW,GAAA;QACvB,KAAK,CAAC,WAAW,EAAE;AAEnB,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AAC/B,YAAA,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE;AACtC,QAAA,CAAC,CAAC;IACN;;IAGO,UAAU,GAAA;AACb,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IACtB;;IAGO,UAAU,GAAA;AACb,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IACrB;;IAGO,wBAAwB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACnE,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAE,CAAC,eAAe,CAAC,aAAa;AAChF,YAAA,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1C;IACJ;;IAGO,0BAA0B,GAAA;QAC7B,OAAO;AACH,YAAA,+BAA+B,EAAE,IAAI,CAAC,YAAY,KAAK,OAAO;AAC9D,YAAA,6BAA6B,EAAE,IAAI,CAAC,YAAY,KAAK,KAAK;AAC1D,YAAA,gCAAgC,EAAE,IAAI,CAAC,YAAY,KAAK,QAAQ;AAChE,YAAA,iCAAiC,EAAE,IAAI,CAAC,YAAY,KAAK,SAAS;SACrE;IACL;;IAGmB,uBAAuB,GAAA;AACtC,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACrC,YAAA,MAAM,sBAAsB,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,aAAa;;YAGzF,IAAI,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AAC7D,gBAAA,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,KAAK,CAAC;YACrD;;YAGA,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW;YACnE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,GAAG,sBAAsB,CAAC,WAAW,KAAK,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC;;AAGxI,YAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACX,gBAAA,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,IAAI,CAAC;YACpD;AAEA,YAAA,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC;QACvD;aAAO;YACH,IAAI,CAAC,qBAAqB,EAAE;QAChC;IACJ;;IAGU,YAAY,GAAA;QAClB,OAAO,WAAW,EAAE;IACxB;;IAGmB,aAAa,GAAA;QAC5B,KAAK,CAAC,aAAa,EAAE;AAErB,QAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;YACxB,IAAI,CAAC,mBAAmB,EAAE;AAC9B,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,sBAAsB,CAAC,OAAoB,EAAE,QAAQ,GAAG,GAAG,EAAA;AAC/D,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS;YACjE,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,kBAAkB,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAA,EAAG,QAAQ,GAAG,GAAG,SAAS;AACzG,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,OAAO,CAAC,WAAW,IAAI;AAC7E,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,UAAA,EAAa,OAAO,CAAC,UAAU,KAAK;QAC/F;IACJ;IAEQ,qBAAqB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ;QACpE;IACJ;AAEQ,IAAA,MAAM,CAAC,UAAmB,EAAA;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AAEtC,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AACnD,YAAA,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC;AAC5B,YAAA,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,aAAa;YACjD,IAAI,UAAU,EAAE;gBACZ,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE;AAC9G,oBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC;oBACvC;gBACJ;YACJ;iBAAO;gBACH,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;AAC/C,oBAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,aAAa,EAAE,UAAU,CAAC;oBAClF;gBACJ;YACJ;QACJ;IACJ;IAEQ,aAAa,CAAC,OAAY,EAAE,UAAmB,EAAA;QACnD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW;AAE7D,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;AAClI,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QACpE,IAAI,CAAC,mBAAmB,EAAE;IAC9B;IAEQ,mBAAmB,GAAA;AACvB,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,yBAAyB,EAAE;QAE5D,MAAM,qBAAqB,GAAG,IAAI,CAAC,4BAA4B,CAAC,mBAAmB,CAAC;QACpF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,qBAAqB,CAAC;QAErF,MAAM,qBAAqB,GAAG,IAAI,CAAC,6BAA6B,CAAC,mBAAmB,CAAC;QACrF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,qBAAqB,CAAC;IACzF;IAEQ,oBAAoB,CAAC,MAAyB,EAAE,WAAiC,EAAA;QACrF,IAAI,WAAW,KAAA,SAAA,qCAAmC;AAC9C,YAAA,MAAM,CAAC,QAAQ,GAAG,KAAK;AACvB,YAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE;QAC7B;aAAO,IAAI,WAAW,KAAA,UAAA,sCAAoC;AACtD,YAAA,MAAM,CAAC,QAAQ,GAAG,IAAI;AACtB,YAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE;QAC7B;aAAO,IAAI,WAAW,KAAA,eAAA,0CAAwC;AAC1D,YAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;QACjC;IACJ;AACQ,IAAA,4BAA4B,CAAC,mBAA2B,EAAA;QAC5D,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,WAAW;AAC3E,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAE1B,QAAA,IAAI,MAAM,KAAK,CAAC,EAAE;;AAEd,YAAA,IAAI,mBAAmB,GAAG,oBAAoB,IAAI,CAAC,EAAE;gBACjD,OAAA,eAAA;YACJ;YACA,OAAA,UAAA;QACJ;aAAO;YACH,OAAA,SAAA;QACJ;IACJ;AAEQ,IAAA,6BAA6B,CAAC,mBAA2B,EAAA;QAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW;QAC7D,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,WAAW;AAC3E,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAC1B,QAAA,MAAM,KAAK,GAAG,MAAM,GAAG,aAAa;;QAGpC,IAAI,mBAAmB,GAAG,oBAAoB,IAAI,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE;YACjE,OAAA,eAAA;QACJ;AAEA,QAAA,IAAI,mBAAmB,GAAG,KAAK,EAAE;YAC7B,OAAA,SAAA;QACJ;aAAO;YACH,OAAA,UAAA;QACJ;IACJ;IAEQ,yBAAyB,GAAA;;;QAG7B,MAAM,2BAA2B,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM;QACrF,IAAI,mBAAmB,GAAG,CAAC;AAE3B,QAAA,IAAI,2BAA2B,GAAG,CAAC,EAAE;AACjC,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,2BAA2B,GAAG,CAAC,CAAgB;YAC1G,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW;QAC9E;AAEA,QAAA,OAAO,mBAAmB;IAC9B;AAEQ,IAAA,SAAS,CAAC,MAAc,EAAA;AAC5B,QAAA,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM;IACxE;AAEQ,IAAA,gBAAgB,CAAC,OAAoB,EAAA;QACzC,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;QACvD,OAAO,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU;IAC5H;8GA1RS,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,SAAA,EALd,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1ExE,k0CA0BA,EAAA,MAAA,EAAA,CAAA,6HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDkDc,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,yGAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAGxF,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAV5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,aAAA,EAGL,iBAAiB,CAAC,IAAI,EAAA,SAAA,EAC1B,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,kBAAkB,EAAE,CAAC,EAAA,eAAA,EACnD,uBAAuB,CAAC,KAAK,EAAA,OAAA,EACrC,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,EAAA,QAAA,EAAA,k0CAAA,EAAA,MAAA,EAAA,CAAA,6HAAA,CAAA,EAAA;;sBAWjG;;sBAmBA;;sBAIA,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;sBAI7C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;sBAItC,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;sBAI1C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;sBAI5C,SAAS;uBAAC,mBAAmB;;sBAI7B,SAAS;uBAAC,kBAAkB;;sBAI5B,SAAS;uBAAC,kBAAkB;;sBAI5B,WAAW;uBAAC,gBAAgB;;;AEjH3B,MAAO,qBAAsB,SAAQ,qBAAqB,CAAA;AAThE,IAAA,WAAA,GAAA;;AAUuB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC1C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;;QAsBxB,IAAA,CAAA,QAAQ,GAAG,IAAI;AA0FzB,IAAA;;AA7GG,IAAA,IACW,uBAAuB,GAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ;IAC5B;;AAGA,IAAA,IACW,uBAAuB,GAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ;IAC5B;;AAGA,IAAA,IACW,iBAAiB,GAAA;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC;IAChD;;AAUO,IAAA,OAAO,CAAC,KAAoB,EAAA;QAC/B,IAAI,cAAc,GAAG,KAAK;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QAC5C,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAClD,IAAI,QAAQ,GAAG,aAAa;AAC5B,QAAA,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC;AAEjE,QAAA,QAAQ,KAAK,CAAC,GAAG;AACb,YAAA,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW;AACjC,gBAAA,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;gBACvF;AACJ,YAAA,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU;AAChC,gBAAA,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC;gBACvF;AACJ,YAAA,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI;gBAC1B,KAAK,CAAC,cAAc,EAAE;gBACtB,QAAQ,GAAG,CAAC;AACZ,gBAAA,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,IAAI,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE;AAClE,oBAAA,QAAQ,GAAG,QAAQ,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC;gBACpE;gBACA;AACJ,YAAA,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG;gBACzB,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,QAAQ,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;AAChC,gBAAA,OAAO,gBAAgB,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,IAAI,QAAQ,GAAG,CAAC,EAAE;AACtE,oBAAA,QAAQ,GAAG,QAAQ,KAAK,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC;gBACpE;gBACA;AACJ,YAAA,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK;AAC/B,YAAA,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK;gBAC3B,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;AACnC,oBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;gBAC9B;gBACA,cAAc,GAAG,IAAI;gBACrB;AACJ,YAAA;gBACI,cAAc,GAAG,IAAI;gBACrB;;QAGR,IAAI,CAAC,cAAc,EAAE;AACjB,YAAA,UAAU,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;YACjF,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE;AACjC,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,QAAQ;YACtC;QACJ;IACJ;;IAGO,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AAC/B,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;gBACzB,IAAI,CAAC,eAAe,GAAG,KAAK,iBAAiB,EAAE,EAAE,MAAK;AAClD,oBAAA,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;AACxC,gBAAA,CAAC,CAAC;gBACF,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;YACpD;AACJ,QAAA,CAAC,CAAC;IACN;;IAGO,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AAC/B,YAAA,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE;AACtC,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,oBAAoB,CAAC,QAAgB,EAAE,UAAiB,EAAE,GAAW,EAAE,gBAAyB,EAAA;QACpG,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;AAE9C,QAAA,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,GAAG,MAAM,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,EAAE;AACxG,YAAA,QAAQ,GAAG,QAAQ,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC;AAChE,YAAA,OAAO,gBAAgB,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,IAAI,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE;AACtF,gBAAA,QAAQ,GAAG,QAAQ,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC;YACpE;QACJ;aAAO;AACH,YAAA,QAAQ,GAAG,QAAQ,KAAK,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC;AAChE,YAAA,OAAO,gBAAgB,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,IAAI,QAAQ,IAAI,CAAC,EAAE;AACvE,gBAAA,QAAQ,GAAG,QAAQ,KAAK,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC;YACpE;QACJ;AACA,QAAA,OAAO,QAAQ;IACnB;8GAjHS,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gCAAA,EAAA,8BAAA,EAAA,gCAAA,EAAA,8BAAA,EAAA,+BAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAJnB,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,iDCrBlF,8MAOA,EAAA,MAAA,EAAA,CAAA,0vKAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDkBa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;+BACI,gBAAgB,EAAA,aAAA,EAGX,iBAAiB,CAAC,IAAI,aAC1B,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAA,qBAAuB,EAAE,CAAC,EAAA,eAAA,EAC7D,uBAAuB,CAAC,KAAK,cAClC,IAAI,EAAA,QAAA,EAAA,8MAAA,EAAA,MAAA,EAAA,CAAA,0vKAAA,CAAA,EAAA;;sBAOf,WAAW;uBAAC,gCAAgC;;sBAM5C,WAAW;uBAAC,gCAAgC;;sBAM5C,WAAW;uBAAC,+BAA+B;;sBAM3C,WAAW;uBAAC,sBAAsB;;sBAMlC,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;;AE1CjC,MAAO,mBAAoB,SAAQ,mBAAmB,CAAA;8GAA/C,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EAJjB,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,iDCRnF,kNAMA,EAAA,MAAA,EAAA,CAAA,ivFAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDMa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;+BACI,cAAc,EAAA,aAAA,EAGT,iBAAiB,CAAC,IAAI,aAC1B,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAA,mBAAqB,EAAE,CAAC,EAAA,eAAA,EAC9D,uBAAuB,CAAC,KAAK,cAClC,IAAI,EAAA,QAAA,EAAA,kNAAA,EAAA,MAAA,EAAA,CAAA,ivFAAA,CAAA,EAAA;;;MEFP,0BAA0B,CAAA;8GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,0CAA0C;AACpD,oBAAA,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,CAAC,wBAAwB;AAC5C,iBAAA;;MAOY,yBAAyB,CAAA;8GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wCAAwC;AAClD,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACID;AACO,MAAM,mBAAmB,GAAG;IAC/B,gBAAgB;IAChB,mBAAmB;IACnB,qBAAqB;IACrB,sBAAsB;IACtB,0BAA0B;IAC1B,yBAAyB;IACzB,kBAAkB;IAClB;;;ACvBJ;;;AAGG;MASU,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAb,aAAa,EAAA,OAAA,EAAA,CAAAA,gBAAA,EAAAC,mBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,0BAAA,EAAAC,yBAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAAL,gBAAA,EAAAC,mBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,0BAAA,EAAAC,yBAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,CAAA;+GAAb,aAAa,EAAA,OAAA,EAAA,CAAAL,gBAAA,CAAA,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBARzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;AACL,wBAAA,GAAG;AACN,qBAAA;AACD,oBAAA,OAAO,EAAE;AACL,wBAAA,GAAG;AACN;AACJ,iBAAA;;;ACdD;;AAEG;;;;"}
1
+ {"version":3,"file":"igniteui-angular-tabs.mjs","sources":["../../../projects/igniteui-angular/tabs/src/tabs/tabs.base.ts","../../../projects/igniteui-angular/tabs/src/tabs/tab-item.directive.ts","../../../projects/igniteui-angular/tabs/src/tabs/tab-content.directive.ts","../../../projects/igniteui-angular/tabs/src/tabs/tabs/content/tab-content.component.ts","../../../projects/igniteui-angular/tabs/src/tabs/tabs/content/tab-content.component.html","../../../projects/igniteui-angular/tabs/src/tabs/tab-header.directive.ts","../../../projects/igniteui-angular/tabs/src/tabs/tabs.directive.ts","../../../projects/igniteui-angular/tabs/src/tabs/tabs/tabs.component.ts","../../../projects/igniteui-angular/tabs/src/tabs/tabs/tabs.component.html","../../../projects/igniteui-angular/tabs/src/tabs/tabs/header/tab-header.component.ts","../../../projects/igniteui-angular/tabs/src/tabs/tabs/header/tab-header.component.html","../../../projects/igniteui-angular/tabs/src/tabs/tabs/item/tab-item.component.ts","../../../projects/igniteui-angular/tabs/src/tabs/tabs/item/tab-item.component.html","../../../projects/igniteui-angular/tabs/src/tabs/tabs/tabs.directives.ts","../../../projects/igniteui-angular/tabs/src/tabs/tabs/public_api.ts","../../../projects/igniteui-angular/tabs/src/tabs/tabs/tabs.module.ts","../../../projects/igniteui-angular/tabs/src/igniteui-angular-tabs.ts"],"sourcesContent":["import { QueryList, TemplateRef } from '@angular/core';\n\n/** @hidden */\nexport abstract class IgxTabsBase {\n public items!: QueryList<IgxTabItemBase>;\n public selectedIndex!: number;\n public abstract selectTab(tab: IgxTabItemBase, selected: boolean): any;\n}\n\n/** @hidden */\nexport abstract class IgxTabItemBase {\n public disabled!: boolean;\n public selected!: boolean;\n public headerTemplate!: TemplateRef<any>;\n public panelTemplate!: TemplateRef<any>;\n public headerComponent!: IgxTabHeaderBase;\n public panelComponent!: IgxTabContentBase;\n}\n\n/** @hidden */\nexport abstract class IgxTabHeaderBase {\n public nativeElement!: HTMLElement;\n}\n\n/** @hidden */\nexport abstract class IgxTabContentBase {\n public nativeElement!: HTMLElement;\n}\n\n","import { ContentChild, Directive, EventEmitter, Input, Output, TemplateRef, ViewChild, booleanAttribute, inject } from '@angular/core';\nimport { IgxTabHeaderBase, IgxTabItemBase, IgxTabContentBase, IgxTabsBase } from './tabs.base';\nimport { CarouselAnimationDirection, IgxSlideComponentBase } from 'igniteui-angular/carousel';\n\n@Directive()\nexport abstract class IgxTabItemDirective implements IgxTabItemBase, IgxSlideComponentBase {\n /** @hidden */\n private tabs = inject(IgxTabsBase);\n\n /** @hidden */\n @ContentChild(IgxTabHeaderBase)\n public headerComponent!: IgxTabHeaderBase;\n\n /** @hidden */\n @ContentChild(IgxTabContentBase)\n public panelComponent!: IgxTabContentBase;\n\n /** @hidden */\n @ViewChild('headerTemplate', { static: true })\n public headerTemplate!: TemplateRef<any>;\n\n /** @hidden */\n @ViewChild('panelTemplate', { static: true })\n public panelTemplate!: TemplateRef<any>;\n\n /**\n * Output to enable support for two-way binding on [(selected)]\n */\n @Output()\n public selectedChange = new EventEmitter<boolean>();\n\n /**\n * Disables the item.\n */\n @Input({ transform: booleanAttribute })\n public disabled = false;\n\n /** @hidden */\n public direction = CarouselAnimationDirection.NONE;\n /** @hidden */\n public previous!: boolean;\n\n private _selected = false;\n\n /**\n * Gets/Sets whether an item is selected.\n */\n @Input({ transform: booleanAttribute })\n public get selected(): boolean {\n return this._selected;\n }\n\n public set selected(value: boolean) {\n if (this._selected !== value) {\n this._selected = value;\n this.tabs.selectTab(this, this._selected);\n this.selectedChange.emit(this._selected);\n }\n }\n}\n","import { Directive, ElementRef, HostBinding, inject } from '@angular/core';\nimport { IgxTabItemDirective } from './tab-item.directive';\nimport { IgxTabContentBase } from './tabs.base';\n\n@Directive()\nexport abstract class IgxTabContentDirective implements IgxTabContentBase {\n /** @hidden */\n public tab = inject(IgxTabItemDirective);\n /** @hidden */\n private elementRef = inject(ElementRef<HTMLElement>);\n\n /** @hidden */\n @HostBinding('attr.role')\n public role = 'tabpanel';\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n public get tabIndex() {\n return this.tab.selected ? 0 : -1;\n }\n\n /** @hidden */\n @HostBinding('style.z-index')\n public get zIndex() {\n return this.tab.selected ? 'auto' : -1;\n }\n\n /** @hidden */\n public get nativeElement() {\n return this.elementRef.nativeElement;\n }\n}\n","import {ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation} from '@angular/core';\nimport { IgxTabContentDirective } from '../../tab-content.directive';\nimport { IgxTabContentBase } from '../../tabs.base';\n\n@Component({\n selector: 'igx-tab-content',\n templateUrl: 'tab-content.component.html',\n styleUrl: 'tab-content.component.css',\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: IgxTabContentBase, useExisting: IgxTabContentComponent }],\n})\nexport class IgxTabContentComponent extends IgxTabContentDirective {\n /** @hidden */\n @HostBinding('class.igx-tabs-content__inner')\n public cssClass = true;\n}\n","@if (tab.selected || tab.previous) {\n <ng-content></ng-content>\n}\n","\nimport { Directive, ElementRef, HostBinding, HostListener, inject } from '@angular/core';\nimport { PlatformUtil } from 'igniteui-angular/core';\nimport { IgxTabItemDirective } from './tab-item.directive';\nimport { IgxTabHeaderBase, IgxTabsBase } from './tabs.base';\n\n@Directive()\nexport abstract class IgxTabHeaderDirective implements IgxTabHeaderBase {\n /** @hidden */\n protected tabs = inject(IgxTabsBase);\n /** @hidden */\n public tab = inject(IgxTabItemDirective);\n /** @hidden */\n private elementRef = inject(ElementRef<HTMLElement>);\n /** @hidden */\n protected platform = inject(PlatformUtil);\n\n /** @hidden */\n @HostBinding('attr.role')\n public role = 'tab';\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n public get tabIndex() {\n return this.tab.selected ? 0 : -1;\n }\n\n /** @hidden */\n @HostBinding('attr.aria-selected')\n public get ariaSelected() {\n return this.tab.selected;\n }\n\n /** @hidden */\n @HostBinding('attr.aria-disabled')\n public get ariaDisabled() {\n return this.tab.disabled;\n }\n\n /** @hidden */\n @HostListener('click')\n public onClick() {\n if (this.tab.panelComponent) {\n this.tabs.selectTab(this.tab, true);\n }\n }\n\n /** @hidden */\n public get nativeElement() {\n return this.elementRef.nativeElement;\n }\n}\n","import {\n AfterViewInit, ContentChildren, Directive, ElementRef, EventEmitter,\n Input, OnDestroy, Output, QueryList, booleanAttribute,\n inject\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { IBaseEventArgs, isLeftToRight } from 'igniteui-angular/core';\nimport { IgxTabItemDirective } from './tab-item.directive';\nimport { IgxTabContentBase, IgxTabsBase } from './tabs.base';\nimport { IgxCarouselComponentBase, CarouselAnimationDirection } from 'igniteui-angular/carousel';\n\nexport interface ITabsBaseEventArgs extends IBaseEventArgs {\n readonly owner: IgxTabsDirective;\n}\n\nexport interface ITabsSelectedIndexChangingEventArgs extends ITabsBaseEventArgs {\n cancel: boolean;\n readonly oldIndex: number;\n newIndex: number;\n}\n\nexport interface ITabsSelectedItemChangeEventArgs extends ITabsBaseEventArgs {\n readonly oldItem: IgxTabItemDirective;\n readonly newItem: IgxTabItemDirective;\n}\n\n@Directive()\nexport abstract class IgxTabsDirective extends IgxCarouselComponentBase implements IgxTabsBase, AfterViewInit, OnDestroy {\n protected readonly _element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Gets/Sets the index of the selected item.\n * Default value is 0 if contents are defined otherwise defaults to -1.\n */\n @Input()\n public get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n public set selectedIndex(value: number) {\n if (this._selectedIndex !== value) {\n let newIndex = value;\n const oldIndex = this._selectedIndex;\n const args: ITabsSelectedIndexChangingEventArgs = {\n owner: this,\n cancel: false,\n oldIndex,\n newIndex\n };\n this.selectedIndexChanging.emit(args);\n\n if (!args.cancel) {\n newIndex = args.newIndex;\n this._selectedIndex = newIndex;\n this.selectedIndexChange.emit(this._selectedIndex);\n }\n\n this.updateSelectedTabs(oldIndex);\n }\n }\n\n /**\n * Enables/disables the transition animation of the contents.\n */\n @Input({ transform: booleanAttribute })\n public disableAnimation = false;\n\n /**\n * Output to enable support for two-way binding on [(selectedIndex)]\n */\n @Output()\n public selectedIndexChange = new EventEmitter<number>();\n\n /**\n * Emitted when the selected index is about to change.\n */\n @Output()\n public selectedIndexChanging = new EventEmitter<ITabsSelectedIndexChangingEventArgs>();\n\n /**\n * Emitted when the selected item is changed.\n */\n @Output()\n public selectedItemChange = new EventEmitter<ITabsSelectedItemChangeEventArgs>();\n\n /**\n * Returns the items.\n */\n @ContentChildren(IgxTabItemDirective)\n public items!: QueryList<IgxTabItemDirective>;\n\n /**\n * Gets the selected item.\n */\n public get selectedItem(): IgxTabItemDirective {\n return this.items && this.selectedIndex >= 0 && this.selectedIndex < this.items.length ?\n this.items.get(this.selectedIndex)! : null!;\n }\n\n /** @hidden */\n @ContentChildren(IgxTabContentBase, { descendants: true })\n public panels!: QueryList<IgxTabContentBase>;\n\n /** @hidden */\n protected override currentItem!: IgxTabItemDirective;\n /** @hidden */\n protected override previousItem!: IgxTabItemDirective;\n /** @hidden */\n protected componentName!: string;\n\n private _selectedIndex = -1;\n private _itemChanges$!: Subscription;\n\n /** @hidden */\n public ngAfterViewInit(): void {\n if (this._selectedIndex === -1) {\n const hasSelectedTab = this.items.some((tab, i) => {\n if (tab.selected) {\n this._selectedIndex = i;\n }\n return tab.selected;\n });\n\n if (!hasSelectedTab && this.hasPanels) {\n this._selectedIndex = 0;\n }\n }\n\n // Use promise to avoid expression changed after check error\n Promise.resolve().then(() => {\n this.updateSelectedTabs(null!, false);\n });\n\n this._itemChanges$ = this.items.changes.subscribe(() => {\n this.onItemChanges();\n });\n\n this.setAttributes();\n }\n\n /** @hidden */\n public override ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this._itemChanges$) {\n this._itemChanges$.unsubscribe();\n }\n }\n\n /** @hidden */\n public selectTab(tab: IgxTabItemDirective, selected: boolean): void {\n if (!this.items) {\n return;\n }\n\n const tabs = this.items.toArray();\n\n if (selected) {\n const index = tabs.indexOf(tab);\n if (index > -1) {\n this.selectedIndex = index;\n }\n } else {\n if (tabs.every(t => !t.selected)) {\n this.selectedIndex = -1;\n }\n }\n }\n\n /** @hidden */\n protected getPreviousElement(): HTMLElement {\n return this.previousItem.panelComponent.nativeElement;\n }\n\n /** @hidden */\n protected getCurrentElement(): HTMLElement {\n return this.currentItem.panelComponent.nativeElement;\n }\n\n /** @hidden */\n protected scrollTabHeaderIntoView() {\n }\n\n /** @hidden */\n protected onItemChanges() {\n this.setAttributes();\n\n // Check if there is selected tab\n let selectedIndex = -1;\n this.items.some((tab, i) => {\n if (tab.selected) {\n selectedIndex = i;\n }\n return tab.selected;\n });\n\n if (selectedIndex >= 0) {\n // Set the selected index to the tab that has selected=true\n Promise.resolve().then(() => {\n this.selectedIndex = selectedIndex;\n });\n } else {\n if (this.selectedIndex >= 0 && this.selectedIndex < this.items.length) {\n // Select the tab on the same index the previous selected tab was\n Promise.resolve().then(() => {\n this.updateSelectedTabs(null!);\n });\n } else if (this.selectedIndex >= this.items.length) {\n // Select the last tab\n Promise.resolve().then(() => {\n this.selectedIndex = this.items.length - 1;\n });\n }\n }\n }\n\n private setAttributes() {\n this.items.forEach(item => {\n if (item.panelComponent && !item.headerComponent.nativeElement.getAttribute('id')) {\n const id = this.getNextTabId();\n const tabHeaderId = `${this.componentName}-header-${id}`;\n const tabPanelId = `${this.componentName}-content-${id}`;\n\n this.setHeaderAttribute(item, 'id', tabHeaderId);\n this.setHeaderAttribute(item, 'aria-controls', tabPanelId);\n this.setPanelAttribute(item, 'id', tabPanelId);\n this.setPanelAttribute(item, 'aria-labelledby', tabHeaderId);\n }\n });\n }\n\n private setHeaderAttribute(item: IgxTabItemDirective, attrName: string, value: string) {\n item.headerComponent.nativeElement.setAttribute(attrName, value);\n }\n\n private setPanelAttribute(item: IgxTabItemDirective, attrName: string, value: string) {\n item.panelComponent.nativeElement.setAttribute(attrName, value);\n }\n\n private get hasPanels() {\n return this.panels && this.panels.length;\n }\n\n private updateSelectedTabs(oldSelectedIndex: number, raiseEvent = true) {\n if (!this.items) {\n return;\n }\n\n let newTab!: IgxTabItemDirective;\n const oldTab = this.currentItem;\n\n // First select the new tab\n if (this._selectedIndex >= 0 && this._selectedIndex < this.items.length) {\n newTab = this.items.get(this._selectedIndex)!;\n newTab.selected = true;\n }\n // Then unselect the other tabs\n this.items.forEach((tab, i) => {\n if (i !== this._selectedIndex) {\n tab.selected = false;\n }\n });\n\n if (this._selectedIndex !== oldSelectedIndex) {\n this.scrollTabHeaderIntoView();\n this.triggerPanelAnimations(oldSelectedIndex);\n\n if (raiseEvent && newTab !== oldTab) {\n this.selectedItemChange.emit({\n owner: this,\n newItem: newTab,\n oldItem: oldTab\n });\n }\n }\n\n this.cdr.markForCheck();\n }\n\n private triggerPanelAnimations(oldSelectedIndex: number) {\n const item = this.items.get(this._selectedIndex);\n const rtl = !isLeftToRight(this._element.nativeElement);\n\n if (item &&\n !this.disableAnimation &&\n this.hasPanels &&\n this.currentItem &&\n !this.currentItem.selected) {\n item.direction = (!rtl && this._selectedIndex > oldSelectedIndex) ||\n (rtl && this._selectedIndex < oldSelectedIndex)\n ? CarouselAnimationDirection.NEXT : CarouselAnimationDirection.PREV;\n\n if (this.previousItem && this.previousItem.previous) {\n this.previousItem.previous = false;\n }\n this.currentItem.direction = item.direction;\n\n this.previousItem = this.currentItem;\n this.currentItem = item;\n this.triggerAnimations();\n } else {\n this.currentItem = item!;\n }\n }\n\n /** @hidden */\n protected abstract getNextTabId(): any;\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n Input,\n NgZone,\n OnDestroy,\n ViewChild,\n inject,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IgxTabsBase } from '../tabs.base';\nimport { IgxTabsDirective } from '../tabs.directive';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { IgxIconButtonDirective, IgxRippleDirective } from 'igniteui-angular/directives';\nimport { IgxIconComponent } from 'igniteui-angular/icon';\nimport { getResizeObserver, PlatformUtil, isLeftToRight } from 'igniteui-angular/core';\n\nexport const IgxTabsAlignment = {\n start: 'start',\n end: 'end',\n center: 'center',\n justify: 'justify'\n} as const;\n\n/** @hidden */\nconst enum TabScrollButtonStyle {\n Enabled = 'enabled',\n Disabled = 'disabled',\n NotDisplayed = 'not_displayed'\n}\n\nexport type IgxTabsAlignment = (typeof IgxTabsAlignment)[keyof typeof IgxTabsAlignment];\n\n/** @hidden */\nlet NEXT_TAB_ID = 0;\n\n/**\n * Tabs component is used to organize or switch between similar data sets.\n *\n * @igxModule IgxTabsModule\n *\n * @igxTheme igx-tabs-theme\n *\n * @igxKeywords tabs\n *\n * @igxGroup Layouts\n *\n * @remarks\n * The Ignite UI for Angular Tabs component places tabs at the top and allows for scrolling when there are multiple tab items on the screen.\n *\n * @example\n * ```html\n * <igx-tabs>\n * <igx-tab-item>\n * <igx-tab-header>\n * <igx-icon igxTabHeaderIcon>folder</igx-icon>\n * <span igxTabHeaderLabel>Tab 1</span>\n * </igx-tab-header>\n * <igx-tab-content>\n * Content 1\n * </igx-tab-content>\n * </igx-tab-item>\n * ...\n * </igx-tabs>\n * ```\n */\n@Component({\n selector: 'igx-tabs',\n templateUrl: 'tabs.component.html',\n styleUrl: 'tabs.component.css',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: IgxTabsBase, useExisting: IgxTabsComponent }],\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [IgxRippleDirective, IgxIconComponent, NgClass, NgTemplateOutlet, IgxIconButtonDirective]\n})\n\nexport class IgxTabsComponent extends IgxTabsDirective implements AfterViewInit, OnDestroy {\n private ngZone = inject(NgZone);\n private platform = inject(PlatformUtil);\n\n\n /**\n * Gets/Sets the tab alignment. Defaults to `start`.\n */\n @Input()\n public get tabAlignment(): string | IgxTabsAlignment {\n return this._tabAlignment;\n }\n\n public set tabAlignment(value: string | IgxTabsAlignment) {\n this._tabAlignment = value;\n requestAnimationFrame(() => {\n this.updateScrollButtons();\n this.realignSelectedIndicator();\n });\n }\n\n /**\n * Determines the tab activation.\n * When set to auto, the tab is instantly selected while navigating with the Left/Right Arrows, Home or End keys and the corresponding panel is displayed.\n * When set to manual, the tab is only focused. The selection happens after pressing Space or Enter.\n * Defaults is auto.\n */\n @Input()\n public activation: 'auto' | 'manual' = 'auto';\n\n /** @hidden */\n @ViewChild('headerContainer', { static: true })\n public headerContainer!: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('viewPort', { static: true })\n public viewPort!: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('itemsWrapper', { static: true })\n public itemsWrapper!: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('itemsContainer', { static: true })\n public itemsContainer!: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('selectedIndicator')\n public selectedIndicator!: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('scrollPrevButton')\n public scrollPrevButton!: ElementRef<HTMLButtonElement>;\n\n /** @hidden */\n @ViewChild('scrollNextButton')\n public scrollNextButton!: ElementRef<HTMLButtonElement>;\n\n /** @hidden */\n @HostBinding('class.igx-tabs')\n public defaultClass = true;\n\n /** @hidden */\n public offset = 0;\n\n /** @hidden */\n protected override componentName = 'igx-tabs';\n\n private _tabAlignment: string | IgxTabsAlignment = 'start';\n private _resizeObserver!: ResizeObserver;\n\n /** @hidden @internal */\n public override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n\n this.ngZone.runOutsideAngular(() => {\n if (this.platform.isBrowser) {\n this._resizeObserver = new (getResizeObserver())(() => {\n this.updateScrollButtons();\n this.realignSelectedIndicator();\n });\n this._resizeObserver.observe(this.headerContainer.nativeElement);\n this._resizeObserver.observe(this.viewPort.nativeElement);\n }\n });\n }\n\n /** @hidden @internal */\n public override ngOnDestroy(): void {\n super.ngOnDestroy();\n\n this.ngZone.runOutsideAngular(() => {\n this._resizeObserver?.disconnect();\n });\n }\n\n /** @hidden */\n public scrollPrev() {\n this.scroll(false);\n }\n\n /** @hidden */\n public scrollNext() {\n this.scroll(true);\n }\n\n /** @hidden */\n public realignSelectedIndicator() {\n if (this.selectedIndex >= 0 && this.selectedIndex < this.items.length) {\n const header = this.items.get(this.selectedIndex)!.headerComponent.nativeElement;\n this.alignSelectedIndicator(header, 0);\n }\n }\n\n /** @hidden */\n public resolveHeaderScrollClasses() {\n return {\n 'igx-tabs-header-scroll--start': this.tabAlignment === 'start',\n 'igx-tabs-header-scroll--end': this.tabAlignment === 'end',\n 'igx-tabs-header-scroll--center': this.tabAlignment === 'center',\n 'igx-tabs-header-scroll--justify': this.tabAlignment === 'justify',\n };\n }\n\n /** @hidden */\n protected override scrollTabHeaderIntoView() {\n if (this.selectedIndex >= 0 && this.selectedIndex < this.items.length) {\n const tabItems = this.items.toArray();\n const tabHeaderNativeElement = tabItems[this.selectedIndex].headerComponent.nativeElement;\n\n // Scroll left if there is need\n if (this.getElementOffset(tabHeaderNativeElement) < this.offset) {\n this.scrollElement(tabHeaderNativeElement, false);\n }\n\n // Scroll right if there is need\n const viewPortOffsetWidth = this.viewPort.nativeElement.offsetWidth;\n const delta = (this.getElementOffset(tabHeaderNativeElement) + tabHeaderNativeElement.offsetWidth) - (viewPortOffsetWidth + this.offset);\n\n // Fix for IE 11, a difference is accumulated from the widths calculations\n if (delta > 1) {\n this.scrollElement(tabHeaderNativeElement, true);\n }\n\n this.alignSelectedIndicator(tabHeaderNativeElement);\n } else {\n this.hideSelectedIndicator();\n }\n }\n\n /** @hidden */\n protected getNextTabId() {\n return NEXT_TAB_ID++;\n }\n\n /** @hidden */\n protected override onItemChanges() {\n // Taken before the selection settles, so that scroll buttons appearing or\n // disappearing because of this change show up as a different width below.\n const viewPortWidth = this.viewPort.nativeElement.offsetWidth;\n\n super.onItemChanges();\n\n Promise.resolve().then(() => {\n this.updateScrollButtons();\n\n // The selected tab is scrolled into view against the viewport width it had\n // when the selection settled. When the change made the header overflow, the\n // buttons that appeared narrow the viewport, so the tab has to be brought\n // back into view. Only then, so that adding or removing other tabs keeps a\n // header the user scrolled away from the selected tab where it is.\n if (this.viewPort.nativeElement.offsetWidth !== viewPortWidth) {\n this.scrollTabHeaderIntoView();\n }\n });\n }\n\n private alignSelectedIndicator(element: HTMLElement, duration = 0.3): void {\n if (this.selectedIndicator) {\n this.selectedIndicator.nativeElement.style.visibility = 'visible';\n this.selectedIndicator.nativeElement.style.transitionDuration = duration > 0 ? `${duration}s` : 'initial';\n this.selectedIndicator.nativeElement.style.width = `${element.offsetWidth}px`;\n this.selectedIndicator.nativeElement.style.transform = `translate(${element.offsetLeft}px)`;\n }\n }\n\n private hideSelectedIndicator(): void {\n if (this.selectedIndicator) {\n this.selectedIndicator.nativeElement.style.visibility = 'hidden';\n }\n }\n\n private scroll(scrollNext: boolean): void {\n const tabsArray = this.items.toArray();\n\n for (let index = 0; index < tabsArray.length; index++) {\n const tab = tabsArray[index];\n const element = tab.headerComponent.nativeElement;\n if (scrollNext) {\n if (element.offsetWidth + this.getElementOffset(element) > this.viewPort.nativeElement.offsetWidth + this.offset) {\n this.scrollElement(element, scrollNext);\n return;\n }\n } else {\n if (this.getElementOffset(element) >= this.offset) {\n if (index > 0) {\n this.scrollElement(tabsArray[index - 1].headerComponent.nativeElement, scrollNext);\n }\n return;\n }\n }\n }\n\n // Scrolling back from beyond the start of the last header, which happens when a\n // header is wider than the viewport, brings that header's start into view.\n if (!scrollNext && tabsArray.length > 0) {\n this.scrollElement(tabsArray[tabsArray.length - 1].headerComponent.nativeElement, scrollNext);\n }\n }\n\n private scrollElement(element: any, scrollNext: boolean): void {\n const viewPortWidth = this.viewPort.nativeElement.offsetWidth;\n\n this.offset = (scrollNext) ? element.offsetWidth + this.getElementOffset(element) - viewPortWidth : this.getElementOffset(element);\n this.viewPort.nativeElement.scrollLeft = this.getOffset(this.offset);\n this.updateScrollButtons();\n }\n\n private updateScrollButtons() {\n const itemsContainerWidth = this.getTabItemsContainerWidth();\n const headerContainerWidth = this.headerContainer.nativeElement.offsetWidth;\n const viewPortWidth = this.viewPort.nativeElement.offsetWidth;\n\n // The browser clamps the scroll position when the items shrink, e.g. after removing\n // tabs, but a stale offset would keep the buttons displayed. Clamp it the same way,\n // so the buttons state reflects the header as it is rendered.\n if (itemsContainerWidth - headerContainerWidth <= 1) {\n this.offset = 0;\n } else {\n this.offset = Math.min(this.offset, Math.max(0, itemsContainerWidth - viewPortWidth));\n }\n\n const scrollPrevButtonStyle = this.resolveLeftScrollButtonStyle(itemsContainerWidth);\n this.setScrollButtonStyle(this.scrollPrevButton.nativeElement, scrollPrevButtonStyle);\n\n const scrollNextButtonStyle = this.resolveRightScrollButtonStyle(itemsContainerWidth);\n this.setScrollButtonStyle(this.scrollNextButton.nativeElement, scrollNextButtonStyle);\n }\n\n private setScrollButtonStyle(button: HTMLButtonElement, buttonStyle: TabScrollButtonStyle) {\n if (buttonStyle === TabScrollButtonStyle.Enabled) {\n button.disabled = false;\n button.style.display = '';\n } else if (buttonStyle === TabScrollButtonStyle.Disabled) {\n button.disabled = true;\n button.style.display = '';\n } else if (buttonStyle === TabScrollButtonStyle.NotDisplayed) {\n button.style.display = 'none';\n }\n }\n private resolveLeftScrollButtonStyle(itemsContainerWidth: number): TabScrollButtonStyle {\n const headerContainerWidth = this.headerContainer.nativeElement.offsetWidth;\n const offset = this.offset;\n\n if (offset === 0) {\n // Fix for IE 11, a difference is accumulated from the widths calculations.\n if (itemsContainerWidth - headerContainerWidth <= 1) {\n return TabScrollButtonStyle.NotDisplayed;\n }\n return TabScrollButtonStyle.Disabled;\n } else {\n return TabScrollButtonStyle.Enabled;\n }\n }\n\n private resolveRightScrollButtonStyle(itemsContainerWidth: number): TabScrollButtonStyle {\n const viewPortWidth = this.viewPort.nativeElement.offsetWidth;\n const headerContainerWidth = this.headerContainer.nativeElement.offsetWidth;\n const offset = this.offset;\n const total = offset + viewPortWidth;\n\n // Fix for IE 11, a difference is accumulated from the widths calculations.\n if (itemsContainerWidth - headerContainerWidth <= 1 && offset === 0) {\n return TabScrollButtonStyle.NotDisplayed;\n }\n\n if (itemsContainerWidth > total) {\n return TabScrollButtonStyle.Enabled;\n } else {\n return TabScrollButtonStyle.Disabled;\n }\n }\n\n private getTabItemsContainerWidth() {\n // We use this hacky way to get the width of the itemsContainer,\n // because there is inconsistency in IE we cannot use offsetWidth or scrollOffset.\n const itemsContainerChildrenCount = this.itemsContainer.nativeElement.children.length;\n let itemsContainerWidth = 0;\n\n if (itemsContainerChildrenCount > 0) {\n const lastTab = this.itemsContainer.nativeElement.children[itemsContainerChildrenCount - 1] as HTMLElement;\n itemsContainerWidth = this.getElementOffset(lastTab) + lastTab.offsetWidth;\n }\n\n return itemsContainerWidth;\n }\n\n private getOffset(offset: number): number {\n return isLeftToRight(this._element.nativeElement) ? offset : -offset;\n }\n\n private getElementOffset(element: HTMLElement): number {\n const rtl = !isLeftToRight(this._element.nativeElement);\n return rtl ? this.itemsWrapper.nativeElement.offsetWidth - element.offsetLeft - element.offsetWidth : element.offsetLeft;\n }\n}\n","<div #headerContainer class=\"igx-tabs-header\">\n <button #scrollPrevButton type=\"button\" igxIconButton=\"flat\" igxRipple tabindex=\"-1\" class=\"igx-tabs-header-button\" (click)=\"scrollPrev()\">\n <igx-icon family=\"default\" name=\"prev\"></igx-icon>\n </button>\n <div #viewPort class=\"igx-tabs-header__content\">\n <div #itemsWrapper class=\"igx-tabs-header__wrapper\" role=\"tablist\">\n <div #itemsContainer class=\"igx-tabs-header-scroll\" [ngClass]=\"resolveHeaderScrollClasses()\">\n @for (tab of items; track tab; let i = $index) {\n <ng-container *ngTemplateOutlet=\"tab.headerTemplate\"></ng-container>\n }\n </div>\n @if (items.length > 0) {\n <div #selectedIndicator class=\"igx-tabs-header__active-indicator\">\n </div>\n }\n </div>\n </div>\n <button #scrollNextButton type=\"button\" igxIconButton=\"flat\" igxRipple tabindex=\"-1\" class=\"igx-tabs-header-button\" (click)=\"scrollNext()\">\n <igx-icon family=\"default\" name=\"next\"></igx-icon>\n </button>\n</div>\n<div class=\"igx-tabs-content\">\n @for (tab of items; track tab; let i = $index) {\n <ng-container *ngTemplateOutlet=\"tab.panelTemplate\"></ng-container>\n }\n</div>\n","import {\n AfterViewInit,\n Component,\n HostBinding,\n HostListener,\n NgZone,\n OnDestroy,\n inject,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IgxTabHeaderDirective } from '../../tab-header.directive';\nimport { IgxTabHeaderBase } from '../../tabs.base';\nimport { IgxTabsComponent } from './../tabs.component';\nimport { getResizeObserver, isLeftToRight } from 'igniteui-angular/core';\n\n@Component({\n selector: 'igx-tab-header',\n templateUrl: 'tab-header.component.html',\n styleUrl: 'tab-header.component.css',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: IgxTabHeaderBase, useExisting: IgxTabHeaderComponent }],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: true\n})\nexport class IgxTabHeaderComponent extends IgxTabHeaderDirective implements AfterViewInit, OnDestroy {\n protected override tabs = inject(IgxTabsComponent);\n private ngZone = inject(NgZone);\n\n /** @hidden @internal */\n @HostBinding('class.igx-tab-header--selected')\n public get provideCssClassSelected(): boolean {\n return this.tab.selected;\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-tab-header--disabled')\n public get provideCssClassDisabled(): boolean {\n return this.tab.disabled;\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-tab-header--justify')\n public get applyJustifyClass(): boolean {\n return this.tabs.tabAlignment === 'justify'; // Correctly accessing tabsAlignment\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-tab-header')\n public cssClass = true;\n\n private _resizeObserver!: ResizeObserver;\n\n /** @hidden @internal */\n @HostListener('keydown', ['$event'])\n public keyDown(event: KeyboardEvent) {\n let unsupportedKey = false;\n const itemsArray = this.tabs.items.toArray();\n const previousIndex = itemsArray.indexOf(this.tab);\n let newIndex = previousIndex;\n const hasDisabledItems = itemsArray.some((item) => item.disabled);\n\n switch (event.key) {\n case this.platform.KEYMAP.ARROW_RIGHT:\n newIndex = this.getNewSelectionIndex(newIndex, itemsArray, event.key, hasDisabledItems);\n break;\n case this.platform.KEYMAP.ARROW_LEFT:\n newIndex = this.getNewSelectionIndex(newIndex, itemsArray, event.key, hasDisabledItems);\n break;\n case this.platform.KEYMAP.HOME:\n event.preventDefault();\n newIndex = 0;\n while (itemsArray[newIndex].disabled && newIndex < itemsArray.length) {\n newIndex = newIndex === itemsArray.length - 1 ? 0 : newIndex + 1;\n }\n break;\n case this.platform.KEYMAP.END:\n event.preventDefault();\n newIndex = itemsArray.length - 1;\n while (hasDisabledItems && itemsArray[newIndex].disabled && newIndex > 0) {\n newIndex = newIndex === 0 ? itemsArray.length - 1 : newIndex - 1;\n }\n break;\n case this.platform.KEYMAP.ENTER:\n case this.platform.KEYMAP.SPACE:\n event.preventDefault();\n if (this.tabs.activation === 'manual') {\n this.nativeElement.click();\n }\n unsupportedKey = true;\n break;\n default:\n unsupportedKey = true;\n break;\n }\n\n if (!unsupportedKey) {\n itemsArray[newIndex].headerComponent.nativeElement.focus({ preventScroll: true });\n if (this.tabs.activation === 'auto') {\n this.tabs.selectedIndex = newIndex;\n }\n }\n }\n\n /** @hidden @internal */\n public ngAfterViewInit(): void {\n this.ngZone.runOutsideAngular(() => {\n if (this.platform.isBrowser) {\n this._resizeObserver = new (getResizeObserver())(() => {\n this.tabs.realignSelectedIndicator();\n });\n this._resizeObserver.observe(this.nativeElement);\n }\n });\n }\n\n /** @hidden @internal */\n public ngOnDestroy(): void {\n this.ngZone.runOutsideAngular(() => {\n this._resizeObserver?.disconnect();\n });\n }\n\n private getNewSelectionIndex(newIndex: number, itemsArray: any[], key: string, hasDisabledItems: boolean): number {\n const rtl = !isLeftToRight(this.nativeElement);\n\n if ((key === this.platform.KEYMAP.ARROW_RIGHT && !rtl) || (key === this.platform.KEYMAP.ARROW_LEFT && rtl)) {\n newIndex = newIndex === itemsArray.length - 1 ? 0 : newIndex + 1;\n while (hasDisabledItems && itemsArray[newIndex].disabled && newIndex < itemsArray.length) {\n newIndex = newIndex === itemsArray.length - 1 ? 0 : newIndex + 1;\n }\n } else {\n newIndex = newIndex === 0 ? itemsArray.length - 1 : newIndex - 1;\n while (hasDisabledItems && itemsArray[newIndex].disabled && newIndex >= 0) {\n newIndex = newIndex === 0 ? itemsArray.length - 1 : newIndex - 1;\n }\n }\n return newIndex;\n }\n}\n","<ng-content select=\"igx-prefix,[igxPrefix]\"></ng-content>\n\n<div class=\"igx-tab-header__inner\">\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"igx-suffix,[igxSuffix]\"></ng-content>\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\nimport { IgxTabItemDirective } from '../../tab-item.directive';\n\n@Component({\n selector: 'igx-tab-item',\n templateUrl: 'tab-item.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: IgxTabItemDirective, useExisting: IgxTabItemComponent }],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: true\n})\nexport class IgxTabItemComponent extends IgxTabItemDirective {\n\n}\n","<ng-template #headerTemplate>\n <ng-content select=\"igx-tab-header\"></ng-content>\n</ng-template>\n<ng-template #panelTemplate>\n <ng-content select=\"igx-tab-content\"></ng-content>\n</ng-template>\n","import { Directive } from '@angular/core';\nimport { IgxNoTypographyDirective } from 'igniteui-angular/directives';\n\n@Directive({\n selector: '[igxTabHeaderLabel],igx-tab-header-label',\n standalone: true,\n hostDirectives: [IgxNoTypographyDirective]\n})\nexport class IgxTabHeaderLabelDirective { }\n\n@Directive({\n selector: '[igxTabHeaderIcon],igx-tab-header-icon',\n standalone: true\n})\nexport class IgxTabHeaderIconDirective { }\n","import { IgxTabContentComponent } from './content/tab-content.component';\nimport { IgxTabHeaderComponent } from './header/tab-header.component';\nimport { IgxTabItemComponent } from './item/tab-item.component';\nimport { IgxPrefixDirective, IgxSuffixDirective } from 'igniteui-angular/input-group';\nimport { IgxTabsComponent } from './tabs.component';\nimport { IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective } from './tabs.directives';\n\nexport * from './tabs.component';\nexport * from './item/tab-item.component';\nexport * from './header/tab-header.component';\nexport * from './tabs.directives';\nexport * from './content/tab-content.component';\nexport {\n ITabsSelectedIndexChangingEventArgs,\n ITabsSelectedItemChangeEventArgs\n} from '../tabs.directive'\n\n/* NOTE: Tabs directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_TABS_DIRECTIVES = [\n IgxTabsComponent,\n IgxTabItemComponent,\n IgxTabHeaderComponent,\n IgxTabContentComponent,\n IgxTabHeaderLabelDirective,\n IgxTabHeaderIconDirective,\n IgxPrefixDirective,\n IgxSuffixDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_TABS_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [\n ...IGX_TABS_DIRECTIVES\n ],\n exports: [\n ...IGX_TABS_DIRECTIVES\n ]\n})\nexport class IgxTabsModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxTabsComponent","i2.IgxTabItemComponent","i3.IgxTabHeaderComponent","i4.IgxTabContentComponent","i5.IgxTabHeaderLabelDirective","i5.IgxTabHeaderIconDirective"],"mappings":"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"}
@@ -1207,13 +1207,13 @@ class IgxTreeNodeComponent extends ToggleAnimationPlayer {
1207
1207
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxTreeNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1208
1208
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.2.0", type: IgxTreeNodeComponent, isStandalone: true, selector: "igx-tree-node", inputs: { data: "data", loading: ["loading", "loading", booleanAttribute], resourceStrings: "resourceStrings", active: ["active", "active", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], selected: ["selected", "selected", booleanAttribute], expanded: ["expanded", "expanded", booleanAttribute] }, outputs: { selectedChange: "selectedChange", expandedChange: "expandedChange" }, host: { properties: { "class.igx-tree-node--disabled": "this.disabled", "class.igx-tree-node": "this.cssClass", "attr.role": "this.role" } }, providers: [
1209
1209
  { provide: IGX_TREE_NODE_COMPONENT, useExisting: IgxTreeNodeComponent }
1210
- ], queries: [{ propertyName: "linkChildren", predicate: IgxTreeNodeLinkDirective, read: ElementRef }, { propertyName: "_children", predicate: IGX_TREE_NODE_COMPONENT, read: IGX_TREE_NODE_COMPONENT }, { propertyName: "allChildren", predicate: IGX_TREE_NODE_COMPONENT, descendants: true, read: IGX_TREE_NODE_COMPONENT }], viewQueries: [{ propertyName: "header", first: true, predicate: ["ghostTemplate"], descendants: true, read: ElementRef }, { propertyName: "_defaultExpandIndicatorTemplate", first: true, predicate: ["defaultIndicator"], descendants: true, read: TemplateRef, static: true }, { propertyName: "childrenContainer", first: true, predicate: ["childrenContainer"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<ng-template #noDragTemplate>\n <ng-template *ngTemplateOutlet=\"headerTemplate\"></ng-template>\n</ng-template>\n\n<!-- Will switch templates depending on dragDrop -->\n<ng-template *ngTemplateOutlet=\"noDragTemplate\">\n</ng-template>\n\n@if (expanded && !loading) {\n <div #childrenContainer\n class=\"igx-tree-node__group\"\n role=\"group\"\n >\n <ng-content select=\"igx-tree-node\"></ng-content>\n </div>\n}\n\n\n<ng-template #defaultIndicator>\n <igx-icon\n [attr.aria-label]=\"expanded ? resourceStrings.igx_collapse : resourceStrings.igx_expand\"\n [name]=\"!expanded ? 'tree_expand' : 'tree_collapse'\"\n family=\"default\"\n >\n </igx-icon>\n</ng-template>\n\n<!-- separated in a template in case this ever needs to be templatable -->\n<ng-template #selectMarkerTemplate>\n <igx-checkbox [checked]=\"selected\" [disabled]=\"disabled\" [readonly]=\"true\" [indeterminate]=\"indeterminate\" [tabindex]=\"-1\">\n </igx-checkbox>\n</ng-template>\n\n<ng-template #headerTemplate>\n <div #ghostTemplate class=\"igx-tree-node__wrapper\"\n [attr.role]=\"role\"\n [tabIndex]=\"tabIndex\"\n [ngClass]=\"{\n 'igx-tree-node__wrapper--selected': selected,\n 'igx-tree-node__wrapper--active' : this.active,\n 'igx-tree-node__wrapper--focused' : this.focused,\n 'igx-tree-node__wrapper--disabled' : this.disabled\n }\"\n (pointerdown)=\"onPointerDown($event)\"\n (focus)=\"handleFocus()\"\n (blur)=\"clearFocus()\"\n >\n <div aria-hidden=\"true\">\n @for (item of [].constructor(level); track $index) {\n <span\n aria-hidden=\"true\"\n class=\"igx-tree-node__spacer\"\n ></span>\n }\n </div>\n\n <!-- Expand/Collapse indicator -->\n @if (!loading) {\n <span\n class=\"igx-tree-node__toggle-button\"\n [ngClass]=\"{ 'igx-tree-node__toggle-button--hidden': !_children?.length }\"\n (click)=\"indicatorClick()\"\n >\n <ng-container *ngTemplateOutlet=\"expandIndicatorTemplate, context: { $implicit: expanded }\">\n </ng-container>\n </span>\n }\n @if (loading) {\n <span class=\"igx-tree-node__toggle-button\">\n <igx-circular-bar\n [animate]=\"false\"\n [indeterminate]=\"true\"\n [textVisibility]=\"false\"\n >\n </igx-circular-bar>\n </span>\n }\n\n <!-- Item selection -->\n @if (showSelectors) {\n <div\n class=\"igx-tree-node__select\"\n (pointerdown)=\"onSelectorPointerDown($event)\"\n (click)=\"onSelectorClick($event)\">\n <ng-container *ngTemplateOutlet=\"selectMarkerTemplate\">\n </ng-container>\n </div>\n }\n\n <div class=\"igx-tree-node__content\" data-no-typography>\n <!-- Ghost content -->\n <ng-content></ng-content>\n </div>\n </div>\n\n <!-- Buffer element for 'move after' when D&D is implemented-->\n <div class=\"igx-tree-node__drop-indicator\">\n @for (item of [].constructor(level); track $index) {\n <span aria-hidden=\"true\" class=\"igx-tree-node__spacer\"></span>\n }\n <!-- style rules target this div, do not delete it -->\n <div></div>\n </div>\n</ng-template>\n\n<ng-template #dragTemplate>\n <!-- Drag drop goes here\n igxDrop\n #dropRef=\"drop\"\n [igxNodeDrag]=\"this\"\n (dragStart)=\"logDrop(dropRef)\"\n (leave)=\"emitLeave()\"\n (enter)=\"emitEnter()\" -->\n <div class=\"igx-tree-node__drag-wrapper\">\n <ng-template *ngTemplateOutlet=\"headerTemplate\"></ng-template>\n </div>\n</ng-template>\n", styles: ["@layer ig.base{.igx-tree-node{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: var(--ig-size, var(--default-size));--tree-size: var(--component-size);display:flex;flex-direction:column}.igx-tree-node__wrapper{display:flex;align-items:center;min-height:var(--size);padding-block:0;position:relative;background:var(--background);color:var(--foreground)}.igx-tree-node__wrapper:dir(rtl) igx-icon,[dir=rtl] .igx-tree-node__wrapper igx-icon{transform:scaleX(-1)}.igx-tree-node__wrapper:after{content:\"\";position:absolute;top:0;inset-inline-start:0;width:100%;height:100%;background:#0000;z-index:0}.igx-tree-node__wrapper:hover:after{background:var(--hover-color)}.igx-tree-node__wrapper:focus{outline-width:0}.igx-tree-node__wrapper igx-circular-bar{--diameter: max(var(--is-large, 1) * max(1.5rem, -1 * 1.5rem), var(--is-medium, 1) * max( calc(1.5rem - 4px) , -1 * calc(1.5rem - 4px) ), var(--is-small, 1) * max( calc(1.5rem - 6px) , -1 * calc(1.5rem - 6px) )) !important}.igx-tree-node__wrapper--selected{background:var(--background-selected);color:var(--foreground-selected)}.igx-tree-node__wrapper--selected:hover:after{background:var(--hover-selected-color)}.igx-tree-node__wrapper--active{background:var(--background-active);color:var(--foreground-active)}.igx-tree-node__wrapper--active.igx-tree-node__wrapper--selected{background:var(--background-active-selected);color:var(--foreground-active-selected)}.igx-tree-node__wrapper--focused{box-shadow:inset 0 0 0 .0625rem var(--border-color)}.igx-tree-node__wrapper--disabled{background:var(--background-disabled)!important;color:var(--foreground-disabled)!important;box-shadow:none!important;pointer-events:none}.igx-tree-node__wrapper--disabled:after{display:none}.igx-tree-node--disabled .igx-tree-node__toggle-button{color:var(--foreground-disabled)!important}.igx-tree-node__content{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);display:block;align-items:center;flex:1;z-index:1}.igx-tree-node__spacer{--component-size: var(--tree-size);--spacer: max(var(--is-large, 1) * max(1.5rem, -1 * 1.5rem), var(--is-medium, 1) * max(1rem, -1 * 1rem), var(--is-small, 1) * max(.75rem, -1 * .75rem));width:var(--spacer);display:inline-block}.igx-tree-node__toggle-button{display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;min-width:1.5rem;z-index:1}.igx-tree-node__toggle-button--hidden{visibility:hidden}.igx-tree-node__drop-indicator{display:flex;visibility:hidden;position:absolute;inset-inline-end:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));bottom:0}.igx-tree-node__drop-indicator>div{flex:1;height:.0625rem;background:var(--drop-area-color)}.igx-tree-node__select{display:flex;align-items:center;z-index:1}.igx-tree-node__group{overflow:hidden}}@layer ig.material{@container style(--ig-theme: material){.igx-tree-node__wrapper{padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-tree-node__wrapper igx-icon{--component-size: 3}.igx-tree-node__wrapper igx-checkbox{--composite-padding: 0}.igx-tree-node__drop-indicator{width:max(var(--is-large, 1)*max(calc(100% - 4.75rem),-1 * calc(100% - 4.75rem))*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(calc(100% - 3.75rem),-1 * calc(100% - 3.75rem))*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(calc(100% - 3.25rem),-1 * calc(100% - 3.25rem))*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-tree-node__select{margin-inline:.625rem .875rem}.igx-tree-node__toggle-button{margin-inline-end:.25rem}}}@layer ig.bootstrap{@container style(--ig-theme: bootstrap){.igx-tree-node__wrapper{padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-tree-node__wrapper igx-icon{--component-size: 3}.igx-tree-node__drop-indicator{width:max(var(--is-large, 1)*max(calc(100% - 5rem),-1 * calc(100% - 5rem))*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(calc(100% - 4rem),-1 * calc(100% - 4rem))*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(calc(100% - 3.5rem),-1 * calc(100% - 3.5rem))*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-tree-node__select,.igx-tree-node__toggle-button{margin-inline-end:.5rem}}}@layer ig.fluent{@container style(--ig-theme: fluent){.igx-tree-node__wrapper{padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-tree-node__wrapper igx-icon{--component-size: 3}.igx-tree-node__drop-indicator{width:max(var(--is-large, 1)*max(calc(100% - 5rem),-1 * calc(100% - 5rem))*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(calc(100% - 4rem),-1 * calc(100% - 4rem))*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(calc(100% - 3.5rem),-1 * calc(100% - 3.5rem))*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-tree-node__select,.igx-tree-node__toggle-button{margin-inline-end:.5rem}}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-tree-node{border-radius:.25rem}.igx-tree-node__wrapper{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));border-radius:.25rem;margin-block-end:.25rem}.igx-tree-node__wrapper:after{border-radius:.25rem}.igx-tree-node__wrapper igx-icon{--component-size: 2;color:var(--icon-color)}.igx-tree-node__wrapper:hover{color:var(--foreground-active)}.igx-tree-node__wrapper igx-circular-bar{--circular-bar: max(var(--is-large, 1) * max(1rem, -1 * 1rem), var(--is-medium, 1) * max( calc(1rem - 4px) , -1 * calc(1rem - 4px) ), var(--is-small, 1) * max( calc(1rem - 6px) , -1 * calc(1rem - 6px) )) !important}.igx-tree-node__wrapper--selected:hover:after{background:var(--hover-color)}.igx-tree-node__wrapper--active:hover{background:var(--hover-selected-color)}.igx-tree-node__wrapper--active:hover:after{background:#0000}.igx-tree-node__wrapper--active.igx-tree-node__wrapper--selected:hover{background:var(--hover-selected-color)}.igx-tree-node__wrapper--active.igx-tree-node__wrapper--selected:after{background:#0000}.igx-tree-node__wrapper--focused{box-shadow:inset 0 0 0 .125rem var(--border-color)}.igx-tree-node__wrapper--disabled igx-icon{color:var(--foreground-disabled)!important}.igx-tree-node__spacer{--spacer: 1rem}.igx-tree-node__drop-indicator{inset-inline-end:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));width:max(var(--is-large, 1)*max(calc(100% - 3.25rem),-1 * calc(100% - 3.25rem))*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(calc(100% - 2.75rem),-1 * calc(100% - 2.75rem))*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(calc(100% - 2.25rem),-1 * calc(100% - 2.25rem))*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-tree-node__select{margin-inline-end:.5rem}.igx-tree-node__toggle-button igx-icon{--component-size: 1}.igx-tree-node__toggle-button{min-width:.875rem;margin-inline-end:.25rem}}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "component", type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["indeterminate", "checked", "disabled", "invalid", "readonly", "disableTransitions"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxCircularProgressBarComponent, selector: "igx-circular-bar", inputs: ["id", "textVisibility", "type"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None }); }
1210
+ ], queries: [{ propertyName: "linkChildren", predicate: IgxTreeNodeLinkDirective, read: ElementRef }, { propertyName: "_children", predicate: IGX_TREE_NODE_COMPONENT, read: IGX_TREE_NODE_COMPONENT }, { propertyName: "allChildren", predicate: IGX_TREE_NODE_COMPONENT, descendants: true, read: IGX_TREE_NODE_COMPONENT }], viewQueries: [{ propertyName: "header", first: true, predicate: ["ghostTemplate"], descendants: true, read: ElementRef }, { propertyName: "_defaultExpandIndicatorTemplate", first: true, predicate: ["defaultIndicator"], descendants: true, read: TemplateRef, static: true }, { propertyName: "childrenContainer", first: true, predicate: ["childrenContainer"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<ng-template #noDragTemplate>\n <ng-template *ngTemplateOutlet=\"headerTemplate\"></ng-template>\n</ng-template>\n\n<!-- Will switch templates depending on dragDrop -->\n<ng-template *ngTemplateOutlet=\"noDragTemplate\">\n</ng-template>\n\n@if (expanded && !loading) {\n <div #childrenContainer\n class=\"igx-tree-node__group\"\n role=\"group\"\n >\n <ng-content select=\"igx-tree-node\"></ng-content>\n </div>\n}\n\n\n<ng-template #defaultIndicator>\n <igx-icon\n [attr.aria-label]=\"expanded ? resourceStrings.igx_collapse : resourceStrings.igx_expand\"\n [name]=\"!expanded ? 'tree_expand' : 'tree_collapse'\"\n family=\"default\"\n >\n </igx-icon>\n</ng-template>\n\n<!-- separated in a template in case this ever needs to be templatable -->\n<ng-template #selectMarkerTemplate>\n <igx-checkbox [checked]=\"selected\" [disabled]=\"disabled\" [readonly]=\"true\" [indeterminate]=\"indeterminate\" [tabindex]=\"-1\">\n </igx-checkbox>\n</ng-template>\n\n<ng-template #headerTemplate>\n <div #ghostTemplate class=\"igx-tree-node__wrapper\"\n [attr.role]=\"role\"\n [tabIndex]=\"tabIndex\"\n [ngClass]=\"{\n 'igx-tree-node__wrapper--selected': selected,\n 'igx-tree-node__wrapper--active' : this.active,\n 'igx-tree-node__wrapper--focused' : this.focused,\n 'igx-tree-node__wrapper--disabled' : this.disabled\n }\"\n (pointerdown)=\"onPointerDown($event)\"\n (focus)=\"handleFocus()\"\n (blur)=\"clearFocus()\"\n >\n <div aria-hidden=\"true\">\n @for (item of [].constructor(level); track $index) {\n <span\n aria-hidden=\"true\"\n class=\"igx-tree-node__spacer\"\n ></span>\n }\n </div>\n\n <!-- Expand/Collapse indicator -->\n @if (!loading) {\n <span\n class=\"igx-tree-node__toggle-button\"\n [ngClass]=\"{ 'igx-tree-node__toggle-button--hidden': !_children?.length }\"\n (click)=\"indicatorClick()\"\n >\n <ng-container *ngTemplateOutlet=\"expandIndicatorTemplate, context: { $implicit: expanded }\">\n </ng-container>\n </span>\n }\n @if (loading) {\n <span class=\"igx-tree-node__toggle-button\">\n <igx-circular-bar\n [animate]=\"false\"\n [indeterminate]=\"true\"\n [textVisibility]=\"false\"\n >\n </igx-circular-bar>\n </span>\n }\n\n <!-- Item selection -->\n @if (showSelectors) {\n <div\n class=\"igx-tree-node__select\"\n (pointerdown)=\"onSelectorPointerDown($event)\"\n (click)=\"onSelectorClick($event)\">\n <ng-container *ngTemplateOutlet=\"selectMarkerTemplate\">\n </ng-container>\n </div>\n }\n\n <div class=\"igx-tree-node__content\" data-no-typography>\n <!-- Ghost content -->\n <ng-content></ng-content>\n </div>\n </div>\n\n <!-- Buffer element for 'move after' when D&D is implemented-->\n <div class=\"igx-tree-node__drop-indicator\">\n @for (item of [].constructor(level); track $index) {\n <span aria-hidden=\"true\" class=\"igx-tree-node__spacer\"></span>\n }\n <!-- style rules target this div, do not delete it -->\n <div></div>\n </div>\n</ng-template>\n\n<ng-template #dragTemplate>\n <!-- Drag drop goes here\n igxDrop\n #dropRef=\"drop\"\n [igxNodeDrag]=\"this\"\n (dragStart)=\"logDrop(dropRef)\"\n (leave)=\"emitLeave()\"\n (enter)=\"emitEnter()\" -->\n <div class=\"igx-tree-node__drag-wrapper\">\n <ng-template *ngTemplateOutlet=\"headerTemplate\"></ng-template>\n </div>\n</ng-template>\n", styles: ["@layer ig.base{.igx-tree-node{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: var(--ig-size, var(--default-size));--tree-size: var(--component-size);display:flex;flex-direction:column}.igx-tree-node__wrapper{display:flex;align-items:center;min-height:var(--size);padding-block:0;position:relative;background:var(--background);color:var(--foreground)}.igx-tree-node__wrapper:dir(rtl) igx-icon,[dir=rtl] .igx-tree-node__wrapper igx-icon{transform:scaleX(-1)}.igx-tree-node__wrapper:after{content:\"\";position:absolute;top:0;inset-inline-start:0;width:100%;height:100%;background:#0000;z-index:0}.igx-tree-node__wrapper:hover:after{background:var(--hover-color)}.igx-tree-node__wrapper:focus{outline:none}.igx-tree-node__wrapper igx-circular-bar{--diameter: max(var(--is-large, 1) * max(1.5rem, -1 * 1.5rem), var(--is-medium, 1) * max( calc(1.5rem - 4px) , -1 * calc(1.5rem - 4px) ), var(--is-small, 1) * max( calc(1.5rem - 6px) , -1 * calc(1.5rem - 6px) )) !important}.igx-tree-node__wrapper--selected{background:var(--background-selected);color:var(--foreground-selected)}.igx-tree-node__wrapper--selected:hover:after{background:var(--hover-selected-color)}.igx-tree-node__wrapper--active{background:var(--background-active);color:var(--foreground-active)}.igx-tree-node__wrapper--active.igx-tree-node__wrapper--selected{background:var(--background-active-selected);color:var(--foreground-active-selected)}.igx-tree-node__wrapper--focused{box-shadow:inset 0 0 0 .0625rem var(--border-color)}.igx-tree-node__wrapper--disabled{background:var(--background-disabled)!important;color:var(--foreground-disabled)!important;box-shadow:none!important;pointer-events:none}.igx-tree-node__wrapper--disabled:after{display:none}.igx-tree-node--disabled .igx-tree-node__toggle-button{color:var(--foreground-disabled)!important}.igx-tree-node__content{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);display:block;align-items:center;flex:1;z-index:1}.igx-tree-node__spacer{--component-size: var(--tree-size);--spacer: max(var(--is-large, 1) * max(1.5rem, -1 * 1.5rem), var(--is-medium, 1) * max(1rem, -1 * 1rem), var(--is-small, 1) * max(.75rem, -1 * .75rem));width:var(--spacer);display:inline-block}.igx-tree-node__toggle-button{display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;min-width:1.5rem;z-index:1}.igx-tree-node__toggle-button--hidden{visibility:hidden}.igx-tree-node__drop-indicator{display:flex;visibility:hidden;position:absolute;inset-inline-end:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));bottom:0}.igx-tree-node__drop-indicator>div{flex:1;height:.0625rem;background:var(--drop-area-color)}.igx-tree-node__select{display:flex;align-items:center;z-index:1}.igx-tree-node__group{overflow:hidden}}@layer ig.material{@container style(--ig-theme: material){.igx-tree-node__wrapper{padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-tree-node__wrapper igx-icon{--component-size: 3}.igx-tree-node__wrapper igx-checkbox{--composite-padding: 0}.igx-tree-node__drop-indicator{width:max(var(--is-large, 1)*max(calc(100% - 4.75rem),-1 * calc(100% - 4.75rem))*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(calc(100% - 3.75rem),-1 * calc(100% - 3.75rem))*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(calc(100% - 3.25rem),-1 * calc(100% - 3.25rem))*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-tree-node__select{margin-inline:.625rem .875rem}.igx-tree-node__toggle-button{margin-inline-end:.25rem}}}@layer ig.bootstrap{@container style(--ig-theme: bootstrap){.igx-tree-node__wrapper{padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-tree-node__wrapper igx-icon{--component-size: 3}.igx-tree-node__drop-indicator{width:max(var(--is-large, 1)*max(calc(100% - 5rem),-1 * calc(100% - 5rem))*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(calc(100% - 4rem),-1 * calc(100% - 4rem))*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(calc(100% - 3.5rem),-1 * calc(100% - 3.5rem))*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-tree-node__select,.igx-tree-node__toggle-button{margin-inline-end:.5rem}}}@layer ig.fluent{@container style(--ig-theme: fluent){.igx-tree-node__wrapper{padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-tree-node__wrapper igx-icon{--component-size: 3}.igx-tree-node__drop-indicator{width:max(var(--is-large, 1)*max(calc(100% - 5rem),-1 * calc(100% - 5rem))*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(calc(100% - 4rem),-1 * calc(100% - 4rem))*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(calc(100% - 3.5rem),-1 * calc(100% - 3.5rem))*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-tree-node__select,.igx-tree-node__toggle-button{margin-inline-end:.5rem}}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-tree-node{border-radius:.25rem}.igx-tree-node__wrapper{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));border-radius:.25rem;margin-block-end:.25rem}.igx-tree-node__wrapper:after{border-radius:.25rem}.igx-tree-node__wrapper igx-icon{--component-size: 2;color:var(--icon-color)}.igx-tree-node__wrapper:hover{color:var(--foreground-active)}.igx-tree-node__wrapper igx-circular-bar{--circular-bar: max(var(--is-large, 1) * max(1rem, -1 * 1rem), var(--is-medium, 1) * max( calc(1rem - 4px) , -1 * calc(1rem - 4px) ), var(--is-small, 1) * max( calc(1rem - 6px) , -1 * calc(1rem - 6px) )) !important}.igx-tree-node__wrapper--selected:hover:after{background:var(--hover-color)}.igx-tree-node__wrapper--active:hover{background:var(--hover-selected-color)}.igx-tree-node__wrapper--active:hover:after{background:#0000}.igx-tree-node__wrapper--active.igx-tree-node__wrapper--selected:hover{background:var(--hover-selected-color)}.igx-tree-node__wrapper--active.igx-tree-node__wrapper--selected:after{background:#0000}.igx-tree-node__wrapper--focused{box-shadow:inset 0 0 0 .125rem var(--border-color)}.igx-tree-node__wrapper--disabled igx-icon{color:var(--foreground-disabled)!important}.igx-tree-node__spacer{--spacer: 1rem}.igx-tree-node__drop-indicator{inset-inline-end:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));width:max(var(--is-large, 1)*max(calc(100% - 3.25rem),-1 * calc(100% - 3.25rem))*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(calc(100% - 2.75rem),-1 * calc(100% - 2.75rem))*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(calc(100% - 2.25rem),-1 * calc(100% - 2.25rem))*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-tree-node__select{margin-inline-end:.5rem}.igx-tree-node__toggle-button igx-icon{--component-size: 1}.igx-tree-node__toggle-button{min-width:.875rem;margin-inline-end:.25rem}}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "component", type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["indeterminate", "checked", "disabled", "invalid", "readonly", "disableTransitions"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxCircularProgressBarComponent, selector: "igx-circular-bar", inputs: ["id", "textVisibility", "type"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None }); }
1211
1211
  }
1212
1212
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxTreeNodeComponent, decorators: [{
1213
1213
  type: Component,
1214
1214
  args: [{ selector: 'igx-tree-node', encapsulation: ViewEncapsulation.None, providers: [
1215
1215
  { provide: IGX_TREE_NODE_COMPONENT, useExisting: IgxTreeNodeComponent }
1216
- ], changeDetection: ChangeDetectionStrategy.Eager, imports: [NgTemplateOutlet, IgxIconComponent, IgxCheckboxComponent, NgClass, IgxCircularProgressBarComponent], template: "<ng-template #noDragTemplate>\n <ng-template *ngTemplateOutlet=\"headerTemplate\"></ng-template>\n</ng-template>\n\n<!-- Will switch templates depending on dragDrop -->\n<ng-template *ngTemplateOutlet=\"noDragTemplate\">\n</ng-template>\n\n@if (expanded && !loading) {\n <div #childrenContainer\n class=\"igx-tree-node__group\"\n role=\"group\"\n >\n <ng-content select=\"igx-tree-node\"></ng-content>\n </div>\n}\n\n\n<ng-template #defaultIndicator>\n <igx-icon\n [attr.aria-label]=\"expanded ? resourceStrings.igx_collapse : resourceStrings.igx_expand\"\n [name]=\"!expanded ? 'tree_expand' : 'tree_collapse'\"\n family=\"default\"\n >\n </igx-icon>\n</ng-template>\n\n<!-- separated in a template in case this ever needs to be templatable -->\n<ng-template #selectMarkerTemplate>\n <igx-checkbox [checked]=\"selected\" [disabled]=\"disabled\" [readonly]=\"true\" [indeterminate]=\"indeterminate\" [tabindex]=\"-1\">\n </igx-checkbox>\n</ng-template>\n\n<ng-template #headerTemplate>\n <div #ghostTemplate class=\"igx-tree-node__wrapper\"\n [attr.role]=\"role\"\n [tabIndex]=\"tabIndex\"\n [ngClass]=\"{\n 'igx-tree-node__wrapper--selected': selected,\n 'igx-tree-node__wrapper--active' : this.active,\n 'igx-tree-node__wrapper--focused' : this.focused,\n 'igx-tree-node__wrapper--disabled' : this.disabled\n }\"\n (pointerdown)=\"onPointerDown($event)\"\n (focus)=\"handleFocus()\"\n (blur)=\"clearFocus()\"\n >\n <div aria-hidden=\"true\">\n @for (item of [].constructor(level); track $index) {\n <span\n aria-hidden=\"true\"\n class=\"igx-tree-node__spacer\"\n ></span>\n }\n </div>\n\n <!-- Expand/Collapse indicator -->\n @if (!loading) {\n <span\n class=\"igx-tree-node__toggle-button\"\n [ngClass]=\"{ 'igx-tree-node__toggle-button--hidden': !_children?.length }\"\n (click)=\"indicatorClick()\"\n >\n <ng-container *ngTemplateOutlet=\"expandIndicatorTemplate, context: { $implicit: expanded }\">\n </ng-container>\n </span>\n }\n @if (loading) {\n <span class=\"igx-tree-node__toggle-button\">\n <igx-circular-bar\n [animate]=\"false\"\n [indeterminate]=\"true\"\n [textVisibility]=\"false\"\n >\n </igx-circular-bar>\n </span>\n }\n\n <!-- Item selection -->\n @if (showSelectors) {\n <div\n class=\"igx-tree-node__select\"\n (pointerdown)=\"onSelectorPointerDown($event)\"\n (click)=\"onSelectorClick($event)\">\n <ng-container *ngTemplateOutlet=\"selectMarkerTemplate\">\n </ng-container>\n </div>\n }\n\n <div class=\"igx-tree-node__content\" data-no-typography>\n <!-- Ghost content -->\n <ng-content></ng-content>\n </div>\n </div>\n\n <!-- Buffer element for 'move after' when D&D is implemented-->\n <div class=\"igx-tree-node__drop-indicator\">\n @for (item of [].constructor(level); track $index) {\n <span aria-hidden=\"true\" class=\"igx-tree-node__spacer\"></span>\n }\n <!-- style rules target this div, do not delete it -->\n <div></div>\n </div>\n</ng-template>\n\n<ng-template #dragTemplate>\n <!-- Drag drop goes here\n igxDrop\n #dropRef=\"drop\"\n [igxNodeDrag]=\"this\"\n (dragStart)=\"logDrop(dropRef)\"\n (leave)=\"emitLeave()\"\n (enter)=\"emitEnter()\" -->\n <div class=\"igx-tree-node__drag-wrapper\">\n <ng-template *ngTemplateOutlet=\"headerTemplate\"></ng-template>\n </div>\n</ng-template>\n", styles: ["@layer ig.base{.igx-tree-node{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: var(--ig-size, var(--default-size));--tree-size: var(--component-size);display:flex;flex-direction:column}.igx-tree-node__wrapper{display:flex;align-items:center;min-height:var(--size);padding-block:0;position:relative;background:var(--background);color:var(--foreground)}.igx-tree-node__wrapper:dir(rtl) igx-icon,[dir=rtl] .igx-tree-node__wrapper igx-icon{transform:scaleX(-1)}.igx-tree-node__wrapper:after{content:\"\";position:absolute;top:0;inset-inline-start:0;width:100%;height:100%;background:#0000;z-index:0}.igx-tree-node__wrapper:hover:after{background:var(--hover-color)}.igx-tree-node__wrapper:focus{outline-width:0}.igx-tree-node__wrapper igx-circular-bar{--diameter: max(var(--is-large, 1) * max(1.5rem, -1 * 1.5rem), var(--is-medium, 1) * max( calc(1.5rem - 4px) , -1 * calc(1.5rem - 4px) ), var(--is-small, 1) * max( calc(1.5rem - 6px) , -1 * calc(1.5rem - 6px) )) !important}.igx-tree-node__wrapper--selected{background:var(--background-selected);color:var(--foreground-selected)}.igx-tree-node__wrapper--selected:hover:after{background:var(--hover-selected-color)}.igx-tree-node__wrapper--active{background:var(--background-active);color:var(--foreground-active)}.igx-tree-node__wrapper--active.igx-tree-node__wrapper--selected{background:var(--background-active-selected);color:var(--foreground-active-selected)}.igx-tree-node__wrapper--focused{box-shadow:inset 0 0 0 .0625rem var(--border-color)}.igx-tree-node__wrapper--disabled{background:var(--background-disabled)!important;color:var(--foreground-disabled)!important;box-shadow:none!important;pointer-events:none}.igx-tree-node__wrapper--disabled:after{display:none}.igx-tree-node--disabled .igx-tree-node__toggle-button{color:var(--foreground-disabled)!important}.igx-tree-node__content{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);display:block;align-items:center;flex:1;z-index:1}.igx-tree-node__spacer{--component-size: var(--tree-size);--spacer: max(var(--is-large, 1) * max(1.5rem, -1 * 1.5rem), var(--is-medium, 1) * max(1rem, -1 * 1rem), var(--is-small, 1) * max(.75rem, -1 * .75rem));width:var(--spacer);display:inline-block}.igx-tree-node__toggle-button{display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;min-width:1.5rem;z-index:1}.igx-tree-node__toggle-button--hidden{visibility:hidden}.igx-tree-node__drop-indicator{display:flex;visibility:hidden;position:absolute;inset-inline-end:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));bottom:0}.igx-tree-node__drop-indicator>div{flex:1;height:.0625rem;background:var(--drop-area-color)}.igx-tree-node__select{display:flex;align-items:center;z-index:1}.igx-tree-node__group{overflow:hidden}}@layer ig.material{@container style(--ig-theme: material){.igx-tree-node__wrapper{padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-tree-node__wrapper igx-icon{--component-size: 3}.igx-tree-node__wrapper igx-checkbox{--composite-padding: 0}.igx-tree-node__drop-indicator{width:max(var(--is-large, 1)*max(calc(100% - 4.75rem),-1 * calc(100% - 4.75rem))*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(calc(100% - 3.75rem),-1 * calc(100% - 3.75rem))*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(calc(100% - 3.25rem),-1 * calc(100% - 3.25rem))*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-tree-node__select{margin-inline:.625rem .875rem}.igx-tree-node__toggle-button{margin-inline-end:.25rem}}}@layer ig.bootstrap{@container style(--ig-theme: bootstrap){.igx-tree-node__wrapper{padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-tree-node__wrapper igx-icon{--component-size: 3}.igx-tree-node__drop-indicator{width:max(var(--is-large, 1)*max(calc(100% - 5rem),-1 * calc(100% - 5rem))*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(calc(100% - 4rem),-1 * calc(100% - 4rem))*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(calc(100% - 3.5rem),-1 * calc(100% - 3.5rem))*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-tree-node__select,.igx-tree-node__toggle-button{margin-inline-end:.5rem}}}@layer ig.fluent{@container style(--ig-theme: fluent){.igx-tree-node__wrapper{padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-tree-node__wrapper igx-icon{--component-size: 3}.igx-tree-node__drop-indicator{width:max(var(--is-large, 1)*max(calc(100% - 5rem),-1 * calc(100% - 5rem))*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(calc(100% - 4rem),-1 * calc(100% - 4rem))*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(calc(100% - 3.5rem),-1 * calc(100% - 3.5rem))*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-tree-node__select,.igx-tree-node__toggle-button{margin-inline-end:.5rem}}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-tree-node{border-radius:.25rem}.igx-tree-node__wrapper{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));border-radius:.25rem;margin-block-end:.25rem}.igx-tree-node__wrapper:after{border-radius:.25rem}.igx-tree-node__wrapper igx-icon{--component-size: 2;color:var(--icon-color)}.igx-tree-node__wrapper:hover{color:var(--foreground-active)}.igx-tree-node__wrapper igx-circular-bar{--circular-bar: max(var(--is-large, 1) * max(1rem, -1 * 1rem), var(--is-medium, 1) * max( calc(1rem - 4px) , -1 * calc(1rem - 4px) ), var(--is-small, 1) * max( calc(1rem - 6px) , -1 * calc(1rem - 6px) )) !important}.igx-tree-node__wrapper--selected:hover:after{background:var(--hover-color)}.igx-tree-node__wrapper--active:hover{background:var(--hover-selected-color)}.igx-tree-node__wrapper--active:hover:after{background:#0000}.igx-tree-node__wrapper--active.igx-tree-node__wrapper--selected:hover{background:var(--hover-selected-color)}.igx-tree-node__wrapper--active.igx-tree-node__wrapper--selected:after{background:#0000}.igx-tree-node__wrapper--focused{box-shadow:inset 0 0 0 .125rem var(--border-color)}.igx-tree-node__wrapper--disabled igx-icon{color:var(--foreground-disabled)!important}.igx-tree-node__spacer{--spacer: 1rem}.igx-tree-node__drop-indicator{inset-inline-end:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));width:max(var(--is-large, 1)*max(calc(100% - 3.25rem),-1 * calc(100% - 3.25rem))*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(calc(100% - 2.75rem),-1 * calc(100% - 2.75rem))*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(calc(100% - 2.25rem),-1 * calc(100% - 2.25rem))*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-tree-node__select{margin-inline-end:.5rem}.igx-tree-node__toggle-button igx-icon{--component-size: 1}.igx-tree-node__toggle-button{min-width:.875rem;margin-inline-end:.25rem}}}\n"] }]
1216
+ ], changeDetection: ChangeDetectionStrategy.Eager, imports: [NgTemplateOutlet, IgxIconComponent, IgxCheckboxComponent, NgClass, IgxCircularProgressBarComponent], template: "<ng-template #noDragTemplate>\n <ng-template *ngTemplateOutlet=\"headerTemplate\"></ng-template>\n</ng-template>\n\n<!-- Will switch templates depending on dragDrop -->\n<ng-template *ngTemplateOutlet=\"noDragTemplate\">\n</ng-template>\n\n@if (expanded && !loading) {\n <div #childrenContainer\n class=\"igx-tree-node__group\"\n role=\"group\"\n >\n <ng-content select=\"igx-tree-node\"></ng-content>\n </div>\n}\n\n\n<ng-template #defaultIndicator>\n <igx-icon\n [attr.aria-label]=\"expanded ? resourceStrings.igx_collapse : resourceStrings.igx_expand\"\n [name]=\"!expanded ? 'tree_expand' : 'tree_collapse'\"\n family=\"default\"\n >\n </igx-icon>\n</ng-template>\n\n<!-- separated in a template in case this ever needs to be templatable -->\n<ng-template #selectMarkerTemplate>\n <igx-checkbox [checked]=\"selected\" [disabled]=\"disabled\" [readonly]=\"true\" [indeterminate]=\"indeterminate\" [tabindex]=\"-1\">\n </igx-checkbox>\n</ng-template>\n\n<ng-template #headerTemplate>\n <div #ghostTemplate class=\"igx-tree-node__wrapper\"\n [attr.role]=\"role\"\n [tabIndex]=\"tabIndex\"\n [ngClass]=\"{\n 'igx-tree-node__wrapper--selected': selected,\n 'igx-tree-node__wrapper--active' : this.active,\n 'igx-tree-node__wrapper--focused' : this.focused,\n 'igx-tree-node__wrapper--disabled' : this.disabled\n }\"\n (pointerdown)=\"onPointerDown($event)\"\n (focus)=\"handleFocus()\"\n (blur)=\"clearFocus()\"\n >\n <div aria-hidden=\"true\">\n @for (item of [].constructor(level); track $index) {\n <span\n aria-hidden=\"true\"\n class=\"igx-tree-node__spacer\"\n ></span>\n }\n </div>\n\n <!-- Expand/Collapse indicator -->\n @if (!loading) {\n <span\n class=\"igx-tree-node__toggle-button\"\n [ngClass]=\"{ 'igx-tree-node__toggle-button--hidden': !_children?.length }\"\n (click)=\"indicatorClick()\"\n >\n <ng-container *ngTemplateOutlet=\"expandIndicatorTemplate, context: { $implicit: expanded }\">\n </ng-container>\n </span>\n }\n @if (loading) {\n <span class=\"igx-tree-node__toggle-button\">\n <igx-circular-bar\n [animate]=\"false\"\n [indeterminate]=\"true\"\n [textVisibility]=\"false\"\n >\n </igx-circular-bar>\n </span>\n }\n\n <!-- Item selection -->\n @if (showSelectors) {\n <div\n class=\"igx-tree-node__select\"\n (pointerdown)=\"onSelectorPointerDown($event)\"\n (click)=\"onSelectorClick($event)\">\n <ng-container *ngTemplateOutlet=\"selectMarkerTemplate\">\n </ng-container>\n </div>\n }\n\n <div class=\"igx-tree-node__content\" data-no-typography>\n <!-- Ghost content -->\n <ng-content></ng-content>\n </div>\n </div>\n\n <!-- Buffer element for 'move after' when D&D is implemented-->\n <div class=\"igx-tree-node__drop-indicator\">\n @for (item of [].constructor(level); track $index) {\n <span aria-hidden=\"true\" class=\"igx-tree-node__spacer\"></span>\n }\n <!-- style rules target this div, do not delete it -->\n <div></div>\n </div>\n</ng-template>\n\n<ng-template #dragTemplate>\n <!-- Drag drop goes here\n igxDrop\n #dropRef=\"drop\"\n [igxNodeDrag]=\"this\"\n (dragStart)=\"logDrop(dropRef)\"\n (leave)=\"emitLeave()\"\n (enter)=\"emitEnter()\" -->\n <div class=\"igx-tree-node__drag-wrapper\">\n <ng-template *ngTemplateOutlet=\"headerTemplate\"></ng-template>\n </div>\n</ng-template>\n", styles: ["@layer ig.base{.igx-tree-node{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: var(--ig-size, var(--default-size));--tree-size: var(--component-size);display:flex;flex-direction:column}.igx-tree-node__wrapper{display:flex;align-items:center;min-height:var(--size);padding-block:0;position:relative;background:var(--background);color:var(--foreground)}.igx-tree-node__wrapper:dir(rtl) igx-icon,[dir=rtl] .igx-tree-node__wrapper igx-icon{transform:scaleX(-1)}.igx-tree-node__wrapper:after{content:\"\";position:absolute;top:0;inset-inline-start:0;width:100%;height:100%;background:#0000;z-index:0}.igx-tree-node__wrapper:hover:after{background:var(--hover-color)}.igx-tree-node__wrapper:focus{outline:none}.igx-tree-node__wrapper igx-circular-bar{--diameter: max(var(--is-large, 1) * max(1.5rem, -1 * 1.5rem), var(--is-medium, 1) * max( calc(1.5rem - 4px) , -1 * calc(1.5rem - 4px) ), var(--is-small, 1) * max( calc(1.5rem - 6px) , -1 * calc(1.5rem - 6px) )) !important}.igx-tree-node__wrapper--selected{background:var(--background-selected);color:var(--foreground-selected)}.igx-tree-node__wrapper--selected:hover:after{background:var(--hover-selected-color)}.igx-tree-node__wrapper--active{background:var(--background-active);color:var(--foreground-active)}.igx-tree-node__wrapper--active.igx-tree-node__wrapper--selected{background:var(--background-active-selected);color:var(--foreground-active-selected)}.igx-tree-node__wrapper--focused{box-shadow:inset 0 0 0 .0625rem var(--border-color)}.igx-tree-node__wrapper--disabled{background:var(--background-disabled)!important;color:var(--foreground-disabled)!important;box-shadow:none!important;pointer-events:none}.igx-tree-node__wrapper--disabled:after{display:none}.igx-tree-node--disabled .igx-tree-node__toggle-button{color:var(--foreground-disabled)!important}.igx-tree-node__content{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);display:block;align-items:center;flex:1;z-index:1}.igx-tree-node__spacer{--component-size: var(--tree-size);--spacer: max(var(--is-large, 1) * max(1.5rem, -1 * 1.5rem), var(--is-medium, 1) * max(1rem, -1 * 1rem), var(--is-small, 1) * max(.75rem, -1 * .75rem));width:var(--spacer);display:inline-block}.igx-tree-node__toggle-button{display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;min-width:1.5rem;z-index:1}.igx-tree-node__toggle-button--hidden{visibility:hidden}.igx-tree-node__drop-indicator{display:flex;visibility:hidden;position:absolute;inset-inline-end:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));bottom:0}.igx-tree-node__drop-indicator>div{flex:1;height:.0625rem;background:var(--drop-area-color)}.igx-tree-node__select{display:flex;align-items:center;z-index:1}.igx-tree-node__group{overflow:hidden}}@layer ig.material{@container style(--ig-theme: material){.igx-tree-node__wrapper{padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-tree-node__wrapper igx-icon{--component-size: 3}.igx-tree-node__wrapper igx-checkbox{--composite-padding: 0}.igx-tree-node__drop-indicator{width:max(var(--is-large, 1)*max(calc(100% - 4.75rem),-1 * calc(100% - 4.75rem))*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(calc(100% - 3.75rem),-1 * calc(100% - 3.75rem))*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(calc(100% - 3.25rem),-1 * calc(100% - 3.25rem))*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-tree-node__select{margin-inline:.625rem .875rem}.igx-tree-node__toggle-button{margin-inline-end:.25rem}}}@layer ig.bootstrap{@container style(--ig-theme: bootstrap){.igx-tree-node__wrapper{padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-tree-node__wrapper igx-icon{--component-size: 3}.igx-tree-node__drop-indicator{width:max(var(--is-large, 1)*max(calc(100% - 5rem),-1 * calc(100% - 5rem))*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(calc(100% - 4rem),-1 * calc(100% - 4rem))*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(calc(100% - 3.5rem),-1 * calc(100% - 3.5rem))*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-tree-node__select,.igx-tree-node__toggle-button{margin-inline-end:.5rem}}}@layer ig.fluent{@container style(--ig-theme: fluent){.igx-tree-node__wrapper{padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-tree-node__wrapper igx-icon{--component-size: 3}.igx-tree-node__drop-indicator{width:max(var(--is-large, 1)*max(calc(100% - 5rem),-1 * calc(100% - 5rem))*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(calc(100% - 4rem),-1 * calc(100% - 4rem))*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(calc(100% - 3.5rem),-1 * calc(100% - 3.5rem))*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-tree-node__select,.igx-tree-node__toggle-button{margin-inline-end:.5rem}}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-tree-node{border-radius:.25rem}.igx-tree-node__wrapper{padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));border-radius:.25rem;margin-block-end:.25rem}.igx-tree-node__wrapper:after{border-radius:.25rem}.igx-tree-node__wrapper igx-icon{--component-size: 2;color:var(--icon-color)}.igx-tree-node__wrapper:hover{color:var(--foreground-active)}.igx-tree-node__wrapper igx-circular-bar{--circular-bar: max(var(--is-large, 1) * max(1rem, -1 * 1rem), var(--is-medium, 1) * max( calc(1rem - 4px) , -1 * calc(1rem - 4px) ), var(--is-small, 1) * max( calc(1rem - 6px) , -1 * calc(1rem - 6px) )) !important}.igx-tree-node__wrapper--selected:hover:after{background:var(--hover-color)}.igx-tree-node__wrapper--active:hover{background:var(--hover-selected-color)}.igx-tree-node__wrapper--active:hover:after{background:#0000}.igx-tree-node__wrapper--active.igx-tree-node__wrapper--selected:hover{background:var(--hover-selected-color)}.igx-tree-node__wrapper--active.igx-tree-node__wrapper--selected:after{background:#0000}.igx-tree-node__wrapper--focused{box-shadow:inset 0 0 0 .125rem var(--border-color)}.igx-tree-node__wrapper--disabled igx-icon{color:var(--foreground-disabled)!important}.igx-tree-node__spacer{--spacer: 1rem}.igx-tree-node__drop-indicator{inset-inline-end:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))));width:max(var(--is-large, 1)*max(calc(100% - 3.25rem),-1 * calc(100% - 3.25rem))*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(calc(100% - 2.75rem),-1 * calc(100% - 2.75rem))*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(calc(100% - 2.25rem),-1 * calc(100% - 2.25rem))*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}.igx-tree-node__select{margin-inline-end:.5rem}.igx-tree-node__toggle-button igx-icon{--component-size: 1}.igx-tree-node__toggle-button{min-width:.875rem;margin-inline-end:.25rem}}}\n"] }]
1217
1217
  }], ctorParameters: () => [], propDecorators: { data: [{
1218
1218
  type: Input
1219
1219
  }], loading: [{