@fundamental-ngx/core 0.47.0-rc.8 → 0.47.0
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.
- package/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/carousel/carousel-item/carousel-item.component.d.ts +4 -4
- package/carousel/carousel-item.directive.d.ts +4 -4
- package/checkbox/checkbox/checkbox.component.d.ts +10 -10
- package/esm2022/breadcrumb/breadcrumb.component.mjs +2 -2
- package/esm2022/calendar/calendar-header/calendar-header.component.mjs +4 -5
- package/esm2022/calendar/calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component.mjs +4 -5
- package/esm2022/calendar/calendar-views/calendar-month-view/calendar-month-view.component.mjs +4 -5
- package/esm2022/calendar/calendar-views/calendar-year-view/calendar-year-view.component.mjs +4 -5
- package/esm2022/carousel/carousel-item/carousel-item.component.mjs +1 -1
- package/esm2022/carousel/carousel-item.directive.mjs +1 -1
- package/esm2022/checkbox/checkbox/checkbox.component.mjs +1 -1
- package/esm2022/combobox/combobox.component.mjs +2 -2
- package/esm2022/date-picker/date-picker.component.mjs +4 -5
- package/esm2022/datetime-picker/datetime-picker.component.mjs +8 -10
- package/esm2022/feed-input/directives/feed-input-avatar.directive.mjs +2 -2
- package/esm2022/feed-input/directives/feed-input-textarea.directive.mjs +16 -19
- package/esm2022/form/form-control/form-control.component.mjs +3 -3
- package/esm2022/form/form-label/form-label.component.mjs +5 -6
- package/esm2022/input-group/input-group.component.mjs +7 -5
- package/esm2022/menu/menu-mobile/menu-mobile.component.mjs +4 -5
- package/esm2022/message-box/directives/message-box-template.directive.mjs +3 -3
- package/esm2022/message-strip/message-strip.component.mjs +8 -10
- package/esm2022/multi-combobox/base-multi-combobox.class.mjs +4 -4
- package/esm2022/multi-combobox/helpers.mjs +1 -1
- package/esm2022/multi-combobox/multi-announcer/multi-announcer.directive.mjs +11 -5
- package/esm2022/multi-combobox/multi-combobox.component.mjs +6 -6
- package/esm2022/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +4 -5
- package/esm2022/multi-input/multi-input.component.mjs +3 -3
- package/esm2022/notification/notification-utils/notification-config.mjs +1 -1
- package/esm2022/notification/notification-utils/notification-ref.mjs +1 -1
- package/esm2022/object-attribute/fundamental-ngx-core-object-attribute.mjs +5 -0
- package/esm2022/object-attribute/index.mjs +3 -0
- package/esm2022/object-attribute/object-attribute.component.mjs +49 -0
- package/esm2022/object-attribute/object-attribute.module.mjs +16 -0
- package/esm2022/overflow-layout/overflow-layout.component.mjs +18 -5
- package/esm2022/overflow-layout/overflow-layout.service.mjs +3 -3
- package/esm2022/pagination/pagination.component.mjs +2 -2
- package/esm2022/popover/popover-mobile/popover-mobile.module.mjs +6 -6
- package/esm2022/radio/radio-button/radio-button.component.mjs +2 -2
- package/esm2022/select/select-mobile/select-mobile.module.mjs +5 -5
- package/esm2022/select/select.component.mjs +3 -3
- package/esm2022/select/select.interface.mjs +1 -1
- package/esm2022/shellbar/product-menu/product-menu.component.mjs +8 -11
- package/esm2022/shellbar/shellbar-action/shellbar-action.component.mjs +6 -7
- package/esm2022/shellbar/shellbar-actions-mobile/shellbar-actions-mobile.component.mjs +6 -7
- package/esm2022/shellbar/user-menu/shellbar-user-menu.component.mjs +5 -6
- package/esm2022/splitter/splitter-pane-container/splitter-pane-container.component.mjs +1 -1
- package/esm2022/switch/switch.component.mjs +1 -1
- package/esm2022/tabs/tab-list.component.mjs +6 -3
- package/esm2022/tabs/tabs.module.mjs +5 -1
- package/esm2022/time/time-column/time-column.component.mjs +1 -1
- package/esm2022/time/time.component.mjs +1 -1
- package/esm2022/time-picker/time-picker.component.mjs +2 -2
- package/esm2022/token/tokenizer.component.mjs +6 -7
- package/esm2022/toolbar/toolbar.component.mjs +10 -12
- package/esm2022/tree/components/tree-item/tree-item.component.mjs +5 -6
- package/esm2022/upload-collection/upload-collection-button-group/upload-collection-button-group.component.mjs +4 -6
- package/esm2022/upload-collection/upload-collection-form-item/upload-collection-form-item.component.mjs +2 -2
- package/feed-input/directives/feed-input-textarea.directive.d.ts +7 -8
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-calendar.mjs +9 -10
- package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-date-picker.mjs +3 -4
- package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +8 -10
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-feed-input.mjs +16 -19
- package/fesm2022/fundamental-ngx-core-feed-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-form.mjs +6 -7
- package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-input-group.mjs +6 -4
- package/fesm2022/fundamental-ngx-core-input-group.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-menu.mjs +3 -4
- package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-box.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-strip.mjs +7 -9
- package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +15 -10
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-input.mjs +6 -7
- package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-notification.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-attribute.mjs +69 -0
- package/fesm2022/fundamental-ngx-core-object-attribute.mjs.map +1 -0
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +18 -5
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-pagination.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-popover.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-radio.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-radio.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-select.mjs +6 -6
- package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-shellbar.mjs +12 -14
- package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-splitter.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tabs.mjs +9 -2
- package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time-picker.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-token.mjs +5 -6
- package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-toolbar.mjs +7 -8
- package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tree.mjs +4 -5
- package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs +6 -7
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
- package/form/form-control/form-control.component.d.ts +3 -3
- package/fundamental-ngx-core-v0.47.0.tgz +0 -0
- package/input-group/input-group.component.d.ts +10 -4
- package/message-box/directives/message-box-template.directive.d.ts +2 -2
- package/message-strip/message-strip.component.d.ts +2 -2
- package/multi-combobox/base-multi-combobox.class.d.ts +7 -7
- package/multi-combobox/helpers.d.ts +3 -3
- package/multi-combobox/multi-announcer/multi-announcer.directive.d.ts +4 -2
- package/notification/notification-utils/notification-config.d.ts +2 -2
- package/notification/notification-utils/notification-ref.d.ts +5 -5
- package/object-attribute/README.md +25 -0
- package/object-attribute/index.d.ts +2 -0
- package/object-attribute/object-attribute.component.d.ts +26 -0
- package/object-attribute/object-attribute.module.d.ts +7 -0
- package/overflow-layout/overflow-layout.component.d.ts +9 -1
- package/overflow-layout/overflow-layout.service.d.ts +1 -1
- package/package.json +9 -3
- package/pagination/pagination.component.d.ts +2 -2
- package/popover/popover-mobile/popover-mobile.module.d.ts +1 -1
- package/radio/radio-button/radio-button.component.d.ts +12 -12
- package/schematics/add-dependencies/index.js +4 -4
- package/select/select-mobile/select-mobile.module.d.ts +1 -1
- package/select/select.interface.d.ts +8 -8
- package/shellbar/product-menu/product-menu.component.d.ts +3 -3
- package/splitter/splitter-pane-container/splitter-pane-container.component.d.ts +1 -1
- package/switch/switch.component.d.ts +1 -1
- package/tabs/tab-list.component.d.ts +2 -0
- package/tabs/tabs.module.d.ts +4 -0
- package/time/time-column/time-column.component.d.ts +3 -3
- package/time/time.component.d.ts +1 -1
- package/toolbar/toolbar.component.d.ts +2 -2
- package/fundamental-ngx-core-v0.47.0-rc.8.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-tree.mjs","sources":["../../../../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/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-button.directive.ts","../../../../libs/core/src/lib/tree/directives/tree-item-def.directive.ts","../../../../libs/core/src/lib/tree/directives/tree-item-icon.directive.ts","../../../../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/tree.component.ts","../../../../libs/core/src/lib/tree/tree.component.html","../../../../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 { 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 standalone: true\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 } from '@angular/core';\nimport { Nullable, SelectableItemToken } from '@fundamental-ngx/cdk/utils';\nimport { FdTreeAcceptableDataSource } from '../data-source/tree-data-source';\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 abstract elementRef: ElementRef;\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 { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { DataSource, DataSourceDirective } from '@fundamental-ngx/cdk/data-source';\nimport {\n ClickedBehaviorModule,\n FDK_SELECTABLE_ITEM_PROVIDER,\n Nullable,\n SelectableItemDirective,\n SelectableItemToken,\n uuidv4\n} from '@fundamental-ngx/cdk/utils';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { RadioButtonComponent } from '@fundamental-ngx/core/radio';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { Subject, distinctUntilChanged, filter, startWith, switchMap } from 'rxjs';\nimport { FdTreeAcceptableDataSource, FdTreeDataSource } from '../../data-source/tree-data-source';\nimport { TreeItemDirective } from '../../directives/tree-item.directive';\nimport { BaseTreeItem } from '../../models/base-tree-item.class';\nimport { TreeItem, TreeItemState } from '../../models/tree-item';\nimport { SelectionModeModel, TreeService } from '../../tree.service';\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 {\n provide: FDK_SELECTABLE_ITEM_PROVIDER,\n useExisting: TreeItemComponent\n },\n {\n provide: BaseTreeItem,\n useExisting: TreeItemComponent\n }\n ],\n standalone: true,\n imports: [\n SelectableItemDirective,\n NgClass,\n ClickedBehaviorModule,\n NgIf,\n NgTemplateOutlet,\n IconComponent,\n SkeletonComponent,\n CheckboxComponent,\n FormsModule,\n RadioButtonComponent,\n FdTranslatePipe\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 /**\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 /**\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 /**\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 /** 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 /**\n * @hidden\n * Whether the tree item should have a navigation indicator.\n */\n _navigationIndicator = false;\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 /** @Hidden */\n _containerTabIndex = 0;\n\n /** @hidden */\n _setSize: number;\n /** @hidden */\n _currentPosition: number;\n\n /** @hidden */\n _totalChildrenLoaded = false;\n\n /** @hidden */\n readonly elementRef = inject(ElementRef);\n\n /** @hidden */\n private _parentId: Nullable<string>;\n\n /** @hidden */\n private _level: number;\n\n /** @hidden */\n private _expanded = false;\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 /** 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 private _dsChildrenNumber = 0;\n\n /** @hidden */\n private readonly _clicked$ = new Subject<MouseEvent | KeyboardEvent>();\n\n /** Clicked behavior implementation. */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n clicked = this._clicked$.asObservable();\n\n /** @hidden */\n private readonly _treeItemDir = inject<TreeItemDirective<T, P>>(TreeItemDirective, {\n optional: true\n });\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 _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _parentTreeItem = inject(TreeItemComponent, {\n optional: true,\n skipSelf: true\n });\n\n /** @hidden */\n constructor() {\n super();\n this._treeItemDir?.setTreeItem(this);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._treeService.selectionMode.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((model) => {\n this._selectionModel = model;\n this._cdr.detectChanges();\n });\n\n this._treeService.navigationIndicator.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((value) => {\n this._navigationIndicator = value;\n this._cdr.detectChanges();\n });\n\n this._dataSourceDirective.dataSource = this.childNodes as DataSource<T, FdTreeDataSource<T>>;\n this._treeService.addExpandableItem(this.id, this.level, this.expanded);\n\n this._dataSourceDirective.dataSourceProvider\n ?.getTotalItems()\n .pipe(takeUntilDestroyed(this._destroyRef))\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 takeUntilDestroyed(this._destroyRef)\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(), takeUntilDestroyed(this._destroyRef))\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 } from '@angular/core';\n\n@Directive({\n selector: '[fdTreeItemButton]',\n host: {\n class: 'fd-tree__button'\n },\n standalone: true\n})\nexport class TreeItemButtonDirective {}\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 standalone: true\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, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTreeItemIcon]',\n host: {\n class: 'fd-tree__icon'\n },\n standalone: true\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 standalone: true\n})\nexport class TreeItemTextDirective {}\n","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 { 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 { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DataSourceDirective, FD_DATA_SOURCE_TRANSFORMER } from '@fundamental-ngx/cdk/data-source';\nimport { CvaDirective } from '@fundamental-ngx/cdk/forms';\nimport {\n CssClassBuilder,\n KeyUtil,\n Nullable,\n RepeatDirective,\n RtlService,\n SelectComponentRootToken,\n SelectableItemDirective,\n SelectableListValueType,\n SelectionService,\n applyCssClass\n} from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { Subscription, distinctUntilChanged, filter, fromEvent, startWith, switchMap } 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 { SelectionPlacement, SelectionType } from './models/selection-type';\nimport { TreeItem, TreeItemGeneric } from './models/tree-item';\nimport { TreeService } from './tree.service';\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 {\n provide: FD_DATA_SOURCE_TRANSFORMER,\n useClass: TreeDataSourceParser\n }\n ],\n standalone: true,\n imports: [\n NgTemplateOutlet,\n RepeatDirective,\n SkeletonComponent,\n NgIf,\n NgFor,\n TreeItemDirective,\n SelectableItemDirective,\n FdTranslatePipe\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 _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n public 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\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this._destroyRef))\n .subscribe((level) => {\n this._expandedLevel = level;\n this.buildComponentCssClass();\n this._cdr.detectChanges();\n });\n\n this._treeService.detectChanges.pipe(takeUntilDestroyed(this._destroyRef)).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(takeUntilDestroyed(this._destroyRef)).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(takeUntilDestroyed(this._destroyRef))\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 takeUntilDestroyed(this._destroyRef)\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 takeUntilDestroyed(this._destroyRef)\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 @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 /**\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 /** @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","<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 { NgModule } from '@angular/core';\nimport { TreeItemComponent } from './components/tree-item/tree-item.component';\nimport { TreeItemButtonDirective } from './directives/tree-item-button.directive';\nimport { TreeItemDefDirective } from './directives/tree-item-def.directive';\nimport { TreeItemIconDirective, TreeItemTextDirective } from './directives/tree-item-icon.directive';\nimport { TreeItemDirective } from './directives/tree-item.directive';\nimport { TreeComponent } from './tree.component';\n\nconst components = [\n TreeComponent,\n TreeItemComponent,\n TreeItemDefDirective,\n TreeItemDirective,\n TreeItemIconDirective,\n TreeItemTextDirective,\n TreeItemButtonDirective\n];\n\n/**\n * @deprecated\n *\n * Use direct imports of `TreeComponent`,\n `TreeItemComponent`,\n `TreeItemDefDirective`,\n `TreeItemDirective`,\n `TreeItemIconDirective`,\n `TreeItemTextDirective`,\n `TreeItemButtonDirective`\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\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 './index';\n"],"names":["i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-tree.mjs","sources":["../../../../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/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-button.directive.ts","../../../../libs/core/src/lib/tree/directives/tree-item-def.directive.ts","../../../../libs/core/src/lib/tree/directives/tree-item-icon.directive.ts","../../../../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/tree.component.ts","../../../../libs/core/src/lib/tree/tree.component.html","../../../../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 { 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 standalone: true\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 } from '@angular/core';\nimport { Nullable, SelectableItemToken } from '@fundamental-ngx/cdk/utils';\nimport { FdTreeAcceptableDataSource } from '../data-source/tree-data-source';\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 abstract elementRef: ElementRef;\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 { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { DataSource, DataSourceDirective } from '@fundamental-ngx/cdk/data-source';\nimport {\n ClickedDirective,\n FDK_SELECTABLE_ITEM_PROVIDER,\n Nullable,\n SelectableItemDirective,\n SelectableItemToken,\n uuidv4\n} from '@fundamental-ngx/cdk/utils';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { RadioButtonComponent } from '@fundamental-ngx/core/radio';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { Subject, distinctUntilChanged, filter, startWith, switchMap } from 'rxjs';\nimport { FdTreeAcceptableDataSource, FdTreeDataSource } from '../../data-source/tree-data-source';\nimport { TreeItemDirective } from '../../directives/tree-item.directive';\nimport { BaseTreeItem } from '../../models/base-tree-item.class';\nimport { TreeItem, TreeItemState } from '../../models/tree-item';\nimport { SelectionModeModel, TreeService } from '../../tree.service';\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 {\n provide: FDK_SELECTABLE_ITEM_PROVIDER,\n useExisting: TreeItemComponent\n },\n {\n provide: BaseTreeItem,\n useExisting: TreeItemComponent\n }\n ],\n standalone: true,\n imports: [\n SelectableItemDirective,\n NgClass,\n ClickedDirective,\n NgIf,\n NgTemplateOutlet,\n IconComponent,\n SkeletonComponent,\n CheckboxComponent,\n FormsModule,\n RadioButtonComponent,\n FdTranslatePipe\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 /**\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 /**\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 /**\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 /** 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 /**\n * @hidden\n * Whether the tree item should have a navigation indicator.\n */\n _navigationIndicator = false;\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 /** @Hidden */\n _containerTabIndex = 0;\n\n /** @hidden */\n _setSize: number;\n /** @hidden */\n _currentPosition: number;\n\n /** @hidden */\n _totalChildrenLoaded = false;\n\n /** @hidden */\n readonly elementRef = inject(ElementRef);\n\n /** @hidden */\n private _parentId: Nullable<string>;\n\n /** @hidden */\n private _level: number;\n\n /** @hidden */\n private _expanded = false;\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 /** 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 private _dsChildrenNumber = 0;\n\n /** @hidden */\n private readonly _clicked$ = new Subject<MouseEvent | KeyboardEvent>();\n\n /** Clicked behavior implementation. */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n clicked = this._clicked$.asObservable();\n\n /** @hidden */\n private readonly _treeItemDir = inject<TreeItemDirective<T, P>>(TreeItemDirective, {\n optional: true\n });\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 _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _parentTreeItem = inject(TreeItemComponent, {\n optional: true,\n skipSelf: true\n });\n\n /** @hidden */\n constructor() {\n super();\n this._treeItemDir?.setTreeItem(this);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._treeService.selectionMode.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((model) => {\n this._selectionModel = model;\n this._cdr.detectChanges();\n });\n\n this._treeService.navigationIndicator.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((value) => {\n this._navigationIndicator = value;\n this._cdr.detectChanges();\n });\n\n this._dataSourceDirective.dataSource = this.childNodes as DataSource<T, FdTreeDataSource<T>>;\n this._treeService.addExpandableItem(this.id, this.level, this.expanded);\n\n this._dataSourceDirective.dataSourceProvider\n ?.getTotalItems()\n .pipe(takeUntilDestroyed(this._destroyRef))\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 takeUntilDestroyed(this._destroyRef)\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(), takeUntilDestroyed(this._destroyRef))\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 } from '@angular/core';\n\n@Directive({\n selector: '[fdTreeItemButton]',\n host: {\n class: 'fd-tree__button'\n },\n standalone: true\n})\nexport class TreeItemButtonDirective {}\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 standalone: true\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, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTreeItemIcon]',\n host: {\n class: 'fd-tree__icon'\n },\n standalone: true\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 standalone: true\n})\nexport class TreeItemTextDirective {}\n","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 { 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 { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DataSourceDirective, FD_DATA_SOURCE_TRANSFORMER } from '@fundamental-ngx/cdk/data-source';\nimport { CvaDirective } from '@fundamental-ngx/cdk/forms';\nimport {\n CssClassBuilder,\n KeyUtil,\n Nullable,\n RepeatDirective,\n RtlService,\n SelectComponentRootToken,\n SelectableItemDirective,\n SelectableListValueType,\n SelectionService,\n applyCssClass\n} from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { Subscription, distinctUntilChanged, filter, fromEvent, startWith, switchMap } 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 { SelectionPlacement, SelectionType } from './models/selection-type';\nimport { TreeItem, TreeItemGeneric } from './models/tree-item';\nimport { TreeService } from './tree.service';\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 {\n provide: FD_DATA_SOURCE_TRANSFORMER,\n useClass: TreeDataSourceParser\n }\n ],\n standalone: true,\n imports: [\n NgTemplateOutlet,\n RepeatDirective,\n SkeletonComponent,\n NgIf,\n NgFor,\n TreeItemDirective,\n SelectableItemDirective,\n FdTranslatePipe\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 _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n public 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\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this._destroyRef))\n .subscribe((level) => {\n this._expandedLevel = level;\n this.buildComponentCssClass();\n this._cdr.detectChanges();\n });\n\n this._treeService.detectChanges.pipe(takeUntilDestroyed(this._destroyRef)).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(takeUntilDestroyed(this._destroyRef)).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(takeUntilDestroyed(this._destroyRef))\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 takeUntilDestroyed(this._destroyRef)\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 takeUntilDestroyed(this._destroyRef)\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 @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 /**\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 /** @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","<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 { NgModule } from '@angular/core';\nimport { TreeItemComponent } from './components/tree-item/tree-item.component';\nimport { TreeItemButtonDirective } from './directives/tree-item-button.directive';\nimport { TreeItemDefDirective } from './directives/tree-item-def.directive';\nimport { TreeItemIconDirective, TreeItemTextDirective } from './directives/tree-item-icon.directive';\nimport { TreeItemDirective } from './directives/tree-item.directive';\nimport { TreeComponent } from './tree.component';\n\nconst components = [\n TreeComponent,\n TreeItemComponent,\n TreeItemDefDirective,\n TreeItemDirective,\n TreeItemIconDirective,\n TreeItemTextDirective,\n TreeItemButtonDirective\n];\n\n/**\n * @deprecated\n *\n * Use direct imports of `TreeComponent`,\n `TreeItemComponent`,\n `TreeItemDefDirective`,\n `TreeItemDirective`,\n `TreeItemIconDirective`,\n `TreeItemTextDirective`,\n `TreeItemButtonDirective`\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\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 './index';\n"],"names":["i2"],"mappings":"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"}
|
|
@@ -5,11 +5,10 @@ import * as i1 from '@fundamental-ngx/core/object-status';
|
|
|
5
5
|
import { FD_OBJECT_STATUS_COMPONENT } from '@fundamental-ngx/core/object-status';
|
|
6
6
|
import * as i1$1 from '@fundamental-ngx/core/list';
|
|
7
7
|
import { ListModule } from '@fundamental-ngx/core/list';
|
|
8
|
-
import * as i1$2 from '@fundamental-ngx/core/button';
|
|
9
|
-
import { ButtonModule } from '@fundamental-ngx/core/button';
|
|
10
|
-
import { FdTranslatePipe } from '@fundamental-ngx/i18n';
|
|
11
8
|
import { NgIf } from '@angular/common';
|
|
12
|
-
import
|
|
9
|
+
import { ButtonComponent } from '@fundamental-ngx/core/button';
|
|
10
|
+
import { FdTranslatePipe } from '@fundamental-ngx/i18n';
|
|
11
|
+
import * as i1$2 from '@angular/forms';
|
|
13
12
|
import { FormsModule } from '@angular/forms';
|
|
14
13
|
import { FormControlComponent } from '@fundamental-ngx/core/form';
|
|
15
14
|
import { Subscription } from 'rxjs';
|
|
@@ -211,11 +210,11 @@ class UploadCollectionButtonGroupComponent {
|
|
|
211
210
|
this._editMode = false;
|
|
212
211
|
}
|
|
213
212
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: UploadCollectionButtonGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
214
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: UploadCollectionButtonGroupComponent, isStandalone: true, selector: "fd-upload-collection-button-group", inputs: { allowFileNameEdit: "allowFileNameEdit", allowFileDeletion: "allowFileDeletion", disableFileNameEdit: "disableFileNameEdit", disableFileDeletion: "disableFileDeletion" }, outputs: { editClicked: "editClicked", okClicked: "okClicked", deleteClicked: "deleteClicked" }, host: { classAttribute: "fd-upload-collection__button-group" }, viewQueries: [{ propertyName: "_okButton", first: true, predicate: ["okButton"], descendants: true }], ngImport: i0, template: "<button\n *ngIf=\"!_editMode && allowFileNameEdit\"\n [disabled]=\"disableFileNameEdit\"\n (click)=\"_editButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n glyph=\"edit\"\n [ariaLabel]=\"'coreUploadCollection.menuEditAriaLabel' | fdTranslate\"\n></button>\n<button\n *ngIf=\"!_editMode && allowFileDeletion\"\n [disabled]=\"disableFileDeletion\"\n (click)=\"_deleteButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [ariaLabel]=\"'coreUploadCollection.menuDeleteAriaLabel' | fdTranslate\"\n></button>\n<button\n #okButton\n [style.display]=\"_editMode ? 'inline-flex' : 'none'\"\n (click)=\"_okButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n [ariaLabel]=\"'coreUploadCollection.menuOkAriaLabel' | fdTranslate\"\n>\n {{ 'coreUploadCollection.menuOkText' | fdTranslate }}\n</button>\n<button\n *ngIf=\"_editMode\"\n (click)=\"_cancelButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n [ariaLabel]=\"'coreUploadCollection.menuCancelAriaLabel' | fdTranslate\"\n>\n {{ 'coreUploadCollection.menuCancelText' | fdTranslate }}\n</button>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "
|
|
213
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: UploadCollectionButtonGroupComponent, isStandalone: true, selector: "fd-upload-collection-button-group", inputs: { allowFileNameEdit: "allowFileNameEdit", allowFileDeletion: "allowFileDeletion", disableFileNameEdit: "disableFileNameEdit", disableFileDeletion: "disableFileDeletion" }, outputs: { editClicked: "editClicked", okClicked: "okClicked", deleteClicked: "deleteClicked" }, host: { classAttribute: "fd-upload-collection__button-group" }, viewQueries: [{ propertyName: "_okButton", first: true, predicate: ["okButton"], descendants: true }], ngImport: i0, template: "<button\n *ngIf=\"!_editMode && allowFileNameEdit\"\n [disabled]=\"disableFileNameEdit\"\n (click)=\"_editButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n glyph=\"edit\"\n [ariaLabel]=\"'coreUploadCollection.menuEditAriaLabel' | fdTranslate\"\n></button>\n<button\n *ngIf=\"!_editMode && allowFileDeletion\"\n [disabled]=\"disableFileDeletion\"\n (click)=\"_deleteButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [ariaLabel]=\"'coreUploadCollection.menuDeleteAriaLabel' | fdTranslate\"\n></button>\n<button\n #okButton\n [style.display]=\"_editMode ? 'inline-flex' : 'none'\"\n (click)=\"_okButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n [ariaLabel]=\"'coreUploadCollection.menuOkAriaLabel' | fdTranslate\"\n>\n {{ 'coreUploadCollection.menuOkText' | fdTranslate }}\n</button>\n<button\n *ngIf=\"_editMode\"\n (click)=\"_cancelButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n [ariaLabel]=\"'coreUploadCollection.menuCancelAriaLabel' | fdTranslate\"\n>\n {{ 'coreUploadCollection.menuCancelText' | fdTranslate }}\n</button>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
215
214
|
}
|
|
216
215
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: UploadCollectionButtonGroupComponent, decorators: [{
|
|
217
216
|
type: Component,
|
|
218
|
-
args: [{ selector: 'fd-upload-collection-button-group', host: { class: 'fd-upload-collection__button-group' }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf,
|
|
217
|
+
args: [{ selector: 'fd-upload-collection-button-group', host: { class: 'fd-upload-collection__button-group' }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, ButtonComponent, FdTranslatePipe], template: "<button\n *ngIf=\"!_editMode && allowFileNameEdit\"\n [disabled]=\"disableFileNameEdit\"\n (click)=\"_editButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n glyph=\"edit\"\n [ariaLabel]=\"'coreUploadCollection.menuEditAriaLabel' | fdTranslate\"\n></button>\n<button\n *ngIf=\"!_editMode && allowFileDeletion\"\n [disabled]=\"disableFileDeletion\"\n (click)=\"_deleteButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [ariaLabel]=\"'coreUploadCollection.menuDeleteAriaLabel' | fdTranslate\"\n></button>\n<button\n #okButton\n [style.display]=\"_editMode ? 'inline-flex' : 'none'\"\n (click)=\"_okButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n [ariaLabel]=\"'coreUploadCollection.menuOkAriaLabel' | fdTranslate\"\n>\n {{ 'coreUploadCollection.menuOkText' | fdTranslate }}\n</button>\n<button\n *ngIf=\"_editMode\"\n (click)=\"_cancelButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n [ariaLabel]=\"'coreUploadCollection.menuCancelAriaLabel' | fdTranslate\"\n>\n {{ 'coreUploadCollection.menuCancelText' | fdTranslate }}\n</button>\n" }]
|
|
219
218
|
}], propDecorators: { editClicked: [{
|
|
220
219
|
type: Output
|
|
221
220
|
}], okClicked: [{
|
|
@@ -269,7 +268,7 @@ class UploadCollectionFormItemComponent {
|
|
|
269
268
|
this.onTouched = fn;
|
|
270
269
|
}
|
|
271
270
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: UploadCollectionFormItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
272
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: UploadCollectionFormItemComponent, isStandalone: true, selector: "fd-upload-collection-form-item", inputs: { _editMode: "_editMode" }, outputs: { fileNameChanged: "fileNameChanged" }, host: { classAttribute: "fd-upload-collection__form-item" }, ngImport: i0, template: "<input\n *ngIf=\"_editMode\"\n fd-form-control\n required\n [style.pointer-events]=\"'all'\"\n class=\"fd-input\"\n type=\"text\"\n [attr.placeholder]=\"'coreUploadCollection.formItemPlaceholder' | fdTranslate\"\n [(ngModel)]=\"fileName\"\n [state]=\"!fileName ? 'error' : null\"\n (click)=\"$event.stopPropagation()\"\n/>\n<span *ngIf=\"_editMode\" class=\"fd-upload-collection__extension\">.{{ _extension }}</span>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$
|
|
271
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: UploadCollectionFormItemComponent, isStandalone: true, selector: "fd-upload-collection-form-item", inputs: { _editMode: "_editMode" }, outputs: { fileNameChanged: "fileNameChanged" }, host: { classAttribute: "fd-upload-collection__form-item" }, ngImport: i0, template: "<input\n *ngIf=\"_editMode\"\n fd-form-control\n required\n [style.pointer-events]=\"'all'\"\n class=\"fd-input\"\n type=\"text\"\n [attr.placeholder]=\"'coreUploadCollection.formItemPlaceholder' | fdTranslate\"\n [(ngModel)]=\"fileName\"\n [state]=\"!fileName ? 'error' : null\"\n (click)=\"$event.stopPropagation()\"\n/>\n<span *ngIf=\"_editMode\" class=\"fd-upload-collection__extension\">.{{ _extension }}</span>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
273
272
|
}
|
|
274
273
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: UploadCollectionFormItemComponent, decorators: [{
|
|
275
274
|
type: Component,
|