{"version":3,"file":"taiga-ui-kit-components-tree.mjs","sources":["../../../projects/kit/components/tree/directives/tree-children.directive.ts","../../../projects/kit/components/tree/misc/tree.constants.ts","../../../projects/kit/components/tree/misc/tree.tokens.ts","../../../projects/kit/components/tree/components/tree-item-content/tree-item-content.component.ts","../../../projects/kit/components/tree/components/tree-item-content/tree-item-content.template.html","../../../projects/kit/components/tree/components/tree-item/tree-item.component.ts","../../../projects/kit/components/tree/components/tree-item/tree-item.template.html","../../../projects/kit/components/tree/directives/tree-node.directive.ts","../../../projects/kit/components/tree/components/tree/tree.component.ts","../../../projects/kit/components/tree/components/tree/tree.template.html","../../../projects/kit/components/tree/directives/tree-controller.directive.ts","../../../projects/kit/components/tree/directives/tree-item-controller.directive.ts","../../../projects/kit/components/tree/misc/tree.service.ts","../../../projects/kit/components/tree/tree.ts","../../../projects/kit/components/tree/taiga-ui-kit-components-tree.ts"],"sourcesContent":["import {Directive, input} from '@angular/core';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\n\n@Directive({selector: 'tui-tree[childrenHandler]'})\nexport class TuiTreeChildren<T> {\n    public readonly childrenHandler = input<TuiHandler<T, readonly T[]>>(\n        TuiTreeChildren.defaultHandler,\n    );\n\n    public static defaultHandler<G>(item: G): readonly G[] {\n        return Array.isArray(item) ? item : [];\n    }\n}\n","import {EMPTY_FUNCTION, TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\n\nimport {type TuiTreeController} from './tree.interfaces';\n\nexport const TUI_DEFAULT_TREE_CONTROLLER: TuiTreeController = {\n    isExpanded: TUI_TRUE_HANDLER,\n    toggle: EMPTY_FUNCTION,\n};\n","import {InjectionToken} from '@angular/core';\n\nimport {TUI_DEFAULT_TREE_CONTROLLER} from './tree.constants';\nimport {type TuiTreeAccessor, type TuiTreeLoader} from './tree.interfaces';\n\n/**\n * Controller for tracking value - TuiTreeItemComponent pairs\n */\nexport const TUI_TREE_ACCESSOR = new InjectionToken<TuiTreeAccessor<unknown>>(\n    ngDevMode ? 'TUI_TREE_ACCESSOR' : '',\n);\n\n/**\n * Controller for expanding the tree\n */\nexport const TUI_TREE_CONTROLLER = new InjectionToken(\n    ngDevMode ? 'TUI_TREE_CONTROLLER' : '',\n    {factory: () => TUI_DEFAULT_TREE_CONTROLLER},\n);\n\n/**\n * A node of a tree view\n */\nexport const TUI_TREE_NODE = new InjectionToken(ngDevMode ? 'TUI_TREE_NODE' : '');\n\n/**\n * A tree node placeholder for loading\n */\nexport const TUI_TREE_LOADING = new InjectionToken(ngDevMode ? 'TUI_TREE_LOADING' : '', {\n    factory: () => ({}),\n});\n\n/**\n * A tree node starting point\n */\nexport const TUI_TREE_START = new InjectionToken(ngDevMode ? 'TUI_TREE_START' : '');\n\n/**\n * A service to load tree progressively\n */\nexport const TUI_TREE_LOADER = new InjectionToken<TuiTreeLoader<unknown>>(\n    ngDevMode ? 'TUI_TREE_LOADER' : '',\n);\n\n/**\n * Nesting level of current TreeView node\n */\nexport const TUI_TREE_LEVEL = new InjectionToken(ngDevMode ? 'TUI_TREE_LEVEL' : '', {\n    factory: () => -1,\n});\n","import {NgTemplateOutlet} from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    forwardRef,\n    inject,\n    InjectionToken,\n} from '@angular/core';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {TUI_MORE_WORD} from '@taiga-ui/kit/tokens';\nimport {\n    injectContext,\n    PolymorpheusComponent,\n    type PolymorpheusContent,\n} from '@taiga-ui/polymorpheus';\n\nimport {TUI_DEFAULT_TREE_CONTROLLER} from '../../misc/tree.constants';\nimport {\n    type TuiTreeController,\n    type TuiTreeItemContext,\n} from '../../misc/tree.interfaces';\nimport {TUI_TREE_CONTROLLER} from '../../misc/tree.tokens';\n\n@Component({\n    imports: [NgTemplateOutlet, TuiButton],\n    templateUrl: './tree-item-content.template.html',\n    styleUrl: './tree-item-content.style.less',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {'[class._expandable]': 'isExpandable'},\n})\nexport class TuiTreeItemContent {\n    private readonly controller = inject<TuiTreeController>(\n        forwardRef(() => TUI_TREE_CONTROLLER),\n    );\n\n    protected readonly icons = inject(TUI_COMMON_ICONS);\n    protected readonly more = inject(TUI_MORE_WORD);\n    protected readonly context = injectContext<TuiTreeItemContext>();\n\n    protected get isExpandable(): boolean {\n        return (\n            this.context.$implicit.isExpandable &&\n            this.controller !== TUI_DEFAULT_TREE_CONTROLLER\n        );\n    }\n\n    protected onClick(): void {\n        this.controller.toggle(this.context.$implicit);\n    }\n}\n\nexport const TUI_TREE_ITEM_CONTENT = new PolymorpheusComponent(TuiTreeItemContent);\n\n/**\n * Content for a tree item\n */\nexport const TUI_TREE_CONTENT = new InjectionToken<\n    PolymorpheusContent<TuiTreeItemContext>\n>(ngDevMode ? 'TUI_TREE_CONTENT' : '', {factory: () => TUI_TREE_ITEM_CONTENT});\n","@if (isExpandable) {\n    <button\n        appearance=\"flat\"\n        size=\"xs\"\n        tuiIconButton\n        type=\"button\"\n        class=\"t-button\"\n        [class.t-button_expanded]=\"context.$implicit.expanded()\"\n        [iconStart]=\"icons.more\"\n        [style.border-radius.%]=\"100\"\n        (click)=\"onClick()\"\n    >\n        {{ more() }}\n    </button>\n}\n<ng-container [ngTemplateOutlet]=\"context.template\" />\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    contentChildren,\n    type DoCheck,\n    forwardRef,\n    inject,\n    SkipSelf,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiExpand} from '@taiga-ui/core/components/expand';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {distinctUntilChanged, map, startWith, Subject} from 'rxjs';\n\nimport {\n    type TuiTreeController,\n    type TuiTreeItemContext,\n} from '../../misc/tree.interfaces';\nimport {TUI_TREE_CONTROLLER, TUI_TREE_LEVEL, TUI_TREE_NODE} from '../../misc/tree.tokens';\nimport {TUI_TREE_CONTENT} from '../tree-item-content/tree-item-content.component';\n\n@Component({\n    selector: 'tui-tree-item',\n    imports: [PolymorpheusOutlet, TuiExpand],\n    templateUrl: './tree-item.template.html',\n    styleUrl: './tree-item.style.less',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        tuiProvide(TUI_TREE_NODE, TuiTreeItem),\n        {\n            provide: TUI_TREE_LEVEL,\n            deps: [[new SkipSelf(), TUI_TREE_LEVEL]],\n            useFactory: (level: number): number => ++level,\n        },\n    ],\n    host: {\n        role: 'treeitem',\n        '[class._expandable]': 'isExpandable',\n    },\n})\nexport class TuiTreeItem implements DoCheck {\n    private readonly nested = contentChildren(TUI_TREE_NODE);\n    private readonly el = tuiInjectElement();\n    private readonly change$ = new Subject<void>();\n\n    private readonly controller = inject<TuiTreeController>(\n        forwardRef(() => TUI_TREE_CONTROLLER),\n    );\n\n    protected readonly level = inject<number>(forwardRef(() => TUI_TREE_LEVEL));\n\n    protected readonly content = inject<PolymorpheusContent<TuiTreeItemContext>>(\n        forwardRef(() => TUI_TREE_CONTENT),\n    );\n\n    protected readonly attached = toSignal(\n        this.change$.pipe(\n            map(() => this.el.isConnected),\n            distinctUntilChanged(),\n        ),\n        {initialValue: this.el.isConnected},\n    );\n\n    public readonly expanded = toSignal(\n        this.change$.pipe(\n            startWith(null),\n            map(() => this.isExpanded),\n            distinctUntilChanged(),\n        ),\n        {initialValue: this.isExpanded},\n    );\n\n    public get isExpandable(): boolean {\n        return !!this.nested().length;\n    }\n\n    public get isExpanded(): boolean {\n        return this.controller.isExpanded(this);\n    }\n\n    public ngDoCheck(): void {\n        this.checkChanges();\n    }\n\n    public checkChanges(): void {\n        this.change$.next();\n    }\n}\n","<ng-template #template>\n    <ng-content />\n</ng-template>\n<ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: this, template: template}\">\n    {{ text }}\n</ng-container>\n@if (isExpandable) {\n    <tui-expand\n        role=\"group\"\n        class=\"t-children\"\n        [expanded]=\"expanded()\"\n    >\n        <div>\n            <ng-content select=\"tui-tree-item\" />\n            <ng-content select=\"tui-tree\" />\n        </div>\n    </tui-expand>\n}\n@if (attached()) {}\n","import {Directive, inject, input, type OnChanges, type OnDestroy} from '@angular/core';\n\nimport {TuiTreeItem} from '../components/tree-item/tree-item.component';\nimport {type TuiTreeAccessor} from '../misc/tree.interfaces';\nimport {TUI_TREE_ACCESSOR} from '../misc/tree.tokens';\n\n@Directive({selector: 'tui-tree-item[tuiTreeNode]'})\nexport class TuiTreeNode<T> implements OnChanges, OnDestroy {\n    private readonly component = inject(TuiTreeItem);\n\n    private readonly directive = inject<TuiTreeAccessor<T>>(TUI_TREE_ACCESSOR, {\n        optional: true,\n    });\n\n    public readonly value = input.required<T>({alias: 'tuiTreeNode'});\n\n    public ngOnChanges(): void {\n        this.directive?.register(this.component, this.value());\n    }\n\n    public ngOnDestroy(): void {\n        this.directive?.unregister(this.component);\n    }\n}\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    type DoCheck,\n    inject,\n    input,\n    type TrackByFunction,\n    viewChild,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TUI_STRINGIFY} from '@taiga-ui/cdk/constants';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {distinctUntilChanged, map, Subject} from 'rxjs';\n\nimport {TuiTreeChildren} from '../../directives/tree-children.directive';\nimport {TuiTreeNode} from '../../directives/tree-node.directive';\nimport {TUI_TREE_NODE} from '../../misc/tree.tokens';\nimport {TuiTreeItem} from '../tree-item/tree-item.component';\n\n@Component({\n    selector: 'tui-tree',\n    imports: [PolymorpheusOutlet, TuiTreeItem, TuiTreeNode],\n    templateUrl: './tree.template.html',\n    styleUrl: './tree.style.less',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [tuiProvide(TUI_TREE_NODE, TuiTreeComponent)],\n    host: {role: 'tree'},\n})\nexport class TuiTreeComponent<T> implements DoCheck {\n    private readonly check$ = new Subject<void>();\n    protected readonly item = viewChild(TuiTreeItem);\n    protected readonly child = viewChild(TuiTreeComponent);\n\n    protected readonly children = toSignal(\n        this.check$.pipe(\n            map(() => this.handler(this.value())),\n            distinctUntilChanged(),\n        ),\n        {initialValue: []},\n    );\n\n    protected readonly directive = inject<TuiTreeChildren<T>>(TuiTreeChildren, {\n        optional: true,\n    });\n\n    public readonly value = input.required<T>();\n    public readonly trackBy = input<TrackByFunction<T>>((_: number, item) => item);\n    public readonly content = input(TUI_STRINGIFY);\n\n    public ngDoCheck(): void {\n        this.checkChanges();\n    }\n\n    protected checkChanges(): void {\n        this.check$.next();\n        this.item()?.checkChanges();\n        this.child()?.checkChanges();\n    }\n\n    private get handler(): TuiHandler<T, readonly T[]> {\n        return this.directive?.childrenHandler() || TuiTreeChildren.defaultHandler;\n    }\n}\n","<tui-tree-item\n    #view\n    [tuiTreeNode]=\"value()\"\n>\n    @if (value() !== children()) {\n        <ng-container *polymorpheusOutlet=\"content() as text; context: {$implicit: value(), node: view}\">\n            {{ text }}\n        </ng-container>\n    }\n    @for (child of children(); track trackBy()($index, child)) {\n        <tui-tree\n            [content]=\"content()\"\n            [trackBy]=\"trackBy()\"\n            [value]=\"child\"\n        />\n    }\n</tui-tree-item>\n","import {Directive, input, output} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {type TuiTreeItem} from '../components/tree-item/tree-item.component';\nimport {type TuiTreeAccessor, type TuiTreeController} from '../misc/tree.interfaces';\nimport {TUI_TREE_ACCESSOR, TUI_TREE_CONTROLLER} from '../misc/tree.tokens';\n\n@Directive({\n    selector: '[tuiTreeController][map]',\n    providers: [\n        tuiProvide(TUI_TREE_ACCESSOR, TuiTreeControllerDirective),\n        tuiProvide(TUI_TREE_CONTROLLER, TuiTreeControllerDirective),\n    ],\n    exportAs: 'tuiTreeController',\n})\nexport class TuiTreeControllerDirective<T>\n    implements TuiTreeController, TuiTreeAccessor<T>\n{\n    protected readonly items = new Map<TuiTreeItem, T>();\n    public readonly fallback = input(true, {alias: 'tuiTreeController'});\n    public readonly map = input(new Map<T, boolean>());\n    public readonly toggled = output<T>();\n\n    public register(item: TuiTreeItem, value: T): void {\n        this.items.set(item, value);\n    }\n\n    public unregister(item: TuiTreeItem): void {\n        this.items.delete(item);\n    }\n\n    public isExpanded(item: TuiTreeItem): boolean {\n        const value = this.items.get(item);\n\n        return (value && this.map().get(value)) ?? this.fallback();\n    }\n\n    public toggle(item: TuiTreeItem): void {\n        const value = this.items.get(item);\n        const expanded = this.isExpanded(item);\n\n        if (!tuiIsPresent(value)) {\n            return;\n        }\n\n        this.toggled.emit(value);\n        this.map().set(value, !expanded);\n    }\n}\n","import {Directive, input} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\n\nimport {type TuiTreeItem} from '../components/tree-item/tree-item.component';\nimport {type TuiTreeController} from '../misc/tree.interfaces';\nimport {TUI_TREE_CONTROLLER} from '../misc/tree.tokens';\n\n@Directive({\n    selector: '[tuiTreeController]:not([map])',\n    providers: [tuiProvide(TUI_TREE_CONTROLLER, TuiTreeItemController)],\n    exportAs: 'tuiTreeController',\n})\nexport class TuiTreeItemController implements TuiTreeController {\n    private readonly map = new WeakMap<TuiTreeItem, boolean>();\n    public readonly fallback = input(true, {alias: 'tuiTreeController'});\n\n    public isExpanded(item: TuiTreeItem): boolean {\n        return this.map.get(item) ?? this.fallback();\n    }\n\n    public toggle(item: TuiTreeItem): void {\n        this.map.set(item, !this.isExpanded(item));\n    }\n}\n","import {inject, Injectable} from '@angular/core';\nimport {map, mergeMap, startWith, Subject, tap} from 'rxjs';\n\nimport {type TuiTreeLoader} from './tree.interfaces';\nimport {TUI_TREE_LOADER, TUI_TREE_LOADING, TUI_TREE_START} from './tree.tokens';\n\n@Injectable()\nexport class TuiTreeService<T> {\n    private readonly loading = inject<T>(TUI_TREE_LOADING);\n    private readonly start = inject<T>(TUI_TREE_START);\n    private readonly loader = inject<TuiTreeLoader<T>>(TUI_TREE_LOADER);\n    private readonly map = new Map<T, readonly T[]>([[this.loading, []]]);\n    private readonly load$ = new Subject<T>();\n\n    public readonly data$ = this.load$.pipe(\n        mergeMap((item) =>\n            this.loader.loadChildren(item).pipe(\n                tap((children) => this.map.set(item, children)),\n                map((children) =>\n                    children.filter((item) => !this.loader.hasChildren(item)),\n                ),\n                tap((children) => children.forEach((child) => this.map.set(child, []))),\n            ),\n        ),\n        startWith(null),\n        map(() => this.start),\n    );\n\n    public getChildren(item: T): readonly T[] {\n        return this.map.get(item) || [this.loading];\n    }\n\n    public loadChildren(item: T): void {\n        if (this.map.get(item)) {\n            return;\n        }\n\n        this.map.set(item, [this.loading]);\n        this.load$.next(item);\n    }\n}\n","import {TuiTreeComponent} from './components/tree/tree.component';\nimport {TuiTreeItem} from './components/tree-item/tree-item.component';\nimport {TuiTreeItemContent} from './components/tree-item-content/tree-item-content.component';\nimport {TuiTreeChildren} from './directives/tree-children.directive';\nimport {TuiTreeControllerDirective} from './directives/tree-controller.directive';\nimport {TuiTreeItemController} from './directives/tree-item-controller.directive';\nimport {TuiTreeNode} from './directives/tree-node.directive';\n\nexport const TuiTree = [\n    TuiTreeComponent,\n    TuiTreeItem,\n    TuiTreeItemContent,\n    TuiTreeChildren,\n    TuiTreeItemController,\n    TuiTreeControllerDirective,\n    TuiTreeNode,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}