@eui/components 15.0.0-rc.20 → 15.0.0-rc.21

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.
@@ -1 +1 @@
1
- {"version":3,"file":"eui-components-eui-tree.mjs","sources":["../../eui-tree/eui-tree.component.ts","../../eui-tree/eui-tree.component.html","../../eui-tree/eui-tree.model.ts","../../eui-tree/eui-components-eui-tree.ts"],"sourcesContent":["import {\n Component,\n Input,\n NgModule,\n Directive,\n ContentChild,\n QueryList,\n forwardRef,\n ChangeDetectionStrategy,\n EventEmitter,\n Output,\n HostBinding,\n ViewEncapsulation,\n TemplateRef,\n ViewChildren,\n ContentChildren,\n AfterContentInit,\n ChangeDetectorRef, ViewChild, SimpleChanges,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n SelectionRecursiveState,\n TreeDataModel,\n TreeItemModel,\n TreeNode,\n TreeDataRunTimeModel,\n TreeItemRunTimeModel, EuiTreeSelectionChanges,\n} from './eui-tree.model';\nimport { FormsModule } from '@angular/forms';\nimport { EuiInputCheckboxModule } from '@eui/components/eui-input-checkbox';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiLabelModule } from '@eui/components/eui-label';\nimport { EuiBadgeModule } from '@eui/components/eui-badge';\nimport { NestedTreeControl, CdkTreeModule, CdkTree } from '@angular/cdk/tree';\nimport { ArrayDataSource, SelectionModel, SelectionChange, DataSource } from '@angular/cdk/collections';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'eui-tree',\n templateUrl: './eui-tree.component.html',\n styleUrls: ['./styles/_index.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\n\nexport class EuiTreeComponent implements AfterContentInit {\n @Input() nodes: TreeDataModel;\n @Input() nodeTemplateRef: TemplateRef<any>;\n @Input() nodeContentMetadataTemplateRef: TemplateRef<any>;\n @Input() expandedIconClass: string;\n @Input() collapsedIconClass: string;\n\n // @ViewChild('treeComponentInstance') public treeComponentInstance: any;\n @Input()\n get isClickTogglingNode(): boolean {\n return this._isClickTogglingNode;\n }\n\n set isClickTogglingNode(value: BooleanInput) {\n this._isClickTogglingNode = coerceBooleanProperty(value);\n }\n\n @Input()\n get isMultiselect(): boolean {\n return this._isMultiselect;\n }\n\n set isMultiselect(value: BooleanInput) {\n this._isMultiselect = coerceBooleanProperty(value);\n }\n\n @Input()\n get isRecursiveSelection(): boolean {\n return this._isRecursiveSelection;\n }\n\n set isRecursiveSelection(value: BooleanInput) {\n this._isRecursiveSelection = coerceBooleanProperty(value);\n }\n\n @Input()\n get isRecursiveParentSelection(): boolean {\n return this._isRecursiveParentSelection;\n }\n\n set isRecursiveParentSelection(value: BooleanInput) {\n this._isRecursiveParentSelection = coerceBooleanProperty(value);\n }\n\n @Input()\n get autoTranslate(): boolean {\n return this._autoTranslate;\n }\n\n set autoTranslate(value: BooleanInput) {\n this._autoTranslate = coerceBooleanProperty(value);\n }\n\n @Output() selectionChange = new EventEmitter<EuiTreeSelectionChanges>();\n @Output() nodeClick = new EventEmitter<TreeItemModel>();\n @Output() nodeToggle = new EventEmitter<TreeItemModel>();\n cdkArrayDataSource: ArrayDataSource<TreeItemModel>;\n cdkTreeControl: NestedTreeControl<TreeItemModel>;\n renderTree: boolean;\n public uid: string = Math.floor(Math.random() * 1000000000).toString();\n private treeDataRunTime: TreeDataRunTimeModel;\n private runTimeSelectionRecursiveState: TreeDataRunTimeModel;\n private selectionModel: SelectionModel<TreeItemRunTimeModel>;\n private _isClickTogglingNode: boolean = false;\n private _isMultiselect: boolean = false;\n private _isRecursiveSelection: boolean = false;\n private _isRecursiveParentSelection: boolean = true;\n private _autoTranslate: boolean = true;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {\n }\n\n ngOnInit() {\n // Deep copy to the array.\n this.nodes = this.processInputs(JSON.parse(JSON.stringify(this.nodes)));\n this.createTreeDataRuntime();\n // console.log('treeDataRunTime', this.treeDataRunTime);\n // console.log(this.treeDataRunTime);\n this.cdkArrayDataSource = new ArrayDataSource(this.treeDataRunTime);\n this.cdkTreeControl = new NestedTreeControl<TreeItemRunTimeModel>(node => node?.children);\n this.cdkTreeControl.dataNodes = this.treeDataRunTime;\n this.selectionModel = new SelectionModel<TreeItemRunTimeModel>(true, [], true, ((a, b) => {\n return a.path === b.path;\n }));\n this.renderTree = true;\n this.selectionModel.changed.subscribe((sc) => {\n // console.log('selection change:', sc);\n // console.log('selected snapshot', this.selectionModel.selected);\n this.selectionChange.emit({\n added: sc.added.map(_ => this.getTreeItem(_.path)),\n removed: sc.removed.map(_ => this.getTreeItem(_.path)),\n selection: [...this.selectionModel.selected].map(item => {\n return this.getTreeItem(item.path);\n }),\n });\n });\n this.changeDetectorRef.markForCheck();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['nodes'].currentValue !== changes['nodes'].previousValue && this.cdkArrayDataSource) {\n // console.log('stops by', changes['nodes'].currentValue);\n this.renderTree = false;\n setTimeout(() => {\n // this.treeData = changes['treeData'].currentValue;\n this.nodes = JSON.parse(JSON.stringify(changes['nodes'].currentValue));\n // console.log('triggered');\n this.createTreeDataRuntime();\n // this.cdkArrayDataSource.connect();\n // this.cdkArrayDataSource.disconnect();\n this.cdkArrayDataSource = new ArrayDataSource(this.treeDataRunTime);\n this.cdkTreeControl = new NestedTreeControl<TreeItemRunTimeModel>(node => node?.children);\n this.cdkTreeControl.dataNodes = this.treeDataRunTime;\n this.renderTree = true;\n this.changeDetectorRef.markForCheck();\n });\n }\n }\n\n ngAfterContentInit(): void {\n }\n\n trackBy(index: number, el: any) {\n return el.parent;\n }\n\n getTreeItem(path: string): TreeItemModel {\n const indexArr: Array<number> = this.resolvePath(path);\n let nodeArr = this.nodes;\n let node;\n if (nodeArr && Array.isArray(nodeArr)) {\n indexArr?.forEach((pathIndex: number, index) => {\n if (index < indexArr.length - 1) {\n nodeArr = nodeArr && nodeArr[pathIndex]?.children;\n } else {\n node = nodeArr[pathIndex];\n }\n });\n }\n return node;\n }\n\n expandAll() {\n this.cdkTreeControl.collapseAll();\n this.changeDetectorRef.markForCheck();\n setTimeout(() => {\n this.cdkTreeControl.expandAll();\n this.changeDetectorRef.detectChanges();\n });\n }\n\n collapseAll() {\n this.cdkTreeControl.collapseAll();\n this.changeDetectorRef.markForCheck();\n }\n\n setAllSelection(isChecked: boolean) {\n this.setIsCheckedForAll(this.nodes, isChecked, this.treeDataRunTime);\n }\n\n onNodeClick(treeItem: TreeItemRunTimeModel) {\n this.nodeClick.emit(this.getTreeItem(treeItem?.path));\n if (this.isClickTogglingNode) {\n this.cdkTreeControl.toggle(treeItem);\n this.onNodeToggle(treeItem);\n }\n }\n\n onNodeToggle(treeItem: TreeItemRunTimeModel) {\n this.nodeToggle.emit(this.getTreeItem(treeItem?.path));\n }\n\n nodeSelected(evt: any, path: string, treeItemModel: TreeItemRunTimeModel) {\n const item = this.getTreeItem(path);\n let node = item.node;\n const children = item.children;\n const pathArr = path.split('.');\n const hasParent = pathArr.length > 1;\n if (hasParent) {\n pathArr.pop();\n }\n node.isSelected = evt.target.checked;\n if (node.isSelected) {\n this.selectTreeItem(treeItemModel);\n } else {\n this.deselectTreeItem(treeItemModel);\n }\n node.isIndeterminate = false;\n if (children && children.length > 0) {\n if (node?.selectConfig?.recursive) {\n this.setIsCheckedForAll(children, evt.target.checked, treeItemModel.children);\n }\n }\n this.runTimeSelectionRecursiveState[parseInt(pathArr[0], 10)] = this.calculateItemSelectionRecursiveState({ ...this.getTreeItem(pathArr[0]) });\n if (hasParent) {\n // Calculates parent path\n const parentPath = pathArr.join('.');\n // Creating node index sequence f.e If path is '1.2' it will be [1,2]\n const nodeIndexSeq = parentPath.split('.').map((indexStr) => parseInt(indexStr, 10));\n // Calculating the node paths array to be re-calculated from bottom to top\n const nodePathsSeq = [];\n nodeIndexSeq.forEach((nodeIndex, index) => {\n nodePathsSeq[index] = nodeIndexSeq.slice(0, index + 1).join('.');\n });\n nodePathsSeq.forEach((nodePath: string) => {\n const treeItem = this.getTreeItem(nodePath);\n const runTimeTreeItem = this.getRunTimeSelectionRecursiveState(nodePath);\n if (treeItem?.node?.selectable && treeItem.node?.selectConfig?.recursive) {\n treeItem.node.isSelected = runTimeTreeItem.selectionRecursiveState === 'allSelected';\n treeItem.node.isIndeterminate = runTimeTreeItem.selectionRecursiveState === 'indeterminate';\n if (treeItem.node.isSelected === true) {\n // runTimeTreeItem.node.isSelected = true;\n // this.cdkTreeControl.dataNodes = this.treeDataRunTime;\n this.selectTreeItem(runTimeTreeItem);\n } else {\n // runTimeTreeItem.node.isSelected = true;\n // this.cdkTreeControl.dataNodes = this.treeDataRunTime;\n this.deselectTreeItem(runTimeTreeItem);\n }\n }\n // debugger\n });\n }\n }\n\n hasChild = (_: number, item: TreeItemRunTimeModel) => !!item.children && item?.children?.length > 0;\n\n onSelectFn(path: string, treeItemModel: TreeItemRunTimeModel) {\n if (treeItemModel?.node?.selectable) {\n const nodeSelected = this.nodeSelected.bind(this);\n return (evt: any) => {\n return nodeSelected(evt, path, treeItemModel);\n };\n }\n return (evt: any) => {\n console.warn('treeItemModel.node.selectable is false, you can not implement onSelect');\n };\n }\n\n private processInputs(treeData: TreeDataModel) {\n if (this.isMultiselect) {\n treeData = this.overrideTreeDataModelForSelection(treeData, this.isRecursiveSelection, !this.isRecursiveParentSelection);\n }\n return treeData;\n }\n\n private overrideTreeDataModelForSelection(nodeArr: TreeDataModel, isRecursive: boolean, noAutoSelectParent: boolean): TreeDataModel {\n return nodeArr.map((item: TreeItemModel, index: number) => {\n if (item?.children && item.children.length > 0) {\n return {\n ...item,\n node: {\n ...item.node,\n selectable: typeof item?.node?.selectable === 'undefined' ? true : item?.node?.selectable,\n // isSelected: false,\n // isIndeterminate: false,\n selectConfig: {\n ...item.node.selectConfig,\n recursive: typeof item?.node?.selectConfig?.recursive === 'undefined' ? !!isRecursive : item?.node?.selectConfig?.recursive,\n noAutoSelectParent: typeof item?.node?.selectConfig?.noAutoSelectParent === 'undefined' ?\n noAutoSelectParent : item?.node?.selectConfig?.noAutoSelectParent,\n },\n },\n children: this.overrideTreeDataModelForSelection(item.children, isRecursive, noAutoSelectParent),\n };\n } else {\n return {\n ...item,\n node: {\n ...item.node,\n selectable: typeof item?.node?.selectable === 'undefined' ? true : item?.node?.selectable,\n },\n };\n }\n });\n }\n\n private getSelectionIndexOfItem(runTimeTreeItem: TreeItemRunTimeModel): number {\n return this.selectionModel.selected.findIndex((i) => i.path === runTimeTreeItem.path);\n }\n\n private selectTreeItem(runTimeTreeItem: TreeItemRunTimeModel) {\n const indexOfItem = this.getSelectionIndexOfItem(runTimeTreeItem);\n if (indexOfItem === -1) {\n this.selectionModel.select(runTimeTreeItem);\n }\n }\n\n private deselectTreeItem(runTimeTreeItem: TreeItemRunTimeModel) {\n const indexOfItem = this.getSelectionIndexOfItem(runTimeTreeItem);\n if (indexOfItem > -1) {\n let newSelection = [...this.selectionModel.selected];\n newSelection.splice(indexOfItem, 1);\n this.selectionModel.setSelection(...newSelection);\n }\n }\n\n // Creates treeDataRunTime & runTimeSelectionRecursiveState for separate the logic.\n private createTreeDataRuntime() {\n this.treeDataRunTime = [...this.nodes].map((item, index) => {\n return this.calculateRunTimeState({ ...item }, index);\n });\n this.runTimeSelectionRecursiveState = this.treeDataRunTime.map((item) => {\n return this.calculateItemSelectionRecursiveState({ ...item });\n });\n }\n\n // Creating run time state which includes children selection state for selection tree.\n private calculateItemSelectionRecursiveState(treeItem: TreeItemRunTimeModel): TreeItemRunTimeModel {\n let childStates = [];\n let itemState: SelectionRecursiveState = 'indeterminate';\n if (treeItem.children && treeItem.children.length > 0) {\n treeItem.children.forEach((child, index) => {\n treeItem.children[index] = this.calculateItemSelectionRecursiveState(child);\n });\n const runTimeItems = treeItem.children as any;\n childStates = runTimeItems.map(item => item.selectionRecursiveState);\n }\n if (treeItem.node.isSelected && childStates.every((state) => state === 'allSelected')) {\n itemState = 'allSelected';\n } else if (!treeItem.node.isSelected && childStates.every((state) => state === 'allNotSelected')) {\n itemState = 'allNotSelected';\n } else if (treeItem.node?.selectConfig?.recursive && childStates.every((state) => state === 'allSelected') && !treeItem.node.isSelected) {\n if (!treeItem?.node?.selectConfig?.noAutoSelectParent) {\n treeItem.node.isSelected = true;\n this.selectTreeItem(treeItem);\n itemState = 'allSelected';\n }\n } else if (treeItem.node?.selectConfig?.recursive && childStates.every((state) => state === 'allNotSelected') && treeItem.node.isSelected) {\n treeItem.node.isSelected = false;\n this.deselectTreeItem(treeItem);\n itemState = 'allNotSelected';\n }\n return {\n ...treeItem,\n selectionRecursiveState: itemState,\n };\n }\n\n private getRunTimeSelectionRecursiveState(path: string): TreeItemRunTimeModel {\n const indexArr: Array<number> = this.resolvePath(path);\n let nodeArr = this.runTimeSelectionRecursiveState;\n let node;\n indexArr.forEach((pathIndex: number, index) => {\n if (index < indexArr.length - 1) {\n nodeArr = nodeArr[pathIndex].children;\n } else {\n node = nodeArr[pathIndex];\n }\n });\n return node;\n }\n\n private setIsCheckedForAll(nodeArr: TreeDataModel, isChecked: boolean, runTimeTreeData: TreeDataRunTimeModel): void {\n nodeArr.forEach((item: TreeItemModel, index: number) => {\n if (nodeArr[index]?.node?.selectable) {\n nodeArr[index] = {\n ...item,\n node: {\n ...item.node,\n isSelected: isChecked,\n isIndeterminate: false,\n },\n };\n if (isChecked) {\n this.selectTreeItem(runTimeTreeData[index]);\n } else {\n this.deselectTreeItem(runTimeTreeData[index]);\n }\n }\n if (nodeArr[index].children && nodeArr[index].children.length > 0) {\n this.setIsCheckedForAll(nodeArr[index].children, isChecked, runTimeTreeData[index].children);\n }\n });\n }\n\n private resolvePath(path: string): Array<number> {\n return path?.split('.').map((index: string) => parseInt(index, 10));\n }\n\n private calculateRunTimeState(treeItem: TreeItemRunTimeModel, index: number, parentPath?: string): TreeItemRunTimeModel {\n treeItem.path = parentPath ? parentPath + '.' + index : index.toString();\n treeItem.index = index;\n if (treeItem.children && treeItem.children.length > 0) {\n treeItem.children.forEach((child, treeItemIndex) => {\n treeItem.children[treeItemIndex] = this.calculateRunTimeState(child, treeItemIndex, treeItem.path);\n });\n }\n return treeItem;\n }\n}\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TranslateModule,\n EuiInputCheckboxModule,\n CdkTreeModule,\n EuiButtonModule,\n EuiIconModule,\n EuiLabelModule,\n EuiBadgeModule,\n ],\n declarations: [\n EuiTreeComponent,\n ],\n exports: [\n EuiTreeComponent,\n ],\n})\nexport class EuiTreeModule {\n}\n","<ul class=\"ux-tree\">\n <cdk-tree [dataSource]=\"cdkArrayDataSource\" [treeControl]=\"cdkTreeControl\" [trackBy]=\"trackBy\" *ngIf=\"renderTree\">\n <!-- There are two states of generic cdk-nested-tree-node declarations.\n First one is without child. No sub rendering.\n -->\n <cdk-nested-tree-node *cdkTreeNodeDef=\"let treeItemModel\">\n <li class=\"ux-tree__node\" *ngIf=\"treeItemModel\"\n title=\"{{getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel||\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.label}}\"\n >\n <div class=\"ux-tree__node-wrapper\">\n <div (click)=\"onNodeClick(treeItemModel)\">\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef||nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeItemModel?.path)?.node,\n onSelect:onSelectFn(treeItemModel.path,treeItemModel),\n id:uid+treeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n </li>\n </cdk-nested-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node *cdkTreeNodeDef=\"let treeItemModel when: hasChild\">\n <li class=\"ux-tree__node\" *ngIf=\"treeItemModel\"\n title=\"{{getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel||\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.label}}\">\n <div class=\"ux-tree__node-wrapper\">\n <button euiButton euiIconButton euiBasicButton\n [attr.aria-label]=\"'Toggle ' + treeItemModel?.node?.treeContentBlock?.label\"\n (click)=\"onNodeToggle(treeItemModel)\"\n cdkTreeNodeToggle>\n <span euiIcon *ngIf=\"!cdkTreeControl.isExpanded(treeItemModel)&&collapsedIconClass\"\n [iconClass]=\"collapsedIconClass\"></span>\n <span euiIcon *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)&&expandedIconClass\"\n [iconClass]=\"expandedIconClass\"\n ></span>\n <eui-icon-svg *ngIf=\"!cdkTreeControl.isExpanded(treeItemModel)&&!collapsedIconClass\" set=\"sharp\"\n size=\"m\"\n icon=\"chevron-forward\"></eui-icon-svg>\n <eui-icon-svg *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)&&!expandedIconClass\" set=\"sharp\"\n size=\"m\"\n icon=\"chevron-down\"\n ></eui-icon-svg>\n </button>\n <!--Here wraps the node, and listen for node clicks.-->\n <div (click)=\"onNodeClick(treeItemModel)\">\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef||nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeItemModel?.path)?.node,\n onSelect:onSelectFn(treeItemModel?.path,treeItemModel),\n id:uid+treeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n <!--uses cdkTreeNodeOutlet to render children nodes, CdkTreeControl is used to control isExpanded state.-->\n <ul class=\"ux-tree__node\" *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </ul>\n </li>\n </cdk-nested-tree-node>\n </cdk-tree>\n</ul>\n\n<ng-template #nodeTemplateDefault let-node let-onSelect=\"onSelect\" let-id=id>\n <ng-container *ngIf=\"node\">\n <!--input checkbox area-->\n <input euiInputCheckBox *ngIf=\"node && node.selectable\"\n type=\"checkbox\"\n id=\"{{id}}\"\n [checked]=\"node && node.isSelected\"\n (change)=\"onSelect($event)\"\n >\n <!--type (typeLabel & typeClass) area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.typeLabel\" [ngSwitch]=\"node?.treeContentBlock?.typeClass\">\n <eui-badge euiSizeM\n [euiVariant]=\"node?.treeContentBlock?.typeClass||'primary'\">\n {{node?.treeContentBlock?.typeLabel}}\n </eui-badge>\n </ng-container>\n <!--icon area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.iconClass\">\n <eui-icon euiSizeM\n [euiVariant]=\"node?.treeContentBlock?.iconTypeClass||'primary'\"\n iconClass=\"{{node?.treeContentBlock?.iconClass}}\">\n </eui-icon>\n </ng-container>\n <!--label area-->\n <label *ngIf=\"!node?.treeContentBlock?.urlExternal\" euiLabel\n for=\"{{id}}\">{{autoTranslate ? (node?.treeContentBlock?.label|translate) : node?.treeContentBlock?.label}}</label>\n <label *ngIf=\"node?.treeContentBlock?.urlExternal\" euiLabel for=\"{{id}}\">\n <a href=\"{{node?.treeContentBlock?.urlExternal}}\"\n target=\"{{node?.treeContentBlock?.urlExternalTarget || 'blank'}}\">\n {{autoTranslate ? (node?.treeContentBlock?.label|translate) : node?.treeContentBlock?.label}}\n </a>\n </label>\n <!--badges area-->\n <ng-container *ngFor=\"let badge of node?.treeContentBlock?.badges\">\n <eui-badge euiSizeM [euiVariant]=\"badge.typeClass||'secondary'\">\n {{badge.label}}\n </eui-badge>\n </ng-container>\n <!--metadata, uses the help of ng template to generate dynamic expand variable without handling state -->\n <ng-container *ngIf=\"node?.treeContentBlock?.metadata && nodeContentMetadataTemplateRef\"\n [ngTemplateOutlet]=\"nodeContentMetadataContainer\"\n [ngTemplateOutletContext]=\"{\n $implicit: {expanded:false}\n }\">\n </ng-container>\n <ng-template #nodeContentMetadataContainer let-metaDataContainer>\n <span\n class=\"ux-tree__node-metacontent-toggle ux-tree__node-clickable\"\n (click)=\"metaDataContainer.expanded=!metaDataContainer.expanded\">\n <span class=\"eui-icon\"\n [ngClass]=\"metaDataContainer.expanded ? 'eui-icon eui-icon-angle-down' : 'eui-icon eui-icon-angle-right'\">\n\n </span>\n </span>\n <div\n *ngIf=\"metaDataContainer.expanded\"\n class=\"ux-tree__node-metacontent\">\n <!--passing metadata of the node content to provided template-ref:nodeContentMetadataTemplateRef-->\n <ng-template [ngTemplateOutlet]=\"nodeContentMetadataTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: node?.treeContentBlock?.metadata,metadata: node?.treeContentBlock?.metadata}\"></ng-template>\n </div>\n </ng-template>\n </ng-container>\n</ng-template>\n","import { UxLink } from '@eui/base';\n\nexport type TreeDataModel = Array<TreeItemModel>;\n\nexport type TreeItemModel = {\n node: TreeNode;\n children?: TreeDataModel;\n};\n\nexport type TreeNode = {\n // metadata can be block content, or any\n treeContentBlock: EuiTreeContentBlockModel | any;\n} & SelectionModel;\n\nexport interface EuiTreeContentBlockModel {\n label: string;\n tooltipLabel: string;\n urlExternal: string;\n urlExternalTarget: string;\n typeLabel: string;\n typeClass: string;\n badges?: Array<{ label: string, typeClass: string }>;\n iconClass: string;\n iconTypeClass: string;\n metaData: string;\n}\n\nexport type SelectionModel = {\n // if one of sub is selected, it becomes intermediate\n selectable?: boolean;\n isSelected?: boolean;\n isIndeterminate?: boolean;\n selectConfig?: SelectConfigModel;\n};\n\nexport interface SelectConfigModel {\n /*\n If It is true;\n When user select parent, all the children will be selected\n When selection state is changed, If all children is selected parent will be selected as long as noAutoSelectParent is not true\n */\n recursive?: boolean;\n /* when It is true, If all children is selected, parent will not be selected, while recursive is true*/\n noAutoSelectParent?: boolean;\n}\n\nexport type EuiTreeSelectionChanges = { added: TreeDataModel, removed: TreeDataModel, selection: TreeDataModel };\n\nexport type TreeDataRunTimeModel = Array<TreeItemRunTimeModel>;\n\nexport type TreeItemRunTimeModel = { selectionRecursiveState?: SelectionRecursiveState, index?: number, path?: string } & TreeItemModel;\n\nexport type SelectionRecursiveState = 'indeterminate' | 'allSelected' | 'allNotSelected';\n\nexport function uxTreeNodesMetaDataMapper(oldTree: Array<UxLink>): TreeDataModel {\n return oldTree.map((item) => {\n if (item?.typeClass === 'default') {\n // default typeClass will be\n item.typeClass = 'secondary';\n }\n if (item?.badgeLabel) {\n // default typeClass will be\n if (item?.badges?.length > 0) {\n item.badges.push({ label: item?.badgeLabel, typeClass: 'secondary' });\n } else {\n item.badges = [{ label: item?.badgeLabel, typeClass: 'secondary' }];\n }\n }\n return {\n node: {\n treeContentBlock: {\n label: item.label,\n typeLabel: item.typeLabel,\n typeClass: item.typeLabel && !item.typeClass ? 'secondary' : item.typeClass,\n tooltipLabel: item.tooltipLabel,\n urlExternal: item.urlExternal,\n urlExternalTarget: item.urlExternal && item.urlExternalTarget ? item.urlExternalTarget : undefined,\n badges: item.badges,\n metadata: item.metadata,\n },\n },\n children: item.children ? uxTreeNodesMetaDataMapper(item.children) : undefined,\n };\n });\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-components-eui-tree.mjs","sources":["../../eui-tree/eui-tree.component.ts","../../eui-tree/eui-tree.component.html","../../eui-tree/eui-tree.model.ts","../../eui-tree/eui-components-eui-tree.ts"],"sourcesContent":["import {\n Component,\n Input,\n NgModule,\n Directive,\n ContentChild,\n QueryList,\n forwardRef,\n ChangeDetectionStrategy,\n EventEmitter,\n Output,\n HostBinding,\n ViewEncapsulation,\n TemplateRef,\n ViewChildren,\n ContentChildren,\n AfterContentInit,\n ChangeDetectorRef, ViewChild, SimpleChanges,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n SelectionRecursiveState,\n TreeDataModel,\n TreeItemModel,\n TreeNode,\n TreeDataRunTimeModel,\n TreeItemRunTimeModel, EuiTreeSelectionChanges,\n} from './eui-tree.model';\nimport { FormsModule } from '@angular/forms';\nimport { EuiInputCheckboxModule } from '@eui/components/eui-input-checkbox';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiLabelModule } from '@eui/components/eui-label';\nimport { EuiBadgeModule } from '@eui/components/eui-badge';\nimport { NestedTreeControl, CdkTreeModule, CdkTree } from '@angular/cdk/tree';\nimport { ArrayDataSource, SelectionModel, SelectionChange, DataSource } from '@angular/cdk/collections';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'eui-tree',\n templateUrl: './eui-tree.component.html',\n styleUrls: ['./styles/_index.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\n\nexport class EuiTreeComponent implements AfterContentInit {\n @Input() nodes: TreeDataModel;\n @Input() nodeTemplateRef: TemplateRef<any>;\n @Input() nodeContentMetadataTemplateRef: TemplateRef<any>;\n @Input() expandedIconClass: string;\n @Input() collapsedIconClass: string;\n\n // @ViewChild('treeComponentInstance') public treeComponentInstance: any;\n @Input()\n get isClickTogglingNode(): boolean {\n return this._isClickTogglingNode;\n }\n\n set isClickTogglingNode(value: BooleanInput) {\n this._isClickTogglingNode = coerceBooleanProperty(value);\n }\n\n @Input()\n get isMultiselect(): boolean {\n return this._isMultiselect;\n }\n\n set isMultiselect(value: BooleanInput) {\n this._isMultiselect = coerceBooleanProperty(value);\n }\n\n @Input()\n get isRecursiveSelection(): boolean {\n return this._isRecursiveSelection;\n }\n\n set isRecursiveSelection(value: BooleanInput) {\n this._isRecursiveSelection = coerceBooleanProperty(value);\n }\n\n @Input()\n get isRecursiveParentSelection(): boolean {\n return this._isRecursiveParentSelection;\n }\n\n set isRecursiveParentSelection(value: BooleanInput) {\n this._isRecursiveParentSelection = coerceBooleanProperty(value);\n }\n\n @Input()\n get autoTranslate(): boolean {\n return this._autoTranslate;\n }\n\n set autoTranslate(value: BooleanInput) {\n this._autoTranslate = coerceBooleanProperty(value);\n }\n\n @Output() selectionChange = new EventEmitter<EuiTreeSelectionChanges>();\n @Output() nodeClick = new EventEmitter<TreeItemModel>();\n @Output() nodeToggle = new EventEmitter<TreeItemModel>();\n cdkArrayDataSource: ArrayDataSource<TreeItemModel>;\n cdkTreeControl: NestedTreeControl<TreeItemModel>;\n renderTree: boolean;\n public uid: string = Math.floor(Math.random() * 1000000000).toString();\n private treeDataRunTime: TreeDataRunTimeModel;\n private runTimeSelectionRecursiveState: TreeDataRunTimeModel;\n private selectionModel: SelectionModel<TreeItemRunTimeModel>;\n private _isClickTogglingNode: boolean = false;\n private _isMultiselect: boolean = false;\n private _isRecursiveSelection: boolean = false;\n private _isRecursiveParentSelection: boolean = true;\n private _autoTranslate: boolean = true;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {\n }\n\n ngOnInit() {\n // Deep copy to the array.\n this.nodes = this.processInputs(JSON.parse(JSON.stringify(this.nodes)));\n this.createTreeDataRuntime();\n // console.log('treeDataRunTime', this.treeDataRunTime);\n // console.log(this.treeDataRunTime);\n this.cdkArrayDataSource = new ArrayDataSource(this.treeDataRunTime);\n this.cdkTreeControl = new NestedTreeControl<TreeItemRunTimeModel>(node => node?.children);\n this.cdkTreeControl.dataNodes = this.treeDataRunTime;\n this.selectionModel = new SelectionModel<TreeItemRunTimeModel>(true, [], true, ((a, b) => {\n return a.path === b.path;\n }));\n this.renderTree = true;\n this.selectionModel.changed.subscribe((sc) => {\n // console.log('selection change:', sc);\n // console.log('selected snapshot', this.selectionModel.selected);\n this.selectionChange.emit({\n added: sc.added.map(_ => this.getTreeItem(_.path)),\n removed: sc.removed.map(_ => this.getTreeItem(_.path)),\n selection: [...this.selectionModel.selected].map(item => {\n return this.getTreeItem(item.path);\n }),\n });\n });\n this.changeDetectorRef.markForCheck();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['nodes'].currentValue !== changes['nodes'].previousValue && this.cdkArrayDataSource) {\n // console.log('stops by', changes['nodes'].currentValue);\n this.renderTree = false;\n setTimeout(() => {\n // this.treeData = changes['treeData'].currentValue;\n this.nodes = JSON.parse(JSON.stringify(changes['nodes'].currentValue));\n // console.log('triggered');\n this.createTreeDataRuntime();\n // this.cdkArrayDataSource.connect();\n // this.cdkArrayDataSource.disconnect();\n this.cdkArrayDataSource = new ArrayDataSource(this.treeDataRunTime);\n this.cdkTreeControl = new NestedTreeControl<TreeItemRunTimeModel>(node => node?.children);\n this.cdkTreeControl.dataNodes = this.treeDataRunTime;\n this.renderTree = true;\n this.changeDetectorRef.markForCheck();\n });\n }\n }\n\n ngAfterContentInit(): void {\n }\n\n trackBy(index: number, el: any) {\n return el.parent;\n }\n\n getTreeItem(path: string): TreeItemModel {\n const indexArr: Array<number> = this.resolvePath(path);\n let nodeArr = this.nodes;\n let node;\n if (nodeArr && Array.isArray(nodeArr)) {\n indexArr?.forEach((pathIndex: number, index) => {\n if (index < indexArr.length - 1) {\n nodeArr = nodeArr && nodeArr[pathIndex]?.children;\n } else {\n node = nodeArr[pathIndex];\n }\n });\n }\n return node;\n }\n\n expandAll() {\n this.cdkTreeControl.collapseAll();\n this.changeDetectorRef.markForCheck();\n setTimeout(() => {\n this.cdkTreeControl.expandAll();\n this.changeDetectorRef.detectChanges();\n });\n }\n\n collapseAll() {\n this.cdkTreeControl.collapseAll();\n this.changeDetectorRef.markForCheck();\n }\n\n setAllSelection(isChecked: boolean) {\n this.setIsCheckedForAll(this.nodes, isChecked, this.treeDataRunTime);\n }\n\n onNodeClick(treeItem: TreeItemRunTimeModel) {\n this.nodeClick.emit(this.getTreeItem(treeItem?.path));\n if (this.isClickTogglingNode) {\n this.cdkTreeControl.toggle(treeItem);\n this.onNodeToggle(treeItem);\n }\n }\n\n onNodeToggle(treeItem: TreeItemRunTimeModel) {\n this.nodeToggle.emit(this.getTreeItem(treeItem?.path));\n }\n\n nodeSelected(evt: any, path: string, treeItemModel: TreeItemRunTimeModel) {\n const item = this.getTreeItem(path);\n let node = item.node;\n const children = item.children;\n const pathArr = path.split('.');\n const hasParent = pathArr.length > 1;\n if (hasParent) {\n pathArr.pop();\n }\n node.isSelected = evt.target.checked;\n if (node.isSelected) {\n this.selectTreeItem(treeItemModel);\n } else {\n this.deselectTreeItem(treeItemModel);\n }\n node.isIndeterminate = false;\n if (children && children.length > 0) {\n if (node?.selectConfig?.recursive) {\n this.setIsCheckedForAll(children, evt.target.checked, treeItemModel.children);\n }\n }\n this.runTimeSelectionRecursiveState[parseInt(pathArr[0], 10)] = this.calculateItemSelectionRecursiveState({ ...this.getTreeItem(pathArr[0]) });\n if (hasParent) {\n // Calculates parent path\n const parentPath = pathArr.join('.');\n // Creating node index sequence f.e If path is '1.2' it will be [1,2]\n const nodeIndexSeq = parentPath.split('.').map((indexStr) => parseInt(indexStr, 10));\n // Calculating the node paths array to be re-calculated from bottom to top\n const nodePathsSeq = [];\n nodeIndexSeq.forEach((nodeIndex, index) => {\n nodePathsSeq[index] = nodeIndexSeq.slice(0, index + 1).join('.');\n });\n nodePathsSeq.forEach((nodePath: string) => {\n const treeItem = this.getTreeItem(nodePath);\n const runTimeTreeItem = this.getRunTimeSelectionRecursiveState(nodePath);\n if (treeItem?.node?.selectable && treeItem.node?.selectConfig?.recursive) {\n treeItem.node.isSelected = runTimeTreeItem.selectionRecursiveState === 'allSelected';\n treeItem.node.isIndeterminate = runTimeTreeItem.selectionRecursiveState === 'indeterminate';\n if (treeItem.node.isSelected === true) {\n // runTimeTreeItem.node.isSelected = true;\n // this.cdkTreeControl.dataNodes = this.treeDataRunTime;\n this.selectTreeItem(runTimeTreeItem);\n } else {\n // runTimeTreeItem.node.isSelected = true;\n // this.cdkTreeControl.dataNodes = this.treeDataRunTime;\n this.deselectTreeItem(runTimeTreeItem);\n }\n }\n // debugger\n });\n }\n }\n\n hasChild = (_: number, item: TreeItemRunTimeModel) => !!item.children && item?.children?.length > 0;\n\n onSelectFn(path: string, treeItemModel: TreeItemRunTimeModel) {\n if (treeItemModel?.node?.selectable) {\n const nodeSelected = this.nodeSelected.bind(this);\n return (evt: any) => {\n return nodeSelected(evt, path, treeItemModel);\n };\n }\n return (evt: any) => {\n console.warn('treeItemModel.node.selectable is false, you can not implement onSelect');\n };\n }\n\n private processInputs(treeData: TreeDataModel) {\n if (this.isMultiselect) {\n treeData = this.overrideTreeDataModelForSelection(treeData, this.isRecursiveSelection, !this.isRecursiveParentSelection);\n }\n return treeData;\n }\n\n private overrideTreeDataModelForSelection(nodeArr: TreeDataModel, isRecursive: boolean, noAutoSelectParent: boolean): TreeDataModel {\n return nodeArr.map((item: TreeItemModel, index: number) => {\n if (item?.children && item.children.length > 0) {\n return {\n ...item,\n node: {\n ...item.node,\n selectable: typeof item?.node?.selectable === 'undefined' ? true : item?.node?.selectable,\n // isSelected: false,\n // isIndeterminate: false,\n selectConfig: {\n ...item.node.selectConfig,\n recursive: typeof item?.node?.selectConfig?.recursive === 'undefined' ? !!isRecursive : item?.node?.selectConfig?.recursive,\n noAutoSelectParent: typeof item?.node?.selectConfig?.noAutoSelectParent === 'undefined' ?\n noAutoSelectParent : item?.node?.selectConfig?.noAutoSelectParent,\n },\n },\n children: this.overrideTreeDataModelForSelection(item.children, isRecursive, noAutoSelectParent),\n };\n } else {\n return {\n ...item,\n node: {\n ...item.node,\n selectable: typeof item?.node?.selectable === 'undefined' ? true : item?.node?.selectable,\n },\n };\n }\n });\n }\n\n private getSelectionIndexOfItem(runTimeTreeItem: TreeItemRunTimeModel): number {\n return this.selectionModel.selected.findIndex((i) => i.path === runTimeTreeItem.path);\n }\n\n private selectTreeItem(runTimeTreeItem: TreeItemRunTimeModel) {\n const indexOfItem = this.getSelectionIndexOfItem(runTimeTreeItem);\n if (indexOfItem === -1) {\n this.selectionModel.select(runTimeTreeItem);\n }\n }\n\n private deselectTreeItem(runTimeTreeItem: TreeItemRunTimeModel) {\n const indexOfItem = this.getSelectionIndexOfItem(runTimeTreeItem);\n if (indexOfItem > -1) {\n let newSelection = [...this.selectionModel.selected];\n newSelection.splice(indexOfItem, 1);\n this.selectionModel.setSelection(...newSelection);\n }\n }\n\n // Creates treeDataRunTime & runTimeSelectionRecursiveState for separate the logic.\n private createTreeDataRuntime() {\n this.treeDataRunTime = [...this.nodes].map((item, index) => {\n return this.calculateRunTimeState({ ...item }, index);\n });\n this.runTimeSelectionRecursiveState = this.treeDataRunTime.map((item) => {\n return this.calculateItemSelectionRecursiveState({ ...item });\n });\n }\n\n // Creating run time state which includes children selection state for selection tree.\n private calculateItemSelectionRecursiveState(treeItem: TreeItemRunTimeModel): TreeItemRunTimeModel {\n let childStates = [];\n let itemState: SelectionRecursiveState = 'indeterminate';\n if (treeItem.children && treeItem.children.length > 0) {\n treeItem.children.forEach((child, index) => {\n treeItem.children[index] = this.calculateItemSelectionRecursiveState(child);\n });\n const runTimeItems = treeItem.children as any;\n childStates = runTimeItems.map(item => item.selectionRecursiveState);\n }\n if (treeItem.node.isSelected && childStates.every((state) => state === 'allSelected')) {\n itemState = 'allSelected';\n } else if (!treeItem.node.isSelected && childStates.every((state) => state === 'allNotSelected')) {\n itemState = 'allNotSelected';\n } else if (treeItem.node?.selectConfig?.recursive && childStates.every((state) => state === 'allSelected') && !treeItem.node.isSelected) {\n if (!treeItem?.node?.selectConfig?.noAutoSelectParent) {\n treeItem.node.isSelected = true;\n this.selectTreeItem(treeItem);\n itemState = 'allSelected';\n }\n } else if (treeItem.node?.selectConfig?.recursive && childStates.every((state) => state === 'allNotSelected') && treeItem.node.isSelected) {\n treeItem.node.isSelected = false;\n this.deselectTreeItem(treeItem);\n itemState = 'allNotSelected';\n }\n return {\n ...treeItem,\n selectionRecursiveState: itemState,\n };\n }\n\n private getRunTimeSelectionRecursiveState(path: string): TreeItemRunTimeModel {\n const indexArr: Array<number> = this.resolvePath(path);\n let nodeArr = this.runTimeSelectionRecursiveState;\n let node;\n indexArr.forEach((pathIndex: number, index) => {\n if (index < indexArr.length - 1) {\n nodeArr = nodeArr[pathIndex].children;\n } else {\n node = nodeArr[pathIndex];\n }\n });\n return node;\n }\n\n private setIsCheckedForAll(nodeArr: TreeDataModel, isChecked: boolean, runTimeTreeData: TreeDataRunTimeModel): void {\n nodeArr.forEach((item: TreeItemModel, index: number) => {\n if (nodeArr[index]?.node?.selectable) {\n nodeArr[index] = {\n ...item,\n node: {\n ...item.node,\n isSelected: isChecked,\n isIndeterminate: false,\n },\n };\n if (isChecked) {\n this.selectTreeItem(runTimeTreeData[index]);\n } else {\n this.deselectTreeItem(runTimeTreeData[index]);\n }\n }\n if (nodeArr[index].children && nodeArr[index].children.length > 0) {\n this.setIsCheckedForAll(nodeArr[index].children, isChecked, runTimeTreeData[index].children);\n }\n });\n }\n\n private resolvePath(path: string): Array<number> {\n return path?.split('.').map((index: string) => parseInt(index, 10));\n }\n\n private calculateRunTimeState(treeItem: TreeItemRunTimeModel, index: number, parentPath?: string): TreeItemRunTimeModel {\n treeItem.path = parentPath ? parentPath + '.' + index : index.toString();\n treeItem.index = index;\n if (treeItem.children && treeItem.children.length > 0) {\n treeItem.children.forEach((child, treeItemIndex) => {\n treeItem.children[treeItemIndex] = this.calculateRunTimeState(child, treeItemIndex, treeItem.path);\n });\n }\n return treeItem;\n }\n}\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TranslateModule,\n EuiInputCheckboxModule,\n CdkTreeModule,\n EuiButtonModule,\n EuiIconModule,\n EuiLabelModule,\n EuiBadgeModule,\n ],\n declarations: [\n EuiTreeComponent,\n ],\n exports: [\n EuiTreeComponent,\n ],\n})\nexport class EuiTreeModule {\n}\n","<ul class=\"eui-tree\">\n <cdk-tree [dataSource]=\"cdkArrayDataSource\" [treeControl]=\"cdkTreeControl\" [trackBy]=\"trackBy\" *ngIf=\"renderTree\">\n <!-- There are two states of generic cdk-nested-tree-node declarations.\n First one is without child. No sub rendering.\n -->\n <cdk-nested-tree-node *cdkTreeNodeDef=\"let treeItemModel\">\n <li class=\"eui-tree-node\" *ngIf=\"treeItemModel\"\n title=\"{{getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel||\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.label}}\"\n >\n <div class=\"eui-tree-node-wrapper\">\n <div (click)=\"onNodeClick(treeItemModel)\">\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef||nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeItemModel?.path)?.node,\n onSelect:onSelectFn(treeItemModel.path,treeItemModel),\n id:uid+treeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n </li>\n </cdk-nested-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node *cdkTreeNodeDef=\"let treeItemModel when: hasChild\">\n <li class=\"eui-tree-node\" *ngIf=\"treeItemModel\"\n title=\"{{getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel||\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.label}}\">\n <div class=\"eui-tree-node-wrapper\">\n <button euiButton euiIconButton euiBasicButton euiSizeS\n [attr.aria-label]=\"'Toggle ' + treeItemModel?.node?.treeContentBlock?.label\"\n (click)=\"onNodeToggle(treeItemModel)\"\n cdkTreeNodeToggle>\n <span euiIcon *ngIf=\"!cdkTreeControl.isExpanded(treeItemModel)&&collapsedIconClass\"\n [iconClass]=\"collapsedIconClass\"></span>\n <span euiIcon *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)&&expandedIconClass\"\n [iconClass]=\"expandedIconClass\"\n ></span>\n <eui-icon-svg *ngIf=\"!cdkTreeControl.isExpanded(treeItemModel)&&!collapsedIconClass\" icon=\"eui-chevron-forward\"></eui-icon-svg>\n <eui-icon-svg *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)&&!expandedIconClass\" icon=\"eui-chevron-down\"></eui-icon-svg>\n </button>\n <!--Here wraps the node, and listen for node clicks.-->\n <div (click)=\"onNodeClick(treeItemModel)\" class=\"eui-u-flex\">\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef||nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeItemModel?.path)?.node,\n onSelect:onSelectFn(treeItemModel?.path,treeItemModel),\n id:uid+treeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n <!--uses cdkTreeNodeOutlet to render children nodes, CdkTreeControl is used to control isExpanded state.-->\n <ul class=\"eui-tree-node\" *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </ul>\n </li>\n </cdk-nested-tree-node>\n </cdk-tree>\n</ul>\n\n<ng-template #nodeTemplateDefault let-node let-onSelect=\"onSelect\" let-id=id>\n <ng-container *ngIf=\"node\">\n <!--input checkbox area-->\n <input euiInputCheckBox *ngIf=\"node && node.selectable\"\n type=\"checkbox\"\n id=\"{{id}}\"\n [checked]=\"node && node.isSelected\"\n (change)=\"onSelect($event)\"\n class=\"eui-u-mr-s\"\n >\n <!--type (typeLabel & typeClass) area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.typeLabel\" [ngSwitch]=\"node?.treeContentBlock?.typeClass\">\n <eui-badge euiSizeM\n [euiVariant]=\"node?.treeContentBlock?.typeClass||'primary'\"\n class=\"eui-u-mr-s\">\n {{node?.treeContentBlock?.typeLabel}}\n </eui-badge>\n </ng-container>\n <!--icon area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.iconClass\">\n <eui-icon euiSizeM\n [euiVariant]=\"node?.treeContentBlock?.iconTypeClass||'primary'\"\n iconClass=\"{{node?.treeContentBlock?.iconClass}}\"\n class=\"eui-u-mr-s\">\n </eui-icon>\n </ng-container>\n <!--label area-->\n <label *ngIf=\"!node?.treeContentBlock?.urlExternal\" euiLabel class=\"eui-u-mr-s\"\n for=\"{{id}}\">{{autoTranslate ? (node?.treeContentBlock?.label|translate) : node?.treeContentBlock?.label}}</label>\n <label *ngIf=\"node?.treeContentBlock?.urlExternal\" euiLabel for=\"{{id}}\" class=\"eui-u-mr-s\">\n <a href=\"{{node?.treeContentBlock?.urlExternal}}\"\n target=\"{{node?.treeContentBlock?.urlExternalTarget || 'blank'}}\">\n {{autoTranslate ? (node?.treeContentBlock?.label|translate) : node?.treeContentBlock?.label}}\n </a>\n </label>\n <!--badges area-->\n <ng-container *ngFor=\"let badge of node?.treeContentBlock?.badges\">\n <eui-badge euiSizeM [euiVariant]=\"badge.typeClass||'secondary'\" class=\"eui-u-ml-s\">\n {{badge.label}}\n </eui-badge>\n </ng-container>\n <!--metadata, uses the help of ng template to generate dynamic expand variable without handling state -->\n <ng-container *ngIf=\"node?.treeContentBlock?.metadata && nodeContentMetadataTemplateRef\"\n [ngTemplateOutlet]=\"nodeContentMetadataContainer\"\n [ngTemplateOutletContext]=\"{\n $implicit: {expanded:false}\n }\">\n </ng-container>\n <ng-template #nodeContentMetadataContainer let-metaDataContainer>\n <button euiButton euiBasicButton euiIconButton euiSizeS (click)=\"metaDataContainer.expanded=!metaDataContainer.expanded\">\n <eui-icon-svg [icon]=\"metaDataContainer.expanded ? 'eui-chevron-down' : 'eui-chevron-forward'\"></eui-icon-svg>\n </button>\n <div *ngIf=\"metaDataContainer.expanded\"\n class=\"eui-tree-node__metacontent\">\n <!--passing metadata of the node content to provided template-ref:nodeContentMetadataTemplateRef-->\n <ng-template [ngTemplateOutlet]=\"nodeContentMetadataTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: node?.treeContentBlock?.metadata,metadata: node?.treeContentBlock?.metadata}\"></ng-template>\n </div>\n </ng-template>\n </ng-container>\n</ng-template>\n","import { UxLink } from '@eui/base';\n\nexport type TreeDataModel = Array<TreeItemModel>;\n\nexport type TreeItemModel = {\n node: TreeNode;\n children?: TreeDataModel;\n};\n\nexport type TreeNode = {\n // metadata can be block content, or any\n treeContentBlock: EuiTreeContentBlockModel | any;\n} & SelectionModel;\n\nexport interface EuiTreeContentBlockModel {\n label: string;\n tooltipLabel: string;\n urlExternal: string;\n urlExternalTarget: string;\n typeLabel: string;\n typeClass: string;\n badges?: Array<{ label: string, typeClass: string }>;\n iconClass: string;\n iconTypeClass: string;\n metaData: string;\n}\n\nexport type SelectionModel = {\n // if one of sub is selected, it becomes intermediate\n selectable?: boolean;\n isSelected?: boolean;\n isIndeterminate?: boolean;\n selectConfig?: SelectConfigModel;\n};\n\nexport interface SelectConfigModel {\n /*\n If It is true;\n When user select parent, all the children will be selected\n When selection state is changed, If all children is selected parent will be selected as long as noAutoSelectParent is not true\n */\n recursive?: boolean;\n /* when It is true, If all children is selected, parent will not be selected, while recursive is true*/\n noAutoSelectParent?: boolean;\n}\n\nexport type EuiTreeSelectionChanges = { added: TreeDataModel, removed: TreeDataModel, selection: TreeDataModel };\n\nexport type TreeDataRunTimeModel = Array<TreeItemRunTimeModel>;\n\nexport type TreeItemRunTimeModel = { selectionRecursiveState?: SelectionRecursiveState, index?: number, path?: string } & TreeItemModel;\n\nexport type SelectionRecursiveState = 'indeterminate' | 'allSelected' | 'allNotSelected';\n\nexport function uxTreeNodesMetaDataMapper(oldTree: Array<UxLink>): TreeDataModel {\n return oldTree.map((item) => {\n if (item?.typeClass === 'default') {\n // default typeClass will be\n item.typeClass = 'secondary';\n }\n if (item?.badgeLabel) {\n // default typeClass will be\n if (item?.badges?.length > 0) {\n item.badges.push({ label: item?.badgeLabel, typeClass: 'secondary' });\n } else {\n item.badges = [{ label: item?.badgeLabel, typeClass: 'secondary' }];\n }\n }\n return {\n node: {\n treeContentBlock: {\n label: item.label,\n typeLabel: item.typeLabel,\n typeClass: item.typeLabel && !item.typeClass ? 'secondary' : item.typeClass,\n tooltipLabel: item.tooltipLabel,\n urlExternal: item.urlExternal,\n urlExternalTarget: item.urlExternal && item.urlExternalTarget ? item.urlExternalTarget : undefined,\n badges: item.badges,\n metadata: item.metadata,\n },\n },\n children: item.children ? uxTreeNodesMetaDataMapper(item.children) : undefined,\n };\n });\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -370,10 +370,10 @@ class EuiTreeComponent {
370
370
  }
371
371
  }
372
372
  /** @nocollapse */ EuiTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: EuiTreeComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
373
- /** @nocollapse */ EuiTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: EuiTreeComponent, selector: "eui-tree", inputs: { nodes: "nodes", nodeTemplateRef: "nodeTemplateRef", nodeContentMetadataTemplateRef: "nodeContentMetadataTemplateRef", expandedIconClass: "expandedIconClass", collapsedIconClass: "collapsedIconClass", isClickTogglingNode: "isClickTogglingNode", isMultiselect: "isMultiselect", isRecursiveSelection: "isRecursiveSelection", isRecursiveParentSelection: "isRecursiveParentSelection", autoTranslate: "autoTranslate" }, outputs: { selectionChange: "selectionChange", nodeClick: "nodeClick", nodeToggle: "nodeToggle" }, usesOnChanges: true, ngImport: i0, template: "<ul class=\"ux-tree\">\n <cdk-tree [dataSource]=\"cdkArrayDataSource\" [treeControl]=\"cdkTreeControl\" [trackBy]=\"trackBy\" *ngIf=\"renderTree\">\n <!-- There are two states of generic cdk-nested-tree-node declarations.\n First one is without child. No sub rendering.\n -->\n <cdk-nested-tree-node *cdkTreeNodeDef=\"let treeItemModel\">\n <li class=\"ux-tree__node\" *ngIf=\"treeItemModel\"\n title=\"{{getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel||\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.label}}\"\n >\n <div class=\"ux-tree__node-wrapper\">\n <div (click)=\"onNodeClick(treeItemModel)\">\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef||nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeItemModel?.path)?.node,\n onSelect:onSelectFn(treeItemModel.path,treeItemModel),\n id:uid+treeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n </li>\n </cdk-nested-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node *cdkTreeNodeDef=\"let treeItemModel when: hasChild\">\n <li class=\"ux-tree__node\" *ngIf=\"treeItemModel\"\n title=\"{{getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel||\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.label}}\">\n <div class=\"ux-tree__node-wrapper\">\n <button euiButton euiIconButton euiBasicButton\n [attr.aria-label]=\"'Toggle ' + treeItemModel?.node?.treeContentBlock?.label\"\n (click)=\"onNodeToggle(treeItemModel)\"\n cdkTreeNodeToggle>\n <span euiIcon *ngIf=\"!cdkTreeControl.isExpanded(treeItemModel)&&collapsedIconClass\"\n [iconClass]=\"collapsedIconClass\"></span>\n <span euiIcon *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)&&expandedIconClass\"\n [iconClass]=\"expandedIconClass\"\n ></span>\n <eui-icon-svg *ngIf=\"!cdkTreeControl.isExpanded(treeItemModel)&&!collapsedIconClass\" set=\"sharp\"\n size=\"m\"\n icon=\"chevron-forward\"></eui-icon-svg>\n <eui-icon-svg *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)&&!expandedIconClass\" set=\"sharp\"\n size=\"m\"\n icon=\"chevron-down\"\n ></eui-icon-svg>\n </button>\n <!--Here wraps the node, and listen for node clicks.-->\n <div (click)=\"onNodeClick(treeItemModel)\">\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef||nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeItemModel?.path)?.node,\n onSelect:onSelectFn(treeItemModel?.path,treeItemModel),\n id:uid+treeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n <!--uses cdkTreeNodeOutlet to render children nodes, CdkTreeControl is used to control isExpanded state.-->\n <ul class=\"ux-tree__node\" *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </ul>\n </li>\n </cdk-nested-tree-node>\n </cdk-tree>\n</ul>\n\n<ng-template #nodeTemplateDefault let-node let-onSelect=\"onSelect\" let-id=id>\n <ng-container *ngIf=\"node\">\n <!--input checkbox area-->\n <input euiInputCheckBox *ngIf=\"node && node.selectable\"\n type=\"checkbox\"\n id=\"{{id}}\"\n [checked]=\"node && node.isSelected\"\n (change)=\"onSelect($event)\"\n >\n <!--type (typeLabel & typeClass) area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.typeLabel\" [ngSwitch]=\"node?.treeContentBlock?.typeClass\">\n <eui-badge euiSizeM\n [euiVariant]=\"node?.treeContentBlock?.typeClass||'primary'\">\n {{node?.treeContentBlock?.typeLabel}}\n </eui-badge>\n </ng-container>\n <!--icon area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.iconClass\">\n <eui-icon euiSizeM\n [euiVariant]=\"node?.treeContentBlock?.iconTypeClass||'primary'\"\n iconClass=\"{{node?.treeContentBlock?.iconClass}}\">\n </eui-icon>\n </ng-container>\n <!--label area-->\n <label *ngIf=\"!node?.treeContentBlock?.urlExternal\" euiLabel\n for=\"{{id}}\">{{autoTranslate ? (node?.treeContentBlock?.label|translate) : node?.treeContentBlock?.label}}</label>\n <label *ngIf=\"node?.treeContentBlock?.urlExternal\" euiLabel for=\"{{id}}\">\n <a href=\"{{node?.treeContentBlock?.urlExternal}}\"\n target=\"{{node?.treeContentBlock?.urlExternalTarget || 'blank'}}\">\n {{autoTranslate ? (node?.treeContentBlock?.label|translate) : node?.treeContentBlock?.label}}\n </a>\n </label>\n <!--badges area-->\n <ng-container *ngFor=\"let badge of node?.treeContentBlock?.badges\">\n <eui-badge euiSizeM [euiVariant]=\"badge.typeClass||'secondary'\">\n {{badge.label}}\n </eui-badge>\n </ng-container>\n <!--metadata, uses the help of ng template to generate dynamic expand variable without handling state -->\n <ng-container *ngIf=\"node?.treeContentBlock?.metadata && nodeContentMetadataTemplateRef\"\n [ngTemplateOutlet]=\"nodeContentMetadataContainer\"\n [ngTemplateOutletContext]=\"{\n $implicit: {expanded:false}\n }\">\n </ng-container>\n <ng-template #nodeContentMetadataContainer let-metaDataContainer>\n <span\n class=\"ux-tree__node-metacontent-toggle ux-tree__node-clickable\"\n (click)=\"metaDataContainer.expanded=!metaDataContainer.expanded\">\n <span class=\"eui-icon\"\n [ngClass]=\"metaDataContainer.expanded ? 'eui-icon eui-icon-angle-down' : 'eui-icon eui-icon-angle-right'\">\n\n </span>\n </span>\n <div\n *ngIf=\"metaDataContainer.expanded\"\n class=\"ux-tree__node-metacontent\">\n <!--passing metadata of the node content to provided template-ref:nodeContentMetadataTemplateRef-->\n <ng-template [ngTemplateOutlet]=\"nodeContentMetadataTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: node?.treeContentBlock?.metadata,metadata: node?.treeContentBlock?.metadata}\"></ng-template>\n </div>\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.ux-tree,.ux-tree ul{list-style:none;margin:0 0 0 var(--eui-base-spacing-xs);padding:0;position:relative}.ux-tree ul{margin-left:var(--eui-base-spacing-m)}ul.ux-tree:before{content:\"\";display:block;height:calc(100% - 12px);left:0;position:absolute}.ux-tree:before,.ux-tree ul:before{border-left:1px solid var(--eui-base-color-grey-20);bottom:0;content:\"\";display:block;height:calc(100% - 12px);left:0;position:absolute;top:0;width:0}.ux-tree li{cursor:pointer;line-height:calc(1.75 * var(--eui-base-spacing-m));margin:0;padding:0 0 0 var(--eui-base-spacing-s);position:relative}.ux-tree li:before{border-top:1px solid var(--eui-base-color-grey-20);content:\"\";display:block;height:0;left:0;position:absolute;top:var(--eui-base-spacing-m);width:var(--eui-base-spacing-xl)}.ux-tree li.ux-tree__node--expandable:before{border-top:1px solid var(--eui-base-color-grey-20);content:\"\";display:block;height:0;left:0;position:absolute;top:var(--eui-base-spacing-m);width:var(--eui-base-spacing-s)}.ux-tree li.ux-tree__node--disabled{pointer-events:none;cursor:none}.ux-tree li.last-child:before{bottom:0;height:auto;top:var(--eui-base-spacing-m)}.ux-tree{font-size:95%}.ux-tree--onelevel .ux-tree__node{padding:0}.ux-tree__node-wrapper{align-items:center;display:flex;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-tree__node-wrapper .ux-tree__parent{margin-left:var(--eui-base-spacing-2xs)}.ux-tree__node-wrapper .ux-tree__leaf{margin-left:var(--eui-base-spacing-l)}.ux-tree--onelevel .ux-tree__node-wrapper .ux-tree__leaf{margin-left:var(--eui-base-spacing-xs)!important;margin-right:var(--eui-base-spacing-xs)}.ux-tree__node-wrapper .ux-tree__custom-content{align-items:center;display:inline-flex}.ux-tree__node-wrapper .ux-tree__custom-content.ux-tree__leaf{margin-left:var(--eui-base-spacing-l)}.ux-tree__node-label{margin-left:var(--eui-base-spacing-xl);vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-tree__node-label.ux-tree__node-label-parent{margin-left:0}.ux-tree__node-label:focus,.ux-tree__node-label:hover{color:var(--eui-base-color-primary-100);text-decoration:underline}.ux-tree__node-label.ux-tree__node-label--highlighted{font-weight:700}.ux-tree__node--selected .ux-tree__node-label{background-color:var(--eui-base-color-primary-5)}.ux-tree__node-label-wrapped{margin-left:var(--eui-base-spacing-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-tree__node-label-wrapped:focus,.ux-tree__node-label-wrapped:hover{color:var(--eui-base-color-primary-100);text-decoration:underline}.ux-tree__node-label-wrapped .ux-tree__node-label--highlighted{font-weight:700}.ux-tree__node--selected .ux-tree__node-label-wrapped{background-color:var(--eui-base-color-primary-5)}.ux-tree__node-toggle-icon{color:var(--eui-base-color-primary-100)}.ux-tree__node-toggle-icon .ux-button__icon{font-size:var(--eui-base-font-size-xl)!important}.ux-tree__node-type{align-items:center;background-color:var(--eui-base-color-grey-80);color:var(--eui-base-color-white);display:inline-flex;font-size:var(--eui-base-font-size-s);height:var(--eui-base-spacing-m);margin:var(--eui-base-spacing-2xs) 0 0 var(--eui-base-spacing-xl);padding:var(--eui-base-spacing-s) var(--eui-base-spacing-2xs);text-decoration:none}.ux-tree__node-type.ux-tree__node-type-parent{margin-left:var(--eui-base-spacing-xs)}.ux-tree__node-icon{color:var(--eui-base-color-grey-90);display:inline-flex}.ux-tree__node-type--primary{background-color:var(--eui-base-color-primary-100)}.ux-tree__node-type--info{background-color:var(--eui-base-color-info-100)}.ux-tree__node-type--success{background-color:var(--eui-base-color-success-100)}.ux-tree__node-type--warning{background-color:var(--eui-base-color-warning-100)}.ux-tree__node-type--danger{background-color:var(--eui-base-color-danger-100)}.ux-tree__node-badge{margin-left:var(--eui-base-spacing-xs);min-width:var(--eui-base-spacing-xl)}.ux-tree__node-metacontent-toggle{display:flex;font-size:var(--eui-base-font-size);margin-left:var(--eui-base-spacing-s);padding:0 var(--eui-base-spacing-3xs);box-shadow:var(--eui-base-shadow-1)}.ux-tree__node-metacontent{background-color:var(--eui-base-color-grey-5);margin-left:var(--eui-base-spacing-xl);padding:var(--eui-base-spacing-m)}.ux-tree__node-checkbox-label{margin:0 var(--eui-base-spacing-2xs)!important;padding:10px!important}.ux-tree__node-checkbox-label:after{left:12px!important}.ux-tree__node-checkbox-label--onelevel{margin:0 auto!important}.ux-tree--multiselect .ux-tree__node-wrapper{margin:3px 0}.ux-tree--multiselect .ux-tree__node-label{margin-left:0;padding-left:var(--eui-base-spacing-s);padding-right:var(--eui-base-spacing-s)}.ux-tree--multiselect .ux-tree__node .ux-tree__parent{margin-left:0}.ux-tree--multiselect .ux-tree__node .ux-tree__leaf{margin-left:var(--eui-base-spacing-xl)}.ux-tree--onelevel{margin:0}.ux-tree--onelevel:before{border-left:none}.ux-tree--onelevel .ux-tree__node:before{border-top:none}.ux-tree--hidelines{margin:0}.ux-tree--hidelines .ux-tree__nodes:before{border-left:none}.ux-tree--hidelines .ux-tree__node:before{display:none}.ux-tree--hidelines:before{border-left:none}.ux-tree__virtual-scrolling__container{height:200px}.ux-tree__virtual-scrolling__item{height:30px}.ux-tree__toolbar{margin-bottom:var(--eui-base-spacing-m)}.ux-tree__toolbar-trigger{float:left;margin-right:var(--eui-base-spacing-xs)}.ux-tree__toolbar-filter{float:left;position:relative}.ux-tree__toolbar-filter-input{min-width:100px}.ux-tree__toolbar-filter-input-search-icon{position:absolute;right:var(--eui-base-spacing-s);top:var(--eui-base-spacing-s)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "component", type: i2.EuiInputCheckboxComponent, selector: "input[euiInputCheckBox]", inputs: ["isInvalid", "label", "styleClass", "checked", "id"] }, { kind: "directive", type: i3.CdkNestedTreeNode, selector: "cdk-nested-tree-node", inputs: ["role", "disabled", "tabIndex"], exportAs: ["cdkNestedTreeNode"] }, { kind: "directive", type: i3.CdkTreeNodeDef, selector: "[cdkTreeNodeDef]", inputs: ["cdkTreeNodeDefWhen"] }, { kind: "directive", type: i3.CdkTreeNodeToggle, selector: "[cdkTreeNodeToggle]", inputs: ["cdkTreeNodeToggleRecursive"] }, { kind: "component", type: i3.CdkTree, selector: "cdk-tree", inputs: ["dataSource", "treeControl", "trackBy"], exportAs: ["cdkTree"] }, { kind: "directive", type: i3.CdkTreeNodeOutlet, selector: "[cdkTreeNodeOutlet]" }, { kind: "component", type: i4.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i5.EuiIconComponent, selector: "div[euiIcon], span[euiIcon], i[euiIcon], eui-icon", inputs: ["aria-label", "iconClass", "isLoading"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i6.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "component", type: i7.EuiBadgeComponent, selector: "div[euiBadge], span[euiBadge], eui-badge", inputs: ["aria-label"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
373
+ /** @nocollapse */ EuiTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: EuiTreeComponent, selector: "eui-tree", inputs: { nodes: "nodes", nodeTemplateRef: "nodeTemplateRef", nodeContentMetadataTemplateRef: "nodeContentMetadataTemplateRef", expandedIconClass: "expandedIconClass", collapsedIconClass: "collapsedIconClass", isClickTogglingNode: "isClickTogglingNode", isMultiselect: "isMultiselect", isRecursiveSelection: "isRecursiveSelection", isRecursiveParentSelection: "isRecursiveParentSelection", autoTranslate: "autoTranslate" }, outputs: { selectionChange: "selectionChange", nodeClick: "nodeClick", nodeToggle: "nodeToggle" }, usesOnChanges: true, ngImport: i0, template: "<ul class=\"eui-tree\">\n <cdk-tree [dataSource]=\"cdkArrayDataSource\" [treeControl]=\"cdkTreeControl\" [trackBy]=\"trackBy\" *ngIf=\"renderTree\">\n <!-- There are two states of generic cdk-nested-tree-node declarations.\n First one is without child. No sub rendering.\n -->\n <cdk-nested-tree-node *cdkTreeNodeDef=\"let treeItemModel\">\n <li class=\"eui-tree-node\" *ngIf=\"treeItemModel\"\n title=\"{{getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel||\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.label}}\"\n >\n <div class=\"eui-tree-node-wrapper\">\n <div (click)=\"onNodeClick(treeItemModel)\">\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef||nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeItemModel?.path)?.node,\n onSelect:onSelectFn(treeItemModel.path,treeItemModel),\n id:uid+treeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n </li>\n </cdk-nested-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node *cdkTreeNodeDef=\"let treeItemModel when: hasChild\">\n <li class=\"eui-tree-node\" *ngIf=\"treeItemModel\"\n title=\"{{getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel||\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.label}}\">\n <div class=\"eui-tree-node-wrapper\">\n <button euiButton euiIconButton euiBasicButton euiSizeS\n [attr.aria-label]=\"'Toggle ' + treeItemModel?.node?.treeContentBlock?.label\"\n (click)=\"onNodeToggle(treeItemModel)\"\n cdkTreeNodeToggle>\n <span euiIcon *ngIf=\"!cdkTreeControl.isExpanded(treeItemModel)&&collapsedIconClass\"\n [iconClass]=\"collapsedIconClass\"></span>\n <span euiIcon *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)&&expandedIconClass\"\n [iconClass]=\"expandedIconClass\"\n ></span>\n <eui-icon-svg *ngIf=\"!cdkTreeControl.isExpanded(treeItemModel)&&!collapsedIconClass\" icon=\"eui-chevron-forward\"></eui-icon-svg>\n <eui-icon-svg *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)&&!expandedIconClass\" icon=\"eui-chevron-down\"></eui-icon-svg>\n </button>\n <!--Here wraps the node, and listen for node clicks.-->\n <div (click)=\"onNodeClick(treeItemModel)\" class=\"eui-u-flex\">\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef||nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeItemModel?.path)?.node,\n onSelect:onSelectFn(treeItemModel?.path,treeItemModel),\n id:uid+treeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n <!--uses cdkTreeNodeOutlet to render children nodes, CdkTreeControl is used to control isExpanded state.-->\n <ul class=\"eui-tree-node\" *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </ul>\n </li>\n </cdk-nested-tree-node>\n </cdk-tree>\n</ul>\n\n<ng-template #nodeTemplateDefault let-node let-onSelect=\"onSelect\" let-id=id>\n <ng-container *ngIf=\"node\">\n <!--input checkbox area-->\n <input euiInputCheckBox *ngIf=\"node && node.selectable\"\n type=\"checkbox\"\n id=\"{{id}}\"\n [checked]=\"node && node.isSelected\"\n (change)=\"onSelect($event)\"\n class=\"eui-u-mr-s\"\n >\n <!--type (typeLabel & typeClass) area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.typeLabel\" [ngSwitch]=\"node?.treeContentBlock?.typeClass\">\n <eui-badge euiSizeM\n [euiVariant]=\"node?.treeContentBlock?.typeClass||'primary'\"\n class=\"eui-u-mr-s\">\n {{node?.treeContentBlock?.typeLabel}}\n </eui-badge>\n </ng-container>\n <!--icon area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.iconClass\">\n <eui-icon euiSizeM\n [euiVariant]=\"node?.treeContentBlock?.iconTypeClass||'primary'\"\n iconClass=\"{{node?.treeContentBlock?.iconClass}}\"\n class=\"eui-u-mr-s\">\n </eui-icon>\n </ng-container>\n <!--label area-->\n <label *ngIf=\"!node?.treeContentBlock?.urlExternal\" euiLabel class=\"eui-u-mr-s\"\n for=\"{{id}}\">{{autoTranslate ? (node?.treeContentBlock?.label|translate) : node?.treeContentBlock?.label}}</label>\n <label *ngIf=\"node?.treeContentBlock?.urlExternal\" euiLabel for=\"{{id}}\" class=\"eui-u-mr-s\">\n <a href=\"{{node?.treeContentBlock?.urlExternal}}\"\n target=\"{{node?.treeContentBlock?.urlExternalTarget || 'blank'}}\">\n {{autoTranslate ? (node?.treeContentBlock?.label|translate) : node?.treeContentBlock?.label}}\n </a>\n </label>\n <!--badges area-->\n <ng-container *ngFor=\"let badge of node?.treeContentBlock?.badges\">\n <eui-badge euiSizeM [euiVariant]=\"badge.typeClass||'secondary'\" class=\"eui-u-ml-s\">\n {{badge.label}}\n </eui-badge>\n </ng-container>\n <!--metadata, uses the help of ng template to generate dynamic expand variable without handling state -->\n <ng-container *ngIf=\"node?.treeContentBlock?.metadata && nodeContentMetadataTemplateRef\"\n [ngTemplateOutlet]=\"nodeContentMetadataContainer\"\n [ngTemplateOutletContext]=\"{\n $implicit: {expanded:false}\n }\">\n </ng-container>\n <ng-template #nodeContentMetadataContainer let-metaDataContainer>\n <button euiButton euiBasicButton euiIconButton euiSizeS (click)=\"metaDataContainer.expanded=!metaDataContainer.expanded\">\n <eui-icon-svg [icon]=\"metaDataContainer.expanded ? 'eui-chevron-down' : 'eui-chevron-forward'\"></eui-icon-svg>\n </button>\n <div *ngIf=\"metaDataContainer.expanded\"\n class=\"eui-tree-node__metacontent\">\n <!--passing metadata of the node content to provided template-ref:nodeContentMetadataTemplateRef-->\n <ng-template [ngTemplateOutlet]=\"nodeContentMetadataTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: node?.treeContentBlock?.metadata,metadata: node?.treeContentBlock?.metadata}\"></ng-template>\n </div>\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: [".eui-tree{list-style:none;margin:0 0 0 var(--eui-base-spacing-xs);padding:0;position:relative}.eui-tree .eui-tree-node,.eui-tree .eui-tree-node-wrapper{display:flex}.eui-tree .eui-tree-node{flex-direction:column}.eui-tree .eui-tree-node-wrapper{align-items:center;padding:var(--eui-base-spacing-2xs) var(--eui-base-spacing-s)}.eui-tree .eui-tree-node-wrapper .eui-label{white-space:pre-wrap}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "component", type: i2.EuiInputCheckboxComponent, selector: "input[euiInputCheckBox]", inputs: ["isInvalid", "label", "styleClass", "checked", "id"] }, { kind: "directive", type: i3.CdkNestedTreeNode, selector: "cdk-nested-tree-node", inputs: ["role", "disabled", "tabIndex"], exportAs: ["cdkNestedTreeNode"] }, { kind: "directive", type: i3.CdkTreeNodeDef, selector: "[cdkTreeNodeDef]", inputs: ["cdkTreeNodeDefWhen"] }, { kind: "directive", type: i3.CdkTreeNodeToggle, selector: "[cdkTreeNodeToggle]", inputs: ["cdkTreeNodeToggleRecursive"] }, { kind: "component", type: i3.CdkTree, selector: "cdk-tree", inputs: ["dataSource", "treeControl", "trackBy"], exportAs: ["cdkTree"] }, { kind: "directive", type: i3.CdkTreeNodeOutlet, selector: "[cdkTreeNodeOutlet]" }, { kind: "component", type: i4.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i5.EuiIconComponent, selector: "div[euiIcon], span[euiIcon], i[euiIcon], eui-icon", inputs: ["aria-label", "iconClass", "isLoading"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i6.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "component", type: i7.EuiBadgeComponent, selector: "div[euiBadge], span[euiBadge], eui-badge", inputs: ["aria-label"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
374
374
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: EuiTreeComponent, decorators: [{
375
375
  type: Component,
376
- args: [{ selector: 'eui-tree', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ul class=\"ux-tree\">\n <cdk-tree [dataSource]=\"cdkArrayDataSource\" [treeControl]=\"cdkTreeControl\" [trackBy]=\"trackBy\" *ngIf=\"renderTree\">\n <!-- There are two states of generic cdk-nested-tree-node declarations.\n First one is without child. No sub rendering.\n -->\n <cdk-nested-tree-node *cdkTreeNodeDef=\"let treeItemModel\">\n <li class=\"ux-tree__node\" *ngIf=\"treeItemModel\"\n title=\"{{getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel||\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.label}}\"\n >\n <div class=\"ux-tree__node-wrapper\">\n <div (click)=\"onNodeClick(treeItemModel)\">\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef||nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeItemModel?.path)?.node,\n onSelect:onSelectFn(treeItemModel.path,treeItemModel),\n id:uid+treeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n </li>\n </cdk-nested-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node *cdkTreeNodeDef=\"let treeItemModel when: hasChild\">\n <li class=\"ux-tree__node\" *ngIf=\"treeItemModel\"\n title=\"{{getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel||\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.label}}\">\n <div class=\"ux-tree__node-wrapper\">\n <button euiButton euiIconButton euiBasicButton\n [attr.aria-label]=\"'Toggle ' + treeItemModel?.node?.treeContentBlock?.label\"\n (click)=\"onNodeToggle(treeItemModel)\"\n cdkTreeNodeToggle>\n <span euiIcon *ngIf=\"!cdkTreeControl.isExpanded(treeItemModel)&&collapsedIconClass\"\n [iconClass]=\"collapsedIconClass\"></span>\n <span euiIcon *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)&&expandedIconClass\"\n [iconClass]=\"expandedIconClass\"\n ></span>\n <eui-icon-svg *ngIf=\"!cdkTreeControl.isExpanded(treeItemModel)&&!collapsedIconClass\" set=\"sharp\"\n size=\"m\"\n icon=\"chevron-forward\"></eui-icon-svg>\n <eui-icon-svg *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)&&!expandedIconClass\" set=\"sharp\"\n size=\"m\"\n icon=\"chevron-down\"\n ></eui-icon-svg>\n </button>\n <!--Here wraps the node, and listen for node clicks.-->\n <div (click)=\"onNodeClick(treeItemModel)\">\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef||nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeItemModel?.path)?.node,\n onSelect:onSelectFn(treeItemModel?.path,treeItemModel),\n id:uid+treeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n <!--uses cdkTreeNodeOutlet to render children nodes, CdkTreeControl is used to control isExpanded state.-->\n <ul class=\"ux-tree__node\" *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </ul>\n </li>\n </cdk-nested-tree-node>\n </cdk-tree>\n</ul>\n\n<ng-template #nodeTemplateDefault let-node let-onSelect=\"onSelect\" let-id=id>\n <ng-container *ngIf=\"node\">\n <!--input checkbox area-->\n <input euiInputCheckBox *ngIf=\"node && node.selectable\"\n type=\"checkbox\"\n id=\"{{id}}\"\n [checked]=\"node && node.isSelected\"\n (change)=\"onSelect($event)\"\n >\n <!--type (typeLabel & typeClass) area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.typeLabel\" [ngSwitch]=\"node?.treeContentBlock?.typeClass\">\n <eui-badge euiSizeM\n [euiVariant]=\"node?.treeContentBlock?.typeClass||'primary'\">\n {{node?.treeContentBlock?.typeLabel}}\n </eui-badge>\n </ng-container>\n <!--icon area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.iconClass\">\n <eui-icon euiSizeM\n [euiVariant]=\"node?.treeContentBlock?.iconTypeClass||'primary'\"\n iconClass=\"{{node?.treeContentBlock?.iconClass}}\">\n </eui-icon>\n </ng-container>\n <!--label area-->\n <label *ngIf=\"!node?.treeContentBlock?.urlExternal\" euiLabel\n for=\"{{id}}\">{{autoTranslate ? (node?.treeContentBlock?.label|translate) : node?.treeContentBlock?.label}}</label>\n <label *ngIf=\"node?.treeContentBlock?.urlExternal\" euiLabel for=\"{{id}}\">\n <a href=\"{{node?.treeContentBlock?.urlExternal}}\"\n target=\"{{node?.treeContentBlock?.urlExternalTarget || 'blank'}}\">\n {{autoTranslate ? (node?.treeContentBlock?.label|translate) : node?.treeContentBlock?.label}}\n </a>\n </label>\n <!--badges area-->\n <ng-container *ngFor=\"let badge of node?.treeContentBlock?.badges\">\n <eui-badge euiSizeM [euiVariant]=\"badge.typeClass||'secondary'\">\n {{badge.label}}\n </eui-badge>\n </ng-container>\n <!--metadata, uses the help of ng template to generate dynamic expand variable without handling state -->\n <ng-container *ngIf=\"node?.treeContentBlock?.metadata && nodeContentMetadataTemplateRef\"\n [ngTemplateOutlet]=\"nodeContentMetadataContainer\"\n [ngTemplateOutletContext]=\"{\n $implicit: {expanded:false}\n }\">\n </ng-container>\n <ng-template #nodeContentMetadataContainer let-metaDataContainer>\n <span\n class=\"ux-tree__node-metacontent-toggle ux-tree__node-clickable\"\n (click)=\"metaDataContainer.expanded=!metaDataContainer.expanded\">\n <span class=\"eui-icon\"\n [ngClass]=\"metaDataContainer.expanded ? 'eui-icon eui-icon-angle-down' : 'eui-icon eui-icon-angle-right'\">\n\n </span>\n </span>\n <div\n *ngIf=\"metaDataContainer.expanded\"\n class=\"ux-tree__node-metacontent\">\n <!--passing metadata of the node content to provided template-ref:nodeContentMetadataTemplateRef-->\n <ng-template [ngTemplateOutlet]=\"nodeContentMetadataTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: node?.treeContentBlock?.metadata,metadata: node?.treeContentBlock?.metadata}\"></ng-template>\n </div>\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.ux-tree,.ux-tree ul{list-style:none;margin:0 0 0 var(--eui-base-spacing-xs);padding:0;position:relative}.ux-tree ul{margin-left:var(--eui-base-spacing-m)}ul.ux-tree:before{content:\"\";display:block;height:calc(100% - 12px);left:0;position:absolute}.ux-tree:before,.ux-tree ul:before{border-left:1px solid var(--eui-base-color-grey-20);bottom:0;content:\"\";display:block;height:calc(100% - 12px);left:0;position:absolute;top:0;width:0}.ux-tree li{cursor:pointer;line-height:calc(1.75 * var(--eui-base-spacing-m));margin:0;padding:0 0 0 var(--eui-base-spacing-s);position:relative}.ux-tree li:before{border-top:1px solid var(--eui-base-color-grey-20);content:\"\";display:block;height:0;left:0;position:absolute;top:var(--eui-base-spacing-m);width:var(--eui-base-spacing-xl)}.ux-tree li.ux-tree__node--expandable:before{border-top:1px solid var(--eui-base-color-grey-20);content:\"\";display:block;height:0;left:0;position:absolute;top:var(--eui-base-spacing-m);width:var(--eui-base-spacing-s)}.ux-tree li.ux-tree__node--disabled{pointer-events:none;cursor:none}.ux-tree li.last-child:before{bottom:0;height:auto;top:var(--eui-base-spacing-m)}.ux-tree{font-size:95%}.ux-tree--onelevel .ux-tree__node{padding:0}.ux-tree__node-wrapper{align-items:center;display:flex;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-tree__node-wrapper .ux-tree__parent{margin-left:var(--eui-base-spacing-2xs)}.ux-tree__node-wrapper .ux-tree__leaf{margin-left:var(--eui-base-spacing-l)}.ux-tree--onelevel .ux-tree__node-wrapper .ux-tree__leaf{margin-left:var(--eui-base-spacing-xs)!important;margin-right:var(--eui-base-spacing-xs)}.ux-tree__node-wrapper .ux-tree__custom-content{align-items:center;display:inline-flex}.ux-tree__node-wrapper .ux-tree__custom-content.ux-tree__leaf{margin-left:var(--eui-base-spacing-l)}.ux-tree__node-label{margin-left:var(--eui-base-spacing-xl);vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-tree__node-label.ux-tree__node-label-parent{margin-left:0}.ux-tree__node-label:focus,.ux-tree__node-label:hover{color:var(--eui-base-color-primary-100);text-decoration:underline}.ux-tree__node-label.ux-tree__node-label--highlighted{font-weight:700}.ux-tree__node--selected .ux-tree__node-label{background-color:var(--eui-base-color-primary-5)}.ux-tree__node-label-wrapped{margin-left:var(--eui-base-spacing-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-tree__node-label-wrapped:focus,.ux-tree__node-label-wrapped:hover{color:var(--eui-base-color-primary-100);text-decoration:underline}.ux-tree__node-label-wrapped .ux-tree__node-label--highlighted{font-weight:700}.ux-tree__node--selected .ux-tree__node-label-wrapped{background-color:var(--eui-base-color-primary-5)}.ux-tree__node-toggle-icon{color:var(--eui-base-color-primary-100)}.ux-tree__node-toggle-icon .ux-button__icon{font-size:var(--eui-base-font-size-xl)!important}.ux-tree__node-type{align-items:center;background-color:var(--eui-base-color-grey-80);color:var(--eui-base-color-white);display:inline-flex;font-size:var(--eui-base-font-size-s);height:var(--eui-base-spacing-m);margin:var(--eui-base-spacing-2xs) 0 0 var(--eui-base-spacing-xl);padding:var(--eui-base-spacing-s) var(--eui-base-spacing-2xs);text-decoration:none}.ux-tree__node-type.ux-tree__node-type-parent{margin-left:var(--eui-base-spacing-xs)}.ux-tree__node-icon{color:var(--eui-base-color-grey-90);display:inline-flex}.ux-tree__node-type--primary{background-color:var(--eui-base-color-primary-100)}.ux-tree__node-type--info{background-color:var(--eui-base-color-info-100)}.ux-tree__node-type--success{background-color:var(--eui-base-color-success-100)}.ux-tree__node-type--warning{background-color:var(--eui-base-color-warning-100)}.ux-tree__node-type--danger{background-color:var(--eui-base-color-danger-100)}.ux-tree__node-badge{margin-left:var(--eui-base-spacing-xs);min-width:var(--eui-base-spacing-xl)}.ux-tree__node-metacontent-toggle{display:flex;font-size:var(--eui-base-font-size);margin-left:var(--eui-base-spacing-s);padding:0 var(--eui-base-spacing-3xs);box-shadow:var(--eui-base-shadow-1)}.ux-tree__node-metacontent{background-color:var(--eui-base-color-grey-5);margin-left:var(--eui-base-spacing-xl);padding:var(--eui-base-spacing-m)}.ux-tree__node-checkbox-label{margin:0 var(--eui-base-spacing-2xs)!important;padding:10px!important}.ux-tree__node-checkbox-label:after{left:12px!important}.ux-tree__node-checkbox-label--onelevel{margin:0 auto!important}.ux-tree--multiselect .ux-tree__node-wrapper{margin:3px 0}.ux-tree--multiselect .ux-tree__node-label{margin-left:0;padding-left:var(--eui-base-spacing-s);padding-right:var(--eui-base-spacing-s)}.ux-tree--multiselect .ux-tree__node .ux-tree__parent{margin-left:0}.ux-tree--multiselect .ux-tree__node .ux-tree__leaf{margin-left:var(--eui-base-spacing-xl)}.ux-tree--onelevel{margin:0}.ux-tree--onelevel:before{border-left:none}.ux-tree--onelevel .ux-tree__node:before{border-top:none}.ux-tree--hidelines{margin:0}.ux-tree--hidelines .ux-tree__nodes:before{border-left:none}.ux-tree--hidelines .ux-tree__node:before{display:none}.ux-tree--hidelines:before{border-left:none}.ux-tree__virtual-scrolling__container{height:200px}.ux-tree__virtual-scrolling__item{height:30px}.ux-tree__toolbar{margin-bottom:var(--eui-base-spacing-m)}.ux-tree__toolbar-trigger{float:left;margin-right:var(--eui-base-spacing-xs)}.ux-tree__toolbar-filter{float:left;position:relative}.ux-tree__toolbar-filter-input{min-width:100px}.ux-tree__toolbar-filter-input-search-icon{position:absolute;right:var(--eui-base-spacing-s);top:var(--eui-base-spacing-s)}\n"] }]
376
+ args: [{ selector: 'eui-tree', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ul class=\"eui-tree\">\n <cdk-tree [dataSource]=\"cdkArrayDataSource\" [treeControl]=\"cdkTreeControl\" [trackBy]=\"trackBy\" *ngIf=\"renderTree\">\n <!-- There are two states of generic cdk-nested-tree-node declarations.\n First one is without child. No sub rendering.\n -->\n <cdk-nested-tree-node *cdkTreeNodeDef=\"let treeItemModel\">\n <li class=\"eui-tree-node\" *ngIf=\"treeItemModel\"\n title=\"{{getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel||\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.label}}\"\n >\n <div class=\"eui-tree-node-wrapper\">\n <div (click)=\"onNodeClick(treeItemModel)\">\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef||nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeItemModel?.path)?.node,\n onSelect:onSelectFn(treeItemModel.path,treeItemModel),\n id:uid+treeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n </li>\n </cdk-nested-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node *cdkTreeNodeDef=\"let treeItemModel when: hasChild\">\n <li class=\"eui-tree-node\" *ngIf=\"treeItemModel\"\n title=\"{{getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel||\n getTreeItem(treeItemModel?.path)?.node?.treeContentBlock?.label}}\">\n <div class=\"eui-tree-node-wrapper\">\n <button euiButton euiIconButton euiBasicButton euiSizeS\n [attr.aria-label]=\"'Toggle ' + treeItemModel?.node?.treeContentBlock?.label\"\n (click)=\"onNodeToggle(treeItemModel)\"\n cdkTreeNodeToggle>\n <span euiIcon *ngIf=\"!cdkTreeControl.isExpanded(treeItemModel)&&collapsedIconClass\"\n [iconClass]=\"collapsedIconClass\"></span>\n <span euiIcon *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)&&expandedIconClass\"\n [iconClass]=\"expandedIconClass\"\n ></span>\n <eui-icon-svg *ngIf=\"!cdkTreeControl.isExpanded(treeItemModel)&&!collapsedIconClass\" icon=\"eui-chevron-forward\"></eui-icon-svg>\n <eui-icon-svg *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)&&!expandedIconClass\" icon=\"eui-chevron-down\"></eui-icon-svg>\n </button>\n <!--Here wraps the node, and listen for node clicks.-->\n <div (click)=\"onNodeClick(treeItemModel)\" class=\"eui-u-flex\">\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef||nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeItemModel?.path)?.node,\n onSelect:onSelectFn(treeItemModel?.path,treeItemModel),\n id:uid+treeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n <!--uses cdkTreeNodeOutlet to render children nodes, CdkTreeControl is used to control isExpanded state.-->\n <ul class=\"eui-tree-node\" *ngIf=\"cdkTreeControl.isExpanded(treeItemModel)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </ul>\n </li>\n </cdk-nested-tree-node>\n </cdk-tree>\n</ul>\n\n<ng-template #nodeTemplateDefault let-node let-onSelect=\"onSelect\" let-id=id>\n <ng-container *ngIf=\"node\">\n <!--input checkbox area-->\n <input euiInputCheckBox *ngIf=\"node && node.selectable\"\n type=\"checkbox\"\n id=\"{{id}}\"\n [checked]=\"node && node.isSelected\"\n (change)=\"onSelect($event)\"\n class=\"eui-u-mr-s\"\n >\n <!--type (typeLabel & typeClass) area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.typeLabel\" [ngSwitch]=\"node?.treeContentBlock?.typeClass\">\n <eui-badge euiSizeM\n [euiVariant]=\"node?.treeContentBlock?.typeClass||'primary'\"\n class=\"eui-u-mr-s\">\n {{node?.treeContentBlock?.typeLabel}}\n </eui-badge>\n </ng-container>\n <!--icon area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.iconClass\">\n <eui-icon euiSizeM\n [euiVariant]=\"node?.treeContentBlock?.iconTypeClass||'primary'\"\n iconClass=\"{{node?.treeContentBlock?.iconClass}}\"\n class=\"eui-u-mr-s\">\n </eui-icon>\n </ng-container>\n <!--label area-->\n <label *ngIf=\"!node?.treeContentBlock?.urlExternal\" euiLabel class=\"eui-u-mr-s\"\n for=\"{{id}}\">{{autoTranslate ? (node?.treeContentBlock?.label|translate) : node?.treeContentBlock?.label}}</label>\n <label *ngIf=\"node?.treeContentBlock?.urlExternal\" euiLabel for=\"{{id}}\" class=\"eui-u-mr-s\">\n <a href=\"{{node?.treeContentBlock?.urlExternal}}\"\n target=\"{{node?.treeContentBlock?.urlExternalTarget || 'blank'}}\">\n {{autoTranslate ? (node?.treeContentBlock?.label|translate) : node?.treeContentBlock?.label}}\n </a>\n </label>\n <!--badges area-->\n <ng-container *ngFor=\"let badge of node?.treeContentBlock?.badges\">\n <eui-badge euiSizeM [euiVariant]=\"badge.typeClass||'secondary'\" class=\"eui-u-ml-s\">\n {{badge.label}}\n </eui-badge>\n </ng-container>\n <!--metadata, uses the help of ng template to generate dynamic expand variable without handling state -->\n <ng-container *ngIf=\"node?.treeContentBlock?.metadata && nodeContentMetadataTemplateRef\"\n [ngTemplateOutlet]=\"nodeContentMetadataContainer\"\n [ngTemplateOutletContext]=\"{\n $implicit: {expanded:false}\n }\">\n </ng-container>\n <ng-template #nodeContentMetadataContainer let-metaDataContainer>\n <button euiButton euiBasicButton euiIconButton euiSizeS (click)=\"metaDataContainer.expanded=!metaDataContainer.expanded\">\n <eui-icon-svg [icon]=\"metaDataContainer.expanded ? 'eui-chevron-down' : 'eui-chevron-forward'\"></eui-icon-svg>\n </button>\n <div *ngIf=\"metaDataContainer.expanded\"\n class=\"eui-tree-node__metacontent\">\n <!--passing metadata of the node content to provided template-ref:nodeContentMetadataTemplateRef-->\n <ng-template [ngTemplateOutlet]=\"nodeContentMetadataTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: node?.treeContentBlock?.metadata,metadata: node?.treeContentBlock?.metadata}\"></ng-template>\n </div>\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: [".eui-tree{list-style:none;margin:0 0 0 var(--eui-base-spacing-xs);padding:0;position:relative}.eui-tree .eui-tree-node,.eui-tree .eui-tree-node-wrapper{display:flex}.eui-tree .eui-tree-node{flex-direction:column}.eui-tree .eui-tree-node-wrapper{align-items:center;padding:var(--eui-base-spacing-2xs) var(--eui-base-spacing-s)}.eui-tree .eui-tree-node-wrapper .eui-label{white-space:pre-wrap}\n"] }]
377
377
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { nodes: [{
378
378
  type: Input
379
379
  }], nodeTemplateRef: [{