UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

1 lines • 32.8 kB
{"version":3,"file":"taiga-ui-kit-components-tree.mjs","sources":["../../../projects/kit/components/tree/directives/tree-children.directive.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/misc/tree.constants.ts","../../../projects/kit/components/tree/misc/tree.tokens.ts","../../../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 {EMPTY_ARRAY} from '@taiga-ui/cdk/constants';\nimport type {TuiHandler} from '@taiga-ui/cdk/types';\n\n@Directive({\n standalone: true,\n selector: 'tui-tree[childrenHandler]',\n})\nexport class TuiTreeChildren<T> {\n @Input()\n public childrenHandler: TuiHandler<T, readonly T[]> = TuiTreeChildren.defaultHandler;\n\n public static defaultHandler<G>(item: G): readonly G[] {\n return Array.isArray(item) ? item : EMPTY_ARRAY;\n }\n}\n","import {NgIf, NgTemplateOutlet} from '@angular/common';\nimport type {DoCheck} from '@angular/core';\nimport {ChangeDetectionStrategy, Component, forwardRef, inject} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\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 {injectContext} from '@taiga-ui/polymorpheus';\nimport {distinctUntilChanged, map, startWith, Subject} from 'rxjs';\n\nimport {TUI_DEFAULT_TREE_CONTROLLER} from '../../misc/tree.constants';\nimport type {TuiTreeController, TuiTreeItemContext} from '../../misc/tree.interfaces';\nimport {TUI_TREE_CONTROLLER} from '../../misc/tree.tokens';\n\n@Component({\n standalone: true,\n imports: [NgIf, NgTemplateOutlet, TuiButton],\n templateUrl: './tree-item-content.template.html',\n styleUrls: ['./tree-item-content.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._expandable]': 'isExpandable',\n },\n})\nexport class TuiTreeItemContent implements DoCheck {\n private readonly controller = inject<TuiTreeController>(\n forwardRef(() => TUI_TREE_CONTROLLER),\n );\n\n private readonly change$ = new Subject<void>();\n\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly more = toSignal(inject(TUI_MORE_WORD));\n protected readonly context = injectContext<TuiTreeItemContext>();\n\n protected 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 ngDoCheck(): void {\n this.change$.next();\n }\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 get isExpanded(): boolean {\n return this.context.$implicit.isExpanded;\n }\n\n protected onClick(): void {\n this.controller.toggle(this.context.$implicit);\n }\n}\n","<button\n *ngIf=\"isExpandable\"\n appearance=\"flat\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [class.t-button_expanded]=\"expanded()\"\n [iconStart]=\"icons.more\"\n [style.border-radius.%]=\"100\"\n (click)=\"onClick()\"\n>\n {{ more() }}\n</button>\n<ng-container [ngTemplateOutlet]=\"context.template\" />\n","import {EMPTY_FUNCTION, TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {PolymorpheusComponent} from '@taiga-ui/polymorpheus';\n\nimport {TuiTreeItemContent} from '../components/tree-item-content/tree-item-content.component';\nimport type {TuiTreeController} from './tree.interfaces';\n\nexport const TUI_TREE_ITEM_CONTENT = new PolymorpheusComponent(TuiTreeItemContent);\n\nexport const TUI_DEFAULT_TREE_CONTROLLER: TuiTreeController = {\n isExpanded: TUI_TRUE_HANDLER,\n toggle: EMPTY_FUNCTION as () => void,\n};\n","import {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TUI_DEFAULT_TREE_CONTROLLER, TUI_TREE_ITEM_CONTENT} from './tree.constants';\nimport type {TuiTreeAccessor, TuiTreeItemContext, TuiTreeLoader} from './tree.interfaces';\n\n/**\n * Controller for tracking value - TuiTreeItemComponent pairs\n */\nexport const TUI_TREE_ACCESSOR = tuiCreateToken<TuiTreeAccessor<unknown>>();\n\n/**\n * Controller for expanding the tree\n */\nexport const TUI_TREE_CONTROLLER = tuiCreateToken(TUI_DEFAULT_TREE_CONTROLLER);\n\n/**\n * A node of a tree view\n */\nexport const TUI_TREE_NODE = tuiCreateToken();\n\n/**\n * A tree node placeholder for loading\n */\nexport const TUI_TREE_LOADING = tuiCreateToken({});\n\n/**\n * A tree node starting point\n */\nexport const TUI_TREE_START = tuiCreateToken();\n\n/**\n * A service to load tree progressively\n */\nexport const TUI_TREE_LOADER = tuiCreateToken<TuiTreeLoader<unknown>>();\n\n/**\n * Content for a tree item\n */\nexport const TUI_TREE_CONTENT =\n tuiCreateToken<PolymorpheusContent<TuiTreeItemContext>>(TUI_TREE_ITEM_CONTENT);\n\n/**\n * Nesting level of current TreeView node\n */\nexport const TUI_TREE_LEVEL = tuiCreateToken(-1);\n","import {NgIf} from '@angular/common';\nimport type {DoCheck, QueryList} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n forwardRef,\n inject,\n SkipSelf,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiExpandComponent} from '@taiga-ui/core/components/expand';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {distinctUntilChanged, map, startWith, Subject} from 'rxjs';\n\nimport type {TuiTreeController, TuiTreeItemContext} from '../../misc/tree.interfaces';\nimport {\n TUI_TREE_CONTENT,\n TUI_TREE_CONTROLLER,\n TUI_TREE_LEVEL,\n TUI_TREE_NODE,\n} from '../../misc/tree.tokens';\n\n@Component({\n standalone: true,\n selector: 'tui-tree-item',\n imports: [NgIf, PolymorpheusOutlet, TuiExpandComponent],\n templateUrl: './tree-item.template.html',\n styleUrls: ['./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 @ContentChildren(TUI_TREE_NODE)\n private readonly nested: QueryList<unknown> = EMPTY_QUERY;\n\n private readonly el = tuiInjectElement();\n\n private readonly controller = inject<TuiTreeController>(\n forwardRef(() => TUI_TREE_CONTROLLER),\n );\n\n private readonly change$ = new Subject<void>();\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 expanded = toSignal(\n this.change$.pipe(\n startWith(null),\n map(() => this.isExpanded),\n ),\n {initialValue: this.isExpanded},\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 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<tui-expand\n *ngIf=\"isExpandable\"\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<ng-container *ngIf=\"attached()\" />\n","import type {OnDestroy} from '@angular/core';\nimport {Directive, inject, Input} 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({\n standalone: true,\n selector: 'tui-tree-item[tuiTreeNode]',\n})\nexport class TuiTreeNode<T> implements OnDestroy {\n private readonly component = inject(TuiTreeItem);\n private readonly directive = inject<TuiTreeAccessor<T>>(TUI_TREE_ACCESSOR, {\n optional: true,\n });\n\n @Input('tuiTreeNode')\n public set value(value: T) {\n this.directive?.register(this.component, value);\n }\n\n public ngOnDestroy(): void {\n this.directive?.unregister(this.component);\n }\n}\n","import {AsyncPipe, NgForOf, NgIf} from '@angular/common';\nimport type {DoCheck, TrackByFunction} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {TuiLet} from '@taiga-ui/cdk/directives/let';\nimport type {TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {distinctUntilChanged, map, startWith, Subject} from 'rxjs';\n\nimport {TuiTreeChildren} from '../../directives/tree-children.directive';\nimport {TuiTreeNode} from '../../directives/tree-node.directive';\nimport type {TuiTreeContext} from '../../misc/tree.interfaces';\nimport {TUI_TREE_NODE} from '../../misc/tree.tokens';\nimport {TuiTreeItem} from '../tree-item/tree-item.component';\n\n@Component({\n standalone: true,\n selector: 'tui-tree',\n imports: [\n AsyncPipe,\n NgForOf,\n NgIf,\n PolymorpheusOutlet,\n TuiLet,\n TuiTreeItem,\n TuiTreeNode,\n ],\n templateUrl: './tree.template.html',\n styleUrls: ['./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\n @ViewChild(forwardRef(() => TuiTreeItem))\n protected readonly item?: TuiTreeItem;\n\n @ViewChild(forwardRef(() => TuiTreeComponent))\n protected readonly child?: TuiTreeComponent<T>;\n\n protected readonly children$ = this.check$.pipe(\n startWith(null),\n map(() => this.handler(this.value)),\n distinctUntilChanged(),\n );\n\n protected readonly directive = inject<TuiTreeChildren<T>>(TuiTreeChildren, {\n optional: true,\n });\n\n @Input({\n required: true,\n })\n public value!: T;\n\n @Input()\n public trackBy: TrackByFunction<T> = (_: number, item: T) => item;\n\n @Input()\n public content: PolymorpheusContent<TuiTreeContext<T>> = ({$implicit}) =>\n String($implicit);\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 *tuiLet=\"children$ | async as children\"\n #view\n [tuiTreeNode]=\"value\"\n>\n <ng-container *ngIf=\"value !== children\">\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: value, node: view}\">\n {{ text }}\n </ng-container>\n </ng-container>\n <tui-tree\n *ngFor=\"let child of children; trackBy: trackBy\"\n [content]=\"content\"\n [trackBy]=\"trackBy\"\n [value]=\"child\"\n />\n</tui-tree-item>\n","import {Directive, EventEmitter, Input, Output} from '@angular/core';\nimport {tuiIsPresent, tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport type {TuiTreeItem} from '../components/tree-item/tree-item.component';\nimport type {TuiTreeAccessor, TuiTreeController} from '../misc/tree.interfaces';\nimport {TUI_TREE_ACCESSOR, TUI_TREE_CONTROLLER} from '../misc/tree.tokens';\n\n@Directive({\n standalone: true,\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\n @Input('tuiTreeController')\n public fallback = true;\n\n @Input()\n public map = new Map<T, boolean>();\n\n @Output()\n public readonly toggled = new EventEmitter<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/miscellaneous';\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 standalone: true,\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\n @Input('tuiTreeController')\n public fallback = true;\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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"}