@eui/components 15.0.0-rc.21 → 15.0.0-rc.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/components/EuiInputCheckboxComponent.html +0 -20
- package/docs/components/EuiInputRadioComponent.html +0 -20
- package/docs/dependencies.html +2 -2
- package/docs/js/menu-wc.js +3 -3
- package/docs/js/menu-wc_es5.js +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/modules/EuiInputCheckboxModule.html +0 -9
- package/esm2020/eui-input-checkbox/eui-input-checkbox.component.mjs +2 -42
- package/esm2020/eui-input-checkbox/eui-input-checkbox.module.mjs +3 -7
- package/esm2020/eui-input-radio/eui-input-radio.component.mjs +2 -42
- package/esm2020/eui-tree/eui-tree.component.mjs +1 -1
- package/eui-input-checkbox/eui-input-checkbox.component.d.ts +3 -12
- package/eui-input-checkbox/eui-input-checkbox.component.d.ts.map +1 -1
- package/eui-input-checkbox/eui-input-checkbox.module.d.ts +1 -2
- package/eui-input-checkbox/eui-input-checkbox.module.d.ts.map +1 -1
- package/eui-input-radio/eui-input-radio.component.d.ts +3 -12
- package/eui-input-radio/eui-input-radio.component.d.ts.map +1 -1
- package/fesm2015/eui-components-eui-input-checkbox.mjs +3 -46
- package/fesm2015/eui-components-eui-input-checkbox.mjs.map +1 -1
- package/fesm2015/eui-components-eui-input-radio.mjs +1 -41
- package/fesm2015/eui-components-eui-input-radio.mjs.map +1 -1
- package/fesm2015/eui-components-eui-tree.mjs +1 -1
- package/fesm2015/eui-components-eui-tree.mjs.map +1 -1
- package/fesm2020/eui-components-eui-input-checkbox.mjs +3 -46
- package/fesm2020/eui-components-eui-input-checkbox.mjs.map +1 -1
- package/fesm2020/eui-components-eui-input-radio.mjs +1 -41
- package/fesm2020/eui-components-eui-input-radio.mjs.map +1 -1
- package/fesm2020/eui-components-eui-tree.mjs +1 -1
- package/fesm2020/eui-components-eui-tree.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-components-eui-input-radio.mjs","sources":["../../eui-input-radio/eui-input-radio.component.ts","../../eui-input-radio/eui-input-radio.module.ts","../../eui-input-radio/eui-components-eui-input-radio.ts"],"sourcesContent":["import {\n DoCheck,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n Optional,\n Renderer2,\n Self,\n SimpleChanges,\n OnInit,\n ChangeDetectorRef,\n Component,\n ViewEncapsulation,\n HostListener,\n OnDestroy,\n Injector,\n ComponentRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl, Validators } from '@angular/forms';\nimport { InputDirective } from '@eui/components/shared';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\nimport { EuiLabelComponent } from '@eui/components/eui-label';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'input[euiInputRadio]',\n styleUrls: ['./styles/_index.scss'],\n template: '',\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiInputRadioComponent extends InputDirective implements OnInit, DoCheck, OnChanges, OnDestroy, ControlValueAccessor {\n\n @Input()\n public get isInvalid(): boolean {\n return this._isInvalid || null;\n }\n public set isInvalid(state: BooleanInput) {\n this.setInvalid(state);\n }\n protected _isInvalid: boolean;\n\n @HostBinding('class')\n @Input()\n public set class(cssClass: string) {\n super.styleClass = cssClass;\n }\n public get class(): string {\n return [\n super.getCssClasses('eui-input-radio'),\n this._isInvalid ? 'eui-input-radio--invalid' : '',\n ].join(' ').trim();\n }\n\n @Input() label: string;\n protected _labelRef: ComponentRef<EuiLabelComponent>;\n\n @HostBinding('attr.type') protected type: string = 'radio';\n\n @HostBinding('attr.checked')\n @Input('checked')\n public get defaultChecked(): boolean {\n return this._defaultChecked;\n }\n public set defaultChecked(value: BooleanInput) {\n this._defaultChecked = coerceBooleanProperty(value);\n }\n protected _defaultChecked: boolean;\n\n public get selected(): boolean {\n return this._elementRef?.nativeElement.checked;\n }\n\n @Input()\n get value() {\n return this._value;\n }\n set value(value) {\n if (typeof value === 'boolean' || !!value) {\n this._value = value;\n this._elementRef.nativeElement.value = this._value;\n }\n }\n private _value;\n\n constructor(\n @Optional() @Self() protected ngControl: NgControl,\n private viewContainerRef: ViewContainerRef,\n protected _elementRef: ElementRef<HTMLInputElement>,\n protected _renderer: Renderer2,\n private _cd: ChangeDetectorRef,\n injector: Injector,\n ) {\n super(_elementRef, _renderer, ngControl, injector);\n\n // Firefox fix: set type to radio before first ngDoCheck runs\n this._elementRef.nativeElement.type = 'radio';\n\n // if there's no id attribute set one\n if (!this._id) {\n this.setIdAttribute();\n }\n\n // register control valueAccessor\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n // in case control value is null set the default one (isChecked) and sync Control State\n // if (this.ngControl?.control?.value === null) {\n // this.ngControl.control.setValue('', { emitModelToViewChange: false });\n // changing Model Expression after view checked, so detect changes\n // TODO: check why although it's checked .checked returns false\n // this.ngControl.viewToModelUpdate(this._checked);\n // this._cd.detectChanges();\n // }\n\n if(this.ngControl) {\n this.ngControl.statusChanges.subscribe((status) => {\n this.isInvalid = status === 'INVALID';\n this.euiDanger = this.isInvalid;\n });\n }\n }\n\n ngDoCheck() {\n if (this.ngControl) {\n this.isInvalid = this.ngControl.invalid && this.ngControl.touched;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n\n if (changes['label']) {\n const value = changes['label'].currentValue;\n if(value) {\n // in case label Element already created update the value\n if (!this._labelRef) {\n // create label Element\n this._labelRef = this.createLabelComponent();\n // append label element under the Checkbox\n const parent: HTMLElement = this._elementRef.nativeElement.parentElement;\n this._renderer.appendChild(parent, this._labelRef.location.nativeElement);\n this._renderer.insertBefore(parent, this._labelRef.location.nativeElement, this._elementRef.nativeElement.nextSibling);\n }\n this._renderer.setProperty(this._labelRef.location.nativeElement, 'innerText', value);\n } else if (this._labelRef) {\n this._labelRef.destroy();\n this._labelRef = null;\n }\n }\n\n // in case id change then sync label for attribute\n if (changes['id'] && this._labelRef) {\n this._renderer.setAttribute(this._labelRef.location.nativeElement, 'for', changes['id'].currentValue);\n }\n\n // when readonly changes hide other radio (input+label)\n if (changes['readonly']) {\n // in readonly hide all input elements.\n if (this.readonly) {\n this._renderer.addClass(this._elementRef.nativeElement, 'eui-input-radio--hide');\n } else {\n this._renderer.removeClass(this._elementRef.nativeElement, 'eui-input-radio--hide');\n }\n this.processReadonly();\n }\n\n if (changes['isInvalid']) {\n if (changes['isInvalid'].currentValue) {\n this._renderer.addClass(this._elementRef.nativeElement, 'eui-input-radio--invalid');\n } else {\n this._renderer.removeClass(this._elementRef.nativeElement, 'eui-input-radio--invalid');\n }\n }\n }\n\n ngOnDestroy() {\n if(this._labelRef) {\n this._labelRef.destroy();\n }\n }\n\n writeValue(obj: string): void {\n // set checked state based if radio value matches the control's one\n this._elementRef.nativeElement.checked = (this._elementRef.nativeElement.value === obj);\n this.processReadonly();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n @HostListener('change', ['$event.target'])\n protected onCheckedChanged(target) {\n this._defaultChecked = target.checked;\n this.onChange(target.value);\n }\n\n protected setInvalid(state): void {\n // in case it's controlled by NgControl override\n this._isInvalid = this.control ? this.control.invalid && this.control.touched : coerceBooleanProperty(state);\n\n // set BaseDirective Attribute\n super.euiDanger = this._isInvalid;\n }\n\n protected onChange = (_) => { /* Nothing to be Done so far */ };\n protected onTouched = (_) => { /* Nothing to be Done so far */ };\n\n private processReadonly() {\n const notRender = this._readonly && !this._elementRef.nativeElement.checked;\n // control the label that will be rendered\n const labelElementRef = document.querySelector(`[for=${this._id}]`);\n if (labelElementRef) {\n if (notRender) {\n this._renderer.setStyle(labelElementRef, 'display', 'none');\n } else {\n this._renderer.removeStyle(labelElementRef, 'display');\n }\n }\n }\n\n /**\n * create readonly element\n * @private\n */\n private createLabelComponent(): ComponentRef<EuiLabelComponent> {\n const componentRef = this.viewContainerRef.createComponent(EuiLabelComponent);\n this._renderer.setAttribute(componentRef.location.nativeElement, 'for', this._id);\n return componentRef;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EuiInputRadioComponent } from './eui-input-radio.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n EuiInputRadioComponent,\n ],\n exports: [\n EuiInputRadioComponent,\n ],\n})\nexport class EuiInputRadioModule { }\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-input-radio.mjs","sources":["../../eui-input-radio/eui-input-radio.component.ts","../../eui-input-radio/eui-input-radio.module.ts","../../eui-input-radio/eui-components-eui-input-radio.ts"],"sourcesContent":["import {\n DoCheck,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n Optional,\n Renderer2,\n Self,\n SimpleChanges,\n OnInit,\n ChangeDetectorRef,\n Component,\n ViewEncapsulation,\n HostListener,\n OnDestroy,\n Injector,\n ViewContainerRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { InputDirective } from '@eui/components/shared';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'input[euiInputRadio]',\n styleUrls: ['./styles/_index.scss'],\n template: '',\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiInputRadioComponent extends InputDirective implements OnInit, DoCheck, OnChanges, ControlValueAccessor {\n\n @Input()\n public get isInvalid(): boolean {\n return this._isInvalid || null;\n }\n public set isInvalid(state: BooleanInput) {\n this.setInvalid(state);\n }\n protected _isInvalid: boolean;\n\n @HostBinding('class')\n @Input()\n public set class(cssClass: string) {\n super.styleClass = cssClass;\n }\n public get class(): string {\n return [\n super.getCssClasses('eui-input-radio'),\n this._isInvalid ? 'eui-input-radio--invalid' : '',\n ].join(' ').trim();\n }\n @HostBinding('attr.type') protected type: string = 'radio';\n\n @HostBinding('attr.checked')\n @Input('checked')\n public get defaultChecked(): boolean {\n return this._defaultChecked;\n }\n public set defaultChecked(value: BooleanInput) {\n this._defaultChecked = coerceBooleanProperty(value);\n }\n protected _defaultChecked: boolean;\n\n public get selected(): boolean {\n return this._elementRef?.nativeElement.checked;\n }\n\n @Input()\n get value() {\n return this._value;\n }\n set value(value) {\n if (typeof value === 'boolean' || !!value) {\n this._value = value;\n this._elementRef.nativeElement.value = this._value;\n }\n }\n private _value;\n\n constructor(\n @Optional() @Self() protected ngControl: NgControl,\n private viewContainerRef: ViewContainerRef,\n protected _elementRef: ElementRef<HTMLInputElement>,\n protected _renderer: Renderer2,\n private _cd: ChangeDetectorRef,\n injector: Injector,\n ) {\n super(_elementRef, _renderer, ngControl, injector);\n\n // Firefox fix: set type to radio before first ngDoCheck runs\n this._elementRef.nativeElement.type = 'radio';\n\n // if there's no id attribute set one\n if (!this._id) {\n this.setIdAttribute();\n }\n\n // register control valueAccessor\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n // in case control value is null set the default one (isChecked) and sync Control State\n // if (this.ngControl?.control?.value === null) {\n // this.ngControl.control.setValue('', { emitModelToViewChange: false });\n // changing Model Expression after view checked, so detect changes\n // TODO: check why although it's checked .checked returns false\n // this.ngControl.viewToModelUpdate(this._checked);\n // this._cd.detectChanges();\n // }\n\n if(this.ngControl) {\n this.ngControl.statusChanges.subscribe((status) => {\n this.isInvalid = status === 'INVALID';\n this.euiDanger = this.isInvalid;\n });\n }\n }\n\n ngDoCheck() {\n if (this.ngControl) {\n this.isInvalid = this.ngControl.invalid && this.ngControl.touched;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n\n // when readonly changes hide other radio (input+label)\n if (changes['readonly']) {\n // in readonly hide all input elements.\n if (this.readonly) {\n this._renderer.addClass(this._elementRef.nativeElement, 'eui-input-radio--hide');\n } else {\n this._renderer.removeClass(this._elementRef.nativeElement, 'eui-input-radio--hide');\n }\n this.processReadonly();\n }\n\n if (changes['isInvalid']) {\n if (changes['isInvalid'].currentValue) {\n this._renderer.addClass(this._elementRef.nativeElement, 'eui-input-radio--invalid');\n } else {\n this._renderer.removeClass(this._elementRef.nativeElement, 'eui-input-radio--invalid');\n }\n }\n }\n\n writeValue(obj: string): void {\n // set checked state based if radio value matches the control's one\n this._elementRef.nativeElement.checked = (this._elementRef.nativeElement.value === obj);\n this.processReadonly();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n @HostListener('change', ['$event.target'])\n protected onCheckedChanged(target) {\n this._defaultChecked = target.checked;\n this.onChange(target.value);\n }\n\n protected setInvalid(state): void {\n // in case it's controlled by NgControl override\n this._isInvalid = this.control ? this.control.invalid && this.control.touched : coerceBooleanProperty(state);\n\n // set BaseDirective Attribute\n super.euiDanger = this._isInvalid;\n }\n\n protected onChange = (_) => { /* Nothing to be Done so far */ };\n protected onTouched = (_) => { /* Nothing to be Done so far */ };\n\n private processReadonly() {\n const notRender = this._readonly && !this._elementRef.nativeElement.checked;\n // control the label that will be rendered\n const labelElementRef = document.querySelector(`[for=${this._id}]`);\n if (labelElementRef) {\n if (notRender) {\n this._renderer.setStyle(labelElementRef, 'display', 'none');\n } else {\n this._renderer.removeStyle(labelElementRef, 'display');\n }\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EuiInputRadioComponent } from './eui-input-radio.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n EuiInputRadioComponent,\n ],\n exports: [\n EuiInputRadioComponent,\n ],\n})\nexport class EuiInputRadioModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -370,7 +370,7 @@ 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=\"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 });
|
|
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", "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
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"] }]
|
|
@@ -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=\"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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"}
|
|
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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"}
|