@fundamental-ngx/core 0.41.0 → 0.41.1-rc.1

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 (58) hide show
  1. package/esm2020/multi-combobox/base-multi-combobox.class.mjs +1 -1
  2. package/esm2020/multi-combobox/multi-combobox.component.mjs +3 -9
  3. package/esm2020/radio/radio-button/radio-button.component.mjs +22 -5
  4. package/esm2020/tree/components/tree-item/tree-item.component.mjs +296 -0
  5. package/esm2020/tree/data-source/tree-data-source-parser.mjs +22 -0
  6. package/esm2020/tree/data-source/tree-data-source.mjs +23 -0
  7. package/esm2020/tree/directives/tree-item-button.directive.mjs +16 -0
  8. package/esm2020/tree/directives/tree-item-def.directive.mjs +23 -0
  9. package/esm2020/tree/directives/tree-item-icon.directive.mjs +41 -0
  10. package/esm2020/tree/directives/tree-item.directive.mjs +26 -0
  11. package/esm2020/tree/models/base-tree-item.class.mjs +25 -0
  12. package/esm2020/tree/models/selection-type.mjs +2 -0
  13. package/esm2020/tree/models/tree-item-def-context.mjs +2 -0
  14. package/esm2020/tree/models/tree-item.mjs +2 -0
  15. package/esm2020/tree/public_api.mjs +14 -3
  16. package/esm2020/tree/tokens.mjs +3 -0
  17. package/esm2020/tree/tree.component.mjs +399 -57
  18. package/esm2020/tree/tree.module.mjs +83 -7
  19. package/esm2020/tree/tree.service.mjs +101 -0
  20. package/fesm2015/fundamental-ngx-core-multi-combobox.mjs +2 -8
  21. package/fesm2015/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  22. package/fesm2015/fundamental-ngx-core-radio.mjs +21 -4
  23. package/fesm2015/fundamental-ngx-core-radio.mjs.map +1 -1
  24. package/fesm2015/fundamental-ngx-core-tree.mjs +997 -106
  25. package/fesm2015/fundamental-ngx-core-tree.mjs.map +1 -1
  26. package/fesm2020/fundamental-ngx-core-multi-combobox.mjs +2 -8
  27. package/fesm2020/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  28. package/fesm2020/fundamental-ngx-core-radio.mjs +21 -4
  29. package/fesm2020/fundamental-ngx-core-radio.mjs.map +1 -1
  30. package/fesm2020/fundamental-ngx-core-tree.mjs +995 -106
  31. package/fesm2020/fundamental-ngx-core-tree.mjs.map +1 -1
  32. package/fundamental-ngx-core-v0.41.1-rc.1.tgz +0 -0
  33. package/multi-combobox/base-multi-combobox.class.d.ts +2 -2
  34. package/multi-combobox/multi-combobox.component.d.ts +2 -2
  35. package/package.json +3 -3
  36. package/radio/radio-button/radio-button.component.d.ts +9 -3
  37. package/schematics/add-dependencies/index.js +4 -4
  38. package/tree/components/tree-item/tree-item.component.d.ts +145 -0
  39. package/tree/data-source/tree-data-source-parser.d.ts +9 -0
  40. package/tree/data-source/tree-data-source.d.ts +22 -0
  41. package/tree/directives/tree-item-button.directive.d.ts +5 -0
  42. package/tree/directives/tree-item-def.directive.d.ts +18 -0
  43. package/tree/directives/tree-item-icon.directive.d.ts +13 -0
  44. package/tree/directives/tree-item.directive.d.ts +19 -0
  45. package/tree/models/base-tree-item.class.d.ts +91 -0
  46. package/tree/models/selection-type.d.ts +10 -0
  47. package/tree/models/tree-item-def-context.d.ts +3 -0
  48. package/tree/models/tree-item.d.ts +17 -0
  49. package/tree/public_api.d.ts +13 -2
  50. package/tree/tokens.d.ts +2 -0
  51. package/tree/tree.component.d.ts +137 -19
  52. package/tree/tree.module.d.ts +17 -7
  53. package/tree/tree.service.d.ts +62 -0
  54. package/esm2020/tree/tree-child.component.mjs +0 -66
  55. package/esm2020/tree/tree-row-object.model.mjs +0 -2
  56. package/fundamental-ngx-core-v0.41.0.tgz +0 -0
  57. package/tree/tree-child.component.d.ts +0 -27
  58. package/tree/tree-row-object.model.d.ts +0 -5
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-tree.mjs","sources":["../../../../libs/core/src/lib/tree/tree-child.component.ts","../../../../libs/core/src/lib/tree/tree-child.component.html","../../../../libs/core/src/lib/tree/tree.component.ts","../../../../libs/core/src/lib/tree/tree.component.html","../../../../libs/core/src/lib/tree/tree.module.ts","../../../../libs/core/src/lib/tree/fundamental-ngx-core-tree.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { TreeRowObject } from './tree-row-object.model';\n\n@Component({\n selector: 'fd-tree-child',\n templateUrl: './tree-child.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TreeChildComponent implements OnInit {\n /** @hidden */\n @Input() row: TreeRowObject;\n\n /** @hidden */\n @Input() hideChildren: boolean;\n\n /** @hidden */\n @Input() displayTreeActions: boolean;\n\n /** @hidden */\n @Output() editClicked: EventEmitter<any> = new EventEmitter<any>();\n\n /** @hidden */\n @Output() deleteClicked: EventEmitter<any> = new EventEmitter<any>();\n\n /** @hidden */\n ngOnInit(): void {\n this.hideChildren = false;\n }\n\n /** @hidden */\n toggleDisplayChildren(hideAll?): void {\n if (hideAll !== undefined) {\n this.hideChildren = hideAll;\n } else {\n this.hideChildren = !this.hideChildren;\n }\n }\n\n /** @hidden */\n typeOf(variable?): string {\n let retVal;\n if (typeof variable === 'string') {\n retVal = 'string';\n } else if (typeof variable === 'object') {\n retVal = 'object';\n }\n\n return retVal;\n }\n\n /** @hidden */\n editTreeItem(row?): void {\n if (row) {\n this.editClicked.emit(row);\n }\n }\n\n /** @hidden */\n deleteTreeItem(row?): void {\n if (row) {\n this.deleteClicked.emit(row);\n }\n }\n}\n","<li #treeChild class=\"fd-tree__item\" role=\"treeitem\">\n <div class=\"fd-tree__row\">\n <div\n *ngFor=\"let cell of row.rowData; let i = index\"\n [attr.data-index]=\"i\"\n class=\"fd-tree__col\"\n [class.fd-tree__col--control]=\"i === 0\"\n >\n <button\n (click)=\"toggleDisplayChildren()\"\n *ngIf=\"row.children && i === 0\"\n class=\"fd-tree__control\"\n aria-label=\"Expand\"\n [class.is-pressed]=\"!hideChildren\"\n [attr.aria-pressed]=\"!hideChildren\"\n ></button>\n <ng-container *ngIf=\"typeOf(cell) === 'string'\">\n {{ cell }}\n </ng-container>\n <ng-container *ngIf=\"typeOf(cell) === 'object'\">\n <ng-container *ngIf=\"cell.linkUrl\">\n <ng-container *ngIf=\"cell.displayText\">\n <!-- link with display text -->\n <a [attr.href]=\"cell.linkUrl\" class=\"fd-has-font-weight-semi\">{{ cell.displayText }}</a>\n </ng-container>\n <ng-container *ngIf=\"!cell.displayText\">\n <!-- link without display text -->\n <a [attr.href]=\"cell.linkUrl\" class=\"fd-has-font-weight-semi\">{{ cell.linkUrl }}</a>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!cell.linkUrl\">\n {{ cell.displayText }}\n </ng-container>\n </ng-container>\n </div>\n <div class=\"fd-tree__col fd-tree__col--actions\">\n <ng-container *ngIf=\"displayTreeActions\">\n <button fd-button fdType=\"transparent\" glyph=\"vertical-grip\" [fdMenuTrigger]=\"menu\"></button>\n\n <fd-menu #menu>\n <li fd-menu-item (click)=\"editTreeItem(row)\">\n <div fd-menu-interactive>\n <span fd-menu-title>Edit</span>\n </div>\n </li>\n <li fd-menu-item (click)=\"deleteTreeItem(row)\">\n <div fd-menu-interactive>\n <span fd-menu-title>Delete</span>\n </div>\n </li>\n </fd-menu>\n </ng-container>\n </div>\n </div>\n <ul\n *ngIf=\"row.children && row.children.length > 0\"\n [class.is-hidden]=\"hideChildren\"\n class=\"fd-tree__group\"\n role=\"group\"\n >\n <fd-tree-child\n *ngFor=\"let child of row.children\"\n [displayTreeActions]=\"displayTreeActions\"\n [row]=\"child\"\n [class]=\"child.sublevelClass\"\n >\n </fd-tree-child>\n </ul>\n</li>\n","import {\n AfterContentInit,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n QueryList,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { TreeRowObject } from './tree-row-object.model';\nimport { TreeChildComponent } from './tree-child.component';\n\n@Component({\n selector: 'fd-tree',\n templateUrl: './tree.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./tree.component.scss']\n})\nexport class TreeComponent implements OnInit, AfterContentInit {\n /** @hidden */\n @Input() headers: string[];\n\n /** @hidden */\n @Input() treeData: TreeRowObject[];\n\n /** @hidden */\n @Input() hideAll: boolean;\n\n /** @hidden */\n @Input() displayTreeActions: boolean;\n\n /** @hidden */\n @Output() editRowClicked: EventEmitter<any> = new EventEmitter<any>();\n\n /** @hidden */\n @Output() deleteRowClicked: EventEmitter<any> = new EventEmitter<any>();\n\n /** @hidden */\n @ViewChildren(TreeChildComponent) treeChildren: QueryList<TreeChildComponent>;\n\n /** @hidden */\n ngOnInit(): void {\n this.hideAll = false;\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this.treeData && this.treeData.length) {\n this.treeData.forEach((row) => {\n this.getChildDepth(row, 0);\n this.handleEmptyTrailingCells(row); // handle empty cells for parents\n });\n }\n }\n\n /** @hidden */\n toggleDisplayAll(): void {\n this.hideAll = !this.hideAll;\n this.treeChildren.forEach((child) => {\n child.toggleDisplayChildren(this.hideAll);\n });\n }\n\n /** @hidden */\n getChildDepth(row, depth): void {\n if (depth > 0) {\n row.sublevelClass = 'fd-tree__group--sublevel-' + depth;\n }\n if (row.children) {\n row.children.forEach((child) => {\n this.getChildDepth(child, depth + 1);\n this.handleEmptyTrailingCells(child); // handle empty cells for children\n });\n }\n }\n\n /** @hidden */\n handleEmptyTrailingCells(row): void {\n if (\n row &&\n row.rowData &&\n row.rowData.length &&\n typeof row.rowData[0] !== 'object' &&\n this.headers &&\n this.headers.length\n ) {\n while (row.rowData.length < this.headers.length) {\n row.rowData.push('');\n }\n } else if (\n row &&\n row.rowData &&\n row.rowData.length &&\n typeof row.rowData[0] === 'object' &&\n this.headers &&\n this.headers.length\n ) {\n while (row.rowData.length < this.headers.length) {\n row.rowData.push({\n displayText: ''\n });\n }\n }\n }\n\n /** @hidden */\n editClicked(row): void {\n this.editRowClicked.emit(row);\n }\n\n /** @hidden */\n deleteClicked(row): void {\n this.deleteRowClicked.emit(row);\n }\n}\n","<div class=\"fd-tree fd-tree--header\" *ngIf=\"headers.length > 0\">\n <div class=\"fd-tree__row fd-tree__row--header\">\n <div class=\"fd-tree__col fd-tree__col--control\">\n <button\n (click)=\"toggleDisplayAll()\"\n class=\"fd-tree__control\"\n aria-label=\"Expand all\"\n [class.is-pressed]=\"!hideAll\"\n [attr.aria-pressed]=\"!hideAll\"\n ></button>\n {{ headers[0] }}\n </div>\n <div class=\"fd-tree__col\" *ngFor=\"let header of headers | slice: 1\">\n {{ header }}\n </div>\n <div class=\"fd-tree__col fd-tree__col--actions\"></div>\n </div>\n</div>\n<ul class=\"fd-tree\" id=\"ENusD653\" role=\"tree\">\n <fd-tree-child\n (editClicked)=\"editClicked($event)\"\n (deleteClicked)=\"deleteClicked($event)\"\n [displayTreeActions]=\"displayTreeActions\"\n *ngFor=\"let row of treeData\"\n [row]=\"row\"\n ></fd-tree-child>\n</ul>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TreeComponent } from './tree.component';\nimport { TreeChildComponent } from './tree-child.component';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { MenuModule } from '@fundamental-ngx/core/menu';\n\n@NgModule({\n declarations: [TreeComponent, TreeChildComponent],\n imports: [CommonModule, ButtonModule, IconModule, PopoverModule, MenuModule],\n exports: [TreeComponent, TreeChildComponent]\n})\nexport class TreeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2.TreeChildComponent"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-tree.mjs","sources":["../../../../libs/core/src/lib/tree/data-source/tree-data-source.ts","../../../../libs/core/src/lib/tree/data-source/tree-data-source-parser.ts","../../../../libs/core/src/lib/tree/directives/tree-item-def.directive.ts","../../../../libs/core/src/lib/tree/directives/tree-item.directive.ts","../../../../libs/core/src/lib/tree/models/base-tree-item.class.ts","../../../../libs/core/src/lib/tree/tree.service.ts","../../../../libs/core/src/lib/tree/tree.component.ts","../../../../libs/core/src/lib/tree/tree.component.html","../../../../libs/core/src/lib/tree/components/tree-item/tree-item.component.ts","../../../../libs/core/src/lib/tree/components/tree-item/tree-item.component.html","../../../../libs/core/src/lib/tree/directives/tree-item-icon.directive.ts","../../../../libs/core/src/lib/tree/directives/tree-item-button.directive.ts","../../../../libs/core/src/lib/tree/tree.module.ts","../../../../libs/core/src/lib/tree/tokens.ts","../../../../libs/core/src/lib/tree/fundamental-ngx-core-tree.ts"],"sourcesContent":["import { AbstractDataProvider, BaseDataSource, DataProvider } from '@fundamental-ngx/cdk/data-source';\nimport { Observable } from 'rxjs';\n\nexport class FdTreeDataSource<T> extends BaseDataSource<T> {\n /** @hidden */\n limitless = true;\n /** @hidden */\n constructor(public dataProvider: AbstractDataProvider<T>) {\n super(dataProvider);\n }\n}\n\nexport class ArrayTreeDataSource<T> extends FdTreeDataSource<T> {\n /** @hidden */\n constructor(data: T[]) {\n super(new DataProvider(data));\n }\n}\n\nexport class ObservableTreeDataSource<T> extends FdTreeDataSource<T> {\n /** @hidden */\n constructor(data: Observable<T[]>) {\n super(new DataProvider(data));\n }\n}\n\n/**\n * Type of acceptable objects as a datasource for the Multi-Combo Box component.\n */\nexport type FdTreeAcceptableDataSource<T = any> = FdTreeDataSource<T> | Observable<T[]> | T[];\nexport type FdTreeItemType<Type extends FdTreeAcceptableDataSource> = Type extends BaseDataSource<infer X>\n ? X\n : Type extends Array<infer X>\n ? X\n : Type extends Observable<infer X>\n ? X extends Array<infer V>\n ? V\n : X\n : Type;\n","import { DataSourceParser, isDataSource } from '@fundamental-ngx/cdk/data-source';\nimport { isObservable } from 'rxjs';\nimport {\n ArrayTreeDataSource,\n FdTreeAcceptableDataSource,\n FdTreeDataSource,\n ObservableTreeDataSource\n} from './tree-data-source';\n\nexport class TreeDataSourceParser<T> implements DataSourceParser<T, FdTreeDataSource<T>> {\n /**\n * Transforms plain array or observable into DataSource class.\n * @param source\n */\n parse(source: FdTreeAcceptableDataSource<T>): FdTreeDataSource<T> | undefined {\n if (isDataSource(source)) {\n return source as FdTreeDataSource<T>;\n }\n\n if (Array.isArray(source)) {\n return new ArrayTreeDataSource<T>(source);\n }\n\n if (isObservable(source)) {\n return new ObservableTreeDataSource<T>(source);\n }\n\n return undefined;\n }\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { TreeItem } from '../models/tree-item';\nimport { TreeItemDefContext } from '../models/tree-item-def-context';\n\n@Directive({\n selector: '[fdTreeItemDef]'\n})\nexport class TreeItemDefDirective<T extends TreeItem = TreeItem> {\n /**\n * @hidden\n * Used for type support.\n */\n @Input()\n fdTreeItemDefAs: T;\n /** @hidden */\n static ngTemplateContextGuard(dir: TreeItemDefDirective, ctx: TreeItemDefContext): ctx is TreeItemDefContext {\n return true;\n }\n\n /** @hidden */\n constructor(public templateRef: TemplateRef<TreeItemDefContext<T>>) {}\n}\n","import { Directive, Injector, OnDestroy } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { BaseTreeItem } from '../models/base-tree-item.class';\nimport { TreeItem } from '../models/tree-item';\n\n@Directive({\n selector: '[fdTreeItem]',\n exportAs: 'fdTreeItem'\n})\nexport class TreeItemDirective<T extends TreeItem, P> implements OnDestroy {\n /** Tree item component instance. */\n treeItem: Nullable<BaseTreeItem<T, P>>;\n\n /** Injector to be used in a tree item component, to resolve a tree item directive. */\n readonly injector: Injector;\n\n /** @hidden */\n constructor(injector: Injector) {\n this.injector = Injector.create({ providers: [], parent: injector });\n }\n\n /** Sets tree item. */\n setTreeItem(item: Nullable<BaseTreeItem<T, P>>): void {\n this.treeItem = item;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.treeItem = null;\n }\n}\n","import { Directive, ElementRef, inject } from '@angular/core';\nimport { Nullable, SelectableItemToken } from '@fundamental-ngx/cdk/utils';\nimport { FdTreeAcceptableDataSource } from '../data-source/tree-data-source';\nimport { TreeItemDirective } from '../directives/tree-item.directive';\nimport { TreeItem, TreeItemState } from './tree-item';\n\n@Directive()\nexport abstract class BaseTreeItem<T extends TreeItem = TreeItem, P = any>\n implements Partial<SelectableItemToken<HTMLElement, P>>\n{\n /**\n * Tree item value.\n */\n abstract value: P;\n /**\n * Tree item ID.\n */\n abstract id: string;\n\n /**\n * Tree item parent ID.\n */\n abstract parentId: Nullable<string>;\n\n /**\n * Whether the tree item is navigatable.\n */\n abstract navigatable: boolean;\n\n /**\n * Tree item state.\n */\n abstract state: Nullable<TreeItemState>;\n\n /**\n * Tree item child nodes data source.\n */\n abstract childNodes: FdTreeAcceptableDataSource<T>;\n\n /**\n * Whether to wrap content.\n */\n abstract wrapContent: boolean;\n\n /**\n * Whether the tree item is expanded.\n */\n abstract expanded: boolean;\n\n /**\n * Tree item level.\n */\n abstract level: number;\n\n /**\n * Tree item children.\n */\n abstract children: T[];\n\n /**\n * Whether the tree item has content projected child nodes.\n */\n abstract hasProjectedChildren: boolean;\n\n /**\n * Whether the tree item has content projected child nodes or data source for children.\n */\n abstract hasChildren: boolean;\n\n /**\n * Focusable tree item container.\n */\n abstract itemContainer: Nullable<ElementRef>;\n\n /**\n * Whether the tree item is keyboard navigatable.\n */\n abstract keyboardAccessible: boolean;\n\n /**\n * Tree item selectable item.\n */\n abstract selectableListItem: SelectableItemToken;\n\n /**\n * Whether the tree item has Data Source children.\n */\n abstract hasDsChildren: boolean;\n\n /**\n * Whether the children nodes being loaded from the Data Source.\n */\n abstract childrenLoaded: boolean;\n\n /** @hidden */\n private readonly _elementRef = inject(ElementRef);\n\n /** @hidden */\n private readonly _treeItemDir = inject(TreeItemDirective, {\n optional: true\n });\n /** @hidden */\n constructor() {\n this._treeItemDir?.setTreeItem(this);\n }\n\n /** @hidden */\n elementRef(): ElementRef {\n return this._elementRef;\n }\n\n /** Method to focus on the tree item. */\n abstract focus(): void;\n\n /** Method to set the position of the item in set. */\n abstract setPosition(totalItemsCount: number, currentIndex: number): void;\n\n /** Method for setting the focusable tabindex. */\n abstract setContainerTabIndex(value: number): void;\n}\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { Nullable, uuidv4 } from '@fundamental-ngx/cdk/utils';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { BaseTreeItem } from './models/base-tree-item.class';\nimport { SelectionPlacement, SelectionType } from './models/selection-type';\nimport { TreeItem, TreeItemGeneric } from './models/tree-item';\nimport { TreeItemDefContext } from './models/tree-item-def-context';\n\nexport interface SelectionModeModel {\n mode: SelectionType;\n placement: SelectionPlacement;\n}\n\n@Injectable()\nexport class TreeService {\n /** Tree item template ref. */\n treeItemTemplateRef: Nullable<TemplateRef<TreeItemDefContext>>;\n\n /** Currently focused tree item. */\n focusedTreeItem: Nullable<BaseTreeItem>;\n\n /** Current expanded level. */\n get expandedLevel(): Observable<number | undefined> {\n return this._expandedLevel.asObservable();\n }\n\n /** Tree selection mode. */\n get selectionMode(): Observable<SelectionModeModel> {\n return this._selectionMode$.asObservable();\n }\n\n /** Whether to show navigation indicator. */\n get navigationIndicator(): Observable<boolean> {\n return this._navigationIndicator$.asObservable();\n }\n\n /** @hidden */\n private readonly _expandableItems = new Map<number, { [key: string]: boolean }>();\n\n /** @hidden */\n private readonly _selectionMode$ = new BehaviorSubject<SelectionModeModel>({ mode: 'none', placement: 'none' });\n\n /** @hidden */\n private readonly _expandedLevel = new BehaviorSubject<number | undefined>(undefined);\n\n /** @hidden */\n private readonly _navigationIndicator$ = new BehaviorSubject<boolean>(false);\n\n /**\n * @hidden\n */\n readonly detectChanges = new Subject<void>();\n\n /** Sets whether the navigation indicator should be visible. */\n setNavigationIndicator(value: boolean): void {\n this._navigationIndicator$.next(value);\n }\n\n /** @hidden */\n normalizeTreeItems<T extends TreeItem = TreeItem>(\n items: Nullable<T[]>,\n parentId: string | null = null,\n level = 1\n ): TreeItem<TreeItemGeneric<T>>[] {\n if (!items) {\n return [];\n }\n return [...items].map((item: T) => ({\n ...item,\n ...{\n level,\n parentId,\n renderer: this.treeItemTemplateRef,\n id: item.id || uuidv4()\n }\n }));\n }\n\n /**\n * Adds expandable item to the object of expandable items.\n * @param id\n * @param level\n */\n addExpandableItem(id: string, level: number, expanded: boolean): void {\n const levelCollection = this._expandableItems.get(level) || {};\n levelCollection[id] = expanded;\n this._expandableItems.set(level, levelCollection);\n this._emitNewExpandedLevel();\n }\n\n /**\n * Removes expandable item from the object of expandable items.\n * @param id\n * @param level\n */\n removeExpandableItem(id: string, level: number): void {\n const levelCollection = this._expandableItems.get(level) || {};\n delete levelCollection[id];\n this._expandableItems.set(level, levelCollection);\n this._emitNewExpandedLevel();\n }\n\n /**\n * Sets selection mode and it's placement.\n * @param mode Selection mode.\n * @param placement Selection control placement.\n */\n setSelectionMode(mode: SelectionType, placement: SelectionPlacement): void {\n this._selectionMode$.next({ mode, placement });\n }\n\n /** @hidden */\n private _emitNewExpandedLevel(): void {\n // We need to go from level 1 to deeper level since level 4 may be expanded, yet level 2 not.\n const levels = Array.from(this._expandableItems.keys()).sort();\n let lastLevel: number | undefined;\n\n for (const level of levels) {\n const levelExpandableItems = this._expandableItems.get(level)!;\n\n if (Object.values(levelExpandableItems).every((v) => !v)) {\n break;\n }\n\n lastLevel = level;\n }\n\n this._expandedLevel.next(lastLevel);\n }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { DataSourceDirective, FD_DATA_SOURCE_TRANSFORMER } from '@fundamental-ngx/cdk/data-source';\nimport { CvaDirective } from '@fundamental-ngx/cdk/forms';\nimport {\n applyCssClass,\n CssClassBuilder,\n DestroyedService,\n KeyUtil,\n Nullable,\n RtlService,\n SelectableListValueType,\n SelectComponentRootToken,\n SelectionService\n} from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { distinctUntilChanged, filter, fromEvent, startWith, Subscription, switchMap, takeUntil } from 'rxjs';\nimport { FdTreeAcceptableDataSource, FdTreeDataSource, FdTreeItemType } from './data-source/tree-data-source';\nimport { TreeDataSourceParser } from './data-source/tree-data-source-parser';\nimport { TreeItemDefDirective } from './directives/tree-item-def.directive';\nimport { TreeItemDirective } from './directives/tree-item.directive';\nimport { BaseTreeItem } from './models/base-tree-item.class';\nimport { TreeService } from './tree.service';\nimport { SelectionPlacement, SelectionType } from './models/selection-type';\nimport { TreeItem, TreeItemGeneric } from './models/tree-item';\n\n@Component({\n selector: 'fd-tree',\n templateUrl: './tree.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./tree.component.scss'],\n hostDirectives: [\n {\n directive: DataSourceDirective,\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['dataSource'],\n // eslint-disable-next-line @angular-eslint/no-outputs-metadata-property\n outputs: ['dataChanged']\n },\n {\n directive: CvaDirective,\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['name', 'id', 'state', 'stateMessage', 'disabled', 'readonly']\n }\n ],\n host: {\n role: 'tree'\n },\n providers: [\n contentDensityObserverProviders(),\n TreeService,\n SelectionService,\n DestroyedService,\n {\n provide: FD_DATA_SOURCE_TRANSFORMER,\n useClass: TreeDataSourceParser\n }\n ]\n})\nexport class TreeComponent<P extends FdTreeAcceptableDataSource, T extends TreeItem = FdTreeItemType<P>>\n implements CssClassBuilder, OnInit, OnChanges, AfterViewInit, SelectComponentRootToken, OnDestroy\n{\n /** @hidden */\n @Input()\n class: string;\n\n /**\n * Whether the tree should be borderless.\n */\n @Input()\n noBorder = false;\n\n /** Type of tree items selection. */\n @Input()\n selection: SelectionType = 'none';\n\n /** Placement of the selection control. */\n @Input()\n selectionPlacement: SelectionPlacement = 'none';\n\n /**\n * Whether the sections should be dependent for selection mode.\n * If true, selection control will shift, according to the level.\n * If false, selection control will stay on the same place ignoring the item level.\n */\n @Input()\n independentSections = false;\n\n /**\n * Whether the Tree component has navigation indicators.\n */\n @Input()\n set navigationIndicator(value: boolean) {\n if (value === this._navigationIndicator) {\n return;\n }\n this._navigationIndicator = value;\n this._treeService.setNavigationIndicator(value);\n }\n\n get navigationIndicator(): boolean {\n return this._navigationIndicator;\n }\n\n /** @hidden */\n private _navigationIndicator = false;\n\n /** Event emitted when data loading is started. */\n @Output()\n dataRequested = new EventEmitter<boolean>();\n\n /** Event emitted when data loading is finished. */\n @Output()\n dataReceived = new EventEmitter<boolean>();\n\n /** Event emitted when selected state changed. */\n @Output()\n selectedChange = new EventEmitter<any>();\n\n /** @hidden */\n _items: TreeItem<TreeItemGeneric<T>>[] = [];\n\n /** Tree item template definition. */\n @ContentChild(TreeItemDefDirective)\n set treeItemDef(value: Nullable<TreeItemDefDirective>) {\n this._treeItemDef = value;\n // Set new renderer\n this._treeService.treeItemTemplateRef = value?.templateRef;\n this._items = this._treeService.normalizeTreeItems(this._items);\n }\n\n get treeItemDef(): Nullable<TreeItemDefDirective> {\n return this._treeItemDef;\n }\n\n /** @hidden */\n get multiple(): BooleanInput {\n return this.selection === 'multiple';\n }\n\n /** @hidden */\n get toggle(): BooleanInput {\n return true;\n }\n\n /**\n * @hidden\n * Used for skeleton to appear before first meaningful data being loaded.\n */\n _initialDataLoaded = false;\n\n /** @hidden */\n @ViewChildren(TreeItemDirective)\n _treeItemDirectives: QueryList<TreeItemDirective<TreeItem, any>>;\n\n /** @hidden */\n @ContentChildren(BaseTreeItem, { descendants: true })\n readonly _projectedTreeItems: QueryList<BaseTreeItem>;\n\n /** @hidden */\n private _treeItemDef: Nullable<TreeItemDefDirective>;\n\n /** @hidden */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n /** @hidden */\n private readonly _dataSourceDirective = inject<DataSourceDirective<T, FdTreeDataSource<T>>>(DataSourceDirective);\n\n /** @hidden */\n private readonly _destroy$ = inject(DestroyedService);\n\n /** @hidden */\n private readonly _elementRef = inject(ElementRef);\n\n /** @hidden */\n private readonly _treeService = inject(TreeService);\n\n /** @hidden */\n private readonly _selectionService = inject(SelectionService);\n\n /** @hidden */\n private readonly _rtl = inject(RtlService, {\n optional: true\n });\n\n /** @hidden */\n private readonly _cvaDirective = inject(CvaDirective);\n\n /** @hidden */\n private readonly _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private _dsSubscription: Subscription | null = null;\n\n /** @hidden */\n private _expandedLevel: number | undefined;\n\n /** @hidden */\n private _focusKeyManager: FocusKeyManager<BaseTreeItem>;\n\n /**\n * @hidden\n * Sorted tree item components.\n */\n private _sortedTreeItems: BaseTreeItem[] = [];\n\n /**\n * @hidden\n * All tree item components.\n */\n private _allItems: BaseTreeItem[] = [];\n\n /** @hidden */\n private _eventSub: Subscription;\n\n /** @hidden */\n private _selectionSub: Subscription | undefined;\n\n /** @hidden */\n constructor() {\n this._selectionService.registerRootComponent(this);\n this._contentDensityObserver.subscribe();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._openDataStream();\n this.buildComponentCssClass();\n\n this._treeService.expandedLevel.pipe(distinctUntilChanged(), takeUntil(this._destroy$)).subscribe((level) => {\n this._expandedLevel = level;\n this.buildComponentCssClass();\n this._cdr.detectChanges();\n });\n\n this._treeService.detectChanges.pipe(takeUntil(this._destroy$)).subscribe(() => {\n this._cdr.detectChanges();\n });\n\n if (this.selection !== 'none') {\n this._selectionService.setValue(this._cvaDirective.value);\n\n this._cvaDirective.ngControl?.valueChanges?.pipe(takeUntil(this._destroy$)).subscribe(() => {\n this._selectionService.setValue(this._cvaDirective.value);\n });\n }\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n this.buildComponentCssClass();\n\n if ('selection' in changes || 'selectionPlacement' in changes) {\n this._treeService.setSelectionMode(this.selection, this.selectionPlacement);\n this._setSelectionListener();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._listenToTreeItemsChanges();\n this._listenToTreeItemDirectiveChanges();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._dsSubscription?.unsubscribe();\n this._eventSub?.unsubscribe();\n this._selectionSub?.unsubscribe();\n }\n\n /** @hidden */\n private _setSelectionListener(): void {\n this._selectionSub?.unsubscribe();\n if (this.selection !== 'none') {\n this._selectionService.setValue(this._cvaDirective.value);\n\n this._selectionSub = this._cvaDirective.ngControl?.valueChanges\n ?.pipe(takeUntil(this._destroy$))\n .subscribe(() => {\n this._selectionService.setValue(this._cvaDirective.value);\n });\n }\n }\n\n /** @hidden */\n private _listenToTreeItemDirectiveChanges(): void {\n this._treeItemDirectives.changes\n .pipe(\n startWith(null),\n filter(() => this.treeItemDef !== undefined),\n takeUntil(this._destroy$)\n )\n .subscribe(() => {\n this._allItems = this._treeItemDirectives.toArray().map((item) => item.treeItem!);\n const flattenedItems = this._sortTreeItems(this._allItems);\n this._setFlattenedItems(flattenedItems);\n });\n }\n\n /** @hidden */\n private _listenToTreeItemsChanges(): void {\n this._projectedTreeItems.changes\n .pipe(\n startWith(null),\n filter(() => !this.treeItemDef),\n takeUntil(this._destroy$)\n )\n .subscribe(() => {\n this._allItems = this._projectedTreeItems.toArray();\n const flattenedItems = this._sortTreeItems(this._allItems);\n this._setFlattenedItems(flattenedItems);\n });\n }\n\n /** @hidden */\n private _setFlattenedItems(items: BaseTreeItem[]): void {\n this._sortedTreeItems = items;\n\n const activeItem = this._focusKeyManager?.activeItem;\n const newActiveItemIndex = items.findIndex((item) => item === activeItem);\n this._focusKeyManager?.destroy();\n\n this._focusKeyManager = new FocusKeyManager(items)\n .withVerticalOrientation(true)\n .skipPredicate((item) => !item.keyboardAccessible);\n\n if (newActiveItemIndex > -1) {\n this._focusKeyManager.setActiveItem(newActiveItemIndex);\n }\n\n this._selectionService.initialize(this._sortedTreeItems.map((item) => item.selectableListItem));\n\n this._setupEventListeners();\n }\n\n /** @hidden */\n _onItemFocused(treeItem: BaseTreeItem): void {\n let focusedIndex = -1;\n this._sortedTreeItems.forEach((item, index) => {\n const isFocused = treeItem === item;\n item.setContainerTabIndex(isFocused ? 0 : -1);\n if (isFocused) {\n focusedIndex = index;\n }\n });\n\n if (focusedIndex === -1) {\n return;\n }\n\n this._focusKeyManager.setActiveItem(focusedIndex);\n }\n\n /** @hidden */\n private _setupEventListeners(): void {\n this._eventSub?.unsubscribe();\n this._eventSub = new Subscription();\n\n this._sortedTreeItems.forEach((item) => {\n this._eventSub.add(\n fromEvent<KeyboardEvent>(item.elementRef().nativeElement, 'keydown').subscribe((event) => {\n this._onItemKeyDown(event, item);\n })\n );\n this._eventSub.add(\n fromEvent(item.itemContainer?.nativeElement, 'focus').subscribe(() => {\n this._onItemFocused(item);\n })\n );\n });\n }\n\n /** @hidden */\n private _sortTreeItems(items: BaseTreeItem[]): BaseTreeItem[] {\n const components: BaseTreeItem[] = [];\n const rootItems = items.filter((item) => item.level === 1);\n\n rootItems.forEach((treeItem, index) => {\n treeItem.setPosition(rootItems.length, index + 1);\n });\n\n items.forEach((item) => {\n if (!item || components.includes(item)) {\n return;\n }\n\n components.push(item);\n\n if (item.children.length === 0) {\n return;\n }\n\n const childItems = this._sortTreeItems(this._allItems.filter((i) => i.parentId === item.id));\n\n childItems.forEach((treeItem, index) => {\n treeItem.setPosition(childItems.length, index + 1);\n });\n\n components.push(...childItems);\n });\n\n return components;\n }\n\n /** @hidden */\n elementRef(): ElementRef<HTMLElement> {\n return this._elementRef;\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n this.class,\n this._expandedLevel ? `expanded-level-${this._expandedLevel}` : '',\n this.noBorder ? 'fd-tree--no-border' : '',\n this._items.length === 0 && this._initialDataLoaded ? 'fd-tree--no-data' : '',\n this.independentSections ? 'fd-tree--independent-multi-selection' : '',\n 'fd-tree'\n ];\n }\n\n /**\n * @hidden\n * Keyboard navigation\n * @param event Keyboard event.\n */\n @HostListener('keydown', ['$event'])\n private _onKeyUp(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {\n if (event.defaultPrevented) {\n return;\n }\n event.preventDefault();\n this._focusKeyManager?.onKeydown(event);\n }\n }\n\n /** @hidden */\n _onItemKeyDown(event: KeyboardEvent, treeItem: Nullable<BaseTreeItem>): void {\n if (!treeItem) {\n return;\n }\n\n const isRtl = !!this._rtl?.rtl.value;\n const expandKey = isRtl ? LEFT_ARROW : RIGHT_ARROW;\n const collapseKey = isRtl ? RIGHT_ARROW : LEFT_ARROW;\n\n if (KeyUtil.isKeyCode(event, expandKey) && (treeItem.hasDsChildren || treeItem.hasProjectedChildren)) {\n if (event.defaultPrevented) {\n return;\n }\n event.preventDefault();\n\n this._expandTreeSection(treeItem);\n return;\n }\n\n if (KeyUtil.isKeyCode(event, collapseKey)) {\n if (event.defaultPrevented) {\n return;\n }\n event.preventDefault();\n\n this._collapseTreeSection(treeItem);\n return;\n }\n }\n\n /** @hidden */\n _trackFn(index: number, item: TreeItem<TreeItemGeneric<T>>): string {\n return item.id;\n }\n\n /** @hidden */\n private _expandTreeSection(treeItem: BaseTreeItem): void {\n if (treeItem.expanded) {\n // Shift focus on the first child item\n const itemIndex = this._sortedTreeItems.findIndex((item) => item.id === treeItem.id);\n const nextItem = this._sortedTreeItems[itemIndex + 1];\n if (nextItem?.parentId === treeItem.id) {\n this._focusKeyManager.setActiveItem(itemIndex + 1);\n }\n\n return;\n }\n\n treeItem.expanded = true;\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _collapseTreeSection(treeItem: BaseTreeItem): void {\n if (!treeItem.expanded && treeItem.parentId) {\n const parentItemIndex = this._sortedTreeItems.findIndex((item) => item.id === treeItem.parentId);\n\n if (parentItemIndex > -1) {\n this._focusKeyManager.setActiveItem(parentItemIndex);\n return;\n }\n }\n treeItem.expanded = false;\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _openDataStream(): void {\n this._dsSubscription?.unsubscribe();\n this._dsSubscription = new Subscription();\n this._dsSubscription.add(\n this._dataSourceDirective.dataSourceProvider?.dataRequested.subscribe(this.dataRequested)\n );\n this._dsSubscription.add(\n this._dataSourceDirective.dataSourceProvider?.dataReceived.subscribe(this.dataReceived)\n );\n\n this._dsSubscription.add(\n this._dataSourceDirective.dataSourceProvider?.dataReceived\n .pipe(\n filter((received) => received),\n switchMap(() => this._dataSourceDirective.dataChanged$)\n )\n .subscribe((data) => {\n this._initialDataLoaded = true;\n this._items = this._treeService.normalizeTreeItems(data);\n this.buildComponentCssClass();\n\n this._cdr.markForCheck();\n })\n );\n\n this._dataSourceDirective.dataSourceProvider?.match();\n }\n\n /**\n * @hidden\n * Select list interface method implementation.\n * Sets value for control value accessor and emits it.\n * @param value value of the selection.\n */\n onChange(value: SelectableListValueType<any>): void {\n this._cvaDirective.setValue(value, true);\n }\n}\n","<ng-template #dataSourceRenderer>\n <ng-template\n [ngTemplateOutlet]=\"!_initialDataLoaded ? loadingRenderer : dataLoadedTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: 1 }\"\n ></ng-template>\n\n <ng-template #loadingRenderer let-level>\n <div *fdkRepeat=\"5\" role=\"treeitem\" [attr.aria-level]=\"level\" class=\"fd-tree__item\">\n <div class=\"fd-tree__item-container\">\n <div class=\"fd-tree__content\">\n <span class=\"fd-tree__text\">\n <fd-skeleton type=\"text\" width=\"100px\" textLines=\"1\"></fd-skeleton>\n </span>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-template #dataLoadedTpl>\n <ng-container *ngIf=\"_items.length > 0 && treeItemDef; else noDataTpl\">\n <ng-container *ngFor=\"let item of _items; trackBy: _trackFn\">\n <ng-template\n [ngTemplateOutlet]=\"renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template #renderer let-item>\n <ng-container fdTreeItem fdkSelectableItem #treeItemDirective=\"fdTreeItem\">\n <ng-template\n [ngTemplateOutlet]=\"item.renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n [ngTemplateOutletInjector]=\"treeItemDirective.injector\"\n ></ng-template>\n </ng-container>\n <ng-container\n *ngIf=\"\n treeItemDirective.treeItem?.hasDsChildren &&\n !!treeItemDirective.treeItem?.expanded &&\n !treeItemDirective.treeItem?.childrenLoaded\n \"\n >\n <ng-template\n [ngTemplateOutlet]=\"loadingRenderer\"\n [ngTemplateOutletContext]=\"{ $implicit: item.level + 1 }\"\n ></ng-template>\n </ng-container>\n <ng-container *ngIf=\"treeItemDirective.treeItem?.children as childItems\">\n <div class=\"fd-tree\" *ngIf=\"childItems && childItems.length > 0 && !!treeItemDirective?.treeItem?.expanded\">\n <ng-container *ngFor=\"let child of childItems; trackBy: _trackFn\">\n <ng-template\n [ngTemplateOutlet]=\"renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\n ></ng-template>\n </ng-container>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #noDataTpl>\n <div role=\"treeitem\" aria-level=\"1\" class=\"fd-tree__item\">\n <div class=\"fd-tree__item-container\">\n <div class=\"fd-tree__content\">\n <span class=\"fd-tree__text\">{{ 'coreTree.noData' | fdTranslate }}</span>\n </div>\n </div>\n </div>\n </ng-template>\n</ng-template>\n<ng-template #projectedContentRenderer>\n <ng-content select=\"fd-tree-item\"></ng-content>\n</ng-template>\n\n<ng-template [ngTemplateOutlet]=\"treeItemDef ? dataSourceRenderer : projectedContentRenderer\"></ng-template>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { DataSource, DataSourceDirective } from '@fundamental-ngx/cdk/data-source';\nimport {\n DestroyedService,\n FDK_SELECTABLE_ITEM_PROVIDER,\n Nullable,\n SelectableItemDirective,\n SelectableItemToken,\n uuidv4\n} from '@fundamental-ngx/cdk/utils';\nimport { distinctUntilChanged, filter, startWith, Subject, switchMap, takeUntil } from 'rxjs';\nimport { FdTreeAcceptableDataSource, FdTreeDataSource } from '../../data-source/tree-data-source';\nimport { TreeItem, TreeItemState } from '../../models/tree-item';\nimport { TreeService, SelectionModeModel } from '../../tree.service';\nimport { BaseTreeItem } from '../../models/base-tree-item.class';\n\n@Component({\n selector: 'fd-tree-item',\n templateUrl: './tree-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [DataSourceDirective],\n host: {\n class: 'fd-tree__item',\n role: 'presentation'\n },\n providers: [\n DestroyedService,\n {\n provide: FDK_SELECTABLE_ITEM_PROVIDER,\n useExisting: TreeItemComponent\n },\n {\n provide: BaseTreeItem,\n useExisting: TreeItemComponent\n }\n ]\n})\nexport class TreeItemComponent<T extends TreeItem = TreeItem, P = any>\n extends BaseTreeItem<T, P>\n implements Partial<SelectableItemToken<HTMLElement, P>>, OnInit, AfterViewInit, OnDestroy\n{\n /**\n * Tree item value.\n */\n @Input()\n value: P;\n /**\n * Tree item ID.\n */\n @Input()\n id = uuidv4();\n\n /**\n * Tree item aria label.\n */\n @HostBinding('attr.aria-label')\n @Input()\n ariaLabel: string;\n\n /**\n * Tree item parent ID.\n */\n @Input()\n set parentId(value: Nullable<string>) {\n this._parentId = value;\n }\n\n get parentId(): Nullable<string> {\n return this._parentId || this._parentTreeItem?.id;\n }\n\n /** @hidden */\n private _parentId: Nullable<string>;\n\n /**\n * Whether the tree item is navigatable.\n */\n @Input()\n navigatable = false;\n\n /**\n * Tree item state.\n */\n @Input()\n state: Nullable<TreeItemState>;\n\n /**\n * Tree item child nodes data source.\n */\n @Input()\n childNodes: FdTreeAcceptableDataSource<T> = [];\n\n /**\n * Whether to wrap content.\n */\n @Input()\n wrapContent = false;\n\n /**\n * Tree item level.\n */\n @Input()\n @HostBinding('attr.aria-level')\n set level(value: number) {\n this._level = value;\n }\n\n get level(): number {\n return this._level || (this._parentTreeItem !== null ? this._parentTreeItem.level + 1 : 1);\n }\n\n /** @hidden */\n private _level: number;\n\n /**\n * Whether the tree item is expanded.\n */\n @Input()\n set expanded(value: boolean) {\n if (value === this._expanded) {\n return;\n }\n this._treeService.addExpandableItem(this.id, this.level, value);\n this._expanded = value;\n\n if (value) {\n setTimeout(() => {\n this._treeService.detectChanges.next();\n this._dataSourceDirective.dataSourceProvider?.match();\n });\n } else {\n this.children = [];\n this.childrenLoaded = false;\n this._treeService.detectChanges.next();\n }\n\n this._cdr.detectChanges();\n }\n\n get expanded(): boolean {\n return this._expanded;\n }\n\n /** @hidden */\n private _expanded = false;\n\n /**\n * @hidden\n * Whether the tree item should have a navigation indicator.\n */\n _navigationIndicator = false;\n\n /**\n * Event emitted when user clicks on tree item.\n */\n @Output()\n readonly treeItemClick = new EventEmitter<MouseEvent | KeyboardEvent>();\n\n /**\n * Event emitted when `expanded` state changes.\n */\n @Output()\n expandedChange = new EventEmitter<boolean>();\n\n /**\n * @hidden\n * Selection state.\n */\n _selectionState = false;\n\n /** @hidden */\n children: T[] = [];\n\n /** @hidden */\n childrenLoaded = false;\n\n /** @hidden */\n _selectionModel: Nullable<SelectionModeModel>;\n\n /** Whether the tree item has any type of child nodes. */\n get hasChildren(): boolean {\n return !!this.childNodes || this.hasProjectedChildren;\n }\n\n /** Whether the tree item has content-projected child nodes. */\n get hasProjectedChildren(): boolean {\n return this._projectedTreeItems && this._projectedTreeItems.length > 0;\n }\n\n /** Whether the tree item has data source children. */\n get hasDsChildren(): boolean {\n return this._dsChildrenNumber > 0;\n }\n\n /** @Hidden */\n _containerTabIndex = 0;\n\n /** Tree item focusable container. */\n @ViewChild('itemContainer', { read: ElementRef })\n itemContainer: Nullable<ElementRef<HTMLElement>>;\n\n /** Selectable item. */\n @ViewChild(SelectableItemDirective)\n selectableListItem: SelectableItemToken;\n\n /** @hidden */\n @ContentChildren(BaseTreeItem)\n _projectedTreeItems: QueryList<BaseTreeItem>;\n\n /** Whether the item is accessible via keyboard. */\n get keyboardAccessible(): boolean {\n return this._parentTreeItem === null\n ? true\n : this._parentTreeItem.keyboardAccessible && this._parentTreeItem.expanded;\n }\n\n /** @hidden */\n _setSize: number;\n /** @hidden */\n _currentPosition: number;\n\n /** @hidden */\n _totalChildrenLoaded = false;\n\n /** @hidden */\n private _dsChildrenNumber = 0;\n\n /** @hidden */\n private readonly _clicked$ = new Subject<MouseEvent | KeyboardEvent>();\n\n /** Clicked behavior implementation. */\n clicked = this._clicked$.asObservable();\n\n /** @hidden */\n private readonly _treeService = inject(TreeService);\n\n /** @hidden */\n private readonly _dataSourceDirective = inject<DataSourceDirective<T, FdTreeDataSource<T>>>(DataSourceDirective);\n\n /** @hidden */\n private readonly _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private readonly _destroy$ = inject(DestroyedService);\n\n /** @hidden */\n private readonly _parentTreeItem = inject(TreeItemComponent, {\n optional: true,\n skipSelf: true\n });\n\n /** @hidden */\n ngOnInit(): void {\n this._treeService.selectionMode.pipe(takeUntil(this._destroy$)).subscribe((model) => {\n this._selectionModel = model;\n this._cdr.detectChanges();\n });\n\n this._treeService.navigationIndicator.pipe(takeUntil(this._destroy$)).subscribe((value) => {\n this._navigationIndicator = value;\n this._cdr.detectChanges();\n });\n\n this._dataSourceDirective.dataSource = this.childNodes as DataSource;\n this._treeService.addExpandableItem(this.id, this.level, this.expanded);\n\n this._dataSourceDirective.dataSourceProvider\n ?.getTotalItems()\n .pipe(takeUntil(this._destroy$))\n .subscribe((totalItems) => {\n this._dsChildrenNumber = totalItems;\n this._totalChildrenLoaded = true;\n this._cdr.detectChanges();\n });\n\n this._dataSourceDirective.dataSourceProvider?.dataReceived\n .pipe(\n filter((received) => received),\n switchMap(() => this._dataSourceDirective.dataChanged$),\n takeUntil(this._destroy$)\n )\n .subscribe((data) => {\n this.children = this._treeService.normalizeTreeItems(data, this.id, this.level + 1) as T[];\n this.childrenLoaded = true;\n setTimeout(() => {\n this._treeService.detectChanges.next();\n this._cdr.detectChanges();\n });\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._projectedTreeItems.changes\n .pipe(startWith(null), distinctUntilChanged(), takeUntil(this._destroy$))\n .subscribe(() => {\n this._cdr.detectChanges();\n this._projectedTreeItems.forEach((treeItem, index) => {\n treeItem.setPosition(this._projectedTreeItems.length, index + 1);\n });\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._treeService.removeExpandableItem(this.id, this.level!);\n }\n\n /**\n * Sets position of the current item in the set.\n * @param totalItems Total items amount in the set.\n * @param currentIndex Current item position in the set.\n */\n setPosition(totalItems: number, currentIndex: number): void {\n this._setSize = totalItems;\n this._currentPosition = currentIndex;\n }\n\n /** Method to focus on the tree item. */\n focus(): void {\n this.itemContainer?.nativeElement.focus();\n }\n\n /** Method for setting the focusable tabindex. */\n setContainerTabIndex(value: number): void {\n this._containerTabIndex = value;\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n _toggleExpandState(event: MouseEvent): void {\n // Do not bubble up to selection change event.\n event.stopImmediatePropagation();\n this.expanded = !this.expanded;\n this.expandedChange.emit(this.expanded);\n this.focus();\n }\n\n /** @hidden */\n _onClick(event: MouseEvent | KeyboardEvent): void {\n event.stopImmediatePropagation();\n\n this._clicked$.next(event);\n this.treeItemClick.emit(event);\n }\n\n /** @hidden */\n _setSelected(selected: boolean): void {\n this._selectionState = selected;\n }\n}\n","<div\n class=\"fd-tree__item-container\"\n [attr.tabindex]=\"_containerTabIndex\"\n (fdkClicked)=\"_onClick($event)\"\n fdkSelectableItem\n (selected)=\"_setSelected($event)\"\n [value]=\"value\"\n [attr.aria-haspopup]=\"children.length > 0 || hasProjectedChildren\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-setsize]=\"_setSize\"\n [attr.aria-posinset]=\"_currentPosition\"\n role=\"treeitem\"\n [attr.aria-level]=\"level\"\n #itemContainer\n [ngClass]=\"[\n state ? 'has-highlight-indicator has-highlight-indicator--' + state : '',\n navigatable ? 'fd-tree__item-container--active' : '',\n wrapContent ? 'fd-tree__content--wrap' : ''\n ]\"\n>\n <ng-container *ngIf=\"_selectionModel?.placement === 'left'\">\n <ng-template [ngTemplateOutlet]=\"selection\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"hasChildren\">\n <span\n *ngIf=\"hasDsChildren || hasProjectedChildren\"\n (click)=\"_toggleExpandState($event)\"\n class=\"fd-tree__expander\"\n aria-hidden=\"true\"\n role=\"presentation\"\n [attr.aria-label]=\"(expanded ? 'coreTree.collapse' : 'coreTree.expand') | fdTranslate\"\n [class.is-expanded]=\"expanded\"\n >\n <fd-icon\n class=\"fd-tree__icon\"\n [glyph]=\"expanded ? 'navigation-down-arrow' : 'navigation-right-arrow'\"\n ></fd-icon>\n </span>\n <div class=\"fd-tree__expander fd-tree__expander--loading\" *ngIf=\"!_totalChildrenLoaded\">\n <fd-skeleton type=\"rectangle\" width=\"1rem\" height=\"1rem\"></fd-skeleton>\n </div>\n <ng-container *ngIf=\"_selectionModel?.placement === 'afterExpand'\">\n <ng-template [ngTemplateOutlet]=\"selection\"></ng-template>\n </ng-container>\n </ng-container>\n <div class=\"fd-tree__content\">\n <ng-content select=\"[fdTreeItemIcon]\"></ng-content>\n <ng-content select=\"[fdTreeItemText]\"></ng-content>\n </div>\n <ng-content select=\"[fdTreeItemButton]\"></ng-content>\n <ng-container *ngIf=\"_selectionModel?.placement === 'right'\">\n <ng-template [ngTemplateOutlet]=\"selection\"></ng-template>\n </ng-container>\n <fd-icon\n glyph=\"slim-arrow-right\"\n class=\"fd-tree__icon fd-tree__icon--navigation\"\n *ngIf=\"navigatable && _navigationIndicator\"\n ></fd-icon>\n</div>\n\n<ng-container *ngIf=\"hasProjectedChildren && expanded\">\n <div class=\"fd-tree\">\n <ng-content select=\"fd-tree-item\"></ng-content>\n </div>\n</ng-container>\n\n<ng-template #selection>\n <div class=\"fd-form-item\">\n <fd-checkbox\n [(ngModel)]=\"_selectionState\"\n [ngModelOptions]=\"{ standalone: true }\"\n [standalone]=\"true\"\n tabIndexValue=\"-1\"\n *ngIf=\"_selectionModel?.mode === 'multiple'\"\n ></fd-checkbox>\n <fd-radio-button\n [(ngModel)]=\"_selectionState\"\n [ngModelOptions]=\"{ standalone: true }\"\n [selectedValue]=\"_selectionState\"\n [value]=\"true\"\n tabIndex=\"-1\"\n [standalone]=\"true\"\n tabIndexValue=\"-1\"\n *ngIf=\"_selectionModel?.mode === 'single'\"\n ></fd-radio-button>\n </div>\n</ng-template>\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTreeItemIcon]',\n host: {\n class: 'fd-tree__icon'\n }\n})\nexport class TreeItemIconDirective {\n /** @hidden */\n @HostBinding('attr.role')\n private readonly _role = 'presentation';\n\n /** @hidden */\n @HostBinding('attr.aria-hidden')\n private readonly _ariaHidden = true;\n}\n\n@Directive({\n selector: '[fdTreeItemText]',\n host: {\n class: 'fd-tree__text'\n }\n})\nexport class TreeItemTextDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdTreeItemButton]',\n host: {\n class: 'fd-tree__button'\n }\n})\nexport class TreeItemButtonDirective {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ClickedBehaviorModule, RepeatDirective, SelectableItemDirective } from '@fundamental-ngx/cdk/utils';\nimport { CheckboxModule } from '@fundamental-ngx/core/checkbox';\nimport { RadioModule } from '@fundamental-ngx/core/radio';\nimport { SkeletonModule } from '@fundamental-ngx/core/skeleton';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { TreeComponent } from './tree.component';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { MenuModule } from '@fundamental-ngx/core/menu';\nimport { TreeItemComponent } from './components/tree-item/tree-item.component';\nimport { TreeItemDefDirective } from './directives/tree-item-def.directive';\nimport { TreeItemDirective } from './directives/tree-item.directive';\nimport { TreeItemIconDirective, TreeItemTextDirective } from './directives/tree-item-icon.directive';\nimport { TreeItemButtonDirective } from './directives/tree-item-button.directive';\n\n@NgModule({\n declarations: [\n TreeComponent,\n TreeItemComponent,\n TreeItemDefDirective,\n TreeItemDirective,\n TreeItemIconDirective,\n TreeItemTextDirective,\n TreeItemButtonDirective\n ],\n imports: [\n CommonModule,\n ButtonModule,\n IconModule,\n PopoverModule,\n MenuModule,\n CheckboxModule,\n ClickedBehaviorModule.forRoot(),\n FormsModule,\n SelectableItemDirective,\n RadioModule,\n SkeletonModule,\n RepeatDirective,\n ReactiveFormsModule,\n I18nModule\n ],\n exports: [\n TreeComponent,\n TreeItemComponent,\n TreeItemDefDirective,\n TreeItemDirective,\n TreeItemIconDirective,\n TreeItemTextDirective,\n TreeItemButtonDirective\n ]\n})\nexport class TreeModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_TREE_ITEM = new InjectionToken('FdTreeItem');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i6.TreeItemDirective","i2","i3","i4","i5","i7","i8","i9"],"mappings":"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"}
@@ -59,8 +59,8 @@ export declare abstract class BaseMultiCombobox<T = any> {
59
59
  abstract inputText: string;
60
60
  abstract searchInputElement: Nullable<ElementRef<HTMLInputElement>>;
61
61
  abstract selectionChange: EventEmitter<MultiComboboxSelectionChangeEvent>;
62
- abstract dataReceived: EventEmitter<void>;
63
- abstract dataRequested: EventEmitter<void>;
62
+ abstract dataReceived: EventEmitter<boolean>;
63
+ abstract dataRequested: EventEmitter<boolean>;
64
64
  /** @hidden */
65
65
  selectedShown$: BehaviorSubject<boolean>;
66
66
  /** @hidden */
@@ -96,9 +96,9 @@ export declare class MultiComboboxComponent<T = any> extends BaseMultiCombobox<T
96
96
  /** Emits event when the addon button is clicked. */
97
97
  addOnButtonClicked: EventEmitter<Event>;
98
98
  /** Event emitted when data loading is started. */
99
- dataRequested: EventEmitter<void>;
99
+ dataRequested: EventEmitter<boolean>;
100
100
  /** Event emitted when data loading is finished. */
101
- dataReceived: EventEmitter<void>;
101
+ dataReceived: EventEmitter<boolean>;
102
102
  /** @hidden */
103
103
  private readonly listComponent;
104
104
  /** @hidden */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core",
3
- "version": "0.41.0",
3
+ "version": "0.41.1-rc.1",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "ng-update": {
6
6
  "migrations": "./schematics/migrations.json"
@@ -29,8 +29,8 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "focus-trap": "^7.1.0",
32
- "@fundamental-ngx/i18n": "0.41.0",
33
- "@fundamental-ngx/cdk": "0.41.0",
32
+ "@fundamental-ngx/i18n": "0.41.1-rc.1",
33
+ "@fundamental-ngx/cdk": "0.41.1-rc.1",
34
34
  "fast-deep-equal": "3.1.3",
35
35
  "lodash-es": "^4.17.0",
36
36
  "tslib": "^2.0.0",
@@ -1,3 +1,4 @@
1
+ import { NumberInput } from '@angular/cdk/coercion';
1
2
  import { AfterViewInit, ChangeDetectorRef, ElementRef, OnChanges, OnDestroy } from '@angular/core';
2
3
  import { ControlValueAccessor } from '@angular/forms';
3
4
  import { CssClassBuilder } from '@fundamental-ngx/cdk/utils';
@@ -22,7 +23,10 @@ export declare class RadioButtonComponent implements OnChanges, AfterViewInit, C
22
23
  /**
23
24
  * Includes the radio in the page tab sequence.
24
25
  */
25
- tabIndex: number;
26
+ set tabIndex(value: NumberInput);
27
+ get tabIndex(): NumberInput;
28
+ /** @hidden */
29
+ private _tabIndex;
26
30
  /** The field to set state of radio button using:
27
31
  * 'success' | 'error' | 'warning' | 'default' | 'information'
28
32
  * by default value is set to 'default'
@@ -50,8 +54,10 @@ export declare class RadioButtonComponent implements OnChanges, AfterViewInit, C
50
54
  * The field is mandatory
51
55
  */
52
56
  value: any;
53
- /** If it is mandatory field */
57
+ /** If it is a mandatory field */
54
58
  required: boolean;
59
+ /** Whether the control is a standalone. */
60
+ standalone: boolean;
55
61
  /** Whether the radio button is checked. */
56
62
  get checked(): boolean;
57
63
  /** @hidden */
@@ -98,5 +104,5 @@ export declare class RadioButtonComponent implements OnChanges, AfterViewInit, C
98
104
  /** @hidden */
99
105
  private _setNativeElementCheckedState;
100
106
  static ɵfac: i0.ɵɵFactoryDeclaration<RadioButtonComponent, never>;
101
- static ɵcmp: i0.ɵɵComponentDeclaration<RadioButtonComponent, "fd-radio-button", never, { "ariaLabel": "ariaLabel"; "ariaLabelledBy": "ariaLabelledBy"; "ariaDescribedBy": "ariaDescribedBy"; "title": "title"; "tabIndex": "tabIndex"; "state": "state"; "disabled": "disabled"; "selectedValue": "selectedValue"; "name": "name"; "id": "id"; "value": "value"; "required": "required"; }, {}, never, ["*"], false, never>;
107
+ static ɵcmp: i0.ɵɵComponentDeclaration<RadioButtonComponent, "fd-radio-button", never, { "ariaLabel": "ariaLabel"; "ariaLabelledBy": "ariaLabelledBy"; "ariaDescribedBy": "ariaDescribedBy"; "title": "title"; "tabIndex": "tabIndex"; "state": "state"; "disabled": "disabled"; "selectedValue": "selectedValue"; "name": "name"; "id": "id"; "value": "value"; "required": "required"; "standalone": "standalone"; }, {}, never, ["*"], false, never>;
102
108
  }
@@ -54,21 +54,21 @@ function addExternalLibraries(options) {
54
54
  });
55
55
  }
56
56
  if (!(0, package_utils_1.hasPackage)(tree, '@fundamental-ngx/i18n') ||
57
- (0, package_utils_1.checkPackageVersion)(tree, '@fundamental-ngx/i18n', '0.41.0', '<')) {
57
+ (0, package_utils_1.checkPackageVersion)(tree, '@fundamental-ngx/i18n', '0.41.1-rc.1', '<')) {
58
58
  dependencies.push({
59
59
  type: dependencies_1.NodeDependencyType.Default,
60
60
  // Will be replaced with the real version during sync-version script run
61
- version: `0.41.0`,
61
+ version: `0.41.1-rc.1`,
62
62
  name: '@fundamental-ngx/i18n',
63
63
  overwrite: true
64
64
  });
65
65
  }
66
66
  if (!(0, package_utils_1.hasPackage)(tree, '@fundamental-ngx/cdk') ||
67
- (0, package_utils_1.checkPackageVersion)(tree, '@fundamental-ngx/cdk', '0.41.0', '<')) {
67
+ (0, package_utils_1.checkPackageVersion)(tree, '@fundamental-ngx/cdk', '0.41.1-rc.1', '<')) {
68
68
  dependencies.push({
69
69
  type: dependencies_1.NodeDependencyType.Default,
70
70
  // Will be replaced with the real version during sync-version script run
71
- version: `0.41.0`,
71
+ version: `0.41.1-rc.1`,
72
72
  name: '@fundamental-ngx/cdk',
73
73
  overwrite: true
74
74
  });
@@ -0,0 +1,145 @@
1
+ import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnInit, QueryList } from '@angular/core';
2
+ import { Nullable, SelectableItemToken } from '@fundamental-ngx/cdk/utils';
3
+ import { FdTreeAcceptableDataSource } from '../../data-source/tree-data-source';
4
+ import { TreeItem, TreeItemState } from '../../models/tree-item';
5
+ import { SelectionModeModel } from '../../tree.service';
6
+ import { BaseTreeItem } from '../../models/base-tree-item.class';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@fundamental-ngx/cdk/data-source";
9
+ export declare class TreeItemComponent<T extends TreeItem = TreeItem, P = any> extends BaseTreeItem<T, P> implements Partial<SelectableItemToken<HTMLElement, P>>, OnInit, AfterViewInit, OnDestroy {
10
+ /**
11
+ * Tree item value.
12
+ */
13
+ value: P;
14
+ /**
15
+ * Tree item ID.
16
+ */
17
+ id: string;
18
+ /**
19
+ * Tree item aria label.
20
+ */
21
+ ariaLabel: string;
22
+ /**
23
+ * Tree item parent ID.
24
+ */
25
+ set parentId(value: Nullable<string>);
26
+ get parentId(): Nullable<string>;
27
+ /** @hidden */
28
+ private _parentId;
29
+ /**
30
+ * Whether the tree item is navigatable.
31
+ */
32
+ navigatable: boolean;
33
+ /**
34
+ * Tree item state.
35
+ */
36
+ state: Nullable<TreeItemState>;
37
+ /**
38
+ * Tree item child nodes data source.
39
+ */
40
+ childNodes: FdTreeAcceptableDataSource<T>;
41
+ /**
42
+ * Whether to wrap content.
43
+ */
44
+ wrapContent: boolean;
45
+ /**
46
+ * Tree item level.
47
+ */
48
+ set level(value: number);
49
+ get level(): number;
50
+ /** @hidden */
51
+ private _level;
52
+ /**
53
+ * Whether the tree item is expanded.
54
+ */
55
+ set expanded(value: boolean);
56
+ get expanded(): boolean;
57
+ /** @hidden */
58
+ private _expanded;
59
+ /**
60
+ * @hidden
61
+ * Whether the tree item should have a navigation indicator.
62
+ */
63
+ _navigationIndicator: boolean;
64
+ /**
65
+ * Event emitted when user clicks on tree item.
66
+ */
67
+ readonly treeItemClick: EventEmitter<MouseEvent | KeyboardEvent>;
68
+ /**
69
+ * Event emitted when `expanded` state changes.
70
+ */
71
+ expandedChange: EventEmitter<boolean>;
72
+ /**
73
+ * @hidden
74
+ * Selection state.
75
+ */
76
+ _selectionState: boolean;
77
+ /** @hidden */
78
+ children: T[];
79
+ /** @hidden */
80
+ childrenLoaded: boolean;
81
+ /** @hidden */
82
+ _selectionModel: Nullable<SelectionModeModel>;
83
+ /** Whether the tree item has any type of child nodes. */
84
+ get hasChildren(): boolean;
85
+ /** Whether the tree item has content-projected child nodes. */
86
+ get hasProjectedChildren(): boolean;
87
+ /** Whether the tree item has data source children. */
88
+ get hasDsChildren(): boolean;
89
+ /** @Hidden */
90
+ _containerTabIndex: number;
91
+ /** Tree item focusable container. */
92
+ itemContainer: Nullable<ElementRef<HTMLElement>>;
93
+ /** Selectable item. */
94
+ selectableListItem: SelectableItemToken;
95
+ /** @hidden */
96
+ _projectedTreeItems: QueryList<BaseTreeItem>;
97
+ /** Whether the item is accessible via keyboard. */
98
+ get keyboardAccessible(): boolean;
99
+ /** @hidden */
100
+ _setSize: number;
101
+ /** @hidden */
102
+ _currentPosition: number;
103
+ /** @hidden */
104
+ _totalChildrenLoaded: boolean;
105
+ /** @hidden */
106
+ private _dsChildrenNumber;
107
+ /** @hidden */
108
+ private readonly _clicked$;
109
+ /** Clicked behavior implementation. */
110
+ clicked: import("rxjs").Observable<MouseEvent | KeyboardEvent>;
111
+ /** @hidden */
112
+ private readonly _treeService;
113
+ /** @hidden */
114
+ private readonly _dataSourceDirective;
115
+ /** @hidden */
116
+ private readonly _cdr;
117
+ /** @hidden */
118
+ private readonly _destroy$;
119
+ /** @hidden */
120
+ private readonly _parentTreeItem;
121
+ /** @hidden */
122
+ ngOnInit(): void;
123
+ /** @hidden */
124
+ ngAfterViewInit(): void;
125
+ /** @hidden */
126
+ ngOnDestroy(): void;
127
+ /**
128
+ * Sets position of the current item in the set.
129
+ * @param totalItems Total items amount in the set.
130
+ * @param currentIndex Current item position in the set.
131
+ */
132
+ setPosition(totalItems: number, currentIndex: number): void;
133
+ /** Method to focus on the tree item. */
134
+ focus(): void;
135
+ /** Method for setting the focusable tabindex. */
136
+ setContainerTabIndex(value: number): void;
137
+ /** @hidden */
138
+ _toggleExpandState(event: MouseEvent): void;
139
+ /** @hidden */
140
+ _onClick(event: MouseEvent | KeyboardEvent): void;
141
+ /** @hidden */
142
+ _setSelected(selected: boolean): void;
143
+ static ɵfac: i0.ɵɵFactoryDeclaration<TreeItemComponent<any, any>, never>;
144
+ static ɵcmp: i0.ɵɵComponentDeclaration<TreeItemComponent<any, any>, "fd-tree-item", never, { "value": "value"; "id": "id"; "ariaLabel": "ariaLabel"; "parentId": "parentId"; "navigatable": "navigatable"; "state": "state"; "childNodes": "childNodes"; "wrapContent": "wrapContent"; "level": "level"; "expanded": "expanded"; }, { "treeItemClick": "treeItemClick"; "expandedChange": "expandedChange"; }, ["_projectedTreeItems"], ["[fdTreeItemIcon]", "[fdTreeItemText]", "[fdTreeItemButton]", "fd-tree-item"], false, [{ directive: typeof i1.DataSourceDirective; inputs: {}; outputs: {}; }]>;
145
+ }
@@ -0,0 +1,9 @@
1
+ import { DataSourceParser } from '@fundamental-ngx/cdk/data-source';
2
+ import { FdTreeAcceptableDataSource, FdTreeDataSource } from './tree-data-source';
3
+ export declare class TreeDataSourceParser<T> implements DataSourceParser<T, FdTreeDataSource<T>> {
4
+ /**
5
+ * Transforms plain array or observable into DataSource class.
6
+ * @param source
7
+ */
8
+ parse(source: FdTreeAcceptableDataSource<T>): FdTreeDataSource<T> | undefined;
9
+ }
@@ -0,0 +1,22 @@
1
+ import { AbstractDataProvider, BaseDataSource } from '@fundamental-ngx/cdk/data-source';
2
+ import { Observable } from 'rxjs';
3
+ export declare class FdTreeDataSource<T> extends BaseDataSource<T> {
4
+ dataProvider: AbstractDataProvider<T>;
5
+ /** @hidden */
6
+ limitless: boolean;
7
+ /** @hidden */
8
+ constructor(dataProvider: AbstractDataProvider<T>);
9
+ }
10
+ export declare class ArrayTreeDataSource<T> extends FdTreeDataSource<T> {
11
+ /** @hidden */
12
+ constructor(data: T[]);
13
+ }
14
+ export declare class ObservableTreeDataSource<T> extends FdTreeDataSource<T> {
15
+ /** @hidden */
16
+ constructor(data: Observable<T[]>);
17
+ }
18
+ /**
19
+ * Type of acceptable objects as a datasource for the Multi-Combo Box component.
20
+ */
21
+ export type FdTreeAcceptableDataSource<T = any> = FdTreeDataSource<T> | Observable<T[]> | T[];
22
+ export type FdTreeItemType<Type extends FdTreeAcceptableDataSource> = Type extends BaseDataSource<infer X> ? X : Type extends Array<infer X> ? X : Type extends Observable<infer X> ? X extends Array<infer V> ? V : X : Type;
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TreeItemButtonDirective {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<TreeItemButtonDirective, never>;
4
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TreeItemButtonDirective, "[fdTreeItemButton]", never, {}, {}, never, never, false, never>;
5
+ }
@@ -0,0 +1,18 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import { TreeItem } from '../models/tree-item';
3
+ import { TreeItemDefContext } from '../models/tree-item-def-context';
4
+ import * as i0 from "@angular/core";
5
+ export declare class TreeItemDefDirective<T extends TreeItem = TreeItem> {
6
+ templateRef: TemplateRef<TreeItemDefContext<T>>;
7
+ /**
8
+ * @hidden
9
+ * Used for type support.
10
+ */
11
+ fdTreeItemDefAs: T;
12
+ /** @hidden */
13
+ static ngTemplateContextGuard(dir: TreeItemDefDirective, ctx: TreeItemDefContext): ctx is TreeItemDefContext;
14
+ /** @hidden */
15
+ constructor(templateRef: TemplateRef<TreeItemDefContext<T>>);
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<TreeItemDefDirective<any>, never>;
17
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TreeItemDefDirective<any>, "[fdTreeItemDef]", never, { "fdTreeItemDefAs": "fdTreeItemDefAs"; }, {}, never, never, false, never>;
18
+ }
@@ -0,0 +1,13 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TreeItemIconDirective {
3
+ /** @hidden */
4
+ private readonly _role;
5
+ /** @hidden */
6
+ private readonly _ariaHidden;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<TreeItemIconDirective, never>;
8
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TreeItemIconDirective, "[fdTreeItemIcon]", never, {}, {}, never, never, false, never>;
9
+ }
10
+ export declare class TreeItemTextDirective {
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<TreeItemTextDirective, never>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TreeItemTextDirective, "[fdTreeItemText]", never, {}, {}, never, never, false, never>;
13
+ }
@@ -0,0 +1,19 @@
1
+ import { Injector, OnDestroy } from '@angular/core';
2
+ import { Nullable } from '@fundamental-ngx/cdk/utils';
3
+ import { BaseTreeItem } from '../models/base-tree-item.class';
4
+ import { TreeItem } from '../models/tree-item';
5
+ import * as i0 from "@angular/core";
6
+ export declare class TreeItemDirective<T extends TreeItem, P> implements OnDestroy {
7
+ /** Tree item component instance. */
8
+ treeItem: Nullable<BaseTreeItem<T, P>>;
9
+ /** Injector to be used in a tree item component, to resolve a tree item directive. */
10
+ readonly injector: Injector;
11
+ /** @hidden */
12
+ constructor(injector: Injector);
13
+ /** Sets tree item. */
14
+ setTreeItem(item: Nullable<BaseTreeItem<T, P>>): void;
15
+ /** @hidden */
16
+ ngOnDestroy(): void;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<TreeItemDirective<any, any>, never>;
18
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TreeItemDirective<any, any>, "[fdTreeItem]", ["fdTreeItem"], {}, {}, never, never, false, never>;
19
+ }